@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&family=Zen+Dots&display=swap");

:root{
  --ink-900:#0B0C15;--ink-800:#10111A;--ink-700:#1C1D25;--ink-600:#31323B;
  --ink-500:#4F505E;--ink-400:#595A68;--ink-300:#90909B;--ink-200:#D7D7E0;
  --ink-100:#E5E5E5;--ink-75:#F0F0F1;--ink-50:#F5F5F7;--ink-25:#F9F9FB;
  --paper:#FFFFFF;
  --bg:var(--paper);--bg-alt:var(--ink-25);--bg-inverse:var(--ink-900);
  --fg:var(--ink-900);--fg-muted:var(--ink-400);--fg-subtle:var(--ink-300);--fg-inverse:var(--paper);
  --border:var(--ink-100);--border-strong:var(--ink-900);--border-muted:rgba(144,144,155,0.3);
  --status-ok:#12B886;
  --font-display:"Zen Dots","Space Grotesk",system-ui,sans-serif;
  --font-body:"Space Grotesk","Montserrat",system-ui,-apple-system,sans-serif;
  --font-mono:"JetBrains Mono","IBM Plex Mono",ui-monospace,monospace;
  --container-max:1280px;
  --gutter:20px;
  --ease-out:cubic-bezier(0.16,1,0.3,1);
  --dur-fast:120ms;--dur-base:200ms;

  /* Legacy aliases — page-specific CSS uses these */
  --serif:var(--font-body);--sans:var(--font-body);--mono:var(--font-mono);
  --text:var(--fg);--text-dim:var(--fg-muted);--text-faint:var(--fg-subtle);
  --surface:var(--ink-25);--surface2:var(--ink-75);
  --border2:var(--ink-200);
  --red:#c9243a;--orange:#c45e1a;--yellow:#a68a00;--green:#0a7a5a;--blue:#1a7aaa;--purple:#7050c0;
}
html{scroll-padding-top:80px}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:1rem;line-height:1.4;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}

/* ============ HEADER ============ */
.site-nav{position:sticky;top:0;z-index:100;background:rgba(255,255,255,0.88);backdrop-filter:saturate(140%) blur(10px);-webkit-backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--border-muted)}
.site-nav-inner{margin:0;padding:0 var(--gutter) 0 32px;height:70px;display:flex;align-items:center;gap:20px}
.brand{display:inline-flex;align-items:baseline;gap:10px;text-decoration:none;color:var(--fg);flex-shrink:0}
.brand-mark{font-family:var(--font-display);font-weight:400;font-size:22px;letter-spacing:0.02em;line-height:1}
.nav-link{font-family:var(--font-body);font-size:14px;font-weight:500;color:var(--fg);text-decoration:none;white-space:nowrap;line-height:1;transition:color var(--dur-base)}
.nav-link:hover{color:var(--fg-muted)}
.nav-link.current{font-weight:600}
.nav-spacer{flex:1}
.nav-cta{font-family:var(--font-body);font-size:14px;font-weight:500;color:var(--fg);text-decoration:none;white-space:nowrap;transition:color var(--dur-base)}
.nav-cta:hover{color:var(--fg-muted)}
.btn-pdf{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 14px;background:var(--ink-900);color:var(--paper);border:1px solid var(--ink-900);font:500 14px/1.2 var(--font-body);cursor:pointer;text-decoration:none;white-space:nowrap;transition:transform var(--dur-fast) var(--ease-out)}
.btn-pdf:hover{opacity:0.8}
.btn-pdf:active{transform:translateY(1px)}
@media(max-width:1000px){
  .hide-mobile{display:none}
}
@media(max-width:840px){
  .site-nav-inner{height:56px;gap:12px;padding:0 16px}
  .nav-link,.nav-cta{font-size:13px}
  .brand-mark{font-size:18px}
}
@media(max-width:720px){
  .nav-link{display:none}
  .site-nav-inner{gap:10px}
}

