/* Movies Fan Club: Ticket Booth. Light first: cream paper, wine and gold ink,
   dark only inside contained frames (booth window, letter boards, banner). */
:root{
  --cream:#F5EFE3;--cream2:#EFE5D2;--paper:#FFFDF8;--ink:#2A1418;--wine:#7C1F2E;--wine-d:#5E1522;
  --gold:#9C7B2F;--gold-ink:#765A1A;--gold-lt:#E9CF8A;--bulb:#FFE7A3;--muted:#6B5A55;--line:#E0D3BD;
  --night:#1E0D11;--rose:#F3E3DF;
  --disp:'Big Shoulders Display','Arial Narrow',Impact,sans-serif;
  --serif:'Newsreader',Georgia,'Times New Roman',serif;
  --mono:'Courier Prime','Courier New',monospace;
  --wrap:1240px;--r:16px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font:400 18px/1.6 var(--serif);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video,svg{max-width:100%;display:block}
img{height:auto}
a{color:inherit}
h1,h2,h3{font-family:var(--disp);font-weight:800;line-height:.98;letter-spacing:.005em;margin:0;text-wrap:balance}
h2{font-size:clamp(2.3rem,1.5rem + 3vw,4rem);text-transform:uppercase}
h3{font-size:1.6rem}
p{margin:0 0 1em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.mono{font-family:var(--mono)}
[hidden]{display:none!important}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--wine);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:12px;top:-60px;z-index:200;background:var(--wine);color:#fff;padding:10px 16px;border-radius:8px;font:700 15px var(--mono);text-decoration:none}
.skip:focus{top:12px}
.eyebrow{font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-ink);font-weight:700;margin:0 0 14px}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;font:800 17px/1 var(--disp);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;
  padding:14px 22px;border-radius:999px;border:2px solid transparent;cursor:pointer;transition:transform .2s,background .2s,color .2s}
.btn svg{width:18px;height:18px}
.btn-wine{background:var(--wine);color:#fff}
.btn-wine:hover{background:var(--wine-d);transform:translateY(-2px)}
.btn-line{background:transparent;border-color:var(--ink);color:var(--ink)}
.btn-line:hover{background:var(--ink);color:var(--cream)}
.btn-s{padding:9px 14px;font-size:14px}

/* top strip and launcher */
.strip{background:var(--cream2);border-bottom:1px solid var(--line);font:400 13px/1.2 var(--mono);position:relative;z-index:60}
.strip-in{display:flex;align-items:center;gap:18px;min-height:44px}
.strip-note{color:var(--muted);letter-spacing:.06em}
.strip-links{margin-left:auto;display:flex;gap:16px}
.strip-links a{text-decoration:none;letter-spacing:.08em;text-transform:uppercase;font-weight:700}
.strip-links a:hover{color:var(--wine)}
.launch{position:relative}
.launch summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border:1.5px solid var(--ink);border-radius:999px;
  font:700 12.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;background:var(--paper)}
.launch summary::-webkit-details-marker{display:none}
.launch summary::before{content:"";width:10px;height:10px;border-radius:2px;background:conic-gradient(var(--wine) 0 25%,var(--gold) 0 50%,var(--wine) 0 75%,var(--gold) 0)}
.launch summary::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px)}
.launch[open] summary{background:var(--ink);color:var(--cream)}
.launch[open] summary::after{transform:rotate(225deg)}
.launchpanel{position:absolute;left:0;top:calc(100% + 10px);width:min(760px,calc(100vw - 48px));max-height:min(70vh,560px);overflow:auto;
  background:var(--paper);color:var(--ink);border:1.5px solid var(--ink);border-radius:14px;padding:18px 20px;box-shadow:0 18px 50px rgba(42,20,24,.22);
  display:grid;grid-template-columns:repeat(3,1fr);gap:2px 16px;font:400 15px/1.3 var(--serif)}
.launchpanel h4{grid-column:1/-1;margin:14px 0 6px;font:700 12px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--wine);
  border-bottom:1px dashed var(--line);padding-bottom:6px}
