*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}
:root{
  --bg:#040811;--bg2:#0a1328;--card:#0e1a33;--card2:#13234a;--line:#ffffff17;--line2:#ffffff2b;
  --ink:#f7f5ef;--muted:#93a3c2;--dim:#64739a;
  --gold:#ffc83d;--gold2:#ff9f1c;--red:#ff3b4e;--red2:#c3122e;--green:#2ee88a;--blue:#3fa9ff;
  --famous:#ffd23f;--known:#2ee88a;--triple:#ff8a3d;--deep:#3fa9ff;--obscure:#c77dff;
  --kb:0px;--vvh:100dvh;--vvt:0px;
  --sp1:4px;--sp2:8px;--sp3:12px;--sp4:16px;--sp5:24px;
  --r1:10px;--r2:16px;--r3:22px;
  --disp:"Bebas Neue",Oswald,Impact,sans-serif;--cond:Oswald,"Arial Narrow",sans-serif;--ui:Inter,system-ui,-apple-system,sans-serif}
html,body{margin:0;min-height:100%;color:var(--ink);font:15px/1.4 var(--ui);overscroll-behavior:none;-webkit-text-size-adjust:100%;
  background:var(--bg) radial-gradient(140% 900px at 50% -10%,#0b1638 0%,#070e22 45%,var(--bg) 100%) no-repeat}
html.typing,html.typing body{overflow:hidden;height:100%;position:fixed;inset:0;width:100%}
#app{max-width:520px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;padding:0 0 env(safe-area-inset-bottom)}

/* ================= stadium ================= */
#stage{position:relative;height:min(46dvh,440px);min-height:280px;overflow:hidden;border-radius:0;isolation:isolate;
  -webkit-mask-image:linear-gradient(180deg,#000 88%,transparent);mask-image:linear-gradient(180deg,#000 94%,transparent)}
body.owner #stage{border-radius:0;margin:0}
#cv{position:absolute;inset:0;width:100%;height:100%;display:block}
#stage:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#0006 0%,transparent 22%,transparent 70%,#040811aa 100%);z-index:1}
#stage.shake{animation:shake .38s cubic-bezier(.36,.07,.19,.97)}
@keyframes shake{10%,90%{transform:translate(-2px,1px)}20%,80%{transform:translate(4px,-2px)}30%,50%,70%{transform:translate(-6px,3px) rotate(-.4deg)}40%,60%{transform:translate(6px,-3px) rotate(.4deg)}}
#flash{position:absolute;inset:0;background:radial-gradient(circle at 50% 85%,#fff 0%,#fff6 30%,transparent 70%);opacity:0;pointer-events:none;mix-blend-mode:screen;z-index:2}
#flash.go{animation:flash .35s ease-out}@keyframes flash{0%{opacity:1}100%{opacity:0}}

/* broadcast score bug */
#hud{position:absolute;top:calc(var(--sp2) + env(safe-area-inset-top));left:var(--sp2);right:var(--sp2);height:44px;display:flex;align-items:stretch;border-radius:12px;overflow:hidden;z-index:5;
  background:linear-gradient(180deg,#0b1631e8,#050a18f0);backdrop-filter:blur(12px) saturate(150%);-webkit-backdrop-filter:blur(12px) saturate(150%);box-shadow:0 8px 22px #000a,inset 0 1px 0 #ffffff26;border:1px solid var(--line)}
body.owner #hud{top:var(--sp2)}
#hud>div{display:flex;align-items:center;gap:6px;padding:0 10px;border-right:1px solid var(--line)}
.sb-brand{background:linear-gradient(135deg,#ff4d5e,var(--red2));gap:6px!important}
.logo{font:400 21px/1 var(--disp);letter-spacing:1.5px;text-shadow:0 2px 0 #0004}
.sb-day{font:700 11px/1 var(--cond);background:#0003;border-radius:5px;padding:3px 5px 2px;letter-spacing:.5px}
.sb-k{font:600 10px/1 var(--cond);color:var(--muted);letter-spacing:1.2px}
#innNum,#totalFt{font:400 24px/1 var(--disp);letter-spacing:1px;font-variant-numeric:tabular-nums}
#totalFt{color:var(--gold);min-width:46px;text-align:right}
.sb-ft{flex:1;justify-content:flex-end}
#dots{display:flex;gap:4px;margin-left:2px}
#dots i{width:8px;height:8px;border-radius:50%;background:#ffffff1f;box-shadow:inset 0 1px 2px #0008}
#dots i.cur{background:#fff;box-shadow:0 0 8px #fff}
#dots i.famous{background:var(--famous)}#dots i.known{background:var(--known)}#dots i.triple{background:var(--triple)}#dots i.deep{background:var(--deep)}#dots i.obscure{background:var(--obscure)}#dots i.strike{background:var(--red)}
.sb-tools{gap:4px!important;border-right:0!important;padding:0 6px!important}
.sb-tools button{width:30px;height:30px;border-radius:9px;border:1px solid var(--line2);background:#ffffff0d;color:var(--ink);font:700 13px var(--ui);cursor:pointer;display:grid;place-items:center}
#streakChip{position:absolute;top:calc(60px + env(safe-area-inset-top));right:var(--sp3);font:600 12px/1 var(--cond);letter-spacing:.5px;background:#000b;padding:5px 9px;border-radius:99px;border:1px solid var(--line);z-index:5}
body.owner #streakChip{top:60px}

/* hit FX */
#fx{position:absolute;inset:0;pointer-events:none;display:grid;place-items:center;z-index:4}
#tierStamp,#distBig,#strikeStamp,#bases{grid-area:1/1;opacity:0}
#tierStamp{font:400 clamp(52px,15vw,96px)/1 var(--disp);letter-spacing:2px;transform:translateY(-34px);text-shadow:0 5px 0 #0008,0 0 36px currentColor;-webkit-text-stroke:1px #0005}
#tierStamp.show{animation:slam .55s cubic-bezier(.2,1.6,.4,1) forwards}
@keyframes slam{0%{opacity:0;transform:translateY(-34px) scale(2.6) rotate(-8deg);filter:blur(6px)}60%{filter:blur(0)}100%{opacity:1;transform:translateY(-34px) scale(1) rotate(-3deg)}}
#distBig{font:400 34px/1 var(--disp);color:#fff;transform:translateY(26px);text-shadow:0 3px 10px #000;background:#000a;padding:6px 14px 4px;border-radius:10px;border:1px solid var(--line2);font-variant-numeric:tabular-nums}
#distBig.show{opacity:1;animation:rise .3s ease-out}@keyframes rise{from{transform:translateY(40px)}to{transform:translateY(26px)}}
#strikeStamp{font:400 clamp(64px,20vw,110px)/1 var(--disp);color:var(--red);letter-spacing:4px;border:6px solid var(--red);padding:2px 18px;border-radius:12px;text-shadow:0 0 24px #ff3b4e88;box-shadow:0 0 30px #ff3b4e55,inset 0 0 20px #ff3b4e44;background:#1a000699}
#strikeStamp.show{animation:stamp .45s cubic-bezier(.2,1.5,.4,1) forwards}
@keyframes stamp{0%{opacity:0;transform:scale(3) rotate(8deg)}100%{opacity:1;transform:scale(1) rotate(-8deg)}}
#bases{width:54px;height:54px;position:relative;transform:translateY(84px) rotate(45deg)}
#bases.show{opacity:1;animation:pop .3s ease-out}
@keyframes pop{0%{transform:translateY(84px) rotate(45deg) scale(.4)}100%{transform:translateY(84px) rotate(45deg) scale(1)}}
#bases .base{position:absolute;width:18px;height:18px;border-radius:3px;background:#ffffff22;border:2px solid #ffffffaa;box-shadow:0 2px 6px #0009;transition:.15s}
#bases .b1{right:0;bottom:0}#bases .b2{right:0;top:0}#bases .b3{left:0;top:0}#bases .b4{left:0;bottom:0}
#bases .base.on{transform:scale(1.2)}
#bases.t-famous .on{background:var(--famous);box-shadow:0 0 14px var(--famous)}#bases.t-known .on{background:var(--known);box-shadow:0 0 14px var(--known)}#bases.t-triple .on{background:var(--triple);box-shadow:0 0 14px var(--triple)}#bases.t-deep .on{background:var(--deep);box-shadow:0 0 14px var(--deep)}#bases.t-obscure .on{background:var(--obscure);box-shadow:0 0 14px var(--obscure)}
.c-famous{color:var(--famous)}.c-known{color:var(--known)}.c-triple{color:var(--triple)}.c-deep{color:var(--deep)}.c-obscure{color:var(--obscure)}

/* ================= start ================= */
.overlay{position:absolute;inset:0;display:grid;place-items:end center;padding:0 var(--sp4) var(--sp5);background:linear-gradient(180deg,transparent 25%,#040811e6 88%);z-index:3}
.hero{text-align:center;width:100%;max-width:400px}
.kicker{font:600 12px/1 var(--cond);letter-spacing:3px;text-transform:uppercase;color:var(--gold);margin-bottom:var(--sp1)}
.hero h1{margin:0;font:400 clamp(64px,20vw,92px)/.88 var(--disp);letter-spacing:3px;text-shadow:0 6px 0 #0009,0 0 40px #ffc83d33}
.hero h1 span{color:var(--gold)}
.tag{margin:var(--sp2) 0 var(--sp4);color:#dbe3f2;font-size:14px}.tag b{color:#fff}
.cta{display:block;width:100%;padding:16px 18px 13px;border:0;border-radius:var(--r2);cursor:pointer;font:400 27px/1 var(--disp);letter-spacing:2px;color:#1b1200;
  background:linear-gradient(180deg,#ffe58a,var(--gold) 45%,var(--gold2));box-shadow:0 5px 0 #a35f00,0 14px 28px #0009,inset 0 1px 0 #fff9;transition:transform .08s,box-shadow .08s}
.cta:active{transform:translateY(4px);box-shadow:0 1px 0 #a35f00,0 6px 14px #0008}
.small{font-size:12.5px;color:var(--muted)}
#lockedMsg{margin:var(--sp3) 0 0}

.glass,#lineup,.qcard,.box,.share{background:linear-gradient(165deg,var(--card2),var(--card) 60%,#0b152c);border:1px solid var(--line);border-radius:var(--r3);box-shadow:0 18px 40px #0009,inset 0 1px 0 #ffffff1c}
#lineup{margin:var(--sp4) var(--sp3) 0;padding:var(--sp4)}
.lu-h{display:flex;justify-content:space-between;align-items:baseline;font:400 20px/1 var(--disp);letter-spacing:2px;color:var(--gold)}
.lu-h span:last-child{color:var(--muted);font-size:16px}
#lineup ol{list-style:none;margin:var(--sp3) 0 var(--sp4);padding:0;display:flex;flex-direction:column;gap:6px}
#lineup li{display:flex;align-items:center;gap:var(--sp3);background:#ffffff08;border:1px solid var(--line);border-radius:12px;padding:8px 12px;font:600 13px/1 var(--cond);letter-spacing:1px;text-transform:uppercase}
#lineup li b{font:400 20px/1 var(--disp);color:var(--dim);width:16px;text-align:center}
#lineup li .pill{font-size:12px}
.lu-k{font:600 11px/1 var(--cond);letter-spacing:2px;color:var(--muted);margin-bottom:var(--sp2)}
.legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:6px}
.legend .t{font:400 15px/1 var(--disp);letter-spacing:1px;padding:7px 9px 5px;border-radius:8px;color:#111;display:flex;justify-content:space-between;gap:6px}
.t.famous{background:var(--famous)}.t.known{background:var(--known)}.t.triple{background:var(--triple)}.t.deep{background:var(--deep)}.t.obscure{background:var(--obscure)}

/* ================= pitch / question ================= */
#playView{padding:var(--sp3) var(--sp3) 0}
.qcard{position:relative;padding:var(--sp4);overflow:hidden}
.qcard:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--red),var(--gold))}
.qtop{display:flex;align-items:center;gap:var(--sp2);min-height:44px}
.pill{display:inline-block;background:linear-gradient(135deg,#ff4d5e,var(--red2));color:#fff;padding:4px 10px 3px;border-radius:99px;font:700 12px/1.1 var(--cond);letter-spacing:1px;text-transform:uppercase;white-space:nowrap;max-width:52vw;overflow:hidden;text-overflow:ellipsis}
#qNum{font:600 12px/1 var(--cond);color:var(--muted);letter-spacing:1.5px;text-transform:uppercase;white-space:nowrap}
.qscore{margin-left:auto;font:600 11px/1 var(--cond);color:var(--muted);letter-spacing:1px;white-space:nowrap}
.qscore b{font:400 22px/1 var(--disp);color:var(--gold);letter-spacing:1px;margin-right:2px;font-variant-numeric:tabular-nums}
#clockWrap{position:relative;flex:none;width:46px;height:46px;display:grid;place-items:center}
#clockWrap svg{position:absolute;inset:0;transform:rotate(-90deg)}
.trk{fill:#0009;stroke:#ffffff18;stroke-width:4}
#ring{fill:none;stroke:var(--green);stroke-width:4;stroke-linecap:round;stroke-dasharray:119.4;stroke-dashoffset:0;transition:stroke .3s}
#clock{position:relative;font:400 22px/1 var(--disp);font-variant-numeric:tabular-nums}
#clockWrap.low #clock{color:var(--red);animation:pulse .5s infinite alternate}@keyframes pulse{to{transform:scale(1.15)}}
.pitchbar{position:relative;height:4px;border-radius:4px;background:#ffffff14;margin:var(--sp3) 0 var(--sp1)}
.pitchbar i{position:absolute;top:50%;left:0;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff,#d9d3c4);box-shadow:0 0 10px #fff8}
.pitchbar.low i{box-shadow:0 0 12px var(--red)}
#qText{margin:var(--sp3) 0 var(--sp4);font:700 clamp(23px,6.6vw,30px)/1.12 var(--cond);letter-spacing:.1px;text-wrap:balance}
#feedback{margin:var(--sp3) 0 0;min-height:1.4em;font:600 15px/1.35 var(--ui);color:#d5e2ff}
#feedback:empty{display:none}
#feedback b{font-weight:800}
#nextBtn{margin:var(--sp4) 0 0}

/* answer row: lives right under the question */
#answerForm{position:relative;display:flex;gap:var(--sp2)}
#answer{flex:1;min-width:0;height:54px;padding:0 16px;font:600 17px var(--ui);border-radius:14px;border:2px solid #2c4170;background:#f8f6f0;color:#0b1020;outline:none;-webkit-appearance:none;appearance:none}
#answer::placeholder{color:#8a93a8;font-weight:500}
#answer:focus{border-color:var(--gold);box-shadow:0 0 0 4px #ffc83d33}
#answer:disabled{opacity:.55}
#answerForm button{flex:none;height:54px;border:0;border-radius:14px;padding:0 18px;font:400 23px/1 var(--disp);letter-spacing:1.5px;color:#fff;background:linear-gradient(180deg,#ff6676,var(--red) 50%,#c0142d);box-shadow:0 4px 0 #7d0a1b,inset 0 1px 0 #fff6;cursor:pointer}
#answerForm button:active{transform:translateY(3px);box-shadow:0 1px 0 #7d0a1b}
#foulChip{position:absolute;bottom:calc(100% + 6px);left:6px;font:400 17px/1 var(--disp);letter-spacing:2px;background:var(--gold);color:#241500;padding:6px 11px 4px;border-radius:8px;box-shadow:0 4px 12px #0008;opacity:0;transform:translateY(6px);transition:.18s;pointer-events:none}
#foulChip.show{opacity:1;transform:none}
.shake-x{animation:sx .3s}@keyframes sx{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}

/* ===== typing mode: pinned to the visual viewport (above the keyboard) ===== */
body.typing #stage,body.typing #ownerBar,body.typing footer,body.typing #lineup,body.typing #resultsView{display:none!important}
body.typing #playView{position:fixed;left:0;right:0;top:var(--vvt);height:var(--vvh);z-index:40;display:flex;flex-direction:column;justify-content:flex-start;
  padding:calc(var(--sp2) + env(safe-area-inset-top)) var(--sp3) var(--sp2);background:radial-gradient(120% 60% at 50% 0%,#1a2b5c,#070d1f 70%);overflow:hidden;max-width:620px;margin:0 auto}
body.typing .qcard{display:flex;flex-direction:column;padding:var(--sp3) var(--sp3) var(--sp3);border-radius:var(--r2)}
body.typing .qtop{min-height:38px}
body.typing #clockWrap{width:38px;height:38px}body.typing #clock{font-size:19px}
body.typing .pitchbar{margin:var(--sp2) 0 0}
body.typing #qText{font-size:clamp(24px,7vw,30px);margin:var(--sp3) 0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}
body.typing #feedback{display:none}

/* ================= results ================= */
#resultsView{padding:var(--sp4) var(--sp3) 0}
.share{position:relative;padding:var(--sp5) var(--sp4) var(--sp4);text-align:center;overflow:hidden;
  background:radial-gradient(130% 90% at 50% 0%,#2b4fb0 0%,#12245a 45%,#081030 100%);border-color:#ffffff2e}
.share:before{content:"";position:absolute;inset:-60% -30% auto;height:140%;background:conic-gradient(from 180deg at 50% 100%,transparent 0 35%,#ffc83d26 45%,transparent 55% 100%);pointer-events:none;animation:sweep 6s linear infinite}
@keyframes sweep{to{transform:rotate(360deg)}}
.share>*{position:relative}
.share .k{font:600 12px/1 var(--cond);letter-spacing:3px;color:#c9d6ff}
.perf{display:inline-flex;align-items:center;gap:8px;margin:var(--sp3) auto 0;padding:8px 18px 6px;border-radius:99px;font:400 28px/1 var(--disp);letter-spacing:2px;color:#140c00;box-shadow:0 8px 20px #0009,inset 0 1px 0 #fffa;animation:badge .6s .2s cubic-bezier(.2,1.6,.4,1) both}
@keyframes badge{from{transform:scale(.3) rotate(-8deg);opacity:0}to{transform:none;opacity:1}}
.perf .pe{font-size:22px}
.perf.hof{background:linear-gradient(135deg,#fff3b0,#ffc83d 40%,#e08a00);box-shadow:0 0 34px #ffc83d99,0 8px 20px #0009}
.perf.mvp{background:linear-gradient(135deg,#ffe07a,#ff9f1c)}
.perf.allstar{background:linear-gradient(135deg,#b5ddff,#3fa9ff);color:#04162b}
.perf.starter{background:linear-gradient(135deg,#b5f7d3,#2ee88a);color:#03180c}
.perf.bench{background:linear-gradient(135deg,#e1e6ef,#8d9ab3);color:#111827}
.share .big{font:400 clamp(68px,21vw,104px)/1 var(--disp);color:var(--gold);text-shadow:0 5px 0 #7a4b00,0 0 44px #ffc83d55;margin:var(--sp2) 0 0;font-variant-numeric:tabular-nums}
.share .pb{font:500 14px/1.35 var(--ui);color:#e3e9f6}.share .pb span{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.share .pct{margin-top:6px;font:600 13px var(--cond);color:var(--gold)}
.share .em{font-size:30px;letter-spacing:6px;margin:var(--sp3) 0 var(--sp1)}
.share .meta{font:600 12px/1 var(--cond);color:#c9d6ff;letter-spacing:1.5px}
.share .cta{margin-top:var(--sp4)}
pre.sharetxt{display:none}
.final-k{font:600 12px var(--cond);letter-spacing:3px;color:var(--gold);text-align:center;margin-top:var(--sp5)!important}
.box{overflow:hidden;margin-top:var(--sp2)}
.box h3{margin:0;padding:12px 16px 10px;font:400 22px/1 var(--disp);letter-spacing:2px;background:linear-gradient(90deg,#ff4d5e,#7b0c20);display:flex;justify-content:space-between}
.box table{width:100%;border-collapse:collapse;font:500 14px var(--cond)}
.box th{font:600 10.5px var(--cond);color:var(--muted);letter-spacing:1.2px;text-align:left;padding:9px 10px;border-bottom:1px solid var(--line)}
.box td{padding:12px 10px;border-bottom:1px solid #ffffff0d;vertical-align:top}
.box td:first-child{font:400 20px/1 var(--disp);color:var(--dim);width:28px;padding-top:14px}
.box td.ft{text-align:right;font:400 22px/1 var(--disp);font-variant-numeric:tabular-nums;padding-top:14px}
.box .ans{font:700 16px/1.2 var(--cond);margin-top:3px}.box .q{color:var(--muted);font:500 11.5px/1.3 var(--ui)}
.box .rare{color:#7f90b4;font:400 11.5px/1.35 var(--ui);margin-top:5px}
.box td:nth-child(3){padding-top:13px;width:1%;white-space:nowrap}
.badge{display:inline-block;font:400 13px/1 var(--disp);letter-spacing:1px;padding:4px 7px 3px;border-radius:5px;color:#111}
.badge.famous{background:var(--famous)}.badge.known{background:var(--known)}.badge.triple{background:var(--triple)}.badge.deep{background:var(--deep)}.badge.obscure{background:var(--obscure)}.badge.strike{background:var(--red);color:#fff}
.box tfoot td{font:400 22px var(--disp);letter-spacing:1px;background:#00000040;padding-top:12px}
.box tfoot td.ft{color:var(--gold);font-size:30px}
#resultsView>.small{margin:var(--sp4) 0}

dialog{background:linear-gradient(160deg,#18294f,#0b1530);color:var(--ink);border:1px solid var(--line2);border-radius:var(--r3);max-width:min(92vw,440px);padding:var(--sp5);box-shadow:0 30px 60px #000c}
dialog::backdrop{background:#000b;backdrop-filter:blur(3px)}
dialog h2{margin:0 0 6px;font:400 34px var(--disp);letter-spacing:2px;color:var(--gold)}
dialog ol{padding-left:20px;margin:0}dialog li{margin:9px 0}
footer{margin-top:auto;padding:var(--sp5) var(--sp4) var(--sp3);font-size:11px;color:#62708f;text-align:center}

/* owner bar */
#ownerBar{position:relative;margin:max(8px,env(safe-area-inset-top)) auto 8px;width:max-content;max-width:calc(100% - 16px);z-index:50;display:flex;align-items:center;gap:8px;padding:5px 5px 5px 7px;border-radius:999px;background:linear-gradient(135deg,#141a2ce6,#281e3ce6);border:1px solid #ffd75a73;box-shadow:0 6px 24px #0007,inset 0 1px 0 #ffffff14;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font:600 12px/1 var(--ui);color:#f4f1e6;white-space:nowrap}
#ownerBar .ob-badge{padding:5px 9px;border-radius:999px;background:linear-gradient(135deg,#ffd75a,#f0a020);color:#1a1405;letter-spacing:.12em;font-size:10px;font-weight:800}
#ownerBar select{appearance:none;-webkit-appearance:none;min-width:0;max-width:52vw;text-overflow:ellipsis;background:#ffffff14 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23ffd75a'/%3E%3C/svg%3E") no-repeat right 10px center;color:#f4f1e6;border:1px solid #ffffff26;border-radius:999px;padding:7px 28px 7px 12px;font:600 13px/1 var(--ui);cursor:pointer}
#ownerBar select option{background:#1a1d2b;color:#f4f1e6}
#ownerBar button{border:0;border-radius:999px;padding:7px 13px;background:#2fbf71;color:#04170c;font:inherit;font-weight:800;cursor:pointer}

/* results: slim stadium so the scorecard leads */
@media (max-width:959px), (orientation:portrait){ body.results #stage{height:clamp(150px,24dvh,240px);min-height:0} body.results #fx{display:none} }
.overlay{background:linear-gradient(180deg,#04081155 0%,#040811 18%,transparent 0) , linear-gradient(180deg,transparent 20%,#040811f2 80%)}
.overlay{background:linear-gradient(180deg,#0408114d 0%,#04081199 40%,#040811f5 82%)}
/* small phones */
@media (max-width:400px){ .sb-k{display:none} #hud>div{padding:0 8px} .sb-tools{padding:0 5px!important} .sb-tools button{width:28px;height:28px} }
@media (max-width:380px){ #hud>div{padding:0 7px} .logo{font-size:19px} #dots i{width:7px;height:7px} #answerForm button{padding:0 14px;font-size:21px} }
@media (max-height:700px) and (max-width:600px){ #stage{height:44dvh;min-height:250px} }

/* ================= tablets ================= */
@media (min-width:700px){
  #app{max-width:780px;padding:0 20px}
  #stage{height:min(52vh,600px);border-radius:0;margin:12px -20px 0}
  body.owner #stage{margin:0 -20px}
  #hud{top:12px;left:12px;right:12px;height:52px;border-radius:14px}
  #hud>div{padding:0 14px}.logo{font-size:25px}#innNum,#totalFt{font-size:30px}#dots i{width:11px;height:11px}
  .sb-tools button{width:36px;height:36px}
  #streakChip,body.owner #streakChip{top:74px;font-size:14px}
  .hero h1{font-size:120px}.tag{font-size:17px}.cta{font-size:30px;padding:19px}
  #playView,#resultsView{padding:var(--sp5) 0 0}#lineup{margin:var(--sp5) 0 0;padding:var(--sp5)}
  #lineup ol{display:grid;grid-template-columns:repeat(5,1fr)}#lineup li{flex-direction:column;align-items:flex-start;gap:8px}
  .qcard{padding:var(--sp5)}#qText{font-size:34px}#clockWrap{width:60px;height:60px}#clock{font-size:28px}
  #answer,#answerForm button{height:62px}#answer{font-size:20px}#answerForm button{font-size:27px;padding:0 28px}
  #tierStamp{font-size:104px}#distBig{font-size:46px}
  .share{padding:32px}.share .big{font-size:110px}.perf{font-size:34px}
  .box table{font-size:16px}
  dialog{max-width:520px}
}
@media (min-width:960px) and (orientation:landscape){
  #app{max-width:1200px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-template-rows:auto 1fr auto;column-gap:24px;align-items:start;padding:0 24px}
  #ownerBar{grid-column:1/-1}
  #stage{grid-column:1;grid-row:2;margin-left:-24px!important;-webkit-mask-image:linear-gradient(90deg,#000 82%,transparent),linear-gradient(180deg,#000 90%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,#000 82%,transparent),linear-gradient(180deg,#000 90%,transparent);mask-composite:intersect;height:calc(100dvh - 140px);max-height:760px;min-height:420px;margin-top:16px;position:sticky;top:16px}
  body.owner #stage{height:calc(100dvh - 190px);margin-top:0}
  #lineup,#playView,#resultsView{grid-column:2;grid-row:2;margin-top:16px;padding-top:0}
  body.owner #lineup,body.owner #playView,body.owner #resultsView{margin-top:0}
  #lineup ol{display:flex}#lineup li{flex-direction:row;align-items:center}
  footer{grid-column:1/-1}
  .share{margin-top:0}
}

/* ===== Moonshot wordmark ===== */
.wm{position:relative;display:inline-block;margin:0;font:400 clamp(60px,18vw,92px)/.88 var(--disp)!important;letter-spacing:2px}
.hero h1.wm .wm-moon{color:#f7f5ef;text-shadow:0 6px 0 #0009,0 0 30px #cfe0ff33}
.wm-shot{background:linear-gradient(180deg,#ffe58a 0%,var(--gold) 45%,var(--gold2) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 6px 0 #0009) drop-shadow(0 0 22px #ffc83d55)}
.wm-orb{position:relative;display:inline-block;width:.6em;height:.6em;margin:0 .02em;vertical-align:.07em;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#fffdf5 0%,#efe8d6 45%,#b3a98f 100%);
  box-shadow:0 0 22px #ffffff55,0 0 48px #cfe0ff44,inset -.05em -.06em .1em #0004;animation:orb 3.2s ease-in-out infinite}
.wm-orb:before,.wm-orb:after{content:"";position:absolute;top:10%;bottom:10%;width:46%;border:.028em solid transparent;border-right-color:#d0303f;border-radius:50%}
.wm-orb:before{left:-22%}.wm-orb:after{right:-22%;transform:scaleX(-1)}
@keyframes orb{50%{transform:rotate(18deg) translateY(-.03em)}}
.logo{display:inline-flex;align-items:center;gap:5px}
.logo-orb{width:11px;height:11px;border-radius:50%;flex:none;background:radial-gradient(circle at 35% 32%,#fff,#e7dfca 55%,#a99f86);box-shadow:0 0 8px #fff8}
@media (max-width:400px){ .logo{font-size:18px!important;letter-spacing:1px} .logo-orb{width:9px;height:9px} }
@media (min-width:700px){ .wm{font-size:120px!important} }

/* Moonshot stamp lands with a heavier slam + glow; reduced-motion uses a fade */
#tierStamp.show.moon{animation:moonslam .6s cubic-bezier(.2,1.7,.35,1) forwards;text-shadow:0 5px 0 #0008,0 0 26px #c77dff,0 0 60px #c77dffaa}
@keyframes moonslam{0%{opacity:0;transform:translateY(-34px) scale(3.2) rotate(-10deg);filter:blur(8px)}55%{filter:blur(0)}100%{opacity:1;transform:translateY(-34px) scale(1) rotate(-3deg)}}
#tierStamp.show.fade{animation:fadein .5s ease-out forwards}
@keyframes fadein{from{opacity:0}to{opacity:1;transform:translateY(-34px) rotate(-3deg)}}
@media (prefers-reduced-motion:reduce){ #stage.shake{animation:none} #bases.show{animation:none} .perf{animation:none} .share:before{animation:none} }
