:root{--paper:#f4f1e8;--ink:#1d2b2a;--mint:#3fbf9b;--mint2:#c9efe2;--coral:#ff6b57;--line:#1d2b2a22}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'IBM Plex Mono',monospace;
background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:28px 28px}
.disp{font-family:'Fraunces',serif}
.tag{font-size:10px;letter-spacing:.15em;text-transform:uppercase}
.card{background:#fffdf7;border:1.5px solid var(--ink);border-radius:14px;box-shadow:4px 4px 0 var(--ink)}
.btn{border:1.5px solid var(--ink);border-radius:999px;padding:6px 14px;background:#fffdf7;transition:transform .15s;font-size:13px}
.btn:hover{transform:rotate(-2deg) scale(1.04)}
.btn:disabled{opacity:.4;transform:none}
.btn-c{background:var(--coral);color:#fff}
.btn-m{background:var(--mint);color:#fff}
.spawn{animation:pulse 1.6s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 #ff6b5788}50%{box-shadow:0 0 0 14px #ff6b5700}}
.born{animation:born 1.4s ease-out}
@keyframes born{from{filter:blur(24px) saturate(0);transform:scale(.9)}to{filter:none;transform:none}}
.rise{animation:rise .5s both}
@keyframes rise{from{opacity:0;transform:translateY(12px)}}
.drop{border:2.5px dashed var(--ink);border-radius:18px}
.drop.over{background:var(--mint2);border-color:var(--mint)}
input[type=range]{accent-color:var(--coral)}