:root {
      --bg:#090b14; --panel:#111528; --panel2:#171c33; --text:#f4f6ff; --muted:#a9b0cf;
      --a:#44d1ff; --s:#8b7cff; --k:#ff5ea8; --l:#ffb84a; --ok:#5ef2a0; --bad:#ff647c;
      --beat-accent:#7e86ff; --master-glow:rgba(126,134,255,.32);
    }
    * { box-sizing: border-box; }
    html,body { margin:0; min-height:100%; background:radial-gradient(circle at 50% -20%,#21285a 0,#0b0e1b 35%,#070910 75%); color:var(--text); font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif; }
    body { display:flex; justify-content:center; padding:8px; overflow:hidden; position:relative; isolation:isolate; }
    body::before { content:""; position:fixed; inset:-20%; z-index:-2; pointer-events:none; opacity:.42; background:
      radial-gradient(circle at 25% 30%,rgba(69,93,255,.32),transparent 25%),
      radial-gradient(circle at 75% 35%,rgba(255,61,164,.22),transparent 24%),
      radial-gradient(circle at 50% 78%,rgba(52,224,255,.18),transparent 28%);
      filter:blur(28px); animation:bgDrift 12s ease-in-out infinite alternate; transform:scale(1.05); }
    body::after { content:""; position:fixed; inset:0; z-index:-1; pointer-events:none; opacity:.20; background:repeating-linear-gradient(120deg,transparent 0 50px,rgba(255,255,255,.018) 51px 52px); animation:bgSlide 14s linear infinite; }
    @keyframes bgDrift { from{transform:translate3d(-2%,-1%,0) scale(1.04) rotate(-2deg)} to{transform:translate3d(3%,2%,0) scale(1.12) rotate(3deg)} }
    @keyframes bgSlide { to{transform:translate3d(70px,0,0)} }
    body.combo-hot .card { border-color:var(--beat-accent); box-shadow:0 18px 55px rgba(0,0,0,.35),0 0 24px var(--master-glow); }
    body.combo-hot .pill { border-color:var(--beat-accent); transition:border-color .08s,box-shadow .08s,transform .08s,background .08s; }
    body.combo-hot.beat-flash .pill { box-shadow:0 0 18px var(--beat-accent); background:rgba(255,255,255,.11); transform:translateY(-1px); }
    body.star-hot::before { opacity:.68; filter:blur(22px) saturate(1.45); }
    .app { width:calc(100vw - 16px); height:calc(100vh - 16px); display:grid; grid-template-columns:minmax(0,1fr) minmax(310px,350px); gap:12px; align-items:stretch; transition:grid-template-columns .22s ease,gap .22s ease; }
    .app.controls-collapsed { grid-template-columns:minmax(0,1fr) 0; gap:0; }
    .app.controls-collapsed .sidebar { opacity:0; transform:translateX(28px); pointer-events:none; padding-left:0; padding-right:0; border-width:0; }
    .game-card { min-width:0; height:100%; display:flex; flex-direction:column; }
    .game-actions { display:flex; gap:7px; align-items:center; flex-wrap:wrap; }
    .game-actions button { padding:8px 10px; white-space:nowrap; }
    .controls-toggle.active { background:#465077; }
    .beat-zoom-indicator { position:absolute; inset:0; pointer-events:none; z-index:6; border-radius:20px; opacity:0; box-shadow:inset 0 0 80px rgba(126,134,255,.16),0 0 32px rgba(126,134,255,.18); transition:opacity .12s ease; }
    .game-card.beat-camera-pulse .beat-zoom-indicator { opacity:1; }
    .pause-dialog { width:min(620px,94vw); }
    .pause-dialog h2 { font-size:clamp(30px,6vw,54px); margin-bottom:4px; }
    .pause-audio-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:16px 0; }
    .pause-audio-grid label { padding:10px; border-radius:12px; background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.07); }
    .pause-audio-grid output { float:right; font-weight:900; color:#fff; }
    .pause-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
    .pause-actions .resume-wide { grid-column:1/-1; padding:14px; font-size:16px; }
    .song-start-vignette { position:absolute; inset:0; z-index:7; pointer-events:none; border-radius:20px; opacity:0; background:radial-gradient(circle at 50% 76%,rgba(126,134,255,.24),transparent 34%),linear-gradient(180deg,rgba(2,4,12,.08),rgba(2,4,12,.5)); }
    .game-card.song-intro .song-start-vignette { animation:songIntroGlow .9s ease-out both; }
    @keyframes songIntroGlow { 0%{opacity:.9;filter:brightness(1.5)} 55%{opacity:.34} 100%{opacity:0} }

    .card { background:linear-gradient(180deg,rgba(23,28,51,.95),rgba(12,15,29,.96)); border:1px solid rgba(255,255,255,.08); box-shadow:0 18px 55px rgba(0,0,0,.35); border-radius:20px; }
    .game-card { padding:10px; position:relative; overflow:hidden; }
    .topbar { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 10px; align-items:center; padding:3px 3px 8px; position:relative; z-index:8; flex:0 0 auto; }
    .brand h1 { font-size:18px; margin:0; letter-spacing:.4px; }
    .brand p { margin:2px 0 0; font-size:12px; color:var(--muted); }
    .stats { display:flex; gap:7px; flex-wrap:wrap; justify-content:center; flex:1 1 100%; }
    .pill { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.08); padding:7px 10px; border-radius:999px; font-size:12px; color:#dce1ff; }
    #stage { width:100%; height:auto; min-height:0; flex:1 1 auto; display:block; border-radius:16px; background:#070913; border:1px solid rgba(255,255,255,.08); position:relative; z-index:5; }
    .hud-message { position:absolute; left:50%; top:18%; transform:translate(-50%,-50%); pointer-events:none; text-align:center; font-weight:900; font-size:clamp(20px,4vw,44px); text-shadow:0 4px 18px rgba(0,0,0,.7); opacity:0; transition:opacity .12s; }
    .hud-message.show { opacity:1; }
    .sidebar { padding:14px; min-width:0; height:100%; overflow-y:auto; overflow-x:hidden; transition:opacity .18s ease,transform .22s ease,padding .22s ease,border-width .22s ease; }
    .sidebar h2 { margin:0 0 12px; font-size:18px; }
    .section { padding:14px 0; border-top:1px solid rgba(255,255,255,.08); }
    .section:first-of-type { border-top:0; padding-top:0; }
    label { display:block; font-size:12px; color:var(--muted); margin-bottom:7px; }
    input[type=file] { width:100%; font-size:12px; color:#dfe4ff; background:rgba(255,255,255,.04); border:1px dashed rgba(255,255,255,.18); padding:10px; border-radius:12px; }
    button { appearance:none; border:0; border-radius:12px; padding:10px 12px; font-weight:800; cursor:pointer; color:white; background:#5f66ff; transition:transform .08s,filter .15s,opacity .15s; }
    button:hover { filter:brightness(1.08); }
    button:active { transform:translateY(1px) scale(.99); }
    button:disabled { opacity:.45; cursor:not-allowed; }
    .secondary { background:#28304d; }
    .danger { background:#8d3049; }
    .row { display:flex; gap:8px; }
    .row > * { flex:1; }
    .metric-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
    .metric { padding:10px; border-radius:12px; background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.06); }
    .metric .k { font-size:11px; color:var(--muted); }
    .metric .v { font-size:19px; font-weight:900; margin-top:2px; }
    .keys { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:8px; }
    .key { text-align:center; padding:10px 0; border-radius:10px; font-weight:900; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.05); }
    .key:nth-child(1){color:var(--a)} .key:nth-child(2){color:var(--s)} .key:nth-child(3){color:var(--k)} .key:nth-child(4){color:var(--l)}
    .range-row { display:grid; grid-template-columns:1fr 75px; gap:8px; align-items:center; }
    input[type=range] { width:100%; }
    input[type=number], select { width:100%; background:#0c1020; color:white; border:1px solid rgba(255,255,255,.12); border-radius:10px; padding:8px; }
    .status { font-size:12px; line-height:1.45; color:#c5cbed; min-height:36px; }
    .tip { font-size:11px; color:#8f98bd; line-height:1.5; }
    .progress { height:8px; background:rgba(255,255,255,.08); border-radius:999px; overflow:hidden; margin-top:8px; }
    .progress > div { height:100%; width:0%; background:linear-gradient(90deg,#5f66ff,#ff5ea8); transition:width .1s; }
    .star-wrap { margin-top:10px; padding:10px; border-radius:12px; background:rgba(80,220,255,.055); border:1px solid rgba(93,224,255,.18); }
    .star-row { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:12px; margin-bottom:7px; }
    .star-meter { height:12px; border-radius:999px; overflow:hidden; background:rgba(255,255,255,.075); border:1px solid rgba(255,255,255,.09); }
    .star-meter > div { height:100%; width:0%; background:linear-gradient(90deg,#5ae7ff,#b7f7ff,#72b7ff); box-shadow:0 0 18px rgba(90,231,255,.65); transition:width .08s linear; }
    .star-meter.active { box-shadow:0 0 18px rgba(90,231,255,.5), inset 0 0 14px rgba(90,231,255,.2); }
    .online-box { display:grid; gap:8px; }
    .online-box input[type=text] { width:100%; background:#0c1020; color:white; border:1px solid rgba(255,255,255,.12); border-radius:10px; padding:9px; }
    .tiny { font-size:10.5px; color:#818bad; line-height:1.45; }
    .chart-results { display:grid; gap:7px; max-height:260px; overflow:auto; }
    .chart-result { padding:9px; border-radius:10px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.07); }
    .chart-result b { display:block; font-size:12px; }
    .chart-result span { display:block; font-size:10.5px; color:var(--muted); margin:2px 0 7px; }
    .chart-result button { padding:6px 8px; font-size:10.5px; width:100%; }
    .chart-actions { display:grid; grid-template-columns:1fr auto; gap:6px; }
    .chart-actions .view-btn { width:auto; min-width:42px; }
    .value-inline { float:right; color:#dce4ff; font-weight:800; }
    .download-progress { height:5px; margin-top:6px; background:rgba(255,255,255,.07); border-radius:999px; overflow:hidden; display:none; }
    .download-progress > i { display:block; height:100%; width:0; background:linear-gradient(90deg,#4eeaff,#8f7bff,#ff5ea8); }

    .main-menu { position:fixed; inset:0; z-index:50; overflow:auto; padding:28px; background:radial-gradient(circle at 50% -10%,rgba(78,91,205,.35),transparent 35%),rgba(5,7,14,.96); backdrop-filter:blur(18px); transition:opacity .2s,visibility .2s; }
    .main-menu.hidden { opacity:0; visibility:hidden; pointer-events:none; }
    .menu-shell { width:min(1120px,100%); margin:0 auto; }
    .menu-head { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:18px; }
    .menu-head h1 { margin:0; font-size:clamp(34px,7vw,76px); line-height:.9; letter-spacing:-3px; }
    .menu-head p { margin:10px 0 0; color:var(--muted); }
    .menu-toolbar { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
    .menu-card { background:linear-gradient(180deg,rgba(23,28,51,.92),rgba(10,13,25,.95)); border:1px solid rgba(255,255,255,.1); border-radius:20px; padding:16px; box-shadow:0 22px 70px rgba(0,0,0,.35); }
    .source-tabs { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px; }
    .source-tabs button { background:#222946; }
    .source-tabs button.active { background:#5f66ff; box-shadow:0 0 20px rgba(95,102,255,.28); }
    .menu-search-row { display:grid; grid-template-columns:1fr auto; gap:8px; }
    .menu-search-row input { width:100%; padding:13px 14px; border-radius:13px; border:1px solid rgba(255,255,255,.12); color:white; background:#0b0f20; font-size:15px; outline:none; }
    .menu-search-row input:focus { border-color:#7e86ff; box-shadow:0 0 0 3px rgba(126,134,255,.12); }
    .song-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:12px; margin-top:14px; }
    .song-card { min-height:116px; display:grid; grid-template-columns:88px 1fr; gap:11px; padding:10px; border:1px solid rgba(255,255,255,.08); border-radius:16px; background:rgba(255,255,255,.035); transition:transform .12s,border-color .12s,background .12s,box-shadow .12s; position:relative; overflow:hidden; }
    .song-card:hover { transform:translateY(-2px); border-color:rgba(126,134,255,.72); background:rgba(126,134,255,.08); box-shadow:0 12px 30px rgba(0,0,0,.25); }
    .song-cover { width:88px; height:88px; border-radius:12px; object-fit:cover; background:linear-gradient(135deg,#333b78,#a23c7f); border:1px solid rgba(255,255,255,.1); }
    .song-cover.fallback { display:grid; place-items:center; font-size:28px; font-weight:1000; color:white; }
    .song-info { min-width:0; }
    .song-info h3 { margin:2px 0 3px; font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .song-info p { margin:0 0 7px; font-size:11px; color:var(--muted); line-height:1.35; min-height:30px; }
    .song-card-actions { display:flex; gap:6px; }
    .song-card-actions button { font-size:10.5px; padding:7px 8px; flex:1; }
    .preview-badge { position:absolute; left:8px; top:8px; font-size:9px; font-weight:900; padding:4px 6px; border-radius:999px; background:rgba(3,5,12,.78); opacity:0; transition:opacity .12s; }
    .song-card.previewing .preview-badge { opacity:1; }
    .menu-panel[hidden] { display:none!important; }
    .repo-row { display:grid; grid-template-columns:1fr auto auto; gap:8px; margin-top:10px; }
    .repo-row input { width:100%; padding:11px; border-radius:11px; border:1px solid rgba(255,255,255,.12); color:white; background:#0b0f20; }
    .menu-note { color:#8e98bd; font-size:11px; line-height:1.5; margin-top:9px; }
    .menu-section-title { margin:16px 0 0; font-size:13px; color:#dce1ff; }
    .community-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:10px; margin-top:12px; }
    .community-source { padding:14px; border-radius:15px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); }
    .community-source h3 { margin:0 0 5px; font-size:14px; }
    .community-source p { margin:0 0 10px; color:var(--muted); font-size:11px; line-height:1.45; }
    .community-source button { width:100%; }
    .menu-music-on { box-shadow:0 0 18px rgba(95,102,255,.32); background:#414bc8!important; }
    .support-chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
    .support-chip { font-size:10px; padding:5px 8px; border-radius:999px; background:rgba(126,134,255,.1); border:1px solid rgba(126,134,255,.22); color:#dce1ff; }
    .game-menu-btn { padding:7px 10px; font-size:11px; background:#28304d; }

    /* v8: profile, library, results, skins, calibration and backgrounds */
    #stage { position:relative; z-index:2; transform-origin:center center; transition:filter .12s ease, transform .07s ease; background:transparent; }
    .game-card > .topbar { position:relative; z-index:4; }
    .media-background { position:absolute; inset:0; border-radius:20px; overflow:hidden; pointer-events:none; z-index:0; background:#070913; }
    .media-background img,.media-background video,.media-background iframe { width:100%; height:100%; object-fit:cover; border:0; opacity:.68; filter:saturate(1.18) contrast(1.05) brightness(.66); }
    .media-background iframe { position:absolute; inset:0; transform:scale(1.07); }
    .media-background::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(4,6,15,.30),rgba(4,6,15,.72)); }
    .fnf-scene { position:absolute; pointer-events:none; z-index:1; overflow:hidden; border-radius:16px; opacity:0; transition:opacity .22s ease,filter .12s ease; background:transparent; }
    .fnf-scene.active { opacity:1; }
    .fnf-scene-world { position:absolute; width:1280px; height:720px; left:50%; top:50%; transform-origin:center center; will-change:transform; }
    .fnf-stage-object { position:absolute; transform-origin:0 0; will-change:transform,opacity,filter; }
    .fnf-stage-object img,.fnf-stage-object canvas { display:block; max-width:none; image-rendering:auto; }
    .fnf-stage-object.pixel img,.fnf-stage-object.pixel canvas { image-rendering:pixelated; }
    .fnf-screen-flash { position:absolute; inset:0; z-index:800; opacity:0; background:#fff; mix-blend-mode:screen; pointer-events:none; }
    .fnf-jumpscare { position:absolute; inset:0; z-index:900; display:grid; place-items:center; opacity:0; pointer-events:none; background:rgba(0,0,0,.05); }
    .fnf-jumpscare.show { animation:fnfJump .42s ease-out both; }
    .fnf-jumpscare img { width:100%; height:100%; object-fit:cover; filter:contrast(1.08) saturate(1.15); }
    .fnf-compat-badge { position:absolute; right:18px; top:86px; z-index:5; pointer-events:none; font-size:10px; font-weight:900; padding:6px 9px; border-radius:999px; border:1px solid rgba(113,239,255,.28); background:rgba(7,12,28,.72); color:#bcefff; opacity:0; transform:translateY(-4px); transition:.18s; backdrop-filter:blur(8px); }
    .fnf-compat-badge.show { opacity:1; transform:translateY(0); }
    @keyframes fnfJump { 0%{opacity:0;transform:scale(1.18)} 10%{opacity:1;transform:scale(.98)} 72%{opacity:1;transform:scale(1.02)} 100%{opacity:0;transform:scale(1.12)} }

    .pc-modal { position:fixed; inset:0; z-index:120; display:grid; place-items:center; padding:18px; background:rgba(4,6,13,.82); backdrop-filter:blur(14px); }
    .pc-modal[hidden] { display:none!important; }
    .pc-dialog { width:min(660px,100%); max-height:min(88vh,820px); overflow:auto; padding:20px; border-radius:22px; background:linear-gradient(180deg,#171d37,#0b0f20); border:1px solid rgba(255,255,255,.12); box-shadow:0 28px 90px rgba(0,0,0,.55); }
    .pc-dialog h2 { margin:0 0 8px; font-size:25px; }
    .pc-dialog p { color:var(--muted); line-height:1.5; }
    .pc-dialog input[type=text],.pc-dialog input[type=url],.pc-dialog select { width:100%; background:#080c1b; color:#fff; border:1px solid rgba(255,255,255,.15); border-radius:12px; padding:11px; }
    .modal-actions { display:flex; gap:8px; justify-content:flex-end; flex-wrap:wrap; margin-top:14px; }
    .profile-hero { display:grid; grid-template-columns:74px 1fr; gap:14px; align-items:center; }
    .avatar-orb { width:74px; height:74px; border-radius:50%; display:grid; place-items:center; font-size:28px; font-weight:1000; background:conic-gradient(from 40deg,#44d1ff,#8b7cff,#ff5ea8,#ffb84a,#44d1ff); box-shadow:0 0 32px rgba(126,134,255,.38); }
    .setup-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
    .result-head { display:flex; justify-content:space-between; align-items:center; gap:15px; }
    .result-rank { font-size:64px; font-weight:1000; line-height:1; text-shadow:0 0 30px currentColor; }
    .result-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin:16px 0; }
    .result-stat { padding:11px; border-radius:13px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.07); }
    .result-stat span { display:block; color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.7px; }
    .result-stat b { display:block; font-size:20px; margin-top:2px; }
    .achievement-list { display:grid; gap:8px; }
    .achievement { padding:10px 12px; border-radius:12px; background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.07); display:flex; gap:10px; align-items:center; }
    .achievement.locked { opacity:.42; filter:grayscale(1); }
    .achievement .icon { font-size:24px; }
    .leaderboard-table { width:100%; border-collapse:collapse; font-size:12px; }
    .leaderboard-table th,.leaderboard-table td { padding:8px 6px; border-bottom:1px solid rgba(255,255,255,.07); text-align:left; }
    .leaderboard-table td:nth-child(3),.leaderboard-table th:nth-child(3) { text-align:right; }
    .drop-overlay { position:fixed; inset:14px; z-index:180; display:grid; place-items:center; border:3px dashed rgba(121,239,255,.75); border-radius:24px; background:rgba(4,8,20,.88); color:#fff; font-size:clamp(24px,5vw,52px); font-weight:1000; text-align:center; pointer-events:none; opacity:0; transition:opacity .12s; }
    .drop-overlay.show { opacity:1; }
    .pc-toast { position:fixed; right:20px; bottom:20px; z-index:200; max-width:min(420px,calc(100vw - 40px)); padding:12px 14px; border-radius:14px; background:#161d39; border:1px solid rgba(255,255,255,.12); box-shadow:0 15px 40px rgba(0,0,0,.45); opacity:0; transform:translateY(12px); pointer-events:none; transition:.18s; }
    .pc-toast.show { opacity:1; transform:none; }
    .library-tools { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
    .library-tools input { flex:1; min-width:180px; }
    .song-card .favorite-btn { flex:0 0 38px; background:#333b55; }
    .song-card .favorite-btn.active { background:#845920; color:#ffe27a; }
    .song-card { animation:pcCardIn .28s cubic-bezier(.2,.8,.2,1) both; transform-origin:center; }
    .song-card:hover { transform:translateY(-5px) scale(1.018); box-shadow:0 16px 42px rgba(44,53,118,.28); }
    .song-card:active { transform:translateY(-2px) scale(.995); }
    @keyframes pcCardIn { from { opacity:0; transform:translateY(16px) scale(.97); filter:blur(3px) } to { opacity:1; transform:none; filter:none } }
    .cal-pulse { width:130px; height:130px; margin:18px auto; border-radius:50%; background:rgba(95,102,255,.15); border:2px solid rgba(126,134,255,.35); display:grid; place-items:center; font-weight:1000; font-size:34px; transition:transform .07s,box-shadow .07s,background .07s; }
    .cal-pulse.hit { transform:scale(1.12); background:rgba(90,231,255,.28); box-shadow:0 0 40px rgba(90,231,255,.55); }
    .profile-chip { background:#26304f!important; }
    .profile-chip strong { color:#aeeeff; }
    .skin-neon { --a:#44d1ff;--s:#8b7cff;--k:#ff5ea8;--l:#ffb84a; }
    .skin-fnf { --a:#c34cff;--s:#56f075;--k:#ff4d5d;--l:#52c8ff; }
    .skin-gh { --a:#4ee36e;--s:#ff3d4f;--k:#ffd348;--l:#5e8fff; }
    .skin-mono { --a:#e8eefc;--s:#bdc7df;--k:#8e9ab8;--l:#65708b; }
    .source-tabs .tab-count { font-size:9px; opacity:.7; margin-left:4px; }
    @media(max-width:620px){.setup-grid,.result-grid{grid-template-columns:1fr 1fr}.result-head{align-items:flex-start}.result-rank{font-size:48px}}

    @media(max-width:700px){ .main-menu{padding:16px}.menu-head{align-items:flex-start;flex-direction:column}.menu-toolbar{justify-content:flex-start}.repo-row{grid-template-columns:1fr}.song-grid{grid-template-columns:1fr}.menu-search-row{grid-template-columns:1fr} }
    @media (max-width:900px){ body{overflow:auto;padding:6px}.app{width:100%;height:auto;grid-template-columns:1fr}.app.controls-collapsed{grid-template-columns:1fr}.sidebar{order:2;max-height:none}.app.controls-collapsed .sidebar{display:none}#stage{height:72vh;min-height:500px}.pause-audio-grid{grid-template-columns:1fr} }


    /* v8 — stable highway, overdrive, accessibility, richer skins */
    #stage { transform:none!important; transition:filter .16s ease!important; }
    .game-card { --skin-radius:14px; --lane-alpha:.034; }
    .overdrive-fx { position:absolute; inset:0; z-index:3; pointer-events:none; opacity:0; transition:opacity .22s ease; border-radius:20px; overflow:hidden; }
    .overdrive-fx::before { content:""; position:absolute; inset:-20%; background:conic-gradient(from 0deg,transparent,rgba(84,239,255,.12),transparent 22%,rgba(156,112,255,.13),transparent 45%,rgba(84,239,255,.10),transparent); animation:overdriveSpin 5s linear infinite; }
    .overdrive-fx::after { content:""; position:absolute; inset:0; box-shadow:inset 0 0 75px rgba(86,231,255,.28),inset 0 0 18px rgba(255,255,255,.12); border:2px solid rgba(126,245,255,.34); border-radius:20px; }
    body.star-hot .overdrive-fx { opacity:1; }
    @keyframes overdriveSpin { to { transform:rotate(360deg) scale(1.1); } }
    .star-meter.ready { box-shadow:0 0 20px rgba(255,222,92,.65),inset 0 0 15px rgba(255,222,92,.2); animation:starReadyPulse .72s ease-in-out infinite alternate; }
    .star-meter.ready > div { background:linear-gradient(90deg,#72eaff,#fff08b,#8ff8ff); }
    @keyframes starReadyPulse { from{transform:scaleY(1)} to{transform:scaleY(1.16)} }
    .star-state { font-size:10px; color:#9eabd4; font-weight:900; letter-spacing:.45px; text-transform:uppercase; }
    .fc-pill.fc-live { color:#81ffd1; border-color:rgba(129,255,209,.42); box-shadow:0 0 13px rgba(90,242,178,.15); }
    .fc-pill.fc-broken { color:#ff8294; opacity:.78; }
    .perfect-pill.hot { color:#fff08b; border-color:rgba(255,240,139,.42); box-shadow:0 0 16px rgba(255,230,100,.18); }
    .screen-wipe { position:fixed; inset:0; z-index:250; pointer-events:none; opacity:0; background:radial-gradient(circle at center,rgba(102,112,255,.28),rgba(5,7,14,.98) 58%); transform:scale(1.08); transition:opacity .18s ease,transform .24s ease; }
    .screen-wipe.show { opacity:1; transform:scale(1); }
    .profile-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin:14px 0; }
    .profile-stat { padding:9px; border-radius:12px; background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.07); }
    .profile-stat span { display:block; color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.5px; }
    .profile-stat b { display:block; margin-top:2px; font-size:17px; }
    .library-tools select { min-width:150px; width:auto; }
    .endless-on { background:#a84fd9!important; box-shadow:0 0 20px rgba(185,82,255,.28); }
    .setting-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
    .toggle-row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 0; font-size:11px; color:#dce1ff; border-bottom:1px solid rgba(255,255,255,.055); }
    .toggle-row input { width:18px; height:18px; accent-color:#737cff; }
    .audio-mix { display:grid; gap:7px; }
    .audio-mix label { margin:0; display:grid; grid-template-columns:70px 1fr 38px; gap:7px; align-items:center; }
    .audio-mix output { font-size:10px; color:#cbd4fa; text-align:right; }
    body.reduced-motion *,body.reduced-motion *::before,body.reduced-motion *::after { animation-duration:.001ms!important; animation-iteration-count:1!important; scroll-behavior:auto!important; transition-duration:.001ms!important; }
    body.reduced-flashes .overdrive-fx::before,body.reduced-flashes.beat-flash .pill { opacity:.22!important; box-shadow:none!important; }
    body.reduced-motion .song-start-vignette,body.reduced-motion .beat-zoom-indicator { animation:none!important; transition:none!important; }
    body.high-contrast { --text:#fff; --muted:#d7def8; }
    body.high-contrast .card,body.high-contrast .menu-card { border-color:rgba(255,255,255,.26); }
    body.dark-background .media-background,body.dark-background::before { opacity:.12!important; }
    body.large-notes #stage { filter:contrast(1.03); }
    body.skin-fnf .pill,.skin-fnf button,.skin-fnf .metric { border-radius:6px; }
    body.skin-gh .game-card { --skin-radius:999px; --lane-alpha:.05; }
    body.skin-gh .star-wrap { border-radius:999px; }
    body.skin-mono .game-card,body.skin-mono .sidebar { background:linear-gradient(180deg,#17191f,#090b0f); }
    body.skin-mono .pill,body.skin-mono .metric { border-radius:4px; }
    body.skin-neon .game-card { box-shadow:0 18px 55px rgba(0,0,0,.35),0 0 36px rgba(68,209,255,.055); }
    .auto2-badge { display:inline-flex; align-items:center; gap:5px; font-size:9px; padding:4px 7px; border-radius:999px; background:rgba(82,231,255,.09); border:1px solid rgba(82,231,255,.2); color:#bff8ff; }
    @media(max-width:620px){.profile-stats{grid-template-columns:1fr 1fr}.library-tools select{width:100%}}

  
    /* PulseChart v10 — dual FNF highways and control customization */
    .battle-pill{border-color:rgba(255,105,180,.42)!important;background:rgba(255,68,146,.11)!important}
    .battle-pill.ready{box-shadow:0 0 18px rgba(255,76,160,.48);animation:battleReadyPulse .8s ease-in-out infinite alternate}
    @keyframes battleReadyPulse{to{transform:translateY(-1px);filter:brightness(1.25)}}
    .controls-config-grid{display:grid;grid-template-columns:90px 1fr 82px 82px;gap:8px;align-items:center;margin:14px 0}
    .controls-config-grid .head{font-size:11px;color:var(--muted);font-weight:900;text-transform:uppercase;letter-spacing:.06em}
    .bind-key{padding:9px 7px;background:#28304d;min-width:0}
    .bind-key.listening{background:#8a3f70;animation:battleReadyPulse .55s ease-in-out infinite alternate}
    .lane-color{width:100%;height:38px;padding:2px;border:1px solid rgba(255,255,255,.18);border-radius:9px;background:#0c1020}
    .controls-preview{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}
    .controls-preview span{padding:11px 4px;text-align:center;font-weight:950;border-radius:10px;border:2px solid currentColor;background:rgba(255,255,255,.045)}
    .fnf-setup-extra{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08)}
    .pause-options-note{font-size:11px;color:var(--muted);margin-top:10px;text-align:center}
    body.fnf-dual .game-card{border-color:rgba(160,115,255,.24)}
    body.fnf-versus .star-wrap{display:none}
    body.fnf-versus #starPct{opacity:.55}
    @media(max-width:760px){.controls-config-grid{grid-template-columns:64px 1fr 64px 64px}.fnf-setup-extra{grid-template-columns:1fr}.pause-actions{grid-template-columns:1fr}.pause-actions .resume-wide{grid-column:auto}}

  
    /* PulseChart v11 battle inventory */
    .power-queue-panel{position:absolute;z-index:46;right:16px;top:132px;width:min(310px,29vw);padding:15px;border-radius:18px;background:rgba(7,9,20,.91);border:1px solid rgba(255,118,190,.42);box-shadow:0 16px 42px rgba(0,0,0,.42),0 0 30px rgba(255,76,160,.13);backdrop-filter:blur(14px);pointer-events:none;transition:opacity .18s,transform .18s}
    .power-queue-title{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;font-size:16px;font-weight:1000;letter-spacing:1px;color:#ffd7ea}.power-queue-title small{font-size:10px;color:#aeb8da;text-align:right;letter-spacing:.2px}.power-queue-list{display:grid;gap:9px;margin-top:11px}.power-card{padding:12px 13px;border-radius:13px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.11);overflow:hidden}.power-card:first-child{background:rgba(255,78,158,.15);border-color:rgba(255,105,180,.57);box-shadow:0 0 21px rgba(255,75,155,.15)}.power-card.rare{background:linear-gradient(135deg,rgba(255,218,92,.17),rgba(99,228,255,.10));border-color:rgba(255,222,105,.56)}.power-card .power-name{font-size:18px;line-height:1.1;font-weight:1000;color:#fff}.power-card.rare .power-name{color:#fff08b}.power-card .power-desc{font-size:12px;color:#b8c2e2;margin-top:5px;line-height:1.3}.power-card .power-tag{float:right;font-size:10px;font-weight:900;color:#ff9fc8}.power-card.rare .power-tag{color:#ffe882}.power-empty{padding:14px 10px;text-align:center;font-size:13px;line-height:1.35;color:#a1acca;border:1px dashed rgba(255,255,255,.12);border-radius:12px}.power-active-status,.rival-power-status{font-size:12px;line-height:1.4;color:#b8c2e2;margin-top:10px}.rival-power-status{padding-top:9px;border-top:1px solid rgba(255,255,255,.09);color:#ffc0d6}.power-queue-panel.queue-pop{animation:queuePop .28s cubic-bezier(.2,.8,.2,1)}@keyframes queuePop{0%{transform:translateX(10px) scale(.95);filter:brightness(1.55)}100%{transform:none;filter:none}}
    body.reduced-motion .power-queue-panel.queue-pop{animation:none}.battle-effect-label{font-size:9px;font-weight:1000;letter-spacing:.45px}.power-queue-panel[hidden]{display:none!important}
    @media(max-width:850px){.power-queue-panel{right:8px;top:126px;width:230px;padding:11px}.power-queue-title{font-size:13px}.power-card .power-name{font-size:15px}.power-card .power-desc,.rival-power-status{display:none}}
    .power-queue-panel[data-has-power="1"]{border-color:rgba(255,122,197,.62);box-shadow:0 14px 34px rgba(0,0,0,.42),0 0 30px rgba(255,76,160,.18)}
    body.star-ready-flash .star-wrap{animation:starReadyFlashV12 .58s cubic-bezier(.2,.8,.2,1)}
    @keyframes starReadyFlashV12{0%{filter:brightness(1);transform:scale(1)}32%{filter:brightness(1.8);transform:scale(1.018);box-shadow:0 0 35px rgba(255,232,130,.44)}100%{filter:brightness(1);transform:scale(1)}}
    body.reduced-motion.star-ready-flash .star-wrap{animation:none;filter:brightness(1.45)}

    /* PulseChart v14 — stronger battle effects + versus intro */
    .power-queue-panel{width:min(370px,34vw);padding:18px 19px;top:122px}
    .power-queue-title{font-size:19px}.power-queue-title small{font-size:11px}
    .power-card{padding:15px 16px}.power-card .power-name{font-size:24px;letter-spacing:.2px}.power-card .power-desc{font-size:14px;line-height:1.4}.power-card .power-tag{font-size:11px}
    .power-empty{font-size:16px;padding:18px 12px}.power-active-status,.rival-power-status{font-size:13px}
    .fight-intro-overlay{position:fixed;inset:0;z-index:175;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(18px,4vw,58px);padding:clamp(26px,7vw,110px);background:radial-gradient(circle at 50% 50%,rgba(123,57,178,.34),rgba(4,6,15,.94) 58%),linear-gradient(100deg,rgba(255,47,116,.14),transparent 42%,rgba(64,197,255,.14));opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility .18s}
    .fight-intro-overlay.show{opacity:1;visibility:visible}
    .fight-side{min-width:0;text-align:center;transform:translateX(-42px) scale(.9);opacity:0;transition:transform .48s cubic-bezier(.18,.9,.22,1),opacity .3s}
    .fight-side.right{transform:translateX(42px) scale(.9)}.fight-intro-overlay.show .fight-side{transform:translateX(0) scale(1);opacity:1}
    .fight-slot{font-size:clamp(13px,1.5vw,19px);font-weight:1000;letter-spacing:.18em;color:#aab6dc;text-transform:uppercase}.fight-name{margin-top:8px;font-size:clamp(27px,4vw,62px);font-weight:1000;line-height:.95;text-transform:uppercase;text-shadow:0 8px 30px rgba(0,0,0,.55);overflow-wrap:anywhere}.fight-side.left .fight-name{color:#ff94bc}.fight-side.right .fight-name{color:#8deaff}
    .fight-vs{text-align:center;transform:scale(.3) rotate(-8deg);opacity:0;transition:transform .42s .16s cubic-bezier(.15,1.35,.25,1),opacity .18s .12s}.fight-intro-overlay.show .fight-vs{transform:scale(1) rotate(-4deg);opacity:1}.fight-vs strong{display:block;font-size:clamp(54px,9vw,132px);font-style:italic;font-weight:1000;line-height:.8;color:#fff;text-shadow:0 0 30px rgba(255,91,175,.7),0 8px 0 rgba(59,26,96,.68)}.fight-vs span{display:block;margin-top:18px;font-size:clamp(11px,1.4vw,17px);font-weight:1000;letter-spacing:.22em;color:#ffd36e;text-transform:uppercase}
    body.reduced-motion .fight-side,body.reduced-motion .fight-side.right,body.reduced-motion .fight-vs{transition:none!important;transform:none!important}.fight-intro-overlay[hidden]{display:none!important}
    @media(max-width:760px){.power-queue-panel{width:260px}.power-card .power-name{font-size:19px}.fight-intro-overlay{padding:24px 14px;gap:9px}.fight-vs strong{font-size:48px}.fight-name{font-size:24px}}


    /* PulseChart v15 — Sudden Death, stronger CPU and battle result presentation */
    .sudden-death-hud{position:absolute;z-index:48;top:112px;left:50%;transform:translateX(-50%);width:min(720px,64vw);display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center;pointer-events:none;filter:drop-shadow(0 10px 24px rgba(0,0,0,.45))}.sudden-death-hud[hidden]{display:none!important}.sd-health{min-width:0}.sd-label{display:flex;justify-content:space-between;gap:10px;font-size:12px;font-weight:1000;letter-spacing:.08em;margin-bottom:5px;color:#fff}.sd-track{height:16px;border-radius:999px;padding:2px;background:rgba(5,7,17,.85);border:1px solid rgba(255,255,255,.18);overflow:hidden}.sd-fill{height:100%;width:100%;border-radius:999px;background:linear-gradient(90deg,#52efa1,#dffb72);box-shadow:0 0 14px rgba(95,244,164,.45);transition:width .22s ease,filter .16s ease}.sd-rival .sd-fill{background:linear-gradient(90deg,#ffca62,#ff557d);box-shadow:0 0 14px rgba(255,85,125,.4)}.sd-center{text-align:center;font-size:10px;line-height:1.05;font-weight:1000;letter-spacing:.16em;color:#fff08b;text-shadow:0 0 14px rgba(255,220,92,.45)}.sd-health.hit .sd-track{animation:sdHealthHit .28s ease}.sd-health.heal .sd-track{animation:sdHealthHeal .42s ease}@keyframes sdHealthHit{0%,100%{transform:none}35%{transform:translateX(-7px);filter:brightness(1.7)}70%{transform:translateX(6px)}}@keyframes sdHealthHeal{50%{filter:brightness(1.8);transform:scaleY(1.22)}}
    .fight-result-overlay{position:fixed;inset:0;z-index:190;display:grid;place-items:center;background:radial-gradient(circle at 50% 45%,rgba(112,65,185,.38),rgba(3,5,13,.96) 61%);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s}.fight-result-overlay.show{opacity:1;visibility:visible}.fight-result-overlay[hidden]{display:none!important}.fight-result-card{text-align:center;padding:34px 46px;transform:scale(.58) rotate(-2deg);opacity:0;transition:transform .5s cubic-bezier(.13,1.4,.22,1),opacity .22s}.fight-result-overlay.show .fight-result-card{transform:scale(1) rotate(-1deg);opacity:1}.fight-result-headline{font-size:clamp(58px,10vw,142px);line-height:.82;font-weight:1000;font-style:italic;letter-spacing:-.04em;color:#fff;text-shadow:0 0 34px rgba(116,241,255,.45),0 10px 0 rgba(48,27,93,.72)}.fight-result-overlay.lose .fight-result-headline{text-shadow:0 0 34px rgba(255,83,119,.48),0 10px 0 rgba(91,27,48,.72)}.fight-result-subtext{margin-top:24px;font-size:clamp(17px,2vw,28px);font-weight:900;color:#d8def8}.fight-result-winner{margin-top:14px;font-size:clamp(13px,1.5vw,19px);font-weight:1000;letter-spacing:.18em;color:#fff08b;text-transform:uppercase}.battle-finishing #resultsModal{visibility:hidden!important}.power-card.sudden-special{border-color:rgba(116,241,255,.55);background:linear-gradient(135deg,rgba(82,239,161,.13),rgba(80,150,255,.11))}.power-card.slam{border-color:rgba(255,116,87,.7);background:linear-gradient(135deg,rgba(255,74,90,.19),rgba(255,205,84,.13))}.power-card.slam .power-name{color:#ffd56a}.sd-shielded .sd-track{box-shadow:0 0 0 2px rgba(120,235,255,.65),0 0 20px rgba(90,220,255,.4)}
    body.reduced-motion .fight-result-card,body.reduced-motion .sd-health.hit .sd-track,body.reduced-motion .sd-health.heal .sd-track{transition:none!important;animation:none!important;transform:none!important}@media(max-width:760px){.sudden-death-hud{width:88vw;top:122px;gap:7px}.sd-center{font-size:8px}.sd-label{font-size:10px}.sd-track{height:12px}.fight-result-card{padding:24px 14px}}

    /* PulseChart v16 — Battle 2.0, Arcade, Bosses and player cosmetics */
    .cosmetics-panel{margin-top:15px;padding:14px;border-radius:16px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08)}.cosmetics-head{display:flex;justify-content:space-between;gap:12px;align-items:end;margin-bottom:10px}.cosmetics-head span{font-size:10px;color:var(--muted)}.cosmetics-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.cosmetics-grid label{display:grid;gap:5px;font-size:10px;color:var(--muted)}.cosmetics-grid input[type=color]{height:39px;width:100%;padding:3px;border-radius:10px}.cosmetic-preview{--cos-accent:#74f1ff;margin-top:12px;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;border:1px solid color-mix(in srgb,var(--cos-accent) 45%,transparent);background:linear-gradient(90deg,color-mix(in srgb,var(--cos-accent) 12%,transparent),rgba(255,255,255,.02));box-shadow:inset 3px 0 0 var(--cos-accent)}.cosmetic-preview-avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-size:20px;font-weight:1000;border:2px solid var(--cos-accent);box-shadow:0 0 18px color-mix(in srgb,var(--cos-accent) 40%,transparent)}.cosmetic-preview b,.cosmetic-preview small{display:block}.cosmetic-preview small{margin-top:2px;color:#b8c1df}.avatar-orb.frame-gold{box-shadow:0 0 0 3px #ffd66b,0 0 34px rgba(255,210,75,.42)}.avatar-orb.frame-crimson{box-shadow:0 0 0 3px #ff647e,0 0 34px rgba(255,70,105,.42)}.avatar-orb.frame-ice{box-shadow:0 0 0 3px #7deaff,0 0 34px rgba(100,225,255,.42)}.profile-chip.cosmetic-accent{box-shadow:inset 3px 0 0 var(--profile-accent),0 0 15px color-mix(in srgb,var(--profile-accent) 16%,transparent)}
    .arcade-dialog{width:min(820px,94vw)}.arcade-header{display:flex;justify-content:space-between;gap:16px;align-items:start}.arcade-badge{font-size:9px;font-weight:1000;letter-spacing:.16em;color:#10131e;background:#fff08b;padding:7px 10px;border-radius:999px}.arcade-stages{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin:14px 0}.arcade-stage{position:relative;min-width:0;padding:13px 10px;border-radius:14px;border:1px solid rgba(255,255,255,.09);background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.025));text-align:center}.arcade-stage.current{border-color:#74f1ff;box-shadow:0 0 22px rgba(116,241,255,.2)}.arcade-stage.boss{border-color:#ff668f;background:linear-gradient(180deg,rgba(255,80,126,.13),rgba(70,20,50,.08));box-shadow:0 0 20px rgba(255,70,115,.13)}.arcade-stage .num{font-size:9px;color:#99a4c9;font-weight:1000;letter-spacing:.12em}.arcade-stage b{display:block;margin-top:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.arcade-stage small{display:block;margin-top:4px;color:#aeb7d4;font-size:9px}.arcade-rules{display:flex;gap:7px;flex-wrap:wrap}.arcade-rules span{font-size:9px;padding:6px 8px;border-radius:999px;background:#202845;color:#cad3f1}.arcade-running .menu-toolbar #arcadeBtn{box-shadow:0 0 18px rgba(255,224,91,.38);border-color:#ffe262}
    .battle-status-deck{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}.battle-status-deck>div{padding:8px;border-radius:11px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.065);min-width:0}.battle-status-deck b{display:block;font-size:9px;letter-spacing:.12em;color:#fff}.battle-status-deck span{display:block;margin-top:4px;font-size:9px;line-height:1.35;color:#b9c4e5;white-space:normal}.battle-status-deck .status-hot{color:#ffcf76}.battle-status-deck .status-good{color:#7ff1c3}.boss-battle .sudden-death-hud{width:min(780px,70vw)}.boss-battle .sd-center{color:#ff769f;text-shadow:0 0 15px rgba(255,70,115,.5)}.boss-battle .sd-rival .sd-track{height:20px;box-shadow:0 0 0 1px rgba(255,79,121,.35),0 0 24px rgba(255,70,115,.19)}.boss-battle .power-queue-panel{border-color:rgba(255,87,132,.36)}.boss-phase-flash{animation:bossPhaseFlash .65s ease}@keyframes bossPhaseFlash{30%{filter:brightness(1.55) saturate(1.4)}70%{filter:brightness(.75)}}.fight-slot.cos-title{color:var(--profile-accent,#74f1ff)}
    body.battle-resist .game-card{--battle-resist:1}.power-card.cleanse{border-color:rgba(109,246,190,.55)}.power-card.reflect{border-color:rgba(126,201,255,.6)}.power-card.laststand{border-color:rgba(255,103,127,.65)}
    @media(max-width:760px){.cosmetics-grid{grid-template-columns:1fr}.arcade-stages{grid-template-columns:1fr}.arcade-stage{display:grid;grid-template-columns:45px 1fr 90px;text-align:left;align-items:center}.arcade-stage b,.arcade-stage small{margin:0}.battle-status-deck{grid-template-columns:1fr}}


    /* PulseChart v17 — rival difficulty, battle HUD alignment, profile photos and competitive audio */
    .cpu-difficulty-wrap{display:grid;gap:5px}.cpu-difficulty-wrap small{font-size:10px;color:var(--muted);line-height:1.25}.cpu-difficulty-wrap select{font-weight:900}
    .avatar-photo-tools{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 2px}.avatar-photo-tools button{flex:1;min-width:150px}.avatar-orb.has-photo,.cosmetic-preview-avatar.has-photo,.fight-avatar.has-photo,.fight-result-avatar.has-photo{color:transparent!important;background-position:center!important;background-size:cover!important;background-repeat:no-repeat!important;text-shadow:none!important}
    .avatar-crop-dialog{width:min(520px,94vw)}.avatar-crop-stage{display:grid;place-items:center;margin:14px 0}.avatar-crop-canvas{width:min(360px,78vw);aspect-ratio:1;border-radius:18px;border:2px solid rgba(116,241,255,.34);background:#050812;cursor:grab;touch-action:none;box-shadow:0 16px 42px rgba(0,0,0,.38)}.avatar-crop-canvas.dragging{cursor:grabbing}.avatar-crop-controls{display:grid;gap:7px}.avatar-crop-controls label{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}
    .fight-avatar{width:clamp(74px,9vw,124px);height:clamp(74px,9vw,124px);margin:0 auto 13px;border-radius:50%;display:grid;place-items:center;font-size:clamp(28px,4vw,54px);font-weight:1000;background:linear-gradient(145deg,#37437f,#161c39);border:3px solid rgba(255,255,255,.72);box-shadow:0 0 0 6px rgba(255,255,255,.06),0 16px 36px rgba(0,0,0,.42);overflow:hidden}.fight-side.left .fight-avatar{box-shadow:0 0 0 6px rgba(255,95,161,.10),0 0 30px rgba(255,95,161,.24),0 16px 36px rgba(0,0,0,.42)}.fight-side.right .fight-avatar{box-shadow:0 0 0 6px rgba(91,222,255,.10),0 0 30px rgba(91,222,255,.24),0 16px 36px rgba(0,0,0,.42)}
    .fight-result-avatar{width:112px;height:112px;margin:0 auto 22px;border-radius:50%;display:grid;place-items:center;font-size:48px;font-weight:1000;border:3px solid rgba(255,255,255,.78);background:linear-gradient(145deg,#37437f,#161c39);box-shadow:0 0 34px rgba(116,241,255,.24),0 18px 40px rgba(0,0,0,.4);overflow:hidden}.fight-result-overlay.lose .fight-result-avatar{box-shadow:0 0 34px rgba(255,83,119,.24),0 18px 40px rgba(0,0,0,.4)}
    .sudden-death-hud{width:min(860px,76vw);top:104px;grid-template-columns:minmax(190px,1fr) auto minmax(190px,1fr);z-index:49}.sd-label{font-size:13px}.sd-label span{max-width:70%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sd-health[data-side="left"] .sd-label{flex-direction:row}.sd-health[data-side="right"] .sd-label{flex-direction:row-reverse}.sd-health[data-side="right"] .sd-track{transform:scaleX(-1)}
    .media-background.fnf-random-bg img{opacity:.72;filter:saturate(1.08) contrast(1.08) brightness(.57)}.media-background.fnf-random-bg::after{background:linear-gradient(180deg,rgba(4,6,15,.24),rgba(4,6,15,.67))}
    .cpu-diff-badge{display:inline-flex;padding:4px 7px;border-radius:999px;border:1px solid rgba(255,255,255,.14);font-size:9px;letter-spacing:.12em;color:#dce5ff;background:rgba(255,255,255,.05);margin-left:6px;vertical-align:middle}
    @media(max-width:760px){.sudden-death-hud{width:94vw;top:108px;grid-template-columns:1fr auto 1fr}.fight-avatar{width:68px;height:68px;margin-bottom:8px}.fight-result-avatar{width:86px;height:86px;font-size:38px}.avatar-photo-tools button{min-width:120px}}



    /* PulseChart v18 — menu overhaul + Override visualizer */
    .main-menu{
      --menu-pulse:.12; --menu-alpha:.15; --menu-x:0; --menu-y:0; --menu-shift-x:0px; --menu-shift-y:0px;
      background:linear-gradient(180deg,rgba(4,7,18,.90),rgba(5,7,15,.97));
      overflow:auto; isolation:isolate;
    }
    .menu-ambient{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;background:
      radial-gradient(circle at 50% 18%,rgba(86,116,255,var(--menu-alpha)),transparent 31%),
      radial-gradient(circle at 16% 70%,rgba(47,222,255,.10),transparent 26%),
      radial-gradient(circle at 86% 62%,rgba(255,74,177,.105),transparent 27%),
      linear-gradient(180deg,#080c20 0%,#050713 56%,#03050c 100%)}
    .menu-ambient::before{content:"";position:absolute;inset:-18%;background:conic-gradient(from 190deg at 50% 52%,transparent 0 14%,rgba(84,233,255,.08) 21%,transparent 31% 49%,rgba(155,101,255,.09) 59%,transparent 69% 82%,rgba(255,74,174,.07) 89%,transparent);filter:blur(26px);animation:menuAuroraV18 18s linear infinite;transform:translate(var(--menu-shift-x),var(--menu-shift-y)) scale(1.15)}
    .menu-ambient::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.018) 0 1px,transparent 1px 72px),repeating-linear-gradient(0deg,rgba(255,255,255,.013) 0 1px,transparent 1px 72px);mask-image:linear-gradient(to bottom,transparent 0,#000 24%,#000 100%);transform:perspective(520px) rotateX(61deg) translateY(39%);transform-origin:bottom center;opacity:.5}
    @keyframes menuAuroraV18{to{transform:translate(var(--menu-shift-x),var(--menu-shift-y)) scale(1.15) rotate(360deg)}}
    .menu-orb{position:absolute;border-radius:50%;filter:blur(2px);mix-blend-mode:screen;opacity:.52;will-change:transform}
    .menu-orb.o1{width:240px;height:240px;left:8%;top:12%;background:radial-gradient(circle,#61e7ff22,transparent 70%);animation:menuOrb1V18 9s ease-in-out infinite alternate}
    .menu-orb.o2{width:360px;height:360px;right:3%;top:24%;background:radial-gradient(circle,#b26eff1c,transparent 70%);animation:menuOrb2V18 12s ease-in-out infinite alternate}
    .menu-orb.o3{width:280px;height:280px;left:39%;bottom:-8%;background:radial-gradient(circle,#ff5ea819,transparent 70%);animation:menuOrb1V18 14s ease-in-out infinite alternate-reverse}
    @keyframes menuOrb1V18{from{transform:translate(-18px,-8px) scale(.92)}to{transform:translate(36px,22px) scale(1.12)}}
    @keyframes menuOrb2V18{from{transform:translate(26px,-20px) scale(1.08)}to{transform:translate(-34px,30px) scale(.9)}}
    .menu-eq-v18{position:absolute;left:0;right:0;bottom:0;height:25vh;display:flex;align-items:flex-end;justify-content:center;gap:clamp(3px,.45vw,8px);padding:0 5vw 18px;opacity:.24;filter:drop-shadow(0 0 15px rgba(83,231,255,.2));mask-image:linear-gradient(to top,#000 0,#000 66%,transparent 100%)}
    .menu-eq-v18 i{display:block;width:min(1.4vw,14px);height:100%;max-height:130px;transform-origin:bottom;transform:scaleY(.18);border-radius:999px 999px 4px 4px;background:linear-gradient(to top,rgba(89,227,255,.9),rgba(129,111,255,.86) 58%,rgba(255,93,172,.7));box-shadow:0 0 10px rgba(94,226,255,.22)}
    .menu-scan-v18{position:absolute;inset:0;background:linear-gradient(180deg,transparent 0 49%,rgba(121,234,255,.035) 50%,transparent 51%);background-size:100% 9px;opacity:.24;mix-blend-mode:screen}
    .menu-shell{position:relative;z-index:2;width:min(1180px,100%);padding:clamp(8px,2vh,28px) 0 34px}
    .menu-head{align-items:center;margin-bottom:22px;padding:18px 20px;border:1px solid rgba(255,255,255,.09);border-radius:25px;background:linear-gradient(135deg,rgba(17,25,52,.70),rgba(8,12,28,.45));backdrop-filter:blur(18px) saturate(1.25);box-shadow:0 20px 70px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.06)}
    .menu-head h1{font-size:clamp(44px,7vw,82px);letter-spacing:-4px;background:linear-gradient(115deg,#f7fbff 12%,#7cecff 38%,#9f83ff 62%,#ff72ba 88%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 22px rgba(105,213,255,.17))}
    .menu-head p{max-width:620px;font-size:13px;letter-spacing:.015em;color:#aeb9df}
    .menu-kicker-v18{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:9px;font-weight:1000;letter-spacing:.18em;color:#89edff;text-transform:uppercase}
    .menu-kicker-v18::before{content:"";width:30px;height:2px;border-radius:99px;background:linear-gradient(90deg,#53eaff,#9d78ff)}
    .menu-card{position:relative;overflow:hidden;background:linear-gradient(180deg,rgba(17,24,49,.82),rgba(7,11,25,.84));border-color:rgba(127,151,255,.16);border-radius:24px;padding:18px;backdrop-filter:blur(22px) saturate(1.2);box-shadow:0 28px 90px rgba(0,0,0,.42),inset 0 1px rgba(255,255,255,.055)}
    .menu-card::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,#59e7ff,#9e75ff,#ff67ae,transparent);opacity:.7}
    .menu-toolbar button{border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,rgba(49,59,97,.85),rgba(30,38,70,.9));box-shadow:inset 0 1px rgba(255,255,255,.045)}
    .menu-toolbar button:hover{transform:translateY(-2px);box-shadow:0 9px 22px rgba(0,0,0,.25),0 0 16px rgba(106,124,255,.11)}
    .source-tabs{gap:7px;padding:5px;border-radius:17px;background:rgba(3,6,17,.48);border:1px solid rgba(255,255,255,.055)}
    .source-tabs button{flex:1;min-width:135px;border:1px solid transparent;background:transparent;color:#9ba7cf;padding:11px 13px}
    .source-tabs button.active{color:#fff;border-color:rgba(123,229,255,.2);background:linear-gradient(135deg,rgba(70,95,218,.72),rgba(107,63,176,.68));box-shadow:0 8px 25px rgba(74,78,214,.23),inset 0 1px rgba(255,255,255,.12)}
    .menu-search-row input,.repo-row input,.library-tools input,.library-tools select{background:rgba(3,7,20,.72)!important;border-color:rgba(126,148,226,.16)!important;box-shadow:inset 0 1px 9px rgba(0,0,0,.25)}
    .song-grid{gap:14px;margin-top:16px}
    .song-card{min-height:128px;grid-template-columns:96px 1fr;gap:13px;padding:12px;border-color:rgba(125,151,229,.12);border-radius:18px;background:linear-gradient(135deg,rgba(255,255,255,.046),rgba(91,112,205,.025));box-shadow:inset 0 1px rgba(255,255,255,.025)}
    .song-card::after{content:"";position:absolute;inset:auto -30% -90% 15%;height:160%;background:radial-gradient(circle,rgba(90,222,255,.11),transparent 65%);opacity:0;transition:.22s;pointer-events:none}
    .song-card:hover{transform:translateY(-5px) scale(1.012);border-color:rgba(104,224,255,.48);background:linear-gradient(135deg,rgba(79,118,219,.11),rgba(147,79,206,.07));box-shadow:0 17px 38px rgba(0,0,0,.32),0 0 25px rgba(90,212,255,.07)}
    .song-card:hover::after{opacity:1}
    .song-cover{width:96px;height:96px;border-radius:15px;box-shadow:0 8px 24px rgba(0,0,0,.30)}
    .song-info h3{font-size:15px;margin-top:4px}.song-info p{font-size:11px;color:#9aa6cc}

    .override-visualizer-v18{position:absolute;z-index:6;pointer-events:none;top:96px;bottom:12px;left:12px;right:12px;border-radius:16px;overflow:hidden;opacity:0;transition:opacity .18s ease,left .22s ease,right .22s ease;mix-blend-mode:screen;--ov-hue:188;--ov-pulse:0;--ov-heart:1;--ov-alpha:.11;--ov-shadow-alpha:.10;--ov-glow:24px;--ov-heart-alpha:.08;--ov-heart-glow:12px}
    .override-visualizer-v18.active{opacity:.88}
    .override-visualizer-v18.side-left{right:50%;margin-right:3px}.override-visualizer-v18.side-right{left:50%;margin-left:3px}
    .override-visualizer-v18::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 78%,hsla(var(--ov-hue),95%,62%,var(--ov-alpha)),transparent 46%),linear-gradient(180deg,transparent 42%,hsla(var(--ov-hue),90%,55%,.055));box-shadow:inset 0 0 var(--ov-glow) hsla(var(--ov-hue),95%,62%,var(--ov-shadow-alpha));transform:scale(var(--ov-heart));transition:transform .055s linear}
    .override-eq-v18{position:absolute;left:4%;right:4%;bottom:4%;height:30%;display:flex;gap:clamp(2px,.42vw,7px);align-items:flex-end;justify-content:center;opacity:.78;filter:drop-shadow(0 0 8px hsla(var(--ov-hue),90%,65%,.32));mask-image:linear-gradient(to top,#000 0,#000 64%,transparent 100%)}
    .override-eq-v18 i{height:100%;flex:1;max-width:16px;min-width:3px;transform-origin:bottom;transform:scaleY(.15);border-radius:999px 999px 2px 2px;background:linear-gradient(to top,hsla(var(--ov-hue),98%,58%,.92),hsla(calc(var(--ov-hue) + 58),94%,69%,.78));will-change:transform}
    .override-heart-v18{position:absolute;inset:9%;border:2px solid hsla(var(--ov-hue),95%,70%,var(--ov-heart-alpha));border-radius:22px;transform:scale(var(--ov-heart));box-shadow:0 0 var(--ov-heart-glow) hsla(var(--ov-hue),95%,60%,.16),inset 0 0 var(--ov-heart-glow) hsla(var(--ov-hue),95%,60%,.10)}
    body.star-hot .stats .pill{border-color:hsla(var(--override-hue-v18,188),90%,70%,.40);box-shadow:0 0 var(--override-hud-glow-v18,8px) hsla(var(--override-hue-v18,188),95%,62%,.17);background:linear-gradient(180deg,hsla(var(--override-hue-v18,188),70%,50%,.12),rgba(255,255,255,.055));color:hsl(var(--override-hue-v18,188) 90% 87%)}
    body.star-hot .brand h1{color:hsl(var(--override-hue-v18,188) 95% 80%);text-shadow:0 0 16px hsla(var(--override-hue-v18,188),95%,65%,.28)}
    body.reduced-motion .menu-ambient::before,body.reduced-motion .menu-orb,body.reduced-motion .menu-eq-v18 i{animation:none!important;transform:none!important}
    body.reduced-flashes .override-visualizer-v18{opacity:.34!important}.reduced-flashes .override-heart-v18{box-shadow:none!important}
    @media(max-width:700px){.menu-head{padding:15px}.menu-head h1{font-size:48px}.menu-card{padding:12px}.source-tabs button{min-width:110px}.override-visualizer-v18{top:130px}}

  

    /* PulseChart v18.2 — card recovery + half-time BPM claps + softer full-screen Override */
    .override-visualizer-v18{
      position:fixed!important;
      z-index:8!important;
      top:0!important;bottom:0!important;left:0!important;right:0!important;
      margin:0!important;border-radius:0!important;
      opacity:0!important;
      transition:opacity .20s ease!important;
      mix-blend-mode:screen;
    }
    .override-visualizer-v18.active{opacity:.40!important}
    .override-visualizer-v18.side-left{left:0!important;right:50%!important;margin:0!important}
    .override-visualizer-v18.side-right{left:50%!important;right:0!important;margin:0!important}
    .override-eq-v18{left:0!important;right:0!important;bottom:0!important;height:42%!important;padding:0 1.5vw 1.8vh;gap:clamp(2px,.32vw,6px);opacity:.62!important;mask-image:linear-gradient(to top,#000 0,#000 56%,transparent 100%)}
    .override-eq-v18 i{max-width:24px!important;min-width:2px!important;background:linear-gradient(to top,hsla(var(--ov-hue),98%,58%,.88),hsla(calc(var(--ov-hue) + 58),94%,69%,.63))!important}
    .override-heart-v18{inset:2.5%!important;border-width:1px!important;border-radius:30px!important;opacity:.54}
    .override-visualizer-v18::before{background:radial-gradient(circle at 50% 77%,hsla(var(--ov-hue),95%,62%,calc(var(--ov-alpha) * .65)),transparent 55%),linear-gradient(180deg,transparent 54%,hsla(var(--ov-hue),90%,55%,.035))!important}
    body.reduced-flashes .override-visualizer-v18.active{opacity:.19!important}

    /* PulseChart v18.3 — duel HUD alignment */
    .sudden-death-hud{top:132px!important;width:min(1060px,88vw)!important;grid-template-columns:minmax(220px,1fr) 92px minmax(220px,1fr)!important;gap:18px!important;align-items:start!important}
    .sudden-death-hud>.sd-health,.sudden-death-hud>.sd-center{grid-row:1!important;align-self:start!important}
    .sudden-death-hud .sd-center{padding-top:18px}
    .sudden-death-hud .sd-label{min-height:18px;margin-bottom:6px;font-size:13px;line-height:1.1}
    .sudden-death-hud .sd-track{height:17px}
    @media(max-width:760px){.sudden-death-hud{top:138px!important;width:92vw!important;grid-template-columns:minmax(120px,1fr) 58px minmax(120px,1fr)!important;gap:7px!important}.sudden-death-hud .sd-center{padding-top:14px}.sudden-death-hud .sd-label{font-size:10px}.sudden-death-hud .sd-track{height:13px}}


    /* PulseChart v19 — Online multiplayer */
    .online-menu-btn{border-color:rgba(116,241,255,.35)!important;box-shadow:0 0 18px rgba(74,220,255,.08)}
    .online-menu-btn.online-live{color:#75f6be!important;border-color:#75f6be!important;box-shadow:0 0 22px rgba(117,246,190,.2)}
    .online-dialog{width:min(780px,95vw)}.online-hero{display:flex;justify-content:space-between;gap:18px;align-items:start;padding:14px;border:1px solid rgba(116,241,255,.16);border-radius:18px;background:linear-gradient(135deg,rgba(116,241,255,.08),rgba(139,124,255,.05));margin-bottom:12px}.online-hero b{font-size:15px}.online-hero small{display:block;color:#9fa9c8;margin-top:4px}.online-live-dot{width:10px;height:10px;border-radius:50%;background:#62f3a7;box-shadow:0 0 14px #62f3a7;display:inline-block;margin-right:6px}.online-tabs{display:flex;gap:7px;margin:10px 0}.online-tabs button{flex:1}.online-tabs button.active{border-color:#74f1ff;color:#74f1ff;background:rgba(116,241,255,.09)}.online-panel{display:grid;gap:12px}.online-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.online-current-song{padding:12px;border-radius:14px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08)}.online-current-song b,.online-current-song span{display:block}.online-current-song span{color:#aeb8d6;font-size:11px;margin-top:4px}.online-status{min-height:20px;font-size:11px;color:#b8c4e7}.online-status.error{color:#ff8ba0}.online-status.good{color:#7ff0bc}.online-code{font-size:clamp(38px,8vw,70px);font-weight:1000;letter-spacing:.16em;text-align:center;color:#fff;text-shadow:0 0 24px rgba(116,241,255,.45);padding:14px}.online-players{display:grid;grid-template-columns:1fr 1fr;gap:10px}.online-player{padding:13px;border-radius:15px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04)}.online-player.you{border-color:rgba(116,241,255,.42)}.online-player b,.online-player small{display:block}.online-player small{color:#a8b4d4;margin-top:4px}.online-ready{color:#73efae!important}.online-waiting{color:#ffd56a!important}.online-progress{height:8px;border-radius:999px;background:#171d32;overflow:hidden}.online-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,#6be9ff,#8b7cff);transition:width .15s}.online-warning{font-size:10px;line-height:1.45;color:#9fa9c8}.online-match-hud{position:fixed;right:18px;top:18px;z-index:55;display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:14px;background:rgba(5,9,20,.78);border:1px solid rgba(116,241,255,.28);backdrop-filter:blur(12px);box-shadow:0 8px 30px rgba(0,0,0,.3)}.online-match-hud[hidden]{display:none!important}.online-match-hud b{font-size:10px;letter-spacing:.08em}.online-match-hud small{font-size:9px;color:#aeb8d8}.online-match-hud button{padding:6px 8px;font-size:9px}.online-countdown-badge{position:fixed;left:50%;top:16%;transform:translateX(-50%);z-index:70;padding:8px 13px;border-radius:999px;background:rgba(5,9,20,.82);border:1px solid rgba(116,241,255,.3);font-size:10px;font-weight:1000;letter-spacing:.14em;color:#dffcff;pointer-events:none}.online-countdown-badge[hidden]{display:none!important}
    @media(max-width:700px){.online-grid,.online-players{grid-template-columns:1fr}.online-match-hud{right:8px;top:8px}.online-dialog{width:96vw}}

/* PulseChart v20 — online rooms, lobby chat, route selector and easier match controls */
.play-target-v20{display:grid;grid-template-columns:minmax(180px,.7fr) 1.3fr;gap:10px;align-items:end;margin:10px 0 12px;padding:11px;border-radius:14px;border:1px solid rgba(116,241,255,.16);background:linear-gradient(135deg,rgba(116,241,255,.055),rgba(139,124,255,.035))}
.play-target-v20 label{margin:0}.play-target-v20>div{font-size:10px;line-height:1.45;color:#aeb8d6;padding:5px 2px}
.online-dialog{width:min(900px,96vw);max-height:92vh;overflow:auto}.online-tabs{grid-template-columns:repeat(3,1fr)}
.online-config-summary,.online-lobby-meta{padding:10px 12px;border-radius:12px;border:1px solid rgba(116,241,255,.13);background:rgba(116,241,255,.045);color:#c9d5f4;font-size:10px;line-height:1.45}
.online-lobby-meta{text-align:center;font-weight:900;letter-spacing:.1em;color:#dffcff}
.online-browser-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.online-browser-head small{display:block;color:#8f9abd;margin-top:2px}
.online-room-browser{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:390px;overflow:auto;padding-right:3px}
.online-room-card{display:grid;grid-template-columns:76px 1fr auto;gap:11px;align-items:center;padding:10px;border:1px solid rgba(255,255,255,.09);border-radius:15px;background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.022));transition:.16s transform,.16s border-color,.16s background}
.online-room-card:hover{transform:translateY(-2px);border-color:rgba(116,241,255,.3);background:linear-gradient(145deg,rgba(116,241,255,.075),rgba(139,124,255,.03))}
.online-room-thumb{height:64px;border-radius:12px;display:grid;place-items:center;font-size:24px;font-weight:1000;letter-spacing:.03em;color:white;background:linear-gradient(145deg,hsl(var(--room-hue,190) 62% 42%),hsl(calc(var(--room-hue,190) + 55) 58% 16%));box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.online-room-info{min-width:0}.online-room-info b,.online-room-info small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.online-room-info small{color:#98a5c7;margin-top:3px}.online-room-info .room-mode{color:#79efff;font-weight:850;font-size:9px;letter-spacing:.05em}.online-room-card button{padding:8px 10px;font-size:10px}.online-empty{grid-column:1/-1;padding:28px;text-align:center;color:#8f9abd;border:1px dashed rgba(255,255,255,.1);border-radius:14px}
.online-lobby-actions{grid-template-columns:1fr 1fr 1fr}.online-chat-wrap{display:grid;gap:7px;padding:10px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(2,5,14,.4)}.online-chat-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.online-chat-head small{color:#7f8aaa;font-size:9px}.online-chat-messages{height:150px;overflow:auto;padding:6px 7px;border-radius:10px;background:rgba(0,0,0,.22);display:flex;flex-direction:column;gap:6px}.online-chat-message{font-size:10px;line-height:1.4;color:#cbd6f5;word-break:break-word}.online-chat-message b{color:#79efff;margin-right:6px}.online-chat-message.you b{color:#75f6be}.online-chat-system{font-size:9px;color:#7f8aaa;font-style:italic}.online-chat-input{display:grid;grid-template-columns:1fr auto;gap:7px}.online-chat-input input{min-width:0;background:#0b1020;color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:10px}.online-chat-input button{padding:8px 14px}.online-big-leave,.online-match-hud .online-big-leave,#onlineHudLeaveV19{padding:10px 15px!important;font-size:11px!important;font-weight:1000!important;min-width:82px}.online-match-hud{padding:10px 12px;gap:11px}
.online-commend-dialog{width:min(500px,92vw);text-align:center}.commend-icon{font-size:44px;color:#ffd66b;text-shadow:0 0 24px rgba(255,214,107,.42)}.commend-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}.commend-grid button{padding:13px 8px}.online-player.host b:after{content:' HOST';font-size:8px;color:#ffd66b;margin-left:5px;letter-spacing:.08em}.online-player .side-chip{display:inline-flex;margin-top:6px;padding:3px 7px;border-radius:999px;background:rgba(116,241,255,.08);color:#bff8ff;font-size:8px;font-weight:900;letter-spacing:.08em}
@media(max-width:760px){.play-target-v20{grid-template-columns:1fr}.online-room-browser{grid-template-columns:1fr}.online-lobby-actions{grid-template-columns:1fr}.commend-grid{grid-template-columns:1fr}.online-room-card{grid-template-columns:58px 1fr}.online-room-card>button{grid-column:1/-1}.online-room-thumb{height:52px}.online-chat-head{display:block}}

/* PulseChart v20.1 — synced online profile avatars */
.online-player{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center}
.online-player-avatar-v201{grid-row:1/3;width:44px;height:44px;border-radius:13px;border:1px solid rgba(255,255,255,.18);background:linear-gradient(145deg,#26345e,#101729);background-size:cover;background-position:center;display:grid;place-items:center;font-size:12px;font-weight:1000;color:#fff;box-shadow:0 5px 18px rgba(0,0,0,.28);overflow:hidden}
.online-player-avatar-v201.has-photo{background-color:#0a0e19}
.online-player.you .online-player-avatar-v201{border-color:rgba(116,241,255,.55);box-shadow:0 0 18px rgba(116,241,255,.13)}
.online-player b,.online-player small,.online-player .side-chip{grid-column:2}
body.online-dual-active .game-card{border-color:rgba(116,241,255,.26)}

/* PulseChart v20.3 — in-game HUD polish */
.game-card .topbar{position:relative;min-height:104px;padding-right:164px}
.game-card .stats{position:absolute;top:58px;left:16px;display:grid;grid-template-columns:repeat(2,minmax(84px,max-content));gap:8px;justify-content:start;align-items:start;z-index:56;max-width:210px}
body.hud-solo-v203 .game-card .stats{left:18px;right:auto}
body.hud-player-left-v203 .game-card .stats{left:18px;right:auto}
body.hud-player-right-v203 .game-card .stats{left:calc(50% + 12px);right:auto}
.game-card .stats .pill{font-size:13px;padding:8px 11px;background:rgba(8,10,23,.72);backdrop-filter:blur(7px);border-color:rgba(255,255,255,.12)}
.game-card .stats .pill:nth-child(n+7){font-size:12px}
@media(max-width:980px){
  .game-card .topbar{min-height:118px;padding-right:0}
  body.hud-player-right-v203 .game-card .stats{left:calc(50% + 4px)}
  .game-card .stats{grid-template-columns:repeat(2,minmax(74px,max-content));max-width:190px;gap:6px}
  .game-card .stats .pill{font-size:12px;padding:7px 9px}
}

.hud-message{top:88px!important;transform:translate(-50%,0);font-size:clamp(18px,2.8vw,32px)!important;letter-spacing:.03em;opacity:0;transition:opacity .12s ease,transform .18s ease!important;text-shadow:0 3px 16px rgba(0,0,0,.65)}
.hud-message.show{opacity:1;transform:translate(-50%,-5px)}
.hud-message[data-tone="miss"]{color:#b7bcc7!important}
.hud-message[data-tone="bad"]{color:#ff6a78!important}
.hud-message[data-tone="great"]{color:#69f0a3!important}
.hud-message[data-tone="perfect"]{color:#ffe55c!important;text-shadow:0 0 20px rgba(255,229,92,.9),0 3px 14px rgba(0,0,0,.65)!important}

.sudden-death-hud{left:0!important;right:0!important;top:126px!important;transform:none!important;width:100%!important;z-index:58!important;pointer-events:none}
.sudden-death-hud .sd-center{display:none!important}
.sudden-death-hud .sd-health{position:absolute;display:flex;flex-direction:column;align-items:center;gap:8px;min-width:58px}
.sudden-death-hud .sd-health.sd-rival{left:calc(50% - 72px)}
.sudden-death-hud .sd-health.sd-you{left:calc(50% + 20px)}
.sudden-death-hud .sd-label{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;margin:0;font-size:11px;line-height:1.05;text-align:center;background:rgba(7,9,20,.68);border:1px solid rgba(255,255,255,.10);border-radius:12px;padding:6px 7px;backdrop-filter:blur(6px)}
.sudden-death-hud .sd-track{width:16px;height:clamp(240px,50vh,430px);padding:2px;border-radius:999px;display:flex;align-items:flex-end;justify-content:center;background:rgba(5,7,17,.88);box-shadow:0 12px 28px rgba(0,0,0,.28)}
.sudden-death-hud .sd-fill{width:100%;height:100%;transition:height .22s ease,filter .16s ease!important}
.sudden-death-hud .sd-health[data-side="right"] .sd-track{transform:none!important}
.sudden-death-hud .sd-rival .sd-fill{background:linear-gradient(180deg,#ffcb69,#ff557d)}
.sudden-death-hud .sd-you .sd-fill{background:linear-gradient(180deg,#dffb72,#52efa1)}
.boss-battle .sudden-death-hud .sd-track{height:clamp(250px,52vh,450px)}
@media(max-width:760px){
  .sudden-death-hud{top:148px!important}
  .sudden-death-hud .sd-health.sd-rival{left:calc(50% - 58px)}
  .sudden-death-hud .sd-health.sd-you{left:calc(50% + 10px)}
  .sudden-death-hud .sd-track{width:12px;height:clamp(180px,40vh,320px)}
  .sudden-death-hud .sd-label{font-size:9px;padding:5px 6px}
}

/* PulseChart v20.4 — menu logo restore + mirrored in-game HUD */
.menu-logo-lockup{display:flex;flex-direction:column;gap:8px;align-items:flex-start;max-width:min(560px,100%)}
.menu-main-logo{display:block;width:min(560px,90vw);max-width:100%;height:auto;filter:drop-shadow(0 14px 26px rgba(0,0,0,.28));user-select:none;-webkit-user-drag:none}
@media (max-width:760px){.menu-main-logo{width:min(420px,92vw)}}


/* v20.6: card-relative HUD with reserved outer columns. */
.game-card{--stats-width-v206:174px;--hud-gutter-v206:246px}
#stage{width:calc(100% - 2 * var(--hud-gutter-v206));margin-inline:auto}
#playerStatsV206,#rivalStatsV206{position:absolute!important;top:var(--stats-top-v206,120px)!important;bottom:auto!important;width:var(--stats-width-v206)!important;max-width:none!important;max-height:var(--stats-height-v206,420px);overflow:auto;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important;z-index:60;visibility:visible!important}
#playerStatsV206[data-side="left"],#rivalStatsV206[data-side="left"]{left:14px!important;right:auto!important}
#playerStatsV206[data-side="right"],#rivalStatsV206[data-side="right"]{left:auto!important;right:14px!important}
.game-card .stats .pill{min-width:0;padding:8px!important;font-size:12px!important;border-radius:12px!important;background:rgba(6,10,25,.88)!important;overflow-wrap:anywhere}
.game-card .stats .pill b{display:block;font-size:17px;line-height:1.2;margin-top:3px}
.rival-title-v206{grid-column:1/-1;font-weight:900;color:#ffb8d1}
#powerQueuePanel{top:var(--power-top-v206,110px)!important;width:var(--stats-width-v206)!important;max-height:var(--power-height-v206,260px);overflow:auto;padding:10px!important;z-index:60;pointer-events:auto}
#powerQueuePanel[data-side="left"]{left:14px!important;right:auto!important}
#powerQueuePanel[data-side="right"]{left:auto!important;right:14px!important}
#powerQueuePanel .power-queue-title{font-size:13px;display:block;letter-spacing:0}
#powerQueuePanel .power-queue-title small{display:block;font-size:10px;text-align:left;margin-top:5px}
#powerQueuePanel .power-card{padding:8px}
#powerQueuePanel .power-name{font-size:15px}
#powerQueuePanel .power-desc,#powerQueuePanel .power-active-status,#powerQueuePanel .rival-power-status{font-size:11px}
#suddenDeathHud{position:absolute!important;inset:0!important;width:auto!important;transform:none!important;display:block!important;pointer-events:none;z-index:61}
#suddenDeathHud .sd-center{display:none!important}
#suddenDeathHud .sd-health{position:absolute!important;right:auto!important;width:56px;min-width:0;display:flex;flex-direction:column;align-items:center;gap:8px;transform:none!important}
#suddenDeathHud .sd-label{width:56px;display:flex;flex-direction:column!important;align-items:center;gap:3px;padding:6px 2px;margin:0;font-size:10px;background:rgba(6,10,25,.88);border-radius:10px}
#suddenDeathHud .sd-label span{max-width:100%;overflow:hidden;text-overflow:ellipsis}
#suddenDeathHud .sd-track{height:var(--hp-bar-height,300px)!important;width:14px;padding:2px;display:flex;align-items:flex-end;transform:none!important}
#suddenDeathHud .sd-fill{width:100%;transition:height .22s ease}
/* Visibility must win over every historical display rule, including on first paint. */
body.pc-menu-open #powerQueuePanel,body.pc-menu-open #suddenDeathHud,body.pc-menu-open .game-card .stats,
#powerQueuePanel[hidden],#suddenDeathHud[hidden],#playerStatsV206[hidden],#rivalStatsV206[hidden],.game-card .stats .pill[hidden]{display:none!important}
@media(max-width:1200px){.game-card{--stats-width-v206:140px;--hud-gutter-v206:212px}.game-card .stats .pill b{font-size:14px}}
@media(max-width:1200px){.app{min-width:780px}body{overflow:auto}.game-card{min-width:780px}.app:not(.controls-collapsed){grid-template-columns:minmax(780px,1fr) 310px}}

/* v20.7: centered countdown, independent of lane judgements. */
.countdown-overlay-v207{position:fixed;inset:0;z-index:180;display:grid;place-items:center;pointer-events:none;background:radial-gradient(ellipse at center,rgba(8,10,28,.18),transparent 65%)}
.countdown-overlay-v207[hidden],.online-between-v207[hidden],#setupFnfSoloWrapV207[hidden]{display:none!important}
.countdown-burst-v207{position:relative;display:grid;place-items:center;width:clamp(200px,35vw,400px);aspect-ratio:1;color:var(--countdown-color,#fff)}
#countdownNumberV207{font-size:clamp(100px,18vw,220px);font-weight:1000;line-height:1;letter-spacing:-.05em;text-shadow:0 0 38px var(--countdown-color),0 10px 35px rgba(0,0,0,.8)}
.countdown-caption-v207{position:absolute;top:6%;font-size:clamp(12px,2vw,18px);font-weight:900;letter-spacing:.3em;color:#fff}
.countdown-ring-v207{position:absolute;inset:0;border:2px solid currentColor;border-radius:50%;box-shadow:0 0 30px currentColor,inset 0 0 24px currentColor;opacity:0}
.countdown-overlay-v207.animate .countdown-burst-v207{animation:countdownNumberV207 .76s cubic-bezier(.16,.8,.25,1) both}
.countdown-overlay-v207.animate .countdown-ring-v207{animation:countdownRingV207 .76s ease-out both}
.countdown-go-v207 #countdownNumberV207{font-size:clamp(90px,15vw,180px);letter-spacing:-.08em;color:#fff}
@keyframes countdownNumberV207{0%{opacity:0;transform:translateY(28px) scale(.45) rotate(-9deg)}24%{opacity:1;transform:translateY(0) scale(1.09) rotate(2deg)}45%,70%{opacity:1;transform:scale(1) rotate(0)}100%{opacity:0;transform:scale(1.18)}}
@keyframes countdownRingV207{0%{opacity:.8;transform:scale(.3)}75%{opacity:.1}100%{opacity:0;transform:scale(1.4)}}
body.reduced-motion .countdown-overlay-v207.animate .countdown-burst-v207{animation:countdownFadeV207 .76s linear both}
body.reduced-motion .countdown-ring-v207{display:none}
@keyframes countdownFadeV207{0%,100%{opacity:0}15%,80%{opacity:1}}
@media(prefers-reduced-motion:reduce){.countdown-overlay-v207.animate .countdown-burst-v207{animation:countdownFadeV207 .76s linear both}.countdown-ring-v207{display:none}}
/* Header and close button stay visible; only the content scrolls on short screens. */
#onlineModalV19{padding:12px}
#onlineModalV19 .online-dialog{width:min(920px,100%);max-height:calc(100dvh - 24px);display:flex;flex-direction:column;overflow:hidden;padding:16px;gap:12px}
#onlineModalV19 .online-hero{flex-shrink:0;margin:0;padding:10px;align-items:center;gap:14px}
#onlineModalV19 .online-hero h2{font-size:clamp(16px,3vw,23px)}
#onlineModalV19 .online-hero small{font-size:12px}
.online-close-v207{flex-shrink:0;min-width:44px;min-height:44px;font-size:20px;line-height:1}
.online-dialog-body-v207{min-height:0;overflow:auto;overscroll-behavior:contain;padding:2px}
#onlineModalV19 .modal-actions{flex-shrink:0;margin:0;justify-content:flex-end}
#onlineModalV19 .online-tabs{margin:0 0 10px}
#onlineModalV19 #onlineLobbyV19{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}
#onlineModalV19 .online-lobby-info-v207{display:grid;gap:10px;min-width:0}
#onlineModalV19 .online-code{font-size:38px;padding:0;line-height:1.2}
#onlineModalV19 .online-chat-wrap{margin:0;min-width:0}
#onlineModalV19 .online-chat-messages{height:clamp(100px,24vh,220px)}
#onlineModalV19 .online-room-browser{max-height:38vh;overflow:auto}
#onlineModalV19 .online-lobby-actions{grid-template-columns:1fr 1fr}
#onlineReadyV19{grid-column:1/-1}
#onlineModalV19 .online-warning{font-size:12px}
.online-between-v207{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);z-index:110;width:min(560px,calc(100vw - 24px));padding:16px 18px;border:1px solid rgba(116,241,255,.35);border-radius:18px;background:rgba(8,13,31,.95);box-shadow:0 15px 45px rgba(0,0,0,.5);backdrop-filter:blur(16px)}
.online-between-v207 b{font-size:12px;letter-spacing:.15em;color:#74f1ff}.online-between-v207 p{font-size:14px;margin:7px 0 12px}.online-between-actions-v207{display:flex;gap:8px}.online-between-actions-v207 button{flex:1}
@media(max-width:640px){#onlineModalV19 .online-dialog{padding:10px}#onlineModalV19 #onlineLobbyV19{grid-template-columns:1fr}#onlineModalV19 .online-hero small{display:none}#onlineModalV19 .online-chat-messages{height:100px}}

#onlineModalV19 [hidden]{display:none!important}
body.reduced-flashes .countdown-ring-v207{display:none}
body.reduced-flashes #countdownNumberV207{text-shadow:0 4px 16px rgba(0,0,0,.65)}
/* v20.8: playlists and readable feedback. */
.playlists-dialog-v208{width:min(960px,100%);display:flex;flex-direction:column;gap:14px;max-height:calc(100dvh - 36px)}
.playlists-header-v208{display:flex;justify-content:space-between;align-items:center;gap:16px;position:sticky;top:-20px;background:#141a31;z-index:2;padding:8px 0}
.playlists-header-v208 small{color:#a9b0cf}.playlists-header-v208 button{min-width:44px;min-height:44px}
.playlist-select-v208,.playlist-name-v208{display:flex;gap:8px}.playlist-select-v208 select,.playlist-name-v208 input{flex:1;min-width:0}
.playlists-dialog-v208 input{background:#090d1d;border:1px solid #38415f;border-radius:10px;padding:10px;color:#fff}
.playlist-columns-v208{display:grid;grid-template-columns:1fr 1fr;gap:20px;min-height:160px}.playlist-columns-v208 section{min-width:0}.playlist-columns-v208 h3{font-size:12px;letter-spacing:.12em;color:#74f1ff}
.playlist-list-v208{max-height:34vh;overflow:auto;overscroll-behavior:contain}.playlist-track-v208{display:flex;align-items:center;gap:5px;padding:8px 0;border-bottom:1px solid #ffffff12}.playlist-track-v208 span{flex:1;min-width:0;overflow-wrap:anywhere;font-size:14px}.playlist-track-v208 button{padding:6px 10px;min-height:34px}.playlist-columns-v208 input{width:100%;margin-bottom:8px}
@media(max-width:620px){.playlist-columns-v208{grid-template-columns:1fr}.playlist-name-v208{flex-wrap:wrap}.playlist-list-v208{max-height:24vh}}
.performance-banner-v208{position:absolute;top:48%;left:50%;transform:translate(-50%,-50%);z-index:68;pointer-events:none;white-space:nowrap;letter-spacing:.16em;font-weight:1000;font-style:italic;font-size:clamp(20px,4vw,46px);color:#a4faff;text-shadow:0 0 24px #35d5ff80,0 5px 20px #000}
.performance-banner-v208[hidden],#resultStopPlaylistV208[hidden]{display:none!important}.performance-banner-v208[data-kind="combo"]{top:28%;font-size:clamp(16px,2.5vw,26px);color:#ffdf78}
.performance-banner-v208.show{animation:performanceArrivalV208 .85s cubic-bezier(.18,.85,.24,1) both}
@keyframes performanceArrivalV208{0%{opacity:0;transform:translate(-50%,-50%) scale(.78);letter-spacing:.35em}22%,70%{opacity:1;transform:translate(-50%,-50%) scale(1);letter-spacing:.16em}100%{opacity:0;transform:translate(-50%,-65%) scale(1.04)}}
#judge.show{animation:judgePopV208 .42s cubic-bezier(.16,.85,.25,1) both}
#judge[data-tone="perfect"]{color:#ffe887!important;text-shadow:0 0 8px #fff2b8,0 0 22px #ffc94f99,0 0 40px #ffae3933,0 4px 10px #000!important}
#judge[data-tone="miss"].show{animation:judgeMissV208 .42s ease-out both}
#judge[data-tone="bad"].show{animation:judgeBadV208 .42s ease-out both}
@keyframes judgePopV208{0%{opacity:0;transform:translate(-50%,10px) scale(.65)}30%{opacity:1;transform:translate(-50%,-5px) scale(1.12)}65%{opacity:1;transform:translate(-50%,-5px) scale(1)}100%{opacity:0;transform:translate(-50%,-20px) scale(.96)}}
@keyframes judgeMissV208{0%{opacity:0;transform:translate(-50%,-12px)}22%,65%{opacity:1;transform:translate(-50%,-5px)}100%{opacity:0;transform:translate(-50%,13px)}}
@keyframes judgeBadV208{0%{opacity:0;transform:translate(-50%,0) rotate(-5deg) scale(.8)}28%{opacity:1;transform:translate(-50%,-5px) rotate(3deg)}65%{opacity:1;transform:translate(-50%,-5px) rotate(0)}100%{opacity:0;transform:translate(-50%,-12px)}}
/* Override surrounds the highway while keeping its centre clear. */
.override-active-v208{box-shadow:inset 0 0 0 1px #7cfaff80,0 0 28px #25c5ff33!important}
.override-active-v208 #overdriveFx{opacity:1;background:linear-gradient(90deg,#20c9ff22,transparent 16%,transparent 84%,#9164ff22);box-shadow:inset 0 0 45px #46eaff22;animation:overrideBreatheV208 1.8s ease-in-out infinite alternate}
.override-visualizer-v18 .override-heart-v18{display:none}
.override-visualizer-v18.active{background:radial-gradient(ellipse at 0% 55%,#40dfff16,transparent 40%),radial-gradient(ellipse at 100% 55%,#a877ff16,transparent 40%)}
@keyframes overrideBreatheV208{from{filter:brightness(.85)}to{filter:brightness(1.2)}}
.fc-celebrate-v208{color:#b7fff0!important;text-shadow:0 0 18px #59ffc66b;animation:fcArrivalV208 1.1s cubic-bezier(.18,.85,.24,1) both}
@keyframes fcArrivalV208{0%{opacity:0;transform:scale(.6) rotate(-5deg)}35%{opacity:1;transform:scale(1.12) rotate(2deg)}65%,100%{opacity:1;transform:scale(1) rotate(0)}}
.scene-enter-v208{animation:sceneArrivalV208 .38s ease-out both}
@keyframes sceneArrivalV208{from{opacity:.25;filter:blur(5px)}to{opacity:1;filter:blur(0)}}
body.pc-menu-open .performance-banner-v208{display:none!important}
@keyframes feedbackFadeV208{0%,100%{opacity:0}20%,75%{opacity:1}}
body.reduced-motion #judge.show,body.reduced-motion .performance-banner-v208.show{animation:feedbackFadeV208 .42s linear both!important}
body.reduced-motion .scene-enter-v208,body.reduced-motion .fc-celebrate-v208,body.reduced-motion .override-active-v208 #overdriveFx{animation:none!important}
body.reduced-flashes #judge[data-tone="perfect"]{text-shadow:0 3px 12px #000!important}
body.reduced-flashes .override-active-v208 #overdriveFx{animation:none;opacity:.35}
@media(prefers-reduced-motion:reduce){#judge.show,.performance-banner-v208.show{animation:feedbackFadeV208 .42s linear both!important}.scene-enter-v208,.fc-celebrate-v208,.override-active-v208 #overdriveFx{animation:none!important}}

.override-active-v208 #overdriveFx::before{inset:0;background:linear-gradient(0deg,transparent 15%,#5af2ff44 48%,transparent 80%);mask-image:linear-gradient(90deg,#000,transparent 14%,transparent 86%,#000);animation:overrideSweepV208 2.4s linear infinite}
@keyframes overrideSweepV208{from{transform:translateY(70%)}to{transform:translateY(-70%)}}
body.reduced-motion .override-active-v208 #overdriveFx::before,body.reduced-flashes .override-active-v208 #overdriveFx::before{animation:none!important}
@media(prefers-reduced-motion:reduce){.override-active-v208 #overdriveFx::before{animation:none!important}}
/* v20.9 — clear feedback beside the highways, not over the notes. */
.sd-effects-v209{grid-column:1/-1;min-width:0;padding-top:5px;border-top:1px solid #ffffff18}
.sd-effects-v209[hidden],#sdKoV209[hidden]{display:none!important}
.sd-notice-v209{min-height:34px;font-size:12px;font-weight:900;line-height:1.35;overflow-wrap:anywhere;display:flex;align-items:center}
.sd-effect-list-v209{display:grid;gap:5px}.sd-effect-v209{position:relative;display:flex;justify-content:space-between;gap:5px;padding:6px 5px 8px;border-radius:7px;overflow:hidden;background:#ffffff07;border:1px solid #ffffff12;color:var(--effect-color);font-size:11px;line-height:1.25}.sd-effect-v209 span{min-width:0}.sd-effect-v209 b{white-space:nowrap;font-size:10px}.sd-effect-v209 i{position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--effect-color);transform-origin:left center}.sd-no-effects-v209{font-size:11px;color:#9aa7c7}
#suddenDeathHud .sd-danger-v209 .sd-track{border-color:#ff839b;box-shadow:0 0 15px #ff416c44}
#suddenDeathHud .sd-danger-v209 .sd-label::after{content:'LOW HP';font-size:9px;color:#ff9db1;letter-spacing:.06em}
#suddenDeathHud .sd-protected-v209 .sd-track{border-color:#8cefff;box-shadow:0 0 0 2px #65dfff55,0 0 14px #65dfff33}
#sdKoV209{position:fixed;inset:0;z-index:195;display:grid;place-items:center;pointer-events:none;background:radial-gradient(ellipse at center,#151328d9,#040612ed)}
#sdKoV209>div{text-align:center;animation:koArrivalV209 .75s cubic-bezier(.18,.85,.25,1) both;padding:24px}
#sdKoV209 small{font-size:14px;letter-spacing:.24em;color:#ffbd84;font-weight:900}#sdKoV209 strong{display:block;font-size:clamp(80px,18vw,210px);font-weight:1000;font-style:italic;color:#fff0d9;line-height:1.1;text-shadow:0 0 30px #ff724c55}#sdKoV209 p{font-size:16px;color:#eac5c0;margin:8px 0;overflow-wrap:anywhere}
@keyframes koArrivalV209{0%{opacity:0;transform:scale(1.3)}24%,80%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.97)}}
body.reduced-motion #sdKoV209>div{animation:feedbackFadeV208 .45s linear both}
body.reduced-flashes #sdKoV209 strong{text-shadow:none}
body.reduced-flashes #suddenDeathHud .sd-danger-v209 .sd-track,body.reduced-flashes #suddenDeathHud .sd-protected-v209 .sd-track{box-shadow:none}
@media(prefers-reduced-motion:reduce){#sdKoV209>div{animation:feedbackFadeV208 .45s linear both}}
/* Team-Up v20.11 */
#teamHud{position:relative;z-index:4;max-width:900px;margin:0 auto 12px;padding:14px 20px;border:1px solid #ff577555;border-radius:18px;background:linear-gradient(130deg,#261026ed,#101528ed);text-align:center}
#teamHud[hidden],.team-intro[hidden]{display:none!important}.team-boss-name{font-size:clamp(16px,2vw,24px);font-weight:1000;letter-spacing:.17em;color:#ffe3e7;margin-bottom:9px;text-shadow:0 0 20px #ff315788}
.team-boss-track{position:relative;overflow:hidden;border:1px solid #ff7e91;border-radius:7px;height:25px;background:#360d21;box-shadow:0 0 22px #ff31572b}
.team-boss-track i{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#b91032,#f72848,#ff5b70);width:100%;transition:width .18s ease}
.team-boss-track b{position:relative;line-height:25px;font-size:12px;text-shadow:0 1px 3px #280519}
.team-allies{display:flex;gap:24px;margin:11px 0 6px;flex-direction:row-reverse}.team-allies.team-human-left{flex-direction:row}.team-allies>div{flex:1;display:grid;grid-template-columns:auto 1fr;gap:5px 10px;text-align:left}.team-allies b{font-size:11px;color:#dce8ff}.team-allies progress{width:100%;height:10px;accent-color:#78ffc7;align-self:center}.team-allies span{grid-column:1/-1;font-size:11px;color:#b4c3df}.team-notice{min-height:18px;font-size:12px;color:#ffc9d8}
body.team-up .game-card{isolation:isolate}body.team-up .game-card::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(ellipse at center,#ef4f9700 30%,#f155ac 100%);opacity:var(--team-pulse,0);pointer-events:none;z-index:2}
body.team-up .star-meter,body.team-up #starPill,body.team-up #battlePillV10{display:none!important}
.team-intro{position:fixed;inset:0;z-index:15000;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:radial-gradient(ellipse at center,#51213cf5,#080d1cfa 65%);padding:30px;animation:team-intro-in .6s ease-out}
.team-intro>span{font-size:16px;letter-spacing:.5em;color:#ff91c3;font-weight:900}.team-intro h2{font-size:clamp(28px,6vw,70px);letter-spacing:.06em;color:#ffe0e8;text-shadow:0 0 40px #ff3559;margin:18px 0}.team-intro p{font-weight:900;color:#9bffd7}.team-intro>div{line-height:1.9;color:#d4def3;font-size:14px;margin-top:24px}
.team-particle,.team-burst{position:fixed;width:9px;height:9px;border-radius:50%;background:#ffe0f6;box-shadow:0 0 14px #ff50c7,0 0 25px #ff50c7;z-index:14000;pointer-events:none;transform:translate(-50%,-50%)}.team-burst{background:#ffc2ba;box-shadow:0 0 12px #ff495c}
#teamHud.team-shatter .team-boss-track{opacity:0;transition:opacity .5s}.team-results{max-width:850px!important}.team-results>span{letter-spacing:.35em;color:#ff88c8;font-size:12px;font-weight:900}.team-results h2{font-size:clamp(23px,4vw,40px);color:#ffe6f3}.team-result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0}.team-result-grid section{padding:18px 12px;border:1px solid #e284cd44;border-radius:16px;background:linear-gradient(145deg,#342440,#151c31);text-align:center}.team-result-grid section:last-child{border-color:#89ffd077}.team-result-grid h3{font-size:12px;letter-spacing:.1em;color:#d5dff3}.team-result-grid strong{font-size:44px;color:#ffc8ec;text-shadow:0 0 16px #ff63c277}.team-result-grid p{white-space:pre-line;font-size:12px;line-height:1.8;color:#c6d1e7}.team-result-sub{color:#b8c8e1;font-size:13px}.team-results .modal-actions{position:sticky;bottom:0;background:#11172b;padding:10px}
@keyframes team-intro-in{from{opacity:0;transform:scale(1.035)}to{opacity:1;transform:scale(1)}}
@media(max-width:650px){#teamHud{padding:10px}.team-allies{gap:12px}.team-result-grid{grid-template-columns:1fr}.team-result-grid section{padding:10px}.team-intro>div{font-size:12px}}
@media(prefers-reduced-motion:reduce){.team-intro{animation:none}.team-boss-track i{transition:none}body.team-up .game-card::after{display:none}}
body.reduced-motion .team-intro{animation:none}body.reduced-motion .team-boss-track i{transition:none}body.reduced-motion.team-up .game-card::after,body.reduced-flashes.team-up .game-card::after{display:none}
body.pc-menu-open #teamHud{display:none!important}
.team-particle::before,.team-particle::after{content:"";position:absolute;width:5px;height:5px;border-radius:50%;background:#ff91d9;box-shadow:0 0 8px #ff5bcd}.team-particle::before{left:-12px;top:11px;box-shadow:-8px 7px 0 -1px #ff96da}.team-particle::after{left:10px;top:13px;box-shadow:8px 8px 0 -1px #ffc1eb}
body.reduced-motion .team-particle::before,body.reduced-motion .team-particle::after{display:none}
@media(prefers-reduced-motion:reduce){.team-particle::before,.team-particle::after{display:none}}
/* v20.12: wide boss health directly above both highways. */
body.team-up #teamHud{box-sizing:border-box;flex:0 0 auto;align-self:center;width:calc(100% - 2 * var(--hud-gutter-v206));max-width:1080px;margin:0 auto 6px;padding:10px 16px;border-radius:14px;z-index:6}
body.team-up #teamHud .team-allies{display:none}
body.team-up #teamHud .team-boss-track{height:30px}
body.team-up #teamHud .team-boss-track b{line-height:30px}
body.team-up #teamHud .team-boss-name{font-size:clamp(15px,1.8vw,23px);letter-spacing:.12em;margin-bottom:7px}
body.team-up #teamHud .team-notice{margin-top:6px;font-size:11px}
body.team-up .game-card>.topbar{min-height:44px;padding-bottom:6px}
body.team-up #suddenDeathHud .sd-rival .sd-fill{background:linear-gradient(180deg,#9fe4ff,#46cbbb);box-shadow:0 0 14px #56e5d455}
body.team-up #suddenDeathHud .sd-health.sd-danger-v209 .sd-fill{background:linear-gradient(180deg,#ffb965,#ff4f71)}
/* v20.13: scale media only; notes, receptors and HUD stay fixed. */
.media-background img,.media-background video{transform:scale(var(--rhythm-zoom,1));transform-origin:center}
.media-background iframe{transform:scale(calc(1.07 * var(--rhythm-zoom,1)));transform-origin:center}
.game-card.beat-camera-pulse .beat-zoom-indicator{opacity:0}
@media(prefers-reduced-motion:reduce){.media-background img,.media-background video{transform:none}.media-background iframe{transform:scale(1.07)}}
body.reduced-motion .media-background img,body.reduced-motion .media-background video{transform:none}
body.reduced-motion .media-background iframe{transform:scale(1.07)}

/* v20.10 hosted FNF catalogue */
.fnf-other-sources{margin:12px 0}.fnf-other-sources summary{cursor:pointer;color:#bac5e7;padding:8px 0}.fnf-other-sources .repo-row{margin-top:8px}
#menuFnfPanel .menu-search-row{flex-wrap:wrap}#fnfFilter{min-width:160px;flex:1}
/* v20.15: mod sections and FNF background choices. */
.fnf-catalog-options{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:12px 0}.fnf-catalog-options label{display:grid;gap:6px;flex:1;min-width:170px;color:#c3cdeb;font-size:12px}.fnf-catalog-options select{width:100%;padding:10px;border-radius:10px;background:#151a30;color:#edf0ff;border:1px solid #596b8c66}#fnfBackgroundPreviewV215{width:120px;height:70px;object-fit:cover;border-radius:9px}#fnfSongResults.fnf-mod-list{display:flex;flex-direction:column;gap:20px}.fnf-mod-section{min-width:0;padding:14px;border:1px solid #6875a533;border-radius:16px;background:#080d1c66}.fnf-mod-heading{display:flex;align-items:center;gap:12px;margin-bottom:14px}.fnf-mod-heading img{width:56px;height:56px;object-fit:cover;border-radius:10px}.fnf-mod-heading h3{font-size:18px;margin:0;color:#f0e9ff;overflow-wrap:anywhere}.fnf-mod-heading span{margin-left:auto;white-space:nowrap;font-size:11px;color:#a7b4d5}
/* v20.16: character slots use the outside stats columns; never the note area. */
.fnf-character-v216{position:absolute;z-index:45;pointer-events:none;overflow:hidden;filter:drop-shadow(0 5px 9px #05071477)}
.fnf-character-v216.opponent{left:14px}.fnf-character-v216.player{right:14px}
.fnf-character-v216 canvas{width:100%;height:100%;display:block;background:transparent}
.fnf-character-v216[hidden],body.pc-menu-open .fnf-character-v216{display:none!important}
