:root{--paper:#f3f1e9;--ink:#242b27;--muted:#626c64;--line:#cbd0c4;--a:#b8492b;--b:#345f80;--font:Arial,Helvetica,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.4 var(--font)}button,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button,select,a{-webkit-tap-highlight-color:transparent}button:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #a24927;outline-offset:4px}button{border:0;background:none}a{color:inherit;text-decoration:none}.shell{max-width:1560px;margin:auto;padding:0 42px}header{height:96px;display:flex;align-items:center;gap:25px;border-bottom:1px solid var(--ink)}.publisher b{font-size:24px;letter-spacing:-1.3px;display:block;line-height:1.1}.publisher b span{margin-left:9px;color:var(--a)}.publisher small{font-size:10px;letter-spacing:1.6px}.edition{font:12px monospace;display:flex;align-items:center;gap:8px;margin-left:auto;margin-right:30px}.edition b{font:38px Georgia,serif}.text-button{font-size:14px;padding:12px 0}.text-button span{margin-left:14px}.title-line{display:flex;align-items:center;justify-content:space-between;padding:24px 0 23px;border-bottom:1px solid var(--ink);gap:20px}h1{font-family:Impact,'Arial Narrow',Arial,sans-serif;font-size:clamp(44px,6vw,86px);letter-spacing:-1.5px;font-weight:900;line-height:1;margin:0;display:flex;align-items:center;gap:.16em}h1 span{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-weight:400;letter-spacing:-4px;font-size:.95em}h1 i{height:.53em;width:.22em;border:2px solid var(--a);border-top:8px solid var(--a);margin-left:.18em;transform:rotate(14deg)}.title-line>p{font:11px/1.8 monospace;letter-spacing:1px;margin:0}.title-line>p span{font:15px Georgia,serif;letter-spacing:0}.itinerary{display:flex;justify-content:space-between;align-items:center;padding:26px 0 24px;gap:20px}.eyebrow{font:11px/1.5 monospace;letter-spacing:1.6px;margin:0 0 8px}h2{font:30px/1.12 Georgia,serif;letter-spacing:-.6px;margin:0}#city-pair span{color:var(--a);font:26px Arial;padding:0 12px}.trip-note{color:var(--muted);font-size:13px;margin:8px 0 0}.setup{display:grid;grid-template-columns:auto auto;gap:1px 25px;align-items:center}.setup label{font:10px monospace;letter-spacing:1.5px;grid-column:1/-1;color:var(--muted)}select{padding:8px 28px 8px 0;border:none;border-bottom:1px solid var(--ink);border-radius:0;background:transparent;font-size:14px;min-height:44px}.scoreboard{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-bottom:none}.driver-status{padding:16px 24px;border-top:3px solid transparent;opacity:.76}.driver-status+div{border-left:1px solid var(--line)}.driver-status.active{opacity:1;background:#e9e9df}.status-0.active{border-top-color:var(--a)}.status-1.active{border-top-color:var(--b)}.driver-label{display:flex;align-items:center;gap:9px;font-size:14px}.driver-letter{border:1px solid currentColor;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;font-size:12px;color:var(--a)}.status-1 .driver-letter{color:var(--b)}.status-caption{margin-left:auto;font:10px monospace;letter-spacing:1px}.range{display:flex;align-items:center;gap:16px;margin-top:10px}.range strong{font:30px Georgia,serif}.range small{font-size:12px;color:var(--muted)}.range>small{margin-left:auto}.battery{display:flex;height:18px;gap:3px;padding:3px;border:1px solid var(--a);position:relative;flex:1;max-width:128px}.battery:after{content:'';position:absolute;right:-4px;top:4px;height:8px;width:3px;background:var(--a)}.battery i{flex:1;background:#dcded4}.battery .filled{background:var(--a)}.status-1 .battery{border-color:var(--b)}.status-1 .battery:after,.status-1 .battery .filled{background:var(--b)}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;border:1px solid var(--line)}.atlas{position:relative;min-width:0;display:flex;flex-direction:column;background:#efeee5}.map-top{height:54px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid #d1d5ca;position:relative;z-index:1}.map-top>span{font:10px monospace;letter-spacing:1.2px;display:flex;align-items:center;gap:15px}.locator{width:85px;height:37px}.locator path{fill:#d1d6c9;stroke:#919a89;stroke-width:.7}.locator .locator-route{fill:none;stroke:var(--a);stroke-width:1.7}.locator circle{fill:var(--a)}.zoom-controls{display:flex;gap:4px}.zoom-controls button{border:1px solid #c6cbbd;min-width:34px;min-height:34px;font:14px monospace}.map-window{display:flex;align-items:center;flex:1;overflow:hidden;min-height:400px}.map-window>svg{width:100%;display:block;max-height:640px}.state-label{fill:#7c897c;opacity:.75;font:9px Arial;letter-spacing:2.5px;text-anchor:middle}.road-under{fill:none;stroke:#efeee5;stroke-width:7}.road{fill:none;stroke:#a5ad9f;stroke-width:2.5;stroke-linecap:round}.road.owner-0{stroke:var(--a);stroke-width:5}.road.owner-1{stroke:var(--b);stroke-width:5;stroke-dasharray:8 3}.road.available{stroke:#53604d;stroke-width:3}.road.selected{stroke:#252e27;stroke-width:5}.road-hit{stroke:transparent;stroke-width:22;fill:none;cursor:pointer}.charger rect{fill:#ecede3;stroke:#515e50;stroke-width:1.5}.charger path{stroke:#515e50;stroke-width:2;fill:none}.move-number{cursor:pointer}.move-number circle{fill:#f5f3ec;stroke:#3f4e3e;stroke-width:1.5}.move-number text{font:bold 11px Arial;fill:#263326}.move-number.chosen circle{fill:#273b2c}.move-number.chosen text{fill:#fff}.city circle{fill:#f5f3ec;stroke:#303d30;stroke-width:2}.city text{font:19px Georgia;fill:#263026;paint-order:stroke;stroke:#efeee5;stroke-width:6;stroke-linejoin:round}.city text.city-kicker{font:8px Arial;letter-spacing:1.1px}.driver circle{fill:var(--a);stroke:var(--paper);stroke-width:3}.driver-1 circle{fill:var(--b)}.driver text{font:bold 11px Arial;fill:#fff}.map-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #d1d5ca;padding:16px;gap:15px}.legend{display:flex;gap:18px;font-size:11px}.legend span{display:flex;align-items:center;gap:7px}.road-key{width:19px;border-top:2px solid #7f8c78}.charge-key{font-style:normal;font-size:11px;border:1px solid #515e50;padding:0 3px;border-radius:2px}.position-key{width:10px;height:10px;background:var(--a);border-radius:50%}.map-bottom>small{font:8px monospace;letter-spacing:.5px}.decision{padding:26px 24px;background:#f8f7f0;border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:580px}.turn-heading h2{font-size:29px}.turn-heading>p:last-child{font-size:14px;color:var(--muted);line-height:1.5;margin:12px 0 20px}#move-list{display:grid}.move{display:flex;align-items:center;text-align:left;width:100%;padding:15px 0;border-top:1px solid var(--line);gap:12px;transition:background .15s}.move:hover:not(:disabled){background:#e9ede2}.move.is-selected{background:#e6e9dc;box-shadow:inset 3px 0 #465940;padding-left:8px;padding-right:8px}.move-index{width:24px;height:24px;border:1px solid #8a9681;border-radius:50%;font:12px/22px monospace;text-align:center;flex:none}.move b{font-size:14px;font-weight:500}.move small{display:block;font-size:11px;line-height:1.5;color:var(--muted);margin-top:2px}.move>strong{margin-left:auto;text-align:right;font:20px Georgia}.move>strong small{font:10px Arial}.selection{padding:17px 0;margin-top:auto;min-height:76px}.selection>span{display:block;font:10px monospace;letter-spacing:1px}.selection>b{font:26px Georgia}.selection small{font:12px Arial;color:var(--muted)}.selection p{font-size:12px;color:var(--muted);line-height:1.6;margin:0}.selection .warning{color:#943b26;margin-top:6px}.drive{background:var(--ink);color:#fff;width:100%;min-height:50px;padding:14px 18px;text-align:left;display:flex;align-items:center;justify-content:space-between;font-size:14px;transition:background .15s}.drive:hover:not(:disabled){background:#415039}.drive:disabled{opacity:1;background:#dfe2d7;color:#777f70}.activity{margin-top:22px;border-top:1px solid var(--line);padding-top:14px}.activity>span{font:9px monospace;letter-spacing:1.3px;color:var(--muted)}.activity p{font-size:12px;color:var(--muted);margin:5px 0 0;line-height:1.5}.field-note{display:flex;align-items:center;gap:25px;padding:20px 0;border-bottom:1px solid var(--ink)}.field-note>span{font:10px monospace;letter-spacing:1px;white-space:nowrap}.field-note p{font:15px/1.5 Georgia,serif;margin:0;max-width:650px}.field-note>span:last-child{margin-left:auto;color:var(--muted)}footer{display:flex;justify-content:space-between;gap:20px;padding:22px 0 28px;font:10px monospace;letter-spacing:.6px;color:var(--muted)}dialog{background:var(--paper);color:var(--ink);border:1px solid #929b8a;max-width:560px;width:calc(100% - 32px);padding:34px;max-height:90dvh;overflow:auto}dialog::backdrop{background:#15241bbb;backdrop-filter:blur(4px)}dialog h2{font-size:36px}dialog p,dialog li{font-size:15px;line-height:1.6}dialog ol{padding-left:22px}dialog li{padding:0 0 16px 5px}dialog li b{display:block}.close{position:absolute;right:12px;top:9px;font-size:28px;width:44px;height:44px}.dialog-actions{display:flex;gap:15px}.dialog-actions>button{flex:1;font-size:14px}.finish-note{border-top:1px solid var(--line);padding-top:20px;font-size:14px}.finish-note p{font-size:14px;color:var(--muted);line-height:1.6}.match-score{display:flex;justify-content:space-around;padding:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font:14px monospace}.match-score b{font:42px Georgia;padding-left:10px} @media(min-width:1450px){.game-layout{grid-template-columns:minmax(0,1fr) 350px}.decision{padding:28px 30px}.map-window{min-height:520px}}@media(max-width:1100px){.shell{padding:0 24px}.game-layout{grid-template-columns:minmax(0,1fr) 285px}.decision{padding:22px 18px}.map-bottom>small{display:none}.range{gap:10px}.range>small{display:none}.title-line>p{display:none}.map-window{min-height:440px}.map-window svg{min-height:440px}}@media(max-width:760px){.shell{padding:0 16px}header{height:74px;gap:12px}.publisher b{font-size:21px}.publisher small{font-size:8px}.edition{margin-right:0;gap:5px}.edition b{font-size:28px}.text-button{font-size:12px}.title-line{padding:20px 0}h1{font-size:clamp(35px,8.3vw,61px);letter-spacing:-1px;gap:.13em}h1 span{letter-spacing:-2px}h1 i{border-top-width:5px}.itinerary{padding:20px 0 18px;display:block}.itinerary h2{font-size:26px}#city-pair span{font-size:23px;padding:0 4px}.trip-note{font-size:12px}.setup{margin-top:16px;grid-template-columns:1fr auto;gap:0 14px}.setup label{display:none}select{font-size:14px}.scoreboard{margin-top:0}.driver-status{padding:12px 10px}.driver-label{font-size:12px;gap:6px}.status-caption{display:none}.driver-letter{width:21px;height:21px}.range{gap:8px;margin-top:7px;flex-wrap:wrap}.range strong{font-size:28px}.range small{font-size:10px}.battery{min-width:66px;max-width:90px;height:15px;gap:2px;padding:2px}.battery:after{top:3px;height:7px}.game-layout{display:flex;flex-direction:column}.atlas{order:0}.map-top{height:45px;padding:0 10px}.map-top>span{font-size:8px;letter-spacing:.6px;gap:5px}.locator{width:65px;height:30px}.zoom-controls button{min-width:36px;min-height:36px}.map-window{min-height:290px;max-height:350px}.map-window>svg{min-height:290px;max-height:350px}.map-bottom{padding:11px 10px}.legend{font-size:10px;gap:16px}.decision{border-left:0;border-top:1px solid var(--line);min-height:0;padding:20px 16px}.turn-heading h2{font-size:28px}.turn-heading>p:last-child{margin:9px 0 17px}.move{min-height:65px}.move b{font-size:15px}.move small{font-size:12px}.move>strong{font-size:24px}.move-index{width:28px;height:28px;line-height:26px}.selection{min-height:68px;padding:14px 0}.drive{min-height:52px;font-size:16px}.activity{margin-top:16px;padding-top:10px}.field-note{align-items:start;gap:12px;flex-wrap:wrap;padding:18px 0}.field-note p{font-size:14px;flex:1}.field-note>span:last-child{display:none}footer{font-size:8px;flex-wrap:wrap;gap:8px;padding:18px 0}.state-label{font-size:11px;letter-spacing:1px}.city text{font-size:24px}.city text.city-kicker{font-size:11px}.road{stroke-width:3.5}.charger rect{stroke-width:2}.driver circle{r:15}.driver text{font-size:14px}.move-number circle{r:14}.move-number text{font-size:14px}dialog{padding:26px 24px}dialog h2{font-size:32px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.publisher{flex-shrink:0}.publisher b,.publisher small,.text-button{white-space:nowrap}
@media(max-width:370px){header{gap:8px}.publisher b{font-size:18px}.publisher small{font-size:7px;letter-spacing:1px}.edition{font-size:9px;gap:3px}.edition b{font-size:23px}header .text-button{font-size:11px}header .text-button span{display:none}.map-top .locator{display:none}.map-top>span{white-space:nowrap;font-size:8px}#turn-number{letter-spacing:.6px;font-size:10px}.setup .text-button span{margin-left:4px}}
/* v0.2 — a legible street mesh; gold always means charging, even on claimed roads. */
.road-under{stroke:#f7f6ee;stroke-width:13}.road{stroke:#8f978b;stroke-width:4.5;stroke-linecap:round}.road.powered{stroke:#cc9b26;stroke-width:10}.available-outline{fill:none;stroke:#263a2c;stroke-width:15;stroke-dasharray:2 6;stroke-linecap:round;opacity:.8}.claimed{fill:none;stroke-width:5;stroke-linecap:round}.claimed.owner-0{stroke:var(--a)}.claimed.owner-1{stroke:var(--b);stroke-dasharray:8 3}.charger rect{fill:#f4c64e;stroke:#735519;stroke-width:1.5}.charger path{stroke:#463511;stroke-width:2.4}.junction circle{fill:#f9f7ed;stroke:#5b6758;stroke-width:2.5}.junction.reachable circle{stroke:#263a2c;stroke-width:3.5}.junction text{font:11px monospace;fill:#4e5b4c;paint-order:stroke;stroke:#f4f2e9;stroke-width:4px;stroke-linejoin:round}.road-hit{stroke-width:23;cursor:default}.road-hit.can-drive{cursor:pointer}.road-hit.can-drive:hover{stroke:#253c2422}.driver circle{r:15;stroke-width:3}.driver text{font-size:13px}.state-label{opacity:.48}.powered-key{background:#cc9b26;color:#362b13;display:inline-flex;justify-content:center;align-items:center;min-width:23px;height:13px;font:bold 13px monospace;font-style:normal}.owner-key{width:22px;border-top:4px solid var(--a)}.b-key{border-color:var(--b);border-top-style:dashed}.power-text{color:#7e5810}.legend{flex-wrap:wrap;gap:10px 18px}.map-bottom{align-items:flex-start}.map-bottom>small{max-width:120px;line-height:1.5}.powered-option{box-shadow:inset 4px 0 #cc9b26;padding-left:10px}.powered-option small{color:#785411;font-weight:bold}#road-controls{border-top:1px solid var(--line);margin:0 0 18px}#road-controls summary{font-size:13px;cursor:pointer;padding:16px 0;min-height:48px}#road-controls .move{padding-right:6px}.selection{margin-top:0;min-height:0;border-top:1px solid var(--line)}.selection p{font-size:14px;line-height:1.7}.decision{min-height:0}.activity{margin-top:auto;padding-top:18px}.drive[hidden],[hidden]{display:none!important}.map-window{min-height:420px}.map-window>svg{max-height:620px}.city text{font-size:18px}.city text.city-kicker{font-size:9px}
@media(max-width:760px){.map-window{min-height:330px;max-height:420px}.map-window>svg{min-height:330px;max-height:420px}.junction circle{r:8}.junction text{font-size:14px}.road-hit{stroke-width:20}.legend{font-size:11px;gap:10px 15px}.road{stroke-width:5}.road.powered{stroke-width:11}.charger rect{stroke-width:2}.activity{margin-top:10px}.selection{padding:12px 0}.decision{padding:20px 16px}.city text{font-size:23px}.city text.city-kicker{font-size:11px}}
/* v0.4 — fixed, orthogonal board with mileage on every segment. */
.grid-coordinate{font:15px monospace;fill:#596556;paint-order:stroke;stroke:#f1f1e8;stroke-width:5px}.grid-footnote{font:12px monospace;letter-spacing:.8px;fill:#626b5d}.mileage rect{fill:#faf9f3;stroke:#b7beb0;stroke-width:1}.mileage text{font:600 16px Arial,sans-serif;fill:#27342a}.charging-mileage rect{fill:#f2c85c;stroke:#9b751d}.charging-mileage text{fill:#3d300d}.road{stroke-width:5}.road.powered{stroke-width:8}.road-under{stroke:#f1f1e8;stroke-width:13}.junction circle{fill:#f9f8f0;stroke:#566350;stroke-width:2.5}.city text{font-size:23px;stroke:#f1f1e8}.city text.city-kicker{font:11px monospace;letter-spacing:1.4px}.city text.endpoint-label{font:bold 12px Arial;letter-spacing:1px}.available-outline{stroke-width:14;stroke-dasharray:2 7}.map-bottom>small{font-size:11px;max-width:none;white-space:nowrap}.map-window>svg{width:100%;min-height:0}.map-window{min-height:420px}.atlas{background:#f1f1e8}
@media(max-width:760px){.map-window{min-height:330px}.map-window>svg{min-height:330px}.junction circle{r:6}.grid-coordinate{font-size:16px}.mileage text{font-size:16px}.city text{font-size:23px}.map-bottom>small{display:block;font-size:10px}.map-bottom{flex-wrap:wrap}.grid-footnote{font-size:12px}}
/* Map-first atlas: mileage is ink on roads, not a matrix of cells. */
.mileage text{font:600 13px Arial,sans-serif;fill:#455141;paint-order:stroke;stroke:#efeee5;stroke-width:5px;stroke-linejoin:round}.charging-mileage text{fill:#5b4210;stroke:#efeee5}.next-mileage text{font-size:16px;fill:#182c1c;stroke-width:6px}.road{stroke:#9aa68f;stroke-width:3.5}.road.powered{stroke:#c99a26;stroke-width:7}.road-under{stroke:#efeee5;stroke-width:10}.junction circle{r:5;stroke-width:2;fill:#f8f6ec}.junction.reachable circle{r:7;stroke-width:3}.state-label{font:10px Arial;letter-spacing:2px;fill:#80917b;opacity:.75;text-anchor:middle}.north-mark path{fill:none;stroke:#65745f;stroke-width:1.5}.north-mark text{fill:#65745f;font:12px monospace}.city text{stroke:#efeee5;font-size:21px}.atlas{background:#efeee5}@media(max-width:760px){.mileage text{font-size:15px}.next-mileage text{font-size:18px}.junction circle{r:6}}
.city,.driver,.north-mark{pointer-events:none}
.road-hit{stroke-width:10}@media(max-width:760px){.road-hit{stroke-width:10}}
.map-route-labels{display:flex;justify-content:space-between;gap:24px;padding:12px 18px;border-bottom:1px solid var(--line);font:16px Georgia,serif;background:var(--paper)}.map-route-labels span{max-width:48%}.map-route-labels span:last-child{text-align:right}.map-route-labels b{font:10px monospace;letter-spacing:1px;display:block;margin-bottom:3px;color:var(--muted)}.city.endpoint text{font:bold 12px Arial;stroke:none;fill:#33432e}.city.endpoint circle{stroke:#45533d;fill:#f7f5ec;stroke-width:2.5}@media(max-width:760px){.map-route-labels{font-size:14px;padding:10px 12px;gap:12px}.map-route-labels b{font-size:9px}}
/* Stepped roads: stronger ink, quiet geography, and distinct circular junctions. */
.road-under{stroke:#faf8f0;stroke-width:12;stroke-linejoin:round}.road{stroke:#747e73;stroke-width:4.5;stroke-linejoin:round}.road.powered{stroke:#c99a26;stroke-width:8}.claimed{stroke-linejoin:round}.available-outline{stroke:#283c32;stroke-width:12;stroke-dasharray:none;opacity:.85;stroke-linejoin:round}.junction circle{r:6;stroke:#455247;stroke-width:2.5;fill:#fffdf5}.junction.reachable circle{r:8;stroke-width:3}.state-label{opacity:.38}.mileage text{font-size:15px;fill:#29352e;stroke:#faf8f0;stroke-width:7px;font-variant-numeric:tabular-nums}.charging-mileage text{fill:#654608}.next-mileage text{font-size:17px;fill:#172d22;stroke-width:8px}@media(max-width:760px){.mileage text{font-size:17px}.next-mileage text{font-size:19px}}
/* Evenly spaced schematic roads: small mileage tabs interrupt a single road,
   while circular junctions alone indicate connections. */
.mileage rect{fill:#faf8f0;stroke:none}.mileage text{font:600 12px Arial,sans-serif;fill:#37423a;stroke:none}.charging-mileage rect{fill:#e6ba52}.charging-mileage text{fill:#44340d}.next-mileage rect{fill:#fffdf6;stroke:#34483c;stroke-width:1.3}.next-mileage text{font-size:12px;fill:#182b20}.next-mileage.charging-mileage rect{fill:#e6ba52}.city-terminal{fill:#e4e6dc;stroke:#566357;stroke-width:2}.available-outline{stroke-width:9;opacity:1}.road{stroke-width:3.5}.road.powered{stroke-width:6}.junction circle{r:5;stroke-width:2}.junction.reachable circle{r:6;stroke-width:2.5}.state-label{opacity:.25}.road-hit{stroke-width:14}
@media(max-width:760px){.mileage text,.next-mileage text{font-size:12px}.map-window,.map-window>svg{min-height:410px;max-height:480px}.map-window>svg{height:410px}.junction circle{r:5}}
.claimed.opponent-road{stroke-width:8;stroke-dasharray:3 5;stroke-linecap:butt}.closed-mileage rect{fill:#345f80;stroke:#faf8f0;stroke-width:2}.closed-mileage.owner-0 rect{fill:#b8492b}.closed-mileage text{fill:#fff;font:bold 12px Arial,sans-serif}.mileage.closed-mileage text{stroke:none}
.map-window{height:580px;min-height:580px;max-height:580px}.map-window>svg{height:100%;max-height:none;min-height:0}.mileage text,.next-mileage text{font-size:14px}.mileage rect{rx:4}.road-under{stroke-width:14}.junction circle{r:7}.junction.reachable circle{r:8}.city-terminal{stroke-width:2.5}@media(max-width:760px){.map-window{height:430px;min-height:430px;max-height:430px}.map-window>svg{height:100%;min-height:0;max-height:none}}
#closure-key{display:block;font:12px/1.5 Arial,sans-serif;letter-spacing:0;margin-top:6px;text-transform:none;white-space:normal}.map-bottom>small{white-space:normal}
/* Give the trip its geographic context without crowding the playable roads. */
.journey-overview{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(200px,1fr);gap:28px;border-top:1px solid var(--line);padding:22px 0 26px;align-items:center}.journey-map{min-width:0}.journey-map .eyebrow{color:var(--muted)}.journey-map svg{display:block;width:100%;max-height:260px}.us-land path{fill:#e0e3d8;stroke:#a8b1a4;stroke-width:.85}.trip-line{fill:none;stroke:#48594b;stroke-width:2.5;stroke-dasharray:5 4;stroke-linejoin:round}.trip-markers circle{fill:#fcfaf2;stroke:#273b2e;stroke-width:2.5}.trip-markers text{fill:#273b2e;font:bold 13px Arial}.journey-cities>div{display:flex;gap:12px;align-items:center;margin:18px 0}.place-code{display:inline-flex;width:28px;height:28px;border:1.5px solid #34473a;border-radius:50%;justify-content:center;align-items:center;font:bold 12px Arial;flex:none}.journey-cities p{margin:0}.journey-cities small{font:10px monospace;letter-spacing:1px;display:block;color:var(--muted);margin-bottom:6px}.journey-cities strong{font:24px/1.2 Georgia,serif;display:block}.journey-note{font:13px/1.6 Arial;color:var(--muted);padding-top:8px}@media(max-width:760px){.journey-overview{display:block;padding:18px 0}.journey-map svg{max-height:210px}.journey-cities{display:grid;grid-template-columns:1fr 1fr;gap:12px}.journey-cities>div{align-items:flex-start;margin:8px 0;gap:7px}.journey-cities strong{font-size:16px}.journey-cities small{font-size:9px;letter-spacing:.5px}.place-code{width:23px;height:23px;font-size:10px}.journey-note{grid-column:1/-1;font-size:12px}.journey-note br{display:none}}
.trip-markers circle{fill:#35493a;stroke:#fffdf6;stroke-width:2}.trip-markers .place-map-label{font:600 20px Arial;fill:#2d4033;paint-order:stroke;stroke:#f3f1e9;stroke-width:5px;stroke-linejoin:round}.place-dot{width:10px;height:10px;background:#35493a;border:2px solid #35493a;border-radius:50%;flex:none;margin-top:4px}.destination-dot{background:transparent}.city.endpoint .terminal-label{font:600 14px Arial;fill:#34473a;paint-order:stroke;stroke:#efeee5;stroke-width:5px;stroke-linejoin:round}
/* City names carry the geography; state outlines stay visible below the roads. */
.state-label{fill:#677762;opacity:.65;font-size:13px;letter-spacing:1.7px}.city.endpoint .terminal-label{font:600 16px Arial;stroke:#f3f1e9;stroke-width:6px}.trip-markers .place-map-label{font-size:20px}.journey-cities>div{align-items:baseline}
/* Quiet routine mileage; reserve bordered labels for immediate choices/closures. */
.mileage:not(.next-mileage):not(.closed-mileage) rect{fill:transparent;stroke:none}.mileage:not(.next-mileage):not(.closed-mileage) text{paint-order:stroke;stroke:#f5f4eb;stroke-width:4px;stroke-linejoin:round}.mileage.charging-mileage:not(.next-mileage):not(.closed-mileage) text{fill:#5d4612}.next-mileage rect{stroke-width:1.5}.road-under{stroke-width:10}.city-terminal{fill:#eceee4;stroke:#4d5d50;stroke-width:2}
/* Claimed roads remain unmistakable over both ordinary and charging segments. */
.claimed{stroke-width:9;stroke-linejoin:round;stroke-linecap:round}.claimed.owner-0{stroke:#aa351c;stroke-dasharray:none}.claimed.owner-1{stroke:#164f7b;stroke-dasharray:none}.claimed.opponent-road{stroke-width:11;stroke-dasharray:9 4;stroke-linecap:butt}.closed-mileage rect{fill:#164f7b;stroke:#fffdf5;stroke-width:3}.closed-mileage.owner-0 rect{fill:#aa351c}.closed-mileage text{font-weight:800;fill:#fff}.owner-key{border-top-color:#aa351c;border-top-width:6px}.b-key{border-top-color:#164f7b;border-top-style:solid}.road-key{border-top-color:#747e73}
.claim-halo{fill:none;stroke:#fffdf5;stroke-width:15;stroke-linejoin:round;stroke-linecap:round;pointer-events:none}
.mileage.owned-recharge:not(.closed-mileage) rect{fill:#e6ba52;stroke:#72571e;stroke-width:1;x:-23px;width:46px}.mileage.owned-recharge:not(.closed-mileage) text{stroke:none;fill:#49340a}
/* Charging is a place you reach, never a property of the road. */
.station rect{fill:#edbc46;stroke:#795b1b;stroke-width:2.5}.station path{fill:#513b0e;stroke:none;pointer-events:none}.station.reachable rect{stroke:#354b3b;stroke-width:3}.driver-tether{fill:none;stroke:#34473a;stroke-width:2;pointer-events:none}.route-preview{margin:0;padding:12px 16px;border-top:1px solid var(--line);font:13px/1.5 Arial;min-height:44px;background:#f8f6ee}.powered-key{width:20px;height:20px;border-radius:4px;border:1px solid #795b1b;background:#edbc46}

.publisher img{display:block;width:200px;height:auto}@media(max-width:760px){.publisher img{width:150px}}@media(max-width:370px){.publisher img{width:133px}}

/* Race for Ohm: a quiet connector joins two balanced title treatments. */
.title-line{flex-direction:column;align-items:flex-start;gap:13px;padding:28px 0 25px}
.title-line h1{display:flex;align-items:baseline;gap:.14em;font-size:clamp(48px,6vw,86px);white-space:nowrap;letter-spacing:-.025em;line-height:1}
.title-line h1 .race{font:inherit;letter-spacing:inherit}
.title-line h1 .for{font:500 .27em/1 Arial,Helvetica,sans-serif;letter-spacing:.07em;align-self:center;margin:0 .15em;transform:translateY(.08em)}
.title-line h1 .ohm{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-weight:400;letter-spacing:-.045em;font-size:1.08em;line-height:1}
.title-line h1 sup{font:11px Arial,Helvetica,sans-serif;align-self:flex-start;margin-top:.55em;margin-left:.05em;letter-spacing:0}
.title-line>.tagline{display:block;margin:0;font:16px/1.5 Georgia,serif;letter-spacing:0;color:var(--muted);text-align:left}
@media(max-width:760px){.title-line{gap:12px;padding:22px 0}.title-line h1{font-size:clamp(38px,11.5vw,61px)}.title-line>.tagline{font-size:14px;max-width:100%}.title-line h1 sup{font-size:9px}}

/* A persistent strategic overview accompanies the readable close-up. */
.network-overview[hidden]{display:none}.network-overview{position:sticky;top:0;z-index:4;background:#efeee5;border-bottom:1px solid #aeb6a8;box-shadow:0 3px 8px #242b2714}
.overview-caption{display:flex;align-items:center;gap:12px;padding:6px 12px;font:11px Arial}.overview-caption b{font:10px monospace;letter-spacing:1px}.overview-caption span{color:#626c64}.overview-caption button{margin-left:auto;min-height:36px;text-decoration:underline;white-space:nowrap}
#overview-map{height:180px;cursor:crosshair;touch-action:pan-y}#overview-map svg{display:block;width:100%;height:100%}#overview-map .mileage,#overview-map .state-label,#overview-map .north-mark,#overview-map .terminal-label{display:none}#overview-map .road-hit{pointer-events:none}#overview-map .road{stroke-width:2;vector-effect:non-scaling-stroke}#overview-map .claimed{stroke-width:3;vector-effect:non-scaling-stroke}#overview-map .driver circle{r:19}#overview-map .driver text{font-size:19px}#overview-map .view-frame{fill:#345f800b;stroke:#242b27;stroke-width:2;stroke-dasharray:5 3;vector-effect:non-scaling-stroke;pointer-events:none}
@media(max-width:760px){
 .shell{padding:0 10px}.map-window{height:300px;min-height:300px;max-height:300px}.map-top{height:48px}.zoom-controls button{min-width:44px;min-height:44px}.map-route-labels{font-size:13px;padding:8px 10px}.overview-caption{gap:6px;padding:3px 8px}.overview-caption span{font-size:10px}#overview-map{height:160px}
 .map-window .mileage text,.map-window .next-mileage text{font-size:17px}.map-window .mileage rect{width:40px;height:24px;x:-20px;y:-12px}.map-window .road-hit{stroke-width:24}.map-window .driver circle{r:17}.map-window .driver text{font-size:17px}
 .journey-overview{display:flex;gap:12px;padding:12px 0}.journey-map{width:42%;flex:none}.journey-map svg{max-height:110px}.journey-map .eyebrow{font-size:8px;letter-spacing:.5px}.journey-cities{display:block}.journey-cities strong{font-size:14px}.journey-note{font-size:10px}.decision{padding:16px 12px}.selection{display:none}.turn-heading>p:last-child{margin-bottom:12px}.map-bottom{padding:8px}.legend{gap:8px;font-size:10px}.route-preview{padding:8px 12px;font-size:12px}
 #road-controls summary{font-size:14px}.move{padding:12px 4px;min-height:64px}.map-window .state-label{opacity:.3}
}
@media(max-width:1000px) and (max-height:500px){.game-layout{display:block}.decision{border-left:0;min-height:0}.map-window{height:300px;min-height:300px;max-height:300px}#overview-map{height:120px}.overview-caption{padding:2px 12px}.journey-overview{padding:12px 0}.journey-map svg{max-height:120px}}
#overview-map .driver circle{r:28}#overview-map .driver text{font-size:27px}

/* Make the strategic view readable at actual phone pixel sizes. */
#overview-map{min-height:200px}#overview-map svg>path{opacity:.3}#overview-map .road{stroke:#3f4c42;stroke-width:2.2}#overview-map .road-under{stroke:#fffdf5;stroke-width:4;vector-effect:non-scaling-stroke}#overview-map .available-outline{stroke:#242b27;stroke-width:4;vector-effect:non-scaling-stroke}#overview-map .junction circle{stroke:#344338;stroke-width:1.3;vector-effect:non-scaling-stroke;fill:#fffdf4}#overview-map .claim-halo{stroke-width:5;vector-effect:non-scaling-stroke}#overview-map .claimed{stroke-width:3.5}#overview-map .view-frame{fill:none;stroke:#242b27;stroke-width:1.5;stroke-dasharray:4 3}#overview-map .station rect{fill:#ffc43d;stroke:#694e13;stroke-width:1;vector-effect:non-scaling-stroke}
#new-race{background:var(--ink);color:white;border-radius:3px;min-height:48px;padding:12px 18px;font-weight:700;white-space:nowrap}.map-new-game{margin-left:auto;margin-right:10px;padding:8px 10px;border:1px solid #899483;border-radius:3px;font-size:12px;min-height:40px;white-space:nowrap}.map-top{gap:6px}.overview-caption b{font-weight:700}
@media(max-width:760px){.map-top>span{display:none}.map-new-game{margin-left:0;margin-right:auto;background:#242b27;color:#fff;border-color:#242b27;min-height:44px;padding:10px 14px;font-weight:700}.setup{gap:10px}#new-race{font-size:14px}.overview-caption{flex-wrap:wrap}.overview-caption span{font-size:11px}}
#overview-map svg>.road,#overview-map svg>.road-under,#overview-map svg>.available-outline,#overview-map svg>.claimed,#overview-map svg>.claim-halo{opacity:1}

.rotation-hint{margin:0;padding:0 10px 6px;font:12px/1.4 Arial;color:#485348}.rotation-hint[hidden]{display:none}

.choice-badge{cursor:pointer}.choice-badge circle{fill:#fffdf3;stroke:#233e30;stroke-width:2}.choice-badge text{font:bold 12px Arial;fill:#203527;pointer-events:none}.choice-badge.picked circle{fill:#242b27;stroke:#fff}.choice-badge.picked text{fill:white}.selected-road{stroke:#d96023;stroke-width:7;fill:none;vector-effect:non-scaling-stroke;pointer-events:none}.zoom-controls button[aria-pressed=true]{background:#242b27;color:white}
@media(max-width:1000px){
 .game-layout{display:block}.network-overview{display:none!important}.shell{padding:0 10px}.map-top{height:auto;min-height:54px;flex-wrap:wrap;padding:5px 8px}.map-top>span{display:none}.zoom-controls{display:flex;gap:3px}.zoom-controls button{font-size:12px;min-height:44px;min-width:36px;padding:6px}.map-new-game{margin:0 auto 0 0;min-height:44px;font-size:12px;background:#242b27;color:white;padding:8px}.map-route-labels{padding:6px 10px;font-size:13px}
 .map-window{height:clamp(260px,44svh,400px);min-height:260px;max-height:400px}.whole-phone .mileage{display:none}.whole-phone .road{stroke:#4c5b4f;stroke-width:2;vector-effect:non-scaling-stroke}.whole-phone .road-under{stroke-width:4;vector-effect:non-scaling-stroke}.whole-phone .claimed{stroke-width:3;vector-effect:non-scaling-stroke}.whole-phone .state-label{display:none}.whole-phone .junction circle{stroke-width:1;vector-effect:non-scaling-stroke}.whole-phone .road-hit{stroke-width:18}.map-bottom{padding:5px 8px}.map-bottom>small,.route-preview{display:none}.legend{font-size:10px;gap:10px}.decision{padding:10px;border-left:0;min-height:0}.turn-heading h2{font:20px Georgia;margin:0}.turn-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.turn-heading .eyebrow{font-size:9px;margin:0}.turn-heading>p:last-child{display:none}#road-controls summary{padding:5px 0;font-size:12px}#move-list{grid-template-columns:1fr 1fr;gap:5px}.move{border:1px solid #aeb7aa;border-radius:3px;padding:8px!important;min-height:62px;gap:6px}.move b{font-size:11px}.move small{font-size:10px}.move>strong{font:bold 18px Arial}.move>strong small{font-size:9px}.move-index{width:22px;height:22px;line-height:20px;font-weight:bold;flex:none}.move.is-selected{background:#e0e8d8;box-shadow:inset 0 0 0 2px #273b2e}.selection{display:none}.drive{margin-top:8px;min-height:48px}.activity{margin-top:7px;padding-top:5px}.activity>span{display:none}.activity p{font-size:11px}.field-note{display:none}
 header{height:55px}.title-line{padding:12px 0;gap:6px}.title-line h1{font-size:38px}.title-line .tagline{font-size:12px}.itinerary{padding:12px 0}.itinerary h2{font-size:21px}.journey-overview{padding:6px 0}.journey-map svg{max-height:75px}.journey-note{display:none}.journey-cities strong{font-size:12px}.driver-status{padding:8px}.range strong{font-size:24px}
}
@media(max-width:1000px) and (orientation:landscape){.map-window{height:55svh;min-height:200px;max-height:360px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px}.decision{border-left:1px solid var(--line)}#move-list{grid-template-columns:1fr}.move{min-height:52px}.map-new-game{font-size:11px}.map-top{gap:3px}.zoom-controls button{padding:4px;font-size:11px;min-width:30px}}

#trip-summary{display:none}@media(max-width:1000px){#trip-summary{display:list-item;font:13px/1.5 Arial;padding:10px 4px;cursor:pointer;border-bottom:1px solid var(--line)}.title-line{padding:9px 0}.title-line h1{font-size:34px}.title-line .tagline{font-size:11px}header{height:50px}.map-window .whole-phone .terminal-label{display:none}.whole-phone .station rect{stroke-width:1;vector-effect:non-scaling-stroke}.whole-phone .driver circle{stroke-width:1.5;vector-effect:non-scaling-stroke}}

@media(max-width:1000px){.move b{font-size:12px}.move small{font-size:11px}.turn-heading>p:last-child{display:block;flex-basis:100%;font-size:12px;margin:0 0 4px}.turn-heading{gap:5px 10px}}

.phone-bar,.phone-phase{display:none}
@media(max-width:1000px){
 html,body{height:100%;overscroll-behavior-y:none}.shell{height:100svh;min-height:580px;max-width:none;padding:0 8px;display:flex;flex-direction:column;overflow:hidden}.shell>header,.shell>.title-line,.shell>footer{display:none}.phone-bar{height:40px;min-height:40px;display:flex;align-items:center;gap:4px;border-bottom:1px solid var(--line)}.phone-bar b{font:bold 17px Arial;margin-right:auto;letter-spacing:-.5px}.phone-bar i{font:bold italic 20px Georgia}.phone-bar sup{font:8px Arial;vertical-align:super}.phone-bar button{font-size:12px;min-height:40px;padding:8px}.shell>main{display:flex;flex-direction:column;flex:1;min-height:0}
 #trip-details:not([open]){display:none}#trip-details[open]{position:fixed;z-index:20;inset:42px 8px auto;background:var(--paper);border:1px solid var(--ink);padding:12px;max-height:calc(100svh - 55px);overflow:auto;box-shadow:0 12px 25px #0003}#trip-summary{font-weight:bold}#trip-details[open] .journey-overview{display:flex}.scoreboard{flex:none}.driver-status{padding:5px 8px;display:flex;align-items:center;justify-content:space-between;gap:5px}.driver-label{font-size:11px}.range{margin:0;gap:3px;flex-wrap:nowrap}.range strong{font:bold 21px Arial}.range .battery,.range>small{display:none}.range small{font-size:9px}.driver-letter{width:18px;height:18px;font-size:11px}
 .game-layout{display:flex;flex-direction:column;flex:1;min-height:0}.atlas{flex:1;min-height:0}.map-top{height:38px;min-height:38px;padding:0 4px;flex:none}.zoom-controls{display:none!important}.phone-phase{display:block;font:11px monospace;color:#465246}.map-new-game{min-height:32px;height:32px;padding:6px 10px;margin-left:auto;margin-right:0}.map-route-labels{flex:none;font:12px/1.2 Georgia;padding:5px 7px}.map-window{flex:1;height:auto;min-height:0;max-height:none}.map-window>svg{min-height:0;max-height:none;height:100%;width:100%}.map-bottom{flex:none;padding:4px 6px}.legend{font-size:9px;gap:9px}.legend .powered-key{width:15px;height:15px}.route-preview{display:block;flex:none;font:11px/1.3 Arial;min-height:0;margin:0;padding:4px 7px}
 .decision{flex:none;min-height:0;padding:6px 4px;border-top:1px solid var(--line);max-height:48svh;overflow:auto}.turn-heading{gap:3px}.turn-heading h2{font:17px Georgia}.turn-heading .eyebrow{display:none}.turn-heading>p:last-child{font-size:11px;line-height:1.3;margin:0 0 3px}#road-controls>summary{display:none}#move-list{gap:4px}.move{min-height:55px;padding:6px!important}.move b{font:bold 13px Arial}.move small{font-size:11px;line-height:1.2}.move>strong{font:bold 20px Arial}.move>strong small{font-size:10px}.move-index{font:bold 13px/22px Arial;width:25px;height:25px}.drive{min-height:44px;margin-top:5px;padding:10px 12px}.activity{display:none}.selection{display:none}
 .whole-phone .road{stroke:#394c3e;stroke-width:2.3}.whole-phone .junction circle{stroke:#344237;stroke-width:1.3}.whole-phone .claimed{stroke-width:4}.whole-phone .state-label{display:none}.whole-phone .choice-badge circle{stroke-width:2}.whole-phone .choice-badge.picked circle{fill:#242b27}
}
@media(max-width:1000px) and (orientation:landscape){.shell{min-height:320px}.phone-bar{height:34px;min-height:34px}.phone-bar button{min-height:34px}.driver-status{padding:3px 8px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;min-height:0}.atlas{height:100%;min-height:0}.decision{height:100%;max-height:none;overflow:auto;border-left:1px solid var(--line)}#move-list{grid-template-columns:1fr 1fr}.move{min-height:67px;flex-wrap:wrap;gap:3px}.move-index{width:21px;height:21px;line-height:19px}.move>strong{font-size:17px}.move small{font-size:10px}.move b{font-size:12px}.map-window{height:auto;min-height:0;max-height:none}.phone-phase{font-size:10px}.route-preview{font-size:10px}}
.map-top>.phone-phase{display:none}@media(max-width:1000px){.map-top>.phone-phase{display:block}.shell{padding-bottom:env(safe-area-inset-bottom)}}

@media(max-width:1000px) and (orientation:landscape){#move-list{grid-template-columns:1fr}.move{display:flex;flex-wrap:nowrap;min-height:46px;padding:4px 6px!important;gap:6px}.move>strong{margin-left:auto;white-space:nowrap}.move>span:nth-child(2){flex:1}.turn-heading>p:last-child{font-size:10px}.drive{min-height:40px;margin-top:4px;padding:8px 10px}.decision{padding:4px}.move small{font-size:10px}}

@media(max-width:1000px){
 .decision.direct-play{display:none}.game-layout{display:flex;flex-direction:column}.atlas{flex:1;width:100%}.whole-phone .road-hit{pointer-events:none}.whole-phone .phone-drive-hit{pointer-events:stroke;stroke-width:44;cursor:pointer}.phone-open-road{stroke:#006c70;stroke-width:7;fill:none;vector-effect:non-scaling-stroke;pointer-events:none}.whole-phone .available-outline{stroke:#eafff4;stroke-width:13;vector-effect:non-scaling-stroke}.drive-on-map{cursor:pointer}.drive-on-map .tap-area{fill:transparent;pointer-events:all}.drive-on-map .tap-label{fill:#006c70;stroke:#fffdf3;stroke-width:2;pointer-events:none}.drive-on-map text{fill:#fff;font:bold 15px Arial;pointer-events:none}.drive-on-map .tap-unit{font:10px Arial}.drive-on-map:focus .tap-label{stroke:#edbd43;stroke-width:4}.map-window .whole-phone .city-terminal{stroke-width:1.5;vector-effect:non-scaling-stroke}.whole-phone .city.endpoint text{display:none}.route-preview{font-size:13px;font-weight:bold;color:#005a5e;padding:8px;min-height:34px;text-align:center;background:#f5f8f0}.map-window{touch-action:manipulation!important}.map-top>.phone-phase{display:block}.phone-bar button{min-width:44px}.map-new-game{min-height:36px}.shell{min-height:500px}
}
@media(max-width:1000px) and (orientation:landscape){.shell{min-height:300px}.game-layout{display:flex}.atlas{height:auto}.decision:not(.direct-play){position:absolute;right:8px;bottom:8px;z-index:6;width:270px;height:auto;max-height:75svh;box-shadow:0 0 15px #0003}.route-preview{font-size:11px;padding:4px;min-height:23px}}

.tap-tether{fill:none;stroke:#006c70;stroke-width:2;stroke-dasharray:3 2;vector-effect:non-scaling-stroke;pointer-events:none}

@media(max-width:1000px){.status-caption{display:none}.driver-label b,.range>span{white-space:nowrap}.range{flex-shrink:0}.map-top{min-height:46px;height:46px}.map-new-game{height:44px;min-height:44px}.phone-bar button{min-height:40px}}

.phone-upgrade{display:none}@media(max-width:1000px){.phone-upgrade:not([hidden]){display:block;font:12px/1.35 Arial;margin:0;padding:8px;background:#eee3c9}.whole-phone .north-mark{display:none}.whole-phone .road{stroke-width:3}.whole-phone .junction circle{stroke-width:1.7}.whole-phone .station rect{stroke-width:1.4;vector-effect:non-scaling-stroke}.map-top>.phone-phase{font-size:10px}}

@media(max-width:1000px){.whole-phone .drive-on-map>text{font:bold 12px Arial;fill:#00565a;stroke:#faf8ef;stroke-width:4px;paint-order:stroke fill;stroke-linejoin:round;pointer-events:none}.whole-phone .phone-open-road{stroke-width:5}}

#difficulty-setting{display:flex;flex-direction:column;gap:5px}#difficulty-setting[hidden]{display:none}#difficulty-note{max-width:250px;font:12px/1.4 Arial;color:#526054}#difficulty{min-height:44px}

#difficulty-setting label{display:block;font:10px/1.4 Arial;letter-spacing:.08em}
