:root{color-scheme:dark;font-family:Inter,ui-rounded,SF Pro Rounded,system-ui,-apple-system,sans-serif;--ink: #f9f4dc;--muted: #aab9b0;--panel: rgba(14, 31, 35, .93);--panel-2: rgba(25, 49, 47, .96);--line: rgba(248, 234, 189, .15);--moss: #84b96b;--mint: #83d7bd;--amber: #e8bd5d;--coral: #e57b65;--indigo: #626690;--shadow: 0 18px 48px rgba(1, 11, 13, .35)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;overflow-x:hidden;background:radial-gradient(circle at 50% -15%,#466e6a 0,transparent 42rem),linear-gradient(160deg,#182f34,#09191e 58%,#080f18);color:var(--ink);overscroll-behavior:none}button{border:0;color:inherit;font:inherit;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:3px solid #f5d679;outline-offset:3px}.app-shell{width:min(1180px,100%);min-height:100dvh;margin:0 auto;padding:max(10px,env(safe-area-inset-top)) 12px max(14px,env(safe-area-inset-bottom))}.topbar{display:grid;grid-template-columns:minmax(200px,1fr) minmax(280px,1.2fr) auto;gap:14px;align-items:center;margin-bottom:10px;padding:10px 12px;border:1px solid var(--line);border-radius:18px;background:#07161ab8;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand-mark{display:grid;width:40px;height:40px;place-items:center;border-radius:13px 13px 13px 4px;background:linear-gradient(145deg,#9bc873,#487d64);box-shadow:inset 0 0 0 2px #ffffff29;font-size:23px}.brand-name{color:#fff4c5;font-family:Georgia,serif;font-size:clamp(18px,2vw,26px);font-weight:800;letter-spacing:.02em;line-height:1}.brand-sub{margin-top:4px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.hud-center{display:grid;grid-template-columns:auto minmax(130px,1fr);gap:12px;align-items:center}.resource-pill{display:flex;align-items:center;gap:7px;min-width:100px;padding:8px 12px;border:1px solid rgba(251,218,112,.26);border-radius:14px;background:#e8bd5d1c}.resource-icon{color:#ffd66a;filter:drop-shadow(0 0 8px rgba(255,210,83,.55))}#lumenCount{font-size:21px;font-variant-numeric:tabular-nums;font-weight:900}.wave-copy{display:flex;justify-content:space-between;color:#d6dfcf;font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.wave-track{height:9px;margin-top:6px;overflow:hidden;border-radius:99px;background:#ffffff17;box-shadow:inset 0 1px 3px #00000073}.wave-fill{width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--mint),#e2cd6f);transition:width .18s ease}.hud-actions,.tool-buttons{display:flex;gap:7px}.icon-btn,.tool-btn{min-width:42px;min-height:42px;border:1px solid rgba(255,255,255,.12);border-radius:13px;background:#ffffff12;cursor:pointer;font-weight:900;transition:.15s ease}.icon-btn:hover,.tool-btn:hover{border-color:#ffe79d57;background:#ffffff1f;transform:translateY(-1px)}.icon-btn.active,.tool-btn.active{border-color:#f4d6778c;background:#3f7669;box-shadow:0 0 0 2px #59a48d2e}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 238px;gap:12px}.stage-wrap{position:relative;align-self:start;overflow:hidden;border:1px solid rgba(241,224,174,.2);border-radius:22px;background:#1b3536;box-shadow:var(--shadow)}#gameCanvas{display:block;width:100%;height:auto;aspect-ratio:3 / 2;touch-action:none;cursor:crosshair}.scanlines{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.14;background:repeating-linear-gradient(to bottom,transparent 0,transparent 3px,rgba(7,25,29,.24) 4px);mix-blend-mode:multiply}.orb-layer{position:absolute;z-index:3;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.orb-hit{position:absolute;width:68px;height:68px;padding:0;border-radius:50%;background:transparent;cursor:pointer;pointer-events:auto;touch-action:manipulation;transform:translate(-50%,-50%);-webkit-tap-highlight-color:transparent}.orb-hit:after{position:absolute;top:17px;right:17px;bottom:17px;left:17px;border:1px dashed rgba(255,237,151,0);border-radius:50%;content:"";transition:border-color .12s ease,transform .12s ease}.orb-hit:hover:after,.orb-hit:focus-visible:after,.orb-hit:active:after{border-color:#ffed97bf;transform:scale(1.2)}.toast{position:absolute;left:50%;top:16px;z-index:6;max-width:calc(100% - 32px);padding:9px 14px;border:1px solid rgba(255,238,187,.22);border-radius:12px;background:#08181ce6;box-shadow:var(--shadow);color:#f9efcd;font-size:13px;font-weight:800;text-align:center;transform:translate(-50%,-140%);transition:transform .22s cubic-bezier(.2,.8,.2,1)}.toast.show{transform:translate(-50%)}.start-wave{position:absolute;right:17px;bottom:17px;z-index:5;padding:12px 17px;border:1px solid rgba(255,240,183,.42);border-radius:14px;background:linear-gradient(145deg,#d48f50,#a85248);box-shadow:0 8px 24px #1d100d66;color:#fff8dc;cursor:pointer;font-size:13px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.start-wave[hidden]{display:none}.lane-alert{position:absolute;left:14px;bottom:14px;padding:8px 11px;border-radius:10px;background:#5f2123d6;color:#ffcfb6;font-size:11px;font-weight:900;opacity:0;transform:translateY(10px);transition:.18s ease}.lane-alert.show{opacity:1;transform:translateY(0)}.duel-hud{position:absolute;z-index:4;top:11px;left:50%;display:grid;grid-template-columns:minmax(90px,150px) auto minmax(90px,150px);gap:9px;align-items:center;width:min(480px,calc(100% - 28px));padding:7px 10px;border:1px solid rgba(255,239,189,.2);border-radius:13px;background:#07161ad6;box-shadow:0 7px 22px #00000047;font-size:9px;font-weight:900;letter-spacing:.05em;text-align:center;text-transform:uppercase;transform:translate(-50%);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.duel-hud[hidden]{display:none}.duel-hud span{display:block;margin-bottom:3px;color:#d9e7d8}.duel-hud b{color:#f2c86b;font-size:9px}.base-track{height:7px;overflow:hidden;border-radius:99px;background:#ffffff1a}.base-track i{display:block;width:100%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#65aa72,#c2dc73);transition:width .18s ease}.base-track.enemy i{background:linear-gradient(90deg,#e17d75,#8e69ba)}.side-panel{display:flex;flex-direction:column;gap:10px}.panel{padding:12px;border:1px solid var(--line);border-radius:18px;background:var(--panel);box-shadow:var(--shadow)}.panel-title{margin-bottom:9px;color:#d7e8d5;font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.card-deck,.army-deck{display:grid;gap:7px}.army-card{position:relative;display:grid;grid-template-columns:36px 1fr auto;gap:8px;align-items:center;min-height:48px;overflow:hidden;padding:6px 8px;border:1px solid rgba(117,217,190,.18);border-radius:12px;background:#5ba68a14;cursor:pointer;text-align:left}.army-card.selected{border-color:#82e1c3b8;background:#54b5942e;box-shadow:0 0 0 2px #5ccda91f}.army-card.unaffordable{opacity:.52}.army-icon{display:grid;width:34px;height:34px;place-items:center;border-radius:11px;background:var(--army-color, #6baa73);color:#132927;font-size:19px;font-weight:900}.army-name{display:block;color:#e5f1dd;font-size:10px;font-weight:900}.army-role{display:block;margin-top:2px;color:#93aea4;font-size:8px;font-weight:800}.army-cost{color:#ffe17c;font-size:10px;font-weight:900}.army-cooldown{position:absolute;inset:auto 0 0;height:0%;background:#040c119e;pointer-events:none}.unit-card{position:relative;display:grid;grid-template-columns:42px 1fr auto;gap:9px;align-items:center;min-height:56px;overflow:hidden;padding:7px 8px;border:1px solid rgba(255,255,255,.1);border-radius:13px;background:#ffffff0e;cursor:pointer;text-align:left;transition:.13s ease}.unit-card:hover{background:#ffffff17}.unit-card.selected{border-color:#fad568b3;background:#e8bd5d21;transform:translate(-3px)}.unit-card.unaffordable{opacity:.54}.card-icon{display:grid;width:40px;height:40px;place-items:center;border-radius:12px;background:var(--card-color, #4f7d69);box-shadow:inset 0 0 0 2px #ffffff1f;font-size:23px}.card-name{display:block;font-size:12px;font-weight:900}.card-role{display:block;margin-top:3px;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.04em}.card-cost{color:#ffe17c;font-size:12px;font-weight:900}.card-cooldown{position:absolute;inset:auto 0 0;height:0%;background:#040c11a8;pointer-events:none;transition:height .1s linear}.tool-btn{flex:1;padding:5px;font-size:18px}.tool-btn small{display:block;margin-top:2px;color:#ccd8ce;font-size:8px;letter-spacing:.04em}.inspector{min-height:102px;color:#d4ddd2;font-size:12px;line-height:1.45}.inspector-empty{display:grid;min-height:76px;place-items:center;color:#85978f;text-align:center}.inspect-name{color:#fff3c8;font-size:15px;font-weight:900}.inspect-meta{margin:4px 0 8px;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase}.hp-track{height:7px;margin-top:8px;overflow:hidden;border-radius:9px;background:#ffffff1a}.hp-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#e67c68,#91ca72)}.hint-strip{display:flex;justify-content:space-between;gap:12px;margin-top:10px;padding:9px 12px;color:#90a49b;font-size:10px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;padding:18px;background:#020b0fc7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.overlay[hidden]{display:none}.menu-card,.dialog-card{width:min(860px,100%);overflow:hidden;border:1px solid rgba(255,236,180,.2);border-radius:26px;background:#10252a;box-shadow:0 30px 100px #0000008c}.menu-art{position:relative;min-height:clamp(230px,45vh,420px);background:linear-gradient(to top,#0f2529 0%,transparent 52%),url(/concept.png) center 49% / cover}.menu-art:after{position:absolute;top:0;right:0;bottom:0;left:0;content:"";background:linear-gradient(105deg,rgba(9,25,27,.72),transparent 58%)}.menu-logo{position:absolute;z-index:1;left:clamp(20px,5vw,50px);bottom:30px;width:min(500px,calc(100% - 40px))}.menu-kicker{color:#fbda73;font-size:11px;font-weight:900;letter-spacing:.2em;text-transform:uppercase}.menu-logo h1,.dialog-card h2{margin:8px 0 5px;font-family:Georgia,serif;font-size:clamp(36px,7vw,70px);line-height:.95;text-shadow:0 4px 22px rgba(0,0,0,.5)}.menu-logo p{margin:0;color:#d8e5d6;font-size:clamp(12px,2vw,16px)}.menu-actions{display:flex;align-items:center;gap:10px;padding:18px 20px}.mode-choice{display:flex;gap:5px;padding:4px;border:1px solid rgba(255,255,255,.11);border-radius:14px;background:#ffffff0b}.mode-btn{min-height:38px;padding:0 13px;border-radius:10px;background:transparent;color:#9bb0a7;cursor:pointer;font-size:11px;font-weight:900}.mode-btn.active{background:#47786d;color:#fff4c6;box-shadow:0 4px 12px #0003}.primary-btn,.secondary-btn{min-height:46px;padding:0 18px;border-radius:14px;cursor:pointer;font-weight:900}.primary-btn{background:linear-gradient(145deg,#e9bd5d,#d67852);box-shadow:0 8px 22px #ca704138;color:#142a2b}.secondary-btn{border:1px solid rgba(255,255,255,.14);background:#ffffff12}.best-run{margin-left:auto;color:#96aaa0;font-size:11px;text-align:right}.dialog-card{width:min(600px,100%);padding:24px}.dialog-card h2{font-size:clamp(28px,6vw,46px)}.tutorial-list{display:grid;gap:11px;margin:18px 0 22px}.tutorial-step{display:grid;grid-template-columns:38px 1fr;gap:11px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:14px;background:#ffffff0b}.tutorial-step span{display:grid;width:36px;height:36px;place-items:center;border-radius:11px;background:#365f58;color:#ffe49a;font-weight:900}.tutorial-step strong{display:block;margin-bottom:2px}.tutorial-step small{color:var(--muted)}.perk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.perk-card{min-height:170px;padding:18px 12px;border:1px solid rgba(255,255,255,.13);border-radius:17px;background:#ffffff0e;cursor:pointer;text-align:left;transition:.15s ease}.perk-card:hover{border-color:#ffdb6f85;background:#e8bd5d1f;transform:translateY(-4px)}.perk-icon{font-size:31px}.perk-name{display:block;margin:11px 0 6px;color:#fff0b6;font-weight:900}.perk-description{color:var(--muted);font-size:12px;line-height:1.45}.result-stars{margin:12px 0;color:#f6cc62;font-size:39px;letter-spacing:.12em}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.result-stat{padding:11px;border-radius:12px;background:#ffffff0f;text-align:center}.result-stat strong{display:block;color:#fff0b2;font-size:22px}.result-stat small{color:var(--muted);text-transform:uppercase}@media (max-width: 850px){.app-shell{padding-right:7px;padding-left:7px}.topbar{grid-template-columns:1fr auto;padding:8px}.brand-sub{display:none}.hud-center{grid-column:1 / -1;grid-row:2}.hud-actions{grid-column:2;grid-row:1}.game-layout{grid-template-columns:1fr}.side-panel{display:grid;grid-template-columns:1fr auto;align-items:start}.deck-panel{grid-column:1 / -1;overflow-x:auto;padding:8px;scrollbar-width:none}.army-panel{grid-column:1 / -1;overflow-x:auto;padding:7px;scrollbar-width:none}.army-panel::-webkit-scrollbar{display:none}.army-deck{display:flex;width:max-content}.army-card{width:142px}.deck-panel::-webkit-scrollbar{display:none}.card-deck{display:flex;width:max-content}.unit-card{grid-template-columns:39px 1fr;width:118px;min-height:67px}.card-cost{position:absolute;right:8px;bottom:6px}.tool-panel{min-width:186px}.inspect-panel{min-width:0}.hint-strip{display:none}}@media (max-width: 560px){.app-shell{padding-bottom:max(118px,calc(env(safe-area-inset-bottom) + 90px))}.orb-hit{width:78px;height:78px}.brand-mark{width:34px;height:34px}.brand-name{font-size:17px}.topbar{gap:7px;margin-bottom:7px;border-radius:15px}.icon-btn{min-width:38px;min-height:38px;padding:0}.stage-wrap{border-radius:16px}#gameCanvas{aspect-ratio:1 / 1.03;object-fit:cover}.side-panel{gap:7px}.panel{border-radius:15px}.panel-title{display:none}.deck-panel{padding:6px}.unit-card{width:104px;min-height:60px;padding:5px}.card-deck,.army-deck{scroll-snap-type:x proximity}.unit-card,.army-card{scroll-snap-align:start}.card-icon{width:36px;height:36px;font-size:20px}.card-name{font-size:10px}.card-role{display:none}.tool-panel{padding:7px}.tool-btn{min-width:46px}.inspect-panel{padding:8px}.inspector{min-height:61px;font-size:10px}.inspector-empty{min-height:50px}.inspect-name{font-size:12px}.start-wave{right:10px;bottom:10px;padding:9px 11px;font-size:10px}.menu-actions{flex-wrap:wrap}.mode-choice{width:100%}.mode-btn{flex:1}.best-run{width:100%;margin:0;text-align:left}.perk-grid{grid-template-columns:1fr;max-height:58vh;overflow-y:auto}.perk-card{min-height:105px}.duel-hud{top:7px;grid-template-columns:1fr auto 1fr;width:calc(100% - 18px);padding:5px 7px}.duel-hud b{font-size:7px}.dialog-card{padding:18px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