/* ============ FOOTER ============ */
.site-footer{background:var(--ink-900);color:var(--fg-inverse);padding:64px 0 32px}
.footer-inner{max-width:var(--container-max);margin:0 auto;padding:0 var(--gutter);display:grid;grid-template-columns:1.2fr 2fr;gap:48px}
.footer-brand .brand-mark{font-family:var(--font-display);font-weight:400;font-size:22px;color:var(--paper)}
.footer-tag{color:var(--ink-300);max-width:36ch;margin-top:16px;font-size:14px}
.footer-cols{display:grid;grid-template-columns:repeat(2,1fr);gap:24px 16px}
.footer-col-h{font-family:var(--font-mono);font-size:11px;color:var(--ink-300);letter-spacing:0.08em;text-transform:uppercase;margin-bottom:12px}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:8px}
.footer-col a{color:var(--paper);text-decoration:none;font-size:14px}
.footer-col a:hover{opacity:0.7}
@media(max-width:840px){
  .footer-inner{grid-template-columns:1fr;gap:40px}
  .footer-cols{grid-template-columns:1fr}
}

/* ============ REPORT LAYOUT ============ */
.report-wrap{display:grid;grid-template-columns:380px minmax(0,1fr);max-width:none;margin:0;padding:0 0 80px 0}
.report-wrap .report-main{max-width:var(--container-max);padding-left:40px;padding-right:40px}
@media(max-width:1100px){.report-wrap{grid-template-columns:1fr;padding:0 var(--gutter) 80px}.report-wrap .report-main{max-width:none;padding-left:0;padding-right:0}}
.report-toc{position:sticky;top:70px;align-self:start;height:calc(100vh - 70px);overflow-y:auto;scrollbar-gutter:stable;padding:clamp(12px,2.5vh,24px) 24px;border-right:1px solid var(--border);font-family:var(--font-mono);font-size:14px;background:var(--paper)}
.report-toc::-webkit-scrollbar{width:4px}
.report-toc::-webkit-scrollbar-thumb{background:var(--ink-200)}
@media(max-width:1100px){.report-toc{display:none}}
.report-toc h3{font-family:var(--font-body);font-weight:700;font-size:clamp(12px,1.9vh,16px);letter-spacing:0.1em;text-transform:uppercase;color:var(--fg);margin-bottom:clamp(8px,1.6vh,16px)}
.report-toc h3::before{content:"[ "}
.report-toc h3::after{content:" ]"}
.report-toc ol{list-style:none}
.report-toc > ol > li{margin-bottom:clamp(0px,0.3vh,2px)}
.report-toc > ol > li > a{display:block;padding:clamp(2px,0.55vh,5px) 12px clamp(2px,0.55vh,5px) 10px;color:var(--fg);font-weight:500;text-decoration:none;border-left:2px solid transparent;margin-left:-2px;font-size:clamp(12px,1.9vh,16px);line-height:1.3;transition:color var(--dur-base),border-color var(--dur-base),background var(--dur-base)}
.report-toc > ol > li > a:hover{color:var(--fg-muted);border-left-color:var(--ink-300)}
.report-toc > ol > li > a.active-parent{border-left-color:var(--ink-200)}
.report-toc > ol > li > a.active{font-weight:600;border-left-color:var(--ink-900);background:var(--ink-100)}
.report-toc > ol > li > ol{list-style:none;margin:clamp(1px,0.3vh,2px) 0 clamp(4px,0.9vh,8px) 16px}
.report-toc > ol > li > ol > li > a{display:block;padding:clamp(1px,0.45vh,3px) 12px clamp(1px,0.45vh,3px) 10px;color:var(--fg-muted);text-decoration:none;font-weight:400;font-size:clamp(11px,1.7vh,14px);line-height:1.35;border-left:2px solid transparent;margin-left:-2px;transition:color var(--dur-base),border-color var(--dur-base),background var(--dur-base)}
.report-toc > ol > li > ol > li > a:hover{color:var(--fg);border-left-color:var(--ink-300)}
.report-toc > ol > li > ol > li > a.active{font-weight:600;border-left-color:var(--ink-900);color:var(--fg);background:var(--ink-100)}

