/* Landscape-first controls: solid faces, ink outlines, and a short press travel. */
:root{--ui-ink:#263e35;--ui-paper:#fff3cf;--ui-shadow:#172d25;--ui-green:#b5e584}
.ui-icon{width:26px;height:26px;flex:none;vertical-align:middle}
[data-ui-icon]{display:grid;place-items:center;pointer-events:none}
button{transition:transform 90ms ease,filter 90ms ease}
button:active:not(:disabled){transform:translateY(3px);filter:brightness(.96)}
.main-menu{padding:max(12px,env(safe-area-inset-top)) max(22px,calc(env(safe-area-inset-right) + 12px)) max(16px,env(safe-area-inset-bottom)) max(22px,calc(env(safe-area-inset-left) + 12px));gap:10px;overflow:hidden;justify-content:space-between}
.main-menu:after{background:linear-gradient(#fff4d21a,transparent 65%,#32554755)}
.menu-top{height:48px;flex:none;gap:16px;max-width:1300px;width:100%;margin:0 auto}
.player-badge{display:flex;align-items:center;gap:9px;padding:3px 14px 3px 3px;border:2px solid var(--ui-ink);background:var(--ui-paper);border-radius:8px;box-shadow:0 3px 0 #395744;min-width:158px;height:46px}
.player-portrait{display:block;width:36px;height:36px;background:#e3d59c url(assets/critters-v2.png) 0 0/400% 100%;border:1px solid #687451;border-radius:5px;flex:none}
.menu-progress{text-align:left;min-width:104px;color:var(--ui-ink)}
.menu-progress b{font-size:11px;color:var(--ui-ink);margin:0 0 5px;font-weight:800}
.xp-track{width:100%;height:5px;margin:0;background:#d9cfaa;border-radius:0;border:1px solid #768761}
.xp-track i{background:#639650}
.menu-tools{display:flex;align-items:center;gap:9px}
.menu-top select{font-size:12px;height:44px;padding:0 11px;color:var(--ui-ink);border:2px solid var(--ui-ink);border-radius:8px;background:var(--ui-paper);box-shadow:0 3px 0 #395744;color-scheme:light}
.lobby-tool{width:44px;height:44px;background:var(--ui-paper);color:var(--ui-ink);border:2px solid var(--ui-ink);border-radius:8px;box-shadow:0 3px 0 #395744;display:grid;place-items:center}
.lobby-tool .ui-icon{width:26px;height:26px}
.menu-content{grid-template-columns:1fr 1fr;gap:6vw;max-width:1300px;align-items:center;flex:1;min-height:0;margin:0 auto}
.menu-hero{align-self:start;padding:5px 0 0 10px}
.menu-hero h1{font-size:clamp(58px,7vw,100px);margin:8px 0 16px;line-height:.85;color:#284b3c;letter-spacing:-1px;text-shadow:2px 3px 0 #fff3cb,0 6px 0 #58816026;transform:rotate(-3deg)}
.menu-hero h1 em{color:#c8633f}.menu-hero h1>span{color:#d87543;left:3.4em;top:.05em}
.menu-hero p{font-size:12px;max-width:none;color:#294e3b;background:#fff1c6d9;border:1px solid #59785466;border-radius:4px;width:max-content;padding:4px 8px;font-weight:800;margin:0}
.menu-navigation{padding:0;border:0;background:none;box-shadow:none;backdrop-filter:none;border-radius:0;gap:12px;width:100%;max-width:380px;justify-self:end}
.menu-play{display:flex;flex-direction:row;align-items:center;gap:18px;text-align:left;min-height:86px;padding:12px 18px;border:3px solid var(--ui-ink);border-radius:10px;color:#263e35;background:var(--ui-green);box-shadow:0 7px 0 #3b6544,inset 0 3px 0 #e6ffba;transform:none}
.menu-play:after{content:'';position:absolute;top:8px;right:9px;width:28px;height:4px;background:#efffcc;border-radius:4px;transform:rotate(-8deg);pointer-events:none}
.menu-play>span{position:static;font-size:inherit}
.menu-play .play-medallion{width:53px;height:53px;border:2px solid var(--ui-ink);border-radius:50%;background:#fff0bf;box-shadow:0 3px 0 #769550;flex:none}
.play-medallion .ui-icon{width:36px;height:36px}
.menu-play .play-copy{display:flex;flex-direction:column;gap:3px}
.menu-play strong{font:900 36px/1 var(--display);text-transform:uppercase;letter-spacing:.7px}
.menu-play small{font:700 11px Barlow;letter-spacing:0;opacity:1}
.mode-shortcuts{gap:12px}
.mode-shortcuts button{display:flex;align-items:center;gap:9px;justify-content:center;min-width:0;min-height:60px;padding:7px 9px;background:#fff0bb;border:2px solid var(--ui-ink);border-radius:8px;box-shadow:0 4px 0 #7b8956;color:var(--ui-ink);font-size:12px;font-weight:800;text-align:left}
.mode-shortcuts button>span:last-child{max-width:90px;line-height:1.1}
.mode-shortcuts .ui-icon{width:34px;height:34px;stroke-width:2.2}
.mode-shortcuts #menu-duel{background:#f5b98b;box-shadow:0 4px 0 #a86443}
.menu-navigation #menu-resume{display:flex;align-items:center;justify-content:center;gap:8px;background:#fff3cd;color:var(--ui-ink);border:2px solid var(--ui-ink);border-radius:6px;box-shadow:0 3px 0 #7b8956;margin:0;min-height:44px;padding:6px;font-weight:800;font-size:12px}
.menu-navigation #menu-resume[hidden]{display:none}
.menu-navigation #menu-resume .ui-icon{width:21px;height:21px}
.world-dock{max-width:1300px;width:100%;margin:0 auto;flex:none}
.dock-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;color:#fff6d9;text-shadow:0 2px 3px #284932;font-size:11px;font-weight:800}
.dock-heading>span{text-transform:uppercase;letter-spacing:1px}.dock-heading small{font-size:10px}
.menu-worlds{gap:9px;max-width:none}
.menu-worlds button{height:69px;padding:0;border:2px solid #243c34;border-bottom:3px solid #243c34;border-radius:6px;background:linear-gradient(transparent 30%,#142c28d9),var(--preview) center/cover;box-shadow:0 4px 0 #243c34;overflow:hidden}
.menu-worlds button span{font-size:10px;left:7px;right:4px;bottom:6px;line-height:1.05;color:#fff4d1;text-shadow:0 2px 2px #162c22}
.menu-worlds button:before{content:'';position:absolute;top:5px;left:5px;width:8px;height:8px;background:var(--accent);border:1px solid #1a392d;transform:rotate(45deg)}
.menu-worlds button:hover{border-color:#fff3c7;transform:none;box-shadow:0 4px 0 #243c34}
.menu-worlds button:active{transform:translateY(3px)}
/* Shared menu and mission buttons keep the same physical feel. */
.overlay{background:#10241fe6;backdrop-filter:none}
.modal{background:#fff0cb;border:3px solid #253f34;border-radius:12px;color:var(--ui-ink);box-shadow:0 7px 0 #0e251d,0 20px 50px #08190f55}
.modal .eyebrow{color:#57754c;letter-spacing:1px}.modal h2{color:#294c3c;text-shadow:none}.modal p,.modal .help-line,.settings-row{color:#4c6048}.help-line b{color:#b3613c}
.primary-button,.modal .secondary-button{display:flex;align-items:center;justify-content:center;gap:9px;background:#b5e584;color:#253f34;border:2px solid #253f34;border-radius:7px;box-shadow:0 4px 0 #557a41;font-size:14px;font-weight:800;min-height:44px}
.primary-button .ui-icon,.modal .secondary-button .ui-icon{width:21px;height:21px}
.modal .secondary-button{background:#f7d8a3;box-shadow:0 3px 0 #95714b}
.modal .menu-pair button{background:#f5dfb7;color:#4d543b;border:2px solid #77815a;border-radius:6px;min-height:44px;font-size:11px;padding:8px}
.settings-row select{color:#294936;background:#fff9e2;border:2px solid #6b8155;border-radius:6px;min-height:44px;color-scheme:light}
.settings-row{font-weight:700}
.level-modal{width:min(940px,94vw)}.level-heading .icon-button{min-width:44px;min-height:44px;background:#e6d3a5;border:2px solid #526747;border-radius:6px;box-shadow:0 3px 0 #829063;color:#294936}
.level-grid{gap:12px}.level-card{border:2px solid #2d4939;border-bottom:2px solid #2d4939;border-radius:6px;box-shadow:0 4px 0 #617850;background:linear-gradient(transparent 12%,#153b29ed),var(--preview) center/cover;padding:10px}
.level-card strong{color:#fff7d8}.level-card small{color:#dce9c7}.level-card:disabled{opacity:.65;filter:grayscale(.7)}.level-card.completed{border-color:#b77834}.level-number{border:2px solid #3b593d;border-radius:50%;background:#fff0bf;color:#345338;display:grid;place-items:center;width:29px;height:29px;font-size:16px;top:7px;left:7px}.level-status{top:8px;right:8px;color:#ffde7a}.level-status .ui-icon{width:25px;height:25px;color:#fff2be}.level-save{color:#526b4d}.briefing-rules{border:2px solid #9eac77;background:#e3e8bf;border-radius:6px;color:#3d6046}.briefing-rules b{color:#99502e}.briefing-preview{border:2px solid #4a694b;border-radius:7px}.reward-card{background:#e6d8a0;border:2px solid #8a8651;border-radius:7px}.reward-card span{color:#526540}.rank-up{color:#966138}.result-modal{border-color:#62734b}
/* Match controls use drawn symbols and strong outlines instead of tiny glyphs. */
.top-actions{gap:7px}.top-actions .icon-button{width:44px;height:44px;background:#263a31;border:2px solid #c4dcc075;border-radius:7px;box-shadow:0 3px 0 #10271d;color:#fff3cf}
.top-actions .ui-icon{width:23px;height:23px}.top-actions #restart{display:none}
.zoom-controls button{border-radius:6px;min-width:44px!important;height:44px!important;background:#243a30;border:2px solid #aac9a86b;color:#fff0cf;box-shadow:0 3px 0 #10271d}
.weapon{background:#24382ff2;border:2px solid #859f7d;border-radius:7px;box-shadow:0 4px 0 #10291b;color:#fff3cf}.weapon.selected{background:#466c46!important;border:2px solid #daecad!important;box-shadow:0 4px 0 #10291b;transform:translateY(-4px)}.weapon.selected strong{color:#f4ffce!important}.weapon small{color:#c5d9b6}
.aim-chip{border-radius:6px;background:#24382ff2;min-height:44px;border:2px solid #82976f;box-shadow:0 3px 0 #10291b;color:#e3edce}
.walk-controls button,.mobility-actions button{border:2px solid #a8c597;border-radius:9px;background:#2b4b39!important;box-shadow:0 4px 0 #112d20;color:#e5f7cd!important;min-width:48px;min-height:48px}
.walk-controls .ui-icon{width:30px;height:30px}.mobility-actions .ui-icon{width:25px;height:25px}.mobility-actions small{font-size:7px;letter-spacing:.2px;margin-top:4px}.mobility-actions #dash{border-color:#e4b484;background:#5a4430!important;color:#f3c889!important}
.emotes button{border-radius:6px;background:#243c2e;border:2px solid #95b78c}
.fire-button{background:#efac69;border:4px solid #fff0bd;box-shadow:0 0 0 3px #50422b,0 7px 0 #7d5636;color:#5d3c25}.fire-button svg{stroke:#704627}.fire-button.charging{background:#cde887}
.aim-controls{background:#f8edcc;border:2px solid #4a6c48;border-radius:8px}.aim-controls label{color:#435e3e}
@media(max-height:550px){
 .main-menu{gap:8px}.menu-content{gap:5vw;grid-template-columns:1.05fr 1fr;max-width:1100px}.menu-top{height:44px}.menu-hero h1{font-size:58px;margin:7px 0 12px}.menu-hero p{font-size:10px}.menu-navigation{max-width:336px;gap:12px}.menu-play{min-height:76px;padding:8px 14px;gap:13px}.menu-play strong{font-size:31px}.menu-play small{font-size:10px}.play-medallion{width:46px!important;height:46px!important}.mode-shortcuts button{min-height:56px;font-size:11px}.menu-worlds button{height:58px}.menu-worlds button span{font-size:9px}.dock-heading{margin-bottom:5px}
 .top-actions{top:max(13px,env(safe-area-inset-top));right:max(16px,calc(env(safe-area-inset-right) + 8px))}.scoreboard{left:36%;max-width:55vw;width:425px}.zoom-controls{top:76px}.command-deck{bottom:max(18px,calc(env(safe-area-inset-bottom) + 5px))}.aim-chip{margin-top:7px}.aim-hint{top:57%}.world-caption{top:80px;max-width:45vw}.turn-banner{top:76px;left:48%;max-width:32vw}
}
@media(max-width:740px) and (orientation:landscape){
 .main-menu{padding-top:10px;padding-bottom:14px;padding-left:max(16px,calc(env(safe-area-inset-left) + 8px));padding-right:max(16px,calc(env(safe-area-inset-right) + 8px))}.menu-content{gap:4vw;grid-template-columns:1fr 1.05fr}.menu-hero{padding-left:4px}.menu-hero h1{font-size:49px}.menu-hero p{font-size:9px}.menu-play{min-height:68px;gap:9px;padding:7px 10px}.menu-play strong{font-size:28px}.menu-play small{font-size:9px}.mode-shortcuts{gap:10px}.mode-shortcuts button{font-size:10px;padding:5px;gap:5px;min-height:50px}.mode-shortcuts .ui-icon{width:30px;height:30px}.menu-worlds{gap:7px}.menu-worlds button{height:50px}.menu-worlds button span{font-size:8px}.menu-navigation{gap:11px}.menu-tools{gap:7px}.player-badge{min-width:149px;padding-right:9px}
 .top-actions{gap:5px;right:12px}.scoreboard{left:34%;max-width:60vw}.top-actions #help{display:none}.zoom-controls{top:72px;gap:5px;right:12px}.turn-banner{left:46%;max-width:30vw}.world-caption{top:76px}.command-deck{width:240px;left:51%}.aim-chip{gap:7px}.weapon small{display:none}.weapon{min-height:61px}.mobility-actions small{font-size:6px}.fire-controls{right:17px}.game-footer{left:14px}.level-grid{grid-template-columns:repeat(4,1fr)}.level-card{min-height:87px}.level-card strong{font-size:11px}.level-card small{font-size:8px}
}
@media(max-height:340px) and (orientation:landscape){.menu-play{min-height:58px}.menu-navigation{gap:9px}.mode-shortcuts button{min-height:44px}.menu-worlds button{height:44px}.menu-navigation #menu-resume{min-height:44px}.menu-hero h1{font-size:43px}.menu-play .play-medallion{width:38px!important;height:38px!important}.menu-top{height:44px}}
/* Mobile web menus follow the same orientation as installed apps. */
@media(orientation:portrait){
 .mobile-game .rotate-phone,.native-game .rotate-phone{display:flex!important;background:#203b2d;color:#fff0c4;border:10px solid #52754c}
 .rotate-phone strong{color:#fff0c4}.rotate-phone p{color:#c6deb5}.rotate-phone span{color:#b5e584}
 .menu-content{grid-template-columns:1fr;min-height:280px}.main-menu{overflow:auto}.menu-hero{display:none}.menu-navigation{justify-self:center;width:100%;max-width:400px}.menu-worlds{grid-template-columns:repeat(3,1fr)}
}
@media(prefers-reduced-motion:reduce){button{transition:none}}
.pause-modal{width:min(740px,94vw);text-align:left}.pause-modal h2{margin:0 0 15px;font-size:34px}.pause-layout{display:grid;grid-template-columns:1.3fr 1fr;gap:24px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.settings-grid .settings-row{display:flex;flex-direction:column;align-items:stretch;gap:5px;margin:0;font-size:11px}.settings-grid select{min-width:0;width:100%;padding:8px;font-size:11px}.pause-layout p{font-size:10px;line-height:1.4;margin:13px 0 0}.pause-actions{display:flex;flex-direction:column;gap:9px}.pause-actions button{margin:0;min-height:44px;padding:7px;font-size:12px}.settings-modal{width:min(650px,94vw)}.settings-modal .settings-grid{grid-template-columns:repeat(3,1fr);margin:14px 0}.settings-modal h2{margin-top:0}.settings-modal p{font-size:10px}.settings-modal .menu-pair button{font-size:11px}.help-modal{width:min(760px,94vw)}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px}.help-modal .help-line{border-top:1px solid #76826155;padding:8px 0;font-size:11px}.help-modal>p{font-size:10px}.help-modal h2{margin:5px 0 14px;font-size:32px}.help-modal .eyebrow{display:none}
@media(max-height:450px){.pause-modal,.settings-modal,.help-modal{padding:16px 22px}.pause-modal h2{font-size:29px;margin:0 0 12px}.pause-layout{gap:20px}.settings-grid{gap:9px}.help-modal .help-line{font-size:10px;line-height:1.35}.help-modal .primary-button{min-height:44px}.level-grid{gap:10px}.level-card{min-height:77px}.level-card strong{margin:26px 0 3px}.level-modal .level-save{display:none}.level-modal p{margin:7px 0}.level-heading h2{margin:4px 0}.level-modal{padding:12px 19px}}
@media(max-height:340px){.pause-modal,.settings-modal,.help-modal{padding:12px 17px}.pause-modal h2{margin-bottom:10px}.pause-layout{gap:14px;grid-template-columns:1.25fr 1fr}.settings-grid{gap:8px}.pause-actions button{font-size:10px}.pause-layout p{font-size:9px;margin-top:9px}.help-modal .help-line{font-size:9px}.help-modal h2{font-size:26px;margin-bottom:8px}.help-modal>p{font-size:9px}.level-card{min-height:62px}.level-card small{display:none}.level-card strong{margin:25px 0 0}.level-heading h2{font-size:24px}.level-modal p{font-size:9px}.level-grid{gap:8px}}
.network-modal{width:min(690px,94vw);text-align:center}.network-modal h2{margin-top:0}.network-columns,.lobby-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px;text-align:left}.network-field{display:flex;flex-direction:column;gap:7px;color:#45603d;font-size:12px;font-weight:800}.network-field select,.network-field input,.server-settings input{height:44px;width:100%;min-width:0;border:2px solid #72865d;border-radius:6px;background:#fff9e1;color:#294936;font:700 13px Barlow;padding:8px;user-select:text;-webkit-user-select:text;color-scheme:light}.network-field input{text-transform:uppercase;letter-spacing:3px;font-size:18px}.network-columns .primary-button{margin-top:12px}.network-error{color:#9c4934!important;font-weight:800;margin:5px 0!important;min-height:15px}.server-settings{font-size:10px;color:#5c714c;margin-top:15px;text-align:left}.server-settings summary{cursor:pointer;padding:6px 0}.server-settings small{display:block;margin-top:5px;font-size:9px}.server-settings input{margin-top:4px;font-size:11px}.network-footer{display:flex;gap:12px}.network-footer .secondary-button{margin-top:6px}.room-code{display:block;font:900 42px var(--display);letter-spacing:6px;color:#34543d;background:#dfe8b7;border:2px dashed #8f9d68;padding:8px;border-radius:8px;margin-top:10px}.lobby-layout small{color:#61784e;font-weight:800}.online-player{display:flex;gap:9px;align-items:center;color:#405c3a;font-size:12px;margin-bottom:10px}.online-player b{display:block;font-size:10px;color:#6b8157;margin-top:3px}.online-player .ui-icon{width:32px;height:32px}.network-status{position:fixed;top:77px;left:48%;transform:translateX(-50%);z-index:5;max-width:38vw;padding:6px 10px;color:#ebf7ce;background:#253c2fe8;border:1px solid #bfdba177;border-radius:5px;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.network-status[hidden]{display:none}.online-game .turn-banner{visibility:hidden}.network-modal .primary-button,.network-modal .secondary-button{min-height:44px}
@media(max-height:450px){.network-modal{padding:16px 22px}.network-modal h2{font-size:30px;margin-bottom:9px}.network-modal>p{margin:7px 0;font-size:11px}.network-columns,.lobby-layout{gap:20px}.network-field{gap:5px;font-size:11px}.room-code{font-size:36px;margin-top:8px;padding:5px}.lobby-layout p{font-size:11px}.network-columns .primary-button{margin-top:9px}}
@media(max-height:340px){.network-modal{padding:12px 16px}.network-modal h2{font-size:26px;margin-bottom:5px}.network-modal>p{font-size:10px}.server-settings{margin-top:6px}.network-columns{gap:14px}.network-field{gap:4px}.network-columns .primary-button{margin-top:7px}.lobby-layout .primary-button,.lobby-layout .secondary-button{margin-top:6px;padding:7px}.room-code{font-size:31px}.online-player{margin-bottom:7px}.lobby-layout p{margin:7px 0}}
/* Network flow occupies the phone screen; one action per step, safe areas stay clear. */
.overlay:has(.network-touch){padding:0;background:#eaf0d6}
.modal.network-touch{width:100%;height:100svh;max-height:100svh;overflow:hidden;border:0;border-radius:0;box-shadow:none;padding:max(10px,env(safe-area-inset-top)) max(18px,calc(env(safe-area-inset-right) + 10px)) max(10px,env(safe-area-inset-bottom)) max(18px,calc(env(safe-area-inset-left) + 10px));display:grid;grid-template-rows:50px minmax(0,1fr) 44px;gap:10px;background:radial-gradient(ellipse at 18% 70%,#d2e6b3 0,transparent 45%),radial-gradient(ellipse at 90% 20%,#f5dcad 0,transparent 40%),#f6edcf}
.network-top,.network-body,.network-bottom{width:100%;max-width:980px;margin:0 auto;min-width:0;min-height:0}
.network-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.network-touch .network-top h2{font-size:32px;margin:0;line-height:1;text-transform:uppercase;letter-spacing:.5px}.network-icon{display:grid;place-items:center;width:48px;height:48px;flex:none;background:#fff8df;color:#2a4b3a;border:2px solid #3c6046;border-radius:11px;box-shadow:0 3px 0 #a9ba89}.network-icon .ui-icon{width:27px;height:27px}.network-icon[hidden]{visibility:hidden;display:block}
.network-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px}.network-local{display:flex;align-items:center;gap:8px;min-height:44px;padding:7px 12px;border:2px solid #8a956b;border-radius:9px;color:#3d5940;background:#fff4d4;font-size:13px;font-weight:800}.network-note{font-size:13px;font-weight:800;color:#547044;text-align:right}.network-note small{display:block;font-size:11px;color:#a25433}
.network-choices{height:100%;display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:center}.network-choice{position:relative;display:grid;grid-template-rows:minmax(50px,1fr) auto;place-items:center;min-height:0;height:100%;max-height:225px;border:3px solid #31543c;border-radius:22px;box-shadow:0 7px 0 #55764b,inset 0 4px 0 #fff8ce;padding:12px 18px 18px;overflow:hidden;color:#2b4937}.host-choice{background:linear-gradient(160deg,#ddf5b2,#add579)}.join-choice{background:linear-gradient(160deg,#ffe5ae,#f2b17b);border-color:#79533d;box-shadow:0 7px 0 #a56d45,inset 0 4px 0 #fff3ce;color:#614231}.network-choice:before{content:'';position:absolute;inset:12px;border:1px dashed #6f865744;border-radius:13px;pointer-events:none}.network-choice-copy{position:relative;display:flex;flex-direction:column;gap:5px;z-index:1}.network-choice strong{font:900 clamp(25px,3.8vw,34px)/1 var(--display);text-transform:uppercase}.network-choice small{font-size:13px;font-weight:800}.network-arrow{position:absolute;right:15px;bottom:20px}.network-arrow .ui-icon{width:31px;height:31px}
.network-mascot{display:block;width:128px;max-width:100%;height:112px;background-image:url('assets/critters-v2.png');background-size:400% 100%;background-repeat:no-repeat;filter:drop-shadow(0 6px 0 #6c6c4130);animation:network-bob 3.3s ease-in-out infinite;pointer-events:none}.mascot-chill{background-position:0 0;transform:rotate(-6deg)}.mascot-glitch{background-position:66.666% 0;animation-delay:-1.6s}.network-choice .network-mascot{height:100%;max-height:128px;width:150px;min-height:0}.network-map-layout{height:100%;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(170px,1fr);gap:18px}.network-map-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:10px}.network-map{position:relative;min-height:60px;min-width:0;background-size:cover;background-position:center;border:3px solid #879572;border-radius:11px;box-shadow:0 3px 0 #aeb995;overflow:hidden;color:white;font-size:13px;font-weight:800;display:flex;align-items:flex-end;padding:8px;text-align:left}.network-map:before{content:'';position:absolute;inset:0;background:linear-gradient(transparent 20%,#162b39dd)}.network-map span{position:relative;line-height:1.1}.network-map .ui-icon{display:none;position:absolute;right:5px;top:5px;width:25px;height:25px;background:#c8ef9b;border:1px solid #3c6244;border-radius:50%;color:#305239}.network-map.selected{border-color:#376242;outline:2px solid #bdd987;box-shadow:0 3px 0 #477749}.network-map.selected .ui-icon{display:block}
.network-invite{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:0;text-align:center}.network-touch p{color:#4a6644;font-size:14px;line-height:1.3;margin:8px 0}.network-duo{height:95px;width:190px;position:relative;display:block;flex:1;max-height:120px;min-height:35px}.network-duo .network-mascot{position:absolute;height:100%;width:110px;top:0}.network-duo .mascot-chill{left:0}.network-duo .mascot-glitch{right:0}.network-touch .primary-button{height:52px;min-height:48px;margin:8px 0 0;border-radius:12px;font-size:17px}.network-touch .network-error{font-size:12px;margin:7px 0 0!important;line-height:1.15;min-height:14px}
.network-join-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(150px,.85fr);gap:22px;height:100%;align-items:center}.network-code-pad{width:100%;max-width:380px;justify-self:center;text-align:left}.network-code-pad label{display:block;font-size:15px;font-weight:800;margin-bottom:9px;color:#476342}.network-code-pad input{height:68px;width:100%;border:3px solid #65815b;border-radius:13px;background:#fffbea;color:#2c503d;text-align:center;font:900 33px var(--display);letter-spacing:8px;user-select:text;-webkit-user-select:text;text-transform:uppercase}.network-server-pad{width:min(540px,100%);margin:auto;padding:7px;max-height:100%;overflow:auto}.network-server-pad .network-field{font-size:14px}.network-server-pad input{height:52px;font-size:16px}.network-server-pad p{font-size:12px;text-align:left}.network-join-layout .network-mascot{width:150px;height:130px}
@keyframes network-bob{0%,100%{translate:0 0;rotate:-3deg}50%{translate:0 -5px;rotate:3deg}}
@media(max-height:350px){.modal.network-touch{grid-template-rows:44px minmax(0,1fr) 44px;gap:7px}.network-touch .network-top h2{font-size:27px}.network-icon{height:44px;width:44px}.network-choice{padding:7px 12px 12px;border-radius:16px}.network-choice strong{font-size:26px}.network-choice small{font-size:12px}.network-arrow{right:9px;bottom:13px}.network-arrow .ui-icon{width:24px;height:24px}.network-map-layout{gap:12px;grid-template-columns:minmax(0,1.6fr) minmax(160px,1fr)}.network-map-grid{gap:7px}.network-map{font-size:11px;padding:5px}.network-touch p{font-size:12px;margin:5px 0}.network-touch .primary-button{height:48px;font-size:15px;margin-top:5px}.network-code-pad input{height:57px;font-size:30px}.network-join-layout .network-mascot{height:100px;width:125px}.network-note{font-size:11px}}
@media(prefers-reduced-motion:reduce){.network-mascot{animation:none}}
.network-bottom:empty{display:none}.network-touch:has(.network-bottom:empty){grid-template-rows:50px minmax(0,1fr)}
.modal.network-touch.network-keyboard{height:var(--network-view-height);max-height:var(--network-view-height);grid-template-rows:44px minmax(0,1fr);gap:5px;padding-top:5px;padding-bottom:5px}.network-keyboard .network-top h2{font-size:23px}.network-keyboard .network-bottom,.network-keyboard .network-invite{display:none}.network-keyboard .network-join-layout{display:flex;align-items:center}.network-keyboard .network-code-pad{display:grid;grid-template-columns:minmax(0,1fr) 140px;gap:7px;max-width:650px;align-items:center}.network-keyboard .network-code-pad label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.network-keyboard .network-code-pad input{height:48px;font-size:27px}.network-keyboard .primary-button{height:48px;margin:0}.network-keyboard .network-error{grid-column:1/-1}.network-keyboard .network-server-pad{display:grid;grid-template-columns:minmax(0,1fr) 140px;gap:6px;align-items:center}.network-keyboard .network-server-pad .network-field{font-size:0;gap:0}.network-keyboard .network-server-pad input{height:48px}.network-keyboard .network-server-pad>p:not(.network-error){display:none}.network-keyboard .network-server-pad .primary-button{grid-column:2;grid-row:1}

/* Quick matchmaking keeps every action reachable in a short landscape viewport. */
.network-hub{height:100%;min-height:0;display:grid;grid-template-rows:52px minmax(0,1fr);gap:12px}.network-hub .network-choices{min-height:0}.network-hub .network-choice{max-height:none}.network-quick{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 18px;min-height:48px;border:2px solid #325541;border-radius:13px;background:#fff7d8;box-shadow:0 4px 0 #b3be8c;color:#2b503d}.network-quick>span{display:flex;align-items:center;gap:10px}.network-quick strong{font:900 23px/1 var(--display);text-transform:uppercase}.network-quick small{font-weight:800;font-size:13px}.network-quick .ui-icon{width:28px;height:28px}.network-quick:active{transform:translateY(3px);box-shadow:0 1px 0 #b3be8c}
.network-search{height:100%;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:24px;color:#35583e}.search-stage{position:relative;height:100%;min-height:0;max-height:230px;background:linear-gradient(#fff0b355,#c5db9766),var(--search-world) center/cover;border:3px solid #698c59;border-radius:30px;overflow:hidden;display:flex;align-items:center;justify-content:space-evenly}.search-stage .network-mascot{height:130px;width:145px;z-index:1;animation:search-bob 2s ease-in-out infinite}.search-orbit{position:absolute;width:170px;height:170px;border:3px dashed #fff5c9;border-radius:50%;animation:search-orbit 12s linear infinite}.search-question{font:900 70px/1 var(--display);color:#fff9d1;text-shadow:0 4px #4c6655;z-index:1;animation:search-bob 2s ease-in-out .5s infinite}.search-copy strong{font:900 30px/1 var(--display)}.search-copy small{display:block;font-size:13px;line-height:1.4;font-weight:700;color:#607344}.network-touch .search-copy p{font-size:17px;line-height:1.4;margin:14px 0}.round-clock.urgent{color:#ffdf99;animation:clock-warning .7s ease-in-out infinite}.round-clock.urgent strong{color:#ffdc7d;text-shadow:0 0 15px #ff795b99}
@keyframes search-bob{50%{transform:translateY(-7px) rotate(3deg)}}@keyframes search-orbit{to{transform:rotate(360deg)}}@keyframes clock-warning{50%{box-shadow:0 0 0 3px #ff9b5866}}
@media(max-height:350px){.network-hub{grid-template-rows:48px minmax(0,1fr);gap:8px}.network-hub .network-choice strong{font-size:23px}.network-hub .network-choice-copy{gap:2px}.network-hub .network-mascot{max-height:85px}.network-quick strong{font-size:21px}.network-quick small{font-size:11px}.network-quick{padding:6px 11px}.search-stage .network-mascot{height:100px;width:115px}.search-copy strong{font-size:25px}.network-touch .search-copy p{font-size:14px}.search-copy small{font-size:12px}}
@media(prefers-reduced-motion:reduce){.search-stage .network-mascot,.search-question,.search-orbit,.round-clock.urgent{animation:none}}

/* Small independent layers bring the painted welcome scene to life. */
.welcome-life{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}.menu-top,.menu-content,.menu-world-strip{position:relative;z-index:1}.welcome-balloon{position:absolute;left:42%;top:12%;height:85px;width:46px;opacity:.8;animation:welcome-float 5s ease-in-out infinite}.welcome-gulls{position:absolute;left:24%;top:25%;width:125px;opacity:.8;animation:welcome-glide 13s ease-in-out infinite alternate}.gull-wing{transform-origin:50% 50%;animation:welcome-wings 1s ease-in-out infinite}.welcome-mote{position:absolute;width:5px;height:5px;border-radius:50%;background:#fff6b4;box-shadow:0 0 8px #e5ffc1;left:31%;top:65%;animation:welcome-spark 3s ease-in-out infinite}.mote-two{left:44%;top:77%;animation-delay:1s}.mote-three{left:14%;top:56%;animation-delay:2s}
@keyframes welcome-float{50%{transform:translate(-12px,-9px) rotate(-4deg)}}@keyframes welcome-glide{to{transform:translate(85px,-15px)}}@keyframes welcome-wings{50%{transform:scaleY(.5)}}@keyframes welcome-spark{50%{opacity:.2;transform:translate(11px,-20px)}}
@media(max-height:350px){.welcome-balloon{height:62px;width:34px;top:20%}.welcome-gulls{width:95px;top:25%}}
@media(prefers-reduced-motion:reduce){.welcome-life *{animation:none!important}}

/* One-touch language flags, with a persistent selection and a full finger target. */
.language-picker{display:flex;align-items:center;gap:5px;flex:none;min-height:44px}
.language-button{position:relative;display:grid;place-items:center;flex:none;width:44px;height:44px;padding:6px;background:#fff3cf;border:2px solid #6b8155;border-radius:8px;box-shadow:0 3px 0 #829063;cursor:pointer}
.language-flag{width:30px;height:20px;border-radius:2px;box-shadow:0 0 0 1px #203d3540;overflow:hidden;pointer-events:none}
.language-button[aria-pressed=true]{background:#c9eba4;border-color:#263e35;box-shadow:0 3px 0 #395744,inset 0 2px 0 #edffd3}
.language-button[aria-pressed=true]:after{content:'✓';position:absolute;right:-3px;bottom:-3px;display:grid;place-items:center;width:15px;height:15px;border:1px solid #fff3cf;border-radius:50%;background:#365c40;color:#fff;font-size:10px;font-weight:900;pointer-events:none}
.language-button:focus-visible{outline:3px solid #c87543;outline-offset:3px}
.settings-row .language-picker{margin-left:auto}

/* Precision aim stays reachable after walking, jumping and camera gestures. */
.aim-controls{bottom:125px;width:280px;padding:10px 16px;max-height:calc(100dvh - 158px);overflow:auto;overscroll-behavior:contain}
.aim-controls input,.aim-controls #power{height:44px;margin:0;touch-action:none;background:linear-gradient(90deg,#648c62 var(--value,50%),#b8bca1 var(--value,50%)) center/100% 5px no-repeat}
.aim-controls #power{background-image:linear-gradient(90deg,#cf9350 var(--value,70%),#b8bca1 var(--value,70%))}
.aim-controls input::-webkit-slider-thumb{width:28px;height:28px;box-shadow:0 2px 0 #3c674a;border:3px solid #477e58;background:#faffde}
.aim-controls input::-moz-range-thumb{width:24px;height:24px;border:3px solid #477e58;background:#faffde}
.evading .walk-controls button,.evading .mobility-actions button{border-color:#ffe49a;box-shadow:0 0 0 2px #ffda8a44,0 3px 0 #243d29}
.evading .movement-meter{color:#fff0b2;font-weight:800}.evading .arsenal{opacity:.65}
@media(max-height:350px){.aim-controls{bottom:120px;padding:6px 14px;max-height:calc(100dvh - 145px)}}

.music-settings{grid-template-columns:1fr auto 110px!important;gap:8px!important}.music-toggle{min-width:60px;min-height:44px;border-radius:6px;border:2px solid #57704e;background:#f7edcd;color:#375038;font:700 14px var(--display)}.music-toggle[aria-pressed=true]{background:#cadc9f}.music-settings input{height:44px;width:100%;accent-color:#547a4c;touch-action:none}.settings-modal{max-height:calc(100dvh - 24px);overflow:auto}

#menu-music[aria-pressed=true]{background:#cde5a4}#menu-music[aria-pressed=false] .ui-icon{opacity:.55}@media(max-width:600px){.menu-tools{gap:5px}.menu-top{gap:8px}}

.menu-listen{display:flex;align-items:center;gap:6px;min-height:44px;margin-top:9px;padding:4px 10px;border:2px solid #395744;border-radius:7px;background:#fff1c6e8;color:#284b3c;font:700 12px var(--display);box-shadow:0 2px 0 #395744}.menu-listen[hidden]{display:none}.menu-listen .ui-icon{width:21px;height:21px}

.ad-reward{margin:7px 0;display:grid;gap:4px}.ad-reward-button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;width:100%;border:2px solid #5b7950;border-radius:7px;background:#dcecb4;color:#2e4935;font:700 14px var(--display)}.ad-reward small{font-size:10px;color:#e4e3cf}.ad-reward-button:disabled{opacity:.5}.ad-age-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.ad-age-options button{min-height:48px;padding:6px;border:2px solid #597854;border-radius:7px;background:#fff1c6;color:#284b3c;font:700 15px var(--display)}.result-modal:has(.ad-reward){max-height:calc(100dvh - 16px);overflow:auto;padding:16px}.result-modal:has(.ad-reward) .winner-art{height:46px}.result-modal:has(.ad-reward) h2{margin:5px 0;font-size:28px}.result-modal:has(.ad-reward) .reward-card{margin:4px 0}.result-modal:has(.ad-reward) p{margin:4px 0}.result-modal:has(.ad-reward)>button{min-height:44px;margin:4px 0}
