/* Musical Chairs — a lamplit Khelghar table at a party. */
@font-face{font-family:"Yeseva One";font-style:normal;font-weight:400;font-display:swap;src:url("../assets/fonts/yeseva-one.woff2") format("woff2")}
@font-face{font-family:"Alegreya";font-style:normal;font-weight:400 900;font-display:swap;src:url("../assets/fonts/alegreya.woff2") format("woff2")}
@font-face{font-family:"Alegreya";font-style:italic;font-weight:400 900;font-display:swap;src:url("../assets/fonts/alegreya-italic.woff2") format("woff2")}
:root{
  --felt-1:#17453f; --felt-2:#0c2b27; --felt-3:#071c19;
  --lacquer-1:#b23a20; --lacquer-2:#8a2413; --lacquer-3:#6d1b0d;
  --gold-1:#e9b95a; --gold-2:#caa04a; --gold-3:#a67c2e; --gold-text:#f2cf7e;
  --cream:#f4e7c9; --cream-dim:#e3d6b6; --ink:#221410; --ring-c:#f2cf7e;
  --top:52px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{font-family:"Alegreya",Georgia,serif;color:var(--cream);background:var(--felt-3);min-height:100dvh;overflow-x:hidden;font-size:1.06rem;line-height:1.4;-webkit-tap-highlight-color:transparent}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background:
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.95 0 0 0 0 0.9 0 0 0 0 0.75 0 0 0 0.09 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E"),
  radial-gradient(120% 90% at 50% 16%, rgba(255,214,140,.17), rgba(255,214,140,0) 55%),
  radial-gradient(140% 120% at 50% 40%, var(--felt-1) 0%, var(--felt-2) 55%, var(--felt-3) 100%)}