.report-main{min-width:0;padding-top:0}

/* ============ COVER ============ */
.report-cover{padding:24px 0 48px;border-bottom:1px solid var(--border);margin-bottom:24px}
@media(max-width:1100px){.report-cover{padding:40px 0 36px}}
.cover-eyebrow{font-family:var(--font-body);font-size:14px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--fg);margin-bottom:24px}
.cover-eyebrow::before{content:"[ "}
.cover-eyebrow::after{content:" ]"}
.cover-title{font-family:var(--font-display);font-size:clamp(36px,5.5vw,64px);font-weight:400;line-height:1.1;letter-spacing:-0.01em;color:var(--fg);margin-bottom:16px;max-width:860px}
.cover-subtitle{font-family:var(--font-body);font-size:clamp(16px,2vw,20px);font-weight:400;line-height:1.6;color:var(--fg-muted);margin-bottom:32px;max-width:52ch}
.cover-meta{font-family:var(--font-mono);font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--fg-subtle);padding:14px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-bottom:32px;display:flex;gap:20px;flex-wrap:wrap}
.cover-meta span{color:var(--fg-muted)}
.cover-meta span.accent{color:var(--fg);font-weight:600}
.cover-abstract{max-width:720px;font-family:var(--font-body);font-size:18px;line-height:1.65;color:var(--fg-muted);font-weight:400}
.cover-abstract p{margin-bottom:14px}

/* ============ REPORT TYPOGRAPHY ============ */
.report-body{max-width:100%}
.report-body > section{padding:40px 0 8px}
.report-body > section + section{border-top:1px solid var(--border);margin-top:24px}

.report-body h1.rh{font-family:var(--font-body);font-size:clamp(30px,3.8vw,44px);font-weight:700;line-height:1.15;letter-spacing:-0.8px;color:var(--fg);margin:0 0 24px;max-width:860px;display:flex;align-items:baseline;gap:20px}
.report-body h1.rh .sn{font-family:var(--font-body);font-weight:300;font-size:0.7em;color:var(--purple);letter-spacing:0;min-width:0.9em}
.report-body h2.rh{font-family:var(--font-body);font-size:clamp(22px,2.4vw,28px);font-weight:600;line-height:1.25;letter-spacing:-0.3px;color:var(--fg);margin:44px 0 16px;max-width:820px;display:flex;align-items:baseline;gap:14px}
.report-body h2.rh .sn{font-family:var(--font-body);font-weight:400;font-size:0.75em;color:var(--purple)}
.report-body h3.rh{font-family:var(--font-body);font-size:12px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--purple);margin:28px 0 12px;display:flex;gap:10px;align-items:center}
.report-body h3.rh::before{content:"";width:20px;height:1px;background:var(--purple);opacity:0.5}
.report-body h3.sh{font-family:var(--font-body);font-size:20px;font-weight:700;color:var(--fg);margin:28px 0 8px;max-width:820px;letter-spacing:-0.01em}
.report-body h4{font-family:var(--font-body);font-size:16px;font-weight:700;color:var(--fg);margin:20px 0 6px}

.report-body p{font-family:var(--font-body);font-size:17px;line-height:1.7;color:var(--fg);margin:0 0 16px;max-width:720px}
.report-body p.lede{font-size:20px;font-weight:400;font-style:italic;color:var(--fg-muted);margin-bottom:24px}
.report-body p.small{font-family:var(--font-body);font-size:13px;color:var(--fg-muted);max-width:720px}
.report-body ul,.report-body ol{margin:8px 0 20px 0;padding-left:0;max-width:820px}
.report-body ul{list-style:none}
.report-body ul > li{font-family:var(--font-body);font-size:17px;line-height:1.7;padding:5px 0 5px 24px;position:relative;color:var(--fg)}
.report-body ul > li::before{content:"\00B7";position:absolute;left:8px;color:var(--purple);font-weight:700;font-size:1.6em;top:-2px}
.report-body ol{list-style:decimal;padding-left:28px}
.report-body ol > li{font-family:var(--font-body);font-size:17px;line-height:1.7;padding:3px 0;color:var(--fg)}
.report-body li strong{font-weight:700;color:var(--fg)}
.report-body li em{font-style:italic;color:var(--fg)}
.report-body a{color:var(--fg);text-decoration:none;border-bottom:1px solid var(--ink-200);transition:border-color var(--dur-base)}
.report-body a:hover{border-bottom-color:var(--ink-900)}
.report-body code{font-family:var(--font-mono);font-size:0.9em;padding:1px 6px;background:var(--ink-25);border:1px solid var(--border);color:var(--fg)}
.report-body strong{color:var(--fg);font-weight:700}

