.driver-popover{all:unset;font-family:var(--driver-popover-font-family,"Helvetica Neue", Inter, ui-sans-serif, "Apple Color Emoji", Helvetica, Arial, sans-serif);box-sizing:border-box;color:#2d2d2d;z-index:1000000000;background-color:#fff;border-radius:5px;min-width:250px;max-width:300px;margin:0;padding:15px;position:fixed;top:0;right:0;box-shadow:0 1px 10px #0006}.driver-popover-title{zoom:1;margin:0;font-size:19px;font-weight:700;line-height:1.5;display:block;position:relative}.driver-popover-close-btn{all:unset;cursor:pointer;color:#d2d2d2;z-index:1;text-align:center;width:32px;height:28px;font-size:18px;font-weight:500;transition:color .2s;position:absolute;top:0;right:0}.driver-popover-close-btn:hover,.driver-popover-close-btn:focus{color:#2d2d2d}.driver-popover-title[style*=block]+.driver-popover-description{margin-top:5px}.driver-popover-description{zoom:1;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.5}.driver-popover-footer{text-align:right;zoom:1;justify-content:space-between;align-items:center;margin-top:15px;display:flex}.driver-popover-progress-text{color:#727272;zoom:1;font-size:13px;font-weight:400}.driver-popover-footer-btn{all:unset;box-sizing:border-box;color:#2d2d2d;cursor:pointer;zoom:1;background-color:#fff;border:1px solid #ccc;border-radius:3px;outline:0;padding:3px 7px;font-size:12px;line-height:1.3;text-decoration:none;display:inline-block}.driver-popover-footer .driver-popover-btn-disabled{opacity:.5;pointer-events:none}.driver-popover-footer-btn:hover,.driver-popover-footer-btn:focus{background-color:#f7f7f7}.driver-popover-navigation-btns{flex-grow:1;justify-content:flex-end;display:flex}.driver-popover-navigation-btns button+button{margin-left:4px}.driver-popover-arrow{content:"";border:5px solid #fff;position:absolute}.driver-popover-arrow-side-over{display:none}.driver-popover-arrow-side-left{border-top-color:#0000;border-bottom-color:#0000;border-right-color:#0000;left:100%}.driver-popover-arrow-side-right{border-top-color:#0000;border-bottom-color:#0000;border-left-color:#0000;right:100%}.driver-popover-arrow-side-top{border-bottom-color:#0000;border-left-color:#0000;border-right-color:#0000;top:100%}.driver-popover-arrow-side-bottom{border-top-color:#0000;border-left-color:#0000;border-right-color:#0000;bottom:100%}.driver-popover-arrow-side-center,.driver-popover-arrow-none{display:none}.driver-active .driver-overlay{pointer-events:none}.driver-active.driver-no-scroll{overflow:hidden}.driver-active *{pointer-events:none}.driver-active .driver-active-element,.driver-active .driver-active-element *,.driver-popover,.driver-popover *{pointer-events:auto}@keyframes animate-fade-in{0%{opacity:0}to{opacity:1}}.driver-fade .driver-overlay{animation:animate-fade-in var(--driver-animation-duration,.4s) ease-in-out}.driver-fade .driver-popover{animation:animate-fade-in var(--driver-animation-duration,.4s)}.driver-active-element-parent-no-scroll{overflow:hidden!important}.driver-no-interaction,.driver-no-interaction *{pointer-events:none!important}@font-face{font-family:Anybody Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:50% 150%;src:url(/assets/anybody-vietnamese-standard-normal-9GtAklmW.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Anybody Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:50% 150%;src:url(/assets/anybody-latin-ext-standard-normal-BaQ5u-C4.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Anybody Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:50% 150%;src:url(/assets/anybody-latin-standard-normal-CHqbGEEr.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/atkinson-hyperlegible-next-latin-ext-wght-normal-C6vrW8VD.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/atkinson-hyperlegible-next-latin-wght-normal-BcXVPD7q.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,[data-theme=dark]{--tinta:#16142b;--foso:#110f23;--pista:#1c1938;--apagado:#3a3470;--escenario:#221e42;--tarima:#2e2957;--luz:#f5f3ff;--humo:#aea9d6;--ceniza:#7e78ad;--mode-learn:#2fd6a0;--mode-battle:#ff5e90;--mode-jam:#ffc83d;--ink:#16142b;--line:#2e2957;--wash:#fff;--shadow:#000;--hand-l:#c49bff;--hand-r:#ff7e67;--key-white:#e4e1f5;--key-black:#0c0b18;--key-unused:#8f8ab3;--lane-kick:#4d8eff;--lane-snare:#ffc83d;--lane-hihat:#2fd6a0;--lane-openhat:#a6e35f;--lane-clap:#ff5e90;--lane-tom:#a97dff;--lane-rim:#5fe3e8;--lane-crash:#ff8c42;--lane-tomlow:#9c8cff;--lane-tomhigh:#d59bff;--lane-ride:#ffb27a;--lane-cowbell:#e8d36a;--lane-sub:#7fb0ff;--lane-snap:#ff8fb3;--lane-shaker:#7cf0c8;--lane-conga:#f2a25c;--lane-halfhat:#20bf1d;--lane-hatpedal:#1da2bf;--lane-bell:#bf5b30;--metal-gold-hi:#fff3c2;--metal-gold-mid:#f2bf45;--metal-gold-lo:#9c6a12;--metal-silver-hi:#f7f8fc;--metal-silver-mid:#bcc3d3;--metal-silver-lo:#687087;--metal-bronze-hi:#ffd6b0;--metal-bronze-mid:#cf8648;--metal-bronze-lo:#7e421a;--metal-platinum-hi:#eefcff;--metal-platinum-mid:#9cdcea;--metal-platinum-lo:#3f8496;--metal-legend-hi:#f3e4ff;--metal-legend-mid:#b78aff;--metal-legend-lo:#5f33b8;--font-display:"Anybody Variable", "Anybody", system-ui, sans-serif;--font-body:"Atkinson Hyperlegible Next Variable", "Atkinson Hyperlegible Next", system-ui, sans-serif;--radius-pad:12px;--radius-container:20px;--radius-chip:999px;--accent:var(--mode-learn);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:var(--font-body)}[data-theme=light]{--tinta:#f3f1fa;--foso:#e6e3f2;--pista:#fbfaff;--apagado:#bdb7db;--escenario:#fff;--tarima:#e5e1f4;--luz:#1b1836;--humo:#55507e;--ceniza:#7f79ac;--mode-learn:#167053;--mode-battle:#c9003e;--mode-jam:#7a5200;--ink:#fff;--line:#d5d0ea;--wash:#1b1836;--shadow:#55507e;--hand-l:#8a4fe8;--hand-r:#d9432b;--key-white:#fff;--key-black:#1b1836;--key-unused:#b9b4d6;--lane-kick:#2b6ff0;--lane-snare:#a87400;--lane-hihat:#12906a;--lane-openhat:#5c8f14;--lane-clap:#e0286c;--lane-tom:#8a52f0;--lane-rim:#0e8e98;--lane-crash:#d95b0b;--lane-tomlow:#5b48c9;--lane-tomhigh:#b03fd9;--lane-ride:#9a4a12;--lane-cowbell:#7d7a12;--lane-sub:#1b3fa8;--lane-snap:#a3164f;--lane-shaker:#1f7a4a;--lane-conga:#b5651a;--lane-halfhat:#0f590d;--lane-hatpedal:#0d5059;--lane-bell:#590d0d;--metal-gold-hi:#fff1b8;--metal-gold-mid:#e8b02e;--metal-gold-lo:#7a5200;--metal-silver-hi:#f4f6fb;--metal-silver-mid:#aab2c4;--metal-silver-lo:#4d5468;--metal-bronze-hi:#ffd1a6;--metal-bronze-mid:#c27736;--metal-bronze-lo:#6a3512;--metal-platinum-hi:#e9fbff;--metal-platinum-mid:#86cfdf;--metal-platinum-lo:#2c6c7d;--metal-legend-hi:#eedcff;--metal-legend-mid:#a673f7;--metal-legend-lo:#4b2299;--accent:var(--mode-learn);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.mode-battle{--accent:var(--mode-battle)}.mode-jam{--accent:var(--mode-jam)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--tinta);color:var(--luz);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}h1,h2{letter-spacing:-.01em;margin:0}h1{font-family:var(--font-display);font-weight:800;font-stretch:108%}.muted{color:var(--humo)}.warn-text{color:var(--lane-crash)}.page{flex-direction:column;min-height:100%;display:flex}.page.center{justify-content:center;align-items:center;gap:12px}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:16px 24px;display:flex}.topbar-right{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.brand{font-family:var(--font-display);letter-spacing:-.02em;font-size:24px;font-weight:800;font-stretch:118%}.brand b{color:var(--accent);font-weight:800}.content{width:100%;max-width:1100px;margin:0 auto;padding:32px 24px 64px}.content.narrow{max-width:760px}.pill{background:var(--escenario);border:1px solid var(--line);color:var(--humo);border-radius:999px;align-items:center;gap:8px;padding:6px 12px;font-size:14px;display:inline-flex}.pill.ok{color:var(--luz)}.pill.warn{color:var(--lane-crash)}.dot{background:var(--humo);border-radius:50%;width:8px;height:8px;display:inline-block}.pill.ok .dot,.dot.ok{background:var(--mode-learn)}.icon-btn{background:var(--escenario);border:1px solid var(--line);border-radius:10px;place-items:center;width:36px;height:36px;font-size:16px;display:inline-grid}.icon-btn:hover{background:var(--tarima)}.hero{margin-bottom:32px}.hero h1{font-size:40px;font-weight:600}.hero p{color:var(--humo);margin:6px 0 0}.cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.card{background:var(--escenario);border:1px solid var(--line);border-radius:var(--radius-container);flex-direction:column;gap:8px;padding:16px;transition:transform .15s,border-color .15s,background .15s;display:flex}a.card:hover{border-color:var(--ceniza);background:var(--tarima)}.card.disabled{opacity:.5}.card-lanes{gap:4px;display:flex}.card-lanes span{opacity:.85;border-radius:2px;flex:1;height:4px}.card-title{font-size:17px;font-weight:600}.card-meta{color:var(--humo);justify-content:space-between;gap:8px;font-size:14px;display:flex}.diff{color:var(--accent);letter-spacing:2px;font-size:14px}.diff i{color:var(--line);font-style:normal}.card-foot{justify-content:space-between;align-items:center;margin-top:4px;font-size:14px;display:flex}.stars{letter-spacing:2px}.star{color:var(--apagado)}.star.on{color:var(--lane-snare)}.play{flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.play-bar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 16px;display:flex}.play-title{white-space:nowrap;font-weight:600}.stage{flex:1;min-height:0;position:relative}.highway{width:100%;height:100%;display:block;position:absolute;inset:0}.play-controls{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.segmented.compact{padding:3px}.segmented.compact button{padding:5px 10px;font-size:14px}.toggle{border:1px solid var(--line);color:var(--humo);background:0 0;border-radius:999px;padding:6px 12px;font-size:14px;font-weight:600}.toggle.on{background:color-mix(in srgb, var(--accent) 12%, transparent);border-color:var(--accent);color:var(--accent)}.volume{align-items:center;gap:6px;font-size:14px;display:flex}.volume input{width:96px;accent-color:var(--accent)}.overlay{overscroll-behavior:contain;background:color-mix(in srgb, var(--foso) 78%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);place-items:start center;padding:16px;animation:.25s fade;display:grid;position:absolute;inset:0;overflow-y:auto}.overlay>.panel{margin:auto 0}.panel{background:var(--escenario);border:1px solid var(--line);text-align:center;border-radius:20px;flex-direction:column;gap:16px;width:min(460px,100%);padding:32px;animation:.3s cubic-bezier(.2,1.4,.4,1) pop;display:flex}.panel h1{font-size:30px;font-weight:600}.eyebrow{color:var(--humo);font-size:16px;font-weight:600}.hint{color:var(--humo);margin:0;font-size:14px}.hint a{color:var(--accent)}.segmented{background:var(--tinta);border:1px solid var(--line);border-radius:12px;align-self:center;gap:4px;padding:4px;display:inline-flex}.segmented button{color:var(--humo);background:0 0;border:0;border-radius:8px;padding:8px 16px;font-weight:600}.segmented button.on{background:var(--tarima);color:var(--luz)}.btn{border:1px solid var(--line);background:var(--tarima);border-radius:12px;padding:10px 20px;font-weight:600;transition:transform .1s ease-out,filter .15s ease-out}.btn:hover{filter:brightness(1.15)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.6;cursor:default}.btn.primary{background:var(--accent);color:var(--ink);border-color:#0000}.btn.big{padding:16px;font-size:18px;font-weight:600}.btn.small{border-radius:8px;padding:6px 12px;font-size:14px}.btn.ghost{background:0 0}.row{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.results .big-score{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:69px;font-weight:900}.stats{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.stat{background:var(--tinta);border-radius:10px;padding:10px 4px}.stat-v{font-size:16px;font-weight:600}.stat-l{color:var(--humo);margin-top:2px;font-size:14px}.advice{margin:0;font-weight:600}.instrument-picker button{align-items:center;gap:6px;display:inline-flex}.box{background:var(--escenario);border:1px solid var(--line);border-radius:var(--radius-container);flex-direction:column;gap:12px;margin-bottom:20px;padding:20px;display:flex}.box h2{font-size:17px}.box p{margin:0}.devices{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.devices li{align-items:center;gap:8px;display:flex}.monitor{background:var(--tinta);border-radius:10px;padding:10px 12px;font-size:14px}.field{flex-direction:column;gap:6px;font-size:14px;display:flex}.field select,.field input[type=range]{width:100%}.field select{background:var(--tinta);color:var(--luz);border:1px solid var(--line);border-radius:10px;padding:8px}.check{align-items:center;gap:8px;font-size:14px;display:flex}.mapping{flex-direction:column;gap:8px;display:flex}.map-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.swatch{border-radius:4px;width:12px;height:12px}.map-lane{width:80px;font-weight:600}.chips{flex-wrap:wrap;flex:1;gap:4px;min-width:120px;display:flex}.chip{background:var(--tinta);color:var(--humo);border-radius:6px;padding:2px 7px;font-size:14px}.chip.on{background:var(--accent);color:var(--ink);font-weight:600}.calibration{flex-direction:column;gap:10px;display:flex}.calibration .row{justify-content:flex-start}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:scale(.94)translateY(8px)}}@media (width<=560px){.topbar{padding:12px 16px}.content{padding:20px 16px 48px}.hero h1{font-size:30px}.stats{grid-template-columns:repeat(2,1fr)}}.pad-layouts{flex-direction:column;gap:10px;display:flex}.pad-layout-cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.pad-layout-card{text-align:left;background:var(--tinta);color:var(--luz);border:2px solid var(--line);border-radius:var(--radius-container);cursor:pointer;flex-direction:column;gap:8px;padding:12px;display:flex}.pad-layout-card.on{border-color:var(--accent)}.pad-layout-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.pad-layout-grid{align-self:center;gap:4px;width:100%;max-width:260px;display:grid}.pad-layout-pad{text-align:center;border-radius:var(--radius-pad);border:1px solid var(--apagado);color:var(--humo);justify-content:center;align-items:center;min-height:0;padding:2px;font-size:11px;font-weight:600;line-height:1.1;display:flex;overflow:hidden}.pad-layout-pad.used{border-color:var(--c);background:color-mix(in srgb, var(--c) 22%, transparent);color:var(--luz)}.pad-layout-pad.lit{background:var(--c,var(--accent));color:var(--ink)}.auth{gap:16px}.providers{flex-direction:column;gap:8px;display:flex}.divider{color:var(--humo);align-items:center;gap:10px;font-size:14px;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}.auth-form{flex-direction:column;gap:8px;display:flex}.auth-form input{background:var(--tinta);color:var(--luz);border:1px solid var(--line);font:inherit;border-radius:10px;padding:11px 12px}.auth-form input:focus{outline:2px solid var(--accent);outline-offset:-1px}.link{color:var(--accent);background:0 0;border:0;align-self:flex-start;padding:0}.row.start{justify-content:flex-start}code{background:var(--tinta);border-radius:5px;padding:1px 5px;font-size:.9em}.leaderboard{text-align:left;flex-direction:column;gap:4px;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.leaderboard li{background:var(--tinta);border-radius:8px;grid-template-columns:24px 1fr auto auto;align-items:center;gap:10px;padding:6px 10px;display:grid}.leaderboard li.me{outline:1px solid var(--accent)}.leaderboard .rank{color:var(--humo);font-weight:600}.leaderboard .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sync-error{color:var(--lane-crash);margin:0;font-size:14px}.leaderboard.player-best li{grid-template-columns:auto minmax(0,1fr) auto auto;gap:14px;min-height:52px}.leaderboard.player-best .player-battle{opacity:0;transition:opacity .12s ease-out}.leaderboard.player-best li:hover .player-battle,.leaderboard.player-best li:focus-within .player-battle{opacity:1}@media (hover:none){.leaderboard.player-best .player-battle{opacity:1}}@media (prefers-reduced-motion:reduce){.leaderboard.player-best .player-battle{transition:none}}.mode-chip{background:var(--tarima);color:var(--humo);border-radius:999px;padding:4px 12px;font-size:14px;font-weight:600}.mode-chip.performance{color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent)}.mode-chip.practice{color:var(--lane-snare);background:color-mix(in srgb, var(--lane-snare) 10%, transparent)}.modes{flex-direction:column;gap:8px;display:flex}.mode-btn{text-align:left;border:1px solid var(--line);background:var(--tarima);border-radius:14px;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 16px;transition:transform .1s,filter .15s;display:flex}.mode-btn:hover{filter:brightness(1.15)}.mode-btn:active{transform:scale(.98)}.mode-btn.primary{background:var(--accent);color:var(--ink);border-color:#0000}.mode-btn-label{font-size:17px;font-weight:600}.mode-btn-help{opacity:.75;font-size:14px}.best{justify-content:center;align-items:center;gap:10px;font-size:14px;display:flex}.play-tools{border-bottom:1px solid var(--line);background:var(--pista);flex-wrap:wrap;align-items:center;gap:4px 12px;padding:5px 12px;font-size:14px;display:flex}.pt-group{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.pt-group+.pt-group:not(.sound){border-left:1px solid var(--line);padding-left:12px}.pt-group.sound{margin-left:auto}@media (width<=900px){.pt-group+.pt-group:not(.sound){border-left:0;padding-left:0}.pt-group.sound{margin-left:0}}.pt-tempo{min-height:36px;color:var(--humo);align-items:center;gap:8px;padding:0 10px;display:flex}.pt-tempo .slider{width:150px}.pt-label{white-space:nowrap;font-weight:600}.pt-value{min-width:64px;color:var(--luz);font-variant-numeric:tabular-nums}.pt-switch{min-height:36px;color:var(--humo);white-space:nowrap;background:0 0;border:0;border-radius:10px;align-items:center;gap:8px;padding:4px 10px;font-size:14px;font-weight:600;display:inline-flex}.pt-switch:hover{background:var(--tarima)}.pt-switch.on{color:var(--luz)}.pt-switch.on svg{color:var(--accent)}.pt-switch[aria-disabled]{opacity:.55;cursor:default}.pt-switch[aria-disabled]:hover{background:0 0}.pt-switch .switch{display:block}.pt-switch .switch:after{content:none}.tip{z-index:30;background:var(--escenario);border:1px solid var(--line);max-width:280px;color:var(--luz);box-shadow:0 8px 24px color-mix(in srgb, var(--shadow) 30%, transparent);border-radius:10px;padding:10px 12px;font-size:14px;line-height:1.4;animation:.12s fade}.tip b{display:block}.tip p{color:var(--humo);margin:2px 0 0}.tip-keys{color:var(--ceniza);align-items:center;gap:6px;margin-top:8px;display:flex}.tip kbd{font-family:var(--font-body);background:var(--tinta);border:1px solid var(--tarima);color:var(--luz);border-radius:6px;padding:1px 7px;font-size:14px;font-weight:600}.tip-arrow{fill:var(--line)}.link.small{font-size:14px}.switch{border:1px solid var(--line);background:var(--tinta);border-radius:999px;flex-shrink:0;width:34px;height:20px;padding:2px;position:relative}.switch span{background:var(--humo);border-radius:50%;width:14px;height:14px;transition:transform .15s,background .15s;display:block}.switch.on{background:color-mix(in srgb, var(--accent) 20%, transparent);border-color:var(--accent)}.switch.on span{background:var(--accent);transform:translate(14px)}.slider{accent-color:var(--accent);width:140px}.select{background:var(--tinta);color:var(--luz);border:1px solid var(--line);font:inherit;border-radius:9px;padding:6px 8px;font-size:14px}.drawer{background:var(--escenario);border-left:1px solid var(--line);z-index:5;width:min(360px,100%);padding:16px 20px 32px;animation:.2s slide;position:absolute;top:0;bottom:0;right:0;overflow-y:auto}.drawer-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.drawer-note{color:var(--humo);background:var(--tinta);border-radius:8px;margin:0 0 8px;padding:8px 10px;font-size:14px}.drawer h3,.settings-list h3{color:var(--humo);margin:20px 0 6px;font-size:16px;font-weight:600}.setting{border-bottom:1px solid var(--line);padding:8px 0}.setting-head{justify-content:space-between;align-items:center;gap:12px;font-size:14px;display:flex}.setting-label{font-weight:600}.setting-help{color:var(--humo);margin:4px 0 0;font-size:14px}.toast{background:var(--tarima);border:1px solid var(--accent);color:var(--luz);z-index:6;border-radius:999px;padding:10px 20px;font-weight:600;animation:.3s cubic-bezier(.2,1.4,.4,1) pop;position:absolute;top:16px;left:50%;transform:translate(-50%)}@keyframes slide{0%{opacity:0;transform:translate(24px)}}.map-lane.wide{width:auto;min-width:120px}.card.compact{min-width:200px;max-width:220px;padding:12px}.card-tags{flex-wrap:wrap;gap:6px;display:flex}.tag{background:var(--tinta);color:var(--humo);border-radius:999px;padding:2px 10px;font-size:14px;font-weight:600}.tag.new{color:var(--humo);background:0 0;padding-inline:0}.tag.mastery{color:var(--luz);background:color-mix(in srgb, var(--mode-learn) 18%, var(--tinta))}.tag.mastery.memory{background:color-mix(in srgb, var(--lane-tom) 22%, var(--tinta))}.tag.tier-principiante{color:var(--mode-learn)}.tag.tier-intermedio{color:var(--lane-snare)}.tag.tier-avanzado{color:var(--lane-crash)}.tag.tier-experto{color:var(--lane-clap)}.filters{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.steps{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.step-chip{border:1px solid var(--line);background:var(--tinta);color:var(--humo);border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:6px 10px;font-size:14px;font-weight:600;display:flex}.step-chip.on{border-color:var(--accent);color:var(--luz)}.step-chip .stars{font-size:14px}.tips{text-align:left;color:var(--humo);margin:0;padding-left:20px;font-size:14px}@media (width<=560px){.onboarding .experience{grid-template-columns:1fr}}.editor{flex-direction:column;display:flex;position:fixed;inset:0}.ed-title{color:var(--luz);font:inherit;background:0 0;border:1px solid #0000;border-radius:8px;min-width:160px;padding:4px 8px;font-size:16px;font-weight:600}.ed-title:hover,.ed-title:focus{border-color:var(--line);background:var(--tinta);outline:none}.ed-main{flex:1;grid-template-columns:1fr 320px;min-height:0;display:grid}.ed-canvas{flex-direction:column;min-width:0;min-height:0;display:flex}.ed-toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 12px;font-size:14px;display:flex}.ed-hint{margin-left:auto;font-size:14px}.ed-grid{background:var(--tinta);flex:1;display:flex;position:relative;overflow:auto}.ed-labels{z-index:3;background:var(--escenario);border-right:1px solid var(--line);min-width:96px;position:sticky;left:0}.ed-ruler-spacer{background:var(--escenario);border-bottom:1px solid var(--line);z-index:4;height:48px;position:sticky;top:0}.ed-label{color:var(--humo);border-left:3px solid #0000;border-bottom:1px solid color-mix(in srgb, var(--wash) 3%, transparent);box-sizing:border-box;white-space:nowrap;align-items:center;padding:0 8px;font-size:14px;font-weight:600;display:flex}.ed-label.black{background:var(--key-black);color:var(--key-unused)}.ed-scroll{position:relative}.ed-ruler{z-index:2;background:var(--escenario);border-bottom:1px solid var(--line);height:48px;position:sticky;top:0}.ed-bar{border:0;border-left:1px solid var(--line);height:24px;color:var(--humo);text-align:left;background:0 0;padding-left:6px;font-size:14px;position:absolute;top:24px}.ed-bar.on{color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent)}.ed-strip-label{height:24px;color:var(--humo);border-bottom:1px solid var(--line);box-sizing:border-box;align-items:center;padding-left:8px;font-size:12px;font-weight:600;display:flex;position:absolute;top:0;left:0;right:0}.ed-section,.ed-strip-free{box-sizing:border-box;cursor:pointer;height:20px;font:inherit;border:0;align-items:center;display:flex;position:absolute;top:2px;overflow:hidden}.ed-section{background:color-mix(in srgb, var(--accent) 22%, transparent);border-left:3px solid var(--accent);color:var(--luz);border-radius:6px;padding:0 6px}.ed-section.alt{background:color-mix(in srgb, var(--accent) 12%, transparent)}.ed-section.on{outline:2px solid var(--accent);outline-offset:-2px}.ed-section span{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.ed-strip-free{color:var(--humo);border-left:1px dashed var(--line);opacity:.6;background:0 0;justify-content:center}.ed-strip-free:hover,.ed-strip-free:focus-visible{opacity:1;background:color-mix(in srgb, var(--accent) 8%, transparent)}.ed-section-edge{background:color-mix(in srgb, var(--accent) 55%, transparent);pointer-events:none;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0}.ed-sections{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.ed-body{cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none;background-image:linear-gradient(to right, color-mix(in srgb, var(--wash) 4%, transparent) 1px, transparent 1px), linear-gradient(to right, color-mix(in srgb, var(--wash) 9%, transparent) 1px, transparent 1px), linear-gradient(to right, color-mix(in srgb, var(--wash) 22%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in srgb, var(--wash) 4%, transparent) 1px, transparent 1px);position:relative}.ed-row-black{background:color-mix(in srgb, var(--shadow) 25%, transparent);pointer-events:none;position:absolute;left:0;right:0}.ed-bar-sel{background:color-mix(in srgb, var(--accent) 4%, transparent);pointer-events:none;position:absolute;top:0;bottom:0}.ed-note{box-shadow:0 0 8px color-mix(in srgb, var(--shadow) 40%, transparent);pointer-events:none;border-radius:4px;position:absolute}.ed-note.draft{opacity:.7}.ed-note.picked{outline:3px solid var(--luz);outline-offset:1px;z-index:1}.ed-finger{color:var(--ink);justify-content:center;align-items:center;font-size:11px;font-weight:600;line-height:1;display:flex;position:absolute;inset:0}.ed-note .ed-finger[style]{background:var(--tinta);color:var(--luz);border:2px solid;border-radius:4px}.ed-fingers{flex-wrap:wrap;align-items:center;gap:8px;padding:8px 0;display:flex}.ed-fingers .finger-btn{min-width:36px}.ed-playhead{background:var(--luz);pointer-events:none;width:2px;display:none;position:absolute;top:0;bottom:0;left:0}.ed-side{border-left:1px solid var(--line);background:var(--escenario);flex-direction:column;gap:12px;padding:12px;display:flex;overflow-y:auto}.ed-card{background:var(--tinta);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:8px;padding:12px;display:flex}.ed-card h3{color:var(--humo);margin:0;font-size:16px;font-weight:600}.ed-card p{margin:0}.ed-stats{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.ed-stats div{background:var(--escenario);border-radius:8px;flex-direction:column;padding:6px 8px;display:flex}.ed-stats b{font-size:16px}.ed-stats span{color:var(--humo);font-size:14px}.ed-alerts{flex-direction:column;gap:4px;margin:0;padding-left:16px;font-size:14px;display:flex}.ed-alerts .error{color:var(--lane-clap)}.ed-alerts .warning{color:var(--lane-crash)}.ed-field{flex-direction:column;gap:4px;font-size:14px;display:flex}.ed-field input:not([type=range]),.ed-field textarea{background:var(--escenario);color:var(--luz);border:1px solid var(--line);font:inherit;border-radius:8px;padding:6px 8px;font-size:14px}.ed-field .slider{width:100%}.ed-share{flex-wrap:wrap;gap:6px;display:flex}.ed-share input{background:var(--escenario);min-width:0;color:var(--luz);border:1px solid var(--line);border-radius:8px;flex:1;padding:6px 8px;font-size:14px}.ok-text{color:var(--mode-learn);font-size:14px}.medal{color:var(--lane-snare);margin:0;font-weight:600}.my-lesson{background:var(--escenario);border:1px solid var(--line);border-radius:var(--radius-container);flex-direction:column;display:flex;overflow:hidden}.my-lesson>.card{background:0 0;border:0;border-radius:0}.my-foot{justify-content:space-between;align-items:center;gap:8px;padding:0 16px 16px;display:flex}.my-status{color:var(--humo);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;font-size:14px;display:inline-flex;overflow:hidden}.my-status.ok{color:var(--mode-learn);font-weight:600}.my-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.btn.danger{background:var(--lane-clap);color:var(--ink);border-color:#0000}.btn.caution{background:color-mix(in srgb, var(--lane-crash) 85%, var(--wash));color:var(--ink);border-color:#0000}@media (width<=900px){.ed-main{grid-template-rows:1fr auto;grid-template-columns:1fr}.ed-side{border-left:0;border-top:1px solid var(--line);max-height:40vh}}.playlists{flex-direction:column;gap:10px;max-width:720px;margin-top:32px;display:flex}.playlists h2,.playlists p{margin:0}.playlist{border-radius:var(--radius-container);background:var(--escenario);border:1px solid var(--line);flex-direction:column;gap:8px;padding:12px 16px;display:flex}.playlist-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.playlist-head .btn{align-items:center;gap:6px;display:inline-flex}.playlist-head .btn.primary{margin-left:auto}.playlist-items{flex-direction:column;gap:4px;margin:0;padding-left:20px;display:flex}.playlist-items li{justify-content:space-between;align-items:center;gap:8px;display:flex}.playlist-tools{gap:4px;display:inline-flex}.playlist-tools .icon-btn{width:32px;height:32px}.add-to-list{margin-top:8px}.consent{background:var(--tarima);border:1px solid var(--line);z-index:50;max-width:560px;box-shadow:0 10px 40px color-mix(in srgb, var(--shadow) 50%, transparent);border-radius:14px;margin:0 auto;padding:16px;font-size:14px;position:fixed;bottom:16px;left:16px;right:16px}.consent p{color:var(--humo);margin:0 0 10px}.consent a{color:var(--accent)}.card.locked .lesson-art,.card.locked .card-lanes{opacity:.5}.card{position:relative}.wall h1{font-size:26px}.wall ul{text-align:left;color:var(--humo);margin:0;padding-left:20px;font-size:14px}.legal{max-width:760px;line-height:1.6}.legal h2{margin-top:24px}.credits{flex-direction:column;gap:10px;padding-left:20px;display:flex}.credits li{flex-direction:column;display:flex}.about-links{flex-direction:column;gap:8px;margin:0;padding-left:20px;display:flex}.cta-card{background:color-mix(in srgb, var(--accent) 8%, transparent);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);border-radius:12px;flex-direction:column;gap:8px;padding:12px;display:flex}.battle-box{border:1px solid var(--line);text-align:left;border-radius:12px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.battle-list{flex-direction:column;gap:6px;display:flex}.battle-row{background:var(--tinta);border:1px solid var(--line);text-align:left;border-radius:10px;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.battle-row:hover{border-color:var(--accent)}.battle-who{flex-direction:column;font-size:14px;display:flex}.battle-who .muted{font-size:14px}.battle-score{font-variant-numeric:tabular-nums;font-weight:600}.battle-result{border-radius:12px;flex-direction:column;gap:2px;padding:10px;font-size:14px;display:flex}.battle-result.win{background:color-mix(in srgb, var(--mode-learn) 12%, transparent);border:1px solid var(--mode-learn)}.battle-result.lose{background:color-mix(in srgb, var(--mode-battle) 10%, transparent);border:1px solid var(--mode-battle)}.battle-result span{color:var(--humo);font-size:14px}.crowns{flex-direction:column;gap:6px;display:flex}.crown-line{flex-wrap:wrap;align-items:center;gap:8px;margin:0;display:flex}.crown-locked{align-items:center;gap:6px;display:flex}.standing{grid-template-columns:auto 1fr;align-items:center;gap:4px 10px;font-size:14px;display:grid}.standing .muted{grid-column:1/-1}.standing-bar{border-radius:var(--radius-chip);background:linear-gradient(90deg, var(--tarima), color-mix(in srgb, var(--mode-battle) 45%, var(--tarima)));height:8px;position:relative}.standing-bar span{background:var(--mode-battle);border-radius:2px;width:4px;height:16px;margin-left:-2px;position:absolute;top:-4px}.battle-row.robot .who-line{color:var(--humo)}.battle-row .who-line{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.crown-list{flex-direction:column;gap:8px;display:flex}.crown-row{color:inherit;grid-template-columns:1fr auto;text-decoration:none}.results-guest-battle{color:var(--humo);margin:0;font-size:14px}.crown-celebration{flex-direction:column;align-items:center;gap:4px;min-height:0;display:flex}.crown-celebration.on{padding:8px 0}.crown-drop{animation:.75s cubic-bezier(.3,1.4,.5,1) both crown-drop;display:inline-flex}.crown-celebration.legend .crown-drop{color:var(--mode-learn);animation-duration:.5s}.crown-title{font-family:var(--font-display);margin:0;font-size:26px}.crown-from{color:var(--humo);margin:0}.crown-from s{color:var(--luz)}@keyframes crown-drop{0%{opacity:0;transform:translateY(-120px)rotate(-14deg)}60%{opacity:1;transform:translateY(6px)rotate(4deg)}80%{transform:translateY(-8px)rotate(-2deg)}to{transform:translateY(0)rotate(0)}}@media (prefers-reduced-motion:reduce){.crown-drop{animation:none}}.league-week .row-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.league-gaps{flex-direction:column;gap:4px;margin:0 0 12px;font-weight:600;display:flex}.league-rows{gap:4px;width:100%;margin:0;padding:0;list-style:none;display:grid}.league-row{border-radius:var(--radius-chip);background:var(--escenario);border:1px solid var(--tarima);grid-template-columns:40px minmax(0,1fr) 20px max-content 40px;align-items:center;gap:12px;min-height:56px;padding:4px 16px;display:grid}.league-row.me{border-color:var(--mode-battle);background:color-mix(in srgb, var(--mode-battle) 10%, var(--escenario))}.league-row.robot{color:var(--humo)}.league-row.after-up,.league-row.before-down{margin-top:12px}.league-pos{font-variant-numeric:tabular-nums;color:var(--humo);text-align:right}.league-who{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;min-width:0;display:inline-flex;overflow:hidden}.league-xp{font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right;min-width:7ch;font-weight:600}.zone-up{color:var(--mode-learn)}.zone-down{color:var(--mode-battle)}.league-views{margin-bottom:16px}.league-follow{justify-content:flex-end;display:inline-flex}.league-zone{justify-content:center;display:inline-flex}.follow-btn{align-items:center;gap:6px;display:inline-flex}.follow-btn.on{color:var(--mode-learn)}.follow-btn.icon-only{justify-content:center;width:36px;min-height:36px;padding:0}.metal-mark{vertical-align:middle;filter:drop-shadow(0 1px 1.5px color-mix(in srgb, var(--shadow) 45%, transparent));flex:none;display:inline-block;overflow:visible}.metal-sweep{transform-box:fill-box;transform-origin:50%;animation:6s ease-in-out 1.2s infinite metal-sweep;transform:translate(-200%)skew(-18deg)}@keyframes metal-sweep{0%,72%{transform:translate(-200%)skew(-18deg)}to{transform:translate(900%)skew(-18deg)}}@media (prefers-reduced-motion:reduce){.metal-sweep{animation:none;display:none}}.medal-title{align-items:center;gap:12px;display:flex}.week-strip{border-radius:var(--radius-container);background:color-mix(in srgb, var(--escenario) 88%, transparent);border:1px solid var(--tarima);flex-wrap:wrap;align-items:center;gap:24px;margin:0 0 24px;padding:16px 24px;display:flex}.week-strip.guest{gap:16px}.week-strip.guest .strip-main{flex:280px}.strip-league{border-radius:var(--radius-pad);min-width:0;color:inherit;text-align:left;font:inherit;cursor:pointer;background:0 0;border:0;flex:320px;align-items:center;gap:16px;margin:-4px;padding:4px;display:flex}.strip-league:hover .strip-title{text-underline-offset:4px;text-decoration:underline}.strip-main{flex-direction:column;gap:4px;min-width:0;display:flex}.strip-title{font-family:var(--font-display);margin:0;font-size:28px;font-weight:700;font-stretch:112%;line-height:1.1}.strip-place{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.strip-place b{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:22px}.strip-goal{color:var(--humo);font-weight:600}.strip-side{flex-wrap:wrap;gap:8px;display:flex}.strip-stat{border-radius:var(--radius-chip);border:1px solid var(--tarima);background:var(--tinta);min-height:48px;color:var(--luz);font:inherit;cursor:pointer;align-items:center;gap:8px;padding:0 16px;font-weight:600;display:inline-flex}.strip-stat:hover{background:var(--tarima)}.strip-stat.hot{border-color:var(--mode-battle);color:var(--mode-battle)}.league-tabs{margin-bottom:8px}.league-tabs .tab{align-items:center;gap:8px;display:inline-flex}.tab-count{border-radius:var(--radius-chip);background:var(--tarima);min-width:24px;color:var(--luz);font-variant-numeric:tabular-nums;text-align:center;padding:0 8px;font-size:14px;line-height:24px}.league-tabs .tab.on .tab-count{background:var(--mode-battle);color:var(--ink)}.league-panel>.subsection:first-child{margin-top:16px}.league-empty{flex-direction:column;align-items:flex-start;gap:12px;display:flex}@media (width<=640px){.week-strip{gap:16px;padding:16px}.strip-title{font-size:22px}.league-row{grid-template-columns:28px minmax(0,1fr) 16px max-content 36px;gap:8px;padding:4px 8px}}.stage{grid-template-columns:minmax(0,1fr);display:grid}.stage.split{background:var(--foso);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2px}.pane{background:var(--tinta);flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.pane.solo{flex-direction:row}.track-area{flex:1;min-width:0;min-height:0;position:relative}.minimap{background:var(--foso);border-bottom:1px solid var(--tarima);flex-shrink:0;width:100%;height:44px;display:block}.minimap.interactive{cursor:ew-resize;touch-action:none;height:56px}.minimap.interactive:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.play-hud{background:var(--pista);border-left:1px solid var(--tarima);flex-direction:column;flex-shrink:0;gap:16px;width:300px;padding:20px 20px 16px;display:flex;overflow-y:auto}.hud-head{flex-direction:column;gap:4px;display:flex}.hud-mode{color:var(--accent);align-self:flex-start;font-size:14px;font-weight:600}.hud-title{font-size:17px;font-weight:600;line-height:1.25}.hud-preview{color:var(--humo);margin:0}.hud-score{font-family:var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:69px;font-weight:900;line-height:1}.pane-score .hud-score{font-size:39px}.hud-combo{font-variant-numeric:tabular-nums;align-items:baseline;gap:12px;font-size:17px;font-weight:600;display:flex}.hud-mult{font-family:var(--font-display);color:var(--ceniza);font-size:28px;font-weight:900}.hud-mult.on{color:var(--accent)}.hud-accuracy{color:var(--humo);font-variant-numeric:tabular-nums;font-size:17px}.hud-practice{border-radius:var(--radius-pad);background:var(--escenario);flex-direction:column;gap:4px;padding:12px;font-size:14px;display:flex}.hud-practice b{font-size:17px}.hud-auto{color:var(--accent);font-weight:600}.hud-ok{color:var(--mode-learn);font-weight:600}.hud-toasts{flex-direction:column;gap:8px;display:flex}.hud-hints{color:var(--humo);flex-wrap:wrap;gap:6px 16px;margin-top:auto;font-size:14px;display:flex}.hud-hints kbd,.pause-card kbd{font-family:var(--font-body);background:var(--tinta);border:1px solid var(--tarima);color:var(--luz);border-radius:6px;padding:1px 7px;font-size:14px;font-weight:600}.toast.in-hud{text-align:center;border-radius:var(--radius-pad);align-self:stretch;position:static;transform:none}.race{border-radius:var(--radius-pad);background:var(--escenario);flex-direction:column;gap:6px;padding:12px;font-size:14px;display:flex}.race-row{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.race-diff{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:22px;font-weight:900}.race-diff.ahead{color:var(--mode-learn)}.race-diff.behind{color:var(--mode-battle)}.race-bar{border-radius:var(--radius-chip);background:var(--tinta);height:8px;display:block;overflow:hidden}.race-bar span{border-radius:inherit;height:100%;transition:width .2s linear;display:block}.race-bar.you span{background:var(--accent)}.race-bar.rival span{background:var(--ceniza)}.race-rank{border-radius:var(--radius-chip);background:var(--tarima);margin-left:6px;padding:1px 8px;font-size:14px;font-weight:600}.pane-head{background:var(--pista);border-bottom:1px solid var(--tarima);justify-content:space-between;align-items:flex-end;gap:12px;padding:10px 16px;display:flex}.pane-head.rival .hud-score{color:var(--humo)}.pane-who{flex-direction:column;gap:2px;min-width:0;font-size:14px;display:flex}.pane-who b{text-overflow:ellipsis;white-space:nowrap;font-size:17px;overflow:hidden}.pane-score{white-space:pre;flex-direction:column;align-items:flex-end;gap:2px;font-size:14px;display:flex}.split-diff{z-index:3;flex-direction:column;gap:8px;width:min(340px,44%);display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.split-diff .race{background:var(--escenario);border:1px solid var(--tarima)}.split-diff .toast.in-hud{background:var(--tarima)}.countdown-veil{background:color-mix(in srgb, var(--foso) 72%, transparent);z-index:2;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.countdown-num{font-family:var(--font-display);color:var(--luz);font-size:160px;font-weight:900;line-height:1}.countdown-num.pulse{animation-name:pulse-width;animation-timing-function:cubic-bezier(.2,.8,.3,1);animation-fill-mode:both}@keyframes pulse-width{0%{opacity:.6;font-stretch:124%}35%{opacity:1;font-stretch:94%}to{font-stretch:100%}}.pause-veil{background:color-mix(in srgb, var(--foso) 80%, transparent);z-index:4;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.pause-card{border-radius:var(--radius-container);background:var(--escenario);border:1px solid var(--tarima);flex-direction:column;gap:10px;width:min(360px,100%);padding:24px;display:flex}.pause-card h2{font-family:var(--font-display);margin:0 0 6px;font-size:39px;font-weight:900;font-stretch:110%}.pause-card .btn{justify-content:space-between;align-items:center;display:flex}.pause-card .check-row{align-items:center;gap:8px;padding:6px 2px;font-size:14px;display:flex}@media (width<=900px){.pane.solo{flex-direction:column}.play-hud{border-left:0;border-top:1px solid var(--tarima);flex-flow:wrap;order:-1;align-items:center;gap:8px 16px;width:auto;padding:10px 16px;overflow:visible}.play-hud .hud-score{font-size:39px}.hud-hints,.hud-practice .muted{display:none}.play-hud .race{flex:1;min-width:220px}}@media (prefers-reduced-motion:reduce){.countdown-num.pulse{animation:none}.race-bar span{transition:none}}.row.between{justify-content:space-between;width:100%}.center-narrow{max-width:820px;margin:0 auto}.flow-cards{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.flow-card{text-align:left;border:1px solid var(--line);background:var(--escenario);color:inherit;cursor:pointer;border-radius:16px;flex-direction:column;align-items:flex-start;gap:10px;padding:24px;text-decoration:none;display:flex}.flow-card:hover{border-color:var(--accent)}.flow-card b{font-size:22px}.flow-card .btn{margin-top:auto}.flow-icon{font-size:34px;line-height:1}.battle-who{align-items:flex-start}.who-line{align-items:center;gap:6px;display:flex}.battle-row.static{cursor:default}.battle-row.static:hover{border-color:var(--line)}.battle-row.focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.battle-row.win{border-left:3px solid var(--mode-learn)}.battle-row.lose{border-left:3px solid var(--lane-crash)}.battle-card{flex-direction:column;gap:6px;display:flex}.input{background:var(--escenario);min-width:180px;color:var(--luz);border:1px solid var(--line);border-radius:8px;flex:1;padding:8px 10px;font-size:14px}.review-queue{flex-direction:column;gap:12px;display:flex}.review-item{flex-direction:column;gap:10px;display:flex}.review-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.review-head h2{margin:0 0 4px}.ed-check{color:var(--humo);align-items:flex-start;gap:8px;font-size:14px;line-height:1.4;display:flex}.report-reasons{flex-wrap:wrap;gap:6px;display:flex}.link-btn{color:var(--humo);cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0;font-size:14px;text-decoration:underline}.link-btn:hover{color:var(--luz)}.rank-badge{background:var(--tarima);border:1px solid var(--line);color:var(--humo);vertical-align:middle;border-radius:999px;padding:2px 10px;font-size:14px;font-weight:600;display:inline-block}.rank-badge.r3,.rank-badge.r4{color:var(--lane-hihat);border-color:color-mix(in srgb, var(--lane-hihat) 40%, transparent)}.rank-badge.r5,.rank-badge.r6{color:var(--lane-rim);border-color:color-mix(in srgb, var(--lane-rim) 40%, transparent)}.rank-badge.r7,.rank-badge.r8{color:var(--lane-snare);border-color:color-mix(in srgb, var(--lane-snare) 40%, transparent)}.rank-badge.r9{color:var(--lane-tom);border-color:color-mix(in srgb, var(--lane-tom) 40%, transparent)}.rank-bar{flex-direction:column;gap:6px;max-width:420px;display:flex}.rank-bar-head{align-items:center;gap:8px;display:flex}.rank-bar .bar{background:var(--tarima);border-radius:999px;height:6px;overflow:hidden}.rank-bar .bar span{background:var(--accent);height:100%;display:block}.xp-row{justify-content:center;align-items:center;gap:10px;margin-top:-4px;display:flex}.xp-gain{color:var(--mode-learn);font-size:15px}.monitor-line{flex-wrap:wrap;align-items:baseline;gap:6px 16px;display:flex}.ready-overlay{background:var(--tinta);-webkit-backdrop-filter:none;backdrop-filter:none;place-items:stretch stretch;padding:8px 40px 32px}.ready{grid-template-columns:minmax(0,1fr) minmax(320px,480px);align-items:start;gap:40px;width:100%;max-width:1360px;margin:0 auto;display:grid}.ready-controller{background:var(--foso);border-radius:var(--radius-container);flex-direction:column;gap:20px;min-height:560px;padding:32px;display:flex}.ready-controller-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.ready-controller-head h2{font-size:22px}.ready-stage{place-items:center;display:grid;position:relative}.kit{aspect-ratio:16/11;width:100%;max-width:620px;position:relative}.kit-piece,.kit-ghost{box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex;position:absolute;overflow:hidden}.kit-piece{border:4px solid var(--c);background:var(--tarima);border-radius:var(--radius-container)}.kit-ghost{border:2px dashed var(--apagado);border-radius:var(--radius-container);color:var(--humo);font-size:14px}.kit-piece.round,.kit-ghost.round{border-radius:50%}.piece-flash{background:var(--c);pointer-events:none;animation:.32s ease-out forwards piece-flash;position:absolute;inset:0}.piece-flash.player{animation-duration:.22s}@keyframes piece-flash{0%{opacity:1;box-shadow:0 0 48px var(--c) inset}to{opacity:0}}.piece-name{text-align:center;padding:0 6px;font-size:18px;font-weight:600;position:relative}.keycaps{gap:6px;display:flex;position:relative}.keycaps kbd,.pad-meta kbd,.key-label kbd{font-family:var(--font-body);box-sizing:border-box;background:var(--tinta);min-width:36px;height:36px;color:var(--luz);border-radius:8px;justify-content:center;align-items:center;padding:0 8px;font-size:20px;font-weight:600;display:inline-flex}.piece-tested{color:var(--mode-learn);position:absolute;top:12%;right:16%}.pad-grid{aspect-ratio:2;gap:16px;width:100%;max-width:640px;display:grid}.pad-cell,.pad-ghost{border-radius:var(--radius-pad);box-sizing:border-box;position:relative}.pad-cell{border:4px solid var(--c);background:color-mix(in srgb, var(--c) 22%, var(--tarima));flex-direction:column;justify-content:space-between;padding:12px;display:flex;overflow:hidden}.pad-ghost{border:2px dashed var(--apagado)}.pad-cell .piece-name{text-align:left;padding:0}.pad-top{justify-content:space-between;align-items:flex-start;gap:6px;display:flex;position:relative}.pad-number{color:var(--humo);white-space:nowrap;font-size:13px}.pad-meta{color:var(--humo);align-items:center;gap:8px;font-size:14px;display:flex;position:relative}.pad-grid.dense{gap:10px}.pad-grid.dense .pad-cell{border-width:3px;padding:8px}.pad-grid.dense .piece-name{font-size:14px}.pad-grid.dense .pad-number{font-size:11px}.pad-grid.dense .pad-meta kbd{min-width:26px;height:26px;padding:0 5px;font-size:15px}.pad-grid.dense .finger{width:26px;height:26px;font-size:15px}.pad-cell .piece-tested{margin-right:-9px;top:auto;bottom:12px;right:50%}.keyboard{width:100%;max-width:720px;height:200px;position:relative}.key{box-sizing:border-box;position:absolute;top:0;overflow:hidden}.key.white{border-radius:0 0 var(--radius-pad) var(--radius-pad);background:var(--key-unused);border:1px solid var(--foso);height:100%}.key.white.used{background:var(--key-white);border-bottom:8px solid var(--c)}.key.black{z-index:1;background:var(--key-black);border:1px solid var(--tarima);border-radius:0 0 8px 8px;height:60%}.key.black.used{border:3px solid var(--c)}.key-label{color:var(--key-black);flex-direction:column;align-items:center;gap:6px;font-size:18px;font-weight:600;display:flex;position:absolute;bottom:14px;left:0;right:0}.key.black .key-label{color:var(--key-white);font-size:14px;bottom:8px}.key .piece-tested{margin-left:-9px;top:8px;left:50%;right:auto}.finger{border-radius:var(--radius-chip);background:var(--h);width:28px;height:28px;color:var(--ink);flex:none;justify-content:center;align-items:center;font-size:16px;font-weight:600;display:inline-flex;position:relative}.key.black .finger{width:22px;height:22px;font-size:13px}.pad-cell .finger{background:var(--tinta);width:32px;height:32px;color:var(--luz);box-shadow:inset 0 0 0 2px var(--h);margin-left:auto;font-size:18px}.finger-legend{color:var(--humo);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 16px;font-size:14px;display:flex}.finger-legend p{max-width:420px;margin:0}.hands-diagram{flex:none;max-width:100%;height:auto}.coach{border-radius:var(--radius-pad);background:var(--luz);color:var(--ink);align-self:center;margin:0;padding:12px 16px;font-size:18px;font-weight:600}.coach.offer{flex-wrap:wrap;align-items:center;gap:10px;max-width:640px;display:flex}.coach.offer span{flex:280px}.coach.offer .btn.ghost{border-color:var(--ceniza);color:var(--ink)}.listen-row{align-items:center;gap:16px;display:flex}.listen-btn{align-items:center;gap:10px;min-height:48px;display:inline-flex}.listen-bar{background:var(--tarima);border-radius:999px;flex-grow:1;height:8px;overflow:hidden}.listen-bar>span{background:var(--luz);height:100%;display:block}.listen-time{color:var(--humo);font-variant-numeric:tabular-nums;font-size:18px}.ready-info{flex-direction:column;gap:20px;padding-top:8px;display:flex}.ready-info h1{font-size:55px;line-height:1}.chips-row{flex-wrap:wrap;gap:8px;display:flex}.chips-row .chip{background:var(--escenario);color:var(--humo);border-radius:999px;padding:4px 12px;font-size:14px}.ready-instruction{margin:0;font-size:22px;line-height:1.45}.ready-stepup{flex-direction:column;gap:2px;font-size:16px;display:flex}.ready-stepup p{margin:0}.ready-theory{flex-direction:column;gap:4px;display:flex}.ready-theory summary{cursor:pointer;color:var(--accent);font-weight:600}.ready-theory p{max-width:60ch;color:var(--humo);margin:4px 0 8px}.ready-steps{flex-wrap:wrap;gap:8px;display:flex}.ready-steps .step-chip{background:var(--escenario);border-radius:999px;flex-direction:row;min-height:48px;padding:0 16px;font-size:18px}.ready-steps .step-chip.on{border:2px solid var(--luz)}.step-stars{color:var(--lane-snare);letter-spacing:1px}.ready-actions{flex-direction:column;gap:12px;display:flex}.ready-actions .play-btn{border-radius:var(--radius-pad);justify-content:center;align-items:center;gap:12px;min-height:64px;font-size:22px;font-weight:600;display:inline-flex}.ready-actions .practice-btn{border-radius:var(--radius-pad);min-height:52px;font-size:18px;font-weight:600}.ready-battle{border-top:1px solid var(--tarima);flex-direction:column;gap:12px;padding-top:16px;display:flex}.ready-battle.first{border-top:0;padding-top:0}.ready-actions.secondary .practice-btn{min-height:44px;font-size:16px}.ready-trials{flex-direction:column;gap:8px;display:flex}.ready-trials .setting-help{margin:0}.check-row{cursor:pointer;align-items:center;gap:12px;font-size:18px;display:flex}.check-row input{width:22px;height:22px;accent-color:var(--mode-battle);margin:0}.ready-more{border-top:1px solid var(--tarima);padding-top:12px}.ready-more summary{cursor:pointer;color:var(--humo);align-items:center;min-height:44px;font-size:18px;display:flex}.ready-more[open] summary{color:var(--luz)}@media (width<=960px){.ready{grid-template-columns:1fr}.ready-controller{min-height:0}.ready-overlay{padding:8px 16px 24px}}@media (prefers-reduced-motion:reduce){.piece-flash{opacity:.6;animation:none}}.keys-view{flex-direction:column;gap:16px;width:100%;max-width:720px;display:flex}.kb-where{align-items:center;gap:12px;font-size:14px;display:flex}.kb-where-bar{border-radius:var(--radius-chip);background:var(--key-unused);opacity:.9;flex:1;height:10px;position:relative}.kb-where-bar span{border-radius:var(--radius-chip);background:var(--accent);position:absolute;top:-3px;bottom:-3px}.listen-row.slow{justify-content:flex-start;min-height:40px}.listen-count{font-family:var(--font-display);color:var(--accent);min-width:2ch;font-size:30px;font-weight:800}.results-overlay{background:var(--tinta);-webkit-backdrop-filter:none;backdrop-filter:none;place-items:start center;padding:40px 16px 48px}.results-screen{text-align:center;flex-direction:column;align-items:center;gap:16px;width:min(720px,100%);margin:auto 0;display:flex}.results-screen .stars{letter-spacing:6px}.celebration-canvas{pointer-events:none;z-index:5;width:100%;height:100%;position:fixed;inset:0}.results-stars{position:relative}.results-screen .star{display:inline-block}.results-screen .star.on{animation:.28s ease-out star-light}.results-screen .star.almost{animation:.45s ease-out star-almost}.mastered-stamp{white-space:nowrap;border:2px solid var(--mode-learn);border-radius:var(--radius-chip);color:var(--mode-learn);margin-left:12px;padding:2px 12px;font-size:14px;font-weight:600;animation:.22s ease-out stamp-in;position:absolute;top:50%;left:100%;transform:translateY(-50%)rotate(-8deg)}@keyframes star-light{0%{opacity:.4;transform:scale(.6)}60%{transform:scale(1.25)}}@keyframes star-almost{50%{color:color-mix(in srgb, var(--lane-snare) 50%, var(--apagado));transform:scale(1.1)}}@keyframes stamp-in{0%{opacity:0;transform:translateY(-50%)rotate(-8deg)scale(1.6)}}.results-headline{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:69px;font-weight:900;font-stretch:116%;line-height:1}.results-screen.won .results-headline,.results-screen.perfect .results-headline{color:var(--accent)}.results-screen.lost .results-headline,.results-screen.again .results-headline{color:var(--luz)}.results-score{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:110px;font-weight:900;line-height:1}.results-score.pulse{animation:.6s cubic-bezier(.2,.8,.3,1) both pulse-width}.results-battle{color:var(--humo);margin:0;font-size:18px}.results-sustain{color:var(--mode-learn);margin:0;font-size:16px;font-weight:600}.results-battle .ahead{color:var(--mode-learn)}.results-battle .behind{color:var(--mode-battle)}.run-medals{flex-wrap:wrap;justify-content:center;gap:8px;margin:0;padding:0;list-style:none;display:flex}.run-medal{border-radius:var(--radius-chip);background:var(--escenario);border:1px solid var(--tarima);align-items:center;gap:8px;padding:6px 16px;font-weight:600;display:inline-flex}.run-medal span{color:var(--lane-snare)}.run-medal.precise span{color:var(--lane-rim)}.run-medal.flawless span{color:var(--luz)}.results-actions{flex-direction:column;align-items:center;gap:12px;width:min(420px,100%);margin-top:8px;display:flex}.results-actions .btn.big{width:100%;padding:16px 24px;font-size:18px;font-weight:600}.results-secondary{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.milestones{color:var(--humo);flex-direction:column;gap:4px;font-size:14px;display:flex}.milestones:empty{display:none}.results-detail-toggle{align-self:center;font-size:16px}.results-detail{text-align:left;border-radius:var(--radius-container);background:var(--escenario);flex-direction:column;gap:20px;width:100%;padding:24px;display:flex}.results-detail h2{font-family:var(--font-display);margin:0;font-size:28px;font-weight:800}.results-detail h3{color:var(--humo);margin:0 0 8px;font-size:16px;font-weight:600}.results-detail p{margin:0 0 4px}.judge-bar{border-radius:var(--radius-chip);background:var(--tinta);gap:2px;height:18px;display:flex;overflow:hidden}.judge-bar .seg{flex-basis:0;min-width:4px}.judge-bar .perfect,.judge-legend .perfect span{background:var(--luz)}.judge-bar .great,.judge-legend .great span{background:var(--mode-learn)}.judge-bar .good,.judge-legend .good span{background:var(--lane-snare)}.judge-bar .miss,.judge-legend .miss span{background:var(--apagado)}.judge-legend{flex-wrap:wrap;gap:8px 20px;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.judge-legend li{align-items:center;gap:6px;display:inline-flex}.judge-legend li span{border-radius:var(--radius-chip);color:var(--ink);padding:1px 8px;font-weight:600}.judge-legend .miss span{color:var(--luz)}.judge-legend .acc{margin-left:auto;font-weight:600}.error-chips{flex-wrap:wrap;gap:8px;margin:0 0 8px;padding:0;list-style:none;display:flex}.error-chips li{border-radius:var(--radius-chip);background:var(--tarima);padding:4px 12px;font-size:14px;font-weight:600}.error-chips .early{color:var(--lane-crash)}.error-chips .late{color:var(--lane-tom)}.results-detail .advice{font-size:17px;font-weight:600}.review-map{border-radius:var(--radius-pad);width:100%;height:88px;display:block}.practice-part{flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;display:grid}@media (width<=600px){.results-headline{font-size:44px}.results-score{font-size:69px}.results-detail{padding:16px}}@media (prefers-reduced-motion:reduce){.results-score.pulse,.results-screen .star.on,.results-screen .star.almost,.mastered-stamp{animation:none}}.diagnosis{background:var(--tinta);border:1px solid var(--line);text-align:center;border-radius:12px;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 12px;max-width:560px;margin:4px auto 0;padding:10px 16px;font-size:15px;display:flex}.diagnosis p{margin:0}.precision-line{color:var(--luz);margin:0;font-size:15px;font-weight:600}.progress-line{color:var(--humo);margin:0;font-size:15px}.progress-line.up{color:var(--mode-learn);font-weight:600}.cta-card.park{max-width:460px;margin:0 auto}.take{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 10px;font-size:14px;display:flex}.bar-strip{gap:3px;width:min(520px,100%);margin:12px auto 0;display:flex}.bar-cell{cursor:pointer;background:color-mix(in srgb, var(--apagado) 45%, var(--escenario));border:0;border-radius:4px;flex:1;min-width:6px;height:22px;padding:0}.bar-cell.heat-ok{background:var(--mode-learn)}.bar-cell.heat-some{background:var(--lane-snare)}.bar-cell.heat-bad{background:var(--mode-battle)}.bar-cell.heat-empty{cursor:default}.bar-cell:not(:disabled):hover,.bar-cell:focus-visible{outline:2px solid var(--luz);outline-offset:2px}.timing-arrow{grid-template-columns:auto 1fr auto;align-items:center;gap:8px;width:min(360px,100%);margin:10px auto 0;display:grid}.timing-arrow .ta-end{color:var(--humo);font-size:12px}.timing-arrow .ta-track{border-radius:var(--radius-chip);background:var(--tarima);height:8px;position:relative}.timing-arrow .ta-center{background:var(--humo);width:2px;position:absolute;top:-3px;bottom:-3px;left:50%}.timing-arrow .ta-mark{background:var(--mode-learn);border-radius:50%;width:14px;height:14px;position:absolute;top:50%;transform:translate(-50%,-50%)}.timing-arrow.early .ta-mark,.timing-arrow.late .ta-mark{background:var(--lane-snare)}.timing-arrow .ta-label{text-align:center;grid-column:1/-1;font-size:14px}.share-take{align-items:center;gap:6px;margin:12px auto 0;display:inline-flex}.clip-overlay{z-index:60;place-items:center;display:grid}.clip-dialog{border-radius:var(--radius-container);background:var(--escenario);flex-direction:column;align-items:center;gap:10px;width:min(440px,92vw);max-height:94dvh;padding:20px;display:flex;position:relative}.clip-dialog h2{margin:0;font-size:20px}.clip-close{position:absolute;top:12px;right:12px}.clip-view{width:720px;height:960px;position:fixed;top:0;left:-10000px}.clip-video{aspect-ratio:9/16;object-fit:contain;border-radius:calc(var(--radius-container) / 2);background:var(--tinta);flex:none;width:auto;max-width:100%;height:min(58dvh,640px)}.clip-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.btn{justify-content:center;align-items:center;gap:8px;min-height:48px;display:inline-flex}.btn.small{min-height:40px}.icon-btn{width:48px;height:48px}.segmented button{min-height:40px}.select{min-height:48px}.select.small{min-height:32px;padding:4px 8px}.btn.small,.switch,.segmented button{position:relative}.btn.small:after,.switch:after,.segmented button:after{content:"";position:absolute;inset:-4px}.switch:after{inset:-14px -7px}.btn.battle{background:var(--mode-battle);color:var(--ink);border-color:#0000}.shell{grid-template-columns:240px minmax(0,1fr);min-height:100vh;display:grid}.rail{background:var(--foso);border-right:1px solid var(--tarima);flex-direction:column;gap:24px;height:100vh;padding:20px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.rail-brand{align-items:center;min-height:48px;padding:0 12px;display:flex}.brand-mark{font-family:var(--font-display);font-size:22px;font-weight:900;display:none}.rail-group{flex-direction:column;gap:4px;display:flex}.rail-group-name{color:var(--humo);align-items:center;gap:8px;padding:0 16px 4px;font-size:14px;font-weight:600;display:flex}.rail-group-name:before{content:"";background:var(--mode-learn);border-radius:50%;width:8px;height:8px}.rail-group.battle .rail-group-name:before{background:var(--mode-battle)}.rail-group.jam .rail-group-name:before{background:var(--mode-jam)}.rail-item{border-radius:var(--radius-pad);min-height:48px;color:var(--humo);align-items:center;gap:12px;padding:0 16px;font-size:17px;font-weight:600;display:flex}.rail-item:hover{background:var(--escenario);color:var(--luz)}.rail-item.active{background:var(--tarima);color:var(--luz);box-shadow:inset 3px 0 0 var(--mode-learn)}.rail-group.battle .rail-item.active{box-shadow:inset 3px 0 0 var(--mode-battle)}.rail-group.jam .rail-item.active{box-shadow:inset 3px 0 0 var(--mode-jam)}.shell-main{flex-direction:column;min-width:0;display:flex}.shell-top{z-index:5;background:var(--tinta);border-bottom:1px solid var(--tarima);justify-content:space-between;align-items:center;gap:16px;min-height:72px;padding:12px 40px;display:flex;position:sticky;top:0}.shell-top-right{align-items:center;gap:10px;display:flex}.status-chip,.progress-chip,.account-chip,.league-chip{border-radius:var(--radius-chip);background:var(--escenario);border:1px solid var(--tarima);min-height:48px;color:var(--luz);align-items:center;gap:10px;padding:0 16px;font-size:16px;font-weight:600;display:inline-flex}.status-chip:hover,.progress-chip:hover,.account-chip:hover,.league-chip:hover{background:var(--tarima)}.status-chip svg{color:var(--humo)}.status-chip.on svg{color:var(--mode-learn)}.status-chip.warn{color:var(--lane-crash)}.status-name{text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.status-instrument{border-radius:var(--radius-chip);background:var(--tinta);color:var(--humo);padding:2px 10px;font-size:14px}.xp-mini{border-radius:var(--radius-chip);background:var(--tinta);width:72px;height:6px;display:block;overflow:hidden}.xp-mini span{background:var(--accent);height:100%;display:block}.chip-stars,.chip-streak{align-items:center;gap:4px;display:inline-flex}.chip-stars svg{color:var(--lane-snare)}.chip-streak svg{color:var(--lane-crash)}.account-chip svg{color:var(--humo)}.account-chip[data-state=open]{background:var(--tarima)}.account-chip[data-state=open] .account-caret{transform:rotate(180deg)}.menu{z-index:30;background:var(--escenario);border:1px solid var(--line);min-width:220px;box-shadow:0 12px 32px color-mix(in srgb, var(--shadow) 30%, transparent);transform-origin:100% 0;border-radius:14px;padding:6px;animation:.16s ease-out rise-in}.menu-item{min-height:44px;color:var(--luz);border-radius:10px;outline:none;align-items:center;gap:12px;padding:0 12px;font-size:16px;font-weight:600;display:flex}.menu-item svg{color:var(--humo)}.menu-item[data-highlighted]{background:var(--tarima)}.menu-item.primary,.menu-item.primary svg{color:var(--accent)}.menu-sep{background:var(--line);height:1px;margin:6px 4px}.rail-item,.menu-item,.status-chip,.progress-chip,.account-chip,.icon-btn,.segmented button,.map-island-head{transition:background-color .16s ease-out,color .16s ease-out,box-shadow .16s ease-out}.rail-item svg{transition:transform .16s ease-out}.rail-item:hover svg{transform:translate(2px)}.account-caret{transition:transform .16s ease-out}@keyframes rise-in{0%{opacity:0;transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.rail-item,.rail-item svg,.menu-item,.status-chip,.progress-chip,.account-chip,.icon-btn,.segmented button,.map-island-head,.account-caret,.map-caret{transition:none}.menu{animation:none}.rail-item:hover svg{transform:none}}.shell-content{width:100%;max-width:1240px;padding:32px 40px 64px}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 24px;margin-bottom:24px;display:flex}.section-head h1{font-size:44px;line-height:1.05}.section-tools{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.lead{max-width:70ch;color:var(--humo);margin:0 0 24px;font-size:18px;line-height:1.5}.subsection{margin-top:40px}.subsection h2{margin-bottom:8px;font-size:28px}.guest-line{color:var(--humo);margin:-8px 0 20px;font-size:16px}.guest-line a,.empty a.link{color:var(--accent);font-weight:600}.empty{border-radius:var(--radius-container);background:var(--escenario);flex-direction:column;align-items:flex-start;gap:16px;max-width:720px;padding:32px;display:flex}.empty p{margin:0;font-size:18px;line-height:1.5}.wall-inline{place-items:center;padding:24px 0;display:grid}.wall-kicker{color:var(--humo);margin:0;font-size:16px;font-weight:600}.bottom-bar{display:none}.lesson-art{background:var(--foso);border-radius:var(--radius-pad);box-sizing:border-box;padding:6px;display:block}.card-art{width:100%;height:76px}.card-meta{flex-wrap:wrap;justify-content:flex-start;column-gap:16px}.card-locked{color:var(--humo);align-items:center;gap:6px;display:inline-flex}.league-chip{font-variant-numeric:tabular-nums;gap:6px}.today-top{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:stretch;gap:20px;display:grid}.today-top.three{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,1fr)}.today-top.three>.session{max-width:none;margin:0;padding:24px}.today-top.three>.session h2{color:var(--humo);font-size:16px}.today-top.three .today-card.daily .today-lesson{font-size:24px}.today-last{border-top:1px solid var(--line);flex-direction:column;gap:2px;margin-top:6px;padding-top:10px;display:flex}.today-last p{font-size:14px}.today-last-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.today-last-name{color:var(--luz);font-weight:600}.today-card.small .today-lesson.small,.today-lesson.small{font-size:22px}.today-change{color:var(--humo);font-size:14px}.today-change.up{color:var(--mode-learn);font-weight:600}.today-last-inline{color:var(--humo);align-items:center;gap:8px;display:flex}.today-pair{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:20px;max-width:1100px;margin:24px 0;display:grid}.today-pair>.goals{max-width:none;margin:0}.today-pair>.today-card{min-height:0}.today-head-left{flex-direction:column;gap:6px;min-width:0;display:flex}.today-where{color:var(--luz);flex-wrap:wrap;align-items:center;gap:10px;font-weight:600;text-decoration:none;display:inline-flex}.today-where:hover>span:first-child{text-decoration:underline}.where-dots{gap:5px;display:inline-flex}.where-dots i{border-radius:var(--radius-chip);border:2px solid var(--ceniza);width:10px;height:10px}.where-dots i.done{background:var(--mode-learn);border-color:var(--mode-learn)}.where-dots i.on{border-color:var(--mode-learn);box-shadow:0 0 0 3px color-mix(in srgb, var(--mode-learn) 30%, transparent)}.today-card.sample .row-head{margin:0}.today-card.sample h2{font-size:16px}.sample-list{flex-direction:column;gap:4px;margin:4px 0 0;padding:0;list-style:none;display:flex}.sample-list a{border-radius:var(--radius-pad);min-height:44px;color:var(--luz);align-items:center;gap:12px;padding:6px 10px;text-decoration:none;display:flex}.sample-list a:hover{background:var(--tarima)}.sample-list li.on a{background:var(--tarima);box-shadow:inset 3px 0 0 var(--mode-learn);font-weight:600}.sample-list li.done .sample-name{color:var(--humo)}.sample-list .check{border-radius:var(--radius-chip);border:2px solid var(--ceniza);flex:none;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex}.sample-list li.on .check{border-color:var(--mode-learn)}.sample-list li.done .check{border-color:var(--mode-learn);background:var(--mode-learn);color:var(--ink)}.sample-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.sample-more{color:var(--humo);padding-top:12px;margin-top:auto!important}.sample-more a{color:var(--accent);font-weight:600}.today-card{border-radius:var(--radius-container);background:var(--escenario);flex-direction:column;gap:8px;min-height:280px;padding:24px;display:flex}.today-card h2{color:var(--humo);font-size:16px;font-weight:600}.today-card p{margin:0}.today-lesson{font-family:var(--font-display);color:var(--luz);font-size:28px;font-weight:800;line-height:1.15}.today-card.main .today-lesson{font-size:35px}.today-art{width:100%;height:104px;margin-bottom:8px}.today-stars{align-items:center;gap:10px;display:flex}.today-action{margin-top:auto;padding-top:12px;display:flex}.today-card.main .today-action .btn{min-width:220px}.today-card .experience{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.today-row{margin-top:32px}.shell-content:has(>.today){padding-bottom:24px}.row-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.row-head h2{font-size:22px}.row-head .link{align-self:auto;font-weight:600}.scroll-row{scroll-snap-type:x proximity;grid-auto-columns:240px;grid-auto-flow:column;gap:16px;padding-bottom:8px;display:grid;overflow-x:auto}.scroll-row>*{scroll-snap-align:start}.day-streak{border-radius:var(--radius-container);background:var(--escenario);grid-template-rows:auto auto;grid-template-columns:auto auto;align-items:center;column-gap:8px;padding:10px 16px;display:grid;position:relative}.day-streak svg:first-child{color:var(--lane-crash);grid-row:1/3}.day-streak b{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:30px;line-height:1}.day-streak span{color:var(--humo);grid-column:2;font-size:12px}.day-streak small{color:var(--lane-snare);grid-column:1/-1;margin-top:4px;font-size:12px}.day-streak .day-streak-freeze{color:var(--lane-rim);position:absolute;top:8px;right:8px}.day-streak.none svg:first-child{color:var(--ceniza)}.day-streak.to-play svg:first-child{opacity:.6}.today-card.notices{gap:12px;max-width:1100px;min-height:0;margin:24px 0 0}.with-art>.today-card.notices{z-index:auto}.notice .notice-close{width:32px;height:32px;color:var(--ceniza);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;align-self:flex-start;place-items:center;margin:-6px -6px -6px 0;display:inline-grid}.notice .notice-close:hover{background:color-mix(in oklab, var(--ink) 8%, transparent);color:var(--ink)}.notice .notice-close svg{color:currentColor}.notice-more{color:var(--ceniza);align-items:baseline;gap:10px;margin-top:2px;font-size:13px;font-weight:500;display:flex}.notice-close-all{color:inherit;font:inherit;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.notice-close-all:hover{color:var(--ink)}.today-card.notices .row-head{margin:0}.notice-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.notice{border-top:1px solid var(--line);align-items:center;gap:12px;padding:8px 0;display:flex}.notice:first-child{border-top:0}.notice-text{flex:1;min-width:0}.notice.crown .notice-icon{color:var(--lane-snare)}.notice.legend .notice-icon{color:var(--mode-learn)}.notice.passed .notice-icon{color:var(--mode-battle)}.today-card.league-up{gap:8px;max-width:1100px;min-height:0;margin:24px 0 0;position:relative;overflow:hidden}.today-card.league-up .row-head{margin:0}.today-card.league-up h2{align-items:center;gap:8px;display:inline-flex}.path-units{flex-direction:column;gap:16px;max-width:800px;margin:0;padding:0;list-style:none;display:flex}.path-unit .unit-head{border-radius:var(--radius-container);background:var(--escenario);text-align:left;border:0;grid-template-columns:88px minmax(0,1fr) 150px 24px;align-items:center;gap:20px;width:100%;padding:16px 20px 16px 16px;display:grid}.path-unit .unit-head:hover{background:var(--tarima)}.unit-art{width:88px;height:64px}.unit-name{flex-direction:column;gap:2px;font-size:14px;display:flex}.unit-name b{font-size:22px;font-family:var(--font-display);color:var(--luz);font-weight:800}.path-unit .unit-progress{color:var(--humo);flex-direction:column;gap:6px;font-size:14px;display:flex}.path-unit .unit-progress .bar{border-radius:var(--radius-chip);background:var(--tinta);height:6px;display:block;overflow:hidden}.path-unit .unit-progress .bar span{background:var(--mode-learn);height:100%;display:block}.path-lessons{border-left:3px solid var(--tarima);margin:8px 0 0 60px;padding:4px 0;list-style:none}.path-node{align-items:center;gap:12px;padding:4px 0 4px 24px;display:flex;position:relative}.node-dot{background:var(--tinta);border:3px solid var(--apagado);width:21px;height:21px;color:var(--ink);border-radius:50%;place-items:center;display:grid;position:absolute;top:50%;left:-12px;transform:translateY(-50%)}.path-node.mastered .node-dot{background:var(--mode-learn);border-color:var(--mode-learn)}.path-node.current .node-dot{border-color:var(--accent);width:27px;height:27px;box-shadow:0 0 0 5px color-mix(in srgb, var(--accent) 25%, transparent);left:-15px}.node-body{border-radius:var(--radius-pad);flex:1;align-items:center;gap:16px;min-height:52px;padding:8px 16px;display:flex}.node-body:hover{background:var(--escenario)}.path-node.current .node-body{background:var(--tarima)}.node-title{flex:1;font-size:17px;font-weight:600}.path-node.current .node-title{font-weight:600}.node-here{border-radius:var(--radius-chip);background:var(--accent);color:var(--ink);padding:2px 10px;font-size:14px;font-weight:600}.node-lock{align-items:center;gap:6px;font-size:14px;display:inline-flex}.path-unit .unit-lock{color:var(--humo);align-items:center;gap:6px;font-size:14px;display:flex}.unit-head.has-banner .unit-lock{color:var(--luz);position:relative}.path-unit.locked .unit-art,.path-unit.locked .unit-banner{opacity:.45;filter:grayscale()}.path-node.disabled .node-body,.path-node.disabled .node-body:hover{cursor:default;background:0 0}.path-node.disabled .node-title{color:var(--humo)}.path-node.disabled .node-dot{border-style:dashed}.node-song{border-radius:var(--radius-chip);border:1px solid var(--mode-jam);color:var(--mode-jam);align-items:center;gap:4px;padding:2px 10px;font-size:14px;font-weight:600;display:inline-flex}.path-map{flex-direction:column;gap:32px;max-width:1080px;display:flex}.map-region{--region:var(--mode-learn);border-radius:var(--radius-container);background:color-mix(in srgb, var(--region) 9%, transparent);border:1px solid color-mix(in srgb, var(--region) 30%, transparent);padding:20px 24px 32px;position:relative}.map-region[data-tier=intermedio]{--region:var(--lane-kick)}.map-region[data-tier=avanzado]{--region:var(--lane-tom)}.map-region[data-tier=experto]{--region:var(--mode-battle)}.map-region-name{color:var(--region);margin:0 0 8px;font-size:14px}.map-units{margin:0;padding:0;list-style:none}.map-unit{padding-top:48px;display:flex;position:relative}.map-unit:first-child{padding-top:0}.map-unit.left{justify-content:flex-start}.map-unit.right{justify-content:flex-end}.map-link{width:100%;height:48px;position:absolute;top:0;left:0;overflow:visible}.map-unit:first-child .map-link{display:none}.map-link path{fill:none;stroke:color-mix(in srgb, var(--region) 55%, var(--apagado));stroke-width:3px;stroke-dasharray:6 8;vector-effect:non-scaling-stroke}.map-island{border-radius:var(--radius-container);background:var(--escenario);border:1px solid var(--tarima);width:min(62%,600px);overflow:hidden}.map-island-head{width:100%;color:inherit;text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:16px 20px;display:grid}.map-island-head:hover{background:var(--tarima)}.map-island-head:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.map-medal{background:color-mix(in srgb, var(--region) 22%, var(--tarima));width:52px;height:52px;color:var(--region);border-radius:50%;place-items:center;display:grid}.map-unit.done .map-medal{background:var(--lane-snare);color:var(--tinta)}.map-unit.locked .map-medal{background:var(--tarima);color:var(--ceniza)}.map-unit-name{flex-direction:column;gap:3px;min-width:0;display:flex}.map-unit-name b{font-size:18px}.map-unit-name .muted{font-size:12px}.map-lock{align-items:center;gap:4px;display:inline-flex}.map-progress{color:var(--humo);align-items:center;gap:8px;font-size:12px;display:flex}.map-progress .bar{border-radius:var(--radius-chip);background:var(--tarima);width:120px;height:6px;overflow:hidden}.map-progress .bar span{background:var(--region);height:100%;display:block}.map-lessons{margin:0;padding:4px 12px 12px;list-style:none;position:relative}.map-lessons:before{content:"";background:var(--tarima);width:2px;position:absolute;top:18px;bottom:24px;left:33px}.map-lesson{align-items:center;gap:8px;display:flex;position:relative}.map-lesson-row{border-radius:calc(var(--radius-container) / 2);min-width:0;color:inherit;flex:1;grid-template-columns:26px 1fr auto;align-items:center;gap:12px;padding:8px 10px;text-decoration:none;display:grid}a.map-lesson-row:hover{background:var(--tarima)}a.map-lesson-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.map-lesson-row.disabled{opacity:.55}.map-dot{z-index:1;background:var(--escenario);border:2px solid var(--apagado);width:24px;height:24px;color:var(--tinta);border-radius:50%;place-items:center;display:grid;position:relative}.map-lesson.mastered .map-dot{background:var(--region);border-color:var(--region)}.map-lesson.current .map-dot{border-color:var(--mode-learn);box-shadow:0 0 0 4px color-mix(in srgb, var(--mode-learn) 35%, transparent)}.map-lesson.current .map-lesson-row{background:color-mix(in srgb, var(--mode-learn) 12%, var(--escenario))}.map-lesson-body{flex-direction:column;gap:3px;min-width:0;display:flex}.map-lesson-title{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.map-lesson-meta{flex-wrap:wrap;gap:6px;display:flex}.map-lesson-meta:empty{display:none}.map-tag,.map-here{border-radius:var(--radius-chip);border:1px solid var(--apagado);color:var(--humo);align-items:center;gap:4px;padding:1px 8px;font-size:11px;font-weight:600;display:inline-flex}.map-tag.song{border-color:var(--lane-snare);color:var(--lane-snare)}.map-here{background:var(--mode-learn);border-color:var(--mode-learn);color:var(--tinta)}.map-tag.keylesson{border-color:var(--mode-battle);color:var(--mode-battle)}.map-to-open{color:var(--humo);font-size:12px}.map-extras{padding:0 12px 12px}.map-extras-title{color:var(--humo);margin:4px 0 0 12px;font-size:12px;font-weight:600}.map-lessons.extras{padding-top:0}.map-lessons.extras:before{border-left:2px dashed var(--tarima);background:0 0;width:0}.map-lesson.extra .map-lesson-title{font-size:14px}.map-lesson.extra .map-dot{border-style:dashed}.node-key{border-radius:var(--radius-chip);border:1px solid var(--mode-battle);color:var(--mode-battle);align-items:center;gap:4px;padding:2px 10px;font-size:14px;font-weight:600;display:inline-flex}.unit-to-open{color:var(--humo);font-size:14px}.path-extras{margin:4px 0 0 60px}.path-extras-title{color:var(--humo);margin:8px 0 0 24px;font-size:14px;font-weight:600}.path-extras .path-lessons{border-left-style:dashed;margin:0}.path-node.extra .node-dot{border-style:dashed}.map-lesson-lock{color:var(--ceniza)}.map-play{flex:none}.map-caret{transition:transform .16s ease-out}.map-island-head[aria-expanded=true] .map-caret{transform:rotate(180deg)}@media (prefers-reduced-motion:no-preference){.map-lesson.current .map-dot{animation:1.6s ease-in-out infinite map-here}.map-lessons{animation:.2s ease-out rise-in}}@keyframes map-here{50%{box-shadow:0 0 0 7px color-mix(in srgb, var(--mode-learn) 20%, transparent)}}.tabs{border-bottom:1px solid var(--tarima);gap:4px;margin-bottom:20px;display:flex;overflow-x:auto}.tab{min-height:48px;color:var(--humo);white-space:nowrap;background:0 0;border:0;border-bottom:3px solid #0000;padding:0 20px;font-size:17px;font-weight:600}.tab:hover{color:var(--luz)}.tab.on{color:var(--luz);border-bottom-color:var(--accent)}.filters .count{margin-left:auto}.search{border-radius:var(--radius-pad);background:var(--tinta);border:1px solid var(--tarima);min-height:48px;color:var(--humo);align-items:center;gap:8px;padding:0 16px;display:inline-flex}.search:focus-within{outline:3px solid var(--accent);outline-offset:2px}.search input{width:240px;color:var(--luz);font:inherit;background:0 0;border:0;outline:none;font-size:16px}.view-toggle button{place-items:center;min-width:44px;padding:0 10px;display:inline-grid}.lesson-table{border-collapse:collapse;width:100%;font-size:16px}.lesson-table th{text-align:left;border-bottom:1px solid var(--tarima)}.lesson-table th button{min-height:48px;color:var(--humo);background:0 0;border:0;padding:0 12px;font-size:14px;font-weight:600}.lesson-table td{border-bottom:1px solid var(--tarima);padding:12px}.lesson-table td a{font-weight:600}.lesson-table tr:hover td{background:var(--escenario)}.my-lessons .cards{margin-top:8px}.profile-stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;max-width:900px;margin:24px 0;display:grid}.profile-stats div{border-radius:var(--radius-container);background:var(--escenario);padding:20px}.profile-stats dt{color:var(--humo);font-size:16px}.profile-stats dd{font-family:var(--font-display);font-variant-numeric:tabular-nums;margin:4px 0 0;font-size:44px;font-weight:900}.profile .rank-bar{max-width:520px}.settings-page{max-width:820px}.chooser .flow-cards{max-width:900px}.flow-card svg{color:var(--mode-learn)}.flow-card.battle svg{color:var(--mode-battle)}.flow-card.battle:hover{border-color:var(--mode-battle)}.battle .rank-bar{min-width:280px}.leader{align-items:center;gap:6px;display:inline-flex}.leader svg{color:var(--lane-snare)}.tag.won{color:var(--mode-learn)}.tag.lost{color:var(--mode-battle)}.design-block{margin-bottom:36px}.design-block h2{margin-bottom:12px;font-size:22px}.design-block .row{justify-content:flex-start;margin-bottom:12px}.design-swatches{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px 12px;display:grid}.design-swatch{flex-direction:column;gap:8px;margin:0;font-size:14px;display:flex}.design-swatch>span{border-radius:var(--radius-pad);border:1px solid var(--tarima);height:56px}.design-swatch figcaption{flex-direction:column;gap:2px;display:flex}.design-hex{color:var(--humo);align-items:center;gap:6px;display:inline-flex}.design-hex span{border:1px solid var(--tarima);border-radius:3px;flex:none;width:12px;height:12px}.type-display{font-family:var(--font-display);font-weight:800}.judge-sample{font-size:22px;font-weight:600}.radius-sample{background:var(--escenario);border:1px solid var(--tarima);padding:16px 20px}.design-themes{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;display:grid}.design-theme{border-radius:var(--radius-container);background:var(--tinta);color:var(--luz);border:1px solid var(--line);flex-direction:column;gap:12px;padding:20px;display:flex}.design-theme p{margin:0}.design-lanes{flex-wrap:wrap;gap:6px;display:flex}.design-lanes span{border-radius:var(--radius-pad);width:28px;height:28px}.design-celebration{border-radius:var(--radius-container);background:var(--tinta);width:auto;margin:24px 0 0;padding:32px}.design-medals{flex-wrap:wrap;align-items:flex-end;gap:24px;margin:16px 0;display:flex}.design-medals figure{flex-direction:column;align-items:center;gap:8px;margin:0;display:flex}.design-medals figcaption{color:var(--humo);font-size:14px}.design-medals.small{align-items:center;gap:12px}@media (width<=1199px){.shell{grid-template-columns:104px minmax(0,1fr)}.rail{gap:16px;padding:16px 8px}.rail .brand{display:none}.brand-mark{display:inline}.rail-brand{justify-content:center;padding:0}.rail-group-name{justify-content:center;padding:0 0 2px}.rail-item{text-align:center;flex-direction:column;justify-content:center;gap:4px;min-height:64px;padding:6px 4px;font-size:14px}.shell-top{padding:12px 24px}.shell-content{padding:32px 24px 56px}.today-top{grid-template-columns:minmax(0,1fr)}.today-top.three{grid-template-columns:repeat(2,minmax(0,1fr))}.today-top>.today-card.main{grid-column:1/-1;min-height:0}}@media (width<=767px){.shell{grid-template-columns:minmax(0,1fr)}.rail{display:none}.shell-top{min-height:60px;padding:8px 16px}.status-instrument,.account-chip span,.progress-chip .xp-mini,.league-chip{display:none}.status-name{max-width:150px}.shell-content{padding:20px 16px 104px}.section-head h1{font-size:35px}.today-top,.today-top.three,.today-pair{grid-template-columns:minmax(0,1fr)}.today-card{min-height:0}.path-unit .unit-head{grid-template-columns:64px minmax(0,1fr) 24px}.path-unit .unit-progress,.path-unit .unit-lock{grid-column:2}.unit-art{width:64px;height:48px}.path-lessons{margin-left:32px}.path-node>.btn{display:none}.search input{width:100%}.filters .count{margin-left:0}.bottom-bar{z-index:6;background:var(--foso);border-top:1px solid var(--tarima);padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-item{min-height:64px;color:var(--humo);flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:14px;font-weight:600;display:flex}.bottom-item.active{color:var(--mode-learn)}.bottom-item.battle.active{color:var(--mode-battle)}.bottom-item.active:not(.learn):not(.battle){color:var(--luz)}}a.link,button.link,a.hint,.link-btn{align-items:center;min-height:48px;display:inline-flex}select{min-height:48px}.search input{align-self:stretch}.not-found{grid-template-columns:240px minmax(0,1fr);align-items:center;gap:48px;max-width:880px;margin:48px auto 0;display:grid}.nf-track{border-radius:var(--radius-container);width:240px;height:200px;overflow:hidden}.nf-code{font-family:var(--font-display);color:var(--tarima);letter-spacing:-.03em;margin:0;font-size:110px;font-weight:900;font-stretch:125%;line-height:.9}.not-found h1{margin:8px 0;font-size:44px}.nf-places{flex-wrap:wrap;gap:10px;display:flex}@media (width<=767px){.not-found{grid-template-columns:minmax(0,1fr);gap:24px;margin-top:8px}.nf-track{width:100%;height:160px}.nf-code{font-size:69px}.not-found h1{font-size:35px}}.setting-head{flex-wrap:wrap}.segmented{flex-wrap:wrap;max-width:100%}.map-row{flex-wrap:wrap}.battle-box-title{color:var(--humo);align-items:center;gap:6px;margin:0;font-weight:600;display:flex}.wall-kicker{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;display:flex}.art{position:relative;overflow:hidden}.art-layers,.art-blur,.art-img,.art-veil{width:100%;height:100%;position:absolute;inset:0}.art-blur{image-rendering:auto}.art-img{object-fit:cover;opacity:0;transition:opacity .4s}.art-img.in{opacity:1}.art-veil{background:var(--tinta)}.with-art{position:relative}.with-art>:not(.page-art){z-index:1;position:relative}.page-art{z-index:0;pointer-events:none;position:fixed;inset:72px 0 0 240px}.page-art.generated{background:radial-gradient(60% 90% at 12% 0%, color-mix(in srgb, var(--accent) 9%, transparent), transparent 70%), radial-gradient(50% 80% at 85% 10%, color-mix(in srgb, var(--lane-tom) 7%, transparent), transparent 70%)}.ready-art{top:69px;left:0}.play>.play-bar{z-index:2}.results-art{inset:0}.card-art.art,.unit-art.art{border-radius:var(--radius-pad)}.play-art{z-index:0;pointer-events:none;position:absolute;inset:0}.play-art .art-layers{opacity:.2;filter:blur(6px);transform:scale(1.03)}.play>:not(.play-art){z-index:1;position:relative}@media (width<=1199px){.page-art{left:104px}}@media (width<=767px){.page-art{top:60px;bottom:64px;left:0}}@media (prefers-reduced-motion:reduce){.art-img{transition:none}}.has-play-art .pane,.has-play-art .stage.split{background:0 0}.admin-nav{gap:4px;display:flex}.admin-nav .tab{align-items:center;display:inline-flex}.admin-art .filters .ed-field{min-width:180px}.art-editor{grid-template-columns:minmax(0,1fr) minmax(0,300px);gap:32px;margin:24px 0 40px;display:grid}.art-edit-image{flex-direction:column;gap:12px;display:flex}.focal-picker{cursor:crosshair;border-radius:var(--radius-pad);background:var(--foso);position:relative;overflow:hidden}.focal-picker img{object-fit:contain;width:100%;max-height:420px;display:block}.focal-mark{border:3px solid var(--luz);width:28px;height:28px;box-shadow:0 0 0 3px var(--tinta);pointer-events:none;border-radius:50%;margin:-16px 0 0 -16px;position:absolute}.art-window{grid-template-columns:1fr 1fr;gap:12px;display:grid}.art-previews{flex-direction:column;gap:16px;display:flex}.art-previews h2{font-size:22px}.art-preview{flex-direction:column;gap:6px;margin:0;display:flex}.art-preview figcaption{color:var(--humo);font-size:14px}.art-preview-frame{border-radius:var(--radius-pad);border:1px solid var(--tarima);background:var(--tinta);overflow:hidden}.art-preview-screen{transform-origin:0 0}.art-preview-fill{width:100%;height:100%}.art-preview-copy{padding:64px;position:relative}.art-preview-copy h1{margin:0 0 12px;font-size:69px}.art-preview-copy p{margin:0;font-size:28px}.art-history ul{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.art-row{border-radius:var(--radius-pad);background:var(--escenario);grid-template-columns:96px minmax(0,1fr) auto;align-items:center;gap:16px;padding:12px;display:grid}.art-row img{object-fit:cover;background:var(--foso);border-radius:8px}.art-row-info{flex-direction:column;gap:2px;font-size:14px;display:flex}.tag.art-live{color:var(--mode-learn)}.tag.art-scheduled{color:var(--lane-rim)}.tag.art-expired,.tag.art-off{color:var(--humo)}@media (width<=900px){.art-editor{grid-template-columns:minmax(0,1fr)}.art-row{grid-template-columns:72px minmax(0,1fr)}}.path-unit .unit-head.has-banner{grid-template-columns:minmax(0,1fr) 150px 24px;min-height:112px;padding:24px;position:relative;overflow:hidden}.unit-banner{z-index:0;position:absolute;inset:0}.unit-head.has-banner>:not(.unit-banner){z-index:1;position:relative}.unit-head.has-banner .unit-name b{font-size:28px}.unit-head.has-banner .muted,.unit-head.has-banner .unit-progress{color:var(--luz)}@media (width<=767px){.path-unit .unit-head.has-banner{grid-template-columns:minmax(0,1fr) 24px}}.art-validity{color:var(--luz);font-weight:600}.art-edit-image h2{margin:0;font-size:22px}:root[data-theme=light] .play-art .art-layers{opacity:.1}.admin-table-wrap{padding:0;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:14px}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:8px 12px}.admin-table th{color:var(--humo);font-weight:600}.admin-table td:first-child{white-space:normal;min-width:180px}.admin-table tr.signal.wall td,.admin-table tr.signal.harder td{background:color-mix(in srgb, var(--mode-battle) 8%, transparent)}.admin-table tr.signal.easier td{background:color-mix(in srgb, var(--mode-learn) 8%, transparent)}.move-sounds{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.pad-grid.picking .pad-cell,.pad-grid.picking .pad-ghost{cursor:pointer;font:inherit;color:inherit;text-align:left}.pad-grid.picking .pad-ghost{border:2px dashed var(--ceniza);background:0 0}.pad-grid.picking>:hover{outline:3px solid var(--accent);outline-offset:2px}.pad-grid .picked{outline:3px solid var(--accent);outline-offset:3px}.btn.icon-only{min-width:40px;padding:6px 10px}.my-status{white-space:normal;line-height:1.2}.tag.made-for{color:var(--humo);font-weight:600}.welcome{box-sizing:border-box;flex-direction:column;gap:32px;max-width:960px;min-height:100vh;margin:0 auto;padding:24px 16px 96px;display:flex}.welcome-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.welcome-head .brand{font-family:var(--font-display);font-size:22px}.welcome-dots{gap:8px;display:flex}.welcome-dots span{border-radius:var(--radius-chip);background:var(--apagado);width:10px;height:10px;transition:background .2s,width .2s}.welcome-dots span.on{background:var(--mode-learn);width:28px}.welcome-dots span.done{background:var(--humo)}.welcome-step{flex-direction:column;gap:16px;display:flex}.welcome-step h1{font-family:var(--font-display);margin:0;font-size:clamp(32px,6vw,52px);line-height:1.05}.welcome-step .lead{margin:0}.welcome-keyboard{font-size:14px}.welcome-options{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.welcome-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:8px;display:flex}.welcome-actions .btn.big{min-width:220px}.instrument-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.instrument-card,.goal-card{border-radius:var(--radius-container);border:2px solid var(--tarima);background:var(--escenario);color:var(--luz);font:inherit;text-align:left;cursor:pointer;flex-direction:column;align-items:flex-start;gap:8px;padding:24px;transition:border-color .15s,transform .15s;display:flex}.instrument-card b,.goal-card b{font-family:var(--font-display);font-size:24px}.instrument-card:hover,.goal-card:hover{border-color:var(--ceniza);transform:translateY(-2px)}.instrument-card.on,.goal-card.on{border-color:var(--mode-learn);background:color-mix(in srgb, var(--mode-learn) 12%, var(--escenario))}.instrument-card.hinted:not(.on){border-style:dashed;border-color:var(--mode-learn)}.instrument-card svg{color:var(--mode-learn)}@media (prefers-reduced-motion:reduce){.instrument-card,.goal-card,.welcome-dots span{transition:none}.instrument-card:hover,.goal-card:hover{transform:none}}.today-choose{flex-direction:column;gap:16px;max-width:960px;display:flex}.today-choose h1{font-family:var(--font-display);margin:0;font-size:40px}.today-head-right{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.daily-goal{color:var(--humo);align-items:center;gap:8px;font-weight:600;display:inline-flex}.daily-goal .ring-track{fill:none;stroke:var(--tarima);stroke-width:4px}.daily-goal .ring-fill{fill:none;stroke:var(--mode-learn);stroke-width:4px;stroke-linecap:round;transform-origin:50%;transition:stroke-dashoffset .4s;transform:rotate(-90deg)}.daily-goal.reached{color:var(--mode-learn)}.first-steps{border-radius:var(--radius-container);background:var(--escenario);flex-direction:column;gap:12px;max-width:640px;margin:24px 0;padding:20px 24px;display:flex}.first-steps .row-head{align-items:center;gap:12px;display:flex}.first-steps h2{flex:1;margin:0;font-size:20px}.first-steps-bar{border-radius:var(--radius-chip);background:var(--tarima);height:6px;overflow:hidden}.first-steps-bar span{background:var(--mode-learn);height:100%;transition:width .4s;display:block}.first-steps ol{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.first-steps li{color:var(--luz);align-items:center;gap:10px;display:flex}.first-steps li.done{color:var(--humo);text-decoration:line-through}.first-steps .check{border-radius:var(--radius-chip);border:2px solid var(--ceniza);flex:none;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex}.first-steps li.done .check{border-color:var(--mode-learn);background:var(--mode-learn);color:var(--ink)}.rail-item,.bottom-item{position:relative}.new-dot{border-radius:var(--radius-chip);background:var(--mode-battle);width:9px;height:9px;box-shadow:0 0 0 3px color-mix(in srgb, var(--mode-battle) 30%, transparent);margin-left:auto}.bottom-item .new-dot{margin:0;position:absolute;top:6px;right:28%}.new-badge{border-radius:var(--radius-chip);background:var(--ink);color:var(--mode-learn);margin-left:8px;padding:2px 8px;font-size:12px;font-weight:600}.help-btn{color:var(--humo)}.driver-popover.mb-guide{background:var(--luz);color:var(--ink);border-radius:var(--radius-pad);max-width:320px;font-family:var(--font-body);box-shadow:0 12px 40px color-mix(in srgb, var(--shadow) 45%, transparent);padding:16px 20px}.driver-popover.mb-guide .driver-popover-description{color:var(--ink);font-size:16px;font-weight:600;line-height:1.45}.driver-popover.mb-guide .driver-popover-progress-text{color:var(--ceniza);font-weight:600}.driver-popover.mb-guide .driver-popover-footer{align-items:center;gap:8px;margin-top:16px}.driver-popover.mb-guide .driver-popover-navigation-btns{gap:8px}.driver-popover.mb-guide .driver-popover-next-btn{background:var(--ink);color:var(--luz);border-radius:var(--radius-chip);font:inherit;text-shadow:none;border:0;padding:8px 16px;font-weight:600}.driver-popover.mb-guide .driver-popover-close-btn{color:var(--ceniza)}.driver-popover.mb-guide .driver-popover-arrow-side-top.driver-popover-arrow{border-top-color:var(--luz)}.driver-popover.mb-guide .driver-popover-arrow-side-bottom.driver-popover-arrow{border-bottom-color:var(--luz)}.driver-popover.mb-guide .driver-popover-arrow-side-left.driver-popover-arrow{border-left-color:var(--luz)}.driver-popover.mb-guide .driver-popover-arrow-side-right.driver-popover-arrow{border-right-color:var(--luz)}.mb-guide-skip{color:var(--ceniza);font:inherit;cursor:pointer;background:0 0;border:0;margin-right:auto;padding:8px 4px;font-weight:600}.mb-guide-skip:hover{color:var(--ink)}.stars-bar{flex-direction:column;align-items:center;gap:6px;width:min(360px,100%);margin:4px auto 0;display:flex}.stars-bar-track{border-radius:var(--radius-chip);background:var(--tarima);width:100%;height:8px;position:relative}.stars-bar-fill{border-radius:var(--radius-chip);background:var(--lane-snare);position:absolute;inset:0 auto 0 0}.stars-bar-tick{background:var(--foso);width:2px;height:14px;position:absolute;top:-3px}.stars-bar .muted{font-size:14px}.score-delta{color:var(--humo);margin:0;font-weight:600}.score-delta.up{color:var(--mode-learn)}.first-beat{color:var(--mode-learn);font-weight:600}.first-beat-account{color:var(--luz);flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin:0;display:flex}.attempts{flex-direction:column;gap:12px;width:min(560px,100%);margin:16px auto 0;display:flex}.attempts-summary{color:var(--humo);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 20px;font-weight:600;display:flex}.attempts-chart{border-radius:var(--radius-container);background:var(--escenario);margin:0;padding:12px}.attempts-chart svg{width:100%;height:auto;display:block;overflow:visible}.attempts-pass{stroke:var(--ceniza);stroke-width:1.5px;stroke-dasharray:5 5}.attempts-pass-label,.attempts-today{fill:var(--humo);font-size:11px;font-weight:600;font-family:var(--font-body)}.attempts-line{fill:none;stroke:var(--apagado);stroke-width:3px;stroke-linejoin:round;stroke-linecap:round}.attempts-trend{fill:none;stroke:var(--accent);stroke-width:2px;stroke-dasharray:6 5;stroke-linejoin:round}.attempts-mean{text-align:center;margin:6px 0 0}.attempts-chart .segmented{width:max-content;margin:0 auto 8px;display:flex}.attempts-dot{fill:var(--lane-snare)}.attempts-dot.today{fill:var(--mode-learn);stroke:var(--luz);stroke-width:2px}.attempts-best{fill:none;stroke:var(--lane-snare);stroke-width:2px;opacity:.6}.attempts-chart figcaption{text-align:center;color:var(--luz);margin-top:8px;font-weight:600}.driver-popover.mb-guide .driver-popover-close-btn:focus-visible,.driver-popover.mb-guide button:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:var(--radius-chip)}.welcome-test{border-radius:var(--radius-pad);background:var(--escenario);align-items:flex-start;max-width:560px;margin-top:4px;padding:16px}.welcome-test input{accent-color:var(--mode-learn);flex:none;margin-top:2px}.welcome-test>span{flex-direction:column;gap:4px;display:flex}.welcome-test b{font-size:17px}.welcome-test .muted{font-size:14px;line-height:1.4}.computer-only{box-sizing:border-box;place-items:center;min-height:100dvh;padding:24px 16px;display:grid}.computer-only-card{border-radius:var(--radius-container);background:var(--escenario);justify-items:start;gap:16px;width:min(560px,100%);padding:32px;display:grid}.computer-only-icon{color:var(--accent)}.computer-only-what{color:var(--humo);margin:0;font-weight:600}.computer-only h1{margin:0;font-size:35px}.computer-only .lead{margin:0}.computer-only-link{border-radius:var(--radius-pad);background:var(--tarima);max-width:100%;color:var(--humo);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;margin:0;padding:10px 16px;font-size:14px}.computer-only-actions{flex-wrap:wrap;gap:12px;display:flex}.computer-only-midi{margin:0}@media (width<=480px){.computer-only-card{padding:24px 20px}.computer-only h1{font-size:28px}.computer-only-actions,.computer-only-actions .btn{width:100%}}.computer-only-midi .link{min-height:0;font:inherit;vertical-align:baseline;padding:0}.band-jam .lead{max-width:64ch}.jam-songs{gap:24px;margin-top:24px;display:grid}.jam-song{border-radius:var(--radius-container);background:var(--escenario);padding:24px}.jam-song-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.jam-song-head h2{margin:0;font-size:28px}.jam-chips{flex-wrap:wrap;gap:8px;display:flex}.jam-tracks{gap:8px;margin:0;padding:0;list-style:none;display:grid}.jam-track{border-radius:var(--radius-pad);background:var(--tarima);grid-template-columns:24px minmax(0,1fr) auto auto auto;align-items:center;gap:12px;padding:10px 16px;display:grid}.jam-track-icon{color:var(--accent)}.jam-track-name{gap:2px;min-width:0;display:grid}.jam-track-name .muted{font-size:14px}.jam-soon{margin-top:24px}@media (width<=640px){.jam-song{padding:16px}.jam-track{grid-template-columns:24px minmax(0,1fr) auto}.jam-track .chip,.jam-track .stars{display:none}}.notice{z-index:60;border-radius:var(--radius-pad);background:var(--luz);max-width:min(420px,100vw - 32px);color:var(--ink);box-shadow:0 12px 40px color-mix(in srgb, var(--shadow) 45%, transparent);align-items:center;gap:10px;padding:12px 12px 12px 16px;font-weight:600;animation:.3s ease-out notice-in;display:flex;position:fixed;top:16px;right:16px}.notice svg{color:var(--lane-crash);flex:none}.notice .icon-btn{color:var(--ceniza);margin-left:auto}@keyframes notice-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.notice{animation:none}}.profile-section{flex-direction:column;gap:12px;margin-top:32px;display:flex}.profile-section h2{margin:0;font-size:24px}.skills{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.skill-card{border-radius:var(--radius-container);background:var(--escenario);flex-direction:column;gap:12px;padding:20px;display:flex}.skill-card h3{margin:0;font-size:18px}.skill-card dl{flex-direction:column;gap:10px;margin:0;display:flex}.skill-line dt{color:var(--humo);font-size:13px}.skill-line dd{flex-wrap:wrap;align-items:center;gap:10px;margin:4px 0 0;display:flex}.skill-trend{color:var(--humo);font-size:13px}.skill-trend.up{color:var(--mode-learn);font-weight:600}.skill-bar{border-radius:var(--radius-chip);background:var(--tarima);flex:1;height:8px;overflow:hidden}.skill-bar span{background:var(--mode-learn);height:100%;display:block}.milestones-list{border-left:2px solid var(--tarima);flex-direction:column;gap:10px;margin:0;padding:0 0 0 16px;list-style:none;display:flex}.milestones-list li{align-items:baseline;gap:16px;display:flex;position:relative}.milestones-list li:before{content:"";border-radius:var(--radius-chip);background:var(--mode-learn);width:10px;height:10px;position:absolute;top:6px;left:-23px}.milestone-date{color:var(--humo);min-width:110px;font-size:14px}.achievements{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.achievement{border-radius:var(--radius-pad);background:var(--escenario);opacity:.65;align-items:flex-start;gap:12px;padding:16px;display:flex}.achievement.on{opacity:1;outline:1px solid color-mix(in srgb, var(--lane-crash) 60%, transparent)}.achievement-icon{border-radius:var(--radius-chip);background:var(--tarima);width:40px;height:40px;color:var(--humo);flex:none;justify-content:center;align-items:center;display:inline-flex}.achievement.on .achievement-icon{background:var(--lane-crash);color:var(--ink)}.achievement-text{flex-direction:column;flex:1;gap:2px;display:flex}.achievement-text .muted{font-size:13px}.achievement-state{color:var(--humo);margin-top:4px;font-size:12px;font-weight:600}.achievement-xp{color:var(--mode-learn);font-size:13px;font-weight:600}.weekly{border-radius:var(--radius-container);background:var(--escenario);flex-direction:column;gap:8px;max-width:640px;margin:24px 0;padding:20px 24px;display:flex}.weekly .row-head{align-items:center;gap:12px;display:flex}.weekly h2{flex:1;margin:0;font-size:20px}.weekly p{margin:0}.weekly-stats{flex-wrap:wrap;gap:12px 32px;margin:8px 0 0;padding:0;list-style:none;display:flex}.weekly-stats li{flex-direction:column;gap:2px;display:flex}.weekly-stats li.up b{color:var(--mode-learn)}.skill-radar{flex-direction:column;gap:8px;display:flex}.skill-radar-chart{min-height:230px}.skill-radar-axis{cursor:pointer;font-size:12px;font-weight:600}.skill-radar-axes{flex-wrap:wrap;gap:6px;display:flex}.skill-radar-axes .radar-chip{white-space:nowrap;border-radius:var(--radius-chip);border:1px solid var(--apagado);background:var(--tarima);color:var(--humo);cursor:pointer;align-items:baseline;padding:4px 10px;font-size:12px;display:inline-flex}.skill-radar-axes .radar-chip b{color:var(--luz);font-variant-numeric:tabular-nums;margin-left:4px}.skill-radar-axes .radar-chip.unmeasured{opacity:.6}.skill-radar-axes .radar-chip.unmeasured b{color:var(--ceniza)}.skill-radar-axes .radar-chip.on{border-color:var(--luz);color:var(--luz)}.skill-radar-hint{color:var(--humo);margin:0;font-size:13px}.skill-radar-legend{color:var(--ceniza);align-items:center;gap:6px;margin:0;font-size:12px;display:flex}.skill-radar-legend .before{border-top:2px dashed var(--ceniza);width:18px;display:inline-block}.skill-summary{color:var(--humo);font-variant-numeric:tabular-nums;margin:0;font-size:14px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.certificates{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.certificate{border-radius:var(--radius-container);background:var(--escenario);flex-direction:column;gap:8px;padding:12px;display:flex}.certificate-image{aspect-ratio:4/3;border-radius:calc(var(--radius-container) / 2);width:100%;height:auto}.certificate-title{color:var(--humo);margin:0;font-size:14px}.certificate-actions{flex-wrap:wrap;gap:8px;display:flex}.placement{flex-direction:column;gap:16px;max-width:640px;display:flex}.placement .lead{margin:0}.placement-steps{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.placement-steps li{border-radius:var(--radius-container);background:var(--escenario);align-items:center;gap:16px;padding:16px 20px;display:flex}.placement-steps li.on{outline:2px solid var(--mode-learn)}.placement-steps .check{border-radius:var(--radius-chip);border:2px solid var(--ceniza);flex:none;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.placement-steps .check:has(svg){border-color:var(--mode-learn);background:var(--mode-learn);color:var(--ink)}.placement-step-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.placement-verdict{border-radius:var(--radius-container);background:var(--tarima);flex-direction:column;gap:8px;padding:24px;display:flex}.placement-verdict h2{font-family:var(--font-display);margin:0;font-size:28px}.placement-verdict p{margin:0}.placement-actions{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.placement-skip{margin:0}.session{border-radius:var(--radius-container);background:var(--escenario);flex-direction:column;gap:12px;max-width:640px;margin:24px 0;padding:20px 24px;display:flex}.session .row-head{align-items:center;margin:0}.session h2{flex:1;margin:0;font-size:20px}.session ol{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.session li{align-items:center;gap:12px;display:flex}.session li.done b{color:var(--humo);text-decoration:line-through}.session .check{border-radius:var(--radius-chip);border:2px solid var(--ceniza);flex:none;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex}.session li.on .check{border-color:var(--mode-learn)}.session li.done .check{border-color:var(--mode-learn);background:var(--mode-learn);color:var(--ink)}.session-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.session-text .muted{font-size:13px}.today-card.daily .today-action{flex-wrap:wrap;gap:8px}.daily-bonus{color:var(--mode-learn);font-weight:600}.daily-bonus.done{color:var(--humo)}.daily-top{flex-direction:column;gap:2px;margin:4px 0 0;padding:0;font-size:14px;list-style:none;display:flex}.daily-top li{gap:8px;display:flex}.daily-top .rank{color:var(--humo);min-width:1.2em}.daily-top .name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.goals{border-radius:var(--radius-container);background:var(--escenario);flex-direction:column;gap:12px;max-width:640px;margin:24px 0;padding:20px 24px;display:flex}.goals .row-head{flex-wrap:wrap;margin:0}.goals h2{margin:0;font-size:20px}.goals ul{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.goals li{grid-template-columns:1fr auto;align-items:center;gap:6px 12px;display:grid}.goal-text{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.goal-bar{border-radius:var(--radius-chip);background:var(--tarima);grid-column:1;height:6px;overflow:hidden}.goal-bar span{background:var(--mode-learn);height:100%;transition:width .4s;display:block}.goal-xp{color:var(--humo);grid-area:1/2/span 2;font-weight:600}.goals li.done .goal-xp{color:var(--mode-learn)}.leaderboard-tabs{gap:6px;margin-bottom:8px;display:flex}.leaderboard-tabs .chip{cursor:pointer;border:0}.btn.record svg{color:var(--mode-battle);fill:currentColor}.btn.record.on{background:var(--mode-battle);color:var(--ink);border-color:var(--mode-battle)}.btn.record.on svg{color:var(--ink);animation:1s steps(2,start) infinite rec-blink}@keyframes rec-blink{to{visibility:hidden}}@media (prefers-reduced-motion:reduce){.btn.record.on svg{animation:none}}.ed-toolbar .ed-check{align-items:center}.ed-main{grid-template-columns:220px 1fr 320px}.ed-tracks{border-right:1px solid var(--line);background:var(--escenario);flex-direction:column;gap:10px;min-height:0;padding:12px;display:flex;overflow-y:auto}.ed-tracks-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.ed-tracks-head h3{color:var(--humo);margin:0;font-size:16px;font-weight:600}.ed-track-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.ed-track{border:1px solid var(--line);background:var(--tinta);border-radius:10px;align-items:stretch;gap:4px;display:flex}.ed-track.on{border-color:var(--mode-jam)}.ed-track-pick{min-width:0;color:var(--luz);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;flex-direction:column;flex:1;align-items:flex-start;gap:2px;padding:8px;display:flex}.ed-track-pick b{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:14px;overflow:hidden}.ed-track-pick .muted{font-size:13px}.ed-track-mix{flex-direction:column;gap:4px;padding:4px;display:flex}.ed-track-mix .toggle{min-width:30px;padding:2px 6px;font-size:12px}.ed-add-track{gap:10px}.ed-step{font-size:14px;font-weight:600}.ed-sound-group{flex-direction:column;gap:4px;font-size:13px;display:flex}.ed-sound-list{flex-wrap:wrap;gap:4px;display:flex}.ed-validated{color:var(--humo);margin:0;padding-left:20px;font-size:14px}.ed-ghost{background:color-mix(in srgb, var(--humo) 22%, transparent);pointer-events:none;border-radius:3px;position:absolute}.ed-ghost.tick{background:color-mix(in srgb, var(--humo) 45%, transparent);border-radius:1px;width:2px;height:7px;top:auto;bottom:0}.ed-labels.voiced{min-width:172px}.ed-labels.voiced .ed-label{justify-content:space-between;gap:4px}.ed-label-name{text-overflow:ellipsis;min-width:28px;overflow:hidden}.ed-voice{font:inherit;background:var(--tinta);width:100px;height:calc(100% - 2px);min-height:0;color:var(--luz);border:1px solid var(--line);border-radius:6px;flex:none;padding:0 2px;font-size:12px;line-height:1}@media (width<=900px){.ed-main{grid-template-rows:auto 1fr auto;grid-template-columns:1fr}.ed-tracks{border-right:0;border-bottom:1px solid var(--line);max-height:22vh;padding:8px 12px}.ed-track-list{flex-flow:wrap}.ed-track{flex:200px}.ed-side{max-height:30vh}}.rival-card{flex-wrap:wrap;gap:8px 32px;margin:0;display:flex}.rival-card div{flex-direction:column;gap:2px;display:flex}.rival-card dt{color:var(--humo);font-size:14px}.rival-card dd{font-variant-numeric:tabular-nums;align-items:center;gap:6px;margin:0;font-weight:600;display:flex}.confirm-dialog{border:1px solid var(--line);border-radius:var(--radius-container);background:var(--escenario);max-width:min(520px,100vw - 32px);color:var(--luz);flex-direction:column;gap:16px;padding:24px;display:flex}.confirm-dialog:not([open]){display:none}.confirm-dialog::backdrop{background:color-mix(in srgb, var(--tinta) 75%, transparent)}.confirm-dialog h2{margin:0;font-size:22px}.confirm-body{color:var(--humo);flex-direction:column;gap:8px;display:flex}.confirm-body p{margin:0}.confirm-body ul{flex-direction:column;gap:4px;margin:0;padding-left:20px;display:flex}.confirm-body strong{color:var(--luz)}.profile-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;display:grid}.profile-form .wide{grid-column:1/-1}.profile-form .setting-help{margin:0}@media (width<=560px){.profile-form{grid-template-columns:minmax(0,1fr)}}.profile-place{color:var(--humo);margin:0}.profile-bio{max-width:60ch;margin:0}.password-field{align-items:center;gap:6px;display:flex}.password-field input{flex:1;min-width:0}.password-problems{margin:0;padding-left:20px;font-size:14px}.auth-links{flex-wrap:wrap;gap:6px 16px;display:flex}.latency-sources{flex-direction:column;gap:6px;margin:4px 0 8px;padding:0;list-style:none;display:flex}.latency-sources li{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.latency-sources li>span:first-child{min-width:14em}.sheet-page{background:var(--tinta);min-height:100vh;color:var(--luz);padding:16px clamp(16px,4vw,48px) 48px}.sheet-head{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:8px;display:flex}.sheet-title{flex:1;min-width:200px}.sheet-title h1{font-family:var(--font-display);margin:0;font-size:28px}.sheet-title p{margin:2px 0 0}.sheet-head .btn{align-items:center;gap:8px;display:inline-flex}.sheet-help{max-width:70ch;margin:0 0 16px}.sheet-music{border-radius:var(--radius-container);background:var(--escenario);width:100%;color:var(--luz);padding:12px 0;overflow:hidden}.sheet-music svg{display:block}@media print{.sheet-page{color:var(--luz);background:0 0;padding:0}.sheet-head .icon-btn,.sheet-head .btn,.sheet-help{display:none}.sheet-music{background:0 0;border-radius:0}}.practice-map{--pm-accent:var(--mode-learn);--pm-gap:3px}.practice-map[data-series=drums]{--pm-accent:var(--lane-kick)}.practice-map[data-series=pads]{--pm-accent:var(--lane-tom)}.practice-map[data-series=keys]{--pm-accent:var(--lane-snare)}.pm-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.pm-summary{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px 24px;margin:0;display:grid}.pm-summary div{flex-direction:column-reverse;gap:2px;display:flex}.pm-summary dt{color:var(--humo);font-size:13px}.pm-summary dd{font-family:var(--font-display);font-variant-numeric:tabular-nums;margin:0;font-size:22px}.pm-scroll{scrollbar-width:thin;padding:4px 2px 8px;overflow-x:auto}.pm-board{grid-template-rows:auto auto;grid-template-columns:auto 1fr;gap:6px 8px;min-width:max-content;max-width:1100px;display:grid}.pm-months,.pm-grid{grid-template-columns:repeat(var(--weeks), minmax(11px, 1fr));column-gap:var(--pm-gap);display:grid}.pm-months{color:var(--humo);grid-area:1/2;font-size:12px}.pm-months span{white-space:nowrap;width:0;overflow:visible}.pm-weekdays{row-gap:var(--pm-gap);color:var(--humo);grid-area:2/1;grid-template-rows:repeat(7,1fr);font-size:11px;display:grid}.pm-weekdays span{align-self:center;line-height:1}.pm-grid{row-gap:var(--pm-gap);border-radius:calc(var(--radius-pad) / 2);grid-area:2/2;grid-template-rows:repeat(7,auto);grid-auto-flow:column}.pm-grid:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.pm-cell{aspect-ratio:1;border-radius:calc(var(--radius-pad) / 4);background:color-mix(in srgb, var(--apagado) 45%, var(--escenario));min-width:11px;display:block}.pm-cell[data-level="1"]{background:color-mix(in srgb, var(--pm-accent) 30%, var(--escenario))}.pm-cell[data-level="2"]{background:color-mix(in srgb, var(--pm-accent) 55%, var(--escenario))}.pm-cell[data-level="3"]{background:color-mix(in srgb, var(--pm-accent) 80%, var(--escenario))}.pm-cell[data-level="4"]{background:var(--pm-accent)}.pm-cell.future{visibility:hidden}.pm-cell.selected{outline:2px solid var(--luz);outline-offset:1px}.pm-grid .pm-cell:not(.future){cursor:pointer}.pm-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.pm-readout{min-height:1.5em;margin:0}.pm-parts{color:var(--humo)}.pm-legend{color:var(--humo);align-items:center;gap:4px;font-size:12px;display:flex}.pm-legend .pm-cell{width:12px;min-width:12px}.pm-legend span:first-child{margin-right:4px}.pm-legend span:last-child{margin-left:4px}.pm-note{max-width:70ch;margin:0;font-size:13px}html.phone-mode,html.phone-mode body{overscroll-behavior:none;background:var(--foso)}html.phone-mode body{-webkit-tap-highlight-color:transparent}.phone-screen{background:var(--foso);height:100dvh;color:var(--luz);padding:max(8px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex-direction:column;gap:8px;display:flex}.phone-screen.center{justify-content:center;align-items:center;height:auto;min-height:100dvh;padding-inline:16px}.phone-card{text-align:left;flex-direction:column;gap:16px;width:min(420px,100%);display:flex}.phone-card h1{font:800 clamp(30px, 9vw, 40px)/1.02 var(--font-display);margin:0;font-stretch:85%}.phone-card p{margin:0;line-height:1.45}.phone-card-icon{color:var(--mode-learn)}.phone-muted{color:var(--humo)}.phone-connect{width:100%;min-height:56px;margin-top:6px;font-size:18px}.phone-wifi{border-radius:var(--radius-pad);text-align:left;color:var(--luz);background:color-mix(in srgb, var(--lane-crash) 14%, transparent);border-left:4px solid var(--lane-crash);margin:0;padding:10px 12px}.phone-wifi.slim{padding:6px 10px;font-size:13px}.phone-top{align-items:center;gap:10px;min-height:40px;display:flex}.phone-link{color:var(--humo);white-space:nowrap;align-items:center;gap:6px;font-size:13px;display:inline-flex}.phone-link-dot{border-radius:var(--radius-chip);background:var(--ceniza);width:8px;height:8px}.phone-link.local .phone-link-dot{background:var(--mode-learn)}.phone-link.relay{color:var(--lane-crash)}.phone-link.relay .phone-link-dot{background:var(--lane-crash)}.phone-title{text-align:center;text-overflow:ellipsis;white-space:nowrap;min-width:0;font:700 15px/1.2 var(--font-display);color:var(--luz);flex:1;font-stretch:80%;overflow:hidden}.phone-link+.phone-menu-btn,.phone-top>.phone-menu-btn:only-child{margin-left:auto}.phone-menu-btn{border-radius:var(--radius-chip);width:44px;height:44px;color:var(--luz);background:0 0;border:0;flex:none;place-items:center;display:grid}.phone-menu-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.phone-stage{flex:1;min-height:0;display:flex;position:relative}.phone-empty{text-align:center;color:var(--humo);flex:1;place-items:center;margin:0;padding:24px;font-size:20px;line-height:1.4;display:grid}.phone-stale{border-radius:var(--radius-container);background:color-mix(in srgb, var(--foso) 70%, transparent);font:700 22px/1.2 var(--font-display);color:var(--luz);place-items:center;display:grid;position:absolute;inset:0}.phone-pads,.phone-kit{touch-action:none;flex:1;min-height:0}.phone-pads{grid-template-columns:repeat(var(--cols), 1fr);grid-template-rows:repeat(var(--rows), 1fr);gap:8px;display:grid}.phone-kit{flex-direction:column;gap:8px;display:flex}.phone-kit-row{flex:1.3;gap:8px;min-height:0;display:flex}.phone-kit-row.cymbals{flex:1}.phone-kit-row.kick{flex:.75}.phone-kit-row>.phone-pad{flex:1}.phone-pad{--pad-color:var(--ceniza);isolation:isolate;border-radius:var(--radius-pad);min-width:0;min-height:0;color:var(--luz);touch-action:none;background:radial-gradient(120% 90% at 50% 110%, color-mix(in srgb, var(--pad-color) 22%, var(--tarima)), var(--tarima));box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--pad-color) 35%, transparent), inset 0 -3px 0 color-mix(in srgb, var(--foso) 45%, transparent);border:0;padding:0;transition:transform 90ms ease-out;position:relative;overflow:hidden}.phone-pad-light{z-index:-1;opacity:0;background:radial-gradient(circle farthest-corner at var(--x,50%) var(--y,50%), var(--pad-color) 0 45%, color-mix(in srgb, var(--pad-color) 72%, var(--foso)) 100%);transition:opacity .18s ease-out;position:absolute;inset:0}.phone-pad-num{font:600 12px/1 var(--font-body);color:var(--humo);position:absolute;top:8px;left:10px}.phone-pad-name{text-align:left;text-overflow:ellipsis;white-space:nowrap;font:800 clamp(14px, 4.2vmin, 22px)/1 var(--font-display);letter-spacing:.01em;font-stretch:75%;position:absolute;bottom:9px;left:10px;right:10px;overflow:hidden}.phone-pad.hit{transform:scale(.97)}.phone-pad.hit .phone-pad-light{opacity:1;transition:none}.phone-pad.hit .phone-pad-num,.phone-pad.hit .phone-pad-name{color:var(--ink)}.phone-pad.empty{box-shadow:none;outline:1.5px dashed var(--line);outline-offset:-1.5px;background:0 0}.phone-kit .phone-pad-name{font-size:clamp(16px,5vmin,26px)}@media (prefers-reduced-motion:reduce){.phone-pad,.phone-pad-light{transition:none}.phone-pad.hit{transform:none}}.phone-piano{touch-action:none;flex:1;min-height:0;display:flex;position:relative}.phone-key{isolation:isolate;touch-action:none;--pad-color:var(--accent);border:0;min-width:0;padding:0;position:relative;overflow:hidden}.phone-key.white{border-radius:0 0 calc(var(--radius-pad) * .7) calc(var(--radius-pad) * .7);background:linear-gradient(var(--key-white) 82%, color-mix(in srgb, var(--key-white) 88%, var(--foso)));box-shadow:inset -3px 0 0 var(--foso), inset 0 -4px 0 color-mix(in srgb, var(--foso) 18%, transparent);flex:1;transition:transform 90ms ease-out}.phone-key.black{z-index:2;width:calc(var(--white) * .6);border-radius:0 0 calc(var(--radius-pad) * .5) calc(var(--radius-pad) * .5);background:var(--key-black);height:60%;box-shadow:inset 0 -3px 0 color-mix(in srgb, var(--key-white) 12%, transparent);transition:transform 90ms ease-out;position:absolute;top:0}.phone-key-light{z-index:-1;opacity:0;background:radial-gradient(circle farthest-corner at var(--x,50%) var(--y,80%), var(--pad-color) 0 40%, color-mix(in srgb, var(--pad-color) 70%, var(--foso)) 100%);transition:opacity .18s ease-out;position:absolute;inset:0}.phone-key.white .phone-key-light{z-index:0;border-radius:inherit;right:3px}.phone-key-name{z-index:1;text-align:center;font:700 12px/1 var(--font-body);color:var(--ceniza);position:absolute;bottom:10px;left:0;right:0}.phone-key.white{container-type:inline-size}@container (width<=30px){.phone-key-name{display:none}}.phone-key.hit{transform-origin:top;transform:scaleY(.985)}.phone-key.hit .phone-key-light{opacity:1;transition:none}.phone-key.hit .phone-key-name{color:var(--ink)}.phone-octaves{gap:2px;display:inline-flex}.phone-octaves .phone-menu-btn:disabled{opacity:.35}.phone-rotate{display:none}@media (orientation:portrait){.phone-piano{display:none}.phone-rotate{text-align:center;color:var(--humo);flex:1;place-content:center;justify-items:center;gap:16px;display:grid}.phone-rotate p{font:700 22px/1.25 var(--font-display);color:var(--luz);max-width:16ch;margin:0;font-stretch:85%}.phone-octaves{display:none}}@media (prefers-reduced-motion:reduce){.phone-key,.phone-key-light{transition:none}.phone-key.hit{transform:none}}.phone-sheet-wrap{z-index:50;pointer-events:none;position:fixed;inset:0}.phone-sheet-wrap.open{pointer-events:auto}.phone-sheet-backdrop{background:color-mix(in srgb, var(--foso) 75%, transparent);opacity:0;transition:opacity .2s ease-out;position:absolute;inset:0}.phone-sheet-wrap.open .phone-sheet-backdrop{opacity:1}.phone-sheet{width:min(560px,100%);max-height:85dvh;padding:8px 20px max(20px, env(safe-area-inset-bottom));background:var(--escenario);border-radius:var(--radius-container) var(--radius-container) 0 0;flex-direction:column;gap:20px;margin:0 auto;transition:transform .2s ease-out;display:flex;position:absolute;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(100%)}.phone-sheet-wrap.open .phone-sheet{transform:none}.phone-sheet:focus{outline:none}.phone-sheet-head{justify-content:space-between;align-items:center;display:flex}.phone-sheet h2{font:800 24px/1.1 var(--font-display);margin:0;font-stretch:85%}.phone-sheet h3{font:700 15px/1.2 var(--font-body);color:var(--humo);margin:0 0 8px}.phone-sheet section p{margin:0 0 8px;line-height:1.4}.phone-note{color:var(--humo);font-size:14px}.phone-choices{border-radius:var(--radius-pad);background:var(--foso);gap:6px;padding:4px;display:flex}.phone-choices button{border-radius:calc(var(--radius-pad) - 4px);min-height:44px;color:var(--luz);font:600 15px/1.1 var(--font-body);background:0 0;border:0;flex:1}.phone-choices button.on{background:var(--tarima);box-shadow:inset 0 0 0 2px var(--accent)}.phone-sheet-action{border-radius:var(--radius-pad);background:var(--tarima);width:100%;min-height:48px;color:var(--luz);font:600 16px/1.1 var(--font-body);border:0}.phone-sheet-action.quiet{box-shadow:inset 0 0 0 1.5px var(--line);background:0 0}.phone-choices button:focus-visible,.phone-sheet-action:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){.phone-sheet,.phone-sheet-backdrop{transition:none}}.phone-panel{flex-direction:column;gap:10px;margin-top:16px;display:flex}.phone-panel h3,.phone-panel p{margin:0}.phone-pair{flex-wrap:wrap;align-items:flex-start;gap:16px;display:flex}.phone-pair img{border-radius:calc(var(--radius-pad) / 2);background:var(--key-white);flex:none}.phone-pair-text{flex-direction:column;flex:240px;gap:8px;min-width:0;display:flex}.phone-url{color:var(--humo);word-break:break-all;font-size:12px}.phone-linked{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.phone-warn{color:var(--lane-crash);font-weight:600}.phone-panel.compact{margin-top:12px}
