*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{background:#030012;color:#e2e8f0;font-family:Share Tech Mono,Courier New,monospace;overflow:hidden;height:100dvh}.app{position:relative;width:100vw;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.bg-canvas{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.scanlines{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;background:repeating-linear-gradient(to bottom,transparent,transparent 3px,rgba(0,0,0,.08) 3px,rgba(0,0,0,.08) 4px);pointer-events:none}.vignette{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.75) 100%);pointer-events:none}.grid-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;background-image:linear-gradient(rgba(0,212,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(0,212,255,.03) 1px,transparent 1px);background-size:44px 44px;pointer-events:none}.rodrigo-hero-link{position:fixed;left:14px;bottom:8px;width:14px;height:14px;border-radius:50%;overflow:hidden;z-index:40;border:1px solid rgba(96,165,250,.7);box-shadow:0 0 14px #2563eb73;background:#0206178c}.rodrigo-hero-link:hover{transform:translateY(-1px);box-shadow:0 0 18px #2563eba6}.rodrigo-hero-avatar{width:100%;height:100%;object-fit:cover;display:block}.site-header{position:relative;z-index:30;text-align:center;padding:20px 16px 10px;flex-shrink:0}.header-badge{display:inline-block;font-size:10px;letter-spacing:3px;text-transform:uppercase;color:#7c3aed;border:1px solid rgba(124,58,237,.45);padding:3px 14px;border-radius:20px;margin-bottom:9px;animation:fadeUp .6s ease both}.site-title{font-family:Orbitron,monospace;font-size:clamp(13px,2.2vw,22px);font-weight:700;letter-spacing:2px;text-transform:uppercase;text-shadow:0 0 18px currentColor,0 0 35px currentColor;transition:color 1.2s ease;animation:fadeUp .6s .15s ease both}.header-tags{margin-top:9px;font-size:clamp(10px,1.2vw,12px);letter-spacing:1.2px;color:#e2e8f0cc;animation:fadeUp .6s .25s ease both}.header-link{display:inline-block;margin-top:6px;font-size:clamp(10px,1.2vw,12px);letter-spacing:1.2px;color:#60a5fa;text-decoration:none;border-bottom:1px solid rgba(96,165,250,.45);animation:fadeUp .6s .35s ease both}.header-link:hover{color:#93c5fd;border-bottom-color:#93c5fdbf}.intro-screen{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center}.intro-ring{position:absolute;width:320px;height:320px;border-radius:50%;border:1px solid rgba(0,212,255,.15);animation:pulseRing 2.6s ease-in-out infinite}.intro-ring--2{width:440px;height:440px;border-color:#7c3aed1a;animation-delay:.6s}.intro-25{font-family:Orbitron,monospace;font-size:clamp(110px,18vw,200px);font-weight:900;line-height:1;color:#fff;-webkit-text-stroke:3px #00d4ff;filter:drop-shadow(0 0 24px rgba(0,212,255,.9)) drop-shadow(0 0 55px rgba(0,212,255,.55)) drop-shadow(0 0 90px rgba(0,212,255,.3));animation:pulse25 2s ease-in-out infinite;position:relative;z-index:1}.intro-sp-icon{margin-bottom:4px;animation:fadeUp .5s .1s ease both;filter:drop-shadow(0 0 14px rgba(0,120,212,.8)) drop-shadow(0 0 30px rgba(0,120,212,.4))}.intro-sp-icon img,.intro-sp-icon svg{width:clamp(52px,8vw,76px);height:clamp(52px,8vw,76px);object-fit:contain}.intro-25-wrap{position:relative;display:flex;align-items:center;justify-content:center}.sp-orbit-ring{position:absolute;width:420px;height:420px;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:50%;border:1px dashed rgba(0,212,255,.12);pointer-events:none}.intro-sub{font-family:Orbitron,monospace;font-size:clamp(13px,2vw,20px);letter-spacing:8px;text-transform:uppercase;color:#a78bfa;margin-top:8px;animation:fadeUp .5s .4s ease both}.intro-year{font-size:11px;letter-spacing:4px;color:#a78bfa80;margin-top:10px;animation:fadeUp .5s .8s ease both}.style-marquee{position:fixed;left:0;right:0;bottom:0;width:100vw;margin:0;border:1px solid rgba(245,158,11,.45);border-left:0;border-right:0;border-radius:0;overflow:hidden;background:#00000059;box-shadow:inset 0 0 8px #f59e0b29;z-index:25;pointer-events:none}.style-marquee__inner{display:inline-flex;white-space:nowrap;will-change:transform;padding-left:100vw;animation:marqueeRoll 14s linear infinite}.style-marquee__inner span{display:inline-block;padding:8px 72ch 8px 28px;color:#f59e0b;font-size:11px;letter-spacing:1.4px;text-transform:uppercase}.verse-wrap{position:relative;z-index:10;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 20px 60px;animation:fadeUp .5s ease both}.verse-label{font-size:clamp(10px,1.4vw,13px);letter-spacing:3px;text-transform:uppercase;opacity:.8;margin-bottom:28px;animation:fadeUp .4s ease both;text-shadow:0 0 12px currentColor}.lyrics-block{text-align:center;max-width:720px;width:100%;margin-bottom:32px}.lyric-line{font-size:clamp(17px,2.6vw,27px);line-height:1.85;color:#e2e8f01a;letter-spacing:.4px;transition:color .9s ease,text-shadow .9s ease,font-size .4s ease}.lyric-line.shown{color:#e2e8f08c}.lyric-line.current{color:var(--accent);font-size:clamp(19px,3vw,31px);text-shadow:0 0 12px var(--glow),0 0 28px var(--glow),0 0 55px var(--glow);animation:neonFlicker 3s ease-in-out infinite}.cursor{display:inline-block;margin-left:2px;animation:blink .7s step-end infinite;opacity:.9}.vis-area{width:100%;max-width:520px;display:flex;justify-content:center}.vis{width:100%}.progress-bars{display:flex;flex-direction:column;gap:10px}.pb-row{display:flex;align-items:center;gap:10px}.pb-label{font-size:10px;color:#e2e8f066;width:155px;text-align:right;flex-shrink:0}.pb-track{flex:1;height:3px;background:#ffffff14;border-radius:2px;overflow:hidden}.pb-fill{height:100%;border-radius:2px;width:0;background:var(--accent);box-shadow:0 0 8px var(--accent),0 0 16px var(--accent);animation:fillBar 3.5s cubic-bezier(.25,.8,.4,1) forwards}.pb-pct{font-size:10px;width:32px;text-align:right;flex-shrink:0;opacity:.7}.terminal-box{border:1px solid;border-radius:6px;padding:12px 14px;background:#0000008c;font-size:clamp(9px,1.1vw,11px);box-shadow:0 0 18px #00000080,inset 0 0 10px #0000004d}.term-line{line-height:1.75;opacity:0;animation:fadeUp .35s ease forwards}.term-cursor{display:inline-block;width:7px;height:12px;vertical-align:text-bottom;margin-left:2px;animation:blink .8s step-end infinite}.cloud-arc{display:flex;flex-direction:column;align-items:center}.cloud-svg{width:280px;height:130px;overflow:visible}.rack-fade{animation:fadeUp .7s ease both}.cloud-draw{stroke-dasharray:300;stroke-dashoffset:300;animation:drawPath 2.4s ease .7s forwards}.arrow-draw{animation:fadeUp .5s 1s ease both}.confetti-wrap{position:relative;height:140px;display:flex;align-items:center;justify-content:center;overflow:hidden}.confetti-piece{position:absolute;top:-20px;animation:confettiFall 3.2s ease-in forwards;box-shadow:0 0 6px currentColor}.big-badge{display:flex;align-items:center;justify-content:center;width:100px;height:100px;border-radius:50%;border:none;box-shadow:none;animation:pulse25 2s ease-in-out infinite;z-index:2;background:transparent}.badge-logo{width:56px;height:56px;filter:none}.badge-logo svg{width:100%;height:100%;display:block}.badge-logo img{width:100%;height:100%;object-fit:contain;display:block}.verse-dots{position:absolute;bottom:24px;display:flex;gap:10px;z-index:2}.dot{width:8px;height:8px;border-radius:50%;background:#ffffff26;transition:background .4s ease,box-shadow .4s ease}.dot--on{background:#ffffff73}.outro-screen{position:relative;z-index:10;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 20px;overflow-y:auto;animation:fadeUp .8s ease both}.outro-cake{font-size:clamp(44px,7vw,70px);filter:drop-shadow(0 0 20px rgba(57,255,136,.7));animation:pulse25 2s ease-in-out infinite;margin-bottom:10px}.outro-title{font-family:Orbitron,monospace;font-size:clamp(14px,2.4vw,22px);letter-spacing:3px;text-transform:uppercase;background:linear-gradient(135deg,#00d4ff,#39ff88);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:28px}.outro-verses{display:flex;flex-wrap:wrap;gap:24px;justify-content:center;max-width:860px;margin-bottom:28px}.outro-block{text-align:left;max-width:195px;color:var(--accent)}.outro-block p{font-size:clamp(10px,1.2vw,12px);line-height:1.9;color:inherit;opacity:1}.replay-btn{background:transparent;border:1px solid rgba(0,212,255,.45);color:#00d4ff;font-family:Share Tech Mono,monospace;font-size:13px;letter-spacing:3px;padding:11px 28px;border-radius:4px;cursor:pointer;text-transform:uppercase;transition:all .3s ease;box-shadow:0 0 0 transparent;display:inline-flex;align-items:center;justify-content:center}.replay-btn:hover{background:#00d4ff14;box-shadow:0 0 18px #00d4ff59,inset 0 0 8px #00d4ff0d}.replay-btn:disabled{opacity:.45;cursor:not-allowed;border-color:#788ca073;color:#a0b4c8bf;box-shadow:none}.outro-actions{display:flex;flex-direction:column;align-items:center;gap:10px}.outro-actions .replay-btn{width:203px}.memorabilia-btn{display:inline-flex;align-items:center;gap:8px}.memorabilia-icon{font-size:14px;line-height:1}.intro-actions{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:28px}.start-btn{margin-top:0;background:transparent;border:1px solid rgba(0,212,255,.55);color:#00d4ff;font-family:Orbitron,monospace;font-size:clamp(11px,1.4vw,14px);letter-spacing:4px;text-transform:uppercase;padding:14px 34px;border-radius:2px;cursor:pointer;animation:neonFlicker 2.5s ease-in-out infinite,fadeUp .6s 1s ease both;box-shadow:0 0 22px #00d4ff2e,inset 0 0 10px #00d4ff0a;transition:box-shadow .2s ease,background .2s ease}.start-btn:hover{background:#00d4ff12;box-shadow:0 0 36px #00d4ff6b,inset 0 0 16px #00d4ff14}.intro-memorabilia-btn{width:203px}.loading-pulse{display:flex;gap:10px;margin-top:28px;animation:fadeUp .4s ease both}.loading-pulse span{display:block;width:8px;height:8px;border-radius:50%;background:#00d4ff;animation:pulseDot 1.2s ease-in-out infinite}.loading-pulse span:nth-child(2){animation-delay:.2s}.loading-pulse span:nth-child(3){animation-delay:.4s}.header-controls{position:absolute;top:14px;right:18px;display:flex;align-items:center;gap:8px}.mute-btn{background:transparent;border:1px solid rgba(255,255,255,.15);border-radius:6px;color:#e2e8f08c;font-size:16px;width:34px;height:34px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.mute-btn:hover{border-color:#ffffff59;color:#e2e8f0e6;background:#ffffff0d}.rec-btn{background:transparent;border:1px solid rgba(255,60,60,.35);border-radius:6px;color:#ff7878bf;font-size:13px;letter-spacing:1px;padding:0 11px;height:34px;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s ease;white-space:nowrap}.rec-btn:hover{background:#ff3c3c12;border-color:#ff505099;color:#ff9696f2}.rec-btn--live{border-color:#ff2020;color:#ff4040;animation:recPulse 1.2s ease-in-out infinite}.rec-btn--saved{border-color:#39ff7873;color:#39ff78d9}.rec-btn--saved:hover{background:#39ff780f;border-color:#39ff78b3}.rec-btn--error{border-color:#ff50504d;color:#ff646480}.rec-dot{display:block;width:8px;height:8px;border-radius:50%;background:#ff2020;animation:blink .7s step-end infinite;flex-shrink:0}.rec-saved-group{display:flex;align-items:center;gap:4px}.rec-clear-btn{background:transparent;border:1px solid rgba(255,255,255,.12);border-radius:4px;color:#e2e8f066;width:22px;height:22px;font-size:13px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.rec-clear-btn:hover{border-color:#ff505080;color:#ff6464cc}@keyframes recPulse{0%,to{box-shadow:0 0 #ff1e1e00}50%{box-shadow:0 0 0 6px #ff1e1e2e}}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.intro-screen--go{animation:fadeOutDelay .6s 2.2s ease forwards}@keyframes fadeOutDelay{to{opacity:0;pointer-events:none}}@keyframes pulse25{0%,to{filter:drop-shadow(0 0 24px rgba(0,212,255,.85)) drop-shadow(0 0 55px rgba(0,212,255,.5))}50%{filter:drop-shadow(0 0 42px rgba(0,212,255,1)) drop-shadow(0 0 85px rgba(0,212,255,.7))}}@keyframes pulseRing{0%,to{transform:scale(1);opacity:.4}50%{transform:scale(1.06);opacity:.15}}@keyframes neonFlicker{0%,to{opacity:1}48%{opacity:1}50%{opacity:.88}52%{opacity:1}74%{opacity:1}75%{opacity:.82}76%{opacity:1}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes fillBar{0%{width:0}55%{width:var(--pct)}65%{width:calc(var(--pct) - 6%)}80%{width:var(--pct)}to{width:var(--pct)}}@keyframes drawPath{to{stroke-dashoffset:0}}@keyframes pulseDot{0%,to{transform:scale(.8);opacity:.4}50%{transform:scale(1.3);opacity:1}}@keyframes confettiFall{0%{top:-20px;transform:rotate(0) translate(0);opacity:1}to{top:160px;transform:rotate(calc(var(--rot))) translate(var(--dx));opacity:0}}@keyframes marqueeRoll{0%{transform:translate(0)}to{transform:translate(-50%)}}
