.island-map{position:relative;isolation:isolate;aspect-ratio:3/2;background:#fbf3e6;overflow:hidden}
.island-art{width:100%;height:100%;display:block;object-fit:contain}
.island-train{position:absolute;z-index:2;width:12%;aspect-ratio:1;pointer-events:none;transform:translate(-50%,calc(-1 * var(--train-anchor,85%))) scale(var(--train-scale,1));transform-origin:50% var(--train-anchor,85%);will-change:left,top}
.island-locomotive{display:block;width:100%;height:100%;background-image:url('assets/island/train-directions.png');background-size:400% 200%;background-repeat:no-repeat}
.island-stop{position:absolute;z-index:3;transform:translate(-50%,-100%);display:flex;gap:7px;align-items:center;justify-content:center;min-height:44px;padding:7px 12px;border-radius:12px;background:#fffef4f2;border:2px solid white;box-shadow:0 3px 12px #254a4028;font-size:14px;font-weight:700;white-space:nowrap;transition:background .15s}
.island-stop:hover,.island-stop.is-selected{background:#ffdf7a;border-color:#e8ad3a}
.stop-dot{width:9px;height:9px;border-radius:50%;background:#d97837;flex:none}
.island-stop.is-selected .stop-dot{background:#254a40}
.map-bottom.island-controls{align-items:flex-start;flex-direction:column;gap:12px}
.island-controls>div{display:flex;align-items:center;flex-wrap:wrap;gap:10px;width:100%}
.island-controls #island-status{margin:0;font-size:16px;min-height:28px;font-weight:600}
.island-controls button,.island-controls a{font-size:14px;min-height:44px;padding:8px 12px}
.island-controls #island-skip{margin-left:auto;text-decoration:underline;text-underline-offset:3px}
.island-controls [hidden],.island-map [hidden]{display:none!important}
.home-layout:has(.island-map){grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr);align-items:start}
.home-layout:has(.island-map) .map-card{min-height:0}
.home-layout:has(.island-map) .destination{min-height:215px}
@media(max-width:1000px){.home-layout:has(.island-map){grid-template-columns:1fr}.home-layout:has(.island-map) .destinations{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.home-layout:has(.island-map) .destination{min-height:195px;padding:16px}}
@media(max-width:580px){.island-stop{font-size:14px;padding:5px 7px;gap:4px}.stop-dot{width:6px;height:6px}.map-caption span{display:none}.home-layout:has(.island-map) .destinations{grid-template-columns:repeat(2,minmax(0,1fr))}.island-train{width:14%}.map-bottom.island-controls{padding:16px}.island-controls #island-skip{margin-left:0}}
@media(prefers-reduced-motion:reduce){.island-stop{transition:none}}
