:root{--paper:#fdfaf3;--ink:#1d1a16;--stamp:#c2362b;--blue:#2b5d9b;--desk:#3a2f27}
body{margin:0;font-family:'Courier Prime',monospace;color:var(--ink);
background:radial-gradient(circle at 20% 10%,#5a4637 0,transparent 50%),repeating-linear-gradient(90deg,#3a2f27 0 22px,#352a23 22px 44px);min-height:100vh}
.display{font-family:'Bowlby One',sans-serif;letter-spacing:-.01em}
.hand{font-family:'Caveat',cursive}
.paper{background:var(--paper);box-shadow:0 18px 40px rgba(0,0,0,.45);position:relative}
.zig{position:relative}
.zig:after{content:"";position:absolute;left:0;right:0;bottom:-12px;height:12px;
background:linear-gradient(-45deg,transparent 8px,var(--paper) 0),linear-gradient(45deg,transparent 8px,var(--paper) 0);background-size:16px 16px;background-position:left bottom}
.zigtop:before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px;
background:linear-gradient(135deg,transparent 8px,var(--paper) 0),linear-gradient(-135deg,transparent 8px,var(--paper) 0);background-size:16px 16px}
.dash{border-top:2px dashed #b9b1a1}
.blank{border:none;border-bottom:3px solid var(--ink);background:transparent;outline:none}
.btn{border:2px solid var(--ink);padding:.5rem 1rem;font-weight:700;background:var(--paper);transition:transform .1s,box-shadow .1s;box-shadow:3px 3px 0 var(--ink)}
.btn:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}
.btn:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}
.btn-ink{background:var(--ink);color:var(--paper)}
.btn-red{background:var(--stamp);color:#fff;border-color:var(--stamp);box-shadow:3px 3px 0 #6e1a13}
.chip{border:1.5px dashed var(--ink);padding:.15rem .6rem;font-size:.85rem}
.chip.on,.chip:hover{background:var(--ink);color:var(--paper)}
.blueprint{background-color:#eaf2fb;background-image:linear-gradient(#c9dcf0 1px,transparent 1px),linear-gradient(90deg,#c9dcf0 1px,transparent 1px);background-size:14px 14px;color:#173a63;border:1.5px solid var(--blue)}
.blueprint td{padding:.3rem .5rem;border-bottom:1px solid #b6cde6;vertical-align:top;font-size:.82rem}
.blueprint td:first-child{font-weight:700;white-space:nowrap;width:36%;text-transform:uppercase;font-size:.72rem}
.stamp{color:var(--stamp);border:4px double var(--stamp);font-family:'Bowlby One';padding:.2rem .8rem;transform:rotate(-12deg);display:inline-block;opacity:.85;animation:stamp .5s ease-out}
@keyframes stamp{0%{transform:rotate(-12deg) scale(3);opacity:0}100%{transform:rotate(-12deg) scale(1);opacity:.85}}
.printer{animation:feed 1.2s steps(6) infinite}
@keyframes feed{0%{transform:translateY(-40px)}100%{transform:translateY(0)}}
.reveal{animation:rv .5s ease-out both}
@keyframes rv{from{opacity:0;transform:translateY(8px)}to{opacity:1}}
.shimmer{background:linear-gradient(90deg,#eee6d6 25%,#f8f2e6 50%,#eee6d6 75%);background-size:200% 100%;animation:sh 1.2s infinite}
@keyframes sh{to{background-position:-200% 0}}
.barcode{height:50px;background:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 4px,var(--ink) 4px 7px,transparent 7px 8px,var(--ink) 8px 9px,transparent 9px 12px)}
@media print{body{background:#fff}.noprint{display:none!important}.paper{box-shadow:none}}