/* Tables */
.report-body table{border-collapse:collapse;font-family:var(--font-body);font-size:14px;margin:20px 0;max-width:100%;line-height:1.5;background:var(--bg);border:1px solid var(--border);overflow:hidden}
.report-body table th,.report-body table td{padding:9px 14px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}
.report-body table th{background:var(--ink-25);font-weight:700;color:var(--fg);letter-spacing:0.08em;font-size:11px;text-transform:uppercase;font-family:var(--font-mono)}
.report-body table tr:last-child td{border-bottom:none}
.report-body .num-col th,.report-body .num-col td{text-align:right;font-family:var(--font-mono)}
.report-body .tbl-wrap{overflow-x:auto;max-width:100%;margin:20px 0;-webkit-overflow-scrolling:touch}
.report-body .tbl-wrap table{margin:0}

/* Callout / note */
.note{max-width:820px;margin:18px 0;padding:16px 20px;background:var(--ink-25);border:1px solid var(--border);border-left:3px solid var(--ink-900);font-family:var(--font-body);font-size:14px;line-height:1.6;color:var(--fg-muted)}
.note strong{color:var(--fg)}
.note p{max-width:none;margin-bottom:10px;font-size:inherit}
.note p:last-child{margin-bottom:0}

/* Key Findings callout */
.findings{max-width:820px;margin:20px 0 28px;padding:22px 28px;background:var(--bg);border:1px solid var(--border);border-left:4px solid var(--purple)}
.findings-title{font-family:var(--font-body);font-size:11px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--purple);margin-bottom:14px}
.findings ul{list-style:none;padding:0;margin:0}
.findings li{font-family:var(--font-body);font-size:16px;line-height:1.6;padding:6px 0 6px 22px;position:relative;color:var(--fg)}
.findings li+li{border-top:1px dashed var(--border);margin-top:2px;padding-top:10px}
.findings li::before{content:"\2192";position:absolute;left:0;top:6px;color:var(--purple);font-weight:700}
.findings li+li::before{top:11px}
.findings li strong{color:var(--fg);font-weight:700}
.findings li em{color:var(--purple);font-style:normal;font-weight:600}
.findings li code{font-family:var(--font-mono);font-size:0.9em;padding:1px 5px;background:var(--ink-25);border:1px solid var(--border)}

/* Class definition blocks */
.cls-block{padding:20px 22px;background:var(--bg);border:1px solid var(--border);margin:14px 0 22px;max-width:900px}
.cls-block h3{font-family:var(--font-body);font-size:20px;font-weight:700;color:var(--fg);margin:0 0 6px;display:flex;align-items:baseline;gap:10px}
.cls-block h3 .num{font-family:var(--font-mono);font-weight:400;font-size:0.75em;color:var(--fg-subtle)}
.cls-block .scope{font-family:var(--font-body);font-size:14px;color:var(--fg-muted);line-height:1.6;margin-bottom:10px}
.cls-block ul{margin:8px 0 0 0}

/* Figure */
figure.report-figure{margin:28px 0 8px;max-width:100%;padding:20px 0}
figure.report-figure .figbody{background:var(--bg);border:1px solid var(--border);overflow:hidden}
figure.report-figure figcaption{font-family:var(--font-body);font-style:italic;font-size:14px;color:var(--fg-muted);text-align:center;padding:14px 8px 4px;max-width:820px;margin:0 auto;line-height:1.5}
figure.report-figure figcaption b{color:var(--fg);font-style:normal;font-weight:600;margin-right:6px}

