:root{color-scheme:dark;font-family:system-ui,-apple-system,Noto Sans KR,sans-serif;background:#101e28;color:#f3e9d4}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{touch-action:none;overscroll-behavior:none}button,select{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}[hidden]{display:none!important}.game-shell{height:100%;height:100dvh;display:grid;place-items:center}.viewport{position:relative;width:min(100vw,150dvh);height:min(100dvh,66.6666667vw);isolation:isolate;background:#101e28;overflow:hidden}#game{display:block;width:100%!important;height:100%!important;touch-action:none}.canvas-controls{position:absolute;inset:0;z-index:2;pointer-events:none}.canvas-control{position:absolute;pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;background:transparent;border:0;padding:0;margin:0;color:transparent;font-size:0;outline-offset:-3px}.canvas-control:disabled{pointer-events:none}.canvas-control:focus-visible{outline:2px solid #ffdf82;border-radius:4px}.game-overlay{position:absolute;inset:0;z-index:4;display:grid;place-items:center;padding:14px;background:#0006;overflow:auto;touch-action:pan-y}.overlay-card{width:min(360px,90%);max-height:100%;overflow:auto;text-align:center;border:2px solid #718d9b;border-radius:10px;padding:22px 25px;background:linear-gradient(#294b5c,#142733);box-shadow:0 8px 40px #000b}.overlay-kicker{margin:0;color:#6de7ef;font-size:10px;letter-spacing:3px}.overlay-card h1{font-size:30px;margin:10px 0 12px;color:#f3e9d4;text-shadow:0 2px #10232d}.overlay-card>p{font-size:12px;line-height:1.7}.menu-button{display:block;width:100%;min-height:41px;padding:10px;margin:8px 0;border:1px solid #718d9b;border-radius:5px;background:#294b5c;color:#f3e9d4;font-size:13px}.menu-button.primary{background:linear-gradient(#ffd38a,#ffad50);font-weight:700;color:#142733}.menu-button:disabled{opacity:.45}.menu-settings{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin:14px 0}.menu-settings label,.menu-settings button,.menu-settings select{font-size:11px}.menu-settings button,.menu-settings select{border:1px solid #718d9b;border-radius:3px;background:#193846;color:#d4e3e6;padding:6px}.help{font-size:10px!important;color:#a4bac5}details{font-size:10px;color:#a4bac5;text-align:left;border-top:1px solid #718d9b;padding-top:9px}details p{line-height:1.6}summary{cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-height:430px){.overlay-card{padding:12px 20px}.overlay-card h1{font-size:23px;margin:5px 0}.overlay-card>p{margin:6px 0;font-size:10px}.menu-button{padding:7px;min-height:32px;margin:5px 0;font-size:11px}.menu-settings{margin:9px 0}.help{font-size:9px!important}.overlay-kicker{font-size:9px}.overlay-card details{display:none}}:focus-visible{outline:2px solid #6de7ef;outline-offset:2px}.overlay-card.expanded{width:min(720px,98%);text-align:left;padding:12px 18px}.overlay-card.expanded h1,.overlay-card.expanded>.overlay-kicker,.overlay-card.expanded>#overlayText{text-align:center}.overlay-card.expanded>.help{display:none}.campaign-links{display:flex;gap:7px}.campaign-links .menu-button{flex:1}.campaign-stats{padding:8px 0;color:#ffce80;font-size:12px;text-align:center}.campaign-nav,.chapter-nav{display:flex;gap:5px;justify-content:center;flex-wrap:wrap;margin:6px 0 10px}#campaignPanel button,#campaignPanel select{background:#193846;color:#f3e9d4;border:1px solid #718d9b;border-radius:4px;padding:7px 9px;font-size:11px}#campaignPanel button:disabled{opacity:.4}#campaignPanel button.selected,#campaignPanel button.current{border-color:#6de7ef;background:#315c70}#campaignPanel{touch-action:pan-y}#campaignPanel .menu-note{font-size:11px;color:#b6cbd3;line-height:1.6;margin:10px 0}.stage-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px}.stage-grid button{white-space:pre-line;min-height:48px;line-height:1.6}.shop-row{display:flex;align-items:center;gap:10px;border-top:1px solid #718d9b55;padding:10px 0}.shop-row>div:not(.gear-actions){flex:1;min-width:0}.shop-row strong,.shop-row small{display:block}.shop-row strong{font-size:12px;color:#f3e9d4}.shop-row small{font-size:10px;margin-top:4px;color:#a4bac5}.original-icon{display:block;flex-shrink:0;background-repeat:no-repeat;image-rendering:auto}.gear-actions{display:flex;gap:5px;align-items:center;flex-wrap:wrap;justify-content:end;max-width:190px}.import-label{display:block;font-size:12px;margin:15px 0}.import-label input{font-size:11px;max-width:100%;margin-top:10px}.battle-objective{position:absolute;z-index:3;left:50%;top:9%;transform:translate(-50%);font-size:clamp(10px,1.5vw,16px);color:#f3e9d4;text-shadow:0 1px 3px #000,1px 0 3px #000;pointer-events:none;white-space:nowrap}.tower-lanes{position:absolute;z-index:1;left:0;top:16.875%;width:100%;height:53.125%;display:flex;flex-direction:column;pointer-events:none}.tower-lanes button{flex:1;width:100%;background:transparent;border:0;border-bottom:1px solid #f6d79e22;pointer-events:auto;color:transparent}.tower-lanes button.selected{background:#d2bb5330;border:1px solid #ffe7aa88}.menu-toast{color:#ffe7a0;font-size:11px;line-height:1.5}@media(max-width:600px){.stage-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.gear-actions{max-width:130px}.shop-row{gap:5px}.overlay-card.expanded{padding:10px}.shop-row small{font-size:9px}}.game-overlay:has(.overlay-card.expanded){position:fixed;inset:0;width:100vw;height:100dvh;z-index:10;background:#000b}.game-overlay:has(.overlay-card.expanded) .overlay-card{max-height:calc(100dvh - 28px)}.tower-cancel{position:absolute;z-index:3;left:50%;top:13%;transform:translate(-50%);border:1px solid #718d9b;border-radius:4px;background:#193846;color:#f3e9d4;padding:4px 8px;font-size:11px}.dev-badge{position:absolute;z-index:3;right:1%;top:11%;padding:3px 6px;border:1px solid #718d9b;border-radius:4px;background:#142733dd;color:#ffce80;font-size:clamp(9px,1vw,13px);pointer-events:none;white-space:nowrap}.viewport{display:block;width:min(100vw,150dvh);height:min(100dvh,66.6666667vw);max-height:100dvh}.battle-view{position:relative;width:100%;height:100%;overflow:hidden}.viewport:fullscreen{display:grid;place-items:center;background:#101e28}.viewport:fullscreen .battle-view{width:min(100vw,150dvh);height:min(100dvh,66.6666667vw)}.unit-paging{position:absolute;z-index:3;left:0;width:100%;height:15.625%;pointer-events:none;-webkit-user-select:none;user-select:none}.unit-paging button{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:var(--arrow-width,6.25%);height:100%;min-height:38px;padding:0;border:0;background:none;pointer-events:auto;touch-action:manipulation}.unit-paging #unitPrev{left:.4166667%}.unit-paging #unitNext{right:.4166667%}.unit-paging svg{width:auto;height:82%;max-width:90%;max-height:90px;filter:drop-shadow(0 2px 1px #0008);pointer-events:none}.unit-paging svg.flip{transform:rotate(180deg)}.unit-paging button:disabled{opacity:.32}.unit-paging button:active:not(:disabled) svg{filter:brightness(1.2) drop-shadow(0 1px 1px #0008)}.unit-paging button:focus-visible{outline:2px solid #fff2aa;outline-offset:-2px;border-radius:5px}.overlay-card{border-radius:18px;background:linear-gradient(145deg,#294b5cf5,#142733fa 65%);box-shadow:0 16px 60px #06131acc,inset 0 1px #b6d4df44;border-color:#718d9b}.overlay-card h1{letter-spacing:-1px}.overlay-kicker{font-weight:800;letter-spacing:4px}.menu-button{border-radius:8px;transition:filter .15s,transform .15s}.menu-button:hover:not(:disabled){filter:brightness(1.15)}.menu-button:active:not(:disabled){transform:translateY(1px)}.menu-button.primary{box-shadow:0 3px #ac692d;border-color:#ffe2a9}.audio-settings{border-top:1px solid #718d9b55;padding:9px 0;color:#b6cbd3;font-size:11px;text-align:left}.audio-settings summary{cursor:pointer;text-align:center}.audio-sliders{display:grid;gap:10px;margin-top:12px}.audio-sliders label{display:grid;grid-template-columns:70px 1fr 34px;gap:8px;align-items:center}.audio-sliders input{width:100%;accent-color:#6de7ef}.audio-sliders output{font-size:10px;text-align:right}.dev-badge{top:53%;font-size:clamp(8px,.9vw,12px);border-color:#718d9b66;padding:2px 5px}.battle-objective{top:12.7%;max-width:78%;overflow:hidden;text-overflow:ellipsis;font-size:clamp(8px,1.1vw,12px);text-shadow:0 1px 3px #142733;background:#1427339c;padding:2px 6px;border-radius:4px}.battle-view[data-mode=tower] .battle-objective{top:68.3%;max-width:80%}.battle-view[data-mode=tower] .dev-badge{top:67%;font-size:8px}.tower-cancel{top:13%;left:87%;font-size:10px;padding:3px 5px}.stage-grid button{border-radius:8px!important}.chapter-nav button{font-size:10px!important}.campaign-nav button.selected{color:#6de7ef!important}.shop-row{padding:12px 0}.shop-row strong{line-height:1.5}.game-overlay{background:#0d202b77;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.menu-toast{color:#ffce80}.game-overlay:has(.overlay-card.expanded){background:#0d202be8}button:focus-visible,select:focus-visible{outline:2px solid #6de7ef}.overlay-card.expanded{border-radius:14px}.tower-lanes button.selected{background:#6de7ef22;border-color:#6de7ef77}@media(prefers-reduced-motion:reduce){.menu-button{transition:none}}.help a{color:#6de7ef}.shop-row small{line-height:1.65}.shop-row .gear-description{white-space:pre-line;font-size:11px;line-height:1.75;overflow-wrap:anywhere}.shop-row .upgrade-preview{color:#6de7ef;margin-top:6px}@media(max-width:600px){.gear-row{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:start;column-gap:10px}.gear-row .gear-actions{grid-column:2;max-width:none;justify-content:flex-start}.shop-row .gear-description{font-size:10px}}
