:root{--bg:#05050A;--purple:#9945FF;--teal:#14F195;--cyan:#00C2FF;--gold:#F5C518;--orange:#FF8C42;--red:#FF3B5C;--text:#F5F5F5;--muted:#9a9aae;
--glass:rgba(20,18,35,.55);--sol:linear-gradient(90deg,#9945FF,#00C2FF,#14F195);--num:'Orbitron',ui-monospace,monospace}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:'Space Grotesk',system-ui,Segoe UI,sans-serif;line-height:1.55;overflow-x:hidden}
a{color:inherit;text-decoration:none}
/* background */
.bg{position:fixed;inset:0;z-index:-1;overflow:hidden}
.grid-bg{position:absolute;inset:-50%;background-image:linear-gradient(rgba(153,69,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(20,241,149,.05) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(ellipse at center,#000 20%,transparent 65%);animation:gridmove 30s linear infinite}
@keyframes gridmove{to{transform:translate(48px,48px)}}
.blob{position:absolute;width:55vmax;height:55vmax;border-radius:50%;filter:blur(110px);opacity:.28;mix-blend-mode:screen}
.b1{background:var(--purple);top:-20%;left:-15%;animation:drift1 22s ease-in-out infinite alternate}
.b2{background:var(--teal);bottom:-25%;right:-15%;opacity:.18;animation:drift2 26s ease-in-out infinite alternate}
.b3{background:var(--cyan);top:30%;left:40%;width:35vmax;height:35vmax;opacity:.14;animation:drift1 30s ease-in-out infinite alternate-reverse}
@keyframes drift1{to{transform:translate(18vw,14vh) scale(1.2)}}
@keyframes drift2{to{transform:translate(-16vw,-12vh) scale(.85)}}
/* nav */
.nav{display:flex;align-items:center;gap:24px;padding:14px 5vw;position:sticky;top:0;background:rgba(5,5,10,.6);backdrop-filter:blur(16px);border-bottom:1px solid rgba(153,69,255,.18);z-index:10}
.brand{display:flex;gap:10px;align-items:center;font-size:18px}.brand b{font-family:var(--num);background:linear-gradient(90deg,var(--gold),var(--orange));-webkit-background-clip:text;background-clip:text;color:transparent}
.nav nav{display:flex;gap:22px;margin-left:auto;font-size:14px;color:var(--muted)}.nav nav a{transition:.2s}.nav nav a:hover{color:var(--teal);text-shadow:0 0 12px var(--teal)}
.badge{display:flex;align-items:center;gap:7px;font-size:11px;text-transform:uppercase;letter-spacing:.12em;padding:5px 12px;border-radius:99px;border:1px solid rgba(255,140,66,.6);color:var(--orange);background:rgba(255,140,66,.08)}
.badge i{width:7px;height:7px;border-radius:50%;background:var(--orange);box-shadow:0 0 8px var(--orange);animation:blink 1.4s infinite}
@keyframes blink{50%{opacity:.25}}
main{max-width:1080px;margin:0 auto;padding:0 5vw}
section{padding:72px 0}
h2{font-family:var(--num);font-size:clamp(22px,3.5vw,32px);margin-bottom:28px;letter-spacing:.02em}
h3{font-size:18px;margin-bottom:10px}
.grad{background:var(--sol);-webkit-background-clip:text;background-clip:text;color:transparent}
.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.2em;color:var(--muted)}
.muted{color:var(--muted)}.small{font-size:13px}.teal{color:var(--teal)}.gold{color:var(--gold)}
/* glass card with gradient border */
.glass{position:relative;background:var(--glass);backdrop-filter:blur(18px);border-radius:20px;padding:26px;transition:transform .3s,box-shadow .3s}
.glass::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,rgba(153,69,255,.7),rgba(0,194,255,.15),rgba(20,241,149,.6));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.glass:hover{transform:translateY(-3px);box-shadow:0 10px 40px -10px rgba(153,69,255,.45),0 0 30px -12px rgba(20,241,149,.4)}
/* hero */
.hero{text-align:center;padding-top:48px}
.stage{position:relative;width:min(460px,88vw);aspect-ratio:1;margin:18px auto 8px;display:grid;place-items:center}
.ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);overflow:visible}
.ring circle{fill:none;stroke-width:5}
.ring .track{stroke:rgba(255,255,255,.06)}
.ring .prog{stroke:url(#rg);stroke-linecap:round;stroke-dasharray:578;stroke-dashoffset:578;transition:stroke-dashoffset 1s linear,stroke .3s;filter:drop-shadow(0 0 6px #14F195) drop-shadow(0 0 14px #9945FF)}
.stage.urgent .ring .prog{stroke:var(--red);filter:drop-shadow(0 0 8px var(--red)) drop-shadow(0 0 18px var(--orange));animation:pulse .9s infinite}
.orb{position:absolute;inset:11%;display:grid;place-items:center}
.orb-ring{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,var(--purple),var(--cyan),var(--teal),var(--gold),var(--purple));animation:spin 8s linear infinite;filter:blur(1px);-webkit-mask:radial-gradient(circle,transparent 61%,#000 62.5%,#000 66%,transparent 67.5%);mask:radial-gradient(circle,transparent 61%,#000 62.5%,#000 66%,transparent 67.5%)}
.orb-ring::after{content:"";position:absolute;inset:0;border-radius:50%;background:inherit;filter:blur(18px);opacity:.8}
.orb-core{position:absolute;inset:14%;border-radius:47% 53% 50% 50%/55% 52% 48% 45%;background:radial-gradient(circle at 35% 30%,rgba(245,197,24,.35),transparent 45%),radial-gradient(circle at 65% 75%,rgba(153,69,255,.55),transparent 60%),radial-gradient(circle,#1a1030,#07060f 75%);box-shadow:inset 0 0 50px rgba(153,69,255,.45),inset 0 0 18px rgba(20,241,149,.25),0 0 70px rgba(153,69,255,.45),0 0 130px rgba(20,241,149,.18);animation:breathe 4s ease-in-out infinite,morph 12s ease-in-out infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes breathe{50%{box-shadow:inset 0 0 70px rgba(153,69,255,.6),inset 0 0 26px rgba(20,241,149,.35),0 0 100px rgba(153,69,255,.6),0 0 170px rgba(20,241,149,.25)}}
@keyframes morph{50%{border-radius:53% 47% 45% 55%/48% 55% 45% 52%}}
@keyframes pulse{50%{opacity:.55}}
.sparks{position:absolute;inset:0;pointer-events:none}
.sparks i{position:absolute;bottom:25%;width:4px;height:4px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c),0 0 14px var(--c);opacity:0;animation:rise var(--d) ease-in infinite;animation-delay:var(--dl)}
@keyframes rise{0%{transform:translate(0,0) scale(1);opacity:0}15%{opacity:1}100%{transform:translate(var(--x),-260px) scale(.2);opacity:0}}
.center{position:relative;z-index:2}
.pot{font-family:var(--num);font-weight:900;font-size:clamp(44px,10vw,88px);line-height:1;letter-spacing:-.02em;background:linear-gradient(180deg,#fff 10%,var(--gold) 45%,var(--orange));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 18px rgba(245,197,24,.55)) drop-shadow(0 0 40px rgba(153,69,255,.5));font-variant-numeric:tabular-nums}
.pot.bump{animation:bump .6s}
@keyframes bump{30%{transform:scale(1.07);filter:drop-shadow(0 0 30px rgba(20,241,149,.9)) drop-shadow(0 0 60px rgba(153,69,255,.7))}}
.sol{font-family:var(--num);font-size:clamp(14px,2.4vw,20px);letter-spacing:.4em;margin-top:6px;background:var(--sol);-webkit-background-clip:text;background-clip:text;color:transparent}
.timer-wrap{display:inline-flex;align-items:center;gap:26px;margin:18px auto 30px;padding:18px 30px;text-align:left}
.divider{width:1px;align-self:stretch;background:linear-gradient(transparent,rgba(153,69,255,.6),transparent)}
.timer{font-family:var(--num);font-size:40px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--teal);text-shadow:0 0 14px rgba(20,241,149,.7)}
.timer.dim{font-size:22px;color:var(--muted);text-shadow:none}
.timer.urgent{color:var(--red);text-shadow:0 0 16px var(--red),0 0 30px var(--orange);animation:pulse .9s infinite}
.leader-box code{font-size:15px}
code{font-family:ui-monospace,Consolas,monospace;color:var(--cyan)}
/* buttons */
.btn{display:inline-block;position:relative;font-family:inherit;font-weight:700;font-size:15px;color:#05050A;border:0;border-radius:14px;padding:14px 28px;cursor:pointer;background:linear-gradient(90deg,var(--purple),var(--cyan),var(--teal));background-size:200% 100%;box-shadow:0 0 20px -4px rgba(153,69,255,.7);transition:background-position .5s,box-shadow .3s,transform .2s}
.btn:hover{background-position:100% 0;box-shadow:0 0 28px rgba(20,241,149,.6),0 0 60px -10px rgba(153,69,255,.9);transform:translateY(-2px)}
.btn.neon{background:transparent;color:var(--teal);border:1.5px solid var(--teal);box-shadow:0 0 14px -2px rgba(20,241,149,.6),inset 0 0 14px -4px rgba(20,241,149,.5);white-space:nowrap}
.btn.neon:hover,.btn.neon.done{background:var(--teal);color:#05050A;box-shadow:0 0 30px rgba(20,241,149,.8)}
/* sections */
.grid{display:grid;gap:18px;margin-bottom:18px}.steps{grid-template-columns:repeat(3,1fr)}.two{grid-template-columns:1fr 1fr}
.num{display:block;font-family:var(--num);font-size:30px;font-weight:900;margin-bottom:8px;background:var(--sol);-webkit-background-clip:text;background-clip:text;color:transparent}
.steps p{color:var(--muted)}
.rules ul{list-style:none}.rules li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.06)}.rules li span{color:var(--muted)}
.calc label{font-size:13px;color:var(--muted)}
.calc input{width:100%;margin:8px 0 6px;padding:13px 14px;font:600 20px var(--num);background:rgba(5,5,10,.7);border:1px solid rgba(153,69,255,.4);border-radius:12px;color:var(--text);transition:.2s}
.calc input:focus{outline:0;border-color:var(--teal);box-shadow:0 0 0 3px rgba(20,241,149,.15),0 0 20px rgba(20,241,149,.3)}
.calc-out{font-family:var(--num);font-size:42px;font-weight:800;color:var(--teal);text-shadow:0 0 18px rgba(20,241,149,.7)}
.addr{display:flex;align-items:center;gap:16px;justify-content:space-between;margin-bottom:12px}
.addr code{font-size:clamp(12px,2vw,17px);word-break:break-all;color:var(--gold);text-shadow:0 0 10px rgba(245,197,24,.4)}
.table{padding:8px 0;overflow:hidden}
.row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;padding:13px 26px;border-bottom:1px solid rgba(255,255,255,.05);font-size:14px;font-variant-numeric:tabular-nums}
.row.head{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.14em}
.row .add{color:var(--teal);font-family:var(--num);font-size:13px}
#activityList .row:first-child{background:linear-gradient(90deg,rgba(20,241,149,.12),transparent);box-shadow:inset 3px 0 0 var(--teal)}
#activityList .row.new{animation:slidein .7s cubic-bezier(.2,.9,.3,1.2),glow 2.2s}
@keyframes slidein{from{transform:translateX(-40px);opacity:0}}
@keyframes glow{0%,40%{background:rgba(20,241,149,.3);box-shadow:inset 3px 0 0 var(--teal),0 0 30px rgba(20,241,149,.5)}}
.stat .big{font-family:var(--num);font-size:clamp(30px,5vw,44px);font-weight:900;font-variant-numeric:tabular-nums}
.big.fire{background:linear-gradient(90deg,var(--gold),var(--orange),var(--red));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 12px rgba(255,140,66,.5))}
.big.teal{text-shadow:0 0 16px rgba(20,241,149,.6)}
.split{display:flex;height:14px;border-radius:99px;overflow:hidden;gap:3px;margin:14px 0}
.s-t{background:var(--cyan);box-shadow:0 0 10px var(--cyan)}.s-b{background:var(--orange);box-shadow:0 0 10px var(--orange)}.s-p{background:linear-gradient(90deg,var(--gold),#ffdf6b)}.s-w{background:linear-gradient(90deg,var(--purple),var(--teal))}
.legend{font-size:13px;color:var(--muted)}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin:0 6px 0 14px;vertical-align:-1px}.legend i:first-child{margin-left:0}
footer{text-align:center;padding:44px 5vw;border-top:1px solid rgba(153,69,255,.18)}
.toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%,100px);background:var(--teal);color:#05050A;font-weight:700;padding:11px 20px;border-radius:12px;box-shadow:0 0 30px rgba(20,241,149,.7);transition:transform .3s cubic-bezier(.2,.9,.3,1.3);z-index:20}
.toast.show{transform:translate(-50%,0)}
@media(max-width:780px){.nav nav{display:none}.badge{margin-left:auto}.steps,.two{grid-template-columns:1fr}
.timer-wrap{flex-wrap:wrap;justify-content:center;gap:14px 22px;text-align:center}.divider{display:none}.leader-box{width:100%}.timer{font-size:32px}
.addr{flex-direction:column;align-items:stretch}.row{grid-template-columns:1.4fr 1fr 1fr;padding:12px 16px}.row span:nth-child(4){display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.sparks{display:none}html{scroll-behavior:auto}}

/* stable hero CTA */
.grid.one{grid-template-columns:1fr}
.cta{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:4px}
.btn.play{background:linear-gradient(90deg,var(--purple),var(--cyan),var(--teal));background-size:100% 100%;transform:none!important;transition:box-shadow .25s!important;min-width:260px;font-size:16px;padding:15px 32px}
.btn.play:hover{background-position:0 0;transform:none;box-shadow:0 0 26px rgba(20,241,149,.55),0 0 50px -10px rgba(153,69,255,.8)}
.cta-min{font-size:14px;color:var(--muted)}.cta-min b{color:var(--teal)}
.cta-ex{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.cta-ex span{font-size:13px;color:var(--muted);padding:5px 12px;border-radius:99px;border:1px solid rgba(153,69,255,.35);background:rgba(20,18,35,.5)}
.cta-ex b{color:var(--text);font-family:var(--num);font-size:12px}

/* address boxes */
.addr-box{width:min(640px,100%);border-radius:16px;padding:16px 18px;text-align:left;margin-top:6px}
.pot-box{border:2px solid var(--teal);background:rgba(20,241,149,.06);box-shadow:0 0 24px -6px rgba(20,241,149,.5)}
.ca-box{border:2px dashed var(--purple);background:rgba(153,69,255,.07);box-shadow:0 0 24px -8px rgba(153,69,255,.6);margin-top:18px}
.addr-label{font-family:var(--num);font-size:clamp(12px,1.8vw,15px);font-weight:800;letter-spacing:.06em;margin-bottom:10px}
.pot-box .addr-label{color:var(--teal);text-shadow:0 0 10px rgba(20,241,149,.5)}
.ca-box .addr-label{color:#c9a2ff;font-size:13px}
.addr-row{display:flex;gap:12px;align-items:center;justify-content:space-between}
.addr-row code{font-size:clamp(11px,1.9vw,15px);word-break:break-all;color:var(--text)}
.pot-box code{color:var(--gold)}
.btn.neon.purple{color:#c9a2ff;border-color:var(--purple);box-shadow:0 0 14px -2px rgba(153,69,255,.7)}
.btn.neon.purple:hover{background:var(--purple);color:#fff}
.btn.neon{padding:10px 18px;transform:none!important}
.warn{color:var(--orange)}
.pf-link{display:inline-block;margin-top:10px;font-size:13px;color:#c9a2ff;text-decoration:underline}
.warn-line{max-width:640px;font-size:13px;color:var(--muted);margin-top:10px;text-align:center}
.purple-t{color:#c9a2ff}
@media(max-width:600px){.addr-row{flex-direction:column;align-items:stretch}}

/* ===== live event terminal ===== */
.term-section{padding-top:24px}
.term{max-width:900px;margin:0 auto;border-radius:16px;overflow:hidden;background:rgba(2,3,6,.82);backdrop-filter:blur(14px);border:1px solid rgba(20,241,149,.25);box-shadow:0 0 40px -12px rgba(20,241,149,.45),0 0 80px -30px rgba(153,69,255,.6),inset 0 0 60px rgba(20,241,149,.04);font-family:"JetBrains Mono",ui-monospace,Consolas,Menlo,monospace;position:relative;transition:max-width .3s}
.term.wide{max-width:100%}
.term::after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 1px,transparent 1px 3px)}
.term-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;background:rgba(20,18,35,.8);border-bottom:1px solid rgba(153,69,255,.25);font-size:12px;color:var(--muted)}
.dots i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;background:#ff5f57}.dots i:nth-child(2){background:#febc2e}.dots i:nth-child(3){background:#28c840}
.term-title{flex:1;letter-spacing:.05em}
.term-mode{margin-left:8px;padding:2px 8px;border-radius:99px;border:1px solid currentColor;font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--orange)}
.term-mode.live{color:var(--teal)}
.term-btn{background:none;border:1px solid rgba(255,255,255,.15);color:var(--muted);border-radius:6px;padding:2px 8px;cursor:pointer}
.term-btn:hover{color:var(--teal);border-color:var(--teal)}
.term-body{height:300px;overflow-y:auto;padding:12px 16px;font-size:12.5px;line-height:1.75;scrollbar-width:thin;scrollbar-color:rgba(153,69,255,.5) transparent}
.term-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;animation:termIn .35s ease-out}
@keyframes termIn{from{opacity:0;transform:translateX(-8px)}}
.term-line .t{color:#5d6175}
.term-line .tag{font-weight:700;margin:0 8px}
.term-line .a{color:var(--cyan)}
.term-line .v{color:var(--text)}
.term-line a.tx{color:#8b8fa8;text-decoration:none;border-bottom:1px dotted #555}.term-line a.tx:hover{color:var(--teal)}
.term-line .demo{color:var(--orange);font-size:10px;margin-left:6px;opacity:.8}
.c-claim{color:var(--gold);text-shadow:0 0 8px rgba(245,197,24,.5)}
.c-swap{color:var(--cyan);text-shadow:0 0 8px rgba(0,194,255,.5)}
.c-buy{color:var(--teal);text-shadow:0 0 8px rgba(20,241,149,.5)}
.c-burn{color:var(--orange);text-shadow:0 0 8px rgba(255,140,66,.6)}
.c-treasury{color:#c9a2ff;text-shadow:0 0 8px rgba(153,69,255,.6)}
.c-potin{color:var(--teal)}
.c-play,.c-leader{color:#7CFFB2;text-shadow:0 0 10px rgba(20,241,149,.7)}
.c-timer{color:var(--cyan)}
.c-round{color:var(--purple);text-shadow:0 0 8px rgba(153,69,255,.7)}
.c-winner{color:var(--gold);text-shadow:0 0 12px rgba(245,197,24,.8)}
.term-foot{padding:8px 16px 12px;font-size:12.5px;color:var(--teal);border-top:1px solid rgba(255,255,255,.04)}
.prompt{color:var(--purple)}
.cursor{display:inline-block;width:8px;height:15px;background:var(--teal);vertical-align:-2px;box-shadow:0 0 8px var(--teal);animation:blink 1s steps(1) infinite}
.term-hint{float:right;color:#4a4e62;font-size:11px}
.term.paused .term-hint{color:var(--orange)}
@media(max-width:600px){.term-body{height:240px;font-size:11px}.term-line{white-space:normal}.term-hint{display:none}}

.grid.three{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.grid.three{grid-template-columns:1fr}}
.c-cut{color:#ff6fb5;text-shadow:0 0 8px rgba(255,111,181,.55)}

/* stats + winners */
.stats-section{padding-top:20px}
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:900px;margin:0 auto}
.st{padding:18px 20px}
.sv{font-family:var(--num);font-weight:900;font-size:clamp(20px,3vw,28px);margin-top:4px;font-variant-numeric:tabular-nums}
.sv.cyan{color:var(--cyan);text-shadow:0 0 12px rgba(0,194,255,.5)}.sv.gold{color:var(--gold);text-shadow:0 0 12px rgba(245,197,24,.5)}.sv.teal{text-shadow:0 0 12px rgba(20,241,149,.5)}
.sv.fire{background:linear-gradient(90deg,var(--gold),var(--orange));-webkit-background-clip:text;background-clip:text;color:transparent}
.su{font-size:12px;color:var(--muted)}
.row.w{grid-template-columns:.4fr .6fr 1.4fr 1fr 1.1fr 1fr .7fr}
.winners a{color:var(--cyan);text-decoration:none}.winners a:hover{text-decoration:underline}
.winners .rank{font-family:var(--num);color:var(--gold)}
.badge-k{font-size:11px;padding:2px 8px;border-radius:99px;border:1px solid}
.badge-k.player{color:var(--teal)}.badge-k.holder{color:#c9a2ff}
.empty{padding:28px;text-align:center;color:var(--muted)}
@media(max-width:780px){.stats-grid{grid-template-columns:1fr 1fr}.row.w{grid-template-columns:.4fr 1.4fr 1fr .8fr}.row.w span:nth-child(2),.row.w span:nth-child(5),.row.w span:nth-child(6){display:none}}

/* ===================== FX ===================== */
:root{--heat:0}
.fx-canvas{position:fixed;inset:0;pointer-events:none;z-index:30}
/* heat: warm aurora overlays fade in with --heat */
.bg::before,.bg::after{content:"";position:absolute;border-radius:50%;filter:blur(120px);mix-blend-mode:screen;pointer-events:none;opacity:calc(var(--heat) * .55);transition:opacity 1s}
.bg::before{width:60vmax;height:60vmax;left:-10%;top:-15%;background:#FF5A36;animation:drift1 18s ease-in-out infinite alternate}
.bg::after{width:50vmax;height:50vmax;right:-10%;bottom:-20%;background:#FF8C42;animation:drift2 22s ease-in-out infinite alternate}
.b1,.b2,.b3{opacity:calc(.28 - var(--heat) * .14)}
.orb-core{filter:hue-rotate(calc(var(--heat) * -95deg)) saturate(calc(1 + var(--heat) * .4))}
.orb-ring{filter:blur(1px) hue-rotate(calc(var(--heat) * -110deg))}
.timer{color:color-mix(in srgb,var(--teal),#FF8C42 calc(var(--heat) * 100%));text-shadow:0 0 14px color-mix(in srgb,rgba(20,241,149,.7),rgba(255,90,54,.85) calc(var(--heat) * 100%))}
.pot{filter:drop-shadow(0 0 18px rgba(245,197,24,.55)) drop-shadow(0 0 calc(40px + var(--heat) * 30px) color-mix(in srgb,rgba(153,69,255,.5),rgba(255,59,92,.7) calc(var(--heat) * 100%)))}
.btn.play{box-shadow:0 0 calc(20px + var(--heat) * 20px) -4px color-mix(in srgb,rgba(153,69,255,.7),rgba(255,90,54,.9) calc(var(--heat) * 100%))}
/* under 60s: vignette pulse + faster orb */
.fx-vignette{position:fixed;inset:0;pointer-events:none;z-index:25;opacity:0;transition:opacity .6s;background:radial-gradient(ellipse at center,transparent 55%,rgba(255,30,60,.35) 100%)}
.heat-hot .fx-vignette{opacity:1;animation:vig 1.6s ease-in-out infinite}
@keyframes vig{50%{opacity:.45}}
.heat-hot .orb-core{animation-duration:1.4s,12s}
.heat-hot .orb-ring{animation-duration:3s}
/* under 10s: heartbeat */
.heat-crit .stage{animation:heartbeat 1s ease-in-out infinite}
.heat-crit .fx-vignette{animation:vig .5s ease-in-out infinite}
.heat-crit .timer{animation:heartbeat 1s ease-in-out infinite}
@keyframes heartbeat{0%,100%{transform:scale(1)}14%{transform:scale(1.06)}28%{transform:scale(1)}42%{transform:scale(1.04)}70%{transform:scale(1)}}
/* new play */
.fx-shock{position:absolute;left:50%;top:50%;width:40%;height:40%;border-radius:50%;transform:translate(-50%,-50%) scale(.3);border:3px solid var(--teal);box-shadow:0 0 30px var(--teal),inset 0 0 30px rgba(20,241,149,.6);animation:shock 1.1s cubic-bezier(.1,.7,.3,1) forwards;pointer-events:none;z-index:3}
.fx-shock.s2{border-color:var(--purple);box-shadow:0 0 30px var(--purple);animation-delay:.12s;animation-duration:1.3s}
@keyframes shock{to{transform:translate(-50%,-50%) scale(3);opacity:0}}
.stage.fx-hit .orb-core{animation:breathe 4s ease-in-out infinite,morph 12s ease-in-out infinite,hit .6s ease-out}
@keyframes hit{30%{transform:scale(1.12);filter:brightness(1.8)}}
.timer.fx-jump{animation:jump .55s cubic-bezier(.3,1.8,.5,1)}
@keyframes jump{30%{transform:translateY(-10px) scale(1.15);color:#fff}}
.fx-float{position:absolute;left:0;top:-6px;font-family:var(--num);font-weight:800;font-size:22px;color:var(--teal);text-shadow:0 0 12px var(--teal);pointer-events:none;animation:floatup 1.5s ease-out forwards;white-space:nowrap}
@keyframes floatup{0%{opacity:0;transform:translateY(10px) scale(.8)}20%{opacity:1;transform:translateY(-6px) scale(1.1)}100%{opacity:0;transform:translateY(-46px)}}
.leader-box.fx-pop{animation:pop .7s cubic-bezier(.3,1.6,.5,1)}
.leader-box.fx-pop code{text-shadow:0 0 14px var(--teal);color:#fff}
@keyframes pop{0%{transform:scale(.85);opacity:.3}60%{transform:scale(1.08)}100%{transform:scale(1)}}
/* burn */
.term-line.fx-burn-line .tag{color:var(--orange)}
.term-line.fx-burning{background:linear-gradient(90deg,rgba(255,90,54,.18),transparent 70%);animation:fireline 3.4s ease-out}
.term-line.fx-burning .tag{background:linear-gradient(0deg,#FF3B5C,#FF8C42,#F5C518,#fff3);-webkit-background-clip:text;background-clip:text;color:transparent;animation:flick .15s steps(2) infinite;filter:drop-shadow(0 0 6px #FF8C42)}
@keyframes fireline{0%{box-shadow:inset 3px 0 0 #FF8C42,0 0 22px rgba(255,90,54,.55)}100%{box-shadow:inset 3px 0 0 transparent}}
@keyframes flick{50%{filter:drop-shadow(0 0 10px #FF3B5C) brightness(1.3)}}
.glass.fx-flame{box-shadow:0 0 34px -6px rgba(255,90,54,.8),0 -10px 40px -14px rgba(245,197,24,.7)}
.glass.fx-flame .sv,.glass.fx-flame .big{animation:flick .12s steps(2) infinite}
@media(prefers-reduced-motion:reduce){.fx-canvas,.fx-shock,.fx-float{display:none}.heat-hot .fx-vignette{animation:none;opacity:.6}.bg::before,.bg::after{animation:none}}
