:root{--navy:#0b2a5b;--ink:#0a1830;--gold:#d9a441;--paper:#f3f1ea;--green:#1f7a4d;--red:#b3261e;--blue:#1d5fa8}
body{margin:0;font-family:'Fraunces',serif;background:var(--paper);color:var(--ink);
background-image:radial-gradient(circle at 10% 0%,rgba(217,164,65,.12),transparent 40%),repeating-linear-gradient(45deg,rgba(11,42,91,.025) 0 2px,transparent 2px 14px)}
.mono{font-family:'IBM Plex Mono',monospace;font-variant-numeric:tabular-nums}
.card{background:#fffdf8;border:1px solid #e3ddcc;border-radius:14px;box-shadow:0 2px 0 #e3ddcc,0 10px 30px -18px rgba(11,42,91,.4)}
.rise{animation:rise .5s both}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.shake{animation:shake .5s}
@keyframes shake{0%,100%{transform:none}20%,60%{transform:translateX(-10px)}40%,80%{transform:translateX(10px)}}
.btn{background:var(--navy);color:#fff;border-radius:10px;padding:.55rem 1rem;font-weight:800;transition:transform .1s}
.btn:active{transform:scale(.96)}
.btn-gold{background:var(--gold);color:var(--ink)}
.inp{border:1px solid #d6cfbb;border-radius:10px;padding:.55rem .75rem;background:#fff;width:100%;font-family:'IBM Plex Mono',monospace}
.confetti{position:fixed;top:-10px;width:8px;height:14px;animation:fall 2.6s linear forwards;z-index:60}
@keyframes fall{to{transform:translateY(110vh) rotate(720deg)}}
@media print{header,nav,footer,.noprint{display:none!important}}