*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Tahoma,Arial,sans-serif}
body{background:#090b14;color:#fff;overflow:hidden}
.screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center}
.birthday-screen{background:radial-gradient(circle at 50% 35%,#4c1d95 0,#17102c 38%,#090b14 75%)}
.cake{font-size:90px;filter:drop-shadow(0 0 25px #ff5ca8);animation:float 2.4s ease-in-out infinite}
.eyebrow{color:#f6b7d7;font-size:15px}
h1{font-size:clamp(30px,7vw,58px);margin:10px 0}
.subtitle{font-size:20px;color:#ddd}
button{border:0;border-radius:14px;padding:15px 25px;font-size:17px;font-weight:700;cursor:pointer}
.primary{margin-top:25px;background:#ff4f9a;color:white;box-shadow:0 10px 30px #ff4f9a55}
.primary:hover{transform:translateY(-2px)}
.hidden{display:none!important}
.virus-screen{background:#020202;align-items:stretch;justify-content:flex-start;padding:0}
.terminal{width:min(900px,94vw);margin:auto;background:#050505;border:1px solid #292929;border-radius:10px;box-shadow:0 0 50px #ff003344;text-align:left;direction:ltr}
.terminal-top{height:42px;background:#151515;border-bottom:1px solid #333;display:flex;align-items:center;gap:8px;padding:0 14px;color:#777}
.terminal-top span{width:11px;height:11px;border-radius:50%;background:#555}
.terminal-top b{margin-left:auto;margin-right:8px;font:12px monospace}
.terminal-body{min-height:420px;padding:24px;color:#36ff70;font:15px/1.8 monospace;white-space:pre-wrap}
.glitch{animation:glitch .12s linear infinite}
.reveal-screen{background:radial-gradient(circle,#381126 0,#090b14 65%);position:relative}
.skull{font-size:85px;animation:pulse 1.2s infinite}
.reveal-screen h2{font-size:clamp(28px,7vw,54px);color:#ff547f;text-shadow:0 0 25px #ff174f66}
.big-cake{font-size:80px}
.small{color:#aaa;max-width:600px;line-height:1.8}
.secondary{margin-top:18px;background:#24263a;color:#fff}
#confetti{position:fixed;inset:0;pointer-events:none;z-index:10}
.conf{position:absolute;width:9px;height:14px;animation:fall 2.8s linear forwards}
@keyframes fall{to{transform:translateY(110vh) rotate(720deg);opacity:0}}
@keyframes float{50%{transform:translateY(-12px)}}
@keyframes pulse{50%{transform:scale(1.08)}}
@keyframes glitch{0%{transform:translate(2px)}50%{transform:translate(-2px)}100%{transform:translate(1px)}}
@media(max-width:600px){.terminal-body{min-height:360px;padding:15px;font-size:12px}.cake{font-size:72px}}
