@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;600;700;900&display=swap');
.enemy:not(.boss-core) .picture{width:56%;height:89.6%;left:22%;top:3%;object-fit:contain}.enemy .hull{transition:transform .1s linear}.enemy.diving:before{content:'';position:absolute;left:36%;right:36%;height:100%;bottom:65%;background:linear-gradient(0deg,#dd83ff88,transparent);filter:blur(6px);border-radius:50%;z-index:-1}.enemy.diving .hull{filter:drop-shadow(0 0 10px #f16eaa)}#ship img{transition:transform .08s linear}#ship.moving img{filter:drop-shadow(0 6px 9px #41dcff)}
html:has(>body.mission-body){overflow:hidden!important;height:100%!important}html body.mission-body{position:fixed!important;inset:0!important;width:100%!important;height:100dvh!important}
*{box-sizing:border-box}html body.mission-body{display:block!important;margin:0!important;background:#050a1d!important;color:#eaf7ff!important;font-family:'Noto Sans KR',sans-serif!important;padding:0!important;overflow:hidden!important}button,a,input{touch-action:manipulation}button,a{font:inherit}button{cursor:pointer;color:#d9f6ff;border:1px solid #2a4263;background:#101e36;border-radius:10px;padding:10px 15px;font-weight:700}button:hover{background:#203c59}button:focus-visible,a:focus-visible{outline:3px solid #7df2ff;outline-offset:3px}button:disabled{opacity:.55;cursor:wait}a{color:#bddef0;text-decoration:none}em{font-style:normal;color:#71eaf8}[hidden]{display:none!important}
#missionApp{width:100%!important;max-width:1380px!important;height:100dvh!important;min-height:0!important;margin:0 auto!important;padding:0 16px!important;display:grid!important;grid-template-rows:64px 76px minmax(0,1fr) 45px 62px;gap:0!important}.mission-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.mission-header h1{font-size:23px;letter-spacing:1.5px;margin:0;text-align:center;line-height:1.15}.mission-header h1 small{display:block;font-size:10px;letter-spacing:2px;color:#87a6c6;font-weight:500;margin-top:6px}.mission-header>a{font-size:12px;border:1px solid #273f5d;border-radius:9px;padding:10px}.mission-header button{font-size:12px}.mission-bar{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:22px;border-top:1px solid #233953;padding:8px 18px;background:#0b152b;border-radius:15px 15px 0 0}.order small,.mission-meter small{font-size:10px;color:#8ca9c7;letter-spacing:1.2px}.order>div{display:flex;align-items:center;gap:14px}.order strong{font-size:clamp(18px,2.5vw,29px);line-height:1.35;white-space:nowrap}.order button{font-size:11px;padding:5px 9px;white-space:nowrap}.mission-meter{text-align:center;font-size:11px;color:#a2c2de}.track{height:4px;background:#233557;margin:7px 0 3px;border-radius:9px;overflow:hidden}.track i{display:block;height:100%;width:0;background:#75ebfa;transition:width .3s}.vitals{text-align:right;display:flex;flex-direction:column;gap:3px}.vitals strong{font-size:17px;color:#7fedff;letter-spacing:3px}.vitals span{font-size:18px;letter-spacing:2px;font-weight:900}
.flight{position:relative;min-height:0;overflow:hidden;isolation:isolate;outline:0;border:1px solid #253f61;background:#050d26 url('./assets/space-mission-v1/background.png') center/cover;touch-action:none;cursor:crosshair}.space-depth{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#050a201a,transparent 55%,#08112960)}#effects{position:absolute;inset:0;width:100%;height:100%;z-index:5;pointer-events:none}#targets{position:absolute;inset:0;z-index:3;pointer-events:none}.enemy{position:absolute;transform:translate(-50%,-50%);aspect-ratio:1.6;will-change:left,top}.enemy .hull{position:absolute;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 9px #040519)}.enemy .picture{position:absolute;width:40%;height:64%;left:30%;top:18%;border-radius:50%;object-fit:cover;background:#fff;border:3px solid #bce9ff;box-shadow:0 0 0 2px #4a3370}.enemy .armor{position:absolute;left:32%;right:32%;bottom:-6px;height:4px;border-radius:5px;background:#22334a}.enemy .armor i{display:block;height:100%;background:#cf95ff;border-radius:5px}.enemy.warning .hull{filter:drop-shadow(0 0 12px #ff6292)}.enemy.hit .picture{border-color:#fb6f9d}.enemy.boss-core{aspect-ratio:1}.enemy.boss-core .picture{width:75%;height:75%;top:12.5%;left:12.5%;border:4px solid #b9afff;box-shadow:0 0 15px #8e60f2}.enemy.boss-core .hull{display:none}.enemy.boss-core .armor{left:20%;right:20%;bottom:4px}#carrier{position:absolute;z-index:2;transform:translate(-50%,-50%);pointer-events:none;opacity:.95}#carrier img{width:100%;display:block;filter:drop-shadow(0 0 20px #631c7555)}#ship{position:absolute;z-index:4;left:50%;top:84%;transform:translate(-50%,-50%);width:85px;pointer-events:none;will-change:left,top}#ship img{width:100%;display:block;filter:drop-shadow(0 0 8px #41d7ff66)}#ship i{position:absolute;width:11px;height:11px;border:2px solid #fff;border-radius:50%;left:calc(50% - 5.5px);top:46%;background:#55dfff;box-shadow:0 0 9px #7ef6ff}#ship.invulnerable{animation:shield-pulse .2s steps(2) infinite}#ship.invulnerable:after{content:'';position:absolute;inset:0;border:2px solid #8cefff;border-radius:50%}@keyframes shield-pulse{50%{opacity:.45}}
.comms{display:flex;align-items:center;gap:12px;padding:7px 14px;background:#0d1a30;border:1px solid #263e5b;border-top:0;border-radius:0 0 12px 12px;min-width:0}.comms>b{font-size:10px;color:#8ef5ff;letter-spacing:1px;white-space:nowrap}.comms p{margin:0;font-size:12px;line-height:1.5;color:#d4e5f2}.comms>span{margin-left:auto;color:#aeefff;font-size:11px;white-space:nowrap}.mission-controls{display:flex;align-items:center;gap:10px}.mission-controls .steering{display:flex;gap:6px}.mission-controls p{font-size:11px;color:#83a3c0;flex:1}.mission-controls button{min-height:40px;padding:8px 16px}.mission-controls .fire{min-width:130px;background:#57c7d5;color:#062139;border-color:#87f4ff}.fire small{margin-left:8px;font-size:9px}.overlay{position:absolute;inset:0;z-index:10;background:#050c20b8;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:18px;overflow:auto;cursor:default;touch-action:pan-y}.mission-card{max-width:530px;width:100%;text-align:center;padding:24px 32px;background:linear-gradient(145deg,#102a43f5,#0b132af5);border:1px solid #3e6484;border-radius:20px;box-shadow:0 18px 60px #0006;max-height:100%;overflow:auto}.eyebrow{font-size:10px;letter-spacing:3px;color:#8bdeef}.mission-card h2{font-size:34px;line-height:1.25;margin:14px 0}.mission-card p{font-size:13px;line-height:1.8;color:#b4cce0;margin:12px 0}.brief{display:grid;gap:7px;text-align:left;margin:18px auto;font-size:11px;max-width:350px;color:#8fb7d3}.brief span{padding:6px 9px;border-left:2px solid #53c8dd;background:#20344a66}.brief b{color:#e1faff;margin:0 10px}.mission-card .controls-copy{font-size:11px;color:#a8ccdf}fieldset{border:0;display:flex;justify-content:center;gap:18px;margin:13px 0;padding:0;font-size:12px}fieldset legend{position:absolute;width:1px;height:1px;overflow:hidden}input{accent-color:#6ae7f5}.primary{background:#6de2ec;color:#05243a;width:100%;padding:13px;font-size:16px;border-color:#9efaff}.primary:hover{background:#a0f2f7}.mission-card .tiny{font-size:10px;color:#739eb9;margin:9px 0 0}.back-link{display:block;margin-top:15px;font-size:12px}#review{font-size:12px;color:#c2aaff;margin:15px 0;line-height:1.7}.mission-body .word-game-exit{display:none!important}.mission-body #fw-annotation-panel-toggle{top:10px!important;bottom:auto!important;right:0!important;transform:scale(.7)!important;transform-origin:top right!important;opacity:.65}.mission-body #fw-annotation-panel-toggle:hover{opacity:1}
@media(max-width:650px){#missionApp{padding:0 7px!important;grid-template-rows:48px 76px minmax(0,1fr) 53px 56px}.mission-header h1{font-size:16px}.mission-header h1 small{font-size:8px;letter-spacing:1px}.mission-header>a,.mission-header button{font-size:10px;padding:7px}.mission-bar{padding:6px 8px;gap:9px;grid-template-columns:1.5fr 1fr}.order strong{font-size:20px}.order>div{gap:6px}.order small{font-size:8px}.order button{font-size:9px;padding:4px}.mission-meter{display:none}.vitals strong{font-size:12px;letter-spacing:1px}.vitals span{font-size:16px}.comms{gap:8px;padding:5px 8px}.comms p{font-size:11px}.comms>span{display:none}.mission-controls{gap:6px}.mission-controls p{display:none}.mission-controls .fire{flex:1;min-width:0}.mission-controls button{padding:8px 12px;font-size:12px}.mission-card{padding:20px 18px}.mission-card h2{font-size:28px}.brief{font-size:10px;margin:12px 0}.mission-card p{font-size:12px}.overlay{padding:12px}.enemy .picture{border-width:2px}.mission-body #fw-annotation-panel-toggle{display:none!important}}
@media(max-width:650px){.enemy:not(.boss-core) .picture{width:66%;height:105.6%;left:17%;top:-3%;border-width:2px}.enemy:not(.boss-core) .armor{bottom:-9px}}
@media(max-height:650px){#missionApp{grid-template-rows:43px 60px minmax(0,1fr) 36px 48px}.mission-card{padding:15px 22px}.mission-card h2{font-size:25px;margin:8px 0}.mission-card p{margin:8px 0}.brief{margin:10px auto;gap:3px}.mission-header h1 small{display:none}.comms p{font-size:11px}.vitals strong{font-size:13px}.order strong{font-size:22px}}

/* Compact launch card: start first, no nested scrolling. */
#missionApp #overlay{overflow:visible;padding:12px}
html.tablet-suite body #missionApp #overlay .mission-card,#missionApp #overlay .mission-card{display:flex;flex-direction:column;max-width:480px;max-height:none;min-height:0;overflow:visible;padding:16px 20px;gap:10px}
#missionApp #overlay .mission-start-actions{display:flex;flex-direction:column;gap:8px;flex:0 0 auto;padding:0;border:0;background:transparent}
#missionApp #overlay .mission-start-actions #start{order:-2;display:block;min-height:48px;width:100%;margin:0;font-size:18px}
#missionApp #overlay .mission-start-actions fieldset{order:-1;margin:0!important;padding:0;gap:8px}
#missionApp #overlay .mission-start-actions .suite-difficulty legend{display:none!important}
#missionApp #overlay .mission-start-actions .suite-pace-copy{display:none!important}
#missionApp #overlay .mission-start-actions #loadStatus{margin:0;line-height:1.4;font-size:10px}
#missionApp #overlay .mission-intro-copy{flex:0 0 auto;min-height:0;overflow:visible;padding:8px 0 0;border-top:1px solid #3e6484}
#missionApp #overlay .mission-intro-copy p{margin:0;line-height:1.5;font-size:13px;color:#dcecf5}
#missionApp #overlay .mission-intro-copy .controls-copy{margin-top:5px;font-size:11px;color:#afc9dd}
@media(max-height:500px){html.tablet-suite body #missionApp #overlay .mission-card,#missionApp #overlay .mission-card{padding:10px 14px;gap:6px}#missionApp #overlay{padding:6px}#missionApp #overlay .mission-start-actions{gap:5px}#missionApp #overlay .mission-intro-copy{padding-top:5px}#missionApp #overlay .mission-start-actions #start{min-height:44px;padding:8px}#missionApp #overlay .mission-start-actions .suite-difficulty label{min-height:32px;padding:5px 8px}}

/* Keep the launch position stable while assets load; override shared tablet scrolling. */
html.tablet-suite body #missionApp #overlay{overflow:hidden!important;touch-action:none;overscroll-behavior:none}
html.tablet-suite body #missionApp #overlay .mission-card{height:264px!important;max-height:none!important;overflow:hidden!important;padding:16px 20px!important;flex-shrink:0}
#missionApp #overlay .mission-start-actions #start{flex:0 0 48px;height:48px!important;order:-2!important}
#missionApp #overlay .mission-start-actions #loadStatus{height:28px;min-height:28px;display:flex;align-items:center;justify-content:center}
@media(max-width:420px){html.tablet-suite body #missionApp #overlay .mission-card{height:280px!important;padding:14px!important}}
@media(max-height:600px){html.tablet-suite body #missionApp #overlay .mission-card{height:216px!important;padding:10px 14px!important;gap:6px}#missionApp #overlay .mission-start-actions{gap:5px}#missionApp #overlay .mission-start-actions #start{height:44px!important;min-height:44px;flex-basis:44px}#missionApp #overlay .mission-start-actions .suite-difficulty label{min-height:32px;padding:5px 8px}#missionApp #overlay .mission-intro-copy{padding-top:5px}#missionApp #overlay .mission-intro-copy .controls-copy{font-size:10px;margin-top:3px}}
