
@font-face{font-family:'Geist';src:url('assets/fonts/Geist.ttf');font-weight:100 900;font-display:swap}
@font-face{font-family:'Inter';src:url('assets/fonts/Inter.ttf');font-weight:100 900;font-display:swap}
@font-face{font-family:'Space Mono';src:url('assets/fonts/SpaceMono-Regular.ttf');font-weight:400;font-display:swap}
@font-face{font-family:'Space Mono';src:url('assets/fonts/SpaceMono-Bold.ttf');font-weight:700;font-display:swap}
:root{--paper:#F7F7F4;--ink:#14161B;--mut:#666C78;--mut2:#41474F;--line:#EAEAE4;--line2:#F0F0EC;--blue:#2D6FF7;--blued:#1F5AE0;--red:#DC2626;--green:#14A048;--sky:#DEE8FF;--lav:#EAE6FF;--peach:#FFE7E3}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,system-ui,sans-serif;color:var(--ink);font-size:16px;line-height:1.62;background:#fff;-webkit-font-smoothing:antialiased}
.disp,h1,h2,.ptitle{font-family:Geist,system-ui,sans-serif;letter-spacing:-.03em}
.mono,.kick,.pt,.clab,.cval,.src,.fp,.meta{font-family:'Space Mono',monospace}
a{color:var(--blued);text-decoration:none}
.mk{height:20px;width:auto;vertical-align:middle}
/* progress */
#prog{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--blue),#7C3AED,var(--red));width:0;z-index:60}
/* header */
header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:12px 22px}
header .brand{display:flex;align-items:center;gap:9px;font-family:Geist;font-weight:700;font-size:18px;letter-spacing:-.02em}
header .hactions{display:flex;align-items:center;gap:12px}
.btn{display:inline-block;background:var(--green);color:#fff;font-weight:600;font-size:14px;padding:9px 16px;border-radius:10px}
.btn:hover{background:#0F833A;color:#fff}
.toc-toggle{display:none;background:none;border:1px solid var(--line);border-radius:9px;padding:8px 12px;font-family:'Space Mono';font-size:12px;cursor:pointer}
/* layout */
.wrap{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:250px 1fr;gap:40px;padding:0 22px}
aside.toc{position:sticky;top:78px;align-self:start;height:calc(100vh - 96px);overflow-y:auto;padding:22px 0;font-size:13px}
aside.toc a{display:block;color:var(--mut);padding:5px 12px;border-left:2px solid transparent;line-height:1.35}
aside.toc a:hover{color:var(--ink)}
aside.toc a.toc-part{font-family:'Space Mono';text-transform:uppercase;letter-spacing:.06em;font-size:10.5px;color:var(--blued);margin-top:16px;font-weight:700;border:0}
aside.toc a.toc-secx{font-weight:600;color:var(--ink)}
aside.toc a.active{color:var(--ink);border-left-color:var(--blue);background:linear-gradient(90deg,rgba(45,111,247,.06),transparent)}
main{min-width:0;padding-bottom:60px}
/* hero */
.hero{position:relative;border-radius:20px;overflow:hidden;padding:64px 44px 72px;margin:26px 0 10px}
.washfull{background:radial-gradient(rgba(45,111,247,.07) 1.3px,transparent 1.4px) 0 0/22px 22px,radial-gradient(720px 460px at 92% 6%,#D3E1FF,transparent 58%),radial-gradient(560px 400px at 100% 58%,#E7E0FF,transparent 56%),radial-gradient(520px 380px at 72% 100%,#FFE0DA,transparent 58%),var(--paper)}
.hero .eyebrow{display:inline-block;font-family:'Space Mono';text-transform:uppercase;letter-spacing:.09em;font-size:11px;color:var(--blued);background:#fff;border:1px solid #E3E7EE;border-radius:999px;padding:5px 13px}
.hero h1{font-size:clamp(34px,6vw,58px);font-weight:800;line-height:.99;margin:16px 0 0}
.hero h1 .b{color:var(--blue)}
.hero .grad-rule{height:5px;width:120px;border-radius:3px;background:linear-gradient(100deg,var(--blue),#7C3AED 52%,var(--red));margin:18px 0 16px}
.hero .sub{font-size:clamp(16px,2.4vw,21px);color:var(--mut2);max-width:640px;line-height:1.4}
.hero .pills{margin-top:20px;display:flex;gap:9px;flex-wrap:wrap}
.hero .fp{font-size:12px;color:#3a3f48;background:#fff;border:1px solid #E3E7EE;border-radius:999px;padding:6px 13px}
.hero .fp .ok{color:var(--green);font-weight:700}
.hero .herobtn{margin-top:24px}
/* part banners */
.part{border-radius:20px;overflow:hidden;margin:40px 0;padding:52px 44px}
.part .part-in{position:relative}
.part .mkw{position:absolute;right:0;top:0}.part .mkw .mk{height:22px}
.part .pt{text-transform:uppercase;letter-spacing:.14em;font-size:13px;color:var(--blued)}
.part .ptitle{font-size:clamp(28px,5vw,40px);font-weight:800;margin:6px 0 0}
.part .ptitle .b{color:var(--blue)}
.part .grad-rule{height:5px;width:104px;border-radius:3px;background:linear-gradient(100deg,var(--blue),#7C3AED 52%,var(--red));margin:12px 0 14px}
.part .d-sub{font-size:17px;color:var(--mut2);max-width:640px;margin:0}
/* sections */
.rsec{padding:34px 0;border-top:1px solid var(--line2);scroll-margin-top:84px}
.rsec:first-of-type{border-top:0}
.kick{display:inline-block;text-transform:uppercase;letter-spacing:.08em;font-size:11px;color:var(--blued);background:#fff;border:1px solid #E3E7EE;border-radius:999px;padding:4px 12px 4px 10px}
.kick .dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--blue);margin-right:6px;vertical-align:1px}
h2.sec{font-size:clamp(24px,3.6vw,32px);font-weight:700;margin:12px 0 6px;line-height:1.1}
h2.sec .b,.b{color:var(--blue)}
.lead{color:var(--mut2);font-size:18px;margin:4px 0 14px}
.rsec p{margin:0 0 14px}
h3.sub3{font-family:Geist;font-size:18px;font-weight:600;letter-spacing:-.02em;margin:22px 0 6px}
/* charts */
.chart{margin:16px 0 8px}
.crow{display:grid;grid-template-columns:minmax(90px,180px) 1fr 62px;align-items:center;gap:12px;margin:8px 0}
.clab{font-size:13px;text-align:right;font-weight:600;font-family:Inter}
.ctrack{background:#EDEDE8;border-radius:6px;height:20px;overflow:hidden}
.cbar{display:block;height:100%;border-radius:6px}
.cval{font-size:12px;color:var(--mut)}
.src{font-size:12px;color:#9096A0;border-left:2px solid var(--line);padding:5px 0 5px 12px;margin:10px 0 18px}
.quote{border-left:4px solid var(--blue);padding:6px 0 6px 18px;margin:22px 0;font-family:Geist;font-size:clamp(19px,2.6vw,24px);font-weight:600;line-height:1.32;letter-spacing:-.02em}
.quote small{display:block;font-family:'Space Mono';font-size:12px;font-weight:400;color:#7a808a;margin-top:9px}
.callout{border:1px solid #F3C9C9;background:#FDF3F3;border-radius:14px;padding:16px 18px;margin:16px 0}
.callout b{color:#B02020}
.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.findings{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}
.fcard{border:1px solid #ECECE6;border-radius:14px;padding:16px 18px;background:var(--paper)}
.fcard b{font-family:Geist;font-size:26px;font-weight:700;display:block;letter-spacing:-.02em}
.fcard span{font-size:13px;color:#5a606b}
.statband{display:flex;gap:22px;flex-wrap:wrap;border:1px solid #ECECE6;border-radius:16px;padding:18px 22px;background:var(--paper);margin:12px 0}
.statband b{font-family:Geist;font-size:24px;font-weight:700;display:block;letter-spacing:-.02em}
.statband span{font-size:12px;color:#5a606b}
table{width:100%;border-collapse:collapse;margin:12px 0;font-size:13.5px}
th{font-family:'Space Mono';text-align:left;padding:9px 10px;background:var(--paper);border-bottom:2px solid var(--line);text-transform:uppercase;font-size:10.5px;letter-spacing:.03em;color:var(--mut)}
td{padding:8px 10px;border-bottom:1px solid var(--line2);vertical-align:top}
td.st{font-weight:600;white-space:nowrap}td.n{text-align:right;font-family:'Space Mono'}
table.mini td.n,table.mini th{text-align:right}table.mini th:first-child{text-align:left}
.tablewrap{overflow-x:auto}
/* plist */
.plist .pitem{border:1px solid #ECECE6;border-left:3px solid var(--green);border-radius:12px;padding:13px 16px;margin:11px 0;background:var(--paper)}
.pitem b{font-family:Geist;display:block;font-size:17px;letter-spacing:-.02em}
.pitem span{font-size:14.5px;color:var(--mut2)}
/* timeline */
.timeline{margin:16px 0;border-left:2px solid var(--line);padding-left:4px}
.tl-row{display:grid;grid-template-columns:88px 1fr;gap:14px;padding:9px 0 9px 16px;position:relative}
.tl-row:before{content:"";position:absolute;left:-5px;top:16px;width:8px;height:8px;border-radius:50%;background:var(--blue)}
.tl-year{font-family:'Space Mono';font-weight:700;font-size:14px;color:var(--blued)}
.tl-text{font-size:15px;color:var(--mut2)}
/* spotlights */
.spot-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:14px 0}
.spot{border:1px solid #ECECE6;border-radius:14px;padding:16px 18px;background:var(--paper)}
.spot-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.spot-h b{font-family:Geist;font-size:19px;letter-spacing:-.02em}
.spot-h span{font-family:'Space Mono';font-size:11px;color:var(--mut)}
.spot-r{font-size:14.5px;margin:6px 0}
.spot-rule{font-size:13px;color:var(--mut);border-top:1px solid var(--line2);padding-top:8px;margin-top:8px}
/* footer */
footer{margin-top:40px}
.foot-card{border-radius:20px;overflow:hidden;padding:52px 44px}
.foot-card .brand{display:flex;align-items:center;gap:9px;font-family:Geist;font-weight:700;font-size:18px}
.foot-card h2{font-size:clamp(24px,4vw,32px);font-weight:800;max-width:620px;margin:20px 0 0;line-height:1.12}
.foot-card h2 .b{color:var(--blue)}
.foot-card .grad-rule{height:5px;width:104px;border-radius:3px;background:linear-gradient(100deg,var(--blue),#7C3AED 52%,var(--red));margin:14px 0}
.foot-card p{color:var(--mut2);max-width:560px}
.foot-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:22px;font-family:'Space Mono';font-size:12px;color:var(--mut)}
.foot-bar a.tx{color:var(--blue);font-weight:700}
/* gated download modal */
.gate-ov{position:fixed;inset:0;background:rgba(20,22,27,.55);display:none;align-items:center;justify-content:center;z-index:100;padding:20px}
.gate-ov.open{display:flex}
.gate{background:#fff;border-radius:18px;max-width:440px;width:100%;padding:28px 26px;position:relative;box-shadow:0 30px 80px rgba(0,0,0,.32)}
.gate h3{font-family:Geist;font-size:23px;font-weight:700;letter-spacing:-.02em;margin:0 0 4px}
.gate .gsub{color:var(--mut2);font-size:14px;margin:0 0 16px;line-height:1.45}
.gate .gfield{margin:0 0 10px}
.gate input[type=text],.gate input[type=tel]{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;font-size:15px;font-family:Inter;background:var(--paper)}
.gate .gconsent{display:flex;gap:9px;align-items:flex-start;font-size:11px;color:var(--mut);line-height:1.5;margin:6px 0 14px}
.gate .gconsent input{margin-top:3px;flex:none}
.gate .gbtn{width:100%;background:var(--green);color:#fff;border:0;border-radius:10px;padding:13px;font-weight:600;font-size:15px;cursor:pointer;font-family:Inter}
.gate .gbtn:hover{background:#0F833A}
.gate .gclose{position:absolute;top:12px;right:15px;background:none;border:0;font-size:22px;line-height:1;color:var(--mut);cursor:pointer}
.gate .gdone{display:none;text-align:center;padding:8px 0}
.gate .gdone.show{display:block}
.gate .gicon{font-size:34px}

@media(max-width:900px){
 .wrap{grid-template-columns:1fr;gap:0}
 aside.toc{position:fixed;top:57px;left:0;right:0;bottom:0;height:auto;background:#fff;z-index:45;padding:16px 22px;display:none;border-bottom:1px solid var(--line);overflow-y:auto}
 aside.toc.open{display:block}
 .toc-toggle{display:inline-block}
 .findings,.two,.spot-grid{grid-template-columns:1fr}
 .crow{grid-template-columns:96px 1fr 52px;gap:9px}
 .hero,.part,.foot-card{padding-left:26px;padding-right:26px}
}
