*,:before,:after{box-sizing:border-box}html,body{min-height:100%;margin:0}:root{--ink-950:#050a0f;--ink-900:#08131c;--ink-800:#0d1f2b;--ink-700:#142b38;--ink-600:#1b3542;--steel-600:#24404d;--steel-400:#6c8b96;--paper:#f2e6cc;--paper-dim:#c9b99b;--lantern:#e0492f;--lantern-deep:#a92f22;--gold:#f6c453;--jade:#4fc7a1;--danger:#ff6b5a;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--dur-fast:.12s;--dur-base:.18s;--dur-slow:.24s}body{background:var(--ink-950);min-height:100vh;color:var(--paper);font-variant-numeric:tabular-nums;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;place-items:center;font-family:Microsoft JhengHei,Noto Sans TC,PingFang TC,system-ui,sans-serif;display:grid}.game-shell{aspect-ratio:16/9;background:var(--ink-950);border:2px solid var(--steel-600);width:min(96vw,1280px);position:relative;overflow:hidden;box-shadow:0 0 0 2px #03060a,8px 8px #00000073}#game{width:100%;height:100%;image-rendering:pixelated;outline:none;display:block}#game:focus-visible{outline:3px solid var(--gold);outline-offset:-3px}.hud{pointer-events:none;padding:10px 12px;position:absolute;inset:0}.hud.is-hidden{visibility:hidden}.hud-board{border:2px solid var(--steel-600);background:#08131cf0;grid-template-columns:minmax(92px,auto) minmax(180px,1fr) auto;align-items:center;gap:14px;padding:8px 12px;display:grid;box-shadow:inset 0 2px #6c8b9629,4px 4px #0006}.hud-block{min-width:0}.hud-label{color:var(--paper-dim);letter-spacing:0;font-size:10px;font-weight:400;line-height:1.2;display:block}.hud-night-row{align-items:center;gap:6px;min-height:14px;display:flex}.modifier-chip{border:1px solid var(--gold);color:var(--gold);white-space:nowrap;padding:1px 5px;font-size:9px;font-weight:700;line-height:1.2;display:inline-block}.modifier-chip[hidden]{display:none}.hud-timer-value{color:var(--gold);font-variant-numeric:tabular-nums;margin-top:2px;font-size:22px;font-weight:800;line-height:1;display:block}.hud-timer.is-urgent .hud-timer-value{color:var(--lantern)}.hud-timer.is-critical .hud-timer-value{animation:.9s steps(2,end) infinite timer-blink}@keyframes timer-blink{50%{opacity:.55}}.hud-revenue-row{justify-content:flex-start;align-items:baseline;gap:10px;display:flex}.hud-revenue-row strong{color:var(--paper);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px;font-weight:800}.revenue-track{background:#0a1722;border:1px solid #03080d;height:6px;margin-top:6px;position:relative}.revenue-fill{background:var(--gold);width:0%;height:100%;transition:width .22s var(--ease-out), background-color .22s ease}.revenue-fill.is-target{background:var(--jade)}.revenue-notch{background:var(--gold);width:2px;height:10px;position:absolute;top:-2px;right:0}.revenue-track.is-target .revenue-notch{background:var(--jade)}.hud-stats{align-items:stretch;gap:16px;display:flex}.stat{flex-direction:column;align-items:flex-end;gap:2px;min-width:38px;display:flex}.stat-label{color:var(--paper-dim);font-size:10px;line-height:1.1}.stat strong{color:var(--paper);font-variant-numeric:tabular-nums;font-size:14px;font-weight:800;line-height:1}#served{color:var(--jade)}#lost{color:var(--danger)}#burnt{color:var(--gold)}.message{border:2px solid var(--steel-600);border-left:4px solid var(--gold);color:var(--paper);white-space:nowrap;background:#08131cf2;padding:8px 14px;font-size:15px;font-weight:700;position:absolute;top:38%;left:50%;transform:translate(-50%,-50%);box-shadow:4px 4px #00000059}.message[hidden]{display:none}.overlay{opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--dur-base) var(--ease-out), visibility 0s linear var(--dur-base);background:#050a0fb8;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.overlay--pause{background:#050a0f94}.overlay--prep{background:#050a0fd1}.overlay--results{background:#050a0fd6}.overlay.is-open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity var(--dur-base) var(--ease-out)}.overlay>*{opacity:0;transition:opacity var(--dur-base) var(--ease-out), transform var(--dur-slow) var(--ease-out);transform:translateY(8px)scale(.98)}.overlay.is-open>*{opacity:1;transform:none}.button{min-height:44px;color:var(--paper);font:inherit;cursor:pointer;transition:transform var(--dur-fast) var(--ease-out), background-color var(--dur-fast) ease, border-color var(--dur-fast) ease, color var(--dur-fast) ease;border:2px solid #0000;padding:10px 14px;font-size:14px;font-weight:700}.button:active{transform:scale(.97)}.button:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.button[hidden]{display:none}.upgrade-row:focus-visible,.menu-ticket:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.button--primary{background:var(--lantern);color:var(--paper);border-color:#7a2018;box-shadow:3px 3px #00000059}.button--secondary{background:var(--ink-600);border-color:var(--steel-600);color:var(--paper)}.button--ghost{border-color:var(--steel-600);color:var(--paper-dim);background:0 0}.button--start{border-width:3px;justify-content:center;align-items:center;gap:10px;width:min(320px,100%);margin-top:22px;padding:12px 18px;font-size:18px;font-weight:800;display:inline-flex;box-shadow:4px 4px #03060a}.button--start kbd{min-width:0;color:var(--paper);background:#0000002e;border:2px solid #f2e6cc80;justify-content:center;align-items:center;padding:2px 6px;font-family:inherit;font-size:11px;font-weight:700;line-height:1.2;display:inline-flex}.button-stack{gap:8px;margin-top:18px;display:grid}.title-stage{text-align:center;flex-direction:column;align-items:center;width:100%;max-width:680px;display:flex}.signboard{background:var(--ink-700);border:3px solid var(--steel-600);width:min(560px,92%);padding:30px 28px 26px;position:relative;box-shadow:0 0 0 2px #03060a,8px 8px #00000073}.signboard:before{content:"";pointer-events:none;border:2px solid #f6c45359;position:absolute;inset:6px}.signboard h1{color:var(--gold);letter-spacing:0;text-shadow:3px 3px #03060a;margin:0;font-size:clamp(40px,6vw,64px);font-weight:800;line-height:1.05}.signboard-tagline{color:var(--paper);margin:14px 0 0;font-size:15px;line-height:1.5}.signboard-seal{border:3px solid var(--lantern);color:var(--lantern);white-space:nowrap;background:#e0492f0f;padding:4px 8px;font-size:12px;font-weight:800;line-height:1;position:absolute;bottom:16px;right:18px;transform:rotate(-6deg)}.signboard-lantern{background:var(--lantern);border:2px solid var(--lantern-deep);width:12px;height:18px;position:absolute;top:-16px;box-shadow:0 0 0 2px #03060a}.signboard-lantern:before{content:"";background:var(--gold);width:4px;height:4px;position:absolute;top:-6px;left:2px}.signboard-lantern:after{content:"";background:var(--gold);width:2px;height:6px;position:absolute;top:16px;left:4px}.signboard-lantern--left{left:18px}.signboard-lantern--right{right:18px}.title-controls{color:var(--paper-dim);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 18px;margin-top:22px;font-size:12px;display:flex}.title-controls span{align-items:center;gap:4px;display:inline-flex}.title-controls kbd{background:var(--ink-700);border:2px solid var(--steel-600);min-width:22px;height:22px;color:var(--paper);justify-content:center;align-items:center;padding:0 5px;font-family:inherit;font-size:11px;font-weight:700;line-height:1;display:inline-flex;box-shadow:0 2px #03060a}.title-meta{color:var(--steel-400);margin:14px 0 0;font-size:11px}.pause-panel{background:var(--ink-700);border:3px solid var(--steel-600);width:min(420px,92%);padding:22px;box-shadow:0 0 0 2px #03060a,7px 7px #00000073}.pause-panel h2{color:var(--paper);margin:0;font-size:26px;font-weight:800;line-height:1.1}.pause-time{color:var(--paper-dim);margin:8px 0 0;font-size:13px}.pause-time strong{color:var(--gold);font-variant-numeric:tabular-nums;font-size:16px;font-weight:800}.pause-stats{border-top:2px solid var(--ink-600);color:var(--paper-dim);flex-wrap:wrap;gap:18px;margin-top:12px;padding-top:12px;font-size:12px;display:flex}.pause-stats strong{color:var(--paper);font-variant-numeric:tabular-nums;font-size:14px;font-weight:800}.prep-panel{background:var(--ink-700);border:3px solid var(--steel-600);width:min(560px,94%);max-height:94%;padding:20px 22px;overflow:auto;box-shadow:0 0 0 2px #03060a,8px 8px #00000073}.prep-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.prep-heading{align-items:baseline;gap:10px;min-width:0;display:flex}.prep-heading h2{color:var(--paper);margin:0;font-size:28px;font-weight:800;line-height:1.1}.prep-night{color:var(--paper-dim);white-space:nowrap;font-size:11px;font-weight:700}.prep-wallet{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.prep-wallet strong{color:var(--gold);font-variant-numeric:tabular-nums;font-size:20px;font-weight:800;line-height:1}.prep-modifier{border-left:3px solid var(--lantern);color:var(--paper);background:#e0492f14;margin:10px 0 0;padding:6px 10px;font-size:12px;line-height:1.4}.prep-modifier[hidden]{display:none}.prep-summary{color:var(--paper-dim);flex-wrap:wrap;gap:16px;margin:12px 0 0;font-size:12px;display:flex}.prep-summary strong{color:var(--paper);font-variant-numeric:tabular-nums;font-size:13px;font-weight:800}.prep-section{margin-top:16px}.prep-section h3{color:var(--paper);margin:0 0 8px;font-size:13px;font-weight:800;line-height:1.2}.upgrade-list{gap:6px;display:grid}.upgrade-row{background:var(--ink-600);border:2px solid var(--steel-600);width:100%;min-height:44px;color:var(--paper);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--dur-fast) ease, background-color var(--dur-fast) ease, transform var(--dur-fast) var(--ease-out);grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:8px 10px;display:grid}.upgrade-row:active{transform:scale(.99)}.upgrade-row:disabled{opacity:.5;cursor:default}.upgrade-name{grid-column:1;font-size:13px;font-weight:800;line-height:1.2}.upgrade-desc{color:var(--paper-dim);grid-column:1;font-size:10px;line-height:1.3}.upgrade-cost{color:var(--gold);white-space:nowrap;font-variant-numeric:tabular-nums;grid-area:1/2/span 2;align-self:center;font-size:12px;font-weight:800}.menu-grid{flex-wrap:wrap;gap:8px;display:flex}.menu-ticket{background:var(--ink-600);border:2px solid var(--steel-600);min-height:44px;color:var(--paper);font:inherit;cursor:pointer;transition:border-color var(--dur-fast) ease, background-color var(--dur-fast) ease, transform var(--dur-fast) var(--ease-out);align-items:center;gap:6px;padding:8px 10px;font-size:12px;display:inline-flex}.menu-ticket:active{transform:scale(.97)}.menu-ticket.is-selected{border-color:var(--gold);background:#f6c45314}.menu-dot{border:1px solid var(--ink-950);width:8px;height:8px}.menu-name{font-weight:700}.menu-price{color:var(--gold);font-variant-numeric:tabular-nums;font-weight:800}.prep-hint{min-height:16px;color:var(--danger);margin:8px 0 0;font-size:11px;line-height:1.3}.prep-actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.receipt{background:var(--paper);color:#1a1510;border:2px solid #1a1510;width:min(460px,94%);max-height:94%;padding:20px 22px;position:relative;overflow:auto;box-shadow:8px 8px #0000008c}.receipt-head{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.receipt-brand{color:#5b4a35;margin:0 0 2px;font-size:11px;font-weight:700;line-height:1.2}.receipt h2{color:#1a1510;margin:0;font-size:26px;font-weight:800;line-height:1.1}.receipt-night{color:#5b4a35;margin:4px 0 0;font-size:11px;font-weight:700}.receipt-stars{color:var(--lantern-deep);letter-spacing:2px;margin:6px 0 0;font-size:18px;font-weight:800;line-height:1}.receipt-stamp{border:3px solid var(--lantern-deep);color:var(--lantern-deep);white-space:nowrap;opacity:.92;padding:4px 8px;font-size:14px;font-weight:800;line-height:1;display:inline-block;transform:rotate(-7deg)}.receipt-stamp.is-fail{color:#6b5a45;border-color:#6b5a45}.receipt-message{color:#5b4a35;margin:8px 0 0;font-size:12px;line-height:1.5}.receipt-rule{border-top:2px dashed #1a151059;height:0;margin:14px 0}.receipt-lines{gap:6px;margin:0;font-size:13px;display:grid}.receipt-lines div{justify-content:space-between;gap:12px;display:flex}.receipt-lines dt{color:#5b4a35;margin:0}.receipt-lines dd{color:#1a1510;font-variant-numeric:tabular-nums;margin:0;font-weight:700}.receipt-total{color:#1a1510;justify-content:space-between;align-items:baseline;gap:12px;font-size:15px;font-weight:700;display:flex}.receipt-total strong{color:#1a1510;font-variant-numeric:tabular-nums;font-size:22px;font-weight:800}.receipt-rank{color:#5b4a35;margin:12px 0 0;font-size:13px;font-weight:700}.receipt-actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.button--receipt-primary{background:var(--lantern);color:var(--paper);border-color:#7a2018;font-weight:800;box-shadow:3px 3px #1a15104d}.button--receipt-ghost{color:#1a1510;background:0 0;border-color:#1a1510}.receipt .button:focus-visible{outline-color:#1a1510}@media (hover:hover) and (pointer:fine){.button--primary:hover{background:var(--lantern-deep)}.button--secondary:hover{background:var(--steel-600)}.button--ghost:hover{color:var(--paper);background:#6c8b9614}.button--receipt-primary:hover{background:var(--lantern-deep)}.button--receipt-ghost:hover{background:#1a151014}.upgrade-row:not(:disabled):hover,.menu-ticket:hover{border-color:var(--gold)}}@media (width<=640px){.hud{padding:6px 8px}.hud-board{grid-template-columns:auto minmax(0,1fr);gap:8px;padding:5px 8px}.hud-stats{display:none}.hud-label{font-size:9px}.hud-timer-value{font-size:18px}.hud-revenue-row strong{font-size:11px}.message{white-space:normal;text-align:center;max-width:86%;font-size:13px}.overlay{padding:14px}.signboard{padding:22px 18px 20px}.signboard h1{font-size:clamp(36px,10vw,48px)}.signboard-tagline{font-size:13px}.signboard-seal{font-size:10px;bottom:10px;right:12px}.title-controls{gap:6px 12px;font-size:11px}.title-meta{font-size:10px}.pause-panel{padding:18px}.pause-panel h2{font-size:22px}.receipt{padding:16px}.receipt h2{font-size:22px}.receipt-lines{font-size:12px}.receipt-total strong{font-size:20px}.hud-night-row{gap:4px}.modifier-chip{padding:0 4px;font-size:8px}.prep-panel{padding:16px}.prep-head{flex-direction:column;gap:8px}.prep-wallet{align-items:flex-start}.prep-heading h2{font-size:22px}.prep-wallet strong{font-size:18px}.receipt-stars{font-size:16px}}@media (width<=480px){.signboard-seal{margin-top:12px;display:inline-block;position:static;transform:rotate(-4deg)}.receipt-actions{flex-direction:column}.receipt-actions .button{width:100%}.prep-actions{flex-direction:column}.prep-actions .button{width:100%}}@media (height<=560px){.overlay--prep,.overlay--results{padding:8px}.prep-panel,.receipt{width:100%;height:100%;max-height:100%}.prep-panel{padding:12px 14px}.prep-head{flex-direction:row;align-items:center;gap:10px}.prep-wallet{align-items:flex-end}.prep-heading h2{font-size:20px}.prep-night{font-size:10px}.prep-wallet strong{font-size:16px}.prep-modifier{margin-top:6px;padding:4px 8px;font-size:10px}.prep-summary{gap:10px;margin-top:6px;font-size:11px}.prep-section{margin-top:8px}.prep-section h3{margin-bottom:4px;font-size:11px}.upgrade-list{grid-template-columns:1fr 1fr;gap:4px}.upgrade-row{gap:0 8px;min-height:40px;padding:6px 8px}.upgrade-desc{display:none}.upgrade-name,.upgrade-cost{font-size:11px}.menu-grid{gap:4px}.menu-ticket{min-height:40px;padding:6px 8px;font-size:11px}.prep-hint{min-height:12px;margin-top:4px;font-size:10px}.prep-actions{background:0 0;margin-top:8px;padding-top:0;position:static}.receipt{padding:14px 16px}.receipt-head{gap:8px}.receipt h2{font-size:22px}.receipt-stars{margin-top:4px;font-size:15px}.receipt-message{margin-top:4px;font-size:11px}.receipt-rule{margin:8px 0}.receipt-lines{grid-template-columns:1fr 1fr;gap:4px 18px;font-size:11px}.receipt-total strong{font-size:18px}.receipt-rank{display:none}.receipt-actions{background:var(--paper);margin-top:10px;padding-top:8px;position:sticky;bottom:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.hud-timer.is-critical .hud-timer-value{animation:none}}
