:root{--cream:#FFF8EC;--ink:#2b1d14;--orange:#FF7A00;--teal:#0f9d94;--pink:#ff5c8a}
body{margin:0;background:var(--cream);color:var(--ink);font-family:'Gaegu',cursive;font-size:19px;
background-image:radial-gradient(circle at 10% 10%,#ffe3c2 0,transparent 35%),radial-gradient(circle at 90% 80%,#d6f3ef 0,transparent 40%),repeating-linear-gradient(45deg,rgba(43,29,20,.025) 0 2px,transparent 2px 9px);min-height:100vh}
.display{font-family:'Bagel Fat One',cursive;letter-spacing:.5px}
.mono{font-family:'DM Mono',monospace}
.card{background:#fff;border:3px solid var(--ink);border-radius:18px;box-shadow:5px 6px 0 var(--ink)}
.dash{border:3px dashed var(--ink);border-radius:16px}
.chip{border:2px solid var(--ink);border-radius:999px;padding:2px 10px;background:#fff7e6}
.chip.locked{background:var(--teal);color:#fff}
.btn{border:3px solid var(--ink);border-radius:14px;box-shadow:3px 4px 0 var(--ink);transition:transform .1s,box-shadow .1s;background:#fff}
.btn:active{transform:translate(3px,4px);box-shadow:0 0 0 var(--ink)}
.forge{background:var(--orange);color:#fff}
.shake{animation:shake .45s}
@keyframes shake{0%,100%{transform:rotate(0)}20%{transform:rotate(-4deg)}40%{transform:rotate(4deg)}60%{transform:rotate(-2deg)}80%{transform:rotate(2deg)}}
.pop{animation:pop .4s cubic-bezier(.3,1.6,.5,1) both}
@keyframes pop{from{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}
.shimmer{background:linear-gradient(110deg,#ffe8cc 30%,#fff6ea 50%,#ffe8cc 70%);background-size:200% 100%;animation:sh 1.2s linear infinite}
@keyframes sh{to{background-position:-200% 0}}
.spin{animation:spin .6s}
@keyframes spin{to{transform:rotate(360deg)}}
.squiggle{text-decoration:underline wavy var(--orange);text-underline-offset:8px;text-decoration-thickness:3px}
input[type=range]{accent-color:var(--orange)}