:root{--adventure-forest:#2f5745;--adventure-paper:#faf7ed;--adventure-gold:#c49b40}
.explorer-layout{display:grid;grid-template-columns:minmax(230px,.8fr) 1.3fr;gap:36px;align-items:start}.explorer-preview{position:sticky;top:20px;background:radial-gradient(ellipse at 50% 40%,#f0e4c8,#e4eadb);border-radius:26px;padding:24px;text-align:center}.explorer-preview svg{width:200px;max-width:90%;height:260px}.explorer-preview .action,.explorer-preview .secondary{display:block;margin:12px auto;text-decoration:none}.explorer-options fieldset{border:0;padding:0;margin:24px 0}.explorer-options legend{font-weight:750;margin-bottom:10px}.explorer-options input[type=text],#nickname{width:100%;padding:14px;border:1px solid #bac7b6;border-radius:12px;font:17px system-ui;box-sizing:border-box}.explorer-choices{display:flex;flex-wrap:wrap;gap:8px}.explorer-choices button{min-height:48px;border:1px solid #b9c5b4;border-radius:12px;padding:10px 14px;background:#fffdf5;color:#274f3d;font:600 14px system-ui;cursor:pointer}.explorer-choices button[aria-pressed=true]{outline:3px solid #355d48;outline-offset:2px;background:#e8eddf}.colour-choice:before{content:'';display:inline-block;vertical-align:middle;width:20px;height:20px;border-radius:50%;background:var(--swatch);margin-right:8px;border:1px solid #0002}.sound-choice{display:flex;align-items:center;gap:12px}.sound-choice input{width:22px;height:22px}.today-adventure{display:flex;gap:18px;align-items:center;background:#f0ecd9;border:1px solid #d8d9be;padding:18px;border-radius:18px;margin:12px 0 20px}.today-adventure h2{font:25px/1.2 Georgia,serif;margin:4px 0 7px}.today-adventure p{font-size:14px;margin:7px 0}.today-adventure a{color:#254e3b;font-weight:700}.today-adventure small{letter-spacing:1.5px;font-size:10px}.today-adventure details{font-size:12px;margin-top:12px}.mini-explorer{width:90px;flex:none}.mini-explorer svg{width:100%}.profile .avatar{padding:0!important;background:transparent!important;width:45px!important;height:50px!important}.profile .avatar svg{width:45px;height:55px}.player-figure svg{width:52px;height:68px}.practice-banner{padding:16px 20px;background:#eaf0e4;border:1px solid #c6d3bc;border-radius:14px;margin:18px 0;line-height:1.6}.practice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.practice-card{background:#fffaf0;border:1px solid #d9decd;border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:10px}.practice-card h2{font:25px Georgia,serif;margin:4px 0}.practice-card p{font-size:14px;line-height:1.6;margin:4px 0}.practice-card .racer-art{height:150px;width:100%;max-width:190px;margin:auto;background-repeat:no-repeat}.practice-card .action{margin-top:auto;text-align:center;text-decoration:none}.practice-controls{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}.practice-controls label{flex:1;min-width:180px}.practice-controls input,.practice-controls select{display:block;width:100%;box-sizing:border-box;padding:12px;margin-top:6px;border:1px solid #b9c5b4;border-radius:10px;background:#fffdf4;font:15px system-ui}.motion-run .racer-art{animation:trail-hop .6s ease-in-out infinite}.motion-fly .racer-art{animation:canopy-soar 1.5s ease-in-out infinite}.motion-swim .racer-art{animation:river-glide 1.8s ease-in-out infinite}.scene-run .runner:not(.jumping)>.racer-art{animation:trail-hop .4s ease-in-out infinite}.scene-fly .runner>.racer-art{animation:canopy-soar .8s ease-in-out infinite}.scene-swim .runner>.racer-art{animation:river-glide 1.2s ease-in-out infinite}body:has(.race-pause[open]) .runner>.racer-art{animation-play-state:paused}.podium .racer-art{animation:arrival 600ms ease-out}.race-result-card{position:relative;overflow:hidden}.race-result-card:has(.share-result):before{content:'✦';position:absolute;right:22px;top:80px;color:#b68b31;font-size:60px;pointer-events:none;animation:arrival .8s ease-out}.share-result{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.share-result button,.share-result a{min-height:46px}.social-card{background:#fffaf1;border:1px solid #d5ddc9;border-radius:20px;padding:24px;margin:18px 0}.social-card h2{font:28px Georgia,serif}.social-card p{line-height:1.6}.social-status{padding:14px;background:#e9efdf;border-radius:12px;line-height:1.6}.friend-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:16px 0;border-bottom:1px solid #dde3d4}.friend-row strong{flex:1;min-width:100px}.quiz-options{display:grid;gap:10px}.quiz-options button{min-height:52px;text-align:left;padding:14px 18px;font:600 15px system-ui;border:1px solid #b7c8b0;border-radius:12px;color:#284e3b;background:#f9fbf4}.quiz-options button:focus-visible{outline:3px solid #b98a35}.quiz-options button[data-correct=true]{background:#d5e8ce;border-color:#3e6a3a}.social-tabs{display:flex;flex-wrap:wrap;gap:8px}.social-tabs button{min-height:44px}.social-input{display:flex;gap:10px;flex-wrap:wrap}.social-input input{flex:1;min-width:140px;padding:14px;border:1px solid #b7c8b0;border-radius:10px;font-size:16px}.friend-code{font:700 23px monospace;letter-spacing:2px}.quiz-reward{padding:18px;background:#efe3bd;border-radius:14px}.profile-edit-link{font-size:13px;color:#315640}.today-adventure ol{padding-left:20px}.today-adventure li{margin:7px 0}
@keyframes trail-hop{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-7px) rotate(2deg)}}@keyframes canopy-soar{0%,100%{transform:translateY(3px) rotate(-4deg)}50%{transform:translateY(-10px) rotate(3deg)}}@keyframes river-glide{0%,100%{transform:translateX(-4px) rotate(-3deg)}50%{transform:translateX(4px) rotate(3deg)}}@keyframes arrival{from{opacity:0;transform:translateY(14px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:700px){.explorer-layout{display:block}.explorer-preview{position:static;padding:16px;margin-bottom:24px}.explorer-preview svg{height:180px;width:145px}.explorer-preview h2{margin:0}.explorer-preview p{font-size:13px}.practice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.practice-card{padding:14px}.practice-card h2{font-size:20px}.practice-card .racer-art{height:115px}.practice-card .action{font-size:13px}.today-adventure{padding:14px;gap:10px}.mini-explorer{width:65px}.today-adventure h2{font-size:22px}.social-card{padding:18px}.phone-dock,.shared-phone-dock{grid-template-columns:repeat(4,1fr)!important}.phone-dock a,.phone-dock button,.shared-phone-dock a{font-size:10px!important}.explorer-choices button{padding:10px 12px}}
@media(prefers-reduced-motion:reduce){.motion-run .racer-art,.motion-fly .racer-art,.motion-swim .racer-art,.runner>.racer-art,.podium .racer-art,.race-result-card:before{animation:none!important}}
.passport-intro{display:flex;gap:28px;align-items:center;margin:24px 0}.passport-book{background:#315644;color:#f2dfae;width:150px;height:210px;flex:none;border-radius:7px 18px 18px 7px;border-left:8px solid #274936;box-shadow:5px 7px 0 #d6c9a2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;text-align:center}.passport-book span{letter-spacing:3px;font-size:10px}.passport-book b{font:60px Georgia}.passport-book strong{font:17px/1.4 Georgia}.passport-intro p{line-height:1.7}.passport-intro small{font-size:12px;line-height:1.6;display:block}.passport-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:24px 0}.place-stamp{border:2px dashed #6b8363;padding:25px;border-radius:50px 12px 50px 12px;background:#edf0df;color:#31513f;text-align:center}.stamp-emblem{font:55px Georgia;border:2px solid currentColor;width:76px;height:76px;border-radius:50%;line-height:76px;margin:0 auto 18px}.place-stamp h2{font:25px Georgia;overflow-wrap:anywhere}.place-stamp p{font-size:13px;line-height:1.6;overflow-wrap:anywhere}.place-stamp small{font-size:10px;letter-spacing:1px}.stamp-coast{background:#e2edeb;color:#416877}.stamp-mountain{background:#e9e5ed;color:#686478}.stamp-town{background:#efe3cf;color:#8a6345}.stamp-park{background:#eee7c7;color:#7b7246}.passport-input{display:block;width:100%;box-sizing:border-box;padding:14px;border:1px solid #bac7b6;border-radius:12px;font:16px system-ui;margin:8px 0 20px;background:#fffdf5}.stamp-note{font-style:italic}.passport-grid .secondary{min-height:44px}@media(max-width:700px){.passport-intro{gap:18px;align-items:flex-start}.passport-book{width:110px;height:170px}.passport-book strong{font-size:14px}.passport-intro h2{font-size:23px}.passport-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.place-stamp{padding:18px 12px}.place-stamp h2{font-size:21px}}@media(max-width:360px){.passport-grid{grid-template-columns:1fr}}

.share-result{display:grid;gap:12px;margin-top:22px}.share-result>.action,.share-result>.secondary{display:flex;align-items:center;justify-content:center;min-height:48px;padding:12px 16px;box-sizing:border-box;border:1px solid #315743;border-radius:12px;font:700 15px/1.4 system-ui;text-align:center;text-decoration:none;cursor:pointer}.share-result>.action{background:#315743;color:#fff7e6}.share-result>.secondary{background:#edf0e4;color:#315743}.share-result #challenge-copy{padding:16px;border-radius:12px;background:#e7eddc}.share-result label{font-weight:700}.share-result input{margin-bottom:8px}.adventure-shortcuts{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.adventure-shortcuts a{display:flex;align-items:center;min-height:44px;padding:8px 12px;box-sizing:border-box;border:1px solid #c1cbb4;border-radius:10px;background:#faf8ed;font:600 12px system-ui;color:#315743}.solo-trial .rival-lane{display:none}.solo-trial .player-lane{top:45%}

.race-card-preview{margin-top:24px;padding:16px;border-radius:16px;border:1px solid #c3cdb8;background:#f6f1e3}.race-card-preview img{display:block;width:100%;height:auto;border-radius:10px}.race-card-preview>a{display:block;text-align:center;margin-top:12px;min-height:48px;padding:12px;box-sizing:border-box;border-radius:10px;background:#315743;color:#fff7e6;font:700 15px system-ui;text-decoration:none}.friendly-lobby>.stats,.friendly-lobby .league-milestone,.friendly-lobby .league-tabs,.friendly-lobby .race-simple-extras{display:none!important}

/* Family sessions and keepsakes use the same readable controls on every screen. */
.family-quiz{border:2px solid #a7ba92;background:linear-gradient(135deg,#f7f4e5,#eaf0df)}
.family-quiz>small{font-weight:700;letter-spacing:1.3px;font-size:10px}.family-quiz h2{line-height:1.25}.family-quiz-icons{font-size:34px;letter-spacing:14px;margin:20px 0}.family-quiz>progress{display:block;width:100%;height:8px;margin:16px 0;accent-color:#315743}.family-quiz-score{font:700 54px Georgia,serif;margin:16px 0}.family-quiz-score span{font:500 18px system-ui}.family-feedback:not(:empty){background:#e2ebd6;border-radius:12px;padding:16px;color:#254635}.quiz-options button:disabled{opacity:1;color:#44523c}.quiz-options button[data-correct=true]{border:2px solid #315743;color:#254635}.quiz-exit{margin-top:22px;font-size:13px}.quiz-exit summary{min-height:44px;cursor:pointer}.quiz-race-link{margin-top:12px}.family-quiz h2:focus{outline:none}.social-card .action,.social-card .secondary,.stamp-actions .secondary{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:48px;padding:12px 16px;border-radius:12px;font:650 15px/1.4 system-ui;text-decoration:none;cursor:pointer}.social-card .action{background:#315743;color:#fff8e8;border:1px solid #315743}.social-card .secondary,.stamp-actions .secondary{background:#f4f5eb;color:#315743;border:1px solid #aaba9c}.social-card [hidden]{display:none!important}.social-card button:focus-visible,.passport-input:focus-visible,.stamp-actions button:focus-visible{outline:3px solid #a57825;outline-offset:3px}.family-quiz>.action,.family-quiz>.quiz-race-link{width:100%}
.passport-find{padding:20px;background:#eaf0e1;border-radius:18px}.passport-find h2{margin-top:0;font:26px Georgia}.passport-find .passport-input{margin-bottom:14px}.passport-find #passport-results:empty{display:none}.passport-grid:has(.passport-empty){display:block}.passport-empty{padding:18px;border:1px dashed #a8b99b;border-radius:12px;line-height:1.6}.stamp-actions{display:grid;gap:8px;margin-top:16px}.stamp-actions .secondary{font-size:13px;width:100%}#stamp-fields{border:0;margin:0;padding:0;min-width:0}#stamp-fields:disabled{opacity:.65}#memory-details{margin-top:20px}#memory-details summary{padding:12px 0;min-height:24px;cursor:pointer;font-weight:650}#keepsake-editor[hidden]{display:none}.friendly-race-rule{font-size:13px;color:#35553e;text-align:center}.race-hud #stock[hidden]{display:none!important}
@media(max-width:420px){.passport-grid{grid-template-columns:1fr}.passport-intro{gap:14px}.passport-book{width:85px;height:150px}.passport-book strong{font-size:12px}.passport-book b{font-size:44px}.passport-intro h2{font-size:21px}.passport-intro p{font-size:14px}}

.passport-add-link{display:inline-flex;align-items:center;min-height:44px;color:#315743;font:700 13px system-ui;margin-top:8px}#mark-adventure{scroll-margin-top:20px}

.solo-race .race-distances h3:nth-of-type(2),.solo-race .race-distances .rival{display:none!important}

/* The adventure card has its own layout, separate from the older map overlay. */
.adventure-start{min-width:0}.adventure-start .today-adventure{width:100%;box-sizing:border-box}.today-adventure>div:last-child{flex:1;min-width:0}.today-adventure h2{max-width:none}.today-adventure .mini-explorer svg{display:block;height:auto}.today-adventure>div>a{display:inline-flex;align-items:center;min-height:44px}.social-card>summary,.friend-settings>summary,.quiz-reward>summary{cursor:pointer;min-height:44px;display:list-item;align-content:center;font-weight:700}.friend-settings{width:100%;font-size:14px}.friend-settings button{margin:6px 8px 0 0}.social-card h2:first-child{margin-top:0}.social-input label{flex-basis:100%;font-weight:650}.social-input button,.friend-row>button,.social-card #copy-group,.social-card #leave-group{min-height:48px;border-radius:12px;padding:12px 16px;background:#315743;color:#fff8e8;border:1px solid #315743;font:650 15px system-ui}.quiz-reward{margin:18px 0}.quiz-reward summary{line-height:1.5}.friend-question{display:block}.friend-question>strong{display:block;margin-bottom:8px}.friend-question .passport-input{margin-bottom:10px}.friend-question>button{width:100%}.social-card details.social-rules{margin-top:18px;font-size:14px}.social-rules summary{min-height:44px;align-content:center;cursor:pointer}.friends-pending{display:grid;gap:12px}.friends-pending .friend-row{display:grid;gap:10px}.social-card details[open]>summary{margin-bottom:14px}.social-card .social-card{padding:16px}.social-card a{color:#315743}.social-card a.action{color:#fff8e8}

/* Catch results replace the timing challenge and stay until the player continues. */
.encounter-card [hidden]{display:none!important}.capture-presence{display:inline-block;padding:6px 12px;border-radius:20px;background:#e4edda;color:#274d38;font:750 13px/1.3 system-ui;margin:0 0 12px}.encounter-card[data-result]:not([data-result="active"]) .encounter-art{min-height:108px;gap:6px;padding:12px 0}.encounter-card[data-result="escaped"] .encounter-art{filter:none}.encounter-card[data-result="escaped"] .encounter-rank{background:#fff5df;color:#613b17;border-color:#dfbd7d;font:800 24px/1.2 system-ui;padding:10px 22px}.encounter-card[data-result="caught"] .encounter-rank{background:#f5f7dd;color:#244e39;font:800 22px/1.2 system-ui}.encounter-card[data-result="caught"] .encounter-halo{width:100px;height:100px}.encounter-card[data-result] .capture-outcome{background:#f9ebd1;border:2px solid #b88138;color:#503714;padding:20px 18px;margin:0 0 16px;border-radius:16px;font:500 16px/1.55 system-ui;scroll-margin-block:20px}.encounter-card[data-result="caught"] .capture-outcome{background:#e9f0dc;border-color:#517244;color:#234633}.encounter-card[data-result] .capture-outcome h2{font:800 34px/1.1 system-ui;margin:8px 0 14px;color:inherit}.capture-outcome p{margin:10px 0}.capture-outcome .capture-next-step{font-weight:650}.capture-result-icon{display:block;font:700 38px/1 system-ui}.capture-outcome:focus{outline:3px solid #947024;outline-offset:3px}.encounter-card[data-result] .capture-controls #capture-retry{background:#244e39;color:#fff9e7;font:700 16px/1.4 system-ui;min-height:54px;border:1px solid #173e32;padding:14px}.encounter-card[data-result="escaped"] .encounter-safety,.encounter-card[data-result="caught"] .encounter-safety{margin-top:8px}@media(max-height:700px){.capture-presence{font-size:11px;margin-bottom:5px;padding:4px 10px}.encounter-card[data-result] .capture-outcome{padding:16px}.encounter-card[data-result] .capture-outcome h2{font-size:29px}.encounter-card[data-result="caught"] .encounter-halo{width:70px;height:70px}}
.catch-saved{font:750 17px/1.5 system-ui;color:#285334;background:#e5efda;border:1px solid #adbf9c;padding:14px;border-radius:12px}

/* Four-level practice quiz; deliberately scoped away from the online reward quiz. */
.family-quiz{min-width:0}.family-quiz h2,.family-quiz .quiz-options button,.family-quiz .family-feedback,.family-quiz .family-source{overflow-wrap:anywhere}
.family-difficulties{min-width:0;border:0;padding:0;margin:24px 0 12px}.family-difficulties legend{font:700 17px/1.5 system-ui;margin-bottom:12px}.family-difficulty-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.family-difficulty{display:flex;align-items:flex-start;gap:10px;box-sizing:border-box;min-height:88px;padding:14px 12px;border:2px solid #b6c6a9;border-radius:12px;background:#fffdf4;cursor:pointer;color:#294f3c}.family-difficulty:has(input:checked){border-color:#315743;background:#e1ebd6;box-shadow:inset 0 0 0 1px #315743}.family-difficulty:has(input:focus-visible){outline:3px solid #9c7024;outline-offset:3px}.family-difficulty input{width:20px;height:20px;flex:none;accent-color:#315743;margin:2px 0 0}.family-difficulty strong{display:block;font:750 17px/1.35 system-ui}.family-difficulty span span{display:block;font:400 13px/1.45 system-ui;margin-top:4px}.family-quiz-note{font-size:13px}.family-source{font-size:13px}.family-source a{color:#244f3b;text-decoration:underline;text-underline-offset:3px;display:inline-block;padding:8px 0}.family-quiz>.family-change-level{width:100%;margin-top:12px}.family-quiz #family-load-error:not(:empty){border:1px solid #bca770;padding:12px;border-radius:10px}.family-quiz .quiz-options button{width:100%;min-width:0;line-height:1.5}
@media(max-width:360px){.family-difficulty-grid{grid-template-columns:1fr}.family-difficulty{min-height:68px}.family-quiz h2{font-size:25px}}

.family-round-size{border:0;padding:0;margin:22px 0}.family-round-size legend{font:700 17px system-ui;margin-bottom:10px}.family-round-size label{display:flex;align-items:center;gap:12px;min-height:48px;margin:8px 0;padding:8px 12px;border:1px solid #b6c6a9;border-radius:12px;background:#fffdf4;cursor:pointer}.family-round-size input{width:20px;height:20px;accent-color:#315743}.family-round-size label:has(input:checked){background:#e2ecd9;border-color:#315743}.family-missed{margin:18px 0;border:1px solid #b8c7a8;border-radius:14px;padding:14px}.family-missed summary{min-height:44px;align-content:center;font-weight:700;cursor:pointer}.family-missed article{padding:14px 0;border-top:1px solid #d3ddc6}.family-missed h3{font:650 17px/1.5 system-ui}.family-missed a{display:inline-flex;align-items:center;min-height:44px;color:#315743}
