
*{box-sizing:border-box}body{margin:0;background:#09172c;color:#f5f3e8;font:16px system-ui,-apple-system,'Hiragino Kaku Gothic ProN',sans-serif}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #567086;background:#203650;color:#fff;border-radius:10px;padding:10px 15px;min-height:44px;touch-action:manipulation}button:hover{background:#304e6f}button:disabled{opacity:.4;cursor:default}.gold{background:#f0bc52;color:#13213a;border-color:#f0bc52;font-weight:800}.gold:hover{background:#ffcf70}.small{font-size:13px}.muted{color:#b6c6d8}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.between{justify-content:space-between}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:12px}h1,h2,h3,p{margin:0 0 12px}h1{font-size:clamp(32px,5vw,64px);line-height:1.2}h2{font-size:24px}h3{font-size:18px}#title{min-height:100dvh;display:grid;place-items:center;padding:30px;background:linear-gradient(110deg,#08182ef5,#08182ebc),var(--scene) center/cover}.title-inner{width:min(920px,100%);display:grid;grid-template-columns:1.25fr 1fr;gap:40px;align-items:center}.eyebrow{color:#f0bc52;letter-spacing:.18em;font-weight:700;margin-bottom:16px}.title-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.title-actions button{min-height:72px}.title-actions .main{grid-column:span 2}.tag{font-size:12px;border-radius:5px;background:#09172c80;padding:3px 5px;color:#c7d4e1}.subtitle{font-size:18px;line-height:1.8;color:#d3dfea}.brand-rule{height:5px;width:100px;background:#efbb50;margin:25px 0}header{padding:10px 16px;border-bottom:1px solid #36506b}.players{display:grid;gap:8px;grid-template-columns:repeat(4,1fr);padding:8px 12px}.player{background:#132842;border:2px solid transparent;border-left:6px solid var(--pc);padding:8px;border-radius:10px;display:flex;gap:8px;align-items:center;cursor:pointer}.player.active{border-color:var(--pc);background:#213952}.vehicle-mini{width:35px;height:48px;object-fit:cover;border-radius:4px}.player strong{font-size:14px}.player .stats{font-size:12px;line-height:1.7}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 255px;gap:10px;padding:0 12px 12px}.map-panel{position:relative;background:#d0e1de;border:2px solid #afc4c8;border-radius:15px;overflow:hidden;min-height:390px;display:grid;align-items:center}.map-panel:before{content:'';position:absolute;inset:0;background:var(--scene) center/cover;opacity:.18}.map-panel svg{width:100%;position:relative;max-height:72vh}svg text{font-family:system-ui;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round;fill:#17263b;font-weight:800}svg .node{cursor:pointer}svg .reachable circle{stroke:#05a8c6;stroke-width:5;fill:#e8fdff}svg .token{filter:drop-shadow(0 3px 2px #14203077);pointer-events:none}.sidebar{background:#132842;padding:16px;border-radius:14px;display:flex;flex-direction:column;gap:12px}.phase{color:#efbb50;font-size:14px;font-weight:700}.metric{font-size:26px;font-weight:850}.cargo-list{display:flex;flex-wrap:wrap;gap:5px}.cargo-list img{width:48px;height:34px;object-fit:contain}.sidebar button{width:100%}.status{background:#08172a;padding:12px;border-radius:10px;line-height:1.6}.log{padding:5px 12px;color:#b7cce0;font-size:13px;max-height:52px;overflow:auto}.badge{display:inline-flex;align-items:center;justify-content:center;border-radius:100px;background:var(--pc);color:#fff;width:25px;height:25px;font-weight:800}.overlay{position:fixed;inset:0;background:#03101ccc;z-index:20;display:grid;place-items:center;padding:18px}.overlay[hidden],section[hidden]{display:none!important}.dialog{background:#142943;border:1px solid #52647e;border-radius:18px;max-width:920px;width:100%;max-height:92dvh;overflow:auto;padding:22px;box-shadow:0 20px 70px #0009}.dialog.narrow{max-width:520px}.close{float:right}.card-choice{background:#203a56;padding:10px;border-radius:12px;text-align:center}.card-choice img{width:100%;max-width:130px;border-radius:8px}.card-choice p{font-size:13px;margin:8px 0}.card-choice button{width:100%}.cargo-select button{padding:6px}.cargo-select img{width:80px;height:58px;object-fit:contain}.delivery-row{display:grid;grid-template-columns:1fr 100px 100px;align-items:center;gap:10px;padding:10px;border-bottom:1px solid #39506b}.delivery-row img{width:80px;height:55px;object-fit:contain}.empty-cargo{opacity:.3;filter:grayscale(1)}input,select{background:#07182b;color:#fff;border:1px solid #687e97;padding:12px;border-radius:10px}input[type=number]{width:150px;font-size:26px;text-align:center}.die{width:95px;height:95px;background:linear-gradient(135deg,#fff9e4,#f2c968);color:#17243c;border-radius:20px;box-shadow:5px 6px 0 #a47b2b;font-size:60px;font-weight:900;display:grid;place-items:center;margin:20px auto}.rolling{animation:tumble .7s ease-in-out}@keyframes tumble{0%{transform:rotate(0) scale(.8)}50%{transform:rotate(220deg) scale(1.1)}100%{transform:rotate(360deg)}}.error{color:#ffd08a;min-height:24px;margin:8px 0}.notice{background:#274667;padding:12px;border-radius:10px;margin-bottom:14px;line-height:1.6}.calc{font-size:24px;text-align:center;line-height:2}.rule-list{line-height:1.9;padding-left:20px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#f3c35b;color:#17243c;padding:14px 22px;border-radius:12px;z-index:30;font-weight:800;box-shadow:0 5px 25px #0006}.toast img{width:70px;vertical-align:middle;margin-right:12px}.car-title{font-size:70px}.legend{position:absolute;left:12px;top:10px;color:#16334d;font-size:13px;font-weight:800}.banner{background:#efbb50;color:#14233a;border-radius:9px;padding:9px;font-weight:800}.demo-note{font-size:12px;color:#b9cce0;margin-top:16px}@media(max-width:850px){.title-inner{grid-template-columns:1fr;gap:24px}.play-layout{grid-template-columns:minmax(0,1fr) 210px}.sidebar{padding:10px}.players{grid-template-columns:repeat(2,1fr)}.map-panel svg{max-height:none}.player .stats{font-size:12px}}@media(max-width:600px){.play-layout{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:1fr 1fr}.sidebar .status{grid-column:span 2}.map-panel{min-height:0}.players{padding:5px}.player{padding:5px}.dialog{padding:15px}.delivery-row{grid-template-columns:1fr 75px 75px}header strong{font-size:14px}}
/* Cinematic title built from the supplied scenery and original vehicle cards. */
#title{position:relative;overflow:hidden;background:linear-gradient(90deg,#031b32e8 0%,#052039ce 42%,#03243a6e 72%,#03132dbc 100%),var(--scene) center/cover;padding:40px 5vw;min-height:100dvh}.title-art{position:absolute;inset:0;pointer-events:none}.hero-city{position:absolute;width:45%;right:-5%;top:-18%;opacity:.3;filter:saturate(1.25);mask-image:linear-gradient(#000,transparent)}.hero-bike,.hero-rocket,.hero-ship{position:absolute;height:38%;width:auto;object-fit:contain;border:3px solid #e2c387;border-radius:18px;box-shadow:0 20px 40px #0009;opacity:.82}.hero-bike{right:23%;top:10%;transform:rotate(-14deg)}.hero-rocket{right:10%;top:19%;transform:rotate(6deg);z-index:2}.hero-ship{right:-1%;top:6%;transform:rotate(16deg)}.title-inner{position:relative;display:block;max-width:1300px;width:100%;z-index:3}.title-inner>div:first-child{max-width:800px}.eyebrow{font-size:13px;letter-spacing:.12em;color:#cbeeff}.eyebrow span{color:#e8c981;background:#123959a6;border:1px solid #79b4d158;padding:7px 12px;border-radius:30px}.logo-top{display:inline-block;color:#fff7d4;font-size:clamp(36px,4.8vw,68px);font-style:italic;text-shadow:3px 4px 0 #184a71,0 0 30px #75d1ff88;letter-spacing:.18em}.logo-main{display:inline-block;font-size:clamp(38px,5.6vw,78px);font-style:italic;letter-spacing:-.035em;background:linear-gradient(#fff8d4 3%,#ffde6b 32%,#fff8c4 47%,#daa342 52%,#ffd679 88%);background-clip:text;-webkit-background-clip:text;color:transparent;filter:drop-shadow(0 3px 0 #44291d) drop-shadow(3px 6px 0 #0e5486) drop-shadow(0 12px 12px #000a);white-space:nowrap}.title-chip{margin:20px 0 15px;border-left:5px solid #e7c879;background:#08223d99;padding:10px 16px;font-size:22px;font-weight:800;display:inline-block;letter-spacing:.06em}.subtitle{font-size:16px;line-height:1.8}.title-inner>div:last-child{max-width:640px;margin-top:28px}.menu-caption{font-size:13px;color:#c7dfed;margin-bottom:12px}.title-actions{grid-template-columns:repeat(3,1fr);gap:9px}.title-actions .main{grid-column:span 3;min-height:62px;background:linear-gradient(110deg,#e6b44e,#fff1b1,#ddb253);border:2px solid #fff3c7;color:#122641;font-size:20px;box-shadow:0 5px 0 #805625,0 12px 24px #0005}.title-actions button{min-height:53px;background:linear-gradient(120deg,#153c5ae8,#08243be8);border:1px solid #8ab7d57a;box-shadow:inset 0 1px 0 #ffffff18;font-size:15px}.title-actions button:hover{filter:brightness(1.2);transform:translateY(-1px)}.title-actions .main .small{font-size:13px;font-weight:500}.title-actions #resume{grid-column:span 2}.demo-note{margin-top:14px;color:#c1d9e9}.tag{background:#08223d;font-size:10px;color:#c8d6df}.players .player{box-shadow:inset 0 1px 0 #fff1}.vehicle-mini{object-fit:contain}.player.active{box-shadow:0 0 14px color-mix(in srgb,var(--pc),transparent 65%)}
/* Original PDF board, unobscured and zoomable. */
.play-layout{grid-template-columns:minmax(0,1fr) 220px}.map-panel{display:block;min-height:0;background:#fff;border:1px solid #758d9b;border-radius:12px}.map-panel:before{display:none}.board-toolbar{background:#0c263b;color:#d8e9ef;height:43px;display:flex;justify-content:space-between;align-items:center;padding:4px 12px;font-size:12px}.board-toolbar button{min-height:30px;height:30px;padding:3px 10px;font-size:13px}.board-scroll{overflow:auto;max-height:calc(100dvh - 220px);min-height:280px;scrollbar-color:#436e88 #132c43;background:#f7f8f3;touch-action:pan-x pan-y}.map-panel svg{display:block;width:100%;height:auto;max-height:none;min-width:600px}.map-panel svg .node{cursor:pointer}.map-panel svg text{stroke-width:3px}.map-panel svg .token{filter:none}.sidebar{gap:10px;background:linear-gradient(#173751,#0b263d);border:1px solid #547289}.sidebar button{border-radius:8px}.sidebar .status{background:#061c2f}.sidebar .metric{font-size:24px}.log{max-height:36px}header{background:#091d32;padding:6px 12px}header button{min-height:36px;padding:5px 11px;font-size:13px}.players{padding:7px 12px}.player{min-height:67px}.player strong{font-size:13px}.card-choice img{max-width:165px;object-fit:contain;background:none;aspect-ratio:152/211;height:auto}.dialog .grid{grid-template-columns:repeat(auto-fit,minmax(155px,1fr))}.card-choice{background:linear-gradient(#1d3b56,#10293e);border:1px solid #54768f}.cargo-list img{object-fit:contain}.dialog{background:linear-gradient(140deg,#173a56,#0a2137);border:1px solid #8fb1c388}.overlay{backdrop-filter:blur(5px)}
/* Physical dice roll: depth, multiple numbered faces, shadow and bounce. */
.dice-stage{height:200px;position:relative;display:grid;place-items:center;perspective:700px}.dice-stage:after{content:'';position:absolute;width:130px;height:22px;border-radius:50%;background:#0008;filter:blur(6px);bottom:26px}.dice-cube{position:relative;width:90px;height:90px;transform-style:preserve-3d;transform:rotateX(-18deg) rotateY(24deg);z-index:1}.dice-face{position:absolute;inset:0;border:3px solid #d4a445;border-radius:15px;background:linear-gradient(135deg,#fffdf0,#f5d478);color:#18334b;display:grid;place-items:center;font-size:46px;font-weight:900;backface-visibility:hidden;box-shadow:inset 0 0 0 2px #fff7}.dice-face small{font-size:12px;display:block;position:absolute;bottom:9px}.dice-front{transform:translateZ(45px)}.dice-back{transform:rotateY(180deg) translateZ(45px)}.dice-right{transform:rotateY(90deg) translateZ(45px)}.dice-left{transform:rotateY(-90deg) translateZ(45px)}.dice-top{transform:rotateX(90deg) translateZ(45px)}.dice-bottom{transform:rotateX(-90deg) translateZ(45px)}.dice-rolling{animation:dice-roll 1.15s cubic-bezier(.3,.6,.3,1) both}@keyframes dice-roll{0%{transform:translate(-65px,-65px) rotateX(45deg) rotateY(20deg) rotateZ(-15deg)}30%{transform:translate(40px,-45px) rotateX(420deg) rotateY(320deg) rotateZ(80deg)}65%{transform:translate(-12px,12px) rotateX(720deg) rotateY(640deg) rotateZ(-20deg)}82%{transform:translate(5px,-18px) rotateX(900deg) rotateY(900deg)}100%{transform:translate(0,0) rotateX(1062deg) rotateY(1104deg)}}.result-title{font-size:26px;text-align:center;color:#e6d58c}.correct-mark{width:92px;height:92px;display:grid;place-items:center;margin:15px auto;border-radius:50%;background:#183e2e;border:4px solid #65dd96;color:#9ff5b5;font-size:56px;box-shadow:0 0 35px #50d99044;animation:correct-pop .35s ease-out}.correct-title{text-align:center;font-size:32px;color:#a9f4bf}.correct-equation{text-align:center;font-size:23px;line-height:1.7;background:#051a2b;padding:15px;border-radius:10px;margin:18px 0}.correct-next{display:block;width:100%;min-height:54px}@keyframes correct-pop{from{transform:scale(.55);opacity:0}to{transform:scale(1);opacity:1}}.title-chip,.logo-main{user-select:none}@media(max-width:1100px){.title-art{opacity:.6}.hero-bike{right:20%}.logo-main{font-size:clamp(35px,5.8vw,72px)}.play-layout{grid-template-columns:minmax(0,1fr) 200px}.sidebar{padding:10px}}@media(max-width:700px){#title{padding:35px 20px}.hero-bike,.hero-rocket,.hero-ship{height:28%;top:5%;opacity:.35}.title-inner>div:last-child{max-width:none}.logo-main{white-space:normal;font-size:41px}.eyebrow{font-size:11px}.title-chip{font-size:18px}.title-actions button{font-size:13px}.play-layout{grid-template-columns:1fr}.players{grid-template-columns:repeat(2,1fr)!important}.board-scroll{max-height:420px}.sidebar{grid-template-columns:1fr 1fr;display:grid}.sidebar .status{grid-column:span 2}.map-panel svg{min-width:800px}.title-actions #resume{grid-column:span 2}}@media(prefers-reduced-motion:reduce){.dice-rolling,.correct-mark{animation:none}}
/* Rulebook, opening draw, contextual calculations and nonblocking card rewards. */
.rule-tabs{margin-bottom:12px}.rule-reader{background:#fff;border-radius:8px;overflow:auto;max-height:65dvh}.rule-reader img{max-width:none}.rule-browser-note{background:#0a223a;padding:10px 12px;border-left:3px solid #e5c481;margin:12px 0;font-size:13px}.vehicle-shop .card-choice{padding:9px}.vehicle-shop .card-choice img{max-width:180px;width:100%;display:block;margin:auto}.vehicle-shop .card-choice button{margin-top:9px}.shop-coins{display:inline-flex;gap:7px;align-items:center;color:#f1d886;white-space:nowrap}.shop-coins img{width:28px;height:28px;object-fit:contain}.calc-vehicles{display:flex;gap:14px;justify-content:center;align-items:center;margin:10px 0}.calc-vehicles>div{text-align:center;display:flex;flex-direction:column;gap:6px;align-items:center}.calc-vehicles img{height:150px;width:auto;max-width:120px;object-fit:contain;border-radius:8px;box-shadow:0 5px 15px #0006}.calc-vehicles span{font-size:12px;color:#c1d6e5}.calc-vehicles strong{font-size:30px;color:#edca72}.calc-speed-note{text-align:center;background:#061b2b;border-radius:8px;padding:8px;color:#f0dc9f}.calc-inline-correct{text-align:center;color:#a1f5b6;font-size:23px;font-weight:800;margin:10px 0}.inline-delivery{padding:10px;background:#09223a;border-radius:9px}.inline-delivery h3{font-size:14px}.inline-delivery .row{gap:7px;justify-content:center}.inline-delivery button{width:calc(50% - 4px);padding:5px;font-size:12px}.inline-delivery img{width:52px;height:33px;object-fit:contain}.delivered-slot{width:calc(50% - 4px);color:#9ae9b1;text-align:center}.intro-heading{text-align:center}.order-roulette{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;padding:22px 0}.order-agent{border:2px solid var(--pc);border-radius:12px;background:#102b42;padding:18px;display:flex;flex-direction:column;gap:10px;align-items:center;min-width:130px;transition:transform .1s}.order-agent.picked{background:#245572;border-color:#fff0ad;box-shadow:0 0 24px #d8c67577;transform:translateY(-8px)}.intro-materials{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:18px 0}.intro-city{background:#0b243b;padding:12px;border-radius:12px;border:1px solid #45657b;opacity:.65}.intro-city.revealed{opacity:1;border-color:#eccb7e;animation:material-reveal .4s ease-out}.intro-city>img{width:100%;max-height:130px;object-fit:contain}.intro-city h3{font-size:13px;text-align:center;margin:8px 0}.intro-city .row{justify-content:center;gap:4px}.intro-city .row img{width:calc(50% - 5px);height:45px;object-fit:contain}.unknown-cargo{display:grid;place-items:center;height:45px;width:40%;background:#e6e0c6;color:#244158;font-size:25px;border-radius:6px}.card-fx{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:50;pointer-events:none;text-align:center;min-width:260px;filter:drop-shadow(0 10px 25px #000);animation:card-get .4s ease-out}.card-fx[hidden],.cpu-dice[hidden]{display:none!important}.card-fx h2{font-size:34px;color:#fff0aa;text-shadow:2px 3px 0 #724615,0 0 25px #f6d270;margin-bottom:12px}.card-fx>img{height:min(35dvh,290px);width:auto;border-radius:12px;border:3px solid #ffe5a0;box-shadow:0 0 55px #f6cc6b88}.card-fx p{color:#fffbe9;text-shadow:0 2px 5px #000;margin-top:12px;font-weight:800}.fx-flare{position:absolute;inset:-80px;z-index:-1;background:radial-gradient(ellipse,#c0ebff99 0%,#ffc97133 35%,transparent 65%);animation:flare-pulse 1.2s ease-out}.cpu-dice{position:fixed;bottom:15px;right:15px;z-index:35;pointer-events:none;width:200px;background:#071b30db;border:1px solid #779bab;border-radius:18px;text-align:center;backdrop-filter:blur(6px);box-shadow:0 10px 30px #0008}.cpu-dice .dice-stage{height:150px}.cpu-dice .dice-stage:after{bottom:10px}.cpu-dice strong{display:block;margin-bottom:14px;color:#edd28e}@keyframes material-reveal{from{transform:rotateY(75deg);opacity:0}to{transform:rotateY(0);opacity:1}}@keyframes card-get{from{transform:translate(-50%,-50%) scale(.5) rotate(-8deg);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}@keyframes flare-pulse{from{transform:scale(.3);opacity:.3}to{transform:scale(1);opacity:1}}@media(max-width:650px){.intro-materials{grid-template-columns:repeat(2,1fr)}.calc-vehicles img{height:125px}.order-agent{min-width:100px;padding:12px}.card-fx h2{font-size:26px}}@media(prefers-reduced-motion:reduce){.intro-city.revealed,.card-fx,.fx-flare{animation:none}}
/* Equal-sized modes, a larger full-width board and visual inventories. */
.title-actions{grid-template-columns:repeat(2,1fr)}.title-actions .mode-main{grid-column:auto;min-height:72px;font-size:18px}.title-actions .gold.mode-main{background:linear-gradient(110deg,#e6b44e,#fff1b1,#ddb253);color:#132d45;border:2px solid #fff1bf;box-shadow:0 4px 0 #815b30}.title-actions .mode-main .small,.title-actions .mode-main .tag{font-size:12px}.play-layout{display:block;padding-bottom:8px}.map-panel{width:100%}.board-scroll{max-height:none;min-height:0}.map-panel svg{min-width:0;width:100%}.players{gap:9px}.player{padding:10px;align-items:flex-start;min-height:156px;gap:10px}.player-car{width:92px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:5px}.player-car>img{height:124px;max-width:92px;object-fit:contain;border-radius:6px}.player-car>span{font-size:11px;color:#bbd7e9}.player-body{flex:1;min-width:0}.player-body>strong{display:flex;gap:5px;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:7px}.player-numbers{display:flex;align-items:center;gap:13px;flex-wrap:wrap;font-size:16px;font-weight:800;margin:5px 0 8px}.player-numbers span{display:inline-flex;align-items:center;gap:4px}.player-numbers img{width:24px;height:24px;object-fit:contain}.player-numbers span:last-child img{width:17px;height:24px}.goods-row{display:flex;gap:5px;align-items:center;min-height:22px;margin:3px 0}.goods-row>span{font-size:11px;min-width:34px;color:#c4dbe7}.goods-row>div{display:flex;gap:3px;flex-wrap:wrap;align-items:center}.goods-row img{width:27px;height:20px;object-fit:contain}.goods-row em{font-size:12px;color:#9eb1bf;font-style:normal}.goods-row.done img{opacity:.65}.goods-row.carrying>span{color:#ffe5a0}.goods-row.done>span{color:#9de7b4}.bottom-dashboard{display:grid;grid-template-columns:minmax(270px,.42fr) minmax(500px,.58fr);gap:12px;padding:0 12px 12px}.log-panel{border:1px solid #3c5e74;border-radius:10px;background:#0a2238;padding:9px 12px}.log-panel>.row strong{font-size:13px;color:#d0e3ec}.log-panel>.row button{min-height:28px;padding:3px 9px;font-size:12px}.log{max-height:110px;padding:5px 0;overflow:auto;font-size:12px;color:#b8d0dd;line-height:1.8}.full-log{max-height:65dvh;overflow:auto;line-height:1.9;font-size:14px}.full-log>div{border-bottom:1px solid #31526c;padding:5px 0}.sidebar{display:flex;flex-direction:column;gap:8px;padding:10px 14px}.dock-status{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.dock-status>strong{font-size:15px}.dock-status>span{font-size:13px;color:#d2e0e9}.dock-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.dock-actions button{width:auto;min-height:40px;padding:8px 12px;font-size:14px}.dock-actions .inline-delivery{display:flex;gap:8px;align-items:center;padding:5px 8px}.inline-delivery .row{flex-wrap:nowrap}.inline-delivery button{width:auto;font-size:12px;padding:4px 7px}.inline-delivery img{width:37px;height:26px;vertical-align:middle}.delivered-slot{width:auto;font-size:12px}.settings-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:15px 0}.settings-pair label{display:flex;flex-direction:column;gap:8px;font-size:14px}.vehicle-shop{grid-template-columns:repeat(3,1fr)!important;gap:12px}.vehicle-shop .card-choice img{max-width:205px}.owned-card{border-color:#d5bb70}.shop-hint{background:#0a2037;border-left:3px solid #ddc07b;padding:8px 12px;margin:10px 0 16px;font-size:13px}.owned-preview{display:flex;gap:10px;flex-wrap:wrap}.owned-preview img{height:100px;width:auto;border-radius:6px}.reward-catalogue{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.reward-status{position:relative;border:1px solid #5d7e98;background:#0b2337;border-radius:10px;overflow:hidden}.reward-status>img{width:100%;display:block;object-fit:contain}.reward-status.discarded>img{filter:brightness(.35) grayscale(.9)}.reward-owner{padding:7px;text-align:center;font-size:13px;color:#fff;background:#254761;font-weight:700}.discarded .reward-owner{background:#101b27;color:#a8b6c3}.calc-question{font-size:21px;line-height:1.8;text-align:center;margin:14px 0}.calculation-hint{background:#081e30;padding:10px;margin:9px 0;border-radius:7px;font-size:18px}.calc-vehicles img{height:145px}.rule-guide{margin-top:18px}.guide-goal>h3{text-align:center;color:#f3d587;font-size:24px}.guide-city-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.guide-city-row>div{padding:12px;background:#0a243b;border-radius:12px;display:flex;flex-direction:column;gap:9px;align-items:center}.guide-city-row>div>img{width:100%;height:110px;object-fit:contain}.guide-city-row strong{font-size:13px}.guide-city-row>div>div{display:flex;gap:6px}.guide-city-row>div>div img{width:50px;height:38px;object-fit:contain}.guide-city-row span{font-size:12px;color:#c8dce7}.guide-return{display:flex;gap:18px;align-items:center;margin-top:18px;background:#1b3b53;padding:12px;border-radius:12px}.guide-return>img{width:90px;height:90px;object-fit:contain}.guide-return p{font-size:14px;line-height:1.7;margin:7px 0 0}.guide-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.guide-steps>div{background:#0a243b;padding:15px;border-radius:12px;text-align:center}.guide-steps>div>img{height:155px;max-width:100%;object-fit:contain}.guide-steps h3{font-size:16px;margin:13px 0}.guide-steps p,.guide-two p{font-size:14px;line-height:1.8;margin-top:12px}.guide-steps .dice-stage{height:155px}.guide-formulas{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;background:#294659;border-radius:10px;padding:15px;margin:16px 0;color:#f5d98f;font-weight:800}.guide-note{font-size:14px;line-height:1.8}.guide-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.guide-two>div{background:#0a243b;padding:18px;border-radius:12px;text-align:center}.guide-two>div>img{height:120px;width:120px;object-fit:contain}.guide-cargo-example{display:flex;gap:10px;align-items:center;justify-content:center;margin:12px 0}.guide-cargo-example img{width:70px;height:50px;object-fit:contain}.guide-cargo-example strong{color:#8ee4a8;font-size:25px}.guide-coin-route{display:flex;gap:8px;justify-content:center;margin-top:20px}.guide-coin-route>div{display:flex;flex-direction:column;gap:10px;align-items:center}.guide-coin-route img{width:100%;max-width:100px;object-fit:contain}.guide-coin-sum{background:#3e4629;color:#ffe4a2;padding:12px;border-radius:9px;margin-top:18px;font-weight:800}.guide-card-pair{display:flex;gap:12px;justify-content:center;margin:15px 0}.guide-card-pair img{height:165px;width:auto;max-width:46%;object-fit:contain;border-radius:6px}.dice-cube{transform:rotateX(-36deg) rotateY(30deg)}.dice-top{background:linear-gradient(135deg,#fffdf5,#fce5a5);color:#112b40}.dice-front,.dice-right{background:linear-gradient(#e2c478,#bd9142);font-size:36px;color:#314652}.cpu-dice{width:170px}.cpu-dice .dice-stage{height:135px}.cpu-dice strong{font-size:14px}@keyframes dice-roll{0%{transform:translate(-65px,-65px) rotateX(45deg) rotateY(20deg) rotateZ(-15deg)}30%{transform:translate(40px,-45px) rotateX(420deg) rotateY(320deg) rotateZ(80deg)}65%{transform:translate(-12px,12px) rotateX(720deg) rotateY(640deg) rotateZ(-20deg)}82%{transform:translate(5px,-18px) rotateX(900deg) rotateY(900deg)}100%{transform:translate(0,0) rotateX(1044deg) rotateY(1110deg)}}@media(max-width:1150px){.player{gap:7px;padding:8px}.player-car{width:65px}.player-car>img{height:105px;max-width:65px}.player-numbers{gap:7px;font-size:13px}.player-numbers img{width:18px;height:20px}.goods-row img{width:22px;height:17px}.goods-row>span{min-width:29px;font-size:10px}.bottom-dashboard{grid-template-columns:.42fr .58fr}.dock-actions button{font-size:12px;padding:7px 9px}.player-body>strong{font-size:12px}.player .badge{width:20px;height:20px;font-size:12px}.guide-city-row{gap:7px}}@media(max-width:700px){.players{grid-template-columns:repeat(2,1fr)!important}.bottom-dashboard{grid-template-columns:1fr}.sidebar{order:-1}.reward-catalogue{grid-template-columns:repeat(2,1fr)}.guide-city-row{grid-template-columns:repeat(2,1fr)}.guide-two,.guide-steps{grid-template-columns:1fr}.map-panel svg{min-width:850px}.board-scroll{overflow:auto}.settings-pair{grid-template-columns:1fr}.vehicle-shop{gap:6px}.vehicle-shop .card-choice{padding:5px}.vehicle-shop button{font-size:12px;padding:6px 4px}.goods-row img{width:25px;height:19px}}
/* v1.0.5: controls occupy their own viewport column; the board scrolls independently. */
#game{height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden}
#game[hidden]{display:none}
#game>header{flex:none;padding:10px 12px}
#game>header strong{font-size:20px}
#game>header button{font-size:15px;min-height:40px}
#game>.players{flex:none;padding:0 12px 10px;gap:10px}
#game .player{display:flex;min-height:186px;padding:9px;gap:9px;align-items:flex-start}
#game .player-car{width:76px;flex:none}
#game .player-car>img{max-width:76px;height:110px;object-fit:contain}
#game .player-car>span{font-size:13px}
#game .player-body>strong{font-size:17px}
#game .player-numbers{font-size:17px;gap:9px}
#game .player-numbers img{width:23px;height:23px}
.goods-row{align-items:flex-start;gap:5px;min-height:25px}
.goods-row>span{font-size:13px;min-width:40px;padding-top:2px}
.goods-row>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;width:124px;max-width:100%;flex-shrink:1}
.goods-row img{display:block;width:100%;height:auto;aspect-ratio:240/146;object-fit:contain}
.goods-row em{font-size:14px;grid-column:1/-1}
#game .play-layout{display:grid;grid-template-columns:minmax(0,1fr) 274px;gap:12px;padding:0 12px 12px;flex:1;min-height:0;overflow:hidden;align-items:stretch}
#game .map-panel{display:flex;flex-direction:column;min-height:0;min-width:0;width:auto;overflow:hidden}
#game .board-toolbar{flex:none;gap:6px;flex-wrap:wrap;font-size:15px}
#game .board-toolbar .row{gap:6px;flex-wrap:wrap}
#game .board-toolbar button{font-size:14px;min-height:38px;padding:6px 9px}
#game .board-scroll{flex:1;min-height:0;max-height:none;overflow:auto;text-align:center}
#game .map-panel svg{display:block;width:100%;min-width:0;height:auto;margin:0 auto}
#game .sidebar{position:static;display:flex;flex-direction:column;gap:14px;min-height:0;max-height:none;overflow:auto;padding:16px 14px}
#game .dock-status{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
#game .dock-status>strong{font-size:20px}
#game .dock-status>span{font-size:17px;line-height:1.7}
#game .dock-actions{display:flex;flex-direction:column;align-items:stretch;gap:10px}
#game .dock-actions button{width:100%;min-height:46px;font-size:17px;padding:10px 9px}
#game .dock-actions .inline-delivery{display:block;padding:8px 0;font-size:16px}
#game .inline-delivery .row{flex-wrap:wrap;margin-top:8px}
#game .inline-delivery .row>button{width:auto;flex:1;font-size:15px}
#game .log-panel{flex:none;margin-top:8px;padding:7px 10px}
#game .log-panel>.row strong{font-size:14px}
#game .log{max-height:58px;font-size:14px;line-height:1.65}
#game .log-panel button{font-size:14px;min-height:32px}
@media(max-width:1150px){#game .play-layout{grid-template-columns:minmax(0,1fr) 240px}#game .player-car{width:60px}#game .player-car>img{max-width:60px;height:96px}#game .player{gap:6px;padding:7px}#game .player-body>strong{font-size:15px}#game .player-numbers{font-size:15px;gap:6px}.goods-row>span{font-size:12px;min-width:36px}.goods-row>div{width:112px;gap:3px}}
@media(max-width:850px){#game>.players{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px;padding-bottom:6px}#game .player{min-height:0;padding:5px}#game .player-car>img{height:85px}#game .player-numbers{margin:3px 0;gap:7px}#game>header{padding:6px 10px}#game>header strong{font-size:16px}#game>header button{font-size:13px;min-height:34px;padding:5px 7px}#game .play-layout{grid-template-columns:minmax(0,1fr) 214px;gap:8px}#game .sidebar{padding:10px}#game .dock-status>span,#game .dock-actions button{font-size:15px}#game .log-panel{display:none}}
@media(max-width:560px){#game{height:auto;min-height:100dvh;overflow:visible}#game .play-layout{display:flex;flex-direction:column;overflow:visible}#game .sidebar{order:-1;position:sticky;top:0;z-index:12;max-height:42dvh}#game .dock-status{gap:4px}#game .dock-actions{flex-direction:row;flex-wrap:wrap;gap:6px}#game .dock-actions>button{width:auto;flex:1;min-width:120px}#game .board-scroll{max-height:58dvh;flex:none}#game .player-car{width:44px}#game .player-car>img{max-width:44px}.goods-row>div{width:100px}#game .player-body>strong{font-size:14px}.goods-row>span{min-width:32px;font-size:11px}}

#game .board-toolbar{height:auto;min-height:43px;position:relative;z-index:1}
#game .map-panel:before{pointer-events:none}
#game .map-panel svg{max-height:none}
/* v1.0.6: stretch the board column to its real width, never collapse it to SVG's intrinsic 300px. */
#game{height:auto;min-height:100dvh;overflow:visible}
#game .play-layout{flex:none;min-height:0;overflow:visible;align-items:start}
#game .map-panel{display:flex;align-items:stretch;min-height:0;overflow:hidden}
#game .board-toolbar{width:100%;justify-content:space-between}
#game .board-scroll{display:block;width:100%;flex:none;min-height:0;max-height:72dvh;overflow:auto}
#game .map-panel svg{flex:none;max-width:none;max-height:none;min-width:0;height:auto}
#game .sidebar{position:sticky;top:12px;align-self:start;max-height:calc(100dvh - 24px);overflow:auto}
.reward-catalogue{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;min-width:620px}
#dialog:has(.reward-catalogue){max-width:1100px}
.reward-owner{font-size:13px;min-height:40px;display:grid;place-items:center;padding:5px}
@media(max-width:700px){.reward-catalogue{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.reward-owner{font-size:12px}}
@media(max-width:560px){#game .sidebar{top:0;max-height:42dvh}#game .board-scroll{max-height:65dvh}}
.dice-stage.top-view{height:220px;display:grid;place-items:center;perspective:none;overflow:visible}
.dice-face-top{width:150px;height:150px;display:flex;flex-direction:column;justify-content:center;align-items:center;background:linear-gradient(145deg,#fffced,#ffe6a8);color:#132e45;border:3px solid #fff5cf;border-radius:24px;box-shadow:0 9px 0 #b98732,0 17px 24px #0007}
.dice-face-top .dice-top{background:none;font-size:80px;line-height:1;font-weight:900}
.dice-face-top small{font-size:19px;font-weight:800}
.dice-face-top.dice-rolling{animation:top-dice-roll 1.1s ease-out both}
.dice-heading{text-align:center;font-size:27px}.dice-heading.dice-result{font-size:44px;color:#ffe19a}
@keyframes top-dice-roll{0%{transform:translate(-110px,-40px) rotate(-240deg) scale(.75)}25%{transform:translate(70px,24px) rotate(110deg) scale(1.1)}50%{transform:translate(-25px,-20px) rotate(250deg) scale(.92)}75%{transform:translate(12px,6px) rotate(350deg) scale(1.03)}100%{transform:translate(0,0) rotate(360deg) scale(1)}}
.cpu-dice{width:220px}.cpu-dice .dice-stage.top-view{height:195px}.cpu-dice .dice-face-top{width:120px;height:120px}.cpu-dice .dice-face-top .dice-top{font-size:68px}.cpu-dice>strong{font-size:21px}
.distance-visual{display:flex;align-items:center;justify-content:center;gap:36px;margin:16px auto 22px}
.calc-card-set{display:flex;align-items:center;justify-content:center;gap:12px}
.calc-card-set img{height:265px;width:auto;max-width:185px;object-fit:contain;border-radius:9px}
.calc-plus{font-size:34px;color:#ffe098}
.calc-time{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:185px}
.calc-time>span{font-size:17px;color:#c6dce9}.calc-time>strong{font-size:92px;line-height:1.15;color:#ffe09a}.calc-time>strong small{font-size:36px;margin-left:8px}.calc-speed{font-size:19px;text-align:center}.calc-speed b{display:block;margin-top:5px;font-size:28px;color:#fff}
.calc-question{font-size:25px;margin:15px 0}.calc{display:flex;justify-content:center;align-items:center;gap:12px;font-size:28px}.calc-tools{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:14px}.calc-tools button{font-size:15px}.calc-vehicles img{height:220px}
#dialog:has(.distance-visual){max-width:840px;text-align:center}#dialog:has(.distance-visual)>h2{font-size:28px;text-align:left}.calc-inline-correct{font-size:27px}.correct-equation{font-size:23px}
@media(max-width:650px){.distance-visual{gap:15px}.calc-card-set{gap:5px}.calc-card-set img{height:180px;max-width:126px}.calc-time{min-width:120px}.calc-time>strong{font-size:65px}.calc-time>strong small{font-size:27px}.calc-speed{font-size:15px}.calc-speed b{font-size:23px}.calc-plus{font-size:22px}.calc-question{font-size:20px}.calc-vehicles img{height:170px}}
@media(prefers-reduced-motion:reduce){.dice-face-top.dice-rolling{animation:none}}

.dice-face-top .dice-top{transform:none;position:static}
/* v1.0.9: keep title text and all menu buttons in the same landscape viewport. */
#title.screen-fit{height:auto;min-height:100dvh;padding:70px 5vw 32px;display:grid;align-items:center}
#title.screen-fit .title-inner{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.85fr);gap:clamp(24px,4vw,70px);max-width:1280px;align-items:center}
#title.screen-fit .logo-top{font-size:clamp(36px,4vw,58px)}
#title.screen-fit .logo-main{font-size:clamp(32px,4.5vw,64px);white-space:nowrap}
#title.screen-fit .title-chip{font-size:18px;margin:14px 0;padding:8px 13px}
#title.screen-fit .subtitle{font-size:18px;line-height:1.7}
#title.screen-fit .title-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#title.screen-fit .title-actions button{min-height:70px;padding:9px;font-size:17px}
#title.screen-fit .menu-caption{font-size:15px;margin-bottom:12px}
#title.screen-fit .demo-note{font-size:12px;margin-top:12px;line-height:1.6}
.title-display-tools{position:absolute;right:22px;top:18px;z-index:5;display:flex;gap:8px}
.title-display-tools button{background:#0b2946db;min-height:38px;font-size:14px;padding:7px 12px}
#title.screen-fit .title-art{opacity:.58}
@media(max-height:650px) and (min-width:850px){#title.screen-fit{padding:58px 4vw 18px}#title.screen-fit .logo-top{font-size:38px}#title.screen-fit .logo-main{font-size:48px}#title.screen-fit .title-chip{font-size:16px;margin:9px 0}#title.screen-fit .subtitle{font-size:16px;line-height:1.65}#title.screen-fit .eyebrow{font-size:12px;margin-bottom:10px}#title.screen-fit .title-actions button{min-height:62px}#title.screen-fit .title-inner h1{margin-bottom:10px}}
@media(max-width:850px){#title.screen-fit .title-inner{grid-template-columns:1fr;gap:18px;max-width:640px}#title.screen-fit{padding:66px 22px 25px}#title.screen-fit .logo-main{font-size:clamp(30px,6vw,49px)}#title.screen-fit .title-actions button{min-height:60px}#title.screen-fit .subtitle{font-size:16px}.title-display-tools{right:12px;top:12px}}
@media(max-width:500px){.distance-visual{flex-wrap:wrap}.calc-time{width:100%}}

#title.screen-fit .title-inner>div:last-child{margin-top:0}
/* v1.1.0: mission settings and the return ceremony. */
.setup-players{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}
.setup-player{background:#0c2439;border:1px solid #3c617e;padding:14px;border-radius:12px}
.setup-player>.row{flex-wrap:nowrap}.setup-player input{width:100%;min-width:0;padding:10px}
.cpu-options{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:10px}.cpu-options label{font-size:14px;display:flex;flex-direction:column;gap:6px}.cpu-options select{width:100%;min-width:0;padding:9px 7px}
.mission-options{background:#092137;padding:17px;border-radius:12px;margin:16px 0}.mission-options>p{font-size:14px;color:#c6dbe7}
.goods-settings{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:15px 0}.goods-settings label{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:13px}.goods-settings img{width:100%;max-width:120px;aspect-ratio:240/146;object-fit:contain}.goods-settings select{width:100%;padding:9px;font-size:15px}.finish-setting{display:flex;align-items:center;gap:14px;margin-top:18px;flex-wrap:wrap}.finish-setting select{flex:1}
.player-car small{font-size:10px;text-align:center;color:#f4ddb1;line-height:1.4}
.finish-notice{text-align:center;padding:15px}.result-medal{font-size:80px;line-height:1.2;filter:drop-shadow(0 0 20px #f4ce6970)}
.dialog.result-dialog{max-width:1100px;padding:34px;background:radial-gradient(ellipse at 50% 0,#34586d,#102b43 55%,#08192e);border:2px solid #d0ad57;box-shadow:0 0 80px #d6ac342a,0 24px 90px #000c;position:relative;overflow:auto}
.results{position:relative;text-align:center}.result-eyebrow{color:#f7dc96;letter-spacing:.25em;font-size:17px;font-weight:800;margin:12px 0 25px}
.result-champion{display:flex;justify-content:center;align-items:center;gap:28px;margin:15px 0}.result-champion h2{font-size:clamp(28px,4vw,46px);color:#fff5c4}.result-champion strong{font-size:24px;color:#f4d17b}.result-champion>img{height:200px;max-width:150px;object-fit:contain;transform:rotate(5deg);filter:drop-shadow(0 10px 20px #0007)}.result-summary{font-size:21px;color:#e8dbc0;margin:18px 0 24px}
.ranking-list{display:grid;gap:10px;margin:24px auto;max-width:920px}.ranking-row{display:grid;grid-template-columns:90px minmax(0,1fr) 130px 90px;align-items:center;gap:16px;text-align:left;background:#081c2ebd;border:1px solid #7a8d92;border-left:7px solid var(--pc);padding:14px 18px;border-radius:12px;font-size:18px}.rank-number{font-size:23px;color:#f4d79a}.ranking-row:first-child{background:linear-gradient(100deg,#a97d2435,#264153);border-color:#b9944d}.result-actions{justify-content:center;gap:14px;margin-top:26px}.result-actions button{font-size:17px;min-height:48px}
.result-sparkles{position:absolute;inset:0;pointer-events:none;overflow:hidden;opacity:.7}.result-sparkles i{position:absolute;left:var(--x);top:-10px;width:5px;height:12px;background:#f7da82;transform:rotate(30deg);animation:ceremony-sparkle 2.4s ease-out var(--delay) both}.result-sparkles i:nth-child(3n){background:#87d8ee}.result-sparkles i:nth-child(2n){background:#f2a78e}@keyframes ceremony-sparkle{from{transform:translateY(-20px) rotate(0);opacity:1}to{transform:translateY(500px) rotate(320deg);opacity:0}}
.dialog.result-details-dialog{max-width:1260px;padding:28px}.result-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:20px 0}.result-player{padding:20px;background:#0b233a;border:1px solid #4a677f;border-top:5px solid var(--pc);border-radius:13px}.result-player>h3{font-size:22px}.result-player-main{display:flex;gap:20px;align-items:center;margin:15px 0 20px}.result-player-main>img{width:120px;max-height:190px;object-fit:contain}.result-player-main p{line-height:1.85;margin:12px 0}.result-used-cards{display:flex;gap:9px;flex-wrap:wrap}.result-used-cards>div{width:calc(25% - 7px);display:flex;flex-direction:column;gap:6px}.result-used-cards img{width:100%;object-fit:contain;border-radius:5px}.result-used-cards span{font-size:11px;text-align:center}
.delivery-row{grid-template-columns:minmax(90px,1fr) repeat(var(--city-slots,2),minmax(70px,100px))}.delivery-row img{max-width:100%;width:80px}
@media(max-width:700px){.setup-players,.result-details{grid-template-columns:1fr}.goods-settings{gap:7px}.goods-settings label{font-size:11px}.goods-settings select{padding:8px 3px;font-size:13px}.result-champion{gap:12px;flex-wrap:wrap}.result-champion>img{height:140px}.result-medal{font-size:60px}.ranking-row{grid-template-columns:65px minmax(0,1fr) 85px;gap:8px;font-size:14px;padding:12px}.ranking-row>span:last-child{display:none}.rank-number{font-size:18px}.dialog.result-dialog{padding:20px}.result-summary{font-size:17px}.result-player{padding:14px}.result-player-main{gap:12px}.result-player-main>img{width:95px}.result-player-main p{font-size:14px}}
@media(prefers-reduced-motion:reduce){.result-sparkles i{animation:none}}

.other-token-muted{transition:opacity .2s ease}
#game [hidden]{display:none!important}
.reach-preview{margin-top:5px;border-top:1px solid #3d657e;padding-top:13px;font-size:14px;color:#e2eef4}
.reach-preview>strong{font-size:16px}.reach-preview>p{color:#b7d1df;font-size:12px;line-height:1.6;margin:6px 0 10px}.reach-direction{font-size:12px;color:#91d9e1;margin:9px 0 5px}
.reach-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 7px;padding:5px 0;border-bottom:1px solid #294d64}.reach-row strong{font-size:13px;font-weight:600}.reach-row small{grid-column:1/-1;color:#b9ceda;font-size:12px}.reach-row.reachable-now strong{color:#70e8f3}
/* v1.2.0: city celebrations, readable city swapping and earned achievements. */
.cpu-options{grid-template-columns:1fr}
.mission-fx{position:fixed;inset:0;z-index:70;display:grid;place-items:center;background:#031226a8;padding:24px;pointer-events:auto}
.mission-fx[hidden]{display:none}
.mission-burst{position:relative;isolation:isolate;width:min(960px,100%);min-height:420px;border:3px solid #efd17b;border-radius:22px;box-shadow:0 0 90px #f4cc6355,0 28px 90px #000a;overflow:hidden;background:var(--mission-scene) center/cover;display:flex;justify-content:center;align-items:center;gap:30px;padding:36px;animation:city-mission-pop .45s cubic-bezier(.15,.85,.3,1.2) both}
.mission-burst:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,#09233ba3,#031c34d9)}
.mission-city-art img{width:220px;height:220px;object-fit:contain;filter:drop-shadow(0 0 25px #ffeb9b80)}
.mission-content{text-align:center}.mission-content>div:first-child{font-size:clamp(24px,4vw,43px);font-weight:900;letter-spacing:.03em;color:#ffe79f;text-shadow:0 4px 0 #735525,0 0 24px #ffde7166}.mission-content h2{font-size:30px;margin:15px 0 10px}.mission-content>p{font-size:18px}.mission-reward{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:18px}.mission-reward img{height:145px;width:auto;object-fit:contain;transform:rotate(-7deg)}.mission-reward strong{font-size:21px;color:#ffdda3}
@keyframes city-mission-pop{0%{opacity:0;transform:scale(.76)}75%{opacity:1;transform:scale(1.025)}100%{opacity:1;transform:scale(1)}}
.swap-city-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin:16px 0}.swap-city{display:flex;flex-direction:column;align-items:center;gap:9px;position:relative;padding:15px;border:2px solid #597c93}.swap-city.selected{border-color:#ffe09a;background:#32536a;box-shadow:0 0 0 2px #ffe09a60}.swap-city>img{width:120px;height:120px;object-fit:contain}.swap-city>strong{font-size:18px}.swap-city>.cargo-list{justify-content:center}.swap-city>.cargo-list img{width:44px;height:29px}.swap-deliveries{width:100%;font-size:13px;display:grid;gap:6px}.swap-deliveries>div{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:5px;align-items:center;text-align:left}.swap-deliveries .badge{width:22px;height:22px;font-size:12px}
.achievement-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0}.achievement{display:flex;gap:12px;align-items:flex-start;border:1px solid #516d84;border-radius:13px;padding:16px;background:#0b2135}.achievement>span{font-size:37px}.achievement h3{font-size:17px}.achievement p{font-size:13px;line-height:1.7;color:#c9dce8;min-height:44px}.achievement strong{font-size:13px}.achievement.unlocked{border-color:#d3b971;background:linear-gradient(120deg,#6d54272e,#17384d)}.achievement.unlocked strong{color:#ffe29a}.achievement.locked>span{filter:grayscale(1);opacity:.5}.achievement.locked strong{color:#92aabb}
.future-guide{cursor:pointer}.future-guide:hover{stroke-width:9;stroke-opacity:.95}
@media(max-width:700px){.mission-fx{padding:15px}.mission-burst{padding:20px;gap:13px;min-height:380px}.mission-city-art img{width:130px;height:130px}.mission-content h2{font-size:23px}.mission-content>p{font-size:15px}.mission-reward img{height:115px}.mission-reward strong{font-size:16px}.achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.achievement{padding:12px;gap:8px}.achievement>span{font-size:29px}.swap-city-grid{gap:8px}.swap-city{padding:10px}.swap-city>img{width:92px;height:92px}.swap-city>strong{font-size:15px}.swap-deliveries{font-size:11px}}
@media(max-width:440px){.mission-city-art{display:none}.achievement-grid{grid-template-columns:1fr}.swap-city-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.mission-burst{animation:none}}

.future-hit{cursor:pointer}

.board-pick-token,.board-pick-city{cursor:pointer}.board-pick-token:hover ellipse,.board-pick-city:hover>circle:first-child{stroke:#ffda66}.board-chosen-city{display:flex;gap:10px;align-items:center;padding:12px 0}.board-chosen-city>img{width:70px;height:85px;object-fit:contain}.board-chosen-city small{display:block}.board-chosen-city .cargo-list img{width:38px;height:28px;object-fit:contain}

/* v1.2.2: board image keeps its artwork; surrounding space matches the game. */
#game .map-panel,#game .board-scroll{background:#0b263d}
#game .log-panel{margin-top:0;background:#0b263d;border-top:1px solid #36536b}

/* Room entry and waiting room */
.room-entry-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0}.room-entry-grid>section{background:#0b243b;border:1px solid #52708a;border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:14px}.room-name{display:flex;gap:12px;align-items:center}.room-entry-grid input{width:100%;font-size:22px}.room-shell{max-width:1050px;margin:auto;padding:22px}.room-code-display{display:flex;align-items:center;justify-content:center;gap:20px;padding:25px;background:#12334b;border-radius:14px;margin:20px 0}.room-code-display strong{font-size:65px;color:#ffe09a;letter-spacing:.13em}.room-seats{display:grid;grid-template-columns:1fr 1fr;gap:15px}.room-seat{border:1px solid #56748a;border-left:6px solid var(--pc);background:#102b44;display:flex;align-items:center;gap:12px;border-radius:12px;padding:16px;flex-wrap:wrap}.room-seat>div{flex:1}.room-seat p{font-size:14px;margin:5px 0 0;color:#bcd3e1}.room-settings{background:#102c44;border-radius:12px;padding:20px;margin:20px 0}.room-start{justify-content:center}.room-start>.gold{min-width:230px;font-size:22px;min-height:60px}#room-status{display:inline-block;margin-left:10px;color:#ffe09a}#room-status[hidden],#room-controls[hidden]{display:none}svg .token{pointer-events:auto;cursor:pointer}#game .player-body{min-width:0}
@media(max-width:700px){.room-entry-grid,.room-seats{grid-template-columns:1fr}.room-shell{padding:12px}.room-code-display{gap:12px;flex-wrap:wrap}.room-code-display strong{font-size:48px}.room-settings .row{align-items:stretch}.room-settings .row>label{width:100%}}

.room-size{display:flex;align-items:center;gap:12px;margin-bottom:12px}
