:root{--font-body:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-display:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
:root{--ink:#183b38;--ink-soft:#526864;--muted:#788a85;--line:#dce7df;--canvas:#f7f9f4;--paper:#fff;--pine:#123534;--pine-2:#1c5149;--lime:#d7eca1;--mint:#eaf4e4;--peach:#f9ebe1;--rust:#b66547;--shadow:0 18px 48px rgba(20,54,45,.075);font-family:'DM Sans',system-ui,sans-serif;color:var(--ink);background:var(--canvas);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}button,input{font:inherit}a{color:inherit}button{cursor:pointer}svg{display:block}::selection{background:#d7eca1;color:#123534}
.skip-link{position:absolute;z-index:100;left:1rem;top:-4rem;padding:.7rem 1rem;background:var(--pine);color:#fff;border-radius:12px}.skip-link:focus{top:1rem}
:focus-visible{outline:3px solid #ed9f6c;outline-offset:3px}
.site-shell{min-height:100vh}.topbar{height:74px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;gap:25px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}.brand{display:flex;align-items:center;gap:10px;min-width:224px;text-decoration:none}.brand-mark{width:38px;height:38px;border-radius:12px;background:var(--pine);display:grid;place-items:center}.brand-mark svg{width:28px;height:28px;fill:none;stroke:var(--lime);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.brand-mark circle{fill:#edac8b;stroke:none}.brand strong{font:700 22px/.95 'Outfit',sans-serif;letter-spacing:-.06em;display:block}.brand small{display:block;margin-top:4px;color:#738982;font:700 8px/1 'DM Sans',sans-serif;letter-spacing:.26em}.topbar-center{display:flex;align-items:center;gap:11px;color:#49625b;font-size:12px;font-weight:600;letter-spacing:.01em}.topbar-dot,.pulse-dot{width:7px;height:7px;background:#80bb91;border-radius:50%;flex:none;box-shadow:0 0 0 4px #d8ead9}.topbar-version{border-left:1px solid #d7e4da;padding-left:12px;margin-left:2px;color:#8aa097;font-size:11px}.top-actions{display:flex;gap:8px}.search-trigger,.icon-button{height:37px;border:1px solid var(--line);border-radius:9px;background:#fbfcf8;color:#526a62}.search-trigger{display:flex;align-items:center;gap:10px;padding:0 9px 0 13px;font-size:12px;min-width:186px;text-align:left}.search-trigger span:first-child{font-size:21px;line-height:1}.search-trigger kbd{margin-left:auto;background:#eff3ec;border:1px solid #e2e9df;border-radius:5px;color:#81958a;font-size:10px;padding:2px 5px}.mobile-menu{display:none;width:39px;font-size:19px}
.workspace{display:grid;grid-template-columns:250px minmax(0,1fr) 205px;min-height:calc(100vh - 74px)}.sidebar{border-right:1px solid var(--line);background:#fbfcf8}.sidebar-inner{position:sticky;top:74px;height:calc(100vh - 74px);overflow:auto;padding:31px 14px 22px 21px;display:flex;flex-direction:column}.nav-label{padding:0 12px 12px;color:#9caea4;text-transform:uppercase;font-size:10px;font-weight:800;letter-spacing:.16em}.nav-link{display:flex;gap:13px;align-items:center;text-decoration:none;padding:11px 12px;margin:2px 0;min-height:42px;border-radius:9px;color:#567068;font-size:13px;font-weight:600;transition:background .16s,color .16s,transform .16s}.nav-link:hover{background:#eff5ec;color:#234c44;transform:translateX(2px)}.nav-link.active{color:#1b493f;background:#e6f1de;font-weight:800}.nav-icon{font:600 19px/1 'Outfit',sans-serif;width:21px;text-align:center;color:#8aa799}.nav-link.active .nav-icon{color:#317057}.sidebar-note{display:flex;gap:11px;align-items:flex-start;background:#eff5ea;border:1px solid #e1ebda;margin:31px 3px 0;padding:15px 13px;border-radius:11px;color:#5d756a;font-size:11px;line-height:1.55}.sidebar-note .pulse-dot{margin-top:5px;width:6px;height:6px}.sidebar-note a{color:#2e6d55;font-weight:800;text-decoration:none}.sidebar-note a:hover{text-decoration:underline}.sidebar-footer{margin:auto 11px 0;padding-top:22px;color:#a0afa6;font-size:10px;line-height:1.55}
.main{padding:44px clamp(24px,4.8vw,78px) 95px;max-width:1100px;width:100%;margin:0 auto}.context-rail{border-left:1px solid var(--line);background:#fbfcf9;padding:43px 20px}.rail-inner{position:sticky;top:110px}.rail-eyebrow{font-size:10px;letter-spacing:.15em;text-transform:uppercase;font-weight:800;color:#9eafa2;margin-bottom:19px}.rail-link{display:block;text-decoration:none;font-size:11px;color:#698078;padding:9px 0;line-height:1.4}.rail-link:hover{color:#1a5b48}.rail-divider{height:1px;background:var(--line);margin:22px 0}.rail-help{font-size:11px;color:#80948a;line-height:1.55}.rail-help strong{display:block;color:#375e51;font-size:12px;margin-bottom:7px}.rail-help a{color:#2c7658;font-weight:700;text-decoration:none}
.eyebrow{display:inline-flex;align-items:center;gap:8px;color:#38725b;font-weight:800;font-size:10px;letter-spacing:.16em;text-transform:uppercase}.eyebrow:before{content:"";height:7px;width:7px;border-radius:2px;background:#85b874}.page-title,.hero h1{font-family:'Outfit',sans-serif;letter-spacing:-.055em;line-height:1.05;margin:13px 0 13px;color:var(--pine)}.page-title{font-size:clamp(36px,4.4vw,54px);font-weight:700}.hero h1{font-size:clamp(44px,6vw,77px);font-weight:700;max-width:730px}.hero h1 em{font-style:normal;color:#5b9675}.lede{font-size:15px;line-height:1.75;color:#60756c;max-width:690px;margin:0}.intro{margin-bottom:32px}.intro .lede{max-width:760px}.meta-row{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:22px}.pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:100px;background:#e9f2e3;color:#54735e;font-size:10px;font-weight:800;letter-spacing:.03em}.pill.neutral{background:#eff2ee;color:#7c8d82}.pill.warn{background:#fbede3;color:#a26144}.pill.dark{background:#204c45;color:#eaf6dc}.section{margin-top:50px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:20px}.section-heading h2,.section-title{font:700 clamp(24px,3vw,32px)/1.13 'Outfit',sans-serif;letter-spacing:-.04em;margin:0;color:var(--pine)}.section-heading p{color:#81938a;font-size:12px;margin:0 0 4px}.text-link{font-size:12px;font-weight:800;color:#34745a;text-decoration:none}.text-link:hover{text-decoration:underline}.subheading{font:700 19px/1.2 'Outfit',sans-serif;margin:0 0 9px;letter-spacing:-.02em}.muted{color:#7a9084}.small{font-size:12px;line-height:1.65}
.hero{position:relative;overflow:hidden;background:linear-gradient(120deg,#f7f9f4 35%,#edf4e9);margin:-44px calc(-1 * clamp(24px,4.8vw,78px)) 0;padding:63px clamp(24px,4.8vw,78px) 49px;border-bottom:1px solid #e2eadc}.hero-inner{position:relative;z-index:1}.hero .lede{max-width:570px}.hero-orb{position:absolute;right:-90px;top:-100px;width:500px;height:500px;border:1px solid #dce9d6;border-radius:50%;opacity:.65}.hero-orb:before,.hero-orb:after{content:"";position:absolute;border:1px solid #dce9d6;border-radius:50%;inset:50px}.hero-orb:after{inset:115px}.hero-actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:27px}.button{display:inline-flex;justify-content:center;align-items:center;gap:10px;min-height:42px;padding:10px 17px;border-radius:9px;text-decoration:none;font-size:12px;font-weight:800;transition:transform .15s,box-shadow .15s}.button:hover{transform:translateY(-2px)}.button.primary{background:var(--pine);color:#fff;box-shadow:0 9px 23px rgba(18,53,52,.18)}.button.secondary{background:#fff;border:1px solid #d8e4d7;color:#3d6955}.hero-stamp{position:absolute;right:25px;bottom:7px;display:flex;gap:8px;align-items:center;color:#83a18c;font:700 10px 'DM Sans';letter-spacing:.11em;text-transform:uppercase}.hero-stamp span{display:block;width:30px;height:1px;background:#9ab9a0}
.grid{display:grid;gap:14px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:21px;box-shadow:0 3px 10px rgba(25,67,51,.025)}.card-link{display:block;text-decoration:none;transition:transform .16s,box-shadow .16s,border-color .16s}.card-link:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#b8d7b5}.card h3{font:700 18px/1.18 'Outfit',sans-serif;letter-spacing:-.025em;margin:11px 0 6px}.card p{font-size:12px;line-height:1.65;color:#6d8176;margin:0}.card-arrow{display:inline-flex;margin-top:17px;color:#438366;font-size:12px;font-weight:800}.card-icon{width:37px;height:37px;border-radius:10px;background:#eaf3e5;display:grid;place-items:center;font:600 23px/1 'Outfit',sans-serif;color:#437b59}.card-icon.peach{background:#f9eee6;color:#bb7657}.card-icon.blue{background:#e5f0f2;color:#4a8485}
.journey{padding:27px 26px 30px;background:var(--pine);color:#fff;border-radius:17px;box-shadow:var(--shadow);position:relative;overflow:hidden}.journey:after{content:"";position:absolute;right:-55px;bottom:-80px;width:280px;height:280px;border-radius:50%;border:1px solid #5a8571;opacity:.5}.journey-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:24px}.journey-head span{color:#b6d3bb;font-size:10px;letter-spacing:.14em;font-weight:800;text-transform:uppercase}.journey-head a{color:#d4e8be;font-size:11px;font-weight:700;text-decoration:none}.flow-steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));position:relative;z-index:1}.flow-step{position:relative;text-decoration:none;color:#f2f8ed;padding:0 13px 0 0}.flow-step:not(:last-child):after{content:"→";position:absolute;right:9px;top:18px;color:#92b9a2}.flow-number{display:grid;place-items:center;width:32px;height:32px;background:#27564c;color:#d4e8b9;border:1px solid #426e59;border-radius:9px;font-size:11px;font-weight:800;margin-bottom:15px}.flow-step strong{display:block;font-size:12px;margin-bottom:5px}.flow-step small{display:block;color:#aec9b5;line-height:1.45;font-size:10px}.flow-step:hover strong{text-decoration:underline}
.notice{background:#eff5eb;border:1px solid #ddebd7;border-left:3px solid #8ab477;border-radius:11px;padding:16px 18px;font-size:12px;line-height:1.65;color:#5a7463}.notice strong{color:#315b42}.notice.warn{background:#fcf3ec;border-color:#f3ded0;border-left-color:#db9a72;color:#765f54}.notice.warn strong{color:#8b513a}.notice a{font-weight:800;color:#2a7357}.split-layout{display:grid;grid-template-columns:1.3fr .7fr;gap:16px}.stat-panel{background:#f1f6eb;border:1px solid #e0ead7;border-radius:14px;padding:24px}.stat-panel .big{font:700 54px/1 'Outfit',sans-serif;letter-spacing:-.06em;color:#3e7d58}.stat-panel p{font-size:12px;color:#718b78;line-height:1.55}.source-link{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#39765b;text-decoration:none;font-weight:800}.source-link:hover{text-decoration:underline}.source-block{margin-top:23px;padding-top:18px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:10px;align-items:center}.source-label{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#9caf9e;font-weight:800;margin-right:5px}.term-link{color:#257154;text-decoration:none;border-bottom:1px dotted #64a37a;font-weight:700}.term-link:hover{background:#e5f1e4}.tag-row{display:flex;flex-wrap:wrap;gap:6px}.tag{border:1px solid #dfe9dc;background:#f8fbf5;padding:5px 9px;border-radius:100px;color:#688475;font-size:10px;font-weight:700}.filters{display:flex;gap:7px;flex-wrap:wrap;margin:24px 0}.filter{border:1px solid var(--line);background:white;border-radius:100px;color:#6d8677;padding:8px 13px;font-size:11px;font-weight:800}.filter.active{background:var(--pine);border-color:var(--pine);color:#fff}.term-card{display:flex;align-items:start;gap:15px}.term-letter{flex:none;display:grid;place-items:center;border-radius:9px;background:#eff5e9;color:#43845f;width:38px;height:38px;font:700 16px 'Outfit'}.term-card h3{margin:2px 0 5px}.method-number{font:700 26px/1 'Outfit';letter-spacing:-.05em;color:#aacbaa}.method-card{display:flex;flex-direction:column;min-height:230px}.method-card .pill{align-self:flex-start}.method-card .card-arrow{margin-top:auto;padding-top:16px}.method-card h3{font-size:20px}.case-card{border-left:3px solid #d69a78}.case-card .pill{background:#f9ede6;color:#a56549}.case-card h3{font-size:18px}.group-label{margin:26px 0 12px;color:#4f7861;font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:800}.module-card h3{margin-top:3px}.module-card .mini-links{margin-top:15px;font-size:11px}.module-card .mini-links a{color:#2b7658;text-decoration:none;margin-right:11px;font-weight:800}.module-card .mini-links a:hover{text-decoration:underline}.detail-panel{background:white;border:1px solid var(--line);border-radius:15px;padding:26px}.detail-panel p{font-size:13px;line-height:1.75;color:#60766b;margin:9px 0}.detail-panel h2{font:700 22px 'Outfit';letter-spacing:-.03em;margin:0 0 12px}.detail-hero{display:grid;grid-template-columns:1fr auto;align-items:center;gap:25px;padding:27px;background:#eaf3e6;border-radius:15px;border:1px solid #dce9d7}.detail-hero .symbol{font:700 91px/1 'Outfit';color:#9bc197;opacity:.68}.detail-hero p{font-size:14px;color:#5b7464;line-height:1.7;max-width:620px}.related{display:flex;flex-wrap:wrap;gap:9px}.related a{font-size:11px;text-decoration:none;background:#eaf4e7;color:#357653;padding:8px 11px;border-radius:100px;font-weight:800}.related a:hover{background:#dcebd3}.breadcrumb{font-size:11px;color:#93a697;margin-bottom:18px}.breadcrumb a{color:#6c9478;text-decoration:none}.breadcrumb span{margin:0 7px}.check-list{display:grid;gap:11px}.check-item{display:flex;gap:12px;align-items:start;padding:14px 17px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:12px;color:#5d7568;line-height:1.6}.check-item b{color:#2f684e}.check-dot{width:21px;height:21px;border-radius:50%;background:#e7f2df;color:#428058;display:grid;place-items:center;flex:none;font-size:13px;font-weight:800}.code{display:block;overflow:auto;padding:17px 20px;border-radius:10px;background:#153731;color:#e8f5df;font:12px/1.65 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre}.source-list{display:grid;gap:10px}.source-row{display:flex;justify-content:space-between;gap:15px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 17px;text-decoration:none}.source-row:hover{border-color:#acd4ab;background:#fbfdf9}.source-row strong{display:block;font-size:12px;color:#315847}.source-row small{display:block;color:#8fa196;margin-top:4px;font-size:10px;overflow-wrap:anywhere}.source-row span:last-child{color:#6a9d79}
.search-dialog{width:min(620px,calc(100vw - 28px));max-height:min(650px,80vh);padding:0;border:1px solid #d4e5d8;border-radius:16px;box-shadow:0 40px 100px rgba(10,35,30,.29);background:#fff;color:var(--ink)}.search-dialog::backdrop{background:rgba(12,38,33,.45);backdrop-filter:blur(4px)}.search-head{display:flex;align-items:center;gap:12px;padding:16px 17px;border-bottom:1px solid var(--line)}.search-head>span{font-size:25px;color:#65a181}.search-head input{border:none;outline:none;flex:1;min-width:0;color:#254b3e;font-size:14px;background:transparent}.search-head button{border:1px solid #e1e9df;border-radius:5px;background:#f6f8f4;color:#9bae9e;padding:4px 7px;font-size:10px}.search-results{overflow:auto;max-height:440px;padding:11px}.search-item{display:block;text-decoration:none;padding:11px 13px;border-radius:9px}.search-item:hover,.search-item:focus{background:#eef5e9}.search-item strong{font:700 14px 'Outfit';display:block}.search-item span{font-size:10px;color:#74937d}.search-item p{font-size:11px;color:#7a9080;margin:3px 0 0}.search-empty{padding:20px;font-size:12px;color:#819386}.search-foot{border-top:1px solid var(--line);padding:11px 16px;color:#94a59a;font-size:10px}
@media(max-width:1180px){.workspace{grid-template-columns:225px minmax(0,1fr)}.context-rail{display:none}.brand{min-width:199px}.main{max-width:930px}.flow-steps{grid-template-columns:repeat(3,1fr);row-gap:23px}.flow-step:nth-child(3):after{display:none}}
@media(max-width:760px){.topbar{height:64px;padding:0 17px}.brand{min-width:0}.topbar-center{display:none}.mobile-menu{display:block}.search-trigger{min-width:38px;width:38px;justify-content:center;padding:0}.search-trigger span:not(:first-child),.search-trigger kbd{display:none}.workspace{display:block;min-height:calc(100vh - 64px)}.sidebar{display:none;position:fixed;z-index:40;top:64px;left:0;bottom:0;width:min(290px,85vw);box-shadow:20px 20px 60px #14362830}.sidebar.open{display:block}.sidebar-inner{top:64px;height:calc(100vh - 64px)}.main{padding:28px 19px 75px}.hero{margin:-28px -19px 0;padding:44px 19px 42px}.hero-orb{right:-290px}.hero-stamp{display:none}.grid.three,.grid.two,.split-layout{grid-template-columns:1fr}.flow-steps{grid-template-columns:repeat(2,1fr)}.flow-step:nth-child(3):after{display:block}.flow-step:nth-child(2n):after{display:none}.page-title{font-size:40px}.section{margin-top:39px}}
@media(max-width:430px){.flow-steps{grid-template-columns:1fr;gap:16px}.flow-step:not(:last-child):after{display:none}.flow-number{margin-bottom:7px}.flow-step{display:grid;grid-template-columns:36px 1fr;column-gap:9px}.flow-step small{grid-column:2}.hero h1{font-size:47px}.detail-hero .symbol{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
[hidden]{display:none!important}
.diagram-frame{background:#edf5e9;border:1px solid #dce8dc;border-radius:18px;overflow:auto;box-shadow:var(--shadow)}
.diagram-frame img{display:block;width:100%;min-width:700px;height:auto}
.rail-link{border:0;background:transparent;text-align:left;width:100%;cursor:pointer}
[id]{scroll-margin-top:96px}
/* Compact reference and detail views. */
.module-flow{display:grid;grid-template-columns:minmax(0,1fr) 22px minmax(0,1.3fr) 22px minmax(0,1fr);gap:9px;align-items:stretch;margin:28px 0 0}
.diagram-canvas{position:relative;width:100%;min-width:700px}.diagram-canvas img{min-width:0}.diagram-hotspot{position:absolute;display:block;border-radius:12px}.diagram-hotspot:hover{box-shadow:inset 0 0 0 3px #dc955b;background:#e0a06b22}.diagram-hotspot:focus-visible{outline:4px solid #dc955b;outline-offset:0;background:#e0a06b22}
.module-flow>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:21px;min-width:0}
.module-flow>.core{background:var(--pine);border-color:var(--pine);color:#fff}
.module-flow>span{align-self:center;color:#79a38a;text-align:center;font-size:22px}
.module-flow small{display:block;color:#7d9d86;font-weight:800;font-size:10px;letter-spacing:.14em;margin-bottom:9px;text-transform:uppercase}
.module-flow .core small{color:#bbd9af}
.module-flow strong{display:block;font-size:13px;line-height:1.5}
.decision-banner{background:#fcf0e8;border:1px solid #efd8ca;border-left:5px solid #b66547;border-radius:14px;padding:22px 25px}
.decision-banner span{display:block;color:#9f765e;font-size:10px;font-weight:800;letter-spacing:.13em}
.decision-banner strong{font:700 32px/1.4 'Outfit',system-ui,sans-serif;color:#96533b}
.decision-banner p{margin:0;font-size:12px;line-height:1.6;color:#7d675b}
.research-metric{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.research-metric>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}.research-metric small{display:block;color:#82968a;font-size:9px;font-weight:800;letter-spacing:.12em;margin-bottom:10px}.research-metric strong{display:block;color:#2a5744;font-size:14px;line-height:1.4}.research-metric span{display:block;color:#718676;font-size:10px;line-height:1.5;margin-top:3px}
.reference-list{display:grid;gap:10px}
.reference-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,30%);gap:16px;background:#fff;border:1px solid var(--line);padding:18px;border-radius:12px}
.reference-row code,.detail-panel code:not(.code){background:#eef4eb;border-radius:5px;padding:3px 6px;font-size:12px;overflow-wrap:anywhere}
.reference-row p{color:#63776b;font-size:12px;line-height:1.55;margin:9px 0}
.reference-row>div:last-child{display:flex;flex-direction:column;align-items:start;gap:5px}
.reference-row>div:last-child strong{font-size:13px;color:#274e40;overflow-wrap:anywhere}
.reference-row small{font-size:10px;color:#738c7a}
.reference-row .source-link{margin-top:5px}
@media(max-width:760px){.module-flow{grid-template-columns:1fr;gap:6px}.module-flow>span{transform:rotate(90deg);height:20px}.reference-row{grid-template-columns:1fr}.reference-row>div:last-child{border-top:1px solid var(--line);padding-top:12px}.research-metric{grid-template-columns:1fr}}
