@charset "UTF-8";
:root{color-scheme:light;--ink:#172d48;--muted:#627589;--yellow:#ffcd4d;--line:#d7e3ed;font-family:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic",sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:#f1f6fa;color:var(--ink);min-height:100svh;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;border:0;user-select:none}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,.arena:focus-visible{outline:3px solid #e4900f;outline-offset:4px}a{color:inherit}.app{max-width:1080px;padding:14px 28px 18px;margin:auto}.topbar{display:flex;align-items:center;justify-content:space-between;max-width:1010px;margin:0 auto 16px}.brand{display:flex;gap:10px;align-items:center;text-decoration:none}.brand-star{display:grid;place-items:center;background:var(--yellow);border:2px solid var(--ink);border-radius:16px;width:48px;height:48px;font-size:32px;box-shadow:0 3px 0 var(--ink);transform:rotate(-7deg)}.brand small{font-size:11px;display:block;letter-spacing:.6px;font-weight:750}.brand strong{font-size:26px;line-height:1.15;letter-spacing:-1px;font-weight:950}.brand strong span{color:#e99611}.top-actions{display:flex;gap:7px}.icon-button{display:grid;place-items:center;width:43px;height:43px;flex:0 0 43px;background:#fff;border:1px solid var(--line);border-radius:14px}.icon-button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.icon-button[aria-pressed=false]{color:#94a0ad;background:#eef1f5}.layout{display:grid;grid-template-columns:minmax(0,640px) 280px;justify-content:center;gap:38px;align-items:start}.play-column{width:100%;max-width:min(620px,calc((100svh - 210px)*.703125));margin:0 auto}.mission-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px}.mission-name{min-width:0;text-align:left;position:relative;background:none;display:flex;flex-direction:column;gap:3px;padding:0 22px 0 0;max-width:calc(100% - 50px)}.stage-badge{font-size:10px;font-weight:850;letter-spacing:1.4px;color:#697f96}.mission-name strong{font-size:clamp(15px,1.6vw,20px);line-height:1.25;letter-spacing:-.5px;word-break:keep-all}.chevron{position:absolute;right:0;bottom:0;color:var(--muted);font-size:22px}.pause-button{width:39px;height:39px;flex-basis:39px;background:var(--ink);color:#fff;border-color:var(--ink);border-radius:12px}.hud{display:grid;grid-template-columns:1fr 1fr 1fr;background:white;border:1px solid var(--line);border-bottom:0;border-radius:18px 18px 0 0;overflow:hidden}.stat{padding:9px 9px 8px;text-align:center}.stat+.stat{border-left:1px solid #edf1f5}.stat>span{display:block;color:var(--muted);font-size:10px;font-weight:750;margin-bottom:2px}.stat strong{display:block;font-size:23px;line-height:1.1;font-weight:900;font-variant-numeric:tabular-nums;letter-spacing:-.6px}.stat strong small{font-size:14px;color:#9cacbc}.stat i{font-style:normal;color:#e25752;font-size:10px}.ammo-stat{background:#fff7df}.ammo-stat.low{background:#ffede6;color:#b83d36}
.arena{width:100%;aspect-ratio:900/1280;position:relative;background:#d7f1ff;overflow:hidden;border:3px solid #213e60;border-radius:0 0 20px 20px;touch-action:none;user-select:none;box-shadow:0 7px 0 #cadbe6;isolation:isolate;container-type:inline-size}.arena canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}.target-layer{position:absolute;inset:0;pointer-events:none;z-index:2}.target-label{position:absolute;width:40%;height:13.75%;background:linear-gradient(#fffef7,#fff8e6);border:2px solid #2e5577;border-bottom-width:4px;box-shadow:0 3px 0 #a2d6ef;border-radius:12px;display:flex;align-items:center;justify-content:center;padding:8px 9px;font-size:clamp(12px,3.55cqw,21px);line-height:1.35;font-weight:850;letter-spacing:-.04em;word-break:keep-all;overflow-wrap:anywhere;text-align:center;pointer-events:auto;transition:opacity .25s,transform .15s,border-color .15s}.target-label:before,.target-label:after{content:"";position:absolute;width:6px;height:6px;border-radius:50%;background:#fab85d;border:1px solid #32536f;top:5px}.target-label:before{left:10px}.target-label:after{right:10px}.target-label.aimed{border-color:#b67c06;box-shadow:0 0 0 2px #ffe48b}.target-label.done{opacity:.18;border-color:#47785f;box-shadow:none}.target-label.hit{animation:targetPop .4s ease;opacity:1;background:#fff0a2;border-color:#d99a0c}.target-label.wrong{animation:wrongWiggle .26s linear;border-color:#d66754}.done-stamp{position:absolute;right:4%;bottom:-10%;padding:3px 8px;transform:rotate(-9deg);border:2px solid #cf5041;color:#c14334;background:#fffcf0;border-radius:4px;font-size:.9em;white-space:nowrap}.target-label.done .done-stamp{display:none}.target-label.hit .done-stamp{display:block}.mascot{position:absolute;pointer-events:none;z-index:3;transform-origin:center bottom}.mascot img{width:100%;height:100%;object-fit:contain;display:block}.narmi{width:24%;height:20%;left:52%;top:78%}.dali{width:19%;height:17%;right:5%;bottom:2%}.mascot.cheer{animation:cheer .6s ease}.dali-bubble{position:absolute;right:3%;bottom:19%;z-index:5;background:#fff9db;border:2px solid #e5b64e;border-radius:18px 18px 3px 18px;padding:7px 12px;font-size:clamp(12px,3.7cqw,20px);font-weight:900}.combo-badge{position:absolute;top:68%;left:50%;transform:translateX(-50%) rotate(-4deg);z-index:4;pointer-events:none;color:#b66408;text-align:center;text-shadow:2px 2px white,-2px -2px white;font-weight:900}.combo-badge b{font-size:clamp(30px,10cqw,54px);line-height:1}.combo-badge b:before{content:"×";font-size:.6em}.combo-badge span{display:block;font-size:clamp(10px,2.7cqw,16px);letter-spacing:3px}.aim-tip{position:absolute;z-index:4;left:50%;top:72%;transform:translateX(-50%);background:#ffffffce;color:#325477;border:1px solid #ffffffa0;padding:6px 10px;border-radius:30px;white-space:nowrap;pointer-events:none;font-size:clamp(10px,2.8cqw,16px);font-weight:800;transition:opacity .2s}.aim-tip span{color:#bf7c0f;font-size:1.25em}.arena.is-aiming .aim-tip,.arena.is-flying .aim-tip{opacity:0}.loading{position:absolute;inset:0;z-index:8;background:#e6f5ff;display:grid;place-items:center;font-weight:700}.control-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px;min-height:45px}.control-bar p{font-size:12px;line-height:1.4;margin:0;word-break:keep-all;font-weight:600;max-width:72%;color:#4f687f}.hint-button{display:flex;align-items:center;gap:4px;background:#ffda66;border:1px solid #eabb40;border-bottom-width:3px;border-radius:13px;padding:4px 9px 4px 5px;min-height:41px;font-weight:850;font-size:12px;white-space:nowrap}.hint-button img{height:30px;width:30px;object-fit:contain}.under-game{display:flex;align-items:center;justify-content:space-between;padding-top:9px;font-size:10px;color:#8495a4}.under-game button{background:none;padding:6px 0 6px 6px;color:#59718a;font-size:11px;font-weight:650}.under-game b{color:#718497}
.side-panel{padding-top:24px}.eyebrow{font-size:9px;color:#93a4b3;font-weight:800;letter-spacing:2px}.side-intro h1{font-size:30px;line-height:1.4;letter-spacing:-1.6px;margin:15px 0 12px;font-weight:900}.side-intro h1 em{font-style:normal;color:#2c7caa}.side-intro p{font-size:13px;line-height:1.75;color:#6c7f91;margin-bottom:28px}.mission-card,.log-card{border:1px solid #dce6ee;background:#ffffffd9;border-radius:18px;padding:19px 18px;margin-bottom:16px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.section-head h2{font-size:13px;margin:0;font-weight:850}.section-head>span{font-size:10px;color:#8698a8}.mission-card p{font-size:12px;color:#657c8e;line-height:1.7;margin:14px 0}.text-button{background:none;font-size:12px;font-weight:800;color:#266d95;padding:5px 0;display:flex;justify-content:space-between;width:100%;text-align:left}.log-card ol{padding:0;list-style:none;margin:16px 0 0;counter-reset:steps}.log-card li{font-size:12px;line-height:1.6;padding:0 0 10px 24px;position:relative;counter-increment:steps;word-break:keep-all}.log-card li:not(.empty-log):before{content:counter(steps);position:absolute;left:0;top:1px;background:#e4f4ef;color:#2c876c;font-size:10px;border-radius:50%;width:17px;height:17px;display:grid;place-items:center;font-weight:800}.log-card .empty-log{color:#9baab6;padding:5px 0}.best-card{padding:20px;position:relative;overflow:hidden;background:#e5eef6;border-radius:18px}.best-card>span:first-child{font-size:11px;color:#6f8396;display:block}.best-card strong{font-size:29px;display:block;margin-top:5px}.best-star{position:absolute;right:19px;top:17px;font-size:56px;color:#cadce8;transform:rotate(12deg)}.desktop-tip{font-size:10px;color:#96a3ae;line-height:2;margin:18px 0}kbd{display:inline-block;font:inherit;border:1px solid #d4dfe8;border-radius:4px;padding:0 4px;margin-right:3px;background:#fff}.footer{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:22px;color:#a4afbb;font-size:10px}.footer button{font-size:10px;color:#8596a6;background:none;text-decoration:underline;text-underline-offset:3px;padding:7px}.footer>span{border-right:1px solid #d5dfe7;padding-right:10px}
dialog{border:0;border-radius:26px;padding:0;color:var(--ink);background:#fffefa;box-shadow:0 24px 100px #12294740;width:min(92vw,450px);max-height:88svh;overflow:auto;overscroll-behavior:contain}dialog::backdrop{background:#172b486e;backdrop-filter:blur(6px)}.modal-content{padding:28px}.modal-kicker{font-size:10px;letter-spacing:1.6px;color:#6590a9;font-weight:850;margin:0 0 9px}.modal-content h2{font-size:25px;line-height:1.35;letter-spacing:-1px;margin:0 0 12px}.modal-content p{font-size:14px;line-height:1.7;color:#60778b;word-break:keep-all}.modal-hero{display:flex;justify-content:center;align-items:flex-end;height:150px;margin:0 0 15px}.modal-hero img{height:145px;width:145px;object-fit:contain;transform:rotate(-5deg)}.modal-hero img+img{height:105px;width:105px;margin-left:-10px;transform:rotate(7deg)}.modal-question{padding:13px 15px;background:#edf4f8;border-radius:13px;font-size:13px;line-height:1.75;word-break:keep-all;margin:15px 0}.modal-tip{background:#fff4cf;border:1px solid #f4df9d;padding:13px 15px;border-radius:13px;font-size:13px;line-height:1.7;margin:14px 0}.modal-actions{display:flex;gap:8px;margin-top:21px;flex-wrap:wrap}.modal-actions button{min-height:48px;padding:12px 16px;border-radius:13px;font-weight:850;font-size:14px;flex:1}.primary{background:#ffce4b;border:1px solid #e9ae21!important;border-bottom-width:3px!important;color:#243956}.secondary{background:#e9f0f5;color:#506a80}.modal-actions .wide{flex-basis:100%}.modal-content ul{font-size:13px;line-height:1.8;padding-left:19px;color:#60778b}.result-score{font-size:52px;font-weight:900;letter-spacing:-2px;margin:5px 0 0;color:#1b5879}.result-score small{font-size:16px;letter-spacing:0;margin-left:5px;color:#91a0ad}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:15px 0}.result-stats div{background:#eff5f8;border-radius:12px;padding:11px 5px;text-align:center;font-size:11px;color:#7b8e9d}.result-stats b{display:block;color:#25455d;font-size:20px;margin-top:4px}.result-flow{list-style:none;padding:0!important;counter-reset:result}.result-flow li{counter-increment:result;padding:8px 0 8px 30px;position:relative;color:#37576f;line-height:1.6}.result-flow li:before{content:counter(result);position:absolute;top:10px;left:0;width:21px;height:21px;display:grid;place-items:center;border-radius:50%;background:#e6f2ec;color:#438469;font-size:11px;font-weight:800}.modal-content details{border-top:1px solid #dfe7ed;margin-top:16px;padding-top:14px}.modal-content summary{font-size:13px;cursor:pointer;font-weight:750}.modal-content details p{font-size:12px}.source-note{font-size:11px!important;color:#899aa7!important;overflow-wrap:anywhere}.source-note a{color:#437d9d}.stage-options{display:flex;flex-direction:column;gap:10px;margin-top:20px}.stage-option{padding:17px;text-align:left;background:#eef4f7;border-radius:15px;display:flex;align-items:center;gap:14px}.stage-option .stage-number{font-size:24px;color:#97b4c9;font-weight:900}.stage-option strong{display:block;font-size:14px}.stage-option small{font-size:11px;color:#889cae;display:block;margin-top:5px}.no-script{position:fixed;inset:0;background:#fff;z-index:99;display:grid;place-items:center;padding:30px;text-align:center}body.modal-open{overflow:hidden}
@keyframes targetPop{0%{transform:scale(1)}35%{transform:scale(1.07) rotate(-2deg)}100%{transform:scale(1)}}@keyframes wrongWiggle{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}@keyframes cheer{0%,100%{transform:translateY(0) rotate(0)}35%{transform:translateY(-14px) rotate(-6deg)}70%{transform:translateY(-6px) rotate(4deg)}}
@media(min-width:1000px){.app{max-width:1060px}.layout{grid-template-columns:minmax(0,590px) 280px;gap:36px}}@media(max-width:850px){.app{max-width:620px;padding:12px 18px 16px}.topbar{margin-bottom:14px}.layout{display:block}.play-column{max-width:min(540px,calc((100svh - 215px)*.703125));min-width:330px}.side-panel{display:none}.footer{margin-top:13px}}@media(max-width:520px){.app{padding:9px 12px 12px}.topbar{margin-bottom:12px}.brand-star{width:38px;height:38px;border-radius:12px;font-size:25px}.brand small{font-size:9px}.brand strong{font-size:23px}.icon-button{width:39px;height:39px;flex-basis:39px}.play-column{max-width:100%;min-width:0}.mission-name strong{font-size:16px}.stage-badge{font-size:9px}.mission-bar{margin-bottom:8px}.stat{padding:8px 6px 7px}.stat>span{font-size:9px}.stat strong{font-size:22px}.arena{border-width:2px;border-radius:0 0 16px 16px}.target-label{border-radius:9px;padding:5px 7px;border-width:1.5px;border-bottom-width:3px}.target-label:before,.target-label:after{width:5px;height:5px;top:4px}.control-bar{margin-top:13px;gap:6px}.control-bar p{font-size:11px}.hint-button{font-size:11px;padding-right:7px;min-height:40px}.under-game{padding-top:4px}.footer{margin-top:8px}.modal-content{padding:24px}.modal-content h2{font-size:23px}}@media(max-height:600px) and (orientation:landscape){.play-column{max-width:460px}.app{max-width:980px}.layout{display:grid;grid-template-columns:minmax(0,460px) 250px}.side-panel{display:block}.topbar{max-width:744px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}dialog::backdrop{backdrop-filter:none}}

/* Expanded mission picker and compact seven-target cards. */
.target-label.long-label{font-size:clamp(10px,3.2cqw,19px);line-height:1.3;word-break:normal}
.dense-targets .target-label{font-size:clamp(9.5px,3cqw,17px);line-height:1.25;padding:4px 6px;word-break:normal}
.stage-search{display:grid;grid-template-columns:1fr auto;gap:7px;margin-top:18px}
.stage-search label{font-size:12px;font-weight:800;align-self:center}
.stage-search input{grid-column:1/-1;grid-row:2;font:inherit;font-size:16px;min-width:0;min-height:46px;width:100%;padding:11px 13px;border:1px solid #c9dce7;border-radius:12px;background:#fff;color:var(--ink)}
.stage-search input:focus{outline:3px solid #ffcf6680;border-color:#c29128}
.stage-search span{font-size:11px;color:#60778b;align-self:center}
.stage-option[hidden],.stage-empty[hidden]{display:none}
.stage-option.current-stage{background:#fff2ce;box-shadow:inset 0 0 0 1px #e4c264}
.stage-option .stage-number{min-width:33px;font-variant-numeric:tabular-nums}
.stage-option strong{word-break:keep-all;overflow-wrap:anywhere;line-height:1.4}
.stage-option small{line-height:1.55}
.source-evidence,.flow-context{padding:14px 15px;border:1px solid #dce7ee;border-radius:12px;background:#f3f8fa;margin:14px 0}
.source-evidence>strong,.flow-context>strong{font-size:12px;color:#345f76}
.modal-content .source-evidence p{font-size:13px;line-height:1.75;margin:6px 0 0;color:#486a7d}
.modal-content .flow-context p{font-size:14px;line-height:1.6;margin:7px 0;color:#34566b}

.dense-targets .combo-badge{left:13%;top:75%}
