@import url("https://fonts.googleapis.com/css2?family=Arvo:wght@400;700&family=Hanken+Grotesque:wght@400;500;600;700&display=swap");:root{--brand:#0c8466;--brand-ink:#0b3d33;--brand-tint:#e7f2ef;--bg:#fcfcfb;--bg-2:#f3f6f5;--bg-3:#e8efed;--text:#16262a;--text-2:#4f6064;--text-3:#7c898c;--border:#e3e9e9;--border-2:#d4dcdc;--warn-bg:#fdf6e9;--warn-border:#e8c987;--warn-ink:#8a5a0b;--radius:10px;--radius-lg:14px;--maxw:1200px;--font-sans:"Hanken Grotesque","Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-serif:"Arvo",Georgia,"Times New Roman",serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}@media (prefers-color-scheme:dark){:root{--brand:#0dc9a1;--brand-ink:#bfeede;--brand-tint:#0e2a22;--bg:#14171a;--bg-2:#1b1f22;--bg-3:#23282b;--text:#e7eae6;--text-2:#a6aca6;--text-3:#7d837d;--border:#2c3134;--border-2:#3a4044;--warn-bg:#2a2213;--warn-border:#5c4a1f;--warn-ink:#edc879}}*{box-sizing:border-box}body,html{padding:0;margin:0}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}h1,h2{font-family:var(--font-serif);font-weight:700;letter-spacing:-.01em}h3{font-weight:600}.shell{min-height:100vh;display:flex;flex-direction:column}.top{gap:16px;padding:10px 18px;border-bottom:1px solid var(--border);background:var(--bg-2);position:-webkit-sticky;position:sticky;top:0;z-index:10}.brand,.top{display:flex;align-items:center}.brand{font-family:var(--font-serif);font-weight:700;gap:7px;color:var(--text)}.brand .dot{width:10px;height:10px;border-radius:3px;background:var(--brand);display:inline-block}.nav{display:flex;gap:4px;flex:1 1}.tab{font-size:14px;padding:6px 12px;border-radius:var(--radius);color:var(--text-2)}.tab:hover{background:var(--bg-3);color:var(--text)}.tab.active{background:var(--brand);color:#fff}.proj{font-size:12.5px;color:var(--text-2);display:flex;align-items:center;gap:6px;border:1px solid var(--border);padding:5px 11px;border-radius:20px}.main{flex:1 1}.home{max-width:760px;margin:0 auto;padding:48px 20px}.home h1{font-size:28px;margin:0 0 6px}.home p.sub{color:var(--text-2);margin:0 0 28px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:14px;gap:14px}.card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;background:var(--bg);display:block}.card:hover{border-color:var(--brand)}.card h3{margin:0 0 4px;font-size:17px}.card p{margin:0;color:var(--text-2);font-size:13.5px}.reader{display:grid;grid-template-columns:288px 1fr;align-items:start}.toc{border-right:1px solid var(--border);background:var(--bg-2);padding:12px 8px;font-size:13.5px;position:-webkit-sticky;position:sticky;top:53px;max-height:calc(100vh - 53px);overflow-y:auto}.toc .city-pick{width:100%;margin:0 0 10px;padding:7px 9px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);font-size:13.5px}.toc details{margin:0}.toc summary{list-style:none;cursor:pointer;padding:4px 8px;border-radius:6px;color:var(--text);display:flex;align-items:center;gap:6px}.toc summary::-webkit-details-marker{display:none}.toc summary:before{content:"›";color:var(--text-3);transition:transform .1s;display:inline-block}.toc details[open]>summary:before{transform:rotate(90deg)}.toc summary:hover{background:var(--bg-3)}.toc .leaf{display:block;padding:4px 8px 4px 26px;border-radius:6px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toc .leaf:hover{background:var(--bg-3);color:var(--text)}.toc .leaf.sel{background:var(--brand-tint);color:var(--brand-ink);font-weight:500}.toc .grp{padding-left:14px}.toc .code-h{font-weight:600;color:var(--text)}.toc .art{margin:1px 0}.toc summary.art-h{font-weight:500;color:var(--text);font-size:13px}.toc .art>.grp{padding-left:6px}.toc .art .leaf{padding-left:22px;font-size:12.5px}.pane{padding:26px 32px;max-width:820px}.crumb{font-size:12.5px;color:var(--text-3);margin-bottom:8px}.sec-title{font-size:22px;margin:0 0 8px}.sec-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--text-2);margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--border)}.sec-meta a{color:var(--brand)}.sec-meta .chip{display:inline-flex;align-items:center;gap:5px}.sec-meta .fresh .fdot{width:7px;height:7px;border-radius:50%;display:inline-block}.fresh-ok .fdot{background:#16a34a}.fresh-warn .fdot{background:#d97706}.fresh-bad .fdot{background:#dc2626}.fresh-manual .fdot{background:var(--text-3)}.sec-meta .report-btn{background:none;border:0;padding:0;cursor:pointer;color:var(--text-3);font:inherit;text-decoration:underline;text-underline-offset:2px}.sec-meta .report-btn:hover{color:var(--brand)}.sec-meta .report-form{display:inline-flex;align-items:center;gap:6px}.sec-meta .report-form input{font:inherit;font-size:12px;padding:3px 8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);width:220px}.sec-meta .report-form button{font:inherit;font-size:12px;padding:3px 10px;border:1px solid var(--brand);border-radius:var(--radius);background:var(--brand-tint);color:var(--brand-ink);cursor:pointer}.law{font-size:15px;line-height:1.7;color:var(--text)}.law .lc-p{margin:0 0 12px}.law .lc-head{font-weight:600;color:var(--text);margin:16px 0 6px}.law .lc-li{display:grid;grid-template-columns:auto 1fr;grid-gap:9px;gap:9px;margin:0 0 8px;align-items:start}.law .lc-li .lc-mk{color:var(--brand-ink);font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.law .lc-trailer{font-size:12.5px;color:var(--text-3);margin:14px 0 2px;font-style:italic}.law .lc-raw{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);padding:10px 12px;margin:14px 0}.law .lc-raw-note{font-size:11.5px;color:var(--text-2);margin-bottom:7px;display:flex;gap:12px;flex-wrap:wrap;align-items:center}.law .lc-raw-note a{color:var(--brand);white-space:nowrap}.law .lc-raw pre{margin:0;font-family:var(--font-mono);font-size:11.5px;line-height:1.5;white-space:pre;overflow-x:auto;color:var(--text-2)}.law .lc-figure{margin:20px 0;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-2);padding:14px 16px}.law .lc-fig-cap{font-family:var(--font-serif);font-weight:700;font-size:13.5px;line-height:1.4;color:var(--text);margin:0 0 11px}.law .lc-fig-img{display:block;max-width:100%;height:auto;margin:0 auto;border:1px solid var(--border);border-radius:6px;background:#fff}.law .lc-fig-note{font-size:11.5px;color:var(--text-3);margin:10px 0 0;text-align:right}.law .lc-fig-note a{color:var(--brand);white-space:nowrap}.tbl-wrap{margin:18px 0;overflow-x:auto}.tbl-cap{font-size:12.5px;color:var(--text-2);margin-bottom:6px}table.code{border-collapse:collapse;font-size:13px;width:100%}table.code td,table.code th{border:1px solid var(--border);padding:6px 9px;text-align:left;vertical-align:top}table.code th{background:var(--bg-2);font-weight:600}.tbl-note{font-size:11.5px;color:var(--text-3);margin-top:5px}.tbl-note a{color:var(--brand)}.sec-block{padding:18px 0;border-bottom:1px solid var(--border);scroll-margin-top:66px}.sec-block:last-of-type{border-bottom:0}.sec-block.target{border-radius:var(--radius-lg);padding:18px 16px}.lc-hl,.sec-block.target{background:var(--brand-tint)}.lc-hl{border-radius:4px;box-shadow:0 0 0 3px var(--brand-tint);animation:lc-hl-pulse 1.6s ease-out 1;scroll-margin-top:80px}@keyframes lc-hl-pulse{0%{box-shadow:0 0 0 3px var(--brand)}to{box-shadow:0 0 0 3px var(--brand-tint)}}.stag{font-size:11px;color:var(--text-3);font-family:var(--font-mono);margin-bottom:3px}.sh{font-size:15.5px;font-weight:600;margin:0 0 7px}.rawtable{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);padding:11px 12px;margin-top:4px}.rawtable .rawnote{font-size:12px;color:var(--text-2);margin-bottom:8px;display:flex;gap:12px;flex-wrap:wrap;align-items:center}.rawtable .rawnote a{color:var(--brand);white-space:nowrap}.rawtable pre{margin:0;font-family:var(--font-mono);font-size:11.5px;line-height:1.45;white-space:pre-wrap;color:var(--text-2);max-height:300px;overflow:auto}.pager{display:flex;justify-content:space-between;margin-top:32px;padding-top:16px;border-top:1px solid var(--border);font-size:13px}.pager a{color:var(--brand);display:inline-flex;align-items:center;gap:5px}.pager .spacer{flex:1 1}.placeholder{max-width:680px;margin:0 auto;padding:60px 20px;text-align:center;color:var(--text-2)}@media (max-width:720px){.reader{grid-template-columns:1fr}.toc{position:static;max-height:none;border-right:0;border-bottom:1px solid var(--border)}.pane{padding:20px}}.top .user{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--text-2)}.top .user .email{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top .signout{background:none;border:1px solid var(--border);border-radius:8px;padding:4px 10px;cursor:pointer;color:var(--text-2);font:inherit;font-size:12.5px}.top .signout:hover{color:var(--text);border-color:var(--border-2)}.top .signin{font-size:13px;padding:5px 12px;border-radius:var(--radius);background:var(--brand);color:#fff}.proj-sw{position:relative}.proj-pill{display:inline-flex;align-items:center;gap:7px;font:inherit;font-size:12.5px;color:var(--text-2);background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:5px 12px;cursor:pointer;max-width:230px}.proj-pill:hover{border-color:var(--border-2);color:var(--text)}.proj-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proj-caret{color:var(--text-3);font-size:11px}.proj-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:30;min-width:248px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 28px rgba(0,0,0,.12);padding:6px}.proj-menu-h{font-size:11px;color:var(--text-3);padding:4px 8px 6px;text-transform:uppercase;letter-spacing:.04em}.proj-item{display:flex;align-items:center;gap:4px;border-radius:7px}.proj-item:hover{background:var(--bg-2)}.proj-item.sel{background:var(--brand-tint)}.proj-pick{flex:1 1;display:flex;align-items:center;gap:8px;min-width:0;background:none;border:0;font:inherit;font-size:13px;color:var(--text);cursor:pointer;padding:7px 8px;text-align:left}.proj-tick{width:12px;color:var(--brand);font-size:12px;flex:none}.proj-pick-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proj-row-actions{display:flex;gap:3px;padding-right:6px;opacity:0}.proj-item:hover .proj-row-actions{opacity:1}.proj-row-actions button{background:none;border:0;font:inherit;font-size:11.5px;color:var(--text-3);cursor:pointer;padding:2px 5px;border-radius:5px}.proj-row-actions button:hover{color:var(--text);background:var(--bg-3)}.proj-row-actions button.del:hover{color:#dc2626}.proj-add input,.proj-edit{width:100%;font:inherit;font-size:13px;padding:6px 8px;border:1px solid var(--brand);border-radius:6px;background:var(--bg);color:var(--text)}.proj-add{padding:4px 2px 2px}.proj-new{width:100%;text-align:left;background:none;border:0;border-top:1px solid var(--border);margin-top:4px;padding:9px 8px 5px;font:inherit;font-size:13px;color:var(--brand);cursor:pointer}.proj-new:hover{color:var(--brand-ink)}.moveto{position:relative;display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px}.moveto-btn{background:none;border:0;font:inherit;font-size:12px;color:var(--text-3);cursor:pointer;padding:0}.moveto-btn:hover{color:var(--brand)}.moveto-list{display:inline-flex;flex-wrap:wrap;gap:5px}.moveto-list button{font:inherit;font-size:11.5px;color:var(--text-2);background:var(--bg-2);border:1px solid var(--border);border-radius:14px;padding:3px 9px;cursor:pointer}.moveto-list button:hover{border-color:var(--brand);color:var(--brand-ink);background:var(--brand-tint)}.auth-shell{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 16px;background:var(--bg-2)}.auth-card{width:100%;max-width:400px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px 26px}.auth-brand{display:flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-serif);font-weight:700;font-size:19px;margin-bottom:10px}.auth-brand .dot{width:12px;height:12px;border-radius:3px;background:var(--brand);display:inline-block}.auth-card h1{font-size:21px;text-align:center;margin:0 0 4px}.auth-sub{text-align:center;color:var(--text-2);font-size:13.5px;margin:0 0 18px;line-height:1.5}.auth-field{margin-bottom:12px}.auth-field label{display:block;font-size:12.5px;color:var(--text-2);margin-bottom:4px}.auth-input{width:100%;border:1px solid var(--border-2);border-radius:var(--radius);padding:9px 11px;font-size:14px;background:var(--bg);color:var(--text);font-family:inherit}.auth-input:focus{outline:none;border-color:var(--brand)}.auth-btn{width:100%;background:var(--brand);color:#fff;border:0;border-radius:var(--radius);padding:10px 14px;font-size:14px;cursor:pointer;font-family:inherit}.auth-btn:disabled{opacity:.6;cursor:default}.auth-btn.secondary{background:var(--bg);color:var(--text);border:1px solid var(--border-2)}.auth-btn.ghost{background:none;color:var(--text-2);border:0}.auth-btn+.auth-btn{margin-top:8px}.auth-err{background:#fdecea;color:#b3261e;border-radius:var(--radius);padding:8px 11px;font-size:13px;margin-bottom:12px}.auth-div{display:flex;align-items:center;gap:10px;color:var(--text-3);font-size:12px;margin:14px 0}.auth-div:after,.auth-div:before{content:"";height:1px;background:var(--border);flex:1 1}.auth-foot{text-align:center;font-size:13px;color:var(--text-2);margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}.auth-foot a{color:var(--brand)}.auth-back{background:none;border:0;color:var(--text-3);font-size:12.5px;cursor:pointer;padding:0;margin-bottom:12px;font-family:inherit}.auth-codes{display:flex;justify-content:center;gap:8px;margin:14px 0}.auth-code{width:42px;height:48px;text-align:center;font-size:20px;border:1px solid var(--border-2);border-radius:var(--radius);background:var(--bg);color:var(--text)}.auth-code:focus{outline:none;border-color:var(--brand)}.auth-link{background:none;border:0;color:var(--brand);font-size:12.5px;cursor:pointer;font-family:inherit}@media (prefers-color-scheme:dark){.auth-err{background:#3a1714;color:#f3b4ad}}.ask-layout{display:grid;grid-template-columns:240px 1fr;height:calc(100vh - 53px)}.ask-side{border-right:1px solid var(--border);background:var(--bg-2);display:flex;flex-direction:column;min-height:0}.ask-side-head{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 8px;font-size:13px;font-weight:600;color:var(--text)}.ask-new{background:none;border:0;color:var(--brand);font:inherit;font-size:12.5px;cursor:pointer}.ask-side-empty{padding:10px 14px;color:var(--text-3);font-size:12.5px;line-height:1.5}.ask-signin-link{color:var(--brand)}.ask-hist-list{overflow-y:auto;padding:4px 8px 16px;flex:1 1;min-height:0}.ask-hist-grp{font-size:11px;color:var(--text-3);padding:9px 8px 4px}.ask-hist-item{border-radius:7px;color:var(--text-2)}.ask-hist-item:hover{background:var(--bg-3)}.ask-hist-item.active{background:var(--brand-tint)}.ask-hist-item.active .ask-hist-line{color:var(--brand-ink)}.ask-hist-line{display:flex;align-items:center;gap:6px;padding:6px 8px;cursor:pointer}.ask-hist-item:hover .ask-hist-line{color:var(--text)}.ask-hist-title{flex:1 1;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ask-hist-del{background:none;border:0;color:var(--text-3);cursor:pointer;font-size:16px;line-height:1;padding:0 2px;opacity:0}.ask-hist-item:hover .ask-hist-del{opacity:1}.ask-hist-del:hover{color:var(--text)}.ask-hist-tools{display:none;padding:0 8px 7px}.ask-hist-item:hover .ask-hist-tools{display:block}.ask-main{display:flex;flex-direction:column;min-height:0}.ask-scroll{flex:1 1;overflow-y:auto}.ask-scroll-inner{max-width:760px;margin:0 auto;padding:22px 18px 28px}.ask-inputbar{border-top:1px solid var(--border);background:var(--bg);padding:12px 18px}.ask-inputbar-inner{max-width:760px;margin:0 auto;display:flex;gap:8px}@media (max-width:760px){.ask-layout{grid-template-columns:1fr}.ask-side{display:none}}.nb{max-width:820px;margin:0 auto;padding:24px 20px 60px}.nb-head{display:flex;align-items:baseline;gap:12px;margin-bottom:14px}.nb-head h1{font-size:22px;margin:0}.nb-proj{font-size:12.5px;color:var(--text-2);border:1px solid var(--border);padding:3px 10px;border-radius:20px}.nb-add{display:flex;gap:8px;margin-bottom:18px}.nb-add input{flex:1 1;padding:9px 12px;font:inherit;font-size:14px}.nb-add button,.nb-add input{border:1px solid var(--border-2);border-radius:var(--radius);background:var(--bg);color:var(--text)}.nb-add button{padding:0 14px;cursor:pointer;font:inherit;font-size:13.5px}.nb-add button:hover{border-color:var(--brand)}.nb-empty{color:var(--text-3);font-size:13.5px;padding:18px 2px}.nb-cards{display:flex;flex-direction:column;gap:10px}.nb-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:13px 14px;background:var(--bg)}.nb-card-top{display:flex;align-items:center;gap:9px;margin-bottom:7px}.nb-type{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);border:1px solid var(--border);border-radius:5px;padding:1px 6px}.nb-title{flex:1 1;font-size:14.5px;font-weight:500;color:var(--text)}.nb-flag{font-size:11px;padding:2px 8px;border-radius:11px;white-space:nowrap}.nb-flag.ok{color:var(--brand-ink);background:var(--brand-tint)}.nb-flag.warn{color:#8a5a00;background:#fdeccb}.nb-anchor{font-family:var(--font-mono);font-size:11px;color:var(--text-3);margin-bottom:8px}.nb-note{width:100%;border:1px solid var(--border);border-radius:var(--radius);padding:6px 9px;font:inherit;font-size:12.5px;background:var(--bg-2);color:var(--text);margin-bottom:9px}.nb-note:focus{outline:none;border-color:var(--brand)}.nb-actions{display:flex;gap:14px;align-items:center;font-size:12.5px}.nb-actions a{color:var(--brand)}.nb-actions button{background:none;border:0;color:var(--text-3);cursor:pointer;font:inherit;font-size:12.5px;padding:0}.nb-actions button:hover{color:var(--text)}@media (prefers-color-scheme:dark){.nb-flag.warn{color:#f0c886;background:#3a2c10}}.nb-save-btn{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;border:1px solid var(--border-2);background:var(--bg);color:var(--text-2);border-radius:8px;padding:5px 10px;cursor:pointer;font:inherit}.nb-save-btn:hover{border-color:var(--brand);color:var(--brand-ink)}.nb-saved{font-size:12.5px;color:var(--brand-ink);background:var(--brand-tint);padding:5px 10px;border-radius:8px}.rp-root{position:fixed;inset:0;z-index:100;pointer-events:none}.rp-root.open{pointer-events:auto}.rp-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.34);opacity:0;transition:opacity .28s ease}.rp-root.open .rp-backdrop{opacity:1}.rp-panel{position:absolute;top:0;right:0;bottom:0;width:min(468px,94vw);display:flex;flex-direction:column;background:var(--bg);border-left:1px solid var(--border-2);box-shadow:-8px 0 30px rgba(0,0,0,.18);transform:translateX(100%);transition:transform .3s ease}.rp-root.open .rp-panel{transform:none}.rp-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border);flex-shrink:0}.rp-title{font-size:13px;font-weight:500;color:var(--text-2)}.rp-close{border:0;background:none;font-size:17px;line-height:1;color:var(--text-2);cursor:pointer;padding:4px 7px;border-radius:6px}.rp-close:hover{background:var(--bg-2);color:var(--text)}.rp-handle{display:none}.rp-frame{flex:1 1;width:100%;border:0;background:var(--bg)}@media (max-width:720px){.rp-panel{top:auto;left:0;right:0;bottom:0;width:100%;height:86vh;border-left:0;border-top-left-radius:16px;border-top-right-radius:16px;box-shadow:0 -8px 30px rgba(0,0,0,.22);transform:translateY(100%)}.rp-handle{display:block;width:40px;height:4px;border-radius:3px;background:var(--border-2);margin:8px auto 2px;cursor:pointer}}.embed-shell{min-height:100vh;background:var(--bg)}.reader-embed{padding:14px 16px 40px}.embed-head{margin-bottom:12px}.embed-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.embed-pane{max-width:none;margin:0;padding:0}.lc-dots{display:inline-flex;gap:4px}.lc-dots span{width:6px;height:6px;border-radius:50%;background:var(--brand);display:inline-block;animation:lc-bounce 1.2s ease-in-out infinite both}.lc-dots span:nth-child(2){animation-delay:.15s}.lc-dots span:nth-child(3){animation-delay:.3s}@keyframes lc-bounce{0%,80%,to{transform:scale(.55);opacity:.45}40%{transform:scale(1);opacity:1}}