/* Painted geography + editable board route, confined to the existing game frame. */
.illustrated-map{display:grid;grid-template-columns:minmax(0,1fr) 202px;background:#0a3346;border-color:#859773;isolation:auto;overflow:hidden}
.island-stage{position:relative;min-width:0;min-height:0;overflow:hidden;background:#0b3c50;border-right:1px solid #7a8863}
.island-stage::before{content:"";position:absolute;inset:-14px;background:linear-gradient(90deg,#07374b55,#07374b22 25%,#07374b22 75%,#07374b55),url('../art/maps/island-terrain-005.optimized.jpg?v=010p5') center/cover no-repeat;filter:blur(10px) brightness(.72) saturate(.8);transform:scale(1.025)}
.illustrated-map .island-stage svg{position:absolute;z-index:1;inset:0;width:100%;height:100%;overflow:hidden}
.illustrated-map .road-shadow{fill:none;stroke:#48382288;stroke-width:17;stroke-linecap:round;stroke-linejoin:round}
.illustrated-map .board-road{fill:none;stroke:#e9d4a7;stroke-width:10;stroke-linecap:round;stroke-linejoin:round}
.road-arrow{fill:none;stroke:#514129;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.illustrated-map .tile-hit{fill:transparent;pointer-events:none}.illustrated-map .tile-depth{fill:#5c5141;stroke:#473e33;stroke-width:2}.illustrated-map .tile-face{fill:#f0e5c5;stroke:#857554;stroke-width:2}.illustrated-map .city .tile-face{fill:#f0ce82;stroke:#715630;stroke-width:3}
.illustrated-map .node .tile-number{fill:#243b30;stroke:none;font-size:24px;font-weight:800;text-anchor:middle}.illustrated-map .node .tile-symbol{stroke:none;font-size:19px;text-anchor:middle}
.illustrated-map .node:hover .tile-face,.illustrated-map .node:focus .tile-face{fill:#fff6d6;stroke:#fff9c9;stroke-width:5}.illustrated-map .destination .tile-face{fill:#fff3a5;stroke:#fffce2;stroke-width:5;filter:drop-shadow(0 0 8px #ffe99a)}.illustrated-map .occupied .tile-face{stroke:#345d48;stroke-width:4}
.city-leader{stroke:#253e2e;stroke-width:3;fill:none;pointer-events:none}.city-label rect{fill:#193c2eee;stroke:#e1cc8c;stroke-width:2}.illustrated-map .node .city-label text{fill:#fff3ce;font-size:23px;font-weight:700;text-anchor:middle;stroke:none}.island-pawn{filter:drop-shadow(0 3px 3px #0008)}
.map-caption{position:absolute;z-index:2;left:12px;top:10px;font-size:10px;letter-spacing:1px;color:#f5e4ad;text-shadow:0 1px 3px #032e42;pointer-events:none}.map-caption span{display:block;font-family:Georgia,serif;font-size:18px;letter-spacing:3px}.map-caption b{font-weight:400;color:#c0e2dd;margin-left:6px}
.island-legend{position:absolute;z-index:2;bottom:8px;left:10px;display:flex;gap:10px;align-items:center;padding:4px 8px;border:1px solid #70918788;border-radius:5px;background:#103d44d9;color:#eee5c8;font-size:9px;pointer-events:none}.island-legend small{font-size:9px;color:#bed1ba}
.island-status{position:relative;min-height:0;background:linear-gradient(150deg,#284630,#142e24);padding:12px 12px 42px;display:flex;flex-direction:column}
.illustrated-map .map-center{position:static;inset:auto;display:flex;flex:1;min-height:0;align-items:stretch;justify-content:flex-start;text-align:left;gap:7px;pointer-events:auto}.illustrated-map .map-center>small{font-size:9px;letter-spacing:2px}.illustrated-map .map-center h2{font-size:18px;white-space:nowrap}.journey{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#dce1c8;border-bottom:1px solid #62764f;padding-bottom:6px}.journey b{font-size:15px;color:#ebcf8b}.journey b small{font-size:9px;letter-spacing:0;font-weight:400}
.illustrated-map .dice{display:flex;gap:7px;min-height:27px;margin:0;align-items:center;font-size:17px;letter-spacing:0}.illustrated-map .dice span{width:27px;height:27px;background:#f0e4c4;color:#25402e;border-radius:5px;border-bottom:3px solid #b4a27c;text-align:center;font-weight:800}.illustrated-map .dice em{font-size:11px;color:#afc3a7;font-style:normal}.landing-preview{font-size:10px;color:#e2c68c}.illustrated-map .event{font-size:10px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:29px;color:#c8d5be}.illustrated-map .goal{margin-top:auto;padding-top:8px;border-top:1px solid #62764f}.illustrated-map .goal small{display:block;font-size:9px;letter-spacing:1px;color:#afc39f}.illustrated-map .goal strong{display:block;font-size:12px;color:#e0c381;margin:3px 0}.illustrated-map .goal p{font-size:10px;line-height:1.5}
.illustrated-map .map-tools{position:absolute;bottom:9px;top:auto;left:12px;right:12px;justify-content:space-between}.illustrated-map .map-tools button,.illustrated-map .map-tools select{font-size:10px;padding:3px 6px}
@media(min-height:850px){.illustrated-map{grid-template-columns:minmax(0,1fr) 224px}.island-status{padding:18px 16px 46px}.illustrated-map .map-center{gap:12px}.illustrated-map .map-center h2{font-size:22px}.illustrated-map .event{font-size:12px;line-height:1.6;-webkit-line-clamp:3}.illustrated-map .goal strong{font-size:15px}.illustrated-map .goal p{font-size:12px}.illustrated-map .dice span{width:32px;height:34px;font-size:22px}.landing-preview{font-size:12px}.map-caption{top:14px;left:16px}.map-caption span{font-size:22px}.island-legend{font-size:11px;padding:6px 10px;bottom:10px}.island-legend small{font-size:10px}}
.movement-trail{fill:none;stroke:#fff2ac;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;stroke-dasharray:12 7;animation:routeFlow .8s linear infinite;filter:drop-shadow(0 0 5px #fff0b4)}.teleport-trail{stroke:#bce5ff;stroke-dasharray:5 12}@keyframes routeFlow{to{stroke-dashoffset:-38}}.island-status .map-tools{flex-wrap:wrap}