a{color:var(--gold-text)}
button,input{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer;touch-action:manipulation}
:focus-visible{outline:3px solid var(--ring-c);outline-offset:3px;border-radius:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.screen{display:none;position:relative;z-index:1}
.screen.on{display:block}
[hidden]{display:none!important}

/* ---------- top bar + party lights ---------- */
.top{position:sticky;top:0;z-index:30;height:var(--top);display:flex;align-items:center;gap:10px;padding:0 max(12px,env(safe-area-inset-right)) 0 max(12px,env(safe-area-inset-left));
  background:linear-gradient(rgba(7,28,25,.92),rgba(7,28,25,.78));border-bottom:1px solid rgba(233,185,90,.22)}
.top .back{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--cream);min-height:44px;padding-right:6px;font-family:"Yeseva One",serif;letter-spacing:.06em;font-size:1.05rem;white-space:nowrap}
.top .back em{font-family:"Alegreya",serif;font-style:italic;letter-spacing:.02em;color:var(--gold-text);font-size:1rem}
.top .back img{width:30px;height:30px}
.round-info{flex:1;text-align:center;font-size:1rem;color:var(--cream-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.round-info b{color:var(--gold-text);font-weight:700}
.icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:rgba(0,0,0,.3);border:1px solid rgba(233,185,90,.45);font-size:1.25rem;flex:none}
.icon[aria-pressed="true"]{color:#ffb39f;text-decoration:line-through}
@media (max-width:520px){.top .back em{display:none}}
.lights{position:fixed;left:0;right:0;top:var(--top);height:18px;z-index:29;display:flex;justify-content:space-around;pointer-events:none;
  background:radial-gradient(120% 60px at 50% -40px,transparent 70%,rgba(0,0,0,0) 71%)}
.lights::before{content:"";position:absolute;left:-2%;right:-2%;top:-6px;height:18px;border-bottom:1.5px solid rgba(40,20,10,.8);border-radius:0 0 50% 50%/0 0 100% 100%}
.lights i{position:relative;top:4px;width:9px;height:12px;border-radius:50% 50% 45% 45%;background:var(--b,#e9b95a);opacity:.55;box-shadow:0 0 6px var(--b,#e9b95a);transition:opacity .12s, box-shadow .12s}
.lights i:nth-child(4n+1){--b:#e35a3a}.lights i:nth-child(4n+2){--b:#e9b95a}.lights i:nth-child(4n+3){--b:#66c5b4}.lights i:nth-child(4n){--b:#f29fb5}
.lights i:nth-child(odd){top:8px}
body.beat .lights i:nth-child(odd), body.beat2 .lights i:nth-child(even){opacity:1;box-shadow:0 0 14px var(--b),0 0 3px #fff}
body.flicker .lights i{animation:flick .09s steps(2) 6}
@keyframes flick{50%{opacity:.05;box-shadow:none}}

/* ---------- setup ---------- */
#setup{max-width:1120px;margin:0 auto;padding:30px 16px 110px}
.hero{display:grid;grid-template-columns:minmax(220px,340px) 1fr;gap:clamp(16px,4vw,48px);align-items:center;margin:4px 0 26px}
.hero-art svg{width:100%;height:auto;display:block;filter:drop-shadow(0 16px 24px rgba(0,0,0,.4))}
.hero-tok circle{fill:var(--c);stroke:#f4e7c9;stroke-width:3}
.hero-tok text{font-family:"Yeseva One",serif;font-size:17px;fill:#221410}
.eyebrow{font-size:.9rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-text)}
.wordmark{font-family:"Yeseva One",serif;font-weight:400;font-size:clamp(2.5rem,8vw,4.6rem);line-height:1;letter-spacing:.04em;margin:.12em 0 .22em;text-shadow:0 3px 22px rgba(0,0,0,.5)}
.lede{font-size:clamp(1.12rem,2.3vw,1.35rem);max-width:36ch;color:var(--cream)}
.lede b{color:var(--gold-text)}
@media (max-width:700px){.hero{grid-template-columns:1fr;text-align:center}.hero-art{width:min(250px,64vw);margin:0 auto}.lede{margin:0 auto}}

.setup{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:860px){.setup{grid-template-columns:1fr}}
.card{background:linear-gradient(160deg,rgba(8,40,35,.94),rgba(4,22,20,.92));border:1px solid rgba(233,185,90,.35);border-radius:20px;padding:18px 18px 20px;box-shadow:0 18px 40px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,230,180,.08)}
.card h2,.rules h2{font-family:"Yeseva One",serif;font-weight:400;font-size:1.45rem;color:var(--gold-text);margin-bottom:12px}
.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.opt{text-align:left;padding:12px 12px;border-radius:14px;background:rgba(0,0,0,.24);border:1px solid rgba(233,185,90,.25);min-height:84px;display:flex;flex-direction:column;gap:4px;transition:background .15s,border-color .15s,transform .15s}
.opt b{font-family:"Yeseva One",serif;font-weight:400;font-size:1.15rem;line-height:1.1}
.opt span{font-size:.95rem;color:var(--cream-dim);line-height:1.3}
.opt[aria-checked="true"]{background:linear-gradient(150deg,var(--lacquer-1),var(--lacquer-2) 70%);border-color:var(--gold-1);box-shadow:inset 0 0 0 1px rgba(233,185,90,.5),0 8px 18px rgba(0,0,0,.35)}
.opt[aria-checked="true"] span{color:var(--cream)}
.opt:hover{border-color:rgba(233,185,90,.6)}
@media (max-width:520px){.seg{grid-template-columns:1fr}.opt{min-height:0;flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:2px 10px}}
.panel{margin-top:14px;display:grid;gap:12px}
.field{display:flex;flex-direction:column;gap:4px;font-size:.95rem;color:var(--cream-dim)}
.field input,.names input{min-height:48px;border-radius:12px;border:1px solid rgba(233,185,90,.35);background:rgba(0,0,0,.3);padding:8px 14px;font-size:1.1rem;color:var(--cream);width:100%}
.field input::placeholder,.names input::placeholder{color:rgba(244,231,201,.45)}
.field.word input{width:8.5ch;text-transform:uppercase;letter-spacing:.2em;font-family:"Yeseva One",serif;text-align:center}
.stepper{display:flex;align-items:center;gap:10px}
.stepper .lab{flex:1;font-size:1.05rem}
.step{width:48px;height:48px;border-radius:50%;background:rgba(0,0,0,.3);border:1px solid rgba(233,185,90,.45);font-size:1.4rem;line-height:1}
.step:disabled{opacity:.35;cursor:not-allowed}
.stepper output{min-width:2ch;text-align:center;font-family:"Yeseva One",serif;font-size:1.6rem;color:var(--gold-text)}
.names{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media (max-width:520px){.names{grid-template-columns:1fr}}
.names li{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:8px}
.names .dot{width:16px;height:16px;border-radius:50%;background:var(--pc);box-shadow:0 0 0 2px rgba(244,231,201,.3)}
.names kbd{font-family:inherit;font-size:.85rem;padding:3px 7px;border-radius:6px;border:1px solid rgba(233,185,90,.4);color:var(--gold-text);white-space:nowrap}
@media (hover:none){.names kbd{display:none}}
.hint{font-size:.95rem;color:var(--cream-dim);font-style:italic}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.row.center{justify-content:center;align-items:center}
.center{text-align:center}
.or{align-self:center;color:var(--cream-dim);font-style:italic}
.levels{margin-top:14px}
.levels .lab{font-size:.95rem;color:var(--cream-dim);margin-bottom:6px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{min-width:48px;min-height:48px;padding:6px 14px;border-radius:999px;background:rgba(0,0,0,.28);border:1px solid rgba(233,185,90,.35);font-size:1rem;display:flex;align-items:center;gap:6px}
.chip b{font-family:"Yeseva One",serif;font-weight:400;font-size:1.1rem;color:var(--gold-text)}
.chip[aria-checked="true"]{background:var(--gold-1);color:#2a1706;border-color:var(--gold-1)}
.chip[aria-checked="true"] b{color:#2a1706}
.level-line{margin-top:8px;min-height:1.4em;color:var(--cream)}
.pill{min-height:50px;padding:10px 22px;border-radius:999px;font-size:1.08rem;font-weight:700;letter-spacing:.02em;background:linear-gradient(160deg,var(--lacquer-1),var(--lacquer-2));border:1px solid rgba(233,185,90,.55);box-shadow:0 8px 18px rgba(0,0,0,.35);color:var(--cream);transition:transform .12s,filter .12s}
.pill:hover{transform:translateY(-2px);filter:brightness(1.07)}
.pill.gold{background:var(--gold-1);color:#2a1706;border-color:var(--gold-1);box-shadow:0 5px 0 var(--gold-3),0 10px 22px rgba(0,0,0,.35)}
.pill.ghost{background:rgba(0,0,0,.3);font-weight:400}
.pill.big{font-size:1.3rem;min-height:60px;padding:12px 38px}
.pill:disabled{opacity:.5;cursor:wait}
.go-row{grid-column:1/-1;display:flex;justify-content:center;margin-top:6px}
.rules{max-width:880px;margin:36px auto 0;background:rgba(0,0,0,.2);border:1px solid rgba(233,185,90,.2);border-radius:18px;padding:18px 20px}
.rules ol{padding-left:1.2em;display:grid;gap:8px}
.rules b{color:var(--gold-text)}
.maker{margin-top:34px;text-align:center;color:var(--cream-dim);font-size:.95rem;display:flex;flex-direction:column;align-items:center;gap:10px}
.maker img{height:43px;width:auto;opacity:.9}

/* ---------- lobby ---------- */
#lobby{padding:40px 16px 110px}
.lobby-title{font-family:"Yeseva One",serif;font-weight:400;text-align:center;font-size:1.6rem;margin-bottom:16px;color:var(--gold-text)}

/* ---------- the party table ---------- */
#play{position:fixed;inset:var(--top) 0 0 0;z-index:5;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.table{position:absolute;inset:0;display:flex;flex-direction:column;padding:18px 8px max(8px,env(safe-area-inset-bottom));gap:8px}
.side{flex:1 1 0;min-height:0;display:flex;gap:8px}
.side.away{order:1}.ring-wrap{order:2}.side.home{order:3}
.ring-wrap{flex:0 0 auto;height:min(calc(100vw - 16px),52dvh);display:grid;place-items:center;container-type:size;min-height:0}
.ring{position:relative;width:min(100cqw,100cqh);height:min(100cqw,100cqh)}
body.solo .side.away,body.online .side.away{flex:0 0 auto}
body.solo .side.home,body.online .side.home{flex:1 1 0}
body.solo .ring-wrap,body.online .ring-wrap{height:min(calc(100vw - 16px),56dvh)}
@media (orientation:landscape){
  .table{flex-direction:row;padding:14px max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}
  .side{flex-direction:column}
  .side.home{order:1}.side.away{order:3}
  .ring-wrap{height:auto;width:min(calc(100dvh - var(--top) - 24px),56vw)}
  body.solo .ring-wrap,body.online .ring-wrap{height:auto;width:min(calc(100dvh - var(--top) - 24px),52vw)}
  body.solo .side.away,body.online .side.away{flex:0 0 min(24vw,260px)}
}

/* the rug and the record at the centre */
.rug{position:absolute;inset:8%;border-radius:50%;
  background:radial-gradient(circle,rgba(178,58,32,.28) 0 30%,transparent 31%),repeating-radial-gradient(circle,rgba(233,185,90,.12) 0 2px,transparent 2px 18px),radial-gradient(circle,rgba(0,0,0,.22),rgba(0,0,0,.05) 70%);
  border:2px dashed rgba(233,185,90,.3);box-shadow:inset 0 0 40px rgba(0,0,0,.35)}
.hub{position:absolute;left:50%;top:50%;width:40%;transform:translate(-50%,-50%);text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px;z-index:3;pointer-events:none}
.hub .pill{pointer-events:auto;margin-top:6px;white-space:nowrap}
.record{width:30%;aspect-ratio:1;border-radius:50%;background:repeating-radial-gradient(circle,#161010 0 2px,#221818 2px 4px);box-shadow:0 6px 14px rgba(0,0,0,.5);position:relative}
.record i{position:absolute;inset:34%;border-radius:50%;background:var(--lacquer-1);box-shadow:inset 0 0 0 2px var(--gold-1)}
.record i::after{content:"";position:absolute;inset:42%;border-radius:50%;background:#111}
body.spinning .record{animation:spin 1.8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.hub-big{font-family:"Yeseva One",serif;font-size:clamp(1.3rem,calc(var(--rs,400px) * .08),3.4rem);line-height:1.05;text-shadow:0 3px 16px rgba(0,0,0,.7)}
.hub-big.count{font-size:clamp(3rem,calc(var(--rs,400px) * .2),7rem);color:var(--gold-text)}
.hub-big.sit{color:var(--gold-text);animation:pop .35s cubic-bezier(.2,1.6,.4,1)}
@keyframes pop{from{transform:scale(.4);opacity:0}}
.hub-small{font-size:clamp(.95rem,calc(var(--rs,400px) * .04),1.25rem);color:var(--cream-dim);text-shadow:0 2px 8px rgba(0,0,0,.8)}

/* chairs and tokens */
.chairs,.tokens{position:absolute;inset:0}
.chair{position:absolute;left:0;top:0;width:var(--cs);height:var(--cs);margin:calc(var(--cs) / -2) 0 0 calc(var(--cs) / -2);transition:transform .7s cubic-bezier(.3,1.3,.5,1),opacity .5s}
.chair svg{width:100%;height:100%;display:block;overflow:visible}
.chair.gone{opacity:0}
body.flicker .chair svg{filter:drop-shadow(0 0 10px #f2cf7e) brightness(1.25)}
.tok{position:absolute;left:0;top:0;width:var(--ts);height:var(--ts);margin:calc(var(--ts) / -2) 0 0 calc(var(--ts) / -2);z-index:2;will-change:transform}
.tok .disc{width:100%;height:100%;border-radius:50%;display:grid;place-items:center;
  background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.55),transparent 38%),var(--pc);
  border:3px solid var(--cream);box-shadow:0 6px 10px rgba(0,0,0,.45),inset 0 -4px 0 rgba(0,0,0,.18);
  font-family:"Yeseva One",serif;font-size:calc(var(--ts) * .46);color:#221410;line-height:1}
.tok .tag{position:absolute;left:50%;top:100%;transform:translateX(-50%);margin-top:2px;font-size:max(13px,calc(var(--ts) * .3));font-weight:700;white-space:nowrap;color:var(--cream);text-shadow:0 1px 3px #000,0 0 8px rgba(0,0,0,.8)}
.tok.seated .disc{box-shadow:0 0 0 4px var(--gold-1),0 8px 14px rgba(0,0,0,.5)}
.tok.jumped .disc{animation:shake .4s 2}
.tok.out{opacity:.55;filter:grayscale(.9)}
.tok.me .disc{border-color:var(--gold-1)}
@keyframes shake{25%{transform:translateX(-8%) rotate(-8deg)}75%{transform:translateX(8%) rotate(8deg)}}

/* player zones: each thumb owns one */
.zone{position:relative;flex:1 1 0;min-width:0;min-height:0;border-radius:18px;display:grid;place-items:center;text-align:center;padding:8px;overflow:hidden;cursor:pointer;
  background:linear-gradient(160deg,color-mix(in srgb,var(--pc) 42%,#0c2b27),color-mix(in srgb,var(--pc) 20%,#071c19));
  border:3px solid var(--pc);box-shadow:inset 0 0 30px rgba(0,0,0,.35),0 6px 16px rgba(0,0,0,.35);transition:filter .15s,transform .08s,background .2s}
.zone .zin{display:flex;flex-direction:column;align-items:center;gap:2px;pointer-events:none}
.zone .zname{font-family:"Yeseva One",serif;font-size:clamp(1.25rem,5.2vmin,2.6rem);line-height:1.05;text-shadow:0 2px 10px rgba(0,0,0,.6);overflow-wrap:anywhere}
.zone .zstate{font-size:clamp(1rem,3.2vmin,1.35rem);color:var(--cream);font-weight:700;letter-spacing:.02em}
.zone .zkey{font-size:.95rem;color:var(--cream-dim)}
.zone .zkey kbd{font-family:inherit;padding:2px 8px;border-radius:6px;border:1px solid rgba(244,231,201,.5)}
@media (hover:none){.zone .zkey{display:none}}
.zone.press{transform:scale(.97);filter:brightness(1.35)}
.zone.sat{background:linear-gradient(160deg,var(--pc),color-mix(in srgb,var(--pc) 55%,#071c19))}
.zone.sat .zstate{color:#fff}
.zone.jumped{animation:shake .4s 2}
.zone.out{filter:grayscale(.85) brightness(.6);cursor:default}
.zone.watch{cursor:default}
@media (orientation:portrait){ body.local .side.away .zone .zin{transform:rotate(180deg)} }
.others{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;align-content:center;width:100%}
@media (orientation:landscape){ .others{flex-direction:column;flex-wrap:nowrap;justify-content:center;align-items:stretch} }
.pchip{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border-radius:999px;background:rgba(0,0,0,.35);border:1px solid rgba(233,185,90,.25);font-size:1rem;min-height:40px}
.pchip i{width:26px;height:26px;border-radius:50%;background:var(--pc);border:2px solid var(--cream);flex:none;display:grid;place-items:center;font-style:normal;font-family:"Yeseva One",serif;font-size:.9rem;color:#221410}
.pchip b{font-weight:700;white-space:nowrap}
.pchip small{color:var(--cream-dim);font-size:.9rem;white-space:nowrap}
.pchip.out{opacity:.5}
.pchip.sat{border-color:var(--gold-1)}

/* reveal + podium */
.veil{position:absolute;inset:0;z-index:20;display:grid;place-items:center;padding:14px;background:rgba(7,22,20,.66);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);overflow:auto;touch-action:auto}
.sheet{width:min(560px,100%);max-height:100%;overflow:auto;border-radius:22px;padding:20px 20px 18px;background:linear-gradient(160deg,#17453f,#0c2b27 70%,#071c19);border:1px solid rgba(233,185,90,.5);box-shadow:0 30px 70px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,225,170,.2);display:flex;flex-direction:column;gap:10px;animation:rise .35s cubic-bezier(.2,1.2,.4,1)}
@keyframes rise{from{transform:translateY(24px) scale(.96);opacity:0}}
.sheet h2{font-family:"Yeseva One",serif;font-weight:400;font-size:clamp(1.6rem,5vw,2.3rem);line-height:1.1}
.rev-line{font-size:1.1rem;padding:10px 14px;border-radius:12px;background:rgba(0,0,0,.28);border-left:4px solid var(--gold-1)}
.rev-line:empty{display:none}
#rev-hear{align-self:flex-start}
.rev-list{list-style:none;display:grid;gap:6px}
.rev-list li{display:grid;grid-template-columns:26px 1fr auto;gap:10px;align-items:center;padding:8px 12px;border-radius:12px;background:rgba(0,0,0,.22);font-size:1.05rem}
.rev-list li i{width:22px;height:22px;border-radius:50%;background:var(--pc);border:2px solid var(--cream)}
.rev-list li span{color:var(--cream-dim);font-size:.98rem;text-align:right}
.rev-list li.out{background:rgba(178,58,32,.35);border:1px solid rgba(255,160,130,.4)}
.rev-list li.out span{color:#ffd2c2}
.rev-best{color:var(--gold-text);font-style:italic}
.rev-best:empty{display:none}
.podium{display:flex;justify-content:center;align-items:flex-end;gap:8px;margin:12px 0 4px;min-height:190px}
.step-p{display:flex;flex-direction:column;align-items:center;gap:6px;width:min(30%,150px)}
.step-p .who{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}
.step-p .who i{width:46px;height:46px;border-radius:50%;background:var(--pc);border:3px solid var(--cream);box-shadow:0 6px 12px rgba(0,0,0,.4);display:grid;place-items:center;font-style:normal;font-family:"Yeseva One",serif;font-size:1.3rem;color:#221410}
.step-p .who b{font-size:1.05rem;line-height:1.15;overflow-wrap:anywhere}
.step-p .block{width:100%;border-radius:12px 12px 4px 4px;display:grid;place-items:center;font-family:"Yeseva One",serif;font-size:2rem;color:#2a1706;box-shadow:inset 0 2px 0 rgba(255,255,255,.35),0 10px 18px rgba(0,0,0,.4)}
.step-p.p1 .block{height:110px;background:linear-gradient(var(--gold-1),var(--gold-3))}
.step-p.p2 .block{height:78px;background:linear-gradient(#f4e7c9,#bfae88)}
.step-p.p3 .block{height:56px;background:linear-gradient(#d0714f,var(--lacquer-2));color:var(--cream)}
.step-p.p1 .who i{width:60px;height:60px;font-size:1.6rem;box-shadow:0 0 0 4px var(--gold-1),0 8px 16px rgba(0,0,0,.45)}
#confetti{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:25}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  body.spinning .record{animation:none}
}
body.in-play{overflow:hidden}
.lobby-wrap{max-width:560px;margin:0 auto}
.lobby-way{margin-top:14px}
.lobby-way h2{font-size:1.2rem}
.rev-line.flash{animation:glow 1s ease-out}
@keyframes glow{0%{box-shadow:0 0 0 0 rgba(242,207,126,.9);background:rgba(233,185,90,.35)}100%{box-shadow:0 0 0 14px rgba(242,207,126,0)}}
@media (max-width:520px){body.in-play .top .back span{display:none}}
.hub .pill{min-height:44px;padding:8px 18px;font-size:clamp(.95rem,calc(var(--rs,400px) * .045),1.15rem)}
@media (max-height:520px){.sheet{padding:12px 16px;gap:6px}.sheet h2{font-size:1.35rem}.rev-line{font-size:1rem;padding:6px 12px}.rev-list li{padding:4px 10px}.podium{min-height:140px;margin:4px 0}.step-p.p1 .block{height:70px}.step-p.p2 .block{height:50px}.step-p.p3 .block{height:36px}.step-p .who i{width:36px;height:36px}.step-p.p1 .who i{width:44px;height:44px}}
