@import"https://cdn.jsdelivr.net/npm/galmuri@latest/dist/galmuri.css";:root{--bg: #0d0f0a;--panel: #181b11;--panel-2: #2125177;--line: #4a523a;--line-dim: #2e3322;--khaki: #b8b08a;--cream: #ece5cb;--dim: #8a856b;--gold: #f2c14e;--gold-dark: #b08a2e;--red: #b03a2e;--red-bright: #e85f5f;--blue: #5fa8e8;--green: #67c23a}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);background-image:radial-gradient(ellipse at 50% 30%,#161a10 0%,var(--bg) 70%);color:var(--cream);font-family:Galmuri11,Galmuri9,Apple SD Gothic Neo,Malgun Gothic,sans-serif;overflow:hidden;display:flex;justify-content:center;align-items:center;min-height:100vh}#app{position:relative;border:2px solid var(--line);outline:1px solid #000;box-shadow:0 0 0 6px #14160ee6,0 24px 80px #000000e6}#app:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:50;background:repeating-linear-gradient(0deg,rgba(0,0,0,.13) 0px,rgba(0,0,0,.13) 1px,transparent 1px,transparent 3px);mix-blend-mode:multiply}#game-canvas{display:block;background:var(--bg);image-rendering:pixelated;width:min(960px,96vw);aspect-ratio:3 / 2;height:auto;cursor:crosshair;touch-action:none}.zoom-group{margin-left:auto;display:flex;gap:4px}.zoom-group .action-btn{min-width:34px;font-weight:700}#ui-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}#ui-overlay>*{pointer-events:auto}.menu-btn{position:relative;width:300px;padding:13px 22px;font-family:inherit;font-size:16px;letter-spacing:2px;color:var(--khaki);background:linear-gradient(180deg,#242818,#181b10);border:1px solid var(--line);clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px);cursor:pointer;transition:color .12s,background .12s,transform .12s;text-align:left}.menu-btn span{position:relative;z-index:1}.menu-btn:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--line);transition:background .12s,width .12s}.menu-btn:hover:not(:disabled){color:var(--cream);background:linear-gradient(180deg,#2e3420,#1e2214);transform:translate(4px)}.menu-btn:hover:not(:disabled):before{background:var(--gold);width:6px}.menu-btn:disabled{opacity:.32;cursor:not-allowed}.menu-btn.primary{color:var(--cream);border-color:#6a3a30;background:linear-gradient(180deg,#3c1f18,#261410)}.menu-btn.primary:before{background:var(--red)}.menu-btn.primary:hover:not(:disabled){background:linear-gradient(180deg,#4c2820,#301a14)}.menu-btn.primary:hover:not(:disabled):before{background:var(--red-bright)}.menu-btn.ghost{width:auto;font-size:12px;padding:8px 16px;color:#7a6258;border-color:#3a2e28;background:transparent}.menu-panel{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#08090573}.menu-emblem{font-size:13px;letter-spacing:6px;color:var(--gold);border-top:1px solid var(--gold-dark);border-bottom:1px solid var(--gold-dark);padding:6px 18px;animation:rise .6s ease-out both}.menu-title{font-size:58px;font-weight:900;letter-spacing:10px;color:var(--cream);text-shadow:3px 3px 0 var(--red),6px 6px 0 rgba(0,0,0,.6),0 0 36px rgba(240,180,80,.25);animation:rise .6s .1s ease-out both}.menu-subtitle{font-size:13px;letter-spacing:4px;color:var(--dim);margin-bottom:26px;animation:rise .6s .2s ease-out both}.menu-buttons{display:flex;flex-direction:column;gap:10px;align-items:center}.menu-buttons .menu-btn{animation:rise .5s ease-out both}.menu-buttons .menu-btn:nth-child(1){animation-delay:.3s}.menu-buttons .menu-btn:nth-child(2){animation-delay:.38s}.menu-buttons .menu-btn:nth-child(3){animation-delay:.46s}.menu-buttons .menu-btn:nth-child(4){animation-delay:.54s}.menu-buttons .menu-btn:nth-child(5){animation-delay:.62s}.menu-save-info{font-size:11px;color:var(--dim);margin-top:4px;animation:rise .5s .6s ease-out both}.menu-footer{position:absolute;bottom:14px;font-size:10px;letter-spacing:2px;color:#57523e}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.stage-select{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;padding:28px 40px;background:#080905d1;overflow-y:auto}.stage-select-title{font-size:22px;letter-spacing:6px;color:var(--gold);margin-bottom:4px}.stage-select-sub{font-size:11px;color:var(--dim);letter-spacing:2px;margin-bottom:20px}.stage-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%;max-width:760px}.stage-card{display:flex;align-items:center;gap:10px;padding:10px 12px;font-family:inherit;font-size:13px;color:var(--khaki);text-align:left;background:linear-gradient(180deg,#20241544,#14170d);background-color:#181b10;border:1px solid var(--line-dim);clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);cursor:pointer;transition:border-color .12s,color .12s,background-color .12s}.stage-card:hover:not(:disabled){border-color:var(--gold-dark);color:var(--cream);background-color:#222615}.stage-card:disabled{opacity:.3;cursor:not-allowed}.stage-card .stage-num{font-size:19px;font-weight:700;color:var(--gold);min-width:32px}.stage-card:disabled .stage-num{color:var(--dim)}.stage-card .stage-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stage-card .stage-flag{font-size:10px;padding:2px 7px;color:var(--green);border:1px solid #3c5c2c}.stage-card .stage-flag.lock{color:var(--dim);border-color:var(--line-dim)}.stage-select .menu-btn{margin-top:20px;width:220px}.dialogue-box{position:absolute;bottom:0;left:0;right:0;padding:0 40px 34px;cursor:pointer}.dialogue-frame{position:relative;background:#0c0e08eb;border:1px solid var(--line);border-left:4px solid var(--gold-dark);padding:20px 26px 26px;min-height:110px;animation:dlg-in .25s ease-out both}@keyframes dlg-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.dialogue-frame.with-portrait{padding-left:96px}.dialogue-portrait{position:absolute;left:18px;top:50%;transform:translateY(-50%);width:64px;height:64px;image-rendering:pixelated;border:2px solid var(--gold-dark);background:#11130c}.dialogue-speaker{position:absolute;top:-13px;left:14px;font-size:12px;letter-spacing:3px;color:var(--gold);background:#1c2014;border:1px solid var(--gold-dark);padding:4px 14px}.dialogue-text{font-size:16px;line-height:1.75;color:var(--cream)}.dialogue-hint{position:absolute;bottom:8px;right:14px;font-size:10px;letter-spacing:2px;color:var(--dim);animation:blink 1.3s infinite}.dialogue-progress{position:absolute;top:-30px;right:44px;font-size:11px;letter-spacing:2px;color:var(--dim)}@keyframes blink{0%,to{opacity:.3}50%{opacity:1}}.battle-hud{position:absolute;top:0;left:0;right:0;height:44px;display:flex;justify-content:space-between;align-items:center;padding:0 16px;background:linear-gradient(180deg,#0a0c06f2,#0a0c06c7);border-bottom:1px solid var(--line-dim);font-size:13px}.hud-stage{display:flex;align-items:center;gap:10px;color:var(--cream);letter-spacing:1px}.hud-label{font-size:10px;letter-spacing:2px;color:var(--bg);background:var(--gold);padding:2px 7px;font-weight:700}.turn-indicator img{height:30px;image-rendering:pixelated;display:block;animation:turn-pop .35s ease-out both}@keyframes turn-pop{0%{transform:scale(.6);opacity:0}70%{transform:scale(1.12)}to{transform:scale(1);opacity:1}}.hud-stats{display:flex;align-items:center;gap:12px;color:var(--khaki);letter-spacing:1px}.hud-sep{width:1px;height:14px;background:var(--line-dim)}.unit-panel{position:absolute;right:10px;top:56px;width:208px;background:#0e1009f0;border:1px solid var(--line);border-top:3px solid var(--gold-dark);padding:14px;animation:panel-in .18s ease-out both}@keyframes panel-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.unit-name{font-size:17px;color:var(--cream);letter-spacing:1px}.unit-class{font-size:11px;color:var(--gold);letter-spacing:2px;margin:3px 0 12px}.gauge{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:7px;margin-bottom:7px;font-size:10px}.gauge-label{color:var(--dim);letter-spacing:1px}.gauge-bar{height:9px;background:#23261a;border:1px solid #000}.gauge-fill{height:100%;transition:width .3s ease}.gauge-fill.hp{background:linear-gradient(180deg,#84d65a,#4e9e2a)}.gauge-fill.hp.warn{background:linear-gradient(180deg,#e8c45a,#b8902a)}.gauge-fill.hp.danger{background:linear-gradient(180deg,#e87a6a,#b03a2e)}.gauge-fill.ap{background:linear-gradient(180deg,#6ab8e8,#3a7ab0)}.gauge-num{color:var(--khaki);font-size:10px}.unit-stats{display:grid;grid-template-columns:1fr 1fr;gap:5px 12px;margin-top:12px;padding-top:10px;border-top:1px dashed var(--line-dim)}.stat-row{display:flex;justify-content:space-between;font-size:11px;color:var(--dim)}.stat-row b{color:var(--cream);font-weight:400}.action-bar{position:absolute;bottom:0;left:0;right:0;display:flex;gap:6px;align-items:center;padding:9px 14px;background:linear-gradient(180deg,#0c0e08e0,#080905f7);border-top:1px solid var(--line-dim)}.action-btn{padding:9px 18px;font-family:inherit;font-size:13px;letter-spacing:2px;color:var(--khaki);background:#20241a;border:1px solid var(--line);border-bottom:3px solid var(--line-dim);cursor:pointer;transition:all .1s}.action-btn:hover:not(:disabled){color:var(--cream);border-color:var(--gold-dark);background:#2a2f1e;transform:translateY(-1px)}.action-btn:active:not(:disabled){transform:translateY(1px);border-bottom-width:1px}.action-btn:disabled{opacity:.28;cursor:not-allowed}.action-btn.danger{color:#e8b0a8;background:#2c1814;border-color:#6a3a30}.action-btn.sub{margin-left:auto;font-size:11px;padding:8px 13px}.action-btn.sub+.action-btn.sub{margin-left:0}.battle-log{position:absolute;bottom:54px;left:14px;width:380px;max-height:86px;overflow-y:auto;padding:8px 12px;font-size:11px;line-height:1.7;color:var(--khaki);background:#0a0c06b8;border-left:3px solid var(--line);scrollbar-width:none}.battle-log::-webkit-scrollbar{display:none}.submenu{position:absolute;bottom:54px;left:50%;transform:translate(-50%);min-width:340px;max-width:92%;max-height:240px;overflow-y:auto;background:#0c0e08f5;border:1px solid var(--line);border-top:3px solid var(--gold-dark);padding:8px;animation:panel-in .15s ease-out both;z-index:5}.submenu-title{font-size:11px;letter-spacing:2px;color:var(--gold);padding:2px 4px 8px}.submenu-row{display:grid;grid-template-columns:76px 1fr auto;gap:8px;align-items:center;width:100%;padding:8px;margin-bottom:4px;font-family:inherit;text-align:left;color:var(--khaki);background:#1c2014;border:1px solid var(--line-dim);cursor:pointer}.submenu-row:hover:not(:disabled){border-color:var(--gold-dark);color:var(--cream)}.submenu-row:disabled{opacity:.35;cursor:not-allowed}.submenu-name{font-size:12px;color:var(--cream)}.submenu-desc{font-size:10px;color:var(--dim)}.submenu-cost{font-size:10px;color:var(--blue);white-space:nowrap}.submenu-empty{font-size:11px;color:var(--dim);padding:8px}.shop-tabs{display:flex;gap:6px;margin-bottom:14px}.shop-tab{padding:8px 22px;font-family:inherit;font-size:13px;letter-spacing:2px;color:var(--dim);background:transparent;border:1px solid var(--line-dim);cursor:pointer}.shop-tab.on{color:var(--gold);border-color:var(--gold-dark);background:#1c2014}.shop-list{width:100%;max-width:560px;display:flex;flex-direction:column;gap:6px}.shop-item{display:flex;align-items:center;gap:10px;padding:9px 12px;background:#14170d;border:1px solid var(--line-dim)}.shop-item-info{flex:1;display:flex;flex-direction:column;gap:3px}.shop-item-name{font-size:13px;color:var(--cream)}.shop-item-desc{font-size:10px;color:var(--dim)}.shop-item-owned{font-size:10px;color:var(--green);white-space:nowrap}.shop-buy{padding:7px 14px;font-family:inherit;font-size:12px;color:var(--gold);background:#20241a;border:1px solid var(--gold-dark);cursor:pointer;white-space:nowrap}.shop-buy:hover:not(:disabled){background:#2a2f1e;color:var(--cream)}.shop-buy:disabled{opacity:.3;cursor:not-allowed}.shop-buy.small{padding:6px 9px;font-size:10px}.shop-equip-btns{display:flex;gap:4px}.equip-units{width:100%;max-width:560px;margin-bottom:10px;padding:8px 10px;background:#14170db3;border:1px dashed var(--line-dim);display:flex;flex-direction:column;gap:5px}.equip-unit{display:flex;align-items:center;gap:6px;font-size:11px}.equip-unit-name{color:var(--gold);min-width:56px}.equip-empty{color:var(--dim);font-size:10px}.equip-chip{font-family:inherit;font-size:10px;padding:3px 8px;color:var(--khaki);background:#20241a;border:1px solid var(--line);cursor:pointer}.equip-chip:hover{color:var(--red-bright);border-color:var(--red)}.shop-actions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap;justify-content:center}.shop-actions .menu-btn{margin-top:0;width:220px}.unit-exp{font-size:9px;color:var(--dim);margin:-8px 0 8px;letter-spacing:1px}.unit-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px;padding-top:8px;border-top:1px dashed var(--line-dim)}.badge{font-size:9px;padding:2px 7px;border:1px solid var(--line);color:var(--khaki)}.badge.equip{color:var(--blue);border-color:#2c4a66}.badge.status{color:var(--gold);border-color:var(--gold-dark)}.stat-row .stat-up{color:var(--green);font-style:normal;font-size:9px}.stat-row .stat-down{color:var(--red-bright);font-style:normal;font-size:9px}.result-screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:#060704c7}.result-banner{image-rendering:pixelated;width:320px;animation:banner-in .55s cubic-bezier(.2,1.6,.4,1) both}@keyframes banner-in{0%{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}.result-info{font-size:13px;letter-spacing:2px;color:var(--khaki);animation:rise .4s .3s ease-out both}.result-buttons{display:flex;flex-direction:column;gap:10px;margin-top:14px;animation:rise .4s .45s ease-out both}.save-indicator{position:absolute;top:52px;left:14px;font-size:10px;letter-spacing:2px;color:var(--green);border:1px solid #3c5c2c;padding:3px 10px;background:#0a0e06cc;opacity:0;transition:opacity .3s}.save-indicator.show{opacity:1}@media (max-width: 820px),(max-height: 520px){body{align-items:stretch}#app{width:100vw;height:100vh;height:100dvh;border:none;outline:none;box-shadow:none}#game-canvas{width:100%;height:100%;aspect-ratio:auto}.menu-title{font-size:clamp(30px,9vw,48px);letter-spacing:6px}.menu-emblem{font-size:11px;letter-spacing:4px}.menu-subtitle{margin-bottom:18px}.menu-btn{width:min(300px,84vw);padding:14px 20px;font-size:15px}.stage-select{padding:16px 12px calc(16px + env(safe-area-inset-bottom))}.stage-grid{grid-template-columns:1fr 1fr;gap:6px}.stage-card{font-size:12px;padding:9px 10px;gap:7px}.stage-card .stage-num{font-size:16px;min-width:26px}.stage-select .menu-btn{margin-top:14px}.dialogue-box{padding:0 10px calc(14px + env(safe-area-inset-bottom))}.dialogue-frame{padding:14px 16px 24px;min-height:92px}.dialogue-frame.with-portrait{padding-left:76px}.dialogue-portrait{width:48px;height:48px;left:12px}.dialogue-text{font-size:14px;line-height:1.6}.dialogue-progress{right:14px}.battle-hud{height:36px;padding:0 8px;font-size:11px}.hud-stage{gap:6px}.hud-label{font-size:9px;padding:2px 5px}.turn-indicator img{height:22px}.hud-stats{gap:8px;font-size:10px}.save-indicator{top:42px;left:auto;right:8px}.battle-log{top:42px;bottom:auto;left:8px;right:96px;width:auto;max-height:46px;font-size:10px;line-height:1.5;padding:5px 8px}.unit-panel{left:8px;right:8px;top:auto;bottom:calc(58px + env(safe-area-inset-bottom));width:auto;padding:8px 12px;border-top-width:1px;border-left:3px solid var(--gold-dark)}.unit-name{font-size:14px;display:inline-block}.unit-class{display:inline-block;margin:0 0 6px 8px}.gauge{margin-bottom:4px}.unit-stats{grid-template-columns:repeat(3,1fr);gap:3px 12px;margin-top:6px;padding-top:6px}.stat-row{font-size:10px}.submenu{left:8px;right:8px;transform:none;min-width:0;max-width:none;bottom:calc(58px + env(safe-area-inset-bottom));max-height:200px}.submenu-row{grid-template-columns:64px 1fr auto;padding:10px 8px}.shop-list,.equip-units{max-width:none}.shop-item{flex-wrap:wrap}.action-bar{gap:5px;padding:8px 8px calc(8px + env(safe-area-inset-bottom));overflow-x:auto;scrollbar-width:none}.action-bar::-webkit-scrollbar{display:none}.action-btn{padding:12px 13px;font-size:12px;letter-spacing:1px;white-space:nowrap;flex-shrink:0}.action-btn.sub{margin-left:0;font-size:11px;padding:12px 10px}.zoom-group{display:none}.result-banner{width:min(320px,72vw)}}
