:root{--paper:#f4ead5;--ink:#1b1410;--red:#a3121b;--gold:#d9a521;--curtain:#6e0b12}
body{background:var(--paper);color:var(--ink);font-family:'Fraunces',serif;
background-image:radial-gradient(rgba(27,20,16,.07) 1px,transparent 1px),linear-gradient(180deg,#f8f0dd,#efe1c2);
background-size:14px 14px,100% 100%;min-height:100vh}
.display{font-family:'Rubik Mono One',sans-serif;letter-spacing:-.02em}
.mono{font-family:'Courier Prime',monospace}
.brut{border:3px solid var(--ink);box-shadow:5px 5px 0 var(--ink);background:#fffaf0}
.brut-btn{border:3px solid var(--ink);box-shadow:3px 3px 0 var(--ink);transition:transform .1s,box-shadow .1s;font-weight:900}
.brut-btn:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}
.brut-btn:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--ink)}
.brut-btn:disabled{opacity:.5;cursor:not-allowed}
.tilt{transition:transform .2s}
.tilt:hover{transform:rotate(-1.5deg) translateY(-3px)}
.stage{border:14px solid var(--curtain);border-image:repeating-linear-gradient(90deg,#6e0b12 0 12px,#a3121b 12px 24px) 14;
background:radial-gradient(ellipse at top,#3a2a1c,#120c08);}
.wobble{animation:wob 3s ease-in-out infinite;display:inline-block}
@keyframes wob{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}
.rise{animation:rise .5s both}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.confetti{position:fixed;top:-10px;width:10px;height:14px;z-index:99;animation:fall 1.6s linear forwards;pointer-events:none}
@keyframes fall{to{transform:translateY(105vh) rotate(720deg)}}
.dots span{animation:blink 1.2s infinite}
.dots span:nth-child(2){animation-delay:.2s}.dots span:nth-child(3){animation-delay:.4s}
@keyframes blink{0%,100%{opacity:.2}50%{opacity:1}}
input,textarea,select{border:2px solid var(--ink);background:#fffdf6;padding:.5rem;width:100%;font-family:'Courier Prime',monospace}
input[type=range]{padding:0;accent-color:var(--red)}
img.pix{image-rendering:pixelated}