:root{--forest:#173f34;--lime:#e4eeaa;--cream:#f6f5eb}body.family-mode{background:var(--cream);color:var(--forest);padding-bottom:80px}.family-mode main{max-width:760px;padding:16px 18px 45px}.family-mode main>*{display:none!important}.family-mode[data-family-view=home] #family-home,.family-mode[data-family-view=map] #station-plan,.family-mode[data-family-view=album] #family-album,.family-mode[data-family-view=games] #mission-hub{display:block!important}.family-top{position:relative;padding:14px 65px 14px 22px!important;border-radius:0 0 25px 25px}.family-top h1{font-size:24px;margin:4px 0}.family-top small{font-size:10px}.family-settings{position:absolute;right:14px;top:17px;background:#ffffff18!important;border-color:#ffffff40!important;color:white!important;min-width:46px}.family-home{text-align:center;padding:12px 8px}.family-home>.tag{font-size:10px;letter-spacing:.14em}.family-hero-art{display:flex;justify-content:center;align-items:end;margin:18px 0 14px;min-height:130px;background:radial-gradient(ellipse at center,#d9e6ba 0,transparent 68%)}.family-portrait{width:115px;flex-shrink:0}.family-portrait svg{display:block;width:100%}.family-hero-art .family-portrait:first-child{transform:rotate(-8deg)}.family-hero-art .family-portrait:nth-child(2){width:145px}.family-hero-art .family-portrait:last-child{transform:rotate(8deg)}.family-home h2{font-size:clamp(27px,6vw,39px);line-height:1.13;max-width:520px;margin:16px auto}.family-home>p{max-width:430px;margin:15px auto;color:#4a6456}.family-main-actions{display:grid;gap:11px;max-width:460px;margin:24px auto 16px}.family-main-actions button{min-height:65px;border-radius:19px;font-size:20px;text-align:start;padding:17px 23px}.family-main-actions>button:first-child{background:#234e37;color:#fff;box-shadow:0 7px 0 #d6dfbd}.family-main-actions>button.alt{background:#fff;border-color:#d5dec7}.family-small-progress{font-size:14px}.family-bottom-nav{position:fixed;bottom:0;inset-inline:0;display:flex;justify-content:center;gap:7px;background:#fffdf6f5;border-top:1px solid #d5dec7;padding:9px 10px calc(9px + env(safe-area-inset-bottom));z-index:1200}.family-bottom-nav button{border:0;background:transparent;color:#49604d;font-size:13px;min-height:46px;padding:9px 14px}.family-bottom-nav button[aria-current=page]{background:#e4edcc;color:#173f34}.family-parent{border:0;border-radius:24px;width:min(610px,94vw);max-height:90dvh;padding:25px;background:#fffdf7;color:#173f34;overflow:auto}.family-parent::backdrop{background:#103b2dbb}.family-parent>button{display:block;width:100%;margin:13px 0}.family-parent h2{font-size:27px}.family-levels{display:grid;gap:9px}.family-levels button[aria-pressed=true],.family-language-choice button[aria-pressed=true]{background:#e4edcc;border-color:#173f34;color:#173f34}.family-language-choice{display:flex;gap:10px;margin:15px 0}.family-switch{display:flex;align-items:center;gap:14px;margin:22px 0;font-weight:700}.family-switch input{width:24px;height:24px;flex-shrink:0}.family-parent #settings-panel{margin:20px 0;padding:12px;background:#f2f6e8;border-radius:16px}.family-parent #settings-panel .card{box-shadow:none}.family-parent .langs{grid-template-columns:repeat(2,minmax(0,1fr))}.family-voice-controls{display:flex;gap:7px;flex-wrap:wrap;justify-content:center;margin:12px 0}.family-voice-controls button{font-size:14px;min-height:48px;padding:10px 12px}.family-album h2{font-size:32px}.family-album-count{display:block;padding:18px;background:#e4edcc;border-radius:16px;font-size:28px;text-align:center}.family-stamps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:20px}.family-stamp{background:#eeeee4;border:1px dashed #a9b798;border-radius:22px;padding:15px;text-align:center;min-width:0}.family-stamp .family-portrait{margin:auto;max-width:100%;opacity:.35;filter:grayscale(1)}.family-stamp.collected{background:white;border:2px solid #56784c}.family-stamp.collected .family-portrait{opacity:1;filter:none}.family-stamp p{font-size:13px}.family-stamp button{font-size:13px;max-width:100%}.family-travel{background:#f0f4df;border-radius:20px;padding:20px;margin-bottom:20px}.family-travel>.family-portrait{float:right;width:95px}.family-travel h2{margin:6px 0}.family-travel button{margin:8px 0;width:100%}.family-travel details{margin:12px 0}.family-travel summary{font-weight:700;cursor:pointer;padding:12px 0}.family-travel .family-voice-controls button{width:auto;margin:0}.family-mode:not(.family-map-editor) #station-plan>.tag,.family-mode:not(.family-map-editor) #station-plan>h2,.family-mode:not(.family-map-editor) #station-plan>p:not(:last-child),.family-mode:not(.family-map-editor) .park-layer-row,.family-mode:not(.family-map-editor) .park-map-toolbar>label,.family-mode:not(.family-map-editor) .park-map-toolbar [data-undo],.family-mode:not(.family-map-editor) [data-place],.family-mode:not(.family-map-editor) .park-file-actions,.family-mode:not(.family-map-editor) .plan-selected>details,.family-mode:not(.family-map-editor) .plan-selected>p{display:none!important}.family-mode .station-plan{padding:14px}.family-mode .park-map{height:48dvh;min-height:300px}.family-mode .plan-select{max-width:100%;width:100%}.family-mode .mission-dialog{width:min(660px,96vw)}.family-mode .mission-dialog-head{padding:14px}.family-mode .mission-dialog-head h2{font-size:19px}.family-mode .mission-body{font-size:18px}.family-mission-stage>h3{font-size:26px}.family-fact{background:#f0f4e3;border-radius:18px;padding:20px;font-size:21px;line-height:1.6}.family-answer-symbol{font-size:38px;display:block}.family-progress-step{font-size:12px;font-weight:700;letter-spacing:.06em;color:#647b57;margin-bottom:14px}.family-voice-note{font-size:12px;color:#64745e}.family-stamp-award{text-align:center}.family-stamp-award .mission-portrait{margin:auto;max-width:130px;width:130px;border:3px dashed #739053;border-radius:50%;padding:10px;background:white}.family-sight-button{width:100%;margin:12px 0}.family-observation-text{font-size:23px;padding:20px;background:#edf4dd;border-radius:18px}.family-memory{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:18px 0}.family-memory button{aspect-ratio:1;font-size:30px;background:#e9efd7;color:#173f34}.family-mode .mission-team-row{display:none}.family-mode .mission-hub>p.notice{display:none}.family-mode.family-classic main>*{display:revert!important}.family-mode.family-classic #family-home,.family-mode.family-classic #family-album{display:none!important}button:focus-visible,summary:focus-visible{outline:3px solid #a66d20;outline-offset:4px}@media(max-width:370px){.family-portrait{width:90px}.family-hero-art .family-portrait:nth-child(2){width:115px}.family-main-actions button{font-size:18px;padding:16px}.family-bottom-nav button{padding:8px}.family-stamps{gap:8px}.family-stamp{padding:10px}.family-memory{gap:6px}.family-memory button{font-size:25px;padding:8px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.family-mode[data-family-level=little] .mission-quiz>button{font-size:24px;min-height:72px}.family-mode.family-classic .mission-team-row{display:flex}.family-mode .family-parent input:not([type=checkbox]){max-width:100%;box-sizing:border-box}

.family-mode:not(.family-map-editor) .plan-selected>h3,.family-mode:not(.family-map-editor) .park-selected-actions>button:nth-child(1),.family-mode:not(.family-map-editor) .park-selected-actions>button:nth-child(2){display:none!important}
.family-hero-art .family-portrait{width:29%;max-width:115px}.family-hero-art .family-portrait:nth-child(2){width:34%;max-width:145px}.family-hero-art{padding-inline:7px}.family-mode .family-parent{box-sizing:border-box}.family-mode .mission-dialog-head h2{overflow-wrap:anywhere}

.family-loading main{visibility:hidden}
.family-mode.family-classic main>*[hidden]{display:none!important}

/* Original entrance artwork, with local SVG friends walking into the park. */
.family-gate-hero{position:relative;isolation:isolate;aspect-ratio:3/2;width:100%;max-width:600px;margin:20px auto 22px;border-radius:25px;overflow:hidden;background:#dfe7cd;box-shadow:0 8px 25px #183d2917}
.family-gate-hero>img{display:block;width:100%;height:100%;object-fit:cover}
.family-gate-walkers{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.family-gate-walker{position:absolute;left:var(--walk-from);bottom:-8%;width:18%;transform-origin:center bottom;animation:family-enter-gate 9s linear infinite;animation-delay:var(--walk-delay);opacity:0;filter:drop-shadow(0 5px 2px #1c352c40)}
.family-gate-walker:nth-child(1){--walk-from:40%;--walk-delay:0s}
.family-gate-walker:nth-child(2){--walk-from:56%;--walk-delay:1.7s}
.family-gate-walker:nth-child(3){--walk-from:69%;--walk-delay:3.4s}
.family-gate-walker .family-portrait{width:100%;max-width:none;animation:family-walking-step .42s ease-in-out infinite alternate;transform-origin:center bottom}
.family-gate-hero.animation-paused .family-gate-walker,.family-gate-hero.animation-paused .family-portrait{animation-play-state:paused}
.family-animation-toggle{position:absolute;right:9px;bottom:9px;z-index:2;min-height:38px;min-width:38px;padding:5px 10px!important;border:1px solid #fff9!important;border-radius:12px;background:#fffdf0dd!important;color:#183e2e!important;font-size:17px!important;backdrop-filter:blur(4px)}
@keyframes family-enter-gate{0%{left:var(--walk-from);bottom:-8%;transform:translateX(-50%) scale(1.05);opacity:0}8%{opacity:1}20%{left:var(--walk-from);bottom:1%;transform:translateX(-50%) scale(.94)}66%{left:49%;bottom:28%;transform:translateX(-50%) scale(.46);opacity:1}82%{left:47%;bottom:34%;transform:translateX(-50%) scale(.28);opacity:.7}91%,100%{left:47%;bottom:37%;transform:translateX(-50%) scale(.17);opacity:0}}
@keyframes family-walking-step{from{transform:translateY(0) rotate(-5deg)}to{transform:translateY(-5px) rotate(5deg)}}
@media(prefers-reduced-motion:reduce){.family-gate-walker,.family-gate-walker .family-portrait{animation:none}.family-gate-walker{opacity:1;bottom:13%;transform:translateX(-50%) scale(.65)}.family-animation-toggle{display:none}}
@media(max-width:480px){.family-gate-hero{margin:12px auto 16px}.family-home:has(.family-gate-hero) h2{font-size:27px;margin:12px auto}.family-home:has(.family-gate-hero)>p{margin:11px auto}.family-home:has(.family-gate-hero) .family-main-actions{margin:18px auto 14px}}

/* Camera entry stays above the gate artwork and available from every family view. */
.family-camera-start{max-width:460px;margin:15px auto 19px}.family-camera-start>p{font-size:14px;line-height:1.45;color:#4a6456;margin:10px 4px 0}.family-camera-button{display:block;width:100%;min-height:64px;padding:17px 20px;border-radius:18px;font-size:21px;font-weight:800;background:#234e37;color:white;border:2px solid #234e37;box-shadow:0 5px 0 #d6dfbd}.family-bottom-nav .family-camera-nav{background:#234e37;color:white;font-weight:800}.family-bottom-nav{gap:4px}.family-bottom-nav button{padding-inline:10px}.family-travel .family-camera-button{margin-top:14px}@media(max-width:370px){.family-bottom-nav button{padding-inline:7px;font-size:12px}}

.family-intro{width:min(94vw,600px);max-height:94dvh;overflow:auto;border:2px solid #d3b975;border-radius:24px;padding:18px;background:#fffcef;color:#193b2c}.family-intro::backdrop{background:#10271fe6}.family-intro h2{font-size:22px;margin:0 0 12px}.family-intro video{position:static;display:block;width:100%;height:60dvh;max-height:640px;background:#14261b;border-radius:16px;object-fit:contain}.family-intro-actions{display:flex;gap:8px;flex-wrap:wrap}.family-intro-actions button{min-height:44px}.family-gate-preview>img{object-fit:cover;border-radius:12px}.family-gate-preview button{margin:5px 0}

.family-intro{transition:opacity .7s ease}.family-intro::backdrop{transition:background .7s ease}.family-intro.family-intro-reveal{opacity:0;pointer-events:none}.family-intro.family-intro-reveal::backdrop{background:transparent}@media(prefers-reduced-motion:reduce){.family-intro,.family-intro::backdrop{transition:none}}

/* Quick language choice and shorter return path from the discovery passport. */
.family-home>.family-language-choice{justify-content:center;margin:12px 0}
.family-language-choice button{min-height:44px}
.family-album-actions{display:grid;gap:10px;margin:16px 0 22px}
.family-album-actions button{min-height:52px}
.family-table-start{min-height:58px;font-size:20px;font-weight:700}
.mission-flower-progress{font-weight:700;padding:12px;background:#edf4dd;border-radius:12px}
.mission-flower:disabled{opacity:.8;background:#e4edcc;color:#173f34}
