
/* Layout: morning light. A full-bleed sky opens the page; every exhibit sits on warm paper with sky-blue and gold as the two data colors. One light world by choice: the subject is heavy, the room is bright. */
:root{
  color-scheme:light;
  --paper:#f8f5ee; --paper-2:#fffdf8; --card:#ffffff; --ink:#1c2836; --ink-2:#3f4c5c; --ink-3:#6d7887; --rule:#e2dccf; --rule-soft:rgba(28,40,54,.07);
  --sky:#3f7fbf; --sky-2:#8fbbe3; --sky-bg:#e6f0f9; --gold:#b8790f; --gold-2:#f2c56b; --gold-bg:#fbf0d9;
  --fact:#1d6b45; --fact-bg:#dcefe3; --rep:#8a5800; --rep-bg:#f8e9c6; --inf:#5a43a0; --inf-bg:#ebe5f9; --watch:#555b63; --watch-bg:#eceae5;
  --display:"Fraunces",Georgia,"Times New Roman",serif; --body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif; --mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --gut-l:max(16px,env(safe-area-inset-left,0px)); --gut-r:max(16px,env(safe-area-inset-right,0px));
}
*{box-sizing:border-box}
html{background:var(--paper)}
body{background:var(--paper);color:var(--ink);font:16px/1.6 var(--body);margin:0;overflow-x:hidden}
a{color:inherit;text-decoration-color:var(--ink-3);text-underline-offset:3px}
a:hover{text-decoration-color:var(--ink)}
:focus-visible{outline:2px solid var(--sky);outline-offset:2px;border-radius:3px}
.wrap{max-width:1080px;margin:0 auto;padding-left:var(--gut-l);padding-right:var(--gut-r)}
.prose{max-width:64ch}
.eyebrow{font:500 11.5px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
h1{font:350 clamp(40px,7vw,86px)/.98 var(--display);font-variation-settings:"SOFT" 100,"opsz" 144;letter-spacing:-.025em;margin:14px 0 20px;text-wrap:balance;color:var(--ink)}
h1 em{font-style:italic;color:var(--gold)}
h2{font:450 clamp(26px,3.6vw,40px)/1.1 var(--display);font-variation-settings:"SOFT" 70,"opsz" 120;margin:0 0 12px;text-wrap:balance}
h3{font:600 15px/1.3 var(--body);margin:0 0 6px}
.dek{font:400 19px/1.6 var(--body);color:var(--ink-2);max-width:54ch;margin:0}
.meta-row{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:22px;font:12px/1.5 var(--mono);color:var(--ink-3)}
.chip{display:inline-block;font:600 10.5px/1 var(--mono);letter-spacing:.06em;padding:4px 6px 3px;border-radius:4px;vertical-align:1px;white-space:nowrap}
.fact{color:var(--fact);background:var(--fact-bg)} .rep{color:var(--rep);background:var(--rep-bg)} .inf{color:var(--inf);background:var(--inf-bg)} .watch{color:var(--watch);background:var(--watch-bg)}
figure{margin:0}
figcaption,.cap{font:11px/1.45 var(--mono);color:var(--ink-3);margin-top:8px;letter-spacing:.02em}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

/* hero: the sky and its reflection */
.hero{position:relative;min-height:min(92vh,860px);display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;background:#cfe2f2}
.hero .sky{position:absolute;inset:0}
.hero .sky img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 47%;display:block;transform:scale(1.06);transition:transform 2.4s cubic-bezier(.2,.7,.2,1)}
.hero.ready .sky img{transform:scale(1)}
.hero canvas{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
.hero .veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(248,245,238,0) 30%,rgba(248,245,238,.55) 62%,rgba(248,245,238,.97) 92%)}
.hero .rec{position:absolute;right:var(--gut-r);top:calc(47% + 10px);font:600 10.5px/1 var(--mono);letter-spacing:.14em;color:rgba(28,40,54,.55);display:flex;align-items:center;gap:7px}
.hero .rec i{width:7px;height:7px;border-radius:50%;background:#d6493a;display:block;animation:blink 1.6s infinite}
.hero .rec.top{top:auto;bottom:calc(53% + 10px)}
.hero .rec.top i{background:var(--gold-2);animation:none}
@keyframes blink{50%{opacity:.2}}
.hero .inner{position:relative;z-index:2;width:100%;padding-block:0 40px}
.hero .inner .wrap > *{max-width:760px}
.hero figcaption{position:absolute;right:var(--gut-r);bottom:12px;z-index:2;max-width:46ch;text-align:right}

/* stats */
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-block:36px 0}
.stat{background:var(--card);padding:18px 20px;min-width:0;border-radius:14px;border:1px solid var(--rule);box-shadow:0 1px 0 rgba(28,40,54,.03),0 14px 30px -24px rgba(63,127,191,.45)}
.stat .big{font:350 44px/1 var(--display);font-variant-numeric:tabular-nums;color:var(--gold);margin:8px 0 8px}
.stat p{margin:0;font-size:13.5px;color:var(--ink-2)}

