@font-face{font-family:'Barlow';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/barlow-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:500;font-display:swap;src:url('assets/fonts/barlow-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/barlow-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:700;font-display:swap;src:url('assets/fonts/barlow-latin-700-normal.woff2') format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:800;font-display:swap;src:url('assets/fonts/barlow-latin-800-normal.woff2') format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:900;font-display:swap;src:url('assets/fonts/barlow-latin-900-normal.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/barlow-condensed-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url('assets/fonts/barlow-condensed-latin-700-normal.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:800;font-display:swap;src:url('assets/fonts/barlow-condensed-latin-800-normal.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:900;font-display:swap;src:url('assets/fonts/barlow-condensed-latin-900-normal.woff2') format('woff2')}
:root{font-family:Barlow,system-ui,sans-serif;font-synthesis:none;color-scheme:dark;color:#fff8e9;background:#11182a;--mint:#8cffe0;--coral:#ffa28e;--display:'Barlow Condensed',Impact,sans-serif}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}button,select,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;touch-action:manipulation;user-select:none;-webkit-user-select:none}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ffe59a;outline-offset:4px}.battle{position:fixed;inset:0;background:#152943}.battle canvas{display:block;width:100%;height:100%;touch-action:none}.arena-vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(#0b123ab3,transparent 23%,transparent 75%,#0c153475),linear-gradient(90deg,#0d21331f,transparent 25%,transparent 75%,#0d21331f)}
.brand{position:absolute;left:max(28px,env(safe-area-inset-left));top:max(24px,env(safe-area-inset-top));display:flex;gap:12px;align-items:center;pointer-events:none}.brand-mark{display:grid;place-content:center;width:45px;height:46px;background:var(--mint);border-radius:13px;color:#15312c;font:900 24px var(--display);letter-spacing:-2px;transform:rotate(-8deg);box-shadow:0 4px 0 #2f9c83;position:relative}.brand-mark span{position:absolute;right:-9px;top:-10px;color:#ffe2a1;font-size:30px;text-shadow:1px 2px #152537}.wordmark{font:900 20px/.9 var(--display);letter-spacing:1.2px}.wordmark b{font-size:26px}
.scoreboard{position:absolute;top:max(19px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);display:flex;align-items:flex-start;gap:12px;pointer-events:none;width:550px;max-width:64vw}.team-card{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:10px 14px 10px 7px;background:linear-gradient(145deg,#132f40e6,#151c36d9);border:1px solid #b2ffe935;border-top:2px solid var(--mint);border-radius:16px;box-shadow:0 5px 16px #031b344d;backdrop-filter:blur(10px)}.raccoon-card{background:linear-gradient(145deg,#38263ce6,#191d36d9);border-top-color:var(--coral)}.avatar{flex-shrink:0;width:43px;height:45px;background-image:url(assets/critters-v2.png);background-size:400% 100%;background-repeat:no-repeat}.fox-avatar{background-position:0 0}.raccoon-avatar{background-position:66.66% 0}.team-text{flex:1;min-width:0}.team-text small{display:block;font-size:8px;letter-spacing:1.1px;font-weight:700;color:var(--mint)}.raccoon-card small{color:var(--coral)}.team-text strong{font-size:19px;letter-spacing:-.3px;display:block;white-space:nowrap}.health-track{height:4px;background:#ffffff1a;border-radius:4px;margin-top:6px;overflow:hidden}.health-track i{display:block;background:var(--mint);height:100%;transition:width .4s ease}.raccoon-card .health-track i{background:var(--coral)}.team-hp{font:800 28px/.9 var(--display);color:var(--mint)}.raccoon-card .team-hp{color:var(--coral)}.team-hp small{display:block;text-align:right;font:600 8px Barlow,sans-serif;margin-top:6px;color:#c5d5d9}.round-clock{width:66px;flex-shrink:0;text-align:center;background:#17203bdd;border:1px solid #fff3;border-radius:0 0 17px 17px;padding:8px 6px 10px;margin-top:-19px;box-shadow:0 6px 15px #051c3433}.round-clock small{font-size:8px;color:#c8d4e5;letter-spacing:1px;display:block}.round-clock strong{font:800 37px/1.05 var(--display);display:block}.round-clock span{font-size:6px;letter-spacing:1.5px;color:#a1b1cc}.round-clock.urgent strong{color:#ffae88;animation:urgent .5s alternate infinite}.top-actions{position:absolute;right:max(24px,env(safe-area-inset-right));top:max(24px,env(safe-area-inset-top));display:flex;gap:7px}.icon-button{display:grid;place-items:center;width:42px;height:42px;border:1px solid #e7ffff38;background:#15213dc9;border-radius:12px;font-weight:800;font-size:20px;box-shadow:0 4px 10px #031d3b33}.icon-button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.icon-button:hover{background:#34445c}#fullscreen{display:none}.world-caption{position:absolute;left:max(29px,env(safe-area-inset-left));top:98px;display:flex;align-items:center;gap:8px;font-size:9px;font-weight:800;letter-spacing:1.5px;color:#c8edea;text-shadow:0 1px 8px #122540}.world-dot{height:5px;width:5px;background:var(--mint);border-radius:50%;box-shadow:0 0 12px #8cffe0}.world-caption small{font-size:9px;margin-left:9px;border-left:1px solid #ffffff36;padding-left:14px;color:#d6dfe6}.world-caption small span{color:#ffe59c;font-size:12px}.turn-banner{position:absolute;left:50%;top:104px;transform:translateX(-50%);display:flex;align-items:center;gap:8px;padding:8px 16px;background:#111c34a1;border:1px solid #ffffff24;border-radius:30px;font-size:11px;white-space:nowrap;pointer-events:none;box-shadow:0 4px 12px #061e3126}.turn-pip{width:6px;height:6px;border-radius:50%;background:var(--mint)}.aim-hint{position:absolute;left:50%;top:75%;transform:translate(-50%,-50%);text-align:center;padding:11px 18px;background:#11273b9c;border:1px solid #a6ffe135;border-radius:13px;pointer-events:none;transition:opacity .3s;box-shadow:0 6px 20px #101a2626}.aim-hint b{display:block;color:#b3ffe6;font-size:10px;letter-spacing:2px}.aim-hint span{display:block;color:#d1e5e7;font-size:11px;margin-top:5px}.battle-bottom{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);display:flex;gap:18px;color:#a6c4d56b;letter-spacing:1.4px;font-size:7px;pointer-events:none}.event-banner{position:absolute;left:50%;top:25%;transform:translateX(-50%);font:900 28px var(--display);letter-spacing:1.5px;color:#ffe59c;text-shadow:0 3px 0 #263953,0 0 18px #8cffe044;pointer-events:none;opacity:0}
.command-deck{position:fixed;bottom:max(34px,calc(env(safe-area-inset-bottom) + 12px));left:50%;transform:translateX(-50%);z-index:4;width:330px;pointer-events:none}.arsenal{pointer-events:auto}.weapons{display:flex;gap:9px}.weapon{position:relative;flex:1;min-width:0;padding:6px 6px 8px;background:linear-gradient(150deg,#253949ee,#16223be6);border:1px solid #93c3cc42;border-bottom:3px solid #0e1d30;border-radius:16px;box-shadow:0 5px 16px #04172c4d;transition:transform .14s,border-color .14s}.weapon.selected{background:linear-gradient(150deg,#2b565fee,#1f3649ee);border-color:#8cffe0;box-shadow:0 0 0 2px #8cffe015,0 5px 16px #04172c4d;transform:translateY(-5px)}.weapon-art{width:100%;height:42px;filter:drop-shadow(0 3px 2px #0004);overflow:visible}.weapon strong{display:block;font-size:11px;font-weight:800}.weapon small{font-size:6px;letter-spacing:1px;color:#a8becd;display:block;margin-top:3px}.weapon-key{position:absolute;right:6px;top:5px;font-size:7px;color:#6c8b9e;border:1px solid #6c8b9e44;border-radius:4px;padding:1px 4px}.weapon.selected strong{color:var(--mint)}.weapon.selected .weapon-art{animation:weapon-float 2.8s ease-in-out infinite}.aim-chip{display:flex;gap:13px;align-items:center;justify-content:center;margin:9px auto 0;padding:6px 14px;font-size:11px;background:#15243be6;border:1px solid #a7d6dc26;border-radius:30px;color:#bdcfdb;pointer-events:auto}.aim-chip output{color:#ffe59d;font-weight:700}.aim-chip b{font-size:7px;letter-spacing:1px;color:#83b4bc}.aim-controls{position:absolute;bottom:133px;left:50%;transform:translateX(-50%);padding:15px 18px;background:#18293bf5;border:1px solid #8cffe061;border-radius:16px;width:280px;pointer-events:auto;box-shadow:0 10px 30px #07193188}.aim-controls[hidden]{display:none}.aim-controls label{font-size:11px;display:block;color:#c2d3df}.aim-controls input{display:block;width:100%;appearance:none;touch-action:pan-x;height:5px;background:linear-gradient(90deg,#8cffe0 var(--value,50%),#465061 var(--value,50%));border-radius:6px;margin:15px 0}.aim-controls input::-webkit-slider-thumb{appearance:none;width:23px;height:23px;border-radius:50%;background:#d4ffed;border:3px solid #7ff5d2;box-shadow:0 0 0 5px #8cffe015}.aim-controls input::-moz-range-thumb{width:23px;height:23px;border-radius:50%;background:#d4ffed;border:3px solid #7ff5d2}.aim-controls #power{background:linear-gradient(90deg,#ffd891 var(--value,70%),#465061 var(--value,70%))}.fire-controls{position:fixed;left:calc(50vw - 165px + 50vw - 155px);bottom:0;pointer-events:auto;display:flex;flex-direction:column;align-items:center;width:124px}.fire-button{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;justify-content:center;width:110px;height:110px;border-radius:50%;color:#533444;background:linear-gradient(155deg,#fff0b2,#ffc18b 55%,#ff8d74);border:5px solid #ffedd0;border-bottom-color:#d97568;box-shadow:0 0 0 7px #382f536b,0 9px 0 #784258,0 15px 35px #081a344d;transition:transform .1s;touch-action:none}.fire-button svg{width:30px;height:30px;fill:none;stroke:#7d4953;stroke-width:1.7}.fire-button span{font:900 29px var(--display);letter-spacing:1px}.fire-button:active:not(:disabled){transform:translateY(4px) scale(.97)}.fire-button.charging{box-shadow:0 0 0 7px #83ffd75c,0 0 28px #8cffe086,0 9px 0 #784258;background:linear-gradient(145deg,#e9ffb4,#baf0a2 50%,#ffd28a)}.fire-button.charging:before{content:'';position:absolute;inset:-13px;border-radius:50%;background:conic-gradient(#8cffe0 var(--charge,0%),#e7fff220 0);z-index:-2;mask:radial-gradient(transparent 64%,#000 66%)}.fire-controls>small{font-size:7px;letter-spacing:1px;color:#d4dde5;text-align:center;margin-top:15px;text-shadow:0 1px 7px #15273c}.game-footer{position:fixed;left:max(26px,env(safe-area-inset-left));bottom:max(40px,calc(env(safe-area-inset-bottom) + 12px));z-index:4;pointer-events:none}.movement{position:relative;pointer-events:auto}.walk-controls{display:flex;gap:8px}.walk-controls button{height:61px;width:65px;border:1px solid #b8e8ed45;border-bottom:3px solid #13343c;border-radius:18px;background:linear-gradient(145deg,#243e52d6,#1b2c41d9);color:#cffff0;font-size:23px;box-shadow:0 5px 14px #0420354d;touch-action:none}.walk-controls button:active:not(:disabled){background:#316a68;transform:translateY(2px)}.mobility-actions{display:flex;gap:8px;margin-bottom:11px}.mobility-actions button{width:65px;height:57px;display:flex;flex-direction:column;justify-content:center;align-items:center;background:linear-gradient(150deg,#214758d9,#152b40d9);border:1px solid #8cffe055;border-bottom:3px solid #0b2937;border-radius:18px;font-size:29px;line-height:.8;color:var(--mint);touch-action:none}.mobility-actions small{font:800 7px Barlow,sans-serif;letter-spacing:1px;margin-top:7px;color:#badbdc}.mobility-actions #dash{border-color:#ffa28e66;color:#ffc399}.movement-meter{position:absolute;bottom:-20px;left:0;right:0;font-size:9px;text-align:center;color:#9acbbb;letter-spacing:1px}.emotes{position:absolute;left:157px;bottom:0;display:flex;flex-direction:column;gap:6px;pointer-events:auto}.emotes button{height:31px;width:31px;background:#1b3047b3;border:1px solid #caffdf26;border-radius:10px;color:#c4efde;font-size:17px}.mode-control{display:none}
.overlay{position:absolute;inset:0;z-index:20;display:grid;place-items:center;background:#071629b0;backdrop-filter:blur(10px);padding:20px}.overlay[hidden]{display:none}.modal{width:min(430px,90vw);max-height:90svh;overflow:auto;text-align:center;background:linear-gradient(150deg,#244556,#152139);border:1px solid #8cffe057;border-radius:24px;box-shadow:0 20px 70px #04112799;padding:26px 30px}.modal .eyebrow{color:var(--mint);font-size:9px;letter-spacing:2.5px;font-weight:800}.modal h2{font:900 41px/.95 var(--display);margin:10px 0 14px;color:#fff0c8}.modal p{font-size:12px;color:#c5d6df;line-height:1.5}.primary-button{background:var(--mint);color:#183d3e;border-radius:13px;width:100%;padding:13px 15px;font-weight:800;margin-top:12px;font-size:13px;border-bottom:3px solid #4ca694}.secondary-button{background:#ffffff0d;border:1px solid #b2d8e03b;color:#cfe3e8;border-radius:12px;width:100%;padding:11px;font-weight:600;font-size:12px;margin-top:9px}.modal .help-line{text-align:left;border-top:1px solid #fff1;display:flex;gap:12px;font-size:12px;line-height:1.5;padding:9px 0;color:#c6dae0}.help-line b{color:var(--mint);font-size:18px}.modal .winner-art{height:110px;max-width:150px;background-image:url(assets/critters-v2.png);background-size:400% 100%;background-repeat:no-repeat;margin:auto}.settings-row{text-align:left;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0;font-size:12px;color:#bdd5df}.settings-row select{font:600 12px Barlow,sans-serif;background:#102a3b;border:1px solid #5b8d976b;color:#e7fff4;padding:11px;border-radius:10px;min-width:180px}.rotate-phone{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@keyframes weapon-float{0%,100%{transform:rotate(-4deg) translateY(0)}50%{transform:rotate(-4deg) translateY(-3px)}}@keyframes urgent{to{opacity:.55}}
@media(max-width:1100px){.brand{display:none}.world-caption{top:84px;left:max(20px,env(safe-area-inset-left))}.top-actions{right:max(18px,env(safe-area-inset-right));top:18px;gap:5px}.top-actions .icon-button{width:35px;height:35px;border-radius:11px;font-size:17px}.scoreboard{width:450px;max-width:58vw;gap:8px;left:45%;top:14px}.team-card{padding:7px 10px 7px 5px;gap:6px;border-radius:13px}.avatar{width:32px;height:34px}.team-text strong{font-size:15px}.team-text small{font-size:6px}.team-hp{font-size:23px}.team-hp small{font-size:6px}.round-clock{width:54px;margin-top:-14px;padding-top:6px}.round-clock strong{font-size:30px}.round-clock small{font-size:6px}.round-clock span{font-size:5px}.turn-banner{top:83px;font-size:10px;padding:7px 13px}.command-deck{width:282px;bottom:max(29px,calc(env(safe-area-inset-bottom) + 10px))}.weapon-art{height:32px}.weapon{padding:5px 4px 7px;border-radius:14px}.weapon strong{font-size:10px}.weapon small{font-size:5px}.fire-controls{left:calc(100vw - 50vw + 141px - 142px);width:110px}.fire-button{width:94px;height:94px;border-width:4px}.fire-button span{font-size:25px}.fire-button svg{width:25px;height:25px}.fire-controls>small{font-size:6px}.game-footer{left:max(18px,env(safe-area-inset-left));bottom:max(34px,calc(env(safe-area-inset-bottom) + 10px))}.walk-controls button{width:55px;height:51px;font-size:20px;border-radius:15px}.mobility-actions{margin-bottom:8px}.mobility-actions button{width:55px;height:48px;border-radius:15px;font-size:25px}.mobility-actions small{font-size:6px}.emotes{left:128px}.aim-hint{top:73%;padding:8px 13px}.aim-hint b{font-size:8px}.aim-hint span{font-size:9px}.battle-bottom{font-size:6px;bottom:9px}.modal{padding:20px 25px}.modal h2{font-size:32px}.modal .winner-art{height:80px}}
@media(max-height:450px){.world-caption{top:80px;font-size:7px;letter-spacing:1px}.world-caption small{font-size:7px;margin-left:4px;padding-left:7px}.turn-banner{top:75px;font-size:9px}.aim-hint{top:69%;padding:6px 10px}.aim-hint span{font-size:8px}.event-banner{top:27%;font-size:24px}.command-deck{bottom:max(22px,calc(env(safe-area-inset-bottom) + 5px))}.game-footer{bottom:max(24px,calc(env(safe-area-inset-bottom) + 5px))}.fire-controls{bottom:0}.modal{max-height:calc(100svh - 24px);padding:17px 24px}.modal h2{font-size:29px}.modal p{font-size:11px}.modal .help-line{font-size:10px;padding:7px 0}.modal .primary-button{padding:10px;margin-top:8px}.modal .winner-art{height:50px}.settings-row{margin:9px 0}}
@media(max-width:740px){.scoreboard{width:375px;max-width:61vw;left:43%}.avatar{display:none}.team-text strong{font-size:14px}.team-text small{font-size:5px}.team-hp{font-size:20px}.top-actions .icon-button{width:30px;height:32px}.top-actions{gap:4px;right:12px}.top-actions #restart{display:none}.command-deck{width:240px;left:51%}.weapon-key{display:none}.weapon-art{height:27px}.weapon strong{font-size:9px}.weapon small{letter-spacing:.6px}.aim-chip{gap:8px;font-size:10px;padding:5px 10px}.aim-chip b{font-size:6px}.fire-controls{left:calc(100vw - 51vw + 120px - 115px);width:96px}.fire-button{width:82px;height:82px}.fire-button span{font-size:22px}.fire-controls>small{font-size:5px}.game-footer{left:12px}.walk-controls button{width:47px;height:47px}.mobility-actions button{width:47px;height:44px}.emotes{display:none}.aim-hint{display:none}.world-caption{font-size:6px}.world-caption small{display:none}.battle-bottom{display:none}}
@media(orientation:portrait){.mobile-game .rotate-phone,.native-game .rotate-phone{display:flex;position:fixed;inset:0;z-index:40;background:radial-gradient(ellipse at 50% 25%,#25495c,#111a32 75%);color:#d8ffeb;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:30px}.rotate-phone span{font-size:85px;color:var(--mint);animation:weapon-float 2s ease-in-out infinite}.rotate-phone strong{font:800 32px var(--display)}.rotate-phone p{color:#acc4d0}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Fire stays in the viewport, outside the transformed central weapon strip. */
.fire-controls{left:auto;right:max(27px,env(safe-area-inset-right));bottom:max(39px,calc(env(safe-area-inset-bottom) + 12px));z-index:4;position:fixed}
.zoom-controls{position:absolute;z-index:4;right:max(25px,env(safe-area-inset-right));top:100px;display:flex;gap:5px}.zoom-controls button{height:35px;min-width:35px;padding:0 10px;background:#15213cb0;border:1px solid #adf4ef35;border-radius:10px;color:#d2fff1;font-size:19px}.zoom-controls #zoom-reset{font-size:9px;letter-spacing:1px;font-weight:800;min-width:51px}.turn-banner{max-width:43vw}.turn-banner #turn-label{overflow:hidden;text-overflow:ellipsis}.fire-button.charging{animation:charge-pulse .4s ease-in-out infinite}.fire-controls,.game-footer,.command-deck{transition:opacity .15s}
@keyframes charge-pulse{50%{filter:brightness(1.13)}}
@media(max-width:1100px){.fire-controls{left:auto;right:max(19px,env(safe-area-inset-right));bottom:max(32px,calc(env(safe-area-inset-bottom) + 8px))}.zoom-controls{top:75px;right:max(18px,env(safe-area-inset-right))}.zoom-controls button{height:34px;min-width:34px}.zoom-controls #zoom-reset{min-width:46px;font-size:8px}.turn-banner{max-width:36vw}}
@media(max-width:740px){.fire-controls{left:auto;right:max(13px,env(safe-area-inset-right));bottom:max(28px,calc(env(safe-area-inset-bottom) + 6px))}.zoom-controls{right:12px;top:69px;gap:3px}.zoom-controls button{min-width:30px;height:30px;padding:0 8px}.zoom-controls #zoom-reset{min-width:42px}.turn-banner{max-width:39vw}.world-caption{top:74px}}
@media(pointer:coarse){.zoom-controls button{min-width:38px;height:38px}}
.aim-hint{top:66%}.aim-hint[hidden]{display:none}.game-fullscreen .overlay{z-index:20}
@media(max-height:450px){.aim-hint{top:61%;background:#11273b85;padding:5px 10px}.aim-hint b{font-size:7px}.aim-hint span{font-size:7px;margin-top:3px}}
/* Modals cover the fixed controls as well as the canvas. */
.overlay{position:fixed;z-index:30}.game-fullscreen .overlay{z-index:30}
/* A full-screen game lobby, sized first for landscape phones. */
.main-menu{position:fixed;inset:0;z-index:25;overflow:auto;padding:max(24px,env(safe-area-inset-top)) max(38px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(38px,env(safe-area-inset-left));background:linear-gradient(90deg,#101d30d9,#111e3470 65%,#15223be0);display:flex;flex-direction:column;justify-content:space-between;gap:16px}.main-menu[hidden]{display:none}.menu-open .scoreboard,.menu-open .top-actions,.menu-open .world-caption,.menu-open .zoom-controls,.menu-open .turn-banner,.menu-open .aim-hint,.menu-open .battle-bottom,.menu-open .command-deck,.menu-open .fire-controls,.menu-open .game-footer{visibility:hidden;pointer-events:none}.menu-top{display:flex;justify-content:space-between;align-items:center}.menu-edition{font-size:11px;letter-spacing:3px;font-weight:800;color:#bfdde3}.menu-edition b{margin-left:10px;border:1px solid #9dd3e652;border-radius:7px;padding:4px 8px;color:#ffe0b0}.menu-top select{border:1px solid #d2e9ff48;background:#172c43cc;color:#effaff;font:600 13px Barlow;padding:9px 15px;border-radius:12px}.menu-content{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:8vw;max-width:1150px;width:100%;margin:auto}.menu-kicker{font-size:10px;font-weight:800;letter-spacing:2.3px;color:#ffe0b0}.menu-hero h1{position:relative;font:900 clamp(60px,8vw,118px)/.82 var(--display);letter-spacing:-2px;transform:rotate(-4deg);margin:25px 0 24px;color:#f9f0d4;text-shadow:0 7px 0 #385069,0 10px 28px #08162988}.menu-hero h1 em{font-style:normal;color:#ffcc8c}.menu-hero h1>span{font-size:.52em;position:absolute;left:3.6em;top:.12em;color:#ffb297}.menu-hero p{color:#d0e0e7;font-size:12px;margin:10px 0}.menu-characters{display:flex;gap:3px;height:120px;max-width:400px}.menu-characters i{width:25%;height:100%;background:url(assets/critters-v2.png) no-repeat;background-size:400% 100%;animation:lobby-bob 3s ease-in-out infinite;filter:drop-shadow(0 10px 10px #0b15285c)}.menu-characters i:nth-child(2){background-position:33.333% 0;animation-delay:-.75s}.menu-characters i:nth-child(3){background-position:66.666% 0;animation-delay:-1.5s}.menu-characters i:nth-child(4){background-position:100% 0;animation-delay:-2.25s}.menu-navigation{display:flex;flex-direction:column;gap:12px}.menu-play{position:relative;display:flex;flex-direction:column;text-align:left;gap:6px;padding:22px 27px;background:linear-gradient(120deg,#ffe4a7,#ffb98a);border-radius:19px;border-bottom:6px solid #ad645b;box-shadow:0 9px 25px #05183166;color:#392e3e}.menu-play small{font:800 10px Barlow;letter-spacing:2px;opacity:.7}.menu-play strong{font:900 35px/1 var(--display)}.menu-play>span{position:absolute;right:26px;top:26px;font-size:35px}.menu-pair{display:flex;gap:12px}.menu-pair button{flex:1;border:1px solid #d2e6ff40;border-bottom:3px solid #112239;background:linear-gradient(145deg,#3e5269e6,#243851e6);padding:17px 10px;border-radius:14px;font-weight:800;font-size:13px}.menu-pair.menu-small button{padding:13px 10px;font-size:12px;background:#1d334ecc;color:#d4e4ec}.menu-navigation .secondary-button{margin:0}.menu-progress{color:#b2c6d2;font-size:10px;text-align:center}.menu-worlds{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;max-width:1150px;width:100%;margin:0 auto}.menu-worlds button{height:90px;border:1px solid #e0edff33;border-bottom:3px solid var(--accent);background:linear-gradient(transparent,#121f35ed),var(--preview) center/cover;border-radius:12px;position:relative;padding:12px;text-align:left}.menu-worlds button span{position:absolute;bottom:12px;font-size:12px;font-weight:800;color:#f8f0df;text-shadow:0 2px 8px #091a33}.menu-worlds button:hover{transform:translateY(-3px);border-color:var(--accent)}.menu-version{font-size:8px;letter-spacing:2px;align-self:center;color:#abc3d499}.level-modal{width:min(940px,94vw);padding:25px;text-align:left}.level-heading{display:flex;align-items:center;justify-content:space-between}.level-heading h2{margin-bottom:0}.level-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.level-card{position:relative;min-height:115px;padding:13px;text-align:left;border:1px solid #d8e8ff44;border-bottom:3px solid var(--accent);border-radius:14px;background:linear-gradient(#17223c33,#13223de6),var(--preview) center/cover;box-shadow:0 6px 15px #09193133;display:flex;flex-direction:column;justify-content:flex-end}.level-card:disabled{opacity:.5;filter:grayscale(.75)}.level-card strong{font-size:15px;margin:32px 0 3px}.level-card small{font-size:9px;color:#d8e3ec}.level-number{position:absolute;left:12px;top:10px;font:800 19px var(--display);color:var(--accent)}.level-status{position:absolute;right:12px;top:10px;color:#ffe1a0}.level-card.completed{border-color:#ffdb8c}.level-save{display:block;margin-top:16px;color:#b8d2da;font-size:10px;text-align:center}.world-caption{color:var(--world-accent,#c8edea)}.world-dot{background:var(--world-accent);box-shadow:0 0 12px var(--world-accent)}.zoom-controls button{border-color:color-mix(in srgb,var(--world-accent) 35%,transparent)}.arena-vignette{background:linear-gradient(#11182b77,transparent 24%,transparent 76%,#11182b55)}body[data-world=desert] .arena-vignette{background:linear-gradient(#6e411430,transparent 24%,transparent 76%,#6e351530)}body[data-world=snow] .arena-vignette{background:linear-gradient(#183c6540,transparent 24%,transparent 76%,#15335440)}
@keyframes lobby-bob{50%{transform:translateY(-8px) rotate(2deg)}}
@media(max-width:1100px),(max-height:550px){.main-menu{padding:16px max(24px,env(safe-area-inset-right)) 12px max(24px,env(safe-area-inset-left));gap:9px}.menu-content{gap:7vw;max-width:920px}.menu-top select{padding:7px 13px;font-size:11px}.menu-edition{font-size:9px}.menu-hero h1{font-size:clamp(55px,8vw,85px);margin:18px 0}.menu-kicker{font-size:8px;letter-spacing:1.3px}.menu-hero p{font-size:10px}.menu-characters{height:85px;max-width:320px}.menu-navigation{gap:8px}.menu-play{padding:15px 20px;border-radius:15px;border-bottom-width:4px}.menu-play strong{font-size:28px}.menu-play small{font-size:8px}.menu-play>span{right:18px;top:18px;font-size:27px}.menu-pair{gap:8px}.menu-pair button{padding:12px 8px;font-size:11px}.menu-pair.menu-small button{padding:9px;font-size:10px}.menu-progress{font-size:8px}.menu-worlds{gap:8px}.menu-worlds button{height:59px;padding:8px;border-radius:9px}.menu-worlds button span{bottom:7px;font-size:9px}.menu-version{font-size:6px}.level-grid{gap:8px}.level-card{min-height:90px;padding:9px}.level-card strong{font-size:12px;margin-top:22px}.level-card small{font-size:8px}.level-modal{padding:17px 20px}.level-modal h2{font-size:27px}.level-modal p{font-size:10px;margin:8px 0}.level-number{left:9px;top:6px;font-size:16px}.level-status{top:7px;right:8px}.level-save{margin-top:10px;font-size:8px}}
@media(max-height:380px){.menu-characters{height:65px}.menu-hero h1{font-size:58px;margin:13px 0}.menu-worlds button{height:46px}.menu-navigation{gap:6px}.menu-pair button{padding:10px 6px}.menu-content{gap:7vw}.menu-top select{padding:5px 10px}.menu-play{padding:12px 17px}.menu-play strong{font-size:25px}}
@media(max-width:700px){.main-menu{padding:12px 18px;gap:8px}.menu-content{gap:5vw;grid-template-columns:1fr 1.1fr}.menu-hero h1{font-size:60px}.menu-characters{height:70px}.menu-kicker{font-size:6px}.menu-hero p{font-size:8px}.menu-worlds{gap:5px}.menu-worlds button span{font-size:7px;left:6px}.menu-pair button{font-size:10px}.menu-play strong{font-size:25px}.top-actions{gap:3px}.top-actions .icon-button{width:28px}.level-grid{grid-template-columns:repeat(3,1fr)}}
@media(orientation:portrait){.main-menu{justify-content:flex-start}.menu-content{grid-template-columns:1fr;gap:20px}.menu-hero{padding-top:15px;text-align:center}.menu-hero h1{font-size:88px}.menu-characters{margin:auto;height:90px}.menu-hero h1>span{left:70%}.menu-worlds{grid-template-columns:repeat(3,1fr)}.menu-worlds button{height:76px}.menu-navigation{padding:0 8px}.menu-worlds button span{font-size:10px}.menu-version{margin:12px auto}.menu-open .rotate-phone{display:none}.level-grid{grid-template-columns:repeat(2,1fr)}}
@supports(background:color-mix(in srgb,red,blue)){
 body[data-world] .weapon.selected{border-color:var(--world-accent);background:linear-gradient(145deg,color-mix(in srgb,var(--world-shade) 75%,var(--world-accent)),var(--world-shade))}
 body[data-world] .weapon.selected strong,body[data-world] .aim-chip b,body[data-world] .aim-hint b{color:var(--world-accent)}
 body[data-world] .mobility-actions button{background:linear-gradient(145deg,color-mix(in srgb,var(--world-shade) 82%,var(--world-accent)),var(--world-shade));border-color:color-mix(in srgb,var(--world-accent) 45%,transparent)}
}
.menu-progress b{display:block;color:#ffe0a0;font-size:11px;margin-bottom:5px}.menu-progress>span{display:block}.xp-track{width:80%;height:4px;background:#9dc3d325;margin:0 auto 5px;border-radius:9px;overflow:hidden}.xp-track i{display:block;height:100%;background:linear-gradient(90deg,#ffd389,#ffb297);transition:width .5s}.reward-card{display:flex;align-items:center;justify-content:center;gap:16px;padding:10px;border:1px solid #ffdc9a40;border-radius:12px;background:#ffd78710}.reward-card strong{font-size:25px;color:#ffda8f;letter-spacing:3px}.reward-card span{font-size:12px;font-weight:800;color:#ffe4ad}.briefing-rules{display:flex;flex-direction:column;gap:7px;border:1px solid #b4d9e33b;border-radius:14px;padding:13px;color:#d0e8ed;font-size:11px}.briefing-rules b{color:#ffca97}.menu-navigation #menu-resume{padding:8px;font-size:10px}@media(max-height:400px){.menu-navigation{gap:6px}.menu-progress b{font-size:9px;margin-bottom:3px}.xp-track{margin-bottom:3px}.menu-hero h1{margin-top:12px}}
.battle-intro{position:fixed;inset:0;z-index:26;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;background:linear-gradient(transparent 16%,#122137bb 35%,#122137bb 65%,transparent 84%);pointer-events:auto;text-align:center;padding:30px}.battle-intro[hidden]{display:none}.battle-intro:before,.battle-intro:after{content:'';position:absolute;height:6vh;left:0;right:0;background:#0d1d30c9}.battle-intro:before{top:0}.battle-intro:after{bottom:0}.battle-intro small{font-size:13px;font-weight:800;letter-spacing:5px;text-transform:uppercase;color:var(--world-accent)}.battle-intro strong{font:900 clamp(38px,6vw,88px)/1 var(--display);color:#fff1cb;text-shadow:0 4px 0 #27435f}.battle-intro span{font-size:12px;letter-spacing:2px;color:#d6e9ed}.intro-active .command-deck,.intro-active .game-footer,.intro-active .fire-controls,.intro-active .aim-hint,.intro-active .turn-banner{visibility:hidden}.briefing-preview{height:120px;background:linear-gradient(transparent,#14263b99),var(--preview) center/cover;border:1px solid #b1d6dd4d;border-radius:15px;margin:14px 0;position:relative;overflow:hidden}.briefing-preview:after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,#ffffff13 48%,transparent 61%);animation:preview-shine 5s linear infinite}.briefing-preview span{position:absolute;bottom:10px;left:13px;font-size:10px;font-weight:800;color:#fff0bb;letter-spacing:1px}.briefing-modal{width:min(550px,92vw)}.result-modal .winner-art{animation:winner-bounce 2s ease-in-out infinite}.result-modal h2{animation:result-pop .45s ease-out}.reward-stars{display:flex;gap:4px}.reward-stars i{font-style:normal;display:inline-block;animation:star-pop .5s cubic-bezier(.2,1.6,.4,1) both;animation-delay:var(--star-delay)}.rank-up{color:#ffdda0;font:900 18px var(--display);letter-spacing:1px;margin-top:11px;animation:rank-glow 1.8s ease-in-out infinite}.reward-card #earned-xp{font:inherit}.result-modal{border-color:#ffdc9a70}.briefing-modal .briefing-rules{gap:5px;padding:10px}.briefing-modal h2{margin:9px 0}.briefing-modal p{margin:9px 0}
@keyframes star-pop{from{opacity:0;transform:translateY(15px) rotate(-25deg) scale(.2)}to{opacity:1;transform:none}}@keyframes result-pop{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}@keyframes winner-bounce{50%{transform:translateY(-5px) rotate(3deg)}}@keyframes rank-glow{50%{text-shadow:0 0 18px #ffc78baa}}@keyframes preview-shine{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
@media(max-height:450px){.briefing-modal{width:min(650px,94vw);padding:15px 22px}.briefing-preview{height:70px;margin:9px 0}.briefing-modal .briefing-rules{font-size:9px;gap:4px;padding:8px}.briefing-modal h2{font-size:27px}.briefing-modal p{font-size:10px;margin:7px 0}.briefing-modal .primary-button{margin-top:6px;padding:10px}.result-modal .rank-up{font-size:14px;margin-top:7px}}
/* Sunny clubhouse lobby; the illustration keeps faces clear of the navigation. */
.main-menu{isolation:isolate;background:#ead4a5}.main-menu:before{content:'';position:fixed;inset:-2%;z-index:-2;background:url(assets/welcome-garden.png) 42% 50%/cover no-repeat;animation:welcome-pan 20s ease-in-out infinite alternate;pointer-events:none}.main-menu:after{content:'';position:fixed;inset:0;z-index:-1;background:linear-gradient(90deg,#fff2d850,transparent 45%,#e8c99333 62%,#a5763655),linear-gradient(#fff0d41a,transparent 70%,#633d352a);pointer-events:none}.menu-edition{color:#4c6048;text-shadow:0 1px 3px #fff7dc}.menu-edition b{color:#665437;border-color:#a78a5899;background:#fff3d58c}.menu-top select{color:#443d35;background:#fff6e3e8;border-color:#bd9a695c;box-shadow:0 3px 10px #78451e15}.menu-hero{align-self:start;padding-top:8px}.menu-hero h1{color:#2c5147;text-shadow:0 4px 0 #fff0c0,0 7px 15px #887c4333;line-height:.86;margin:16px 0}.menu-hero h1 em{color:#d87854}.menu-hero h1>span{color:#e99855;text-shadow:0 2px 0 #fff3ce}.menu-kicker{color:#586549;text-shadow:0 1px 4px #fff4d4}.menu-hero p{color:#405244;text-shadow:0 1px 6px #fff0d2;font-weight:700;max-width:340px}.menu-characters{visibility:hidden;pointer-events:none}.menu-navigation{padding:17px;border:1px solid #fff6d999;border-radius:22px;background:#fff4dc75;box-shadow:0 9px 30px #77452124;backdrop-filter:blur(7px)}.menu-play{background:linear-gradient(120deg,#fdd38b,#f4a96f);border-bottom-color:#b76c45;color:#4f372e;box-shadow:0 4px 10px #98603a20}.menu-pair button{background:linear-gradient(145deg,#55745fec,#345249ed);border-color:#79927788;border-bottom-color:#244339;color:#fff6da;box-shadow:0 4px 10px #70482415}.menu-pair.menu-small button{background:#fff4d9c9;border:1px solid #cbb08377;border-bottom:2px solid #b89c7080;color:#65553d}.menu-navigation .secondary-button{color:#465642;border-color:#b9ad8599;background:#f7eacda8}.menu-progress{color:#665b45}.menu-progress b{color:#644d30}.xp-track{background:#907c5638}.xp-track i{background:linear-gradient(90deg,#bc8550,#df9c59)}.menu-version{color:#594933}.menu-worlds button{box-shadow:0 4px 12px #69472933}.menu-worlds button:hover{box-shadow:0 5px 15px #69472955}.intro-active .top-actions{visibility:hidden}
@keyframes welcome-pan{from{transform:scale(1) translateX(-.3%)}to{transform:scale(1.035) translateX(.4%)}}
@media(max-width:1100px),(max-height:550px){.menu-navigation{padding:11px;border-radius:18px}.menu-hero h1{margin:14px 0}.menu-content{gap:5vw;grid-template-columns:1.08fr 1fr}.menu-hero p{font-size:9px;max-width:270px}.menu-hero{padding-top:0}.menu-characters{height:72px}.menu-kicker{font-size:7px}.menu-worlds{gap:7px}}
@media(max-width:700px){.menu-navigation{padding:9px}.menu-content{gap:4vw}.menu-hero h1{font-size:56px}.menu-hero p{font-size:8px}.menu-pair button{font-size:9px}.menu-progress{font-size:7px}.menu-play strong{font-size:24px}.menu-worlds button span{font-size:7px}}
@media(orientation:portrait){.main-menu:before{background-position:25% 40%}.main-menu:after{background:linear-gradient(#fff0d850,transparent 38%,#eed6a58c)}.menu-content{grid-template-columns:1fr;gap:14px}.menu-hero{align-self:auto;padding-top:14px}.menu-hero h1{font-size:80px;max-width:350px;margin:15px auto}.menu-hero p{max-width:none;font-size:10px}.menu-characters{visibility:visible;height:78px;max-width:300px}.menu-navigation{padding:14px}.menu-kicker{font-size:8px}.menu-pair button{font-size:12px}.menu-progress{font-size:9px}.menu-worlds button span{font-size:9px}}
@media(orientation:landscape) and (max-height:550px){.menu-hero h1{font-size:50px;margin:10px 0}.menu-hero p{max-width:250px}.menu-characters{height:100px}}
@media(orientation:landscape) and (max-width:700px){.menu-hero h1{font-size:46px;margin:8px 0}.menu-characters{height:90px}}
