@font-face{font-family:Galmuri11;src:url(./Galmuri11-DfQIlyDK.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Galmuri11;src:url(./Galmuri11-Bold-QdFGsJ3v.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Galmuri9;src:url(./Galmuri9-B9HMP827.woff2)format("woff2");font-display:swap}:root{--u:3px;--bg:#090d18;--tile:#151d2e;--panel:#101828;--edge:#26354a;--edge-hi:#34475f;--text:#dde9fa;--dim:#8fa3c0;--cyan:#52d9ff;--gold:#fff0a8;--yellow:#ffd166;--red:#ff405e;--orange:#ff8c42;--green:#a3ff6f;--purple:#b675ff;--c-score:var(--gold);--c-action:var(--cyan);--c-virus:#ff4fa3;--c-danger:var(--red);--c-warn:var(--orange);--c-good:var(--green);--font:"Galmuri11", "Malgun Gothic", monospace;--font-s:"Galmuri9", "Galmuri11", monospace;--notch:polygon(var(--u) 0, calc(100% - var(--u)) 0, 100% var(--u), 100% calc(100% - var(--u)), calc(100% - var(--u)) 100%, var(--u) 100%, 0 calc(100% - var(--u)), 0 var(--u))}*{box-sizing:border-box}html,body{height:100%;margin:0}html{background:var(--bg)}body{background:var(--bg);color:var(--text);font:12px/18px var(--font);-webkit-font-smoothing:none;font-smooth:never;text-rendering:optimizespeed;overflow:hidden}#app{z-index:1;flex-direction:column;height:100vh;display:flex;position:relative}body.bg-fx{background:linear-gradient(90deg, #1a2540 1px, transparent 1px) 0 0 / 24px 24px, linear-gradient(#1a2540 1px, transparent 1px) 0 0 / 24px 24px, radial-gradient(ellipse at 50% 40%, #0f1830 0%, var(--bg) 70%);animation:24s linear infinite grid-drift}body.bg-fx:after{content:"";pointer-events:none;z-index:2;background:repeating-linear-gradient(0deg,#0000002e 0 1px,#0000 1px 3px);position:fixed;inset:0}@keyframes grid-drift{to{background-position:24px 24px,24px 24px,0 0}}img.spr{image-rendering:pixelated;width:calc(var(--u) * 16);height:calc(var(--u) * 16);display:block}.dim{color:var(--dim)}.hidden{display:none!important}b{font-weight:700}.panel,.modal-card,button,.inv-item,.reward,.toast,.tooltip,.tutorial,.grid-stats>div,.progress,.gauge,.error-box,kbd,.form-row select,.form-row input[type=text]{clip-path:var(--notch)}.panel{background:var(--panel);border:var(--u) solid var(--edge);box-shadow:inset calc(var(--u) * -1) calc(var(--u) * -1) 0 #0b111d;padding:calc(var(--u) * 4)}.panel-title{gap:calc(var(--u) * 2);margin-bottom:calc(var(--u) * 3);align-items:baseline;font-weight:700;display:flex}.panel-title b{color:var(--cyan);margin-left:auto}button{font:12px/18px var(--font);color:var(--text);background:var(--tile);border:var(--u) solid var(--edge-hi);box-shadow:inset 0 calc(var(--u) * -1) 0 #0b111d;padding:var(--u) calc(var(--u) * 3);cursor:pointer}button:hover:not(:disabled){border-color:var(--cyan);color:#fff}button:active:not(:disabled){transform:translateY(var(--u));box-shadow:none}button:disabled{opacity:.35;cursor:not-allowed}button.active{border-color:var(--cyan);color:var(--cyan);background:#12324a}button.primary{border-color:var(--cyan);color:var(--cyan);font-weight:700}button:focus-visible,input:focus-visible,select:focus-visible{outline:var(--u) solid var(--gold);outline-offset:var(--u)}kbd{font:10px/12px var(--font-s);color:var(--text);background:var(--edge);padding:0 var(--u);border-bottom:var(--u) solid #0b111d}.topbar{align-items:center;gap:calc(var(--u) * 4);padding:calc(var(--u) * 3) calc(var(--u) * 5);background:var(--panel);border-bottom:var(--u) solid var(--edge);flex-wrap:wrap;display:flex}.brand{align-items:center;gap:calc(var(--u) * 2);display:flex}.brand .logo-mark{width:24px;height:24px;image-rendering:pixelated}.brand .logo{font:700 24px/24px var(--font);color:var(--cyan);text-shadow:2px 2px #13435a,4px 4px #0b1d2a;letter-spacing:1px}.brand .sub{margin-left:calc(var(--u) * 2);color:var(--purple);font-weight:700}.stage-block{align-items:center;gap:calc(var(--u) * 4);flex:1;min-width:280px;display:flex}.stage-label{white-space:nowrap}.stage-label b{font:700 24px/24px var(--font);color:var(--gold)}.progress{max-width:440px;height:calc(var(--u) * 8);border:var(--u) solid var(--edge);background:#0b111d;flex:1;position:relative}.progress .bar{background:repeating-linear-gradient(90deg, var(--cyan) 0 calc(var(--u) * 3), #2a8fb0 calc(var(--u) * 3) calc(var(--u) * 4));width:0;height:100%;transition:width .2s steps(6,end)}.progress .bar.done{background:repeating-linear-gradient(90deg, var(--gold) 0 calc(var(--u) * 3), #b9a65e calc(var(--u) * 3) calc(var(--u) * 4))}.progress span{color:#fff;text-shadow:1px 1px #000,-1px -1px #000,1px -1px #000,-1px 1px #000;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.shots{gap:calc(var(--u) * 2);display:flex}.shots i{width:calc(var(--u) * 5);height:calc(var(--u) * 5);background:var(--purple);box-shadow:inset calc(var(--u) * -1) calc(var(--u) * -1) 0 #6b3fa8}.shots i.used{background:var(--edge);box-shadow:none}.top-actions{gap:calc(var(--u) * 2);display:flex}.top-actions button{min-width:calc(var(--u) * 9)}.res{gap:calc(var(--u) * 4);margin-left:auto;font-weight:700;display:flex}.res span{cursor:help;padding:var(--u) calc(var(--u) * 2);background:var(--tile)}.energy{color:var(--yellow)}.infection{color:var(--c-virus)}.infection.danger{color:#fff;box-shadow:inset 0 0 0 var(--u) var(--c-danger);background:#3a1430}.layout{gap:calc(var(--u) * 4);min-height:0;padding:calc(var(--u) * 4);flex:1;grid-template-columns:280px minmax(0,1fr) 300px;grid-template-areas:"left board right";display:grid}.leftcol{gap:calc(var(--u) * 3);flex-direction:column;grid-area:left;min-height:0;display:flex}.board-area{align-items:center;gap:calc(var(--u) * 3);flex-direction:column;grid-area:board;min-width:0;min-height:0;display:flex}.board-frame{flex:1;justify-content:center;align-items:center;width:100%;min-height:0;display:flex}#board{image-rendering:pixelated;touch-action:none;cursor:crosshair;outline:var(--u) solid var(--edge);box-shadow:calc(var(--u) * 2) calc(var(--u) * 2) 0 #05080f}.side{gap:calc(var(--u) * 3);flex-direction:column;grid-area:right;min-height:0;display:flex}.side .panel,.leftcol .panel{padding:calc(var(--u) * 3)}.leftcol .check{flex:1;min-height:0;overflow:hidden}.panel-title .pi img.spr{width:24px;height:24px}.panel-title{align-items:center}.hud .mode{font:10px/12px var(--font-s);padding:0 var(--u);color:var(--bg);background:var(--c-action);margin-left:auto}.hud .mode.live{background:var(--c-score)}.hud-score{padding:calc(var(--u) * 2) calc(var(--u) * 3);background:var(--tile);border-left:var(--u) solid var(--c-score);cursor:help}.hud-score b{font:700 24px/24px var(--font);color:var(--c-score);overflow-wrap:anywhere;font-size:36px;line-height:36px;display:block}.need-line{margin-top:var(--u)}.need-line .pass{color:var(--c-good)}.need-line .fail{color:var(--c-warn)}.need-line .virus{color:var(--c-virus)}.hud-grid{gap:calc(var(--u) * 2);margin:calc(var(--u) * 2) 0;grid-template-columns:1fr 1fr;display:grid}.stat{cursor:help;white-space:nowrap;background:var(--tile);padding:var(--u) calc(var(--u) * 2)}.stat label,.heat label{font:12px/18px var(--font);color:var(--dim);display:block}.stat b{font:700 24px/24px var(--font);color:#fff;display:inline-block}.stat b.bump{transform:translateY(calc(var(--u) * -1))}#hudScore{color:var(--c-score)}.heat{cursor:help}.heat-label{gap:calc(var(--u) * 2);align-items:baseline;display:flex}.heat-label label{display:inline}.heat-label b{font-weight:700}.heat.melt .heat-label b{color:var(--c-danger)}.gauge{height:calc(var(--u) * 4);margin-top:var(--u);border:var(--u) solid var(--edge);background:#0b111d;position:relative}.gauge .fill{--heat-color:var(--cyan);background:repeating-linear-gradient(90deg, var(--heat-color) 0 calc(var(--u) * 3), transparent calc(var(--u) * 3) calc(var(--u) * 4));width:0;height:100%;transition:width .12s steps(4,end)}.gauge i{width:var(--u);background:var(--edge-hi);position:absolute;top:0;bottom:0}.gauge .mark{top:calc(var(--u) * -1);bottom:calc(var(--u) * -1);width:var(--u);background:#fff;position:absolute}.heat-info{color:var(--dim);margin-top:var(--u);overflow-wrap:anywhere}.controls .fire{width:100%;padding:calc(var(--u) * 3);font:700 24px/24px var(--font);letter-spacing:4px;color:var(--cyan);border-color:var(--cyan);box-shadow:inset 0 calc(var(--u) * -2) 0 #0a1f29;background:#10303f;position:relative}.fire-warn{top:var(--u);right:var(--u);padding:0 var(--u);font:700 12px/18px var(--font);letter-spacing:0;color:var(--bg);background:var(--orange);position:absolute}.fire-warn.danger{background:var(--red);color:#fff}.speed{gap:var(--u);margin-top:calc(var(--u) * 2);display:flex}.speed button{padding:var(--u) 0;flex:1}.check ul{margin:0 0 calc(var(--u) * 2);gap:var(--u);flex-direction:column;padding:0;list-style:none;display:flex}.check li{padding:0 calc(var(--u) * 2);background:var(--tile);border-left:var(--u) solid var(--edge-hi);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.check li[data-cells],.check li[data-tick]{cursor:pointer}.check li[data-cells]:hover,.check li[data-tick]:hover{background:#1d2a42}.check li.danger{border-color:var(--c-danger)}.check li.warn{border-color:var(--c-warn)}.check li.info{color:var(--dim)}.check li.good{border-color:var(--green)}.check li .replay{float:right;color:var(--cyan);font:10px/18px var(--font-s)}.check .panel-title b.ok{color:var(--green)}.check .panel-title b.bad{color:var(--orange)}.check .sub{color:var(--dim);margin:var(--u) 0 calc(var(--u) * 2)}.check .stale{color:var(--orange)}.formula{gap:var(--u);margin:var(--u) 0;flex-wrap:wrap;align-items:center;display:flex}.formula span{padding:0 var(--u);background:var(--edge)}.formula .q{color:var(--yellow)}.formula .m{color:var(--purple)}.formula .k{color:#6e8fff}.formula .h{color:var(--orange)}.formula .s{color:var(--gold);background:0 0;font-weight:700}.inv-grid{grid-template-columns:repeat(auto-fill, calc(var(--u) * 17));gap:var(--u);min-height:calc(var(--u) * 17);display:grid}.inv-item{width:calc(var(--u) * 17);height:calc(var(--u) * 17);background:var(--tile);border:var(--u) solid var(--edge);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;justify-content:center;align-items:center;display:flex;position:relative}.inv-item:hover{border-color:var(--c)}.inv-item .lv{font:700 12px/14px var(--font);color:var(--bg);background:var(--c);padding:0 2px;position:absolute;top:0;right:0}.inv-item.mergeable{border-color:var(--c-score);animation:1.2s steps(2,end) infinite merge-blink}.inv-item.mergeable:before{content:"합성";font:10px/12px var(--font-s);color:var(--bg);background:var(--c-score);padding:0 2px;position:absolute;bottom:0;left:0}@keyframes merge-blink{50%{border-color:var(--edge)}}.inv-item.merge-target{border-color:var(--gold)}.panel-title .summon{padding:0 calc(var(--u) * 2);color:var(--yellow);border-color:#6b5a2a;margin-left:auto}.inv-item.placed{opacity:.4;border-style:dashed}.inv-item.selected{border-color:var(--gold)}.edit-actions{gap:var(--u);margin-top:calc(var(--u) * 2);flex-wrap:wrap;align-items:center;display:flex}.edit-actions button{padding:0 calc(var(--u) * 2);white-space:nowrap}.edit-actions .toggle{white-space:nowrap;margin-left:auto}.toggle{gap:var(--u);color:var(--dim);cursor:pointer;align-items:center;display:flex}.toggle input{accent-color:var(--cyan)}.tooltip h4{margin:0 0 var(--u);gap:calc(var(--u) * 2);align-items:center;font-weight:700;display:flex}.tooltip h4 img.spr{width:calc(var(--u) * 8);height:calc(var(--u) * 8)}.tooltip p{margin:var(--u) 0}.pulse-info td{padding:0 calc(var(--u) * 2) 0 0}.tutorial{gap:calc(var(--u) * 3);width:100%;max-width:760px;padding:calc(var(--u) * 3) calc(var(--u) * 4);border:var(--u) solid var(--cyan);background:#12283a;align-items:center;display:flex}.tutorial span{flex:1}.tutorial .step{font:10px/12px var(--font-s);color:var(--cyan);margin-right:calc(var(--u) * 2)}.tutorial button{flex:none}.flash{pointer-events:none;opacity:0;z-index:40;background:#fff;position:fixed;inset:0}.flash.on{animation:.4s steps(4,end) flash}@keyframes flash{0%{opacity:var(--flash-alpha,.15)}to{opacity:0}}.ghost{pointer-events:none;z-index:60;opacity:.9;position:fixed;transform:translate(-50%,-50%)}.toast,.tooltip{z-index:70;padding:calc(var(--u) * 2) calc(var(--u) * 4);background:var(--panel);border:var(--u) solid var(--cyan);pointer-events:none;position:fixed}.toast{opacity:0;text-align:center;max-width:min(560px,92vw);transition:opacity .15s steps(3,end);top:64px;left:50%;transform:translate(-50%)}.toast.show{opacity:1}.toast.error{border-color:var(--c-danger)}.tooltip{border-color:var(--edge-hi);max-width:320px;color:var(--text)}.modal{z-index:80;background:#090d18d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:var(--panel);border:var(--u) solid var(--cyan);width:min(720px,94vw);max-height:90vh;padding:calc(var(--u) * 6);animation:.2s steps(4,end) both px-in;overflow-y:auto}@keyframes px-in{0%{opacity:0;transform:translateY(16px)scale(.96)}}@keyframes card-flip{0%{opacity:0;transform:perspective(600px)rotateY(90deg)}}@keyframes slide-in{0%{opacity:0;transform:translate(-40px)}}@keyframes pop-score{0%{transform:scale(.6)}60%{transform:scale(1.12)}}.modal-card.danger{border-color:var(--red)}.modal-card.gold{border-color:var(--gold)}.modal-card h2{margin:0 0 calc(var(--u) * 3);font:700 24px/24px var(--font);color:#fff}.modal-card h3{margin:calc(var(--u) * 5) 0 calc(var(--u) * 2);color:var(--cyan);font-weight:700}.modal-card p{margin:calc(var(--u) * 2) 0}.big-score{font:700 48px/48px var(--font);color:var(--c-score);text-shadow:var(--u) var(--u) 0 #6b5f2f;margin:calc(var(--u) * 2) 0;overflow-wrap:anywhere;transform-origin:0;animation:.3s steps(4,end) both pop-score}.record-badge{color:var(--gold);font-weight:700}.grid-stats{gap:calc(var(--u) * 2);grid-template-columns:repeat(4,1fr);display:grid}.grid-stats>div{background:var(--tile);padding:calc(var(--u) * 2) calc(var(--u) * 3)}.grid-stats label{font:10px/12px var(--font-s);color:var(--dim);display:block}table.list{border-collapse:collapse;width:100%}table.list th,table.list td{text-align:right;padding:var(--u) calc(var(--u) * 2);border-bottom:var(--u) solid var(--tile)}table.list th:first-child,table.list td:first-child{text-align:left}table.list th{color:var(--dim);font-weight:400}.swatch{width:calc(var(--u) * 3);height:calc(var(--u) * 3);margin-right:calc(var(--u) * 2);background:var(--c);display:inline-block}.modal-actions{justify-content:flex-end;gap:calc(var(--u) * 3);margin-top:calc(var(--u) * 6);display:flex}.analysis-list{padding-left:calc(var(--u) * 6);margin:0}.result-top{align-items:center;gap:calc(var(--u) * 5);flex-wrap:wrap;display:flex}.result-top .stage-line{flex:1;min-width:200px}.acts{gap:calc(var(--u) * 2);flex-wrap:wrap;display:flex}.acts span{align-items:center;gap:var(--u);padding:0 calc(var(--u) * 2) 0 0;background:var(--tile);display:inline-flex}.acts img.spr{width:24px;height:24px}details.more{margin-top:calc(var(--u) * 3)}details.more summary{cursor:pointer;color:var(--dim)}.next-try{gap:calc(var(--u) * 3);margin-top:calc(var(--u) * 4);padding:calc(var(--u) * 2) calc(var(--u) * 3);background:var(--tile);border-left:var(--u) solid var(--c-good);align-items:center;display:flex}.next-try img.spr{flex:none;width:32px;height:32px}.check .next-try{margin-top:calc(var(--u) * 3)}.analysis-list li{margin:var(--u) 0}.delta-up{color:var(--green)}.delta-down{color:var(--red)}.error-box{border:var(--u) solid var(--red);padding:calc(var(--u) * 3);background:#3a1420}.rewards{gap:calc(var(--u) * 3);margin-top:calc(var(--u) * 4);grid-template-columns:repeat(3,1fr);display:grid}.reward{gap:calc(var(--u) * 2);text-align:left;padding:calc(var(--u) * 4);background:var(--tile);border:var(--u) solid var(--c);flex-direction:column;align-items:flex-start;animation:.32s steps(4,end) both card-flip;display:flex}.reward:nth-child(2){animation-delay:.1s}.reward:nth-child(3){animation-delay:.2s}.reward:hover:not(:disabled){transform:translateY(calc(var(--u) * -1));border-color:#fff}.reward .head{gap:calc(var(--u) * 3);align-items:center;display:flex}.reward .kind{font:10px/12px var(--font-s);color:var(--dim)}.reward .title{color:var(--c);font-weight:700}.reward .desc{color:var(--text)}.reward .effect{font:10px/12px var(--font-s);padding:var(--u) calc(var(--u) * 2);background:var(--panel);border-left:var(--u) solid var(--c)}.reward .effect.none{color:var(--orange);border-color:var(--orange)}.badge-new{font:10px/12px var(--font-s);color:var(--bg);background:var(--gold);padding:0 var(--u)}.help ul{margin:var(--u) 0;padding-left:calc(var(--u) * 6)}.mod-table{gap:calc(var(--u) * 2) calc(var(--u) * 4);grid-template-columns:auto auto 1fr;align-items:center;display:grid}.mod-table img.spr{width:calc(var(--u) * 8);height:calc(var(--u) * 8)}.mod-table .name{color:var(--c);white-space:nowrap;font-weight:700}.formula-big{gap:calc(var(--u) * 2);padding:calc(var(--u) * 3);background:var(--tile);flex-wrap:wrap;align-items:center;display:flex}.formula-big span{padding:var(--u) calc(var(--u) * 2);background:var(--edge)}.stage-card .changes{margin:calc(var(--u) * 3) 0;gap:calc(var(--u) * 2);flex-direction:column;padding:0;list-style:none;display:flex}.stage-card h2{font-size:36px;line-height:36px;animation:.3s steps(5,end) both slide-in}.stage-card .changes li{gap:calc(var(--u) * 3);padding:calc(var(--u) * 2);background:var(--tile);align-items:center;animation:.3s steps(5,end) both slide-in;display:flex}.stage-card .changes li:nth-child(2){animation-delay:60ms}.stage-card .changes li:nth-child(3){animation-delay:.12s}.stage-card .changes li:nth-child(4){animation-delay:.18s}.stage-card .changes li img.spr{width:calc(var(--u) * 8);height:calc(var(--u) * 8);flex:none}.form-row{justify-content:space-between;align-items:center;gap:calc(var(--u) * 4);padding:calc(var(--u) * 2) 0;border-bottom:var(--u) solid var(--tile);display:flex}.form-row input[type=text],.form-row select{font:12px/18px var(--font);color:var(--text);background:var(--tile);border:var(--u) solid var(--edge-hi);padding:var(--u) calc(var(--u) * 2)}.form-row input[type=range]{max-width:45%;accent-color:var(--cyan)}.form-row input[type=checkbox]{accent-color:var(--cyan);width:calc(var(--u) * 5);height:calc(var(--u) * 5)}@media (width<=1180px){.layout{grid-template-columns:250px minmax(0,1fr) 270px}}@media (width<=900px){html,body{height:auto;overflow:visible}#app{height:auto;min-height:100vh}.layout{flex-direction:column;display:flex}.board-area{order:1}.side{order:2}.leftcol{order:3}.board-frame{flex:none}.leftcol .check{overflow:visible}.stage-block{flex-basis:100%;order:3}.rewards,.grid-stats{grid-template-columns:1fr 1fr}.toast{top:8px}}@media (width<=480px){.rewards{grid-template-columns:1fr}.big-score{font-size:24px;line-height:24px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.codex-grid{gap:calc(var(--u) * 3);grid-template-columns:repeat(2,1fr);display:grid}.codex-card{gap:var(--u);padding:calc(var(--u) * 3);background:var(--tile);border:var(--u) solid var(--edge);clip-path:var(--notch);flex-direction:column;display:flex}.codex-card.done{border-color:var(--gold)}.codex-card p{margin:0}.codex-head{gap:calc(var(--u) * 2);align-items:center;display:flex}.codex-head b{flex:1}.codex-img{image-rendering:pixelated;align-self:center;max-width:100%;height:auto}.tier{font:10px/12px var(--font-s);padding:0 var(--u);color:var(--bg);background:var(--cyan)}.tier-중급{background:var(--yellow)}.tier-고급{background:var(--purple)}.stamp{font:10px/12px var(--font-s);padding:0 var(--u);color:var(--bg);background:var(--gold)}.ready{font:10px/12px var(--font-s);padding:0 var(--u);color:var(--bg);background:var(--green)}.lock{font:10px/12px var(--font-s);color:var(--dim)}.needs{gap:calc(var(--u) * 2);flex-wrap:wrap;align-items:center;display:flex}.need{opacity:.45;align-items:center;gap:1px;display:inline-flex}.need.ok{opacity:1}.need img.spr{width:calc(var(--u) * 6);height:calc(var(--u) * 6)}.cond{font:10px/12px var(--font-s);color:var(--dim);border-top:var(--u) solid var(--edge);padding-top:var(--u)}#btnCodex .badge-new{margin-left:var(--u)}@media (width<=960px){.codex-grid{grid-template-columns:1fr}}.inv-item.sell-arm{border-color:var(--red);animation:none}.inv-item.sell-arm:after{content:"판매?";text-align:center;font:10px/12px var(--font-s);color:#fff;background:var(--red);position:absolute;bottom:0;left:0;right:0}