/* premise: the guest that draws closer */
.premise{position:relative;height:260vh;margin-top:64px}
.premise .stick{position:sticky;top:0;height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(20px,4vw,56px);overflow:hidden}
.premise .frames{position:relative;height:min(84vh,820px);aspect-ratio:9/16;justify-self:end;border-radius:999px 999px 18px 18px;overflow:hidden;box-shadow:0 30px 60px -40px rgba(28,40,54,.55),0 0 0 1px var(--rule)}
.premise .frames img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;opacity:0}
.premise .frames img:first-child{opacity:1}
.premise .txt{max-width:30ch}
.premise .quote{font:italic 350 clamp(24px,3.2vw,40px)/1.3 var(--display);font-variation-settings:"SOFT" 100;margin:0;text-wrap:balance}
.premise .quote span{transition:color .6s,opacity .6s;opacity:.18}
.premise .quote span.on{opacity:1}
.premise .meter{margin-top:22px;font:12px/1.5 var(--mono);color:var(--ink-3)}
.premise .meter b{color:var(--gold);font-weight:600}

/* exhibits */
section.ex{padding-block:72px 0}
.ex-head{border-top:1px solid var(--rule);padding-top:32px}
.exnum{font:600 12px/1 var(--mono);letter-spacing:.16em;color:var(--sky);margin-bottom:12px}
.bench{margin-top:24px;background:var(--card);border:1px solid var(--rule);border-radius:18px;padding:20px;min-width:0;box-shadow:0 20px 50px -40px rgba(63,127,191,.5)}
.relwrap{position:relative;overflow-x:auto}
svg text{font-family:var(--mono)}
.chart{width:100%;height:auto;display:block}
.note{font:12.5px/1.5 var(--body);color:var(--ink-3);margin-top:10px}

