/* One Deal · the hub, the scene pages and the full run. Tokens and header come from /site.css. */
*{box-sizing:border-box}
html{background:var(--paper)}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--serif);-webkit-font-smoothing:antialiased}
body.loading{overflow:hidden}
a{color:inherit}
.mono{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* loader: the thread draws, the title rises, the sheet lifts on a wave. Full version once per visit. */
#loader{position:fixed;inset:0;z-index:100}
#loader .sheet{position:absolute;inset:0;background:var(--paper);display:grid;place-items:center}
#loader .wave{position:absolute;left:0;right:0;top:100%;width:100%;height:14vh;display:block}
#loader .in{display:grid;justify-items:center;gap:22px;text-align:center;padding:0 20px}
#loader svg.th{width:min(420px,76vw);height:auto;overflow:visible}
#loader .th path{fill:none;stroke:var(--sig);stroke-width:3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}
#loader .ttl{margin:0;font:400 clamp(44px,6.5vw,92px)/1 var(--disp);letter-spacing:-.02em;color:var(--ink);display:flex;overflow:hidden;padding-bottom:.08em}
#loader .ttl span{display:inline-block;transform:translateY(105%);transition:transform 1s var(--out)}
#loader.named .ttl span{transform:none}
#loader .by{position:absolute;left:var(--g);top:22px}
#loader .pct{position:absolute;right:var(--g);bottom:22px;font-variant-numeric:tabular-nums}
#loader.quick .th,#loader.quick .pct,#loader.quick .by{display:none}

/* cursor */
#cur{position:fixed;left:0;top:0;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;z-index:99;pointer-events:none;background:#fff;mix-blend-mode:difference;display:none;
  transition:width .35s var(--out),height .35s var(--out),margin .35s var(--out)}
