@import url('https://fonts.googleapis.com/css2?family=Do+Hyeon&family=IBM+Plex+Mono:wght@400;600;700&family=IBM+Plex+Sans+KR:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#10151f;--panel:#191f2c;--line:#30394a;--muted:#8c98aa;--text:#f1f4fa;--mint:#7ef0c1;--gold:#ffc86b}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{margin:0;background:radial-gradient(ellipse at 50% -15%,#283342 0,var(--bg) 55%);color:var(--text);font-family:'IBM Plex Sans KR',sans-serif;min-height:100dvh;overscroll-behavior:none}.shell{width:min(100%,560px);min-height:100dvh;margin:auto;padding:calc(env(safe-area-inset-top) + 12px) 16px calc(env(safe-area-inset-bottom) + 14px);display:flex;flex-direction:column;gap:14px}.topbar,.section-title{display:flex;justify-content:space-between;align-items:center}.eyebrow{font:600 10px 'IBM Plex Mono',monospace;letter-spacing:.18em;color:var(--mint)}h1,h2,p{margin:0}h1{font:32px 'Do Hyeon',sans-serif;letter-spacing:.04em;line-height:1.1}h1 small{font:500 13px 'IBM Plex Sans KR',sans-serif;color:#aab4c4;letter-spacing:0;margin-left:6px}.icon-button{width:42px;height:42px;border:1px solid var(--line);border-radius:13px;background:#1c2431;color:var(--text);font-size:19px}.hud{display:grid;grid-template-columns:.7fr .7fr 1.5fr .8fr;border:1px solid var(--line);background:rgba(25,31,44,.88);border-radius:15px;padding:11px 5px}.hud div{display:flex;flex-direction:column;align-items:center;gap:2px;border-right:1px solid #30394a}.hud div:last-child{border:0}.hud span{font-size:10px;color:var(--muted)}.hud strong{font:700 18px 'IBM Plex Mono',monospace}.hud .enemy-count strong{color:#ff8a82}.hud i{font-style:normal;font-size:11px;color:#778294}.arena-wrap{position:relative;flex:1;min-height:310px;max-height:47vh;border:1px solid #30394a;border-radius:20px;overflow:hidden;background:#141b27;box-shadow:inset 0 0 45px #0a101a}.arena-wrap:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse,transparent 38%,rgba(8,12,19,.22))}canvas{display:block;width:100%;height:100%;touch-action:none}.legend{position:absolute;z-index:1;bottom:10px;left:12px;color:#9ba7b7;font-size:10px;display:flex;align-items:center;gap:5px}.dot{width:7px;height:7px;border-radius:50%;display:inline-block}.enemy-dot{background:#ff786f;box-shadow:0 0 8px #ff786f}.weapon-dot{margin-left:8px;background:var(--mint)}.banner{position:absolute;z-index:2;top:40%;left:50%;transform:translate(-50%,-50%);background:#111a;color:var(--mint);padding:9px 17px;border:1px solid #7ef0c177;border-radius:99px;font-weight:700;font-size:14px;white-space:nowrap}.hidden{display:none!important}.inventory-panel{border:1px solid var(--line);border-radius:17px;background:rgba(25,31,44,.82);padding:13px}.section-title h2{font-size:16px;margin-top:1px}.slot-count{font:12px 'IBM Plex Mono',monospace;color:var(--muted)}.slots{margin-top:11px;display:grid;grid-template-columns:repeat(6,1fr);gap:7px}.slot{position:relative;aspect-ratio:1;border:1px dashed #3b4658;border-radius:12px;background:#141b27;color:#727f91;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;cursor:pointer;touch-action:manipulation}.slot .weapon-icon{font-size:22px;filter:drop-shadow(0 0 6px currentColor)}.slot .grade{font:700 11px 'IBM Plex Mono',monospace}.slot.selected{outline:2px solid var(--mint);border-style:solid;background:#1e302f}.slot.empty{opacity:.38}.slot .dmg{position:absolute;right:5px;bottom:3px;font:9px 'IBM Plex Mono',monospace;color:#b8c4d4}.hint{margin-top:9px;font-size:10px;color:var(--muted)}.controls{margin-top:auto}.economy{display:flex;justify-content:space-between;margin:0 4px 8px;font-size:11px;color:var(--muted)}.economy b{font:600 12px 'IBM Plex Mono',monospace;color:var(--gold);margin-left:4px}.summon{width:100%;min-height:58px;border:0;border-radius:15px;background:linear-gradient(100deg,#68dfb1,#9df2c8);color:#10221d;display:flex;justify-content:center;align-items:center;gap:10px;font:700 16px 'IBM Plex Sans KR',sans-serif;box-shadow:0 5px 20px #62d9aa30;cursor:pointer;touch-action:manipulation}.summon>span:first-child{font-size:25px}.summon small{display:block;font-size:10px;font-weight:500;opacity:.72;text-align:left}.summon:disabled{filter:grayscale(.7);opacity:.5}.overlay{position:fixed;z-index:4;inset:0;background:#080c14c9;display:grid;place-items:center;padding:24px}.modal{width:min(100%,360px);padding:26px;border:1px solid #394455;background:#1a2230;border-radius:22px;box-shadow:0 25px 90px #0009}.modal h2{font:25px 'Do Hyeon',sans-serif;margin:7px 0}.modal p{font-size:13px;color:#a6b2c2;line-height:1.6;margin-bottom:19px}.final-stats{display:flex;justify-content:space-between;padding:13px;border-radius:12px;background:#111823;color:#aab5c5;font-size:12px;margin-bottom:17px}.final-stats b{display:block;color:#fff;font:700 19px 'IBM Plex Mono',monospace;margin-top:3px}
@media(min-height:850px){.arena-wrap{max-height:50vh}.shell{gap:17px}}
.header-actions{display:flex;gap:8px}.speed-button{min-width:58px;height:42px;padding:0 10px;border:1px solid var(--line);border-radius:13px;background:#1c2431;color:var(--mint);font:700 14px 'IBM Plex Mono',monospace}.hud{grid-template-columns:.7fr .7fr 1.35fr .9fr .8fr}.hud strong{font-size:15px}.final-stats{gap:6px}.final-stats span{font-size:10px}.final-stats b{font-size:16px}
.section-actions{display:flex;align-items:center;gap:7px}.help-button{border:1px solid #3a4658;background:#202a38;border-radius:9px;padding:7px 9px;color:#c2cedd;font:500 10px 'IBM Plex Sans KR',sans-serif;white-space:nowrap}.guide-overlay{z-index:6}.guide-modal{position:relative;max-height:min(82dvh,680px);overflow-y:auto;width:min(100%,400px);padding:23px 20px}.dialog-close{position:absolute;right:15px;top:13px;width:34px;height:34px;border:1px solid var(--line);border-radius:10px;background:#202a38;color:#eaf0f8;font-size:24px;line-height:1}.guide-modal h2{margin:6px 36px 7px 0}.guide-intro{margin:0 0 14px!important;font-size:12px!important}.guide-list,.rules-list{display:grid;gap:8px}.guide-list article{display:grid;grid-template-columns:82px 1fr;align-items:center;gap:8px;padding:10px;border-radius:11px;background:#111823;border:1px solid #293344}.guide-list b{font-size:13px;color:var(--mint)}.guide-list span,.rules-list p{font-size:11px;color:#b4bfce;line-height:1.55}.rules-list p{margin:0;padding:10px;border-radius:11px;background:#111823;border:1px solid #293344}.rules-list b{color:var(--mint);margin-right:4px}
@media(max-width:430px){.shell{padding-left:10px;padding-right:10px;gap:10px}.section-title{align-items:flex-start;flex-direction:column;gap:8px}.section-actions{width:100%;gap:5px;flex-wrap:wrap}.help-button{padding:7px 7px;font-size:9px}.hud span{font-size:9px}.hud strong{font-size:13px}.slots{gap:5px}.inventory-panel{padding:10px}}
.speed-control{display:flex;align-items:center;gap:7px;min-width:126px;height:42px;padding:0 9px;border:1px solid var(--line);border-radius:13px;background:#1c2431}.speed-control span{min-width:22px;color:var(--mint);font:700 13px 'IBM Plex Mono',monospace;text-align:center}.speed-control input{width:82px;margin:0;accent-color:var(--mint);touch-action:pan-y}.premium-summon{width:100%;margin-top:8px;padding:9px;border:1px solid #596c66;border-radius:12px;background:#1b292a;color:#a5e9cf;font:600 12px 'IBM Plex Sans KR',sans-serif;touch-action:manipulation}.grade-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.grade-option{display:flex;justify-content:space-between;align-items:center;padding:12px 11px;border:1px solid #3d4b60;border-radius:11px;background:#202c3a;color:#eff5fa;touch-action:manipulation}.grade-option b{font:700 16px 'IBM Plex Mono',monospace;color:var(--mint)}.grade-option span{font-size:11px;color:#d5deea}.grade-option:disabled{opacity:.38}.grade-option:not(:disabled):active{background:#2c4843}.price-note{font-size:10px!important;line-height:1.5!important;color:#8f9daf!important;margin:11px 0 0!important}
@media(max-width:370px){.speed-control{min-width:108px;gap:4px;padding:0 6px}.speed-control input{width:70px}}.floor-upgrade-option{width:100%;min-height:54px}.max-upgrade{padding:13px;border:1px solid #3d4b60;border-radius:11px;background:#202c3a;color:var(--mint);text-align:center;font-weight:600}
.spawn-dot{width:9px;height:9px;margin-left:8px;border:1px solid var(--mint);border-radius:50%;display:inline-block;box-shadow:0 0 8px #7ef0c1}
.fleet-summary{display:flex;justify-content:space-between;gap:8px;margin-top:9px;padding:9px 10px;border:1px solid #2c3b48;border-radius:10px;background:#121a24;color:#9eacbc;font-size:10px}.fleet-summary b{margin-left:4px;color:var(--mint);font:700 12px 'IBM Plex Mono',monospace}.stats-modal{width:min(100%,460px)}.power-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.power-card{display:flex;justify-content:space-between;align-items:center;gap:5px;padding:10px;border:1px solid #293344;border-radius:10px;background:#111823}.power-card span{font-size:10px;color:#a7b3c3}.power-card b{font:700 13px 'IBM Plex Mono',monospace;color:var(--mint);text-align:right}.stats-note{margin:10px 0!important;font-size:10px!important;line-height:1.5!important;color:#8e9bae!important}.weapon-stat-list{display:grid;gap:8px}.weapon-stat{padding:10px;border:1px solid #303b4b;border-radius:12px;background:#141b27}.weapon-stat-head{display:flex;align-items:center;gap:7px}.weapon-stat-head>span{font-size:18px}.weapon-stat-head>b{font-size:12px}.weapon-stat-head>small{margin-left:auto;color:#8794a6;font-size:9px}.weapon-stat>p{margin:4px 0 8px!important;color:#9caabd;font-size:10px!important}.weapon-stat-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.weapon-stat-values span{padding:6px 5px;border-radius:7px;background:#0f151f;color:#8997a9;font-size:9px}.weapon-stat-values b{display:block;margin-top:3px;color:#e5edf7;font:600 10px 'IBM Plex Mono',monospace}.empty-stats{padding:16px;border:1px solid #293344;border-radius:10px;background:#111823;color:#aab5c5;font-size:12px;line-height:1.5}
@media(max-width:380px){.power-card{padding:8px}.power-card span{font-size:9px}.weapon-stat-values{grid-template-columns:repeat(2,minmax(0,1fr))}.fleet-summary{font-size:9px}}
.service-actions{display:flex;gap:8px;margin-top:8px}.service-actions .premium-summon{margin:0;flex:1;min-width:0;padding:9px 5px;font-size:10px}.tactical-upgrade-list{display:grid;gap:8px}.tactical-upgrade{padding:10px;border:1px solid #303b4b;border-radius:12px;background:#141b27}.tactical-upgrade-head{display:flex;justify-content:space-between;align-items:center}.tactical-upgrade-head b{font-size:13px;color:var(--mint)}.tactical-upgrade-head span{font:11px 'IBM Plex Mono',monospace;color:#9ba9ba}.tactical-upgrade>p{margin:5px 0 9px!important;font-size:10px!important;color:#a6b3c3}.tactical-upgrade .grade-option{width:100%;min-height:40px;padding:8px 10px}.enemy-health{padding:13px;border:1px solid #293344;border-radius:11px;background:#111823}.enemy-health>div:first-child{display:flex;justify-content:space-between;color:#aab6c5;font-size:12px}.enemy-health>div:first-child b{color:#fff;font:700 14px 'IBM Plex Mono',monospace}.enemy-health-track{height:9px;margin-top:9px;border-radius:9px;background:#2a3340;overflow:hidden}.enemy-health-track i{display:block;height:100%;border-radius:9px;background:linear-gradient(90deg,#73e4b4,#ffd16e,#ff786f)}.enemy-summary{margin-top:9px}.enemy-summary .power-card{min-height:55px}
.enemy-guide-button{position:absolute;z-index:2;top:10px;right:10px;padding:7px 10px;border:1px solid #384657;border-radius:10px;background:#101923dd;color:#c4d0df;font:500 10px 'IBM Plex Sans KR',sans-serif;touch-action:manipulation}.enemy-preview{margin-bottom:9px;padding:11px;border:1px solid #303b4b;border-radius:12px;background:#141b27}.enemy-preview.boss-preview{border-color:#8d61bb;background:linear-gradient(135deg,#241c32,#141b27)}.enemy-preview-head{display:flex;justify-content:space-between;color:#91a0b2;font-size:10px}.enemy-preview.boss-preview .enemy-preview-head span,.enemy-preview.boss-preview h3{color:#d6a8ff}.enemy-preview h3{margin:5px 0;font:18px 'Do Hyeon',sans-serif;color:#eff4fa}.enemy-preview .enemy-summary{margin-top:4px}
