/* Pastel island adventure: scenic world first, large tactile controls second. */
@font-face { font-family:Baloo; src:url('assets/fonts/Baloo2.ttf') format('truetype'); font-weight:400 800; font-display:swap; }
@font-face { font-family:Grandstander; src:url('assets/fonts/Grandstander.ttf') format('truetype'); font-weight:100 900; font-display:swap; }
@font-face { font-family:Chewy; src:url('assets/fonts/Chewy.ttf') format('truetype'); font-weight:400; font-display:swap; }
:root { --ink:#3c284d; --mint:#c9e8d8; --pink:#f3bdc8; --paper:#fff6ed; }
body[data-screen=mission] .dpad { background:#fff6ede8; border:2px solid #ead7bd; box-shadow:0 5px 16px #384b4830; }
body[data-screen=mission] .dpad-btn { background:#c9e8d8; color:#3c284d; border-radius:12px; text-shadow:none; }
body[data-screen=mission] .dpad-btn.is-held,body[data-screen=mission] .dpad-btn:active { background:#a3d5c0; }
body[data-screen=mission] .action-btn { background:#fff6ed; color:#3c284d; font-family:Chewy,Baloo,sans-serif; border:2px solid #e7c4aa; box-shadow:0 4px 12px #384b4830; }
body[data-screen=mission] { height:100dvh; overflow:hidden; display:flex; flex-direction:column; }
body[data-screen=mission] .hud { flex:none; }
body[data-screen=mission] #game { flex:1; min-height:0; width:100%; max-width:none; height:0; margin:0; aspect-ratio:auto; border-radius:0; }
body { margin:0; background:#c6deee; color:var(--ink); }
#adventure { position:fixed; inset:0; z-index:30; overflow:auto; background:#c6deee; font-family:Baloo,ui-rounded,sans-serif; }
#adventure[hidden] { display:none; }
#adventure * { box-sizing:border-box; }
#adventure button { font:inherit; color:var(--ink); cursor:pointer; min-height:48px; border:0; border-radius:18px; padding:12px 20px; background:var(--paper); box-shadow:0 4px 10px #604b6d24,inset 0 -3px 0 #73517115; font-weight:700; }
#adventure button:hover { background:#ffe4de; }
#adventure button:focus-visible, #missionExit:focus-visible { outline:3px solid #66488b; outline-offset:4px; }
#adventure button:disabled { cursor:default; opacity:.65; }
#adventure svg { width:26px; height:26px; flex:none; }
.adventure-header { display:flex; align-items:center; gap:24px; padding: max(12px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) 12px max(24px,env(safe-area-inset-left)); background:var(--paper); border-radius:0 0 30px 30px; box-shadow:0 5px 14px #53667d24; position:relative; z-index:2; }
.adventure-header h1 { font-size:clamp(25px,3.3vw,46px); letter-spacing:-.03em; margin:0 auto 0 0; white-space:nowrap; }
.adventure-header nav { display:flex; gap:10px; }
.adventure-header button { display:flex; gap:10px; align-items:center; }
#adventure .selected { background:var(--mint); }
.seed-wallet { display:grid; grid-template-columns:28px auto; column-gap:8px; text-align:center; }
.seed-wallet svg { grid-row:span 2; align-self:center; }
.seed-wallet strong { font-size:26px; }
.seed-wallet span { font-size:12px; }
.island-map { position:relative; min-height:480px; height:calc(100svh - 240px); background:url('assets/images/world/map.png') center center/100% 100% no-repeat; }
.region { position:absolute; top:8%; width:29%; text-align:center; }
.region h2 { display:inline-block; font-size:clamp(16px,2vw,26px); padding:8px 18px; margin:0; background:#fff6edf0; border-radius:40% 40% 25% 25%; box-shadow:0 5px 14px #53667d20; }
.woods { left:2%; }.heights { left:36%; }.cove { left:69%; }
#adventure .mission-node { position:absolute; width:160px; transform:translate(-50%,-50%); display:flex; align-items:center; flex-direction:column; gap:3px; padding:8px; background:#fff6edf5; }
.mission-node img { width:60px; height:56px; object-fit:contain; }
.mission-node strong { font-size:18px; }
.mission-node span { font-size:11px; font-weight:400; }
#adventure .mission-node.active { background:#ffe0e5; outline:4px solid #f4aabd; outline-offset:4px; }
.node-0 { left:19%; top:73%; }.node-1 { left:23%; top:39%; }.node-2 { left:48%; top:68%; }.node-3 { left:51%; top:33%; }
#adventure .home-node { position:absolute; left:82%; top:71%; transform:translate(-50%,-50%); display:flex; flex-direction:column; align-items:center; gap:6px; width:180px; background:var(--mint); }
.home-node span { font-size:12px; font-weight:400; }
.mission-detail { display:flex; align-items:center; gap:28px; background:var(--paper); margin:0 24px; padding:18px 28px; border-radius:26px; box-shadow:0 5px 20px #53667d20; }
.mission-detail h2 { margin:0 0 8px; font-size:30px; }
.mission-detail p { margin:0; font-size:16px; }
.mission-detail>div { flex:1; }
.mission-reward { display:flex; align-items:center; gap:8px; max-width:170px; font-size:13px; }
#adventure .primary-action { display:flex; gap:12px; align-items:center; background:var(--pink); font-size:24px; min-height:72px; padding:16px 28px; }
.adventure-footer { display:flex; align-items:center; justify-content:center; gap:20px; padding:14px 20px max(14px,env(safe-area-inset-bottom)); font-size:14px; }
.adventure-footer a { color:var(--ink); }
#adventure .adventure-footer button { box-shadow:none; background:transparent; font-size:14px; min-height:44px; padding:6px; }
.adventure-notice:empty { display:none; }
.adventure-notice { padding:12px; background:#e5f2d4; text-align:center; }
.cozy-home,.nest-room { position:relative; min-height:calc(100svh - 160px); background:url('assets/images/world/nest.png') center/cover; overflow:hidden; }
.home-copy,.nest-copy { position:relative; z-index:2; padding:35px; margin:30px; max-width:500px; border-radius:24px; background:#fff6edf2; }
.home-copy h2,.nest-copy h2,.wardrobe-preview h2 { font-size:36px; margin:0 0 12px; }
.home-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.dressed-duck { position:relative; width:300px; height:290px; }
.home-duck { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }
.worn-hat { position:absolute; width:42%; height:34%; object-fit:contain; left:45%; top:-6%; }
.worn-hat.glasses { top:20%; }
.cozy-home>.dressed-duck,.nest-room>.dressed-duck { position:absolute; right:18%; bottom:5%; }
.wardrobe-room { display:grid; grid-template-columns:320px 1fr; gap:28px; padding:32px; background:#e0ebde; min-height:calc(100svh - 160px); }
.wardrobe-preview { position:sticky; top:25px; align-self:start; text-align:center; }
.collection { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); align-content:start; gap:16px; }
.fashion-item { background:#fff6ed; padding:16px; border-radius:16px; text-align:center; }
.fashion-item img { width:100%; height:125px; object-fit:contain; }
.fashion-item h3 { font-size:18px; margin:8px 0; }
.fashion-item p { font-size:13px; margin:8px 0 14px; }
#adventure .fashion-item button { background:var(--mint); width:100%; }
.nest-options { display:flex; gap:12px; flex-wrap:wrap; }
.nest-options button { display:flex; flex-direction:column; align-items:center; gap:8px; flex:1; }
.nest-options button[aria-pressed=true] { outline:3px solid #88689f; }
.swatch { width:34px; height:34px; border-radius:50%; display:block; }
.small-note { font-size:12px; }
.nest-cushions { position:absolute; bottom:9%; left:32%; display:flex; gap:8px; }
.nest-cushions i { display:block; width:85px; height:65px; background:var(--cushion); border-radius:22px; box-shadow:inset 0 -9px 15px #7c496a28,0 8px 18px #60403c35; transform:rotate(-12deg); }
#missionExit { position:fixed; left:max(15px,env(safe-area-inset-left)); top:70px; z-index:15; border:0; border-radius:18px; padding:12px 20px; min-height:44px; color:var(--ink); background:var(--paper); }
body:not([data-screen=mission])>.hud,body:not([data-screen=mission])>.mobile-controls,body:not([data-screen=mission])>#game,body>.web-chrome { display:none!important; }
body[data-screen=mission] .hud { background:var(--paper); color:var(--ink); }
body[data-screen=mission] #accountBtn,body[data-screen=mission] #shopBtn,body[data-screen=mission] #cycle { display:none; }
@media(max-width:760px) {
 .adventure-header { flex-wrap:wrap; padding:12px 14px; gap:12px; padding-top:max(12px,env(safe-area-inset-top)); }
 .adventure-header h1 { font-size:27px; }
 .adventure-header nav { order:3; width:100%; justify-content:center; }
 #adventure .adventure-header nav button { padding:10px 12px; font-size:14px; flex:1; justify-content:center; }
 .seed-wallet strong { font-size:22px; }
 .island-map { height:530px; min-height:530px; background-size:auto 100%; background-position:42% center; overflow:hidden; }
 .region { top:4%; width:auto; }.region h2 { font-size:13px; padding:6px 8px; }
 .woods { left:2%; }.heights { left:40%; }.cove { left:77%; }
 #adventure .mission-node { width:125px; }.mission-node strong { font-size:15px; }.mission-node img { width:52px; height:45px; }
 .node-0 { left:21%; top:72%; }.node-1 { left:21%; top:36%; }.node-2 { left:56%; top:61%; }.node-3 { left:56%; top:26%; }
 #adventure .home-node { left:81%; top:86%; width:132px; font-size:13px; padding:10px; }
 .mission-detail { flex-wrap:wrap; margin:0 12px; padding:20px; gap:16px; }.mission-detail>div { flex-basis:100%; }
 .mission-detail h2 { font-size:26px; }.mission-detail p { font-size:14px; }
 #adventure .primary-action { font-size:19px; min-height:58px; flex:1; justify-content:center; padding:12px; }
 .mission-reward { width:100px; font-size:11px; }
 .adventure-footer { flex-wrap:wrap; gap:10px; font-size:12px; }
 .wardrobe-room { display:block; padding:20px 14px; }.wardrobe-preview { position:relative; top:0; }.wardrobe-preview .dressed-duck { margin:auto; width:220px; height:200px; }
 .collection { margin-top:24px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.fashion-item { padding:12px; }
 .home-copy,.nest-copy { padding:22px; margin:18px; }.home-copy h2,.nest-copy h2 { font-size:28px; }
 .cozy-home,.nest-room { min-height:780px; }.cozy-home>.dressed-duck,.nest-room>.dressed-duck { right:10%; bottom:4%; width:240px; }
 .nest-cushions { left:12%; bottom:17%; }
}
/* Keep furnishings registered to the undistorted room, clear of its controls. */
.nest-room { display:flex; flex-direction:column; min-height:0; background:#eadac8; }
.nest-room .nest-copy { margin:0; max-width:none; padding:18px 24px; border-radius:0; }
.nest-room .nest-options { max-width:620px; }
.nest-scene { position:relative; width:100%; aspect-ratio:3 / 2; background:url('assets/images/world/nest.png') center/contain no-repeat; overflow:hidden; }
.nest-scene .nest-cushions { width:26%; height:26%; left:13%; bottom:24%; }
.nest-scene>.dressed-duck { position:absolute; width:27%; height:43%; right:9%; bottom:4%; }
@media(min-width:1000px) {
 .nest-room { flex-direction:row; align-items:center; }
 .nest-room .nest-copy { flex:0 0 32%; padding:24px; order:2; background:transparent; }
 .nest-room .nest-options { flex-direction:column; }
 .nest-scene { flex:1; }
}
@media(max-height:500px) and (orientation:landscape) {
 .adventure-header { flex-wrap:nowrap; padding:8px 16px; }.adventure-header nav { order:0; width:auto; }
 .adventure-header h1 { font-size:24px; }.island-map { height:380px; min-height:380px; }
 .mission-node img { height:38px; }.mission-node strong { font-size:14px; }
 #missionExit { top:55px; }
}
@media(prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; } }

/* Approved illustrated control layer. Art supplies material; text stays semantic. */
#adventure h1,#adventure h2,#adventure h3,#adventure button { font-family:Chewy,Baloo,sans-serif; font-weight:400; }
.adventure-header h1 { font-size:clamp(27px,4.2vw,56px); letter-spacing:-.02em; }
.adventure-header { gap:18px; padding-top:max(10px,env(safe-area-inset-top)); padding-bottom:10px; }
.adventure-header nav button { font-size:20px; }
.nav-art { width:42px; height:42px; object-fit:contain; flex:none; }
.seed-wallet .nav-art { grid-row:span 2; width:44px; height:44px; }
.seed-wallet { grid-template-columns:44px auto; }
.seed-wallet strong { font-family:Grandstander,sans-serif; font-weight:800; font-size:30px; }
.map-hint { display:none; }
.map-scroll { overflow:hidden; }
.island-map { min-height:340px; height:calc(100svh - 290px); background-size:100% 100%; }
#adventure .map-route { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.map-route path { fill:none; stroke:#fffaf1; stroke-width:6; stroke-linecap:round; stroke-dasharray:6 15; }
.region { top:3%; }
.region h2 { display:flex; align-items:center; justify-content:center; min-height:82px; padding:20px 36px 25px; font-size:clamp(17px,1.8vw,25px); background:url('assets/images/world/ui-banner.png') center/100% 100% no-repeat; border-radius:0; box-shadow:none; color:#284b4a; }
.heights h2 { filter:hue-rotate(90deg); }.cove h2 { filter:hue-rotate(210deg); }
#adventure .mission-node { width:156px; height:165px; padding:0; display:block; background:url('assets/images/world/ui-medallion.png') center/100% 100% no-repeat; box-shadow:none; border-radius:0; }
#adventure .mission-node:hover { filter:brightness(1.06); }
#adventure .mission-node.active { background:url('assets/images/world/ui-medallion.png') center/100% 100% no-repeat; outline:none; }
.mission-node::before { content:''; position:absolute; inset:0; background:url('assets/images/world/ui-medallion.png') center/100% 100% no-repeat; mask:url('assets/images/world/medallion-mask.svg') center/100% 100%; }
#adventure .mission-node,#adventure .mission-node.active { background:none; }
.mission-node .mission-animal { position:absolute; left:20%; top:12%; width:60%; height:55%; object-fit:contain; }
.mission-label { position:absolute; bottom:11%; left:8%; width:84%; display:flex; flex-direction:column; gap:2px; }
.mission-label strong { font-size:19px; line-height:1.12; font-weight:400; white-space:nowrap; }
.mission-label>span { font-size:12px; }
.mission-node .map-duck { position:absolute; width:116px; height:132px; left:4%; top:-85px; object-fit:contain; pointer-events:none; z-index:2; }
.node-0 { left:13%; top:72%; }.node-1 { left:24%; top:39%; }.node-2 { left:49%; top:72%; }.node-3 { left:51%; top:35%; }
#adventure .home-node { left:82%; top:63%; width:190px; border:3px solid #fff3e5; border-radius:30px; padding:10px; background:#fff5e9ed; gap:3px; }
.home-node .nav-art { border-radius:50%; width:92px; height:70px; object-fit:cover; }
.home-node strong { font-size:22px; }
.mission-detail { margin:0 16px; padding:12px 20px; gap:22px; border:5px double #eecfbd; background:#fff5e7; border-radius:32px; min-height:165px; }
.mission-detail .detail-portrait { flex:0 0 134px; height:134px; border:5px solid #edb5c3; outline:3px solid #fffdf4; border-radius:50%; overflow:hidden; background:url('assets/images/world/meadow.png') center/cover; }
.detail-portrait img { width:100%; height:100%; object-fit:contain; }
.mission-detail .detail-copy { flex:1 1 270px; }
.detail-copy h2 { font-size:clamp(24px,3vw,40px); line-height:1.05; margin-bottom:6px; }
.detail-copy p { font-size:16px; line-height:1.25; margin-top:8px; }
.mission-type { background:#f5ccd0; border-radius:30px; padding:3px 20px; font-size:14px; }
.mission-reward { flex:0 0 86px; flex-wrap:wrap; gap:2px 6px; justify-content:center; text-align:center; }
.mission-reward strong { font-size:23px; }
.mission-reward .nav-art { width:44px; height:44px; }
.mission-detail .chase-scene { flex:0 1 210px; height:132px; border-radius:22px; overflow:hidden; }
.chase-scene img { width:100%; height:100%; object-fit:cover; }
#adventure .primary-action { flex:0 0 184px; min-height:142px; padding:18px 10px 18px 45px; text-align:center; justify-content:center; font-size:32px; line-height:1.04; color:#fff; text-shadow:0 2px 2px #a65064; background:url('assets/images/world/ui-play.png') center/100% 100% no-repeat; box-shadow:none; }
.adventure-footer { padding-top:6px; padding-bottom:max(6px,env(safe-area-inset-bottom)); gap:18px; }
.wardrobe-room { background:url('assets/images/world/dressing-room.png') center/cover fixed; grid-template-columns:310px 1fr; }
.wardrobe-preview { padding:18px; border-radius:28px; background:#fff6edb8; }
.wardrobe-preview .dressed-duck { width:270px; height:300px; margin:0 auto; }
.fashion-item { background:transparent; border:0; border-radius:0; box-shadow:none; padding:14px 10px 22px; position:relative; }
.fashion-item::after { content:''; position:absolute; bottom:0; left:0; right:0; height:12px; background:#c6946e; border-radius:45% 45% 5px 5px; box-shadow:0 7px 12px #66472e40,inset 0 3px 3px #ffe4bc; }
.fashion-item h3,.fashion-item p { background:#fff6edee; margin:0; padding:4px 8px; }
.fashion-item h3 { border-radius:14px 14px 0 0; }
.fashion-item p { padding-bottom:8px; }
#adventure .fashion-item button { border-radius:0 0 14px 14px; }
.fashion-item img { filter:drop-shadow(0 9px 7px #63412f35); }
.classic-item { height:125px; display:grid; place-items:center; color:#70577e; }
.classic-colors { grid-column:1 / -1; background:#fff6edf0; padding:12px 20px; border-radius:24px; align-self:start; }
.classic-colors h3 { margin:0 0 10px; }.classic-colors button { margin-right:12px; }.classic-colors button[aria-pressed=true] { outline:3px solid #88689f; }
.nest-room { background-size:100% 100%; }
.nest-copy { margin-left:auto; margin-right:30px; }
.nest-cushions { position:absolute; width:26%; height:26%; object-fit:contain; left:13%; bottom:24%; }
.nest-room>.dressed-duck { right:7%; }
@media(max-width:1100px) { .chase-scene { display:none; }.adventure-header nav button { font-size:17px; }.adventure-header .nav-art { width:32px; height:32px; }.adventure-header h1 { font-size:38px; } }
@media(max-width:760px) and (orientation:portrait) {
 .adventure-header h1 { font-size:30px; }.adventure-header nav button { font-size:16px; }
 .map-hint { display:block; text-align:center; margin:5px 0; font-size:13px; }
 .map-scroll { overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:thin; }
 .island-map { width:780px; height:435px; min-height:435px; background-size:100% 100%; background-position:center; }
 .region { width:29%; top:2%; }.woods { left:2%; }.heights { left:36%; }.cove { left:69%; }
 .region h2 { min-height:72px; padding:15px 20px 20px; font-size:18px; }
 #adventure .mission-node { width:130px; height:142px; }.mission-label strong { font-size:16px; }.mission-label>span { font-size:10px; }
 .mission-node .map-duck { width:90px; height:104px; top:-62px; }
 .node-0 { left:13%; top:74%; }.node-1 { left:27%; top:42%; }.node-2 { left:50%; top:72%; }.node-3 { left:52%; top:35%; }
 #adventure .home-node { left:82%; top:64%; width:164px; }.home-node strong { font-size:19px; }
 .mission-detail { position:sticky; bottom:0; z-index:3; margin:0 8px; padding:12px; min-height:150px; gap:8px; border-width:3px; border-radius:24px; }
 .mission-detail .detail-portrait { display:none; }.mission-detail .detail-copy { flex:1 1 180px; }.detail-copy h2 { font-size:25px; }.detail-copy p { font-size:13px; }.mission-type { font-size:12px; padding:2px 10px; }
 .mission-reward { flex:0 0 65px; font-size:10px; }.mission-reward .nav-art { width:30px; height:30px; }.mission-reward strong { font-size:17px; }
 #adventure .primary-action { flex:0 0 120px; min-height:95px; font-size:24px; padding-left:30px; }
 .wardrobe-room { display:block; background-attachment:scroll; }.wardrobe-preview { max-width:340px; margin:auto; }.wardrobe-preview .dressed-duck { width:240px; height:230px; }
 .nest-copy { margin:18px; }.nest-cushions { left:10%; bottom:24%; width:30%; }
}
@media(max-height:500px) and (orientation:landscape) {
 .adventure-header { gap:10px; padding:5px max(16px,env(safe-area-inset-right)) 5px max(16px,env(safe-area-inset-left)); border-radius:0 0 18px 18px; }
 .adventure-header h1 { font-size:29px; }.adventure-header nav { gap:6px; }
 #adventure .adventure-header nav button { min-height:40px; padding:4px 10px; font-size:15px; gap:5px; }.adventure-header .nav-art { width:26px; height:26px; }
 .seed-wallet strong { font-size:22px; }.seed-wallet span { font-size:10px; }.seed-wallet { grid-template-columns:28px auto; }.seed-wallet .nav-art { width:28px; height:28px; }
 .island-map { height:calc(100svh - 166px); min-height:190px; }
 .region { top:0; }.region h2 { min-height:42px; padding:8px 25px 12px; font-size:14px; }
 #adventure .mission-node { width:90px; height:95px; }.mission-label strong { font-size:12px; }.mission-label>span { font-size:9px; }.mission-label { bottom:10%; gap:0; }
 .mission-node .map-duck { width:61px; height:68px; top:-40px; }
 .node-0 { left:13%; top:72%; }.node-1 { left:27%; top:43%; }.node-2 { left:50%; top:73%; }.node-3 { left:55%; top:39%; }
 #adventure .home-node { top:63%; width:126px; padding:4px; border-radius:22px; }.home-node .nav-art { width:56px; height:40px; }.home-node strong { font-size:16px; }.home-node span { font-size:9px; }
 .mission-detail { min-height:83px; padding:5px 14px; gap:14px; border-width:3px; border-radius:23px; }
 .mission-detail .detail-portrait { flex-basis:67px; height:67px; border-width:3px; }.mission-detail .detail-copy { flex:1; }.detail-copy h2 { font-size:25px; margin:0; }.mission-type { font-size:11px; padding:1px 12px; }.detail-copy p { font-size:12px; margin-top:3px; }
 .mission-reward { flex-basis:65px; font-size:10px; }.mission-reward strong { font-size:20px; }.mission-reward .nav-art { width:30px; height:30px; }
 #adventure .primary-action { flex-basis:126px; min-height:76px; font-size:24px; padding:8px 5px 8px 35px; }
 .adventure-footer { font-size:10px; padding:0 12px; gap:12px; }#adventure .adventure-footer button { min-height:22px; font-size:10px; padding:0; }
 .wardrobe-room { min-height:calc(100svh - 85px); padding:16px; grid-template-columns:220px 1fr; gap:16px; }.wardrobe-preview { padding:12px; }.wardrobe-preview h2 { font-size:26px; }.wardrobe-preview .dressed-duck { width:185px; height:160px; }.collection { grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); }.fashion-item img { height:100px; }
 .cozy-home,.nest-room { min-height:calc(100svh - 80px); }.home-copy,.nest-copy { margin:12px; padding:18px; max-width:390px; }.nest-copy { margin-left:auto; }.home-copy h2,.nest-copy h2 { font-size:26px; }.cozy-home>.dressed-duck,.nest-room>.dressed-duck { width:230px; height:220px; bottom:0; }.nest-cushions { width:26%; height:26%; left:13%; bottom:24%; }
}
