*{box-sizing:border-box}html{background:#271b2e}body{margin:0;min-height:100vh}
.retro-dispenser{--retro-desktop:#604574;--retro-tint:#E1CEF6;--retro-paper:#F3E7FF;--retro-panel:#CBB5EF;--retro-title:#513477;--retro-title-ink:#fff;--retro-ink:#182525;--retro-muted:#344747;--retro-link:#513477;--retro-accent:#FFBBD9;--retro-accent-ink:#182525;--retro-edge-light:#fff;--retro-edge-dark:#52505B;color:var(--retro-ink);background-color:var(--retro-desktop);background-image:repeating-linear-gradient(0deg,transparent 0 3px,#0000000c 3px 4px);font-family:Verdana,Arial,sans-serif}
.retro-dispenser .skip-link{position:absolute;top:-100px;left:10px;z-index:100;padding:12px;background:#fff;color:#000080;font:bold 12px 'Courier New',monospace}.retro-dispenser .skip-link:focus{top:10px}
.retro-dispenser .topbar{max-width:1000px;margin:22px auto 0;padding:12px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--retro-panel);border:2px solid;border-color:var(--retro-edge-light) var(--retro-edge-dark) var(--retro-edge-dark) var(--retro-edge-light);box-shadow:5px 5px #0005}
.retro-dispenser .logo{color:var(--retro-ink);text-decoration:none;font:900 clamp(19px,3vw,29px)/1.2 'Courier New',monospace;letter-spacing:-1.5px}.retro-dispenser .logo span{color:var(--retro-link)}
.retro-dispenser .vibe-button{min-height:38px;padding:7px 11px;border:3px solid;border-radius:0;box-shadow:1px 1px #222;border-color:var(--retro-edge-light) var(--retro-edge-dark) var(--retro-edge-dark) var(--retro-edge-light);background:var(--retro-panel);color:var(--retro-ink);font:bold 11px/1.3 Verdana,sans-serif;cursor:pointer}
.retro-dispenser .retro-menu{max-width:1000px;margin:auto;display:flex;align-items:center;gap:22px;flex-wrap:wrap;padding:10px 18px;background:var(--retro-tint);border:1px solid var(--retro-edge-dark);font:13px 'Courier New',monospace}.retro-dispenser .retro-menu a{color:var(--retro-link);text-underline-offset:3px}.retro-dispenser .retro-menu span{margin-left:auto;font-size:11px;color:var(--retro-muted)}
.dispenser-desktop{width:min(calc(100% - 32px),1000px);margin:0 auto 30px;padding:clamp(18px,4vw,44px);background:var(--retro-tint);border:1px solid var(--retro-edge-dark);box-shadow:5px 5px #0005}
.program-window{max-width:850px;margin:auto;background:var(--retro-panel);border:2px solid;border-color:var(--retro-edge-light) var(--retro-edge-dark) var(--retro-edge-dark) var(--retro-edge-light);box-shadow:7px 7px #0004}
.program-titlebar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:3px;padding:8px 10px;background:var(--retro-title);color:var(--retro-title-ink);font:bold 12px/1.4 'Courier New',monospace}.program-titlebar span:last-child{font-weight:normal;letter-spacing:3px}
.program-toolbar{display:flex;gap:23px;padding:7px 12px;background:var(--retro-panel);border:1px solid var(--retro-edge-dark);border-width:1px 0;font:10px/1.3 'Courier New',monospace}
.program-content{padding:clamp(16px,4vw,34px);background:var(--retro-paper)}
.dispenser-intro{text-align:center}.program-kicker{margin:0 0 12px;color:var(--retro-muted);font:bold 10px/1.5 'Courier New',monospace;letter-spacing:1px}.dispenser-intro h1{margin:0;color:var(--retro-ink);font:900 clamp(31px,6vw,54px)/.98 'Courier New',monospace;letter-spacing:-3px}.dispenser-intro>p:last-child{max-width:590px;margin:15px auto 21px;color:var(--retro-muted);font:14px/1.6 Verdana,sans-serif}
.machine{max-width:670px;margin:auto}.machine-face{position:relative;padding:18px 22px 25px;background:var(--retro-panel);border:3px solid;border-color:var(--retro-edge-light) var(--retro-edge-dark) var(--retro-edge-dark) var(--retro-edge-light);box-shadow:5px 5px #0003}.machine-label{display:grid;grid-template-columns:auto 1fr;align-items:end;column-gap:9px;margin-bottom:15px;font-family:'Courier New',monospace}.machine-label span{grid-row:1/3;padding:6px 8px;background:var(--retro-accent);border:2px solid var(--retro-ink);font-weight:bold}.machine-label strong{font-size:20px;letter-spacing:2px}.machine-label small{font-size:9px;color:var(--retro-muted)}
.machine-display{display:flex;align-items:center;gap:9px;min-height:45px;padding:10px 12px;background:#151817;color:#78ff87;border:3px inset #aaa;box-shadow:inset 0 0 12px #000;font:bold 12px/1.4 'Courier New',monospace;text-shadow:0 0 5px #48ff59}.display-light{width:9px;height:9px;flex:0 0 auto;background:#48ff59;box-shadow:0 0 8px #48ff59}.ticket-slot{height:24px;margin:19px auto 0;padding:6px;background:#181818;border:3px inset #888}.ticket-slot span{display:block;height:5px;background:#050505}
.print-status{display:flex;align-items:center;gap:9px;min-height:42px;padding:9px 11px;background:var(--retro-tint);border:2px inset var(--retro-edge-light)}.status-light{width:10px;height:10px;flex:0 0 auto;background:#35a84a;border:1px solid var(--retro-edge-dark);box-shadow:inset 1px 1px #ffffff88}.print-status p{margin:0;font:bold 11px/1.5 'Courier New',monospace}
.ticket-wrap[hidden]{display:none}.ticket-wrap{animation:ticket-out .48s steps(6,end) both}.quest-ticket{position:relative;width:min(calc(100% - 36px),540px);margin:0 auto;padding:24px clamp(18px,5vw,34px) 30px;background:#fff9dc;color:#251f1c;border:1px solid #c4b787;border-top:0;box-shadow:3px 5px #0003;font-family:'Courier New',monospace;filter:drop-shadow(0 6px 4px #0002)}.quest-ticket::before,.quest-ticket::after{content:"";position:absolute;left:0;right:0;height:8px;background:linear-gradient(135deg,transparent 5px,#fff9dc 0) 0 0/10px 10px repeat-x}.quest-ticket::before{top:-5px;transform:rotate(180deg)}.quest-ticket::after{bottom:-8px}.ticket-brand{text-align:center;font-weight:900;font-size:clamp(18px,4vw,25px);letter-spacing:-1px}.ticket-number{text-align:center;margin:5px 0 13px;font:bold 12px/1.4 'Courier New',monospace}.ticket-rule{overflow:hidden;white-space:nowrap;text-align:center;letter-spacing:1px}.ticket-fields{margin:14px 0}.ticket-fields>div{display:grid;grid-template-columns:105px minmax(0,1fr);gap:8px;padding:6px 0;border-bottom:1px dotted #8a806b}.ticket-fields dt{font-weight:bold}.ticket-fields dd{margin:0;overflow-wrap:anywhere}.ticket-fields>div:first-child dd{font-weight:900}.ticket-description{margin:16px 0;font:14px/1.55 Verdana,sans-serif}.ticket-footer{margin:0;text-align:center;font-weight:bold;letter-spacing:1px}
.quest-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0 4px}.quest-action{min-height:50px;padding:13px 14px;border:3px solid;border-radius:0;border-color:var(--retro-edge-light) var(--retro-edge-dark) var(--retro-edge-dark) var(--retro-edge-light);box-shadow:2px 2px #222;background:var(--retro-panel);color:var(--retro-ink);font:bold 12px/1.3 'Courier New',monospace;text-align:center;text-decoration:none;cursor:pointer}.quest-action.start-quest{background:var(--retro-accent);color:var(--retro-accent-ink)}.quest-action:active{border-color:var(--retro-edge-dark) var(--retro-edge-light) var(--retro-edge-light) var(--retro-edge-dark);box-shadow:none;transform:translate(1px,1px)}.quest-action:disabled{opacity:.62;cursor:wait}
.load-error,.noscript-note{padding:15px;background:var(--retro-paper);border:1px dashed var(--retro-edge-dark);font:12px/1.6 'Courier New',monospace}.load-error a,.noscript-note a{color:var(--retro-link)}
.program-footer{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:7px 10px;background:var(--retro-panel);border-top:1px solid var(--retro-edge-dark);font:9px/1.4 'Courier New',monospace}
.retro-dispenser .dispenser-footer{max-width:1000px;margin:0 auto 30px;padding:18px;text-align:center;background:var(--retro-panel);border:2px solid;border-color:var(--retro-edge-light) var(--retro-edge-dark) var(--retro-edge-dark) var(--retro-edge-light);color:var(--retro-muted);font:11px/1.9 'Courier New',monospace}.retro-dispenser .dispenser-footer a{display:inline-block;padding:5px 2px;color:var(--retro-link)}
.retro-dispenser :is(a,button):focus-visible{outline:3px solid #B13B00;outline-offset:3px}.retro-dispenser[data-retro-mode="dark"]{color-scheme:dark}.retro-dispenser[data-retro-mode="dark"] .quest-ticket{background:#fff9dc;color:#251f1c}.retro-dispenser[data-retro-mode="dark"] .quest-ticket::before,.retro-dispenser[data-retro-mode="dark"] .quest-ticket::after{background:linear-gradient(135deg,transparent 5px,#fff9dc 0) 0 0/10px 10px repeat-x}
@keyframes ticket-out{from{transform:translateY(-34px);clip-path:inset(0 0 100% 0)}to{transform:translateY(0);clip-path:inset(0)}}
@media(max-width:680px){.retro-dispenser .topbar{margin:0;padding:10px}.retro-dispenser .logo{font-size:20px}.retro-dispenser .vibe-button{padding:6px;font-size:10px}.retro-dispenser .retro-menu{gap:0;justify-content:space-between;padding:3px 9px;font-size:11px}.retro-dispenser .retro-menu a{padding:12px 3px}.retro-dispenser .retro-menu span{display:none}.dispenser-desktop{width:100%;margin:0;padding:12px 10px 23px}.program-window{box-shadow:4px 4px #0004}.program-toolbar{gap:17px}.program-toolbar span:nth-child(3){display:none}.program-content{padding:18px 10px 24px}.dispenser-intro h1{font-size:35px;letter-spacing:-2px}.machine-face{padding:14px 13px 20px}.machine-label strong{font-size:16px}.quest-ticket{width:calc(100% - 18px);padding:22px 16px 28px}.ticket-fields>div{grid-template-columns:88px minmax(0,1fr);font-size:12px}.quest-actions{grid-template-columns:1fr}.quest-action{width:100%;min-height:50px}.program-footer{justify-content:center}.program-footer span:nth-child(2){display:none}}
@media(max-width:360px){.machine-label small{display:none}.machine-label{grid-template-columns:auto 1fr}.ticket-fields>div{grid-template-columns:1fr;gap:2px}.ticket-fields dd{padding-left:10px}.ticket-brand{font-size:18px}}
@media(prefers-reduced-motion:reduce){.retro-dispenser *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
