:root{color-scheme:dark;font-family:system-ui,-apple-system,"Segoe UI",Tahoma,sans-serif;background:#07111d;color:#ecf7ff}*{box-sizing:border-box}body{margin:0;overscroll-behavior:none}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;font-size:13px;font-weight:600;color:#d9edff;background:#152b40;border:1px solid #294358;border-radius:13px;min-height:44px;padding:9px 13px;cursor:pointer;touch-action:manipulation}button:hover{background:#22445e}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #6ed9ff;outline-offset:3px}button:disabled{opacity:.4;cursor:default}[hidden]{display:none!important}.game-shell{height:100svh;height:100dvh;min-height:460px;max-width:620px;margin:auto;display:flex;flex-direction:column;padding:env(safe-area-inset-top) max(12px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(12px,env(safe-area-inset-left));background:linear-gradient(#101f30,#07111d)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:60px;border-bottom:1px solid #203347}.topbar a{color:#81cfff;text-decoration:none;font-weight:700;min-height:44px;display:flex;align-items:center}.topbar>span{font-size:14px;font-weight:700}.topbar button{font-size:11px;padding:8px}.hud{display:flex;align-items:center;gap:14px;padding:12px 2px}.hud small{display:block;color:#8aadc5;font-size:10px;letter-spacing:1px}.hud strong{font-size:19px}.hud-stats{margin-inline-start:auto;display:flex;gap:12px;direction:ltr;font-variant-numeric:tabular-nums;align-items:center}.hud-stats span{color:#68c7ff;background:#142f45;padding:7px 10px;border-radius:10px}.battlefield{position:relative;flex:1;min-height:200px;overflow:hidden;border:1px solid #294354;border-radius:23px;background:#0d2232;box-shadow:inset 0 0 70px #050e1b}canvas{width:100%;height:100%;display:block;touch-action:none;user-select:none;-webkit-user-select:none}.legend{position:absolute;bottom:9px;left:0;right:0;display:flex;justify-content:center;gap:18px;font-size:10px;pointer-events:none;color:#9bb5c7}.legend span:first-child{color:#63c7ff}.legend span:nth-child(2){color:#ff9f95}.tutorial{pointer-events:none;position:absolute;bottom:15%;left:8%;right:8%;display:flex;flex-direction:column;align-items:center;text-align:center;background:#0a1929ed;border:1px solid #3b687c;border-radius:16px;padding:12px;gap:5px}.tutorial b{font-size:14px}.tutorial>span:last-child{font-size:11px;color:#a7c4d4}.hand{font-size:25px;animation:drag 2.2s infinite}@keyframes drag{0%,100%{transform:translate(35px,9px);opacity:.5}60%{transform:translate(-20px,-22px);opacity:1}}.controls{display:flex;flex-wrap:wrap;justify-content:space-between;gap:7px;padding:12px 0 6px}.controls button{flex:1;font-size:12px;white-space:nowrap}.controls p{width:100%;font-size:10px;color:#91acbf;text-align:center;margin:2px 0 5px;line-height:1.6}dialog{color:#ecf7ff;border:1px solid #36536a;background:#0e2032;border-radius:25px;padding:0;width:min(92vw,460px);max-height:88dvh;box-shadow:0 24px 100px #0009}dialog::backdrop{background:#020a14bb;backdrop-filter:blur(6px)}.dialog-inner{padding:25px 22px;text-align:center}.eyebrow{font-size:11px;color:#6dcaff;letter-spacing:2px}h1{font-size:26px;line-height:1.4;margin:10px 0}dialog p{font-size:13px;color:#a2bfd2;line-height:1.8}.primary{background:#6ad4ff;color:#071b29;border:0;font-size:16px;width:100%;margin-top:12px;min-height:50px}.primary:hover{background:#95e1ff}#resume{width:100%;margin-top:8px}.level-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:17px 0;max-height:38dvh;overflow:auto}.level-grid button{padding:6px 2px;min-height:53px;font-size:14px}.level-grid small{display:block;font-size:8px;color:#ffda79;min-height:11px}.level-grid .selected{border-color:#6ad4ff;background:#224963}.stars{color:#ffda79;font-size:36px;letter-spacing:8px}.save-note{font-size:10px!important}#amount[aria-pressed=true]{border-color:#6ad4ff;color:#6ad4ff}@media(max-height:530px) and (orientation:landscape){.game-shell{max-width:100%;display:grid;grid-template-columns:170px 1fr;grid-template-rows:55px 1fr;padding:5px 12px;gap:7px}.topbar{grid-column:1;min-height:45px}.topbar>span{display:none}.hud{grid-column:1;grid-row:2;align-self:start;flex-wrap:wrap}.battlefield{grid-column:2;grid-row:1/3}.controls{grid-column:1;grid-row:2;align-self:end}.controls button{flex-basis:100%;min-height:38px}.controls p{display:none}.tutorial{bottom:12%;padding:7px}.tutorial .hand{display:none}}@media(prefers-reduced-motion:reduce){.hand{animation:none}}

/* The shared analytics helper adds a site rail; keep it outside the immersive battle. */
.game-shell>.help-net,.game-shell>.footer-tagline{display:none}

.hud #pause{min-width:44px}
@media(max-height:530px) and (orientation:landscape){.game-shell{min-height:0;grid-template-rows:55px minmax(0,1fr)}.battlefield{min-height:0}.controls button{min-height:44px}.controls{padding-bottom:0}}

/* 3D desert-oasis battlefield (v3) */
.has-3d .battlefield{background:#f4d9a2;border-color:#e3bd7c;box-shadow:0 10px 40px #0007}
.battle3d{position:absolute;inset:0;width:100%;height:100%;display:block}
.has-3d #battle{position:absolute;inset:0;background:transparent;z-index:2}
.has-3d .legend{display:none}
.labels3d{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}
.tl{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:center;gap:1px;will-change:transform;direction:ltr}
.tl b{font:800 15px/1 system-ui,-apple-system,sans-serif;color:#fff;background:#8f99a3;border:2px solid #fff;border-radius:10px;padding:3px 7px;min-width:30px;text-align:center;box-shadow:0 2px 0 #0003;font-variant-numeric:tabular-nums}
.tl i{font-style:normal;font-size:8px;letter-spacing:1px;color:#fff;text-shadow:0 1px 2px #000a}
.tl em{font-style:normal;font-size:9px;font-weight:800;color:#3b2a14;background:#ffe7b0;border-radius:6px;padding:0 5px;margin-top:1px}
.tl[data-o="0"] b{background:#2f8cff}.tl[data-o="1"] b{background:#ff4b4b}.tl[data-o="2"] b{background:#f0a400}.tl[data-o="3"] b{background:#8b5cf6}
.hud{gap:10px;padding:10px 2px}
.hud-mid{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.hud-mid strong{font-size:14px;text-align:center}
.power{display:flex;height:18px;border-radius:10px;overflow:hidden;border:2px solid #fff;background:#9aa3ad;box-shadow:0 2px 8px #0006;direction:ltr}
.power i{flex:1 1 0;transition:flex-grow .4s ease;min-width:0;position:relative}
.power .p0{background:linear-gradient(#5aa8ff,#1f6fe0)}.power .p1{background:linear-gradient(#ff7474,#d82f2f)}.power .p2{background:linear-gradient(#ffc94d,#e09400)}.power .p3{background:linear-gradient(#b493ff,#7c4ddd)}
.power .p0::after{content:attr(data-pct);position:absolute;left:6px;top:50%;transform:translateY(-50%);font:800 10px system-ui;color:#fff;text-shadow:0 1px 2px #0008}
.hud-stats{gap:6px}.hud-stats span,.hud-stats time{font-size:11px}
.topbar #sound{min-width:44px;font-size:16px}
.coach-hand{position:absolute;left:0;top:0;z-index:3;font-size:34px;pointer-events:none;filter:drop-shadow(0 3px 4px #0007);animation:coach 2s ease-in-out infinite}
@keyframes coach{0%{transform:translate(var(--ax,40%),var(--ay,70%)) scale(1);opacity:0}15%{opacity:1;transform:translate(var(--ax,40%),var(--ay,70%)) scale(.9)}75%{opacity:1;transform:translate(var(--bx,50%),var(--by,40%)) scale(.9)}100%{opacity:0;transform:translate(var(--bx,50%),var(--by,40%)) scale(1)}}
.has-3d .tutorial{z-index:3;top:8px;bottom:auto;padding:9px 12px;background:#fff8e8f2;color:#3b2a14;border-color:#e3bd7c;box-shadow:0 6px 20px #0004}
.has-3d .tutorial>span:last-child{color:#6b5233}.has-3d .tutorial .hand{display:none}
.toast{position:absolute;z-index:4;left:10%;right:10%;bottom:12px;display:flex;flex-direction:column;gap:3px;text-align:center;background:#2b1d0ef0;color:#ffe9bf;border:1px solid #e3bd7c;border-radius:16px;padding:10px 12px;pointer-events:none}
.toast b{font-size:14px}.toast span{font-size:11px;color:#f5dcae;line-height:1.6}
.toast.show{animation:toast .4s cubic-bezier(.2,1.4,.4,1)}@keyframes toast{from{transform:translateY(20px) scale(.9);opacity:0}}
.level-grid .challenge{border-color:#8a6a2c;background:#2a2312}
@media(prefers-reduced-motion:reduce){.coach-hand,.toast.show{animation:none}}