/* ============ MODALS ============ */
.modal-overlay{position:fixed;inset:0;z-index:1000;background:rgba(11,12,21,0.6);backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;padding:24px}
.modal-overlay.open{display:flex}
.modal-dialog{width:100%;max-width:520px;padding:32px;border:1px solid var(--ink-600);background:var(--bg-inverse);color:var(--fg-inverse);position:relative;display:flex;flex-direction:column;gap:16px;font-family:var(--font-body)}
.modal-dialog h2{font-size:24px;font-weight:700;color:var(--fg-inverse);margin:0}
.modal-dialog .modal-lede{font-size:14px;color:var(--ink-300);line-height:1.6;margin-bottom:8px}
.modal-ways{list-style:none;padding:0;margin:0 0 12px}
.modal-ways li{font-size:14px;color:var(--ink-300);line-height:1.6;padding:6px 0}
.modal-ways li strong{font-weight:600}
.modal-field{margin-bottom:0;border-bottom:1px solid var(--ink-600)}
.modal-field label{display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-300);margin-bottom:4px;padding-top:12px}
.modal-field input,.modal-field textarea{width:100%;padding:12px 0;font-family:var(--font-body);font-size:16px;border:0;background:transparent;color:var(--fg-inverse);resize:vertical;outline:none;box-sizing:border-box}
.modal-field input::placeholder,.modal-field textarea::placeholder{color:var(--ink-300)}
.modal-field textarea{min-height:80px}
.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:12px}
.modal-btn{font-family:var(--font-body);font-size:14px;font-weight:500;padding:12px 20px;cursor:pointer;border:1px solid var(--ink-600);background:transparent;color:var(--ink-300);line-height:1;transition:transform var(--dur-fast) var(--ease-out)}
.modal-btn:hover{color:var(--fg-inverse);border-color:var(--fg-inverse)}
.modal-btn:active{transform:translateY(1px)}
.modal-btn.primary{background:var(--paper);color:var(--ink-900);border-color:var(--paper)}
.modal-btn.primary:hover{opacity:0.8}
.modal-success{background:rgba(18,184,134,0.1);border:1px solid rgba(18,184,134,0.3);color:var(--status-ok);padding:12px 14px;font-size:14px;display:none}
.modal-success.show{display:block}
.modal-close{position:absolute;top:12px;right:12px;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--fg-inverse);border:1px solid var(--ink-600);font-size:18px;cursor:pointer;line-height:1}
.modal-close:hover{background:var(--ink-700)}

/* ============ SMALL SCREENS ============ */
@media(max-width:480px){
  :root{--gutter:16px}
  .cover-title{margin-bottom:12px}
  .cover-subtitle{margin-bottom:24px}
  .cover-meta{gap:12px 16px;padding:12px 0}
  .cover-abstract{font-size:16px}
  .report-body p.lede{font-size:17px}
  .findings{padding:16px 18px}
  .note{padding:14px 16px}
  .cls-block{padding:16px 14px}
  .report-body h1.rh{gap:12px}
  .footer-inner{padding:0 var(--gutter)}
  .site-footer{padding:48px 0 28px}
  .modal-overlay{padding:12px}
  .modal-dialog{padding:24px 20px}
  .report-body > section{padding:28px 0 8px}
}

