/* ===== Tokens: Palette variants ===== */
:root, [data-pal="night"]{
  --bg:#F5F3EE; --surface:#FFFDF9; --line:#E4DECF; --ink:#141B3D; --ink2:#4A5070; --mute:#7A7F99;
  --dark:#0F1535; --dark2:#1A2150; --dark-line:#2A3160; --deep:#0A0F28; --on-dark:#F5F3EE; --on-dark2:#C4C8DE; --on-dark3:#8C93B8;
  --accent:#C9A66B; --accent-hi:#DDBE86; --accent-ink:#0F1535; --accent-txt:#A8864D;
  --signal:#1FA3C7; --signal-l:#5FD0EE;
  --mood1:rgba(95,208,238,.16); --mood2:rgba(120,90,220,.14);
}
[data-pal="day"]{
  --bg:#EEF3F7; --surface:#FFFFFF; --line:#D5E0EA; --ink:#0B2340; --ink2:#46607A; --mute:#7890A6;
  --dark:#12306B; --dark2:#1C3F82; --dark-line:#2E5096; --deep:#0B2045; --on-dark:#F4F8FC; --on-dark2:#C5D6EA; --on-dark3:#8FA8C8;
  --accent:#1FA3C7; --accent-hi:#43BADB; --accent-ink:#FFFFFF; --accent-txt:#137F9E;
  --signal:#2B2F8F; --signal-l:#9FE3F5;
  --mood1:rgba(159,227,245,.18); --mood2:rgba(255,255,255,.08);
}
[data-pal="maroon"]{
  --bg:#F6F1EA; --surface:#FFFCF7; --line:#E6D9CB; --ink:#2A1418; --ink2:#5E4A4D; --mute:#8E7A7C;
  --dark:#5A1824; --dark2:#6E2330; --dark-line:#84374380; --deep:#3A0F17; --on-dark:#F8EFE6; --on-dark2:#E3CBC4; --on-dark3:#C09A96;
  --accent:#D4AF6A; --accent-hi:#E4C68C; --accent-ink:#3A0F17; --accent-txt:#9C7A3A;
  --signal:#1FA3C7; --signal-l:#8FDDF0;
  --mood1:rgba(212,175,106,.14); --mood2:rgba(255,120,120,.10);
}
/* ===== Type variants ===== */
:root, [data-type="editorial"]{ --display:'Instrument Serif',Georgia,serif; --d-wt:400; --d-ls:-.02em; --d-style:italic; --d-case:none; }
[data-type="bodoni"]{ --display:'Bodoni Moda',Didot,Georgia,serif; --d-wt:500; --d-ls:-.03em; --d-style:italic; --d-case:none; }
[data-type="livery"]{ --display:'Archivo',Arial,sans-serif; --d-wt:800; --d-ls:-.035em; --d-style:normal; --d-case:uppercase; }
[data-type="poppins"]{ --display:'Poppins','Segoe UI',sans-serif; --d-wt:600; --d-ls:-.035em; --d-style:italic; --d-case:none; }
[data-type="sans"]{ --display:'Inter Tight','Helvetica Neue',Arial,sans-serif; --d-wt:700; --d-ls:-.04em; --d-style:normal; --d-case:none; }
[data-type="grotesk"]{ --display:'Space Grotesk','Segoe UI',sans-serif; --d-wt:600; --d-ls:-.04em; --d-style:normal; --d-case:none; }
[data-type="fraunces"]{ --display:'Fraunces',Georgia,serif; --d-wt:500; --d-ls:-.03em; --d-style:italic; --d-case:none; }
[data-type="hahmlet"]{ --display:'Hahmlet',Georgia,serif; --d-wt:500; --d-ls:-.035em; --d-style:normal; --d-case:none; }
[data-type="hahmlet"] .d{line-height:1.04}
[data-type="hahmlet"] .d-xxl{font-size:clamp(44px,6.6vw,104px)}
[data-type="hahmlet"] .d-xl{font-size:clamp(38px,5.4vw,84px)}
[data-type="hahmlet"] .line{padding-bottom:.2em;margin-bottom:-.2em}
[data-type="manrope"]{ --display:'Manrope','Segoe UI',system-ui,sans-serif; --d-wt:700; --d-ls:-.045em; --d-style:normal; --d-case:none; }
[data-type="manrope"] .d{line-height:1.02}
[data-type="manrope"] .line{padding-bottom:.2em;margin-bottom:-.2em}
[data-type="poppins"] .d,[data-type="sans"] .d, [data-type="grotesk"] .d{line-height:1.05}
[data-type="poppins"] .line, [data-type="sans"] .line, [data-type="grotesk"] .line, [data-type="fraunces"] .line{padding-bottom:.2em;margin-bottom:-.2em}
:root{
  --sans:'Manrope','Segoe UI',system-ui,sans-serif; --mono:'JetBrains Mono',Consolas,monospace;
  --ease:cubic-bezier(.2,.7,.2,1); --ease-io:cubic-bezier(.75,0,.25,1);
  --t-fast:.35s; --t-base:.9s; --t-slow:2.4s;
  --r-xs:6px; --r-s:10px; --r-m:16px; --r-l:22px; --r-xl:32px; --pill:999px;
  --e1:0 1px 2px rgba(15,21,53,.06),0 4px 12px rgba(15,21,53,.05);
  --e2:0 10px 30px rgba(15,21,53,.10);
  --e3:0 40px 80px rgba(10,15,40,.30);
  --gut:clamp(16px,5vw,72px); --sec:clamp(72px,10vw,140px);
}
[data-type="livery"] .display-var{font-stretch:112%}

