.start-bottom{gap:18px;padding-bottom:max(28px,env(safe-area-inset-bottom));flex-direction:column}.mode-card{position:relative;display:grid;place-items:center;width:186px;height:164px;border:4px solid #fff6c9;border-radius:32px;box-shadow:0 7px 0 #2c563d60,0 12px 27px #142f403d;background:linear-gradient(140deg,#c7e866,#70b359)}.mode-card>img{width:137px;height:111px;object-fit:contain;margin-top:-13px}.mode-go{position:absolute;right:18px;bottom:15px;font-size:28px;color:#fff}.player-greeting{position:absolute;left:14px;right:48px;bottom:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;color:#fffef0;font-weight:950;font-size:17px;text-shadow:0 2px 1px #3f704b}.start-shortcuts{display:flex;align-items:center;gap:18px}.park-entry{display:flex;align-items:center;gap:12px;border:3px solid #fff5be;border-radius:23px;background:#ffd25f;padding:8px 17px;box-shadow:var(--shadow);font-size:42px}.park-entry span{font-size:23px;color:#6e6943}.save-home{background:#eef6dfeb}.name-onboarding{pointer-events:auto;width:min(410px,calc(100% - 34px));margin-bottom:max(46px,env(safe-area-inset-bottom));padding:23px;border:4px solid #fff8d5;border-radius:31px;background:#fffceeea;box-shadow:0 9px 0 #274c3e4f,0 21px 42px #17383b46;text-align:center;backdrop-filter:blur(8px)}.name-onboarding label>span{display:block;margin-bottom:13px;font-size:clamp(25px,6vw,35px);font-weight:1000;color:#315d48}.name-onboarding input{width:100%;min-height:62px;border:3px solid #b7d68c;border-radius:20px;background:#fffef5;padding:9px 16px;text-align:center;font-size:25px;font-weight:900;color:#315443}.name-onboarding small{display:block;margin:10px 0 3px;color:#627a62;font-size:12px;font-weight:750}.name-onboarding p{margin:8px 0 0!important;color:#a44d43!important;font-weight:850}.name-start{width:100%;min-height:62px;margin-top:17px;border-radius:20px;background:linear-gradient(#80bb5c,#4f914b);color:#fffdf1;font-size:21px;font-weight:950;box-shadow:0 5px 0 #376b3d5c;display:flex;align-items:center;justify-content:center;gap:18px}.name-start:disabled{opacity:.46;filter:grayscale(.35)}.save-heading{display:flex;gap:14px;align-items:flex-start;margin:0 38px 20px 0}.save-heading>span{font-size:35px}.save-heading h2{font-size:25px;margin:1px 0 4px}.save-heading p{font-size:14px;line-height:1.4;color:#718165;margin:0}.save-grid{display:grid;gap:10px}.save-card{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:12px;text-align:left;padding:13px;border:3px solid #dce5c8;border-radius:19px;background:#f4f5df;color:#40563d}.save-card.active{border-color:#77a45c;background:#e4f0cf}.save-card.empty{border-style:dashed}.save-card-icon{font-size:31px;text-align:center}.save-card strong,.save-card small{display:block}.save-card strong{font-size:17px}.save-card small{font-size:13px;color:#708069;margin-top:4px;line-height:1.3}.save-card b{font-size:12px;color:#4d7d42}.save-note{font-size:13px;color:#7b8870;margin:15px 4px 4px}.danger{background:#b96553;box-shadow:0 4px 0 #7a3e3740}.destination-button{position:absolute;left:24px;bottom:29px;width:105px;height:105px;border:4px solid #fff9dc;background:linear-gradient(#b8e4d9,#70c6bc);box-shadow:0 7px 0 #2c7a7857;border-radius:33px;font-size:52px}.destination-button>span{position:absolute;bottom:3px;right:3px;font-size:27px}.at-home .destination-button{display:none!important}.destination-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.destination-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:116px;border:3px solid #e6e8c5;border-radius:24px;background:#f5eccd;gap:8px}.destination-card img{width:70px;height:65px;object-fit:contain}.destination-card>span{font-size:42px}.destination-card>b{font-size:21px;color:#567747}.destination-card.build{background:#ffe4b0;border-color:#f4cb75}.destination-card.play{background:#d9e9f7;border-color:#adcfdf}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:18px}.project-card{position:relative;display:flex;flex-direction:column;align-items:center;border:3px solid #f2d384;border-radius:24px;background:#fff0bd;padding:10px 8px}.project-card img{width:100%;height:120px;object-fit:contain}.project-card>span:first-child{font-size:35px}.project-card.completed{background:#e0efc9;border-color:#a1bd77}.project-card .drive{display:block;width:100%;margin-top:7px;font-size:22px;border-radius:13px;background:#6a9a55;color:#fff;padding:8px}.project-dots{display:flex;gap:4px;justify-content:center;margin:8px}.project-dots i{width:8px;height:8px;border-radius:50%;background:#d4ca98}.project-dots i.done{background:#75a24a}.menu-grid:has(>button:nth-child(10)){grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.menu-grid:has(>button:nth-child(10))>button{grid-column:auto!important}.menu-grid:has(>button:nth-child(10)) .menu-button{min-height:75px}.menu-grid:has(>button:nth-child(10)) .menu-button>span{font-size:33px}.auto-mode .action-button{background:linear-gradient(#ffeaa0,#f8c955)}.auto-mode .guide-focus{outline:none;box-shadow:var(--shadow)}
.new-game-entry{display:flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:7px 16px;border:2px solid #fff7d8;border-radius:17px;background:#fffceddf;color:#385b48;box-shadow:0 4px 0 #2d513a40}.new-game-entry span{font-size:20px}.new-game-entry strong{font-size:14px;font-weight:950}
@media(max-width:600px){.game-logo{margin-top:clamp(22px,5dvh,50px)}.game-logo h1{font-size:34px}.start-bottom{gap:18px;padding-bottom:30px}.mode-card{width:168px;height:150px}.mode-card>img{width:123px;height:101px}.start-shortcuts{gap:12px}.park-entry{font-size:32px;padding:6px 11px;gap:7px}.park-entry span{font-size:19px}.name-onboarding{padding:18px;margin-bottom:max(31px,env(safe-area-inset-bottom))}.name-onboarding input{min-height:57px;font-size:23px}.destination-button{left:18px;bottom:29px;width:96px;height:96px;font-size:47px;border-radius:30px}.destination-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.destination-card{min-height:100px;border-radius:19px}.destination-card>span{font-size:34px}.destination-card img{width:58px;height:57px}.project-card img{height:106px}.save-heading{margin-right:30px}.save-card{grid-template-columns:41px 1fr auto;padding:11px;gap:9px}.save-card-icon{font-size:27px}.menu-grid:has(>button:nth-child(10)){grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.menu-grid:has(>button:nth-child(10)) .menu-button{min-height:61px;border-radius:15px}.menu-grid:has(>button:nth-child(10)) .menu-button>span{font-size:26px}.vehicle-pill{max-width:140px}.view-tools{flex-shrink:0}.hud{gap:7px}#cargo-label{font-size:12px;max-width:43px;overflow:hidden}.vehicle-pill img{width:60px}}
@media(max-width:350px){.mode-card{width:150px;height:137px}.menu-grid:has(>button:nth-child(10)){grid-template-columns:repeat(4,minmax(0,1fr))}.destination-grid{gap:7px}.project-card img{height:89px}}
@media(max-height:520px) and (min-width:600px){.start-bottom{align-self:flex-end;margin-right:34px;padding-bottom:20px;gap:14px}.mode-card{height:134px;width:158px}.mode-card>img{height:89px}.start-shortcuts{gap:22px}.home-tool{height:47px;width:47px}.park-entry{font-size:29px;padding:4px 18px}.name-onboarding{align-self:flex-end;margin:0 34px 20px 0;width:365px;padding:13px}.name-onboarding label>span{font-size:25px;margin-bottom:6px}.name-onboarding input{min-height:48px;font-size:20px}.name-onboarding small{margin:5px 0 0}.name-start{min-height:48px;margin-top:8px}.destination-button{width:86px;height:86px;font-size:43px;bottom:20px}.destination-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.destination-card{min-height:90px}.destination-card>span{font-size:33px}.destination-card img{height:50px}.project-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.project-card img{height:70px}.project-card>span:first-child{font-size:27px}.menu-grid:has(>button:nth-child(10)) .menu-button{min-height:61px}}
.destination-card>small{font-size:11px;line-height:1.15;font-weight:850;color:#64735a;text-align:center;min-height:2.3em}.destination-card.road{background:#dbeaf0;border-color:#9dc6d1}
.world-home-entry{display:grid;grid-template-columns:46px minmax(0,1fr) 20px;align-items:center;gap:11px;width:349px;min-height:64px;padding:8px 13px;border:3px solid #fff6c9;border-radius:22px;background:linear-gradient(115deg,#dceab7,#9fd3c5);box-shadow:0 6px 0 #2f604759,0 11px 23px #17383b2e;color:#294d3b;text-align:left}.world-home-entry:focus-visible{outline:4px solid #fff;outline-offset:4px}.world-home-entry>span:nth-child(2){min-width:0}.world-home-entry strong,.world-home-entry small{display:block}.world-home-entry strong{font-size:17px;line-height:1.05}.world-home-entry small{margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#567361;font-size:10px;font-weight:850}.world-home-icon{display:grid;place-items:center;width:43px;height:43px;border:2px solid #9ab78e66;border-radius:14px;background:#fff9d4;font-size:27px}.world-home-entry>b{font-size:18px;color:#416c50}
@media(max-width:600px){.world-home-entry{width:min(349px,calc(100vw - 36px));min-height:58px;padding:7px 11px}.world-home-entry strong{font-size:16px}.world-home-entry small{font-size:9px}.start-bottom{gap:12px}}
@media(max-height:520px) and (min-width:600px){.world-home-entry{width:310px;min-height:48px;grid-template-columns:38px minmax(0,1fr) 16px;padding:5px 10px}.world-home-icon{width:35px;height:35px;font-size:22px}.world-home-entry strong{font-size:14px}.world-home-entry small{font-size:8px}.start-bottom{gap:8px}}
.destination-button{position:absolute;z-index:8;left:50%;bottom:31px;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:7px;width:112px;height:76px;border:4px solid #fff9dc;background:linear-gradient(#c8eee4,#70c6bc);box-shadow:0 7px 0 #2c7a7857;border-radius:25px;color:#205d5d}.destination-button .destination-map-icon{position:static;width:34px;height:34px;font-size:0}.destination-button strong{font-size:17px;font-weight:1000}.destination-button:active{transform:translateX(-50%) translateY(3px) scale(.97)}.destination-button[hidden],.at-home .destination-button,.in-region .destination-button{display:none!important}
.quick-mode{position:absolute;z-index:8;right:20px;top:88px;display:flex;padding:4px;gap:3px;border:3px solid #fff9dc;border-radius:18px;background:#355c55b8;box-shadow:0 5px 14px #183b3b3b;backdrop-filter:blur(6px)}.quick-mode button{width:42px;height:38px;border-radius:12px;font-size:22px;opacity:.62;filter:saturate(.65)}.quick-mode button.selected{background:#ffe18a;opacity:1;filter:none;box-shadow:0 2px 0 #8c6b2e}.at-home #quick-mode,.in-region #quick-mode{display:none}
@media(max-width:600px){.destination-button{left:50%;bottom:calc(var(--drive-pad-bottom) + var(--drive-pad-size) + var(--map-control-gap));width:106px;height:62px;border-radius:23px}.destination-button .destination-map-icon{font-size:29px}.destination-button strong{font-size:16px}.quick-mode{right:15px;top:130px}.quick-mode button{width:38px;height:35px;font-size:20px}}
@media(max-height:520px) and (min-width:600px){.destination-button{left:50%;bottom:18px;width:98px;height:58px}.quick-mode{right:17px;top:67px}}

/* The atlas is a spatial view of the existing world, never a second game surface. */
@font-face{font-family:'Fredoka Atlas';src:url('./assets/fonts/Fredoka-SemiBold.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}
dialog[data-kind="world-map"]{width:min(1180px,calc(100% - 18px));height:min(820px,calc(100dvh - 18px));max-width:none;max-height:none;overflow:hidden;border-radius:28px;background:#f8f1d4}
dialog[data-kind="world-map"] .panel-inner{height:100%;overflow:auto;padding:clamp(15px,2vw,24px);scrollbar-color:#82a167 #f1e7bd;scrollbar-width:thin}
dialog[data-kind="world-map"] #panel-content{min-height:100%}
.world-map-shell{display:flex;min-height:100%;flex-direction:column;gap:12px}
.world-map-heading{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;padding:0 50px 0 5px}
.world-map-heading-icon{width:43px;height:43px;filter:drop-shadow(0 3px 2px #294d3a2c)}
.world-map-heading h2{margin:0;color:#315742;font-family:'Fredoka Atlas','Trebuchet MS',system-ui,sans-serif;font-size:clamp(24px,3vw,36px);font-weight:600;line-height:1.05;letter-spacing:-.02em;text-shadow:0 2px 0 #fff9dd,0 4px 7px #3158422b}
.world-map-heading p{max-width:68ch;margin:4px 0 0;color:#60765e;font-size:13px;line-height:1.35}
.world-map-heading>strong{padding:8px 12px;border:2px solid #b8ca8b;border-radius:999px;background:#eef1c9;color:#526f49;font-size:12px;white-space:nowrap}
.world-map-board{position:relative;flex:1;min-height:380px;height:clamp(380px,62dvh,600px);overflow:hidden;border:4px solid #fff9dc;border-radius:25px;background:linear-gradient(90deg,#b7d67b 0 66%,#6fc3d4 66% 100%);box-shadow:inset 0 0 0 2px #63824b2e,0 10px 28px #294d3a2b;isolation:isolate}
.world-map-scenery{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.world-map-scenery::before{content:'';position:absolute;left:-4%;right:32%;bottom:-17%;height:38%;border-radius:50%;background:#88b865;box-shadow:0 -12px 30px #5f8f5255}
.world-map-scenery::after{content:'';position:absolute;right:-8%;bottom:-15%;width:32%;height:42%;border-radius:50%;background:#e8d58d;box-shadow:0 -5px 0 #f8e9a3,0 -11px 28px #305d5a30}
.atlas-icon{display:block;width:100%;height:100%}
.world-task-drawer{border:2px solid #d6d9aa;border-radius:18px;background:#f4edcb;color:#3f6148}
.world-task-drawer summary{display:grid;grid-template-columns:36px auto 1fr 24px;align-items:center;gap:9px;min-height:56px;padding:8px 14px;cursor:pointer;list-style:none;border-radius:16px}
.world-task-drawer summary::-webkit-details-marker{display:none}
.world-task-drawer-icon{width:30px;height:30px}
.world-task-drawer summary>strong{font-size:15px}
.world-task-drawer summary>small{color:#6e8067;font-size:12px}
.world-task-drawer summary>b{display:block;width:22px;height:22px;transition:transform .2s ease}
.world-task-drawer[open] summary>b{transform:rotate(180deg)}
.world-task-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px;max-height:34dvh;overflow:auto;padding:2px 10px 12px;scrollbar-color:#8ba66c #eee4bc;scrollbar-width:thin}
.world-task{display:grid;grid-template-columns:34px minmax(0,1fr) 16px;align-items:center;gap:7px;min-height:52px;padding:6px 9px;border:2px solid #dce3ba;border-radius:14px;background:#fffbea;color:#405e43;text-align:left}
.world-task-icon{width:27px;height:27px}
.world-task>small{font-size:11px;font-weight:900;line-height:1.12}
.world-task>b{display:block;width:13px;height:13px}
.world-task--build{border-color:#efd083;background:#fff0bc}
.world-task--play{border-color:#a9cfda;background:#e1f0f3}

@media(max-width:600px){
 dialog[data-kind="world-map"]{width:calc(100% - 8px);height:calc(100dvh - 8px);border-radius:20px}
 dialog[data-kind="world-map"] .panel-inner{overflow:hidden;padding:11px}
 dialog[data-kind="world-map"] #panel-content{height:100%;min-height:0}
 dialog[data-kind="world-map"] .close-button{right:8px;top:8px;background:#fff9dc}
 .world-map-shell{height:100%;min-height:0;gap:8px}
 .world-map-heading{grid-template-columns:31px 1fr;padding:0 43px 0 3px;gap:8px}
 .world-map-heading-icon{width:30px;height:30px}
 .world-map-heading h2{font-size:21px}
 .world-map-heading p{margin-top:2px;font-size:10px;line-height:1.25}
 .world-map-heading>strong{display:none}
 .world-map-board{flex:1;min-height:0;height:auto;max-height:none;border-width:3px;border-radius:18px;background:linear-gradient(90deg,#b7d67b 0 61%,#6fc3d4 61% 100%)}
 .world-task-drawer{flex:none}
 .world-task-drawer summary{grid-template-columns:31px auto 1fr 20px;min-height:52px;padding:7px 10px}
 .world-task-drawer-icon{width:27px;height:27px}
 .world-task-drawer summary>strong{font-size:13px}
 .world-task-drawer summary>small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}
 .world-task-strip{grid-template-columns:repeat(2,minmax(0,1fr));max-height:52dvh;padding:2px 7px 9px}
 .world-task{min-height:52px;padding:5px 7px}
}

@media(max-height:520px) and (min-width:600px){
 dialog[data-kind="world-map"]{width:calc(100% - 8px);height:calc(100dvh - 8px);border-radius:20px}
 dialog[data-kind="world-map"] .panel-inner{overflow:hidden;padding:9px 13px}
 dialog[data-kind="world-map"] #panel-content{height:100%;min-height:0}
 .world-map-shell{height:100%;min-height:0;gap:6px}
 .world-map-heading{grid-template-columns:28px 1fr auto;padding-right:45px;gap:7px}
 .world-map-heading-icon{width:27px;height:27px}
 .world-map-heading h2{font-size:20px}
 .world-map-heading p{display:none}
 .world-map-heading>strong{padding:5px 9px;font-size:10px}
 .world-map-board{flex:1;min-height:0;height:auto;max-height:none;border-width:3px;border-radius:18px}
 .world-task-drawer{flex:none}
 .world-task-drawer summary{min-height:45px;padding:5px 11px}
 .world-task-strip{max-height:55dvh;grid-template-columns:repeat(4,minmax(0,1fr))}
 .world-task{min-height:48px}
}

@media(prefers-reduced-motion:reduce){.world-task-drawer summary>b{transition:none}}

/* In portrait, keep the atlas itself primary while the optional task list remains a compact scroll area. */
@media(max-width:600px) and (orientation:portrait){#game{--map-control-gap:42px}.world-map-board{min-height:clamp(300px,calc(100dvh - 360px),500px)}.world-task-drawer{display:flex;flex-direction:column;max-height:min(31dvh,250px);overflow:hidden}.world-task-drawer summary{flex:none}.world-task-strip{flex:1 1 auto;min-height:0;max-height:none;overflow:auto}}


/* The board is a scalable play-mat: one finite SVG keeps the coast, roads and fields coherent at every size. */
.world-map-board{background:#b7d67b}
.world-map-scenery{z-index:0}
.world-map-scenery::before,.world-map-scenery::after{display:none}
.world-map-art{position:absolute;inset:0;display:block;width:100%;height:100%;overflow:hidden;pointer-events:none}
.world-map-art__land{fill:#b7d67b}
.world-map-art__sea{fill:#6fc3d4}
.world-map-art__hill{fill:#83b668}
.world-map-art__hill--far{fill:#9bc877;opacity:.72}
.world-map-art__coast{fill:none;stroke:#f5e2a0;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.world-map-art__fields path:not(.world-map-art__field-line){fill:#d8ad4d;stroke:#f6e39b;stroke-width:1;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.world-map-art__field-line{fill:none;stroke:#f5d779;stroke-width:.7;stroke-linecap:round;vector-effect:non-scaling-stroke}
.world-map-art__farm-yard{fill:#e2c46d;stroke:#f6e39b;stroke-width:.7;vector-effect:non-scaling-stroke}
.world-map-art__farm-building{fill:#d17658;stroke:#fff0be;stroke-width:.65;vector-effect:non-scaling-stroke}
.world-map-art__farm-roof{fill:#704f42;stroke:#fff0be;stroke-width:.65;vector-effect:non-scaling-stroke}
.world-map-art__farm-tree{fill:none;stroke:#4e8a58;stroke-width:.65;stroke-linecap:round;vector-effect:non-scaling-stroke}
.world-map-art__road-bed,.world-map-art__road,.world-map-art__road-center,.world-map-art__route{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.world-map-art__road-bed{stroke:#e6d9b0;stroke-width:5.7}
.world-map-art__road{stroke:#737c72;stroke-width:3.7}
.world-map-art__road-center{stroke:#fff1c7;stroke-width:.7;stroke-dasharray:2.5 2.8}
.world-map-art__junction{fill:#737c72;stroke:#e6d9b0;stroke-width:1;vector-effect:non-scaling-stroke}
.world-map-art__route{stroke:#f4fff0;stroke-width:1;stroke-dasharray:2.2 2.7;filter:drop-shadow(0 1px 1px #286a7780)}
.world-map-art__route--plane{stroke-width:.8;stroke-dasharray:1.5 2.5}
.world-map-art__airport-runway-bed,.world-map-art__airport-runway,.world-map-art__airport-center{fill:none;stroke-linecap:round;vector-effect:non-scaling-stroke}
.world-map-art__airport-runway-bed{stroke:#e6d9b0;stroke-width:5.2}
.world-map-art__airport-runway{stroke:#69786f;stroke-width:3.4}
.world-map-art__airport-center{stroke:#fff1c7;stroke-width:.65;stroke-dasharray:2 2.4}
.world-map-art__airport-terminal{fill:#dbe3d5;stroke:#547267;stroke-width:.7;vector-effect:non-scaling-stroke}
.world-map-art__airport-roof{fill:#c96955;stroke:#fff0be;stroke-width:.65;vector-effect:non-scaling-stroke}
.world-map-art__airport-tower{fill:#c9e3dd;stroke:#547267;stroke-width:.7;vector-effect:non-scaling-stroke}
.world-map-art__harbor-dock{fill:none;stroke:#ae8452;stroke-width:2.5;stroke-linecap:round;vector-effect:non-scaling-stroke}
.world-map-art__harbor-crane{fill:none;stroke:#4f8f91;stroke-width:1.1;stroke-linecap:round;vector-effect:non-scaling-stroke}
.world-map-art__harbor-wave{fill:none;stroke:#d9f3e3;stroke-width:.8;stroke-linecap:round;vector-effect:non-scaling-stroke}
.world-map-art__sea-details{fill:none;stroke:#d9f3e3;stroke-width:.8;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.82}
.world-map-art__village-house{fill:#f6d47b;stroke:#4f8151;stroke-width:.8;vector-effect:non-scaling-stroke}
.world-map-art__village-roof{fill:#c96955;stroke:#fff0be;stroke-width:.55;vector-effect:non-scaling-stroke}
.world-map-art__island{fill:#e8d48b;stroke:#f8e8a9;stroke-width:1;vector-effect:non-scaling-stroke}
.world-map-art__island-ridge{fill:#70a85d;stroke:#47784e;stroke-width:.7;vector-effect:non-scaling-stroke}
.world-map-art--details{z-index:2}
.world-map-art:not(.world-map-art--details) .world-map-art__fields,.world-map-art:not(.world-map-art--details) .world-map-art__farm,.world-map-art:not(.world-map-art--details) .world-map-art__village,.world-map-art:not(.world-map-art--details)>.world-map-art__island,.world-map-art:not(.world-map-art--details)>.world-map-art__island-ridge,.world-map-art:not(.world-map-art--details) .world-map-art__island-roads{display:none}
.world-map-art__contours,.world-map-art__river,.world-map-art__forest,.world-map-art__airport-detail,.world-map-art__village-cluster,.world-map-art__farmstead,.world-map-art__harbor-detail,.world-map-art__island-detail{pointer-events:none}
.world-map-art__contours{fill:none;stroke:#fff9d7;stroke-width:.55;stroke-linecap:round;opacity:.34;vector-effect:non-scaling-stroke}
.world-map-art__river-bank,.world-map-art__river>path{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.world-map-art__river-bank{stroke:#f2e5ba;stroke-width:3.2;opacity:.72}
.world-map-art__river>path:last-child{stroke:#78c4ca;stroke-width:1.6}
.world-map-art__field-patch{stroke:#fff0ae;stroke-width:.8;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.world-map-art__field-patch--gold{fill:#d7a94f}
.world-map-art__field-patch--light{fill:#e3c768}
.world-map-art__field-row{fill:none;stroke:#f8dc80;stroke-width:.55;stroke-linecap:round;opacity:.9;vector-effect:non-scaling-stroke}
.world-map-art__forest{fill:#548e55;stroke:#f3e6ac;stroke-width:.5;stroke-linecap:round;stroke-linejoin:round;opacity:.94;vector-effect:non-scaling-stroke}
.world-map-art__airport-apron{fill:#d9d8be;stroke:#fff3c4;stroke-width:.7;vector-effect:non-scaling-stroke}
.world-map-art__airport-building{fill:#edf0db;stroke:#4f7165;stroke-width:.75;vector-effect:non-scaling-stroke}
.world-map-art__airport-window,.world-map-art__airport-beacon{fill:none;stroke:#527e83;stroke-width:.65;stroke-linecap:round;vector-effect:non-scaling-stroke}
.world-map-art__village-square{fill:#d7c86f;stroke:#f7e7a4;stroke-width:.6;opacity:.78;vector-effect:non-scaling-stroke}
.world-map-art__village-tree{fill:#6aa25f;stroke:#42784d;stroke-width:.5;vector-effect:non-scaling-stroke}
.world-map-art--details .world-map-art__farm-yard{fill:#d5b758;stroke:#f8e295;stroke-width:.7;vector-effect:non-scaling-stroke}
.world-map-art--details .world-map-art__farm-building{fill:#d06d50;stroke:#fff0be;stroke-width:.65;vector-effect:non-scaling-stroke}
.world-map-art--details .world-map-art__farm-roof{fill:#715044;stroke:#fff0be;stroke-width:.65;vector-effect:non-scaling-stroke}
.world-map-art__farm-silo{fill:#e6d9b0;stroke:#55756a;stroke-width:.65;vector-effect:non-scaling-stroke}
.world-map-art--details .world-map-art__farm-tree{fill:#6ea45f;stroke:#3f764c;stroke-width:.6;vector-effect:non-scaling-stroke}
.world-map-art__harbor-basin{fill:#65bdca;stroke:#e7f5dc;stroke-width:.7;vector-effect:non-scaling-stroke}
.world-map-art__harbor-pier,.world-map-art__harbor-crane-detail{fill:none;stroke:#856b4a;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.world-map-art__harbor-shed{fill:#e4d181;stroke:#fff0be;stroke-width:.65;vector-effect:non-scaling-stroke}
.world-map-art__island-shadow{fill:#2d756f40}
.world-map-art__island-surface{fill:#e8d48b}
.world-map-art__island-coast{fill:none;stroke:#fff0b9;stroke-width:1.5;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.world-map-art__island-groves>path{fill:none;stroke:#5d8c50;stroke-width:.65;stroke-linecap:round;vector-effect:non-scaling-stroke}
.world-map-art__island-groves circle{fill:#638f50;stroke:#f1df9c;stroke-width:.35;vector-effect:non-scaling-stroke}
.world-map-art__island-fields>path:first-child{fill:#d5a94d;stroke:#f6e19c;stroke-width:.6;vector-effect:non-scaling-stroke}
.world-map-art__island-mountain{fill:#76a45e;stroke:#4a7850;stroke-width:.65;vector-effect:non-scaling-stroke}
.world-map-art__island-beach{fill:none;stroke:#fff0b5;stroke-width:3.1;stroke-linecap:round;vector-effect:non-scaling-stroke}
.world-map-label{position:absolute;z-index:3;display:inline-flex;align-items:center;gap:3px;padding:3px 5px;border:1px solid #fff5c8;border-radius:7px;background:#fff5c8df;color:#48634a;font-size:9px;font-weight:950;letter-spacing:.035em;text-transform:uppercase;box-shadow:0 2px 5px #38533e22}
.world-map-label-icon{display:block;width:15px;height:15px;flex:none}
.world-map-label--fields{left:4%;top:43%;transform:rotate(-4deg)}
.world-map-label--motorway{left:38%;top:28%;transform:rotate(-8deg)}
.world-map-label--sea{right:8%;top:5%;background:#eafbf9e8;color:#276777;font-size:12px;text-transform:none}
.world-map-vehicle{position:absolute;z-index:3;width:38px;height:38px;filter:drop-shadow(0 3px 2px #17495755)}
.world-map-vehicle small{display:block;margin-top:-5px;padding:2px 4px;border-radius:5px;background:#f4fffbe6;font-size:9px;font-weight:950;text-align:center}
.world-map-vehicle--ferry{right:17%;top:35%;transform:rotate(6deg)}
.world-map-vehicle--plane{right:12%;top:17%;transform:rotate(10deg)}
.world-place-anchor{position:absolute;z-index:5}
.world-place-anchor--airport{left:2%;top:4%}
.world-place-anchor--beuerbach{left:35%;top:5%}
.world-place-anchor--harbor{left:56%;top:22%}
.world-place-anchor--farm{left:26%;top:39%}
.world-place-anchor--georgenborn{left:2%;top:59%}
.world-place-anchor--ruppertsweiler{left:27%;top:79%}
.world-place-anchor--zakynthos{right:2%;top:66%}
.world-place{display:grid;grid-template-columns:40px minmax(0,max-content);align-items:center;min-width:44px;min-height:44px;padding:0;border:0;background:transparent;color:#315742;text-align:left;box-shadow:none}
.world-place-icon{position:relative;z-index:2;display:grid;place-items:center;width:40px;height:40px;padding:5px;border:2px solid #fff8d3;border-radius:50% 46% 52% 48%;background:#d8e8af;box-shadow:0 3px 0 #31584242,0 7px 12px #294d3b2b}
.world-place strong{position:relative;z-index:1;display:block;max-width:108px;margin-left:-5px;padding:6px 8px 6px 10px;border:1px solid #fff8d3;border-radius:4px 11px 11px 4px;background:#fff9dded;box-shadow:0 3px 7px #294d3b24;font-size:10px;line-height:1.05;overflow-wrap:normal;word-break:normal;hyphens:manual;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.world-place>b{display:none}
.world-place--farm,.world-place--zakynthos{grid-template-columns:46px minmax(0,max-content);min-height:48px}
.world-place--farm .world-place-icon,.world-place--zakynthos .world-place-icon{width:46px;height:46px;padding:6px}
.world-place--farm .world-place-icon{background:#a9d071}
.world-place--farm strong{background:#fff1a8f2;font-size:11px}
.world-place--airport .world-place-icon,.world-place--harbor .world-place-icon{background:#c9e3dd}
.world-place--zakynthos .world-place-icon{background:#9bd4b0}
.world-place--zakynthos strong{background:#ffefacf2;font-size:11px}
.world-place:hover .world-place-icon,.world-place:hover strong{filter:brightness(1.04)}
.world-place:focus-visible,.world-task:focus-visible,.world-task-drawer summary:focus-visible{outline:4px solid #233f4c;outline-offset:4px}
.world-place--long-name strong{max-width:128px;white-space:normal;overflow-wrap:break-word}

@media(max-width:600px){
 .world-map-board{background:#b7d67b}
 .world-map-label{padding:3px 5px;font-size:9px}
 .world-map-label-icon{width:13px;height:13px}
 .world-map-label--sea{font-size:12px}
 .world-map-vehicle{width:34px;height:34px}
 .world-map-vehicle--ferry{right:15%;top:35%}
 .world-map-vehicle--plane{right:11%;top:17%}
 .world-place{grid-template-columns:38px minmax(0,max-content);min-width:44px;min-height:44px}
 .world-place-icon{width:38px;height:38px;padding:5px}
 .world-place strong{max-width:92px;padding:6px 7px 6px 9px;font-size:10px}
 .world-place--farm,.world-place--zakynthos{grid-template-columns:44px minmax(0,max-content);min-height:48px}
 .world-place--farm .world-place-icon,.world-place--zakynthos .world-place-icon{width:44px;height:44px}
 .world-place--long-name strong{max-width:108px;font-size:9px;white-space:normal}
 .world-place--ruppertsweiler strong{font-size:9px}
}

@media(max-width:350px) and (orientation:portrait){
 .world-place strong{max-width:82px;font-size:9px}
 .world-place--long-name strong{max-width:94px;font-size:8px}
}
/* A first-launch failure has the same clear path back for a fresh and a returning family. */
.has-startup-problem .game-logo{opacity:1!important}
.startup-problem{position:absolute;right:20px;bottom:max(22px,env(safe-area-inset-bottom));left:20px;margin:auto;max-width:380px;padding:18px;background:#fffcef;border:3px solid #fffdf4;border-radius:26px;text-align:center;box-shadow:var(--shadow)}
.startup-problem-picture{font-size:38px}
.startup-problem p{margin:12px 0;font-size:18px;line-height:1.35;font-weight:700}
.startup-problem button{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:64px;border-radius:18px;background:#ffe18b;box-shadow:0 4px 0 #98793445;font-size:18px;font-weight:800}
.startup-problem button b{font-size:34px}
@media(max-height:520px) and (min-width:600px){.startup-problem{left:auto;width:340px;padding:12px}.startup-problem-picture{font-size:30px}.startup-problem p{font-size:16px;margin:8px 0}.startup-problem button{min-height:56px}}
/* wow-look: storybook start-screen illustration backdrop & tactile comic HUD polish (0px box-model impact) */
#start-screen.comic-ready{background:radial-gradient(circle at 50% 18%,#fff8d640 0%,#ffd87518 42%,#183b3252 100%)}
#start-screen.comic-ready .game-logo h1{color:#fff9dc;-webkit-text-stroke:2.5px #2e1c0e;paint-order:stroke fill;text-shadow:0 4px 0 #2e1c0e,0 8px 20px #18362470}
#start-screen.comic-ready .name-onboarding,#start-screen.comic-ready .card{background-image:linear-gradient(180deg,#fffef6cf 0%,#fff6d8de 56%,#f7e8c2eb 100%),url('./assets/comic/hero-backdrop.webp');background-size:cover;background-position:center bottom;border-color:#3b2414;box-shadow:inset 0 2px 0 #ffffffeb,0 6px 0 #2e1b0ecc,0 18px 36px #182b2048}
#start-screen .primary,#start-screen .name-start{border:2px solid #2b4d1c;box-shadow:inset 0 2px 0 #d9f7a8b3,0 5px 0 #254719cc,0 12px 22px #1c332038}
#start-screen .mode-card{border-color:#3b2414;background:linear-gradient(155deg,#d8f274 0%,#7ec452 58%,#539c42 100%);box-shadow:inset 0 0 0 2px #fff8d6cc,0 7px 0 #2d1b0ecc,0 14px 28px #142f2848}
#start-screen .home-tool,#start-screen .park-entry,#start-screen .new-game-entry{border-color:#3b2414;box-shadow:inset 0 2px 0 #ffffffd9,0 4px 0 #2d1b0eb8,0 10px 20px #18332833}
#game #vehicle-button,#game .round-button,#game .score-pill,#game #coach-replay,#game #action-label,#game .sunny-bubble,#game .qb-chip,#game #story-book-button,#game #photo-button,#game #collection-button{background:linear-gradient(180deg,#fffef7 0%,#fcedc2 100%);border-color:#3b2313;box-shadow:inset 0 2px 0 #ffffffeb,0 4px 0 #2e1b0eb8,0 8px 18px #1b30242e}
#game #sunny .sunny-bubble::after{background:#fcedc2;border-color:#3b2313}
#game #quick-mode{background:#2d4f47e6;border-color:#3b2313;box-shadow:inset 0 1px 0 #ffffff66,0 4px 0 #23140ab8,0 8px 18px #162c2838}
#game #quick-mode button.selected{background:linear-gradient(180deg,#ffef99 0%,#f7be3b 100%);box-shadow:inset 0 0 0 2px #3b2313,inset 0 2px 0 #fffdf0,0 2px 0 #2b180b}
#game #destination-button{border-color:#3b2313;background:linear-gradient(180deg,#d8f6ec 0%,#74cabe 100%);box-shadow:inset 0 2px 0 #ffffffcc,0 5px 0 #26170cc4,0 10px 22px #18383838}
#game #action-button{border-color:#3b2313;background:linear-gradient(180deg,#fff0a6 0%,#f7be45 62%,#e89d28 100%);box-shadow:inset 0 0 0 2px #fff9dc,inset 0 4px 0 #ffffffd9,0 6px 0 #2e1b0ecc,0 12px 24px #243b2438}
#game #joystick .stick-ring{background:radial-gradient(circle,#fff9dc45 0%,#f3d78d38 68%,#3b231328 100%);border-color:#3b2313b3;box-shadow:inset 0 0 0 2px #fff8d699,inset 0 0 22px #fffbe133,0 6px 18px #1d332029}
#game #stick{background:linear-gradient(180deg,#fffef6 0%,#f5dfa6 100%);border-color:#3b2313;color:#4f351c;box-shadow:inset 0 3px 0 #ffffffeb,0 5px 0 #2e1b0eb8,0 9px 17px #24382833}

