/* Shared visual system: quiet chrome, vivid worlds, consistent touch targets. */
:root{color-scheme:dark;--ink:#ecf7ff;--accent:#cafa7a;--panel:#102a3ee8;--stroke:#a7d2e62e}body{font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;letter-spacing:-.015em}button,a,input{-webkit-tap-highlight-color:transparent}button{transition:background .16s,box-shadow .16s,transform .16s}button:active{transform:scale(.97)}button:focus-visible,a:focus-visible{outline:3px solid #cafa7a;outline-offset:4px}.language-dock{position:fixed;right:max(18px,env(safe-area-inset-right));top:max(16px,env(safe-area-inset-top));z-index:80}.language-switch{display:flex;gap:3px;align-items:center;width:max-content;padding:4px;border:1px solid #bed7e544;border-radius:100px;background:#0a2037ed;box-shadow:0 4px 22px #0003}.language-switch button{background:transparent;border:0;color:#b2c6d5;border-radius:100px;min-width:44px;min-height:36px;font-size:12px;font-weight:800;padding:6px 10px;cursor:pointer}.language-switch button[aria-pressed=true]{background:#e4f5f6;color:#102737}.playing>.language-dock,.swimming>.language-dock{display:none}dialog>.language-switch{margin:14px auto 0}dialog{border:1px solid #c1e1ee3b!important;background:linear-gradient(145deg,#193b4f,#0b2034)!important;box-shadow:0 32px 120px #0009!important}dialog::backdrop{background:#020d1cd9;backdrop-filter:blur(12px)}.primary{background:linear-gradient(135deg,#d6ffa1,#aee979)!important;color:#153027!important;border:1px solid #e0ffc5aa!important;box-shadow:0 8px 30px #8dcf6d18;font-weight:750!important;border-radius:16px!important}.secondary,.quiet{border-color:#b5dbeb30!important;border-radius:14px!important}.eyebrow{letter-spacing:.22em!important;color:#a8d8ea!important}h1,h2{letter-spacing:-.045em!important}h1 em,h2 em{font-style:normal!important;color:#bfe9f5}header .brand{padding-right:95px}.hub-prize{margin-right:100px}.hub{padding-top:30px}.game-door{border-color:#bfdfee28;box-shadow:0 14px 50px #0004;border-radius:28px}.door-copy{background:linear-gradient(145deg,#17344a,#091b30)}.door-copy p{font-size:14px}.door-copy small{font-size:12px}.door-word{color:#e4f6ff;font-size:42px;text-shadow:0 2px 24px #001321;letter-spacing:.08em;font-weight:800}.ocean-art{background-image:linear-gradient(0deg,#051b36aa,transparent 65%),url('./ocean-reef-world-v20.jpg');background-position:center;background-size:cover}.door-fish,.bubble{display:none}.padel-art{background:radial-gradient(ellipse at 70% 10%,#736ac855,#07152a 70%)}.tennis-ball{box-shadow:10px 20px 20px #0006,0 0 32px #d6ff5944}.mini-court{background-color:#135b74;box-shadow:0 0 0 12px #0a1e31,0 0 38px #73e8ff77}.hub header{align-items:center}#home{background:radial-gradient(ellipse at 65% 35%,#295d7133,transparent 65%)}#previewMount{border:1px solid #94c7d42a;border-radius:24px;overflow:hidden;box-shadow:0 24px 65px #0005}.level{background:linear-gradient(145deg,#18374a,#102536)!important;border-color:#90b4cb30!important}.level.selected{border-color:#cdff9344!important;box-shadow:inset 0 0 28px #b4ff6310,0 0 0 1px #b4ed76}.level strong{letter-spacing:-.035em}.level.locked{opacity:.58}#joystick,#sea-pad{background:radial-gradient(circle,#bce6ec17 0 42%,#bdd8e30d 43% 64%,#a4dbec25 65% 66%,#03162d36 67%)!important;border:1px solid #b5d9ed3d!important;box-shadow:inset 0 0 30px #7eeaff0c,0 10px 35px #0003;backdrop-filter:blur(4px)}#joy-knob,#sea-knob{background:radial-gradient(circle at 30% 22%,#f3ffff,#b1d9e0 58%,#538a9b)!important;box-shadow:0 5px 14px #0005,inset 0 1px 2px #fff!important;border:1px solid #ebffffab!important}#smash,#dash{background:linear-gradient(145deg,#29576b,#0e2d44)!important;border:1px solid #c4e9fa55!important;box-shadow:inset 0 1px #ddfaff30,0 8px 24px #0004!important;border-radius:26px!important}#smash.ready,#dash.held{background:linear-gradient(145deg,#e2ffad,#a6de74)!important;color:#16332a!important;box-shadow:0 0 30px #bdf16b44!important}#ocean-hud header{background:linear-gradient(#061b31ed,#0a293fc9)!important;border:1px solid #b4e7f32e!important;border-radius:20px!important;box-shadow:0 8px 35px #0003}#ocean-tip,#coach{background:#081e31d9!important;border:1px solid #9bc6dd25!important;border-radius:100px!important;padding:9px 18px!important;color:#e6f4ff!important}#ocean-menu{background:linear-gradient(90deg,#03152cef,#071b2dcc 53%,#061b2e55)!important;border-color:#6dacc533!important}.ocean-settings{background:#0b2941bf;border:1px solid #a9dcea30;border-radius:22px;padding:18px;backdrop-filter:blur(12px)}#ocean-levels button{border-radius:15px!important;background:#15364bbb!important}#ocean-levels button.selected{background:linear-gradient(145deg,#356357,#213f49)!important;border-color:#cbff934f!important}.fish-choice button{min-height:40px;background:#17354a!important;border-color:#b9e1f133!important}.fish-choice button[aria-pressed=true]{background:#cbe7e8!important;color:#133144!important}#menu-upgrades{background:#234151!important;font-size:14px!important}#game-upgrades::before{content:none!important}#game-upgrades{font-size:13px;background:#0d2942dd!important;border:1px solid #b7dfea44!important;border-radius:15px!important}#fish-preview{filter:drop-shadow(0 18px 24px #00132588)}.upgrade-list button{background:linear-gradient(145deg,#2a5364,#193749)!important;border:1px solid #a6d0de40!important;border-radius:18px!important}.upgrade-list button:disabled{opacity:.75}.upgrade-list em{color:#d2ffad!important}.install-intro{padding-top:40px}.fine{line-height:1.6}
@media(max-width:600px){.hub-prize{margin-right:0;margin-top:12px}.hub header{align-items:start;flex-direction:column}.language-dock{top:18px;right:14px}.ocean-settings{padding:14px}.hub h1{font-size:42px}.game-doors{grid-template-columns:1fr}.game-door{display:grid;grid-template-columns:43% 57%}.door-art{height:100%;min-height:205px}.door-copy p{font-size:14px}.door-copy small{font-size:11px}.door-word{font-size:25px;bottom:16px}.door-copy>span{font-size:11px}}
@media(orientation:landscape) and (max-height:500px){.language-dock{top:10px;right:16px}.language-switch button{min-height:30px}.ocean-settings{padding:10px 14px}#ocean-menu>.back{padding-right:110px}#ocean-menu h1{font-size:35px}.game-doors{grid-template-columns:1fr 1fr}.door-art{min-height:160px}.hub-prize{margin-right:110px}.hub header{flex-direction:row}.install-intro{padding-top:22px}#ocean-tip,#coach{font-size:11px!important;padding:6px 13px!important}dialog>.language-switch{margin-top:8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

#avatar-preview canvas{display:block;width:100%;height:100%;object-fit:contain;border-radius:18px}#avatar-preview{overflow:hidden;border-radius:18px;background:radial-gradient(ellipse at 50% 25%,#2b5264,#0d2334)}.character-dialog .character-layout{min-height:0}.character-dialog .language-switch{margin-top:8px}@media(orientation:landscape) and (max-height:450px){.character-dialog{padding:14px 18px;max-height:calc(100dvh - 20px)}.character-dialog #avatar-preview{height:185px}.character-dialog .character-actions{margin-top:8px}.character-dialog .swatches{margin-top:7px}.character-dialog .language-switch button{min-height:26px;padding:3px 9px}}

/* Release 20: two-step install and phone-first landscape navigation. */
.install-simple{max-width:530px;margin:auto;padding:8px 0}.install-app-icon{border-radius:18px;display:block;margin:0 auto 18px}.install-simple h2{text-align:center;font-size:28px;line-height:1.15;margin:0 0 24px}.install-two{list-style:none;padding:0;margin:0;display:grid;gap:16px}.install-two li{display:flex;align-items:center;gap:18px;padding:20px 16px;background:#193d50;border:1px solid #9fd8dc44;border-radius:20px}.install-two b{font-size:18px;line-height:1.35;display:block}.install-two p{font-size:14px;color:#aecbd6;line-height:1.4;margin:8px 0 0}.install-share-icon,.install-plus{display:grid;place-items:center;width:54px;min-width:54px;height:58px;color:#cafa7a}.install-plus{font-size:43px;border:2px solid #cafa7a;border-radius:13px;height:46px;width:46px;min-width:46px;margin:4px}.install-simple details{font-size:14px;color:#b6d2dc;padding:18px 6px 6px}.install-simple details p{font-size:14px;line-height:1.5}#install-gate{display:block!important;max-width:620px;padding:28px max(20px,env(safe-area-inset-left)) 24px!important;min-height:100dvh}#install-gate[hidden]{display:none!important}.install-required .language-dock{position:static;display:flex;justify-content:center;padding-bottom:18px}dialog:has(.install-simple){width:min(560px,94vw);max-height:94dvh}.menu-hub-link{display:flex;align-items:center;justify-content:center;min-height:48px;margin-top:8px;color:#c6e6ed;text-decoration:none;border:1px solid #8dbecc44;border-radius:14px;font-size:15px}
body:not(.playing):not(.swimming){overflow-y:auto;touch-action:pan-y}.playing dialog,.swimming dialog{touch-action:pan-y;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}dialog button,dialog a{touch-action:manipulation;min-height:46px}.power-label{position:absolute;left:50%;top:15%;transform:translateX(-50%);z-index:8;pointer-events:none;opacity:0;letter-spacing:.28em;font-size:18px;font-weight:900;color:#efffb2;text-shadow:0 2px 20px #00151f}.power-moment .power-label{opacity:1;transition:opacity .15s}.power-moment:before{content:'';position:absolute;inset:0;z-index:6;pointer-events:none;box-shadow:inset 0 22px #04131abf,inset 0 -22px #04131abf}#smash small{display:block!important;font-size:10px!important;line-height:1.2;margin:7px 5px 0!important;color:inherit!important}#smash.queued{background:linear-gradient(145deg,#6d8eac,#30526c)!important;color:#fff!important;outline:2px solid #b2e8ff;outline-offset:3px}#smash.ready{animation:none!important}
@media(orientation:landscape) and (max-height:600px){
 body:not(.playing) .app{max-width:1000px;padding:14px max(22px,env(safe-area-inset-right)) 20px max(22px,env(safe-area-inset-left))}body:not(.playing) #header{margin-bottom:16px}body:not(.playing) #home{display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;align-items:start}#home>.eyebrow,#home>h1,#home>.lead,#home>#home-summary,#home>#character-open,#home>#previewMount{grid-column:1}#home>.section-head{grid-column:2;grid-row:1/3;margin:0}#home>#levels{grid-column:2;grid-row:3/5}#home>#league-note{grid-column:2;grid-row:5;margin:0}#home>.journey{grid-column:2;grid-row:6;padding:0}#home>#play{grid-column:2;grid-row:7}#home>#practice{grid-column:2;grid-row:8;margin:0}#home>#install-card,#home>.home-links,#home>.fine{grid-column:2;margin:0}#home>h1{font-size:27px;margin:0}#home>.lead{margin:0;font-size:13px}#home>#previewMount{height:150px}#home>#home-summary{margin:0;padding:10px 14px}#home>#character-open{margin:0;min-height:52px}#home .level{padding:10px 8px}
 #ocean-menu.ocean-panel{display:grid;grid-template-columns:minmax(220px,1fr) minmax(300px,1fr);gap:4px 24px;max-width:980px;width:100%;min-height:100dvh;padding:18px max(22px,env(safe-area-inset-right)) 20px max(22px,env(safe-area-inset-left));margin:auto}#ocean-menu>.back,#ocean-menu>.eyebrow,#ocean-menu>h1,#ocean-menu>.intro,#ocean-menu>#fish-preview,#ocean-menu>.fine{grid-column:1;max-width:none;margin:4px 0}#ocean-menu>.back{padding:0;min-height:44px}#ocean-menu>h1{font-size:31px}#ocean-menu>.ocean-settings{position:static;grid-column:2;grid-row:1/8;margin-top:46px;padding:14px}#ocean-menu>#fish-preview{height:110px;width:100%}#ocean-menu .quiet{min-height:40px}#ocean-menu .fine{text-align:left}#ocean-menu input{height:40px}
 .install-simple{max-width:720px}.install-simple h2{font-size:24px;margin:0 0 15px}.install-app-icon{width:44px;height:44px;margin:0 auto 10px}.install-two{grid-template-columns:1fr 1fr;gap:12px}.install-two li{padding:14px;gap:12px}.install-two b{font-size:16px}.install-two p{font-size:13px}#install-gate{max-width:800px}.install-simple details{padding-top:12px}.install-simple summary{min-height:32px}dialog:has(.install-simple){width:94vw;padding:16px}dialog:has(.install-simple) .primary{margin-top:8px}
 .swimming dialog,.playing dialog{max-height:calc(100dvh - 20px);padding:18px 24px;scroll-padding:16px}.swimming dialog h2,.playing dialog h2{font-size:25px;margin:6px 0 12px}.swimming dialog>.language-switch,.playing dialog>.language-switch{margin-top:10px}.sea-brand{top:66px;font-size:9px}.sea-brand span{font-size:10px;letter-spacing:.05em}#ocean-hud header{height:54px;border-radius:0 0 18px 18px!important}.swimming #growth{left:20px;top:64px;font-size:10px;max-width:230px}#reef-direction{top:64px;right:20px}#game-upgrades{top:92px;right:20px}
}

/* Fixed SVG centres avoid font-dependent displacement of the Home Screen plus. */
.install-menu-icon,.install-share-icon,.install-plus{display:grid;place-items:center;flex:0 0 48px;width:48px;min-width:48px;height:48px;margin:0;padding:0;border:0;border-radius:0;color:#cafa7a;line-height:0;font-size:0;transform:none}
.install-two>li>span svg{display:block;flex:none;margin:0;transform:none}
.install-two>li>div{min-width:0}.install-two{gap:12px}.install-two li{padding:14px 16px}
@media(orientation:landscape) and (max-height:600px){.install-two{grid-template-columns:repeat(3,minmax(0,1fr))}.install-two li{flex-direction:column;align-items:flex-start;gap:8px;padding:12px}.install-two b{font-size:14px}.install-two p{font-size:12px;margin-top:5px}.install-simple h2{font-size:22px;margin-bottom:12px}}
