:root{--bg-1:#c9c2b3;--bg-2:#a39a87;--case:#e9e4d8;--paper:#fafaf3;--paper-edge:#d9d5c3;--ink:#222018;--ink-faint:#6a6758;--accent:#d64527;--accent-hi:#ef5f3e;--accent-shadow:#6a1d0e;--cork-1:#c09669;--cork-2:#8b6239}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Inter,system-ui,sans-serif;background:radial-gradient(1200px 700px at 50% 20%,#d8d2c1 0%,var(--bg-1) 45%,var(--bg-2) 100%);color:#2a271f;overflow:hidden;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:radial-gradient(rgba(0,0,0,.05) 1px,transparent 1.2px),radial-gradient(rgba(255,255,255,.05) 1px,transparent 1.2px);background-size:3px 3px,5px 5px;mix-blend-mode:multiply;opacity:.6;z-index:1}.stage{position:relative;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:60px 20px 40px;z-index:2}.scene{margin-top:auto;position:relative;width:clamp(380px,46vw,760px);display:flex;flex-direction:column;align-items:center}.brand{position:fixed;top:28px;left:32px;display:flex;align-items:center;gap:10px;font-family:Space Mono,monospace;font-size:12px;letter-spacing:.22em;color:#4a4638;text-transform:uppercase;z-index:5}.brand-dot{width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#ff8869,var(--accent) 60%,var(--accent-shadow));box-shadow:0 0 8px #d6452780,inset 0 1px 2px #fff6;animation:pulse 2.4s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 6px #d6452759,inset 0 1px 2px #fff6}50%{box-shadow:0 0 14px #d64527bf,inset 0 1px 2px #fff6}}.time{position:fixed;top:28px;right:32px;font-family:Space Mono,monospace;font-size:12px;letter-spacing:.18em;color:#4a4638;z-index:5}.paper-track{position:absolute;left:50%;transform:translate(-50%);bottom:74%;width:62%;height:0;overflow:hidden;pointer-events:none;z-index:2;transition:height .2s linear}.paper-track.animating{transition:none}.paper-track.draggable{pointer-events:auto;cursor:grab}.paper-track.draggable:active{cursor:grabbing}.receipt{position:absolute;top:0;left:50%;transform:translate(-50%);width:100%;background:var(--paper);color:var(--ink);font-family:Space Mono,monospace;font-size:11.5px;line-height:1.5;padding:18px 16px 10px;box-shadow:inset 0 1px #0000000f,-6px 0 10px -6px #0000002e,6px 0 10px -6px #0000002e;background-image:repeating-linear-gradient(0deg,rgba(0,0,0,.015) 0 1px,transparent 1px 3px),radial-gradient(rgba(0,0,0,.04) 1px,transparent 1.2px);background-size:auto,3px 3px}.receipt:before{content:"";position:absolute;left:0;right:0;top:-8px;height:10px;background:radial-gradient(circle at 5px 10px,var(--paper) 5px,transparent 5.5px) 0 0 / 10px 10px repeat-x;filter:drop-shadow(0 -2px 2px rgba(0,0,0,.18));pointer-events:none}.receipt .hdr{text-align:center}.receipt .logo{font-family:VT323,monospace;font-size:26px;letter-spacing:.06em;line-height:1;margin:2px 0 6px}.receipt .logo .c{color:var(--accent)}.receipt .sub{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint)}.receipt .meta{display:flex;justify-content:space-between;font-size:10.5px;color:var(--ink-faint);margin-top:8px}.receipt hr{border:0;border-top:1px dashed rgba(0,0,0,.35);margin:8px 0}.receipt .row{display:flex;justify-content:space-between;gap:8px;padding:1px 0;align-items:baseline}.receipt .row .name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.receipt .row .qty{width:auto;text-align:center;color:var(--ink-faint);font-size:10px;letter-spacing:.06em;padding:0 4px}.receipt .row .price{width:64px;text-align:right;font-weight:700}.receipt .subrow{font-size:9px;color:var(--ink-faint);padding:0 0 3px;letter-spacing:.02em}.receipt .tot{display:flex;justify-content:space-between;font-size:14px;font-weight:700;padding:3px 0 2px}.receipt .totline{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-faint)}.receipt .thanks{text-align:center;font-family:VT323,monospace;font-size:20px;letter-spacing:.1em;margin-top:8px}.receipt .barcode{display:flex;justify-content:center;gap:1px;margin:8px 0 4px;height:40px}.receipt .barcode i{display:block;background:#1a1912;height:100%}.receipt .bc-num{text-align:center;font-size:10.5px;letter-spacing:.3em;color:var(--ink)}.receipt .footer{text-align:center;font-size:9.5px;color:var(--ink-faint);margin-top:5px;letter-spacing:.08em}.printer{position:relative;width:100%;aspect-ratio:520 / 360;z-index:3;filter:drop-shadow(0 30px 40px rgba(0,0,0,.28))}.lid{position:absolute;left:4%;right:4%;top:0;height:26%;background:linear-gradient(180deg,#f4efe3,#e7e1d2 55%,#cfc8b6);border-radius:26px 26px 8px 8px/40px 40px 8px 8px;box-shadow:inset 0 2px #ffffffd9,inset 0 -2px #0000001a,inset 0 -12px 18px #00000014}.lid:before{content:"";position:absolute;left:10%;right:10%;bottom:-1px;height:2px;background:linear-gradient(90deg,transparent,rgba(0,0,0,.25) 20%,rgba(0,0,0,.25) 80%,transparent)}.slot{position:absolute;left:50%;top:calc(26% - 6px);transform:translate(-50%);width:62%;height:14px;background:linear-gradient(180deg,#0a0907,#1c1a15,#0a0907);border-radius:3px;box-shadow:0 2px #ffffff73,inset 0 2px 3px #000000e6,inset 0 -1px #ffffff1a;overflow:hidden;z-index:6}.slot:before{content:"";position:absolute;top:2px;right:4px;bottom:2px;left:4px;background:#000;border-radius:1px;box-shadow:inset 0 2px 6px #000000e6}.slot:after{content:"";position:absolute;left:4px;right:4px;bottom:2px;height:4px;background:linear-gradient(90deg,#d5cfbd 0 4px,transparent 4px 8px) 0 0 / 8px 4px repeat-x;opacity:.8;filter:drop-shadow(0 1px 0 rgba(0,0,0,.3))}.body{position:absolute;left:0;right:0;top:24%;bottom:0;background:linear-gradient(180deg,var(--case) 0%,#d9d2c0 55%,#bdb6a3 100%);border-radius:12px 12px 22px 22px;box-shadow:inset 0 2px #ffffffd9,inset 0 -6px #0000001f,inset 0 -24px 40px #00000014;overflow:visible}.bezel{position:absolute;right:6%;top:32%;width:34%;height:32%;background:linear-gradient(180deg,#2a2822,#0e0d0a);border-radius:8px;padding:8px;box-shadow:inset 0 2px 3px #000c,0 1px #ffffff80;z-index:4}.lcd{width:100%;height:100%;background:linear-gradient(180deg,#9ab87a,#7b9a5c);background-image:linear-gradient(180deg,#9ab87a,#7b9a5c),repeating-linear-gradient(0deg,rgba(0,0,0,.08) 0 2px,transparent 2px 3px);background-blend-mode:multiply;border-radius:3px;box-shadow:inset 0 1px 2px #00000080,inset 0 0 0 1px #0006,0 0 10px #8aa86a59;font-family:VT323,monospace;color:#1a2410;padding:6px 8px;font-size:14px;line-height:1.1;overflow:hidden}.lcd .lcd-top{display:flex;justify-content:space-between;font-size:10px;opacity:.85}.lcd .lcd-big{font-size:18px;letter-spacing:.06em;margin-top:2px}.lcd .lcd-bar{margin-top:4px;height:6px;background:#00000026;border:1px solid rgba(0,0,0,.4);position:relative;overflow:hidden}.lcd .lcd-bar i{display:block;height:100%;width:0%;background:#1a2410;transition:width .2s ease}.lcd .blink{animation:blink 1s steps(2,end) infinite}@keyframes blink{50%{opacity:0}}.panel{position:absolute;left:6%;top:32%;width:44%;height:48%;display:flex;flex-direction:column;gap:10px}.vent{background:#1b1a15;border-radius:4px;box-shadow:inset 0 2px 3px #000c,inset 0 -1px #ffffff14,0 1px #fff9;padding:6px;flex:1;display:grid;grid-template-columns:1fr;gap:3px;align-content:space-evenly}.vent i{display:block;height:2px;background:linear-gradient(90deg,transparent,#3a3832 10%,#3a3832 90%,transparent);border-radius:1px}.leds{display:flex;gap:22px;align-items:flex-start;padding:0 4px}.led-wrap{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px}.led{width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fff8,#555 70%,#111);box-shadow:inset 0 -2px 3px #00000080,0 1px #fff9}.led.power{background:radial-gradient(circle at 30% 30%,#c6ffb3,#5ec94a 55%,#1e5a16);box-shadow:0 0 8px #5ec94ab3,inset 0 -2px 3px #0006,0 1px #ffffff80}.led.ready{background:radial-gradient(circle at 30% 30%,#fff2b3,#e8c24a 55%,#6a4f10);box-shadow:0 0 8px #e8c24a8c,inset 0 -2px 3px #0006,0 1px #ffffff80}.led.busy{background:radial-gradient(circle at 30% 30%,#b9ccff,#4870d8 55%,#13224a);box-shadow:inset 0 -2px 3px #00000080;opacity:.35}.led.busy.on{box-shadow:0 0 10px #4870d8cc,inset 0 -2px 3px #00000059;opacity:1;animation:busyBlink .5s steps(2,end) infinite}@keyframes busyBlink{50%{opacity:.45}}.led-label{font-family:Space Mono,monospace;font-size:8px;letter-spacing:.18em;color:#4a4638;text-transform:uppercase}.plate{position:absolute;left:50%;bottom:6%;transform:translate(-50%);padding:4px 14px 5px;background:linear-gradient(180deg,#f1ecdc,#c9c1ad);border-radius:3px;box-shadow:inset 0 1px #ffffffb3,inset 0 -1px #00000040,0 1px #fff6;font-family:Space Mono,monospace;font-size:10px;letter-spacing:.28em;color:#3a3628;text-transform:uppercase;z-index:5}.plate:before,.plate:after{content:"";position:absolute;top:50%;width:4px;height:4px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fff,#777 60%,#2a2a2a);transform:translateY(-50%);box-shadow:inset 0 -1px 1px #0006}.plate:before{left:4px}.plate:after{right:4px}.foot{position:absolute;bottom:-6px;width:22%;height:10px;background:linear-gradient(180deg,#4a463c,#1f1d18);border-radius:0 0 6px 6px;box-shadow:0 6px 10px #0000004d}.foot.l{left:6%}.foot.r{right:6%}.btn-row{position:absolute;right:6%;top:66%;width:34%;height:16%;display:flex;align-items:center;justify-content:center;gap:14px;z-index:4}.btn-slot{display:flex;flex-direction:column;align-items:center;gap:3px}.btn-slot .btn-slot-label{font-family:Space Mono,monospace;font-size:7.5px;letter-spacing:.24em;color:#3a3628;text-transform:uppercase;opacity:.7}.mini-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;cursor:pointer;width:32px;height:32px;border-radius:50%;background:radial-gradient(circle at 32% 30%,#4a463c,#2a2620 60%,#0f0e0b);box-shadow:inset 0 1px #ffffff38,inset 0 -1px 2px #0009,0 1px 1px #00000059;color:#f0ead8;display:flex;align-items:center;justify-content:center;transition:transform .08s ease,box-shadow .08s ease,filter .08s ease;outline:none;padding:0}.mini-btn:hover:not(:disabled){filter:brightness(1.08)}.mini-btn:active:not(:disabled),.mini-btn.pressed{transform:translateY(1px);box-shadow:inset 0 1px #fff3,inset 0 2px 4px #0000008c,0 0 #00000059}.mini-btn:disabled{cursor:default;filter:saturate(.5) brightness(.75)}.mini-btn svg{width:14px;height:14px}.mini-btn.accent{background:radial-gradient(circle at 32% 30%,var(--accent-hi) 0%,var(--accent) 55%,#8e2a16 100%);color:#fff;box-shadow:inset 0 1px #ffffff59,inset 0 -1px 2px #00000059,0 1px 1px #00000059,0 0 4px #d6452740}.mini-btn.accent:active:not(:disabled),.mini-btn.accent.pressed{box-shadow:inset 0 1px #ffffff40,inset 0 2px 3px #00000059,0 0 #00000059}.archive{position:fixed;left:24px;bottom:24px;z-index:20;width:clamp(300px,24vw,460px);aspect-ratio:320 / 440;padding:104px 18px 30px;--drop-top: 104px;--drop-bottom: 30px;--drop-side: 18px;border-radius:10px;background:radial-gradient(circle at 30% 20%,#ffffff1f,#0000000d 50%),repeating-linear-gradient(42deg,rgba(0,0,0,.04) 0 2px,transparent 2px 4px),repeating-linear-gradient(-42deg,rgba(0,0,0,.03) 0 2px,transparent 2px 4px),linear-gradient(135deg,var(--cork-1) 0%,var(--cork-2) 100%);box-shadow:inset 0 2px 6px #ffffff2e,inset 0 -4px 10px #0000002e,0 18px 30px #00000059,0 0 0 6px #3a2b1a,0 0 0 9px #1b130a;transition:box-shadow .2s ease,transform .2s ease}.archive.drop-target{box-shadow:inset 0 0 0 3px var(--accent),inset 0 2px 6px #ffffff2e,0 18px 30px #0006,0 0 0 6px #3a2b1a,0 0 0 9px #1b130a;transform:translateY(-2px)}.archive-label{position:absolute;bottom:8px;left:14px;font-family:Space Mono,monospace;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#fff0dcd1;display:inline-flex;align-items:center;gap:6px}.archive-count{position:absolute;bottom:8px;right:14px;font-family:Space Mono,monospace;font-size:10px;letter-spacing:.18em;color:#fff0dcd1}.archive-empty{position:absolute;inset:var(--drop-top) var(--drop-side) var(--drop-bottom);display:flex;align-items:center;justify-content:center;text-align:center;color:#fff0dc80;font-family:Space Mono,monospace;font-size:10px;letter-spacing:.2em;line-height:1.7;border:1px dashed rgba(255,240,220,.25);border-radius:6px;pointer-events:none}.archive-pin{position:absolute;width:110px;filter:drop-shadow(0 4px 6px rgba(0,0,0,.3));pointer-events:none;transform:translate(-50%,-50%) rotate(var(--rot));animation:pinDrop .35s cubic-bezier(.2,.8,.3,1.2) both}.archive-pin.rehydrated{animation:none}@keyframes pinDrop{0%{opacity:0;transform:translate(-50%,calc(-50% - 10px)) rotate(var(--rot)) scale(1.12)}60%{opacity:1;transform:translate(-50%,calc(-50% + 4px)) rotate(var(--rot)) scale(.98)}to{opacity:1;transform:translate(-50%,-50%) rotate(var(--rot)) scale(1)}}.chalkboard{position:absolute;left:10px;right:10px;top:10px;height:80px;padding:8px 14px 10px;display:flex;flex-direction:column;justify-content:center;align-items:center;background:radial-gradient(ellipse at 50% 0%,#384528,#22301c 55%,#17211a);background-image:repeating-linear-gradient(180deg,rgba(255,255,255,.02) 0 1px,transparent 1px 3px),radial-gradient(ellipse at 50% 0%,#384528,#22301c 55%,#17211a);border-radius:4px;box-shadow:inset 0 0 30px #0009,inset 0 2px #ffffff0d,inset 0 -2px #0000004d,0 2px 3px #0000004d,0 0 0 3px #785a3280,0 0 0 5px #3c2814b3}.chalk-label{font-family:Space Mono,monospace;font-size:9px;letter-spacing:.3em;color:#fff0dc8c;text-transform:uppercase;margin-bottom:2px}.chalk-price{position:relative;font-family:Caveat,cursive;font-size:clamp(28px,3.2vw,40px);line-height:1;color:#f0ebdceb;letter-spacing:.02em;text-shadow:0 0 2px rgba(255,255,255,.25);white-space:nowrap;min-height:42px;display:flex;align-items:center}.chalk-value{display:inline-block;animation:chalkWrite .8s cubic-bezier(.35,.1,.45,1) both}.chalk-value.erasing{animation:chalkErase .45s ease-out forwards}@keyframes chalkWrite{0%{clip-path:inset(0 100% 0 0);opacity:.25;filter:blur(.6px)}to{clip-path:inset(0 0 0 0);opacity:1;filter:blur(0)}}@keyframes chalkErase{0%{clip-path:inset(0 0 0 0);opacity:1;filter:blur(0)}to{clip-path:inset(0 0 0 100%);opacity:.15;filter:blur(.8px)}}.archive-pin .push{position:absolute;left:50%;top:-4px;transform:translate(-50%);width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#ff8b6e,var(--accent) 55%,var(--accent-shadow) 100%);box-shadow:0 2px #00000059,inset 0 1px 1px #fff9,0 0 6px #d6452780;z-index:2}.archive-pin .push:after{content:"";position:absolute;left:3px;top:2px;width:4px;height:4px;border-radius:50%;background:#ffffffb3}.archive-pin .stub{background:var(--paper);box-shadow:0 4px 10px #00000038;border-radius:2px;font-family:Space Mono,monospace;color:var(--ink);overflow:hidden;position:relative;background-image:repeating-linear-gradient(0deg,rgba(0,0,0,.015) 0 1px,transparent 1px 3px)}.archive-pin .stub .clone{transform-origin:0 0;pointer-events:none;position:relative}.archive-pin .clone .receipt{position:static;left:auto;top:auto;transform:none;margin:0;padding:14px 12px 10px;box-shadow:none}.archive-pin .clone .receipt:before{display:none}.help-btn{position:fixed;right:24px;bottom:24px;z-index:30;width:42px;height:42px;border-radius:50%;border:0;cursor:pointer;background:radial-gradient(circle at 32% 28%,#4a463c,#2a2620 60%,#0f0e0b);color:#f0ead8;box-shadow:inset 0 1px #ffffff38,inset 0 -1px 2px #0009,0 4px 10px #0000004d,0 1px #00000026;font-family:VT323,monospace;font-size:22px;font-weight:700;display:flex;align-items:center;justify-content:center;transition:transform .08s ease,filter .08s ease}.help-btn:hover{filter:brightness(1.1)}.help-btn:active{transform:translateY(1px)}.help-btn:after{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:50%;background:radial-gradient(circle at 30% 22%,#ffffff40,#fff0 50%);pointer-events:none}.help-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#14110a8c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:40px 20px;animation:helpFade .18s ease-out}@keyframes helpFade{0%{opacity:0}to{opacity:1}}.help-modal{position:relative;max-width:560px;width:100%;max-height:min(86vh,720px);overflow-y:auto;background:var(--paper);background-image:repeating-linear-gradient(0deg,rgba(0,0,0,.015) 0 1px,transparent 1px 3px),radial-gradient(rgba(0,0,0,.04) 1px,transparent 1.2px);background-size:auto,3px 3px;color:var(--ink);font-family:Space Mono,monospace;font-size:13px;line-height:1.75;padding:34px 32px 28px;border-radius:4px;box-shadow:0 30px 60px #0006,0 0 0 1px #0000000f;animation:helpPop .22s cubic-bezier(.2,.8,.3,1.1)}@keyframes helpPop{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1)}}.help-modal:before{content:"";position:absolute;left:0;right:0;top:-8px;height:10px;background:radial-gradient(circle at 5px 10px,var(--paper) 5px,transparent 5.5px) 0 0 / 10px 10px repeat-x;filter:drop-shadow(0 -2px 2px rgba(0,0,0,.15));pointer-events:none}.help-modal h2{font-family:VT323,monospace;font-size:32px;line-height:1;margin:0 0 4px;padding:0;text-align:center;color:var(--ink);letter-spacing:.04em}.help-modal h2 .c{color:var(--accent)}.help-modal .subtitle{text-align:center;margin-bottom:18px;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint)}.help-modal hr{border:0;border-top:1px dashed rgba(0,0,0,.35);margin:14px 0}.help-modal h3{font-family:Space Mono,monospace;font-size:11px;letter-spacing:.22em;color:var(--accent);text-transform:uppercase;margin:16px 0 6px;padding:0}.help-modal p{margin:4px 0}.help-modal ol{margin:6px 0 10px;padding-left:20px}.help-modal ol li{margin:3px 0}.help-modal code{background:#00000012;padding:1px 5px;border-radius:3px;font-size:12px}.help-modal .close{position:absolute;top:10px;right:12px;width:30px;height:30px;border:0;background:transparent;cursor:pointer;font-family:Space Mono,monospace;font-size:18px;color:var(--ink-faint);display:flex;align-items:center;justify-content:center;border-radius:50%}.help-modal .close:hover{color:var(--accent);background:#0000000a}.help-modal .os-tag{display:inline-block;font-family:Space Mono,monospace;font-size:9px;letter-spacing:.18em;color:#fff;background:var(--accent);padding:1px 8px 2px;border-radius:10px;vertical-align:1px}.help-modal p.os-note{margin:6px 0 10px;padding:8px 12px;background:#d645270f;border-left:2px solid var(--accent);border-radius:2px;line-height:1.65}.shred{position:fixed;width:4px;height:10px;background:var(--paper);z-index:24;pointer-events:none;will-change:transform,opacity;box-shadow:0 1px 2px #00000026}