.launchpanel h4:first-child{margin-top:0}
.launchpanel a{display:block;padding:6px 8px;text-decoration:none;border-radius:6px}
.launchpanel a:hover{background:var(--rose)}
.launchpanel a[aria-current="page"]{background:var(--wine);color:#fff;font-weight:600}

/* masthead */
.mast{background:var(--cream);border-bottom:2px solid var(--ink);position:sticky;top:0;z-index:50}
.mast-in{display:flex;align-items:center;gap:24px;min-height:78px}
.logo{display:inline-flex;align-items:center;gap:12px;text-decoration:none}
.mast .logo img{height:48px;width:auto}
.mast .logo .wm{height:24px}
.nav{margin-left:auto;display:flex;gap:4px;align-items:center}
.nav a{font:800 18px/1 var(--disp);letter-spacing:.1em;text-transform:uppercase;text-decoration:none;padding:10px 12px;border-radius:8px}
.nav a:hover{color:var(--wine);background:var(--rose)}
.nav a[aria-current="page"]{color:var(--wine);box-shadow:inset 0 -3px 0 var(--wine)}
.nav a.nav-tk{background:var(--wine);color:#fff;margin-left:8px;padding:10px 18px 10px 16px;border-radius:6px;position:relative;
  -webkit-mask:radial-gradient(circle 5px at 100% 50%,#0000 98%,#000) ;mask:radial-gradient(circle 5px at 100% 50%,#0000 98%,#000)}
.nav a.nav-tk:hover{background:var(--wine-d)}
.navbtn{display:none;margin-left:auto;align-items:center;gap:10px;background:none;border:1.5px solid var(--ink);border-radius:999px;padding:9px 14px;
  font:800 16px/1 var(--disp);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);cursor:pointer}
.navbtn .bars,.navbtn .bars::before,.navbtn .bars::after{display:block;width:16px;height:2px;background:currentColor;position:relative}
.navbtn .bars::before,.navbtn .bars::after{content:"";position:absolute;left:0}
.navbtn .bars::before{top:-5px}.navbtn .bars::after{top:5px}

/* hero */
.hero{padding:56px 0 64px;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 60% 70% at 78% 40%,rgba(156,123,47,.16),transparent 70%);pointer-events:none}
.hero-in{display:grid;grid-template-columns:1.08fr .92fr;gap:56px;align-items:center;position:relative}
.kick{display:inline-flex;align-items:center;gap:10px;font-size:13.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-ink);font-weight:700;margin:0 0 20px}
.kick .dot{width:10px;height:10px;border-radius:50%;background:var(--wine);box-shadow:0 0 0 4px rgba(124,31,46,.18);animation:pulse 2.4s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 9px rgba(124,31,46,0)}}
.hero-h{font-weight:900;font-size:clamp(3.4rem,1.6rem + 6.6vw,8rem);line-height:.84;text-transform:uppercase;letter-spacing:-.005em}
.hero-h span{display:block}
.hero-h .l2{color:var(--wine);position:relative;width:max-content;max-width:100%}
.hero-h .l2::after{content:"";position:absolute;left:0;right:0;bottom:.04em;height:.09em;background:repeating-linear-gradient(90deg,var(--gold) 0 .22em,transparent .22em .34em)}
.hero-sub{font-size:1.28rem;line-height:1.5;max-width:30ch;margin:26px 0 30px;color:#4A3036}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px}

.booth{position:relative;background:var(--wine);border-radius:240px 240px 22px 22px;padding:26px 26px 30px;box-shadow:0 30px 60px -24px rgba(94,21,34,.55)}
.booth-arch{position:absolute;inset:0;border-radius:inherit;pointer-events:none}
.bulbs{position:absolute;inset:8px;border-radius:232px 232px 16px 16px;padding:9px;
  background:radial-gradient(circle,var(--bulb) 0 3.2px,rgba(255,231,163,.0) 4.5px) 0 0/20px 20px;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);animation:chase 1.6s steps(2) infinite}
@keyframes chase{to{background-position:20px 0}}
.booth-window{position:relative;aspect-ratio:4/3.3;border-radius:200px 200px 10px 10px;overflow:hidden;background:var(--night);box-shadow:inset 0 0 0 3px var(--gold)}
.booth-window img,.booth-window video,[data-vid] img,[data-vid] video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
[data-vid] video{opacity:0;transition:opacity .8s}
[data-vid].live video{opacity:1}
.booth-window img,.booth-window video{filter:sepia(.35) saturate(1.2) contrast(1.05);animation:flicker 5s infinite}
@keyframes flicker{0%,100%{opacity:1}47%{opacity:1}48%{opacity:.86}49%{opacity:1}73%{opacity:.93}74%{opacity:1}}
[data-vid].live video{animation:flicker 5s infinite}
.scan{position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(0,0,0,.22) 0 1px,transparent 1px 3px);mix-blend-mode:multiply;pointer-events:none}
.lb{position:absolute;left:0;right:0;height:50%;background:var(--night);transition:height 1.6s cubic-bezier(.7,0,.2,1) .3s;z-index:2}
.lb-t{top:0}.lb-b{bottom:0}
.booth-window.open .lb{height:9%}
.vbtn{position:absolute;right:12px;bottom:12px;z-index:3;font:700 12px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;background:rgba(30,13,17,.8);
  color:var(--bulb);border:1px solid var(--gold);border-radius:999px;padding:8px 12px;cursor:pointer}
.pickstub{display:grid;grid-template-columns:1fr 86px;margin:-34px 18px 0;position:relative;z-index:4;text-decoration:none;background:var(--paper);border-radius:10px;
  transform:rotate(-2deg);box-shadow:0 16px 30px -12px rgba(42,20,24,.5);transition:transform .3s}
.pickstub:hover{transform:rotate(0) translateY(-4px)}
.ps-main{padding:16px 18px;display:grid;gap:6px}
.ps-k{font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--wine);font-weight:700}
.ps-t{font:800 1.45rem/1 var(--disp);text-transform:uppercase}
.ps-s{font-size:12px;color:var(--muted)}
.ps-stub{border-left:3px dotted var(--line);background:var(--gold-lt);border-radius:0 10px 10px 0;display:grid;place-content:center;text-align:center;font:700 12px/1.2 var(--mono);color:var(--ink)}
.ps-stub b{font:900 2rem/1 var(--disp)}