/* ============ DARK THEME ============ */
[data-theme="dark"]{
  --ink-900:#E0E0E8;--ink-800:#C8C8D2;--ink-700:#A8A8B5;--ink-600:#3A3B48;
  --ink-500:#6A6A7A;--ink-400:#8A8A98;--ink-300:#5A5A6A;--ink-200:#2E2F3A;
  --ink-100:#222330;--ink-75:#1C1D28;--ink-50:#171822;--ink-25:#131420;
  --paper:#0E0F17;
  --red:#e8556a;--orange:#e08540;--yellow:#c8a830;--green:#14c896;--blue:#3498d8;--purple:#8a70e0;
}
[data-theme="dark"] .site-nav{background:rgba(14,15,23,0.92)}
[data-theme="dark"] .site-footer{background:#0A0B13}
[data-theme="dark"] .site-footer .brand-mark{color:#E0E0E8}
[data-theme="dark"] .footer-col a{color:#C8C8D2}
[data-theme="dark"] .footer-tag,[data-theme="dark"] .footer-col-h{color:#5A5A6A}
[data-theme="dark"] .btn-pdf{background:#E0E0E8;color:#0E0F17;border-color:#E0E0E8}
[data-theme="dark"] .modal-overlay{background:rgba(0,0,0,0.7)}
[data-theme="dark"] .modal-dialog{background:#141520;border-color:#3A3B48}
[data-theme="dark"] .modal-dialog h2{color:#E0E0E8}
[data-theme="dark"] .modal-close{color:#E0E0E8;border-color:#3A3B48}
[data-theme="dark"] .modal-close:hover{background:#1C1D28}
[data-theme="dark"] .modal-field{border-bottom-color:#3A3B48}
[data-theme="dark"] .modal-field input,[data-theme="dark"] .modal-field textarea{color:#E0E0E8}
[data-theme="dark"] .modal-btn{border-color:#3A3B48;color:#8A8A98}
[data-theme="dark"] .modal-btn:hover{color:#E0E0E8;border-color:#E0E0E8}
[data-theme="dark"] .modal-btn.primary{background:#E0E0E8;color:#0E0F17;border-color:#E0E0E8}
[data-theme="dark"] .bar-track,[data-theme="dark"] .sbar-track,[data-theme="dark"] .sb,[data-theme="dark"] .lb-sac-bar{background:rgba(255,255,255,0.08)}
[data-theme="dark"] .hm tr:hover,[data-theme="dark"] .lb-row:hover{background:rgba(255,255,255,0.04)}
[data-theme="dark"] .sgrid{background:rgba(255,255,255,0.03)}
[data-theme="dark"] .mb.cap{background:rgba(255,255,255,0.06);border-color:rgba(255,255,255,0.1)}
[data-theme="dark"] .mb.cmp,[data-theme="dark"] .mb.def{border-color:rgba(255,255,255,0.1)}
[data-theme="dark"] .mb.cmp.md,[data-theme="dark"] .mb.def.m{background:rgba(255,255,255,0.04)}
[data-theme="dark"] .sv0{color:rgba(255,255,255,0.15)}
[data-theme="dark"] .links-list li{border-bottom-color:rgba(255,255,255,0.06)}
.theme-toggle{background:transparent;border:1px solid var(--border);color:var(--fg-muted);width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:color var(--dur-base),border-color var(--dur-base)}
.theme-toggle:hover{color:var(--fg);border-color:var(--fg)}
.theme-toggle svg{width:18px;height:18px}
.theme-toggle .icon-sun{display:none}
.theme-toggle .icon-moon{display:block}
[data-theme="dark"] .theme-toggle .icon-sun{display:block}
[data-theme="dark"] .theme-toggle .icon-moon{display:none}

/* Print */
@media print{
  .site-nav,.site-footer,.report-toc,.report-toolbar{display:none}
  .report-wrap{grid-template-columns:1fr;max-width:100%;padding:0}
  .report-wrap .report-main{max-width:100%;padding:0}
  body{background:#fff}
  [data-theme="dark"]{--ink-900:#0B0C15;--ink-800:#10111A;--ink-700:#1C1D25;--ink-600:#31323B;--ink-500:#4F505E;--ink-400:#595A68;--ink-300:#90909B;--ink-200:#D7D7E0;--ink-100:#E5E5E5;--ink-75:#F0F0F1;--ink-50:#F5F5F7;--ink-25:#F9F9FB;--paper:#FFFFFF;--red:#c9243a;--orange:#c45e1a;--yellow:#a68a00;--green:#0a7a5a;--blue:#1a7aaa;--purple:#7050c0}
}
