:root{--navy:#0b1424;--navy-2:#12203a;--panel:#0a1222d1;--panel-2:#12203ae6;--line:#78a0c838;--amber:#ffb84d;--amber-2:#ff9a1f;--teal:#2fd7c8;--teal-2:#1aa89c;--text:#f2f5fa;--muted:#a9b6c9;--danger:#ff6b6b;--ok:#46e39b;--radius:14px;--shadow:0 10px 30px #00000073;--font:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--navy);color:var(--text);font-family:var(--font);-webkit-tap-highlight-color:transparent;font-size:16px;line-height:1.4;overflow:hidden}button,input,select{font-family:inherit;font-size:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}:focus-visible{outline:3px solid var(--teal);outline-offset:2px}h1,h2,h3{letter-spacing:-.01em;margin:0;font-weight:800}p{margin:0}img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.scene{background:var(--navy);width:100%;height:100%;position:relative;overflow:hidden}.scene-bg{background-position:50%;background-size:cover;transition:opacity .4s;position:absolute;inset:0}.scene-bg:after{content:"";background:linear-gradient(#050a1426,#050a1459);position:absolute;inset:0}.scene-body{z-index:1;flex-direction:column;height:100%;display:flex;position:relative}.topbar{background:linear-gradient(#050a14bf,#050a1400);align-items:center;gap:12px;min-height:56px;padding:10px 16px;display:flex}.topbar .title{letter-spacing:.02em;font-size:18px;font-weight:900}.topbar .spacer{flex:1}.topbar .sub{color:var(--muted);font-size:13px}.center{flex:1;justify-content:center;align-items:center;padding:12px;display:flex}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:16px}.panel.tight{padding:10px 12px}.btn{min-height:44px;color:var(--text);background:linear-gradient(#2a3d62,#1c2b48);border:1px solid #ffffff1f;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:8px 18px;font-weight:700;transition:transform 80ms,filter .15s;display:inline-flex}.btn:hover:not(:disabled){filter:brightness(1.12)}.btn:active:not(:disabled){transform:translateY(1px)scale(.99)}.btn.primary{color:#26170a;background:linear-gradient(#ffc65c,#ff9a1f);border-color:#ffd98a;box-shadow:0 6px 18px #ff9a1f59}.btn.teal{color:#062421;background:linear-gradient(#3ae2d3,#1aa89c);border-color:#8ff1e8}.btn.danger{color:#fff;background:linear-gradient(#ff7b7b,#d53c3c)}.btn.ghost{border-color:var(--line);background:0 0}.btn.big{border-radius:16px;min-height:56px;padding:10px 26px;font-size:18px}.btn.small{min-height:36px;padding:4px 12px;font-size:14px}.btn.block{width:100%}.input{border:1px solid var(--line);min-height:44px;color:var(--text);background:#050a1499;border-radius:12px;width:100%;padding:8px 14px}.input:focus{border-color:var(--teal);outline:none}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.col{flex-direction:column;gap:10px;display:flex}.muted{color:var(--muted)}.small{font-size:13px}.tag{background:#ffffff14;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:13px;font-weight:600;display:inline-flex}.tag.ok{color:var(--ok);background:#46e39b2e}.tag.warn{color:var(--amber);background:#ffb84d2e}.tag.danger{color:var(--danger);background:#ff6b6b2e}.badge-num{color:#0b1424;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;font-weight:900;display:inline-flex}.divider{background:var(--line);height:1px;margin:6px 0}.timer{border:1px solid var(--line);font-variant-numeric:tabular-nums;background:#050a14b3;border-radius:999px;align-items:center;gap:8px;padding:6px 14px;font-weight:800;display:inline-flex}.timer .bar{background:#ffffff1f;border-radius:4px;width:90px;height:8px;overflow:hidden}.timer .bar>div{background:var(--teal);height:100%;transition:width .5s linear}.timer.urgent .bar>div{background:var(--amber-2)}.timer.urgent{color:var(--amber)}.card-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.part-card{border:2px solid var(--line);color:var(--text);text-align:center;background:#0c1628d9;border-radius:12px;flex-direction:column;align-items:center;gap:6px;min-height:150px;padding:10px 8px;display:flex;position:relative}.part-card:hover:not(:disabled){border-color:#ffffff59}.part-card.selected{border-color:var(--amber);box-shadow:0 0 0 3px #ffb84d40}.part-card.disabled{opacity:.45}.part-card img{object-fit:contain;filter:drop-shadow(0 4px 6px #00000080);width:84px;height:84px}.part-card .name{font-size:14px;font-weight:800}.part-card .gauges{color:var(--muted);gap:6px;font-size:11px;display:flex}.gauge{align-items:center;gap:3px;display:inline-flex}.gauge i{background:#ffffff2e;border-radius:2px;width:5px;height:8px;display:inline-block}.gauge i.on{background:var(--teal)}.cmd-card{border:2px solid var(--line);min-width:76px;min-height:84px;color:var(--text);background:#0c1628e6;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:6px;font-size:13px;font-weight:800;display:flex}.cmd-card:hover:not(:disabled){border-color:#fff6}.cmd-card.disabled{opacity:.4}.cmd-card .cost{color:var(--amber);font-size:11px;font-weight:700}.cmd-card svg{width:34px;height:34px}.slot{background:#050a148c;border:2px dashed #ffffff4d;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:96px;height:104px;font-weight:800;display:flex;position:relative}.slot.filled{border-style:solid;border-color:var(--teal);background:#2fd7c81f}.slot.active{border-color:var(--amber);box-shadow:0 0 0 4px #ffb84d4d}.slot.target{border-color:var(--amber)}.slot .idx{color:var(--muted);font-size:11px;position:absolute;top:4px;left:8px}.slot svg{width:36px;height:36px}.hangar-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;width:min(1100px,100%);display:grid}.door{border:2px solid var(--line);min-height:190px;box-shadow:var(--shadow);background:linear-gradient(#14223ce6,#080e1aeb);border-radius:16px;flex-direction:column;gap:8px;padding:12px;display:flex;position:relative}.door.mine{border-color:var(--amber);box-shadow:0 0 0 3px #ffb84d40, var(--shadow)}.door .head{align-items:center;gap:8px;display:flex}.door .name{font-size:16px;font-weight:900}.door .members{flex-wrap:wrap;gap:6px;display:flex}.member{background:#ffffff14;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:13px;display:inline-flex}.member.leader{color:var(--amber);background:#ffb84d33;font-weight:700}.member.off{opacity:.5;text-decoration:line-through}.arena-wrap{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.arena-wrap canvas{border-radius:10px;display:block;box-shadow:0 0 0 1px #ffffff14,0 20px 50px #0009}.hud{pointer-events:none;align-items:flex-start;gap:10px;padding:10px 14px;display:flex;position:absolute;top:0;left:0;right:0}.hud>*{pointer-events:auto}.score-strip{flex-wrap:wrap;gap:6px;display:flex}.score-chip{border:1px solid var(--line);background:#050a14bf;border-radius:999px;align-items:center;gap:6px;padding:4px 10px 4px 6px;font-size:13px;font-weight:700;display:inline-flex}.score-chip .pts{font-variant-numeric:tabular-nums;color:var(--amber)}.slot-strip{gap:8px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.slot-strip .slot{width:76px;height:82px}.float-msg{border:1px solid var(--amber);background:#050a14cc;border-radius:14px;padding:10px 22px;font-size:22px;font-weight:900;animation:.4s ease-out pop;position:absolute;top:18%;left:50%;transform:translate(-50%)}@keyframes pop{0%{opacity:0;transform:translate(-50%)scale(.6)}to{opacity:1;transform:translate(-50%)scale(1)}}.speaker{z-index:5;align-items:flex-end;gap:8px;display:flex;position:absolute}.speaker img{filter:drop-shadow(0 8px 12px #0009);width:120px}.bubble{color:#1b2233;max-width:300px;box-shadow:var(--shadow);background:#fff;border-radius:14px;padding:10px 14px;font-size:14px;font-weight:600;position:relative}.bubble:before{content:"";border:8px solid #0000;border-left:0;border-right-color:#fff;position:absolute;bottom:16px;left:-8px}.bubble .who{color:#6b7280;letter-spacing:.05em;font-size:11px;font-weight:800}.toasts{z-index:50;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:12px;left:50%;transform:translate(-50%)}.toast{border:1px solid var(--line);box-shadow:var(--shadow);background:#141e32f2;border-radius:12px;padding:10px 16px;font-weight:700;animation:.3s ease-out pop}.toast.error{border-color:var(--danger);color:#ffd0d0}.drawer{background:var(--panel-2);border-left:1px solid var(--line);z-index:20;width:min(440px,100%);padding:14px;position:absolute;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-10px 0 40px #00000080}.overlay{z-index:15;background:#040810b3;justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;inset:0}.modal{width:min(1000px,100%);max-height:92%;overflow:auto}.table{border-collapse:collapse;width:100%;font-size:14px}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);padding:6px 8px}.table th{color:var(--muted);font-size:12px;font-weight:600}.hero-title{color:#fff;text-shadow:0 4px #b86a00,0 10px 30px #000c;letter-spacing:-.02em;font-size:clamp(34px,6vw,68px);font-weight:900;line-height:1}.hero-sub{color:var(--teal);letter-spacing:.15em;font-size:clamp(14px,2vw,20px);font-weight:800}.menu-card{border:2px solid var(--line);width:100%;color:var(--text);text-align:left;background:#080e1abf;border-radius:16px;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 18px;transition:transform .1s,border-color .15s;display:flex}.menu-card:hover{border-color:var(--amber);transform:translate(4px)}.menu-card .t{font-size:20px;font-weight:900}.menu-card .d{color:var(--muted);font-size:14px}.kbd{background:#ffffff1f;border-radius:6px;padding:1px 6px;font-size:12px;font-weight:700}@media (width<=900px){.drawer{width:100%}.hero-title{text-shadow:0 3px #b86a00,0 8px 20px #000c}}@media (orientation:portrait) and (width<=700px){.rotate-hint{display:flex!important}}.rotate-hint{z-index:100;text-align:center;background:#050a14e6;justify-content:center;align-items:center;padding:30px;font-size:18px;font-weight:800;display:none;position:fixed;inset:0}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
