.tour-ring{z-index:40;pointer-events:none;box-shadow:0 0 0 2px #0e1014cc, 0 0 0 4px var(--accent), 0 0 18px 4px #eef1f34d;border-radius:16px;transition:left .2s,top .2s,width .2s,height .2s;animation:1.8s ease-in-out infinite tour-pulse;position:fixed}@keyframes tour-pulse{50%{box-shadow:0 0 0 2px #0e1014cc, 0 0 0 4px var(--accent), 0 0 26px 8px #eef1f333}}.tour-card{z-index:41;box-sizing:border-box;scrollbar-width:thin;border:1px solid var(--glass-line);max-height:calc(100dvh - 16px);color:var(--ink);box-shadow:var(--shadow);pointer-events:auto;touch-action:pan-y;background:#0e1014f0;border-radius:16px;padding:12px 14px;position:fixed;overflow-y:auto}.tour-head{justify-content:space-between;align-items:center;display:flex}.tour-count{font-size:var(--fs-12);color:var(--ink-2);font-variant-numeric:tabular-nums;font-weight:600}.tour-x{width:32px;height:32px;color:var(--ink-3);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;margin:-6px -8px -6px 0;display:flex}.tour-title{font-size:var(--fs-17);margin-top:2px;font-weight:600}.tour-text{font-size:var(--fs-13);color:var(--ink);word-break:keep-all;margin:6px 0 12px;line-height:1.55}.tour-nav{align-items:center;gap:6px;display:flex}.tour-spacer{flex:1}.tour-btn{border:1px solid var(--line-2);min-height:36px;color:var(--ink);font-size:var(--fs-13);cursor:pointer;background:0 0;border-radius:999px;padding:0 14px;font-weight:600}.tour-btn--go{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.app--touch .tour-btn{min-height:40px}@media (max-height:540px){.tour-card{border-radius:14px;padding:8px 12px}.tour-title{font-size:var(--fs-15)}.tour-text{font-size:var(--fs-12);margin:3px 0 6px;line-height:1.5}.tour-btn{min-height:32px;padding:0 12px}.app--touch .tour-btn{min-height:34px}}@media (prefers-reduced-motion:reduce){.tour-ring{transition:none;animation:none}}[data-tip]{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.tip{z-index:60;box-sizing:border-box;border:1px solid var(--glass-line);color:var(--ink);box-shadow:var(--shadow);pointer-events:none;font-size:var(--fs-12);word-break:keep-all;background:#0e1014f0;border-radius:12px;padding:10px 12px;line-height:1.55;position:fixed}.tip p{margin:4px 0 0}.tip-title{font-size:var(--fs-13);align-items:center;gap:8px;font-weight:600;display:flex}.tip-title kbd{background:var(--fill-2);font-family:var(--font-ui);font-size:var(--fs-12);color:var(--ink);border-radius:6px;padding:1px 6px;font-weight:600}.tip-when{color:var(--ink-2)}.tip-when b{color:var(--ink);margin-right:4px;font-weight:600}.ctl{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.ctl-help{width:100%}.ctl-help summary{font-size:var(--fs-13);cursor:pointer;align-items:center;min-height:32px;font-weight:600;display:flex}.settings-page .ctl-help summary{font-size:var(--fs-15)}.ctl-body{touch-action:pan-y;max-height:34vh;padding:2px 2px 2px 0;overflow-y:auto}.settings-page .ctl-body{columns:2 260px;column-gap:var(--sp-5);max-height:none}.ctl-body section{break-inside:avoid}.ctl-help summary{gap:6px;list-style:none}.ctl-help summary::-webkit-details-marker{display:none}.ctl-help summary:after{content:"";width:16px;height:16px;color:var(--ink-3);background:currentColor;transition:transform .15s;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9.5l6 6 6-6'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9.5l6 6 6-6'/%3E%3C/svg%3E") 50%/contain no-repeat}.ctl-help[open] summary:after{transform:rotate(180deg)}.ctl-body h3{font-size:var(--fs-12);color:var(--ink-3);margin:8px 0 2px;font-weight:600}.ctl-rows{margin:0}.ctl-rows>div{border-bottom:1px solid var(--line);font-size:var(--fs-12);grid-template-columns:minmax(70px,38%) 1fr;gap:8px;padding:3px 0;line-height:1.45;display:grid}.ctl-rows dt{color:var(--ink);margin:0;font-weight:600}.ctl-rows dd{color:var(--ink-2);margin:0}.ctl .chip:disabled{opacity:1;color:var(--ink-2)}.order[aria-disabled=true]{opacity:.32;cursor:default}.order[aria-disabled=true]:hover .order-icon{background:var(--fill);transform:none}.tool[aria-disabled=true]{opacity:.4;cursor:default}.settings-body{max-height:calc(100dvh - var(--sat) - 18px - 240px);touch-action:pan-y;overflow-y:auto}.settings-body .ctl-body{max-height:none}@media (orientation:portrait) and (max-width:700px){.tour-card{max-height:36dvh}}.settings-body .ctl{border-top:1px solid var(--line);gap:4px;padding-top:12px}.settings-body .ctl .chip{min-height:32px;color:var(--ink-2);padding:0 12px;font-weight:500}@font-face{font-family:Imjin Title;src:url(/ui/fonts/imjin-title-dohyeon.woff2)format("woff2");font-weight:400;font-display:block;unicode-range:U+C784,U+C9C4,U+C65C,U+B780}.menu--cinematic{--menu-brass:#bba77e;background:#07121b}.menu--cinematic .art-bg img{object-position:50% 50%}.menu--cinematic .art-bg:after{background:0 0}.menu-battle{pointer-events:none;opacity:0;transition:opacity 1.4s;position:absolute;inset:0}.menu-battle--ready{opacity:1}.menu-battle canvas{width:100%;height:100%;display:block}.menu-shade{pointer-events:none;background:linear-gradient(#03080d33,#03080d0a 38%,#03080d7a 70%,#040b11 100%),linear-gradient(90deg,#03080d59,#0000 72%);position:absolute;inset:0}.menu--cinematic .screen-top.menu-masthead{padding:calc(var(--sat) + 28px) calc(var(--sar) + 40px) 0 calc(var(--sal) + 40px);justify-content:space-between;position:absolute;inset:0 0 auto}.menu-date{color:var(--menu-brass);letter-spacing:.18em;align-items:center;gap:12px;font-size:11px;display:flex}.menu-date i{background:var(--menu-brass);opacity:.5;width:32px;height:1px}.menu--cinematic .back-btn{color:#d9d8d2;background:0 0;border-color:#d2be943d;border-radius:2px;gap:8px;min-height:40px;font-size:12px}.menu--cinematic .back-btn:hover{background:#c1ab7e1f}.menu--cinematic .menu-inner{justify-content:flex-end;align-items:center;gap:30px;width:100%;margin:0;padding:80px 24px 76px;overflow-y:auto}.menu--cinematic .wordmark{gap:12px;margin-top:3dvh;margin-bottom:auto;position:relative}.menu--cinematic .wordmark-kicker{letter-spacing:.25em;color:#c2bba9;padding-left:.25em;font-size:10px;font-weight:400}.menu-title-lockup{position:relative}.menu--cinematic .wordmark-title{font-family:var(--font-title);letter-spacing:-.035em;color:#efeadb;filter:drop-shadow(0 2px 1px #071018)drop-shadow(0 6px 20px #03080da6);background:0 0;flex-direction:column;align-items:center;padding:0;font-size:clamp(120px,13.4dvh,172px);font-weight:400;line-height:.79;display:flex;transform:rotate(-3deg)}.menu--cinematic .wordmark-title span:last-child{margin-left:15px}.menu--cinematic .wordmark-title--art{letter-spacing:0;width:clamp(225px,20vw,280px);height:clamp(240px,30dvh,290px);font-size:54px;line-height:1.05;position:relative}.menu--cinematic .wordmark-title--poster{font-family:"Imjin Title",var(--font-title);letter-spacing:-.04em;white-space:nowrap;color:#f1ead6;-webkit-text-stroke:.036em #f1ead6;paint-order:stroke fill;filter:drop-shadow(0 3px #08121a)drop-shadow(0 12px 30px #03080db8);padding:0 .04em 0 0;font-size:clamp(112px,13dvh,168px);font-weight:400;line-height:.9;display:block;transform:none}.wordmark-title--poster+.menu-seal{right:-44px}.menu-title-art{object-fit:contain;opacity:0;width:100%;height:100%;position:absolute;inset:0}.wordmark-title--loaded .menu-title-art{opacity:1}.menu--cinematic .menu-title-fallback{text-align:center;overflow-wrap:anywhere;align-items:center;max-width:100%;height:100%;display:flex;margin:0!important}.wordmark-title--loaded .menu-title-fallback{visibility:hidden}.wordmark--en .menu-title-fallback{font-family:var(--font-title);text-transform:uppercase;font-size:44px;font-weight:700}.menu-seal{color:#e0c2a4;width:32px;height:44px;font-family:var(--font-title);clip-path:polygon(3% 2%,94% 0,100% 7%,97% 96%,6% 100%,0 94%);background:#863a30;place-content:center;font-size:14px;line-height:1.2;display:grid;position:absolute;bottom:22px;right:-35px;transform:rotate(5deg);box-shadow:0 0 0 2px #863a30}.menu--cinematic .wordmark-en{color:#d5cfbf;letter-spacing:.44em;margin-top:16px;padding-left:.44em;font-size:10px;font-weight:400}.menu-play{flex-direction:column;gap:17px;width:min(430px,100%);display:flex}.menu-primary{color:#151817;cursor:pointer;background:linear-gradient(120deg,#e8dec5,#cfbc96);border:1px solid #d3c4a2;border-radius:1px;justify-content:space-between;align-items:center;width:100%;min-height:78px;padding:18px 23px;transition:background .2s,transform .2s;display:flex;position:relative;box-shadow:0 5px 30px #0000003d}.menu-primary:hover{background:#f1e7d1;transform:translateY(-2px)}.menu-primary-copy{text-align:left;flex-direction:column;gap:4px;display:flex}.menu-primary strong{letter-spacing:.02em;font-size:18px;font-weight:600}.menu-primary small{color:#545247;font-size:12px}.menu-arrow{color:#504c3f;font-size:29px;font-weight:300;line-height:1}.menu-modes{border-top:1px solid #c7b08452;border-bottom:1px solid #c7b08436;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.menu-modes button{color:#d7d6ce;cursor:pointer;white-space:nowrap;background:0 0;border:0;justify-content:center;align-items:center;gap:12px;min-height:52px;padding:17px 6px;font-size:12px;transition:color .2s,background .2s;display:flex}.menu-modes button+button{border-left:1px solid #c7b0842e}.menu-modes button:hover{color:#fff5db;background:#d3bc9114}.menu-mode-arrow{color:#a99675;font-size:17px}.menu--cinematic button:focus-visible{outline-offset:5px;outline:2px solid #ead8ab}.menu-foot{bottom:calc(var(--sab) + 20px);left:calc(var(--sal) + 40px);right:calc(var(--sar) + 40px);color:#7b827f;letter-spacing:.22em;pointer-events:none;justify-content:space-between;font-size:9px;display:flex;position:absolute}@media (min-width:950px){.menu--cinematic .menu-inner{width:58%;padding-bottom:100px}.menu--cinematic .wordmark{margin-top:5dvh}.menu-play{margin-top:4dvh}.menu-shade{background:linear-gradient(#03080d33,#0000 30%,#03080d59 72%,#040b11 100%),linear-gradient(90deg,#03080d80,#03080d26 50%,#0000 75%)}}@media (max-width:600px){.menu--cinematic .screen-top.menu-masthead{padding:calc(var(--sat) + 18px) calc(var(--sar) + 21px) 0 calc(var(--sal) + 21px)}.menu--cinematic .menu-inner{padding:70px calc(var(--sar) + 24px) calc(var(--sab) + 72px) calc(var(--sal) + 24px);gap:20px}.menu--cinematic .wordmark{margin-top:2dvh}.menu--cinematic .wordmark-title{font-size:clamp(115px,15dvh,142px)}.menu--cinematic .wordmark-title--art{width:230px;height:clamp(240px,30dvh,270px)}.menu--cinematic .wordmark-title--poster{font-size:clamp(84px,24vw,112px)}.menu-primary{min-height:75px;padding:16px 20px}.menu-modes button{gap:8px;padding:16px 4px;font-size:11px}.menu-foot{font-size:8px;left:24px;right:24px}.menu-shade{background:linear-gradient(#03080d3d,#03080d0a 42%,#03080d47 60%,#040b11 100%)}}@media (orientation:landscape) and (max-height:540px){.menu--cinematic .menu-inner{justify-content:center;gap:18px;width:54%;padding:48px 24px 20px;display:flex}.menu--cinematic .wordmark{gap:7px;margin:0}.menu--cinematic .wordmark-title{font-size:72px}.menu--cinematic .wordmark-title--art{width:138px;height:144px}.menu--cinematic .wordmark-title--poster{font-size:66px}.wordmark-title--poster+.menu-seal{right:-30px}.wordmark--en .menu-title-fallback{font-size:26px}.menu--cinematic .wordmark-kicker{display:none}.menu--cinematic .wordmark-en{margin-top:4px;font-size:8px}.menu-primary{min-height:52px;padding:9px 15px}.menu-primary strong{font-size:15px}.menu-primary small{font-size:10px}.menu-play{gap:8px;margin:0}.menu-modes button{gap:5px;min-height:40px;padding:7px 3px;font-size:10px}.menu-seal{width:23px;height:34px;font-size:10px;bottom:6px;right:-25px}.menu-foot{display:none}}@media (prefers-reduced-motion:reduce){.menu-battle{display:none}.menu--cinematic *,.menu--cinematic :after{transition:none!important;animation:none!important}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--sea-0:#0a1118;--sea-1:#121c26;--sea-2:#1c2a38;--ink:#f1f3f5;--ink-2:#c3cad2;--ink-3:#9aa4ae;--ink-dark:#14181d;--ink-dark-2:#3c434b;--mist:#eef1f4;--on-dark:#f6f7f9;--on-dark-2:#f6f7f9bd;--glass:#0e101485;--glass-hi:#0e1014ad;--glass-sheet:#0e1014d1;--glass-solid:#0e1014e6;--glass-line:#ffffff1f;--glass-blur:blur(16px) saturate(115%);--shadow:0 10px 30px #00000052, 0 1px 2px #0000003d;--shadow-sm:0 3px 12px #00000047;--glass-dark:#0e101480;--line:#ffffff1f;--line-2:#fff3;--fill:#ffffff0f;--fill-2:#ffffff1a;--accent:#eef1f3;--accent-ink:#14181d;--accent-hover:#fff;--accent-2:#dfe5ea;--accent-soft:#eef1f31a;--good:#8db59a;--bad:#cf9686;--warn:#c8b88a;--signal-go:#74c98f;--good-ink:var(--good);--bad-ink:var(--bad);--seal:var(--bad);--joseon:#87a3ba;--joseon-soft:#87a3ba29;--japan:#b8968a;--japan-soft:#b8968a29;--ming:#c8a96c;--ming-soft:#c8a96c29;--joseon-deep:#46637a;--japan-deep:#6b4a40;--ming-deep:#8c7040;--font-ui:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Noto Sans KR", system-ui, sans-serif;--hanja:var(--font-ui);--font-title:"Noto Serif KR", "Nanum Myeongjo", "AppleMyungjo", serif;--fs-12:12px;--fs-13:13px;--fs-15:15px;--fs-17:17px;--fs-20:clamp(18px, 1.2vw + 12px, 20px);--fs-24:clamp(20px, 1.6vw + 12px, 24px);--fs-32:clamp(26px, 3vw + 10px, 32px);--fs-28:var(--fs-24);--fs-40:var(--fs-32);--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--r:16px;--r-sm:12px;--tap:44px;--sat:env(safe-area-inset-top,0px);--sar:env(safe-area-inset-right,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--bh:clamp(150px, 14vw, 182px)}*{box-sizing:border-box}html,body,#root{background:var(--sea-0);width:100%;height:100%;color:var(--ink);font-family:var(--font-ui);font-size:var(--fs-15);-webkit-user-select:none;user-select:none;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;margin:0;font-weight:500;overflow:hidden}small{font-size:var(--fs-12)}button,input{font-family:var(--font-ui)}:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}input:focus-visible,select:focus-visible{outline-offset:0;border-color:var(--accent-2)}button{font-weight:600}input{font-size:16px}.app{touch-action:none;height:100dvh;position:fixed;inset:0}.viewport{inset:0;position:absolute!important}.hanja{font-family:var(--hanja);font-weight:700}.glass,.paper{color:var(--ink);background:var(--glass);border:1px solid var(--glass-line);border-radius:var(--r);box-shadow:var(--shadow);-webkit-backdrop-filter:var(--glass-blur);position:relative}.app--touch .glass,.app--touch .paper,.app--touch .mini-btn,.app--touch .tool{background:var(--glass-solid);-webkit-backdrop-filter:none}.app--touch .mini-btn--on,.app--touch .tool--on{background:var(--accent);color:var(--accent-ink)}.f-joseon{--fc:var(--joseon);--fc-ink:var(--ink-dark)}.f-japan{--fc:var(--japan);--fc-ink:var(--ink-dark)}.f-ming{--fc:var(--ming);--fc-ink:var(--ink-dark)}.ink-btn{justify-content:center;align-items:center;gap:var(--sp-2);min-height:var(--tap);padding:0 var(--sp-5);background:var(--accent);color:var(--accent-ink);font-weight:600;font-size:var(--fs-15);cursor:pointer;pointer-events:auto;border:0;border-radius:999px;transition:background .15s,transform .15s;display:inline-flex;box-shadow:0 4px 14px #0000004d}.ink-btn:hover{background:var(--accent-hover)}.ink-btn:active{transform:translateY(1px)}.ink-btn:disabled{opacity:.4;cursor:default;box-shadow:none}.mini-btn{border:1px solid var(--glass-line);background:var(--glass);min-height:36px;color:var(--ink);font-size:var(--fs-13);cursor:pointer;pointer-events:auto;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:var(--glass-blur);border-radius:999px;justify-content:center;align-items:center;padding:0 14px;font-weight:600;display:inline-flex}.mini-btn:not(.mini-btn--on):hover{background:var(--glass-hi)}.mini-btn--on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line-2);min-height:36px;color:var(--ink);font-size:var(--fs-13);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;padding:0 14px;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.chip:hover{border-color:var(--ink)}.chip--on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.chip small{font-size:var(--fs-12);color:var(--ink-2);margin-left:4px}.chip--on small{color:#14181db8}.chip:disabled{opacity:.4;cursor:default}.seal{background:var(--seal);width:28px;height:28px;color:var(--ink-dark);font-family:var(--hanja);font-weight:700;font-size:var(--fs-15);border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex}.emblem{background:var(--joseon);width:52px;height:52px;color:var(--ink-dark);font-family:var(--hanja);box-shadow:0 0 0 2px var(--glass-line), var(--shadow-sm);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:24px;font-style:normal;font-weight:700;display:flex;position:relative}.emblem--japan{background:var(--japan)}.emblem--ming{background:var(--ming);color:var(--ink-dark)}.camp,.camp-body{touch-action:pan-y}.shot-label{top:calc(env(safe-area-inset-top,0px) + 96px);z-index:5;pointer-events:none;background:var(--glass);border:1px solid var(--glass-line);color:var(--ink);font-size:var(--fs-12);white-space:nowrap;border-radius:999px;padding:4px 12px;font-weight:600;position:absolute;left:50%;transform:translate(-50%)}@media (hover:hover){.seg button:not(.on):hover,.on-seg-btn:not(.on-seg-btn--on):hover{background:var(--fill);color:var(--ink)}.on-navy:not(.on-navy--on):hover,.on-room:hover,.cq-work:hover{border-color:var(--ink)}.on-faction:not(:disabled):hover{border-color:var(--line-2)}.net-input:hover,.on-input:hover,.on-select:hover{border-color:var(--ink-3)}.cq-x:hover{color:var(--seal)}}.select-sides{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.side-btn,.cs-faction{min-height:var(--tap);border:1px solid var(--line-2);background:var(--fill);cursor:pointer;color:var(--ink);font-size:var(--fs-13);border-radius:999px;align-items:center;gap:8px;padding:4px 16px 4px 8px;font-weight:500;transition:background .15s,border-color .15s,box-shadow .15s;display:flex}.side-btn:hover,.cs-faction:hover{border-color:var(--accent);background:var(--fill-2)}.side-btn .emblem,.cs-faction .emblem{width:28px;height:28px;box-shadow:none}.side-btn span{flex-direction:column;align-items:flex-start;line-height:1.2;display:flex}.side-btn b{font-size:var(--fs-13);font-weight:600}.side-btn small{font-size:var(--fs-12);color:var(--ink-3);font-weight:400}.side-btn--on,.cs-faction--on{background:var(--fill-2);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);font-weight:600}.cs{width:min(860px,100%);padding:var(--sp-4) var(--sp-5) 0;gap:var(--sp-3);flex-direction:column;margin:0 auto;display:flex}.cs-cols{gap:var(--sp-3) var(--sp-5);grid-template-columns:minmax(0,1fr);display:grid}.cs-col{gap:var(--sp-3);flex-direction:column;min-width:0;display:flex}.cs-maps{grid-template-columns:1fr 1fr;gap:8px;display:grid}.cs-map{min-height:var(--tap);border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--fill);cursor:pointer;color:var(--ink);text-align:left;flex-direction:column;align-items:flex-start;gap:3px;padding:10px 14px;transition:border-color .15s,box-shadow .15s;display:flex}.cs-map:hover{border-color:var(--accent)}.cs-map b{font-size:var(--fs-17);font-weight:600}.cs-map small{font-size:var(--fs-12);color:var(--ink-3);font-weight:400}.cs-map--on{background:var(--fill-2);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.cs-summary{font-size:var(--fs-15);color:var(--ink-2);margin:0;line-height:1.55}.cs-row{align-items:center;gap:12px;display:flex}.cs-row--top{align-items:flex-start}.cs-label{width:52px;font-weight:500;font-size:var(--fs-13);color:var(--ink-3);flex:none}.cs-factions{flex-wrap:wrap;gap:6px;display:flex}.cs-muster{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.cs-budget span>small{display:block}.cq-unlimited{color:var(--ink-3);margin-left:5px}.cq-upgrade{font-size:var(--fs-12);flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:4px;padding-top:6px;display:flex}.cq-upgrade progress{width:100%;height:4px;accent-color:var(--warn)}.cq-upgrade .chip{font-size:var(--fs-12);padding:3px 7px}.cq-upgrade-btn{justify-content:center;width:100%}.cq-rally{flex-wrap:wrap;gap:6px;display:flex}.cq-rally small{color:var(--ink-3);font-size:var(--fs-12);flex-basis:100%}.cs-budget{font-size:var(--fs-13);align-items:center;gap:10px;font-weight:600;display:flex}.cs-budget small{color:var(--ink-3);margin-left:6px;font-weight:400}.cs-budget-bar{background:var(--fill-2);border-radius:999px;flex:1;height:6px;overflow:hidden}.cs-budget-bar i{background:var(--accent);border-radius:999px;height:100%;display:block}.cs-ships{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.cs-ship{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--fill);flex-direction:column;gap:4px;padding:10px 12px;display:flex}.cs-ship-name{justify-content:space-between;align-items:baseline;display:flex}.cs-ship-name b{font-size:var(--fs-15);font-weight:600}.cs-ship-name small,.cs-ship-note{font-size:var(--fs-12);color:var(--ink-3)}.cs-ship-count{justify-content:space-between;align-items:center;gap:10px;margin-top:2px;display:flex}.cs-ship-count button{width:var(--tap);border:1px solid var(--line-2);background:var(--fill);cursor:pointer;height:36px;color:var(--ink);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.cs-ship-count button:hover:not(:disabled){border-color:var(--accent);background:var(--fill-2)}.cs-ship-count button:disabled{opacity:.35;cursor:default}.cs-ship-count b{text-align:center;min-width:20px;font-size:var(--fs-17);font-variant-numeric:tabular-nums;font-weight:600}@media (min-width:900px),(orientation:landscape) and (max-height:540px){.cs{width:min(1080px,100%)}.cs-cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media (orientation:landscape) and (max-height:540px){.cs-ships{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.cs-ship{padding:8px 10px}.cs-ship-count button{width:36px;height:32px}}.cs-trait{font-size:var(--fs-13);color:var(--ink-2);border-top:1px solid var(--line);padding-top:var(--sp-3);line-height:1.5}.cs .select-foot,.net>.cs-row:last-child{z-index:3;margin:0 calc(var(--sp-5) * -1);padding:var(--sp-3) var(--sp-5) calc(var(--sab) + var(--sp-3));border-top:1px solid var(--line);background:var(--glass-solid);border-radius:0 0 var(--r) var(--r);position:sticky;bottom:0}.cq-bar{flex-direction:column;gap:8px;display:flex}.cq-tickets{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:12px;display:grid}.cq-ticket{font-size:var(--fs-12);color:var(--ink-3);white-space:nowrap;font-variant-numeric:tabular-nums;flex-direction:column;gap:4px;font-weight:400;display:flex}.cq-ticket--foe{text-align:right}.cq-ticket b{font-size:var(--fs-13);color:var(--ink);font-weight:600}.cq-meter{background:var(--fill-2);border-radius:999px;height:4px;display:flex;overflow:hidden}.cq-ticket--foe .cq-meter{justify-content:flex-end}.cq-meter i{border-radius:999px;height:100%;transition:width .6s;display:block}.cq-ticket--own .cq-meter i{background:var(--own-fc,var(--joseon))}.cq-ticket--foe .cq-meter i{background:var(--enemy-fc,var(--japan))}.cq-clock{font-size:var(--fs-13);color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}.cq-chips{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.cq-chip{background:var(--fill);font-size:var(--fs-12);color:var(--ink-3);white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:999px;align-items:baseline;gap:5px;padding:2px 10px;display:inline-flex}.cq-chip b{color:var(--ink);font-weight:600}.cq-chip em{color:var(--ink-3);margin-left:-2px;font-style:normal}.cq-point{right:calc(var(--sar) + 24px);top:calc(var(--bal-bottom,calc(var(--sat) + 140px)) + 10px);width:300px;max-height:calc(var(--fleet-top,calc(100dvh - 205px)) - var(--bal-bottom,150px) - 20px);scrollbar-width:thin;overscroll-behavior:contain;touch-action:pan-y;pointer-events:auto;flex-direction:column;gap:8px;padding:14px 16px 18px;display:flex;position:absolute;overflow-y:auto}.cq-point>*{flex-shrink:0}.cq-point-head{align-items:center;gap:10px;display:flex}.cq-edge{background:var(--ink-3);border-radius:2px;flex:none;width:3px;height:34px}.cq-edge--own{background:var(--own-fc,var(--joseon))}.cq-edge--foe{background:var(--enemy-fc,var(--japan))}.cq-point-name{font-size:var(--fs-17);font-weight:600}.cq-point-sub{font-size:var(--fs-12);color:var(--ink-3)}.cq-close{cursor:pointer;width:32px;height:32px;color:var(--ink-3);background:0 0;border:0;justify-content:center;align-self:flex-start;align-items:center;margin-top:-6px;margin-left:auto;margin-right:-8px;display:flex}.cq-hold{background:var(--fill-2);border-radius:999px;height:4px;margin-top:16px;position:relative}.cq-hold i{border-radius:inherit;background:var(--ink-3);position:absolute;inset:0 auto 0 0}.cq-hold--own i{background:var(--own-fc,var(--joseon))}.cq-hold--foe i{background:var(--enemy-fc,var(--japan))}.cq-hold span{font-size:var(--fs-12);color:var(--ink-2);font-weight:500;position:absolute;bottom:9px;left:0}.cq-label{font-weight:600;font-size:var(--fs-12);color:var(--ink-3);border-bottom:1px solid var(--line);padding-bottom:3px}.cq-works{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.cq-work{border:1px solid var(--line);background:var(--fill);font-size:var(--fs-13);color:var(--ink);border-radius:10px;grid-template-columns:auto 1fr;align-items:center;column-gap:8px;padding:7px 28px 8px 10px;font-weight:500;display:grid;position:relative}.cq-work-bar{background:var(--fill-2);border-radius:999px;grid-column:1/-1;height:3px;margin-top:6px;overflow:hidden}.cq-work-bar i{background:var(--good);height:100%;display:block}.cq-work--building .cq-work-bar i{background:var(--warn)}.cq-work--empty{color:var(--ink-3);border-style:dashed;justify-content:center;padding:7px 10px 8px;font-weight:400;display:flex}.cq-x{cursor:pointer;width:26px;height:26px;color:var(--ink-3);background:0 0;border:0;justify-content:center;align-items:center;display:flex;position:absolute;top:2px;right:2px}.cq-buttons{flex-wrap:wrap;gap:6px;display:flex}.cq-buy{gap:6px}.cq-queue{flex-direction:column;gap:4px;display:flex}.cq-q{border:1px solid var(--line);background:var(--fill);cursor:pointer;min-height:32px;font-size:var(--fs-12);color:var(--ink);border-radius:8px;justify-content:space-between;align-items:center;padding:0 10px;font-weight:500;display:flex;position:relative;overflow:hidden}.cq-q i{background:var(--accent-soft);position:absolute;inset:0 auto 0 0}.cq-q span,.cq-q small{position:relative}.cq-hint{font-size:var(--fs-12);color:var(--ink-2);line-height:1.5}.cpoints{pointer-events:none;z-index:8;position:absolute;inset:0;overflow:hidden}.cpoint{transform-origin:0 0;will-change:transform;pointer-events:auto;cursor:pointer;position:absolute;top:0;left:0}.cpoint-pill{border:1px solid var(--glass-line);color:var(--ink);font-size:var(--fs-12);white-space:nowrap;background:#0e1014c7;border-radius:999px;align-items:center;gap:8px;padding:3px 11px 4px 13px;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 8px #080c1247}.cpoint-pill:before{content:"";background:var(--ink-3);width:3px;position:absolute;top:0;bottom:0;left:0}.cpoint--own .cpoint-pill:before{background:var(--own-fc,var(--joseon))}.cpoint--foe .cpoint-pill:before{background:var(--enemy-fc,var(--japan))}.cpoint-name{font-weight:600}.cpoint-tag{font-size:inherit;color:var(--ink-3);margin-left:6px;font-weight:400}.cpoint--edge{opacity:.9}.cpoint-works{color:var(--ink-2);align-items:center;gap:4px;display:inline-flex}.cpoint-works:empty{display:none}.cpoint-works span{display:flex}.cpoint-wip{opacity:.4}.cpoint-works em{color:var(--ink-3);font-style:normal}.cpoint-bar{background:var(--fill-2);height:2px;position:absolute;bottom:0;left:3px;right:0}.cpoint-bar i{background:var(--ink-3);height:100%;display:block}.cpoint-bar i.own{background:var(--own-fc,var(--joseon))}.cpoint-bar i.foe{background:var(--enemy-fc,var(--japan))}.cpoint--selected .cpoint-pill{background:var(--glass-solid);box-shadow:0 0 0 2px var(--accent), 0 4px 12px #080c1259;border-color:#0000}.cpoint--contested .cpoint-pill{animation:1.4s ease-in-out infinite cpoint-pulse}@keyframes cpoint-pulse{50%{border-color:#c8b88abf}}.crew-panel{flex-direction:column;gap:5px;margin:6px 0 4px;display:flex}.crew-rows{flex-direction:column;gap:3px;display:flex}.crew-row{font-size:var(--fs-12);color:var(--ink-3);grid-template-columns:56px 1fr 30px 20px 20px;align-items:center;gap:6px;font-weight:500;display:grid}.crew-row--off{opacity:.35}.crew-row small{text-align:right;color:var(--ink)}.crew-bar{background:var(--fill-2);border-radius:999px;height:4px;position:relative}.crew-bar i{background:var(--joseon);border-radius:999px;height:100%;display:block}.crew-bar em{background:var(--accent);border-radius:1px;width:2px;position:absolute;top:-3px;bottom:-3px;transform:translate(-1px)}.crew-row button{border:1px solid var(--line-2);cursor:pointer;width:20px;height:20px;font-size:var(--fs-12);color:var(--ink);background:0 0;border-radius:6px;padding:0;line-height:1}.crew-presets{flex-wrap:wrap;gap:4px;display:flex}.crew-presets .chip{min-height:24px;font-size:var(--fs-12);padding:0 8px}.crew-more{border:1px solid var(--line-2);width:24px;height:24px;color:var(--ink-2);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:transform .15s;display:inline-flex}.crew-more--open{transform:rotate(180deg)}.app--compact .cq-point{right:calc(var(--sar) + 8px);left:auto;top:calc(var(--bal-bottom,calc(var(--sat) + 168px)) + 8px);width:min(300px,100vw - 16px);max-height:min(50dvh, calc(var(--fleet-top,calc(100dvh - 245px)) - var(--bal-bottom,calc(var(--sat) + 168px)) - 16px));touch-action:pan-y;overflow-y:auto}.app--touch.app--compact .cq-point{right:calc(var(--sar) + 64px);width:min(300px,100vw - 72px)}@media (max-width:700px){.cs{padding:var(--sp-3) var(--sp-4) 0}.cs-maps,.cs-ships{grid-template-columns:1fr}.cs-maps{grid-template-columns:1fr 1fr}.cs-row{flex-wrap:wrap;gap:6px 12px}.cs-label{width:100%}.cs-row--top{flex-direction:column;align-items:stretch}.cs .select-foot,.net>.cs-row:last-child{margin:0 calc(var(--sp-4) * -1);padding-left:var(--sp-4);padding-right:var(--sp-4)}}.screen,.loading,.fatal,.recovery,.camp-backdrop{--fs-24:24px;--fs-32:32px;word-break:keep-all;overflow-wrap:break-word}.screen{z-index:40;height:100dvh;color:var(--ink);background:radial-gradient(120% 90% at 30% 10%, var(--sea-2) 0%, var(--sea-1) 60%, var(--sea-0) 100%);flex-direction:column;font-weight:400;line-height:1.45;display:flex;position:absolute;inset:0;overflow:hidden}.art-bg{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.art-bg img{object-fit:cover;object-position:70% 50%;opacity:0;width:100%;height:100%;transition:opacity .9s;position:absolute;inset:0}.art-bg--on img{opacity:1}.art-bg:after{content:"";background:linear-gradient(#080c1280 0%,#080c126b 42%,#080c1299 100%);position:absolute;inset:0}.art-bg--calm img{filter:blur(2px)}.art-bg--calm:after{background:#080c12ad}.screen-top{z-index:6;align-items:center;gap:var(--sp-3);padding:calc(var(--sat) + 12px) calc(var(--sar) + 20px) 12px calc(var(--sal) + 20px);flex:none;display:flex;position:relative}.screen-title{font-size:var(--fs-20);letter-spacing:-.01em;white-space:nowrap;margin:0;font-weight:600}.screen-actions{align-items:center;gap:var(--sp-2);margin-left:auto;display:flex}.back-btn{min-height:var(--tap);border:1px solid var(--line);background:var(--glass);color:var(--ink);font-size:var(--fs-13);cursor:pointer;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:var(--glass-blur);border-radius:999px;align-items:center;gap:6px;padding:0 18px 0 12px;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex}.back-btn:hover{background:var(--glass-hi);border-color:var(--line-2)}.app--touch .back-btn{-webkit-backdrop-filter:none;background:var(--glass-solid)}.screen-body{z-index:2;overscroll-behavior:contain;touch-action:pan-y;min-height:0;padding:var(--sp-2) calc(var(--sar) + 20px) 0 calc(var(--sal) + 20px);flex:1;position:relative;overflow-y:auto}.screen-body>.glass,.screen-body>.paper{margin-bottom:var(--sp-5);background:var(--glass-hi)}@media (max-width:900px),(max-height:540px){.screen-body>.glass,.screen-body>.paper{min-height:calc(100% - var(--sp-2));border-bottom-right-radius:0;border-bottom-left-radius:0;margin-bottom:0}.screen-body>.cs{display:flex}.screen-body>.net:has(.on-connect){min-height:0;margin-bottom:var(--sp-5);border-radius:var(--r)}.screen-body>.cs .select-foot,.screen-body>.net>.cs-row:last-child{margin-top:auto}}.screen-body .cs-summary,.screen-body .cs-label{color:var(--ink-2)}.screen .ink-btn{background:var(--accent);font-size:var(--fs-15);letter-spacing:0;white-space:nowrap;border-radius:999px;font-weight:600;box-shadow:0 1px 2px #0000004d,0 6px 16px #0000003d}.screen .ink-btn:hover{background:var(--accent-hover)}.screen .ink-btn:disabled{opacity:.35;box-shadow:none}.screen .chip,.camp-backdrop .chip,.fatal .chip,.recovery .chip{border:1px solid var(--line-2);min-height:36px;font-size:var(--fs-13);background:0 0;font-weight:500}.screen .chip:hover:not(:disabled),.camp-backdrop .chip:hover:not(:disabled),.fatal .chip:hover:not(:disabled),.recovery .chip:hover:not(:disabled){border-color:var(--ink-2);background:var(--fill)}.screen .chip--on,.camp-backdrop .chip--on{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent);color:var(--ink)}.screen .chip small,.camp-backdrop .chip small{color:var(--ink-3)}.screen .chip--on small{color:var(--ink-2)}.screen .mini-btn,.camp-backdrop .mini-btn{box-shadow:var(--shadow-sm);font-weight:500}.seg{border:1px solid var(--line);background:var(--glass);box-shadow:var(--shadow-sm);border-radius:999px;padding:3px;display:inline-flex}.seg button{min-height:36px;color:var(--ink-2);font-size:var(--fs-13);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:999px;padding:0 16px;font-weight:500;transition:background .15s,color .15s}.seg button:not(.on):hover{color:var(--ink);background:var(--fill)}.seg button.on{background:var(--accent);color:var(--accent-ink)}.menu .screen-top{justify-content:flex-end}.menu-inner{z-index:2;width:min(940px,100%);min-height:0;padding:0 calc(var(--sar) + 20px) calc(var(--sab) + 20px) calc(var(--sal) + 20px);touch-action:pan-y;flex-direction:column;flex:1;justify-content:center;gap:clamp(24px,6dvh,52px);margin:0 auto;display:flex;position:relative;overflow-y:auto}.wordmark{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.wordmark-kicker{font-size:var(--fs-13);letter-spacing:.42em;color:var(--ink-3);text-shadow:0 1px 10px #04080ecc;padding-left:.42em;font-weight:500}.wordmark-title{font-family:var(--font-title);letter-spacing:.14em;background:linear-gradient(#f7f8fa 0%,#d9dee4 62%,#aeb6bf 100%);color:#0000;filter:drop-shadow(0 2px 18px #04080ebf)drop-shadow(0 1px 2px #04080e99);-webkit-background-clip:text;background-clip:text;margin:0;padding-left:.14em;font-size:clamp(48px,7.4vw,88px);font-weight:700;line-height:1}.wordmark-en{font-size:var(--fs-12);letter-spacing:.5em;text-transform:uppercase;color:var(--ink-2);text-shadow:0 1px 10px #04080ecc;padding-left:.5em;font-weight:600}.mode-grid{gap:var(--sp-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.mode-card{align-content:center;column-gap:var(--sp-4);border:1px solid var(--line);border-radius:var(--r);background:var(--glass);min-height:124px;color:var(--ink);text-align:left;cursor:pointer;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:var(--glass-blur);grid-template-rows:auto auto;grid-template-columns:104px minmax(0,1fr);align-items:center;row-gap:4px;padding:10px 20px 10px 10px;transition:transform .18s,background .18s,border-color .18s,box-shadow .18s;display:grid}.app--touch .mode-card{background:var(--glass-solid);-webkit-backdrop-filter:none}.mode-card:hover{border-color:var(--line-2);background:var(--glass-hi);box-shadow:var(--shadow);transform:translateY(-2px)}.mode-card:active{transform:translateY(0)}.mode-art{object-fit:cover;background:var(--mist);pointer-events:none;border-radius:12px;grid-row:1/span 2;width:104px;height:104px}.mode-title{font-size:var(--fs-17);letter-spacing:-.01em;align-self:end;font-weight:600}.mode-desc{font-size:var(--fs-13);color:var(--ink-2);align-self:start;font-weight:400;line-height:1.5}.mode-desc .brief{display:none}.badge{background:var(--fill-2);color:var(--ink-2);font-size:var(--fs-12);white-space:nowrap;border-radius:999px;align-items:center;padding:2px 9px;font-weight:500;display:inline-flex}.screen .emblem{box-shadow:none;filter:drop-shadow(0 1px 3px #0006);background-color:#0000;background-position:50%;background-repeat:no-repeat;background-size:contain}.screen .emblem--joseon{background-image:url(/ui/art/emblem_joseon_sm.webp)}.screen .emblem--japan{background-image:url(/ui/art/emblem_japan_sm.webp)}.screen .emblem--ming{background-image:url(/ui/art/emblem_ming_sm.webp)}.notice,.settings-page .set-group{background:var(--glass-hi)}.notice{width:min(520px,100%);padding:var(--sp-6) var(--sp-5);align-items:center;gap:var(--sp-3);text-align:center;flex-direction:column;margin:auto;display:flex}.notice-icon{color:var(--ink-3);display:inline-flex}.notice h2{font-size:var(--fs-20);margin:0;font-weight:600}.notice p{font-size:var(--fs-15);color:var(--ink-2);margin:0;line-height:1.55}.notice p.notice-detail{background:var(--fill);width:100%;font-size:var(--fs-12);color:var(--ink-3);word-break:break-word;-webkit-user-select:text;user-select:text;border-radius:10px;padding:8px 12px;line-height:1.5}.settings-page{width:min(640px,100%);margin:var(--sp-2) auto var(--sp-5);gap:var(--sp-3);flex-direction:column;display:flex}.set-group{padding:var(--sp-4) var(--sp-5);gap:var(--sp-2);flex-direction:column;display:flex}.set-group h2{font-size:var(--fs-13);color:var(--ink-3);margin:0;font-weight:600}.set-row{justify-content:space-between;align-items:center;gap:var(--sp-4);min-height:48px;display:flex}.set-row+.set-row{padding-top:var(--sp-3);border-top:1px solid var(--line)}.set-text{flex-direction:column;flex:8em;gap:2px;min-width:0;display:flex}.set-text b{font-size:var(--fs-15);font-weight:500}.set-text small{font-size:var(--fs-13);color:var(--ink-3)}.set-control{align-items:center;gap:var(--sp-3);flex:none;display:flex}.set-state{color:var(--ink-3);display:inline-flex}.settings-page .settings-hint{font-size:var(--fs-13);color:var(--ink-3);margin:0;line-height:1.5}.switch{border:1px solid var(--line-2);background:var(--fill-2);cursor:pointer;border-radius:999px;flex:none;width:46px;height:28px;padding:0;transition:background .18s,border-color .18s;position:relative}.switch i{background:var(--ink-2);border-radius:50%;width:20px;height:20px;transition:transform .18s,background .18s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0006}.switch--on{background:var(--accent);border-color:var(--accent)}.switch--on i{background:var(--accent-ink);transform:translate(18px)}.seg--set button{min-height:32px;padding:0 14px}.set-group--help{padding-top:var(--sp-3)}.settings-page .ctl-help summary{font-size:var(--fs-13);color:var(--ink-3);font-weight:600}.settings-page .ctl-body h3{color:var(--ink-2);font-weight:600}.hs{background:#0d1217}.hs-top{z-index:6;background:linear-gradient(#0d1217eb,#0d121700);flex:none;position:relative}.hs .screen-title{color:var(--ink)}.hs-top .screen-top{padding-bottom:6px}.hs-tabs{padding:4px calc(var(--sar) + 20px) 8px calc(var(--sal) + 20px);scrollbar-width:none;touch-action:pan-x;gap:6px;display:flex;overflow-x:auto}.hs-tab{border:1px solid var(--line);background:var(--glass-hi);min-height:40px;color:var(--ink);font-size:var(--fs-13);cursor:pointer;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:var(--glass-blur);border-radius:999px;flex:none;align-items:center;gap:6px;padding:0 14px;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex}.app--touch .hs-tab{-webkit-backdrop-filter:none;background:#16191e}.app--touch .hs-tab--on{background:var(--accent)}.hs-tab small{font-size:var(--fs-12);color:var(--ink-3);font-weight:400}.hs-tab:not(.hs-tab--on):hover{background:var(--glass-solid);border-color:var(--line-2)}.hs-tab--on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:var(--shadow-sm)}.hs-tab--on small{color:#14181da8}.hs-tab--locked{opacity:.4;cursor:default}.tab-seal{background:var(--good);width:18px;height:18px;color:var(--ink-dark);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.tab-seal--loss{background:var(--bad)}.tab-seal--draw{background:var(--ink-2)}.hs-map{background:#0d1217;position:absolute;inset:0;overflow:hidden}.select-canvas{inset:0;position:absolute!important}.hs-vignette{z-index:1;pointer-events:none;background:radial-gradient(at 50% 46%,#0000 52%,#0d1217eb 100%);position:absolute;inset:0}.select-markers{pointer-events:none;z-index:2;position:absolute;inset:0}.marker{pointer-events:auto;cursor:pointer;white-space:nowrap;color:var(--ink);background:0 0;border:0;align-items:center;gap:6px;padding:0;transition:opacity .3s;display:flex;position:absolute;top:0;left:0}.marker i{background:var(--ink-dark);border:2px solid var(--accent);box-sizing:border-box;border-radius:50%;width:12px;height:12px;margin-top:-6px;margin-left:-6px;box-shadow:0 0 0 2px #14181d59,0 2px 6px #14181d4d}.marker span{font-size:var(--fs-12);color:var(--ink);box-shadow:0 0 0 1px var(--line), 0 2px 6px #14181d3d;background:#0e1014d6;border-radius:999px;margin-top:-6px;padding:3px 10px;font-weight:500}@media (hover:hover){.marker:not(.marker--on):hover span{background:var(--glass-solid);box-shadow:0 0 0 1.5px var(--accent), 0 3px 10px #14181d4d}}.marker:focus-visible span{outline:2px solid var(--accent-2);outline-offset:2px}.marker--night i{background:var(--ink-dark-2)}.marker--on{z-index:3}.marker--on i{background:var(--accent);border-color:var(--ink-dark);width:18px;height:18px;box-shadow:0 0 0 1px var(--ink-dark), 0 0 18px #eef1f338;border-width:3px;margin-top:-9px;margin-left:-9px;animation:2s ease-in-out infinite marker-pulse}.marker--on span{font-size:var(--fs-13);background:var(--accent);color:var(--accent-ink);font-weight:600}@keyframes marker-pulse{50%{box-shadow:0 0 0 1px var(--ink-dark), 0 0 0 9px #eef1f31f, 0 0 22px #eef1f33d}}.smap{--mw:clamp(1100px, 280vw, 1700px);--mh:calc(var(--mw) * 1039 / 2048);--fx:50%;--fy:28%;position:absolute;inset:0}.smap-plane{width:var(--mw);height:var(--mh);left:calc(var(--fx) - var(--u) * var(--mw));top:calc(var(--fy) - var(--v) * var(--mh));transition:left .7s cubic-bezier(.2,.7,.2,1),top .7s cubic-bezier(.2,.7,.2,1);position:absolute}.smap-plane:after{content:"";pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 90px 80px #0d1217}.smap-plane img{pointer-events:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.smap .marker{left:calc(var(--mu) * 100%);top:calc(var(--mv) * 100%)}.smap .marker--left span{margin:0;position:absolute;top:0;right:16px}.smap .marker--left.marker--on span{right:24px}.hs-brief{z-index:5;left:50%;bottom:calc(var(--sab) + 24px);background:var(--glass-sheet);flex-direction:column;width:min(800px,100vw - 40px);max-height:calc(100dvh - 190px);display:flex;position:absolute;overflow:hidden;transform:translate(-50%)}.hs-brief-scroll{overscroll-behavior:contain;touch-action:pan-y;min-height:0;padding:var(--sp-5) var(--sp-5) var(--sp-3);gap:var(--sp-3);flex-direction:column;flex:1;display:flex;overflow-y:auto}.hs-brief-scroll[data-more=true]{-webkit-mask-image:linear-gradient(#000 calc(100% - 28px),#0000);mask-image:linear-gradient(#000 calc(100% - 28px),#0000)}.hs-brief-wrap{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.hs-more{min-height:30px;margin:0 0 var(--sp-2);border:1px solid var(--line);background:var(--glass-solid);color:var(--ink-2);font-size:var(--fs-12);cursor:pointer;box-shadow:var(--shadow-sm);border-radius:999px;flex:none;align-self:center;align-items:center;gap:4px;padding:0 12px;font-weight:500;display:inline-flex}.hs-brief h2{font-size:var(--fs-24);letter-spacing:-.01em;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0;font-weight:600;line-height:1.2;display:flex}.hs-brief h2 .hanja{font-size:var(--fs-13);letter-spacing:.2em;color:var(--ink-3);font-weight:400}.select-date{font-size:var(--fs-13);color:var(--ink-3)}.select-brief-head{font-size:var(--fs-12);color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:6px;font-weight:500;display:flex}.select-brief-head>span{background:var(--fill);border-radius:999px;padding:3px 10px}.select-brief-head b{color:var(--ink);font-weight:600}.select-brief-head .night-tag{background:var(--accent);color:var(--accent-ink)}.hs-brief p{font-size:var(--fs-15);color:var(--ink);margin:0;line-height:1.55}.select-forces{gap:var(--sp-3) var(--sp-5);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));display:grid}.select-force{--bar:var(--ink-3);border-left:3px solid var(--bar);font-size:var(--fs-13);color:var(--ink-2);flex-direction:column;gap:1px;padding-left:12px;display:flex}.select-force--joseon{--bar:var(--joseon)}.select-force--japan{--bar:var(--japan)}.select-force--ming{--bar:var(--ming)}.select-force b{font-size:var(--fs-13);color:var(--ink);font-weight:600}.select-force small{font-size:var(--fs-12);color:var(--ink-3)}.select-foot{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.hs-foot{padding:var(--sp-3) var(--sp-5) calc(var(--sp-3) + 2px);border-top:1px solid var(--line);background:var(--fill);flex:none}.select-result{font-size:var(--fs-13);color:var(--ink-3)}.hs-foot .ink-btn{min-width:140px}.loading{z-index:50;height:100dvh;padding:calc(var(--sat) + 16px) calc(var(--sar) + 24px) calc(var(--sab) + 16px) calc(var(--sal) + 24px);color:var(--ink);background:radial-gradient(120% 90% at 50% 30%, var(--sea-2), var(--sea-0) 80%);justify-content:center;align-items:center;line-height:1.45;display:flex;position:absolute;inset:0}.loading .art-bg img{object-position:50% 50%}.loading .art-bg:after{background:radial-gradient(70% 60%,#080c124d,#080c128c 100%)}.loading-card{z-index:2;width:min(440px,100%);padding:var(--sp-6) var(--sp-5) var(--sp-5);text-align:center;background:var(--glass-sheet);flex-direction:column;align-items:center;gap:6px;display:flex;position:relative;box-shadow:0 18px 50px #0006,0 1px 2px #0000004d}.loading--night .art-bg:after{background:radial-gradient(70% 60%,#060c161f,#060c1666 100%)}.loading-hanja{font-family:var(--hanja);font-weight:400;font-size:var(--fs-13);letter-spacing:.4em;white-space:nowrap;color:var(--ink-3);padding-left:.4em}.loading-title{font-size:var(--fs-24);letter-spacing:-.01em;color:var(--ink);font-weight:600}.loading-bar{width:100%;height:4px;margin-top:var(--sp-4);background:var(--fill-2);border-radius:999px;overflow:hidden}.loading-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .35s ease-out}.loading-meta{width:100%;font-size:var(--fs-13);color:var(--ink-3);justify-content:space-between;align-items:baseline;display:flex}.loading-meta b{font-size:var(--fs-13);font-variant-numeric:tabular-nums;color:var(--ink);font-weight:600}.loading-quote{margin-top:var(--sp-4);padding-top:var(--sp-3);border-top:1px solid var(--line);text-align:center;flex-direction:column;align-items:center;gap:4px;width:100%;display:flex}.loading-quote span{font-size:var(--fs-15);color:var(--ink-2);line-height:1.45}.loading-quote strong{font-family:var(--hanja);font-weight:400;font-size:var(--fs-12);letter-spacing:.16em;color:var(--ink-3)}.loading-error{margin-top:var(--sp-4);align-items:center;gap:var(--sp-3);text-align:center;max-width:min(480px,90vw);font-size:var(--fs-13);color:var(--ink-2);word-break:break-word;flex-direction:column;display:flex}.fatal{z-index:60;height:100dvh;padding:calc(var(--sat) + 16px) calc(var(--sar) + 16px) calc(var(--sab) + 16px) calc(var(--sal) + 16px);color:var(--ink);background:radial-gradient(120% 90% at 50% 30%, var(--sea-2), var(--sea-0) 80%);justify-content:center;align-items:center;line-height:1.45;display:flex;position:absolute;inset:0}.fatal .notice{margin:0}.fatal-actions{justify-content:center;gap:var(--sp-2);margin-top:var(--sp-2);flex-wrap:wrap;display:flex}.fatal-actions a{text-decoration:none}.screen .chip .icon,.fatal .chip .icon{margin-right:6px}.fatal .ink-btn{letter-spacing:0;border-radius:999px;font-weight:600;box-shadow:0 1px 2px #0000004d,0 6px 16px #0000003d}.recovery{color:var(--ink);background:var(--glass-solid);box-shadow:var(--shadow)}.recovery p{font-size:var(--fs-13);color:var(--ink-2);font-weight:500;line-height:1.5}.recovery .ink-btn{min-height:36px;padding:0 var(--sp-4);font-size:var(--fs-13);letter-spacing:0;box-shadow:none;border-radius:999px;font-weight:600}.camp-backdrop{z-index:60;-webkit-backdrop-filter:blur(6px);background:#06090d99;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.camp.glass{background:#0c0e12}.camp{width:min(1180px,92vw);height:min(760px,86dvh);padding:var(--sp-4) var(--sp-5);gap:var(--sp-3);flex-direction:column;line-height:1.45;display:flex}.camp-head{align-items:center;gap:var(--sp-5);padding-bottom:var(--sp-3);border-bottom:1px solid var(--line);display:flex}.camp-title{font-size:var(--fs-20);font-weight:600}.camp-res{font-size:var(--fs-13);color:var(--ink-3);gap:18px;margin-left:auto;font-weight:500;display:flex}.camp-res b{font-size:var(--fs-17);color:var(--ink);font-variant-numeric:tabular-nums;margin-left:2px;font-weight:600}.camp-body{gap:var(--sp-5);flex:1;grid-template-columns:1.35fr 1fr;min-height:0;display:grid}.camp-body section{flex-direction:column;gap:10px;min-height:0;padding-right:4px;display:flex;overflow-y:auto}.camp-section-title{font-size:var(--fs-15);font-weight:600}.camp-actions,.camp-build{flex-wrap:wrap;gap:6px;display:flex}.camp-squads{flex-direction:column;gap:10px;display:flex}.camp-squad,.camp-cmd{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--fill);padding:10px 12px}.camp-squad-head{align-items:center;gap:10px;margin-bottom:8px;display:flex}.camp-squad-head img,.camp-cmd img{object-fit:cover;width:40px;height:40px;box-shadow:0 0 0 2px var(--line-2);border-radius:50%}.camp-squad-head b,.camp-cmd-name b{font-size:var(--fs-15);font-weight:600}.camp-squad-head small,.camp-cmd-name small{font-size:var(--fs-12);color:var(--ink-3);font-weight:400;display:block}.camp-ships{grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:8px 10px;display:grid}.camp-ship{flex-direction:column;gap:3px;display:flex}.camp-kind{text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-12);color:var(--ink-2);font-weight:500;overflow:hidden}.camp-bar,.camp-xp{background:var(--fill-2);border-radius:999px;height:4px;overflow:hidden}.camp-bar i,.camp-xp i{height:100%;display:block}.camp-bar--hull i{background:var(--accent)}.camp-bar--crew i{background:var(--joseon)}.camp-bar--supply i{background:var(--ink-3)}.camp-xp i{background:var(--ming)}.camp-cmd{gap:10px;display:flex}.camp-cmd-body{flex-direction:column;flex:1;gap:5px;display:flex}.camp-cmd-name{align-items:baseline;gap:8px;display:flex}.camp-cmd-name small{display:inline}.camp-level{font-size:var(--fs-13);margin-left:auto;font-weight:600}.camp-points{background:var(--accent);color:var(--accent-ink);font-size:var(--fs-12);border-radius:999px;padding:0 8px;font-weight:600}.camp-skills{flex-wrap:wrap;gap:6px;display:flex}.camp-skill{border:1px solid var(--line-2);min-height:32px;font-size:var(--fs-12);cursor:pointer;color:var(--ink);background:0 0;border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-weight:500;display:flex}.camp-skill b{font-variant-numeric:tabular-nums;font-weight:600}.camp-skill--on{border-color:var(--accent);background:var(--accent-soft)}.camp-skill:disabled{cursor:default}.camp-log p{font-size:var(--fs-13);color:var(--ink-2);margin:0 0 6px;line-height:1.5}.camp-reset{align-self:flex-start;margin-top:auto}@media (max-width:700px),(orientation:portrait) and (max-width:900px){.mode-grid{gap:var(--sp-2);grid-template-columns:1fr}.mode-card{column-gap:var(--sp-3);grid-template-columns:68px minmax(0,1fr);min-height:84px;padding:8px 14px 8px 8px}.mode-art{width:68px;height:68px}.mode-desc{font-size:var(--fs-12);line-height:1.4}.menu-inner{justify-content:flex-start;padding-top:4dvh}.wordmark-title{font-size:clamp(40px,13vw,60px)}.screen-top,.hs-tabs,.screen-body{padding-left:calc(var(--sal) + 12px);padding-right:calc(var(--sar) + 12px)}.hs-top .screen-title{display:none}.hs-brief{left:calc(var(--sal) + 8px);right:calc(var(--sar) + 8px);bottom:calc(var(--sab) + 8px);width:auto;max-height:56dvh;transform:none}.hs-brief-scroll{padding:var(--sp-4) var(--sp-4) var(--sp-2);gap:var(--sp-2)}.hs-brief h2{font-size:var(--fs-20)}.hs-brief p{font-size:var(--fs-13);line-height:1.55}.select-forces{gap:var(--sp-2);grid-template-columns:1fr}.hs-foot{padding:var(--sp-3) var(--sp-4)}.hs-foot .select-foot{flex-wrap:wrap}.hs-foot .select-result{flex:100%}.hs-foot .ink-btn{flex:1}.set-group{padding-left:var(--sp-4);padding-right:var(--sp-4)}.set-row{flex-wrap:wrap}.notice{padding-left:var(--sp-4);padding-right:var(--sp-4)}.camp{width:100vw;height:100dvh;padding:calc(var(--sat) + 12px) calc(var(--sar) + 14px) calc(var(--sab) + 12px) calc(var(--sal) + 14px);border-radius:0}.camp-head{flex-wrap:wrap;gap:8px 14px}.camp-res{flex-wrap:wrap;gap:6px 12px;margin-left:0}.camp-body{touch-action:pan-y;flex-direction:column;gap:14px;display:flex;overflow-y:auto}.camp-body section{flex:none;min-height:auto;padding-right:0;overflow:visible}}@media (orientation:landscape) and (max-height:540px){.screen-top{padding-top:calc(var(--sat) + 6px);padding-bottom:6px}.menu .screen-top{position:absolute;top:0;right:0}.menu-inner{align-items:center;gap:var(--sp-5);padding-top:calc(var(--sat) + 12px);grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);display:grid;overflow-y:auto}.wordmark{gap:8px}.wordmark-title{font-size:clamp(34px,6vw,52px)}.wordmark-kicker,.wordmark-en{letter-spacing:.3em;padding-left:.3em}.mode-grid{gap:var(--sp-2);grid-template-columns:1fr 1fr}.mode-card{column-gap:var(--sp-3);grid-template-columns:56px minmax(0,1fr);min-height:84px;padding:8px 12px 8px 8px}.mode-art{border-radius:10px;width:56px;height:56px}.mode-title{font-size:var(--fs-15)}.mode-desc{font-size:var(--fs-12);line-height:1.35}.mode-desc .long{display:none}.mode-desc .brief{display:inline}.hs-top .screen-title{display:none}.hs-tabs{padding-bottom:4px}.hs-tab{min-height:36px}.hs-brief{top:calc(var(--sat) + 112px);bottom:calc(var(--sab) + 8px);left:auto;right:calc(var(--sar) + 8px);width:min(340px,40vw);max-height:none;transform:none}.smap{--fx:27%;--fy:62%;--mw:clamp(1100px, 150vw, 1700px)}.hs-brief h2{font-size:var(--fs-17)}.hs-brief p{font-size:var(--fs-13)}.hs-brief-scroll{padding:var(--sp-3) var(--sp-4) var(--sp-2);gap:var(--sp-2)}.select-forces{gap:var(--sp-2);grid-template-columns:1fr}.hs-foot{padding:var(--sp-2) var(--sp-3)}.hs-foot .select-foot{gap:var(--sp-2);flex-wrap:wrap}.hs-foot .select-result{display:none}.hs-foot .ink-btn{flex:1;min-width:0}.loading-card{width:min(420px,100%);padding:var(--sp-4) var(--sp-5)}.loading-title{font-size:var(--fs-20)}.loading-bar{margin-top:var(--sp-2)}.loading-quote{display:none}}html,body,#root,.app{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,[contenteditable]{-webkit-user-select:text;user-select:text}button,a,select,label,summary,[role=button],input{touch-action:manipulation}.recovery{z-index:60;bottom:calc(var(--sab) + 12px);width:min(460px, calc(100vw - var(--sal) - var(--sar) - 24px));padding:var(--sp-3) var(--sp-4);gap:var(--sp-3);touch-action:manipulation;flex-direction:column;display:flex;position:fixed;left:50%;transform:translate(-50%)}@media (max-height:500px){.recovery{left:calc(var(--sal) + 12px);width:min(320px,37vw);transform:none}}.recovery p{font-size:var(--fs-14,14px);margin:0;font-weight:500;line-height:1.55}.recovery-actions{gap:var(--sp-2);justify-content:flex-end;display:flex}@supports (-webkit-touch-callout:none){html,body{overscroll-behavior:none;-webkit-text-size-adjust:100%;width:100%;height:100%;position:fixed;inset:0;overflow:hidden}}