/* A */
.landscape{border-radius:12px;overflow:hidden;background:linear-gradient(#eaf3fb,#fbf6ea)}
.station{margin-top:16px;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.station .cell{border:1px solid var(--rule);border-radius:10px;padding:12px 14px;min-width:0;background:var(--paper-2)}
.station .cell.wide{grid-column:1/-1}
.station .k{font:500 11px/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:4px}
.station .v{font-size:14.5px;color:var(--ink)}
.stitle{font:450 26px/1.2 var(--display);margin:2px 0 0}
.guests{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.guest{font:500 12px/1 var(--mono);padding:6px 8px;border-radius:999px;background:var(--gold-bg);color:var(--rep);display:inline-flex;align-items:center;gap:6px}
.guest::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--gold-2);box-shadow:0 0 6px 2px rgba(242,197,107,.8)}
.stepper{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.stepper button,.play{font:500 13px/1 var(--body);color:var(--ink);background:var(--paper-2);border:1px solid var(--rule);border-radius:999px;padding:9px 14px;cursor:pointer}
.stepper button:hover,.play:hover{border-color:var(--sky)}
.ret-h{margin-top:22px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:baseline}

/* B */
.mirrorbox{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:16px;align-items:stretch}
.mirror{position:relative;border-radius:14px;overflow:hidden;min-height:420px;background:#cfe2f2;isolation:isolate}
.mirror img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%;display:block}
.mirror .refl{clip-path:inset(40% 0 0 0);transition:filter .7s ease}
.mirror .wash{position:absolute;left:0;right:0;bottom:0;top:40%;background:linear-gradient(180deg,rgba(248,245,238,.4),rgba(248,245,238,1));opacity:0;transition:opacity .7s ease}
.mirror canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.mirror .lab{position:absolute;left:14px;font:600 10.5px/1.3 var(--mono);letter-spacing:.12em;color:rgba(28,40,54,.7);background:rgba(255,253,248,.78);padding:6px 8px;border-radius:6px;backdrop-filter:blur(4px)}
.mirror .lab.a{top:14px}.mirror .lab.b{top:calc(40% + 12px)}
.mirror .who{position:absolute;left:14px;right:14px;bottom:14px;font:500 13px/1.45 var(--body);color:var(--ink);background:rgba(255,253,248,.86);padding:10px 12px;border-radius:10px;backdrop-filter:blur(6px)}
.mirror .who b{font-weight:600}
.dials{display:grid;grid-template-columns:1fr;gap:10px}
.dial{border:1px solid var(--rule);border-radius:12px;padding:12px;min-width:0;background:var(--paper-2)}
.dial .q{font:600 13.5px/1.35 var(--body);margin-bottom:8px}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg button{font:500 12.5px/1.2 var(--body);color:var(--ink);background:var(--card);border:1px solid var(--rule);border-radius:999px;padding:8px 11px;cursor:pointer;text-align:left}
.seg button:hover{border-color:var(--sky-2)}
.seg button[aria-pressed="true"]{border-color:var(--sky);background:var(--sky-bg);font-weight:600}
.seg button:disabled{opacity:.35;cursor:not-allowed}
.meters{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}
.meter2{border:1px solid var(--rule);border-radius:12px;padding:14px;background:var(--paper-2)}
.meter2 .val{font:350 44px/1 var(--display);font-variant-numeric:tabular-nums;margin:6px 0 10px}
.bar{height:8px;border-radius:4px;background:var(--rule-soft);overflow:hidden}
.bar span{display:block;height:100%;border-radius:4px;transition:width .5s cubic-bezier(.2,.7,.2,1)}
.meter2.reach .val{color:var(--gold)} .meter2.reach .bar span{background:linear-gradient(90deg,var(--gold-2),var(--gold))}
.meter2.exp .val{color:var(--sky)} .meter2.exp .bar span{background:linear-gradient(90deg,var(--sky-2),var(--sky))}
.meter2 p{margin:8px 0 0;font-size:13.5px;color:var(--ink-2)}
.rubric{width:100%;border-collapse:collapse;font-size:13px;margin-top:6px}
.rubric th,.rubric td{padding:7px 9px;border-bottom:1px solid var(--rule-soft);text-align:left;vertical-align:top}
.rubric th{font:500 11px/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.rubric td.n{font-variant-numeric:tabular-nums;white-space:nowrap}
details{margin-top:12px} summary{cursor:pointer;font:500 13px/1.4 var(--body);color:var(--ink-2)}

/* C */
.tl-read{margin-top:12px;border-radius:12px;padding:14px 16px;background:var(--paper-2);border:1px solid var(--rule);min-height:6.5em}
.tl-read .d{font:600 12px/1.3 var(--mono);color:var(--ink-3);letter-spacing:.06em}
.tl-read .t{font:450 21px/1.3 var(--display);margin:4px 0 6px}
.tl-read p{margin:0;font-size:14.5px;color:var(--ink-2)}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:10px;font:12px/1.4 var(--mono);color:var(--ink-3)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:-1px}

/* D */
.dband{position:relative;margin-top:72px;overflow:hidden;background:#d5e5f2}
.dband img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.dband::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(248,245,238,0) 20%,rgba(248,245,238,.9) 85%,var(--paper))}
.dband .wrap{position:relative;z-index:1;min-height:clamp(320px,40vw,520px);display:flex;flex-direction:column;justify-content:flex-end;padding-block:28px 8px}
.dband h2{max-width:26ch}
.split{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}
.side{background:var(--card);border:1px solid var(--rule);border-radius:16px;padding:18px 20px;min-width:0}
.side h3{font:450 21px/1.25 var(--display)}
.side ul{margin:6px 0 0;padding-left:18px;font-size:14px;color:var(--ink-2)}
.side li{margin:6px 0}
.side p{font-size:14.5px;color:var(--ink-2);margin:6px 0 0}
.side.vid{padding-top:14px}
.varch{border-radius:999px 999px 12px 12px;overflow:hidden;aspect-ratio:4/3;margin:0 0 14px;background:#2a3340}
.varch video{width:100%;height:100%;object-fit:cover;object-position:50% 62%;display:block}
.sides-h{display:grid;grid-template-columns:1fr 1fr;gap:16px}

.closing{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:40px;align-items:start}
.closing .win{border-radius:999px 999px 14px 14px;overflow:hidden;aspect-ratio:9/16;box-shadow:0 30px 60px -40px rgba(28,40,54,.6);position:sticky;top:calc(env(safe-area-inset-top,0px) + 24px);background:#2a3340}
.closing .win video{width:100%;height:100%;object-fit:cover;display:block}
.qs{counter-reset:q;list-style:none;padding:0;margin:14px 0 0;display:grid;gap:10px}
.qs li{counter-increment:q;padding:14px 16px 14px 52px;position:relative;background:var(--card);border:1px solid var(--rule);border-radius:12px;font-size:15.5px}
.qs li::before{content:counter(q);position:absolute;left:18px;top:12px;font:400 22px/1 var(--display);color:var(--gold)}
.ties{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ties a{font:500 12.5px/1 var(--mono);border:1px solid var(--rule);border-radius:999px;padding:9px 12px;text-decoration:none;background:var(--card)}
.ties a:hover{border-color:var(--sky)}
.sources{font-size:13px;color:var(--ink-2);padding-left:18px}
.sources li{margin:5px 0}
footer{margin-top:64px;border-top:1px solid var(--rule);padding-block:18px 48px;font:12px/1.6 var(--mono);color:var(--ink-3)}
@media (max-width:860px){
  .mirrorbox{grid-template-columns:1fr}
  .mirror{min-height:340px}
  .closing{grid-template-columns:1fr}
  .closing .win{position:static;aspect-ratio:4/5;max-width:420px}
  .premise{height:240vh}
  .premise .stick{grid-template-columns:1fr;align-content:center;gap:18px}
  .premise .frames{justify-self:center;height:52vh}
  .premise .txt{max-width:none}
}
@media (max-width:680px){
  .stats,.station,.meters,.split{grid-template-columns:1fr}
  .hero{min-height:88vh}
  .hero figcaption{position:relative;right:auto;bottom:auto;text-align:left;padding:0 var(--gut-r) 14px var(--gut-l)}
  .hero .rec{display:none}
  .chart.wide{min-width:640px}
  .landscape{min-width:640px}
  .relwrap.scroll::after{content:"Scroll sideways";display:block;font:11px/1.4 var(--mono);color:var(--ink-3);margin-top:6px}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
  .reveal{opacity:1;transform:none}
  .premise{height:auto}.premise .stick{position:static;height:auto;padding-block:40px}
  .premise .quote span{opacity:1}
}

/* ---- v3: esoteric geometry. Every image is drawn in code; nothing depicts a person. ---- */
:root{--paper:#f7f5f0;--line:rgba(28,40,54,.12)}
body{background:var(--paper)}
.hero{background:radial-gradient(120% 90% at 72% 38%,#fffdf7 0%,#f4f1ea 55%,#eef2f6 100%);min-height:min(94vh,900px)}
.hero canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero .veil{background:linear-gradient(90deg,rgba(247,245,240,.92) 0%,rgba(247,245,240,.75) 38%,rgba(247,245,240,0) 62%)}
.hero .legend3{position:absolute;left:max(var(--gut-l),calc((100vw - 1080px)/2 + 16px));top:26px;z-index:2;max-width:40ch;text-align:left;font:11px/1.5 var(--mono);color:var(--ink-3)}
.hero .legend3 b{font-weight:600}
.hero .legend3 .g{color:var(--gold)} .hero .legend3 .s{color:var(--sky)}
.premise canvas{height:min(84vh,780px);aspect-ratio:3/4;justify-self:end;display:block;max-width:100%}
.glassband{position:relative;margin-top:72px;border-radius:18px;overflow:hidden;height:clamp(200px,24vw,300px);background:#f4efe4}
.glassband canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.glassband p{position:absolute;left:16px;bottom:16px;right:16px;margin:0;max-width:40ch;font:italic 400 clamp(19px,2.2vw,26px)/1.35 var(--display);color:var(--ink);background:rgba(255,253,248,.9);padding:14px 16px;border-radius:12px}
.landscape{background:linear-gradient(#f4f6f9,#fbf8f1)}
.mirror{background:#fbf8f1}
.mirror canvas{position:absolute;inset:0;width:100%;height:100%}
.mirror .lab.b{top:calc(42% + 12px)}
.dstage{position:relative;margin-top:22px;height:clamp(280px,34vw,440px);border-radius:18px;overflow:hidden;background:radial-gradient(80% 120% at 50% 50%,#fffdf7,#f1eee6);border:1px solid var(--rule)}
.dstage canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.closing .win{background:radial-gradient(90% 70% at 50% 40%,#fffdf7,#f2efe7);border:1px solid var(--rule);box-shadow:0 30px 60px -44px rgba(28,40,54,.5)}
.closing .win canvas{width:100%;height:100%;display:block}
.qs li{cursor:default;transition:border-color .3s,background .3s}
.qs li.on{border-color:var(--gold-2);background:#fffaf0}
@media (max-width:860px){
  .hero{min-height:max(118vh,900px)}
  .hero .veil{background:linear-gradient(180deg,rgba(247,245,240,0) 0%,rgba(247,245,240,0) 34%,rgba(247,245,240,.94) 44%)}
  .hero .legend3{display:none}
  .premise canvas{justify-self:center;height:50vh}
}

.topnav{display:block;margin-bottom:28px;font:500 12px/1.4 var(--mono);letter-spacing:.06em}
.topnav a{text-decoration:none;color:var(--ink-2);background:rgba(255,253,248,.7);padding:7px 10px;border-radius:999px;backdrop-filter:blur(6px)}
.topnav a:hover{color:var(--ink)}
.hero .inner{padding-top:24px}
:root{padding-bottom:env(safe-area-inset-bottom,0px)}
