@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#193a3b;background:#f6f3e9;font-synthesis:none;--ink:#173f41;--muted:#697c77;--gold:#f8ca69;--cream:#fffdf6;--line:#dfe5d9;--green:#246754}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #dc8b3c;outline-offset:5px}button{transition:transform .18s,background .18s,box-shadow .18s}button:not(:disabled):active{transform:translateY(2px)}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:'Fraunces',Georgia,serif;font-weight:600}button svg{pointer-events:none}.topbar{min-height:82px;background:#fffdf6;display:flex;align-items:center;justify-content:space-between;padding:16px 4vw;gap:16px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;font-family:'Fraunces',serif;font-size:24px;font-weight:600}.brand-mark{width:39px;height:39px;display:grid;place-items:center;color:#bd9141;border:1px solid #cfbc85;border-radius:50%;font-size:28px}.brand small{display:block;font:10px 'DM Sans',sans-serif;letter-spacing:3px;text-transform:uppercase;margin-top:4px;color:#748275}.tools{display:flex;gap:8px;align-items:center}.tools button,.soft{border:1px solid var(--line);background:#fffdf6;border-radius:12px;min-height:44px;padding:10px 14px;font-weight:600}.tools .lang{display:flex;background:#edf0e6;border-radius:11px;padding:3px}.lang button{padding:7px 10px;min-height:38px;border:0;background:none;font-size:12px}.lang button.active{background:white;box-shadow:0 2px 5px #203c3015}.layout{max-width:1560px;margin:auto;display:grid;grid-template-columns:1fr 300px;gap:26px;padding:30px 4vw 40px}.main-column{min-width:0}.eyebrow{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:#7e8e78;font-weight:700}.page-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:20px;gap:12px}.page-heading h1{font-size:clamp(28px,3vw,44px);margin:7px 0 6px;line-height:1.1}.page-heading p{font-size:14px;color:var(--muted)}.weather{font-size:12px;color:var(--muted);white-space:nowrap}.map-frame{position:relative;border:6px solid #fffdf6;box-shadow:0 10px 32px #163c351c;border-radius:24px;overflow:hidden;background:#258795;isolation:isolate}.map-art{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;filter:saturate(.88)}.map-frame:after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 60px #073d452e;pointer-events:none;z-index:1}.map-pin{position:absolute;transform:translate(-50%,-50%);z-index:3;background:none;border:0;padding:0;display:flex;align-items:center;flex-direction:column;gap:5px;min-width:44px}.map-pin:not(:disabled):active{transform:translate(-50%,-48%)}.pin-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;border:3px solid #fff6d6;background:#173e44;color:#fff;font-size:21px;box-shadow:0 3px 0 #0003,0 4px 14px #0005}.map-pin.current .pin-icon{background:var(--gold);color:#30462e;box-shadow:0 0 0 7px #f8ca6940,0 3px 15px #28332770;animation:beacon 3s ease-in-out infinite}.map-pin.restored .pin-icon{background:#418369}.pin-label{background:#163b3aeb;color:#fffdf6;padding:5px 10px;border:1px solid #b9c6a840;border-radius:7px;font-size:11px;font-weight:600;white-space:nowrap;box-shadow:0 3px 6px #0002}.map-pin.locked .pin-icon{background:#526d6b;filter:saturate(.3)}.spark{position:absolute;border:0;z-index:2;background:none;font-size:24px;color:#fff6c3;text-shadow:0 0 9px #fce16c;min-width:44px;min-height:44px;animation:twinkle 3s infinite}.map-caption{position:absolute;left:18px;bottom:15px;z-index:3;color:#fffdf0;font-size:11px;text-shadow:0 2px 3px #000;letter-spacing:1px}.map-caption span{display:inline-block;background:#173e44d9;padding:7px 11px;border-radius:20px}.map-legend{display:flex;justify-content:space-between;gap:14px;padding:15px 4px;color:#778579;font-size:12px}.map-legend b{color:#927239}.nav{display:flex;gap:8px;border-top:1px solid var(--line);padding-top:18px;margin-top:4px;flex-wrap:wrap}.nav button{background:none;border:1px solid transparent;border-radius:12px;padding:12px 16px;min-height:46px;font-weight:600;color:#708078}.nav button.active{background:#e7ecdf;color:#2b5544;border-color:#d5dfcd}.side{padding-top:5px}.progress-card{background:var(--ink);color:#fffdf6;border-radius:20px;padding:24px;box-shadow:0 8px 22px #213d3315}.progress-card .eyebrow{color:#c5d4b7;font-size:10px}.progress-card h2{font-size:23px;margin:9px 0 18px}.lights{display:flex;gap:9px;justify-content:space-between;margin:15px 0}.light{font-size:26px;color:#638079}.light.on{color:var(--gold);text-shadow:0 0 12px #ffd46b55}.progress-track{height:5px;background:#ffffff20;border-radius:4px;overflow:hidden;margin:16px 0 11px}.progress-track i{display:block;background:#edcb80;height:100%;border-radius:4px}.progress-small{display:flex;justify-content:space-between;font-size:11px;color:#c1d1c0}.companion{margin:18px 0;background:#eeeee1;border:1px solid #dce2d2;border-radius:20px;padding:23px}.companion-avatar{font-size:40px;line-height:1;margin-bottom:13px}.companion .name{font-size:12px;font-weight:700;color:#5c7660;margin-bottom:8px}.companion p{font:500 19px/1.45 'Fraunces',serif}.companion small{font-size:11px;color:#7b8775;display:block;margin-top:12px}.primary{border:0;background:var(--gold);color:#284336;border-radius:12px;padding:15px 22px;min-height:52px;font-weight:700;font-size:15px;box-shadow:0 3px 0 #d3a449}.primary:hover{background:#fbd78a}.companion .primary{width:100%;margin-top:20px}.save-note{font-size:11px;line-height:1.6;color:#7b897e;margin:17px 10px;text-align:center}.stat-line{display:flex;justify-content:center;gap:20px;font-size:12px;color:#6e7f72;margin-top:18px}.region-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.region-list button{display:flex;gap:9px;align-items:center;text-align:left;border:1px solid #dde3d5;background:#fffdf6;padding:12px;border-radius:12px;min-height:66px}.region-list b{font-size:12px;display:block}.region-list small{font-size:10px;color:#849081}.region-list .region-icon{font-size:24px}.footer{font-size:11px;text-align:center;color:#829080;padding:0 15px 24px}.footer a{color:inherit}.welcome{position:relative;min-height:calc(100svh - 82px);display:grid;align-items:center;background:#134d57;overflow:hidden;padding:44px 7vw}.welcome:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0b303deb 0%,#0d344ea8 42%,#18454700 85%),url('./island.webp') center/cover}.welcome-copy{position:relative;max-width:500px;color:#fffced;z-index:1;padding:26px 0}.welcome .eyebrow{color:#f9d899;letter-spacing:3px}.welcome h1{font-size:clamp(55px,7vw,98px);line-height:.98;letter-spacing:-3px;margin:22px 0}.welcome h1 em{display:block;font-weight:500;color:#f4d9a4;font-size:.63em;letter-spacing:-1px;font-style:normal;line-height:1.25;margin-top:10px}.welcome p{font-size:18px;line-height:1.65;max-width:370px;color:#ecf0dd}.welcome .primary{margin:26px 0 18px;min-width:250px;font-size:17px}.welcome-foot{font-size:12px!important;color:#c1d5c6!important}.welcome .island-stamp{position:absolute;right:6vw;bottom:35px;border:1px solid #fff8d866;border-radius:50%;width:100px;height:100px;display:grid;place-items:center;text-align:center;font:13px 'Fraunces',serif;color:#fff9df;background:#0d39417a;transform:rotate(12deg)}dialog{border:0;border-radius:24px;background:var(--cream);color:var(--ink);width:min(560px,calc(100% - 28px));padding:30px;box-shadow:0 24px 90px #0005;max-height:90svh;overflow:auto}dialog::backdrop{background:#0c2f3dbb;backdrop-filter:blur(5px)}dialog h2{font-size:30px;margin:10px 0 13px}dialog p{line-height:1.65;white-space:pre-line}dialog .dialog-actions{display:flex;gap:10px;margin-top:24px;flex-wrap:wrap}dialog .portrait{font-size:60px}.quest-list{display:grid;gap:9px;margin:18px 0}.quest-row{padding:13px;border:1px solid var(--line);border-radius:12px;background:#fff;display:flex;align-items:center;gap:12px;text-align:left;width:100%;min-height:52px}.quest-row.current{background:#fff0cd;border-color:#e2bd74}.quest-row:disabled{opacity:.5}.quest-row small{margin-left:auto;font-size:12px}.quest-shell{max-width:850px;margin:30px auto;padding:0 24px 30px}.quest-top{display:flex;gap:16px;align-items:center;margin-bottom:22px}.quest-top .soft{font-size:18px}.quest-top .track{flex:1}.quest-top .track p{font-size:12px;color:#708377;margin-bottom:8px}.steps{display:flex;gap:7px}.steps i{height:7px;border-radius:5px;background:#d9e3d6;flex:1}.steps i.on{background:#69a27d}.activity{background:#fffdf6;border:1px solid var(--line);border-radius:25px;padding:30px;text-align:center;box-shadow:0 8px 30px #354e3710}.activity h1{font-size:clamp(25px,4vw,36px);max-width:650px;margin:12px auto 20px;line-height:1.25}.activity .scene{font-size:48px;line-height:1.5;margin:15px auto;overflow-wrap:anywhere}.activity-tools{display:flex;gap:8px;justify-content:center;margin:15px 0}.activity-tools .soft{font-size:12px}.answers{display:grid;gap:12px;margin:24px auto 10px;max-width:590px}.answer{background:#f1f3e8;border:2px solid #dfe6d5;border-radius:15px;padding:19px;text-align:left;font-size:18px;min-height:66px;display:flex;gap:15px;align-items:center}.answer .letter{background:#fff;border-radius:9px;font-size:12px;padding:7px 10px;color:#7c8c77}.answer:hover{border-color:#729b7b;background:#eaf1df}.answer.bad{border-color:#d89178;background:#fff0e4}.answer.good{border-color:#5c9d72;background:#e1f1db}.feedback{min-height:58px;margin:20px 0 0;line-height:1.5;color:#4f7953;font-size:15px}.feedback:empty{min-height:10px}.feedback .primary{margin:15px auto 0;display:block}.tokens{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:22px 0}.token{border:2px solid #d6dfcb;background:#eff2e5;min-width:58px;min-height:58px;padding:13px;border-radius:12px;font-size:21px;font-weight:700}.token:disabled{opacity:.32}.sequence{min-height:68px;border:2px dashed #d4dec9;background:#fafaf2;border-radius:14px;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center;padding:12px;margin-top:18px;font-size:23px;letter-spacing:2px}.sequence span{font-size:17px;letter-spacing:0}.memory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:450px;margin:24px auto}.memory-tile{aspect-ratio:1;border:2px solid #b8cbb7;border-radius:14px;background:#2d695d;color:#eee8c8;font-size:32px;min-height:54px}.memory-tile.open{background:#fff3d2;border-color:#d6bd76;color:#294331}.memory-tile.matched{background:#e0ecd7;opacity:.65;color:#294331}.note-keys{display:flex;gap:8px;justify-content:center;margin:24px auto;max-width:500px}.note-key{flex:1;border:2px solid #ffffffaa;border-radius:16px;height:110px;font-weight:700;font-size:18px;box-shadow:0 5px 0 #0002;color:#23493f}.note-key:nth-child(1){background:#efb2a2}.note-key:nth-child(2){background:#f5d083}.note-key:nth-child(3){background:#b7d4a3}.note-key:nth-child(4){background:#a7d5d5}.note-key:nth-child(5){background:#c9b2df}.note-key.lit{transform:translateY(5px);filter:brightness(1.3);box-shadow:0 0 25px #edc86b}.road{position:relative;background:#bcd1a4;border-radius:22px;overflow:hidden;padding:35px 20px;margin:20px auto}.road:before{content:'';position:absolute;left:0;right:0;top:36%;height:38%;background:#778f87;border-block:4px solid #f4df9d}.road-path{display:flex;position:relative;justify-content:space-between;align-items:center;height:90px}.road-path span{width:32px;height:32px;font-size:27px;z-index:1}.traffic{display:flex;justify-content:center;align-items:center;gap:12px;font-size:16px;font-weight:700}.traffic-light{border-radius:50%;width:23px;height:23px;background:#cf665b;box-shadow:0 0 0 6px #273f3520}.traffic-light.green{background:#57a56d}.drive-controls{display:flex;gap:12px;justify-content:center;margin:20px}.studio-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;max-width:570px;margin:24px auto}.beat-cell{aspect-ratio:1;border:1px solid #c6d7c3;border-radius:8px;background:#e8ecdf;font-size:13px;min-height:32px}.beat-cell.on{background:#edc87d;border-color:#cfa357}.beat-cell.playing{box-shadow:0 0 0 3px #3a7860;z-index:1}.lanterns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:24px}.lantern{font-size:38px;color:#729187;background:#eef1e3;border:2px solid #ccd9c4;border-radius:50%;width:68px;height:68px}.lantern.on{color:#b48727;background:#fff0b1;border-color:#e7c574;box-shadow:0 0 22px #f1d27677}.collection{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:23px 0}.collect-card{padding:23px 12px;text-align:center;background:var(--cream);border:1px solid var(--line);border-radius:18px}.collect-card .object{font-size:39px;margin-bottom:12px}.collect-card h3{font-size:17px}.collect-card p{font-size:12px;line-height:1.5;color:#758374;margin-top:8px}.collect-card.locked{opacity:.5}.cottage{background:#e5e9d8;border:9px solid #fffdf4;border-radius:22px;position:relative;min-height:290px;text-align:center;padding:30px;box-shadow:0 8px 24px #173e3d12}.cottage h2{font-size:29px;margin-bottom:18px}.shelf{display:flex;gap:12px;justify-content:center;align-items:end;min-height:95px;border-bottom:10px solid #b89973;max-width:580px;margin:25px auto;font-size:45px}.cottage.palette-1{background:#d8e6e4}.cottage.palette-2{background:#eee0dc}.cottage.palette-3{background:#e2dbec}.palette{display:flex;justify-content:center;gap:12px;margin:15px}.palette button{width:48px;height:48px;border-radius:50%;border:3px solid #fff;background:#e5e9d8}.palette button:nth-child(2){background:#d8e6e4}.palette button:nth-child(3){background:#eee0dc}.palette button:nth-child(4){background:#e2dbec}.palette button.active{outline:2px solid #497761}.celebration{text-align:center;padding:40px 24px;max-width:740px;margin:auto}.celebration .trophy{font-size:90px;animation:float 4s ease-in-out infinite}.celebration h1{font-size:clamp(33px,5vw,52px);margin:20px 0}.celebration p{line-height:1.7;font-size:18px;color:#6d806f}.celebration .earned{font-size:28px;letter-spacing:10px;margin:25px}.celebration .primary{margin:20px}.confetti{position:fixed;z-index:20;pointer-events:none;top:-20px;width:9px;height:14px;background:var(--gold);animation:fall 2.5s ease-in forwards}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#183e3a;color:#fffdf0;padding:14px 22px;border-radius:12px;z-index:100;box-shadow:0 5px 25px #0003;max-width:90%;text-align:center;font-size:14px}#toast:empty{display:none}@keyframes beacon{50%{box-shadow:0 0 0 12px #f8ca6920,0 3px 15px #28332770}}@keyframes twinkle{50%{opacity:.55;transform:scale(.9)}}@keyframes float{50%{transform:translateY(-8px)}}@keyframes fall{to{transform:translate(40px,105vh) rotate(500deg);opacity:0}}@media(min-width:1450px){.layout{grid-template-columns:1fr 330px}.side{padding-top:8px}.companion{padding:28px}}@media(max-width:1050px){.layout{grid-template-columns:1fr 260px;gap:18px;padding-inline:24px}.brand{font-size:21px}.companion{padding:18px}.pin-label{font-size:9px}.pin-icon{width:38px;height:38px;font-size:18px}.progress-card{padding:20px}.weather{display:none}}@media(max-width:780px){.topbar{padding:13px 18px;min-height:73px}.brand{font-size:19px;gap:8px}.brand-mark{width:33px;height:33px;font-size:23px}.brand small{font-size:8px;letter-spacing:2px}.tools{gap:5px}.tools>button{padding:9px;font-size:12px}.tools .lang button{padding:7px}.layout{display:flex;flex-direction:column;padding:22px 18px;gap:8px}.side{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}.progress-card{margin-top:16px}.companion{margin:16px 0 0}.companion p{font-size:17px}.save-note{grid-column:1/-1;margin:0}.stat-line{grid-column:1/-1;margin:0 0 16px}.page-heading h1{font-size:33px}.region-list{grid-template-columns:repeat(3,1fr)}.welcome{min-height:calc(100svh - 73px);align-items:end;padding:30px}.welcome:before{background:linear-gradient(0deg,#0b303dfa 0%,#0b303dd9 42%,#0d344e11 100%),url('./island.webp') 52% center/cover}.welcome-copy{padding:90px 0 20px}.welcome h1{font-size:65px}.welcome .island-stamp{display:none}.map-caption{font-size:9px;left:9px;bottom:9px}.quest-shell{margin-top:20px;padding-inline:15px}.activity{padding:22px}.collection{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.topbar{padding:12px}.brand-mark{display:none}.brand{font-size:18px}.brand small{font-size:7px;letter-spacing:1.6px}.tools>button{min-height:40px}.layout{padding:20px 12px}.page-heading{padding:0 6px;margin-bottom:17px}.page-heading h1{font-size:30px}.page-heading p{font-size:12px}.map-frame{border-width:4px;border-radius:19px}.map-art{aspect-ratio:1/1.04;object-fit:fill}.map-pin{gap:3px}.pin-icon{width:34px;height:34px;font-size:16px;border-width:2px}.pin-label{font-size:8px;padding:4px 6px;max-width:110px;white-space:normal}.spark{font-size:20px}.map-caption{display:none}.map-legend{font-size:10px;padding:12px 5px}.nav{gap:3px;justify-content:space-between}.nav button{padding:10px 9px;font-size:12px}.region-list{grid-template-columns:repeat(2,1fr)}.region-list button{padding:10px}.region-list b{font-size:11px}.side{display:flex;flex-direction:column;gap:0}.side>*{width:100%}.companion{order:-1;display:grid;grid-template-columns:45px 1fr;column-gap:10px;padding:18px}.companion-avatar{grid-row:1/4;font-size:32px}.companion .name{margin-bottom:4px}.companion p{font-size:17px}.companion small{margin-top:7px}.companion .primary{grid-column:1/-1;margin-top:15px}.progress-card{padding:18px}.progress-card h2{font-size:20px;margin-bottom:8px}.lights{margin:10px 0}.save-note{padding:13px;margin:0}.activity{padding:20px 15px}.activity h1{font-size:26px}.answer{padding:15px;font-size:17px}.memory-grid{gap:8px}.note-key{height:95px;font-size:14px}.note-keys{gap:5px}.welcome{padding:24px}.welcome h1{font-size:57px}.welcome p{font-size:16px}.welcome .primary{width:100%}.quest-top{gap:10px}.quest-top .track p{font-size:11px}.cottage{padding:20px 10px}.shelf{font-size:30px;gap:6px}.studio-grid{gap:4px}.beat-cell{font-size:10px;padding:0}.collection{gap:10px}.collect-card{padding:18px 10px}.footer{font-size:10px}dialog{padding:24px}.dialog-actions>*{flex:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Restored places glow; story objectives stay visible inside every activity. */
.region-aura{position:absolute;transform:translate(-50%,-50%);width:24%;height:28%;border-radius:50%;background:radial-gradient(ellipse,#16374780,transparent 70%);pointer-events:none;z-index:1}.region-aura.restored{background:radial-gradient(ellipse,#fff1a255,transparent 70%);mix-blend-mode:screen}.mission-goal{font-size:13px;line-height:1.5;color:#6d806f;margin-top:-7px}.map-pin{min-height:48px}.studio-grid{touch-action:manipulation}

/* Living island: decorative layers never intercept a tap. */
.living-world{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2;border-radius:inherit}.living-world i{position:absolute;display:block;pointer-events:none}.welcome .living-world{z-index:0}.welcome-copy{z-index:3}.welcome:before{animation:welcome-breathe 22s ease-in-out infinite alternate}.cloud{width:25%;height:7%;border-radius:50%;background:radial-gradient(ellipse,#fffae7b0,transparent 69%);filter:blur(5px);animation:cloud-sail 38s ease-in-out infinite alternate;opacity:.6}.cloud-two{width:33%;animation-delay:-19s;animation-duration:47s;opacity:.4}.seabird{width:18px;height:10px;animation:bird-flight 16s ease-in-out infinite alternate}.seabird:before,.seabird:after{content:'';position:absolute;width:10px;height:7px;border-top:2px solid #fff1cd;border-radius:50%;transform:rotate(20deg);animation:wing-beat 1.5s ease-in-out infinite alternate}.seabird:after{left:9px;transform:rotate(-20deg);animation-direction:alternate-reverse}.bird-two{animation-delay:-5s;scale:.7}.water-glimmer{width:26%;height:9%;background:repeating-linear-gradient(175deg,transparent 0 8px,#d3fbf25c 9px,transparent 11px 21px);border-radius:50%;mask-image:radial-gradient(ellipse,#000,transparent 68%);animation:water-sparkle 5s ease-in-out infinite}.glimmer-two{width:16%;animation-delay:-2s}.waterfall{height:12%;width:2.5%;background:repeating-linear-gradient(180deg,transparent 0 8px,#e0fffb85 10px,transparent 14px 27px);filter:blur(1px);mask-image:linear-gradient(transparent,#000,transparent);animation:water-stream 1.8s linear infinite;opacity:.6}.fall-two{height:8%;animation-delay:-.8s}.island-boat{width:24px;height:8px;background:#a65a37;border-bottom:3px solid #f9d296;border-radius:0 0 80% 80%;box-shadow:0 6px 0 -3px #ccfbefab;animation:boat-bob 6s ease-in-out infinite}.island-boat:before{content:'';position:absolute;width:0;height:0;border-left:10px solid transparent;border-right:1px solid transparent;border-bottom:24px solid #fff4d0;left:8px;bottom:9px}.island-boat:after{content:'';position:absolute;bottom:7px;left:20px;width:1px;height:29px;background:#b57a4c}.butterfly{width:14px;height:11px;animation:butterfly-dance 10s ease-in-out infinite}.butterfly:before,.butterfly:after{content:'';position:absolute;width:9px;height:12px;background:#ffca80;border-radius:80% 30% 70% 40%;transform-origin:right center;animation:butterfly-wing .5s ease-in-out infinite alternate;box-shadow:0 0 5px #fdd9a366}.butterfly:after{left:9px;transform-origin:left center;border-radius:30% 80% 40% 70%;animation-delay:-.25s}.butterfly-two{animation-delay:-3s;filter:hue-rotate(100deg)}.firefly{width:4px;height:4px;border-radius:50%;background:#fff3b9;box-shadow:0 0 7px 2px #f8d76988;animation:firefly-drift 6s ease-in-out infinite;animation-delay:var(--delay)}.lighthouse-beam{width:33%;height:22%;background:conic-gradient(from 70deg at 0 0,transparent 0deg,#ffe9a850 13deg,transparent 27deg);transform-origin:0 0;mix-blend-mode:screen;animation:lighthouse-sweep 14s ease-in-out infinite alternate;opacity:.65}.map-art{filter:saturate(1.04);transition:filter 1s}.map-pin{z-index:4}.map-pin.current .pin-icon{animation:beacon 2.5s ease-in-out infinite,pin-float 3s ease-in-out infinite}.map-pin.restored .pin-icon{box-shadow:0 0 20px #a5ffc180}.map-pin:hover .pin-icon{scale:1.13}.spark{z-index:5;font-size:30px;filter:drop-shadow(0 0 5px #ffe790);animation:shell-dance 3s ease-in-out infinite}.spark:after{content:'';position:absolute;inset:4px;border-radius:50%;border:1px solid #fff3b877;animation:shell-ring 3s ease-out infinite}.region-aura.restored{animation:restored-glow 5s ease-in-out infinite}.progress-card{position:relative;overflow:hidden}.progress-card:after{content:'';position:absolute;inset:-60%;background:linear-gradient(110deg,transparent 42%,#dbedc50a 50%,transparent 58%);transform:translateX(-30%);animation:card-sheen 9s ease-in-out infinite;pointer-events:none}.light.on{animation:light-breathe 3s ease-in-out infinite}.light:nth-child(2n){animation-delay:-1s}.progress-track i{transition:width .65s cubic-bezier(.2,.8,.3,1);box-shadow:0 0 10px #f4d271}.companion{position:relative;overflow:hidden}.companion-avatar{position:relative;display:inline-flex;align-items:center;gap:10px;min-height:64px}.fox-friend{display:inline-block;width:78px;height:82px;vertical-align:middle}.fox-friend svg{display:block;width:100%;height:100%;overflow:visible}.fox-tail{transform-origin:77px 99px;animation:tail-wag 2.8s ease-in-out infinite}.fox-body{transform-origin:61px 114px;animation:fox-breathe 3.5s ease-in-out infinite}.fox-eyes{transform-box:fill-box;transform-origin:center;animation:fox-blink 5.3s infinite}.pet-friend{border:1px solid #d9b873;background:#fff6d6;color:#a47535;border-radius:50%;width:32px;height:32px;padding:0;font-size:19px;box-shadow:0 3px 0 #decaa3;position:absolute;left:68px;bottom:4px}.friend-happy .fox-body{animation:fox-cheer .65s ease-in-out 2}.friend-happy .fox-tail{animation:tail-wag .25s ease-in-out 6}.friend-happy .companion-avatar:after{content:'♥';position:absolute;top:-4px;left:60px;color:#d58a96;font-size:25px;animation:heart-rise 1.4s ease-out forwards}.portrait .fox-friend{width:100px;height:110px}.quest-friend{height:69px;display:flex;align-items:center;justify-content:center;margin:-6px auto 7px}.quest-friend .fox-friend{width:65px;height:70px}.creature{font-size:48px;display:inline-block;animation:creature-sway 4s ease-in-out infinite}.activity{position:relative;overflow:hidden;animation:scene-arrive .45s cubic-bezier(.2,.8,.3,1);border-top:4px solid var(--region-color,#acc9b1);background:radial-gradient(ellipse at 50% -100px,color-mix(in srgb,var(--region-color,#e4d490) 25%,transparent),transparent 53%),#fffdf6}.activity .scene{animation:scene-float 4s ease-in-out infinite;filter:drop-shadow(0 7px 5px #5977441a)}.steps i.on{background:linear-gradient(90deg,#80bd92,#d5da84);box-shadow:0 0 7px #7eb89140;animation:step-grow .55s ease-out}.answer{transition:transform .18s,background .25s,border-color .2s,box-shadow .2s;box-shadow:0 4px 0 #dbe2d3}.answer:not(:disabled):hover{transform:translateY(-3px);box-shadow:0 7px 0 #d1dfc7}.answer.good{animation:answer-celebrate .55s ease-out;background:linear-gradient(120deg,#d8f0cb,#f4f5c7);box-shadow:0 5px 0 #a4c793,0 0 28px #9cce7335}.answer.bad{animation:gentle-wiggle .35s ease-out}.answer:active{box-shadow:0 1px 0 #d1dfc7}.token{box-shadow:0 4px 0 #c6d4bc}.token:disabled{opacity:.25;transform:scale(.85);box-shadow:none}.sequence span{animation:tile-land .32s cubic-bezier(.2,1.4,.5,1);background:#eef1dc;border-radius:9px;padding:5px 9px}.memory-tile{transition:transform .2s,background .3s,box-shadow .2s;box-shadow:0 5px 0 #1b5046;background:linear-gradient(145deg,#438577,#21544c)}.memory-tile.open{animation:card-reveal .35s ease-out;box-shadow:0 5px 0 #d2bd86;background:#fff3d2}.memory-tile.matched{animation:match-pop .5s ease-out;box-shadow:0 2px 0 #bed1ad;background:#e0ecd7;opacity:.78}.note-key{position:relative}.note-key.lit{box-shadow:0 0 27px #ffe09a,inset 0 0 22px #fff8d7;filter:brightness(1.22)}.note-key.note-hit{animation:note-bounce .32s ease-out}.note-key.note-hit:after{content:'♪';position:absolute;top:-10px;left:40%;font-size:24px;animation:note-rise .6s ease-out forwards;pointer-events:none}.beat-cell{transition:background .12s,transform .12s,box-shadow .12s}.beat-cell.playing{transform:translateY(-3px);box-shadow:0 3px 0 #327461,0 0 10px #e9ce85}.beat-cell.on.playing{background:#ffe6a3}.road{background:linear-gradient(180deg,#e4ecc9,#bdd5a3);border:3px solid #eff4df}.road:after{content:'🌳     🌼     🌳     🌿';position:absolute;top:2px;left:5%;right:5%;font-size:25px;letter-spacing:16px;white-space:nowrap;opacity:.8;pointer-events:none}.road-path:before{content:'';position:absolute;left:0;right:0;top:50%;border-top:3px dashed #f7eac7}.moving-car{position:absolute;top:25px;font-size:32px;z-index:3;font-weight:400;transition:left .38s cubic-bezier(.25,.6,.3,1);filter:drop-shadow(0 5px 2px #163f4330)}.traffic-light.green{box-shadow:0 0 0 6px #57976d22,0 0 19px #7db98888}.lantern.on{animation:lantern-bloom .6s ease-out}.is-success .fox-body{animation:fox-cheer .6s ease-in-out 2}.is-success .creature{animation:fox-cheer .6s ease-in-out 2}.is-success{border-color:#a4c982;box-shadow:0 8px 40px #96b96622}.success-stars{color:#e6b646;font-size:38px;letter-spacing:9px;line-height:1;margin-top:22px;animation:reward-pop .6s cubic-bezier(.2,1.5,.5,1);text-shadow:0 3px 0 #dfbb6d30}.feedback .primary{animation:scene-arrive .4s ease-out}.try-again .quest-friend{animation:gentle-wiggle .4s ease-out}.celebration{position:relative;background:radial-gradient(ellipse at 50% 25%,#ffe8ad70,transparent 60%)}.celebration .trophy{filter:drop-shadow(0 8px 18px #edc77588);animation:reward-pop .65s ease-out,float 4s .65s ease-in-out infinite}.celebration .earned{animation:reward-pop .8s .15s both}.celebration h1{animation:scene-arrive .6s .1s both}.celebration .primary{box-shadow:0 4px 0 #d3a449,0 0 28px #f4ce7860}.collect-card:not(.locked) .object{animation:scene-float 4s ease-in-out infinite}.shelf span{display:inline-block;animation:tile-land .5s both}.shelf span:nth-child(2n){animation-delay:.15s}.joy-burst{position:fixed;width:0;height:0;z-index:150;pointer-events:none}.joy-burst i{position:absolute;left:-4px;top:-4px;width:7px;height:7px;border-radius:2px;background:var(--particle);color:var(--particle);font-style:normal;font-size:18px;line-height:7px;animation:joy-scatter .85s cubic-bezier(.15,.6,.3,1) forwards}.joy-burst i:nth-child(3n+1){background:none;width:auto;height:auto}.primary{transition:transform .15s,box-shadow .15s,background .2s}.primary:hover{transform:translateY(-2px);box-shadow:0 5px 0 #d3a449,0 5px 22px #f0c86b35}.primary:active{transform:translateY(3px)!important;box-shadow:0 0 0 #d3a449}.sound-toggle[aria-pressed=true]{background:#e8f0df;border-color:#cfdbbf}.motion-toggle[aria-pressed=true]{color:#ac822b}.nav button:hover{transform:translateY(-2px);background:#ecf0e2}.welcome .primary{animation:cta-welcome 4s ease-in-out infinite}.map-frame{animation:scene-arrive .55s ease-out}.quest-friend,.living-world,.joy-burst{user-select:none}.confetti{border-radius:2px;box-shadow:0 0 3px #fff6}
@keyframes cloud-sail{from{transform:translateX(-18%)}to{transform:translateX(45%)}}@keyframes water-sparkle{50%{transform:translate(8px,3px);opacity:.3}}@keyframes water-stream{to{background-position:0 54px}}@keyframes boat-bob{0%,100%{transform:translate(0,0) rotate(-4deg)}50%{transform:translate(12px,-5px) rotate(4deg)}}@keyframes bird-flight{to{transform:translate(90px,-14px)}}@keyframes wing-beat{to{scale:1 .45}}@keyframes butterfly-dance{0%,100%{transform:translate(0,0) rotate(-15deg)}40%{transform:translate(22px,-18px) rotate(15deg)}70%{transform:translate(4px,-28px) rotate(-8deg)}}@keyframes butterfly-wing{to{scale:.3 1}}@keyframes firefly-drift{0%,100%{transform:translate(0,0);opacity:.15}50%{transform:translate(var(--drift),-18px);opacity:.95}}@keyframes lighthouse-sweep{to{transform:rotate(-42deg);opacity:.25}}@keyframes pin-float{50%{transform:translateY(-4px)}}@keyframes shell-dance{50%{transform:translateY(-5px) rotate(12deg)}}@keyframes shell-ring{0%{transform:scale(.65);opacity:.7}90%,100%{transform:scale(1.4);opacity:0}}@keyframes restored-glow{50%{opacity:.5;scale:1.1}}@keyframes card-sheen{60%,100%{transform:translateX(30%)}}@keyframes light-breathe{50%{text-shadow:0 0 20px #ffd46b99;transform:scale(1.1)}}@keyframes tail-wag{50%{transform:rotate(-13deg)}}@keyframes fox-breathe{50%{transform:translateY(-2px) scale(1.025)}}@keyframes fox-blink{0%,43%,47%,100%{transform:scaleY(1)}45%{transform:scaleY(.12)}}@keyframes fox-cheer{0%,100%{transform:translateY(0) rotate(0)}40%{transform:translateY(-9px) rotate(-5deg)}70%{transform:translateY(-3px) rotate(5deg)}}@keyframes heart-rise{to{transform:translateY(-30px) scale(1.2);opacity:0}}@keyframes creature-sway{50%{transform:rotate(5deg) translateY(-3px)}}@keyframes scene-arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes scene-float{50%{transform:translateY(-5px) rotate(2deg)}}@keyframes step-grow{from{transform:scaleX(.3);transform-origin:left}}@keyframes answer-celebrate{40%{transform:scale(1.025)}}@keyframes gentle-wiggle{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}@keyframes tile-land{from{transform:translateY(-9px) scale(.7);opacity:0}}@keyframes card-reveal{from{transform:rotateY(65deg) scale(.9)}}@keyframes match-pop{40%{transform:scale(1.09) rotate(3deg)}}@keyframes note-bounce{40%{transform:translateY(6px) scale(.97)}}@keyframes note-rise{to{transform:translateY(-36px) rotate(15deg);opacity:0}}@keyframes lantern-bloom{40%{transform:scale(1.15)}}@keyframes reward-pop{from{transform:scale(.55) translateY(10px);opacity:0}to{transform:scale(1);opacity:1}}@keyframes joy-scatter{to{transform:translate(var(--x),var(--y)) rotate(var(--turn));opacity:0}}@keyframes welcome-breathe{to{transform:scale(1.035)}}@keyframes cta-welcome{50%{box-shadow:0 3px 0 #d3a449,0 0 30px #f7d28440}}
@media(max-width:480px){.tools{gap:4px}.tools>button{padding:7px;min-width:31px}.tools .lang button{padding:6px}.brand{font-size:16px}.brand small{font-size:7px;letter-spacing:1px}.companion{grid-template-columns:70px 1fr}.companion-avatar{min-height:75px;align-self:start}.companion-avatar .fox-friend{width:66px;height:72px}.pet-friend{left:45px;bottom:-2px;width:28px;height:28px;font-size:17px}.quest-friend{height:58px}.quest-friend .fox-friend{height:61px;width:58px}.activity .scene{font-size:40px;margin:10px auto}.activity h1{font-size:24px;margin-bottom:16px}.success-stars{font-size:30px}.seabird{scale:.7}.island-boat{scale:.7}.living-world .cloud{filter:blur(3px)}.joy-burst i{width:5px;height:5px}}@media(max-width:350px){.brand{font-size:14px}.tools>button{min-width:28px;padding:5px}.tools .lang button{font-size:11px;padding:5px}.topbar{gap:6px;padding-inline:10px}}
.calm-motion *,.calm-motion *:before,.calm-motion *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.calm-motion .living-world,.calm-motion .joy-burst{display:none}.calm-motion .map-pin.current .pin-icon{box-shadow:0 0 0 7px #f8ca6940}.calm-motion .note-key.lit{outline:3px solid #b28538}.calm-motion .friend-happy .companion-avatar:after{display:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.living-world,.joy-burst{display:none}.note-key.lit{outline:3px solid #b28538}.friend-happy .companion-avatar:after{display:none}}

/* Full-screen 3D world entrance. Accessible HTML controls sit above the canvas. */
body[data-scene="entry"]{background:#123d4d;overflow-x:hidden}body[data-scene="entry"] .topbar{position:absolute;inset:0 0 auto;z-index:20;background:linear-gradient(#1232417a,transparent);border:0;color:#fff5dd;padding:20px 4vw;min-height:84px}body[data-scene="entry"] .brand-mark{color:#ffe2a0;border-color:#ead49b66;background:#193b3b25}body[data-scene="entry"] .brand small{color:#d5ddd1}body[data-scene="entry"] .tools>button{color:#fff1d3;background:#123e4880;border-color:#dee9d03b;backdrop-filter:blur(8px)}body[data-scene="entry"] .tools .lang{background:#123e487d;border:1px solid #dee9d03b;backdrop-filter:blur(8px)}body[data-scene="entry"] .lang button{color:#e6f0dd}body[data-scene="entry"] .lang button.active{color:#214f4b;background:#fff3d6}.world-entry{height:100svh;min-height:620px;max-height:none;display:flex;align-items:center;padding:110px 6vw 65px;isolation:isolate;background:#163e4b;overflow:hidden}.world-entry:before{z-index:-1;background:linear-gradient(90deg,#10343bed,#123e4c4a),url('./island.webp') center/cover;animation:none;transition:opacity 1.2s}.world-entry.world-ready:before{opacity:0}.world-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:-1;touch-action:pan-y;opacity:0;transition:opacity 1.3s}.world-ready .world-canvas{opacity:1}.world-entry:after{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(90deg,#0a2a3bdb 0%,#0b32495c 34%,transparent 60%),linear-gradient(0deg,#163444c9,transparent 30%);transition:opacity 1.4s}.world-entry .welcome-copy{padding:0;max-width:440px;z-index:2;transition:opacity .7s,transform 1.2s;filter:drop-shadow(0 2px 18px #122e3120)}.world-entry .eyebrow{font-size:10px;letter-spacing:2.2px;color:#f7deb0;line-height:1.8;max-width:290px}.world-entry h1{font-size:clamp(56px,6.6vw,96px);line-height:1;letter-spacing:-3px;margin:22px 0 27px}.world-entry h1 em{font-size:.51em;line-height:1.4;color:#f9d79e;letter-spacing:-1px}.world-entry p{font-size:17px;line-height:1.75;max-width:335px;color:#e0eddf}.world-entry .primary{min-width:270px;padding:19px 25px;border-radius:15px;background:linear-gradient(135deg,#ffe2a0,#efc56e);box-shadow:0 4px 0 #ad8747,0 10px 45px #f7cc6430;font-size:16px;margin:28px 0 15px;color:#264839;animation:arrival-invite 4s ease-in-out infinite}.world-entry .primary:before{content:'✦';display:inline-block;margin-right:13px;font-size:18px}.world-entry .welcome-foot{font-size:11px!important;letter-spacing:.35px;color:#cfddce!important}.arrival-guide{position:absolute;right:7vw;bottom:5vh;z-index:2;display:flex;align-items:center;gap:15px;animation:scene-arrive 1s .8s both;pointer-events:none}.arrival-guide .fox-friend{width:95px;height:100px;filter:drop-shadow(0 6px 8px #103b4540)}.arrival-guide>span:last-child{font:500 18px 'Fraunces',serif;color:#fff3d4;background:#173e4999;border:1px solid #eee6c333;border-radius:18px 18px 18px 3px;padding:15px 20px;backdrop-filter:blur(8px)}.arrival-caption{position:absolute;bottom:12vh;left:50%;transform:translate(-50%,15px);z-index:5;text-align:center;opacity:0;pointer-events:none;transition:opacity .8s .2s,transform .8s .2s;min-width:250px}.arrival-caption p{font-family:'Fraunces',serif;font-size:23px;color:#fff6df;text-shadow:0 2px 20px #153e43;margin-top:15px}.arrival-orbit{display:inline-grid;place-items:center;width:58px;height:58px;border:1px solid #fce2a267;border-radius:50%;font-size:27px;color:#ffe5a6;box-shadow:0 0 35px #fff3ab26;animation:beacon 2s infinite}.arriving .welcome-copy{opacity:0;transform:translateY(25px);pointer-events:none}.arriving .arrival-guide{display:none}.arriving:after{opacity:.35}.arriving .arrival-caption{opacity:1;transform:translate(-50%,0)}.arriving-world .topbar .brand{opacity:.3;transition:opacity .5s}.arriving-world .lang{pointer-events:none;opacity:.4}.skip-arrival{position:absolute;bottom:25px;right:30px;z-index:10;color:#fff5df;border:1px solid #e3dec15c;background:#20464c9e;border-radius:99px;min-height:44px;padding:10px 20px;font-size:12px;backdrop-filter:blur(8px)}.skip-arrival[hidden]{display:none}.world-fallback .arrival-guide{right:8vw}.world-fallback:before{opacity:1}.world-fallback:after{opacity:.5}@keyframes arrival-invite{50%{box-shadow:0 4px 0 #ad8747,0 10px 55px #f7cc6460;transform:translateY(-2px)}}
@media(max-width:780px){body[data-scene="entry"] .topbar{padding:15px 18px;min-height:73px}.world-entry{min-height:650px;align-items:flex-end;padding:95px 7vw 45px}.world-entry:after{background:linear-gradient(0deg,#0c2e40f7 0%,#0f384aba 24%,#193e4733 49%,transparent 70%)}.world-entry .welcome-copy{max-width:430px}.world-entry .eyebrow{font-size:9px;max-width:none;letter-spacing:1.7px}.world-entry h1{font-size:clamp(51px,10vw,74px);margin:14px 0 17px;letter-spacing:-2px}.world-entry h1 em{font-size:.52em;line-height:1.35;margin-top:5px}.world-entry p{font-size:15px;line-height:1.6;max-width:320px}.world-entry .primary{margin:22px 0 12px;width:100%;min-width:0;padding:16px 20px}.world-entry .welcome-foot{font-size:10px!important}.arrival-guide{right:6vw;bottom:53%;gap:7px}.arrival-guide .fox-friend{width:55px;height:61px}.arrival-guide>span:last-child{font-size:13px;padding:10px 12px}.arrival-caption{bottom:21vh}.world-fallback .arrival-guide{bottom:55%}.world-entry.world-fallback:before{background:linear-gradient(0deg,#14384477,transparent),url('./island.webp') 52% center/cover}}@media(max-width:380px){body[data-scene="entry"] .topbar{padding:12px 10px}.world-entry{min-height:610px;padding:90px 22px 30px}.world-entry h1{font-size:49px}.world-entry p{font-size:14px}.world-entry .eyebrow{font-size:8px}.arrival-guide{bottom:57%}.world-entry .primary{font-size:14px}}@media(max-height:650px) and (min-width:781px){.world-entry{min-height:540px;padding-block:90px 30px}.world-entry h1{font-size:60px}.world-entry p{font-size:15px}.world-entry .primary{margin-top:18px}.arrival-guide{bottom:25px}}@media(prefers-reduced-motion:reduce){.world-canvas,.world-entry:before,.world-entry .welcome-copy,.arrival-caption{transition:none!important}}.calm-motion .world-canvas,.calm-motion .world-entry:before{transition:none!important}
/* The island is now the play surface, with a small HUD instead of a lesson dashboard. */
body[data-scene="explore"]{overflow:hidden;background:#96cbd2}body[data-scene="explore"] .topbar{position:absolute;inset:0 0 auto;z-index:15;background:linear-gradient(#143e4bbd,transparent);border:0;color:#fff8dd;padding:12px 24px;min-height:70px;pointer-events:none}body[data-scene="explore"] .topbar .tools{pointer-events:auto}body[data-scene="explore"] .brand small{color:#e0eee5}body[data-scene="explore"] .tools>button{background:#fff8e4e8}.explore-world{height:100svh;width:100%;position:relative;overflow:hidden;isolation:isolate;background:#9dc5cc}.explore-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;touch-action:none;outline:none}.explore-canvas:focus-visible{outline:3px solid #ffdb8c;outline-offset:-4px}.explore-hud{position:absolute;top:86px;left:24px;display:grid;gap:8px;pointer-events:none}.explore-location{font-size:17px;font-weight:800;color:#234b4d;background:#fff8e9ed;padding:11px 17px;border-radius:18px;box-shadow:0 4px 0 #37575520}.explore-bag{font-size:15px;font-weight:750;color:#264d48;background:#fff5d2ed;border-radius:99px;padding:10px 16px;justify-self:start;white-space:pre}.explore-hint{position:absolute;top:88px;right:24px;max-width:280px;padding:12px 16px;border-radius:16px;background:#194d55d9;color:#fff5d8;font-size:13px;line-height:1.5;pointer-events:none}.explore-menu{position:absolute;top:178px;left:24px;display:flex;gap:7px}.world-small{background:#fff9e9ed;color:#2e5350;border:1px solid #ffffff90;border-radius:14px;padding:11px 14px;min-height:44px;font-weight:700;box-shadow:0 3px 0 #385c5730}.explore-actions{position:absolute;right:24px;bottom:54px;display:flex;align-items:end;gap:12px}.world-action,.world-jump{border:2px solid #fff8d8;border-radius:22px;font-size:16px;font-weight:800;min-height:62px;box-shadow:0 5px 0 #705f4080;color:#244e49;background:#ffe3a0;padding:16px 20px;max-width:300px}.world-jump{background:#fff7e9;min-width:100px}.world-action[hidden]{display:none}.world-action:active,.world-jump:active{transform:translateY(3px);box-shadow:0 2px 0 #705f4080}.explore-stick{position:absolute;left:32px;bottom:65px;width:112px;height:112px;border:3px solid #fff8e8aa;border-radius:50%;background:#294c5240;touch-action:none;display:grid;place-items:center;box-shadow:inset 0 0 20px #214a5420}.stick-knob{width:53px;height:53px;border-radius:50%;background:#ffefd0e8;border:3px solid #fff8e9;box-shadow:0 5px 12px #123e4d30;pointer-events:none}.world-arrows{position:absolute;left:162px;bottom:85px;display:flex;gap:3px}.world-arrows button{padding:6px;min-width:32px;min-height:40px;background:#fff3d999;border:1px solid #fff7db80;border-radius:10px;color:#284b49}.explore-controls{position:absolute;bottom:14px;left:0;right:0;text-align:center;color:#244d52;font-size:12px;font-weight:700;pointer-events:none}.explore-message{position:absolute;top:36%;left:50%;transform:translate(-50%,-12px);max-width:min(90vw,430px);width:max-content;padding:15px 23px;border:2px solid #fff9df;background:#fff3d6f5;box-shadow:0 8px 30px #16475130;border-radius:22px;color:#254e4b;font-size:17px;font-weight:750;text-align:center;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.explore-message.show{opacity:1;transform:translate(-50%,0)}.explore-panel{position:absolute;z-index:25;inset:90px auto auto 50%;transform:translateX(-50%);width:min(560px,94vw);max-height:calc(100svh - 110px);overflow:auto;background:#fff6e4;border:3px solid #fffdf6;border-radius:25px;padding:25px;box-shadow:0 20px 70px #103b4966;color:#284e48}.explore-panel[hidden]{display:none}.explore-panel h2{font-family:'Fraunces',serif;font-size:30px;padding-right:35px;margin-top:0}.explore-panel p{font-size:14px;line-height:1.5}.panel-close{position:absolute;right:12px;top:12px;width:44px;height:44px;background:#e4e9d8;border:0;border-radius:50%;font-size:27px;color:#284e48}.discover-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.discover-place{background:#e5efda;border:1px solid #c9d9be;border-radius:15px;padding:16px 10px;min-height:65px;font-size:14px;text-align:left;color:#284e48;font-weight:700}.explore-fallback{background:linear-gradient(#173e4940,#173e49a0),url('./island.webp') center/cover}.explore-fallback .explore-hint{top:260px;right:50%;transform:translateX(50%);max-width:400px;width:85%}.explore-fallback .explore-controls{display:none}@media(max-width:780px){body[data-scene="explore"] .topbar{padding:12px;min-height:64px}body[data-scene="explore"] .brand{font-size:15px}body[data-scene="explore"] .brand-mark{display:none}.explore-hud{top:76px;left:12px;gap:5px}.explore-location{font-size:13px;padding:9px 12px}.explore-bag{font-size:12px;padding:8px 12px}.explore-menu{top:157px;left:12px;gap:5px}.world-small{padding:9px 11px;font-size:12px}.explore-hint{top:auto;bottom:192px;left:12px;right:auto;max-width:220px;font-size:11px;padding:9px 12px}.explore-stick{left:20px;bottom:64px;width:96px;height:96px}.stick-knob{width:47px;height:47px}.world-arrows{display:none}.explore-actions{right:14px;bottom:65px;flex-direction:column;gap:10px;align-items:flex-end}.world-action,.world-jump{font-size:13px;padding:12px 14px;min-height:52px;max-width:230px;border-radius:18px}.world-jump{min-width:82px}.explore-controls{font-size:10px;padding:0 20px;bottom:23px}.explore-message{top:34%;font-size:14px;padding:12px 17px}.explore-panel{padding:22px 16px}.discover-place{font-size:12px;padding:12px 9px}.explore-panel h2{font-size:26px}}@media(max-height:550px){.explore-hud{top:68px}.explore-menu{top:146px}.explore-hint{display:none}.explore-stick{bottom:35px;width:85px;height:85px}.explore-actions{bottom:35px}.explore-controls{bottom:8px}.explore-panel{top:65px;max-height:calc(100svh - 75px)}}

body[data-scene="explore"] .tools button{color:#264e49}body[data-scene="explore"] .tools .lang{background:#fff5d8}body[data-scene="explore"] .lang button.active{background:#e0bb70;color:#244a45}
/* Natural island palette: quiet surfaces leave the wildlife and landscape in focus. */
body[data-scene="explore"] .explore-location,body[data-scene="explore"] .world-small{background:#f4f0e5e8;border-radius:10px;box-shadow:0 2px 8px #173d4020}.explore-bag{background:#f4f0e5e8}.explore-hint{background:#193c38d9}.world-action{background:#e8d4a6;border-radius:14px}.world-jump{border-radius:14px}.arrival-turtle{width:95px;height:95px;background-image:url('./tropical-atlas.png');background-size:400% 400%;background-position:0 66.6667%;filter:drop-shadow(0 4px 5px #173d4055)}@media(max-width:780px){.arrival-turtle{width:65px;height:65px}}

.explore-menu{flex-wrap:wrap;max-width:calc(100% - 24px)}

/* Island activities stay over the world, with a single way back to Angelique. */
body[data-scene="islandQuest"]{overflow:hidden;background:#214b48}
body[data-scene="islandQuest"] .topbar{position:absolute;inset:0 0 auto;z-index:30;background:#173d43;color:#fff8e5}
body[data-scene="islandQuest"] .explore-world{position:fixed;inset:0}
body[data-scene="islandQuest"] .explore-world>:not(canvas){display:none!important}
.island-lesson{position:fixed;z-index:20;top:90px;bottom:12px;left:50%;transform:translateX(-50%);width:min(720px,96vw);overflow:auto;margin:0;padding:15px;background:#fff7e9f5;border-radius:24px;box-shadow:0 15px 70px #123a4d70}
.island-lesson .activity{margin-bottom:0}.world-lesson{background:#d8ebcc}.explore-actions{flex-wrap:wrap;max-width:650px;justify-content:flex-end}
@media(max-width:780px){.island-lesson{top:76px;padding:10px}.explore-actions{max-width:230px}.world-lesson{font-size:12px;min-height:44px;padding:10px}.explore-hint{bottom:260px}}
body[data-scene="islandQuest"] .tools button{color:#284e48}

.island-goal{position:absolute;right:24px;top:88px;width:270px;padding:16px;border:2px solid #ffdf8a;border-radius:18px;background:#fff8e9f5;box-shadow:0 6px 24px #153d4540;color:#234b47}.island-goal strong{font-size:12px;letter-spacing:.06em}.island-goal p{font-size:17px;line-height:1.35;margin:10px 0}.goal-next{width:100%;border:0;border-radius:12px;padding:14px;background:#f4c862;color:#203e37;font-weight:800;font-size:16px;min-height:48px}.goal-next:focus-visible{outline:3px solid #244e49;outline-offset:3px}
@media(max-width:780px){.island-goal{top:auto;bottom:250px;left:12px;right:auto;width:min(260px,calc(100vw - 24px));padding:10px}.island-goal p{font-size:14px;margin:6px 0}.goal-next{min-height:44px;padding:10px;font-size:14px}.explore-message{top:29%}}
@media(max-height:550px){.island-goal{top:76px;bottom:auto;left:auto;right:12px;width:230px}.island-goal p{font-size:13px}}

/* Context replaces the existing goal card instead of adding another HUD panel. */
.shark-nearby .island-goal{border:3px solid #e87d44;background:#fff2d9}.shark-nearby .goal-next{background:#ffd262}.inside-lighthouse .explore-hud .explore-bag{display:none}.inside-lighthouse .explore-menu{opacity:.92}

.world-jump[hidden]{display:none}

.stick-knob{display:grid;place-items:center;font-size:25px}.stick-compass{position:absolute;inset:5px;text-align:center;word-spacing:1px;font-size:11px;opacity:.65;pointer-events:none}.stick-readout{position:absolute;top:100%;left:0;right:0;text-align:center;padding-top:5px;font-weight:800;font-size:12px;color:#174851;pointer-events:none}.flight-stick{border-color:#ffe3a1;background:#ffffff38;box-shadow:0 0 0 5px #ffdf8a25}.flight-stick.steering:after{content:'▲';position:absolute;inset:-12px;text-align:center;color:#fff1a5;transform:rotate(var(--heading));pointer-events:none}.catch-action[hidden]{display:none}

.world-catch{border:1px solid #fff1c7;border-radius:18px;padding:12px 16px;background:#ffe8a8;color:#234b47;font-weight:800;min-height:48px;cursor:pointer}

.stick-compass span{position:absolute}.stick-compass .north{top:0;left:45%}.stick-compass .south{bottom:0;left:45%}.stick-compass .west{left:0;top:40%}.stick-compass .east{right:0;top:40%}

/* Mobile helpers are opt-in so the world and movement controls remain visible. */
.helper-toggle{display:none}
@media(max-width:780px){
 .helper-toggle{display:block;position:absolute;right:12px;top:76px;z-index:24;width:44px;height:44px;padding:0;font-size:24px}
 .explore-world:not(.helpers-open):not(.explore-fallback) .explore-menu,
 .explore-world:not(.helpers-open) .explore-bag,
 .explore-world:not(.helpers-open):not(.shark-nearby) .island-goal{display:none}
 .helpers-open .explore-menu{max-width:calc(100% - 24px)}
 .explore-location{max-width:calc(100vw - 84px)}
}

/* Picture-first controls: the full action name remains available to assistive technology. */
.picture-button{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:76px;min-height:76px;padding:9px 12px;text-align:center;line-height:1.15;touch-action:manipulation}
.button-picture{font-family:"Apple Color Emoji","Segoe UI Emoji",sans-serif;font-size:34px;line-height:1.1;white-space:nowrap;pointer-events:none}
.button-caption{font-size:12px;font-weight:800;line-height:1.2;pointer-events:none}
.button-original{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.picture-button[hidden]{display:none!important}.picture-button:focus-visible{outline:4px solid #286fbc;outline-offset:3px}
.explore-actions .picture-button{width:92px;max-width:92px;min-height:82px;border-radius:22px;padding:9px 6px}
.world-jump.picture-button{background:#d9edff;border-color:#ffffff}.world-catch.picture-button{background:#e8e1ff;color:#30444c}
.helper-toggle.picture-button{display:flex;position:absolute;right:14px;top:76px;z-index:24;width:72px;min-width:72px;min-height:72px;padding:7px;border-radius:21px;background:#fff5d8}
.helper-toggle .button-picture{font-size:30px}.helper-toggle .button-caption{font-size:10px}
.explore-world:not(.helpers-open):not(.explore-fallback) .explore-menu{display:none}
.explore-world.helpers-open .island-goal{display:none}
.explore-menu{position:absolute;left:auto;right:14px;top:157px;z-index:23;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:min(294px,calc(100% - 28px));gap:8px;padding:10px;background:#fff4ddeb;border:2px solid #fffbed;border-radius:24px;box-shadow:0 10px 30px #123b4933}
.explore-menu .picture-button{min-width:0;width:100%;min-height:80px;padding:8px 4px;border-radius:16px;background:#fffaf0}
.explore-menu .food-button{background:#ffead2}.explore-menu .wallet-button{background:#fff1a8}
.explore-panel .discover-place.picture-button{min-height:108px;width:100%;margin-bottom:8px;background:#e5f0da}
.explore-panel .discover-grid .discover-place{margin-bottom:0}.discover-place .button-picture{font-size:42px}.discover-place .button-caption{font-size:13px}
.explore-panel>.discover-place{width:calc(50% - 8px)!important;margin-right:8px;vertical-align:top}
@media(max-width:780px){.explore-actions{right:12px;bottom:48px;gap:9px}.explore-actions .picture-button{width:80px;max-width:80px;min-width:80px;min-height:76px}.explore-actions .button-picture{font-size:32px}.explore-actions .button-caption{font-size:11px}.explore-controls{display:none}.explore-stick{bottom:48px}.explore-panel{top:76px;max-height:calc(100svh - 88px)}.explore-panel h2{font-size:23px}.explore-panel>p{display:none}.explore-hud{max-width:calc(100% - 110px)}.explore-location{max-width:100%;white-space:normal}}
@media(max-height:550px){.explore-menu{top:76px;right:96px;width:280px}.explore-actions{flex-direction:row;bottom:18px}.explore-actions .picture-button{min-height:64px}.explore-stick{bottom:18px}.explore-actions .button-picture{font-size:27px}}
@media(min-width:781px){.island-goal{right:104px}}
@media(max-height:550px) and (max-width:599px){.explore-actions{display:grid;grid-template-columns:repeat(2,72px);right:10px;bottom:24px;gap:8px}.explore-actions .picture-button{width:72px;min-width:72px;max-width:72px;min-height:68px}.explore-menu{right:12px;top:156px;width:calc(100% - 24px);max-height:calc(100svh - 176px);overflow-y:auto}.explore-stick{bottom:24px}}

/* Keep the character visible; large choices belong inside the opened menu. */
.explore-actions{display:flex;flex-direction:row;flex-wrap:wrap;max-width:250px;right:12px;bottom:18px;gap:7px;align-items:flex-end}
.explore-actions .picture-button{width:56px;min-width:56px;max-width:56px;min-height:58px;padding:5px 3px;gap:3px;border-radius:17px;background-color:#fff5dcdb}
.explore-actions .button-picture{font-size:25px}.explore-actions .button-caption{font-size:10px}
.helper-toggle.picture-button{width:48px;min-width:48px;min-height:48px;padding:5px;right:12px;border-radius:15px}
.helper-toggle .button-picture{font-size:27px}.helper-toggle .button-caption{display:none}
.explore-message,.explore-message.show{top:132px;max-width:calc(100% - 28px);padding:7px 12px;font-size:13px;transform:translateX(-50%)}
.explore-world.snack-moment .explore-actions,.explore-world.snack-moment .helper-toggle,.explore-world.snack-moment .island-goal,.explore-world.snack-moment .explore-hud{visibility:hidden;pointer-events:none}
@media(max-width:780px){.explore-actions{max-width:182px;bottom:18px}.explore-stick{bottom:18px}.explore-menu{top:132px}.explore-hud{max-width:calc(100% - 80px)}}
@media(max-height:550px){.explore-actions{max-width:250px;bottom:12px}.explore-message,.explore-message.show{top:76px;max-width:55%;font-size:12px}.explore-stick{bottom:12px}}

/* Story cues appear only near a playable world task, never as a blocking modal. */
.world-story{position:absolute;top:76px;left:12px;max-width:calc(100% - 84px);padding:8px 11px;background:#fff8e8ed;border-radius:16px;color:#284c43;pointer-events:none;z-index:12;box-shadow:0 3px 10px #183d3820}
.world-story[hidden]{display:none}.world-story strong{display:block;font-size:12px}.world-story small{display:block;font-size:11px;margin-top:3px}.story-sequence{display:flex;gap:7px;margin-top:4px;align-items:center}.story-sequence span{font-size:19px;opacity:.4;padding:2px;border-bottom:3px solid transparent}.story-sequence .story-done{opacity:.65;border-color:#6cac72}.story-sequence .story-next{opacity:1;border-color:#d18d29;background:#ffe7ad;border-radius:5px}
.story-more{pointer-events:auto;border:0;background:#e1edcf;color:#244b3e;border-radius:10px;min-height:44px;padding:7px 12px;font-size:12px;font-weight:800;margin-top:5px}.story-more[hidden]{display:none}.story-nearby .explore-hud{visibility:hidden}.story-nearby .explore-message{top:210px}.snack-moment .world-story{display:none}
@media(max-height:550px){.world-story{top:65px;padding:6px 10px}.world-story small{display:none}.story-sequence span{font-size:16px}}

/* A single small adventure cue; the full passport is tucked away until tapped. */
.journey-peek{position:absolute;top:max(12px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:8;border:1px solid #fff9;border-radius:24px;padding:9px 13px;background:#fff5d9ed;color:#284a48;font-size:15px;font-weight:700;box-shadow:0 3px 15px #153d4322;min-height:42px;white-space:nowrap}.journey-panel{position:absolute;z-index:24;top:14%;left:50%;transform:translateX(-50%);width:min(350px,88%);max-height:70%;overflow:auto;padding:22px 16px;background:#fff8e8;border-radius:22px;color:#24453c;box-shadow:0 15px 60px #072d4566}.journey-panel h2{font-size:20px;margin:12px 25px 18px 0}.journey-choice{display:block;width:100%;margin:8px 0;padding:14px 10px;border:1px solid #dfddc3;border-radius:14px;background:#f1efd7;color:#25483e;text-align:left;font-size:16px;min-height:52px}.journey-panel[hidden],.journey-peek[hidden]{display:none}.helpers-open .journey-peek{display:none}@media(max-width:600px){.journey-peek{font-size:13px;padding:8px 10px;top:max(10px,env(safe-area-inset-top))}}

.explore-world:not(.helpers-open) .island-goal{display:none}.explore-world.helpers-open .island-goal{display:block}

.realm-panel{position:absolute;z-index:30;top:12%;left:50%;transform:translateX(-50%);width:min(390px,90%);max-height:76%;overflow:auto;padding:20px 16px;background:#fff8e8;color:#25483e;border-radius:24px;box-shadow:0 12px 60px #173b5266}.realm-panel[hidden]{display:none}.realm-tabs{display:flex;gap:6px;margin:30px 0 12px}.realm-tabs button{flex:1;padding:13px 5px;border:1px solid #d6ded0;border-radius:14px;background:#edf1df;font-size:16px;color:inherit;min-height:52px}.realm-tabs button[aria-pressed=true]{background:#c3e6df;border:2px solid #438e89}.realm-panel h2{font-size:19px;margin:12px 0}.realm-task{display:flex;align-items:center;gap:12px;width:100%;min-height:66px;padding:10px;border:1px solid #dce1cf;border-radius:15px;background:#fffdf4;color:inherit;text-align:left;margin:8px 0;font-size:15px}.realm-task>span:first-child{font-size:32px;width:40px;text-align:center}.realm-task>span:nth-child(2){flex:1}.realm-task strong{font-size:14px}.realm-panel small{display:block;font-size:12px;margin-top:14px;line-height:1.4}@media(max-height:550px){.realm-panel{top:5%;max-height:90%}.realm-task{min-height:48px;margin:5px 0;padding:5px 10px}.realm-tabs{margin-top:20px}}


/* Coordinate-accurate archipelago map: always available while exploring. */
.island-map-mini{
 position:absolute;top:132px;right:12px;z-index:20;
 width:118px;min-height:113px;padding:6px;display:grid;gap:3px;
 background:#fff8e6;border:2px solid #fffdf1;border-radius:19px;
 box-shadow:0 6px 18px #123e5160;color:#245251;text-align:center;
 cursor:pointer;touch-action:manipulation;
}
.island-map-mini .island-map-art{
 display:block;width:100%;height:78px;border-radius:12px;
 overflow:hidden;pointer-events:none;background:#6ac0cb;
}
.island-map-mini-label{font-size:12px;font-weight:900;line-height:1.2;letter-spacing:.045em}
.island-map-mini:focus-visible,.island-map-control:focus-visible,.island-map-destination:focus-visible{
 outline:4px solid #fbb742;outline-offset:3px;
}
.helpers-open .island-map-mini,.snack-moment .island-map-mini{visibility:hidden;pointer-events:none}
.explore-panel.island-map-open{width:min(650px,94vw);padding:17px 18px 21px}
.island-map-heading{font-size:26px!important;margin:0 42px 5px 0!important;line-height:1.17}
.explore-panel .island-map-you-are{font-size:16px;font-weight:850;color:#215853;margin:8px 0 12px}
.island-map-frame{
 border:3px solid #fffdf5;border-radius:19px;background:#5baec8;
 overflow:hidden;box-shadow:inset 0 2px 10px #17465425;
}
.island-map-frame .island-map-art{
 width:100%;max-height:40svh;min-height:195px;display:block;
 aspect-ratio:350/310;touch-action:manipulation;
}
.island-map-target{cursor:pointer}
.island-map-target:focus{outline:none;filter:brightness(1.18)}
.island-map-target:focus-visible ellipse:first-child{stroke:#fff;stroke-width:4}
.island-map-controls{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;margin-top:10px}
.island-map-control{
 display:grid;place-items:center;min-width:53px;min-height:47px;border:1px solid #c7d6c8;
 border-radius:13px;background:#e4f0df;color:#23534b;font-size:23px;font-weight:900;
 cursor:pointer;
}
.island-map-guide{font-size:15px!important;color:#294d48;line-height:1.4!important;margin:13px 0 7px}
.island-map-destinations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.island-map-destination{
 padding:12px 9px;border:1px solid #d2dcbe;border-radius:13px;background:#edf2df;
 color:#2a524b;font-size:15px;font-weight:800;min-height:51px;text-align:left;cursor:pointer;
}
@media(max-width:780px){
 .island-map-mini{top:132px;right:12px;width:103px;min-height:100px;padding:5px;border-radius:16px}
 .island-map-mini .island-map-art{height:69px}
 .explore-panel.island-map-open{padding:13px 12px 18px}
 .island-map-heading{font-size:22px!important}
 .explore-panel .island-map-you-are{font-size:14px;margin:6px 0 10px}
 .island-map-frame .island-map-art{min-height:170px;max-height:38svh}
 .island-map-destination{font-size:13px;padding:9px 7px;min-height:49px}
 .island-map-guide{font-size:13px!important}
}
@media(max-height:550px){.island-map-mini{top:78px;right:12px;width:95px;min-height:92px}.island-map-mini .island-map-art{height:62px}.island-map-frame .island-map-art{max-height:44svh;min-height:140px}}


/* Island friends and repeatable play activities: big taps, picture-first mobile UI. */
.friend-peek{
 position:absolute;top:250px;right:12px;z-index:21;min-width:105px;min-height:49px;
 border:2px solid #fff9df;border-radius:16px;padding:8px 12px;background:#ffebbc;
 color:#264f49;font-size:13px;font-weight:900;letter-spacing:.03em;
 box-shadow:0 4px 13px #103d4a50;cursor:pointer;touch-action:manipulation;
}
.friend-world-label{
 position:absolute;z-index:11;transform:translate(-50%,-50%);
 background:#fff8e5ee;color:#264a47;border:2px solid #ffdf9c;
 border-radius:50px;padding:9px 13px;min-width:88px;min-height:41px;max-width:140px;
 box-shadow:0 4px 18px #163f4b45;font-size:13px;font-weight:900;
 text-align:center;white-space:nowrap;cursor:pointer;touch-action:manipulation;
}
.friend-peek:focus-visible,.friend-world-label:focus-visible,
.friend-panel button:focus-visible,.friend-hello:focus-visible{
 outline:4px solid #2d86bd;outline-offset:3px;
}
.friend-world-label[hidden],.friend-hello[hidden]{display:none!important}
.friend-panel{width:min(590px,94vw);padding:22px 20px;max-height:calc(100svh - 100px)}
.friend-panel .friend-title{font-size:28px;margin:0 45px 6px 0;line-height:1.2}
.friend-panel .friend-intro{font-size:16px;margin:5px 0 10px;line-height:1.4}
.friend-panel .friend-greeting{font-size:19px;line-height:1.45;font-weight:750;text-align:center;color:#32524b;margin:8px 0 16px}
.friend-hero-face{font-size:75px;line-height:1.2;text-align:center;padding:10px 0;animation:friend-hello-float 2.1s ease-in-out infinite}
.friend-directory{display:grid;grid-template-columns:1fr;gap:10px}
.friend-directory-card{display:grid;grid-template-columns:68px minmax(0,1fr);gap:10px;align-items:center;border:1px solid #dce5cc;border-radius:17px;padding:12px;background:#fffdf0}
.friend-avatar{font-size:46px;line-height:1.2;text-align:center}
.friend-directory-copy{display:grid;gap:3px;min-width:0}
.friend-directory-copy strong{font-size:19px;color:#214940}
.friend-directory-copy small{font-size:14px;color:#4c6965}
.friend-game-label{font-size:14px;font-weight:750;color:#5b7553}
.friend-directory-actions{display:flex;grid-column:1/-1;gap:8px;flex-wrap:wrap}
.friend-primary,.friend-secondary{border:0;border-radius:14px;min-height:49px;min-width:110px;font-size:16px;font-weight:850;padding:12px 16px;touch-action:manipulation;cursor:pointer}
.friend-primary{background:#f3c965;color:#283f3b;box-shadow:0 3px 0 #ab8c45}
.friend-secondary{background:#d9e8df;color:#23534b;border:1px solid #c7d8c9}
.friend-choices{display:grid;grid-template-columns:1fr;gap:11px;margin:12px 0 3px}
.friend-choices .friend-primary,.friend-choices .friend-secondary{width:100%}
.friend-success-note{color:#315d46;font-size:15px!important;font-weight:800;margin:12px 0 0}
.friend-game-goal{font-size:18px!important;font-weight:750;text-align:center;line-height:1.42!important;margin:12px 0}
.friend-progress{font-size:18px!important;font-weight:900;letter-spacing:.03em;text-align:center;color:#386a4e;margin:8px 0}
.friend-play-stage{display:grid;justify-items:center;gap:12px;margin:12px 0 18px}
.friend-tap-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;width:100%}
.friend-tap{background:#d9f0ec;border:2px solid #f8fcf3;border-radius:20px;min-height:78px;font-size:39px;cursor:pointer;touch-action:manipulation;box-shadow:0 4px 0 #88b2a9}
.friend-popped{opacity:.3;transform:scale(.75);box-shadow:none;pointer-events:none;transition:transform .15s,opacity .15s}
.friend-melody{letter-spacing:.15em;text-align:center;font-size:35px;padding:13px 4px}
.friend-music-keys,.friend-dance-keys{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;width:100%}
.friend-music-key,.friend-dance-key{background:#fcf3d7;border:2px solid #fff;border-radius:20px;font-size:38px;min-width:76px;min-height:82px;cursor:pointer;touch-action:manipulation}
.friend-dance{font-size:57px;min-height:80px;animation:friend-hello-float 1.5s ease-in-out infinite}
.friend-beach-ball{font-size:100px;border:0;background:transparent;min-height:160px;min-width:140px;cursor:pointer;touch-action:manipulation;transition:transform .18s ease}
.friend-mini-tip{font-size:14px!important;text-align:center}
.friend-stop{display:block;margin:15px auto 0;width:100%}
.explore-actions .friend-hello.picture-button{background:#f7e4a8;color:#254d43;border-color:#fff5c5;box-shadow:0 5px 0 #8f803a70}
.friend-wiggle{animation:friend-wiggle .32s ease-in-out}
.friend-bounce{animation:friend-bounce .38s ease}
@keyframes friend-wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-7deg)}75%{transform:rotate(7deg)}}
@keyframes friend-bounce{0%,100%{transform:scale(1)}50%{transform:scale(1.22)}}
@keyframes friend-hello-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
body[data-scene="islandQuest"] .friend-peek,body[data-scene="islandQuest"] .friend-world-label{display:none!important}
.helpers-open .friend-peek,.snack-moment .friend-peek{visibility:hidden;pointer-events:none}
@media(max-width:780px){
 .friend-peek{top:239px;right:12px;min-width:98px;min-height:48px;padding:7px 9px;font-size:12px}
 .friend-world-label{font-size:12px;padding:7px 10px;min-height:42px}
 .friend-panel{top:76px;max-height:calc(100svh - 84px);width:min(550px,96vw);padding:18px 14px}
 .friend-panel .friend-title{font-size:24px}
 .friend-panel .friend-intro{font-size:15px}
 .friend-panel .friend-greeting{font-size:18px}
 .friend-directory-card{padding:11px}
 .friend-primary,.friend-secondary{font-size:16px;min-height:50px}
 .friend-tap{font-size:32px;min-height:70px}
 .friend-music-key,.friend-dance-key{font-size:34px;min-width:65px;min-height:70px}
 .explore-actions .friend-hello.picture-button{min-width:61px;width:61px;max-width:61px;min-height:67px}
}
@media(max-height:550px){.friend-peek{top:175px;right:12px}.friend-panel{top:66px;max-height:calc(100svh - 72px)}}
@media(prefers-reduced-motion:reduce){.friend-hero-face,.friend-dance,.friend-wiggle,.friend-bounce{animation:none}.friend-beach-ball{transition:none}}


/* House visit mode: visible entrance outside, uncluttered controls inside. */
.house-door-action{
 position:absolute;top:310px;right:12px;z-index:24;
 border:2px solid #fff2ba;border-radius:17px;background:#ffe7a3;color:#315041;
 padding:11px 14px;min-height:49px;max-width:170px;
 box-shadow:0 5px 14px #0e4f4b60;font-size:15px;font-weight:900;line-height:1.2;
 cursor:pointer;touch-action:manipulation;
}
.house-door-action[hidden]{display:none!important}
.house-door-action:focus-visible{outline:4px solid #347eb2;outline-offset:3px}
.inside-cottage .house-door-action,
.inside-cottage .island-map-mini,
.inside-cottage .friend-peek,
.inside-cottage .friend-world-label,
.inside-cottage .island-goal,
.inside-cottage .explore-hint{
 display:none!important
}
.inside-cottage .explore-location{
 background:#fff1d2;color:#365344;border:2px solid #eecb8d;
}
@media(max-width:780px){
 .house-door-action{top:294px;right:10px;font-size:13px;min-height:47px;max-width:152px;padding:9px}
 .inside-cottage .explore-controls{max-width:65vw}
}
@media(max-height:550px){.house-door-action{top:218px;right:10px}}

/* Biggest island: Pizza City HUD and floating money bag counter. */
.pizza-city-status{
 position:absolute;top:193px;left:12px;z-index:18;
 display:block;width:max-content;max-width:calc(100% - 155px);
 padding:9px 13px;border-radius:16px;border:2px solid #fff0bb;
 background:#ffedbded;color:#385242;font-size:16px;font-weight:900;
 box-shadow:0 4px 13px #21483b43;pointer-events:none;
}
.pizza-city-prompt{
 position:absolute;top:257px;left:12px;z-index:17;max-width:245px;
 border-radius:15px;padding:9px 12px;background:#fbebe0ee;
 color:#874e3c;font-size:17px;font-weight:900;
 border:2px solid #fff8d1;pointer-events:none;
}
.pizza-city-status[hidden],.pizza-city-prompt[hidden]{display:none!important}
.inside-cottage .pizza-city-status,.inside-cottage .pizza-city-prompt{display:none!important}
@media(max-width:780px){
 .pizza-city-status{top:185px;left:10px;max-width:calc(100% - 130px);font-size:13px;padding:8px 10px}
 .pizza-city-prompt{top:237px;left:10px;font-size:14px;max-width:145px}
}
@media(max-height:550px){
 .pizza-city-status{top:130px;left:10px}
 .pizza-city-prompt{top:173px;left:10px}
}

/* Volcán Barú: readable hiking directions without hiding the world. */
.volcano-hike-status{
 position:absolute;top:193px;left:12px;z-index:19;
 display:block;max-width:calc(100% - 150px);
 border:2px solid #f3e0aa;border-radius:14px;
 padding:9px 13px;background:#f2e3c8ed;
 color:#544637;font-size:15px;line-height:1.25;font-weight:900;
 box-shadow:0 4px 13px #26302546;pointer-events:none;
}
.volcano-hike-status[hidden],.inside-cottage .volcano-hike-status{display:none!important}
@media(max-width:780px){
 .volcano-hike-status{top:183px;left:10px;font-size:13px;
  max-width:calc(100% - 130px);padding:8px 10px}
}
@media(max-height:550px){.volcano-hike-status{top:132px;left:10px}}

/* Island workshops: collectible bag, build plans and mobile-first controls. */
.craft-bag-button{font-weight:900;white-space:nowrap}
.craft-resource-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:14px auto 24px;max-width:560px}
.craft-resource{display:flex;align-items:center;gap:7px;justify-content:center;min-height:45px;padding:9px;
 border:1px solid #f0dcb3;border-radius:13px;background:#fff6dd;color:#3b5145;
 font-size:16px;font-weight:800;text-align:center;line-height:1.35}
.craft-recipe-grid{display:grid;grid-template-columns:1fr;gap:15px;max-width:650px;margin:12px auto 25px}
.craft-recipe{padding:18px 15px 19px;border:2px solid #dfd3b3;border-radius:18px;
 background:#fffaf0;color:#354c46;text-align:center}
.craft-recipe.is-built{border-color:#99bfa0;background:#f4ffeb}
.craft-recipe.is-highlighted{outline:3px solid #d8b578;outline-offset:3px}
.craft-recipe h4{margin:0 auto 6px;font-size:clamp(20px,3vw,25px);line-height:1.24}
.craft-recipe p{margin:7px auto 12px;line-height:1.4;font-size:16px}
.craft-recipe .craft-location{color:#64746c;font-weight:800}
.craft-recipe .craft-ingredients{font-size:17px;font-weight:800}
.craft-recipe-action{display:flex;justify-content:center;align-items:center;width:100%;
 min-height:48px;max-width:420px;margin:12px auto 0;font-weight:900}
@media(max-width:640px){
 .craft-resource-list{grid-template-columns:1fr 1fr;gap:8px}
 .craft-resource{font-size:13px;min-height:48px;padding:8px 4px}
 .craft-recipe{padding:17px 11px}
 .craft-recipe p{font-size:16px}
 .craft-recipe .craft-ingredients{font-size:16px}
 .craft-bag-button{font-size:14px}
}

/* Casco Viejo destination and achievement guide; compact on phones. */
.city-guide-list{display:grid;grid-template-columns:1fr;gap:12px;margin:14px auto 22px;max-width:600px}
.city-guide-card{display:flex;align-items:center;justify-content:space-between;gap:9px;
 flex-wrap:wrap;padding:13px 14px;border:1px solid #e0d7c5;border-radius:15px;
 background:#fff9ed;color:#344d48;text-align:left}
.city-guide-card strong{font-size:18px;line-height:1.35;flex:1 1 160px;min-width:0}
.city-guide-progress{display:inline-flex;align-items:center;font-size:14px;font-weight:800;
 background:#e7f2e6;border-radius:12px;padding:7px 10px}
.city-guide-card .discover-place{width:100%;margin:4px auto 0;min-height:48px;
 font-size:16px;font-weight:900;display:flex;align-items:center;justify-content:center}
.city-guide-button{font-weight:900}
@media(max-width:640px){
 .city-guide-card{padding:13px 11px;gap:7px}
 .city-guide-card strong{font-size:18px}
 .city-guide-card .discover-place{font-size:16px}
 .city-guide-button{font-size:14px}
}


/* VISUAL CONTROLS V2 — October 2026
   Child-friendly touch targets and typography. Overrides the older
   56px icon buttons / 10px labels without covering Angelique. */
body[data-scene="explore"] .explore-actions{
 z-index:22;display:flex;flex-flow:row wrap;justify-content:flex-end;
 align-items:flex-end;gap:10px;bottom:max(25px,env(safe-area-inset-bottom));
 right:16px;max-width:380px;
}
body[data-scene="explore"] .explore-actions .picture-button,
body[data-scene="explore"] .explore-actions .friend-hello.picture-button{
 width:112px;min-width:112px;max-width:112px;min-height:108px;
 padding:10px 7px;gap:7px;border-radius:24px;
 border:3px solid #fff8e9;box-shadow:0 6px 0 #46665b88,0 9px 20px #184b4755;
 color:#244b43;background:#ffe4a3;font-weight:900;cursor:pointer;
 touch-action:manipulation;position:relative;
}
body[data-scene="explore"] .explore-actions .world-jump.picture-button{
 background:#dceeff;border-color:#fff;
}
body[data-scene="explore"] .explore-actions .friend-hello.picture-button{
 background:#f9e4a8;
}
body[data-scene="explore"] .explore-actions .world-catch.picture-button{
 background:#f0e2ff;
}
body[data-scene="explore"] .explore-actions .button-picture{
 font-size:47px;line-height:1;filter:drop-shadow(0 2px 1px #ffffff88);
}
body[data-scene="explore"] .explore-actions .button-caption{
 display:block;max-width:100%;font-size:16px;line-height:1.18;
 font-weight:900;white-space:normal;overflow-wrap:anywhere;text-align:center;
}
body[data-scene="explore"] .explore-actions .world-action.picture-button:not([hidden]){
 background:#ffdfa0;
}
body[data-scene="explore"] .explore-actions .world-action.picture-button.has-target{
 outline:3px solid #ffd85a;outline-offset:2px;
}
body[data-scene="explore"] .helper-toggle.picture-button{
 z-index:26;display:flex;width:84px;min-width:84px;min-height:77px;
 right:14px;top:78px;gap:3px;border-radius:22px;
 padding:8px 6px;border:3px solid #fff9e8;
 background:#fff0c0;box-shadow:0 5px 14px #123e4959;
}
body[data-scene="explore"] .helper-toggle .button-picture{font-size:37px;line-height:1}
body[data-scene="explore"] .helper-toggle .button-caption{
 display:block;font-size:14px;line-height:1.15;font-weight:900;
}
body[data-scene="explore"] .explore-menu{
 right:12px;left:auto;top:170px;z-index:25;
 width:min(382px,calc(100vw - 24px));max-width:none;
 grid-template-columns:repeat(3,minmax(0,1fr));
 gap:10px;padding:13px;border-radius:23px;
 background:#fff5ddf5;box-shadow:0 13px 35px #103b4966;
 max-height:min(67svh,570px);overflow-y:auto;overscroll-behavior:contain;
}
body[data-scene="explore"] .explore-menu .picture-button{
 min-width:0;width:100%;min-height:108px;padding:11px 6px;gap:7px;
 border-radius:17px;border:2px solid #fffbee;box-shadow:0 3px 9px #123d4925;
}
body[data-scene="explore"] .explore-menu .button-picture{font-size:38px;line-height:1}
body[data-scene="explore"] .explore-menu .button-caption{
 font-size:15px;line-height:1.18;font-weight:900;overflow-wrap:anywhere;
}
/* Context and location labels are large enough to understand at a glance. */
body[data-scene="explore"] .explore-location{
 font-size:clamp(17px,2.7vw,22px);line-height:1.22;
 padding:10px 14px;font-weight:900;white-space:normal;
 max-width:min(390px,calc(100vw - 114px));
}
body[data-scene="explore"] .explore-bag{
 font-size:16px;line-height:1.4;font-weight:900;white-space:normal;
 padding:9px 13px;
}
body[data-scene="explore"] .explore-message,
body[data-scene="explore"] .explore-message.show{
 top:clamp(162px,27svh,238px);max-width:min(500px,calc(100vw - 30px));
 width:max-content;padding:13px 18px;
 border:3px solid #fffdf4;border-radius:21px;
 background:#fff4d9f7;color:#204b45;
 font-size:18px;line-height:1.3;font-weight:900;
 transform:translateX(-50%);
 box-shadow:0 9px 30px #0e3a4766;
}
body[data-scene="explore"] .explore-hint{font-size:16px;line-height:1.35}
body[data-scene="explore"] .explore-panel{
 width:min(700px,95vw);padding:27px 23px 30px;
 border-radius:25px;scroll-padding-top:20px;
}
body[data-scene="explore"] .explore-panel h2,
body[data-scene="explore"] .explore-panel .island-map-heading{
 font-size:clamp(27px,3.8vw,35px)!important;line-height:1.15!important;
 margin:0 48px 15px 0!important;
}
body[data-scene="explore"] .explore-panel>p,
body[data-scene="explore"] .explore-panel p{
 display:block;font-size:17px;line-height:1.47;
}
body[data-scene="explore"] .discover-place.picture-button,
body[data-scene="explore"] .discover-grid .discover-place{
 min-height:108px;font-size:17px;border-radius:18px;padding:13px 12px;
 text-align:center;
}
body[data-scene="explore"] .discover-place .button-picture{font-size:45px}
body[data-scene="explore"] .discover-place .button-caption{
 font-size:16px;font-weight:900;line-height:1.28;
 white-space:normal;overflow-wrap:anywhere;
}
body[data-scene="explore"] .panel-close{
 width:56px;height:56px;font-size:34px;top:10px;right:10px;
 border-radius:18px;background:#f4e3c6;z-index:3;
}
body[data-scene="explore"] .island-map-mini-label{
 font-size:15px;line-height:1.15;font-weight:900;
}
body[data-scene="explore"] .island-map-guide{
 font-size:17px!important;line-height:1.45!important;
}
body[data-scene="explore"] .island-map-destination{
 min-height:72px;font-size:16px;line-height:1.3;padding:12px;
 overflow-wrap:anywhere;
}
body[data-scene="explore"] .island-map-control{
 min-width:58px;min-height:57px;font-size:27px;
}
body[data-scene="explore"] .friend-peek{font-size:15px;min-height:55px}
body[data-scene="explore"] .friend-world-label{font-size:15px;line-height:1.2}
body[data-scene="explore"] .world-story strong{font-size:16px;line-height:1.3}
body[data-scene="explore"] .world-story small{font-size:14px;line-height:1.35}
body[data-scene="explore"] .story-more{font-size:16px;min-height:52px}
body[data-scene="explore"] .journey-peek{font-size:16px}
body[data-scene="explore"] .journey-panel h2{font-size:27px}
body[data-scene="explore"] .journey-choice{font-size:18px;min-height:60px}
body[data-scene="explore"] .realm-task strong{font-size:17px}
body[data-scene="explore"] .realm-panel small{font-size:15px}
body[data-scene="explore"] .pizza-city-status,
body[data-scene="explore"] .volcano-hike-status{
 font-size:16px;line-height:1.32;max-width:calc(100% - 154px);
}
body[data-scene="explore"] .pizza-city-prompt{font-size:17px;line-height:1.25}
body[data-scene="explore"] .craft-resource{font-size:16px}
body[data-scene="explore"] .craft-recipe .craft-ingredients{font-size:17px}
body[data-scene="explore"] .craft-recipe-action{
 min-height:65px;font-size:17px;width:100%;
}
body[data-scene="explore"] .city-guide-card strong{font-size:20px}
body[data-scene="explore"] .city-guide-progress{font-size:16px}
body[data-scene="explore"] .city-guide-card .discover-place{
 min-height:68px;font-size:17px;
}
/* Mobile keeps the center of the screen free for the character and world. */
@media(max-width:780px){
 body[data-scene="explore"] .explore-actions{
  right:12px;bottom:max(20px,env(safe-area-inset-bottom));
  max-width:220px;gap:10px;
 }
 body[data-scene="explore"] .explore-actions .picture-button,
 body[data-scene="explore"] .explore-actions .friend-hello.picture-button{
  width:103px;min-width:103px;max-width:103px;min-height:100px;
  padding:9px 5px;gap:5px;border-radius:22px;
 }
 body[data-scene="explore"] .explore-actions .button-picture{font-size:42px}
 body[data-scene="explore"] .explore-actions .button-caption{font-size:15px}
 body[data-scene="explore"] .explore-stick{
  width:112px;height:112px;left:12px;bottom:max(20px,env(safe-area-inset-bottom));
 }
 body[data-scene="explore"] .stick-knob{width:55px;height:55px}
 body[data-scene="explore"] .explore-hud{top:74px;left:11px;max-width:calc(100% - 110px)}
 body[data-scene="explore"] .explore-location{font-size:18px;padding:9px 12px}
 body[data-scene="explore"] .explore-bag{font-size:15px}
 body[data-scene="explore"] .helper-toggle.picture-button{
  top:73px;right:10px;width:80px;min-width:80px;min-height:76px;
 }
 body[data-scene="explore"] .island-map-mini{top:162px;right:10px}
 body[data-scene="explore"] .friend-peek{top:284px;right:10px}
 body[data-scene="explore"] .house-door-action{
  top:353px;right:10px;font-size:16px;min-height:55px;
 }
 body[data-scene="explore"] .explore-menu{top:161px;right:10px;width:min(365px,calc(100vw - 20px));}
 body[data-scene="explore"] .explore-panel{
  top:70px;width:min(700px,96vw);
  max-height:calc(100svh - 80px);padding:22px 15px;
 }
 body[data-scene="explore"] .explore-panel>p{display:block;font-size:17px}
 body[data-scene="explore"] .explore-panel h2{font-size:28px!important}
 body[data-scene="explore"] .discover-grid{grid-template-columns:1fr 1fr;gap:11px}
 body[data-scene="explore"] .discover-place .button-picture{font-size:42px}
 body[data-scene="explore"] .discover-place .button-caption{font-size:16px}
 body[data-scene="explore"] .island-map-destination{min-height:70px;font-size:16px}
 body[data-scene="explore"] .island-map-guide{font-size:16px!important}
 body[data-scene="explore"] .pizza-city-status,
 body[data-scene="explore"] .volcano-hike-status{font-size:15px;padding:9px 11px}
 body[data-scene="explore"] .pizza-city-prompt{font-size:16px;max-width:190px}
}
@media(max-width:380px){
 body[data-scene="explore"] .explore-actions{max-width:184px;gap:7px;right:9px}
 body[data-scene="explore"] .explore-actions .picture-button,
 body[data-scene="explore"] .explore-actions .friend-hello.picture-button{
  width:88px;min-width:88px;max-width:88px;min-height:94px;padding:7px 4px;
 }
 body[data-scene="explore"] .explore-actions .button-picture{font-size:38px}
 body[data-scene="explore"] .explore-actions .button-caption{font-size:14px}
 body[data-scene="explore"] .explore-stick{width:101px;height:101px;left:9px}
 body[data-scene="explore"] .explore-menu .button-picture{font-size:33px}
 body[data-scene="explore"] .explore-menu .button-caption{font-size:14px}
 body[data-scene="explore"] .explore-menu .picture-button{min-height:96px}
 body[data-scene="explore"] .explore-location{font-size:17px}
}
@media(max-height:590px){
 body[data-scene="explore"] .explore-actions{bottom:10px;gap:6px;max-width:210px}
 body[data-scene="explore"] .explore-actions .picture-button,
 body[data-scene="explore"] .explore-actions .friend-hello.picture-button{
  width:98px;min-width:98px;max-width:98px;min-height:76px;padding:4px;
 }
 body[data-scene="explore"] .explore-actions .button-picture{font-size:32px}
 body[data-scene="explore"] .explore-actions .button-caption{font-size:14px}
 body[data-scene="explore"] .explore-stick{bottom:11px;width:94px;height:94px}
 body[data-scene="explore"] .helper-toggle.picture-button{top:65px;min-height:63px}
 body[data-scene="explore"] .helper-toggle .button-picture{font-size:28px}
 body[data-scene="explore"] .island-map-mini{top:138px;min-height:90px}
 body[data-scene="explore"] .friend-peek{top:239px}
 body[data-scene="explore"] .house-door-action{top:305px}
 body[data-scene="explore"] .explore-menu{
  top:136px;max-height:calc(100svh - 149px);
 }
 body[data-scene="explore"] .explore-panel{
  top:64px;max-height:calc(100svh - 72px);
 }
 body[data-scene="explore"] .explore-message.show{
  top:75px;font-size:15px;padding:9px 12px;max-width:55%;
 }
}
@media(max-height:590px) and (max-width:380px){
 body[data-scene="explore"] .explore-actions{max-width:175px}
 body[data-scene="explore"] .explore-actions .picture-button,
 body[data-scene="explore"] .explore-actions .friend-hello.picture-button{
  min-width:82px;width:82px;max-width:82px;min-height:72px;
 }
 body[data-scene="explore"] .explore-stick{width:85px;height:85px}
}
@media(prefers-reduced-motion:reduce){
 body[data-scene="explore"] .explore-actions .picture-button,
 body[data-scene="explore"] .helper-toggle.picture-button{transition:none;animation:none}
}


/* The first screen teaches the game through recognizable pictures, not paragraphs. */
.world-entry .welcome-feature-grid{
 display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
 gap:8px;margin:16px 0 14px;max-width:470px;
}
.world-entry .welcome-feature{
 display:grid;place-items:center;align-content:center;gap:4px;
 min-height:95px;padding:9px 6px;text-align:center;
 border:1px solid #fff7db99;border-radius:16px;
 background:#153b48b8;box-shadow:0 5px 20px #082b3938;
 color:#fff9e5;
}
.world-entry .welcome-feature-icon{
 font-family:"Apple Color Emoji","Segoe UI Emoji",sans-serif;
 font-size:40px;line-height:1.06;
}
.world-entry .welcome-feature-label{font-size:15px;line-height:1.2;font-weight:900}
.world-entry .primary.enter-world{
 display:flex;align-items:center;justify-content:center;gap:10px;
 min-height:78px;width:min(100%,420px);
 padding:17px 24px;font-size:23px;line-height:1.2;font-weight:900;
 background:#ffdf55;color:#173d37;opacity:1;filter:none;border-radius:20px;border:3px solid #fffdf2;
 box-shadow:0 6px 0 #a7803e,0 10px 35px #f3d58944;
}
.world-entry .primary.enter-world:before{display:none}
.world-entry .eyebrow{font-size:15px;line-height:1.3;letter-spacing:1.1px}
.world-entry .welcome-foot{font-size:14px!important}
@media(max-width:780px){
 .world-entry .welcome-feature-grid{gap:7px;margin:10px 0 12px}
 .world-entry .welcome-feature{min-height:78px;padding:8px 4px}
 .world-entry .welcome-feature-icon{font-size:32px}
 .world-entry .welcome-feature-label{font-size:14px}
 .world-entry .primary.enter-world{min-height:72px;font-size:21px;margin:14px 0 10px}
 .world-entry .eyebrow{font-size:14px;line-height:1.35}
 .world-entry p{font-size:17px;line-height:1.45}
}
@media(max-width:380px){
 .world-entry .welcome-feature{min-height:72px}
 .world-entry .welcome-feature-icon{font-size:29px}
 .world-entry .welcome-feature-label{font-size:12px}
 .world-entry .primary.enter-world{min-height:68px;font-size:20px}
 .world-entry .welcome-foot{font-size:13px!important}
}
@media(max-height:670px) and (max-width:780px){
 .world-entry .welcome-feature-grid{gap:6px;margin:6px 0}
 .world-entry .welcome-feature{min-height:64px;padding:5px 3px}
 .world-entry .welcome-feature-icon{font-size:28px}
 .world-entry .primary.enter-world{min-height:63px;margin:8px 0}
}
/* More legible story and quest text without widening any dialogs. */
body:not([data-scene="explore"]) .activity p,
body:not([data-scene="explore"]) .progress-card p{font-size:16px;line-height:1.5}
body:not([data-scene="explore"]) button.primary{min-height:60px;font-size:18px}


/* Open dialogs take visual priority over the control pad and helper button. */
body[data-scene="explore"] .explore-world:has(.explore-panel:not([hidden])) .helper-toggle.picture-button,
body[data-scene="explore"] .explore-world:has(.explore-panel:not([hidden])) .explore-actions,
body[data-scene="explore"] .explore-world:has(.explore-panel:not([hidden])) .island-map-mini,
body[data-scene="explore"] .explore-world:has(.explore-panel:not([hidden])) .friend-peek{
 visibility:hidden;pointer-events:none;
}
/* A visible focus and active state makes taps unmistakable. */
body[data-scene="explore"] .picture-button:focus-visible,
body[data-scene="explore"] .island-map-mini:focus-visible,
body[data-scene="explore"] .discover-place:focus-visible{
 outline:4px solid #1d72be;outline-offset:3px;
}
body[data-scene="explore"] .explore-actions .picture-button:active{
 transform:translateY(4px) scale(.97);
 box-shadow:0 2px 0 #46665b88;
}
body[data-scene="explore"] .world-arrows button{
 min-width:52px;min-height:55px;font-size:25px;font-weight:900;
 border-radius:16px;border:2px solid #fff8e5;
}
body[data-scene="explore"] .stick-compass{font-size:14px}
body[data-scene="explore"] .stick-knob{font-size:29px}
@media(max-width:380px){
 body[data-scene="explore"] .explore-menu .button-caption{font-size:14px}
}

/* Regional restoration: one substantial mission per destination. */
.region-help-status{
 position:absolute;top:238px;left:12px;z-index:19;max-width:min(380px,calc(100% - 135px));
 background:#eff6e8f5;color:#2d5c45;border:2px solid #b7d3ac;border-radius:13px;
 padding:7px 12px;font-weight:900;font-size:14px;line-height:1.3;pointer-events:none;
 box-shadow:0 3px 12px #18371b23;
}
.region-help-status[hidden]{display:none!important}
.region-help-button{font-weight:900}
.region-project-heading{font-size:13px;line-height:1.4;font-weight:900;letter-spacing:.065em;
 color:#527565;text-align:center;margin:6px auto 12px}
.region-project-why{font-size:18px;line-height:1.5;max-width:620px;margin:12px auto 18px;text-align:center}
.region-project-progress{height:14px;overflow:hidden;border-radius:16px;background:#d9e1da;
 border:1px solid #9db5a8;max-width:620px;margin:15px auto 6px}
.region-project-progress-fill{display:block;height:100%;background:#7cad79;border-radius:16px;
 transition:width .3s ease}
.region-project-count,.region-project-reward{font-size:15px;line-height:1.5;text-align:center;font-weight:800;margin:7px auto 18px}
.region-project-victory{font-size:19px;line-height:1.4;color:#365b4b;font-weight:900;text-align:center}
.region-project-steps{display:grid;grid-template-columns:1fr;gap:15px;
 max-width:640px;margin:18px auto}
.region-project-step{display:flex;flex-direction:column;align-items:center;gap:6px;
 padding:17px 14px 18px;background:#fff8ec;border:2px solid #d8d1c0;border-radius:16px;
 color:#314b42;text-align:center}
.region-project-step.done{background:#f1faed;border-color:#bad4ae}
.region-project-step-title{font-size:19px;line-height:1.4;font-weight:900}
.region-project-meter{font-size:15px;line-height:1.4;margin:2px 0 5px;font-weight:800;color:#637467}
.region-project-action{min-height:48px;max-width:430px;width:100%;margin:5px auto 0}
.region-project-other{max-width:640px;margin:25px auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.region-project-other h3{grid-column:1/-1;text-align:center}
.region-project-other .discover-place{font-size:15px;min-height:50px}
@media(max-width:780px){
 .region-help-status{top:221px;left:10px;font-size:12px;padding:7px 9px;max-width:calc(100% - 135px)}
 .region-project-why{font-size:18px}
 .region-project-step-title{font-size:19px}
 .region-project-other{grid-template-columns:1fr 1fr;gap:7px}
 .region-project-other .discover-place{font-size:13px;line-height:1.3}
}
@media(max-height:550px){.region-help-status{top:176px}}

/* Desktop parity: the mobile-style three-control navigation is the only primary toolbar. */
@media(min-width:761px){
 body[data-scene="explore"] .mobile-game-dock{
  display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;
  position:absolute!important;top:92px!important;right:18px!important;
  left:auto!important;bottom:auto!important;transform:none!important;
  width:276px!important;max-width:calc(100% - 36px)!important;
  gap:8px!important;z-index:28!important;pointer-events:auto!important;
 }
 body[data-scene="explore"] .mobile-game-dock button{
  display:flex!important;align-items:center!important;justify-content:center!important;
  flex-direction:column!important;width:100%!important;height:76px!important;
  min-height:76px!important;padding:6px!important;box-sizing:border-box!important;
  border:2px solid #fff9e8!important;border-radius:16px!important;
  background:#fffae9!important;color:#264d46!important;
  font-size:15px!important;font-weight:900!important;box-shadow:0 4px 11px #123a4252;
 }
 body[data-scene="explore"] .mobile-game-dock .mobile-dock-icon{font-size:26px}
 body[data-scene="explore"] .mobile-game-dock .mobile-dock-caption{font-size:13px}
 body[data-scene="explore"] .explore-menu,
 body[data-scene="explore"] .helper-toggle,
 body[data-scene="explore"] .mobile-bag-shortcut,
 body[data-scene="explore"] .explore-bag,
 body[data-scene="explore"] .region-help-status,
 body[data-scene="explore"] .volcano-hike-status,
 body[data-scene="explore"] .island-goal,
 body[data-scene="explore"] .explore-hint{display:none!important}
 body[data-scene="explore"] .explore-hud{max-width:340px!important;pointer-events:none}
 body[data-scene="explore"] .explore-location{white-space:normal;line-height:1.25;max-width:100%;font-size:17px}
 body[data-scene="explore"] .explore-world:has(.explore-panel:not([hidden])) .mobile-game-dock{
  visibility:hidden!important;pointer-events:none!important;
 }
}

/* Single navigation source: remove legacy map/friend widgets and city counters. */
body[data-scene="explore"] .island-map-mini,
body[data-scene="explore"] .friend-peek,
body[data-scene="explore"] .pizza-city-status,
body[data-scene="explore"] .explore-bag{display:none!important;visibility:hidden!important;pointer-events:none!important}

/* Backpack world hub: large, readable touch-friendly tiles for all activities. */
body[data-scene="explore"] .backpack-world-hub{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin:12px auto 20px;max-width:660px}
body[data-scene="explore"] .backpack-world-tile{min-width:0;min-height:94px;border-radius:17px;border:2px solid #d4e5dc;background:#fff9e9;color:#244c46;font-size:20px;font-weight:850;line-height:1.35;padding:12px 6px;white-space:normal;overflow-wrap:anywhere;box-shadow:0 3px 0 #cbdfd0}
body[data-scene="explore"] .backpack-world-tile:focus-visible{outline:3px solid #3279a5;outline-offset:3px}
body[data-scene="explore"] .backpack-workshops{scroll-margin-top:16px;margin-top:20px}
body[data-scene="explore"] .backpack-return{display:block;position:sticky;bottom:0;margin:16px auto 5px;padding:12px 18px;min-height:54px;border-radius:14px;background:#fff0c2;font-weight:850;border:2px solid #d9ae65}
@media(max-width:470px){body[data-scene="explore"] .backpack-world-hub{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}body[data-scene="explore"] .backpack-world-tile{font-size:16px;min-height:84px;padding:8px 2px}}

/* Clear gameplay stage: NPCs and scenery take priority over decorative captions. */
body[data-scene="explore"] .friend-world-label,
body[data-scene="explore"] .builder-watch-card{font-size:12px!important;max-width:130px!important;padding:5px 7px!important;opacity:.85}
body[data-scene="explore"] .explore-controls{opacity:.35;font-size:11px!important}
body[data-scene="explore"] .explore-location{box-shadow:0 2px 8px #173d4020!important;max-width:290px!important}

/* Dedicated animal ride action: visible and touch-sized on all devices. */
body[data-scene="explore"] .animal-ride-quick[hidden]{display:none!important}
body[data-scene="explore"] .animal-ride-quick:not([hidden]){
 display:flex!important;align-items:center;justify-content:center;flex-direction:column;
 min-width:94px!important;min-height:72px!important;padding:8px!important;
 background:#f9dc95!important;border:2px solid #fff6d7!important;border-radius:15px!important;
 color:#294c43!important;font-weight:900;z-index:29;
}
@media(max-width:760px){
 body[data-scene="explore"] .animal-ride-quick:not([hidden]){
  width:88px!important;min-width:88px!important;min-height:76px!important;
  font-size:14px!important;box-shadow:0 4px 12px #123a4259;
 }
}

/* Overview shows the playable oval against a quiet globe backdrop. */
.island-map-frame.map-globe{background:#183e51}

/* Home ownership is a primary, always available activity. */
.mansion-launch{position:absolute;left:16px;bottom:190px;z-index:42;min-height:48px;max-width:180px;padding:10px 16px;border:1px solid #b6a884;border-radius:14px;background:#fff6df;color:#334940;font:700 16px system-ui;box-shadow:0 4px 15px #172d3026}
.mansion-panel{box-sizing:border-box!important;width:min(620px,calc(100% - 24px))!important;max-height:calc(100% - 24px)!important;overflow:auto!important;padding:26px!important;background:#fffaf0!important;color:#304039!important;border-radius:20px!important;line-height:1.5;font:17px/1.5 system-ui!important}
.mansion-panel h2{font-size:clamp(25px,5vw,34px);line-height:1.15;margin:12px 28px 20px 0}.mansion-panel h3{font-size:21px;margin:22px 0 12px}.mansion-panel p{margin:12px 0}.mansion-panel button:not(.panel-close){display:block;width:100%;min-height:48px;padding:12px 16px;border:1px solid #b7c5b9;border-radius:12px;background:#edf1e6;color:#2b463c;font:600 16px/1.4 system-ui;margin:9px 0;cursor:pointer}.mansion-panel button[aria-pressed=true]{background:#294e43;color:white;border-color:#294e43}.mansion-panel button:disabled{opacity:.5;cursor:not-allowed}.mansion-panel .mansion-eyebrow{font-size:12px;letter-spacing:.13em;color:#667768;font-weight:700}.mansion-options{display:flex;gap:10px}.mansion-options>*{flex:1;min-width:0}.mansion-card{border-bottom:1px solid #e0e3d8;padding:5px 0 12px}.mansion-stages{padding-left:24px}.mansion-stages li{margin:10px 0}.mansion-panel input{display:block;box-sizing:border-box;width:100%;font:18px system-ui;padding:12px;margin-top:8px;border:1px solid #9dafa3;border-radius:10px}.mansion-memory{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.mansion-memory button{font-size:28px!important;min-height:64px!important}.mansion-racer{display:flex;height:240px;background:#34434b;border-radius:14px;overflow:hidden}.mansion-lane{position:relative;flex:1;border-right:2px dashed #e3dcc5}.mansion-race-car{position:absolute;top:78%;left:35%;font-size:30px}.mansion-obstacle{position:absolute;left:40%;color:#f3b15c;font-size:24px}.mansion-panel .panel-close{position:absolute;right:16px;top:12px;min-width:44px;min-height:44px;font-size:26px}
@media(max-width:480px){.mansion-launch{left:12px;bottom:180px;max-width:150px;font-size:14px;min-height:44px;padding:9px 12px}.mansion-panel{padding:20px!important;font-size:16px!important}.mansion-options{flex-wrap:wrap}.mansion-options>button{flex-basis:40%}}
.mansion-panel{position:absolute!important;left:50%!important;top:50%!important;right:auto!important;bottom:auto!important;transform:translate(-50%,-50%)!important;margin:0!important;z-index:90!important}.explore-world:has(.explore-panel:not([hidden])) .mansion-launch{visibility:hidden}
.inside-mansion .campaign-hud,.inside-mansion .world-story,.inside-mansion .region-help-status{display:none!important}.inside-mansion .mansion-launch{top:16px;bottom:auto}.inside-mansion .explore-location{display:none}

/* Free-roam interface: optional projects live in Activities, not competing HUDs. */
.explore-world .campaign-hud,.explore-world .helper-toggle,.explore-world .goal-card{display:none!important}
.explore-world .explore-panel .backpack-world-hub{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}
.backpack-world-tile{min-height:92px!important;text-align:left!important;padding:14px!important;white-space:normal!important}
.play-benefit{display:block;font-size:12px;line-height:1.45;font-weight:400;margin-top:7px;color:inherit;opacity:.85}
@media(max-width:350px){.explore-world .explore-panel .backpack-world-hub{grid-template-columns:1fr!important}.backpack-world-tile{min-height:72px!important}}

.explore-world .journey-peek{display:none!important}

.car-horn{position:absolute;left:24px;top:215px;z-index:12;min-height:48px;padding:10px 18px;border-radius:12px;background:#fff9e8;color:#193e40;border:1px solid #b8c3b8;font-weight:700}.car-horn[hidden]{display:none!important}
/* Dream home: one activity at a time, large visual work surfaces. */
.mansion-panel .home-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mansion-panel .home-choice-grid button{margin:0;min-height:76px;background:#fff0f6;border-color:#dcb6cd}.home-cooking-art{display:grid;place-items:center;min-height:104px;background:linear-gradient(145deg,#fff0dc,#f9daee);border-radius:18px;font-size:52px;margin:12px 0}.home-step{color:#78536a;font-weight:700}.home-prep-dots{letter-spacing:.4em;color:#b86693;font-size:26px}.mansion-panel progress{display:block;width:100%;height:24px;accent-color:#b86693}.home-outfit-preview{display:grid;place-items:center;min-height:140px;background:var(--outfit);border:8px solid #fff;border-radius:24px;box-shadow:0 2px 12px #81526c25;font-size:86px}.home-arcade-canvas{display:block;width:min(100%,300px);height:auto;margin:auto;border:4px solid #c499b9;border-radius:14px;touch-action:none;outline-offset:3px}.mansion-panel .home-arcade-controls{display:flex;flex-wrap:wrap;gap:6px}.mansion-panel .home-arcade-controls button{flex:1;min-width:52px;margin:3px 0;padding:9px 7px}.mansion-panel:has(.home-arcade-canvas) h2{font-size:24px;margin-bottom:8px}.mansion-panel:has(.home-arcade-canvas) p{margin:5px 0}.mansion-panel:has(.home-arcade-canvas) .mansion-eyebrow{display:none}@media(max-height:700px){.home-arcade-canvas{width:210px}.home-cooking-art{min-height:76px;font-size:42px}.home-outfit-preview{min-height:100px;font-size:64px}.mansion-panel h2{font-size:24px;margin-bottom:10px}}@media(max-width:360px){.mansion-panel .home-choice-grid{gap:7px}.mansion-panel .home-choice-grid button{font-size:15px;padding:9px}}
.inside-mansion .mansion-launch{top:90px;bottom:auto;left:16px}@media(max-width:780px){.inside-mansion .mansion-launch{top:151px;left:12px;max-width:145px}}@media(max-height:520px) and (orientation:landscape){.inside-mansion .mansion-launch{top:90px;left:12px}}

/* The first screen is immediate; the 3D world starts only after Play. */
.world-entry:before{opacity:1;background:linear-gradient(0deg,#103943bb,#196c7522),url('./island.webp') center/cover}
.world-entry .primary.enter-world{background:#ffdf55!important;color:#173d37!important;opacity:1!important;filter:none!important;animation:none;box-shadow:0 6px 0 #b68a20,0 8px 30px #ffdf5566}

.street-food-film{display:block;width:100%;max-width:400px;height:auto;aspect-ratio:16/11;border-radius:12px;margin:12px auto}.street-food-film~progress{accent-color:#287966}.street-food-film~button{min-height:44px}


/* Angelique's phone is the single utility hub; movement remains on the world. */
.explore-world.phone-interface .explore-menu,.explore-world.phone-interface .mobile-game-dock,.explore-world.phone-interface .sanitation-launch,.explore-world.phone-interface .camera-view-toggle,.explore-world.phone-interface .helper-toggle{display:none!important}
.explore-world.phone-interface .mobile-bag-shortcut{display:flex!important;position:absolute!important;top:auto!important;bottom:calc(8px + env(safe-area-inset-bottom))!important;left:50%!important;right:auto!important;transform:translateX(-50%);z-index:26;width:66px!important;height:70px!important;min-width:0!important;flex-direction:column;align-items:center;justify-content:center;font-size:32px;border:2px solid #e9daca;border-radius:19px;background:#fffaf0;box-shadow:0 4px 16px #10262b55}
.explore-world.phone-interface .mobile-bag-caption{font-size:11px;line-height:1.2}
.explore-world.phone-interface .explore-panel:not(.island-map-open){box-sizing:border-box;position:absolute!important;inset:auto 24px 34px auto!important;width:min(382px,calc(100% - 24px))!important;height:min(700px,calc(100% - 54px))!important;max-height:calc(100% - 54px)!important;max-width:382px!important;border:7px solid #273135!important;border-radius:38px!important;padding:48px 18px 62px!important;background:linear-gradient(155deg,#e8f4ef,#fff4e2)!important;box-shadow:0 18px 70px #061b3170,inset 0 0 0 2px #aeb8b7;overflow:auto;z-index:50!important;overscroll-behavior:contain;scrollbar-width:thin}
.explore-world.phone-interface .explore-panel:not(.island-map-open)::before{content:'';position:absolute;top:12px;left:calc(50% - 34px);width:68px;height:15px;border-radius:20px;background:#273135}
.explore-world.phone-interface .explore-panel .panel-close{top:20px!important;right:10px!important;min-width:36px;min-height:36px;width:36px;height:36px;padding:0!important;z-index:3}
.phone-status{font:700 11px system-ui;letter-spacing:.08em;color:#446065;margin-bottom:12px}.phone-title{font-size:28px!important;margin:10px 0 20px!important;color:#193c40}
.explore-world .phone-app-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 9px}
.explore-world button.phone-app{padding:0!important;margin:0!important;border:0!important;box-shadow:none!important;background:transparent!important;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;min-height:86px;color:#193c40}
.phone-app-icon{display:grid;place-items:center;width:60px;height:60px;font-size:35px;border-radius:18px;background:linear-gradient(145deg,#fff,#d7eee4);box-shadow:0 3px 8px #234e4320;border:1px solid #ffffff}.phone-app:nth-child(3n+2) .phone-app-icon{background:linear-gradient(145deg,#fff0d0,#f4d4a0)}.phone-app:nth-child(3n) .phone-app-icon{background:linear-gradient(145deg,#e4e8ff,#d0dbef)}.phone-app-name{font-size:12px;font-weight:750;line-height:1.2;text-align:center}
.phone-home-return{display:none!important}.phone-interface:has(.explore-panel:not([hidden]):not(.island-map-open)) .phone-home-return{display:block!important;position:absolute;bottom:46px;right:calc(24px + min(191px,(100% - 24px)/2) - 28px);z-index:52;width:56px;height:36px;border-radius:18px;border:0;background:#263e41;color:white;font-size:23px;padding:0}
.phone-interface:has(.explore-panel:not([hidden])) .mobile-bag-shortcut{visibility:hidden}
.phone-number{box-sizing:border-box;width:100%;font:32px system-ui;text-align:center;border:0;border-bottom:2px solid #bbcec6;background:transparent;padding:14px 0;color:#193c40;min-width:0}.phone-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0 16px}.explore-world button.phone-key{font:28px system-ui!important;border-radius:50%!important;width:62px;height:62px;padding:0!important;justify-self:center;background:#dce8e3!important;border:0!important;box-shadow:none!important}.phone-call,.phone-delete{display:inline-block;width:46%;min-height:50px;border:0;border-radius:22px;font-size:26px;background:#cde8db}.phone-call{background:#54b787!important}.phone-call-status{min-height:22px;text-align:center;font-size:14px}
@media(max-width:780px){
 .explore-world.phone-interface .explore-panel:not(.island-map-open){right:12px!important;bottom:12px!important;height:min(700px,calc(100% - 24px))!important;max-height:calc(100% - 24px)!important}
 .phone-interface:has(.explore-panel:not([hidden]):not(.island-map-open)) .phone-home-return{bottom:24px;right:calc(12px + min(191px,(100% - 24px)/2) - 28px)}
 .phone-interface .explore-hint,.phone-interface .island-goal,.phone-interface .region-help-status,.phone-interface .world-clock-schedule,.phone-interface .friend-world-label,.phone-interface .friend-peek,.phone-interface .world-story,.phone-interface .explore-instructions{display:none!important}
 .phone-interface .explore-hud{max-width:calc(100% - 110px)!important;pointer-events:none}.phone-interface .explore-location{font-size:12px!important;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:6px 8px!important}
 .phone-interface .explore-message{max-width:calc(100% - 32px)!important;top:80px!important;bottom:auto!important;font-size:13px!important;pointer-events:none}
 .phone-interface .explore-actions .button-caption{font-size:11px!important;line-height:1.1!important}.phone-interface .explore-actions .picture-button{min-height:56px!important}.phone-interface .explore-actions{max-width:150px!important;gap:5px!important}
 .phone-interface:has(.explore-panel:not([hidden])) .explore-actions,.phone-interface:has(.explore-panel:not([hidden])) .world-arrows,.phone-interface:has(.explore-panel:not([hidden])) .explore-stick{visibility:hidden}
}
@media(max-height:520px){.phone-app-grid{gap:9px!important}.phone-interface .explore-panel:not(.island-map-open){bottom:12px!important;height:calc(100% - 24px)!important;max-height:calc(100% - 24px)!important}.phone-interface:has(.explore-panel:not([hidden])) .phone-home-return{bottom:24px}.phone-keypad{gap:4px;margin:8px 0}.explore-world button.phone-key{width:44px;height:44px}.phone-number{font-size:24px;padding:4px}}
@media(prefers-reduced-motion:reduce){.phone-interface *{scroll-behavior:auto!important}}

.explore-world.phone-interface .mansion-launch,.explore-world.phone-interface .mansion-garage-launch{display:none!important}

/* One left movement control, one right action column, phone in the middle. */
.explore-world .phone-guidance{display:block!important;font-size:14px;line-height:1.5;margin:18px 0}
@media(max-width:780px){
 body[data-scene="explore"] .phone-interface .world-arrows{position:static!important;display:contents!important}
 .phone-interface .world-arrows button[data-direction]{display:none!important}
 body[data-scene="explore"] .phone-interface .explore-stick{left:14px!important;bottom:calc(24px + env(safe-area-inset-bottom))!important;width:96px!important;height:96px!important}
 .phone-interface .world-arrows .movement-speed{position:absolute!important;left:20px!important;bottom:calc(132px + env(safe-area-inset-bottom))!important;min-height:44px!important;max-width:88px!important;font-size:12px!important}
 body[data-scene="explore"] .phone-interface .explore-actions{display:flex!important;flex-direction:column!important;align-items:flex-end!important;right:12px!important;bottom:calc(24px + env(safe-area-inset-bottom))!important;max-width:76px!important;gap:6px!important}
 body[data-scene="explore"] .phone-interface .explore-actions .picture-button{width:72px!important;min-width:72px!important;max-width:72px!important;min-height:56px!important;padding:6px!important}
 .phone-interface:has(.explore-panel:not([hidden])) .world-arrows .movement-speed{visibility:hidden!important}
 .phone-interface .stick-readout,.phone-interface .stick-compass{display:none!important}
}
@media(max-width:780px){body[data-scene="explore"] .explore-world.phone-interface .world-arrows button[data-direction]{display:none!important}}
@media(max-width:780px){body[data-scene="explore"] .explore-world.phone-interface .world-arrows .movement-speed{position:absolute!important;left:20px!important;right:auto!important;top:auto!important;bottom:calc(132px + env(safe-area-inset-bottom))!important;transform:none!important}}

/* Fixed control zones at every viewport: information / station / movement. */
body[data-scene="explore"] .explore-world.phone-interface .mobile-bag-shortcut{top:80px!important;right:24px!important;bottom:auto!important;left:auto!important;transform:none!important;width:62px!important;height:62px!important}
body[data-scene="explore"] .explore-world.phone-interface .explore-actions{position:absolute!important;top:152px!important;right:24px!important;bottom:auto!important;left:auto!important;display:grid!important;grid-template-columns:repeat(3,68px)!important;align-items:start!important;gap:8px!important;width:max-content!important;max-width:220px!important;z-index:24}
body[data-scene="explore"] .explore-world.phone-interface .explore-actions .picture-button{width:68px!important;min-width:68px!important;max-width:68px!important;min-height:62px!important;padding:6px!important;border-radius:16px!important}
body[data-scene="explore"] .explore-world.phone-interface .explore-actions .button-picture{font-size:26px!important;line-height:1!important}
body[data-scene="explore"] .explore-world.phone-interface .explore-actions .button-caption{font-size:11px!important;line-height:1.15!important}
body[data-scene="explore"] .explore-world.phone-interface .explore-stick{left:24px!important;right:auto!important;top:auto!important;bottom:24px!important;width:104px!important;height:104px!important;transform:none!important}
body[data-scene="explore"] .explore-world.phone-interface .world-arrows{position:static!important;display:contents!important}
body[data-scene="explore"] .explore-world.phone-interface .world-arrows button[data-direction]{display:none!important}
body[data-scene="explore"] .explore-world.phone-interface .world-arrows .movement-speed{position:absolute!important;left:24px!important;right:auto!important;top:auto!important;bottom:140px!important;transform:none!important;max-width:104px!important;min-height:44px!important}
body[data-scene="explore"] .explore-world.phone-interface .explore-hud{top:86px!important;left:24px!important;right:auto!important;max-width:calc(100% - 280px)!important}
body[data-scene="explore"] .explore-world.phone-interface .world-clock{position:absolute!important;left:24px!important;right:auto!important;top:134px!important;bottom:auto!important;transform:none!important;max-width:calc(100% - 280px)!important;font-size:14px!important}
body[data-scene="explore"] .explore-world.phone-interface .world-clock-schedule{display:none!important}
body[data-scene="explore"] .explore-world.phone-interface .explore-message{left:24px!important;right:auto!important;top:184px!important;bottom:auto!important;transform:none!important;max-width:min(300px,calc(100% - 290px))!important;font-size:13px!important;padding:10px!important;text-align:left!important}
body[data-scene="explore"] .explore-world.phone-interface .pizza-city-status,body[data-scene="explore"] .explore-world.phone-interface .explore-controls{display:none!important}
body[data-scene="explore"] .explore-world.phone-interface .car-horn{left:auto!important;right:96px!important;top:86px!important;bottom:auto!important}
body[data-scene="explore"] .explore-world.phone-interface .auto-drive-bar{left:auto!important;right:24px!important;top:232px!important;bottom:auto!important;max-width:220px!important}
@media(max-width:600px){
 body[data-scene="explore"] .explore-world.phone-interface .mobile-bag-shortcut{top:70px!important;right:12px!important}
 body[data-scene="explore"] .explore-world.phone-interface .explore-actions{top:142px!important;right:12px!important;grid-template-columns:repeat(2,62px)!important;max-width:132px!important}
 body[data-scene="explore"] .explore-world.phone-interface .explore-actions .picture-button{width:62px!important;min-width:62px!important;max-width:62px!important}
 body[data-scene="explore"] .explore-world.phone-interface .explore-hud{top:68px!important;left:12px!important;max-width:calc(100% - 164px)!important}
 body[data-scene="explore"] .explore-world.phone-interface .explore-location{white-space:normal!important;font-size:11px!important;line-height:1.2!important}
 body[data-scene="explore"] .explore-world.phone-interface .world-clock{top:124px!important;left:12px!important;max-width:calc(100% - 164px)!important}
 body[data-scene="explore"] .explore-world.phone-interface .explore-message{top:170px!important;left:12px!important;max-width:calc(100% - 174px)!important}
 body[data-scene="explore"] .explore-world.phone-interface .car-horn{right:84px!important;top:76px!important;max-width:62px!important;font-size:11px!important;padding:8px!important}
 body[data-scene="explore"] .explore-world.phone-interface .auto-drive-bar{right:12px!important;top:282px!important;max-width:132px!important}
}
body[data-scene="explore"] .explore-world.phone-interface .pizza-city-prompt{top:186px!important;left:24px!important;right:auto!important;bottom:auto!important;max-width:calc(100% - 300px)!important;font-size:13px!important;padding:10px!important}
body[data-scene="explore"] .explore-world.phone-interface:has(.explore-message.show) .pizza-city-prompt{visibility:hidden!important}
@media(max-width:600px){body[data-scene="explore"] .explore-world.phone-interface .pizza-city-prompt{top:174px!important;left:12px!important;max-width:calc(100% - 174px)!important}}

/* Movement and in-world actions share the lower-left station. Phone stays upper-right. */
body[data-scene="explore"] .explore-world.phone-interface .explore-actions{top:auto!important;right:auto!important;left:144px!important;bottom:24px!important;grid-template-columns:repeat(3,68px)!important}
@media(max-width:600px){body[data-scene="explore"] .explore-world.phone-interface .explore-actions{top:auto!important;right:auto!important;left:132px!important;bottom:24px!important;grid-template-columns:repeat(2,62px)!important}}
.leisure-controls{position:absolute;z-index:42;top:180px;left:24px;width:min(300px,calc(100% - 48px));background:#fff7e8;color:#23474a;padding:18px;border-radius:18px;box-shadow:0 5px 24px #153c4540}.leisure-controls[hidden]{display:none}.leisure-controls p{font-size:14px;line-height:1.4}.leisure-controls button{min-height:44px;margin:4px;padding:10px;border-radius:12px;background:#dcece1;border:1px solid #adc6b9;color:#244749}@media(max-height:500px){.leisure-controls{top:80px;max-height:calc(100% - 110px);overflow:auto}}
.explore-world.leisure-active .world-story,.explore-world.leisure-active .region-help-status{display:none!important}
/* Persistent camera shortcut beside Phone in the main control station. */
body[data-scene="explore"] .explore-world.phone-interface .camera-view-toggle{display:block!important;position:absolute!important;left:auto!important;right:96px!important;top:80px!important;bottom:auto!important;transform:none!important;width:92px!important;min-height:62px!important;padding:8px!important;border-radius:16px!important;font-size:13px!important;white-space:normal!important;z-index:26!important}
@media(max-width:600px){body[data-scene="explore"] .explore-world.phone-interface .camera-view-toggle{right:84px!important;top:70px!important;width:62px!important;font-size:11px!important}}
.phone-interface:has(.explore-panel:not([hidden])) .camera-view-toggle{visibility:hidden!important}
body[data-scene="explore"] .explore-world.phone-interface .car-horn{top:152px!important;right:24px!important}
@media(max-width:600px){body[data-scene="explore"] .explore-world.phone-interface .car-horn{top:142px!important;right:12px!important}}

/* Camera lives in the header control station. */
body[data-scene="explore"] .explore-world.phone-interface .camera-view-toggle{display:none!important}
.header-camera-toggle[aria-pressed="true"]{background:#dcebdc}

/* One viewport-anchored phone frame for every app, including legacy mansion menus. */
body[data-scene="explore"] .explore-world.phone-interface{--phone-width:min(382px,calc(var(--phone-vw,100dvw) - 24px));--phone-height:min(700px,calc(var(--phone-vh,100dvh) - 24px));--phone-top:calc(var(--phone-vtop,0px) + (var(--phone-vh,100dvh) - var(--phone-height))/2);--phone-left:calc(var(--phone-vleft,0px) + var(--phone-vw,100dvw) - var(--phone-width) - 12px)}
body[data-scene="explore"] .explore-world.phone-interface .explore-panel:not(.island-map-open){position:fixed!important;inset:auto!important;left:var(--phone-left)!important;top:var(--phone-top)!important;right:auto!important;bottom:auto!important;width:var(--phone-width)!important;height:var(--phone-height)!important;max-width:var(--phone-width)!important;max-height:var(--phone-height)!important;min-width:0!important;min-height:0!important;transform:none!important;margin:0!important;overflow-x:hidden!important;overflow-y:auto!important;scroll-padding:56px 0 64px;overflow-wrap:anywhere}
body[data-scene="explore"] .explore-world.phone-interface:has(.explore-panel:not([hidden]):not(.island-map-open)) .phone-home-return{position:fixed!important;left:calc(var(--phone-left) + var(--phone-width)/2 - 28px)!important;top:calc(var(--phone-top) + var(--phone-height) - 50px)!important;right:auto!important;bottom:auto!important;z-index:102!important}
body[data-scene="explore"] .explore-world.phone-interface .explore-panel:not(.island-map-open) .panel-close{position:fixed!important;left:calc(var(--phone-left) + var(--phone-width) - 54px)!important;top:calc(var(--phone-top) + 16px)!important;right:auto!important;bottom:auto!important;z-index:103!important;background:#e8f4ef!important}
body[data-scene="explore"] .explore-world.phone-interface .explore-panel:not(.island-map-open)>*{max-width:100%;box-sizing:border-box}
body[data-scene="explore"] .explore-world.phone-interface{--phone-pad-top:max(12px,env(safe-area-inset-top));--phone-pad-bottom:max(12px,env(safe-area-inset-bottom));--phone-pad-left:max(12px,env(safe-area-inset-left));--phone-pad-right:max(12px,env(safe-area-inset-right));--phone-width:min(382px,calc(var(--phone-vw,100dvw) - var(--phone-pad-left) - var(--phone-pad-right)));--phone-height:min(700px,calc(var(--phone-vh,100dvh) - var(--phone-pad-top) - var(--phone-pad-bottom)));--phone-top:calc(var(--phone-vtop,0px) + var(--phone-pad-top) + (var(--phone-vh,100dvh) - var(--phone-pad-top) - var(--phone-pad-bottom) - var(--phone-height))/2);--phone-left:calc(var(--phone-vleft,0px) + var(--phone-vw,100dvw) - var(--phone-width) - var(--phone-pad-right))}

body[data-scene="explore"] .explore-world.rooftop-free .explore-stick{visibility:visible!important}
body[data-scene="explore"] .explore-world.rooftop-free .world-visit-controls{left:auto;right:12px;top:150px;bottom:auto;transform:none;width:190px;max-width:48vw}

.phone-walkthrough{text-align:center;padding:8px 0}.phone-walkthrough .guide-picture{font-size:52px;line-height:1.5;margin:12px 0}.phone-walkthrough .guide-count{font-size:13px!important}.phone-walkthrough h3{font-size:23px!important}.phone-walkthrough p{font-size:17px;line-height:1.5}.guide-actions{display:grid;gap:10px;margin-top:20px}.guide-actions button{min-height:48px;border-radius:14px;padding:12px;font:700 16px system-ui;background:#d5eee3;color:#153f50;border:1px solid #83b8aa}.phone-extra{margin:18px 0}.phone-extra summary{cursor:pointer;min-height:44px;padding:10px;font-weight:700}
/* Keep the helm controls by the main controls and leave the sea unobstructed. */
body[data-scene="explore"] .explore-world.yacht-free .leisure-controls{left:auto;right:12px;top:150px;width:min(225px,44vw);padding:12px;max-height:calc(100dvh - 170px);overflow:auto}
body[data-scene="explore"] .explore-world.yacht-free .explore-stick{visibility:visible!important}
@media(max-height:500px){body[data-scene="explore"] .explore-world.yacht-free .leisure-controls{top:85px;max-height:calc(100dvh - 100px)}}
/* Chapter 1: one compact objective, a magical phone, and large visual choices. */
.city-chapter-hud{position:absolute;top:calc(env(safe-area-inset-top,0px) + 62px);left:14px;z-index:12;max-width:min(340px,calc(100% - 100px));padding:12px 16px;border:1px solid #ffe7a2;border-radius:18px;background:#fff9e9ed;color:#17335b;font:700 14px/1.4 system-ui;text-align:left;box-shadow:0 4px 18px #17335b25;cursor:pointer}.city-chapter-hud[hidden]{display:none}.city-chapter-active .island-goal-card,.city-chapter-active .explore-quest{display:none!important}.chapter-picture{font-size:clamp(2.5rem,8vw,4rem);text-align:center;padding:18px 4px;line-height:1.3}.chapter-instruction{text-align:center;font-size:1.1rem;line-height:1.5;max-width:30ch;margin:10px auto}.chapter-count{text-align:center;font-weight:750;color:#536b83}.chapter-action{display:block;width:100%;margin:10px 0;padding:15px 12px;border:0;border-radius:16px;background:#e2f7f1;color:#17335b;font:750 1rem/1.4 system-ui;cursor:pointer;min-height:48px}.chapter-action:disabled{opacity:.5;cursor:default}.chapter-action:focus-visible{outline:3px solid #da9b10;outline-offset:2px}.chapter-highlight{outline:3px solid #ffc83d;box-shadow:0 0 22px #ffc83d88!important}.phone-home.phone-animated .phone-app{animation:magic-app-reveal .45s both;animation-delay:calc(var(--app-order,0)*35ms)}@keyframes magic-app-reveal{from{opacity:0;transform:translateY(12px) scale(.85)}to{opacity:1;transform:none}}@media(max-width:600px){.city-chapter-hud{top:calc(env(safe-area-inset-top,0px) + 52px);font-size:12px;padding:9px 12px;max-width:calc(100% - 100px)}.chapter-instruction{font-size:1rem}}@media(prefers-reduced-motion:reduce){.phone-home.phone-animated .phone-app{animation:none}}

.city-chapter-active .campaign-hud,.city-chapter-active .island-goal,.city-chapter-active .explore-hint{display:none!important}

.phone-interface:has(.explore-panel:not([hidden])) .city-chapter-hud{visibility:hidden}.explore-world:not(.explore-ready) .city-chapter-hud{visibility:hidden}

.phone-interface .explore-panel.phone-home{background:radial-gradient(ellipse at 15% 20%,#e5f9f2 0,transparent 50%),radial-gradient(ellipse at 95% 45%,#ece8ff 0,transparent 55%),#fff7e8!important}.phone-chapter-card{margin:24px 0 8px;padding:18px;border-radius:24px;background:#ffffffb8;border:1px solid #ffffff;box-shadow:0 6px 25px #8970ad10;text-align:center}.phone-chapter-card p{font-size:1rem;line-height:1.5;color:#21465c;margin:10px auto;max-width:28ch}.phone-chapter-magic{font-size:2.7rem}.phone-chapter-stars{color:#c89512;font-size:1.6rem;letter-spacing:.1em}.phone-chapter-card .chapter-action{background:#f8df83}.phone-animated .chapter-highlight{animation:magic-app-reveal .45s both,magic-icon-glow 1.4s .5s 3}@keyframes magic-icon-glow{50%{box-shadow:0 0 30px #ffc83dbb;transform:translateY(-3px)}}@media(prefers-reduced-motion:reduce){.phone-animated .chapter-highlight{animation:none!important}}

/* The optional voice profile remains readable inside small phone screens. */
.explore-panel label:has(input[autocomplete="given-name"]){display:grid;gap:.5rem;margin:1rem 0;font-weight:700}
.explore-panel input[autocomplete="given-name"]{box-sizing:border-box;width:100%;min-width:0;border:2px solid #b8d8d2;border-radius:16px;padding:.8rem;font:inherit;background:#fff;color:#174d5b}
/* One next action, with the chapter destination always visible. */
.chapter-end-goal{text-align:center;border-radius:16px;padding:12px;background:#e5f5ef;color:#225c52;font-weight:750;font-size:.95rem}.chapter-progress{text-align:center;color:#d49820;letter-spacing:.35em;margin:14px 0}.chapter-screen .chapter-picture{font-size:clamp(3rem,10vw,5rem);padding:24px 0 12px}.chapter-screen .chapter-action{background:#f8dc79;box-shadow:0 5px 0 #d5ad42;font-size:1.12rem}.chapter-hear{display:block;margin:22px auto 8px;background:transparent;border:0;color:#355c70;font-size:.95rem;padding:8px}.city-chapter-hud{white-space:pre-line;border:2px solid #f4c64b;box-shadow:0 5px 25px #17335b35;font-size:15px;max-width:min(360px,calc(100% - 100px))}.map-overview .map-place-label{display:none}.map-overview .island-map-target:hover .map-place-label,.map-overview .island-map-target:focus .map-place-label{display:block}.map-destination-card{padding:14px;border-radius:16px;background:#fff6dc;text-align:center}.island-map-open .island-map-frame{min-height:280px}.phone-interface select{max-width:100%;width:100%;padding:12px;border-radius:12px;margin:8px 0;font-size:16px}@media(max-width:600px){.city-chapter-hud{font-size:13px}.chapter-screen .chapter-picture{padding:12px 0;font-size:3.4rem}}
body[data-scene="explore"] .city-chapter-active .explore-hud,body[data-scene="explore"] .city-chapter-active .world-clock,body[data-scene="explore"] .city-chapter-active .explore-message{display:none!important}.city-chapter-active .city-chapter-hud{z-index:25;background:#fff9e9;color:#17335b;line-height:1.55}.city-chapter-active .chapter-instruction{display:block!important}
@media(max-height:640px){.chapter-screen .chapter-picture{font-size:2.6rem;padding:4px 0}.chapter-screen .chapter-progress{margin:8px 0}.chapter-screen .chapter-end-goal{padding:8px;font-size:.88rem}.chapter-screen .chapter-instruction{margin:6px auto;font-size:1rem}.chapter-screen .chapter-hear{margin:14px auto 50px}.chapter-screen .chapter-action{margin:8px 0;padding:12px}}
