[hidden]{display:none !important}
@font-face{font-family:Shoulders;src:url(/invite/fonts/bigshoulders.woff2) format('woff2');font-weight:500 900;font-display:swap}
@font-face{font-family:SMono;src:url(/invite/fonts/spacemono.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Jost;src:url(/invite/fonts/jost.woff2) format('woff2');font-weight:300 600;font-display:swap}
:root{--char:#0d0b0a;--soot:#1c1816;--ember:#ff5a1f;--flame:#ffb347;--bone:#f1e6d2;--ash:#8a7f74;--mb:min(76vw,300px)}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--char);color:var(--bone);-webkit-text-size-adjust:100%}
body{font:400 17px/1.5 Jost,system-ui,sans-serif;background:var(--char);overflow-x:hidden}
a{color:var(--flame)}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--flame);outline-offset:3px}
.sample-bar{background:#000;color:var(--ash);font-size:12px;text-align:center;padding:7px 14px}
.sample-bar a{color:var(--flame)}

.stage{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:relative;height:calc(100svh - 32px);min-height:560px;overflow:hidden;touch-action:pan-y}
/* revealed layer */
.lit{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px 18px;
  background:radial-gradient(90% 55% at 50% 100%,rgba(255,90,31,.55),transparent 70%),radial-gradient(60% 40% at 50% 38%,rgba(255,179,71,.18),transparent 70%),linear-gradient(#1a0f0a,#2a120a 60%,#3b1609)}
.lit::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.35;mix-blend-mode:overlay;
  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='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E")}
.lit .k{font:400 12px/1 SMono,monospace;letter-spacing:.24em;text-transform:uppercase;color:var(--flame)}
.lit h1{font:900 clamp(96px,32vw,190px)/.8 Shoulders,Impact,sans-serif;text-transform:uppercase;letter-spacing:-.01em;margin:18px 0 8px}
.lit h1 span{display:block}
.lit .w1{color:var(--bone)}
.lit .w2{background:linear-gradient(180deg,#fff1c9 0%,var(--flame) 35%,var(--ember) 70%,#9e2408);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 22px rgba(255,90,31,.55))}
.lit .on{font:700 clamp(24px,7vw,34px)/1 Shoulders,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.lit .date{font:400 15px/1 SMono,monospace;letter-spacing:.2em;color:var(--flame);margin:12px 0 18px}
.lit .line{color:#e7d6bf;max-width:24ch;margin-bottom:26px}
.lit > *{opacity:0;transform:translateY(16px);transition:opacity .9s,transform .9s cubic-bezier(.2,.8,.2,1)}
.burned .lit > *{opacity:1;transform:none}
.burned .lit > :nth-child(2){transition-delay:.15s}.burned .lit > :nth-child(3){transition-delay:.3s}.burned .lit > :nth-child(4){transition-delay:.4s}.burned .lit > :nth-child(5){transition-delay:.5s}.burned .lit > :nth-child(6){transition-delay:.65s}

.char{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.dark{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:22px 16px 18px;transition:opacity .8s}
.burning .dark > :not(.match){opacity:0;transition:opacity .6s}
.burned .dark{opacity:0;pointer-events:none}
.snd{align-self:flex-end;display:flex;align-items:center;gap:6px;font:400 11px/1 SMono,monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--ash);padding:7px 10px;border:1px solid #2c2622;border-radius:99px}
.snd svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6}
.snd[aria-pressed=false] .w{opacity:.15}
.for{font:600 clamp(26px,7.4vw,38px)/1.05 Shoulders,sans-serif;text-transform:uppercase;letter-spacing:.04em;text-align:center;color:#d9cbb6}
.for b{color:var(--flame);font-weight:800}

/* matchbox */
.mb{touch-action:none;cursor:grab;position:relative;width:var(--mb);height:calc(var(--mb)*.6);margin-top:-6vh;transform:rotate(-6deg)}
.sleeve,.drawer{position:absolute;inset:0;border-radius:6px}
.sleeve{background:#e9dcc4;box-shadow:0 30px 60px rgba(0,0,0,.7),0 2px 0 #fff3 inset;overflow:hidden;z-index:2}
.label{position:absolute;inset:8px 8px 22px;border:1.5px solid #2a1a12;border-radius:3px;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:repeating-linear-gradient(90deg,transparent 0 9px,rgba(42,26,18,.06) 9px 10px),#efe3cc}
.label svg{width:13%;fill:var(--ember)}
.nm{font:900 calc(var(--mb)*.15)/.9 Shoulders,sans-serif;text-transform:uppercase;color:#2a1a12;margin-top:4px}
.sm{font:400 calc(var(--mb)*.033)/1 SMono,monospace;letter-spacing:.14em;text-transform:uppercase;color:#6b4a35;margin-top:6px}
.striker{position:absolute;left:0;right:0;bottom:0;height:16px;background:
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='16'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.4' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E"),#5a2f1c}
.drawer{background:#b98c56;z-index:1;transition:transform .7s cubic-bezier(.3,1.3,.5,1);display:flex;flex-direction:column;justify-content:center;gap:7%;padding:10% 8% 10% 14%;box-shadow:inset 0 0 0 7px #a87a45,0 20px 40px rgba(0,0,0,.6);transform:translateX(7%)}
.mb:not(.x) .drawer{animation:peek 2.4s ease-in-out 1s infinite}
@keyframes peek{0%,70%,100%{transform:translateX(7%)}82%{transform:translateX(14%)}}
.drawer .m{display:block;height:5px;border-radius:3px;background:linear-gradient(90deg,#e8cf9d,#d6b77d);position:relative;width:86%}
.drawer .m::before{content:"";position:absolute;left:-9px;top:50%;width:13px;height:10px;border-radius:50%;transform:translateY(-50%);background:radial-gradient(circle at 40% 40%,#e2513a,#9b1d12)}
.drawer .m:nth-child(2n){margin-left:6%}
.opened-box .drawer{transform:translateX(64%) !important;animation:none}
.drawer .m.gone{visibility:hidden}

.match{position:absolute;left:50%;top:66%;width:calc(var(--mb)*.62);height:12px;transform:translate(-50%,-50%) rotate(-14deg) scale(.8);opacity:0;pointer-events:none;z-index:5;touch-action:none;cursor:grab;
  transition:opacity .4s,transform .6s cubic-bezier(.3,1.4,.5,1)}
.match .stick{position:absolute;left:12px;right:0;top:3px;height:6px;border-radius:3px;background:linear-gradient(#f3dfb4,#cfac70)}
.match .head{position:absolute;left:0;top:-3px;width:22px;height:18px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#ef6a4f,#a3200f 70%)}
.ready .match{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) rotate(-14deg) scale(1);animation:hover 2.2s ease-in-out .6s infinite}
@keyframes hover{50%{margin-top:-6px}}
.match.drag{animation:none;transition:none}
.lit-match .head{background:radial-gradient(circle at 40% 35%,#3a2a24,#120c0a 70%)}
.flame{position:absolute;left:-14px;top:-62px;width:48px;height:76px;opacity:0;transform:scale(.2);transform-origin:50% 90%;transition:opacity .2s,transform .5s cubic-bezier(.3,1.6,.5,1);pointer-events:none;filter:blur(.4px)}
.flame i{position:absolute;left:50%;bottom:0;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;transform:translateX(-50%);animation:flick .18s ease-in-out infinite alternate}
.flame i:nth-child(1){width:44px;height:74px;background:radial-gradient(ellipse at 50% 80%,rgba(255,170,60,.9),rgba(255,90,31,.6) 50%,transparent 72%);filter:blur(3px)}
.flame i:nth-child(2){width:24px;height:52px;background:radial-gradient(ellipse at 50% 85%,#fff7d6,#ffc65a 45%,rgba(255,110,30,.0) 75%);animation-duration:.22s}
.flame i:nth-child(3){width:10px;height:18px;bottom:2px;background:radial-gradient(#5aa0ff,rgba(90,160,255,0) 70%);opacity:.8}
@keyframes flick{to{transform:translateX(-50%) scaleY(1.08) scaleX(.94) rotate(2deg)}}
.lit-match .flame{opacity:1;transform:rotate(14deg) scale(1)}

.hint{text-align:center;min-height:70px}
.hint .h{font:700 clamp(24px,6.6vw,32px)/1.05 Shoulders,sans-serif;text-transform:uppercase;letter-spacing:.06em}
.hint .s{font:400 11px/1.4 SMono,monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--ash);margin-top:8px}
.skip{font:400 12px/1 SMono,monospace;color:var(--ash);text-decoration:underline;text-underline-offset:3px;padding:8px}

/* sections */
.in{max-width:640px;margin:0 auto;padding:0 20px}
.menu,.seat,.find{padding:80px 0;border-top:1px solid #241e1a}
.k{font:400 12px/1 SMono,monospace;letter-spacing:.22em;text-transform:uppercase;color:var(--ember)}
h2{font:800 clamp(46px,13vw,84px)/.88 Shoulders,sans-serif;text-transform:uppercase;margin:14px 0 26px}
.courses{list-style:none;display:grid;gap:2px}
.courses li{display:grid;grid-template-columns:54px 1fr;align-items:baseline;padding:18px 0;border-bottom:1px dashed #3a302a}
.courses b{font:400 14px/1 SMono,monospace;color:var(--ember)}
.courses p{font:700 26px/1.05 Shoulders,sans-serif;text-transform:uppercase;letter-spacing:.02em}
.courses small{display:block;font:400 15px/1.4 Jost,sans-serif;text-transform:none;color:var(--ash);letter-spacing:0;margin-top:4px}
.count{display:flex;gap:16px;font:400 13px/1 SMono,monospace;color:var(--ash);margin-bottom:26px}
.count b{font:800 40px/1 Shoulders,sans-serif;color:var(--flame);margin-right:3px}
form{display:grid;gap:22px}
legend{font:400 12px/1 SMono,monospace;letter-spacing:.2em;text-transform:uppercase;color:var(--ash);margin-bottom:10px}
fieldset{border:0}
.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.slots legend{grid-column:1/-1}
.slots label,.size label,.chips label{position:relative;cursor:pointer}
.slots input,.size input,.chips input{position:absolute;opacity:0;inset:0}
.slots span{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 4px;border:1.5px solid #3a302a;border-radius:4px;transition:all .2s}
.slots b{font:800 34px/1 Shoulders,sans-serif}
.slots em{font:400 10px/1.2 SMono,monospace;font-style:normal;color:var(--ash);text-transform:uppercase;letter-spacing:.06em;text-align:center}
.slots input:checked + span{border-color:var(--ember);background:rgba(255,90,31,.12);box-shadow:0 0 24px rgba(255,90,31,.25)}
.slots input:checked + span em{color:var(--flame)}
.size{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.size legend{grid-column:1/-1}
.size span,.chips span{display:block;text-align:center;padding:14px 10px;border:1.5px solid #3a302a;border-radius:99px;font-weight:500}
.size input:checked + span,.chips input:checked + span{border-color:var(--flame);color:var(--char);background:var(--flame)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips legend{width:100%}
.chips span{padding:10px 16px;font-size:15px}
.txt{display:grid;gap:8px;font:400 12px/1 SMono,monospace;letter-spacing:.2em;text-transform:uppercase;color:var(--ash)}
.txt input{font:500 19px/1.2 Jost,sans-serif;color:var(--bone);background:var(--soot);border:1.5px solid #3a302a;border-radius:4px;padding:14px;letter-spacing:0;text-transform:none}
.txt input:focus{border-color:var(--flame);outline:none}
input:focus-visible + span{outline:2px solid var(--flame);outline-offset:2px}
.err span,.err input{border-color:#ff7b5c !important}
.msg{color:#ff8c6e;font-size:14px;min-height:1em}
.demo{font-size:12px;color:var(--ash)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 24px;border-radius:99px;font:800 18px/1 Shoulders,sans-serif;letter-spacing:.12em;text-transform:uppercase;text-decoration:none}
.btn.ember{background:linear-gradient(180deg,var(--flame),var(--ember));color:#1a0b05;box-shadow:0 10px 30px rgba(255,90,31,.35)}
.btn.ghost{border:1.5px solid #4a3d35;color:var(--bone)}
.receipt{background:#f4ecdc;color:#1b1714;font:400 14px/1.6 SMono,monospace;padding:28px 22px 30px;max-width:360px;margin:6px auto 0;position:relative;transform:rotate(-1.5deg);box-shadow:0 30px 60px rgba(0,0,0,.6);animation:print 1.1s cubic-bezier(.2,.8,.2,1)}
.receipt::after{content:"";position:absolute;left:0;right:0;bottom:-10px;height:10px;background:linear-gradient(-45deg,transparent 7px,#f4ecdc 0) 0 0/14px 10px,linear-gradient(45deg,transparent 7px,#f4ecdc 0) 0 0/14px 10px}
@keyframes print{from{clip-path:inset(0 0 100% 0);transform:translateY(-30px) rotate(-1.5deg)}}
.rh{text-align:center;font-weight:700;letter-spacing:.2em}
.dash{border-top:1.5px dashed #1b1714;margin:14px 0}
.row{display:flex;justify-content:space-between;gap:12px;text-transform:uppercase}
.row.big{font-size:20px}
.th{text-align:center;margin-top:16px;letter-spacing:.06em}
.code{text-align:center;letter-spacing:.3em;margin:10px 0 14px}
.receipt .btn.ghost{color:#1b1714;border-color:#1b1714;width:100%;min-height:44px;font-size:15px}
.addr{font:800 40px/1 Shoulders,sans-serif;text-transform:uppercase;margin-bottom:22px}
.addr small{font:400 12px/1 SMono,monospace;color:var(--ash);letter-spacing:.1em}
.btns{display:flex;flex-wrap:wrap;gap:10px}
.foot{text-align:center;padding:60px 20px 80px;color:var(--ash);font-size:14px;border-top:1px solid #241e1a}
.rv{opacity:0;transform:translateY(16px);transition:opacity .8s,transform .8s cubic-bezier(.2,.8,.2,1)}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none !important;transition:none !important}.rv{opacity:1;transform:none}}
@media (min-width:900px){:root{--mb:380px}}