/* marquee letter board */
.marquee{background:var(--gold-lt);border-block:2px solid var(--ink);overflow:hidden;padding:12px 0}
.marquee-track{display:flex;gap:14px;width:max-content;animation:roll 44s linear infinite}
.marquee:hover .marquee-track,.marquee:focus-within .marquee-track{animation-play-state:paused}
@keyframes roll{to{transform:translateX(-50%)}}
.marquee a{display:inline-flex;gap:3px;text-decoration:none}
.marquee a b{display:inline-grid;place-items:center;min-width:26px;height:36px;padding:0 4px;background:var(--paper);border:1px solid #D8C59A;border-radius:3px;
  font:800 22px/1 var(--disp);text-transform:uppercase;box-shadow:0 2px 0 rgba(42,20,24,.18)}
.marquee a b.sp{background:none;border:0;box-shadow:none;min-width:10px}
.marquee a:hover b{background:var(--wine);color:#fff;border-color:var(--wine)}
.marquee .star{align-self:center;color:var(--wine);font:900 24px/1 var(--disp)}

/* sections */
.sec{padding:88px 0}
.rev-copy h2,.gen-copy h2,.watch-copy h2,.trivia-copy h2{margin-bottom:22px}
.lede{font-size:1.2rem;max-width:62ch;margin:28px 0 34px}

/* club pick */
.pick-in{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.pick-fig{margin:0}
.pick-photo{display:block;border-radius:var(--r);overflow:hidden;box-shadow:0 0 0 10px var(--paper),0 0 0 12px var(--line),0 30px 50px -25px rgba(42,20,24,.45)}
.pick-photo img{width:100%;aspect-ratio:3/2;object-fit:cover;filter:sepia(.55) contrast(1.05);transition:filter .8s,transform 1.2s}
.pick-fig:hover img{filter:none;transform:scale(1.03)}
figcaption,.credit{font:400 12.5px/1.5 var(--mono);color:var(--muted);margin-top:18px}
.pick-copy h2{margin-bottom:22px}
.pick-copy p{font-size:1.08rem}
.pick-copy .btn{margin-top:10px}

/* ticket booth */
.booth-sec{background:linear-gradient(var(--cream),#F1E7D5)}
.banner{position:relative;border-radius:var(--r);overflow:hidden;min-height:300px;display:flex;align-items:flex-end;background:var(--night)}
.banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.banner-t{position:relative;z-index:2;padding:34px 36px;color:var(--cream)}
.banner-t h2{color:#FFF6E6}
.banner-t .eyebrow{color:var(--gold-lt)}
.fx-duo{isolation:isolate}
.fx-duo img{filter:grayscale(1) contrast(1.2);animation:kb 26s ease-in-out infinite alternate}
.fx-duo::before{content:"";position:absolute;inset:0;z-index:1;background:#7C1F2E;mix-blend-mode:lighten;pointer-events:none}
.fx-duo::after{content:"";position:absolute;inset:0;z-index:1;background:#F2D894;mix-blend-mode:multiply;pointer-events:none}
.banner-t{width:100%;background:linear-gradient(0deg,rgba(30,13,17,.88),rgba(30,13,17,.55) 60%,transparent)}
@keyframes kb{from{transform:scale(1.02) translate(0,0)}to{transform:scale(1.14) translate(-2%,-3%)}}

.tickets{display:grid;grid-template-columns:repeat(2,1fr);gap:26px 30px}
.tk{--tc:var(--wine);position:relative;display:grid;grid-template-columns:1fr 104px;background:var(--paper);border-radius:14px;min-height:220px;
  box-shadow:0 1px 0 var(--line),0 22px 34px -24px rgba(42,20,24,.5);transition:transform .3s}
.tk:nth-child(3n+2){--tc:var(--gold-ink)}
.tk:nth-child(3n+3){--tc:var(--ink)}
.tk::before,.tk::after{content:"";position:absolute;right:92px;width:24px;height:24px;border-radius:50%;background:#F3EADA;z-index:2}
.tk::before{top:-12px}.tk::after{bottom:-12px}
.tk-main{padding:24px 26px 22px;border:2px solid var(--tc);border-right:0;border-radius:14px 0 0 14px;position:relative;overflow:hidden}
.tk-main::before{content:"";position:absolute;inset:8px;border:1px dashed color-mix(in srgb,var(--tc) 40%,transparent);border-radius:8px;border-right:0;pointer-events:none}
.tk-k{font:700 12px/1.3 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--tc);display:flex;gap:6px 10px;flex-wrap:wrap;margin:0}
.tk-k span+span::before{content:"\2022";margin-right:10px}
.tk-n{font:900 clamp(2rem,1.4rem + 1.6vw,2.7rem)/.92 var(--disp);text-transform:uppercase;margin:12px 0 10px}
.tk-n a{text-decoration:none}
.tk-d{font-size:1rem;color:#4A3036;margin:0 0 12px;max-width:42ch}
.tk-tease{font:700 13px/1.4 var(--mono);color:var(--muted);margin:0;display:none}
.reads{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.reads a{display:flex;gap:10px;align-items:baseline;text-decoration:none;font-size:1rem;line-height:1.35;padding:4px 0;border-bottom:1px dotted var(--line)}
.reads a::before{content:"\2605";color:var(--tc);font-size:.8em}
.reads a:hover{color:var(--wine)}
.reads .all{font:700 13px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;border:0;color:var(--tc);margin-top:6px}
.reads .all::before{content:none}
.stub{position:relative;background:var(--tc);color:#FFF6E6;border-radius:0 14px 14px 0;border-left:3px dotted #F3EADA;display:grid;place-items:center}
.stub button{all:unset;box-sizing:border-box;position:absolute;inset:0;cursor:pointer;display:grid;place-items:center;border-radius:0 14px 14px 0}
.stub button:focus-visible{outline:3px solid var(--wine);outline-offset:3px}
.stub-in{writing-mode:vertical-rl;transform:rotate(180deg);display:flex;align-items:center;gap:12px;font:700 12px/1 var(--mono);letter-spacing:.24em;text-transform:uppercase;pointer-events:none}
.stub-in b{font:900 30px/1 var(--disp);letter-spacing:.02em}
.stub-cue{position:absolute;top:10px;left:50%;translate:-50% 0;font:700 10px/1 var(--mono);letter-spacing:.14em;color:var(--bulb);pointer-events:none;white-space:nowrap}
.tk:hover .stub{transform:rotate(1.5deg);transform-origin:0 0}
.stub{transition:transform .25s}
.rag{display:none}
/* with JS the shelf stays closed until its stub is torn */
.js .tk:not(.admitted) .reads{display:none}
.js .tk:not(.admitted) .tk-tease{display:block}
.tk.admitted{grid-template-columns:1fr 18px}
.tk.admitted .stub{display:none}
.tk.admitted::before,.tk.admitted::after{display:none}
.tk.admitted .tk-main{border-right:0}
.tk.admitted .rag{display:block;border-radius:0 6px 6px 0;
  background:linear-gradient(135deg,var(--paper) 49%,transparent 51%) 0 0/18px 16px repeat-y,linear-gradient(45deg,var(--paper) 49%,transparent 51%) 0 8px/18px 16px repeat-y;
  border-top:2px solid var(--tc);border-bottom:2px solid var(--tc)}
.tk.admitted .tk-main{animation:admit .6s ease-out}
@keyframes admit{from{background:color-mix(in srgb,var(--gold-lt) 50%,var(--paper))}}
.flystub{position:fixed;z-index:300;pointer-events:none;border-radius:0 12px 12px 0;display:grid;place-items:center;color:#FFF6E6}

.tray{margin-top:46px;border:2px dashed var(--gold);border-radius:var(--r);padding:24px 26px;background:rgba(255,253,248,.6)}
.tray-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;margin-bottom:18px}
.tray-head h3{font-size:1.9rem;text-transform:uppercase}
.tray-count{margin:0;font-size:14px;letter-spacing:.1em;color:var(--gold-ink);font-weight:700}
.tray-head .btn{margin-left:auto}
.tray-slots{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(8,1fr);gap:14px}
.tray-slots li{aspect-ratio:1/1.3;border:1.5px dashed var(--line);border-radius:10px;display:grid;place-items:center;font:900 26px/1 var(--disp);color:#C9B892;position:relative}
.tray-slots li a{position:absolute;inset:0;border-radius:10px;background:var(--sc,var(--wine));color:#FFF6E6;text-decoration:none;display:grid;place-items:center;
  border-left:3px dotted #F3EADA;transform:rotate(var(--rot,-3deg));box-shadow:0 10px 16px -10px rgba(42,20,24,.6);transition:transform .25s}
.tray-slots li a:hover{transform:rotate(0) translateY(-4px)}
.tray-slots li a span{writing-mode:vertical-rl;transform:rotate(180deg);font:700 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;display:flex;gap:8px;align-items:center;padding:8px 0}
.tray-slots li a span b{font:900 18px/1 var(--disp);letter-spacing:0}
.tray-note{font:400 12.5px/1.4 var(--mono);color:var(--muted);margin:16px 0 0}
.tray.full{border-style:solid;border-color:var(--wine)}

/* revivals */
.rev-in{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.rev-media{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:16/10;background:var(--night)}
.rev-media img{width:100%;height:100%;object-fit:cover}
.fx-halftone::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,#2A1418 0 1.5px,transparent 2.2px) 0 0/7px 7px,rgba(233,207,138,.55);
  mix-blend-mode:multiply;clip-path:inset(0 0 0 0);transition:clip-path 1.8s cubic-bezier(.6,0,.2,1) .2s}
.fx-halftone.in::after{clip-path:inset(0 0 0 64%)}
.fx-halftone:hover::after{clip-path:inset(0 0 0 100%)}
.fx-halftone img{filter:saturate(1.15)}
.boards{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:56px}
.board{background:var(--night);color:#FFF6E6;border-radius:var(--r);padding:26px 28px 28px;position:relative;
  background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 2px,transparent 2px 34px);box-shadow:inset 0 0 0 6px #3A1A20,inset 0 0 0 8px var(--gold)}
.board h3{font:900 1.9rem/1 var(--disp);text-transform:uppercase;color:var(--gold-lt);letter-spacing:.06em;margin-bottom:6px}
.board .mono{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:#D9C3BE}
.board ol{list-style:none;margin:18px 0 0;padding:0;counter-reset:b}
.board li{counter-increment:b}
.board li a{display:flex;gap:14px;align-items:baseline;padding:8px 0;text-decoration:none;font:700 1.2rem/1.15 var(--disp);letter-spacing:.06em;text-transform:uppercase;color:#FFF6E6}
.board li a::before{content:counter(b,decimal-leading-zero);font:700 13px/1 var(--mono);color:var(--gold-lt)}
.board li a:hover{color:var(--bulb);text-decoration:underline;text-underline-offset:4px}
.board .bmore{display:inline-block;margin-top:14px;font:700 13px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gold-lt)}

/* genre wheel */
.genres{background:radial-gradient(ellipse 70% 60% at 70% 50%,#FBF4E6,var(--cream))}
.gen-in{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}
.gen-ctl{margin:22px 0}
.gen-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.gen-list button{font:800 15px/1 var(--disp);letter-spacing:.1em;text-transform:uppercase;padding:9px 13px;border-radius:999px;border:1.5px solid var(--ink);background:var(--paper);color:var(--ink);cursor:pointer}
.gen-list button:hover{background:var(--rose)}
.gen-list button[aria-pressed="true"]{background:var(--wine);border-color:var(--wine);color:#fff}
.wheel-wrap{display:grid;gap:26px;justify-items:center}
.wheel{position:relative;width:min(100%,470px);aspect-ratio:1}
.wheel svg{width:100%;height:100%;overflow:visible}
.wheel .rot{transform-box:fill-box;transform-origin:50% 50%;transition:transform 3.6s cubic-bezier(.15,.75,.2,1)}
.wheel .seg path{stroke:var(--ink);stroke-width:1.5}
.wheel .seg text{font:800 14px var(--disp);letter-spacing:.08em;text-transform:uppercase;dominant-baseline:middle}
.wheel .seg.on path{filter:brightness(1.15)}
.pointer{position:absolute;left:50%;top:-14px;translate:-50% 0;z-index:3;width:0;height:0;border-left:16px solid transparent;border-right:16px solid transparent;border-top:32px solid var(--wine);
  filter:drop-shadow(0 3px 0 var(--ink))}
.hub{position:absolute;left:50%;top:50%;width:31%;aspect-ratio:1;translate:-50% -50%;border-radius:50%;overflow:hidden;background:var(--night);box-shadow:0 0 0 5px var(--gold),0 0 0 7px var(--ink)}
.hub img,.hub video{filter:sepia(.9) saturate(1.3) contrast(1.05)}
.fx-iris img,.fx-iris video{clip-path:circle(14% at 50% 50%);transition:clip-path 1.6s cubic-bezier(.6,0,.2,1)}
.fx-iris.in img,.fx-iris.in video,.wheel.in .fx-iris img,.wheel.in .fx-iris video{clip-path:circle(72% at 50% 50%)}
.wheel.spinning .hub{animation:hubspin 3.6s cubic-bezier(.15,.75,.2,1)}
@keyframes hubspin{50%{box-shadow:0 0 0 5px var(--bulb),0 0 0 7px var(--ink),0 0 40px 10px rgba(255,231,163,.6)}}
.gen-card{width:100%;max-width:520px;background:var(--paper);border:2px solid var(--ink);border-radius:14px;padding:22px 24px;position:relative;box-shadow:8px 8px 0 var(--gold-lt)}
.gen-card .mono{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--wine);font-weight:700;margin:0 0 8px}
.gen-card h3{font-size:2.2rem;text-transform:uppercase;margin-bottom:10px}
.gen-card p{font-size:1rem;margin-bottom:12px}
.gen-card a{font:800 16px/1 var(--disp);letter-spacing:.08em;text-transform:uppercase;color:var(--wine)}

/* watchlists */
.watch-in{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}
.watch-count{font-size:14px;letter-spacing:.12em;color:var(--gold-ink);font-weight:700}
.watch-media{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:16/10;background:var(--night)}
.watch-media img{width:100%;height:118%;object-fit:cover;transform:translateY(var(--py,0px));will-change:transform}
.fx-split img{filter:sepia(.4) hue-rotate(-18deg) saturate(1.3);transition:filter 1s}
.fx-split::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(124,31,46,.55),rgba(30,13,17,.1) 50%,rgba(156,123,47,.5));mix-blend-mode:soft-light;transition:opacity 1s}
.fx-split:hover img{filter:sepia(0) saturate(1.05)}
.fx-split:hover::after{opacity:.25}
.watch-cols{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:50px}
.wl{background:var(--paper);border-radius:var(--r);padding:24px 26px;border:1px solid var(--line)}
.wl h3{text-transform:uppercase;font-size:1.8rem;margin-bottom:4px}
.wl .mono{font-size:12.5px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase}
.wl ol{list-style:none;margin:16px 0 0;padding:0}
.wl li{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;padding:10px 0;border-top:1px dashed var(--line)}
.punch{position:relative;width:30px;height:30px}
.punch input{position:absolute;inset:0;margin:0;opacity:0;cursor:pointer;z-index:2}
.punch span{position:absolute;inset:0;border-radius:50%;border:2px solid var(--gold);background:var(--paper);transition:background .2s,box-shadow .2s}
.punch input:checked+span{background:radial-gradient(circle,var(--cream) 0 6px,var(--wine) 7px);border-color:var(--wine);box-shadow:inset 0 2px 4px rgba(0,0,0,.35)}
.punch input:focus-visible+span{outline:3px solid var(--wine);outline-offset:3px}
.wl li a{text-decoration:none;font-size:1.02rem;line-height:1.35}
.wl li a:hover{color:var(--wine);text-decoration:underline}
.wl li.done a{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--wine)}

/* trivia */
.trivia{background:linear-gradient(#F1E7D5,var(--cream))}
.trivia-in{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.trivia-media{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:16/10;background:var(--night)}
.trivia-media img{width:100%;height:100%;object-fit:cover}
.fx-focus img{filter:blur(10px) saturate(.8);transform:scale(1.08);transition:filter 1.6s ease,transform 2.2s ease}
.fx-focus.in img{filter:blur(0) saturate(1.05);transform:scale(1)}
.grain{position:absolute;inset:-50%;pointer-events:none;opacity:.22;mix-blend-mode:overlay;animation:grain 1.2s steps(6) infinite;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-2%)}60%{transform:translate(-2%,-4%)}80%{transform:translate(4%,2%)}100%{transform:translate(0,0)}}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:50px}
.card{position:relative;min-height:300px;perspective:1000px}
.face{position:absolute;inset:0;border-radius:14px;padding:22px 20px;backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:transform .7s cubic-bezier(.3,.7,.2,1);display:flex;flex-direction:column}
.face-f{all:unset;box-sizing:border-box;position:absolute;inset:0;border-radius:14px;padding:22px 20px;cursor:pointer;display:flex;flex-direction:column;background:var(--wine);color:#FFF6E6;
  backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:transform .7s cubic-bezier(.3,.7,.2,1);
  background-image:radial-gradient(circle at 100% 0,rgba(233,207,138,.35),transparent 55%)}
.card:nth-child(even) .face-f{background-color:var(--ink)}
.face-f:focus-visible{outline:3px solid var(--gold-ink);outline-offset:4px}
.face-f .mono{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-lt)}
.face-f .q{font:900 1.85rem/.98 var(--disp);text-transform:uppercase;margin:auto 0 14px}
.face-f .hint{font:700 12px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#E8D6D2}
.face-b{background:var(--paper);border:2px solid var(--ink);transform:rotateY(180deg);visibility:hidden}
.face-b p{font-size:.98rem;line-height:1.5}
.face-b a{margin-top:auto;font:800 16px/1 var(--disp);letter-spacing:.08em;text-transform:uppercase;color:var(--wine)}
.face-b .back{all:unset;cursor:pointer;font:700 12px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:12px}
.face-b .back:focus-visible{outline:3px solid var(--wine);outline-offset:3px}
.card.flipped .face-f{transform:rotateY(-180deg);visibility:hidden;transition:transform .7s,visibility 0s .35s}
.card.flipped .face-b{transform:rotateY(0);visibility:visible}

/* find */
.find{padding:80px 0 100px}
.find-in{background:var(--paper);border:2px solid var(--ink);border-radius:22px;padding:44px;display:grid;gap:22px;justify-items:start;
  background-image:radial-gradient(circle at 0 50%,var(--cream) 0 16px,transparent 17px),radial-gradient(circle at 100% 50%,var(--cream) 0 16px,transparent 17px)}
.find-form{display:flex;gap:10px;width:100%;max-width:720px;flex-wrap:wrap}
.find-form input,.lib-q{flex:1 1 260px;min-width:0;font:400 1.05rem var(--serif);padding:14px 18px;border:2px solid var(--ink);border-radius:999px;background:var(--cream);color:var(--ink)}
.find-form input:focus-visible,.lib-q:focus-visible{outline:3px solid var(--wine);outline-offset:2px}

/* footer */
.foot{background:var(--cream2);border-top:2px solid var(--ink);padding:64px 0 30px;font-size:16px}
.foot-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:34px}
.foot .logo img{height:120px;width:auto}
.foot .tag{font:800 1.4rem/1 var(--disp);text-transform:uppercase;color:var(--wine);margin:18px 0 8px}
.foot h2{font:700 12.5px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-ink);margin:8px 0 16px}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.foot ul a{text-decoration:none}
.foot ul a:hover{color:var(--wine);text-decoration:underline}
.foot-base{margin-top:46px;padding-top:20px;border-top:1px dashed #CDBB9A;font:400 13.5px/1.6 var(--mono);color:#4A3036}
.foot-base p{margin:0 0 6px}
.foot-base .entity{font-weight:700;color:var(--ink)}

/* inner pages */
.phead{padding:56px 0 40px}
.phead-in{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
.phead-tk{background:var(--paper);border:2px solid var(--wine);border-radius:16px;padding:30px 32px;position:relative;
  background-image:radial-gradient(circle at 100% 50%,var(--cream) 0 16px,transparent 17px),radial-gradient(circle at 0 50%,var(--cream) 0 16px,transparent 17px)}
.phead-tk h1{font-size:clamp(2.8rem,1.6rem + 4vw,5rem);font-weight:900;text-transform:uppercase;line-height:.9}
.phead-tk .mono{font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--wine);font-weight:700;margin-bottom:14px}
.phead-pic{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:16/10;background:var(--night)}
.phead-pic img{width:100%;height:100%;object-fit:cover}
.prose{max-width:68ch;margin:0 auto;padding:20px 24px 90px;font-size:1.12rem}
.prose h2,.prose h3{font-size:1.9rem;text-transform:uppercase;margin:1.6em 0 .5em;color:var(--wine)}
.prose a{color:var(--wine);text-underline-offset:3px}
.prose p:first-child{font-size:1.25rem}

/* library */
.lib-head{padding:56px 0 20px}
.lib-head h1{font-size:clamp(3rem,1.6rem + 5vw,6rem);font-weight:900;text-transform:uppercase;line-height:.88}
.lib-head p{max-width:60ch;font-size:1.15rem;margin-top:16px}
.lib-ctl{position:sticky;top:80px;z-index:20;background:rgba(245,239,227,.96);border-block:1px solid var(--line);padding:16px 0;backdrop-filter:blur(6px)}
.lib-ctl-in{display:grid;gap:12px}
.lib-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.lib-count{font:700 13px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gold-ink);margin:0}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chips button{font:800 14px/1 var(--disp);letter-spacing:.08em;text-transform:uppercase;padding:8px 12px;border-radius:999px;border:1.5px solid var(--ink);background:var(--paper);color:var(--ink);cursor:pointer}
.chips button small{font:700 11px var(--mono);margin-left:4px;color:var(--muted)}
.chips button[aria-pressed="true"]{background:var(--wine);color:#fff;border-color:var(--wine)}
.chips button[aria-pressed="true"] small{color:#F3D9D3}
.lib-body{padding:36px 0 90px}
.shelf{margin:0 0 50px;scroll-margin-top:200px}
.shelf h2{font-size:2.2rem;display:flex;gap:14px;align-items:baseline;border-bottom:2px solid var(--ink);padding-bottom:10px;margin-bottom:18px}
.shelf h2 small{font:700 13px var(--mono);letter-spacing:.1em;color:var(--gold-ink)}
.lib-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.lib-a{display:grid;grid-template-columns:1fr 46px;min-height:110px;text-decoration:none;background:var(--paper);border-radius:10px;border:1.5px solid var(--line);overflow:hidden;transition:transform .2s,border-color .2s}
.lib-a:hover{transform:translateY(-3px);border-color:var(--wine)}
.lib-a .t{padding:14px 16px;display:grid;gap:6px;align-content:start}
.lib-a .c{font:700 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink)}
.lib-a .h{font:800 1.3rem/1.02 var(--disp);text-transform:uppercase}
.lib-a .e{font-size:.92rem;line-height:1.45;color:#4A3036}
.lib-a .s{background:var(--wine);border-left:3px dotted var(--cream);color:#FFF6E6;display:grid;place-items:center;font:700 11px/1 var(--mono);writing-mode:vertical-rl;letter-spacing:.14em}
.lib-grid li{display:grid}
.lib-grid li:nth-child(3n+2) .s{background:var(--gold-ink)}
.lib-grid li:nth-child(3n) .s{background:var(--ink)}
.lib-none{font:700 15px var(--mono);color:var(--muted);padding:30px 0}
mark{background:var(--gold-lt);color:inherit;padding:0 2px;border-radius:2px}

/* posts */
.post-head{padding:50px 0 10px}
.post-head-in{max-width:900px;margin:0 auto}
.post-tk{display:inline-flex;align-items:stretch;text-decoration:none;border-radius:6px;overflow:hidden;border:1.5px solid var(--wine)}
.post-tk span{padding:7px 12px;font:700 12px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;display:grid;place-items:center}
.post-tk span:first-child{background:var(--wine);color:#fff}
.post-tk span:last-child{border-left:2px dotted var(--wine);color:var(--wine);background:var(--paper)}
.post-head h1{font-size:clamp(2.6rem,1.4rem + 4.6vw,5.4rem);font-weight:900;text-transform:uppercase;line-height:.9;margin:20px 0 16px}
.post-meta{font:400 13px/1.5 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0}
.post-fig{max-width:1000px;margin:30px auto 0;padding:0 24px}
.post-fig .ph{border-radius:var(--r);overflow:hidden;background:var(--night);box-shadow:0 0 0 10px var(--paper),0 0 0 12px var(--line)}
.post-fig img{width:100%;max-height:620px;object-fit:cover;filter:sepia(.25) contrast(1.03)}
.post-fig figcaption{margin-top:20px}
.post-body{padding-top:30px;padding-bottom:30px}
.post-body p:first-child::first-letter{float:left;font:900 5.2rem/.78 var(--disp);color:var(--wine);margin:.06em .1em 0 0}
.post-back{max-width:68ch;margin:0 auto;padding:0 24px}
.post-back a{font:800 17px/1 var(--disp);letter-spacing:.08em;text-transform:uppercase;color:var(--wine)}
.sb{max-width:68ch;margin:30px auto;padding:18px 24px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;border-block:1px dashed var(--line)}
.sb-t{font:700 12px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-ink);margin-right:4px}
.sb-l{display:flex;flex-wrap:wrap;gap:8px}
.sb-l a,.sb-l button{display:inline-flex;align-items:center;gap:6px;height:38px;min-width:38px;justify-content:center;padding:0 10px;border-radius:999px;border:1.5px solid var(--ink);
  background:var(--paper);color:var(--ink);cursor:pointer;font:700 12px/1 var(--mono);text-transform:uppercase;letter-spacing:.08em;text-decoration:none}
.sb-l a:hover,.sb-l button:hover{background:var(--wine);color:#fff;border-color:var(--wine)}
.sb-l svg{width:16px;height:16px;fill:currentColor}
.sb-note{flex-basis:100%;margin:6px 0 0;font:400 12.5px/1.4 var(--mono);color:var(--muted)}
#sb-said{font:700 12px var(--mono);color:var(--wine)}
.more{padding:40px 0 90px;border-top:2px solid var(--ink);margin-top:40px}
.more h2{font-size:2.2rem;margin-bottom:20px}
.pn{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:22px}
.pn a{display:block;text-decoration:none;padding:16px 18px;border-radius:10px;border:1.5px solid var(--ink);background:var(--paper)}
.pn a:hover{background:var(--rose)}
.pn small{display:block;font:700 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-ink);margin-bottom:8px}
.pn b{font:800 1.2rem/1.05 var(--disp);text-transform:uppercase}
.pn .nx{text-align:right}

/* reveal */
.js .rv{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s ease}
.js .rv.in{opacity:1;transform:none}

/* responsive */
@media (max-width:1080px){
  .hero-in,.pick-in,.rev-in,.gen-in,.watch-in,.trivia-in,.phead-in{grid-template-columns:1fr;gap:40px}
  .booth{max-width:520px;width:100%;justify-self:center}
  .cards{grid-template-columns:repeat(2,1fr)}
  .foot-top{grid-template-columns:1fr 1fr}
  .tray-slots{grid-template-columns:repeat(4,1fr)}
  .tray-slots li{aspect-ratio:1/1.5}
}
@media (max-width:900px){
  .navbtn{display:inline-flex}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--cream);border-bottom:2px solid var(--ink);flex-direction:column;align-items:stretch;padding:10px 16px 18px;gap:2px}
  .nav.open{display:flex}
  .nav a.nav-tk{margin:8px 0 0;text-align:center}
  .mast-in{position:relative}
  .tickets,.boards,.watch-cols{grid-template-columns:1fr}
  .launchpanel{grid-template-columns:repeat(2,1fr)}
  .lib-ctl{top:72px}
}
@media (max-width:640px){
  body{font-size:17px}
  .wrap{padding:0 16px}
  .hide-s{display:none}
  .strip-note{display:none}
  .strip-links{gap:12px}
  .strip-links a+a{display:none}
  .launch summary{white-space:nowrap;font-size:11.5px;letter-spacing:.06em}
  .launchpanel{position:fixed;left:16px;right:16px;top:52px;width:auto;grid-template-columns:1fr 1fr;padding:14px}
  .mast-in{min-height:66px;gap:12px}
  .mast .logo img{height:40px}
  .mast .logo .wm{height:19px}
  .sec{padding:70px 0}
  .hero{padding:36px 0 50px}
  .booth{padding:18px 18px 22px}
  .bulbs{inset:5px}
  .pickstub{margin:-26px 4px 0;grid-template-columns:1fr 70px}
  .tk{grid-template-columns:1fr 78px}
  .tk::before,.tk::after{right:66px}
  .tk-main{padding:20px 18px 18px}
  .banner{min-height:240px}
  .banner-t{padding:24px 20px}
  .cards{grid-template-columns:1fr}
  .card{min-height:260px}
  .foot-top{grid-template-columns:1fr}
  .find-in{padding:30px 22px}
  .pn{grid-template-columns:1fr}
  .tray{padding:20px 16px}
  .tray-slots{gap:10px}
  .phead-tk{padding:24px 22px}
  .prose{padding:10px 16px 70px}
  .post-fig{padding:0 16px}
  .lib-ctl{position:static}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .rv{opacity:1;transform:none}
  .fx-focus img{filter:none;transform:none}
  .fx-iris img,.fx-iris video{clip-path:none}
  .booth-window .lb{height:9%}
  .marquee-track{flex-wrap:wrap;width:auto;justify-content:center}
  .marquee-track [aria-hidden="true"]{display:none}
}
@media print{
  .strip,.mast,.foot,.sb,.more,.marquee,.skip{display:none!important}
  body{background:#fff;font-size:12pt}
  .post-fig .ph{box-shadow:none}
}
