*{box-sizing:border-box}.musangPage{min-height:100dvh;background:radial-gradient(ellipse at top,#243039,#080e14 65%);color:#e8e1d1;font-family:system-ui,-apple-system,sans-serif;padding:12px max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom));text-align:center;overscroll-behavior:none}.musangTop{max-width:430px;margin:0 auto 9px;display:flex;justify-content:space-between;align-items:center;text-align:left}.musangTop span{color:#b69d70;font-size:9px;letter-spacing:.15em}.musangTop h1{font:800 25px serif;letter-spacing:.08em;margin:3px 0}.musangTop h1 small{font:500 10px system-ui;color:#a68a57}.musangTop nav{display:flex;gap:6px}.musangPage button{font:600 12px system-ui;touch-action:manipulation;cursor:pointer;color:#e8dfcd;background:#1c2931;border:1px solid #77664b;border-radius:8px;padding:9px 10px}.musangPage button:focus-visible{outline:2px solid #f4d58a;outline-offset:3px}.musangPage button:disabled{opacity:.6;cursor:wait}.musangCabinet{width:min(100%,430px);aspect-ratio:390/640;max-height:calc(100dvh - 105px);position:relative;margin:auto;border:1px solid #92774788;border-radius:16px;overflow:hidden;box-shadow:0 18px 70px #0008;background:#141e27}.musangCanvas{display:block;width:100%;height:100%;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.musangHud{position:absolute;inset:0 0 auto;display:flex;justify-content:space-between;align-items:flex-start;padding:13px 15px 20px;background:linear-gradient(#08131be8,#08131b00);pointer-events:none}.musangHud span{font-size:9px;letter-spacing:.16em;color:#b7beb8}.musangTime{display:grid;text-align:left}.musangTime strong{font-variant-numeric:tabular-nums;font-size:35px;line-height:1.08;color:#ffe4ac;text-shadow:0 2px 12px #000}.musangTime small{font-size:9px;color:#a5b8b6}.musangScore{display:grid;text-align:right;gap:2px}.musangScore b{font-size:18px;font-variant-numeric:tabular-nums}.musangScore small{font-size:10px;color:#c4ae84;margin-top:4px}.danger .musangTime strong,.danger .musangTime small{color:#ff8578}.musangTime.bonus strong{color:#c5ffdd;animation:timePulse .3s ease-out}.musangCombo{position:absolute;top:90px;left:50%;transform:translateX(-50%);width:160px;pointer-events:none;text-shadow:0 2px 4px #000}.musangCombo span{font-size:10px;letter-spacing:.12em;color:#e1ceb0}.musangCombo b{font-size:20px;color:#f3dfb1;margin-left:5px}.musangCombo small{font-size:10px;color:#afac9f;margin-left:4px}.musangComboTrack{height:4px;background:#070e18bb;border:1px solid #ac8d5133;border-radius:3px;margin-top:4px;overflow:hidden}.musangComboTrack i{display:block;height:100%;background:linear-gradient(90deg,#918659,#fce0a1);transition:width .1s}.musangCombo em{display:block;font:9px system-ui;color:#baa98a;margin-top:4px}.musangCombo.near b,.musangCombo.near em{color:#ffe59e}.musangCombo.near .musangComboTrack{box-shadow:0 0 9px #f3c77977}.musangOverlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:18px;background:linear-gradient(#08111bbc,#0b1219ef);backdrop-filter:blur(3px);overflow:auto}.musangIntro,.musangResult,.musangDialog{width:100%;max-width:350px}.eyebrow{font-size:11px;letter-spacing:.12em;color:#b99b64}.musangIntro h2{font:900 54px serif;color:#f4d48c;letter-spacing:.12em;margin:12px 0;text-shadow:0 5px 24px #be6c2e33}.musangIntro p{font-size:14px;line-height:1.9;color:#c1c7c1}.musangGrades{display:flex;gap:7px;justify-content:space-between;margin:24px 0}.musangGrades>span{flex:1;font:700 11px Georgia;color:#eed078}.musangGrades>span:nth-child(2){color:#8bd79e}.musangGrades>span:nth-child(3){color:#fa9687}.musangGrades small{display:block;font:9px system-ui;color:#acaeaa;margin-top:7px}.musangPage .primary{width:100%;padding:14px;border:1px solid #f0d096;background:linear-gradient(120deg,#e2c17c,#bc9855);color:#182027;font-size:17px;font-weight:800;border-radius:9px;box-shadow:0 5px 22px #e3a33e20}.musangIntro>small{display:block;font-size:10px;color:#a9b2ae;margin-top:12px}.musangIntro .best{font-size:11px;color:#cab985}.musangResult h2{font:700 45px Georgia;color:#f5d38e;margin:14px 0 8px}.musangResult h2 small{font:12px system-ui;margin-left:5px}.musangResult p{font-size:11px;color:#acb8b4}.musangResult p b{display:inline-block;margin-left:8px}.record{color:#d2edac}.resultGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:22px 0}.resultGrid span{font-size:9px;color:#aab5b4;padding:11px 3px;border-top:1px solid #8e7d5b55;background:#ffffff03}.resultGrid b{display:block;font-size:20px;color:#e9ddbc;margin-top:5px}.musangResult .resultAdvice{font-size:12px;line-height:1.7;margin:14px 0 20px}.musangPage .quiet{border:0;background:none;color:#a6b2b6;margin-top:10px;padding:8px 25px}.musangDialog h2{font:700 28px serif;color:#e5c88c}.musangDialog p{font-size:12px;line-height:1.9;color:#b9c8c8}.musangDialog dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:12px;margin:20px 0}.musangDialog dt{text-align:right;color:#e7cc8f}.musangDialog dd{margin:0;text-align:left;color:#bdc6bf}.musangTip{position:absolute;bottom:9px;left:10px;right:10px;pointer-events:none;font-size:12px;line-height:1.7;color:#e5d3ac;text-shadow:0 2px 5px #000}.musangTip span{font-size:10px;color:#b5b9ac}.musangPage footer{font-size:9px;color:#7c8d91;margin:9px auto 0}.musangLab{max-width:430px;margin:14px auto;border:1px dashed #746449;padding:10px;font-size:11px}.musangLab div{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0}.musangLab button{font-size:10px}.musangLab output{color:#b4ccbc}@keyframes timePulse{50%{transform:scale(1.1)}}@media(max-height:650px){.musangPage{padding-top:5px}.musangTop{margin-bottom:5px}.musangTop h1{font-size:21px}.musangCabinet{max-height:calc(100dvh - 87px)}.musangOverlay{padding:10px}.musangIntro h2{font-size:40px}.musangGrades{margin:14px 0}.musangResult h2{font-size:35px}.resultGrid{margin:12px 0}.musangCombo{top:81px}}@media(prefers-reduced-motion:reduce){.musangTime.bonus strong{animation:none}}
.musangCabinet{width:min(100%,430px,calc((100dvh - 105px)*.609375));max-height:none}@media(max-height:650px){.musangCabinet{width:min(100%,430px,calc((100dvh - 87px)*.609375));max-height:none}}

.musangCombo b{display:inline-block;animation:comboPop .22s ease-out}.musangComboTrack{height:5px}.musangCombo.near{filter:drop-shadow(0 0 7px #f9b24d55)}.musangTime.bonus{filter:drop-shadow(0 0 9px #7effca77)}.musangCabinet{border-color:#b89457aa;box-shadow:0 0 0 3px #100f0c,0 18px 70px #0009}.musangOverlay{background:linear-gradient(#08111b80,#0b1219ed);backdrop-filter:blur(1px)}@keyframes comboPop{0%{transform:scale(1.5);color:#fff}100%{transform:scale(1)}}@media(prefers-reduced-motion:reduce){.musangCombo b{animation:none}}

@media(max-width:420px){.musangTop nav{gap:4px}.musangTop nav button{padding:8px 7px;font-size:10px}.musangTop h1{font-size:23px}.musangTop span{font-size:8px}}

.musangBattleHud{position:absolute;top:143px;left:12px;width:105px;text-align:left;pointer-events:none;text-shadow:0 2px 5px #000;z-index:2}.musangStreak{display:flex;align-items:baseline;gap:4px}.musangStreak strong{font:900 italic 43px/1 Georgia,serif;color:#f6dfaa;animation:comboPop .24s ease-out}.musangStreak span{font:800 11px/1 system-ui;letter-spacing:.06em;color:#f4e8c6}.musangBattleHud.near .musangStreak strong{color:#fff1bb;text-shadow:0 0 18px #ef8b45}.musangGauge{margin-top:10px}.musangGauge span{font:800 10px Georgia,serif;color:#e8c889}.musangGauge b{font:700 9px system-ui;float:right;color:#e9d7aa}.musangGauge>div{height:5px;margin-top:4px;background:#081019c9;border:1px solid #b3934d77;border-radius:5px;overflow:hidden}.musangGauge i{display:block;height:100%;background:linear-gradient(90deg,#a36439,#ffe09b);box-shadow:0 0 10px #ffd47c;transition:width .13s}.musangPage .musangSkill{position:absolute;right:11px;bottom:14px;z-index:3;width:66px;height:66px;padding:5px;border-radius:50%;background:radial-gradient(circle,#5b402b,#1b2830 72%);border:2px solid #8b7960;color:#a99a83;font:900 19px Georgia,serif;box-shadow:0 3px 15px #0009;touch-action:manipulation}.musangPage .musangSkill small{display:block;font:700 9px system-ui;margin-top:2px}.musangPage .musangSkill:disabled{opacity:.76;cursor:default}.musangPage .musangSkill.ready{color:#21170c;border-color:#ffe5a9;background:radial-gradient(circle,#fff0bc,#d1a45d 68%,#684526);box-shadow:0 0 22px #eeb953aa,0 4px 15px #000a;animation:skillReady 1s ease-in-out infinite}.musangCinematic{position:absolute;inset:0;z-index:4;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle,#1119231a,#07111acc);text-shadow:0 4px 16px #000}.musangCinematic span{font:700 13px Georgia,serif;letter-spacing:.3em;color:#d7bd86}.musangCinematic strong{font:900 61px Georgia,serif;color:#f6d895;margin-top:12px;animation:cinematicPop .42s ease-out}.musangCinematic.outro{animation:outroFade .8s ease-in forwards}.musangCinematic.outro strong{font-size:39px}.musangTime.caution strong{color:#ffdb9b}.musangTime.critical strong,.musangTime.lastStand strong{color:#ff8a75;animation:timeDanger .7s ease-in-out infinite}.musangTime.lastStand strong{animation-duration:.42s;text-shadow:0 0 14px #f2584d}.musangTime.critical small,.musangTime.lastStand small{color:#ffd0b8}.musangResult .resultGrid{margin:16px 0}.musangResult .resultGrid span{padding:7px 2px}.musangResult .resultGrid b{font-size:17px}.musangResult h2{margin:7px 0}.musangIntro .primary{margin-top:28px}@keyframes skillReady{50%{transform:scale(1.07);box-shadow:0 0 31px #ffdf90}}@keyframes cinematicPop{0%{opacity:0;transform:scale(1.8)}100%{opacity:1;transform:scale(1)}}@keyframes outroFade{0%{opacity:0;background:#08111a33}100%{opacity:1;background:#08111ae0}}@keyframes timeDanger{50%{transform:scale(1.13)}}@media(max-height:650px){.musangBattleHud{top:124px}.musangPage .musangSkill{width:58px;height:58px;font-size:16px}.musangResult .resultGrid{margin:8px 0;gap:3px}.musangResult .resultGrid span{padding:5px 2px}.musangResult .resultGrid b{font-size:15px}.musangResult .primary{padding:10px}}@media(prefers-reduced-motion:reduce){.musangStreak strong,.musangPage .musangSkill.ready,.musangCinematic strong,.musangTime.critical strong,.musangTime.lastStand strong{animation:none}}
.musangTime.bonus strong{color:#c5ffdd;animation:timePulse .3s ease-out;text-shadow:0 0 15px #7effca88}

/* A thin lacquer-and-brass cabinet keeps the battlefield readable on a phone. */
.musangCabinet{border:2px solid #bd9250;border-radius:14px;box-shadow:0 0 0 2px #11120f,0 0 0 5px #765b34,0 0 0 7px #11120f,0 18px 55px #000b,inset 0 0 20px #0a0d12;isolation:isolate}
.musangCabinet::before{content:"";position:absolute;inset:6px;z-index:5;pointer-events:none;border:1px solid #e2bc7047;border-radius:9px;background:linear-gradient(135deg,#e3bd7c 0 2px,transparent 2px 100%) top left/38px 38px no-repeat,linear-gradient(225deg,#e3bd7c 0 2px,transparent 2px 100%) top right/38px 38px no-repeat,linear-gradient(45deg,#e3bd7c 0 2px,transparent 2px 100%) bottom left/38px 38px no-repeat,linear-gradient(315deg,#e3bd7c 0 2px,transparent 2px 100%) bottom right/38px 38px no-repeat}
.musangCabinet::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,#100d08a8,transparent 7%,transparent 93%,#100d08a8),linear-gradient(#110e09a1,transparent 8%,transparent 90%,#110e09a1);box-shadow:inset 0 0 22px #05070980}
.musangHud,.musangCombo,.musangBattleHud,.musangTip{z-index:2}
.musangOverlay{z-index:6}
.musangCinematic{z-index:7}
.musangPage button{border:1px solid #b7955c;border-radius:7px;background:linear-gradient(165deg,#34424a,#14232b 55%,#111920);box-shadow:inset 0 1px #f6d59a33,0 3px 7px #0007;text-shadow:0 1px 2px #0008;transition:filter .12s,transform .12s,box-shadow .12s}
.musangPage button:active:not(:disabled){transform:translateY(2px);filter:brightness(1.17);box-shadow:inset 0 2px 5px #0009}
.musangPage .primary{border:2px solid #f8db9b;background:linear-gradient(180deg,#ffe5a7 0%,#dbb46f 45%,#a77b39 100%);box-shadow:inset 0 2px #fff5cf9c,inset 0 -2px #6546267d,0 6px 18px #0009,0 0 20px #dfa64b46;color:#20180d;text-shadow:0 1px #fff0bc99;letter-spacing:.12em}
.musangPage .primary:active:not(:disabled){transform:translateY(2px)}
.musangPage .musangSkill{z-index:4;border:2px solid #a7834d;box-shadow:inset 0 2px 5px #f8d68a36,inset 0 -4px 9px #0009,0 5px 12px #000b}
.musangPage .musangSkill.ready{border-color:#fff0b2;box-shadow:inset 0 2px 6px #fff9c6a8,0 0 24px #f5bf60b8,0 5px 15px #000b}
.musangBattleHud{width:116px;padding:5px 7px 6px;margin:-5px 0 0 -7px;border-left:2px solid #e2b66899;background:linear-gradient(90deg,#0e141bbb,#0e141b00)}
.musangStreak strong{text-shadow:0 2px 3px #000,0 0 12px #efa74599}
.musangGauge>div,.musangComboTrack{border-color:#caa96899;box-shadow:inset 0 1px 3px #000a}
.musangIntro,.musangResult,.musangDialog{border:1px solid #b99a61ad;border-radius:11px;padding:18px;background:linear-gradient(160deg,#182733ef,#101a24ef);box-shadow:inset 0 0 0 3px #eed2a817,0 15px 35px #0009}
.musangResult .quiet{box-shadow:none}
@media(max-height:650px){.musangIntro,.musangResult,.musangDialog{padding:9px}}
@media(prefers-reduced-motion:reduce){.musangPage button{transition:none}}

/* The persistent side combo is gone; only a quick central hit callout remains. */
.musangBattleHud{top:auto;bottom:8px;left:14px;right:91px;width:auto;max-width:none;margin:0;padding:5px 11px 6px;border:1px solid #c9a46b;border-radius:6px;background:linear-gradient(170deg,#18252ddb,#0c1720ed);box-shadow:inset 0 1px #ffe6ac4a,inset 0 -2px #090d13,0 4px 10px #0009;text-shadow:0 1px 3px #000}
.musangBattleHud::before,.musangBattleHud::after{content:"◆";position:absolute;top:50%;transform:translateY(-50%);font:10px Georgia,serif;color:#e1bd7d;text-shadow:0 0 8px #f8b85e}
.musangBattleHud::before{left:3px}.musangBattleHud::after{right:3px}
.musangGauge{margin:0 9px}.musangGauge span{display:block;letter-spacing:.14em;font:800 10px Georgia,serif;color:#f0d4a0}.musangGauge b{font:800 10px system-ui;color:#e7d5aa;animation:musangChargePop .2s ease-out}
.musangGauge>div{position:relative;height:8px;margin-top:4px;overflow:hidden;border:1px solid #b7965c;border-radius:2px;background:linear-gradient(#111922,#253039);box-shadow:inset 0 2px 4px #000a,0 0 8px #e2a95d25}
.musangGauge i{position:relative;height:100%;background:linear-gradient(90deg,#985330,#d8954d 40%,#ffe0a0 80%,#fff0c5);box-shadow:0 0 13px #ffce71;transition:width .2s ease-out}
.musangGauge i::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(112deg,transparent 0 20px,#fff8cf9c 23px,transparent 27px 41px);background-size:82px 100%;animation:musangFlow 1.1s linear infinite}
.musangBattleHud.charged{border-color:#ffe3a2;box-shadow:inset 0 1px #fff2c4a1,0 0 20px #f1be6e88,0 5px 12px #0009}
.musangBattleHud.charged .musangGauge i{background:linear-gradient(90deg,#e6a758,#ffebae,#fff8d8);box-shadow:0 0 17px #ffe69e}
.musangTip{bottom:82px}
.musangCinematic.intro{justify-content:flex-start;padding-top:96px;background:linear-gradient(#0b141dca,#0b141d42 38%,transparent 67%);backdrop-filter:none}
.musangCinematic.intro strong{margin-top:5px;font-size:46px;text-shadow:0 3px 5px #000,0 0 18px #f1bb7188}
@keyframes musangChargePop{50%{transform:scale(1.25);color:#fff5d5}}@keyframes musangFlow{to{background-position:82px 0}}
@media(max-height:650px){.musangBattleHud{bottom:6px;left:11px;right:80px;padding:4px 8px 5px}.musangPage .musangSkill{bottom:6px}.musangTip{bottom:62px}.musangCinematic.intro{padding-top:62px}}
@media(prefers-reduced-motion:reduce){.musangGauge b,.musangGauge i::after{animation:none}}

.musangPage .musangCanvas { touch-action: none; }
.musangDirect, .musangDirect * { -webkit-tap-highlight-color: transparent; }
.musangDirect .musangCabinet, .musangDirect .musangCanvas, .musangDirect button { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
@font-face{font-family:WarText;src:url('/fonts/war-text-v6.woff2') format('woff2');font-display:swap}
@font-face{font-family:WarBrush;src:url('/fonts/war-brush-v6.woff2') format('woff2');font-display:swap}
.musangPage .musangIntro h2 { text-wrap: balance; }
.musangPage .musangIntro p { max-width: 19rem; margin-inline: auto; }
.musangPage footer a { color: #ecd097; margin-left: .5rem; text-underline-offset: 3px; }

/* Raster skins belong only to the direct-control preview. */
.musangDirect .musangCabinet { border-radius:3px; border-color:#514532; }
.musangDirect .musangCabinet::before { inset:0; border:18px solid transparent; border-image:url('/art/musang/direct-v2/frame.webp') 140 95 130 95 / 18px / 0 stretch; border-radius:0;background:none;opacity:.95; }
.musangDirect .musangHud { padding:20px 23px; }
.musangDirect .musangIntro { border:0; background:radial-gradient(ellipse,#0b141df2,#101820ad);box-shadow:none; }
.musangDirect .musangIntro h2 { margin:0 -6px;line-height:0; }
.musangDirect .musangTitle { width:100%;height:auto;filter:drop-shadow(0 5px 15px #000); }
.musangDirect .musangTop h1 { margin:0;height:36px; }
.musangDirect .musangTop h1 img { width:115px;height:48px;object-fit:contain;object-position:left center;margin-top:-6px; }
.musangDirect .primary { background:url('/art/musang/direct-v2/button.webp') center/100% 100% no-repeat; border:0;box-shadow:none;color:#fff0c4;text-shadow:0 2px 4px #000;padding:19px 24px;letter-spacing:.2em;min-height:60px; }
.musangDirect .primary:hover { filter:brightness(1.15); }
.musangDirect .musangBattleHud { bottom:9px;left:14px;right:87px;height:68px;padding:0;border:0;background:none;box-shadow:none; }
.musangDirect .musangBattleHud::before { content:'';inset:12px -4px -4px;transform:none;background:url('/art/musang/direct-v2/gauge.webp') center/100% 100% no-repeat;z-index:2; }
.musangDirect .musangBattleHud::after { display:none; }
.musangDirect .musangGauge { margin:0 32px; }
.musangDirect .musangGauge span { position:relative;z-index:3;font-size:11px;text-align:center;white-space:nowrap;letter-spacing:.08em; }
.musangDirect .musangGauge b { float:none;margin-left:5px;color:#c9faff; }
.musangDirect .musangGauge>div { position:absolute;left:18%;right:18%;top:36px;height:13px;border:0;border-radius:0;margin:0;background:#07121ecc;box-shadow:none;overflow:hidden; }
.musangDirect .musangGauge i,.musangDirect .charged .musangGauge i { background:url('/art/musang/direct-v2/energy.webp') left center/175px 28px repeat-x;box-shadow:0 0 14px #a1f9ff;animation:directEnergyFlow 1.8s linear infinite;transition:width .18s ease-out; }
.musangDirect .musangGauge i::after { background:linear-gradient(90deg,transparent,#fff8bc,transparent);width:30px;left:auto;right:-5px;opacity:.5;animation:none; }
.musangDirect .charged .musangGauge { filter:drop-shadow(0 0 7px #ffe697); }
.musangDirect .musangSkill { right:12px;bottom:18px;background:#16202b url('/art/musang/direct-v2/energy.webp') center/auto 100%;color:#b1c6c2;border-color:#b5985e; }
.musangDirect .musangSkill.ready { background:#68522c url('/art/musang/direct-v2/energy.webp') center/auto 100%;color:#fff8d2;text-shadow:0 2px 4px #051520,0 0 4px #051520; }
.musangDirect .musangCinematic.intro { background:linear-gradient(#09131fbb,transparent 62%); }
@keyframes directEnergyFlow { to { background-position:175px center; } }
@media(max-width:360px){.musangDirect .musangTop nav{gap:3px}.musangDirect .musangTop button{padding:8px 6px;font-size:10px}.musangDirect .musangTop h1 img{width:100px}.musangDirect .musangGauge{margin:0 22px}.musangDirect .musangGauge span{font-size:10px}}
@media(prefers-reduced-motion:reduce){.musangDirect .musangGauge i{animation:none}}

/* Direct-only lacquer, war-scroll and splash-art presentation. */
.musangDirect { padding-top:5px;background:radial-gradient(ellipse at top,#292720,#070c12 72%); }
.musangDirect .musangCabinet { container-type:inline-size;width:min(100%,430px,calc((100dvh - 78px)*.609375));box-shadow:0 0 0 2px #110f0b,0 0 0 4px #72542e,0 12px 60px #000c; }
.musangDirect .musangTop { margin-bottom:5px; }
.musangDirect .musangTop nav { gap:4px; }
.musangDirect .musangTop nav button { width:39px;height:39px;padding:0;font:700 20px Georgia,serif;border-radius:2px;clip-path:polygon(9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 9px);background:linear-gradient(145deg,#62523b,#17232b 46%,#080f15);box-shadow:inset 0 0 0 2px #080e13; }
.musangDirect .musangTop button[aria-pressed=false] { color:#8a8170;opacity:.7; }
.musangDirect.inBattle footer { visibility:hidden; }
.musangDirect .directStart { background:linear-gradient(#07111a22,#07101966 45%,#080d14eb),url('/art/musang/direct-v3/result.webp') center top/cover;backdrop-filter:none;align-items:flex-end;padding:6cqw; }
.musangDirect .musangIntro { max-width:none;padding:0 1cqw 3cqw;background:none; }
.musangDirect .musangIntro .eyebrow { color:#fff0c5;font:700 14px Georgia,serif;letter-spacing:.5em;text-shadow:0 2px 4px #000; }
.musangDirect .musangIntro h2 { margin:0; }
.musangDirect .musangTitle { max-height:39cqw;object-fit:contain; }
.musangDirect .musangIntro p { font-size:clamp(11px,3.3cqw,14px);color:#f0ddbd;text-shadow:0 2px 4px #000; }
.musangDirect .musangIntro .primary { margin-top:2cqw; }
.directLegend { display:flex;justify-content:center;gap:10cqw;margin:3cqw 0;color:#f2e1bf;font:700 11px system-ui; }
.directLegend span { display:flex;align-items:center;gap:7px; }
.directLegend i { display:block;width:36px;height:36px;background:url('/art/musang/direct-v3/markers.webp') left center/72px 36px; }
.directLegend span+span i { background-position:right center; }
.musangDirect .musangDialog { border-radius:0;background:linear-gradient(#101821c9,#091019ed),url('/art/musang/direct-v3/result.webp') top/cover;border:1px solid #b18b50;padding:6cqw;box-shadow:inset 0 0 0 4px #e7bd6c15,0 10px 50px #000; }
.musangDirect .battleDebrief { display:block;padding:0;background:#0a1018;backdrop-filter:none;overflow:auto;scrollbar-width:none; }
.musangDirect .battleDebrief::-webkit-scrollbar { display:none; }
.debriefScene { position:absolute;inset:0;background:linear-gradient(transparent 18%,#0b101526 40%,#080e1680 100%),url('/art/musang/direct-v3/result.webp') center top/cover;animation:debriefReveal .7s ease-out; }
.debriefContent { position:relative;min-height:100%;padding:5cqw 7cqw 3cqw;display:flex;flex-direction:column;text-shadow:0 2px 7px #000; }
.debriefHeading { height:32cqw;text-align:left;flex-shrink:0; }
.debriefHeading>span { color:#ceb98e;font-size:2.6cqw;letter-spacing:.18em; }
.debriefHeading h2 { font:900 12cqw/1.1 Georgia,serif;color:#f2d393;letter-spacing:.12em;margin:2.5cqw 0 1.5cqw; }
.debriefHeading p { font-size:2.5cqw;color:#cbb793;margin:0; }
.debriefSeal { position:absolute;top:25cqw;right:3cqw;width:23cqw;height:25cqw;object-fit:contain;transform:rotate(8deg);animation:sealStrike .45s .2s both; }
.debriefScore { margin:0 0 4cqw;animation:debriefReveal .5s .12s both; }
.debriefScore>span { color:#cdb58c;letter-spacing:.35em;font-size:2.7cqw; }
.debriefScore>strong { display:block;font:900 14cqw/.98 Georgia,serif;color:#ffdf9b;letter-spacing:-.04em;margin:2cqw 0;text-shadow:0 2px #6c3822,0 4px #241208,0 0 24px #f29e3044; }
.debriefScore p { margin:0;color:#ffe4b0;font-size:3.1cqw; }
.debriefScore small { display:block;font-size:2.5cqw;color:#aaa591;margin-top:1cqw; }
.debriefFeats { display:grid;grid-template-columns:repeat(3,1fr);padding:4cqw 0;border-block:1px solid #baa16a6b;background:linear-gradient(90deg,transparent,#eed2a00a,transparent); }
.debriefFeats span { font-size:2.7cqw;color:#b9ad95; }
.debriefFeats span+span { border-left:1px solid #b6965533; }
.debriefFeats b { display:block;font:700 6cqw/1.2 Georgia,serif;color:#f5e0b4;margin-top:1.4cqw; }
.debriefFeats small { margin-left:3px;font:600 2cqw system-ui;color:#ac9270; }
.debriefGrades { display:flex;justify-content:space-around;margin:4cqw 0 3cqw; }
.debriefGrades span { min-width:23%;padding:2cqw;background:linear-gradient(110deg,transparent,#b6924c12,transparent); }
.debriefGrades b { display:block;font:italic 900 6cqw/1.1 Georgia,serif; }
.debriefGrades small { font:800 2.3cqw Georgia,serif;letter-spacing:.05em; }
.debriefGrades .perfect { color:#ffc5a2; }.debriefGrades .great { color:#bbdfc1; }.debriefGrades .good { color:#d8c092; }
.debriefDetails { display:flex;justify-content:center;gap:4cqw;font-size:2.5cqw;color:#aaa394; }
.debriefDetails b { color:#ecdbb9;margin-left:3px; }
.debriefActions { margin-top:auto;padding-top:3cqw; }
.musangDirect .debriefActions .primary { min-height:16cqw;padding:3cqw 5cqw;font:900 4.8cqw Georgia,serif; }
.musangDirect .debriefActions .quiet { margin:0;padding:2.7cqw 3cqw;font-size:2.7cqw;box-shadow:none;color:#c3b699; }
@keyframes debriefReveal { from { opacity:0;transform:translateY(9px); } to { opacity:1;transform:none; } }
@keyframes sealStrike { from { opacity:0;transform:scale(1.5) rotate(17deg); } to { opacity:1;transform:scale(1) rotate(8deg); } }
@media(prefers-reduced-motion:reduce){.debriefScene,.debriefScore,.debriefSeal{animation:none}}

/* Brush lettering and animated war-scroll, scoped to this experiment. */
.musangDirect,.musangDirect button,.musangDirect small,.musangDirect em,.musangDirect span,.musangDirect p,.musangDirect b{font-family:WarText,serif}
.musangDirect .musangHud{gap:14px;align-items:flex-start}
.musangDirect .musangTime{width:64%;position:relative}
.musangDirect .musangTime>span{font-size:12px;letter-spacing:.18em}
.musangDirect .musangTime>strong{font:400 48px/.9 WarBrush,serif;letter-spacing:0;margin:0;text-shadow:0 2px 2px #18120c,0 0 12px #ffd87866}
.musangDirect .musangTime sup{font:400 15px WarText,serif;margin-left:3px}
.musangDirect .musangTime small{display:block;min-height:13px;font:400 11px WarText,serif;margin-top:6px}
.battleTimeTrack{position:relative;height:10px;margin-top:6px;border:1px solid #bc9455;box-shadow:0 0 0 2px #20190f,inset 0 2px 4px #000;background:#100f10;transform:skewX(-12deg)}
.battleTimeTrack i{display:block;height:100%;background:linear-gradient(#fff0b5,#ce9d43 48%,#956330 50%,#e3b865);transition:width .09s linear;box-shadow:0 0 8px #f5b95877}
.battleTimeTrack b{position:absolute;top:-2px;width:2px;height:12px;background:#fff0b8;box-shadow:0 0 8px #ffd37d;transition:left .09s linear}
.critical .battleTimeTrack i,.lastStand .battleTimeTrack i{background:linear-gradient(#ffd5a0,#e85536,#a42d20)}
.bonus .battleTimeTrack i{background:linear-gradient(#fff9d5,#96e6be,#538a79);box-shadow:0 0 15px #c1ffe9}
.musangDirect .musangScore{padding-top:2px;max-width:31%}
.musangDirect .musangScore b{font:400 28px WarBrush,serif}
.musangDirect .musangScore small{font-size:10px}
.musangDirect .directLegend,.musangDirect .musangIntro .eyebrow,.musangDirect .debriefDetails,.musangDirect .debriefGrades small,.musangDirect .musangTop nav button{font-family:WarText,serif}
.musangDirect .primary,.musangDirect .debriefActions .primary{font-family:WarText,serif;font-weight:400;font-size:clamp(19px,5.7cqw,25px)}
.musangDirect .debriefScore>strong{font-family:WarBrush,serif;font-weight:400;font-size:17cqw}
.musangDirect .debriefFeats b,.musangDirect .debriefGrades b{font-family:WarBrush,serif;font-weight:400}
.musangDirect .musangCinematic strong{font-family:WarBrush,WarText,serif}
.debriefScoreGauge{height:6px;border:1px solid #86623d;background:#0b111acc;overflow:hidden;margin:1cqw 0 3cqw;transform:skewX(-17deg)}
.debriefScoreGauge i{display:block;height:100%;background:linear-gradient(90deg,#9a422b,#e8a94e,#ffedac);box-shadow:0 0 12px #ffca72}
.debriefScore .awaiting{opacity:0}.debriefScore .revealed{animation:debriefReveal .25s both}
.tallied .debriefScore>strong{animation:scoreStamp .35s both}
.newRecord .debriefScoreGauge{box-shadow:0 0 17px #ffbc3d99}
.newRecord::after{content:'';pointer-events:none;position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,#fff1b81c 47%,transparent 60%);animation:recordSheen .9s both}
.debriefScene{animation:sceneBreath 12s ease-in-out infinite alternate;transform-origin:60% 28%}
.musangDirect .directStart{background-size:cover;animation:startPan 14s ease-in-out infinite alternate;overflow:hidden}
.directStart::after,.battleDebrief::before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 14% 76%,#c5793022,transparent 30%),radial-gradient(ellipse at 80% 30%,#f6bf491c,transparent 28%);animation:warGlow 3s ease-in-out infinite alternate}
.musangIntro,.debriefContent{z-index:1}
@keyframes scoreStamp{0%{transform:scale(1.07);filter:brightness(1.9)}100%{transform:scale(1);filter:brightness(1)}}
@keyframes sceneBreath{to{transform:scale(1.045) translate(-.5%,-.2%)}}
@keyframes startPan{from{background-size:auto 100%;background-position:48% top}to{background-size:auto 105%;background-position:52% top}}
@keyframes warGlow{to{opacity:.25;transform:translateY(-7px)}}
@keyframes recordSheen{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
@media(max-width:360px){.musangDirect .musangHud{padding:17px 20px}.musangDirect .musangTime>strong{font-size:41px}.musangDirect .musangScore b{font-size:24px}}
@media(prefers-reduced-motion:reduce){.musangDirect .directStart,.debriefScene,.directStart::after,.battleDebrief::before,.newRecord::after,.tallied .debriefScore>strong{animation:none}}
.musangDirect .musangIntro p{font-size:4cqw}.musangDirect .musangIntro>small{font-size:3.5cqw}
.musangDirect .debriefScore>span,.musangDirect .debriefFeats span,.musangDirect .debriefDetails{font-size:3.3cqw}
.musangDirect .debriefScore p{font-size:3.9cqw}.musangDirect .debriefScore small{font-size:3.2cqw}
.musangDirect .debriefGrades small{font-size:2.9cqw}.musangDirect .debriefActions .quiet{font-size:3.3cqw}
.musangDirect .debriefHeading>span,.musangDirect .debriefHeading p{font-size:3cqw}
.musangDirect .debriefScore>span,.musangDirect .debriefFeats span,.musangDirect .debriefDetails,.musangDirect .debriefScore small,.musangDirect .debriefActions .quiet{font-size:clamp(11px,3.3cqw,14px)}
.musangDirect .debriefGrades small,.musangDirect .debriefHeading>span,.musangDirect .debriefHeading p{font-size:clamp(10px,3cqw,12px)}
.musangDirect .debriefFeats b,.musangDirect .debriefGrades b{font-size:clamp(22px,7cqw,30px)}
.musangDirect .musangIntro>small{font-size:clamp(11px,3.5cqw,14px)}
/* Siege season: functional UI remains readable over the animated artwork. */
.warName{display:grid;gap:6px;text-align:center;color:#e6c487;font-size:14px;margin:12px 0}.warName input{background:#071018d9;border:1px solid #a77e42;border-radius:4px;padding:10px;color:#fff0ca;font:20px WarText,serif;text-align:center;width:100%;box-sizing:border-box}.rankNotice{display:block;font-size:11px;margin-top:10px;color:#cfbda3}.pauseGlyph{display:inline-block;width:13px;height:17px;border-left:4px solid currentColor;border-right:4px solid currentColor;box-sizing:border-box;vertical-align:middle}
.rollingNumber{display:inline-flex;justify-content:flex-end}.numberSlot{display:inline-block;overflow:hidden;min-width:.5em}.numberSlot>span{display:block;animation:digitRoll .2s ease-out}@keyframes digitRoll{from{transform:translateY(-70%);filter:blur(2px)}to{transform:translateY(0);filter:blur(0)}}
.battleTimeTrack i{transition:width .1s linear;background-size:200% 100%!important;animation:qiFlow 1.6s linear infinite}.musangGauge>div>i{transition:width .22s cubic-bezier(.16,1,.3,1);background-size:200% 100%!important;animation:qiFlow 1s linear infinite}@keyframes qiFlow{to{background-position:200% 0}}
.musangDirect .musangSkill.ready{background-image:url('/art/musang/direct-v5/ready.webp');background-size:100% 100%;border:0;box-shadow:0 0 16px #ffc350aa,0 0 35px #f2793433;animation:readySurge .65s ease-in-out infinite alternate}.musangSkill.ready:before{content:'';position:absolute;inset:-8px;border:1px solid #ffe5a6;border-radius:50%;animation:readyWave 1.2s ease-out infinite}.musangBattleHud.charged:after{content:'';position:absolute;bottom:16px;left:35%;right:45px;height:3px;pointer-events:none;background:linear-gradient(90deg,transparent,#fff1af,#f5a638);box-shadow:0 0 9px #ffcf53;animation:qiFlow .5s linear infinite}@keyframes readySurge{to{filter:brightness(1.3);transform:scale(1.05)}}@keyframes readyWave{to{transform:scale(1.32);opacity:0}}
.musangDirect .debriefScene{background-image:linear-gradient(#060b1477,#050a1288),url('/art/musang/direct-v5/defeat.webp');background-size:cover;background-position:center;animation:resultTravel 10s ease-in-out infinite alternate}.musangDirect .victory .debriefScene{background-image:linear-gradient(#060b1488,#050a12aa),url('/art/musang/direct-v5/gate-3.webp')}.resultEmbers{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle,#ffc467 1px,transparent 2px),radial-gradient(circle,#ef823999 1px,transparent 2px);background-size:83px 137px,113px 91px;animation:emberRise 7s linear infinite;opacity:.6}.directStart:before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle,#ffa945aa 1px,transparent 3px) 0 0/69px 121px;animation:emberRise 6s linear infinite;opacity:.5}@keyframes emberRise{to{background-position:40px -274px,-30px -182px}}@keyframes resultTravel{to{transform:scale(1.06) translateY(-6px)}}
.warRanks{margin:10px 0;border-top:1px solid #b28c4f77;padding-top:9px;background:#07111ca3;border-radius:8px;font-family:WarText,serif}.warRanks nav{display:flex;gap:5px;justify-content:center}.warRanks nav button{flex:1;background:#172027;color:#c0b197;border:1px solid #776046;padding:6px;font:15px WarText,serif}.warRanks nav button[aria-pressed=true]{background:#633424;color:#ffe7a8;border-color:#dab874}.warRanks p{font-size:12px;text-align:center;margin:6px}.myRank b{font:30px WarBrush,serif;color:#ffe9a2;display:inline-block;animation:digitRoll .18s}.warRanks ol{list-style:none;padding:0 8px;margin:0;max-height:115px;overflow:auto}.warRanks li{display:flex;gap:10px;align-items:center;font-size:13px;padding:6px;border-bottom:1px solid #a8863b33}.warRanks li span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.warRanks li.mine{background:#73562688;color:#ffe9a6;box-shadow:inset 3px 0 #ffdb7a}.debriefContent{padding-bottom:18px}.recordFireworks{position:absolute;left:50%;top:21%;z-index:3;pointer-events:none}.recordFireworks i{position:absolute;width:3px;height:7px;background:#ffe5a1;box-shadow:0 0 6px #ff903f;animation:fireworkBurst 1.6s var(--delay) ease-out 2 both;transform:rotate(var(--angle))}@keyframes fireworkBurst{0%{transform:rotate(var(--angle)) translateY(0);opacity:0}12%{opacity:1}100%{transform:rotate(var(--angle)) translateY(var(--radius));opacity:0}}
.recordLive,.rivalHint{position:absolute;top:18%;left:0;right:0;pointer-events:none;text-align:center;font:14px WarText,serif;text-shadow:0 2px 5px #000;color:#ffe6ac}.rivalHint{top:22%;font-size:11px;color:#dcc8ac}.recordLive{animation:recordHeat 1s ease-in-out infinite alternate}@keyframes recordHeat{to{text-shadow:0 0 14px #ffc767;filter:brightness(1.2)}}
@media(prefers-reduced-motion:reduce){.numberSlot>span,.resultEmbers,.directStart:before,.musangDirect .debriefScene,.recordFireworks i,.musangSkill.ready,.musangSkill.ready:before,.recordLive,.battleTimeTrack i,.musangGauge>div>i{animation:none!important}}

.musangDirect .debriefActions{position:sticky;bottom:-18px;z-index:4;background:linear-gradient(transparent,#09111bf5 20%);padding:12px 0 8px;margin-top:10px}.musangDirect .debriefActions .primary{min-height:52px}.musangDirect .debriefHeading{padding-top:0}.musangDirect .warRanks{flex-shrink:0}

.showcaseNotice{text-align:center;color:#e6c583;font:14px WarText,serif;margin:3px auto 7px}.showcaseMode .musangCabinet{margin-top:0}
/* v6: one visual language; complete Hangul coverage prevents mismatched fallback words. */
@font-face{font-family:WarTextFull;src:url('/fonts/war-text-v6.woff2') format('woff2');font-display:swap}
@font-face{font-family:WarBrushFull;src:url('/fonts/war-brush-v6.woff2') format('woff2');font-display:swap}
.musangDirect,.musangDirect :is(button,input,label,small,em,span,p,b,strong,h1,h2,h3,sup){font-family:WarTextFull,serif}
.musangDirect .phaseCrest{position:absolute;z-index:4;top:-2px;left:18%;width:64%;height:48px;pointer-events:none;background:url('/art/musang/direct-v6/phase.webp') center/100% 100% no-repeat;display:grid;place-items:center;color:#ffebbf;text-shadow:0 2px 3px #140602;font-size:18px;animation:phaseArrival .75s both}
@keyframes phaseArrival{0%{filter:brightness(3);transform:scale(1.12)}40%{transform:translateY(3px);filter:brightness(1.5)}100%{filter:brightness(1)}}
.musangDirect .musangHud{padding:46px 18px 0;gap:8px;align-items:start}
.musangDirect .musangTime{width:39%;flex-shrink:0}.musangDirect .musangTime>strong{font-family:WarBrushFull,serif;font-size:44px}
.musangDirect .musangTime>span{font-size:12px}.musangDirect .musangTime small{font-family:WarTextFull,serif;font-size:11px;margin-top:0}
.musangDirect .musangScore{max-width:none;width:61%;text-align:center;padding:18px 4px 9px;position:relative;background:url('/art/musang/direct-v6/score.webp') center/100% 100% no-repeat}
.musangDirect .musangScore>span{font-size:11px;letter-spacing:.25em;display:block;line-height:1}
.musangDirect .musangScore b,.musangDirect .musangScore .rollingNumber{font-family:WarBrushFull,serif;font-size:clamp(27px,10.5cqw,46px);line-height:1.05;color:#ffdf94;text-shadow:0 2px #603421,0 0 12px #ffb12c50}
.musangDirect .musangScore .rollingNumber span{font-family:inherit}
.musangDirect .battleTimeTrack{height:22px;margin:1px -5px 0;transform:none;border:0;box-shadow:none;background:url('/art/musang/direct-v6/time-frame.webp') center/100% 100%;padding:6px 17%;box-sizing:border-box}
.musangDirect .battleTimeTrack i{height:7px;max-width:100%;background:#dfa048 url('/art/musang/direct-v6/time-energy.webp') center/100% 200%;mask-image:linear-gradient(90deg,#000 94%,transparent);box-shadow:0 0 7px #e9ab48;transition:width .1s linear}
.musangDirect .battleTimeTrack b{display:none}
.musangDirect .critical .battleTimeTrack i,.musangDirect .lastStand .battleTimeTrack i{filter:hue-rotate(-30deg) saturate(1.9)}
.musangDirect .bonus .battleTimeTrack{animation:timeRekindle .75s both}@keyframes timeRekindle{30%{filter:brightness(2);transform:scale(1.05)}}
.musangDirect .musangBattleHud{bottom:10px;left:11px;right:86px;height:76px}
.musangDirect .musangBattleHud::before{inset:0;background:url('/art/musang/direct-v6/qi-frame.webp') center/100% 100% no-repeat;z-index:0}
.musangDirect .musangGauge>span{position:absolute;top:-2px;left:0;right:0;font-size:12px;text-shadow:0 2px 3px #000}
.musangDirect .musangGauge>div{top:44px;left:19%;right:19%;height:15px;background:#080d13;border-radius:3px;overflow:visible;isolation:isolate}
.musangDirect .musangGauge i,.musangDirect .charged .musangGauge i{display:block;height:100%;background:#126c74 url('/art/musang/direct-v6/qi-energy.webp') center/200px 26px;border-radius:3px;mask-image:linear-gradient(90deg,#000 88%,transparent);box-shadow:0 0 9px #99f8ff;transition:width .28s cubic-bezier(.2,.8,.2,1);animation:qiRiver 2s linear infinite}
.musangDirect .musangGauge i::after{display:none}.qiHead{position:absolute;top:3px;width:8px;height:9px;border-radius:50%;background:#eaffff;box-shadow:0 0 9px 3px #91ecf3;transform:translateX(-7px);transition:left .28s ease,opacity .2s}
@keyframes qiRiver{to{background-position:200px center}}
.musangDirect .charged .musangBattleHud,.musangDirect .charged .musangGauge{filter:drop-shadow(0 0 8px #ffbc40)}
.musangDirect .musangSkill,.musangDirect .musangSkill.ready{width:86px;height:86px;right:4px;bottom:8px;border:0;background:transparent url('/art/musang/direct-v6/skill-idle.webp') center/contain no-repeat;box-shadow:none;border-radius:0;font-size:0;text-shadow:none}
.musangDirect .musangSkill.ready{background-image:url('/art/musang/direct-v6/skill-ready.webp');animation:ultimateHeartbeat 1.1s ease-in-out infinite alternate;filter:drop-shadow(0 0 8px #ffbf5a)}
.musangDirect .musangSkill small{position:absolute;bottom:0;left:0;right:0;font:16px WarTextFull,serif;color:#ffe7aa;text-shadow:0 2px 3px #000}
@keyframes ultimateHeartbeat{to{filter:drop-shadow(0 0 15px #ffbd36) brightness(1.28);transform:scale(1.06)}}
.musangDirect .musangBattleHud.charged::after{display:block;content:'';position:absolute;left:75%;right:-35px;top:40px;height:5px;transform:none;background:linear-gradient(90deg,#6fe7ec,#ffe7ad);box-shadow:0 0 10px #ffe5a4;animation:ultimateHeartbeat .6s infinite alternate}
.musangDirect .recordLive{top:139px}.musangDirect .rivalHint{top:158px}
.musangDirect .finaleHold{pointer-events:auto;justify-content:flex-start;padding-top:110px;background:linear-gradient(#050b1580,transparent 70%)}
.finaleHold>img{width:72%;height:auto;filter:drop-shadow(0 6px 12px #000);animation:sealStrike 1s .8s both}
.musangDirect .finaleHold .primary{position:absolute;bottom:28px;left:20%;width:60%;pointer-events:auto;animation:debriefReveal .4s both}
.musangDirect .directStart{background:#081018;animation:none;padding:5cqw;overflow:hidden}
.livingScene{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.livingGate{position:absolute;inset:0;background:linear-gradient(transparent,#081019bb),url('/art/musang/direct-v5/gate-0.webp') center/cover}
.livingCommander{position:absolute;top:1%;left:9%;width:90%;aspect-ratio:3/4;background:url('/art/musang/direct-v6/menu.webp') 0 0/400% 200%;animation:livingBreath 3.6s steps(1) infinite;mask-image:linear-gradient(#000 70%,transparent)}
.livingFlag{position:absolute;width:42%;aspect-ratio:1;top:3%;background:url('/art/musang/direct-v6/scenery.webp') 0 100%/400% 200%;animation:flagFrames .9s steps(1) infinite}
.flagLeft{left:-10%;opacity:.85}.flagRight{right:-12%;transform:scaleX(-1);animation-delay:-.4s}
@keyframes livingBreath{0%,100%{background-position:0 0}25%{background-position:33.333% 0}50%{background-position:66.667% 0}75%{background-position:100% 0}}
@keyframes flagFrames{0%,100%{background-position:0 100%}25%{background-position:33.333% 100%}50%{background-position:66.667% 100%}75%{background-position:100% 100%}}
.triumph .livingCommander{animation:victoryFrames 2.8s steps(1) forwards}
@keyframes victoryFrames{0%{background-position:0 100%}30%{background-position:33.333% 100%}60%{background-position:66.667% 100%}100%{background-position:100% 100%}}
.sceneLight{position:absolute;inset:0;background:linear-gradient(transparent 28%,#09111acf 65%,#09111af0);pointer-events:none}
.musangDirect .musangIntro{position:relative;z-index:1;padding:0;width:100%}.musangDirect .musangIntro .musangTitle{height:100px;margin-bottom:0}
.commanderProfile{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;border:0;background:linear-gradient(90deg,transparent,#101c23dd,transparent);color:#ffe5ac;padding:7px;font-size:20px}.commanderProfile small{display:block;color:#ad9c7f;font-size:12px}
.warPortrait{width:44px;height:44px;flex-shrink:0;border:2px solid #b08a4c;border-radius:50%;background:radial-gradient(#5c4732,#10202a);display:inline-grid;place-items:center;overflow:hidden;color:#f9df9d;font-size:26px;box-shadow:0 0 0 2px #14151a}
.warPortrait img{width:100%;height:100%;object-fit:cover}
.musangDirect .secondary,.musangDirect .debriefActions .quiet{border:0;border-block:1px solid #af8a5060;background:linear-gradient(90deg,transparent,#573b208a,transparent);border-radius:0;color:#ead5ad;font:18px WarTextFull,serif;padding:11px 16px;width:100%;box-shadow:none}
.musangDirect .battleDebrief{background:url('/art/musang/direct-v5/gate-3.webp') center/cover fixed;isolation:isolate}.musangDirect .battleDebrief:not(.victory){background-image:url('/art/musang/direct-v5/defeat.webp')}
.battleDebrief .livingScene{position:sticky;top:0;height:100%;margin-bottom:-152%;z-index:-1;min-height:640px}.battleDebrief .livingGate{background-image:linear-gradient(#0a111855,#090f1899),url('/art/musang/direct-v5/gate-3.webp')}
.battleDebrief .livingCommander{left:34%;top:0;width:72%;opacity:.38}.battleDebrief:not(.victory) .livingCommander{display:none}
.musangDirect .debriefScene{display:none}.musangDirect .debriefContent{background:linear-gradient(#09101a1a,#09101a66);min-height:100%;box-sizing:border-box;padding:5cqw 6cqw}
.musangDirect .debriefHeading{height:auto;min-height:37cqw}.musangDirect .debriefHeading h2{margin:0}.debriefHeading h2 img{width:74%;height:30cqw;object-fit:contain;object-position:left}
.musangDirect .debriefHeading p{font-family:WarTextFull,serif;font-size:14px}.musangDirect .debriefScore>strong{font-family:WarBrushFull,serif;font-size:19cqw}
.musangDirect .debriefSeal{top:35cqw;right:1cqw;width:21cqw;height:24cqw}.musangDirect .debriefScore{padding:2cqw 0 0}
.musangDirect .debriefFeats b,.musangDirect .debriefGrades b{font-family:WarBrushFull,serif}
.celebrationCanvas{position:sticky;display:block;top:0;left:0;width:100%;height:100%;min-height:640px;margin-bottom:-152%;pointer-events:none;z-index:4}
.musangDirect .debriefActions{padding:16px 0 8px;background:none}.musangDirect .debriefActions .quiet{margin:5px 0 0;font-size:18px}
.warAccount{position:relative;margin:auto;width:100%;max-width:350px;box-sizing:border-box;border:1px solid #c6984d;padding:24px 22px;background:linear-gradient(#131d28ed,#111921f5),url('/art/musang/direct-v5/gate-0.webp') center/cover;text-align:center;box-shadow:0 0 0 4px #71573144}
.accountOverlay{z-index:15;overflow:auto;background:#02070bba;padding:18px!important}.warAccount h2{font:42px WarBrushFull,serif;color:#ffe2a2;margin:4px 0 12px}.warAccount form{display:grid;gap:10px}.warAccount label{display:grid;gap:5px;text-align:left;color:#dfc394;font-size:16px}.warAccount input:not([type=checkbox]){box-sizing:border-box;width:100%;padding:10px;border:1px solid #85724b;background:#080f19;color:#fff0cc;font:17px WarTextFull,serif}.warAccount .remember{display:flex;align-items:center;gap:8px;font-size:14px}.warAccount small{display:block;font-size:12px;line-height:1.5;color:#b7a78b;margin:8px 0}.warAccount [role=alert]{color:#ffac86;font-size:14px}.warAccount input[type=file]{font-size:12px}.warAccount .warPortrait{width:80px;height:80px}.accountTabs{display:flex;margin:10px 0}.accountTabs button{width:50%;padding:9px;background:#111c28;border:1px solid #785d32;color:#cbbb9d}.accountTabs button[aria-pressed=true]{color:#ffedb7;background:#604022}
.panelClose{position:absolute;z-index:10;right:8px;top:5px;background:none!important;border:0!important;color:#e9c987;font-size:26px;padding:4px 10px}
.musangDirect .boardOverlay{z-index:14;display:block;overflow:auto;background:linear-gradient(#101b27e0,#0a121ced),url('/art/musang/direct-v5/gate-3.webp') center/cover;padding:25px 16px}
.musangDirect .premiumRanks{padding:12px 0;background:none;border:0;text-align:center}.premiumRanks header>span{font-size:12px;letter-spacing:.4em;color:#bda16f}.premiumRanks h3{font:38px WarBrushFull,serif;margin:0 0 10px;color:#f0ce88}.premiumRanks nav{display:flex;gap:4px}.premiumRanks nav button{flex:1;padding:8px;border:1px solid #927142;background:#15202a;color:#dbcaac}.premiumRanks nav button[aria-pressed=true]{background:linear-gradient(#845b2e,#422619);color:#fff0bf}
.rankClimb{display:grid;justify-items:center;padding:10px;background:radial-gradient(ellipse,#c7902525,transparent 70%)}.rankClimb small{color:#bba47c}.rankClimb strong{font:56px WarBrushFull,serif;color:#ffe4a3}.rankClimb sup{font:20px WarTextFull}.rankClimb>span{color:#b9deb6}.rankClimb.climbing strong{animation:scoreStamp .18s}
.musangDirect .rankRoster{position:relative;display:block;list-style:none;padding:0;margin:12px 0;overflow:hidden}.musangDirect .rankRoster li{position:absolute;left:0;right:0;top:0;height:58px;box-sizing:border-box;display:flex;gap:8px;align-items:center;padding:6px 8px;background:linear-gradient(100deg,#1e2c36db,#111c28b8);border-bottom:1px solid #b4945133;transform:translateY(calc(var(--slot)*62px));will-change:transform}.rankRoster li.mine{background:linear-gradient(100deg,#754721,#273f48)!important;box-shadow:inset 0 0 0 1px #ecc785;z-index:2}.rankRoster .rankOrdinal{width:24px;font:26px WarBrushFull,serif;color:#b0a18b}.rankRoster .podium1 .rankOrdinal,.rankRoster .podium2 .rankOrdinal,.rankRoster .podium3 .rankOrdinal{color:#f9d172;text-shadow:0 0 8px #dd993e77}.rankRoster li>span:not(.warPortrait){min-width:0;flex:1;text-align:left;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rankRoster li small{display:block;font-size:10px;color:#ecc386}.rankRoster li>strong{font:25px WarBrushFull,serif;color:#ffe3a3}.rankRoster .warPortrait{width:36px;height:36px;font-size:20px}
@media(max-width:360px){.musangDirect .musangHud{padding:43px 15px 0}.musangDirect .musangTime>strong{font-size:35px}.musangDirect .phaseCrest{font-size:15px;height:41px}.musangDirect .musangBattleHud{right:74px;height:63px;bottom:7px}.musangDirect .musangGauge>div{top:36px;height:12px}.musangDirect .musangSkill{width:75px;height:75px}.warAccount{padding:20px 15px}}
@media(prefers-reduced-motion:reduce){.musangDirect .livingCommander,.musangDirect .livingFlag,.musangDirect .phaseCrest,.musangDirect .musangSkill.ready,.musangDirect .musangGauge i{animation:none}.rankRoster li{will-change:auto}}

.battleDebrief .livingScene{position:absolute;inset:0;height:100%;margin:0;min-height:0;z-index:0}.celebrationCanvas{position:absolute;inset:0;height:100%;min-height:0;margin:0;z-index:4}.musangDirect .debriefContent{z-index:1}.battleDebrief .resultEmbers{pointer-events:none}
.musangDirect .debriefActions{position:static;margin-top:16px;background:none}.musangDirect .rankRoster{max-height:none}.musangDirect .rankRoster .warPortrait{flex:0 0 36px}.musangDirect .commanderProfile{border:0;border-radius:0;background:linear-gradient(90deg,transparent,#121c29dd,transparent);font-size:20px}.musangDirect .commanderProfile>span:not(.warPortrait){font-size:20px}.musangDirect .commanderProfile small{font-size:12px}.livingCommander{mask-image:radial-gradient(ellipse 65% 69% at 50% 37%,#000 47%,transparent 82%)}
.musangDirect .musangScore .rollingNumber span{font-size:inherit;line-height:inherit;color:inherit;letter-spacing:0}.musangDirect .musangScore{display:flex;flex-direction:column;align-items:center;justify-content:center;height:83px;padding:25px 10px 9px}.musangDirect .musangScore>span{position:absolute;top:0;color:#ead5a6;text-shadow:0 1px 2px #000}.musangDirect .musangScore>b{width:100%}.musangDirect .musangScore .rollingNumber{justify-content:center}
.phaseCrestWrap{position:absolute;inset:0;pointer-events:none;z-index:4}
.phaseShards{position:absolute;inset:0}
.musangDirect .phaseShards .phaseCrest{animation:crestShatter .85s ease-out both;filter:brightness(1.8)}
@keyframes crestShatter{0%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(var(--drift),58px) rotate(var(--spin));filter:brightness(.4)}}
@media(prefers-reduced-motion:reduce){.phaseShards{display:none}}

/* v7: filmed scenes, compact live leaderboard and strict cabinet bounds. */
.musangDirect .livingGate{background-image:linear-gradient(#08111a33,#08111acc),url('/art/musang/direct-v5/gate-0.webp')}
.musangDirect .sceneFilm{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.musangDirect .livingCommander,.musangDirect .livingFlag{display:none}
.musangDirect .sceneLight{background:linear-gradient(180deg,#06111a50 0%,transparent 20%,#070c1166 53%,#071018e8 87%)}
.musangDirect .resultScene .sceneLight{background:linear-gradient(180deg,#070c1599,#07111b77 31%,#081019b8 77%,#081019e8)}
.musangDirect .battleDebrief{background:#081019;overflow-y:auto;overflow-x:hidden}
.musangDirect .battleDebrief .livingScene{position:absolute;inset:0;height:100%;min-height:0;margin:0;z-index:0}
.musangDirect .debriefContent{position:relative;z-index:1;min-height:100%;box-sizing:border-box;padding:5cqw 6cqw 4cqw;gap:0;background:none}
.musangDirect .debriefHeading{height:23cqw;min-height:0;flex:0 0 auto}
.musangDirect .debriefHeading>span{font-size:2.8cqw}
.musangDirect .debriefHeading h2 img{height:18cqw;width:70%;object-fit:contain}
.musangDirect .debriefScore{margin:0;padding:0 0 1cqw;text-align:center}
.musangDirect .debriefScore>span{font-size:3cqw}
.musangDirect .debriefScore>strong{font-family:WarBrushFull,serif;font-size:clamp(42px,15cqw,65px);line-height:1.04;margin:1cqw 0 0;max-width:100%;overflow:hidden;white-space:nowrap;font-variant-numeric:tabular-nums}
.musangDirect .debriefScoreGauge{height:4px;margin:2cqw 3cqw;background:#192d36;border:1px solid #bd975a;box-shadow:0 0 8px #f0a23a44}
.musangDirect .debriefScoreGauge i{display:block;height:100%;background:linear-gradient(90deg,#b56a2a,#ffeda7);box-shadow:0 0 12px #ffd482;transition:width .08s linear}
.musangDirect .debriefScore p{font-size:3cqw;min-height:4cqw;margin:1cqw 0 0}
.debriefRace{position:relative;display:grid;grid-template-columns:1fr auto;align-items:center;min-height:22cqw;padding:1cqw 5cqw 1cqw;background:linear-gradient(100deg,#14202ce8,#50341fe3,#101923e8);border:1px solid #c39b54;box-shadow:inset 0 0 0 2px #101518,0 0 18px #b26e3044;color:#ebd1a4}
.debriefRace>span{font-size:3cqw;letter-spacing:.14em}
.debriefRace>strong{grid-column:2;grid-row:1/3;font:900 12cqw WarBrushFull,serif;color:#ffe5a1;text-shadow:0 0 15px #f6ad56;animation:rankStrike .22s ease-out}
.debriefRace>strong small{font-size:4cqw}
.debriefRace>strong.rankPending{font:4cqw WarTextFull,serif}
.debriefRace>p{grid-column:1;font-size:3cqw;line-height:1.2;margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.debriefRace>small{grid-column:1/3;font-size:2cqw}
@keyframes rankStrike{from{transform:scale(1.5);filter:brightness(2)}to{transform:scale(1);filter:none}}
.musangDirect .debriefFeats{padding:2cqw 0;margin:2cqw 0 0;min-width:0}
.musangDirect .debriefFeats span{min-width:0;font-size:2.9cqw;text-align:center}
.musangDirect .debriefFeats b{font-size:5cqw;margin-top:0;white-space:nowrap}
.musangDirect .debriefActions{position:relative;margin:0;padding:2cqw 0 0;background:none}
.musangDirect .debriefActions .primary{min-height:11cqw;padding:1cqw 5cqw;font-size:4.6cqw}
.musangDirect .debriefActions .quiet{margin:0;padding:1cqw;font-size:3.4cqw}
.debriefMore{margin:1cqw 0 0;color:#e8d4aa}
.debriefMore summary{cursor:pointer;text-align:center;padding:2cqw;font:3cqw WarTextFull,serif}
.debriefMore .warRanks{margin-top:2cqw}
.musangDirect .debriefSeal{top:17cqw;right:2cqw;width:17cqw;height:17cqw}
.musangDirect .directStart{overflow:hidden}
.musangDirect .directStart .musangIntro{z-index:2}
.lobbyPodium{width:100%;box-sizing:border-box;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1cqw;margin:1cqw 0 2cqw;filter:drop-shadow(0 3px 6px #000)}
.podiumPlace{display:grid;justify-items:center;align-content:center;min-width:0;padding:1.4cqw .5cqw;background:linear-gradient(#5a3a21de,#111c27e6);border:1px solid #9d7847;color:#f2ddb3}
.podiumPlace.place1{border-color:#ffd88c;box-shadow:inset 0 0 10px #fbb75945,0 0 13px #ffcd7355;transform:translateY(-2px)}
.podiumPlace>b{font:4.2cqw WarBrushFull,serif;color:#ffdf9d}
.podiumPlace .warPortrait{width:8cqw;height:8cqw;border-width:1px}
.podiumPlace>span:not(.warPortrait){font-size:2.9cqw;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.podiumPlace>strong{font:3.5cqw WarBrushFull,serif;max-width:100%;overflow:hidden}
.portraitPicker{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;max-height:180px;overflow:auto;margin:6px 0;padding:3px}
.portraitPicker button{padding:0;border:2px solid #78562d;background:#111820;aspect-ratio:1;overflow:hidden}
.portraitPicker button[aria-pressed=true]{border-color:#ffe49a;box-shadow:0 0 9px #ffc257}
.portraitPicker img{width:100%;height:100%;object-fit:cover}
.musangDirect .musangHud{box-sizing:border-box;left:0;right:0;width:auto;display:grid;grid-template-columns:minmax(0,40fr) minmax(0,60fr);gap:3px;padding:46px 16px 0}
.musangDirect .musangTime,.musangDirect .musangScore{box-sizing:border-box;width:auto;min-width:0;max-width:100%;overflow:hidden}
.musangDirect .musangScore{height:75px;padding:18px 8px 6px}
.musangDirect .musangScore>b,.musangDirect .musangScore .rollingNumber{font-size:clamp(24px,9cqw,42px);max-width:100%;white-space:nowrap}
.musangDirect .musangTime>strong{font-size:clamp(28px,10cqw,42px);white-space:nowrap}
.musangDirect .musangTime small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.musangDirect .phaseCrest{box-sizing:border-box;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.musangDirect .musangGauge>div{overflow:hidden}
.musangDirect .qiHead{z-index:3}
.musangDirect:fullscreen{width:100%;height:100dvh;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;padding:0;background:#070c13}
.musangDirect:fullscreen .musangCabinet{width:min(100vw,calc((100dvh - 60px)*.609375));max-width:none}
.musangDirect:fullscreen footer{display:none}
.musangDirect:fullscreen .musangTop{width:min(100vw,430px)}
@media(max-width:360px){.musangDirect .musangHud{padding:41px 12px 0}.musangDirect .musangScore{height:68px}.musangDirect .musangTime>strong{font-size:30px}.podiumPlace .warPortrait{width:7cqw;height:7cqw}}
@media(prefers-reduced-motion:reduce){.debriefRace>strong{animation:none}}

.musangDirect .musangTime .battleTimeTrack{box-sizing:border-box;width:100%;margin:1px 0 0}.musangDirect .musangTime{overflow:visible}.musangDirect .musangTime>strong,.musangDirect .musangTime small{display:block;max-width:100%;overflow:hidden;text-overflow:clip}
.musangDirect .resultScene.triumph .livingGate{background-image:url(/art/musang/direct-v5/gate-3.webp)}.musangDirect .resultScene:not(.triumph) .livingGate{background-image:url(/art/musang/direct-v5/defeat.webp)}.musangDirect:fullscreen{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
@media(max-width:360px){.musangDirect.inBattle .musangTop>div{display:none}.musangDirect.inBattle .musangTop{justify-content:center}.musangDirect.inBattle .musangTop nav{justify-content:center}}

/* v8 phone pass: all battle controls and information stay inside the frame. */
.musangDirect .musangCabinet{width:min(100%,430px,calc((100dvh - 24px)*.609375))}
.musangDirect .musangTop{position:absolute;z-index:26;top:6px;right:10px;left:auto;width:auto;min-height:0;height:29px;margin:0;padding:0;display:flex;justify-content:flex-end;pointer-events:none;background:none}
.musangDirect .musangTop nav{display:flex;gap:2px;pointer-events:auto}
.musangDirect .musangTop nav button{width:27px;height:27px;min-width:27px;padding:0;font:18px/1 WarTextFull,serif;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);touch-action:manipulation}
.musangDirect .musangTop .pauseGlyph{height:12px;width:10px;border-left-width:3px;border-right-width:3px}
.musangDirect .phaseCrest{left:2%;width:54%;height:37px;top:0;font-size:clamp(12px,3.9cqw,16px)}
.musangDirect .musangHud{padding:42px 27px 0;grid-template-columns:minmax(0,35fr) minmax(0,65fr);gap:6px}
.musangDirect .musangTime>span{font-size:clamp(10px,3.1cqw,12px);letter-spacing:0;white-space:nowrap}
.musangDirect .musangTime>strong{font-size:clamp(27px,8.3cqw,38px);line-height:1;overflow:visible}
.musangDirect .musangTime sup{font-size:clamp(10px,3cqw,13px)}
.musangDirect .musangTime small{font-size:clamp(9px,2.7cqw,11px);white-space:nowrap}
.musangDirect .musangScore{height:72px;min-width:0;overflow:hidden;padding:17px 9px 7px}
.musangDirect .musangScore>b,.musangDirect .musangScore .rollingNumber{font-size:clamp(27px,8.4cqw,39px);line-height:1;overflow:visible}
.musangDirect .battleTimeTrack{max-width:100%;margin:1px 0 0}
.musangDirect .debriefContent{padding-bottom:5cqw}
.musangDirect .debriefActions{display:grid;gap:6px;margin:3cqw 0 0;padding:0;position:relative}
.musangDirect .debriefActions .primary{min-height:44px}
.musangDirect .debriefActions .quiet{min-height:34px;margin:0;line-height:1.2;display:grid;place-items:center}
.musangDirect .debriefMore{position:relative;display:block;clear:both;margin:9px 0 0;border-top:1px solid #a8865455}
.musangDirect .debriefMore summary{display:block;min-height:28px;box-sizing:border-box;padding:7px 2px;line-height:1.1}
.musangDirect .lobbyPodium{align-items:stretch;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5cqw}
.musangDirect .lobbyPodium:has(.podiumPlace:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr));width:70%;margin-inline:auto}
.musangDirect .lobbyPodium:has(.podiumPlace:first-child:last-child){grid-template-columns:minmax(0,1fr);width:36%;margin-inline:auto}
.musangDirect .podiumPlace{min-height:27cqw;box-sizing:border-box;transform:none;align-content:center;gap:.7cqw;padding:2cqw 1cqw}
.musangDirect .podiumPlace.place1{background:linear-gradient(#6f4c23ea,#201811ec);border-color:#ffdd83;box-shadow:inset 0 0 11px #efc46477,0 0 14px #ffc75f66}
.musangDirect .podiumPlace.place2{background:linear-gradient(#536272ea,#15212dec);border-color:#cad9e3;box-shadow:inset 0 0 10px #b6d5df54}
.musangDirect .podiumPlace.place3{background:linear-gradient(#79523bea,#231711ec);border-color:#e5a77a;box-shadow:inset 0 0 10px #d8945e54}
.musangDirect .podiumPlace.place2>b{color:#dce8ec}.musangDirect .podiumPlace.place3>b{color:#ecc09c}
.raceRail{position:absolute;z-index:6;left:4px;top:16%;width:63px;height:190px;pointer-events:none;background:url('/art/musang/direct-v8/race.webp') center/100% 100% no-repeat;filter:drop-shadow(0 2px 5px #000b);color:#fff1c9;text-align:center}
.raceRailTitle{position:absolute;top:11px;left:0;right:0;font-size:9px;letter-spacing:.08em;text-shadow:0 2px 3px #000}
.raceRailMarkers{position:absolute;inset:26px 8px 24px 11px}
.raceRival,.raceMe{position:absolute;left:11px;display:flex;flex-direction:column;align-items:center;justify-content:center;width:45px;min-height:24px;padding:1px 2px;box-sizing:border-box;transform:translateY(-50%);border:1px solid #aa8b57;background:#111b25e9;box-shadow:0 1px 5px #000b;transition:top .28s ease-out,filter .28s ease-out}
.raceRival b,.raceMe b{font:14px/1 WarBrushFull,serif;color:#f8dfa5}.raceRival small,.raceMe small{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:9px/1.1 WarTextFull,serif;color:#d8c9a7}
.raceRival.overtaken{filter:brightness(.55);border-color:#756e62}
.raceMe{top:53%;z-index:5;background:#74381de9;border-color:#ffdc8d;box-shadow:0 0 9px #ffb24688}
.raceRailGap{position:absolute;bottom:10px;left:0;right:0;font:10px WarTextFull,serif;color:#ffe5a7;text-shadow:0 2px 3px #000}
@media(max-width:360px){.musangDirect .musangHud{padding:42px 22px 0;grid-template-columns:minmax(0,36fr) minmax(0,64fr)}.musangDirect .musangTime>strong{font-size:28px}.musangDirect .musangTop nav button{width:25px;height:25px;min-width:25px}.raceRail{width:55px;height:178px;left:3px}.raceRival,.raceMe{left:7px;width:41px}}
@media(prefers-reduced-motion:reduce){.raceRival,.raceMe{transition:none}}

/* v9: the carved score's ornament is outside its safe text area. */
.musangDirect .musangScore{padding:19px 24px 7px;justify-content:center}
.musangDirect .musangScore>b{display:block;width:100%;min-width:0;overflow:hidden}
.musangDirect .musangScore .rollingNumber{display:flex;width:100%;max-width:100%;overflow:hidden;justify-content:center;font-size:clamp(25px,7.4cqw,32px);font-variant-numeric:tabular-nums}
.musangDirect .musangScore.scoreDigits6 .rollingNumber{font-size:clamp(23px,6.6cqw,29px)}
.musangDirect .musangScore.scoreDigits7 .rollingNumber{font-size:clamp(21px,5.8cqw,25px)}
.musangDirect .musangScore.scoreDigits8 .rollingNumber{font-size:clamp(18px,5.1cqw,22px)}
.musangDirect .musangScore .numberSlot{flex:0 1 auto;min-width:0}
.musangDirect .musangScore .numberSlot>span{display:block;text-align:center}
@media(max-width:360px){.musangDirect .musangScore{padding-inline:20px}}

/* Four drivers share fixed race slots; their cards trade places when passed. */
.raceRail{left:4px;top:15%;width:72px;height:224px}
.raceRailMarkers{inset:27px 9px 25px 10px}
.raceRailSpine{position:absolute;top:5%;bottom:5%;left:50%;width:2px;background:linear-gradient(#c79d5b66,#ffdda588,#c79d5b66);box-shadow:0 0 7px #dfb36288}
.raceRival,.raceMe{left:1px;width:100%;min-height:29px;padding:2px 1px;transition:top .42s cubic-bezier(.18,.75,.25,1),filter .3s ease,box-shadow .3s ease}
.raceRival b,.raceMe b{font-size:13px}
.raceRival small,.raceMe small{font-size:9px;line-height:1}
.raceMe{box-shadow:0 0 12px #ffba5aaa,0 0 3px #fff0bc}
.raceRival.overtaken{filter:brightness(.62) saturate(.65)}
@media(max-width:360px){.raceRail{width:62px;height:207px;left:2px}.raceRival,.raceMe{left:1px;width:100%}}

/* The nearest scores stay beside the counting score, above the fold. */
.debriefRace{display:block;min-height:0;padding:2cqw 3cqw}
.debriefRaceHeading{display:flex;align-items:center;justify-content:space-between;min-height:10cqw}
.debriefRaceHeading>span{font-size:3cqw;letter-spacing:.1em}
.debriefRaceHeading>strong{font:900 9cqw WarBrushFull,serif;color:#ffe5a1;text-shadow:0 0 15px #f6ad56;animation:rankStrike .22s ease-out}
.debriefRaceHeading>strong small{font-size:3.5cqw}
.debriefRaceHeading>strong.rankPending{font:3.6cqw WarTextFull,serif}
.debriefRaceRows{display:grid;gap:1px;margin:1cqw 0;background:#bc935455;border:1px solid #a8865477;min-height:19cqw}
.debriefRaceRows>p{margin:auto;font-size:3cqw}
.debriefRaceRow{display:grid;grid-template-columns:8cqw minmax(0,1fr) auto;align-items:center;gap:2cqw;padding:.6cqw 2cqw;min-width:0;background:#101a23f2;color:#d8c49f;font-size:2.9cqw;transition:background .25s,transform .25s}
.debriefRaceRow b{font:4cqw WarBrushFull,serif}
.debriefRaceRow span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.debriefRaceRow strong{font:3.4cqw WarBrushFull,serif;white-space:nowrap}
.debriefRaceRow.mine{background:linear-gradient(90deg,#754019e9,#2e2119f2);color:#ffe7ad;box-shadow:inset 3px 0 #ffd177}
.debriefRaceRow.passed:not(.mine){animation:rivalOvertaken .65s cubic-bezier(.2,.7,.3,1) both}
.debriefRaceRow.mine{animation:rankSurge .65s cubic-bezier(.15,.8,.3,1) both}
.debriefOvertake{display:inline-block;color:#ffe3a0;font:900 3.3cqw WarBrushFull,serif;text-shadow:0 0 10px #ffaf36,0 2px 3px #210900;animation:overtakeCall .65s ease-out both}
@keyframes rankSurge{0%{transform:translate(25px,13px) scale(.93);filter:brightness(1.8);box-shadow:inset 3px 0 #ffd177,0 0 18px #ffdc89}65%{transform:translate(-5px,-4px) scale(1.035);filter:brightness(1.5)}100%{transform:none;filter:none}}
@keyframes rivalOvertaken{0%{transform:translateY(-14px);filter:brightness(1.3)}50%{transform:translate(7px,6px);filter:brightness(.5) saturate(.5)}100%{transform:none;filter:none}}
@keyframes overtakeCall{0%{transform:translateX(22px) scale(1.35);opacity:0}35%{opacity:1}100%{transform:none;opacity:1}}
.debriefRace>p{margin:1cqw 0 0;font-size:2.9cqw;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.debriefRace>small{font-size:2.4cqw}
.musangDirect .debriefActions{top:auto;bottom:auto;flex-shrink:0}
.musangDirect .debriefMore{flex-shrink:0}
.musangDirect .debriefMore{margin-top:10px;border-top:0}
.musangDirect .debriefMore summary{position:relative;display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 30px 8px 20px;border:1px solid #d2a65e;border-radius:3px;background:linear-gradient(180deg,#503020ee 0%,#211b1af2 53%,#382618ee 100%);box-shadow:inset 0 0 0 2px #130f0ac9,inset 0 1px 0 #ffe7ac66,0 3px 12px #000a;color:#ffe6ae;font:900 clamp(14px,3.7cqw,18px) WarBrushFull,serif;letter-spacing:.045em;text-shadow:0 2px 3px #080503,0 0 7px #e7a34caa;list-style:none}
.musangDirect .debriefMore summary::-webkit-details-marker{display:none}
.musangDirect .debriefMore summary::before{content:'卷';position:absolute;left:12px;color:#d6a965;font-size:17px}
.musangDirect .debriefMore summary::after{content:'⌄';position:absolute;right:14px;color:#ffe9ba;font:24px Georgia,serif;line-height:1;transition:transform .2s}
.musangDirect .debriefMore[open] summary::after{transform:rotate(180deg)}
.musangDirect .debriefMore summary:focus-visible{outline:2px solid #fff4c3;outline-offset:3px}
@media(prefers-reduced-motion:reduce){.debriefRaceHeading>strong,.debriefRaceRow.passed:not(.mine),.debriefRaceRow.mine,.debriefOvertake{animation:none}}

/* The live chase number is a compact carved plaque, readable over every battlefield. */
.raceRailMarkers{bottom:44px}
.raceRailGap{left:3px;right:3px;bottom:7px;min-height:34px;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:3px 2px;border:1px solid #e2b365;border-radius:2px;background:linear-gradient(180deg,#54351fef,#161b22f5 62%,#2b221bed);box-shadow:inset 0 1px 0 #ffe1a066,inset 0 0 0 2px #130e0ac9,0 2px 7px #000b;white-space:nowrap;text-shadow:0 1px 2px #090707}
.raceRailGap>span{color:#e0c18b;font:9px/1 WarTextFull,serif;letter-spacing:-.03em}
.raceRailGap>strong{display:block;color:#fff0bd;font:900 clamp(11px,3.2cqw,13px)/1 WarBrushFull,serif;font-variant-numeric:tabular-nums;text-shadow:0 0 7px #ffb45d,0 1px 2px #090707;animation:raceGapPulse .28s ease-out}
.raceRailGap>strong small{font:8px WarTextFull,serif;margin-left:1px;color:#e8c894}
.raceRailGap.compact>strong{font-size:10px}
@keyframes raceGapPulse{from{transform:scale(1.17);filter:brightness(1.65)}to{transform:scale(1);filter:none}}
@media(max-width:360px){.raceRailMarkers{bottom:44px}.raceRailGap{left:2px;right:2px;bottom:5px}.raceRailGap>span{font-size:8px}.raceRailGap>strong{font-size:11px}.raceRailGap.compact>strong{font-size:9px}}
@media(prefers-reduced-motion:reduce){.raceRailGap>strong{animation:none}}

/* Exact score points travel along the track; labels separate only when they would overlap. */
.raceRailSpine{left:-5px;top:9%;bottom:9%;width:3px;background:linear-gradient(#bf9a5a77,#ffe2a2bb,#9b683c77)}
.raceScoreMark{position:absolute;z-index:6;left:-9px;width:9px;height:9px;box-sizing:border-box;transform:translateY(-50%) rotate(45deg);border:1px solid #e6d3aa;background:#75848b;box-shadow:0 0 5px #e6d3aa99;transition:top .55s cubic-bezier(.16,.74,.28,1)}
.raceScoreMark.mine{z-index:7;left:-11px;width:13px;height:13px;border:2px solid #ffefd1;background:#ffad39;box-shadow:0 0 10px #ffe28c,0 0 3px #fff;transition:top .55s cubic-bezier(.16,.74,.28,1)}
.raceMe{transition:top .55s cubic-bezier(.16,.74,.28,1),filter .3s ease,box-shadow .3s ease}
.raceRival.overtaken{transform:translate(4px,-50%) scale(.92);opacity:.7;transition:top .55s cubic-bezier(.16,.74,.28,1),filter .35s,transform .35s,opacity .35s}
@media(prefers-reduced-motion:reduce){.raceScoreMark,.raceScoreMark.mine,.raceMe,.raceRival.overtaken{transition:none}}
.raceRail{height:266px}
.raceRailMarkers{bottom:44px;overflow:visible}
.raceRival,.raceMe{min-height:23px;padding:1px;white-space:nowrap}
.raceRival b,.raceMe b{font-size:12px}
.raceRival small,.raceMe small{font-size:8px}
@media(max-width:360px){.raceRail{height:246px}}
.musangDirect:fullscreen .musangTop{width:auto;right:8px}
.musangDirect.inBattle .phaseCrest{width:min(54%,calc(100% - 158px))}

/* Rival information stays beside the fight and yields when a left-side threat closes in. */
.raceRail{transition:opacity .18s ease}
.raceRail.raceQuiet{opacity:.38}
.raceRail.raceObscured{opacity:.16}
.raceRail .raceTarget{filter:brightness(1.18);box-shadow:0 0 8px #f0ba6777}
.raceRail .raceClose{filter:brightness(1.4);box-shadow:0 0 12px #ffcf86bb;animation:raceTargetPulse .65s ease-in-out infinite alternate}
.raceRailGap.near{border-color:#f1bd6e;box-shadow:0 0 10px #e8a24988,inset 0 0 0 2px #130e0ac9}
.raceRailGap.veryNear{background:linear-gradient(#704422f2,#2e1c19f4);box-shadow:0 0 13px #ffbf6baa,inset 0 0 0 2px #130e0ac9}
.raceOvertake{position:absolute;z-index:9;top:-16px;left:0;width:100%;padding:2px 1px;background:#4a2118ed;border:1px solid #efbf73;color:#fff1bb;font:900 10px/1.05 WarBrushFull,serif;text-shadow:0 1px 2px #120604;animation:raceOvertake .9s ease-out both}
.raceOvertake small{display:block;font:8px/1.1 WarTextFull,serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@keyframes raceTargetPulse{to{filter:brightness(1.7);box-shadow:0 0 14px #ffdf9ddd}}
@keyframes raceOvertake{0%{opacity:0;transform:translateY(9px) scale(.92)}25%{opacity:1;transform:translateY(-2px) scale(1.08)}100%{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.raceRail .raceClose,.raceOvertake{animation:none}}
.debriefMilestones{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:0 0 2cqw;border:1px solid #b98e52;background:#a67b3b55;text-align:center}
.debriefMilestones span{min-width:0;padding:1.2cqw .5cqw;background:#101a23ee;color:#d9c4a0;font:clamp(9px,2.6cqw,11px) WarTextFull,serif}
.debriefMilestones b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#ffe3a6;font:clamp(13px,4cqw,17px) WarBrushFull,serif}
.debriefNext{display:flex;justify-content:space-between;align-items:baseline;gap:4px;white-space:normal!important}
.debriefNext span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.debriefNext b{flex:none;color:#ffe4a5;font:clamp(10px,3cqw,13px) WarBrushFull,serif}
.debriefPassed{color:#f7d296;font:clamp(10px,2.9cqw,12px) WarTextFull,serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.musangDirect .musangDialog .forfeitBattle{display:block;width:100%;margin-top:9px;min-height:40px;color:#e8c7ad;border-color:#9a6950;background:linear-gradient(#35231fcc,#171c23f5)}
@media(max-width:360px){.musangDirect.inBattle .musangTop{width:auto;right:6px;justify-content:flex-end}.musangDirect.inBattle .musangTop nav{justify-content:flex-end}}
.musangDirect .tutorialGuide{position:absolute;z-index:5;left:6%;right:6%;top:24%;padding:12px 16px 10px;color:#ffebbd;text-align:left;background:linear-gradient(135deg,#111d27ed,#241b16ed);border:1px solid #dbad60;box-shadow:0 0 0 2px #140e0bd9,0 7px 28px #000b, inset 0 0 18px #d59b2a19;pointer-events:none}
.musangDirect .tutorialGuide::before,.musangDirect .tutorialGuide::after{content:'◆';position:absolute;top:-9px;color:#eac27e;font-size:15px;text-shadow:0 0 9px #eda943}.musangDirect .tutorialGuide::before{left:8px}.musangDirect .tutorialGuide::after{right:8px}
.musangDirect .tutorialGuide.archer,.musangDirect .tutorialGuide.marksman,.musangDirect .tutorialGuide.musou{top:auto;bottom:16%}
.musangDirect .tutorialLinks{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin-top:4px}
.musangDirect .tutorialReplay{display:block;width:auto;margin:0;padding:2px 5px;min-height:0;border:0;background:none;box-shadow:none;color:#e8c98f;text-decoration:underline;font-size:clamp(10px,2.8cqw,12px)}
.musangDirect .tutorialGuide.brute{top:17%;border-color:#f2a961;box-shadow:0 0 0 2px #140e0bd9,0 0 26px #f3754070,inset 0 0 20px #e5823729}
.musangDirect .tutorialHeading{display:flex;justify-content:space-between;gap:8px;color:#cfbd99;font-size:clamp(10px,2.7cqw,13px)}.musangDirect .tutorialGuide strong{display:block;margin:3px 0;font-size:clamp(16px,4.6cqw,23px);color:#ffe7aa;text-shadow:0 0 9px #efaa4d88}.musangDirect .tutorialGuide p{margin:3px 0;font-size:clamp(11px,3.1cqw,14px);line-height:1.45}.musangDirect .tutorialGuide em{display:block;margin-top:4px;font-size:clamp(10px,2.8cqw,12px);font-style:normal;color:#ffbb80}.musangDirect .tutorialGuide button{display:block;margin:6px 0 0 auto;padding:2px 4px;color:#cdbb98;background:none;border:0;box-shadow:none;font-size:clamp(10px,2.7cqw,12px);text-decoration:underline;pointer-events:auto}
.musangDirect .tutorialComplete{background:linear-gradient(#07111a88,#090d15e8),url('/art/musang/direct-v3/result.webp') center/cover;backdrop-filter:none}.musangDirect .tutorialCompleteCard{position:relative;z-index:2;width:100%;padding:24px 20px;background:linear-gradient(#13202af0,#100e13f2);border:2px solid #d0a563;box-shadow:0 0 0 4px #140c0a,0 15px 38px #000a;color:#f9e0ad}.musangDirect .tutorialCompleteCard>span{font-size:12px;letter-spacing:.25em;color:#d6b886}.musangDirect .tutorialCompleteCard h2{margin:10px 0;font-size:clamp(27px,8cqw,40px)}.musangDirect .tutorialCompleteCard p{line-height:1.6;font-size:clamp(12px,3.5cqw,15px)}.musangDirect .tutorialCompleteCard .primary{margin-top:14px}
@media(max-height:650px){.musangDirect .tutorialGuide{top:22%;padding:7px 12px}.musangDirect .tutorialGuide p{line-height:1.25}}

/* Test invite and home-screen install pass. */
.warInvite{position:relative;box-sizing:border-box;width:100%;margin:2cqw 0;padding:2.1cqw 2.4cqw;background:linear-gradient(110deg,#111a21e8,#442b1ae8 52%,#101821e8);border:1px solid #c99a53;box-shadow:inset 0 0 0 2px #130e0ad4,0 6px 18px #0008;color:#f6ddb0;text-align:center;overflow:hidden}
.warInvite::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,#ffe2a51f,transparent);transform:translateX(-120%);animation:inviteGlint 5.2s ease-in-out infinite;pointer-events:none}
.warInvite>span{display:block;color:#d7b77b;font-size:clamp(10px,2.8cqw,12px);letter-spacing:.22em}
.warInvite>strong{display:block;margin:.5cqw 0 .8cqw;font:900 clamp(16px,4.6cqw,21px) WarBrushFull,serif;color:#ffe6a8;text-shadow:0 0 10px #efae53aa,0 2px 3px #050302}
.warInvite code{display:block;max-width:100%;box-sizing:border-box;margin:0 auto 1.4cqw;padding:.8cqw 1.3cqw;border:1px solid #8b6f41;background:#09121ad9;color:#f6d89b;font:clamp(10px,2.7cqw,12px)/1.2 WarTextFull,serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.warInvite div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1cqw}
.warInvite button{min-width:0;min-height:8.5cqw;padding:.8cqw .5cqw;border:1px solid #d2a863;background:linear-gradient(#54341e,#171d22);box-shadow:inset 0 0 0 1px #100b08;color:#ffe8b3;font:900 clamp(11px,3.1cqw,14px) WarTextFull,serif;white-space:nowrap}
.warInvite button:active{filter:brightness(1.35);transform:translateY(1px)}
.installOverlay{background:linear-gradient(#05080ba8,#071019ed),url('/art/musang/direct-v5/gate-1.webp') center/cover}
.installCard{position:relative;z-index:2;width:min(92%,380px);box-sizing:border-box;padding:24px 20px;background:linear-gradient(#14232ff2,#101016f6);border:2px solid #d0a563;box-shadow:0 0 0 4px #130b08,0 16px 40px #000b;color:#f6ddb0;text-align:left}
.installCard>span{display:block;color:#d6b886;font-size:12px;letter-spacing:.28em;text-align:center}
.installCard h2{margin:10px 0 14px;text-align:center;font:900 clamp(28px,8cqw,40px) WarBrushFull,serif;color:#ffe7aa;text-shadow:0 0 12px #d99c42}
.installCard p{margin:11px 0;line-height:1.55;font-size:clamp(13px,3.4cqw,15px)}
.installCard b{color:#fff0c3}
.installCard code{display:block;margin:14px 0;padding:9px;border:1px solid #866a3e;background:#081019;color:#f2d699;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.installCard .primary{width:100%;margin-top:8px}
@keyframes inviteGlint{0%,48%{transform:translateX(-120%)}68%,100%{transform:translateX(120%)}}
@media(max-height:720px){.warInvite{margin:1cqw 0;padding:1.4cqw 2cqw}.warInvite>strong{font-size:clamp(14px,4cqw,18px)}.warInvite code{display:none}.warInvite button{min-height:7.6cqw}}
@media(prefers-reduced-motion:reduce){.warInvite::before{animation:none}}
.musangDirect:fullscreen.inMenu:has(.directStart) .musangCabinet{width:min(100vw,430px);height:100%;max-height:none;aspect-ratio:auto}
.accountDeparture{margin-top:1rem;border-top:1px solid #77583f;padding-top:.75rem;text-align:center}
.accountDeparture p{color:#efd7b5;line-height:1.5;font-size:.88rem}
.accountDeparture label{display:block;margin:.7rem 0;color:#f4dfbd}
.accountDeparture input{display:block;width:100%;box-sizing:border-box;margin-top:.3rem}
.departureActions{display:flex;gap:.5rem;justify-content:center}
.departureOpen{background:transparent;border:0;color:#c9a789;text-decoration:underline;cursor:pointer}
.departureConfirm{background:#70342d;color:#fff0db;border:1px solid #d5a781;border-radius:.35rem;padding:.55rem .8rem;cursor:pointer}
.musangDirect .podiumPlace>span:not(.warPortrait),.musangDirect .podiumPlace>strong{line-height:1.2}
/* The portrait browser viewport is taller than the battle's fixed 390:640 frame. */
@media (max-width:600px) and (orientation:portrait){
  .musangDirect.inMenu:not(:fullscreen):has(.directStart) .musangCabinet{
    width:min(100%,430px);
    height:calc(100dvh - 42px - env(safe-area-inset-bottom));
    max-height:none;
    aspect-ratio:auto;
  }
}

/* During the heat lesson, keep its persistent combat banner unobstructed. */
.musangDirect .tutorialGuide.frenzy.heatActive{top:18%;padding:5px 12px;background:#231016d9}
.musangDirect .tutorialGuide.frenzy.heatActive strong,.musangDirect .tutorialGuide.frenzy.heatActive .tutorialHeading,.musangDirect .tutorialGuide.frenzy.heatActive button{display:none}
.musangDirect button{transition:scale .09s ease-out}
.warRunHistory{margin:12px 0;padding:12px;border:1px solid #8d7147;background:#101a23e8;color:#ead5ac;text-align:left}.warRunHistory>strong{display:block;font-size:17px}.warRunHistory>small{display:block;line-height:1.4}.warRunHistory ol{list-style:none;margin:8px 0;padding:0;max-height:240px;overflow:auto}.warRunHistory li{display:grid;grid-template-columns:1fr auto;gap:2px 8px;padding:7px 2px;border-top:1px solid #8d714755}.warRunHistory li span{font-size:12px}.warRunHistory li b{color:#ffe4a2}.warRunHistory li small{grid-column:1/-1;line-height:1.4}
.warAdminRecords{margin:12px 0;padding:10px;border:1px solid #b28d53;background:#0d1820ed;text-align:left}.warAdminRecords h3{margin:0 0 4px;color:#ffe3a4}.warAdminRecords>small{display:block;line-height:1.4}.warAdminRecords>ol{list-style:none;margin:8px 0;padding:0;max-height:240px;overflow:auto}.warAdminRecords>ol>li{display:flex;gap:6px;align-items:stretch;padding:4px 0;border-top:1px solid #8d714755}.warAdminRecords>ol>li>.secondary{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;padding:6px 8px}.warAdminRecords>ol>li span{font-size:11px;overflow-wrap:anywhere}.warAdminRecords .warRunHistory{margin-bottom:0}
.musangDirect button:not(:disabled):active{scale:.975;filter:brightness(1.08)}
.musangDirect button[data-ui-sound="battle"]:not(:disabled):active{scale:.965;filter:brightness(1.17) drop-shadow(0 0 4px #e7b66588)}
.musangDirect .musangSkill:not(:disabled):active{scale:.97}
@media(prefers-reduced-motion:reduce){.musangDirect button{transition:none}}

/* Public demo: one sortie action, with records separate from account setup. */
.musangDirect .directStart:has(.publicLobby){align-items:center;padding:52px 6cqw 18px;overflow-y:auto}
.musangDirect .publicLobby{display:flex;flex-direction:column;gap:12px;max-width:360px;margin:auto;text-align:center}
.musangDirect .publicLobby .musangTitle{height:clamp(78px,24cqw,110px);width:100%;object-fit:contain}
.musangDirect .publicLobby .lobbyTagline{margin:-6px 0 4px;font:13px WarTextFull,serif;color:#ead6b6}
.lobbyLeaders{width:100%;min-width:0}
.lobbyLeaders h3{display:flex;align-items:center;justify-content:center;gap:9px;margin:0 0 8px;color:#f2d49a;font-size:14px;letter-spacing:.12em}
.lobbyLeaders h3 span{font:11px WarTextFull,serif;color:#bca88b;letter-spacing:0}
.musangDirect .publicLobby .lobbyPodium{margin:0;gap:6px}
.musangDirect .publicLobby .podiumPlace{min-height:100px;padding:6px 3px;gap:3px;border-color:#8c70434d;background:linear-gradient(#324345b3,#101c27e6)}
.musangDirect .publicLobby .podiumPlace.place1{border-color:#dab775a8}
.musangDirect .publicLobby .podiumPlace:only-child{grid-column:2}
.musangDirect .publicLobby .lobbyEmpty{margin:0;padding:24px 8px;border-block:1px solid #ba955938;background:#0c1924b3;font-size:13px;color:#c4b99f}
.lobbyPlayer{padding:10px 12px;background:linear-gradient(115deg,#20333bea,#0d1725e8);border:1px solid #ae8b4d60;border-radius:3px;box-shadow:0 8px 24px #0003}
.musangDirect .lobbyPlayer .commanderProfile{justify-content:flex-start;background:none;padding:0;gap:12px;text-align:left;min-height:48px}
.musangDirect .lobbyPlayer .commanderProfile>span:not(.warPortrait){min-width:0;overflow-wrap:anywhere;font-size:19px;line-height:1.2}
.musangDirect .lobbyPlayer .commanderProfile small{margin-top:5px;color:#c1b7a3;font-size:11px}
.lobbyBest{display:grid;grid-template-columns:1fr auto;align-items:center;margin-top:10px;padding-top:8px;border-top:1px solid #b8965b35;text-align:left;gap:0 10px}
.lobbyBest>span{font-size:13px;color:#dacaad}.lobbyBest>strong{grid-column:2;grid-row:1/3;font:30px WarBrushFull,serif;color:#ffe3a2;font-variant-numeric:tabular-nums}
.lobbyBest>small{font-size:10px;color:#a5aaa4}
.musangDirect .publicLobby .lobbySortie{margin:0;min-height:62px;font-size:25px;width:100%}
.musangDirect .publicLobby .hallButton{margin:0;min-height:40px;padding:4px;background:none;border:0;color:#c9b998;font-size:13px}
.musangDirect.inMenu .musangTop nav button{min-width:36px;min-height:36px}
.musangDirect .debriefBest{display:flex;justify-content:center;align-items:center;gap:16px;padding:12px 8px;margin:8px 0;border-block:1px solid #c69e555c;background:linear-gradient(90deg,transparent,#1a303ce0,transparent)}
.debriefBest>span{font-size:15px;color:#e3cfab}.debriefBest>strong{font:clamp(28px,10cqw,42px) WarBrushFull,serif;color:#ffe3a2;font-variant-numeric:tabular-nums}
.musangDirect .guestRecordNote{margin:5px 0 10px;text-align:center;font-size:11px;line-height:1.5;color:#bcb4a3}
.musangDirect .debriefActions .primary{min-height:58px;font-size:23px}
.musangDirect .debriefActions .quiet{min-height:40px;font-size:14px}
.musangDirect .debriefMore{width:100%}
.musangDirect .debriefMore summary{background:#10212b99;border:1px solid #a78c5545;box-shadow:none;color:#c8baa0;min-height:40px;font-size:12px}
@media(max-height:680px){.musangDirect .publicLobby{gap:7px}.musangDirect .publicLobby .musangTitle{height:72px}.musangDirect .publicLobby .podiumPlace{min-height:82px}.musangDirect .publicLobby .lobbyEmpty{padding:14px 8px}.musangDirect .publicLobby .lobbySortie{min-height:54px}.lobbyPlayer{padding:7px 10px}}
