/* Illustrated environments shared by the league and wildlife encounters. */
:root{--trail-scene:url('/assets/course-trail.webp');--sky-scene:url('/assets/course-canopy.webp');--river-scene:url('/assets/course-river.webp')}
#race-app>header{background-image:linear-gradient(90deg,#153b32f2,#153b3266),var(--trail-scene);background-position:center 58%}
.course-card{--course-scene:var(--trail-scene);background:linear-gradient(0deg,#163d32 0%,#163d32cc 23%,#163d3210 72%),var(--course-scene) center/cover;color:#fff8e7;min-height:340px;border:1px solid #6d8168;border-radius:20px;box-shadow:0 8px 20px #173e3215;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:24px;gap:9px}
.course-fly{--course-scene:var(--sky-scene)}.course-swim{--course-scene:var(--river-scene)}
.course-card .racer-art{width:116px;height:116px;margin:0 0 auto auto;border:3px solid #f7e7bd;box-shadow:0 8px 25px #163d3255}.course-card .course-number{color:#ebcf91;margin:20px 0 0}.course-card strong{font-size:29px;color:#fff8e7}.course-card small{color:#eee9d7;line-height:1.5}.course-card:after{content:'ENTER COURSE  →';font:750 9px system-ui;letter-spacing:1.7px;margin-top:10px;color:#efd49b}
.scene-run{background:var(--trail-scene) center/cover}.scene-fly{background:var(--sky-scene) center/cover}.scene-swim{background:var(--river-scene) center/cover}.race-scene .scene-ridge,.race-scene .scene-sun,.race-scene .scene-cloud,.race-scene .scene-foreground{display:none}.race-scene{height:410px;border:1px solid #c7c6ac;box-shadow:inset 0 0 40px #123b3220}.race-scene:after{background:linear-gradient(0deg,#163d3222,transparent 70%);animation:none}.race-scene .course-label{color:#fff9e7;background:#173e32e0;text-shadow:none;border:1px solid #e1ce9d77;top:16px;left:16px;padding:10px 13px;line-height:1.5}.race-lane{top:171px;background:#f4e2b83d!important;border-top:1px dashed #fff8e89c!important;border-bottom:1px dashed #fff8e89c!important}.rival-lane{top:288px;background:#173e3226!important;filter:none}.lane-name{background:#163d32dd;padding:5px 7px;border-radius:0 0 7px 0;left:0;top:0;letter-spacing:1.5px}.runner{top:10px}.runner .racer-art{border-width:3px;background-color:#f8f1df}.finish-post{top:160px;height:233px;background:repeating-linear-gradient(0deg,#fffae8 0 12px,#244c3b 12px 24px);width:7px;border:0;padding:0;color:transparent;right:18px;box-shadow:0 0 0 2px #fff9e7aa}.finish-post span{display:none}
.race-hud{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.race-hud>*{text-align:center;border:1px solid #d3d8c0!important;border-radius:10px;font-variant-numeric:tabular-nums}.race-card .controls button{min-height:84px}.race-card .prompt{border-radius:10px;padding:14px;margin:12px 0}.race-card>.extras{justify-content:center}.podium{background:linear-gradient(#f5edcf55,#163d32e8),var(--trail-scene) center/cover;color:#fff8df;padding:30px}.podium>span{color:#f5d99b}.podium h2{color:#fff8df}.podium .racer-art{width:200px;height:200px;border:5px double #e7c784}.podium.result-fly{background-image:linear-gradient(#f5edcf33,#163d32e8),var(--sky-scene)}.podium.result-swim{background-image:linear-gradient(#f5edcf33,#163d32e8),var(--river-scene)}
.league-milestone{padding:16px 20px;background:#f5ecd3;border:1px solid #d5c594;border-radius:12px;margin:16px 0;font:13px/1.6 system-ui}.league-milestone strong{display:block}.league-milestone progress{display:block;width:100%;height:9px;accent-color:#315b43;margin-top:9px}.course-best{display:block;font-size:11px;color:#efd49b}
.encounter-art,.encounter-preview .encounter-art{background:linear-gradient(#183d3215,#183d32a6),var(--trail-scene) center/cover;min-height:292px;gap:10px;padding:12px 0}.encounter-water,.encounter-coast{background-image:linear-gradient(#183d3210,#183d32a6),var(--river-scene)}.encounter-halo,.encounter-preview .encounter-halo{width:214px;height:184px;border-radius:20px;padding:5px;background:#f8efdd;border:1px solid #d7c594;box-shadow:0 10px 28px #173e324d}.encounter-halo .racer-art{border-radius:15px;background-color:#f8efdd}.encounter-kicker{background:#173e32c9;border-radius:20px;padding:7px 13px;letter-spacing:1.2px}.encounter-rank{margin:0;background:#173e32e0;border-color:#dfcc98aa}.encounter-body h2{font-size:32px}.encounter-earned .encounter-halo{border:3px double #dfbd6c}.journal-card>.racer-art{height:220px;border-radius:0;width:100%;margin:0;background-color:#f7efdf}
@media(max-width:650px){#league-panel-play>.modes{grid-template-columns:1fr;gap:12px}#league-panel-play .course-card{min-height:174px;text-align:left;padding:18px 126px 18px 18px;gap:6px;align-items:flex-start}#league-panel-play .course-card .racer-art{position:absolute;right:15px;left:auto;top:30px;width:94px;height:94px;margin:0}#league-panel-play .course-card strong{font-size:26px}#league-panel-play .course-card .course-number{font-size:9px;margin:0;color:#efd49b}#league-panel-play .course-card small{display:block;font-size:11px}#league-panel-play .course-card:after{font-size:8px;margin-top:4px}.race-scene{height:320px}.race-lane{top:102px;height:100px}.rival-lane{top:209px}.finish-post{top:96px;height:213px}.race-scene .course-label{top:10px;left:10px;padding:6px 10px}.runner .racer-art{width:64px;height:64px}.runner b{top:64px}.race-card .controls{position:sticky;bottom:76px;z-index:8;background:#faf7ebf2;padding:8px 0;gap:12px}.race-card .controls button{min-height:70px}.encounter-art,.encounter-preview .encounter-art{min-height:238px;padding:8px 0;gap:7px}.encounter-halo,.encounter-preview .encounter-halo{width:180px;height:150px}.encounter-body,.encounter-preview .encounter-body{padding:16px 18px}.encounter-body h2,.encounter-preview .encounter-body h2{font-size:28px}.encounter-kicker{font-size:8px}.encounter-body .capture-hearts{margin:5px 0}.encounter-body #capture-status{min-height:30px}.podium .racer-art{width:174px;height:174px}.league-milestone{padding:13px 16px}.journal-card>.racer-art{height:auto;aspect-ratio:1}}
@media(max-width:650px){body[data-racing] #race-app>header{padding:13px 17px;margin-bottom:10px}body[data-racing] #race-app>header h1{font-size:30px;margin:5px 0}body[data-racing] #race-app>header p{font-size:11px;margin:5px 0}body[data-racing] #journey-save-status{display:none}body[data-racing] .race-hud{padding-bottom:10px}body[data-racing] .race-scene{height:280px}body[data-racing] .race-lane{top:82px;height:90px}body[data-racing] .rival-lane{top:179px}body[data-racing] .finish-post{top:76px;height:193px}body[data-racing] .race-distances{margin:10px 0;gap:5px 9px}body[data-racing] .race-card .prompt{font-size:12px;padding:10px;margin:8px 0}body[data-racing] .race-card .controls{bottom:70px}body[data-racing] .race-card .controls button{min-height:62px;font-size:18px}body[data-racing] .race-card>.extras{margin:8px 0}.race-card .race-hud>*{min-width:0}}
.encounter-card>.encounter-water,.encounter-card>.encounter-coast{background-image:linear-gradient(#183d3210,#183d32a6),var(--river-scene)}
/* Sanctuary and encounter presentation, using Wild Wherever's existing illustrated assets. */
.reserve-v29{margin-top:20px}.reserve-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px}.reserve-toolbar h2{font:32px/1.12 Georgia,serif;margin:8px 0 18px}.reserve-wallet{flex:none;padding:12px 16px;background:#ede4c9;border:1px solid #d1c096;border-radius:30px;font-size:12px;font-weight:700}.reserve-tabs{display:flex;gap:8px;overflow-x:auto;padding:5px 2px 15px;scroll-margin-top:15px}.reserve-tabs button{flex:1;min-width:104px;min-height:66px;padding:10px 16px;background:#f9f6ea;border:1px solid #c5cdb5;color:#254c3b;border-radius:13px;font:700 14px system-ui;cursor:pointer}.reserve-tabs small{display:block;font-size:10px;font-weight:400;margin-top:6px}.reserve-tabs button[aria-pressed=true]{background:#244d3a;color:#fff6dd;border-color:#244d3a;box-shadow:0 4px 0 #d2b97c}.reserve-v29 .habitat-pen{overflow:hidden;border:1px solid #b9c5a5;border-radius:22px;background:#fffcf4;box-shadow:0 10px 25px #254b3610}.reserve-v29 .pen-heading{padding:20px 24px;background:#fffcf4}.reserve-v29 .pen-heading h3{font:28px/1.15 Georgia,serif}.reserve-v29 .pen-tier-name{padding:7px 0 0;font-size:11px}.reserve-landscape.pen-ground.living-pen{height:auto;min-height:340px;position:relative;padding:28px;border:0;border-radius:0;background:linear-gradient(#173e3210,#173e3244),var(--trail-scene) center/cover}.pen-wetland .reserve-landscape,.pen-coast .reserve-landscape{background-image:linear-gradient(#173e3210,#173e3244),var(--river-scene)}.pen-event .reserve-landscape{background-image:linear-gradient(#173e3210,#173e3244),var(--sky-scene)}.reserve-residents{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;width:100%;max-width:850px;margin:auto}.reserve-resident.pen-resident{position:relative;left:auto!important;top:auto!important;max-width:none;width:100%;padding:8px;background:none;border:0;animation:none!important;display:flex;flex-direction:column;align-items:center;min-height:180px}.reserve-resident .resident-body{width:130px;height:130px;padding:4px;border:2px solid #e9d4a5;border-radius:50%;background:#f8efdc;box-shadow:0 7px 20px #173e3266;animation:none}.reserve-resident .resident-body>*{display:block!important;width:100%!important;height:100%!important;border-radius:50%;margin:0!important;background-repeat:no-repeat}.reserve-resident.pen-resident>span{padding:7px 12px;margin-top:8px;background:#fff9e9f5;border:1px solid #ddcba4;color:#244832;font:700 12px/1.3 system-ui}.reserve-resident>small{background:#173e32db;color:#fff8de;padding:4px 9px;border-radius:0 0 8px 8px;font-size:10px}.reserve-resident:focus-visible{outline:3px solid #e0b95c;outline-offset:3px;border-radius:15px}.reserve-resident:hover .resident-body{box-shadow:0 0 0 5px #f5e2ac80,0 9px 22px #173e3255}.reserve-empty{grid-column:1/-1;max-width:420px;margin:25px auto;padding:28px;text-align:center;background:#fffaedee;border:1px solid #d8c89d;border-radius:18px;backdrop-filter:blur(3px);box-shadow:0 10px 30px #173e3222}.reserve-empty h3{font:32px/1.12 Georgia,serif;margin:12px 0}.reserve-empty p{font:13px/1.65 system-ui}.reserve-empty button{margin:12px auto;min-height:48px}.reserve-empty a{display:block;color:#244d3a;font-size:12px;padding:10px}.reserve-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 22px;font-size:12px}.reserve-footer .pen-workshop-button{margin:0;width:auto;min-width:180px;min-height:48px}.reserve-pages{display:flex;align-items:center;justify-content:space-between;padding:0 22px 18px;font-size:12px;gap:10px}.reserve-pages button{min-height:44px}.reserve-reassurance{font:12px/1.6 system-ui;color:#64745b;text-align:center;padding:5px 15px}.reserve-more{margin:16px 0;border:1px solid #d2d8c1;border-radius:14px;background:#faf8ef;padding:18px}.reserve-more>summary{cursor:pointer;font-weight:700;font-size:14px;min-height:26px}.reserve-more .habitat-layout{margin-top:20px}.reserve-more .habitat-tokens{max-height:300px;overflow:auto}.care-scene{background:linear-gradient(#173e3222,#173e3266),var(--trail-scene) center/cover;height:260px}.care-scene.care-habitat-wetland,.care-scene.care-habitat-coast{background-image:linear-gradient(#173e3210,#173e3266),var(--river-scene)}.care-scene.care-habitat-event{background-image:linear-gradient(#173e3210,#173e3266),var(--sky-scene)}.care-animal{padding:6px;border:2px solid #e7ce95;border-radius:22px;background:#f8efdd;box-shadow:0 10px 28px #173e3266}.care-animal .animal-art,.care-animal .wild-art,.care-animal .event-art,.care-animal .racer-art{width:210px!important;height:200px!important;border-radius:15px!important;margin:0!important;animation:none!important}.care-stats>span{background:#edf0df;border:1px solid #d1d9bf}.care-actions{position:sticky;bottom:0;padding:10px 0;background:#fffdf1f5;z-index:3;margin:0}.care-actions button{min-height:52px}.care-name-details{margin:14px 0;padding:12px 0;border-top:1px solid #d7ddc8}.care-name-details summary{cursor:pointer;font-size:13px;font-weight:700}.care-name-details label{display:block;margin-top:15px;font-size:12px}.capture-step-label{color:#7b805f;font:700 8px system-ui;letter-spacing:1.7px;margin-top:15px}.encounter-body .capture-hearts{font-size:28px;letter-spacing:6px;color:#9e7a34;line-height:1.4}.encounter-body .capture-track{height:40px;box-shadow:inset 0 2px 5px #173e3215;border:1px solid #aab99b}.encounter-body .capture-track span{background:linear-gradient(#f0ddaa,#c39a49);border-left:2px solid #987536;border-right:2px solid #987536}.encounter-body .capture-track i{top:5px;bottom:5px;width:10px;box-shadow:0 0 0 3px #fffae8,0 3px 10px #173e3266}.capture-controls{position:sticky;bottom:0;z-index:3;padding:6px 0;background:#faf8eff5;backdrop-filter:blur(8px)}.capture-controls .primary{min-height:56px!important;font-size:16px!important;box-shadow:0 4px 0 #152f25}.capture-controls .secondary{background:transparent;border:0;min-height:40px;padding:8px;margin-bottom:0;font-size:12px}.capture-controls [data-feedback=hit]{background:#386647;border-color:#c8aa61}.capture-controls [data-feedback=miss]{background:#50634a}.encounter-earned .encounter-halo{box-shadow:0 0 0 10px #e6cc8830,0 10px 35px #173e3255}.encounter-earned+.encounter-body .game-reward{display:grid;gap:8px;padding:16px;border:1px solid #d6c291;border-radius:13px;background:#f2e7c6}.encounter-earned+.encounter-body .xp-reward{font:700 25px Georgia,serif}.encounter-safety{font-size:11px;line-height:1.5}.preview-head h1{font-family:Georgia,serif!important}
@media(max-width:700px){.reserve-toolbar{align-items:flex-start}.reserve-toolbar h2{font-size:27px;margin-bottom:12px}.reserve-wallet{padding:9px 12px;font-size:10px}.reserve-toolbar .eyebrow{font-size:7px}.reserve-v29 .pen-heading{padding:15px 17px}.reserve-v29 .pen-heading h3{font-size:25px}.reserve-tabs{gap:7px}.reserve-tabs button{min-width:95px;padding:10px 12px;font-size:13px;min-height:58px}.reserve-landscape.pen-ground.living-pen{padding:18px 12px;min-height:280px}.reserve-residents{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.reserve-resident.pen-resident{min-height:150px;padding:4px}.reserve-resident .resident-body{width:104px;height:104px}.reserve-resident.pen-resident>span{font-size:10px;padding:6px;max-width:145px}.reserve-resident>small{font-size:9px}.reserve-empty{margin:12px auto;padding:22px 16px}.reserve-empty h3{font-size:28px}.reserve-footer{flex-direction:column;gap:10px;padding:13px 16px;text-align:center}.reserve-footer .pen-workshop-button{width:100%}.reserve-more{padding:15px}.reserve-v29{margin-top:8px}.care-scene{height:210px}.care-animal .animal-art,.care-animal .wild-art,.care-animal .event-art,.care-animal .racer-art{width:175px!important;height:160px!important}.care-scene+.dialog-body{padding:18px!important}.care-scene+.dialog-body h2{font-size:28px;margin:0 0 8px}.care-scene+.dialog-body>p{font-size:12px;margin:8px 0}.care-stats{gap:8px}.care-stats>span{padding:10px;font-size:12px}.care-actions{bottom:-1px}.care-name-details{margin-top:6px}.encounter-art,.encounter-preview .encounter-art{min-height:212px;padding:7px 0}.encounter-halo,.encounter-preview .encounter-halo{width:170px;height:140px}.encounter-body,.encounter-preview .encounter-body{padding:14px 17px}.encounter-body h2,.encounter-preview .encounter-body h2{font-size:26px;margin-bottom:8px}.encounter-instruction{font-size:12px!important;margin-bottom:6px!important}.encounter-body .capture-hearts{font-size:25px;margin:4px 0}.capture-step-label{margin-top:10px;font-size:7px}.encounter-body .capture-track{margin:8px 0}.encounter-body #capture-status{font-size:11px;margin:6px 0;min-height:30px}.capture-controls{padding:4px 0}.capture-controls button{margin:5px 0}.encounter-preview .preview-head{margin-bottom:10px}.preview-head h1{font-size:25px;margin:10px 0}.preview-head>label{font-size:12px}.encounter-preview{margin-top:6px}.encounter-preview .encounter-safety{margin-top:8px}.reserve-more .habitat-layout{display:block}}
@media(prefers-reduced-motion:reduce){.reserve-resident *,.care-animal,.care-effect{animation:none!important;transition:none!important}}
/* Keep real cartography legible while matching the illustrated game shell. */
.world-stage{border:1px solid #aabb9f;border-radius:22px!important;box-shadow:0 10px 30px #244b3615;background:#dae8df}.world-stage .leaflet-tile-pane{filter:saturate(.88) contrast(.98)}.world-stage .leaflet-container{background:#d8e8de;font-family:system-ui}.world-stage .leaflet-control-zoom{border:1px solid #b8c5a5!important;border-radius:13px!important;overflow:hidden;box-shadow:0 5px 18px #173e3226!important}.world-stage .leaflet-control-zoom a{background:#fffbed!important;color:#254d39!important;width:40px!important;height:40px!important;line-height:40px!important;font-size:23px!important}.world-stage .leaflet-control-attribution{background:#fffbedeb!important;font-size:9px!important;max-width:90%;line-height:1.4}.world-stage .map-location{border:1px solid #c8d1b7;border-radius:25px;background:#fffbedf5;padding:11px 16px;box-shadow:0 4px 15px #173e3215;font-weight:600}.recenter-map{background:#fffbed!important;border:1px solid #bac9aa!important;border-radius:13px!important;box-shadow:0 5px 18px #173e3226}.companion-pin>.racer-art,.companion-pin>div{width:62px!important;height:62px!important;margin:auto;border:3px solid #cfaa63;border-radius:50%;box-shadow:0 0 0 4px #fff9e6cc,0 8px 18px #173e324d;background-color:#faf0dc}.companion-pin small{margin-top:7px;background:#173e32ed;border:1px solid #dfd2ac;font-size:10px;padding:5px 7px;border-radius:9px;box-shadow:0 3px 8px #173e3226}.companion-pin b{padding:4px 8px;background:#f3dda6;border:1px solid #bca367;border-top:0}.event-map-pin>div{border-color:#b28636!important;box-shadow:0 0 0 5px #ead09b99,0 8px 18px #173e324d}.map-hide-names .companion-pin small,.map-hide-names .companion-pin b{display:none}.map-name-toggle{position:absolute;z-index:401;left:18px;top:65px;background:#fffbedf0;border:1px solid #c3ceaf;border-radius:20px;padding:8px 13px;font:600 10px system-ui;color:#31563f;min-height:36px}.map-key{position:absolute;z-index:401;bottom:28px;left:18px;background:#fffbedf2;border:1px solid #c1cdad;border-radius:12px;color:#294e39;padding:10px 13px;max-width:230px;box-shadow:0 5px 20px #173e3222;font:11px/1.5 system-ui}.map-key summary{cursor:pointer;font-weight:700;min-height:20px}.map-key>span{display:flex;align-items:center;gap:9px;margin:9px 0}.map-key i{width:23px;height:4px;border-radius:6px;background:#315f46;display:inline-block}.map-key .key-route{background:#b57b35}.map-key .key-wildlife{width:15px;height:15px;border-radius:50%;background:#f8efd9;border:3px solid #cfaa63}.map-key small{display:block;font-size:10px;margin-top:12px;max-width:175px}.map-topline h1{font-size:clamp(30px,4vw,43px)}.map-bottom-note{font-size:11px}.map-greeting{border:1px solid #cad2b8!important;border-radius:16px!important;background:#fffbed!important}.map-greeting h2{font:28px/1.15 Georgia,serif}.map-intro-dismiss{min-width:40px;min-height:40px}
@media(max-width:700px){.world-stage{height:calc(100dvh - 270px)!important;min-height:380px!important;margin:0 8px;border-radius:18px!important}.map-location{left:10px!important;top:12px!important;font-size:8px!important;padding:9px 12px!important;max-width:calc(100% - 75px)}.map-name-toggle{left:10px;top:52px;min-height:40px;padding:8px 12px;font-size:9px}.map-key{left:10px;bottom:26px;padding:9px 12px;font-size:10px}.map-key summary{min-height:24px;display:flex;align-items:center}.world-stage .leaflet-control-zoom a{width:36px!important;height:36px!important;line-height:36px!important}.world-stage .leaflet-control-attribution{font-size:8px!important}.recenter-map{width:39px!important;height:42px!important;right:10px!important}.map-topline{padding:14px 12px!important;gap:9px!important}.map-topline h1{font-size:28px!important;margin:6px 0!important}.map-topline .eyebrow{font-size:7px}.map-bottom-note{padding:10px 12px!important;font-size:9px!important}.companion-pin small{font-size:9px;max-width:105px}.map-greeting h2{font-size:24px}.map-key[open]{max-width:210px}}
.reserve-demo-body{margin:0;background:#f5f1e5}.reserve-demo-main{max-width:1080px;margin:auto;padding:25px 24px 100px}.reserve-demo-main>a{font:12px system-ui;color:#244d3a}.reserve-demo-banner{padding:16px 20px;background:#ebe7d0;border:1px solid #d5c99c;border-radius:14px;margin:20px 0}.reserve-demo-banner strong{font:700 14px system-ui}.reserve-demo-banner p{font:12px/1.6 system-ui;margin-bottom:0}@media(max-width:700px){.reserve-demo-main{padding:20px 12px 100px}.reserve-demo-banner{padding:13px 16px;margin:16px 0}}
.care-animal .racer-art{display:block;background-repeat:no-repeat;background-color:#f8efdd}.reserve-reassurance>a{color:#315f46;display:inline-block;padding:8px}.reserve-demo-main .care-animal{flex:none}
.map-expand{position:absolute;z-index:401;left:117px;top:65px;background:#244d3af5;border:1px solid #d6c494;border-radius:20px;padding:8px 13px;font:600 10px system-ui;color:#fff9e7;min-height:36px}.world-stage.map-expanded{position:fixed!important;inset:14px 14px 84px!important;height:auto!important;width:auto!important;min-height:0!important;margin:0!important;z-index:950;box-shadow:0 0 0 200vmax #173e32c9;border-radius:18px!important}.world-stage.map-expanded .leaflet-container{height:100%}@media(max-width:700px){.map-expand{left:100px;top:52px;min-height:40px;font-size:9px;padding:8px 12px}.world-stage{height:calc(100dvh - 400px)!important;min-height:350px!important}.map-topline{padding:10px 12px!important}.map-topline h1{font-size:26px!important}.world-stage.map-expanded{inset:8px 8px 80px!important}}
/* Field-atlas cartography: readable real tiles, illustrated framing and spacious controls. */
.world-stage{border:5px solid #e4dcc2;outline:1px solid #bdc7ab;border-radius:24px!important;box-shadow:0 12px 32px #244b361b,inset 0 0 0 1px #fff9e8}.world-stage[data-map-theme=atlas] .leaflet-tile-pane{filter:sepia(.26) saturate(.72) brightness(1.025) contrast(.97)}.world-stage[data-map-theme=streets] .leaflet-tile-pane{filter:none}.world-stage .leaflet-control-scale{margin:0 0 12px 13px!important;pointer-events:none}.world-stage .leaflet-control-scale-line{border:2px solid #385e48;border-top:0;background:#fffbedeb;color:#244d3a;text-shadow:none;font:9px system-ui;padding:3px 6px;box-sizing:content-box;border-radius:0 0 4px 4px}.world-stage .map-key{bottom:48px}.world-stage .map-location{max-width:calc(100% - 84px);padding:11px 15px;letter-spacing:.2px;background:#fffbedf7;border:1px solid #c2cba9}.map-appearance{position:absolute;z-index:600;right:16px;bottom:32px;max-width:310px;box-sizing:border-box;color:#244d3a}.map-appearance>summary{list-style:none;cursor:pointer;border:1px solid #b8c8a5;background:#fffbedf5;border-radius:22px;padding:11px 15px;font:700 11px system-ui;min-height:44px;box-sizing:border-box;display:flex;align-items:center;box-shadow:0 4px 15px #173e3226}.map-appearance>summary::-webkit-details-marker{display:none}.map-appearance>summary:before{content:'◈';font:20px Georgia;margin-right:8px;color:#967a3e}.map-appearance[open]{padding:20px;background:#fffcf1;border:1px solid #b9c6a4;border-radius:20px;box-shadow:0 12px 38px #173e3255;width:310px}.map-appearance[open]>summary{padding:0 0 13px;border:0;border-bottom:1px solid #dce0c9;border-radius:0;box-shadow:none;background:none;margin-bottom:13px}.map-appearance>strong{font:27px/1.1 Georgia,serif}.map-appearance>p{font:12px/1.6 system-ui;margin:8px 0 16px}.map-theme-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.map-theme-options button{background:#f2f3e6;border:1px solid #c3cfb0;border-radius:12px;padding:10px;color:#244d3a;font:700 12px system-ui;cursor:pointer;min-height:120px}.map-theme-options button[aria-pressed=true]{border:2px solid #315b42;background:#e5ead6;box-shadow:0 0 0 2px #d6bd7e}.map-theme-options small{display:block;font:9px/1.5 system-ui;margin-top:6px}.map-theme-options i{display:block;height:54px;border-radius:8px;margin-bottom:9px;background:linear-gradient(120deg,transparent 45%,#fff9e7 46% 50%,transparent 51%),linear-gradient(20deg,#b4c8a0 0 36%,#dfd9bd 37% 58%,#9dc0be 59%);border:1px solid #b8c8a5}.map-theme-options .theme-streets{background:linear-gradient(120deg,transparent 45%,#fff 46% 50%,transparent 51%),linear-gradient(20deg,#b9d6ab 0 36%,#eeeae0 37% 58%,#afd3dd 59%)}.map-style-note{display:block;font:10px/1.6 system-ui;color:#68795f;margin-top:14px}.map-style-close{margin-top:15px;width:100%;min-height:46px;border:0;border-radius:10px;background:#244d3a;color:#fff8e2;font:700 13px system-ui;cursor:pointer}.world-stage .companion-pin>.racer-art,.world-stage .companion-pin>div{border:3px solid #bf994e;box-shadow:0 0 0 5px #fff9e6e0,0 9px 20px #173e3255}.world-stage .recenter-map{border-radius:50%!important;min-width:44px;min-height:44px}.map-topline{border-bottom:1px solid #d2d9c0;padding-bottom:15px!important;margin-bottom:20px!important}.map-topline .map-locate-action{border-radius:22px;padding:12px 20px}.map-topline .map-locate-action:last-child{background:#f6f3e6;color:#315b43;border-color:#c5cfb4}.map-bottom-note>span{max-width:70%;line-height:1.5}.map-bottom-note .text-button{font-size:11px}.world-stage .leaflet-popup-content-wrapper{background:#fffbef;border:1px solid #c7ceaf;border-radius:14px;color:#244d3a;box-shadow:0 7px 24px #173e322e}.world-stage .leaflet-popup-tip{background:#fffbef}.world-stage .leaflet-popup-content{font:12px/1.6 system-ui}.world-stage .leaflet-popup-content strong{font:21px Georgia,serif}.world-stage .leaflet-control-attribution a{color:#315b43}.map-expand:focus-visible,.map-name-toggle:focus-visible,.map-appearance summary:focus-visible,.map-theme-options button:focus-visible{outline:3px solid #b18e43;outline-offset:3px}
@media(max-width:700px){.workspace:has(.explore-game)>header{height:44px!important;padding:7px 14px!important}.workspace:has(.explore-game)>main{padding-top:8px!important}.explore-game .explore-tabs{margin-bottom:8px;padding:3px;border-radius:11px}.explore-game .explore-tabs button{min-height:42px;padding:8px}.explore-game .game-player{margin-bottom:5px!important;min-height:52px!important;padding:8px 12px!important;border-radius:13px}.explore-game .map-topline{margin:4px 0 10px!important;padding:8px 4px!important;display:grid;grid-template-columns:1fr auto;gap:8px!important;border:0}.explore-game .map-topline>div{grid-column:1/-1}.explore-game .map-topline h1{font-size:25px!important;margin:2px 0 5px!important}.explore-game .map-topline .map-locate-action{min-height:44px;margin:0;padding:9px 18px;font-size:12px}.world-stage{margin:0 1px!important;border-width:3px;height:calc(100dvh - 326px)!important;min-height:340px!important;border-radius:18px!important}.world-stage .map-location{left:10px!important;top:12px!important;font-size:9px!important;max-width:calc(100% - 70px);padding:9px 12px!important}.world-stage .map-name-toggle,.world-stage .map-expand{top:auto;bottom:18px;min-height:44px;font-size:10px;background:#fffbedf5;color:#315b43;border:1px solid #b6c6a3;box-shadow:0 4px 14px #173e321f}.world-stage .map-name-toggle{left:10px;bottom:72px;min-height:38px}.world-stage .map-expand{left:10px;bottom:22px;background:#244d3af5;color:#fff9e3}.world-stage .map-key{bottom:126px;left:10px;max-width:210px;padding:8px 12px}.world-stage .map-key summary{min-height:25px}.map-appearance{right:10px;bottom:22px;max-width:calc(100% - 20px)}.map-appearance>summary{font-size:10px;padding:10px 13px}.map-appearance[open]{width:calc(100% - 20px);right:10px;padding:17px;bottom:22px}.map-appearance[open]>summary{font-size:12px}.map-theme-options button{min-height:115px}.world-stage .leaflet-control-scale{position:absolute;right:10px;bottom:72px;left:auto;margin:0!important;max-width:85px}.world-stage .leaflet-control-scale-line{font-size:8px}.world-stage .leaflet-control-attribution{max-width:100%;font-size:7px!important;padding:2px 5px}.map-bottom-note{padding:9px 4px!important;gap:8px}.map-bottom-note>span{font-size:9px;max-width:68%}.map-bottom-note .text-button{font-size:9px;min-height:40px;padding:4px}.world-stage.map-expanded{height:auto!important;min-height:0!important;inset:8px 8px calc(78px + env(safe-area-inset-bottom))!important}.map-greeting{margin:8px 0!important}.map-greeting:not([hidden]){padding:15px!important;display:grid!important;grid-template-columns:1fr auto!important;align-items:center;gap:10px}.map-greeting .map-leaf,.map-greeting p{display:none!important}.map-greeting h2{font-size:21px!important;margin:0!important;max-width:170px}.map-greeting .primary{font-size:11px!important;min-height:46px;padding:10px 15px!important}.map-greeting .map-intro-dismiss{position:absolute;right:0;top:0;width:30px;min-width:30px;min-height:30px;transform:translate(6px,-8px)}.map-greeting:not([hidden])~.world-stage{height:calc(100dvh - 410px)!important;min-height:320px!important}}
.map-topline>div:first-child{padding:20px 24px;border-radius:17px;background:linear-gradient(90deg,#173e32ed,#173e3270),var(--trail-scene) center 58%/cover;flex:1}.map-topline>div:first-child h1{color:#fff8e5;margin:7px 0 0}.map-topline>div:first-child .eyebrow{color:#e7d39d}.map-topline{align-items:center;gap:14px}.world-stage .leaflet-control-scale-line{white-space:nowrap}
@media(max-width:700px){.explore-game .map-topline>div:first-child{padding:12px 16px;border-radius:13px}.explore-game .map-topline>div:first-child h1{font-size:24px!important;margin:0!important;color:#fff8e5}.world-stage{height:calc(100dvh - 350px)!important}.map-greeting:not([hidden]){position:relative!important;display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;padding:16px!important;gap:12px!important;min-height:0!important;max-width:none!important;width:auto!important}.map-greeting:not([hidden]) h2{flex:1;font-size:18px!important;max-width:none!important;margin:0!important;text-align:left!important}.map-greeting:not([hidden]) .primary{flex:0 0 134px;width:134px!important;max-width:134px!important;min-height:48px!important;margin:0!important;padding:10px!important;white-space:normal;font-size:10px!important;display:flex!important;gap:5px!important}.map-greeting:not([hidden]) .primary svg{width:16px;height:16px;flex:none}.map-greeting .map-intro-dismiss{min-height:36px!important;min-width:36px!important;background:#fffbed;border-radius:50%;border:1px solid #c9d1b6;right:-4px!important;top:-8px!important}.workspace:has(.explore-game) #journey-save-status{white-space:nowrap;font-size:8px!important;padding:8px 10px!important;max-width:none!important}.world-stage.map-expanded{height:auto!important}}
.map-appearance[open]{max-height:calc(100% - 44px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.world-stage:has(.map-appearance[open]) .map-key[open]{visibility:hidden}
.collection-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:24px 0 15px;scroll-margin-top:15px}.collection-heading h2{margin:0;font:34px Georgia,serif}.collection-heading>a{font:650 12px system-ui;color:#315b43}.collection-tools{padding:20px;background:#ebeede;border:1px solid #c9d3b7;border-radius:18px}.collection-search{display:block;font:650 12px system-ui}.collection-search input{display:block;width:100%;box-sizing:border-box;min-height:48px;border:1px solid #b7c5a2;border-radius:10px;padding:12px 15px;background:#fffbed;color:#244d3a;font:16px system-ui;margin:8px 0 14px}.collection-modes{display:flex;gap:7px}.collection-modes button{flex:1;min-height:44px;border:1px solid #bbc8a9;background:#f9f8ec;color:#315b43;border-radius:9px;font:650 12px system-ui;cursor:pointer}.collection-modes button[aria-pressed=true]{background:#244d3a;color:#fff9e5;border-color:#244d3a}.collection-options{margin-top:15px}.collection-options summary{font:650 12px system-ui;cursor:pointer;min-height:25px}.collection-options>div{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:12px}.collection-options label{font:12px system-ui}.collection-options select{display:block;margin-top:8px}.collection-count{font:12px system-ui;color:#647457;margin:17px 0}.collection-roster .companion-card{overflow:hidden;padding:0;box-shadow:0 7px 22px #244b3612;background:#fffcf3}.roster-portrait{position:relative;padding:24px 20px 42px;background:linear-gradient(#173e3211,#173e3255),var(--trail-scene) center/cover}.roster-fly .roster-portrait{background-image:linear-gradient(#173e3211,#173e3255),var(--sky-scene)}.roster-swim .roster-portrait{background-image:linear-gradient(#173e3211,#173e3255),var(--river-scene)}.collection-roster .roster-portrait>.racer-art{width:150px;height:150px;margin:0 auto;border:3px solid #e8d29e;border-radius:50%;box-shadow:0 6px 20px #173e3255;background-color:#f8efdd}.roster-portrait>span:last-child:not(.racer-art){position:absolute;bottom:12px;left:17px;background:#173e32e8;color:#fff6dc;border:1px solid #e6d4a1;padding:5px 9px;border-radius:16px;font:650 9px system-ui}.roster-info{padding:18px 22px 22px}.roster-info h2{font-size:26px;margin:12px 0}.roster-info .animal-rank{font-size:9px}.roster-info>p{font:12px/1.5 system-ui;margin:8px 0}.roster-info details{padding:8px 0 12px}.roster-info summary{font:600 12px system-ui;cursor:pointer;min-height:24px}.roster-info details p{font:12px/1.5 system-ui}.roster-info a.roster-race,.roster-info a.roster-care{display:block;text-align:center;min-height:46px;box-sizing:border-box;border-radius:10px;font:650 12px system-ui;padding:14px;margin-top:8px}.roster-info a.roster-care{background:#ecf0df;color:#315b43;border:1px solid #c8d3b5}.collection-fold>summary{font:700 16px system-ui;min-height:26px;cursor:pointer}.collection-fold>h2{font-size:27px}.collection-start{display:flex;gap:12px;flex-wrap:wrap}.collection-start a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border-radius:10px;padding:12px 18px;text-decoration:none;font:650 13px system-ui;box-sizing:border-box}.collection-start a.secondary{background:#e8ecda;border:1px solid #c2cdb1;color:#315b43}.first-companion{background:linear-gradient(100deg,#173e32f2,#173e32b0),var(--trail-scene) center/cover;color:#fff8e5}.first-companion h2,.first-companion .eyebrow{color:#fff8e5}.first-companion .text-link{color:#e6d4a4}#race-selected{width:100%;min-height:48px;border-radius:10px;margin:10px 0}.collection-account h2{font-size:27px}.collection-roster .xp-track{margin:12px 0}
@media(max-width:700px){body:has(#collection)>main>header{min-height:0;padding:24px 22px}body:has(#collection)>main>header h1{font-size:39px;letter-spacing:-1px}body:has(#collection)>main>header>p:last-of-type{font-size:12px}.collection-heading h2{font-size:28px}.collection-heading>a{font-size:10px}.collection-tools{padding:15px}.collection-options>div{grid-template-columns:1fr;gap:12px}.collection-options label{display:grid;grid-template-columns:90px 1fr;align-items:center}.collection-options select{margin:0;min-width:0}.collection-modes button{font-size:11px;padding:8px 5px}.collection-roster.progress-grid{grid-template-columns:1fr}.collection-roster .companion-card{display:grid;grid-template-columns:120px 1fr}.roster-portrait{padding:20px 9px 40px;display:flex;align-items:center;justify-content:center;min-width:0}.collection-roster .roster-portrait>.racer-art{width:98px;height:98px;border-width:2px}.roster-portrait>span:last-child:not(.racer-art){left:8px;bottom:15px;font-size:8px;max-width:95px;padding:4px 7px}.roster-info{padding:13px 13px 15px}.roster-info h2{font-size:23px;margin:9px 0}.roster-info .animal-rank{font-size:8px;padding:5px 7px}.roster-info>p{font-size:10px;margin:6px 0}.roster-info details{padding:4px 0}.roster-info summary{font-size:10px}.roster-info a.roster-race,.roster-info a.roster-care{font-size:11px;padding:13px 7px;min-height:44px}.collection-roster{gap:13px}.first-companion h2{font-size:29px}.first-companion p{font-size:12px;line-height:1.6}.collection-start{gap:8px;display:grid;grid-template-columns:1fr}.collection-start a{font-size:12px}.collection-fold{padding:18px}.collection-fold>summary{font-size:14px}.collection-count{font-size:11px}}
.pen-world-tour .reserve-landscape{background-image:linear-gradient(#f6f0dfb8,#f3ead2cc),var(--sky-scene)}.pen-world-tour .reserve-resident .resident-body{box-shadow:0 7px 20px #173e322d}.reserve-resident.pen-resident>.resident-region{background:#f5e7be;color:#594e31;border-color:#d2be87;font:650 9px system-ui;margin-top:5px;padding:4px 8px}.tour-sanctuary-tools{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 22px;background:#eef0e2;border-top:1px solid #d5ddc4}.tour-sanctuary-tools>p{font:12px/1.6 system-ui;margin:0;max-width:400px}.tour-sanctuary-tools label{font:650 11px system-ui;min-width:215px}.tour-sanctuary-tools select{display:block;width:100%;min-height:44px;border-radius:10px;border:1px solid #bdc9aa;background:#fffbed;color:#315b43;font:14px system-ui;padding:10px;margin-top:6px}.care-habitat-world-tour{background:linear-gradient(#b4cab370,#ebdfbd85),var(--sky-scene) center/cover}.care-native-region{padding:9px 12px;background:#edf0e1;border:1px solid #d1dbc0;border-radius:10px;color:#315b43;font:650 12px/1.5 system-ui}.care-native-region small{display:block;font-weight:400;font-size:10px;margin-top:3px}.care-neighbours{display:flex;gap:10px;padding:0 25px 20px;background:#fffcf1}.care-neighbours button{flex:1;min-height:46px;border-radius:9px;font-size:12px;justify-content:center}.tour-sanctuary-link{display:inline-flex;margin:8px;min-height:46px;align-items:center;justify-content:center;text-decoration:none}.reserve-tabs{scroll-padding:6px}.reserve-v29 .reserve-pages button{min-height:48px}.care-habitat-world-tour+.dialog-body .demo-note{line-height:1.6}
@media(max-width:700px){.tour-sanctuary-tools{display:block;padding:12px 16px}.tour-sanctuary-tools>p{font-size:11px;margin-bottom:10px;line-height:1.5}.tour-sanctuary-tools label{display:grid;grid-template-columns:90px 1fr;align-items:center;min-width:0;font-size:10px}.tour-sanctuary-tools select{min-width:0;margin:0;font-size:14px}.reserve-tabs{position:sticky;top:0;z-index:450;background:#f7f4e9ed;padding:6px 1px 12px;backdrop-filter:blur(10px)}.reserve-tabs button{min-width:100px;min-height:60px}.pen-world-tour .reserve-residents{gap:15px 10px}.pen-world-tour .reserve-resident.pen-resident{min-height:175px}.pen-world-tour .reserve-landscape.pen-ground.living-pen{padding:16px 10px}.care-habitat-world-tour{height:180px}.care-habitat-world-tour .care-animal .racer-art{height:140px!important;width:160px!important}.care-neighbours{padding:0 18px 15px;gap:8px}.care-neighbours button{font-size:11px}.care-habitat-world-tour+.dialog-body{padding:15px 18px!important}.care-habitat-world-tour+.dialog-body h2{font-size:27px}.care-native-region{margin:7px 0!important;padding:7px 10px}.tour-sanctuary-link{display:block;margin:9px 0}.reserve-resident.pen-resident>.resident-region{font-size:8px;max-width:130px;line-height:1.4}}
.pen-world-tour .pen-ground.living-pen.reserve-landscape{background-image:linear-gradient(#f6f0dfcc,#f3ead2de),var(--sky-scene)}.pen-wetland .pen-ground.living-pen.reserve-landscape,.pen-coast .pen-ground.living-pen.reserve-landscape{background-image:linear-gradient(#173e3210,#173e3244),var(--river-scene)}#world-root>header{background:linear-gradient(90deg,#173e32f2,#173e3270),var(--trail-scene) center/cover}#world-root>header h1{font-family:Georgia,serif;letter-spacing:-1px}#world-root .tour-how{font:12px/1.6 system-ui;color:#f2ecd9;margin-top:15px}#world-root .tour-how summary{cursor:pointer;min-height:30px;font-weight:650}#world-root .tour-how p{font-size:12px}#world-root .regions button{min-height:44px}#world-root .regions{scroll-padding:5px}
@media(max-width:700px){.workspace:has(.reserve-v29)>header{height:44px!important;padding:8px 14px!important}.workspace:has(.reserve-v29) #journey-save-status{white-space:nowrap;font-size:8px!important;padding:8px 10px!important}.workspace:has(.reserve-v29)>main{padding-top:10px!important}.workspace main:has(.reserve-v29)>.page-heading{padding:0;margin:0 0 12px}.workspace main:has(.reserve-v29)>.page-heading .eyebrow{font-size:7px}.workspace main:has(.reserve-v29)>.page-heading h1{font-size:30px;line-height:1.12;margin:7px 0 8px;letter-spacing:-.7px}.workspace main:has(.reserve-v29)>.page-heading>p{font-size:11px;line-height:1.5;margin:0}.reserve-v29 .reserve-toolbar{align-items:center;margin-bottom:6px}.reserve-v29 .reserve-toolbar h2{display:none}.reserve-v29 .reserve-toolbar .eyebrow{font-size:8px}.reserve-v29 .reserve-tabs{margin:0;padding-bottom:11px}.reserve-v29 .pen-heading{padding:12px 16px}.reserve-v29 .pen-heading h3{font-size:25px}.tour-sanctuary-tools{padding:10px 15px}.tour-sanctuary-tools>p{font-size:10px;margin-bottom:8px}#world-root>header{padding:20px}#world-root>header h1{font-size:31px;line-height:1.06;margin:10px 0}#world-root>header>small{font-size:8px;letter-spacing:1.6px}#world-root>header>p{font-size:12px;margin:10px 0}#world-root .tour-how{margin-top:9px;font-size:11px}#world-root .tour-how summary{min-height:28px}#world-root>.scores{margin:12px 0}#world-root>.scores>b{font-size:11px;padding:10px}#world-root>.regions{flex-wrap:nowrap;overflow-x:auto;padding-bottom:10px}#world-root>.regions button{flex:none;min-height:46px;padding:10px 15px}#world-root>.regions+.muted{font-size:10px;line-height:1.5}#world-root>h2{font:26px Georgia,serif;margin:17px 0 10px}}
@media(max-width:700px){.workspace main:has(.reserve-v29)>.page-heading>p,.workspace main:has(.reserve-v29)>.page-heading>.eyebrow{display:none}.workspace main:has(.reserve-v29)>.page-heading h1{font-size:30px;margin:5px 0 10px}.reserve-v29 .pen-heading>span{display:none}.reserve-v29 .pen-heading h3{font-size:23px}.workspace:has(.reserve-v29) .breadcrumb{white-space:nowrap;font-size:9px!important}.reserve-v29 .reserve-toolbar{margin:0 0 5px}.reserve-v29 .pen-tier-name{padding-top:5px}}
.capture-rules{display:flex;gap:5px;justify-content:center;flex-wrap:wrap;margin:10px 0;font:650 9px/1.5 system-ui;color:#486144}.capture-rules>span{padding:4px 8px;border:1px solid #c9d4b6;border-radius:15px;background:#edf0df}.capture-outcome{padding:17px;background:#f1e5c9;border:1px solid #ceb274;border-radius:12px;color:#765a29;font:650 14px/1.6 system-ui;margin:12px 0}.capture-controls #capture-retry{background:#e4ead5;border:1px solid #bdc9a7;min-height:48px;color:#31563e}.encounter-body #capture-status{min-height:36px}@media(max-width:650px){.capture-rules{font-size:8px;gap:4px;margin:8px 0}.capture-rules>span{padding:4px 6px}.capture-outcome{font-size:12px;padding:14px}.encounter-body #capture-status{font-size:11px;min-height:34px}}
.encounter-card[data-result=escaped] .encounter-halo{animation:companion-flee .65s ease-in both}@keyframes companion-flee{to{transform:translateX(240px) rotate(8deg);opacity:0}}@media(prefers-reduced-motion:reduce){.encounter-card[data-result=escaped] .encounter-halo{animation:none;opacity:.25}}
.tour-catch-chance{font:650 12px/1.5 system-ui;color:#795f30;padding:10px;background:#f4e9cc;border-radius:10px}
.race-growth{padding:16px 19px;border:1px solid #c6d2b2;border-radius:12px;background:#e9efdc;margin:16px 0;display:grid;gap:7px;font:13px system-ui}.race-growth span{font-size:11px;color:#5d7054}.race-growth progress{width:100%;height:10px;accent-color:#416b47}.race-care-link{display:block;background:#244d3a;border:1px solid #315b43;color:#fff8df;padding:16px;text-align:center;border-radius:11px;font:650 14px system-ui;min-height:49px;text-decoration:none;margin:12px 0 18px}.result-fact{padding:14px 16px;border:1px solid #d5c79d;background:#f3ead0;border-radius:10px;margin:13px 0}.result-fact>summary{cursor:pointer;font:650 13px system-ui;min-height:22px}.result-fact p{font:13px/1.6 system-ui;margin:10px 0 0}@media(max-width:700px){.race-care-link{font-size:12px}.race-growth{padding:13px 15px}.result-fact{padding:12px 14px}}
/* Encounter theatre: existing natural-history art and painted landscapes, no new services. */
.encounter-card[data-tier]{border:1px solid #c5b68c;box-shadow:0 16px 45px #173e3221}.encounter-art{background-image:linear-gradient(#153f3210,#153f328c),url('/assets/course-trail.webp');background-position:center 55%}.encounter-water,.encounter-coast{background-image:linear-gradient(#184b4b08,#153f327a),url('/assets/course-river.webp')}.encounter-card[data-tier="3"] .encounter-forest{background-image:linear-gradient(#183c4f38,#183c4f99),url('/assets/course-canopy.webp')}.encounter-halo,.encounter-preview .encounter-halo{border:3px double #ddc795;border-radius:46% 46% 22px 22px;box-shadow:0 0 0 6px #ffedbd22,0 14px 30px #12372c70}.encounter-halo .racer-art{border-radius:44% 44% 15px 15px}.encounter-scene-label{font:700 9px/1.3 system-ui;letter-spacing:1.5px;text-transform:uppercase;color:#767651;margin:0 0 8px}.capture-round{display:inline-block;padding:7px 13px;background:#244c3a;color:#fff6dc;border-radius:20px;font:650 11px/1.4 system-ui;margin:5px 0}.capture-track{background:repeating-linear-gradient(90deg,transparent 0,transparent calc(10% - 1px),#173e3214 calc(10% - 1px),#173e3214 10%),linear-gradient(#eef0dd,#d6dfc6)!important}.capture-track #capture-zone{box-shadow:0 0 15px #debb64aa,inset 0 2px 2px #fff4c8;border-radius:8px}.capture-track #capture-zone:after{content:'';position:absolute;top:6px;bottom:6px;left:50%;border-left:2px dotted #89642a80}.encounter-card[data-tier="3"] .capture-round{background:#55472f}.encounter-card[data-tier="2"] .capture-round{background:#365861}.capture-controls .primary:active{transform:translateY(2px);box-shadow:0 2px 0 #152f25}.encounter-card[data-result="escaped"] .encounter-art{filter:saturate(.65)}
@media(max-width:700px){.encounter-preview .preview-head{display:grid;grid-template-columns:1fr auto;gap:5px 8px;align-items:center}.preview-head>a{grid-column:1/-1}.encounter-preview .preview-head h1{font-size:22px!important;margin:4px 0}.encounter-preview .preview-head details{font-size:10px;margin:0;max-width:130px}.encounter-preview .preview-head label{grid-column:1/-1;font-size:10px}.encounter-preview .preview-head select{grid-column:1/-1;margin:0;min-height:44px}.encounter-art,.encounter-preview .encounter-art{min-height:174px;gap:5px;padding:7px 0}.encounter-halo,.encounter-preview .encounter-halo{width:150px;height:116px;padding:4px}.encounter-kicker{font-size:7px;letter-spacing:1px;padding:5px 10px}.encounter-rank{font-size:9px;padding:4px 10px}.encounter-body,.encounter-preview .encounter-body{padding:12px 14px}.encounter-body h2,.encounter-preview .encounter-body h2{font-size:24px;margin-bottom:5px}.encounter-scene-label{font-size:7px;margin-bottom:5px}.capture-rules{margin:5px 0}.capture-round{font-size:10px;margin:3px 0;padding:5px 10px}.encounter-body .capture-hearts{font-size:19px;margin:2px 0;line-height:1.1}.capture-misses{margin:4px 0}.encounter-body .capture-track{min-height:46px;margin:7px 0}.encounter-body #capture-status{min-height:30px;margin:4px 0}.capture-controls{padding:3px 0}.capture-controls .primary{min-height:54px!important}.capture-controls .secondary{min-height:36px;margin:3px 0;padding:6px}.encounter-safety{font-size:9px;line-height:1.4;margin-top:7px}.encounter-preview{padding:8px 10px}.encounter-card .capture-controls{position:relative;bottom:auto}}

.tour-expedition{margin:18px 0;padding:16px 20px;background:#ece9d4;border:1px solid #cbbf99;border-radius:15px;color:#36523c}.tour-expedition summary{font:700 14px system-ui;cursor:pointer;min-height:24px}.tour-expedition p{font:650 12px/1.5 system-ui}.tour-expedition small{font:11px/1.5 system-ui}.tour-unlock{padding:10px 12px;border:1px solid #d4c69d;background:#f2ead3;border-radius:10px;font:650 11px/1.5 system-ui!important;color:#6c572c}.tour-locked{border-style:dashed!important}.tour-locked .action:disabled{background:#e0dfd0!important;color:#676f5b!important;cursor:default;box-shadow:none}.tour-locked .emoji{filter:saturate(.6)}.tour-mastery{padding:12px;background:#e8edd9;border:1px solid #c9d2b5;border-radius:12px;font:650 12px/1.5 system-ui}.challenge .buttons button:active{transform:translateY(3px);border-bottom-width:4px}.challenge .buttons{position:sticky;bottom:80px;background:#faf7ebee;padding:8px;border-radius:16px;backdrop-filter:blur(8px)}
@media(max-width:700px){#world-root>.regions{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:7px;padding:4px 0 12px;scroll-snap-type:x proximity}#world-root>.regions button{flex:none;min-height:44px;padding:9px 14px;scroll-snap-align:start}#world-root .tour-expedition{margin:12px 0;padding:12px 14px}#world-root .tour-expedition summary{font-size:12px}#world-root .grid article{padding:14px!important;gap:12px!important}#world-root .grid article h3{font-size:24px!important}#world-root .tour-unlock{font-size:10px!important;padding:9px;margin:8px 0}.challenge .big{padding:16px;margin-bottom:12px}.challenge .buttons button{min-height:76px;font-size:22px}.challenge>p{font-size:12px;line-height:1.5}.challenge .buttons{gap:10px;margin:10px 0}.tour-catch-chance{font-size:11px!important}}
#world-root{color:#244a38;background:transparent}body:has(#world-root){background:#f5f2e6}#world-root .grid article{display:grid;grid-template-columns:140px minmax(0,1fr);align-items:stretch;padding:0!important;gap:0!important;border:1px solid #c8cfb7;border-radius:18px;overflow:hidden;background:#fffaf0;box-shadow:0 7px 20px #173e3210}#world-root .grid article>.emoji{min-width:0;width:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:14px 8px;background:linear-gradient(#173e3260,#173e3299),url('/assets/course-trail.webp') center/cover}#world-root .grid article>.emoji .racer-art{width:104px;height:104px;max-width:100%;margin:0;box-sizing:border-box;flex:none}#world-root .grid article>.emoji .encounter-badge{font-size:8px;text-align:center;letter-spacing:0;max-width:100%;box-sizing:border-box;padding:5px 6px}#world-root .grid article>div:not(.emoji){min-width:0;padding:19px}#world-root .grid article h3{font:28px/1.08 Georgia,serif;margin:0 0 10px}#world-root .grid article p{font:12px/1.5 system-ui;margin:7px 0}#world-root .grid article .action{width:100%;font-size:12px;line-height:1.4;min-height:48px;box-sizing:border-box}#world-root .grid{gap:15px}#world-root .tour-locked .emoji{filter:saturate(.7)}
@media(max-width:700px){#world-root .grid article{grid-template-columns:100px minmax(0,1fr);gap:0!important;padding:0!important}#world-root .grid article>.emoji{padding:12px 6px;gap:8px}#world-root .grid article>.emoji .racer-art{width:82px;height:82px;border-width:3px}#world-root .grid article>.emoji .encounter-badge{font-size:7px;line-height:1.5;padding:5px;white-space:normal}#world-root .grid article>div:not(.emoji){padding:14px 12px}#world-root .grid article h3{font-size:22px!important}#world-root .grid article p{font-size:10px;line-height:1.45}#world-root .grid article .action{font-size:11px;padding:10px 8px}#world-root .tour-unlock{font-size:9px!important;padding:7px}#world-root .grid{gap:12px}}
/* Clear walking feedback and an illustrated first-session guide. */
.walk-next{padding:18px 22px;background:linear-gradient(110deg,#244d3bf5,#244d3bd9),url('/assets/course-trail.webp') center/cover;color:#fff5dd;border:1px solid #bcaa75;border-radius:17px;margin:0 0 14px}.walk-next>span{font:750 9px system-ui;letter-spacing:1.6px;color:#e0c58a}.walk-next h3{font:25px/1.2 Georgia,serif;margin:10px 0 14px}.walk-checks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.walk-checks>span{font:650 10px/1.5 system-ui;border:1px solid #c8c89b55;padding:8px 5px;border-radius:8px;text-align:center;background:#ffffff0b}.walk-checks .done{background:#e2cf96;color:#234b35;border-color:#e2cf96}.walk-next>a{display:inline-block;color:#f4dc9b;font:650 12px system-ui;padding:12px 0 2px}.walk-next>p{font:11px/1.5 system-ui}.walk-guide-link{display:block;color:#244b39;font:700 12px system-ui;margin:12px 0}.tour-level{display:flex;align-items:center;gap:16px;border:1px solid #cbb77d;border-radius:17px;padding:18px 22px;margin-top:18px;background:linear-gradient(115deg,#244c3a,#3d6651);color:#fff6df}.tour-level-number{display:grid;place-items:center;flex:none;width:64px;height:72px;background:#dfc17a;color:#244a36;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);font:40px Georgia,serif}.tour-level>div{flex:1;min-width:0}.tour-level small{font:750 8px system-ui;letter-spacing:1.5px;color:#e2d19a}.tour-level strong{display:block;font:27px Georgia,serif;margin:5px 0 8px}.tour-level progress{display:block;width:100%;height:8px;accent-color:#e1c37d;border:0;border-radius:8px;overflow:hidden;background:#ffffff30}.tour-level progress::-webkit-progress-bar{background:#ffffff25}.tour-level progress::-webkit-progress-value{background:#e1c37d}.tour-level span{display:block;font:11px system-ui;margin-top:8px}.learn-body{margin:0;background:#f5f2e6;color:#244a38;font:14px/1.65 system-ui}.learn-game{max-width:780px;margin:0 auto;padding:22px 20px 60px}.learn-back{color:#315b43;font-size:12px;font-weight:700}.learn-hero{border-radius:22px;padding:34px;margin:20px 0;background:linear-gradient(95deg,#153d32ee,#153d3266),url('/assets/course-trail.webp') center/cover;color:#fff4da}.learn-hero>span{font:750 9px system-ui;letter-spacing:2px}.learn-hero h1{font:54px/.98 Georgia,serif;margin:20px 0}.learn-hero p{max-width:390px;font-size:14px}.learn-modes{display:grid;grid-template-columns:1fr 1fr;gap:12px}.learn-modes a{padding:18px;border:1px solid #c8c9aa;background:#fffaf0;border-radius:13px;text-decoration:none;color:#244b38}.learn-modes strong{display:block;font:24px Georgia,serif}.learn-modes small{font-size:10px}.learn-section{scroll-margin-top:15px;margin:28px 0;padding:26px;border:1px solid #d2cbae;border-radius:20px;background:#fffbf2}.learn-eyebrow{font:750 9px system-ui;letter-spacing:1.8px;color:#81703e}.learn-section h2{font:34px/1.1 Georgia,serif;margin:12px 0}.learn-steps{list-style:none;padding:0;margin:25px 0}.learn-steps li{display:flex;gap:15px;padding:0 0 23px;position:relative}.learn-steps li>b{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#244b38;color:#f6e9bc;font:22px Georgia;flex:none}.learn-steps h3{font:23px/1.2 Georgia,serif;margin:3px 0 8px}.learn-steps p{margin:0;font-size:13px}.learn-steps small,.learn-levels small{display:block;font-size:11px;margin-top:9px;color:#677254}.learn-outcome,.learn-levels{padding:18px;background:#ede6cd;border:1px solid #d4c28c;border-radius:13px;margin:14px 0}.learn-outcome h3,.learn-levels h3{font:25px/1.15 Georgia,serif;margin:0 0 10px}.learn-outcome p,.learn-levels p{font-size:12px}.learn-primary,.learn-secondary{display:block;border-radius:10px;padding:15px 12px;text-align:center;font-weight:700;text-decoration:none;margin:10px 0}.learn-primary{background:#244d39;color:#fff7de}.learn-secondary{background:#e9eddc;color:#244b38;border:1px solid #c2ccb0}.learn-section details{border-top:1px solid #dad9bf;padding:15px 0}.learn-section summary{font-size:13px;font-weight:700;cursor:pointer;min-height:32px}.learn-section details p{font-size:12px}.learn-home{border-top:7px solid #bf9f55}.learn-safety{padding:18px;background:#e7ecdb;border-radius:13px;font-size:12px}.learn-safety p{margin:8px 0 0}
@media(max-width:700px){.walk-next{padding:15px}.walk-next h3{font-size:22px}.walk-checks>span{font-size:9px;padding:7px 3px}.tour-level{padding:14px;gap:12px}.tour-level-number{width:50px;height:58px;font-size:32px}.tour-level strong{font-size:24px}.tour-level span{font-size:10px}.learn-game{padding:16px 12px 35px}.learn-hero{padding:24px;margin:15px 0}.learn-hero h1{font-size:43px}.learn-hero p{font-size:13px}.learn-modes{gap:9px}.learn-modes a{padding:14px 11px}.learn-modes strong{font-size:21px}.learn-modes small{font-size:9px;line-height:1.4;display:block;margin-top:6px}.learn-section{padding:19px 15px;margin:20px 0}.learn-section h2{font-size:30px}.learn-section>p{font-size:12px}.learn-steps{margin:22px 0 5px}.learn-steps li{gap:12px;padding-bottom:23px}.learn-steps h3{font-size:22px}.learn-steps p{font-size:12px}.learn-outcome,.learn-levels{padding:15px}}
/* Phone walking dashboard: two honest meters, one primary next action. */
.walk-next{position:relative;overflow:hidden;background:linear-gradient(120deg,#173e32ed,#244d3be8),url('/assets/course-trail.webp') center/cover;border:1px solid #bfae77;box-shadow:0 9px 25px #173e3220}.walk-next h3{font-size:25px}.walk-meters{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.walk-meters>div{padding:14px 12px;border:1px solid #f5e6b729;border-radius:12px;background:#fff9e511}.walk-meters span{display:block;font:700 8px system-ui;letter-spacing:.7px;color:#e6d5a3}.walk-meters strong{display:block;font:30px Georgia,serif;margin:8px 0}.walk-meters strong small{font:11px system-ui;color:#e0e5cc}.walk-meters progress{display:block;width:100%;height:6px;border:0;border-radius:5px;accent-color:#e3c581;overflow:hidden}.walk-meters progress::-webkit-progress-bar{background:#ffffff25}.walk-meters progress::-webkit-progress-value{background:#e3c581}.walk-main-action{width:100%;margin:15px 0 8px!important;background:#e3c581!important;color:#203f31!important;min-height:53px;box-shadow:0 4px 0 #102e25}.walk-explain{border-top:1px solid #e8e1b433;padding-top:8px;margin-top:12px}.walk-explain summary{font:650 11px system-ui;min-height:36px;display:list-item;cursor:pointer;padding-top:8px}.walk-explain p{font:11px/1.6 system-ui;color:#e8ecd9}.walk-field-details,.walk-other-quests{border:1px solid #d2d4bd;border-radius:13px;background:#faf7eb;padding:13px 16px;margin:12px 0}.walk-field-details>summary,.walk-other-quests>summary{font:700 13px/1.5 system-ui;min-height:24px;cursor:pointer}.walk-field-details .mission-banner{margin-top:16px}.walk-field-details>[data-action]{display:none!important}.walk-field-details .mission-creature{margin-top:14px}.walk-other-quests>button{margin:14px 0}.capture-legend{display:flex;justify-content:space-between;gap:10px;font:650 9px system-ui;color:#64714e;margin:9px 2px 0}.catch-help-link{display:inline-block;font:650 10px system-ui;color:#607248;margin:3px 0 7px}.practice-teach-link{display:block;grid-column:1/-1;font:650 11px/1.4 system-ui;color:#315d42;padding:10px 12px;border:1px solid #c6d1b5;border-radius:9px;background:#e7edd9;text-decoration:none}.capture-track{border-radius:12px!important}.capture-track #capture-zone{background:linear-gradient(#f5dea2,#cca252);box-shadow:0 0 0 1px #9f7e3e,0 0 18px #dbb76266}.encounter-card{box-shadow:0 13px 35px #183e321d}.catch-school{max-width:470px;margin:0 auto;padding:18px 14px 40px}.catch-school>header{padding:14px 0 8px}.catch-school header small{font:750 8px system-ui;letter-spacing:1.3px}.catch-school h1{font:36px/1.05 Georgia,serif;margin:12px 0}.catch-school header p{font:12px/1.5 system-ui}.lesson-card{overflow:hidden;border:1px solid #c6c49f;border-radius:22px;background:#fffbef;box-shadow:0 12px 35px #244b3920}.lesson-scene{display:flex;flex-direction:column;align-items:center;gap:12px;padding:20px 14px;background:linear-gradient(#173e3210,#173e3280),url('/assets/course-river.webp') center/cover}.lesson-pelican{width:160px;height:140px;border:4px double #d5bc7c;border-radius:45% 45% 15px 15px;background:#f8efdc url('/assets/animals.webp') 33.333333% 100%/400% 200%;box-shadow:0 8px 25px #173e3255}.lesson-scene>span{font:750 7px system-ui;letter-spacing:1px;color:#fff2cc;background:#173e32cf;padding:7px 10px;border-radius:15px}.lesson-body{padding:20px;text-align:center}.lesson-count{font:750 9px system-ui;color:#947635;letter-spacing:1.5px}.lesson-body h2{font:28px/1.12 Georgia,serif;margin:12px 0}.lesson-body>p:not(.lesson-count){font:12px/1.6 system-ui;min-height:58px}.lesson-demo{height:52px;position:relative;border:1px solid #a9b69a;border-radius:11px;background:repeating-linear-gradient(90deg,transparent 0,transparent 10%,#173e3215 10%,#173e3215 10.5%),#e4e9d6;margin:18px 0 8px;overflow:hidden}.lesson-gold{position:absolute;left:40%;width:25%;top:0;bottom:0;background:linear-gradient(#f4d991,#c69b49);border-left:2px solid #a27a34;border-right:2px solid #a27a34}.lesson-marker{position:absolute;left:var(--lesson-marker);top:6px;bottom:6px;width:9px;border-radius:8px;background:#244b38;box-shadow:0 0 0 3px #fff8df;transform:translateX(-50%)}.lesson-demo[data-step="2"] .lesson-gold{left:70%;width:17%}.lesson-labels{display:flex;justify-content:space-between;font:650 10px system-ui;color:#687551;margin-bottom:16px}.lesson-body button{width:100%;border:0;cursor:pointer;font:700 13px system-ui;min-height:49px}.lesson-body [hidden]{display:none!important}.lesson-note{font-size:10px!important;min-height:0!important;color:#7d8069}.lesson-body .learn-primary{font-size:12px}.lesson-body .learn-secondary{font-size:11px}
@media(max-width:700px){.walk-next h3{font-size:23px}.walk-meters{gap:8px;margin:13px 0}.walk-meters>div{padding:12px 9px}.walk-meters strong{font-size:28px}.walk-meters span{font-size:7px}.walk-checks>span{font-size:8px}.capture-legend{font-size:8px}.catch-help-link{font-size:9px;margin-bottom:3px}.capture-rules{margin:4px 0}.encounter-body #capture-status{min-height:30px}.catch-school{padding:14px 12px 30px}.catch-school h1{font-size:31px}.lesson-scene{padding:15px 12px}.lesson-pelican{width:144px;height:120px}.lesson-body{padding:16px}.lesson-body h2{font-size:26px}.lesson-body>p:not(.lesson-count){font-size:11px;min-height:54px}.lesson-demo{margin-top:14px}.lesson-body .learn-primary{padding:14px 10px}}
/* Active phone gameplay fits the usable viewport, with optional help outside the play area. */
@media(max-width:700px){body.preview-body:has(#observe-focus:not([hidden])){padding-bottom:0!important;margin:0}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .encounter-preview{height:calc(100dvh - 76px - env(safe-area-inset-bottom));box-sizing:border-box;margin:0 auto!important;padding:6px 10px!important;display:flex;flex-direction:column;gap:5px}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .preview-head{flex:none;margin:0!important;gap:2px 8px}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .preview-head>a:first-child{font-size:10px;line-height:14px}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .preview-head h1{font-size:19px!important;margin:2px 0!important}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .preview-head .practice-teach-link{display:none}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .preview-head label{display:none}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .preview-head select{min-height:37px;height:37px;padding:6px 9px}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) #practice-stage{flex:1;min-height:0;display:flex}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .encounter-card{width:100%;display:flex;flex-direction:column;min-height:0}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .encounter-art{flex:none;min-height:0;height:clamp(90px,18dvh,145px);padding:5px 0;box-sizing:border-box;gap:3px}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .encounter-halo{width:clamp(88px,20dvh,140px);height:clamp(65px,12dvh,100px);padding:2px;border-width:2px}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .encounter-kicker{font-size:6px;padding:3px 8px}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .encounter-rank{font-size:7px;padding:3px 8px}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .encounter-body{flex:1;min-height:0;padding:8px 12px;display:flex;flex-direction:column;justify-content:center}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .encounter-scene-label{display:none}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .encounter-body h2{font-size:21px;margin:3px 0}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .encounter-instruction{font-size:10px!important;margin:3px 0!important}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .catch-help-link{font-size:9px;margin:3px 0}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .capture-rules{font-size:7px;margin:3px 0}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .capture-rules>span{padding:2px 5px}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .capture-round{align-self:center;font-size:8px;padding:4px 9px;margin:3px 0}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .capture-hearts{font-size:18px;line-height:1.1;margin:3px 0}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .capture-misses{font-size:9px!important;line-height:1;margin:3px 0}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .capture-legend{font-size:7px;margin:4px 0 0}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .capture-track{flex:none;height:42px;min-height:42px;margin:6px 0}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) #capture-status{font-size:10px;min-height:26px;margin:3px 0}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .capture-controls{padding:0;position:static;flex:none}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .capture-controls .primary{min-height:46px!important;font-size:14px!important;padding:10px;margin:3px 0}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .capture-controls .secondary{min-height:28px;padding:4px;margin:3px 0;font-size:10px}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .encounter-safety{font-size:8px;margin:4px 0 0}
body:has(.race-card){padding-bottom:0!important}body:has(.race-card) #race-app{height:calc(100dvh - 76px - env(safe-area-inset-bottom));box-sizing:border-box;padding:5px 10px!important;margin:0 auto;display:flex;flex-direction:column;gap:5px}body:has(.race-card) #race-app>.back{font-size:9px;line-height:14px;margin:0;flex:none}body:has(.race-card) #race-app>header{flex:none;padding:7px 12px!important;margin:0!important;border-radius:12px}body:has(.race-card) #race-app>header .eyebrow{display:none}body:has(.race-card) #race-app>header h1{font-size:23px!important;margin:0!important;line-height:1.05}body:has(.race-card) #race-app>header>p:last-child{font-size:9px;line-height:1.35;margin:4px 0 0}body:has(.race-card) .race-card{flex:1;min-height:0;display:flex;flex-direction:column;padding:8px!important;margin:0;gap:5px;border-radius:14px;position:relative}body:has(.race-card) .race-hud{flex:none;padding:0;gap:5px;margin:0}body:has(.race-card) .race-hud>*{padding:6px 3px;font-size:10px}body:has(.race-card) .race-scene{flex:1;min-height:105px;height:auto;margin:0;border-radius:12px}body:has(.race-card) .race-lane{top:24%;height:30%;}body:has(.race-card) .rival-lane{top:61%}body:has(.race-card) .race-scene .runner .racer-art{width:clamp(40px,8dvh,62px);height:clamp(40px,8dvh,62px)}body:has(.race-card) .runner b{top:clamp(40px,8dvh,62px);font-size:7px;max-width:90px}body:has(.race-card) .lane-name{font-size:7px;top:-10px}body:has(.race-card) .race-scene .course-label{top:5px;left:6px;padding:4px 7px;font-size:7px}body:has(.race-card) .finish-post{top:23%;height:68%;right:7px;font-size:7px}body:has(.race-card) .hurdle{font-size:24px;bottom:0}body:has(.race-card) .race-distances{flex:none;margin:0;gap:3px 7px}body:has(.race-card) .race-distances h3{font-size:10px;line-height:14px;margin:0}body:has(.race-card) .race-distances .track{height:6px;margin:0}body:has(.race-card) .race-card .prompt{flex:none;padding:7px 9px;margin:0;font-size:10px;line-height:1.4;min-height:14px}body:has(.race-card) .race-card .controls{flex:none;position:static;background:transparent;padding:0;margin:0;gap:8px}body:has(.race-card) .race-card .controls button{min-height:51px;height:51px;padding:8px;font-size:17px}body:has(.race-card) .race-card>.extras{flex:none;margin:0;gap:8px}body:has(.race-card) .race-card>.extras button{min-height:34px;padding:6px 13px;font-size:11px}body:has(.race-card) #msg{font-size:8px;line-height:1.3;min-height:11px;margin:0;flex:none}.race-treasure{flex:none;border:1px solid #c8d2b8;border-radius:8px;padding:6px 9px;font-size:10px}.race-treasure summary{cursor:pointer;min-height:16px;font-weight:700}.race-treasure[open]>.extras{position:absolute;z-index:30;bottom:132px;left:8px;right:8px;padding:12px;background:#fff9e9;border:1px solid #b9c5a8;border-radius:12px;box-shadow:0 8px 28px #173e3240;display:grid!important;grid-template-columns:1fr 1fr;gap:6px}.race-treasure[open]>.extras button{min-height:43px;font-size:10px;padding:7px}}
@media(max-width:700px) and (max-height:650px){:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .catch-help-link{display:none}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .encounter-art{height:92px}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .encounter-halo{height:56px;width:84px}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .encounter-body h2{font-size:18px}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .capture-round{font-size:7px;margin:2px 0;padding:3px 8px}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .capture-track{height:36px;min-height:36px;margin:4px 0}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .capture-hearts{font-size:16px}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .encounter-body{padding:5px 10px}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .encounter-safety{font-size:7px}body:has(.race-card) #race-app>header h1{font-size:20px!important}body:has(.race-card) .race-card .controls button{height:47px;min-height:47px}body:has(.race-card) .race-card>.extras button{min-height:31px}body:has(.race-card) .race-card{gap:4px}}
@media(max-width:700px){body:has(.race-card) .race-distances{grid-template-columns:76px minmax(0,1fr)}body:has(.race-card) .race-distances h3{white-space:nowrap}body:has(.race-card) .race-scene .runner{top:0}}
@media(max-width:700px) and (max-height:650px){body:has(.race-card) .race-scene .course-label{display:none}body:has(.race-card) .race-lane{top:17%;height:34%}body:has(.race-card) .rival-lane{top:57%}body:has(.race-card) .race-scene .runner .racer-art{width:36px;height:36px}body:has(.race-card) .runner b{top:36px;font-size:6px;line-height:8px}body:has(.race-card) .lane-name{font-size:6px;padding:2px 5px;top:-9px}}

@media(max-width:700px){#encounter:has(#observe-focus:not([hidden])){height:calc(100dvh - 20px)!important;max-height:calc(100dvh - 20px)!important;width:calc(100vw - 20px);box-sizing:border-box;padding:0!important;margin:auto}#encounter:has(#observe-focus:not([hidden])) .encounter-card{height:100%;box-sizing:border-box}#encounter:has(#observe-focus:not([hidden]))>.dialog-close{position:absolute;top:6px;right:6px;z-index:9}}
@media(max-width:700px){body:has(.race-card) .race-treasure[open]>.extras{bottom:170px}}
.season-tag{padding:7px 9px;border:1px solid #c8cfb3;border-radius:8px;background:#e7ecda;color:#536341;font:650 10px/1.5 system-ui!important}.season-info{margin:15px 0;padding:16px;border:1px solid #cab777;border-radius:13px;background:#efe6ca}.season-info strong{font:23px Georgia,serif;color:#36523d}.season-info p{font:13px/1.5 system-ui}.season-info small{display:block;font:11px/1.6 system-ui;color:#677153}.season-info a{display:inline-block;margin-top:12px;color:#36583f;font:650 12px system-ui}@media(max-width:700px){.season-tag{font-size:9px!important;padding:6px 8px}.season-info{padding:14px}.season-info strong{font-size:22px}.season-info p{font-size:12px}}
@media(max-width:700px) and (max-height:600px){:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .encounter-art{height:84px}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .encounter-halo{height:48px;width:74px}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .encounter-body h2{margin:1px 0}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .encounter-instruction{margin:2px 0!important}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .capture-rules{margin:1px 0}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .capture-round,:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .capture-hearts,:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .capture-misses{margin:1px 0}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) .capture-legend{margin-top:2px}:is(.preview-body:has(#observe-focus:not([hidden])),#encounter:has(#observe-focus:not([hidden]))) #capture-status{min-height:22px;margin:2px 0}}

/* Walking target and honest GPS/map diagnostics. */
.walk-target-card{display:flex;align-items:center;gap:12px;padding:10px;border:1px solid #e0c58a55;border-radius:12px;background:#102e2590;margin:12px 0}.walk-target-card> :first-child:not(div){width:64px;height:64px;flex:none;border-radius:10px}.walk-target-card>div{min-width:0}.walk-target-card small{display:block;font:700 8px system-ui;letter-spacing:1px;color:#e0c58a}.walk-target-card strong{display:block;font:22px/1.2 Georgia,serif;margin:4px 0}.walk-target-card span{display:block;font:11px/1.5 system-ui;color:#f4ead0}.walk-next .walk-live-reason{font:12px/1.6 system-ui;padding:10px 12px;border-left:3px solid #dfc17a;background:#102e2570;border-radius:0 8px 8px 0}.walk-diagnostic-action{display:block;width:100%;min-height:44px;padding:10px;border:1px solid #e0c58a;border-radius:9px;background:#f8edcd;color:#244b38;font:700 12px system-ui;margin:10px 0;cursor:pointer}.walk-signal-check{display:grid;gap:6px;margin:12px 0;font:11px/1.5 system-ui;color:#f4dc9b}.walk-target-card .animal-portrait{width:64px;height:64px;flex:none;margin:0}.walk-target-card>svg,.walk-target-card>img{object-fit:cover}

.walk-target-card>.animal-art{width:64px;height:64px;min-width:64px;flex:none;margin:0;border-radius:10px}.walk-target-card>div:not(.animal-art){flex:1}

.walk-target-light{background:#eee9d7;border-color:#c7c3a3;color:#244b38}.walk-target-light small,.walk-target-light span{color:#5b684a}.walk-goal-options{border:1px solid #c7c3a3;border-radius:10px;padding:12px;margin:12px 0}.walk-goal-options summary{cursor:pointer;font:700 13px/1.5 system-ui;min-height:24px}.walk-details-status{padding:12px;background:#eee9d7;border-left:3px solid #a48442;border-radius:0 8px 8px 0}

.race-pause{box-sizing:border-box;width:min(360px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:26px 22px;border:1px solid #b4aa7c;border-radius:22px;background:linear-gradient(150deg,#fff8e9,#e9ecd9);color:#244b38;box-shadow:0 20px 90px #102f2880;text-align:center}.race-pause::backdrop{background:#153e32b8;backdrop-filter:blur(5px)}.race-pause h2{font:34px/1.1 Georgia,serif;margin:15px 0}.race-pause>p:not(.eyebrow){font:13px/1.6 system-ui}.race-pause button{display:block;width:100%;min-height:48px;padding:12px;margin-top:12px;border:1px solid #315d43;border-radius:10px;background:#315d43;color:#fff8df;font:700 13px system-ui;cursor:pointer}.race-pause #leave-race{background:transparent;color:#315d43}.race-pause small{display:block;font:11px/1.5 system-ui;margin-top:14px;color:#687454}

body[data-racing] .race-card>.extras{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}body[data-racing] .race-card>.extras>button{width:auto!important;min-width:0!important;min-height:44px!important;padding:8px 6px!important}

body:has(.race-card) .race-distances h3:nth-of-type(2){font-size:0!important}body:has(.race-card) .race-distances h3:nth-of-type(2)::before,body:has(.race-card) .race-distances h3:nth-of-type(2) span{font-size:11px}

.map-discovery-summary{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:16px 18px;margin:0 0 14px;background:#e9eddf;border:1px solid #bdc8ad;border-radius:14px;color:#244b38}.map-discovery-summary>div{flex:1 1 280px}.map-discovery-summary strong{font:23px/1.15 Georgia,serif}.map-discovery-summary p{font:12px/1.5 system-ui;margin:7px 0 0;max-width:630px}.map-discovery-summary>button{min-height:44px;padding:12px 16px;border:0;border-radius:10px;cursor:pointer}.map-discovery-summary>a{font:700 11px/1.5 system-ui;color:#315c43;min-height:30px;display:flex;align-items:center}.map-greeting .walk-guide-link{grid-column:2;white-space:normal;width:auto;min-width:180px}@media(max-width:700px){.map-discovery-summary{padding:13px;gap:8px}.map-discovery-summary strong{font-size:21px}.map-discovery-summary p{font-size:11px}.map-discovery-summary>div{flex-basis:100%}.map-discovery-summary>a{margin-left:auto}.map-greeting .walk-guide-link{min-width:0}}

.guide-compact-heading{margin:14px 0}.guide-compact-heading h2{font:32px/1.1 Georgia,serif;margin:12px 0}.guide-compact-heading p{font:12px/1.6 system-ui;color:#5c6c50}.guide-compact-heading a{color:#315c43;font-weight:700}.animal-guide-tab [hidden]{display:none!important}.animal-guide-tab .journal-toolbar{margin-top:12px}.companion-next-goal{display:flex;align-items:center;gap:20px;padding:20px;border:1px solid #b6ba8f;border-radius:18px;background:linear-gradient(120deg,#254d3b,#3d6550);color:#fff5dc;margin:18px 0}.next-goal-art{flex:none;width:112px;height:112px;border:3px double #d8bc77;border-radius:18px;overflow:hidden;background:#f5ead3}.next-goal-art .racer-art{width:100%;height:100%;margin:0}.companion-next-goal small{font:750 8px system-ui;letter-spacing:1.6px;color:#dfc589}.companion-next-goal h2{font:30px/1.15 Georgia,serif;margin:7px 0}.companion-next-goal p{font:12px/1.5 system-ui;margin:6px 0}.next-goal-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.next-goal-actions a{display:flex;align-items:center;min-height:44px;padding:10px 13px;box-sizing:border-box;border:1px solid #ddc78a;border-radius:9px;background:#e1c783;color:#234a36;font:700 12px system-ui;text-decoration:none}.next-goal-actions a+a{background:transparent;color:#fff3d5}@media(max-width:700px){.guide-compact-heading h2{font-size:27px}.companion-next-goal{gap:12px;padding:15px;align-items:flex-start}.next-goal-art{width:65px;height:65px}.companion-next-goal>div:last-child{min-width:0;flex:1}.companion-next-goal h2{font-size:25px}.companion-next-goal p{font-size:11px}.next-goal-actions{display:grid;gap:8px}.next-goal-actions a{font-size:11px}}

@media(max-width:700px){.animal-guide-tab .journal-grid{grid-template-columns:1fr;gap:10px}.animal-guide-tab .journal-card{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:12px;padding:10px;min-height:126px}.animal-guide-tab .journal-card>.animal-art{width:92px!important;height:92px!important;min-height:92px!important;border-radius:12px;margin:0!important}.animal-guide-tab .journal-card-body{padding:0!important;min-width:0}.animal-guide-tab .journal-card h2{font-size:22px;margin:6px 0}.animal-guide-tab .journal-card p:has(i){display:none}.animal-guide-tab .journal-card .activity-label,.animal-guide-tab .journal-card .season-tag{font-size:10px;margin:5px 0}.animal-guide-tab .journal-card .guide-rank{font-size:10px}.animal-guide-tab .journal-card .journal-link{font-size:10px;margin-top:8px}.animal-guide-tab .journal-card .tiny-label{font-size:7px}}

.species-detail-hero{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px 16px 18px;background:linear-gradient(#173e3240,#173e3290),url('/assets/course-trail.webp') center/cover}.species-detail-hero[data-habitat=Wetland]{background-image:linear-gradient(#173e3230,#173e3290),url('/assets/course-river.webp')}.species-detail-hero[data-habitat=Coast]{background-image:linear-gradient(#173e3230,#173e3290),url('/assets/course-river.webp')}.species-detail-hero>.animal-art{width:142px!important;height:142px!important;min-height:142px!important;margin:0!important;border-radius:50%;border:4px double #dfc482;background-color:#f7edda;box-shadow:0 5px 25px #14372b80}.species-detail-hero>span:last-child{font:750 8px system-ui;letter-spacing:2px;color:#fff4d3}.species-detail .species-challenge{padding:10px 12px;border:1px solid #d1c59e;border-radius:10px;background:#ede7d4;font:700 12px/1.5 system-ui;margin:12px 0}.species-challenge small{display:block;font:11px/1.5 system-ui;color:#667255;margin-top:4px}.species-detail .species-main-action{display:block;box-sizing:border-box;text-align:center;min-height:48px;padding:14px;border-radius:10px;margin:12px 0;text-decoration:none;font:700 13px system-ui;background:#315d43;color:#fff5da;border:1px solid #244b38}.species-detail details{border:1px solid #d1c9ae;border-radius:12px;padding:12px;margin:12px 0}.species-detail summary{cursor:pointer;font:700 12px/1.5 system-ui;min-height:24px}.species-detail .range-info p{font-size:12px}.species-detail .wildlife-safety{font-size:11px}.species-detail .practice-link{font-size:12px}@media(max-width:700px){.species-detail-hero{padding:17px 14px 13px;gap:8px}.species-detail-hero>.animal-art{width:118px!important;height:118px!important;min-height:118px!important}.species-detail{padding:18px!important}.species-detail h2{font-size:29px;margin:8px 0}.species-detail>p{font-size:12px;line-height:1.55}.species-detail .species-main-action{margin:10px 0}}

.friendship-track{margin:12px 0}.friendship-track progress{width:100%;height:10px;accent-color:#b49349;border-radius:10px}.friendship-track span{display:block;font:700 11px/1.5 system-ui;color:#6c794f;margin-top:6px}.care-actions button strong,.care-actions button small{display:block}.care-actions button strong{font:750 12px system-ui;margin-top:5px}.care-actions button small{font:10px/1.4 system-ui;margin-top:5px}.care-purpose{font:12px/1.6 system-ui;color:#637453;padding:10px;background:#e9eddc;border-radius:10px}.care-race-shortcut{display:block;min-height:44px;box-sizing:border-box;text-align:center;padding:13px;border:1px solid #315b43;border-radius:10px;background:#315b43;color:#fff3d6;text-decoration:none;font:700 12px system-ui;margin:12px 0}.care-stats{border:1px solid #c8c5a0;background:linear-gradient(120deg,#f3ecd5,#e8eddb);border-radius:13px}.care-scene .care-animal{filter:drop-shadow(0 9px 8px #173e3238)}@media(max-width:700px){.care-actions{gap:6px!important}.care-actions button{padding:10px 5px!important;min-height:76px!important}.care-purpose{font-size:11px}.friendship-track{margin:9px 0}}

.care-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important}.care-actions>button{display:flex!important;flex-direction:column;align-items:center;justify-content:center;min-width:0!important;width:100%!important;white-space:normal;font-size:12px!important}.care-actions>button small{font-size:9px}

.care-actions>button:disabled{opacity:.62;cursor:wait;filter:saturate(.55)}.controls button[data-next=true]{box-shadow:inset 0 0 0 3px #e2c581,0 0 0 2px #4c7654!important}.race-card .prompt[data-cue=now]{background:#e9ce89;border-color:#9e7a35;color:#234a36}

body[data-racing] #race-app{touch-action:none;user-select:none;-webkit-user-select:none}.gesture-controls{display:block!important}.gesture-pad{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:64px;border:2px solid #b79b54;border-radius:14px;background:linear-gradient(#456d50,#254f3a);color:#fff4d5;text-align:center;box-shadow:inset 0 0 0 3px #dfc88822;touch-action:none;cursor:pointer}.gesture-pad strong{font:800 15px system-ui;letter-spacing:.5px}.gesture-pad span{font:11px/1.4 system-ui}.gesture-pad:focus-visible{outline:3px solid #c39d48;outline-offset:3px}body[data-racing] .race-card>.extras{grid-template-columns:repeat(2,minmax(0,1fr))}body:has(.race-card) .race-scene{touch-action:none;cursor:pointer}@media(max-height:600px) and (max-width:700px){.gesture-pad{min-height:48px;gap:4px}.gesture-pad strong{font-size:12px}.gesture-pad span{font-size:9px}}

.phone-back-map{display:none}.race-simple-extras{margin:18px 0;padding:14px;border:1px solid #c7c9ab;border-radius:13px;background:#f5f1e3}.race-simple-extras>summary{font:700 13px/1.5 system-ui;cursor:pointer;min-height:28px}.race-result-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 18px}.race-result-actions button{min-height:48px;border:1px solid #315a43;border-radius:10px;background:#315a43;color:#fff4d7;font:700 13px system-ui;cursor:pointer}.race-result-actions button+button{background:#ede9d8;color:#315a43}@media(max-width:700px){.phone-dock,.shared-phone-dock{grid-template-columns:repeat(3,minmax(0,1fr))!important}.phone-more,.shared-more-menu,.explore-tabs,.league-tabs{display:none!important}.phone-back-map{display:block;min-height:44px;padding:10px 14px;margin:0 0 12px;border:1px solid #b6c3a7;border-radius:10px;background:#e9eddd;color:#315a43}.map-bottom-note>a{font-size:10px}.map-discovery-summary .play-race-link{background:#315a43;color:#fff4d7;padding:11px 18px;border-radius:9px;min-height:44px;box-sizing:border-box}.race-result-card .podium{padding:15px;margin:14px 0}.race-result-card .podium .racer-art{width:110px;height:110px}.race-result-card .podium h2{font-size:24px;margin:8px 0}.race-result-card>.stats{gap:5px}.race-result-card>.stats strong{font-size:12px}body:has(.race-result-card) main>header{min-height:0;padding:20px 18px}body:has(.race-result-card) main>header h1{font-size:34px}body:has(.race-result-card) main>header>p:last-child{font-size:12px}.race-result-card>h2{font-size:24px}.race-result-card>p{font-size:12px}}

@media(max-width:700px){.simple-race-lobby main>header{min-height:0;padding:20px 18px}.simple-race-lobby main>header h1{font-size:32px;margin:10px 0}.simple-race-lobby main>header>p:not(.eyebrow){display:none}.simple-race-lobby #league-panel-play>.team-card{margin:10px 0;padding:13px}.simple-race-lobby #league-panel-play>.team-card h2{font-size:23px}.simple-race-lobby #league-panel-play>.team-card .journey-links{display:none}.simple-race-lobby #league-panel-play>.modes .course-card{min-height:145px}}

/* A single live walking objective, visible above the map. */
.map-discovery-summary:has(.walk-welcome),.map-discovery-summary:has(.walk-objective){display:block}
.walk-journey{display:flex;gap:8px;list-style:none;padding:0;margin:0 0 14px;font-size:12px;color:#607267}
.walk-journey li{flex:1;padding:8px 5px;text-align:center;background:#e8ecdf;border-radius:9px}
.walk-journey .current{background:#224b3c;color:#fff;font-weight:700}.walk-journey .done{background:#d4e4c8;color:#214733}
.walk-welcome>.primary,.walk-objective>.primary{min-height:48px;width:100%;margin-top:10px}
.walk-first-help{margin-top:14px;font-size:14px}.walk-first-help summary{cursor:pointer;padding:8px 0}.walk-first-help a{display:block;padding:10px 0}
.walk-home-options{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px;font-size:13px}
.walk-objective-animal{display:flex;align-items:center;gap:12px}.walk-objective-animal>svg,.walk-objective-animal>img,.walk-objective-animal>.animal-portrait{width:56px;height:56px;flex:0 0 56px;border-radius:14px;object-fit:cover}
.walk-objective-animal small{display:block;font-size:10px;letter-spacing:1px}.walk-objective-animal strong{font-size:18px}
.walk-objective h2{font-size:24px;margin:12px 0 6px}.walk-objective p{margin:6px 0 12px;font-size:14px;line-height:1.5}
.walk-objective-progress{display:grid;grid-template-columns:1fr 1fr;gap:14px}.walk-objective-progress strong{font-size:15px}.walk-objective-progress progress{display:block;width:100%;height:8px;margin:7px 0;accent-color:#315d44}
@media(max-width:700px){.walk-journey{font-size:11px;gap:5px}.walk-objective h2{font-size:22px}.map-discovery-summary:has(.walk-objective){padding:14px}.walk-objective-animal .animal-portrait{max-width:56px;max-height:56px}}

.walk-objective-animal>.animal-art{width:56px!important;height:56px!important;min-width:56px;flex:0 0 56px;border-radius:14px}.map-discovery-summary .walk-objective-progress strong{font:700 15px system-ui}.map-discovery-summary .walk-objective-animal strong{font-size:18px}.map-discovery-summary .walk-objective p{font-size:13px}

@media(max-width:700px){.map-topline>.map-locate-action:first-of-type{display:none!important}}

/* Six individual homes, with no collection-wide care chores. */
.six-intro{background:#e9eddf;border:1px solid #c5cfb6;border-radius:18px;padding:20px;margin-bottom:18px}.six-intro h2{font:29px/1.15 Georgia,serif;margin:10px 0}.six-intro p{font-size:14px;line-height:1.6}.six-intro>strong{font:600 13px/1.5 system-ui;color:#315d43}
.six-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.six-home{overflow:hidden;border:1px solid #c4cdb7;border-radius:20px;background:#fbf9ef;box-shadow:0 7px 20px #27463210}.six-scene{position:relative;isolation:isolate;height:185px;background:linear-gradient(#314d3420,#183d3045),url('/assets/bushland.webp') center/cover}.six-scene:after{content:'';position:absolute;inset:auto 0 0;height:28px;background:linear-gradient(transparent,#fbf9ef);pointer-events:none}.home-water .six-scene{background:linear-gradient(180deg,#75a7b550,#bed6ba15 65%,#5c9cac80),url('/assets/bushland.webp') center/cover}.home-open .six-scene{background:linear-gradient(#e8c67750,#c29e3d30),url('/assets/bushland.webp') center/cover}.six-number{position:absolute;top:12px;left:12px;z-index:2;background:#fbf9efdf;border-radius:20px;padding:7px 10px;font:700 9px system-ui;letter-spacing:1px;color:#254a38}.six-animal{display:grid;place-items:center;width:100%;height:100%;border:0;background:none;cursor:pointer}.six-animal .racer-art{width:145px!important;height:145px!important;border:3px solid #e8d79c;border-radius:50%;box-shadow:0 9px 20px #132e3266;background-color:#f7f0da}.six-empty-mark{display:grid;place-items:center;height:100%;font:70px Georgia;color:#fff6d3}.six-info{padding:14px}.six-info h3{font:24px/1.15 Georgia,serif;margin:0 0 6px}.six-info p{margin:0 0 6px;font-size:12px;color:#61715d}.six-level{display:block;font:11px system-ui;color:#72571f;margin:8px 0 12px}.six-info button{width:100%;min-height:44px;margin:4px 0;border-radius:10px}.six-collection{margin-top:18px;border-radius:15px;padding:18px;background:#203f33;color:#f6f2df}.six-collection p{font-size:13px}.six-collection a{display:inline-block;padding:10px;color:#f2d48b}
.team-picker>input{width:100%;min-height:46px;border:1px solid #b2bfa2;border-radius:10px;padding:10px;box-sizing:border-box}.team-picker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:15px 0}.team-choice{border:1px solid #bfc9b2;background:#f6f3e6;color:#234a36;border-radius:13px;display:flex;flex-direction:column;align-items:center;padding:10px;cursor:pointer}.team-choice .racer-art{width:90px;height:90px;border-radius:12px}.team-choice strong{font:18px Georgia;margin:7px 0}.team-choice small{font-size:10px}.team-picker-pages{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.team-picker-pages button{min-height:44px}
@media(max-width:700px){.six-intro{padding:14px}.six-intro h2{font-size:24px}.six-intro p{font-size:12px}.six-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.six-scene{height:140px}.six-animal .racer-art{width:105px!important;height:105px!important}.six-number{font-size:8px;top:8px;left:7px;padding:5px 7px}.six-info{padding:10px}.six-info h3{font-size:20px}.six-info p{font-size:10px}.six-level{font-size:10px;line-height:1.5}.six-info button{font-size:11px;padding:8px}.six-collection{padding:14px}.team-picker{padding:18px}.team-choice .racer-art{width:80px;height:80px}.team-choice strong{font-size:16px}.simple-race-lobby .team-card{background:linear-gradient(120deg,#f8f2df,#dfebd5);border:1px solid #b7c6a6}.simple-race-lobby #racer-choice,.simple-race-lobby #race-class{min-height:44px}.simple-race-lobby .team-card>p:first-of-type{display:none}}

.six-scene{background-image:linear-gradient(#314d3420,#183d3045),var(--trail-scene)}.home-water .six-scene{background-image:linear-gradient(#75a7b520,#264d3540),var(--river-scene)}.home-open .six-scene{background-image:linear-gradient(#e8c67720,#c29e3d30),url('/assets/bushland.webp')}.six-animal:hover .racer-art,.six-animal:focus-visible .racer-art{box-shadow:0 0 0 4px #fff4b5,0 9px 20px #132e3266}.six-home:focus-within{outline:2px solid #a88a42;outline-offset:2px}.team-choice:focus-visible{outline:3px solid #ab8737;outline-offset:2px}
.race-scene{box-shadow:inset 0 0 28px #173e3233,0 7px 18px #173e321a}.race-scene .lane-name{background:#183b32d9;color:#fff4d5;border:1px solid #e7d49a;padding:4px 7px;border-radius:20px}.race-scene .finish-post{filter:drop-shadow(0 2px 3px #183b3266)}
@media(prefers-reduced-motion:no-preference){.six-animal .racer-art{transition:transform .2s,box-shadow .2s}.six-animal:hover .racer-art{transform:translateY(-4px)}}

.companion-benefits{display:grid;gap:5px;background:#e7edda;border:1px solid #bdc7a6;border-radius:12px;padding:12px;margin:12px 0;color:#244d38}.companion-benefits strong{font:700 13px/1.4 system-ui}.companion-benefits small{font:12px/1.5 system-ui;color:#5f6b4c}.race-teammate-preview{display:flex;align-items:center;gap:12px;background:#f8f2df;border:1px solid #cfbd88;border-radius:13px;padding:12px}.race-teammate-preview>.racer-art{width:76px!important;height:76px!important;flex:0 0 76px;border-radius:50%;border:2px solid #c7a95d}.race-teammate-preview strong,.race-teammate-preview span,.race-teammate-preview small{display:block}.race-teammate-preview strong{font:22px Georgia}.race-teammate-preview span{font:700 12px/1.5 system-ui;margin:5px 0;color:#315d43}.race-teammate-preview small{font:11px/1.5 system-ui}
.gesture-pad{position:relative;overflow:hidden}.gesture-pad[data-feedback]:after{content:attr(data-feedback-label);position:absolute;inset:0;display:grid;place-items:center;background:#e7d18c;color:#183f2e;font:800 15px system-ui;pointer-events:none}.gesture-pad[data-feedback="bump"]:after{background:#f0b68e;color:#642b20}.gesture-pad[data-feedback="jump"]:after{background:#d0e5a5}.runner[data-jump-ready="true"] .racer-art{outline:3px solid #f5dc78;outline-offset:3px}.runner[data-feedback="stride"] .racer-art{filter:drop-shadow(-7px 0 3px #fff2b888)}.runner[data-feedback="bump"] .racer-art{filter:sepia(.4) drop-shadow(0 0 6px #ce7249)}
@media(max-width:700px){.companion-benefits{padding:10px}.companion-benefits strong{font-size:12px}.companion-benefits small{font-size:11px}.race-teammate-preview{padding:10px}.race-teammate-preview strong{font-size:19px}.race-teammate-preview>.racer-art{width:62px!important;height:62px!important;flex-basis:62px}.gesture-pad[data-feedback]:after{font-size:13px}}
@media(prefers-reduced-motion:no-preference){.runner[data-feedback="stride"] .racer-art{animation:stride-feedback .22s ease-out}@keyframes stride-feedback{50%{transform:translateY(-3px) rotate(-3deg)}}}

.starter-adventure h2{font:29px/1.12 Georgia,serif;margin:10px 0}.map-discovery-summary:has(.starter-adventure){display:block}.starter-adventure p{font-size:14px}.starter-adventure>.primary,.starter-home{display:flex;flex-direction:column;gap:6px;width:100%;min-height:56px;box-sizing:border-box;margin:12px 0;padding:13px 15px;border-radius:13px;text-align:left;text-decoration:none}.starter-adventure>.primary{background:#244f3a;color:#fff6de;border:0}.starter-home{background:#f3ead0;border:1px solid #c9b477;color:#31543b}.map-discovery-summary .starter-adventure strong{font:700 15px system-ui}.starter-adventure small{font:11px/1.4 system-ui}.starter-adventure details{font-size:13px;margin-top:10px}.starter-adventure summary{cursor:pointer;padding:10px 0}.starter-adventure li{margin:8px 0;line-height:1.5}.starter-adventure details a{display:block;padding:10px 0}
.six-start{display:grid;gap:10px;margin-top:16px}.six-start button{min-height:46px}.six-start a{padding:10px;font-size:13px}.companion-benefits>summary{font:700 13px/1.5 system-ui;cursor:pointer;min-height:24px}.companion-benefits[open]>strong,.companion-benefits[open]>small{display:block;margin-top:6px}.companion-benefits:not([open])>strong,.companion-benefits:not([open])>small{display:none}.six-scene{box-shadow:inset 0 -12px 20px #234d3022}.six-scene:before{content:'';position:absolute;inset:auto 0 0;height:18px;background:linear-gradient(14deg,#476b3b88,transparent 65%);pointer-events:none}.home-water .six-scene:before{background:repeating-linear-gradient(0deg,#e7efda55 0 1px,transparent 1px 6px);height:18px}.care-effect{pointer-events:none}
.course-card:disabled{opacity:.45;filter:saturate(.45);cursor:not-allowed}.race-scene{background-position:calc(50% - var(--course-progress,0%)) center}.race-lane{background:linear-gradient(90deg,#f5e8be25,transparent 55%);border-bottom:1px solid #f8edcb55}.rival-lane{background:linear-gradient(90deg,#214b3325,transparent 55%)}
@media(max-width:700px){.starter-adventure h2{font-size:25px}.starter-adventure p{font-size:12px}.six-intro h2{font-size:23px}.six-scene{height:125px}.six-animal .racer-art{width:98px!important;height:98px!important}.care-actions button{min-height:72px!important}.care-actions{gap:7px}.care-actions button strong{font-size:12px}.care-actions button small{font-size:10px}}
@media(prefers-reduced-motion:no-preference){.race-scene{transition:background-position .15s linear}.care-scene.mood-playful .care-animal{animation:friend-hop .6s ease-in-out 2}.care-scene.mood-content .care-effect{animation:friend-hearts 1.4s ease-out}.care-scene.mood-sleepy .care-animal{filter:drop-shadow(0 0 12px #f1dd9855)}@keyframes friend-hop{50%{transform:translateY(-9px) rotate(-2deg)}}@keyframes friend-hearts{from{opacity:0;transform:translateY(15px)}50%{opacity:1}to{opacity:0;transform:translateY(-20px)}}}
@media(prefers-reduced-motion:reduce){.race-scene{background-position:center}.care-animal,.care-effect{animation:none!important}}

.walk-map-guide{margin:12px 0;padding:12px;border-radius:12px;background:#f4ecd4;border:1px solid #d2c18b}.map-discovery-summary .walk-map-guide>strong{font:700 14px/1.5 system-ui}.walk-map-guide small{display:block;font:11px/1.5 system-ui;margin:5px 0 10px}.walk-map-guide button{width:100%;min-height:44px;border-radius:10px}.care-scene button.care-animal{border:0;background:transparent;padding:0;cursor:pointer;color:inherit}.care-scene button.care-animal:focus-visible{outline:3px solid #ecd078;outline-offset:4px;border-radius:20px}.care-scene button.care-animal:active{transform:scale(.97)}

/* Family play: readable instructions and optional control alternatives. */
.family-steps{padding-left:24px;line-height:1.6}.family-steps li{margin:12px 0}.family-help-actions{display:grid;gap:10px;margin:20px 0}.family-help-actions a{text-align:center;text-decoration:none;padding:13px;border-radius:12px}.family-help-actions+.about details{margin-top:18px}
.tour-back{border:0;background:transparent;font:700 15px system-ui;padding:10px 0;min-height:44px}.tour-next h2{margin:5px 0}.tour-next{border-left:5px solid #b58b33}.tour-start{width:100%;margin:12px 0}.tour-backup{margin-top:20px}.tour-backup summary{cursor:pointer;padding:12px 0}.challenge .buttons button:disabled{opacity:.5;cursor:default}.challenge .buttons .next-tap{outline:4px solid #b18024;outline-offset:3px}.race-arrow-buttons{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%}.race-card .race-input-button{min-height:48px;padding:12px 20px;border-radius:12px;border:2px solid #bd9650;background:#fff1cc;color:#203d30;font:700 16px system-ui;touch-action:manipulation}.race-teammate-preview details{margin-top:8px}.race-teammate-preview details summary{font-size:14px;cursor:pointer;min-height:36px}.race-teammate-preview details small{display:block}
@media(max-width:700px){#world-root .grid article p,#world-root .tour-unlock{font-size:14px!important;line-height:1.5}#world-root .grid article .action{font-size:14px;min-height:48px}#world-root .grid article>.emoji .encounter-badge{font-size:11px}#world-root .challenge>p,#world-root .tour-catch-chance{font-size:14px!important}.race-card .gesture-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.race-card .gesture-pad{flex:1;min-width:170px}.race-card .controls .race-input-button{min-height:48px}.phone-dock,.shared-phone-dock{font-size:12px}.care-actions strong{font-size:12px}}

.challenge.is-ready .buttons,.challenge.is-ready .track,.challenge.is-ready .scores,.challenge.is-ready #prompt{display:none}
@media(max-width:700px){#world-root .challenge{margin-top:8px;padding:16px}#world-root .challenge .big{padding:10px;margin-bottom:8px}#world-root .challenge .big .racer-art{width:96px;height:96px}#world-root .challenge h1{font-size:26px;line-height:1.2;margin:10px 0}#world-root .challenge .encounter-badge{margin:8px 0}#world-root .challenge .tour-catch-chance{margin:8px 0;padding:8px}.challenge.is-ready #message{font-size:12px!important}}

/* Keep the main help action readable above general About link styles. */
.about .family-help-actions a.primary{color:#fff8e8;min-height:48px;font-size:14px;font-weight:700}

/* Active races only: fit the clock, course and controls in the available viewport.
   Keep natural scrolling on very short/zoomed screens rather than clip controls. */
@media (max-height:900px), (max-width:700px) {
  body:has(.race-card){padding-bottom:0!important}
  body:has(.race-card) #race-app{height:100dvh;min-height:640px;box-sizing:border-box;padding:6px 12px!important;margin:0 auto;display:flex;flex-direction:column;gap:6px}
  body:has(.race-card) #race-app>.back{display:flex;align-items:center;flex:none;min-height:44px;margin:0;font-size:12px;line-height:1.3}
  body:has(.race-card) #race-app>header{flex:none;min-height:0;padding:8px 12px!important;margin:0!important;border-radius:12px}
  body:has(.race-card) #race-app>header .eyebrow{display:none}
  body:has(.race-card) #race-app>header h1{font-size:25px!important;line-height:1.1;margin:0!important}
  body:has(.race-card) #race-app>header>p:last-child{font-size:12px;line-height:1.35;margin:4px 0 0;max-width:none}
  body:has(.race-card) .race-card{flex:1;min-height:0;display:flex;flex-direction:column;padding:8px!important;margin:0;gap:6px;border-radius:14px;position:relative}
  body:has(.race-card) .race-hud{flex:none;padding:0;gap:6px;margin:0}
  body:has(.race-card) .race-hud>*{min-width:0;padding:6px 3px;font-size:12px}
  body:has(.race-card) .race-scene{flex:1;min-height:170px;height:auto;margin:0;border-radius:12px}
  body:has(.race-card) .race-lane{top:24%;height:30%}
  body:has(.race-card) .rival-lane{top:61%}
  body:has(.race-card) .race-scene .runner{top:0}
  body:has(.race-card) .race-scene .runner .racer-art{width:48px;height:48px}
  body:has(.race-card) .runner b{top:48px;font-size:9px;max-width:90px}
  body:has(.race-card) .lane-name{font-size:8px;top:-12px}
  body:has(.race-card) .race-scene .course-label{top:5px;left:6px;padding:3px 7px;font-size:9px}
  body:has(.race-card) .finish-post{top:23%;height:68%;right:7px}
  body:has(.race-card) .hurdle{bottom:0}
  body:has(.race-card) .race-distances{flex:none;margin:0;gap:3px 8px}
  body:has(.race-card) .race-distances h3{font-size:12px;line-height:16px;margin:0}
  body:has(.race-card) .race-distances .track{height:6px;margin:0}
  body:has(.race-card) .race-card .prompt{flex:none;padding:6px 9px;margin:0;font-size:12px;line-height:1.4;min-height:29px}
  body:has(.race-card) .race-card .controls{display:grid;grid-template-columns:1fr 1fr;flex:none;position:static;background:transparent;padding:0;margin:0;gap:8px}
  body:has(.race-card) .race-card .gesture-pad{min-width:0;min-height:48px;padding:6px;font-size:12px}
  body:has(.race-card) .gesture-pad strong{font-size:12px}
  body:has(.race-card) .gesture-pad span{font-size:10px;line-height:1.3}
  body:has(.race-card) .race-arrow-buttons{gap:8px}
  body:has(.race-card) .race-card .controls button{min-height:48px;height:auto;padding:8px;font-size:16px}
  body:has(.race-card) .race-card>.extras{flex:none;margin:0;gap:8px}
  body:has(.race-card) .race-card>.extras button{min-height:44px;padding:8px 18px;font-size:13px}
  body:has(.race-card) .race-treasure{flex:none;border:1px solid #c8d2b8;border-radius:8px;padding:0 9px;font-size:12px}
  body:has(.race-card) .race-treasure summary{cursor:pointer;min-height:44px;align-content:center;font-weight:700}
  body:has(.race-card) .race-treasure[open]>.extras{position:absolute;z-index:30;bottom:105px;left:8px;right:8px;padding:12px;background:#fff9e9;border:1px solid #b9c5a8;border-radius:12px;box-shadow:0 8px 28px #173e3240;display:grid!important;grid-template-columns:1fr 1fr;gap:6px}
  body:has(.race-card) .race-treasure[open]>.extras button{min-height:44px;font-size:12px;padding:7px}
  body:has(.race-card) #msg,body:has(.race-card) .friendly-race-rule{flex:none;font-size:11px;line-height:1.35;min-height:15px;margin:0}
}
@media (max-width:700px) {
  body:has(.race-card) #race-app{height:calc(100dvh - 76px - env(safe-area-inset-bottom));min-height:590px}
  body:has(.race-card) #race-app>header h1{font-size:22px!important}
  body:has(.race-card) #race-app>header>p:last-child{font-size:11px}
  body:has(.race-card) .race-card .controls{grid-template-columns:1fr}
}

/* 0.60.6: readable companion CTA and read-only team browsing. */
.dialog-body a.care-race-shortcut,.dialog-body a.care-race-shortcut:visited{color:#fff3d6;background:#315b43;text-decoration:none}
.dialog-body a.care-race-shortcut:focus-visible,.care-neighbours button:focus-visible{outline:3px solid #a46d16;outline-offset:3px}
#encounter:has(.care-browse-hint) .dialog-close{width:44px;height:44px;min-height:44px}
.care-neighbours button{min-height:46px;white-space:normal;line-height:1.4}
.care-browse-hint{margin:0;padding:14px 64px 10px 18px;background:#fffcf1;color:#355c46;font:12px/1.5 system-ui}
.care-neighbours-top{padding:14px 64px 14px 18px;border-bottom:1px solid #d5ddc4}

/* Grassland uses its own open landscape; existing habitat scenes are unchanged. */
.pen-grassland .pen-ground.living-pen.reserve-landscape,.care-scene.care-habitat-grassland{background-image:linear-gradient(175deg,#d5e7dd 0 38%,#c5cb80 39%,#91ae68 75%,#78965a)}
/* Companion care keeps its close control outside the scrolling content. */
#encounter:has(>.care-dialog-content){box-sizing:border-box;max-height:min(850px,calc(100dvh - 24px));padding:64px 0 0;overflow:hidden}
#encounter>.care-dialog-content{box-sizing:border-box;max-height:min(784px,calc(100dvh - 90px));overflow-y:auto;overscroll-behavior:contain;scroll-padding:16px}
#encounter:has(>.care-dialog-content)>.dialog-close{top:12px;right:14px;z-index:5}
.care-dialog-content .dialog-body h2{max-width:100%;overflow-wrap:anywhere;word-break:normal}
.care-dialog-content .care-actions{position:static;padding:0;margin:18px 0;background:transparent}
.care-dialog-content .care-browse-hint{padding:10px 18px 4px}
.care-dialog-content .care-neighbours-top{padding:8px 18px 12px}
.six-sanctuaries h3{overflow-wrap:anywhere}
.companion-page-heading h1 em{display:inline}
.companion-collection-link{display:inline-flex;align-items:center;min-height:44px;margin-top:4px;color:#315d43;font:700 13px/1.4 system-ui;text-underline-offset:3px}
.companion-collection-link:focus-visible{outline:3px solid #a46d16;outline-offset:3px;border-radius:4px}
@media(max-width:700px) and (max-height:700px){.care-dialog-content .care-scene{height:164px}.care-dialog-content .care-animal :is(.animal-art,.wild-art,.event-art,.racer-art){width:144px!important;height:144px!important}}
@media(max-width:700px) and (max-height:540px){.care-dialog-content .care-scene{height:132px}.care-dialog-content .care-animal :is(.animal-art,.wild-art,.event-art,.racer-art){width:112px!important;height:112px!important}}

/* Final touch-target polish: keep care/capture positioning and close guards. */
@media(max-width:850px),(pointer:coarse){
 #encounter>.dialog-close{width:44px;height:44px;min-width:44px;min-height:44px;box-sizing:border-box;padding:0}
 #encounter>.dialog-body.about>h2:first-of-type,#encounter>.dialog-body.about>.eyebrow:first-child{padding-right:52px}
}
