:root{
  color-scheme:dark;
  --ink:#07111f;
  --navy:#0b1830;
  --navy-2:#13253f;
  --cream:#f5edcf;
  --paper:#fff9e8;
  --yellow:#ffd447;
  --coral:#ff6b62;
  --cyan:#45d8e8;
  --green:#54d98c;
  --purple:#b979ff;
  --orange:#ff983d;
  --red:#ff525d;
  --muted:#a8bfd0;
  --shadow:0 20px 60px rgba(0,0,0,.48);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--ink);color:var(--paper);overflow:hidden}
body{min-height:100dvh}
button,input{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,input:focus-visible{outline:4px solid var(--yellow);outline-offset:3px}
[hidden]{display:none!important}
.game-shell{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr);min-height:100dvh;background:radial-gradient(circle at 20% 0%,rgba(69,216,232,.12),transparent 30%),var(--navy)}
.game-canvas{position:relative;min-width:0;min-height:0;overflow:hidden;background:#101d2a}
.game-canvas canvas{display:block;width:100%;height:100%;touch-action:none}
.hud{z-index:30;display:grid;grid-template-columns:auto minmax(260px,1fr) auto auto;align-items:stretch;gap:10px;padding:max(8px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) 8px max(10px,env(safe-area-inset-left));border-bottom:4px solid #050a12;background:linear-gradient(180deg,#0f2037,#091526);box-shadow:0 6px 20px rgba(0,0,0,.38)}
.hud-brand{align-self:center;display:grid;line-height:.78;text-decoration:none;color:var(--paper);font-weight:1000;letter-spacing:-.05em;font-size:1.35rem;transform:rotate(-1deg);text-shadow:3px 3px 0 #000}.hud-brand span{font-size:.58em;letter-spacing:.08em;color:var(--yellow)}
.objective-card{display:grid;align-content:center;min-width:0;padding:4px 12px;border-left:4px solid var(--cyan)}
.objective-card small,.metric small{font-size:.61rem;font-weight:1000;letter-spacing:.13em;color:var(--cyan)}
.objective-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}
.objective-card span{color:var(--muted);font-size:.72rem}
.hud-metrics{display:flex;gap:6px}
.metric{position:relative;display:grid;place-content:center;min-width:78px;padding:6px 9px;border:2px solid rgba(255,255,255,.16);border-radius:10px;background:#13253f;text-align:center;box-shadow:inset 0 0 0 1px rgba(255,255,255,.03)}
.metric strong{font-variant-numeric:tabular-nums;font-size:1rem}.metric span{font-size:.54rem;color:var(--muted)}
.metric.timer strong{color:var(--yellow)}.metric.condition strong{color:var(--green)}.metric.route strong{font-size:.78rem;color:var(--coral)}
.metric.condition i{display:block;width:74px;height:5px;margin-top:3px;border-radius:999px;background:#07111f;overflow:hidden}.metric.condition b{display:block;width:100%;height:100%;transform-origin:left;background:var(--green)}
.metric.condition[data-level="warning"] strong{color:var(--yellow)}.metric.condition[data-level="warning"] b{background:var(--yellow)}
.metric.condition[data-level="critical"] strong{color:var(--red)}.metric.condition[data-level="critical"] b{background:var(--red)}
.hud-actions{display:flex;align-items:center;gap:6px}
.icon-button{min-height:38px;border:2px solid #57738a;border-radius:9px;padding:7px 10px;background:#243a52;color:var(--paper);font-weight:900;cursor:pointer}.icon-button:hover{border-color:var(--cyan)}
.package-rule{position:absolute;z-index:20;left:max(12px,env(safe-area-inset-left));top:92px;display:grid;gap:2px;max-width:330px;padding:10px 14px;border:3px solid #07111f;border-left:8px solid var(--yellow);border-radius:9px;background:rgba(245,237,207,.94);box-shadow:7px 7px 0 rgba(7,17,31,.45);color:#172238;pointer-events:none}.package-rule span{font-size:.64rem;font-weight:1000;letter-spacing:.14em;color:#8c5f00}.package-rule strong{font-size:.78rem}
.route-arrow{position:absolute;z-index:20;top:104px;left:50%;display:flex;align-items:center;gap:8px;transform:translateX(-50%);padding:7px 12px;border:3px solid #07111f;border-radius:999px;background:var(--yellow);color:#111b2b;box-shadow:5px 5px 0 rgba(7,17,31,.45);pointer-events:none}.route-arrow span{display:block;font-size:1.2rem;line-height:1;transform-origin:center}.route-arrow small{font-weight:1000;font-variant-numeric:tabular-nums}
.toast{position:absolute;z-index:38;top:105px;left:50%;max-width:min(560px,calc(100% - 32px));transform:translateX(-50%);padding:10px 16px;border:3px solid #07111f;border-radius:9px;background:var(--paper);color:#162238;box-shadow:7px 7px 0 rgba(7,17,31,.5);font-weight:900;text-align:center}
.overlay{position:absolute;z-index:50;inset:0;display:grid;place-items:center;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:rgba(5,12,24,.84);backdrop-filter:blur(8px)}
.dispatch-card,.map-card,.result-card{width:min(900px,100%);max-height:94dvh;overflow:auto;border:5px solid #07111f;border-radius:18px;padding:clamp(18px,3vw,32px);background:linear-gradient(145deg,#fff9e8,#e9d9ad);color:#142038;box-shadow:14px 14px 0 rgba(0,0,0,.48)}
.dispatch-heading,.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.dispatch-heading h1,.map-card h2,.result-card h2{margin:2px 0 8px;font-size:clamp(2rem,5.7vw,4.2rem);line-height:.88;letter-spacing:-.05em;text-transform:uppercase}.eyebrow{margin:0 0 6px;font-size:.68rem;font-weight:1000;letter-spacing:.14em;color:#53687a}.dispatch-copy{max-width:760px;margin:12px 0 16px;font-size:1rem;line-height:1.45}.delivery-slip{flex:0 0 190px;display:grid;gap:3px;padding:13px;border:3px dashed #8f7746;transform:rotate(2deg);background:#fff;color:#172238}.delivery-slip span,.package-brief span{font-size:.62rem;font-weight:1000;letter-spacing:.13em;color:#7a6230}.delivery-slip strong{font-size:.92rem}.delivery-slip small{color:#6d7f8c}
.package-brief{display:flex;align-items:center;gap:16px;margin:0 0 16px;padding:12px 14px;border:3px solid #07111f;border-radius:12px;background:#fff4c8}.package-brief strong{display:block;font-size:1.1rem}.package-brief p{margin:3px 0 0;font-size:.82rem;color:#53687a}.cake-icon{position:relative;display:grid;align-content:end;justify-items:center;width:74px;height:74px;flex:0 0 74px}.cake-icon i{display:block;height:18px;border:3px solid #07111f;border-radius:8px 8px 4px 4px;background:#ffcadf;box-shadow:inset 0 -5px 0 #f495bd}.cake-icon i:nth-child(1){width:58px}.cake-icon i:nth-child(2){width:46px;margin-top:-3px}.cake-icon i:nth-child(3){width:32px;margin-top:-3px}.cake-icon::after{content:"♥";position:absolute;top:0;color:var(--coral);font-size:1.25rem}
.choice-group{margin:14px 0 0;padding:0;border:0}.choice-group legend{margin-bottom:7px;font-size:.68rem;font-weight:1000;letter-spacing:.14em;text-transform:uppercase;color:#53687a}.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.choice-card{position:relative;display:block;cursor:pointer}.choice-card input{position:absolute;opacity:0;pointer-events:none}.choice-card span{display:grid;grid-template-columns:1fr auto;gap:4px 12px;min-height:96px;padding:12px 13px;border:3px solid #8394a0;border-radius:12px;background:rgba(255,255,255,.65);box-shadow:4px 4px 0 rgba(7,17,31,.18)}.choice-card b{font-size:.9rem}.choice-card em{font-style:normal;font-size:.62rem;font-weight:1000;letter-spacing:.09em}.choice-card small{grid-column:1/-1;line-height:1.35;color:#53687a}.choice-card input:checked+span{border-color:#07111f;transform:translate(-2px,-2px);box-shadow:6px 6px 0 #07111f}.choice-coral input:checked+span{background:#ffd4d0}.choice-cyan input:checked+span{background:#d4f7fb}.choice-yellow input:checked+span{background:#fff1a9}.choice-purple input:checked+span{background:#ead5ff}
.briefing-grid{display:flex;flex-wrap:wrap;gap:7px;margin:16px 0 0}.briefing-grid span{padding:6px 8px;border:2px solid #8495a0;border-radius:7px;background:#fff;font-size:.74rem;font-weight:800}.briefing-grid kbd{display:inline-grid;place-items:center;min-width:22px;height:20px;margin-right:2px;border:1px solid #32495b;border-radius:4px;background:#172238;color:#fff;font:800 .66rem inherit}.briefing-actions,.complete-actions{display:flex;align-items:center;gap:12px;margin-top:17px;flex-wrap:wrap}.briefing-actions a,.result-card>a{color:#223a55;font-weight:900}.primary-button,.secondary-button{min-height:48px;border:3px solid #07111f;border-radius:9px;padding:10px 18px;font-weight:1000;cursor:pointer;box-shadow:5px 5px 0 #07111f}.primary-button{background:var(--yellow);color:#132033}.secondary-button{background:var(--cyan);color:#132033}.primary-button:hover,.secondary-button:hover{transform:translate(-1px,-1px);box-shadow:7px 7px 0 #07111f}
.map-card{width:min(820px,100%)}.map-card svg{width:100%;height:auto;border:4px solid #07111f;border-radius:15px;background:#f1e7c7}.map-card svg text{font:900 17px/1 system-ui;fill:#25384e;letter-spacing:.06em}.map-legend{display:flex;gap:15px;flex-wrap:wrap;margin:12px 0;font-weight:900}.map-legend i{display:inline-block;width:28px;height:8px;margin-right:5px;border-radius:999px}.map-legend .parade{background:var(--coral)}.map-legend .canal{background:var(--cyan)}.map-legend .player{width:15px;height:15px;background:var(--yellow);border:3px solid #07111f}.map-card>p{margin-bottom:0;color:#52687b;font-size:.82rem}
.result-card{width:min(660px,100%);text-align:center}.grade-badge{display:grid;place-items:center;width:104px;height:104px;margin:8px auto 16px;border:7px solid #07111f;border-radius:50%;background:var(--yellow);box-shadow:8px 8px 0 rgba(7,17,31,.3);font-size:3.5rem;font-weight:1000;line-height:1}.result-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.result-grid>div{padding:10px;border:2px solid #91a0aa;border-radius:10px;background:rgba(255,255,255,.68)}.result-grid small{display:block;color:#566b7b;font-size:.58rem;font-weight:1000;letter-spacing:.1em}.result-grid strong{display:block;margin-top:3px;font-size:.95rem}.best-shift{margin:14px 0 0;padding:10px;border:3px solid #07111f;border-radius:9px;background:#d9ffd8}.best-shift span{display:block;font-size:.62rem;font-weight:1000;letter-spacing:.12em;color:#24753c}.best-shift strong{display:block;margin-top:3px}
.settings{width:min(720px,calc(100% - 24px));max-height:calc(100dvh - 24px);border:5px solid #07111f;border-radius:18px;padding:0;background:#f5edcf;color:#142038;box-shadow:var(--shadow)}.settings::backdrop{background:rgba(4,10,20,.78);backdrop-filter:blur(6px)}.settings form{padding:22px}.settings h2{margin:0;font-size:2rem;text-transform:uppercase}.settings label{display:flex;align-items:flex-start;gap:10px;margin-top:9px;padding:10px 12px;border:2px solid #94a2aa;border-radius:10px;background:#fff}.settings input{width:21px;height:21px;accent-color:var(--purple)}.settings label span{display:grid;gap:2px}.settings label small{color:#5d7180}.settings-note{color:#4f6373;font-size:.82rem}
.touch-controls{display:none;position:absolute;z-index:28;left:0;right:0;bottom:max(8px,env(safe-area-inset-bottom));justify-content:space-between;padding:0 max(10px,env(safe-area-inset-right)) 0 max(10px,env(safe-area-inset-left));pointer-events:none}.touch-controls>div{display:flex;gap:8px;pointer-events:auto}.touch-controls button{min-width:62px;min-height:62px;border:4px solid #07111f;border-radius:16px;background:rgba(245,237,207,.9);color:#07111f;font-weight:1000;box-shadow:5px 5px 0 rgba(7,17,31,.52);touch-action:none}.touch-controls .touch-throttle{min-width:78px;background:var(--yellow)}.touch-actions button:nth-child(2){background:#ffb18d}.live-region{position:fixed!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.high-contrast{--paper:#fff;--cream:#fff;--cyan:#67ffff;--yellow:#ffe900;--coral:#ff6b6b;--green:#61ff9b}.high-contrast .hud,.high-contrast .metric{border-color:#fff}.high-contrast .package-rule{background:#fff}.high-contrast .game-canvas{filter:contrast(1.15) saturate(1.05)}
.reduced-motion *,.reduced-motion *::before,.reduced-motion *::after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
@media(max-width:1060px){.hud{grid-template-columns:auto minmax(190px,1fr) auto}.hud-actions{grid-column:3}.hud-metrics .route{display:none}.objective-card strong{font-size:.8rem}.metric{min-width:69px}.package-rule{top:86px}.route-arrow{top:96px}}
@media(pointer:coarse),(max-width:850px){.touch-controls{display:flex}.game-shell{grid-template-rows:auto minmax(0,1fr)}.hud{grid-template-columns:auto 1fr auto;gap:5px;padding-top:max(5px,env(safe-area-inset-top))}.hud-brand{font-size:1rem}.objective-card{padding-left:8px}.objective-card span{display:none}.hud-metrics{grid-column:1/-1;order:3;display:grid;grid-template-columns:repeat(3,1fr)}.hud-metrics .route{display:none}.hud-actions{grid-column:3;grid-row:1}.hud-actions .icon-button:first-child{display:none}.package-rule{top:145px;max-width:250px;padding:7px 10px}.package-rule strong{display:none}.route-arrow{top:153px}.touch-controls{bottom:max(10px,env(safe-area-inset-bottom))}.choice-grid{grid-template-columns:1fr}.dispatch-card{padding:17px}.dispatch-heading h1{font-size:2.5rem}.delivery-slip{display:none}.briefing-grid{display:none}.result-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.objective-card small{font-size:.5rem}.objective-card strong{font-size:.7rem}.metric{min-width:0;padding:5px 6px}.metric strong{font-size:.86rem}.metric.condition i{width:58px}.hud-actions .icon-button{min-height:32px;padding:4px 7px}.package-rule{display:none}.route-arrow{top:132px}.touch-controls button{min-width:54px;min-height:54px}.touch-actions button:nth-child(1){display:none}.dispatch-copy{font-size:.87rem}.package-brief{align-items:flex-start}.cake-icon{width:54px;height:54px;flex-basis:54px}.cake-icon i{height:13px}.cake-icon i:nth-child(1){width:44px}.cake-icon i:nth-child(2){width:35px}.cake-icon i:nth-child(3){width:24px}.dispatch-heading h1{font-size:2rem}.result-card h2{font-size:2.2rem}}
@media(max-height:600px) and (orientation:landscape){.hud{padding-top:4px;padding-bottom:4px}.hud-brand{font-size:.95rem}.objective-card small,.objective-card span{display:none}.metric{min-height:38px;padding:3px 7px}.package-rule{top:65px}.route-arrow{top:70px}.touch-controls button{min-height:48px}.overlay{padding:8px}.dispatch-card{max-height:96dvh;padding:13px}.dispatch-heading h1{font-size:2rem}.dispatch-copy{margin:6px 0 8px}.package-brief{margin-bottom:8px;padding:7px}.choice-group{margin-top:7px}.choice-card span{min-height:72px;padding:8px}.briefing-grid{display:none}.briefing-actions{margin-top:8px}}

/* Keep persistent courier controls accessible while the pre-run briefing is open. */
.briefing{z-index:20}
