:root{color-scheme:dark;font:14px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif;color:#edf0df;background:#0a1b25;--gold:#e7c992;--muted:#a0b3b1;--line:#d6e4cc26;--panel:#122c33;--mint:#b7ded1}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{-webkit-tap-highlight-color:transparent}button,a,input,select{font:inherit}button{color:inherit;background:#d4e0cc0b;border:1px solid var(--line);border-radius:10px;padding:10px 14px;cursor:pointer;min-height:44px;touch-action:manipulation}button:hover{background:#dbe5c919;border-color:#d6e4cc60}button:focus-visible,a:focus-visible{outline:2px solid #efcf94;outline-offset:3px}button:disabled{opacity:.38;cursor:default}button.primary{background:linear-gradient(120deg,#f1d69f,#d6b57d);color:#27343a;border-color:#f2d9a8;font-weight:750}button.primary:hover{background:#f6dcaa}.quiet{color:var(--muted)}.danger{color:#f2b3a4}a{color:#e7c992}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(27px,4vw,48px);line-height:1.1;letter-spacing:.02em}h2{font-size:24px;line-height:1.25}h3{font-size:16px}.eyebrow{color:var(--gold);letter-spacing:.2em;font-size:10px;font-weight:750}.muted,small{color:var(--muted)}.pill{padding:4px 9px;border:1px solid var(--line);border-radius:20px;font-size:11px;white-space:nowrap}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.spread{justify-content:space-between}.stack{display:grid;gap:12px}.rule{height:1px;background:var(--line);margin:18px 0}#app{height:100dvh;height:100svh;display:flex;flex-direction:column;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:radial-gradient(ellipse at 50% 0,#244c49,#0b1c28 75%);user-select:none;-webkit-user-select:none;touch-action:none}#topbar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:12px 22px;border-bottom:1px solid var(--line);height:68px;gap:8px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:#edf1df;min-width:0}.brand strong{display:block;font-size:14px;letter-spacing:.13em;white-space:nowrap}.brand small{display:block;font-size:8px;letter-spacing:.15em;margin-top:3px;color:#c7c8a5}#header-actions{display:flex;align-items:center;gap:6px}#header-actions button{width:40px;min-height:40px;padding:0;border-radius:8px;font-size:18px}#sound svg{height:21px;width:21px;fill:none;stroke:currentColor;stroke-width:1.7;display:block;margin:auto}#metrics{display:flex;justify-content:center;gap:clamp(20px,6vw,70px);padding:9px 18px;flex-shrink:0;background:#081e2999;border-bottom:1px solid var(--line)}#metrics>div{display:flex;flex-direction:column}#metrics span{font-size:8px;letter-spacing:.16em;color:#97afad}#metrics strong{font-size:17px;font-variant-numeric:tabular-nums;font-weight:650}#cores{letter-spacing:2px;color:#93dee0;font-size:14px!important}#gold{color:var(--gold)}#energy{color:#baa9e7}#battle-layout{display:flex;flex:1;min-height:0;position:relative;justify-content:center}#stage{position:relative;flex:1;min-width:0;min-height:0;overflow:hidden}#battlefield{width:100%;height:100%;display:block;touch-action:none}#stage-label{position:absolute;top:12px;left:18px;pointer-events:none;text-shadow:0 2px 5px #001;display:flex;flex-direction:column;gap:3px}#map-title{font-size:12px;font-weight:650;letter-spacing:.04em}#phase-label{font-size:10px;color:#e2dbbd}#eventline{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);padding:6px 13px;background:#0a2331bd;border:1px solid #e1dcc026;border-radius:20px;max-width:95%;font-size:12px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s}#eventline.show{opacity:1}#pause-banner{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);background:#0a2131eb;border-color:#e7d49a90;box-shadow:0 12px 40px #0016;min-width:170px}#aim-hint{position:absolute;top:45px;left:50%;transform:translateX(-50%);padding:6px 12px;background:#142c38e8;border:1px solid #dbc49366;border-radius:20px;white-space:nowrap;font-size:12px;pointer-events:none}#inspector{flex:0 0 270px;border-left:1px solid var(--line);background:linear-gradient(155deg,#1e3a3e,#102631);padding:18px;overflow:auto;touch-action:pan-y;user-select:text;-webkit-user-select:text}.inspector-head{display:flex;justify-content:space-between;gap:8px;align-items:start;margin-bottom:10px}.inspector-head button{padding:0;width:32px;min-height:32px}.inspector-head h3{margin:0}#inspector p{font-size:12px;color:#becdc3;margin-bottom:12px}#inspector .tower-options{display:grid;grid-template-columns:1fr;gap:8px}.tower-option{display:flex;align-items:center;text-align:left;gap:10px;padding:8px 10px}.tower-option canvas{height:43px;width:43px;flex-shrink:0}.tower-option strong{font-size:12px}.tower-option small{display:block;font-size:10px}.price{color:var(--gold)}.upgrade-options{display:grid;gap:8px}.upgrade-options button{text-align:left;font-size:12px}.upgrade-options small{display:block;font-size:10px}.stats{display:flex;gap:12px;margin:8px 0 12px;font-size:11px;color:#b8d3d1}.select-row{display:flex;gap:8px;align-items:center;font-size:11px;margin:12px 0}select,input{max-width:100%;border:1px solid var(--line);background:#0a222c;color:#e5e8d8;padding:10px;border-radius:8px;min-height:42px}#battlebar{display:flex;gap:18px;align-items:center;justify-content:center;flex-shrink:0;padding:10px 18px;background:#0e2530;border-top:1px solid var(--line);min-height:78px}#skills{display:flex;gap:8px}.skill{width:78px;position:relative;text-align:center;padding:7px 4px;min-height:53px;overflow:hidden}.skill.active{border-color:#f3ce94;background:#e6c78625}.skill strong{display:block;font-size:12px}.skill small{font-size:10px;color:#bdc7ba}.skill .cooldown{position:absolute;inset:0;background:#142432d4;display:grid;place-items:center;font-size:17px;color:#e9d4aa}.skill-icon{color:#d9c9ee;margin-right:5px}#next-wave{min-width:140px;font-size:12px}#toast{position:fixed;bottom:max(95px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);padding:10px 18px;border:1px solid #e1cf9a55;border-radius:12px;box-shadow:0 10px 30px #0005;background:#122f39f5;z-index:11000;max-width:90%;font-size:12px;opacity:0;pointer-events:none;transition:opacity .2s}#toast.show{opacity:1}#modal-root:empty{display:none}#modal-root{position:absolute;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:#06131bd9;backdrop-filter:blur(10px);touch-action:pan-y}.modal{width:min(1100px,100%);max-height:100%;overflow:auto;background:linear-gradient(130deg,#233e40,#132b35 60%,#1b2a3b);border:1px solid #d3dcc139;border-radius:20px;box-shadow:0 30px 100px #02091499;padding:28px;overscroll-behavior:contain;touch-action:pan-y;user-select:text;-webkit-user-select:text}.modal.narrow{width:min(570px,100%)}.modal-head{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:18px}.modal-head h2{margin:4px 0 0}.modal-head>button{min-width:42px;padding:0}.hero{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;margin-bottom:20px}.hero p{color:#bdcec5;max-width:610px;font-size:13px;margin-bottom:0}.hero-mark{height:90px;width:90px;filter:drop-shadow(0 12px 30px #89d9ce25)}.tabs{display:flex;gap:6px;margin:14px 0}.tabs button{font-size:12px;padding:9px 16px}.tabs .selected{border-color:#c9d3b978;color:#f3d49c;background:#d4d9b818}.chapter-title{display:flex;gap:10px;align-items:center;margin:22px 0 12px}.chapter-title span{font-size:10px;letter-spacing:.12em;color:#c5d2bd}.chapter-title h3{margin:0;font-size:15px}.map-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.map-card{padding:8px;text-align:left;position:relative;min-height:124px;background:#061d283a;overflow:hidden}.map-card canvas{width:100%;height:65px;display:block;border-radius:5px;background:#132c35}.map-card .map-number{position:absolute;top:12px;left:13px;color:#e8d3a4;font-size:10px}.map-card strong{display:block;font-size:11px;white-space:normal;margin-top:5px;line-height:1.3}.stars{color:#dfc085;letter-spacing:2px;font-size:10px}.menu-tools{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.menu-tools button{font-size:12px}.intro-callout{background:#8ca99413;border-left:2px solid #c3cda0;padding:10px 14px;color:#c7d6c9;font-size:12px;margin:15px 0}.mission-preview{height:150px;width:100%;background:#0d2430;border:1px solid var(--line);border-radius:12px}.mission-info{font-size:13px;color:#c0d0c8}.brief-grid{display:grid;grid-template-columns:180px 1fr;gap:18px;margin-bottom:20px}.brief-grid canvas{height:210px}.list-note{padding-left:19px;color:#bbcec7;font-size:12px}.list-note li{margin:6px 0}.rune-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.rune{text-align:left;font-size:12px}.rune small{display:block;font-size:11px;margin-top:5px}.rune.selected{background:#b9c58a19;border-color:#d2c69a}.codex-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.codex-item{text-align:center;padding:12px 8px;font-size:12px}.codex-item canvas{display:block;margin:0 auto 8px;width:70px;height:78px}.codex-detail{display:flex;align-items:center;gap:20px;margin-bottom:15px}.codex-detail canvas{height:100px;width:90px;flex-shrink:0}.modal-footer{margin-top:20px;display:flex;align-items:center;justify-content:space-between;gap:10px}.result-core{font-size:30px;letter-spacing:7px;color:#a9e4e8;margin:14px 0}.result-stars{font-size:36px;letter-spacing:7px;color:#e2c491}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.result-stats>div{padding:12px;background:#051d294a;border:1px solid var(--line);border-radius:10px}.result-stats strong{font-size:20px;display:block}.result-stats small{font-size:10px}.warning{color:#f5bf9b}#loading{position:absolute;inset:0;z-index:20000;background:#102b33;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px}#loading strong{letter-spacing:.17em}#loading progress{width:180px;height:5px;accent-color:#cfdfb2}#loading span{color:#bccbc1;font-size:12px}#header-actions .game-seo-info{position:static;z-index:10100}#header-actions .game-seo-info summary{height:40px;width:40px;padding:0;border-radius:8px}#header-actions .game-seo-info[open]{position:static}#header-actions .game-seo-info summary svg{height:20px;width:20px}body:has(.game-seo-info[open]) #stage{filter:brightness(.75)}[hidden]{display:none!important}
@media(min-width:1500px){#battle-layout{padding:0 7%}#stage{border-left:1px solid #d3dcc115;border-right:1px solid #d3dcc115}}
@media(max-width:800px){#topbar{height:58px;padding:8px 12px}.brand{gap:8px}.brand strong{font-size:12px;letter-spacing:.06em}.brand small{font-size:7px;letter-spacing:.04em}.brand img{width:28px;height:28px}#header-actions{gap:4px}#header-actions button,#header-actions .game-seo-info summary{width:36px;height:36px;min-width:36px;min-height:36px}#metrics{gap:0;justify-content:space-around;padding:6px 9px}#metrics strong{font-size:16px}#battle-layout{flex-direction:column}#inspector{flex:0 0 auto;max-height:178px;border-left:0;border-top:1px solid var(--line);padding:10px 13px}.inspector-head{margin-bottom:5px}.inspector-head h3{font-size:13px}.inspector-head button{min-height:28px;width:28px}#inspector p{font-size:10px;margin-bottom:5px}#inspector .tower-options{grid-template-columns:repeat(4,1fr);gap:5px}.tower-option{flex-direction:column;gap:0;padding:4px;min-height:75px;justify-content:center}.tower-option canvas{height:32px;width:32px}.tower-option strong{font-size:10px}.tower-option small{font-size:9px}#inspector .upgrade-options{grid-template-columns:repeat(2,1fr)}.upgrade-options button{padding:6px 9px}.select-row{margin:5px 0;font-size:10px}.select-row select{padding:5px;min-height:35px}.stats{margin:4px 0 7px;font-size:10px}.inspector-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px}.inspector-bottom button{min-height:33px;padding:5px 9px;font-size:10px}#battlebar{padding:7px 10px;gap:9px;min-height:65px;justify-content:space-between}#skills{gap:5px}.skill{width:65px;min-height:48px;padding:5px 2px}.skill strong{font-size:10px}.skill small{font-size:9px}#next-wave{min-width:95px;padding:8px;font-size:11px}#stage-label{top:8px;left:10px}#map-title{font-size:10px}#phase-label{font-size:9px}#eventline{font-size:10px;bottom:8px;padding:5px 9px}#modal-root{padding:10px}.modal{padding:19px;border-radius:15px}.hero{gap:10px}.hero h1{font-size:28px}.hero p{font-size:12px}.hero-mark{width:58px;height:58px}.map-grid{grid-template-columns:repeat(3,1fr);gap:7px}.map-card{min-height:110px}.map-card canvas{height:58px}.tabs button{padding:8px 10px;font-size:11px}.rune-grid{grid-template-columns:repeat(2,1fr)}.codex-grid{grid-template-columns:repeat(3,1fr)}.brief-grid{grid-template-columns:115px 1fr;gap:12px}.brief-grid canvas{height:180px}.mission-info{font-size:12px}.modal-head h2{font-size:21px}#toast{bottom:80px;font-size:11px}}
@media(max-width:370px){.brand small{display:none}.brand strong{font-size:10px}#topbar{padding:6px 8px}.skill{width:57px}#next-wave{min-width:85px}.modal{padding:14px}}
@media(max-height:520px) and (min-width:650px){#topbar{height:44px;padding:5px 12px}.brand small{display:none}#metrics{position:absolute;top:48px;left:10px;width:180px;z-index:2;flex-wrap:wrap;border:1px solid var(--line);border-radius:10px;background:#102d37e6;padding:8px;gap:8px}#metrics>div{width:70px}#battlebar{position:absolute;left:10px;bottom:10px;width:180px;z-index:2;flex-direction:column;border:1px solid var(--line);border-radius:10px;padding:8px}#skills{gap:4px}.skill{width:50px}#next-wave{width:100%;min-height:37px}#battle-layout{flex-direction:row}#stage{margin-left:200px}#inspector{flex:0 0 200px;max-height:none;border-top:0;border-left:1px solid var(--line)}#inspector .tower-options{grid-template-columns:repeat(2,1fr)}#inspector .upgrade-options{grid-template-columns:1fr}#stage-label{left:5px;top:5px}.hero{margin-bottom:12px}.hero-mark{display:none}.map-grid{grid-template-columns:repeat(6,1fr)}.brief-grid canvas{height:150px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

#intel{position:absolute;top:10px;right:12px;min-height:34px;padding:5px 10px;background:#102936b8;font-size:10px;border-radius:20px}#header-actions #speed{font-size:12px}
@media(max-width:800px){.brand small{max-width:125px;overflow:hidden;white-space:nowrap}.brand strong{font-size:11px}#intel{top:6px;right:8px;min-height:32px}}