#cur.big{width:56px;height:56px;margin:-28px 0 0 -28px}
@media (hover:hover) and (pointer:fine){#cur{display:block}}

/* ---------- a scene ---------- */
.veil{position:absolute;inset:0;background:#000;opacity:0;pointer-events:none;z-index:20}
.ch{position:relative;margin-top:-100svh}
.ch.first{margin-top:0}
.ch .pin{position:sticky;top:0;height:100svh;overflow:hidden;background:var(--paper);transform-origin:50% 0;--bt:var(--bar);--bb:92px}
.ch .frame{position:absolute;left:0;right:0;top:var(--bt);bottom:var(--bb);overflow:hidden}
.ch .world{position:absolute;left:0;top:0;width:1600px;height:900px;transform-origin:0 0;will-change:transform}
.L{position:absolute;left:0;top:0;width:1600px;height:900px;overflow:visible}
.L.fg{filter:blur(5px)}
.ch .title{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;z-index:4}
.ch .title .t{display:grid;justify-items:center;gap:14px;text-align:center;padding:0 20px}
.ch .title h3{margin:0;font:400 clamp(40px,6vw,92px)/1 var(--disp);letter-spacing:-.02em;color:var(--ink);max-width:14ch}
.ch .title .k{color:var(--muted)}
.ch .wipe{position:absolute;inset:0;width:100%;height:100%;z-index:6;pointer-events:none}
.ch .wipeText{position:absolute;inset:0;display:grid;place-items:center;z-index:7;pointer-events:none;color:#fff;opacity:0;text-align:center;padding:0 20px}
.ch .wipeText p{margin:0 0 .3em;font:400 clamp(28px,4vw,60px)/1.12 var(--serif)}
.ch .wipeText span{display:block;margin-top:14px;color:#b9bac0}
.ch .cap{position:absolute;left:50%;bottom:calc(var(--bb) / 2 - .7em);transform:translateX(-50%);z-index:5;width:min(820px,60vw);text-align:center;pointer-events:none;font:400 clamp(18px,1.6vw,22px)/1.4 var(--serif);color:var(--ink)}
.ch .cap span{display:inline-block;opacity:0;transform:translateY(12px);transition:opacity .5s var(--out),transform .7s var(--out)}
.ch .cap.on span{opacity:1;transform:none}
.ch .endline{position:absolute;left:0;right:0;top:var(--bt);bottom:var(--bb);display:grid;place-items:center;z-index:5;pointer-events:none;opacity:0;background:rgba(255,255,255,.9)}
.ch .endline .t{display:grid;gap:14px;justify-items:center;text-align:center;padding:0 24px}
.ch .endline h3{margin:0;font:400 clamp(28px,4vw,60px)/1.12 var(--serif);color:var(--ink);max-width:22ch}
.ch .endline .mono{color:var(--muted)}
.ch .endline p{margin:0;color:var(--muted);font-style:normal;font-size:clamp(16px,1.5vw,19px)}
.ch .prog{position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--rule);z-index:8}
.ch .prog i{position:absolute;left:0;top:0;bottom:0;background:var(--ink);width:calc(var(--p,0)*100%)}
.ch .tog{position:absolute;right:var(--g);bottom:calc(var(--bb) / 2 - 12px);z-index:9;background:none;border:0;cursor:pointer;color:var(--ink);padding:6px 0;
  font:500 11px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;background:linear-gradient(var(--ink),var(--ink)) 0 100%/100% 1px no-repeat}
.ch .tog[aria-expanded="true"]{background-size:0 1px}
.ch .drawer{position:absolute;top:var(--bt);right:0;bottom:var(--bb);width:min(400px,90vw);z-index:8;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-left:1px solid var(--rule);padding:30px 28px 34px;overflow:auto;transform:translateX(101%);transition:transform .8s var(--out)}
.ch .drawer.open{transform:none}
.ch .drawer h4{margin:0 0 22px;font:400 30px/1.05 var(--disp);color:var(--ink)}
.ch .drawer .k{color:var(--muted);margin:0 0 10px}
.ch .drawer dl{margin:0}
.ch .drawer .sec{margin:0 0 20px;opacity:.25;transition:opacity .5s}
.ch .drawer .sec.on{opacity:1}
.ch .drawer dt{font:500 11px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.ch .drawer dd{margin:0;font-size:16px;line-height:1.5}
.ch .drawer ul{margin:4px 0 0;padding-left:18px;display:grid;gap:6px;font-size:15px}
.acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.usb{font:500 15px/1 var(--sans);border:1.5px solid var(--ink);background:#fff;color:var(--ink);padding:11px 16px;cursor:pointer;transition:background .3s,color .3s}
.usb:hover,.usb[aria-pressed="true"]{background:var(--ink);color:#fff}

/* ---------- the scene's end card (slides over the scene like the next card) ---------- */
.endcard{position:relative;z-index:30;margin-top:-100svh;min-height:100svh;background:var(--paper);padding:calc(var(--bar) + clamp(48px,8vw,96px)) var(--g) clamp(48px,8vw,96px);
  display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-content:center}
.endcard.static{margin-top:0}
.endcard .gag{margin:14px 0 0;font:400 clamp(30px,4.4vw,64px)/1.1 var(--serif);color:var(--ink);max-width:18ch}
.endcard .next{margin-top:40px;display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.endcard .more{margin-top:26px;display:flex;flex-wrap:wrap;gap:22px}
.endcard dl{margin:0;display:grid;gap:22px;align-content:start}
.endcard dt{font:500 11px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.endcard dd{margin:0;font-size:17px;line-height:1.55;color:var(--text)}
.endcard ul{margin:0;padding-left:18px;display:grid;gap:8px;font-size:16px;line-height:1.5}
.endcard .health{margin:18px 0 0}

/* ---------- the hub ---------- */
.hub-hero{padding:calc(var(--bar) + clamp(48px,9vw,120px)) var(--g) 0;text-align:center;display:grid;justify-items:center;gap:18px}
.hub-hero h1{margin:0;max-width:13ch;color:var(--ink)}
.hub-hero h1 em{font:inherit}
.hub-hero .sub{margin:0;max-width:40ch;font:400 clamp(17px,1.6vw,20px)/1.55 var(--serif);color:var(--text)}
.hub-hero .go{display:flex;flex-wrap:wrap;gap:22px;align-items:center;justify-content:center;margin-top:8px}
#lineup{width:100%;max-width:1200px;height:auto;display:block;margin:10px auto 0}
#lineup .cap2{display:none}
@media (max-width:600px){#lineup{overflow:visible;margin-bottom:18px}#lineup .cap1{display:none}#lineup .cap2{display:inline}}
.contact-sheet{position:relative;padding:clamp(40px,6vw,80px) var(--g) clamp(48px,7vw,96px);max-width:1440px;margin:0 auto}
.contact-sheet > .label{display:block;margin-bottom:18px}
.sheet-thread{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:visible}
.sheet-thread path{fill:none;stroke:var(--sig);stroke-width:3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.6s var(--out)}
.sheet-thread.drawn path{stroke-dashoffset:0}
.sheet-thread path.ghost{stroke-width:1.2;opacity:.45;transition-delay:.15s}
.panels{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2.4vw,32px)}
.panel{display:block;text-decoration:none;color:inherit}
.panel.wide{grid-column:1/-1}
.panel .win{position:relative;aspect-ratio:16/10;border:1px solid var(--ink);border-radius:24px;overflow:hidden;background:var(--paper-2);transition:transform .45s var(--out)}
.panel.wide .win{aspect-ratio:3/1}
.panel:hover .win,.panel:focus-visible .win{transform:scale(1.02)}
.panel .win .world{position:absolute;left:0;top:0;width:1600px;height:900px;transform-origin:0 0}
.panel .cap2{position:relative;display:grid;gap:6px;padding:14px 4px 4px;background:var(--paper)}
.panel .cap2 .row{display:flex;justify-content:space-between;gap:12px}
.panel .cap2 strong{font:400 clamp(19px,1.6vw,23px)/1.25 var(--serif);color:var(--ink);font-weight:400}
.panel .cap2 span.p{font-size:15px;line-height:1.45;color:var(--muted)}
.panel .seen{color:var(--sig)}
.panel.flagged .cap2 strong{background:linear-gradient(transparent 62%,var(--lime) 62%,var(--lime) 92%,transparent 92%)}
.hub-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;align-items:center;margin-top:clamp(36px,5vw,56px);padding-top:28px;border-top:1px solid var(--rule)}
.agenda{margin:0;max-width:52ch;font:400 18px/1.5 var(--serif);color:var(--text)}

/* ---------- the full run's opening and curtain call ---------- */
#hero{height:200svh;position:relative;z-index:1}
#hero .pin{position:sticky;top:0;height:100svh;overflow:hidden;transform-origin:50% 0;background:var(--paper)}
#hero .inner{height:100%;display:grid;grid-template-rows:1fr auto;padding:calc(var(--bar) + 8svh) var(--g) 4svh;gap:10px}
#hero h1{margin:0;align-self:center;justify-self:center;text-align:center;max-width:12ch;color:var(--ink)}
#hero h1 em{font:inherit}
#curtain{width:100%;max-width:1200px;height:auto;display:block}
#end{position:relative;z-index:40;margin-top:-100svh;min-height:100svh;background:var(--paper);display:grid;align-content:center;justify-items:center;text-align:center;gap:18px;padding:calc(var(--bar) + 40px) var(--g) 40px}
#end .score{margin:0;max-width:16ch;color:var(--ink)}

@media (max-width:900px){.panels{grid-template-columns:repeat(2,minmax(0,1fr))}.endcard{grid-template-columns:1fr}}
@media (max-width:600px){.panels{grid-template-columns:1fr}.panel .win,.panel.wide .win{aspect-ratio:4/3}
  .ch .pin{--bb:120px}.ch .cap{width:90vw;bottom:54px}.ch .tog{bottom:14px}}
/* a phone held upright: the scene plays in a 4:3 panel, the way a strip sits on a page, with its caption underneath.
   (A full-height frame would crop the landscape drawings to a sliver.) */
@media (max-aspect-ratio:3/4) and (prefers-reduced-motion:no-preference){
  .ch .pin{--ph:75vw;--ft:calc(var(--bt) + (100svh - var(--bt) - var(--bb) - var(--ph)) * .42)}
  .ch .frame,.ch .endline{top:var(--ft);bottom:auto;height:var(--ph)}
  .ch .cap{bottom:auto;top:calc(var(--ft) + var(--ph) + 24px);width:88vw}}
@media (prefers-reduced-motion:reduce){
  #loader .ttl span,.ch .cap span{transition:none}
  .ch{margin-top:0;height:auto!important}.ch .pin{position:relative;height:auto;aspect-ratio:16/10}
  .endcard,#end{margin-top:0}#hero{height:auto}#hero .pin{position:relative;height:auto}
  .sheet-thread path{transition:none;stroke-dashoffset:0}}

/* if the drawing libraries fail, the words still arrive */
.no-ink #film{display:none}.no-ink .endcard{margin-top:0}.no-ink #end{margin-top:0}
