/* =====================================================================
   BLITZ — neon magenta speed-run through the wormhole
   ===================================================================== */
.g-blitz{--bz:#ff4fd8;--bz2:#5ff3ff}
.g-blitz .bz{position:fixed;inset:0}

/* ---------- HUD: score · pixel timer ring · found ---------- */
.bz-hud{position:fixed;top:8px;left:50%;transform:translateX(-50%);z-index:5;display:grid;grid-template-columns:184px 80px 184px;gap:16px;align-items:start;pointer-events:none;transition:opacity .4s,transform .4s}
.bz-hud.gone{opacity:0;transform:translate(-50%,-40px)}
.bz-box{--hc:var(--bz);background:var(--panel);padding:8px 16px;height:72px;transition:box-shadow .3s}
.bz-box .label{font-size:16px;line-height:16px}
.bz-sv,.bz-cv{font-weight:700;font-size:40px;line-height:48px;white-space:nowrap}
.bz-sv{color:var(--bz);text-shadow:0 0 14px rgba(255,79,216,.6)}
.bz-cbox{text-align:right}.bz-cv{color:var(--bz2);text-shadow:0 0 12px rgba(95,243,255,.5)}
.bz-sv.bump,.bz-cv.bump{animation:bzBump .38s cubic-bezier(.2,1.9,.4,1)}
@keyframes bzBump{0%{transform:scale(1)}35%{transform:scale(1.35) rotate(-3deg);filter:brightness(2.2)}100%{transform:none}}
.bz-sv[data-lv="1"]{color:#ff8ad8}
.bz-sv[data-lv="2"]{color:#c8a8ff;text-shadow:-2px 0 rgba(255,61,154,.6),2px 0 rgba(46,240,255,.6),0 0 16px rgba(192,124,255,.8)}
.bz-sv[data-lv="3"]{color:#ffd34d;text-shadow:-2px 0 rgba(255,61,154,.7),2px 0 rgba(46,240,255,.7),0 0 18px rgba(255,211,77,.8)}
.bz-sv[data-lv="4"]{animation:novaHue 1.6s linear infinite;text-shadow:-3px 0 rgba(255,61,154,.9),3px 0 rgba(46,240,255,.9),0 0 22px rgba(255,211,77,.9)}
.bz-timer{position:relative;width:78px;height:78px;display:flex;align-items:center;justify-content:center}
.bz-timer canvas{position:absolute;inset:0;width:78px;height:78px;image-rendering:pixelated;filter:drop-shadow(0 0 6px rgba(255,79,216,.55))}
.bz-timer b{position:relative;font-weight:700;font-size:32px;line-height:32px;color:#fff;text-shadow:0 0 10px rgba(95,243,255,.8)}
.bz-timer::before{content:'';position:absolute;inset:10px;background:rgba(8,5,30,.92);clip-path:polygon(0 8px,8px 8px,8px 0,calc(100% - 8px) 0,calc(100% - 8px) 8px,100% 8px,100% calc(100% - 8px),calc(100% - 8px) calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,8px calc(100% - 8px),0 calc(100% - 8px))}
.bz-timer.low b{color:#ff6a8a;text-shadow:0 0 12px #ff3d6a,-2px 0 rgba(255,61,154,.8),2px 0 rgba(46,240,255,.5)}
.bz-timer.low canvas{filter:drop-shadow(0 0 10px #ff3d6a)}
.bz-timer.beat{animation:bzBeat .45s cubic-bezier(.2,1.8,.4,1)}
@keyframes bzBeat{0%{transform:scale(1)}30%{transform:scale(1.22)}100%{transform:scale(1)}}

/* ---------- stage column ---------- */
.bz-stage{position:fixed;top:176px;bottom:16px;left:50%;transform:translateX(-50%);z-index:3;width:min(720px,94vw);display:flex;flex-direction:column;gap:16px}
.bz-prompt{flex:none;background:rgba(12,9,40,.84);border-top:4px solid var(--bz);box-shadow:0 0 30px rgba(255,79,216,.18)}
.bz-top{display:flex;justify-content:space-between;gap:16px;align-items:baseline}
.bz-cat{white-space:nowrap}
.bz-q{font-weight:700;font-size:32px;line-height:40px;margin-top:8px;color:#fff;text-shadow:0 0 18px rgba(255,79,216,.35)}
.bz-row{display:flex;gap:8px;margin-top:16px;transition:filter .2s}
.bz-in{border-color:var(--bz);box-shadow:0 0 18px rgba(255,79,216,.3),inset 0 0 12px rgba(255,79,216,.12);caret-color:var(--bz2);height:64px}
.bz-in:focus{box-shadow:0 0 28px rgba(255,79,216,.55),inset 0 0 14px rgba(255,79,216,.2)}
.bz-in[readonly]{opacity:.5}
.bz-go{border-color:var(--bz);padding:0 24px;font-size:24px;min-width:64px;box-shadow:0 0 16px rgba(255,79,216,.35)}
.bz-row.f-miss .bz-in{animation:bzMiss .45s}
@keyframes bzMiss{0%,60%{border-color:#ff3d6a;background:#2a0718;box-shadow:0 0 26px #ff3d6a}}
.bz-row.f-dupe .bz-in{animation:bzDupe .45s}
@keyframes bzDupe{0%,60%{border-color:#ff9a3c;background:#2a1406}}
.bz-row.f-close .bz-in{animation:bzClose .5s}
@keyframes bzClose{0%,60%{border-color:#ffd34d}}
.bz-row.f-vague .bz-in{animation:bzVague .4s}
@keyframes bzVague{0%,60%{border-color:#c07cff;background:#1a0c36}}
.bz-fb{min-height:32px;margin-top:8px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.bz-msg{font-size:16px;line-height:24px;color:var(--ink-3);opacity:0;transition:opacity .25s}
.bz-msg.on{opacity:1}.bz-msg.miss{color:#ff7a9a}.bz-msg.dupe{color:#ffb070}.bz-msg.close{color:#ffd34d}.bz-msg.vague{color:#c8a8ff}
.bz-dym{display:flex;gap:8px;flex-wrap:wrap}
.bz-dchip{min-height:44px;border-color:#ffd34d;color:#fff3c4;animation:pipPop .4s cubic-bezier(.2,1.7,.35,1)}

/* ---------- combo meter ---------- */
.bz-combo{--cc:#aeb6cc;flex:none;position:relative;display:grid;grid-template-columns:168px 1fr;gap:16px;align-items:center;padding:16px 24px;background:linear-gradient(90deg,color-mix(in srgb,var(--cc) 16%,rgba(12,9,40,.92)),rgba(12,9,40,.9) 60%);border-left:8px solid var(--cc);transition:border-color .25s,box-shadow .25s}
.bz-combo[data-lv="0"],.bz-combo[data-lv="1"]{--cc:#5a5294}
.bz-combo[data-lv="2"]{box-shadow:0 0 24px rgba(46,230,168,.35)}
.bz-combo[data-lv="3"]{box-shadow:0 0 30px rgba(63,168,255,.45)}
.bz-combo[data-lv="4"]{box-shadow:0 0 44px rgba(255,211,77,.6)}
.bz-combo[data-lv="5"]{box-shadow:0 0 44px rgba(255,211,77,.6)}
.bz-combo[data-lv="6"]{--cc:#ff4fd8;box-shadow:0 0 54px rgba(255,79,216,.75),0 0 90px rgba(95,243,255,.25);animation:bzHypPanel .5s steps(2) infinite}
@keyframes bzHypPanel{50%{border-left-color:#5ff3ff}}
.bz-mult{display:flex;align-items:baseline;justify-content:center;font-weight:700;color:var(--cc);line-height:1;text-shadow:-3px 0 rgba(255,61,154,.55),3px 0 rgba(46,240,255,.55),0 0 22px var(--cc)}
.bz-mult .x{font-size:48px}.bz-mult .n{font-size:88px}
.bz-combo[data-lv="0"] .bz-mult,.bz-combo[data-lv="1"] .bz-mult{color:#5a5294;text-shadow:none}
.bz-combo[data-lv="4"] .bz-mult .n,.bz-combo[data-lv="5"] .bz-mult .n{animation:novaHue 1.4s linear infinite}
.bz-combo[data-lv="6"] .bz-mult{animation:bzFlick .18s steps(2) infinite}
@keyframes bzFlick{50%{color:#5ff3ff;text-shadow:-4px 0 #ff3d9a,4px 0 #2ef0ff,0 0 30px #ff4fd8}}
.bz-mult.slam{animation:bzSlam .5s cubic-bezier(.2,1.9,.35,1)}
@keyframes bzSlam{0%{transform:scale(2.4) rotate(-14deg);filter:brightness(3)}55%{transform:scale(.88) rotate(4deg)}100%{transform:none}}
.bz-mult.crack{animation:bzCrack .6s steps(6)}
@keyframes bzCrack{0%{transform:translate(0,0);color:#ff3d6a}20%{transform:translate(-6px,4px) rotate(-8deg)}40%{transform:translate(6px,8px) rotate(6deg)}100%{transform:none}}
.bz-cm{min-width:0}
.bz-ctop{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.bz-chain{font-size:16px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bz-bar{position:relative;height:24px;margin-top:8px;background:#140f40;box-shadow:inset 0 0 0 2px #2a2470}
.bz-bar i{position:absolute;left:0;top:0;bottom:0;width:0;background:linear-gradient(90deg,var(--cc),#ff4fd8 70%,#fff3c4);-webkit-mask:repeating-linear-gradient(90deg,#000 0 12px,transparent 12px 16px);mask:repeating-linear-gradient(90deg,#000 0 12px,transparent 12px 16px);box-shadow:0 0 12px var(--cc)}
.bz-combo.cool .bz-bar i{animation:bzCool .25s steps(2) infinite}
@keyframes bzCool{50%{opacity:.35}}
.bz-hyp{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}
.bz-hp{display:flex;gap:6px}
.bz-hp i{width:16px;height:16px;background:#1e1756;box-shadow:inset 0 0 0 2px #2c2470;transition:background .2s}
.bz-hp i.on{background:#3fa8ff;box-shadow:0 0 10px #3fa8ff,inset 0 0 0 2px #a8d8ff;animation:pipPop .45s cubic-bezier(.2,1.7,.35,1)}
.bz-combo[data-lv="6"] .bz-hp i{background:#ff4fd8;box-shadow:0 0 12px #ff4fd8}
.bz-hyptxt{font-size:16px;color:var(--ink-3)}
.bz-combo[data-lv="6"] .bz-hyptxt{color:#ff9be9;font-weight:700}

/* ---------- answer log ---------- */
.bz-log{flex:1;min-height:0;overflow:hidden;display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px;padding:4px;-webkit-mask:linear-gradient(#000 70%,transparent);mask:linear-gradient(#000 70%,transparent)}
.bz-empty{width:100%;text-align:center;font-size:16px;color:var(--ink-3);padding:16px;border:2px dashed #2a2468}
.bz-chip{--tc:#aeb6cc;display:inline-flex;align-items:center;gap:8px;padding:4px 12px;font-size:16px;line-height:24px;background:color-mix(in srgb,var(--tc) 14%,#0c0928);border:2px solid var(--tc);color:#fff;animation:bzChipIn .45s cubic-bezier(.2,1.7,.35,1) both}
.bz-chip svg{flex:none}
.bz-chip b{color:var(--tc);font-weight:700}
.bz-chip i{font-style:normal;color:#ff9be9}
.bz-chip.t-pad{opacity:.75}
.bz-chip.t-orbit{box-shadow:0 0 10px rgba(63,168,255,.45)}
.bz-chip.t-deep{box-shadow:0 0 14px rgba(192,124,255,.6)}
.bz-chip.t-nova{box-shadow:0 0 18px rgba(255,211,77,.8);background:linear-gradient(90deg,#3a2400,#2a0c30)}
.bz-chip.dupe{animation:bzDupeChip .6s steps(4)}
@keyframes bzDupeChip{0%,100%{transform:none}25%{transform:scale(1.2);background:#ff9a3c;color:#1a0800}75%{transform:scale(1.1)}}
@keyframes bzChipIn{0%{transform:scale(0) translateY(20px);filter:brightness(3)}100%{transform:none}}

/* ---------- flying chip + floating points ---------- */
.bz-fly{position:fixed;z-index:8;display:flex;align-items:center;gap:8px;padding:8px 16px;font-weight:700;font-size:24px;line-height:24px;color:#fff;background:color-mix(in srgb,var(--tc) 30%,#0c0928);border:4px solid var(--tc);box-shadow:0 0 24px var(--tc);pointer-events:none;white-space:nowrap}
.bz-float{position:fixed;z-index:8;pointer-events:none;text-align:center;white-space:nowrap}
.bz-float b{display:block;font-weight:700;font-size:32px;line-height:32px;color:var(--tc);text-shadow:0 0 12px var(--tc),0 2px 0 #000}
.bz-float span{display:block;font-size:16px;line-height:16px;color:#fff;margin-top:4px;text-shadow:0 2px 0 #000}
.bz-float.l b{font-size:48px;line-height:48px;text-shadow:-2px 0 rgba(255,61,154,.7),2px 0 rgba(46,240,255,.7),0 0 16px var(--tc)}
.bz-float.xl b{font-size:64px;line-height:64px;text-shadow:-3px 0 rgba(255,61,154,.8),3px 0 rgba(46,240,255,.8),0 0 24px var(--tc)}

/* ---------- countdown / time ---------- */
.bz-cd{position:fixed;left:50%;top:72%;transform:translate(-50%,-50%);z-index:9;text-align:center;pointer-events:none;padding:24px 64px;background:radial-gradient(closest-side,rgba(8,4,30,.92) 60%,rgba(8,4,30,0))}
.bz-cd b{display:block;font-weight:700;font-size:88px;line-height:88px;color:#fff;text-shadow:-4px 0 #ff3d9a,4px 0 #2ef0ff,0 0 40px rgba(255,79,216,.9)}
.bz-cd span{display:inline-block;white-space:nowrap;margin-top:16px;font-size:16px;letter-spacing:4px;text-transform:uppercase;color:#ffc6f1;background:rgba(10,7,30,.8);padding:4px 16px}
.bz-cd.pop b{animation:bzCd .6s cubic-bezier(.2,1.8,.35,1)}
@keyframes bzCd{0%{transform:scale(3);opacity:0}40%{transform:scale(.9);opacity:1}100%{transform:none}}
.bz-cd.go b{color:#ffd34d;font-size:88px}
.bz-cd.timeup b{color:#ff6a8a;animation:bzTime .7s cubic-bezier(.2,1.8,.35,1) both}
@keyframes bzTime{0%{transform:scale(4) rotate(-10deg);opacity:0}50%{transform:scale(.9) rotate(2deg);opacity:1}100%{transform:none}}

/* ---------- banners (supernova / hyperdrive) ---------- */
.bz-banner{position:fixed;left:0;right:0;top:66%;z-index:7;text-align:center;pointer-events:none;padding:16px 0;background:linear-gradient(90deg,transparent,rgba(8,4,30,.85) 20%,rgba(8,4,30,.85) 80%,transparent);animation:bzBanIn .3s cubic-bezier(.2,1.4,.4,1) both}
.bz-banner b{display:block;font-weight:700;font-size:64px;line-height:64px;letter-spacing:8px}
.bz-banner b span{display:inline-block;animation:bzLetter .55s cubic-bezier(.2,1.9,.35,1) both}
.bz-banner small{display:block;font-size:16px;letter-spacing:4px;color:#fff;margin-top:8px;text-transform:uppercase}
.bz-banner.k-nova b{color:#ffd34d;text-shadow:-4px 0 rgba(255,61,154,.8),4px 0 rgba(46,240,255,.8),0 0 30px rgba(255,211,77,.9)}
.bz-banner.k-nova b span{animation:bzLetter .55s cubic-bezier(.2,1.9,.35,1) both,novaHue 1.2s linear infinite}
.bz-banner.k-hyper{background:linear-gradient(90deg,transparent,rgba(60,0,60,.85) 15%,rgba(10,30,60,.85) 85%,transparent)}
.bz-banner.k-hyper b{color:#fff;font-style:italic;text-shadow:-6px 0 #ff3d9a,6px 0 #2ef0ff,0 0 36px #ff4fd8;transform:skewX(-12deg)}
.bz-banner.out{animation:bzBanOut .45s ease-in both}
@keyframes bzBanIn{from{transform:scaleY(0)}}
@keyframes bzBanOut{to{transform:scaleY(0) translateX(40px);opacity:0}}
@keyframes bzLetter{0%{transform:translateY(40px) scale(.2);opacity:0}60%{transform:translateY(-10px) scale(1.3)}100%{transform:none}}

/* ---------- hyperdrive screen fx ---------- */
.bz-hyperfx{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .4s}
.bz.hyper .bz-hyperfx{opacity:1}
.bz-hyperfx i{position:absolute;left:50%;top:44%;width:200vmax;height:200vmax;margin:-100vmax 0 0 -100vmax}
.bz-hyperfx .hs1{background:repeating-conic-gradient(rgba(255,79,216,.0) 0 3deg,rgba(255,79,216,.32) 3deg 3.6deg,transparent 3.6deg 11deg);-webkit-mask:radial-gradient(circle,transparent 6%,#000 22%,#000 60%,transparent 70%);mask:radial-gradient(circle,transparent 6%,#000 22%,#000 60%,transparent 70%);animation:bzSpin 3s linear infinite,bzZoom .35s linear infinite}
.bz-hyperfx .hs2{background:repeating-conic-gradient(transparent 0 7deg,rgba(95,243,255,.28) 7deg 7.5deg,transparent 7.5deg 17deg);-webkit-mask:radial-gradient(circle,transparent 8%,#000 26%,transparent 62%);mask:radial-gradient(circle,transparent 8%,#000 26%,transparent 62%);animation:bzSpin 5s linear infinite reverse,bzZoom .5s linear infinite}
.bz.hyper::after{content:'';position:fixed;inset:0;z-index:2;pointer-events:none;box-shadow:inset 0 0 120px rgba(255,79,216,.55),inset 0 0 40px rgba(95,243,255,.4);animation:bzEdge .3s steps(2) infinite}
@keyframes bzSpin{to{transform:rotate(360deg)}}
@keyframes bzZoom{from{scale:1}to{scale:1.06}}
@keyframes bzEdge{50%{box-shadow:inset 0 0 160px rgba(95,243,255,.5),inset 0 0 50px rgba(255,79,216,.5)}}
.bz.hyper .bz-prompt{border-top-color:#5ff3ff;box-shadow:0 0 40px rgba(255,79,216,.5)}
.bz[data-combo="4"] .bz-in,.bz[data-combo="5"] .bz-in{box-shadow:0 0 30px rgba(255,211,77,.45),inset 0 0 12px rgba(255,79,216,.2)}

/* ---------- breakdown ---------- */
.bz-end{max-height:100%;overflow:auto;border-top:4px solid var(--bz);animation:prIn .45s cubic-bezier(.2,1.4,.4,1) both}
.bz-conv{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:16px}
.bz-raw,.bz-pts{display:flex;flex-direction:column;align-items:center}
.bz-raw b{font-weight:700;font-size:48px;line-height:56px;color:#ff8ad8;text-shadow:0 0 14px rgba(255,79,216,.6)}
.bz-pts b{font-weight:700;font-size:64px;line-height:72px;color:var(--gold);text-shadow:-3px 0 rgba(255,61,154,.7),3px 0 rgba(46,240,255,.7),0 0 26px rgba(255,211,77,.7)}
.bz-pts b.bump{animation:bzBump .5s cubic-bezier(.2,1.9,.4,1)}
.bz-arrow{font-size:32px;color:var(--ink-3);animation:bzArrow 1s steps(2) infinite}
@keyframes bzArrow{50%{transform:translateX(6px);color:#ff4fd8}}
.bz-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px}
.bz-stats div{background:#0d0a30;padding:8px;text-align:center}
.bz-stats b{display:block;font-weight:700;font-size:24px;line-height:32px;color:var(--bz2)}
.bz-stats span{font-size:16px;color:var(--ink-3)}
.bz-groups{display:flex;flex-direction:column;gap:8px;margin-top:16px}
.bz-grp{--tc:#aeb6cc;border-left:4px solid var(--tc);background:color-mix(in srgb,var(--tc) 8%,#0a0724);padding:8px 12px;animation:bzGrp .5s cubic-bezier(.2,1.4,.4,1) both;animation-delay:var(--d)}
@keyframes bzGrp{from{opacity:0;transform:translateX(-24px)}}
.bz-gh{display:flex;align-items:center;gap:8px}
.bz-gh .gn{font-weight:700;font-size:16px;letter-spacing:4px;color:var(--tc)}
.bz-gh .gs{font-size:16px;color:var(--ink-3)}
.bz-gh .gc{margin-left:auto;font-size:16px;color:#fff;white-space:nowrap}
.bz-gx{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.bz-gx .bz-chip{animation:none;padding:2px 8px}
.bz-grp.t-hyper .gn{color:#ff4fd8;text-shadow:-2px 0 rgba(255,61,154,.6),2px 0 rgba(46,240,255,.6)}
.bz-none{font-size:16px;color:var(--ink-2);text-align:center;padding:16px}
.bz-away{margin-top:16px;font-size:16px;color:var(--ink-2)}
.bz-away div{margin-top:4px;color:#e6c8ff}
.bz-calnote{margin-top:12px;font-size:16px;color:var(--ink-3)}
.bz-next{width:100%;margin-top:16px}
.bz.ended .bz-stage{top:96px}

/* ---------- phone ---------- */
@media (max-width:700px){
  .bz-hud{grid-template-columns:108px 52px 92px;gap:8px;top:8px}
  .bz-box{padding:4px 8px;height:60px}.bz-box .label{letter-spacing:2px}
  .bz-sv,.bz-cv{font-size:24px;line-height:32px}
  .bz-timer,.bz-timer canvas{width:52px;height:52px}
  .bz-timer::before{inset:8px}
  .bz-timer b{font-size:24px;line-height:24px}
  .bz-stage{top:160px;width:calc(100vw - 16px);gap:8px;bottom:8px}
  .bz-prompt{padding:12px 16px}
  .bz-top .bz-cat{display:none}
  .bz-q{font-size:24px;line-height:32px}
  .bz-row{margin-top:12px}.bz-in{height:56px}.bz-go{min-width:56px;padding:0 16px}
  .bz-combo{grid-template-columns:96px 1fr;gap:12px;padding:8px 16px;border-left-width:6px}
  .bz-mult .x{font-size:24px}.bz-mult .n{font-size:48px}
  .bz-bar{height:16px}
  .bz-hyptxt{display:none}
  .bz-fly{font-size:16px;padding:4px 12px;border-width:2px}
  .bz-float.l b{font-size:40px;line-height:40px}.bz-float.xl b{font-size:48px;line-height:48px}
  .bz-banner b{font-size:40px;line-height:40px;letter-spacing:4px}
  .bz-cd b{font-size:64px;line-height:64px}
  .bz.ended .bz-stage{top:104px}
  .bz-conv{gap:12px}.bz-raw b{font-size:32px;line-height:40px}.bz-pts b{font-size:48px;line-height:56px}
  .bz-stats{grid-template-columns:repeat(2,1fr)}
  .bz-gh .gs{display:none}.bz-gh .gn{letter-spacing:2px}
  .bz-end{padding:16px}
}
@media (max-height:760px) and (min-width:701px){.bz-q{font-size:24px;line-height:32px}.bz-mult .n{font-size:64px}}
