:root{--white-key-width:30px;--black-key-width:18px;--white-key-height:180px;--black-key-height:110px;--keyboard-height:var(--white-key-height);--knob-size-min:58px;--knob-size-max:72px;--knob-dial-min-size:36px;--knob-dial-max-size:48px;--header-btn-min-size:72px;--header-btn-max-size:92px;--z-app-header:100;--z-library:80;--z-library-competitive:90;--z-library-upload:90;--z-competitive-notice:95;--z-competitive-confirm:120;--z-login:130;--z-audio-activation:140}html{box-sizing:border-box;overflow-x:hidden}*,:before,:after{box-sizing:inherit}body{text-align:center;color:#e8e8e8;background:#171717;margin:0;padding:16px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;overflow-x:hidden}.container{width:100%;max-width:100%;margin:0 auto}.header-menu-button{min-width:var(--header-btn-min-size);width:clamp(var(--header-btn-min-size), 20vw, var(--header-btn-max-size));height:clamp(var(--header-btn-min-size), 20vw, var(--header-btn-max-size));color:#baffd9;background:linear-gradient(145deg,#315f4b,#263d33);border-color:#75d3aa8c;padding:18px;box-shadow:inset 0 0 0 1px #baffd914,0 8px 24px #0000002e}.header-menu-button:hover{color:#e2ffef;background:linear-gradient(145deg,#397158,#2b493b);border-color:#75d3aa;transform:translateY(-1px)}.header-menu-button.active{color:#e2ffef;background:#2b493b;border-color:#75d3aa;box-shadow:inset 0 0 0 1px #baffd91f}.header-menu-button svg{fill:currentColor;stroke:none;filter:drop-shadow(0 3px 7px #0000003d);width:100%;height:100%;display:block}.header-competitive-button{min-width:var(--header-btn-min-size);width:clamp(var(--header-btn-min-size),20vw,var(--header-btn-max-size));height:clamp(var(--header-btn-min-size),20vw,var(--header-btn-max-size));color:#ffc2c2;background:linear-gradient(145deg,#663737,#432828);border-color:#d982829e;padding:15px;box-shadow:inset 0 0 0 1px #ffc2c212,0 8px 24px #0000002e}.header-competitive-button:hover{color:#ffe5e5;background:linear-gradient(145deg,#794040,#512e2e);border-color:#d98282;transform:translateY(-1px)}.header-competitive-button.active{color:#fff0f0;background:#512e2e;border-color:#d98282;box-shadow:inset 0 0 0 1px #ffc2c21f}.header-competitive-button svg{fill:none;stroke:currentColor;stroke-width:4px;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 3px 7px #00000047);width:100%;height:100%;display:block}.header-section{box-sizing:border-box;background:#202020;border:1px solid #2d2d2d;border-radius:4px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;padding:10px 12px;display:flex;position:relative}.header-wordmark{z-index:0;color:#0000007a;letter-spacing:.26em;text-indent:.26em;white-space:nowrap;-webkit-user-select:none;user-select:none;pointer-events:none;font-family:Avenir Next,Segoe UI Variable Display,Helvetica Neue,sans-serif;font-size:clamp(36px,4.8vw,62px);font-weight:800;font-stretch:75%;line-height:.9;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.header-section>button,.header-section>.controls-row,.header-section>.header-left-actions{z-index:1;position:relative}.header-left-actions{align-items:center;gap:7px;display:flex}.container.competitive-active>:not(.header-section):not(.competitive-shell):not(.library-menu):not(.competitive-confirm-backdrop):not(.login-backdrop),.container.menu-active>:not(.header-section):not(.library-menu):not(.login-backdrop){display:none}body:has(.container.menu-active){overflow:hidden}.container.competitive-active .library-menu{z-index:var(--z-library-competitive)}.container.competitive-match-active .library-menu-competitive{top:calc(clamp(var(--header-btn-min-size),20vw,var(--header-btn-max-size)) + 29px)}.library-menu-competitive{grid-template-rows:70px minmax(0,1fr)}.library-menu-competitive .library-menu-header{grid-template-columns:minmax(0,1fr) 150px;padding:10px 14px}.library-menu-competitive .library-menu-brand,.library-menu-competitive .library-view-switch,.library-menu-competitive .library-import,.library-menu-competitive .library-account,.library-menu-competitive .library-login,.library-menu-competitive .library-close,.library-menu-competitive .library-menu-nav{display:none}.library-menu-competitive .library-menu-header>input[type=search]{grid-column:1;width:100%;height:44px}.library-menu-competitive .library-menu-header>select{grid-column:2;width:100%;height:44px}.library-menu-competitive .library-menu-body{grid-template-columns:minmax(0,1fr)}.library-menu-competitive .library-menu-content{box-sizing:border-box;width:min(1180px,100%);margin:0 auto;padding:38px}.library-menu-competitive .library-songs{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.library-menu-competitive .library-songs article>button:not(.library-song-main){display:none}.library-menu-competitive .library-song-main{width:100%}@media (max-width:700px){.library-menu-competitive{grid-template-rows:116px minmax(0,1fr)}.library-menu-competitive .library-menu-header{grid-template-rows:44px 44px;grid-template-columns:minmax(0,1fr);gap:8px;padding:10px}.library-menu-competitive .library-menu-header>input[type=search]{grid-area:1/1}.library-menu-competitive .library-menu-header>select{grid-area:2/1}.library-menu-competitive .library-menu-content{padding:12px}.library-menu-competitive .library-songs{grid-template-columns:minmax(0,1fr)}.container.competitive-match-active .library-menu-competitive{top:88px}}.library-menu .library-menu-brand,.library-menu .library-close{display:none}.library-menu:not(.library-menu-competitive) .library-menu-header{grid-template-columns:minmax(220px,1fr) 118px auto 44px auto}@media (max-width:800px){.library-menu{grid-template-rows:auto minmax(0,1fr);height:auto;top:88px}.library-menu:not(.library-menu-competitive) .library-menu-header{grid-template-rows:44px 44px 44px;grid-template-columns:minmax(0,1fr) auto auto}.library-menu:not(.library-menu-competitive) .library-menu-header>input{grid-area:1/1/auto/-1}.library-menu:not(.library-menu-competitive) .library-menu-header>select{grid-area:2/1}.library-menu:not(.library-menu-competitive) .library-view-switch{grid-area:2/2/auto/4}.library-menu:not(.library-menu-competitive) .library-import{grid-area:3/1}.library-menu:not(.library-menu-competitive) .library-login,.library-menu:not(.library-menu-competitive) .library-account{grid-area:3/2/auto/4}}.container.competitive-active .header-section{margin-bottom:8px}.container.competitive-match-active .header-section{min-height:calc(var(--header-btn-min-size) + 20px)}.container.competitive-match-active .header-wordmark{display:none}.container.competitive-active .competitive-shell{border:1px solid #2d2d2d;border-radius:4px;min-height:calc(100vh - 120px);position:relative;inset:auto}.competitive-round-strip{background:#202020;border-bottom:1px solid #303030;align-items:center;gap:9px;min-height:42px;padding:8px 12px;display:flex}.competitive-round-strip span,.competitive-round-strip small{color:#929292;text-transform:uppercase;letter-spacing:.7px;font-size:10px}.competitive-round-strip b{color:#e1b36f;font:700 13px Consolas,monospace}.competitive-round-strip small{text-transform:none;margin-left:auto}@media (max-width:920px){.header-wordmark{display:none}}.controls-row{flex-wrap:nowrap;flex:0 auto;justify-content:flex-end;align-items:flex-end;gap:20px;width:auto;min-width:0;display:flex}.library-menu{z-index:var(--z-library);color:#e8e8e8;text-align:left;background:#171717;grid-template-rows:80px minmax(0,1fr);display:grid;position:fixed;inset:0}.library-menu button,.library-menu input,.library-menu select{min-width:0}.library-menu svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px;display:block}.library-menu-header{background:#202020;border-bottom:1px solid #2d2d2d;grid-template-columns:155px minmax(220px,1fr) 118px auto 44px auto 44px;align-items:center;gap:9px;padding:14px 22px;display:grid}.library-menu-brand{background:0 0;border-color:#0000;align-items:center;gap:8px;height:48px;padding:4px 8px;display:flex;min-width:0!important}.library-menu-brand:hover{background:#292929;border-color:#75d3aa59}.library-menu-brand img{width:38px;height:38px;display:block}.library-menu-brand strong{color:#e8e8e8;letter-spacing:.12em;font-family:Avenir Next,Segoe UI Variable Display,Helvetica Neue,sans-serif;font-size:18px;font-weight:800}.library-view-switch{border:1px solid #373737;border-radius:8px;gap:4px;padding:4px;display:flex}.library-view-switch button{background:0 0;border:0;width:38px;height:38px;padding:8px}.library-view-switch button[aria-pressed=true]{color:#f4fff9;background:#3d4f48;box-shadow:inset 0 0 0 1px #75d3aa2e}.library-import,.library-close{width:44px;height:44px;padding:7px}.library-login{color:#fff;background:#7a3030;border-color:#984b4b;height:44px;font-weight:800;min-width:82px!important}.library-login:hover{background:#943c3c;border-color:#cb6666}.library-account{align-items:center;gap:7px;height:44px;display:flex;min-width:92px!important}.library-account .user-avatar{flex-basis:26px;width:26px;height:26px}.library-menu-body{grid-template-columns:230px minmax(0,1fr);min-height:0;display:grid}.library-menu-nav{border-right:1px solid #2d2d2d;flex-direction:column;gap:5px;padding:14px;display:flex}.library-menu-nav button{text-align:left;background:0 0;border-color:#0000;align-items:center;gap:10px;width:100%;min-height:44px;display:flex}.library-menu-nav button.active{color:#f4fff9;background:#3d4f48;border-color:#75d3aa47}.library-menu-nav .library-scope{color:#aaa;min-height:36px;padding-left:38px}.library-menu-nav .library-scope.active{color:#e8e8e8;background:#303030}.library-menu-content{min-width:0;padding:38px;overflow:auto}.library-error{color:#ffc4bc;background:#302020;border:1px solid #753e3e;padding:10px}.library-songs{margin:0;padding:0;list-style:none}.library-songs.list{gap:8px;display:grid}.library-songs li article{background:#242424;border:1px solid #2d2d2d;border-radius:8px;gap:8px;min-width:0;min-height:66px;padding:9px;display:flex}.library-song-main{text-align:left;background:0 0;border:0;flex:1;grid-template-columns:44px minmax(160px,1fr) minmax(300px,36%);align-items:center;gap:12px;padding:0;display:grid;min-width:0!important}.library-song-main:hover{background:0 0}.library-song-art,.library-detail-art{color:#8fe0b8;background:#203128;border:1px solid #365044;place-items:center;display:grid}.library-song-art{border-radius:4px;width:44px;height:44px;font-size:20px}.library-song-main strong,.library-song-main small{display:block}.library-song-main strong{font-size:16px;line-height:1.15}.library-song-main small{color:#999;margin-top:3px;font-size:12px}.library-song-meta{color:#bbb;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:100%;margin:0;display:grid}.library-song-meta div{grid-template-rows:auto 1fr;align-content:center;gap:4px;min-width:0;display:grid}.library-song-meta dt{color:#888;text-transform:uppercase;font-size:10px;line-height:1}.library-song-meta dd{white-space:nowrap;margin:0;font:12px Consolas,monospace}.library-songs article>button:not(.library-song-main){align-self:center;width:40px;height:40px;padding:8px}.library-songs.grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.library-songs.grid article{flex-wrap:wrap;min-height:220px;position:relative}.library-songs.grid .library-song-main{flex-basis:100%;grid-template-rows:110px auto auto;grid-template-columns:1fr}.library-songs.grid .library-song-art{width:100%;height:110px}.library-songs.grid .library-song-meta{align-self:end}.library-empty{color:#aaa;text-align:center;padding:30px}.library-detail{max-width:900px;margin:0 auto;padding:20px}.library-detail>button:first-child{margin-bottom:22px}.library-detail-art{border-radius:8px;width:100%;height:220px;font-size:56px}.library-detail h2{margin-bottom:4px;font-size:34px}.library-detail dl{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.library-detail dl div{background:#242424;border:1px solid #2d2d2d;border-radius:8px;padding:12px}.library-detail dt{color:#888;text-transform:uppercase;font-size:10px}.library-detail dd{margin:5px 0 0}.library-detail .library-detail-play{color:#f4fff9;background:#315f4b;border-color:#75d3aa80;justify-content:center;align-items:center;gap:10px;width:100%;min-height:52px;font-weight:800;display:flex}.library-detail .library-detail-play:hover{background:#397158;border-color:#75d3aa}.library-detail .library-detail-play svg{width:22px;height:22px}.library-detail-actions{gap:8px;display:grid}.library-detail-secondary-actions{grid-template-columns:minmax(0,1fr) 42px;align-items:start;gap:8px;display:grid}.library-detail-favorite{color:#ead58b;width:100%;height:42px;min-height:42px}.library-song-art img,.library-detail-art img{object-fit:cover;width:100%;height:100%;display:block}.library-song-art,.library-detail-art{overflow:hidden}.library-icon-action{border-radius:7px;place-items:center;width:38px;height:38px;padding:8px;display:inline-grid;color:#bdbdbd!important;background:#292929!important;border-color:#444!important;min-width:38px!important}.library-icon-action:hover{color:#fff!important;background:#333!important;border-color:#666!important}.library-icon-action svg{width:18px;height:18px}.library-song-management{background:#202a25;border:1px solid #365044;border-radius:8px;margin-top:28px;padding:18px}.library-song-management-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.library-song-management-head h3{margin:0}.library-song-form{gap:8px;margin-top:18px;display:grid}.library-song-form input{width:100%}.library-song-form small{color:#999}.library-song-form>div,.library-song-danger>div{flex-wrap:wrap;gap:8px;display:flex}.library-song-form>div{justify-content:flex-end;margin-top:6px}.library-cover-preview{background:#181818;border:1px solid #444;border-radius:6px;width:160px;height:90px;display:block;overflow:hidden}.library-cover-preview img{object-fit:cover;width:100%;height:100%;display:block}.library-song-danger{border-top:1px solid #633b3b;margin-top:20px;padding-top:18px}.danger-button{color:#ffd4d4;background:#542929;border-color:#7a4141}.library-song-board{margin-top:28px}.library-song-board h3{font-size:20px}.library-board-wrap{max-width:100%;overflow-x:auto}.library-board{border-collapse:collapse;background:#202020;width:100%}.library-board th,.library-board td{text-align:left;white-space:nowrap;border-bottom:1px solid #343434;padding:11px 13px}.library-board th{color:#999;text-transform:uppercase;font-size:10px}.library-board td:first-child{color:#8fe0b8;font-weight:800}.library-board-state{color:#aaa;text-align:center;border:1px solid #303030;border-radius:8px;padding:24px}.library-load-more{margin:16px auto 0;display:block}.library-global-board{max-width:1100px;margin:0 auto}.library-global-board>p{color:#aaa}.copyright-report,.copyright-report-success{text-align:left;background:#29231e;border:1px solid #664c35;border-radius:8px;margin-top:24px;padding:18px}.copyright-report>button{color:#f0c797;background:#382b20;border-color:#715436}.copyright-report form{gap:13px;margin-top:18px;display:grid}.copyright-report form>p{color:#bbb;margin:0}.copyright-report label{color:#ddd;text-transform:none;letter-spacing:normal;gap:6px;font-size:13px;font-weight:650;display:grid}.copyright-report input,.copyright-report select,.copyright-report textarea{box-sizing:border-box;width:100%}.copyright-report textarea{resize:vertical;min-height:92px}.copyright-report .copyright-check{grid-template-columns:20px 1fr;align-items:start;font-weight:400;line-height:1.45}.copyright-report .copyright-check input{width:auto;margin-top:3px}.copyright-report-success strong{overflow-wrap:anywhere;color:#8fe0b8;font-family:Consolas,monospace;display:block}.copyright-report:not(.is-open){background:0 0;border:0;width:fit-content;padding:0}.library-song-management:not(.is-editing){margin-top:18px;padding:10px 12px}.library-song-management:not(.is-editing) .library-song-management-head h3{font-size:14px}.library-detail-secondary-actions .copyright-report{margin:0}.library-detail-secondary-actions .copyright-report:not(.is-open){background:0 0;border:0;width:42px;height:42px;padding:0}.library-detail-secondary-actions .copyright-report.is-open{grid-column:1/-1}.library-report-action{width:42px;height:42px;color:#faa!important;background:#3a2424!important;border-color:#713f3f!important;min-width:42px!important}.library-report-action:hover{color:#ffd1d1!important;background:#522929!important;border-color:#a65454!important}.library-profile-settings{max-width:720px;margin:0 auto}.library-profile-settings>section{background:#202020;border:1px solid #303030;border-radius:8px;margin-top:14px;padding:18px}.library-profile-settings h3{margin:0 0 14px;font-size:15px}.library-profile-card{background:#203128;border:1px solid #365044;border-radius:8px;align-items:center;gap:14px;margin:18px 0;padding:18px;display:flex}.library-profile-avatar{color:#173326;background:#8fe0b8;border-radius:50%;place-items:center;width:52px;height:52px;font-size:22px;font-weight:900;display:grid}.library-profile-card strong,.library-profile-card small{display:block}.library-profile-card small{color:#aaa;margin-top:4px}.library-profile-form{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.library-profile-view{gap:8px;display:flex}.library-profile-view button[aria-pressed=true]{color:#f4fff9;background:#315f4b;border-color:#75d3aa}.library-profile-status{background:#28332e;border-radius:6px;padding:10px}.library-profile-danger{border-color:#633b3b!important}.library-profile-danger>div{flex-wrap:wrap;gap:8px;display:flex}.user-avatar{color:#173326;background:#8fe0b8;border-radius:50%;flex:0 0 30px;place-items:center;width:30px;height:30px;font-weight:900;display:inline-grid;overflow:hidden}.user-avatar img{object-fit:cover;width:100%;height:100%;display:block}.library-board-user{align-items:center;gap:8px;display:inline-flex}.library-profile-avatar{flex-basis:52px;width:52px;height:52px}.library-profile-settings input[type=url]{width:100%;margin-top:6px}.library-upload-overlay{z-index:var(--z-library-upload);text-align:center;background:#0a0a0ae0;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.library-upload-overlay>div{background:#202020;border:1px solid #424242;border-radius:10px;width:min(440px,100%);padding:30px;box-shadow:0 22px 80px #000}.library-upload-overlay button{margin-top:12px}.library-spinner{border:3px solid #3c5148;border-top-color:#8fe0b8;border-radius:50%;width:34px;height:34px;margin:0 auto 18px;animation:.8s linear infinite library-spin}@keyframes library-spin{to{transform:rotate(360deg)}}.login-backdrop{z-index:var(--z-login);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#080808db;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.login-panel{text-align:left;background:#202020;border:1px solid #365044;border-radius:12px;width:min(440px,100%);padding:34px;position:relative;box-shadow:0 24px 90px #000000b3}.login-panel h2{margin:4px 0 12px;font-size:30px}.login-panel>p:not(.detail-kicker){color:#b8b8b8;line-height:1.55}.login-close{width:42px;min-width:42px;height:42px;padding:0;font-size:22px;position:absolute;top:12px;right:12px}.login-submit{color:#f4fff9;background:#315f4b;border-color:#75d3aa80;width:100%;min-height:50px;margin-top:12px;font-weight:800}.login-submit:hover{background:#397158;border-color:#75d3aa}.detail-kicker{color:#8fe0b8;letter-spacing:.14em;margin:0;font-size:11px;font-weight:800}@media (max-width:800px){.library-menu{grid-template-rows:auto minmax(0,1fr);height:100dvh}.library-menu-header{grid-template-rows:44px 44px 44px;grid-template-columns:minmax(0,1fr) auto auto auto;padding:8px 10px}.library-menu-brand{grid-area:1/1}.library-import{grid-area:1/2}.library-login,.library-account{grid-area:1/3}.library-close{grid-area:1/4}.library-menu-header>input{grid-area:2/1/auto/-1;height:44px}.library-menu-header>select{grid-area:3/1/auto/2;height:44px}.library-view-switch{grid-area:3/2/auto/5;justify-self:end;height:44px}.library-menu-body{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr}.library-menu-nav{border-bottom:1px solid #2d2d2d;border-right:0;flex-direction:row;align-items:center;min-height:58px;padding:7px;overflow-x:auto}.library-menu-nav .library-scope{display:none}.library-menu-nav button{white-space:nowrap;flex:none;width:auto;height:44px;min-height:44px}.library-menu-content{padding:12px}.library-song-meta{display:none}.library-songs.grid{grid-template-columns:1fr}.library-detail{padding:8px}.library-detail dl{grid-template-columns:1fr}}@media (max-width:430px){.library-login,.library-account{padding-inline:8px;min-width:68px!important}.library-menu-nav button{gap:6px;padding-inline:9px}.library-menu-nav button svg{width:19px;height:19px}.library-songs li article{padding:7px}.library-song-main{grid-template-columns:42px minmax(0,1fr)}.library-song-art,.library-songs article>button:not(.library-song-main){width:42px;height:42px}}.admin-shell{box-sizing:border-box;place-items:center;min-height:calc(100vh - 28px);display:grid}.admin-login,.admin-dashboard{box-sizing:border-box;text-align:left;width:min(920px,100%)}.admin-login{background:#202020;border:1px solid #365044;border-radius:12px;max-width:420px;padding:30px;box-shadow:0 22px 80px #00000073}.admin-login h1,.admin-dashboard h1{margin:5px 0 8px}.admin-login>p{color:#aaa}.admin-login form{gap:9px;margin-top:24px;display:grid}.admin-login input,.admin-login button{box-sizing:border-box;min-height:46px}.admin-dashboard{align-self:start;padding:28px 0}.admin-dashboard>header{justify-content:space-between;align-items:center;gap:18px;display:flex}.admin-stats-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:24px 0;display:grid}.admin-stats-grid article,.admin-panel{background:#202020;border:1px solid #303030;border-radius:9px;padding:18px}.admin-stats-grid span{color:#999;font-size:12px;display:block}.admin-stats-grid strong{color:#8fe0b8;margin-top:8px;font-size:28px;display:block}.admin-panel h2{margin-top:0;font-size:18px}.admin-panel ol{margin:0;padding:0;list-style:none}.admin-panel li{border-top:1px solid #303030;justify-content:space-between;gap:16px;padding:11px 0;display:flex}.admin-panel li span,.admin-panel li small{display:block}.admin-panel li small,.admin-updated{color:#888;margin-top:3px}.admin-panel li b{color:#ead58b}.admin-updated{text-align:right;font-size:11px}.admin-reports{margin-top:12px}.admin-reports h2{justify-content:space-between;display:flex}.admin-reports h2 span{color:#8fe0b8}.admin-reports>article{border-top:1px solid #343434;padding:14px 0}.admin-reports article>header{justify-content:space-between;gap:12px;display:flex}.admin-reports article header small,.admin-reports article>small{color:#999;margin-top:4px;display:block}.admin-reports article header b{color:#e1b36f;text-transform:uppercase;font-size:11px}.admin-reports article>p{color:#ccc}.admin-reports article>div{flex-wrap:wrap;gap:7px;margin-top:12px;display:flex}.admin-reports article button{min-height:36px;padding:7px 10px}.admin-umami{padding:0;overflow:hidden}.admin-umami h2{border-bottom:1px solid #303030;margin:0;padding:16px 18px}.admin-umami iframe{background:#fff;border:0;width:100%;height:min(780px,78vh);display:block}.control-group{flex-direction:column;align-items:flex-start;display:flex}.control-group.hidden{display:none}label{text-transform:uppercase;color:#888;letter-spacing:1px;margin-bottom:6px;font-size:11px;font-weight:700}select,button,input{color:#fff;background:#282828;border:1px solid #373737;border-radius:6px;min-width:140px;padding:9px 10px;font-size:13px;transition:all .2s}select,button{cursor:pointer}select:hover,button:hover,input:hover{background:#303030;border-color:#505050}button:focus-visible,select:focus-visible,input:focus-visible,[role=button]:focus-visible,[role=slider]:focus-visible,.knob-surround:focus-visible,.knob-label:focus-visible{outline-offset:2px;outline:2px solid #75d3aad1}button:disabled,button[aria-disabled=true]{opacity:.45;cursor:not-allowed}button:disabled:hover,button[aria-disabled=true]:hover{background:#282828;border-color:#373737;transform:none}.icon-button{min-width:44px;height:38px;padding:0 10px;font-size:13px;font-weight:700;line-height:1}.learning-controls{text-align:left;flex:auto;align-items:stretch;gap:7px;min-width:0;display:flex}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.learning-desktop-controls{align-items:stretch;gap:7px;min-width:0;display:flex}.learning-card{aspect-ratio:1;min-width:var(--header-btn-min-size);width:clamp(var(--header-btn-min-size), 20vw, var(--header-btn-max-size));max-width:var(--header-btn-max-size);color:#f2f2f2;text-align:center;box-sizing:border-box;background:#242424;border:1px solid #3a3a3a;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:0;padding:7px;display:flex;position:relative}.game-selector{min-height:var(--header-btn-min-size);height:clamp(var(--header-btn-min-size), 20vw, var(--header-btn-max-size));color:#f2f2f2;box-sizing:border-box;background:#242424;border:1px solid #3a3a3a;border-radius:8px;align-items:stretch;gap:4px;padding:7px;display:flex}.learning-card:hover,.game-selector:hover{background:#303030;border-color:#505050}.learning-card.active{border-color:#97ffa957;box-shadow:inset 0 0 0 1px #55c36a1f}.learning-card[aria-disabled=true]{opacity:.48}.learning-card svg,.transport-button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;width:64px;height:36px;display:block}.learning-card strong{color:#f5f5f5;overflow-wrap:anywhere;width:100%;min-height:22px;font-size:11px;line-height:1.15;display:block}.learning-card span{color:#aaa;overflow-wrap:anywhere;font-size:10px;line-height:1.15}.segment-button{color:#bdbdbd;white-space:nowrap;background:0 0;border:0;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:66px;height:100%;padding:5px 8px;font-size:11px;display:flex}.segment-button:hover{background:#303030}.segment-button.active{color:#f4fff9;background:#3d4f48;box-shadow:inset 0 0 0 1px #75d3aa2e}.segment-button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;width:30px;height:22px;display:block}.segment-button .gem-icon{color:#55c36a}.segment-button .hard-icon{color:#d98282}.segment-button strong{color:#f5f5f5;font-size:11px;line-height:1.1}.segment-button .compact-icon,.learning-menu-button.add-config-card{display:none}.learning-modal-backdrop{z-index:30;box-sizing:border-box;background:#000000b8;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}.learning-modal-backdrop.open{display:flex}.learning-modal-panel{box-sizing:border-box;background:#202020;border:1px solid #333;border-radius:8px;width:min(360px,100%);padding:14px;box-shadow:0 24px 80px #00000073}.learning-modal-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.learning-modal-head strong{color:#f5f5f5;font-size:13px}.learning-modal-close{width:40px;min-width:40px;height:40px;padding:0}.learning-modal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.learning-modal-grid .learning-card,.learning-modal-grid .segment-button{width:100%;min-width:0;max-width:none}.learning-modal-grid .game-selector{width:100%;height:auto;min-height:var(--header-btn-min-size);grid-column:1/-1;justify-content:stretch}.learning-modal-grid .game-selector .segment-button{aspect-ratio:auto;flex:1 1 0;min-height:68px}.settings-modal-backdrop{z-index:42;box-sizing:border-box;background:#000000b8;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}.settings-modal-backdrop.open{display:flex}.settings-modal-panel{box-sizing:border-box;text-align:left;background:#202020;border:1px solid #333;border-radius:8px;width:min(420px,100%);max-height:calc(100vh - 32px);padding:14px;overflow:auto;box-shadow:0 24px 80px #00000073}.settings-modal-head{border-bottom:1px solid #303030;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;padding-bottom:12px;display:flex}.settings-modal-head strong{color:#f5f5f5;text-transform:uppercase;letter-spacing:.8px;font-size:13px}.settings-modal-close{width:40px;min-width:40px;height:40px;padding:0}.settings-section{border-bottom:1px solid #303030;padding:12px 0}.settings-section:last-child{border-bottom:0;padding-bottom:0}.settings-section-title{color:#dfe5e2;text-transform:uppercase;letter-spacing:.8px;margin:0 0 10px;font-size:12px;line-height:1.2}.settings-speed-head{color:#bfc8c5;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;font-family:Consolas,monospace;font-size:12px;display:flex}.settings-speed-head span{white-space:nowrap}.settings-speed-slider{accent-color:#75d3aa;width:100%;min-width:0}.theme-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.theme-choice{color:#f2f2f2;text-align:center;background:#242424;border:1px solid #373737;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:7px;width:100%;min-width:0;min-height:118px;padding:9px;display:flex;position:relative}.theme-choice:hover{background:#303030;border-color:#505050}.theme-choice.active{background:#29352f;border-color:#75d3aa80;box-shadow:inset 0 0 0 1px #75d3aa29}.theme-choice svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;width:128px;max-width:100%;height:74px;display:block}.theme-choice .theme-sheet-preview{color:#8d8a82;stroke-width:1.25px}.theme-sheet-preview rect{fill:#f4f1e7;stroke:#c9c2ad}.theme-sheet-preview ellipse{fill:#292824;stroke:none}.theme-choice strong{color:#f5f5f5;overflow-wrap:anywhere;font-size:12px;line-height:1.15;display:block}.theme-choice-beta{color:#aaa;letter-spacing:.06em;text-transform:uppercase;background:#343434;border:1px solid #505050;border-radius:999px;padding:3px 6px;font-size:9px;font-weight:700;line-height:1;position:absolute;top:7px;right:7px}.theme-choice-with-notation{cursor:pointer;min-height:158px}.theme-choice-with-notation .notation-choice-buttons{width:100%;margin-top:2px}.notation-choice-buttons{box-sizing:border-box;background:#0000001f;border:1px solid #373737;border-radius:8px;gap:6px;padding:3px;display:inline-flex}.notation-choice-button{color:#c7cfcc;background:0 0;border:0;border-radius:6px;min-width:64px;min-height:32px;padding:0 10px;font-size:12px;font-weight:700}.theme-choice-with-notation .notation-choice-button{flex:1 1 0;min-width:0}.notation-choice-button:hover{background:#ffffff0e}.notation-choice-button.active{color:#f4fff9;background:#3d4f48;box-shadow:inset 0 0 0 1px #75d3aa2e}.knobs-container{--knob-cols:8;grid-template-columns:repeat(var(--knob-cols), minmax(0, 1fr));box-sizing:border-box;background:#202020;border:1px solid #2d2d2d;border-radius:4px;gap:10px;margin-bottom:10px;padding:12px;display:grid}.knob-wrapper{flex-direction:column;align-items:center;gap:8px;width:100%;min-width:0;display:flex;position:relative}.knob-wrapper,.knob-wrapper *{-webkit-user-select:none;user-select:none}.knob-surround{width:clamp(var(--knob-size-min), 14vw, var(--knob-size-max));height:clamp(var(--knob-size-min), 14vw, var(--knob-size-max));min-width:var(--knob-size-min);min-height:var(--knob-size-min);max-width:var(--knob-size-max);max-height:var(--knob-size-max);cursor:pointer;touch-action:none;background:#2a2a2a;border:1px solid #3c3c3c;border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative}.knob-dial{width:clamp(var(--knob-dial-min-size), 9vw, var(--knob-dial-max-size));height:clamp(var(--knob-dial-min-size), 9vw, var(--knob-dial-max-size));min-width:var(--knob-dial-min-size);min-height:var(--knob-dial-min-size);max-width:var(--knob-dial-max-size);max-height:var(--knob-dial-max-size);background:linear-gradient(135deg,#3a3a3a 0%,#202020 100%);border:1px solid #4b4b4b;border-radius:50%;transition:transform 50ms linear;position:relative;transform:rotate(0)}.knob-dial:after{content:"";background:#d5d5d5;border-radius:2px;width:3px;height:8px;position:absolute;top:4px;left:50%;transform:translate(-50%)}body.knob-dragging{cursor:none;-webkit-user-select:none;user-select:none}body.knob-dragging *{cursor:none!important}.knob-label{color:#9a9a9a;text-transform:uppercase;cursor:pointer;letter-spacing:.5px;font-size:10px;font-weight:700;transition:color .2s}.knob-label:hover{color:#f0f0f0}.knob-value{color:#cfcfcf;min-width:40px;margin-top:1px;font-family:Consolas,monospace;font-size:11px}.cc-tag{display:none}.cc-tag.active{color:#4caf50;background:#1a2e1a;border-color:#2e7d32}#midi-log{display:none}.transport-panel{box-sizing:border-box;text-align:left;background:#202020;border:1px solid #2d2d2d;border-radius:4px;grid-template-columns:auto minmax(160px,1fr) auto;align-items:center;gap:10px 12px;margin-bottom:0;padding:10px 12px;display:grid}.transport-actions{align-items:center;gap:7px;display:flex}.transport-button{border-radius:8px;justify-content:center;align-items:center;width:40px;min-width:40px;height:38px;padding:0;display:inline-flex}.transport-actions .game-selector{background:#242424;border:1px solid #3a3a3a;gap:7px;height:40px;min-height:40px;padding:0}.transport-actions .game-selector:hover{background:#303030;border-color:#505050}.transport-actions .segment-button{background:0 0;border:0;border-radius:8px;width:40px;min-width:40px;height:38px;padding:0}.transport-actions .segment-button:hover{background:#ffffff0e}.transport-actions .segment-button.active{color:#f4fff9;background:#3d4f48;box-shadow:inset 0 0 0 1px #75d3aa2e}.transport-actions .segment-button svg{width:22px;height:22px}.transport-actions .segment-button strong{display:none}.transport-settings-button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;width:20px;height:20px;display:block}.transport-meta{min-width:0}.transport-title{color:#e5e5e5;text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.2;overflow:hidden}.transport-hint{color:#8d9b98;min-height:14px;margin-top:3px;font-size:11px}.transport-time{color:#bfc8c5;white-space:nowrap;justify-self:end;font-family:Consolas,monospace;font-size:12px}.timeline-track{cursor:pointer;background:#151b1a;border:1px solid #313b38;border-radius:999px;outline:none;grid-column:1/-1;height:9px;overflow:hidden}.timeline-track:focus-visible{box-shadow:0 0 0 2px #75d3aa3d}.timeline-track.disabled{cursor:not-allowed;opacity:.42;filter:saturate(.7)}.timeline-progress{border-radius:inherit;opacity:.55;background:linear-gradient(90deg,#57c78f,#7fd7d2);width:0%;height:100%}.song-result-backdrop{z-index:45;box-sizing:border-box;background:#000000c2;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}.song-result-backdrop.open{display:flex}.song-result-panel{--result-accent:#72d69d;--result-accent-soft:#72d69d29;--result-border:#476954;--result-ok-bg:#29302d;--result-ok-hover:#303632;box-sizing:border-box;text-align:left;background:#202020;border:1px solid #343434;border-radius:8px;width:min(450px,100%);max-height:calc(100vh - 32px);padding:14px;overflow:auto;box-shadow:0 28px 90px #00000080}.song-result-panel.fail{--result-accent:#d98282;--result-accent-soft:#d9828224;--result-border:#744646;--result-ok-bg:#302828;--result-ok-hover:#382e2e}.song-result-head{border-bottom:1px solid #303030;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;margin-bottom:12px;padding-bottom:12px;display:grid}.song-result-title-wrap{min-width:0}.song-result-title{color:#f5f5f5;text-transform:uppercase;letter-spacing:.8px;overflow-wrap:anywhere;font-size:13px;line-height:1.2;display:block}.song-result-kicker{color:#8f9895;margin-top:3px;font-size:11px;line-height:1.2;display:block}.song-result-close{width:40px;min-width:40px;height:40px;padding:0}.song-result-main{background:#181818;border:1px solid #303030;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;margin-bottom:12px;padding:12px;display:grid}.song-result-rank{width:102px;min-width:82px;height:82px;box-shadow:none;background:0 0;border:0;justify-content:flex-end;justify-self:end;align-items:center;display:flex}.song-result-rank svg{pointer-events:none;width:100%;height:100%;display:block;overflow:visible}.song-result-score{color:#f4f4f4;overflow-wrap:anywhere;font-family:Consolas,monospace;font-size:28px;line-height:1}.song-result-score-label{color:#8f9895;text-transform:uppercase;letter-spacing:.8px;margin-bottom:5px;font-size:10px;display:block}.song-result-performance{color:#8fe0b8;flex-wrap:wrap;align-items:baseline;gap:7px;margin-top:10px;display:flex}.song-result-performance strong{font:800 18px Consolas,monospace}.song-result-performance span{color:#9aa7a3;font-size:11px}.song-result-subtitle{color:#9aa7a3;margin-top:7px;font-size:12px}.song-result-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.song-result-stat{box-sizing:border-box;background:#181818;border:1px solid #303030;border-radius:6px;min-width:0;padding:8px}.song-result-stat-head{align-items:center;gap:6px;min-width:0;margin-bottom:6px;display:flex}.song-result-stat-icon{width:18px;height:18px;color:var(--stat-color,#9aa7a3);background:#ffffff06;border-radius:5px;flex:0 0 18px;justify-content:center;align-items:center;display:flex}.song-result-stat-icon svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;width:14px;height:14px;display:block}.song-result-label{color:#8f9895;text-transform:uppercase;letter-spacing:.8px;overflow-wrap:anywhere;min-width:0;font-size:10px;line-height:1.1;display:block}.song-result-stat.perfect{--stat-color:#60dcff}.song-result-stat.good{--stat-color:#70d89a}.song-result-stat.accepted{--stat-color:#e2be56}.song-result-stat.miss,.song-result-stat.wrong{--stat-color:#d98282}.song-result-stat.combo{--stat-color:#b8c7ff}.song-result-value{color:#f0f0f0;font-family:Consolas,monospace;font-size:16px}.song-result-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.song-result-actions button{justify-content:center;align-items:center;gap:7px;min-width:110px;display:inline-flex}.song-result-actions svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;width:16px;height:16px;display:block}#songResultOk{border-color:var(--result-border);background:var(--result-ok-bg)}#songResultOk:hover{border-color:var(--result-accent);background:var(--result-ok-hover)}#practiceStage{background:#090909;border-radius:4px;width:100%;margin-top:8px;position:relative}.falling-visualizer{box-sizing:border-box;background:#101211;border:1px solid #2a2a2a;border-bottom:0;border-radius:4px 4px 0 0;height:clamp(180px,29vh,310px);position:relative;overflow:hidden}.sheet-visualizer{background:#f7f3e8;height:clamp(250px,38vh,390px)}.sheet-render{position:absolute;inset:0;overflow:hidden}.sheet-render svg{will-change:transform;width:100%;height:100%;display:block;overflow:visible;transform:translate(0,0)}.sheet-playhead{z-index:4;pointer-events:none;background:#d3483f;width:2px;position:absolute;top:0;bottom:0;transform:translate(-1px)}.sheet-score-hud{color:#f4fff9;background:#181b19c7}.visual-grid{display:none}.note-layer,.feedback-layer,.hit-line-feedback-layer{pointer-events:none;position:absolute;inset:0}.feedback-layer{z-index:1}.note-layer{z-index:2}.hit-line-feedback-layer{z-index:4}.falling-note{z-index:1;box-sizing:border-box;border:1px solid rgba(var(--note-border-rgb), .62);background:rgba(var(--note-rgb), .5);border-radius:3px;position:absolute;box-shadow:inset 0 0 0 1px #ffffff0f}.falling-note.black-note{z-index:2}.falling-note.holding-note{border-color:rgba(var(--note-border-rgb), .82);background:rgba(var(--note-rgb), .36);box-shadow:inset 0 0 0 1px #ffffff1a, 0 0 12px rgba(var(--note-glow-rgb), .2)}.falling-note.missed-note{background:#be3e344d;border-color:#ee70608f;box-shadow:inset 0 0 0 1px #ffffff0d,0 0 10px #ee706021}.falling-note-map-badge{color:#f5f7f4;pointer-events:none;text-overflow:ellipsis;white-space:nowrap;background:#080d1299;border-radius:2px;justify-content:center;align-items:center;min-height:12px;padding:0 2px;font-size:8px;font-weight:800;line-height:1;display:flex;position:absolute;inset:2px 1px auto;overflow:hidden}.falling-note-map-badge.spread{letter-spacing:0;font-size:7px}.hit-line{z-index:3;pointer-events:none;background:#d2ebe047;height:3px;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -1px 8px #78dcb41f,0 1px #ffffff12}.note-feedback-light{--feedback-rgb:96, 220, 255;width:var(--light-width);height:var(--light-height);transform-origin:50% 100%;transform:translate(-50%, calc(-1 * var(--light-height))) scaleX(.42) scaleY(.16);background:radial-gradient(ellipse at 50% 100%, rgba(var(--feedback-rgb), .86) 0%, rgba(var(--feedback-rgb), .62) 5%, rgba(var(--feedback-rgb), .4) 8%, rgba(var(--feedback-rgb), .1) 13%, rgba(var(--feedback-rgb), 0) 18%), radial-gradient(ellipse at 50% 96%, rgba(var(--feedback-rgb), .8) 0%, rgba(var(--feedback-rgb), .54) 12%, rgba(var(--feedback-rgb), .24) 46%, rgba(var(--feedback-rgb), 0) 76%);filter:blur(9px);opacity:0;animation:noteFeedbackLight var(--light-duration) ease-out forwards;mix-blend-mode:screen;border-radius:999px;position:absolute}.note-feedback-light.perfect{--feedback-rgb:96, 220, 255}.note-feedback-light.good{--feedback-rgb:112, 216, 154}.note-feedback-light.accepted{--feedback-rgb:226, 190, 86}.note-feedback-light.miss{--feedback-rgb:230, 86, 74}.hit-line-local{--feedback-rgb:96, 220, 255;width:var(--line-width);background:radial-gradient(ellipse at center, rgba(var(--feedback-rgb), .86) 0%, rgba(var(--feedback-rgb), .62) 32%, rgba(var(--feedback-rgb), .22) 68%, rgba(var(--feedback-rgb), 0) 88%);filter:blur(.35px);opacity:0;height:9px;animation:hitLineLocalGlow var(--line-duration) ease-out forwards;mix-blend-mode:screen;border-radius:999px;position:absolute;transform:translate(-50%,-50%)scaleX(.45)}.hit-line-local.perfect{--feedback-rgb:96, 220, 255}.hit-line-local.good{--feedback-rgb:112, 216, 154}.hit-line-local.accepted{--feedback-rgb:226, 190, 86}.hit-line-local.miss{--feedback-rgb:230, 86, 74}.feedback-effect{display:contents}.viewer-particle{--feedback-rgb:112,216,154;z-index:2;background:rgba(var(--feedback-rgb),.9);width:4px;height:4px;box-shadow:0 0 8px rgba(var(--feedback-rgb),.42);opacity:0;animation:viewerParticle var(--particle-duration,.62s) ease-out forwards;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.viewer-particle.perfect{--feedback-rgb:96,220,255}.viewer-particle.good{--feedback-rgb:112,216,154}.viewer-particle.accepted{--feedback-rgb:226,190,86}.viewer-particle.miss{--feedback-rgb:230,86,74}.viewer-particle.black{width:3px;height:3px}@keyframes noteFeedbackLight{0%{opacity:0;transform:translate(-50%, calc(-1 * var(--light-height))) scaleX(.42) scaleY(.16)}18%{opacity:1}58%{opacity:.78}to{opacity:0;transform:translate(-50%, calc(-1 * var(--light-height))) scaleX(var(--light-scale,1.1)) scaleY(1)}}@keyframes hitLineLocalGlow{0%{opacity:0;transform:translate(-50%,-50%)scaleX(.45)}14%{opacity:1}62%{opacity:.84}to{opacity:0;transform:translate(-50%,-50%)scaleX(1.35)}}@keyframes viewerParticle{0%{opacity:.9;transform:translate(-50%,-50%)translate(0)scale(1)}to{opacity:0;transform:translate(-50%,-50%) translate(var(--dx),var(--dy)) scale(.2)}}.note-feedback-light.holding{animation:.42s ease-out forwards noteFeedbackHold}.note-feedback-light.returning{animation:.52s ease-in-out forwards noteFeedbackReturn}.hit-line-local.holding{animation:.36s ease-out forwards hitLineHold}.hit-line-local.returning{animation:.52s ease-in-out forwards hitLineReturn}.viewer-particle.holding{animation:viewerParticleOrbit var(--orbit-duration,2.4s) linear infinite}.viewer-particle.returning{animation:.52s ease-in-out forwards viewerParticleReturn}@keyframes noteFeedbackHold{0%{opacity:0;transform:translate(-50%,calc(-1 * var(--light-height))) scaleX(.42) scaleY(.16)}to{opacity:.68;transform:translate(-50%,calc(-1 * var(--light-height))) scaleX(var(--light-scale,1.1)) scaleY(1)}}@keyframes noteFeedbackReturn{0%{opacity:.78;transform:translate(-50%,calc(-1 * var(--light-height))) scaleX(var(--light-scale,1.1)) scaleY(1)}68%{opacity:.42}to{opacity:0;transform:translate(-50%,calc(-1 * var(--light-height))) scaleX(.18) scaleY(.08)}}@keyframes hitLineHold{0%{opacity:0;transform:translate(-50%,-50%)scaleX(.45)}to{opacity:.82;transform:translate(-50%,-50%)scaleX(1.25)}}@keyframes hitLineReturn{0%{opacity:.9;transform:translate(-50%,-50%)scaleX(1.25)}to{opacity:0;transform:translate(-50%,-50%)scaleX(.12)}}@keyframes viewerParticleHold{0%{opacity:.9;transform:translate(-50%,-50%)translate(0)scale(1)}to{opacity:.82;transform:translate(-50%,-50%) translate(var(--dx),var(--dy)) scale(.72)}}@keyframes viewerParticleOrbit{0%{opacity:1;transform:translate(-50%,-50%) rotate(var(--orbit-angle)) translateX(var(--orbit-radius)) scale(.78)}50%{opacity:.88}to{opacity:1;transform:translate(-50%,-50%) rotate(calc(var(--orbit-angle) + 1turn)) translateX(var(--orbit-radius)) scale(.78)}}@keyframes viewerParticleReturn{0%{opacity:1;transform:translate(-50%,-50%) rotate(var(--orbit-angle)) translateX(var(--orbit-radius)) scale(.78)}72%{opacity:.82}to{opacity:0;transform:translate(-50%,-50%) rotate(calc(var(--orbit-angle) + .42turn)) translateX(0) scale(.16)}}.visualizer-empty{color:#a8aaa9;letter-spacing:.2px;pointer-events:none;box-sizing:border-box;text-align:center;justify-content:center;align-items:center;padding:16px;font-size:13px;line-height:1.35;display:flex;position:absolute;inset:0}.visualizer-actions{z-index:6;box-sizing:border-box;pointer-events:none;justify-content:center;align-items:center;padding:16px;display:none;position:absolute;inset:0}.visualizer-actions.visible{display:flex}.visualizer-action-button{pointer-events:auto;background:0 0;border:0;width:min(210px,68vw);min-width:72px;min-height:72px;padding:0}.viewer-menu-button{color:#baffd9;background:linear-gradient(145deg,#315f4bf0,#182d24f0);border:1px solid #75d3aa8f;border-radius:18px;width:86px;min-width:86px;height:86px;padding:20px;box-shadow:0 18px 48px #00000057,inset 0 0 0 1px #baffd914}.viewer-menu-button:hover{background:linear-gradient(145deg,#397158,#2b493b);border-color:#75d3aa}.viewer-menu-button svg{fill:currentColor;stroke:none;filter:drop-shadow(0 5px 10px #0000004d);width:100%;height:100%}.viewer-menu-button{border-radius:clamp(14px,3vmin,18px);width:clamp(64px,14vmin,86px);min-width:clamp(64px,14vmin,86px);height:clamp(64px,14vmin,86px);min-height:clamp(64px,14vmin,86px);padding:clamp(14px,3vmin,20px)}#visualizerImportButton{background:#242424;border:1px solid #3a3a3a;border-radius:8px;justify-content:center;align-items:center;width:92px;height:92px;padding:12px;display:inline-flex}#visualizerImportButton:hover{background:#303030;border-color:#505050}#visualizerImportButton svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;filter:none;width:72px;height:44px}.visualizer-action-button:hover{background:0 0;transform:translateY(-1px)}.visualizer-action-button svg{pointer-events:none;filter:drop-shadow(0 10px 24px #00000057);width:100%;height:auto;display:block}.visual-score-hud{z-index:7;color:#f4fff9;pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#080a0a7a;border:1px solid #ffffff17;border-radius:6px;align-items:center;gap:8px;padding:7px 9px;display:flex;position:absolute;top:10px;left:10px;box-shadow:0 8px 22px #0000003d}.visual-score-rank{color:#9ff0b0;text-align:center;min-width:28px;font-size:16px;font-weight:800;line-height:1}.visual-score-value{letter-spacing:0;font-family:Consolas,monospace;font-size:14px;line-height:1}.visual-fullscreen-button{z-index:8;color:#f4f4f4;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#080a0a3d;border:1px solid #ffffff1a;border-radius:6px;justify-content:center;align-items:center;width:40px;min-width:40px;height:40px;padding:0;display:inline-flex;position:absolute;top:10px;right:10px}.visual-fullscreen-button:hover{background:#ffffff14;border-color:#fff3}.visual-fullscreen-button svg{fill:none;stroke:currentColor;stroke-width:2.1px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;width:19px;height:19px;display:block}.visual-orientation-hint{z-index:7;color:#d8dfdc;pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#080a0a85;border:1px solid #ffffff17;border-radius:6px;padding:6px 9px;font-size:11px;line-height:1;display:none;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}#keyboard-container{width:100%;height:var(--keyboard-height);box-sizing:border-box;background:#171717;border:1px solid #2d2d2d;border-radius:0 0 4px 4px;margin-top:0;padding:0;overflow:hidden}#keyboard{height:var(--white-key-height);-webkit-user-select:none;user-select:none;margin:0;position:relative}.key{box-sizing:border-box;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;border:1px solid #111;border-radius:0 0 5px 5px;justify-content:center;align-items:flex-end;padding:0 1px 7px;font-size:10px;transition:background 50ms;display:flex;position:absolute;overflow:hidden}.white{height:var(--white-key-height);width:var(--white-key-width);z-index:1;color:#999;background:linear-gradient(#ddd 0%,#fff 100%)}.terminal-white-placeholder{pointer-events:none}.black{height:var(--black-key-height);width:var(--black-key-width);z-index:2;color:#666;background:linear-gradient(#333 0%,#000 100%)}.key-label{pointer-events:none;flex-direction:column;align-items:center;gap:3px;width:100%;min-width:0;line-height:1;display:flex}.key-shortcut{color:#333;white-space:nowrap;background:#00000014;border-radius:4px;justify-content:center;align-items:center;min-width:14px;max-width:calc(100% - 2px);height:14px;padding:0 2px;font-size:8px;font-weight:800;line-height:1;display:inline-flex;box-shadow:inset 0 0 0 1px #00000014}.key-label-midi{gap:1px;padding-bottom:1px}.key-note{color:#3d4742;white-space:nowrap;justify-content:center;align-items:baseline;gap:1px;max-width:100%;font-weight:800;line-height:1;display:inline-flex}.key-note-name{text-overflow:ellipsis;min-width:0;font-size:10px;overflow:hidden}.key-note-octave{opacity:.72;font-size:7px;transform:translateY(-2px)}.sheet-note{color:#1d211f;flex-direction:column;align-items:center;gap:0}.sheet-note .key-note-name{text-transform:lowercase;font-family:Georgia,Times New Roman,serif;font-size:11px;font-weight:700}.sheet-note .key-note-octave{opacity:.82;font-size:8px;line-height:.9;transform:none}.black .key-label{gap:2px;padding-bottom:1px}.black .key-shortcut{color:#eee;background:#ffffff24;min-width:13px;height:13px;padding:0 2px;box-shadow:inset 0 0 0 1px #ffffff14}.black .key-note{color:#ededed}.black .sheet-note{color:#f5f5f5}.white.active{height:calc(var(--white-key-height) - 3px);box-shadow:inset 0 5px 12px #00000047,0 2px 10px #00000080;background:#a5d6a7!important}.black.active{height:calc(var(--black-key-height) - 3px);box-shadow:inset 0 5px 10px #0000008c;background:#2e7d32!important}.pedals-container{justify-content:center;gap:18px;margin-top:16px;padding:16px 0 2px;display:flex}.pedals-container.hidden{display:none}.pedal{opacity:.82;cursor:pointer;touch-action:none;background:0 0;border:0;border-radius:0;width:82px;min-width:0;height:72px;padding:0;transition:opacity .12s,transform .12s}.pedal:hover{background:0 0;border:0}.pedal.active{opacity:1;transform:translateY(5px)}.pedal svg{pointer-events:none;width:100%;height:100%;display:block}.pedal .pedal-body{fill:#b8b8b8;stroke:#222;stroke-width:2.4px}.pedal .pedal-icon{fill:none;stroke:#050505;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round}.pedal.active .pedal-body{fill:#d0d0d0;stroke:#f0f0f0}.modal-backdrop{z-index:20;box-sizing:border-box;background:#000000b8;justify-content:center;align-items:center;padding:18px;display:none;position:fixed;inset:0}.modal-backdrop.open{display:flex}.setup-panel{text-align:center;background:#202020;border:1px solid #333;border-radius:8px;width:min(720px,100%);max-height:calc(100vh - 36px);overflow:auto;box-shadow:0 24px 80px #00000073}.setup-body{padding:22px;position:relative}.setup-close{color:#aaa;width:40px;min-width:40px;height:40px;padding:0;position:absolute;top:10px;right:10px}#setupInstrument{width:100%}.instrument-grid{box-sizing:border-box;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%;margin-bottom:14px;display:grid}.instrument-card{color:#f2f2f2;text-align:center;background:#242424;border:1px solid #3a3a3a;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:148px;padding:14px;display:flex}.instrument-card[disabled]{opacity:.34;cursor:not-allowed}.instrument-card svg{width:128px;height:78px;display:block}.instrument-card strong{font-size:14px;display:block}.setup-title{margin:0 0 7px;font-size:16px}.setup-title:empty{display:none}.setup-copy{color:#bcbcbc;margin:0 0 12px;font-size:13px;line-height:1.35}.setup-copy:empty{display:none}.setup-actions{justify-content:center;align-items:center;gap:0;width:100%;margin-top:12px;display:flex}.setup-choice{background:0 0;border:0;width:138px;min-width:0;padding:0}.setup-choice:hover{background:0 0;transform:translateY(-1px)}.setup-choice svg{pointer-events:none;width:100%;height:auto;display:block}.setup-action-stack{flex-direction:column;align-items:center;gap:12px;width:100%;display:flex}.setup-choice-row{justify-content:flex-start;gap:8px;width:100%;padding-left:18px;display:flex}.setup-svg-action{background:0 0;border:0;width:min(360px,100%);min-width:0;padding:0}.setup-svg-action:hover{background:0 0;transform:translateY(-1px)}.setup-svg-action svg{width:100%;height:auto;display:block}.setup-svg-action .click-zone{cursor:pointer}.range-preview{background:#141414;border:1px solid #303030;border-radius:8px;margin-top:12px;padding:10px;display:none;overflow-x:auto}.range-preview.visible{display:block}.range-keyboard{height:84px;margin:0 auto;position:relative}.range-key{box-sizing:border-box;border:1px solid #111;border-radius:0 0 4px 4px;position:absolute;bottom:0}.range-white{z-index:1;background:#f1f1f1;width:18px;height:84px}.range-black{z-index:2;background:#050505;width:11px;height:52px;margin-left:-5.5px}.range-key.no-key{background:#9c2b2b}.range-key.yes-key{background:#2d7b3d}.setup-summary{display:none}.config-grid{text-align:left;grid-template-columns:repeat(auto-fit,104px);justify-content:center;gap:8px;width:100%;margin-top:10px;display:grid}.config-card,.add-config-card,.input-card{aspect-ratio:1;color:#f2f2f2;text-align:left;background:#242424;border:1px solid #3a3a3a;border-radius:8px;flex-direction:column;justify-content:center;gap:4px;width:104px;min-width:0;min-height:0;padding:8px;display:flex}.config-card{text-align:center;justify-content:center;align-items:center;gap:4px;padding:8px;position:relative}.config-card.with-controls{justify-content:stretch;gap:0;padding:0;overflow:hidden}.config-card-main{box-sizing:border-box;width:100%;min-width:0;min-height:0;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:0;flex-direction:column;flex:auto;justify-content:center;align-items:center;gap:3px;padding:7px 7px 0;display:flex}.config-card-main:hover{background:0 0}.config-card-main:focus-visible{outline-offset:-2px;border-radius:7px 7px 0 0;outline:1px solid #f0f0f0b3}.config-card strong,.input-card strong{color:#f5f5f5;font-size:14px}.config-card strong{overflow-wrap:anywhere;width:100%;min-height:24px;line-height:1.15;display:block}.config-card span,.input-card span{color:#aaa;font-size:12px;line-height:1.35}.config-logo-wrap{box-sizing:border-box;justify-content:center;align-items:center;width:100%;height:46px;display:flex}.config-logo{width:78px;height:44px;display:block}.config-dot{background:#777;border:1px solid #ffffff2e;border-radius:50%;width:8px;height:8px;position:absolute;top:7px;right:7px}.config-card.connected .config-dot{background:#55c36a;border-color:#97ffa980;box-shadow:0 0 7px #55c36aa6}.add-config-card{text-align:center;color:#f5f5f5;align-items:center;font-size:34px;line-height:1}.menu-config-card{letter-spacing:1px;font-size:28px}.config-stack-icon{fill:none;stroke:currentColor;stroke-width:4px;stroke-linecap:round;stroke-linejoin:round;width:42px;height:42px;display:block}.header-midi-box{width:auto;min-width:0;max-width:calc((var(--header-btn-max-size) * 4) + 21px);scrollbar-width:none;align-items:stretch;gap:7px;margin-left:auto;display:flex;overflow-x:auto}.header-midi-box .header-instrument-card{width:100%;min-width:var(--header-btn-min-size);max-width:var(--header-btn-max-size);cursor:pointer;gap:3px;min-height:0;padding:7px}.header-midi-box .header-instrument-card.with-controls{aspect-ratio:1;cursor:default;background:#242424;gap:0;padding:0;overflow:hidden}.header-midi-box .header-instrument-card .config-card-main{min-height:0;padding:5px 7px 0}.header-midi-box .header-instrument-card.standalone-card .config-card-main{padding-top:7px}.header-midi-box .header-instrument-card .config-expand-button{background:#202020;min-height:20px}.header-midi-box .header-add-config{width:clamp(var(--header-btn-min-size), 20vw, var(--header-btn-max-size));min-width:var(--header-btn-min-size);max-width:var(--header-btn-max-size);flex:none;font-size:34px}.header-midi-box .header-instrument-card:hover{background:#2b2b2b;border-color:#555}.header-midi-box .header-instrument-card:focus-visible{outline-offset:2px;outline:2px solid #f0f0f0bf}.header-midi-box .config-logo-wrap{height:36px}.header-midi-box .config-logo{width:64px;height:36px}.header-midi-box .config-card strong{min-height:22px;font-size:11px}.config-expand-button{color:#a8a8a8;cursor:pointer;background:#ffffff04;border:0;border-top:1px solid #333;flex:0 0 20px;justify-content:center;align-items:center;width:100%;min-width:0;padding:0;display:flex}.config-expand-button:hover{color:#f0f0f0;background:#ffffff0a}.config-expand-button:focus-visible{outline-offset:1px;border-radius:6px;outline:1px solid #f0f0f0b3}.config-expand-button svg{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;width:14px;height:14px;display:block}.config-card.expanded .config-expand-button svg{transform:rotate(180deg)}.knobs-container.hidden-by-config{display:none}.standalone-card .config-dot{background:#55c36a;border-color:#97ffa980;box-shadow:0 0 7px #55c36aa6}.editor-grid{text-align:left;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;margin-top:12px;display:grid}.editor-stack{width:100%}.editor-field{flex-direction:column;gap:5px;display:flex}.editor-field input,.editor-field select{box-sizing:border-box;width:100%;min-width:0}.editor-field input[type=number]{appearance:textfield}.editor-field input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.editor-field input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.editor-bind-button{color:#fff;cursor:pointer;text-align:left;background:#282828;border:1px solid #373737;border-radius:6px;width:100%;min-height:34px;padding:6px 8px;font-size:13px}.editor-bind-button.listening{border-color:#55c36a;box-shadow:0 0 0 2px #55c36a33}.editor-error{color:#ff8a80;text-align:left;min-height:16px;margin-top:10px;font-size:12px;display:none}.modal-actions-row{flex-wrap:wrap;justify-content:center;gap:8px;width:100%;margin-top:14px;display:flex}.danger-button{background:#3a2020;border-color:#743333}.danger-button:hover{background:#4a2525;border-color:#9c4444}body.visual-focus-mode{background:#050606;padding:0;overflow:hidden}body.visual-focus-mode .container{flex-direction:column;min-height:100dvh;display:flex}body.visual-focus-mode .header-section,body.visual-focus-mode .learning-modal-backdrop,body.visual-focus-mode .modal-backdrop,body.visual-focus-mode .song-result-backdrop,body.visual-focus-mode .settings-modal-backdrop,body.visual-focus-mode .knobs-container,body.visual-focus-mode #midi-log,body.visual-focus-mode .loading-bar,body.visual-focus-mode .transport-panel,body.visual-focus-mode .pedals-container{display:none}body.visual-focus-mode .container.competitive-match-active .header-section{border-radius:0;flex:none;margin:0;display:flex}body.visual-focus-mode .container.competitive-match-active .competitive-shell{flex:auto;min-height:0}body.visual-focus-mode .container.competitive-match-active #practiceStage{height:100%}.container.competitive-match-active:fullscreen{background:#050606;flex-direction:column;width:100%;height:100%;padding:0;display:flex;overflow:hidden}.container.competitive-match-active:fullscreen .header-section{border-radius:0;flex:none;margin:0;display:flex}.container.competitive-match-active:fullscreen .competitive-shell{flex:auto;min-height:0}body.visual-focus-mode #practiceStage,#practiceStage:fullscreen{background:#050606;border-radius:0;flex-direction:column;justify-content:stretch;width:100%;height:100dvh;min-height:0;margin:0;display:flex;position:relative;overflow:hidden}body.visual-focus-mode .falling-visualizer,#practiceStage:fullscreen .falling-visualizer{border-left:0;border-right:0;border-radius:0;flex:auto;height:auto;min-height:0}body.visual-focus-mode #keyboard-container,#practiceStage:fullscreen #keyboard-container{flex:0 0 var(--keyboard-height);height:var(--keyboard-height);border-bottom:0;border-left:0;border-right:0;border-radius:0;overflow:hidden}body.visual-focus-mode .visual-score-hud,#practiceStage:fullscreen .visual-score-hud{top:calc(12px + env(safe-area-inset-top));left:calc(12px + env(safe-area-inset-left));max-width:calc(100% - 72px - env(safe-area-inset-left) - env(safe-area-inset-right));box-sizing:border-box;padding:8px 10px}body.visual-focus-mode .visual-fullscreen-button,#practiceStage:fullscreen .visual-fullscreen-button{top:calc(12px + env(safe-area-inset-top));right:calc(12px + env(safe-area-inset-right))}@media (orientation:portrait) and (pointer:coarse){body.visual-focus-mode .visual-orientation-hint,#practiceStage:fullscreen .visual-orientation-hint{bottom:max(12px, env(safe-area-inset-bottom));display:block}}@media (max-width:1100px){.knobs-container{--knob-cols:4}}@media (max-width:700px){body{padding:6px}.header-section{flex-direction:row;align-items:stretch;gap:8px;padding:8px;overflow:hidden}.header-menu-button{width:clamp(58px,18vw,72px);min-width:clamp(58px,18vw,72px);height:clamp(58px,18vw,72px);padding:clamp(7px,2.5vw,12px)}.learning-controls{flex-wrap:nowrap;flex:none;justify-content:flex-start;width:auto}.learning-desktop-controls{display:none}.learning-menu-button.add-config-card{display:flex}.learning-card,.learning-menu-button.add-config-card{width:72px;min-width:72px;max-width:72px;padding:6px}.learning-menu-button.add-config-card svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:34px;height:34px;display:block}.learning-card svg{width:56px;height:32px}.learning-card strong{min-height:20px;font-size:11px}.controls-row{flex-wrap:nowrap;flex:auto;justify-content:flex-end;gap:8px;width:auto;min-width:0;overflow:hidden}.header-midi-box{width:152px;min-width:152px;max-width:152px}.header-midi-box .header-instrument-card{width:72px;min-width:72px;max-width:72px;padding:6px}.header-midi-box .header-instrument-card.with-controls{padding:0}.header-midi-box .header-add-config{width:72px;min-width:72px;max-width:72px;padding:6px;display:flex}.header-midi-box .config-logo-wrap{height:32px}.header-midi-box .config-logo{width:56px;height:32px}.header-midi-box .config-card strong{min-height:20px;font-size:11px}.knobs-container{--knob-cols:4}.instrument-grid,.editor-grid{grid-template-columns:1fr}.transport-panel{grid-template-columns:auto minmax(0,1fr);gap:8px 9px;padding:9px}.transport-actions{gap:8px}.transport-button{width:42px;min-width:42px;height:40px}.transport-title{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.transport-time{grid-column:1/-1;justify-self:start}.timeline-track{height:10px}.song-result-backdrop{align-items:center;padding:10px}.song-result-panel{width:min(380px,100%);padding:13px}.song-result-main{grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-bottom:12px}.song-result-rank{width:74px;min-width:54px;height:62px}.song-result-score{font-size:22px}.song-result-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.song-result-actions{justify-content:stretch}.song-result-actions button{flex:1 1 0;min-width:0;min-height:42px}.falling-visualizer{height:clamp(155px,31vh,245px)}.visualizer-action-button{width:min(190px,68vw)}.viewer-menu-button{width:clamp(64px,22vw,82px);min-width:clamp(64px,22vw,82px);height:clamp(64px,22vw,82px);min-height:clamp(64px,22vw,82px);padding:clamp(14px,5vw,19px)}#visualizerImportButton{width:82px;height:82px;padding:10px}.visual-score-hud{gap:6px;padding:6px 8px;top:8px;left:8px}.visual-score-rank{min-width:24px;font-size:14px}.visual-score-value{font-size:12px}.visual-fullscreen-button{width:40px;min-width:40px;height:40px;top:8px;right:8px}body.visual-focus-mode .visual-score-hud,#practiceStage:fullscreen .visual-score-hud{top:calc(8px + env(safe-area-inset-top));left:calc(8px + env(safe-area-inset-left));max-width:calc(100% - 58px - env(safe-area-inset-left) - env(safe-area-inset-right));gap:5px;padding:5px 7px}body.visual-focus-mode .visual-fullscreen-button,#practiceStage:fullscreen .visual-fullscreen-button{top:calc(8px + env(safe-area-inset-top));right:calc(8px + env(safe-area-inset-right));width:40px;min-width:40px;height:40px}}#status{color:#cfcfcf;text-transform:uppercase;letter-spacing:1px;min-height:16px;font-size:13px;font-weight:700;display:none}.loading-bar{background:#333;border-radius:3px;width:100%;height:6px;margin-top:15px;display:none;overflow:hidden}#progress{background:#4caf50;width:0%;height:100%;transition:width .1s}.audio-activation-button{z-index:10000;color:#fff;cursor:pointer;background:#17231f;border:1px solid #75d3aa;border-radius:999px;padding:12px 20px;font-weight:800;position:fixed;top:18px;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #00000073}.competitive-shell{z-index:80;color:#e8e8e8;text-align:left;background:#171717;font-size:13px;position:fixed;inset:0;overflow:auto}.competitive-shell button,.competitive-shell input{font:inherit}.competitive-shell svg{stroke-width:2px;width:18px;height:18px}.competitive-header{z-index:8;background:#202020;border-bottom:1px solid #303030;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;min-height:70px;padding:10px 16px;display:grid;position:sticky;top:0}.competitive-brand{align-items:center;gap:10px;min-width:0;display:flex}.competitive-brand>svg{color:#75d3aa;width:32px;height:32px}.competitive-brand div{flex-direction:column;display:flex}.competitive-brand b{text-transform:uppercase;letter-spacing:.9px}.competitive-brand span{color:#888;font-size:10px}.competitive-round{background:#181818;border:1px solid #343434;border-radius:8px;align-items:center;gap:8px;padding:7px 10px;display:flex}.competitive-round span{color:#999;text-transform:uppercase;font-size:10px}.competitive-round b{color:#fff;font:700 16px Consolas,monospace}.competitive-exit{justify-self:end;align-items:center;gap:7px;min-width:0;display:flex}.competitive-steps{align-items:flex-start;max-width:760px;margin:14px auto 0;padding:0 18px;list-style:none;display:flex}.competitive-steps li{color:#777;text-transform:uppercase;letter-spacing:.7px;flex-direction:column;flex:1;align-items:center;gap:5px;font-size:10px;display:flex;position:relative}.competitive-steps li:not(:last-child):after{content:"";background:#343434;height:1px;position:absolute;top:13px;left:calc(50% + 16px);right:calc(16px - 50%)}.competitive-steps li:first-line,.competitive-steps li>svg{z-index:1;background:#202020;border:1px solid #3a3a3a;border-radius:50%;width:26px;height:26px;padding:6px}.competitive-steps li.active{color:#f4fff9}.competitive-steps li.active:first-line{background:#29352f;border-color:#75d3aa}.competitive-steps li.done{color:#75d3aa}.competitive-content{width:min(1160px,100% - 28px);min-height:calc(100vh - 110px);margin:18px auto 40px}.competitive-content.phase-home,.competitive-content.phase-play{width:100%;min-height:calc(100vh - 70px);margin:0}.competitive-home{background:radial-gradient(circle at 25% 42%,#75d3aa12,#0000 35%),#171717;grid-template-columns:minmax(0,1.25fr) minmax(300px,430px);align-items:center;gap:clamp(30px,7vw,100px);min-height:calc(100vh - 70px);padding:clamp(28px,6vw,80px);display:grid}.competitive-kicker{color:#75d3aa;letter-spacing:1.3px;text-transform:uppercase;margin-bottom:7px;font-size:10px;font-weight:800;display:block}.competitive-intro h1,.competitive-section-head h1,.competitive-game-top h1,.competitive-victory h1{color:#f4f4f4;letter-spacing:-1.5px;margin:0;font-size:clamp(25px,4vw,48px);line-height:1.02}.competitive-intro>p{color:#aeb5b2;max-width:570px;font-size:16px;line-height:1.5}.competitive-progression{gap:6px;margin-top:28px;display:flex}.competitive-progression span{text-align:center;background:#202020;border:1px solid #343434;border-radius:8px;flex:1;max-width:92px;padding:10px 8px}.competitive-progression b,.competitive-progression small{display:block}.competitive-progression b{color:#e1b36f;font:700 16px Consolas,monospace}.competitive-progression small{color:#888;text-transform:uppercase;margin-top:3px;font-size:9px}.competitive-entry-panel,.competitive-panel,.competitive-round-card{background:#202020;border:1px solid #343434;border-radius:8px;box-shadow:0 24px 80px #00000040}.competitive-entry-panel{padding:18px}.competitive-entry-panel h2{text-transform:uppercase;letter-spacing:.8px;margin:0 0 14px;font-size:14px}.competitive-entry-tabs{background:#181818;border:1px solid #303030;border-radius:8px;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:14px;padding:4px;display:grid}.competitive-entry-tabs button{background:0 0;border:0;justify-content:center;align-items:center;gap:6px;min-width:0;display:flex}.competitive-entry-tabs button.active{background:#3d4f48;box-shadow:inset 0 0 0 1px #75d3aa2e}.competitive-entry-panel label{display:block}.competitive-entry-panel input{width:100%;min-width:0;margin-bottom:10px}.competitive-mode-card{background:#181818;border:1px solid #303030;border-radius:8px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin-bottom:12px;padding:14px;display:grid}.competitive-mode-card>svg{color:#75d3aa}.competitive-mode-card div{flex-direction:column;gap:3px;display:flex}.competitive-mode-card span{color:#888;font-size:11px}.competitive-mode-card>b{font-family:Consolas,monospace}.competitive-primary{color:#f4fff9;background:#29352f;border-color:#75d3aa80;justify-content:center;align-items:center;gap:8px;min-width:0;min-height:42px;padding:10px 14px;font-weight:700;display:inline-flex}.competitive-primary:hover{background:#31443b;border-color:#75d3aa}.competitive-entry-panel>.competitive-primary{width:100%}.competitive-section-head{border-bottom:1px solid #303030;justify-content:space-between;align-items:center;gap:18px;padding:18px;display:flex}.competitive-section-head h1{letter-spacing:-.3px;font-size:23px}.competitive-section-head p{color:#999;margin:6px 0 0}.competitive-status{color:#baffd9;align-items:center;gap:7px;display:flex}.competitive-status>span{background:#55c36a;border-radius:50%;width:8px;height:8px;box-shadow:0 0 8px #55c36a99}.competitive-lobby-grid{grid-template-columns:repeat(4,1fr);gap:8px;padding:18px;display:grid}.competitive-seat{background:#242424;border:1px solid #363636;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-height:128px;padding:14px;display:flex;position:relative}.competitive-seat.current{background:#29352f;border-color:#75d3aa80}.competitive-seat>svg{color:#55c36a;position:absolute;top:9px;right:9px}.competitive-avatar{color:#d8d8d8;background:#303030;border:1px solid #464646;border-radius:50%;flex:0 0 36px;justify-content:center;align-items:center;width:36px;height:36px;font-weight:800;display:inline-flex}.competitive-seat small{color:#888}.competitive-panel-footer{border-top:1px solid #303030;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;display:flex}.competitive-panel-footer p{color:#9aa7a3;align-items:center;gap:7px;margin:0;display:flex}.competitive-selection-layout{grid-template-columns:270px minmax(0,1fr);gap:12px;display:grid}.competitive-round-card{align-self:start;padding:18px}.competitive-round-card>strong{font-size:19px;display:block}.competitive-round-card>p{color:#999;line-height:1.45}.competitive-timer{background:#181818;border:1px solid #373737;border-radius:8px;align-items:center;gap:7px;padding:8px 10px;display:flex}.competitive-timer b{font:700 17px Consolas,monospace}.competitive-hard-choice{cursor:pointer;background:#281f1f;border:1px solid #443434;border-radius:8px;gap:9px;margin-top:16px;padding:12px;display:flex}.competitive-hard-choice input{accent-color:#d98282;min-width:auto;margin-top:3px}.competitive-hard-choice>span{grid-template-columns:auto 1fr;gap:2px 6px;display:grid}.competitive-hard-choice svg{color:#d98282;grid-row:1/3}.competitive-hard-choice small{color:#aa9292}.competitive-search{align-items:center;display:flex;position:relative}.competitive-search svg{color:#888;position:absolute;left:10px}.competitive-search input{min-width:240px;padding-left:35px}.competitive-song-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:12px;display:grid}.competitive-song-list>button,.competitive-proposals>button{text-align:left;background:#242424;border-color:#373737;align-items:center;gap:10px;min-width:0;padding:10px;display:grid;position:relative}.competitive-song-list>button{grid-template-columns:auto minmax(0,1fr) auto auto}.competitive-song-list>button.selected,.competitive-proposals>button.selected{background:#29352f;border-color:#75d3aa8c}.competitive-cover{color:#75d3aa;background:#181818;border:1px solid #3b3b3b;border-radius:6px;justify-content:center;align-items:center;width:46px;height:46px;display:flex}.competitive-song-list button>span:nth-child(2),.competitive-proposal-title{flex-direction:column;gap:3px;min-width:0;display:flex}.competitive-song-list small,.competitive-proposal-title small{color:#888}.competitive-stars{color:#e1b36f;display:flex}.competitive-stars svg{fill:currentColor;width:11px;height:11px}.competitive-hard-badge{color:#e4a0a0;text-transform:uppercase;background:#302323;border:1px solid #704545;border-radius:999px;align-items:center;gap:4px;width:max-content;padding:4px 6px;font-size:9px;font-weight:800;display:inline-flex}.competitive-hard-badge svg{width:11px;height:11px}.competitive-hard-badge.normal{color:#999;background:#292929;border-color:#464646}.competitive-vote{max-width:900px;margin:auto}.competitive-vote .competitive-timer{flex:none}.competitive-proposals{gap:7px;padding:12px;display:grid}.competitive-proposals>button{grid-template-columns:auto minmax(0,1fr) auto}.competitive-proposals>button:disabled{opacity:.52}.competitive-proposal-title em{color:#75d3aa;font-size:10px;font-style:normal}.competitive-vote-count{align-items:center;gap:5px;display:flex}.competitive-vote-count b{font:700 18px Consolas,monospace}.competitive-own-choice{color:#d98282;position:absolute;bottom:6px;right:9px}.competitive-game{background:#090909;flex-direction:column;height:calc(100vh - 70px);display:flex}.competitive-game-top{background:#202020;border-bottom:1px solid #303030;flex:none;justify-content:space-between;align-items:center;min-height:74px;padding:10px 16px;display:flex}.competitive-game-top h1{letter-spacing:0;font-size:20px}.competitive-game-top p{color:#888;margin:4px 0 0}.competitive-viewer{background:linear-gradient(#101211,#080909);border-bottom:1px solid #2a2a2a;flex:auto;min-height:180px;position:relative;overflow:hidden}.competitive-live-ranking{z-index:4;background:#181b19e6;border:1px solid #3a4541;border-radius:8px;width:min(390px,100% - 24px);padding:5px;position:absolute;top:12px;left:12px;box-shadow:0 10px 30px #00000052}.competitive-player-row{color:#aaa;grid-template-columns:28px 28px minmax(55px,1fr) auto auto;align-items:center;gap:7px;min-height:36px;padding:4px 7px;display:grid}.competitive-player-row.current{color:#fff;background:#3d4f48;border-radius:6px}.competitive-player-row .competitive-avatar{flex-basis:26px;width:26px;height:26px;font-size:10px}.competitive-player-row output{font:700 12px Consolas,monospace}.competitive-notes{position:absolute;inset:0}.competitive-notes i{background:#5bcc9180;border:1px solid #8bdeb29e;border-radius:3px;width:clamp(14px,2.5vw,30px);animation:2.8s linear infinite competitive-fall;position:absolute;top:-140px}.competitive-hit-line{background:#75d3aab3;height:3px;position:absolute;bottom:4px;left:0;right:0;box-shadow:0 0 12px #75d3aa80}@keyframes competitive-fall{to{transform:translateY(calc(100vh - 170px))}}.competitive-keyboard{background:#111;justify-content:center;height:clamp(110px,19vh,180px);display:flex;overflow:hidden}.competitive-keyboard>i{background:#f1f1f1;border:1px solid #111;border-radius:0 0 4px 4px;width:min(7.14%,62px);height:100%;position:relative}.competitive-keyboard>i:not(:last-child):after{content:"";z-index:2;background:#050505;border-radius:0 0 3px 3px;width:48%;height:62%;position:absolute;top:0;right:-24%}.competitive-game-action{z-index:6;position:absolute;bottom:16px;right:16px}.competitive-results{max-width:980px;margin:auto}.competitive-result-trophy{color:#e1b36f;width:46px!important;height:46px!important}.competitive-ranking-list{padding:10px}.competitive-ranking-list>div{border-bottom:1px solid #303030;grid-template-columns:34px 36px minmax(90px,1fr) auto 90px 100px 66px;align-items:center;gap:8px;min-height:48px;padding:6px 9px;display:grid}.competitive-ranking-list>div.current{background:#29352f}.competitive-ranking-list>div.eliminated{opacity:.48}.competitive-ranking-list .competitive-avatar{flex-basis:30px;width:30px;height:30px;font-size:11px}.competitive-ranking-list>div>span:nth-of-type(2){text-align:right}.competitive-ranking-list span small{color:#888;font-size:9px;display:block}.competitive-ranking-list output{text-align:right;font:700 13px Consolas,monospace}.competitive-ranking-list em{color:#75d3aa;text-transform:uppercase;font-size:9px;font-style:normal}.competitive-ranking-list .eliminated em{color:#d98282}.competitive-victory{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:calc(100vh - 120px);display:flex}.competitive-victory>svg{color:#e1b36f;width:58px;height:58px}.competitive-victory>p{color:#999}.competitive-podium{align-items:flex-end;gap:6px;height:160px;margin:25px 0;display:flex}.competitive-podium span{background:#202020;border:1px solid #343434;border-radius:8px 8px 0 0;flex-direction:column;justify-content:center;width:110px;height:105px;padding:12px;display:flex}.competitive-podium span.winner{background:#29251e;border-color:#725e3c;height:150px}.competitive-podium span svg{color:#e1b36f;margin:0 auto 7px}.competitive-podium b{color:#e1b36f;font:700 18px Consolas,monospace}.competitive-confirm-backdrop{z-index:90;background:#000000c2;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.competitive-confirm{text-align:center;background:#202020;border:1px solid #3a3a3a;border-radius:8px;width:min(390px,100%);padding:18px;box-shadow:0 24px 80px #00000080}.competitive-confirm>svg{color:#d98282;width:38px;height:38px}.competitive-confirm h2{margin:8px 0}.competitive-confirm p{color:#999;line-height:1.4}.competitive-confirm>div{gap:8px;display:flex}.competitive-confirm button{flex:1}.competitive-confirm .danger-button{color:#f2d6d6}@media (max-width:700px){.header-competitive-button{width:72px;min-width:72px;height:72px}.header-competitive-button span{font-size:27px}.competitive-header{grid-template-columns:1fr auto;padding:8px}.competitive-brand span{display:none}.competitive-round{grid-area:2/1/auto/-1;justify-self:center}.competitive-exit{width:42px;min-width:42px;height:42px;padding:10px;font-size:0}.competitive-home{grid-template-columns:1fr;align-content:start;gap:28px;padding:24px 14px}.competitive-intro h1{font-size:34px}.competitive-progression span{padding:8px 3px}.competitive-progression small{font-size:8px}.competitive-steps{padding:0 4px}.competitive-steps li span{font-size:8px}.competitive-content{width:calc(100% - 12px);margin-top:10px}.competitive-lobby-grid{grid-template-columns:repeat(2,1fr);padding:10px}.competitive-seat{min-height:104px}.competitive-panel-footer{flex-direction:column;align-items:stretch}.competitive-panel-footer .competitive-primary{width:100%}.competitive-selection-layout,.competitive-song-list{grid-template-columns:1fr}.competitive-section-head{flex-direction:column;align-items:flex-start}.competitive-search,.competitive-search input{width:100%;min-width:0}.competitive-game{height:calc(100vh - 70px)}.competitive-game-top{min-height:68px}.competitive-game-top h1{font-size:16px}.competitive-live-ranking{width:calc(100% - 14px);top:7px;left:7px}.competitive-player-row{grid-template-columns:24px 25px minmax(45px,1fr) auto}.competitive-player-row .competitive-hard-badge{display:none}.competitive-keyboard{height:112px}.competitive-game-action{bottom:120px;right:8px}.competitive-game-action .competitive-primary{width:42px;height:42px;padding:10px;font-size:0}.competitive-ranking-list>div{grid-template-columns:27px 30px minmax(65px,1fr) auto 72px}.competitive-ranking-list .competitive-hard-badge,.competitive-ranking-list>div>span:nth-of-type(2){display:none}.competitive-ranking-list output{font-size:11px}.competitive-ranking-list em{grid-column:3}.competitive-podium span{width:88px}.competitive-confirm>div{flex-direction:column}.header-competitive-button{width:clamp(58px,18vw,72px);min-width:clamp(58px,18vw,72px);height:clamp(58px,18vw,72px);padding:clamp(7px,2.5vw,12px)}}.competitive-home-centered{background:#171717;justify-content:center;align-items:center;min-height:calc(100vh - 120px);padding:28px 14px;display:flex}.competitive-menu-panel{background:#202020;border:1px solid #343434;border-radius:8px;width:min(460px,100%);padding:18px;box-shadow:0 18px 55px #00000047}.competitive-menu-title{border-bottom:1px solid #303030;align-items:center;gap:13px;padding-bottom:15px;display:flex}.competitive-menu-title h1{color:#f1f1f1;letter-spacing:-.25px;margin:0;font-size:20px}.competitive-menu-title p{color:#929292;margin:4px 0 0;font-size:11px}.competitive-menu-icon{color:#d98282;background:#2d2222;border:1px solid #583838;border-radius:8px;flex:0 0 48px;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.competitive-menu-icon svg{width:24px;height:24px}.competitive-menu-panel .competitive-progression{margin:14px 0}.competitive-menu-panel .competitive-progression span{max-width:none;box-shadow:none;padding:8px 3px}.competitive-menu-panel .competitive-entry-tabs{margin-top:0}.competitive-menu-panel>.competitive-primary{width:100%}.competitive-menu-panel>label{display:block}.competitive-menu-panel>input{width:100%;min-width:0;margin-bottom:10px}.competitive-lobby{width:min(860px,100%);margin:0 auto;overflow:hidden}.competitive-wait-count{background:#181818;border:1px solid #343434;border-radius:8px;grid-template-columns:auto auto;align-items:center;column-gap:7px;min-width:100px;padding:9px 12px;display:grid}.competitive-wait-count svg{color:#75d3aa;grid-row:1/3}.competitive-wait-count b{color:#f2f2f2;font:700 17px Consolas,monospace}.competitive-wait-count span{color:#888;text-transform:uppercase;font-size:9px}.competitive-lobby .competitive-lobby-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}.competitive-lobby .competitive-seat{text-align:left;flex-direction:row;justify-content:flex-start;min-height:72px;padding:10px 12px}.competitive-lobby .competitive-avatar{color:#aeb8b4;background:#1c1c1c;flex-basis:42px;width:42px;height:42px;position:relative}.competitive-lobby .competitive-avatar>svg{width:25px;height:25px}.competitive-lobby .competitive-avatar i{color:#10251b;background:#75d3aa;border:2px solid #242424;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;display:flex;position:absolute;bottom:-2px;right:-3px}.competitive-lobby .competitive-avatar i svg{stroke-width:3px;width:9px;height:9px}.competitive-seat-profile{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.competitive-seat-profile strong{color:#ececec;font-size:13px}.competitive-seat-profile small{color:#888;font-size:10px}.competitive-ready-label{color:#9edbbd;text-transform:uppercase;background:#24342d;border:1px solid #3c5c4c;border-radius:999px;padding:4px 7px;font-size:9px;font-weight:800}.competitive-seat.current .competitive-ready-label{color:#dff8ea}.competitive-wait-summary{background:#181818;border:1px solid #303030;border-radius:7px;align-items:center;gap:18px;margin:0 12px 12px;padding:9px 11px;display:flex}.competitive-wait-summary>div{align-items:baseline;gap:6px;margin-left:auto;display:flex}.competitive-wait-summary>div+div{margin-left:0}.competitive-wait-summary small{color:#777;text-transform:uppercase;font-size:9px}.competitive-wait-summary b{color:#d8d8d8;font:700 12px Consolas,monospace}@media (max-width:700px){.competitive-home-centered{align-items:flex-start;padding:12px 8px}.competitive-menu-panel{padding:14px}.competitive-menu-panel .competitive-progression small{font-size:7px}.competitive-lobby .competitive-lobby-grid{grid-template-columns:1fr}.competitive-wait-count{width:100%}.competitive-wait-summary{flex-wrap:wrap;gap:9px}.competitive-wait-summary>div{margin-left:0}.competitive-lobby .competitive-panel-footer{padding:12px}}.competitive-options{background:#181818;border:1px solid #303030;border-radius:7px;margin-bottom:10px;padding:10px}.competitive-option-toggle{color:#c9c9c9;text-transform:none;letter-spacing:0;cursor:pointer;align-items:center;gap:9px;margin:0;font-size:12px;display:flex}.competitive-option-toggle input{appearance:none;cursor:pointer;background:#242424;border:1px solid #484848;border-radius:5px;place-content:center;width:20px;min-width:20px;height:20px;margin:0;padding:0;display:grid}.competitive-option-toggle input:before{content:"";border-bottom:2px solid #15271e;border-left:2px solid #15271e;width:9px;height:5px;transition:transform .12s;transform:rotate(-45deg)scale(0)}.competitive-option-toggle input:checked{background:#75d3aa;border-color:#75d3aa;box-shadow:0 0 0 2px #75d3aa1f}.competitive-option-toggle input:checked:before{transform:rotate(-45deg)scale(1)}.competitive-option-toggle input:hover{background-color:#2b3531;border-color:#75d3aa}.competitive-option-toggle input:checked:hover{background-color:#8addb6}.competitive-private-head{color:#999;justify-content:space-between;margin-bottom:10px;font-size:11px;display:flex}.competitive-private-head b{color:#e4e4e4}.competitive-options>label:not(.competitive-option-toggle){justify-content:space-between;align-items:center;margin-top:10px;display:flex}.competitive-options select{min-width:100px}.competitive-native-game{display:contents}.competitive-native-game:not(.active),.competitive-native-game.active .viewer-menu-button,.competitive-native-game.active .visual-score-hud{display:none}.competitive-viewer-ranking{z-index:12;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#0c0e0db8;border:1px solid #ffffff14;border-radius:8px;gap:4px;width:min(310px,100% - 20px);padding:5px;display:grid;position:absolute;top:10px;left:10px;box-shadow:0 10px 28px #0000004d}.competitive-viewer-ranking>div{color:#a8aaa9;opacity:.78;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:34px;padding:3px 7px;display:grid}.competitive-ranking-name{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.competitive-result-list{gap:6px;margin:14px 0 0;padding:0;list-style:none;display:grid}.competitive-result-list li{background:#242424;border:1px solid #343434;border-radius:6px;grid-template-columns:28px 36px minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:52px;padding:8px 10px;display:grid}.competitive-result-avatar{background:#181818;border-radius:50%;place-items:center;width:36px;height:36px;display:grid;overflow:hidden}.competitive-result-avatar img,.competitive-result-avatar svg{aspect-ratio:1;object-fit:cover;object-position:center;width:100%;height:100%}.competitive-result-list li.current{background:#29352f;border-color:#75d3aa}.competitive-result-list li.eliminated{opacity:.55}.competitive-result-list span small{color:#999;display:block}.competitive-result-list output{font-weight:800}.competitive-completed{text-align:center}.competitive-completed .competitive-primary{width:100%;margin-top:12px}@media (max-width:700px){.competitive-viewer-ranking>div:not(.current){display:none}.competitive-result-list li{grid-template-columns:24px 32px minmax(0,1fr) auto}.competitive-result-avatar{width:32px;height:32px}.competitive-result-list li>small{grid-column:3/-1}}.competitive-viewer-ranking>div.current{color:#f2f2f2;opacity:1;background:#29352f;border:1px solid #75d3aa59;border-radius:6px;min-height:42px;transform:scale(1.035);box-shadow:0 5px 14px #00000040}.competitive-ranking-avatar{color:#aaa;background:#242424;border-radius:50%;place-items:center;width:28px;height:28px;display:grid;overflow:hidden}.competitive-viewer-ranking .current .competitive-ranking-avatar{color:#baffd9;width:32px;height:32px}.competitive-ranking-avatar img,.competitive-ranking-avatar svg{aspect-ratio:1;object-fit:cover;object-position:center;width:100%;height:100%}.competitive-viewer-ranking output{font-variant-numeric:tabular-nums;justify-self:end;font:700 12px Consolas,monospace}.competitive-native-game .competitive-live-ranking{z-index:12}.competitive-finish-preview{z-index:13;min-width:84px;position:absolute;top:16px;right:16px}.competitive-shell-reused{padding:12px}.competitive-shell-reused.phase-waitlist,.competitive-shell-reused.phase-selection,.competitive-shell-reused.phase-vote{justify-content:center;align-items:center;min-height:calc(100vh - 120px);display:flex}.competitive-reused-panel{background:#202020;border:1px solid #343434;border-radius:8px;width:min(620px,100%);margin:0 auto;padding:14px}.competitive-match-notice{z-index:95;color:#f0dfbd;text-align:center;background:#30291d;border:1px solid #705d38;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:min(520px,100% - 24px);margin:0;padding:11px 14px;display:flex;position:fixed;top:88px;left:50%;transform:translate(-50%);box-shadow:0 12px 35px #00000061}.competitive-match-error{color:#f2d6d6;background:#302020;border-color:#704040}.competitive-reused-panel>header{border-bottom:1px solid #303030;justify-content:space-between;align-items:center;min-height:44px;display:flex}.competitive-reused-panel h1{color:#eee;margin:0;font-size:15px}.competitive-reused-panel>header output{color:#baffd9;font:700 14px Consolas,monospace}.competitive-profile-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:8px 0;display:grid}.competitive-profile-list>div{background:#242424;border:1px solid #343434;border-radius:6px;align-items:center;gap:8px;min-height:44px;padding:7px 9px;display:flex}.competitive-profile-list>div.current{background:#29352f;border-color:#476354}.competitive-profile-list svg{color:#aaa}.competitive-profile-list img{aspect-ratio:1;object-fit:cover;object-position:center;background:#181818;border-radius:50%;width:48px;height:48px}.competitive-profile-list i{background:#75d3aa;border-radius:50%;width:7px;height:7px;margin-left:auto}.competitive-reused-panel>.competitive-primary{width:100%}.competitive-vote-panel{width:min(900px,100%)}.competitive-vote-songs{margin:10px 0}.competitive-vote-songs article.competitive-own-proposal{box-shadow:inset 0 0 0 2px #d9828252,0 0 0 1px #d982822e;border-color:#e48b8b!important}.competitive-own-proposal button:disabled{opacity:1;cursor:default}.competitive-lobby-list{background:#181818;border:1px solid #343434;border-radius:8px;margin-top:12px;overflow:hidden}.competitive-lobby-list .competitive-profile-list{padding:12px}.competitive-player-count{color:#baffd9;text-align:center;border-top:1px solid #343434;padding:10px 12px;font:700 13px Consolas,monospace}.library-songs article.library-song-selected{background:#29352f;border-color:#75d3aa;box-shadow:inset 0 0 0 1px #75d3aa24}.competitive-vote-total{color:#baffd9;text-align:center;flex:0 0 48px;align-self:center;width:48px}.competitive-vote-total strong,.competitive-vote-total small{display:block}.competitive-vote-total strong{font:700 18px Consolas,monospace}.competitive-vote-total small{color:#888;text-transform:uppercase;margin-top:2px;font-size:9px}@media (max-width:700px){.competitive-vote-songs .library-song-main{grid-template-columns:40px minmax(0,1fr);gap:9px}.competitive-vote-songs .library-song-meta{grid-column:1/-1}.competitive-vote-total{flex-basis:40px;width:40px}.competitive-lobby-list .competitive-profile-list{grid-template-columns:repeat(2,minmax(0,1fr));padding:8px}.competitive-player-count{position:sticky;bottom:0}}.competitive-selection-wait{text-align:center;background:#202020;border:1px solid #343434;border-radius:8px;width:min(420px,100%);margin:0 auto;padding:14px}.competitive-selection-wait p{color:#aaa}@media (max-width:700px){.competitive-shell-reused{padding:6px}.competitive-profile-list{grid-template-columns:1fr}.competitive-reused-panel{margin:8px auto}.competitive-native-game{padding:0}}.competitive-profile-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.competitive-profile-list>div{text-align:center;flex-direction:column;justify-content:center;gap:8px;min-height:112px;padding:12px 8px 10px;position:relative}.competitive-profile-list>div>svg{stroke-width:1.5px;width:48px;height:48px}.competitive-profile-list>div>span{color:#e8e8e8;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;font-weight:700;overflow:hidden}.competitive-profile-list>div>i{width:8px;height:8px;margin:0;position:absolute;top:9px;right:9px;box-shadow:0 0 0 2px #242424}.competitive-profile-list>div.current>i{box-shadow:0 0 0 2px #29352f}@media (max-width:700px){.competitive-profile-list{grid-template-columns:repeat(2,minmax(0,1fr))}.competitive-profile-list>div{min-height:104px}}.container>.header-section{z-index:var(--z-app-header)}.competitive-shell{z-index:var(--z-library)}.competitive-confirm-backdrop{z-index:var(--z-competitive-confirm)}.competitive-match-notice{z-index:var(--z-competitive-notice)}.audio-activation-button{z-index:var(--z-audio-activation)}.library-menu,.container.competitive-match-active .library-menu-competitive{border:1px solid #2d2d2d;border-radius:8px;inset:138px 16px 16px;overflow:hidden;box-shadow:0 18px 55px #00000052}.library-menu-header>input[type=search],.library-menu-header>select,.library-menu-header>button,.library-menu-header>.library-view-switch{align-self:center;height:48px;min-height:48px}.library-menu-header>.library-view-switch>button{height:100%;min-height:0}@media (max-width:800px){.library-menu,.container.competitive-match-active .library-menu-competitive{border-radius:6px;inset:94px 6px 6px}}.container.menu-active .header-section{border-radius:4px 4px 0 0;margin-bottom:0}.container.menu-active .library-menu{border-radius:0 0 8px 8px;top:130px;box-shadow:0 18px 55px #00000047}.container.competitive-active:not(.competitive-match-active) .header-section{border-radius:4px 4px 0 0;margin-bottom:0}.container.competitive-active:not(.competitive-match-active) .competitive-shell{border-radius:0 0 8px 8px;height:calc(100dvh - 146px);min-height:0;overflow:hidden}.container.competitive-active:not(.competitive-match-active) .competitive-home-centered{height:100%;min-height:0;padding-block:12px;overflow:hidden}@media (max-width:800px){.container.menu-active .library-menu{border-radius:0 0 6px 6px;top:86px}.container.competitive-active:not(.competitive-match-active) .competitive-shell{height:calc(100dvh - 92px)}.container.competitive-active:not(.competitive-match-active) .competitive-home-centered{padding-block:8px}}.container.menu-active .header-section,.container.competitive-active:not(.competitive-match-active) .header-section{border-radius:4px;margin-bottom:8px}.container.menu-active .library-menu,.container.menu-active .library-menu-competitive{width:100%;height:calc(100dvh - 154px);min-height:0;box-shadow:none;border-radius:8px;position:relative;inset:auto}.container.competitive-active .competitive-shell{border-radius:4px;height:calc(100dvh - 154px);min-height:0;overflow:auto}.container.competitive-active .competitive-shell-reused.phase-waitlist,.container.competitive-active .competitive-shell-reused.phase-selection,.container.competitive-active .competitive-shell-reused.phase-vote{min-height:0}@media (max-width:800px){.container.menu-active .library-menu,.container.menu-active .library-menu-competitive{border-radius:6px;height:calc(100dvh - 100px);position:relative;inset:auto}.container.competitive-active .competitive-shell{border-radius:4px;height:calc(100dvh - 100px)}}.competitive-countdown{color:#e8e8e894;letter-spacing:.26em;text-indent:.26em;font-variant-numeric:tabular-nums;font-family:Avenir Next,Segoe UI Variable Display,Helvetica Neue,sans-serif;font-size:clamp(36px,4.8vw,62px);font-weight:800;font-stretch:75%;line-height:.9}.header-competitive-countdown{z-index:2;pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.header-competitive-phase{color:#929292;letter-spacing:.12em;text-transform:uppercase;font-size:11px;font-weight:800;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.competitive-shell-reused.phase-play,.competitive-shell-reused.phase-countdown{padding:0}.competitive-shell-reused.phase-countdown #visualizerStartButton{display:none}.competitive-viewer-countdown{z-index:30;color:#fff;letter-spacing:0;text-indent:0;pointer-events:none;background:#0506066b;place-items:center;font-size:clamp(90px,22vw,240px);display:grid;position:absolute;inset:0}
