/* subpage-base.css — shared foundation for all project subpages */
:root{
  --bg:#f8f8f6; --bg2:#f0eeea; --ink:#0a0d12; --accent:#1d3fd6; --accent2:#5f7fe8; --accent-grad:#1d3fd6;
  --sec:rgba(10,13,18,0.85); --mut:rgba(10,13,18,0.62); --bd:rgba(10,13,18,0.14);
  --dk:#070a10; --dk2:#0c1018; --dk-ink:#eef2f8; --dk-sec:rgba(238,242,248,0.76); --dk-bd:rgba(238,242,248,0.14);
  --f:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --fd:'Hanken Grotesk',system-ui,-apple-system,sans-serif;
  --ease:cubic-bezier(0.16,1,0.3,1);
  /* ===== spacing scale — one clean vertical rhythm for every subpage ===== */
  --sp-x:clamp(40px,6vw,96px);       /* section horizontal padding */
  --sp-y:clamp(80px,11.5vh,150px);   /* section vertical padding   */
  --gap-eyebrow:20px;   /* eyebrow (.sp__sh) → title                */
  --gap-title:28px;     /* title (.sp__h)   → body                  */
  --gap-para:18px;      /* paragraph → paragraph                    */
  --gap-module:34px;    /* data modules: stats / tools / formulae / takeaways */
  --gap-chart:clamp(48px,5vw,72px); /* breathing room above/below chart canvases */
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-y:scroll;scrollbar-width:none;-ms-overflow-style:none;background:var(--bg);}
html::-webkit-scrollbar{width:0;height:0;display:none;}
a{color:inherit;text-decoration:none;}
::selection{background:var(--accent);color:#fff;}

.gpf{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;will-change:transform;}
body>header,body>section,body>div.sp,body>a,body>footer{position:relative;z-index:1;}

/* progress bar — disabled */
.prog{display:none;}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;justify-content:space-between;align-items:center;padding:22px 44px;overflow:hidden;}
.nav::before{content:'';position:absolute;inset:0;background:#fff;border-bottom:1px solid rgba(0,0,0,0.08);transform:translateY(-100%);transition:transform .85s cubic-bezier(0.22,1,0.36,1);z-index:-1;}
.nav.in::before{transform:translateY(0);}
.nav *{color:#111;}
.nav__brand,.nav__links{transition:transform .85s cubic-bezier(0.22,1,0.36,1),opacity .7s ease;}
.nav:not(.in) .nav__brand,.nav:not(.in) .nav__links{transform:translateY(-210%);opacity:0;pointer-events:none;}
.nav__brand{font-family:'DM Sans',system-ui,sans-serif;font-weight:500;font-size:16px;letter-spacing:0.04em;white-space:nowrap;}
.nav__links{display:flex;gap:30px;font-family:'DM Sans',system-ui,sans-serif;font-size:13.5px;font-weight:500;letter-spacing:0.02em;}
.nav__links a{position:relative;opacity:0.88;transition:opacity .2s;text-decoration:none;}
.nav__links a::after{content:'';position:absolute;left:0;bottom:-3px;width:0;height:1px;background:#111;transition:width .35s cubic-bezier(0.22,1,0.36,1);}
.nav__links a:hover{opacity:1;}
.nav__links a:hover::after{width:100%;}
@media(max-width:640px){.nav{padding:16px 20px;}.nav__links{gap:14px;font-size:12px;}}


/* reveal */
.rv{opacity:0;transform:translateY(30px);transition:opacity .9s var(--ease),transform .9s var(--ease);}
.rv.in{opacity:1;transform:none;}
@media print{.rv{opacity:1!important;transform:none!important;}}
@media(prefers-reduced-motion:reduce){.rv{opacity:1!important;transform:none!important;}}

/* footer */
.foot{background:transparent;color:var(--sec);padding:24px 44px;display:flex;justify-content:space-between;align-items:center;font-family:var(--fd);font-size:13px;border-top:1px solid var(--bd);flex-wrap:wrap;gap:10px;}
.foot a{color:var(--sec);}.foot a:hover{color:var(--ink);}
@media(max-width:640px){.foot{padding:20px 20px;}}

