:root{--ink: #1c1c18;--green: #3c5a40;--green-mid: #6f8a63;--green-tint: #eef2ec;--green-faint: #f6f8f5;--gray: #6f6f6f;--hair: #ddddd6;--rust: #9c5b3f;--rust-tint: #f7efe9;--bg: #fdfdfb;--paper: #ffffff;--serif: "Newsreader", Georgia, serif;--sans: "Inter", -apple-system, sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--serif);font-size:19px;line-height:1.62;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.progress{position:fixed;top:0;left:0;width:100%;height:3px;background:var(--green);z-index:100;transform-origin:0 0;transition:transform 80ms linear}.masthead{display:flex;align-items:center;justify-content:center;gap:11px;padding:1.15rem 1.4rem 1.05rem;border-bottom:1px solid var(--hair);background:var(--paper)}.masthead .wordmark{font-family:var(--sans);font-size:15px;font-weight:700;letter-spacing:.17em;text-transform:uppercase;color:var(--ink)}.hero{max-width:46rem;margin:0 auto;padding:5.5rem 1.4rem 1rem;text-align:left}.hero .kicker{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--green);margin-bottom:1.2rem;display:flex;align-items:center;gap:.6rem}.hero .kicker .dot{width:7px;height:7px;border-radius:50%;background:var(--green);display:inline-block}.hero h1{font-family:var(--serif);font-optical-sizing:auto;font-size:clamp(2rem,5vw,3.05rem);font-weight:550;line-height:1.12;letter-spacing:-.015em;margin:0 0 1.3rem}.hero .byline{font-family:var(--sans);font-size:14px;color:var(--gray);display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;padding-bottom:2.2rem;border-bottom:1px solid var(--hair)}.hero .byline strong{color:var(--ink);font-weight:600}.hero .byline .sep{color:var(--hair)}.proto-note{max-width:46rem;margin:1.4rem auto 0;padding:0 1.4rem}.proto-note-inner{font-family:var(--sans);font-size:13.5px;line-height:1.5;color:var(--green);background:var(--green-faint);border:1px solid #dbe4d8;border-radius:8px;padding:.7rem 1rem}.article{max-width:46rem;margin:0 auto;padding:1rem 1.4rem 4rem}.article h2{font-family:var(--serif);font-size:1.72rem;font-weight:600;line-height:1.2;letter-spacing:-.01em;margin:3.2rem 0 1rem}.article h3{font-family:var(--serif);font-size:1.32rem;font-weight:600;line-height:1.25;margin:2.4rem 0 .8rem}.article h2 strong,.article h3 strong{font-weight:inherit}.article p{margin:0 0 1.35rem}.article a{color:var(--green);text-decoration:underline;text-decoration-color:#b5c4ae;text-underline-offset:2.5px;transition:text-decoration-color .12s}.article a:hover{text-decoration-color:var(--green)}.article ul,.article ol{margin:0 0 1.35rem;padding-left:1.4rem}.article li{margin-bottom:.45rem}.article blockquote{margin:0 0 1.35rem;padding:.2rem 0 .2rem 1.2rem;border-left:3px solid var(--green-mid);color:#444}.article p em:only-child{display:block;font-family:var(--sans);font-style:normal;font-size:13.5px;line-height:1.55;color:var(--gray);max-width:40rem}.article table{display:block;overflow-x:auto;border-collapse:collapse;font-family:var(--sans);font-size:13.5px;line-height:1.45;margin:2rem 0;border-top:2px solid var(--ink)}.article th{text-align:left;font-weight:600;padding:.6rem .8rem;border-bottom:1px solid var(--ink);background:var(--green-faint);min-width:8rem}.article td{vertical-align:top;padding:.55rem .8rem;border-bottom:1px solid var(--hair);min-width:8rem}.fig{margin:2.6rem auto 1rem;width:100%}.figwide{width:min(60rem,calc(100vw - 28px));margin-left:50%;transform:translate(-50%)}.fig-frame{background:var(--paper);border:1px solid var(--hair);border-radius:12px;padding:1.3rem 1.4rem 1.2rem;box-shadow:0 1px 2px #1c1c180a,0 8px 28px #1c1c180d}.fig-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.35rem}.fig-kicker{font-family:var(--sans);font-size:11.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--green)}.fig-hint{font-family:var(--sans);font-size:12px;color:var(--gray)}.fig-title{font-family:var(--sans);font-size:17px;font-weight:600;letter-spacing:-.01em;margin:0 0 1rem}.dcanvas-outer{width:100%;overflow-x:auto;overflow-y:hidden}.dcard{position:absolute;display:flex;align-items:center;gap:9px;padding:0 10px;background:var(--paper);border:1px solid var(--hair);border-radius:8px;transition:box-shadow .16s,border-color .16s,background .16s,opacity .2s}.dcard.accent{border-color:var(--green);border-width:1.5px}.dcard.clickable{cursor:pointer}.dcard.clickable:hover{box-shadow:0 2px 10px #3c5a402e}.dcard.active{border-color:var(--green);border-width:1.5px;background:var(--green-faint);box-shadow:0 2px 12px #3c5a4038}.dcard.dim{opacity:.38}.dchip{flex:none;width:30px;height:30px;border-radius:6px;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center}.dchip.mid{background:var(--green-mid)}.dchip.rust{background:var(--rust)}.dtext{font-family:var(--sans);min-width:0}.dlabel{font-size:12.5px;font-weight:600;line-height:1.25;color:var(--ink);white-space:nowrap}.dsub{font-size:10.5px;font-style:italic;color:var(--gray);line-height:1.3;white-space:nowrap}.dhdr{position:absolute;font-family:var(--sans);font-size:12px;font-weight:700;color:var(--green);white-space:nowrap}.dnote{position:absolute;font-family:var(--sans);font-size:11px;color:var(--gray);white-space:nowrap}.dnote.k{font-weight:600;color:var(--green)}.dcontainer{position:absolute;border:1.4px solid var(--green);border-radius:10px;background:transparent}.dpanel{position:absolute;border:1px solid var(--hair);border-radius:10px}.controls{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:1rem;font-family:var(--sans)}.btn{font-family:var(--sans);font-size:13px;font-weight:600;padding:7px 14px;border-radius:7px;border:1px solid var(--green);background:var(--green);color:#fff;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:background .12s,transform 60ms}.btn:hover{background:#2f4832}.btn:active{transform:translateY(1px)}.btn.secondary{background:var(--paper);color:var(--green);border-color:#b9c6b3}.btn.secondary:hover{background:var(--green-faint)}.btn:disabled{opacity:.45;cursor:default}.seg{display:inline-flex;border:1px solid #b9c6b3;border-radius:7px;overflow:hidden}.seg button{font-family:var(--sans);font-size:12.5px;font-weight:500;padding:6px 11px;border:none;background:var(--paper);color:var(--ink);cursor:pointer;border-right:1px solid #dce4d9}.seg button:last-child{border-right:none}.seg button.on{background:var(--green);color:#fff;font-weight:600}.slider-row{display:flex;align-items:center;gap:.7rem;font-family:var(--sans);font-size:13px;color:var(--ink)}.slider-row input[type=range]{accent-color:var(--green);width:170px}.slider-val{font-weight:700;color:var(--green);font-variant-numeric:tabular-nums;min-width:2.2em}.status-line{margin-top:.9rem;font-family:var(--sans);font-size:13.5px;line-height:1.5;color:var(--ink);background:var(--green-faint);border:1px solid #dbe4d8;padding:.55rem .9rem;border-radius:7px;min-height:2.6em}.status-line .who{font-weight:700;color:var(--green)}.stepdots{display:inline-flex;gap:6px;align-items:center}.stepdots button{width:24px;height:24px;border-radius:50%;border:1px solid #b9c6b3;background:var(--paper);color:var(--gray);font-family:var(--sans);font-size:11.5px;font-weight:600;cursor:pointer;padding:0}.stepdots button.on{background:var(--green);border-color:var(--green);color:#fff}.dlog{margin-top:1rem;background:#17201a;border-radius:8px;padding:.7rem .95rem;font-family:var(--mono);font-size:11.5px;line-height:1.7;color:#c8d6c4;max-height:132px;overflow-y:auto}.dlog .t{color:#7d907a;margin-right:.7em}.dlog .ok{color:#9fcf9a}.dlog-empty{color:#66755f;font-style:italic}.f1-grid{display:grid;grid-template-columns:1fr 1fr;gap:0}.f1-panel{padding:.4rem 1.1rem .6rem;min-width:0}.f1-panel+.f1-panel{border-left:1px solid var(--hair)}.f1-hdr{font-family:var(--sans);font-size:13px;font-weight:700;color:var(--green);margin-bottom:.15rem}.f1-sub{font-family:var(--sans);font-size:11.5px;color:var(--gray);margin-bottom:.7rem}.f1-chart-num{font-family:var(--sans);font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.f1-silos{display:flex;gap:8px;flex-wrap:wrap;margin-top:.8rem}.f1-agency{font-family:var(--sans);font-size:11.5px;font-weight:600;padding:5px 9px;border:1px solid var(--hair);border-radius:6px;background:var(--paper);display:inline-flex;align-items:center;gap:6px;color:var(--ink)}.f1-agency svg{color:var(--green-mid)}.f1-agency.g{border-color:var(--green)}.f1-agency.g svg{color:var(--green)}.f1-barrier{font-family:var(--sans);font-size:11px;color:var(--rust);border-top:1.5px dashed var(--rust);padding-top:4px;margin-top:8px}.f1-link{font-family:var(--sans);font-size:11px;color:var(--green);border-top:1.5px solid var(--green);padding-top:4px;margin-top:8px}@media(max-width:720px){.f1-grid{grid-template-columns:1fr}.f1-panel+.f1-panel{border-left:none;border-top:1px solid var(--hair);margin-top:.8rem;padding-top:1rem}body{font-size:17px;line-height:1.58}.masthead{padding:.85rem 1rem .75rem}.masthead .wordmark{font-size:13px}.hero{padding:2.6rem 1.1rem .6rem}.hero .byline{padding-bottom:1.4rem}.proto-note{padding:0 1.1rem}.article{padding:.6rem 1.1rem 3rem}.article h2{font-size:1.45rem}.article h3{font-size:1.18rem}.figwide{width:calc(100vw - 16px)}.fig-frame{padding:.9rem .8rem .85rem;border-radius:10px}.fig-title{font-size:15px}.fig-head{flex-wrap:wrap;gap:.3rem}.fig-hint{display:none}.controls{gap:.45rem;margin-top:.8rem}.btn{font-size:12px;padding:6px 11px}.seg button{font-size:11px;padding:5px 8px}.slider-row{font-size:12px;width:100%}.slider-row input[type=range]{flex:1;min-width:0}.status-line,.detail-box{font-size:12.5px;padding:.5rem .7rem}.dlog{font-size:10px;line-height:1.65;padding:.55rem .7rem}.stepdots button{width:21px;height:21px;font-size:10.5px}.sysgrid{grid-template-columns:1fr;gap:7px}.f1-silos{gap:6px}.f1-agency{font-size:10.5px;padding:4px 7px}}.detail-box{margin-top:.9rem;font-family:var(--sans);font-size:13px;line-height:1.55;color:var(--ink);border:1px solid var(--hair);border-radius:8px;padding:.6rem .9rem;background:var(--green-faint)}.detail-box b{color:var(--green)}.toc-rail{display:none}@media(min-width:1440px){.toc-rail{display:block;position:fixed;top:96px;left:18px;width:216px;z-index:40;max-height:calc(100vh - 130px);overflow-y:auto;background:#fdfdfbd1;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(221,221,214,.6);border-radius:12px;padding:.9rem .8rem}}.toc-kicker{font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--gray);margin-bottom:.7rem}.toc-list{list-style:none;margin:0 0 1.2rem;padding:0}.toc-list li{margin:0}.toc-list li.toc-sub a{padding-left:22px;font-size:11px}.toc-list a{display:block;font-family:var(--mono);font-size:11.5px;line-height:1.4;color:var(--gray);text-decoration:none;padding:4px 8px;border-radius:5px;transition:color .12s,background .12s}.toc-list a:hover{color:var(--ink);background:var(--green-faint)}.toc-list a.on{color:var(--green);font-weight:500;background:var(--green-tint)}.toc-map{border-top:1px solid var(--hair);padding-top:.9rem}.toc-map-label{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--green);margin-top:.45rem}.linkcard{position:fixed;z-index:90;display:flex;align-items:center;gap:10px;max-width:340px;background:var(--paper);border:1px solid var(--hair);border-radius:9px;box-shadow:0 4px 22px #1c1c1824;padding:9px 12px;pointer-events:none;font-family:var(--sans)}.linkcard-icon{flex:none;width:20px;height:20px;border-radius:4px}.linkcard-body{min-width:0;display:flex;flex-direction:column;gap:1px}.linkcard-title{font-size:12.5px;font-weight:600;color:var(--ink);line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.linkcard-url{font-size:11px;color:var(--gray);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.linkcard-ext{flex:none;color:var(--green-mid)}.sysgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:.9rem}.sysfield{border:1px solid var(--hair);border-radius:8px;padding:.55rem .8rem;background:var(--green-faint)}.sysfield-label{font-family:var(--sans);font-size:10.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--green);margin-bottom:3px}.sysfield-value{font-family:var(--sans);font-size:13px;line-height:1.45;color:var(--ink)}.dcanvas-hint{display:none;font-family:var(--sans);font-size:11px;color:var(--gray);padding-bottom:4px}@media(hover:none)and (max-width:900px){.dcanvas-hint{display:block}}.scrolly{position:relative;width:100vw;margin:2.5rem 0 2.5rem calc(50% - 50vw)}.scrolly-bg{position:sticky;top:0;height:100vh;overflow:hidden}.scrolly-slides{position:relative;margin-top:-100vh;z-index:2;pointer-events:none}.scrolly-slide{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:0 1.2rem}.scrolly-slide:last-child{padding-bottom:8vh}.scrolly-card{pointer-events:auto;max-width:26rem;background:#fffffff5;border:1px solid var(--hair);border-radius:11px;box-shadow:0 6px 30px #1c1c1824;padding:1.05rem 1.25rem;font-family:var(--sans);font-size:14.5px;line-height:1.6;color:var(--ink)}.scrolly-kicker{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--green);margin-bottom:.45rem}@media(max-width:720px){.scrolly-card{font-size:13px;padding:.85rem 1rem}}@media(min-width:1100px){.scrolly-slide{justify-content:flex-start;padding-left:clamp(3rem,13vw,17rem)}}.toc-fab{position:fixed;right:18px;bottom:18px;z-index:70;width:46px;height:46px;border-radius:50%;border:none;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 16px #1c1c1847}.toc-sheet{position:fixed;right:18px;bottom:74px;z-index:70;width:min(300px,calc(100vw - 36px));max-height:62vh;overflow-y:auto;background:var(--paper);border:1px solid var(--hair);border-radius:12px;box-shadow:0 10px 40px #1c1c1838;padding:.9rem .8rem}@media(min-width:1440px){.toc-fab,.toc-sheet{display:none}}.article h2,.article h3{scroll-margin-top:28px}.footer{border-top:1px solid var(--hair);margin-top:3rem;padding:2rem 1.4rem 3.5rem;text-align:center;font-family:var(--sans);font-size:13px;color:var(--gray)}.footer a{color:var(--green)}