/* ===== Reset & base ===== */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;transition:background .6s,color .6s}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
h1,h2,h3,h4{margin:0;text-wrap:balance}
p{margin:0;text-wrap:pretty}:focus-visible{outline:2px solid var(--signal);outline-offset:3px;border-radius:4px}
::selection{background:var(--accent);color:var(--accent-ink)}

.wrap{padding-inline:var(--gut)}
.sec{padding-block:var(--sec)}
.dark{background:var(--dark);color:var(--on-dark)}
.dark .muted{color:var(--on-dark2)}
.muted{color:var(--ink2)}
.tbc{color:var(--mute);font-style:italic}
.dark .tbc{color:var(--on-dark3)}
.mono{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:500}
.eyebrow{color:var(--signal)} .dark .eyebrow{color:var(--signal-l)}
.accent-txt{color:var(--accent-txt)} .dark .accent-txt{color:var(--accent)}

/* display type */
.d{font-family:var(--display);font-weight:var(--d-wt);letter-spacing:var(--d-ls);text-transform:var(--d-case);line-height:.95}
.d em{font-style:var(--d-style);color:var(--accent-txt)}
.dark .d em{color:var(--accent)}
[data-type="livery"] .d em{color:var(--signal)} [data-type="livery"] .dark .d em{color:var(--signal-l)}
.d-xxl{font-size:clamp(56px,9.4vw,140px)}
.d-xl{font-size:clamp(46px,6.4vw,96px)}
.d-l{font-size:clamp(38px,5vw,72px);line-height:1}
.d-m{font-size:clamp(28px,2.8vw,40px);line-height:1.08}
.d-s{font-size:clamp(22px,2vw,28px);line-height:1.15}
[data-type="livery"] .d-xxl{font-size:clamp(46px,8vw,118px)}
[data-type="livery"] .d-xl{font-size:clamp(38px,5.4vw,80px)}
[data-type="livery"] .d-l{font-size:clamp(32px,4.2vw,60px)}
[data-type="livery"] .d-m{font-size:clamp(22px,2.2vw,32px);letter-spacing:-.02em}
[data-type="livery"] .d-s{font-size:clamp(18px,1.6vw,22px);letter-spacing:-.01em}
.lead{font-size:clamp(17px,1.4vw,20px);line-height:1.65;max-width:58ch}
.line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.line>span{display:inline-block;will-change:transform}
.num{font-variant-numeric:tabular-nums}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001s!important;animation-iteration-count:1!important;transition-duration:.001s!important}
}
