*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}
html,body{margin:0;height:100%;overflow:hidden;background:#0b0f2a;color:#eef;font:16px -apple-system,system-ui,sans-serif;touch-action:none;overscroll-behavior:none}
#cv{position:fixed;inset:0;width:100%;height:100%;display:block}
#top{position:fixed;top:0;left:0;right:0;display:flex;justify-content:space-between;padding:calc(10px + env(safe-area-inset-top)) 14px 6px;pointer-events:none;background:linear-gradient(#0b0f2acc,#0b0f2a00)}
.stat{display:flex;flex-direction:column;align-items:center;min-width:70px}
.stat b{font-size:24px;font-variant-numeric:tabular-nums}.stat span{font-size:11px;opacity:.65;text-transform:uppercase;letter-spacing:.08em}
#btnMute{pointer-events:auto;background:rgba(255,255,255,.08);border:0;border-radius:12px;width:40px;height:40px;font-size:18px;color:#fff;align-self:center;padding:0;flex:0 0 40px}
#treat{position:fixed;left:16px;right:16px;top:calc(66px + env(safe-area-inset-top));height:18px;border-radius:9px;background:#ffffff14;overflow:hidden;pointer-events:none}
#treatFill{position:absolute;left:0;top:0;bottom:0;width:100%;background:linear-gradient(90deg,#ffb36b,#ffe08a);border-radius:9px;transform-origin:left center;will-change:transform}
#treat.low #treatFill{background:linear-gradient(90deg,#9aa6ff,#c9b8ff)}
#treatTxt{position:absolute;left:0;right:0;top:0;line-height:18px;text-align:center;font-size:11px;font-weight:700;color:#2a1a0a;letter-spacing:.04em}
#treat.low #treatTxt{color:#1a1640}
#look{position:fixed;left:12px;right:12px;top:calc(90px + env(safe-area-inset-top));text-align:center;font-size:12px;line-height:16px;height:16px;white-space:nowrap;overflow:hidden;text-overflow:clip;color:#ffe9a8;pointer-events:none}
#ghost{position:fixed;left:12px;right:12px;top:calc(110px + env(safe-area-inset-top));text-align:center;font-size:13px;line-height:17px;height:17px;white-space:nowrap;overflow:hidden;text-overflow:clip;color:#9fd4ff;pointer-events:none}
#hint{position:fixed;left:50%;bottom:calc(110px + env(safe-area-inset-bottom));white-space:nowrap;transform:translateX(-50%);padding:11px 18px;border-radius:24px;background:#ffffff18;border:1px solid #ffffff2a;font-weight:700;font-size:15px;pointer-events:none;transition:opacity .3s}
#sheet,#board{position:fixed;left:0;right:0;bottom:0;padding:18px 18px calc(18px + env(safe-area-inset-bottom));background:#0e1333f2;border-top:1px solid #ffffff1f;border-radius:20px 20px 0 0;display:flex;flex-direction:column;gap:10px}
#board{top:12%;overflow:auto}
#endBig{text-align:center}#endBig b{font-size:54px;line-height:1;font-variant-numeric:tabular-nums}#endBig span{display:block;opacity:.75}
#endLine{text-align:center;font-weight:600;min-height:20px}
#endStars{text-align:center;font-size:14px;color:#ffe08a;min-height:18px}
#endTop{text-align:center;font-size:14px;opacity:.85;min-height:18px}
#endNote{text-align:center;font-size:12px;opacity:.6;min-height:14px}
button{font:inherit;font-weight:700;border:0;border-radius:14px;padding:15px;color:#fff;cursor:pointer;touch-action:manipulation}
button:active{opacity:.75}
.primary{background:linear-gradient(90deg,#ff9f6b,#ff7fb8);font-size:17px}
.secondary{background:#3b5bff}
.ghost{background:#ffffff14;flex:1}
.row{display:flex;gap:10px}
#boardList{margin:0;padding-left:28px;font-variant-numeric:tabular-nums}#boardList li{padding:6px 0;border-bottom:1px solid #ffffff12}
#boardMe{text-align:center;opacity:.8}
#toast{position:fixed;left:16px;right:16px;top:calc(120px + env(safe-area-inset-top));padding:12px 14px;border-radius:12px;background:#222a55;text-align:center;z-index:9}
[hidden]{display:none!important}
#endBreak{display:flex;flex-direction:column;gap:3px;font-size:13px;margin:2px 4px}
#endBreak .row{display:flex;align-items:center;gap:6px}
#endBreak .lab{flex:0 0 46%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#endBreak .bar{flex:1;height:8px;border-radius:4px;background:rgba(255,255,255,.1);overflow:hidden}
#endBreak .bar i{display:block;height:100%;background:linear-gradient(90deg,#7fe3ff,#ffd36b);transform-origin:left}
#endBreak .pct{flex:0 0 38px;text-align:right;font-weight:700}
#endBest{text-align:center;font-size:13px;color:#9ff0ff;min-height:16px}
#endNear{text-align:center;font-size:14px;font-weight:700;color:#ff9fd0;min-height:16px}
#endHint{text-align:center;font-size:13px;opacity:.9;min-height:16px;font-style:italic}
/* v3 layout fixes */
:root{--vh:100dvh}
.stat{flex:1 1 0;min-width:0}
.stat b{font-size:22px;white-space:nowrap}
#sheet{max-height:calc(var(--vh) - env(safe-area-inset-top) - 8px);overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain;gap:8px}
#sheet>*{flex-shrink:0}
#board{top:calc(env(safe-area-inset-top) + 8px);max-height:calc(var(--vh) - env(safe-area-inset-top) - 8px);touch-action:pan-y}
#endBreak .lab{white-space:normal;overflow:visible;flex:0 0 52%;line-height:1.2}
body.ended #top,body.ended #treat,body.ended #look,body.ended #ghost,body.ended #hint{opacity:0;transition:opacity .25s}
@media (max-height:700px){#sheet{padding-top:12px;gap:6px}#endBig b{font-size:42px}#sheet button{padding:12px}#endTop{display:none}}

#endLead{display:flex;align-items:center;gap:10px;background:#ffffff10;border-radius:14px;padding:8px 10px;margin-bottom:6px}
#endLead:empty{display:none}
#endLead .gpup{width:44px;height:auto;flex:none;opacity:.8}
#endLead b{display:block;font-size:16px;color:#bfe3ff}
#endLead span{display:block;font-size:13px;color:#ff9fd0;margin-top:2px}
button.big{font-size:19px;padding:16px 10px;width:100%}
button.small{font-size:14px;padding:9px 10px;opacity:.9}
.split{display:flex;gap:8px}.split[hidden]{display:none}
.split button{flex:1;font-size:15px;padding:14px 8px;margin:0}

.lvb{display:inline-block;font-size:11px;font-weight:700;padding:1px 6px;border-radius:8px;background:#6b5bff55;color:#d9d2ff;vertical-align:1px}
#lvTag{font-size:12px;color:#d9d2ff}

.split.two{flex-wrap:wrap}.split.two #btnShare{flex-basis:100%}

#top .stat{position:relative}
#mult{position:absolute;left:50%;top:100%;transform:translateX(-50%);margin-top:4px;font-style:normal;font-weight:900;font-size:17px;padding:2px 8px;border-radius:12px;color:#2b1600;background:linear-gradient(135deg,#ffe08a,#ff9fd0 60%,#c9a8ff);box-shadow:0 0 14px rgba(255,200,120,.65);white-space:nowrap}
#mult.up{animation:multUp .7s ease-out}
@keyframes multUp{0%{scale:1}35%{scale:1.55}100%{scale:1}}
#score{transition:text-shadow .4s,color .4s}
#score.hot{color:#ffe7a0;text-shadow:0 0 10px rgba(255,200,90,.8)}
#score.hot2{color:#fff1c8;text-shadow:0 0 16px rgba(255,170,220,.95),0 0 4px #fff}
#score.bump{animation:scBump .35s ease-out}
@keyframes scBump{0%{transform:scale(1)}40%{transform:scale(1.18)}100%{transform:scale(1)}}
#endPts{margin:6px auto 2px;font-weight:900;font-size:30px;line-height:1.1;text-align:center;background:linear-gradient(90deg,#ffe08a,#ff9fd0,#c9a8ff,#9ff0ff);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 10px rgba(255,200,120,.5))}
#endPts small{display:block;font-size:13px;font-weight:700;-webkit-text-fill-color:#ffe7b0;color:#ffe7b0;margin-top:2px}

#combo{overflow:hidden;position:fixed;left:50%;top:calc(132px + env(safe-area-inset-top));max-width:calc(100vw - 24px);white-space:nowrap;box-sizing:border-box;transform:translateX(-50%);pointer-events:none;font-weight:900;font-size:15px;letter-spacing:.5px;padding:4px 12px;border-radius:14px;background:rgba(20,10,50,.55);color:#e9dcff;box-shadow:0 0 10px rgba(180,140,255,.4);z-index:5}
#combo.bam{font-size:28px;line-height:34px;padding:2px 18px;color:#fff3c4;background:rgba(40,20,80,.4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,220,150,.45);text-shadow:0 0 8px #ffd166,0 0 16px #ff9fd0;box-shadow:0 0 18px rgba(255,180,220,.35);animation:bamIn .5s ease-out}
@keyframes bamIn{from{opacity:0;scale:.85}to{opacity:1;scale:1}}
#slot{position:fixed;left:0;width:1px;top:calc(132px + env(safe-area-inset-top));height:40px;visibility:hidden;pointer-events:none}

button.best{position:relative;background:linear-gradient(135deg,#ffd36b,#ff9fd0)!important;color:#2b1600!important;box-shadow:0 0 0 2px #ffe7a0,0 0 18px rgba(255,200,100,.6)!important;font-weight:900}
button.best::before{content:"BEST VALUE · REGULAR";position:absolute;top:-9px;right:10px;font-size:10px;font-weight:900;padding:1px 6px;border-radius:8px;background:#fff3c4;color:#7a4b00}

#nearCv{display:block;width:160px;height:75px;margin:4px auto 2px;border-radius:12px;background:rgba(255,255,255,.05)}
#endRec{margin:8px auto 4px;font-size:13px;line-height:1.5;opacity:.92;text-align:center}
#endRec b{color:#ffe08a}
#startRec{position:fixed;left:0;right:0;bottom:calc(18px + env(safe-area-inset-bottom));text-align:center;font-size:13px;font-weight:700;color:#ffe7b0;opacity:.85;pointer-events:none;text-shadow:0 1px 4px #000}

#wlive{position:fixed;left:50%;bottom:calc(20vh + env(safe-area-inset-bottom));transform:translateX(-50%);pointer-events:none;white-space:nowrap;font:900 34px/40px system-ui,-apple-system,sans-serif;color:#fff3c4;padding:4px 20px;border-radius:20px;background:rgba(50,20,90,.38);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,220,150,.5);text-shadow:0 0 10px #ffd166,0 0 22px #ff9fd0;z-index:5}
#wlive[data-t="4"],#wlive[data-t="5"],#wlive[data-t="6"]{font-size:40px;text-shadow:0 0 14px #ffd166,0 0 30px #ffb347}
#score[data-t="1"]{text-shadow:0 0 6px rgba(255,210,120,.5)}
#score[data-t="2"]{text-shadow:0 0 9px rgba(255,210,120,.65);font-size:1.05em}
#score[data-t="3"]{color:#ffeab0;text-shadow:0 0 12px rgba(255,200,100,.8);font-size:1.1em}
#score[data-t="4"]{color:#fff0c0;text-shadow:0 0 14px rgba(255,190,90,.9),0 0 4px #fff;font-size:1.15em;animation:tierPulse 1.6s ease-in-out infinite}
#score[data-t="5"],#score[data-t="6"]{color:#fff4cf;text-shadow:0 0 18px rgba(255,190,80,1),0 0 6px #fff;font-size:1.2em;animation:tierPulse 1.1s ease-in-out infinite}
@keyframes tierPulse{50%{text-shadow:0 0 24px rgba(255,200,90,1),0 0 8px #fff}}

#btnShare{font-size:12.5px;line-height:1.2}
#btnReplay.big{min-height:56px}

/* v10: end screen = scrollable stats on top + sticky action bar at the bottom (never needs a scroll to reach the buttons) */
#sheet{overflow:hidden!important;padding:10px 14px calc(10px + env(safe-area-inset-bottom));gap:0}
#endScroll{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain;display:flex;flex-direction:column;gap:6px;padding-bottom:6px;-webkit-mask-image:linear-gradient(#000 calc(100% - 14px),transparent);mask-image:linear-gradient(#000 calc(100% - 14px),transparent)}
#endScroll>*{flex-shrink:0}
#endBar{flex:none;display:flex;flex-direction:column;gap:7px;padding-top:8px;border-top:1px solid #ffffff14}
#endBar button{margin:0}
#endBar #btnReplay.big{min-height:50px;padding:12px 10px;font-size:18px}
#endBar #btnShare{padding:9px 10px;font-size:13px}
#endBar #endRow button{padding:8px 10px;font-size:14px}
#endBar .split button{padding:11px 6px;font-size:14px;line-height:1.2}
#endBar #endNote{min-height:0;font-size:11.5px}
@media (max-height:700px){#endBig b{font-size:38px}#endScroll{gap:4px}#endLead{margin-bottom:2px;padding:6px 8px}#endLead b{font-size:14px}#endLead span{font-size:12px}}
@media (max-height:600px){#endBar #btnReplay.big{min-height:44px;padding:9px;font-size:17px}#endBar{gap:5px}#endBar .split button{padding:9px 5px;font-size:13px}}
#combo.glowup{font-size:26px;color:#fff6d8;background:rgba(60,30,90,.32);border-color:rgba(255,226,150,.6)}
#combo.glowup[data-g="2"]{font-size:28px;text-shadow:0 0 10px #ffd166,0 0 20px #ff9fd0;box-shadow:0 0 22px rgba(255,200,120,.45)}
#combo.glowup[data-g="3"]{font-size:30px;text-shadow:0 0 12px #ffd166,0 0 24px #ff9fd0,0 0 34px #9ff0ff;box-shadow:0 0 28px rgba(255,200,120,.55)}
#combo.glowup[data-g="4"],#combo.glowup[data-g="5"],#combo.glowup[data-g="6"]{font-size:32px;background:linear-gradient(90deg,rgba(255,107,107,.22),rgba(255,209,102,.28),rgba(107,255,176,.22),rgba(107,197,255,.22),rgba(197,107,255,.24));text-shadow:0 0 14px #ffd166,0 0 28px #ff9fd0,0 0 40px #fff;box-shadow:0 0 34px rgba(255,210,130,.7);animation:bamIn .5s ease-out,gPulse .7s ease-in-out .5s infinite}
@keyframes gPulse{50%{box-shadow:0 0 46px rgba(255,220,150,.9)}}
#score[data-t="7"],#score[data-t="8"]{color:#fff8e0;text-shadow:0 0 20px rgba(255,190,80,1),0 0 10px #ff9fd0,0 0 4px #fff;font-size:1.22em;animation:tierPulse 0.9s ease-in-out infinite}
#wlive[data-t="7"],#wlive[data-t="8"]{font-size:42px;text-shadow:0 0 16px #ffd166,0 0 32px #ff9fd0,0 0 44px #9ff0ff}

body.ended #combo,body.ended #wlive{display:none!important}

/* v10b minimal results */
#endLead,#endPts,#endStars,#endBreak,#endBest,#nearCv,#endRec,#endHint,#endTop{display:none!important}
#sheet{gap:0}
#endScroll{-webkit-mask-image:none;mask-image:none;gap:8px;padding:10px 0 14px;justify-content:center}
#endBig b{font-size:64px;line-height:1.05}
#endBig span{margin-top:4px;font-size:24px;font-weight:900;opacity:1;background:linear-gradient(90deg,#ffe08a,#ff9fd0,#c9a8ff,#9ff0ff);-webkit-background-clip:text;background-clip:text;color:transparent}
#endLine{font-size:21px;font-weight:800;color:#bfe3ff;min-height:0}
#endLine.rec{font-size:26px;color:#ffe08a;text-shadow:0 0 12px rgba(255,200,100,.6)}
#endNear{font-size:16px;min-height:0}#endNear[hidden]{display:none}
#endBar{gap:9px;padding-top:12px}
#endBar #btnReplay.big{min-height:58px;font-size:20px}
#endBar #btnShare{padding:13px 10px;font-size:15px;opacity:1}
#endBar .split button{padding:13px 6px;font-size:15px}
#endBar #endRow{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:2px}
#endBar #endNote{font-size:13px;opacity:.7;text-align:left}
#endBar #endRow button.link{background:none;border:0;padding:6px 2px;font-size:14px;font-weight:700;color:#9fc8ff;text-decoration:underline;text-underline-offset:3px;box-shadow:none}
@media (max-height:700px){#endBig b{font-size:54px}#endBig span{font-size:21px}#endLine{font-size:19px}#endLine.rec{font-size:23px}#endBar #btnReplay.big{min-height:52px;font-size:19px}#endScroll{padding:6px 0 10px}}
@media (max-height:600px){#endBig b{font-size:46px}#endBig span{font-size:19px}#endLine{font-size:17px}#endNear{font-size:14px}#endBar{gap:6px;padding-top:8px}#endBar #btnReplay.big{min-height:46px;font-size:18px}#endBar #btnShare,#endBar .split button{padding:10px 6px;font-size:14px}}

/* v10c end buttons: simple, inviting */
#endBar{gap:10px;padding-top:12px}
#endBar:not(.armed) button{pointer-events:none}
#endBar button{transition:transform .12s ease,filter .12s ease;-webkit-tap-highlight-color:transparent}
#endBar button:active{transform:scale(.96);opacity:1;filter:brightness(.95)}
#endBar #btnReplay.big{min-height:64px;border-radius:20px;font-size:23px;font-weight:900;letter-spacing:.3px;color:#3a2200;background:linear-gradient(180deg,#ffe38a 0%,#ffc94d 45%,#ffab3d 100%);box-shadow:0 0 0 1px rgba(255,235,170,.7) inset,0 6px 22px rgba(255,180,60,.45),0 0 36px rgba(255,200,90,.25);animation:breathe 2.6s ease-in-out infinite}
#endBar #btnReplay.big:active{animation:none;transform:scale(.96)}
@keyframes breathe{0%,100%{box-shadow:0 0 0 1px rgba(255,235,170,.7) inset,0 6px 22px rgba(255,180,60,.4),0 0 26px rgba(255,200,90,.18);transform:scale(1)}50%{box-shadow:0 0 0 1px rgba(255,235,170,.8) inset,0 8px 30px rgba(255,180,60,.6),0 0 48px rgba(255,200,90,.38);transform:scale(1.015)}}
@media (prefers-reduced-motion:reduce){#endBar #btnReplay.big{animation:none}}
#endBar #endNote{text-align:center;font-size:13px;opacity:.78;margin-top:-4px;color:#ffe7b0}
#endBar #endNote:empty{display:none}
#endBar button.glass{min-height:56px;border-radius:18px;padding:9px 12px;background:rgba(110,150,255,.16);border:1px solid rgba(160,190,255,.42);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#eaf1ff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:16px;opacity:1;box-shadow:none}
#endBar button.glass b{font-size:17px;font-weight:800}
#endBar button.glass small{font-size:12.5px;font-weight:600;opacity:.8}
#endBar .split{gap:10px}
#endBar .split button.pill{flex:1 1 0;min-height:56px;border-radius:28px;padding:8px 10px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.22);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;box-shadow:none;font-size:15px}
#endBar .split button.pill b{font-size:15.5px;font-weight:800}
#endBar .split button.pill small{font-size:12.5px;font-weight:700;opacity:.8}
#endBar .split button.pill.best{background:linear-gradient(180deg,rgba(255,214,110,.16),rgba(255,180,80,.08))!important;border:1.5px solid #ffd36b;color:#fff3cf!important;box-shadow:0 0 14px rgba(255,200,90,.28)!important}
#endBar .split button.pill.best small{color:#ffd36b;opacity:1;text-transform:uppercase;letter-spacing:.6px;font-size:11.5px}
#endBar button.best::before{content:none}
#endBar #endRow{justify-content:center;margin-top:-2px}
@media (max-height:700px){#endBar{gap:8px;padding-top:10px}#endBar #btnReplay.big{min-height:58px;font-size:21px}#endBar button.glass,#endBar .split button.pill{min-height:52px}}
@media (max-height:600px){#endBar{gap:7px;padding-top:8px}#endBar #btnReplay.big{min-height:54px;font-size:20px}#endBar button.glass,#endBar .split button.pill{min-height:52px;padding:6px 10px}#endBar button.glass small{font-size:11.5px}}
/* v10c: Fly again always the largest */
@media (max-height:700px){#endBar #btnReplay.big{min-height:60px}#endBar button.glass{padding:6px 12px;gap:1px}}
@media (max-height:600px){#endBar #btnReplay.big{min-height:58px}#endBar button.glass{padding:4px 12px;gap:0}#endBar button.glass b{font-size:15.5px}#endBar button.glass small{font-size:11px}}
/* v10c: tighter, predictable secondary + pills (Fly again stays largest) */
#endBar #btnShare.glass{padding:7px 12px;min-height:56px;gap:1px}
#endBar #btnShare.glass b{line-height:1.15}#endBar #btnShare.glass small{line-height:1.2}
#endBar .split button.pill b,#endBar .split button.pill small{white-space:nowrap;line-height:1.15}
@media (max-height:700px){#endBar #btnShare.glass{padding:5px 12px;min-height:52px}}
@media (max-height:600px){#endBar #btnShare.glass{padding:3px 12px;min-height:52px}}
@media (max-width:360px){#endBar .split{gap:6px}#endBar .split button.pill{padding:6px 6px}#endBar .split button.pill b{font-size:13.5px}#endBar .split button.pill small{font-size:11px}#endBar .split button.pill.best small{font-size:10.5px;letter-spacing:.3px}}
/* v10d: "Your pup" line keeps a margin, never edge to edge (fitText shrinks/shortens inside it) */
#look{box-sizing:border-box;padding-left:24px;padding-right:24px;max-width:100%}
/* v10e HUD: the ×N badge takes the "pup points" label slot (never under the energy bar); wormhole label always fits on screen; HUD text stays legible over trails */
.stat:has(#mult:not([hidden])) span{display:none}
#mult{position:static;left:auto;top:auto;transform:none;margin-top:1px;display:inline-block;font-size:12.5px;line-height:15px;padding:0 9px;border-radius:8px}
#mult[hidden]{display:none}
#wlive,#wlive[data-t]{max-width:calc(100vw - 16px);box-sizing:border-box;font-size:min(34px,calc((100vw - 64px) / 8.6));transform-origin:50% 50%}
#wlive[data-t="4"],#wlive[data-t="5"],#wlive[data-t="6"]{font-size:min(40px,calc((100vw - 64px) / 8.6))}
#wlive[data-t="7"],#wlive[data-t="8"]{font-size:min(42px,calc((100vw - 64px) / 8.6))}
#look,#ghost{text-shadow:0 1px 2px #0b0f2a,0 0 6px #0b0f2acc,0 0 10px #0b0f2a99}
#mult.up{animation:multUp2 .6s ease-out}
@keyframes multUp2{0%{scale:1}35%{scale:1.18}100%{scale:1}}
#mult{margin-top:3px}
/* v10f: wormhole label sits below the pup (JS sets top), a bit smaller and translucent so the pup and spiral stay the focus */
#wlive{bottom:auto;top:60%;transform:translateX(-50%) scale(calc(var(--ws,1) * var(--wf,1)));transform-origin:50% 0;opacity:.88;background:rgba(50,20,90,.26);padding:2px 16px;line-height:34px}
#wlive,#wlive[data-t]{font-size:min(29px,calc((100vw - 64px) / 9.4))}
#wlive[data-t="4"],#wlive[data-t="5"],#wlive[data-t="6"]{font-size:min(33px,calc((100vw - 64px) / 9.4))}
#wlive[data-t="7"],#wlive[data-t="8"]{font-size:min(35px,calc((100vw - 64px) / 9.4))}
/* v10g: out of free flights - Challenge is the gold hero in Fly again's spot */
#endBar #btnShare.hero{min-height:66px;border-radius:20px;padding:8px 14px;gap:2px;color:#3a2200;border:0;background:linear-gradient(180deg,#ffe38a 0%,#ffc94d 45%,#ffab3d 100%);box-shadow:0 0 0 1px rgba(255,235,170,.7) inset,0 6px 22px rgba(255,180,60,.45),0 0 36px rgba(255,200,90,.25);animation:breathe 2.6s ease-in-out infinite;-webkit-backdrop-filter:none;backdrop-filter:none}
#endBar #btnShare.hero b{font-size:22px;font-weight:900;line-height:1.15;color:#3a2200}
#endBar #btnShare.hero small{font-size:12.5px;font-weight:700;line-height:1.25;opacity:.85;color:#4a2c00;white-space:normal;text-align:center}
#endBar #btnShare.hero:active{animation:none;transform:scale(.96)}
@media (prefers-reduced-motion:reduce){#endBar #btnShare.hero{animation:none}}
@media (max-height:700px){#endBar #btnShare.hero{min-height:60px;padding:6px 12px}#endBar #btnShare.hero b{font-size:20px}#endBar #btnShare.hero small{font-size:11.5px}}
@media (max-height:600px){#endBar #btnShare.hero{min-height:58px;padding:5px 10px;gap:1px}#endBar #btnShare.hero b{font-size:19px}#endBar #btnShare.hero small{font-size:11px}}
#endBar #btnShare.glass small{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#endBar #btnShare.hero small{white-space:normal;overflow:visible;text-overflow:clip}
/* v10h: wormhole AFTERGLOW (10 s): badge counts down with a draining bar, HUD points glow and pulse */
#mult.ag{position:relative;overflow:hidden;background:linear-gradient(90deg,#ffd36b,#ff9ad5,#9ee8ff,#c8ffa6,#ffd36b);background-size:300% 100%;animation:agSlide 2.4s linear infinite;color:#3a1d00;box-shadow:0 0 12px rgba(255,200,90,.75);padding-bottom:4px;white-space:nowrap}
#mult.ag::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:calc(var(--agp,1) * 100%);background:#fff;border-radius:2px;box-shadow:0 0 6px #fff;transition:width .12s linear}
@keyframes agSlide{to{background-position:300% 0}}
#score.ag{animation:agPulse .7s ease-in-out infinite;text-shadow:0 0 10px rgba(255,210,90,.95),0 0 22px rgba(255,140,220,.7)}
@keyframes agPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
@media (prefers-reduced-motion:reduce){#mult.ag,#score.ag{animation:none}}
/* v10m bright gold/rainbow sky tiers (5+): original colours, no outline, no box. Only white/yellow text turns deep blue/purple; coloured text and the original dark/light treatments stay */
body.bright #top{background:none}
body.bright .stat b,body.bright #score,body.bright #score[data-t]{color:#141a4a;text-shadow:none}
body.bright #score[data-t]{animation:none}body.bright #score.ag{animation:agPulse .7s ease-in-out infinite}
body.bright .stat span{opacity:.9;color:#2a1a6e}
body.bright #look{color:#3b1478;text-shadow:none}
body.bright #combo,body.bright #combo.bam,body.bright #combo.glowup,body.bright #combo.glowup[data-g]{background:none;border-color:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;color:#3b1478;text-shadow:none}
body.bright #wlive,body.bright #wlive[data-t]{background:none;border-color:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;opacity:1;color:#3b1478;text-shadow:none}
body.bright #hint{color:#141a4a}
/* v10j board rows: name · Lv on the left, "distance m · points" right-aligned on one line (ranked by distance) */
#boardList li{display:flex;align-items:baseline;gap:6px;min-width:0}#boardList li .nm{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#boardList li .lvb{flex:none;opacity:.7;font-size:.85em}#boardList li .dm{flex:none;white-space:nowrap;text-align:right}#boardList li .dm i{font-style:normal;opacity:.8}
/* ===== REMIX profit layer ===== */
#rxShopBtn{background:linear-gradient(135deg,#ffcf4a,#ff7ab6);border:0;border-radius:12px;font-size:20px;width:40px;height:36px;margin-left:6px;box-shadow:0 2px 10px rgba(255,120,180,.5);pointer-events:auto}
#rxEndShop{color:#ffd76a;font-weight:700}
.rxModal{position:fixed;inset:0;z-index:60;background:rgba(8,6,30,.72);display:flex;align-items:center;justify-content:center;padding:14px;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.rxCard{width:100%;max-width:380px;max-height:92vh;overflow:auto;background:linear-gradient(180deg,#2a1d6b,#160f3f);border:1px solid rgba(255,255,255,.18);border-radius:22px;padding:18px 16px 14px;color:#fff;text-align:center;font:500 15px/1.35 system-ui,-apple-system,sans-serif;box-shadow:0 10px 40px rgba(0,0,0,.5)}
.rxCard h3{margin:6px 0 6px;font-size:22px}
.rxCard p{margin:6px 0;color:#d9d3ff}
.rxSmall{font-size:12px;color:#b9b0ee!important}
.rxBadge{display:inline-block;font-size:12px;font-weight:900;color:#3b1478;background:linear-gradient(90deg,#ffe46b,#ffb547);border-radius:999px;padding:4px 12px}
.rxPrice{font-size:30px;font-weight:900;color:#ffd76a;margin:6px 0}.rxPrice s{font-size:18px;color:#9d93d8;margin-right:6px}.rxPrice small{font-size:14px;color:#cfc8ff}
.rxPay{display:block;width:100%;border:0;border-radius:16px;padding:14px;margin:10px 0 6px;font:800 18px system-ui,sans-serif;color:#2a1050;background:linear-gradient(90deg,#ffe46b,#ffb547);box-shadow:0 4px 18px rgba(255,190,70,.45)}
.rxPay small{display:block;font-size:12px;font-weight:700;opacity:.8}
.rxRev{background:linear-gradient(90deg,#ff7ab6,#ffb547);color:#fff;text-shadow:0 1px 2px rgba(80,0,40,.4);animation:rxPulse 1s ease-in-out infinite}
@keyframes rxPulse{50%{transform:scale(1.035)}}
.rxCancel{background:none;border:0;color:#b9b0ee;font:600 14px system-ui,sans-serif;padding:8px;width:100%}
.rxRing{position:relative;width:86px;height:86px;margin:2px auto}.rxRing svg{width:100%;height:100%;transform:rotate(-90deg)}
.rxRing circle{fill:none;stroke-width:8}.rxRing .bg{stroke:rgba(255,255,255,.15)}.rxRing .fg{stroke:#ff7ab6;stroke-dasharray:277;animation:rxDrain 5s linear forwards}
@keyframes rxDrain{to{stroke-dashoffset:277}}
.rxRing span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:900 34px system-ui,sans-serif}
.rxList{list-style:none;padding:0;margin:8px 0;text-align:left;display:inline-block}.rxList li{margin:4px 0;font-size:16px}
.rxTabs{display:flex;gap:6px;margin:6px 0 10px}.rxTab{flex:1;border:0;border-radius:12px;padding:9px 4px;font:700 13px system-ui,sans-serif;color:#d9d3ff;background:rgba(255,255,255,.08)}.rxTab.on{background:#ffd76a;color:#2a1050}
.rxRow{display:flex;align-items:center;justify-content:space-between;text-align:left;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:11px 12px;margin:7px 0}
.rxRow b{display:block;font-size:16px}.rxRow small{color:#b9b0ee;font-size:12px}.rxRow span{font:900 18px system-ui,sans-serif;color:#ffd76a;white-space:nowrap;margin-left:8px}
.rxRow.hot{background:linear-gradient(90deg,rgba(255,122,182,.35),rgba(255,181,71,.3));border-color:#ffb547}.rxRow.tag{border-color:#7dffb0}
.rxGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.rxSkin{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:8px 4px}.rxSkin.on{border-color:#7dffb0;box-shadow:0 0 0 2px #7dffb0 inset}
.rxSkin b{display:block;font-size:13px}.rxSkin small{color:#ffd76a;font-size:12px}
.rxPup{position:relative;width:64px;height:64px;margin:0 auto 4px}.rxPup img{width:100%;height:100%;object-fit:contain}
.rxPup em{position:absolute;inset:0;background:var(--tint,transparent);-webkit-mask:url(../img/adult.png) center/contain no-repeat;mask:url(../img/adult.png) center/contain no-repeat}
.rxPup i{position:absolute;font-style:normal;font-size:22px;transform:translate(-50%,-50%)}
.rxStarterM .rxPup{width:96px;height:96px}.rxStarterM .rxPup img{filter:sepia(.6) saturate(1.8) brightness(1.08)}
.rxCal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin:10px 0}.rxDay{background:rgba(255,255,255,.07);border-radius:10px;padding:6px 0;font-size:11px}.rxDay b{display:block;font-size:10px;color:#b9b0ee}.rxDay span{font-size:13px}
.rxDay.got{opacity:.45}.rxDay.now{background:#ffd76a;color:#2a1050}.rxDay.now b{color:#2a1050}
.rxWallet{margin-top:10px;font-size:13px;color:#d9d3ff}
/* HUD fit (Nov 6): 3 stats share the row, the 🔊 and 🛍️ buttons keep fixed space; single-line labels; JS fitNum compacts/shrinks numbers so they never touch */
#top{gap:4px;padding-left:10px;padding-right:10px}
#top .stat{flex:1 1 0;min-width:0;align-items:center}
#top .stat b{display:block;max-width:100%;white-space:nowrap;text-align:center;line-height:1.15}
#top .stat span{white-space:nowrap;font-size:10px;letter-spacing:.04em;max-width:100%;overflow:hidden}
#top #btnMute,#top #rxShopBtn{flex:0 0 36px;width:36px;height:36px;margin-left:0;font-size:17px}
@media (max-width:350px){#top .stat span{font-size:9px;letter-spacing:.02em}#top{gap:3px;padding-left:6px;padding-right:6px}}
/* top-right segmented control: haptics | shop, one border, one divider, same height as the stat row */
#topBtns{display:flex;flex:0 0 auto;align-self:center;height:36px;border:1px solid rgba(255,255,255,.24);border-radius:12px;overflow:hidden;background:rgba(255,255,255,.08);pointer-events:auto}
#topBtns #btnMute,#topBtns #rxShopBtn{flex:0 0 38px;width:38px;height:100%;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;font-size:17px;line-height:1;color:#fff;align-self:stretch}
#topBtns #rxShopBtn{border-left:1px solid rgba(255,255,255,.24)}
#topBtns button:active{background:rgba(255,255,255,.14)}
body.bright #topBtns{background:rgba(20,26,74,.10);border-color:rgba(20,26,74,.32)}body.bright #topBtns #rxShopBtn{border-left-color:rgba(20,26,74,.32)}
@media (max-width:350px){#topBtns{height:34px}#topBtns #btnMute,#topBtns #rxShopBtn{flex-basis:34px;width:34px;font-size:15px}}

/* ===================== SplashPup layer ===================== */
#cv{will-change:transform}
#combo,#combo.bam,#combo.glowup{background:none!important;border:0!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
body.bright #combo{color:#0b2a5a!important;text-shadow:none!important}
#wave{position:fixed;inset:0;pointer-events:none;z-index:3;opacity:0;background:linear-gradient(180deg,transparent 0%,rgba(170,245,255,0) 35%,rgba(190,250,255,.32) 48%,rgba(255,255,255,.42) 50%,rgba(190,250,255,.3) 52%,rgba(170,245,255,0) 65%,transparent 100%);background-size:100% 260%;background-position:0 100%}
#wave.go{animation:wv .9s ease-out}#wave.go.soft{animation-duration:.7s;filter:opacity(.55)}#wave.go.gold{background-image:linear-gradient(180deg,transparent 0%,rgba(255,230,140,0) 35%,rgba(255,226,120,.38) 48%,rgba(255,255,220,.5) 50%,rgba(255,200,120,.35) 52%,rgba(255,230,140,0) 65%,transparent 100%);animation:wv .9s ease-out 3}
@keyframes wv{0%{opacity:1;background-position:0 100%}100%{opacity:1;background-position:0 -10%}}
#jp{position:fixed;left:0;right:0;top:calc(150px + env(safe-area-inset-top));text-align:center;pointer-events:none;z-index:6;transition:opacity .35s,transform .35s;font-family:system-ui,-apple-system,sans-serif}
#jp.off{opacity:0;transform:translateY(-14px) scale(.9)}
#jpL{font-weight:900;font-size:13px;letter-spacing:2px;color:#bff6ff}
#jpN{display:inline-block;font-weight:1000;font-size:54px;line-height:1;letter-spacing:-1px;background:linear-gradient(180deg,#ffffff 0%,#a6f6ff 45%,#38c8ff 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 3px 0 rgba(4,40,90,.55));transform:scale(var(--s,1))}
#jpN.pop{animation:jpPop .42s cubic-bezier(.2,1.8,.4,1)}
@keyframes jpPop{0%{transform:scale(calc(var(--s,1)*1.55)) rotate(-6deg)}60%{transform:scale(calc(var(--s,1)*.92)) rotate(2deg)}100%{transform:scale(var(--s,1))}}
#jp.t1 #jpN{background-image:linear-gradient(180deg,#fff 0%,#9ff0ff 40%,#1fa8ff 100%)}
#jp.t2 #jpN{background-image:linear-gradient(180deg,#fff 0%,#ffb3f0 45%,#a46bff 100%)}
#jp.t3 #jpN{background-image:linear-gradient(180deg,#fff7c2 0%,#ffd23f 45%,#ff8a1a 100%);animation:jpGlow .5s ease-in-out infinite alternate}
@keyframes jpGlow{to{filter:drop-shadow(0 3px 0 rgba(90,40,0,.5)) brightness(1.25)}}
#jpW{font-weight:900;font-size:22px;color:#fff3a6;font-variant-numeric:tabular-nums;margin-top:2px}
#jpT{font-weight:1000;font-size:30px;margin-top:4px;min-height:36px;white-space:nowrap;opacity:0}
#jpT.go{animation:jpT 1.6s cubic-bezier(.2,1.6,.4,1) forwards}
#jpT.t1{color:#7fe7ff}#jpT.t2{color:#ff9fe6}#jpT.t3{font-size:40px;background:linear-gradient(90deg,#ffd23f,#ff7a59,#ff9fe6,#7fe7ff,#ffd23f);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:jpT 1.6s cubic-bezier(.2,1.6,.4,1) forwards,jpRb .6s linear infinite}
#jpT.total{font-size:26px;color:#fff3a6}#jpT.tease{font-size:20px;color:#ffd0a6;animation:jpTease 2s ease-out forwards}
@keyframes jpT{0%{opacity:0;transform:scale(.3) rotate(-8deg)}35%{opacity:1;transform:scale(1.18) rotate(3deg)}55%{transform:scale(.96)}100%{opacity:1;transform:scale(1)}}
@keyframes jpRb{to{background-position:200% 0}}
@keyframes jpTease{0%{opacity:0;transform:translateX(0)}10%{opacity:1;transform:translateX(-8px)}20%{transform:translateX(8px)}30%{transform:translateX(-5px)}40%{transform:translateX(3px)}50%,90%{opacity:1;transform:none}100%{opacity:0}}
body.bright #jpL,body.bright #jpW,body.bright #jpT.total{color:#0b2a5a}body.bright #jpT.t1{color:#00507a}body.bright #jpT.t2{color:#6a1a7a}body.bright #jpT.tease{color:#7a2a00}
body.bright #jpN{filter:none;background-image:linear-gradient(180deg,#0b4a8a,#062a5a)}
#jpBurst{position:fixed;left:50%;top:calc(190px + env(safe-area-inset-top));width:0;height:0;pointer-events:none;z-index:7}
#jpBurst i{position:absolute;left:-12px;top:-12px;font-style:normal;font-size:24px;animation:cb 1.15s cubic-bezier(.15,.7,.3,1) forwards}
@keyframes cb{0%{transform:translate(0,0) scale(.3);opacity:1}70%{opacity:1}100%{transform:translate(var(--dx),calc(var(--dy) + 120px)) rotate(var(--rt)) scale(1);opacity:0}}
#reels{position:fixed;left:50%;top:42%;transform:translate(-50%,-50%);pointer-events:none;z-index:6;text-align:center}
#reels .rr{display:flex;gap:10px;justify-content:center}
#reels .rl{display:inline-block;width:58px;height:66px;line-height:66px;font-size:44px;border-radius:18px;background:radial-gradient(circle at 50% 35%,rgba(120,220,255,.35),rgba(10,60,120,.15) 70%,transparent)}
#reels.spin .rl:not([data-stop="1"]){animation:rs .09s linear infinite;filter:blur(1.2px)}
@keyframes rs{0%{transform:translateY(-10px)}100%{transform:translateY(10px)}}
#reels .rl.hit{animation:rh .35s cubic-bezier(.2,1.8,.4,1)}@keyframes rh{0%{transform:translateY(-22px) scale(1.2)}100%{transform:none}}
#reelX{font-weight:1000;font-size:26px;margin-top:8px;color:#fff3a6;white-space:nowrap}
#reels.done #reelX{animation:jpT .8s cubic-bezier(.2,1.6,.4,1) forwards}
body.bright #reelX{color:#0b2a5a}
#crit{position:fixed;inset:0;pointer-events:none;z-index:5;overflow:hidden}
.crit{position:absolute;top:56%;display:flex;flex-direction:column;align-items:center;font-family:system-ui,-apple-system,sans-serif}
.crit i{font-style:normal;font-size:54px;line-height:1}.crit b{font-weight:1000;font-size:17px;color:#fff3a6;margin-top:2px;white-space:nowrap}
body.bright .crit b{color:#0b2a5a}
.crit.left{left:0;animation:crL 1.6s cubic-bezier(.2,1.4,.4,1) forwards}.crit.right{right:0;animation:crR 1.7s cubic-bezier(.2,1.4,.4,1) forwards}
.crit.right i{animation:honk .25s ease-in-out 4 alternate}.crit.sad i{transform:rotate(12deg)}
@keyframes crL{0%{transform:translateX(-120%) rotate(-20deg)}20%{transform:translateX(18px) rotate(8deg)}35%{transform:translateX(6px) rotate(-4deg)}80%{transform:translateX(6px)}100%{transform:translateX(-130%)}}
@keyframes crR{0%{transform:translateX(120%) rotate(20deg)}20%{transform:translateX(-18px) rotate(-8deg)}35%{transform:translateX(-6px) rotate(4deg)}80%{transform:translateX(-6px)}100%{transform:translateX(130%)}}
@keyframes honk{to{transform:scale(1.18,.86) rotate(-6deg)}}
.crit.puff{left:calc(50% - 30px);top:62%;animation:puff 1.4s ease-out forwards}
@keyframes puff{0%{transform:scale(.4);opacity:0}15%{opacity:1;transform:scale(1)}55%{transform:scale(2.3)}62%{transform:scale(2.5);opacity:1}70%{transform:scale(.9);opacity:.9}100%{transform:scale(1) translateY(60px);opacity:0}}
.crit.duck{top:-60px;animation:duck 1.9s cubic-bezier(.3,.2,.6,1) forwards}.crit.duck.d0{left:12%}.crit.duck.d1{left:44%}.crit.duck.d2{left:72%}
@keyframes duck{0%{transform:translateY(0) rotate(-20deg)}60%{transform:translateY(62vh) rotate(15deg)}75%{transform:translateY(57vh) rotate(-8deg)}100%{transform:translateY(64vh) rotate(0);opacity:0}}
#btnSnd.off{opacity:.55}
#topBtns #btnSnd{flex:0 0 34px;width:34px;height:100%;margin:0;padding:0;border:0;border-radius:0;background:transparent;font-size:16px;line-height:1;color:#fff;align-self:stretch;pointer-events:auto}
#topBtns #btnMute{border-left:1px solid rgba(255,255,255,.24)!important;flex-basis:34px;width:34px}#topBtns #rxShopBtn{flex-basis:36px;width:36px}
body.bright #topBtns #btnMute{border-left-color:rgba(20,26,74,.32)!important}
@media (max-width:350px){#topBtns #btnSnd,#topBtns #btnMute{flex-basis:30px;width:30px;font-size:14px}#topBtns #rxShopBtn{flex-basis:32px;width:32px}}
#wlive,#wlive[style]{background:none!important;border:0!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;color:#fff3a6}
body.bright #wlive{color:#0b2a5a!important;text-shadow:none!important}
#reels .rr{padding:8px 10px;border-radius:22px;background:linear-gradient(180deg,rgba(4,40,90,.55),rgba(10,90,150,.45));box-shadow:inset 0 0 0 2px rgba(127,231,255,.35),0 0 30px rgba(60,200,255,.35)}
#reels .rl{background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.22) 50%,rgba(255,255,255,.08));border-radius:14px;overflow:hidden}
#reels::before{content:"🌀 WHIRLPOOL SPIN 🌀";display:block;font:1000 15px system-ui,-apple-system,sans-serif;letter-spacing:2px;color:#bff6ff;margin-bottom:6px}
body.bright #reels::before{color:#0b2a5a}
.crit i svg{display:block}
#jp{top:calc(128px + env(safe-area-inset-top))}
body.jpon #combo{display:none!important}
body.reelon #wlive{display:none!important}
#reels{top:58%}
.crit.duckL{left:0;animation:crL 1.3s cubic-bezier(.2,1.4,.4,1) forwards}
#reels{top:calc(272px + env(safe-area-inset-top));transform:translateX(-50%)}
#reels::before{font-size:13px;margin-bottom:4px}
#reels .rl{width:50px;height:56px;line-height:56px;font-size:38px}
#reels{top:calc(292px + env(safe-area-inset-top))}
#reelX{font-size:21px;max-width:94vw;margin-left:auto;margin-right:auto}
#reels.done #reelX{animation:reelX .6s cubic-bezier(.2,1.6,.4,1) forwards}
@keyframes reelX{0%{opacity:0;transform:scale(.4)}60%{opacity:1;transform:scale(1.08)}100%{opacity:1;transform:none}}
