:root{--paper:#FAF7F2;--ink:#22223B;--red:#E63946;--green:#2A9D8F;}
body{background:var(--paper);color:var(--ink);font-family:'Fredoka',sans-serif;
background-image:radial-gradient(#22223B14 1px,transparent 1px);background-size:18px 18px;}
.mono{font-family:'JetBrains Mono',monospace}
.card{background:#fff;border:2px solid var(--ink);border-radius:1rem;box-shadow:6px 6px 0 var(--ink)}
.btn{border:2px solid var(--ink);border-radius:.8rem;box-shadow:3px 3px 0 var(--ink);font-weight:700;padding:.5rem 1rem;transition:transform .1s}
.btn:active{transform:translate(3px,3px);box-shadow:none}
.wobble{animation:wob .25s infinite}
@keyframes wob{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(1deg)}}
.bounce{animation:bnc 1.6s ease-in-out infinite}
@keyframes bnc{50%{transform:translateY(-6px)}}
.sweat{animation:drip 1.2s infinite}
@keyframes drip{0%{opacity:0;transform:translateY(0)}50%{opacity:1}100%{opacity:0;transform:translateY(10px)}}
.flicker{animation:flk .12s 8}
@keyframes flk{50%{opacity:.2;filter:invert(1)}}
.crt{background:#000;color:#3f3;text-shadow:0 0 6px #3f3}
.blink{animation:bl 1s steps(1) infinite}@keyframes bl{50%{opacity:0}}
.bigred{background:radial-gradient(circle at 35% 30%,#ff8a8a,#E63946 45%,#8b0f19);border:4px solid var(--ink);box-shadow:0 8px 0 #5a0a10,0 12px 20px #0005}
.bigred:active{transform:translateY(6px);box-shadow:0 2px 0 #5a0a10}
.cover{transform-origin:top;transition:transform .5s}
.cover.open{transform:perspective(500px) rotateX(-110deg)}
.stamp{border:3px solid var(--red);color:var(--red);transform:rotate(-12deg);opacity:.8}
.rise{animation:rise .5s both}@keyframes rise{from{opacity:0;transform:translateY(20px)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}