/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.contents{display:contents}.flex{display:flex}.grid{display:grid}.inline{display:inline}.table{display:table}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.border{border-style:var(--tw-border-style);border-width:1px}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--black:#0b0b0b;--near-black:#111;--paper:#f2eee5;--orange:#ff5a36;--acid:#d6ef43;--blue:#8bd3f7;--gold:#f4c542;--silver:#c7cdd4;--bronze:#c87941;--muted:#8f8c84}*{box-sizing:border-box}html,body{overscroll-behavior:none;width:100%;height:100%}body{background:var(--black);color:var(--paper);font-family:var(--font-geist-sans), Arial, sans-serif;-webkit-font-smoothing:antialiased;margin:0;overflow:hidden}button{font:inherit}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.rhythm-trainer{--mode-color:var(--acid);background:var(--black);isolation:isolate;grid-template-rows:54px minmax(0,1fr);width:100%;height:100dvh;min-height:530px;display:grid;position:relative;overflow:hidden}.rhythm-trainer.is-listening{--mode-color:var(--blue)}.topbar{z-index:30;background:var(--black);text-transform:uppercase;border-bottom:1px solid #2a2a2a;grid-template-columns:1fr auto 1fr;align-items:center;min-width:0;padding:0 clamp(14px,2vw,28px);display:grid}.brand{align-items:center;gap:12px;min-width:0;display:flex}.brand-mark{color:var(--paper);letter-spacing:-.12em;white-space:nowrap;align-items:baseline;font-size:23px;font-weight:900;line-height:1;display:inline-flex}.brand-mark span{color:var(--orange);letter-spacing:0;font-size:.72em}.brand-name,.topbar-instruction,.listen-button,.restart-button{font-family:var(--font-geist-mono), monospace;letter-spacing:.12em;font-size:9px;font-weight:700}.brand-name,.topbar-instruction{color:var(--muted)}.topbar-instruction{text-align:center;margin:0}.topbar-actions{justify-self:end;align-items:center;gap:7px;display:flex}.topbar-level-control{color:var(--muted);font-family:var(--font-geist-mono), monospace;letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:6px;font-size:7px;font-weight:750;display:flex}.topbar-level-control select{width:clamp(94px,12vw,172px);color:var(--paper);font-family:var(--font-geist-mono), monospace;text-overflow:ellipsis;white-space:nowrap;background:#171717;border:1px solid #444;border-radius:999px;padding:7px 26px 7px 9px;font-size:8px;font-weight:700;overflow:hidden}.listen-button,.restart-button{color:var(--paper);cursor:pointer;text-transform:uppercase;background:0 0;border:1px solid #444;border-radius:999px;padding:8px 12px;transition:border-color .14s,color .14s}.listen-button{border-color:var(--blue)}@supports (color:color-mix(in lab, red, red)){.listen-button{border-color:color-mix(in srgb, var(--blue) 55%, #444)}}.listen-button{color:var(--blue)}.listen-button:hover:not(:disabled),.restart-button:hover:not(:disabled){border-color:var(--paper)}.listen-button:disabled,.restart-button:disabled{color:#555;cursor:default;opacity:.6}.game-shell{grid-template-columns:minmax(190px,220px) minmax(500px,620px) minmax(210px,250px);justify-content:center;gap:clamp(10px,1.2vw,18px);width:min(100%,1230px);min-width:0;min-height:0;margin:0 auto;padding:12px clamp(12px,1.5vw,24px);display:grid;overflow:hidden}.game-stage{background:var(--black);border-left:1px solid #282828;border-right:1px solid #282828;grid-template-rows:104px minmax(0,1fr) clamp(104px,17vh,148px);width:100%;min-width:0;max-width:620px;min-height:0;display:grid;overflow:hidden;box-shadow:0 0 60px #0000007a}.side-panel{background:#101010;border:1px solid #2b2b2b;border-radius:4px;flex-direction:column;min-width:0;min-height:0;padding:15px 13px;display:flex;overflow:hidden}.side-panel-heading{font-family:var(--font-geist-mono), monospace;text-transform:uppercase;border-bottom:1px solid #2c2c2c;justify-content:space-between;align-items:flex-end;gap:10px;padding-bottom:12px;display:flex}.side-panel-heading span{color:var(--orange);letter-spacing:.13em;font-size:7px;font-weight:800}.side-panel-heading strong{color:#77746e;letter-spacing:.08em;font-size:7px;font-weight:750}.level-list{scrollbar-color:#3d3d3d transparent;scrollbar-width:thin;min-height:0;margin:0 -6px;padding:8px 6px 20px;overflow-y:auto}.level-group+.level-group{margin-top:12px}.level-group h2{color:#66635e;font-family:var(--font-geist-mono), monospace;letter-spacing:.12em;text-transform:uppercase;margin:0 0 5px;font-size:7px;font-weight:800}.level-choice{width:100%;color:var(--paper);cursor:pointer;text-align:left;background:0 0;border:0;border-bottom:1px solid #222;grid-template-columns:25px minmax(0,1fr);align-items:center;gap:8px;padding:7px 6px;display:grid}.level-choice>span:first-child{color:#5c5a55;font-family:var(--font-geist-mono), monospace;font-size:8px;font-weight:800}.level-choice>span:last-child{min-width:0}.level-choice strong,.level-choice small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.level-choice strong{letter-spacing:-.015em;font-size:10px;font-weight:790}.level-choice small{color:#5f5d58;font-family:var(--font-geist-mono), monospace;letter-spacing:.04em;text-transform:uppercase;margin-top:2px;font-size:6px;font-weight:650}.level-choice.is-complete>span:first-child,.level-choice.is-complete small{color:var(--acid)}.level-choice:hover,.level-choice.is-current{background:#1d1d1d}.level-choice.is-current{box-shadow:inset 3px 0 0 var(--mode-color)}.level-choice.is-current>span:first-child,.level-choice.is-current strong{color:var(--mode-color)}.side-score-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:12px 0;display:grid}.side-score-grid>span{background:#151515;border:1px solid #292929;flex-direction:column;min-width:0;padding:9px;display:flex}.side-score-grid small,.side-score-grid strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.side-score-grid small{color:#696660;font-family:var(--font-geist-mono), monospace;letter-spacing:.08em;text-transform:uppercase;font-size:6px;font-weight:750}.side-score-grid strong{color:var(--paper);letter-spacing:-.05em;margin-top:4px;font-size:18px;font-weight:900}.record-difficulty-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;display:grid}.record-difficulty-tabs button{color:#77746e;cursor:pointer;font-family:var(--font-geist-mono), monospace;letter-spacing:.07em;text-transform:uppercase;background:0 0;border:1px solid #333;padding:7px 3px;font-size:6px;font-weight:800}.record-difficulty-tabs button.is-active{border-color:var(--gold);background:var(--gold)}@supports (color:color-mix(in lab, red, red)){.record-difficulty-tabs button.is-active{background:color-mix(in srgb, var(--gold) 12%, transparent)}}.record-difficulty-tabs button.is-active{color:var(--gold)}.leaderboard-list{min-height:0;margin-top:10px;overflow-y:auto}.leaderboard-list ol{margin:0;padding:0;list-style:none}.leaderboard-list li{font-family:var(--font-geist-mono), monospace;border-bottom:1px solid #232323;grid-template-columns:28px minmax(0,1fr) auto;align-items:baseline;gap:6px;padding:8px 4px;display:grid}.leaderboard-list li>span{color:#66635e;font-size:7px;font-weight:850}.leaderboard-list li>strong{color:#b6b2aa;text-overflow:ellipsis;white-space:nowrap;font-size:8px;font-weight:750;overflow:hidden}.leaderboard-list li>small{color:var(--paper);font-size:8px;font-weight:850}.leaderboard-list li.rank-1>span{color:var(--gold)}.leaderboard-list li.rank-2>span{color:var(--silver)}.leaderboard-list li.rank-3>span{color:var(--bronze)}.leaderboard-message,.records-note{color:#696660;font-family:var(--font-geist-mono), monospace;letter-spacing:.04em;font-size:7px;font-weight:650;line-height:1.5}.leaderboard-message{margin:18px 3px}.leaderboard-message.is-error{color:var(--orange)}.records-note{border-top:1px solid #292929;margin:auto 0 0;padding-top:10px}.lesson-hud{z-index:20;border-bottom:2px solid var(--paper);background:var(--near-black);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:clamp(16px,2vw,28px);padding:14px clamp(16px,1.8vw,24px);display:grid;position:relative}.lesson-copy{min-width:0}.eyebrow-row{color:var(--orange);font-family:var(--font-geist-mono), monospace;letter-spacing:.13em;text-transform:uppercase;gap:14px;margin-bottom:5px;font-size:8px;font-weight:750;display:flex}.eyebrow-row span+span{color:var(--muted)}.lesson-copy h1{letter-spacing:-.065em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;margin:0;font-size:clamp(25px,2.4vw,36px);font-weight:890;line-height:.92;overflow:hidden}.lesson-copy p{color:#aaa79f;text-overflow:ellipsis;white-space:nowrap;margin:7px 0 0;font-size:11px;overflow:hidden}.lesson-metrics{align-items:stretch;gap:12px;display:flex}.lesson-metrics>span:not(.sound-chip){color:var(--muted);font-family:var(--font-geist-mono), monospace;letter-spacing:.1em;text-transform:uppercase;flex-direction:column;justify-content:center;font-size:7px;font-weight:700;display:flex}.lesson-metrics strong{color:var(--paper);font-family:var(--font-geist-sans), sans-serif;letter-spacing:-.05em;font-size:22px;font-weight:850;line-height:1}.sound-chip{color:var(--muted);font-family:var(--font-geist-mono), monospace;letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:6px;font-size:7px;font-weight:700;display:flex}.sound-chip i{border:1px solid #666;border-radius:50%;width:7px;height:7px}.sound-chip.is-ready i{border-color:var(--acid);background:var(--acid);box-shadow:0 0 9px #d6ef4394}.playfield{background:linear-gradient(to bottom, #ffffff06, transparent 28%), var(--black);min-width:0;min-height:0;position:relative;overflow:hidden}.playfield:before{z-index:7;border:2px solid var(--mode-color);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.playfield:before{border:2px solid color-mix(in srgb, var(--mode-color) 28%, transparent)}}.playfield:before{box-shadow:inset 0 0 42px var(--mode-color), inset 0 0 0 1px var(--mode-color)}@supports (color:color-mix(in lab, red, red)){.playfield:before{box-shadow:inset 0 0 42px color-mix(in srgb, var(--mode-color) 4%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--mode-color) 8%, transparent)}}.playfield:before{content:"";pointer-events:none;transition:border-color .12s,box-shadow .12s}.rhythm-trainer.is-listening .playfield:before{border-color:var(--blue)}@supports (color:color-mix(in lab, red, red)){.rhythm-trainer.is-listening .playfield:before{border-color:color-mix(in srgb, var(--blue) 52%, transparent)}}.rhythm-trainer.is-listening .playfield:before{box-shadow:inset 0 0 72px var(--blue), inset 0 0 0 1px var(--blue)}@supports (color:color-mix(in lab, red, red)){.rhythm-trainer.is-listening .playfield:before{box-shadow:inset 0 0 72px color-mix(in srgb, var(--blue) 9%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--blue) 18%, transparent)}}.mode-indicator{z-index:12;border:1px solid var(--mode-color);align-items:center;gap:6px;padding:5px 8px;display:flex;position:absolute;top:11px;left:50%}@supports (color:color-mix(in lab, red, red)){.mode-indicator{border:1px solid color-mix(in srgb, var(--mode-color) 58%, transparent)}}.mode-indicator{background:var(--black);border-radius:999px}@supports (color:color-mix(in lab, red, red)){.mode-indicator{background:color-mix(in srgb, var(--black) 88%, transparent)}}.mode-indicator{box-shadow:0 0 18px var(--mode-color)}@supports (color:color-mix(in lab, red, red)){.mode-indicator{box-shadow:0 0 18px color-mix(in srgb, var(--mode-color) 14%, transparent)}}.mode-indicator{color:var(--mode-color);font-family:var(--font-geist-mono), monospace;text-transform:uppercase;white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;transform:translate(-50%)}.mode-indicator>i{background:currentColor;border-radius:50%;width:6px;height:6px;box-shadow:0 0 9px}.mode-indicator strong{letter-spacing:.1em;font-size:7px;font-weight:850}.mode-indicator span{color:#77746e;letter-spacing:.07em;font-size:6px;font-weight:700}.lane-grid{grid-template-columns:repeat(4,minmax(0,1fr));display:grid;position:absolute;inset:0}.lane{--lane-color:var(--paper);background:linear-gradient(to bottom, transparent 0 78%, var(--lane-color));border-right:1px solid #2a2a2a;min-width:0;position:relative}@supports (color:color-mix(in lab, red, red)){.lane{background:linear-gradient(to bottom, transparent 0 78%, color-mix(in srgb, var(--lane-color) 6%, transparent))}}.lane{transition:opacity .18s}.lane.is-unused{opacity:.22}.lane:first-child{border-left:1px solid #2a2a2a}.lane--kick{--lane-color:var(--paper)}.lane--snare{--lane-color:var(--orange)}.lane--hat{--lane-color:var(--acid)}.lane--cymbal{--lane-color:var(--blue)}.lane-label{z-index:3;color:#777;font-family:var(--font-geist-mono), monospace;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;border:1px solid #343434;border-radius:999px;padding:5px 8px;font-size:7px;font-weight:700;position:absolute;top:12px;left:50%;transform:translate(-50%)}.falling-note{--note-progress:0;--impact-color:var(--acid);z-index:8;top:calc(28px + var(--note-progress) * (100% - 58px));border:2px solid var(--black);background:var(--lane-color);width:clamp(38px,5.3vw,68px);height:clamp(24px,3.4vw,42px);color:var(--black);font-family:var(--font-geist-mono), monospace;letter-spacing:.08em;will-change:top;border-radius:999px;place-items:center;font-size:8px;font-weight:850;display:grid;position:absolute;left:50%;transform:translate(-50%,-50%);box-shadow:0 7px #00000038}.falling-note:before{border-radius:inherit;content:"";border:1px solid #0c0c0c57;position:absolute;inset:4px}.falling-note:after{z-index:-1;border:2px solid var(--impact-color);background:radial-gradient(circle, var(--impact-color) 0, transparent 67%);border-radius:50%;position:absolute;inset:-12px}@supports (color:color-mix(in lab, red, red)){.falling-note:after{background:radial-gradient(circle, color-mix(in srgb, var(--impact-color) 30%, transparent) 0, transparent 67%)}}.falling-note:after{box-shadow:0 0 22px var(--impact-color)}@supports (color:color-mix(in lab, red, red)){.falling-note:after{box-shadow:0 0 22px color-mix(in srgb, var(--impact-color) 72%, transparent)}}.falling-note:after{content:"";opacity:0;pointer-events:none;transform:scale(.48)}.falling-note.is-accent{width:clamp(48px,6.4vw,82px);box-shadow:0 0 0 3px var(--lane-color), 0 0 0 5px var(--black);border-width:3px}.falling-note.is-hit{border-color:var(--impact-color);background:linear-gradient(135deg, var(--impact-color), var(--impact-color) 48%, var(--impact-color))}@supports (color:color-mix(in lab, red, red)){.falling-note.is-hit{background:linear-gradient(135deg, color-mix(in srgb, var(--impact-color) 62%, white), var(--impact-color) 48%, color-mix(in srgb, var(--impact-color) 74%, black))}}.falling-note.is-hit{box-shadow:0 0 28px var(--impact-color)}@supports (color:color-mix(in lab, red, red)){.falling-note.is-hit{box-shadow:0 0 28px color-mix(in srgb, var(--impact-color) 78%, transparent)}}.falling-note.is-hit{animation:.42s ease-out both resolved-note}.falling-note.is-hit.tone--perfect{--impact-color:var(--gold)}.falling-note.is-hit.tone--good{--impact-color:var(--silver)}.falling-note.is-hit.tone--close{--impact-color:var(--bronze)}.falling-note.is-miss{--impact-color:var(--orange);border-color:var(--orange);color:var(--orange);background:0 0;animation:.52s ease-out both missed-note}.falling-note.is-hit:after,.falling-note.is-miss:after{animation:.42s ease-out both note-impact}.falling-note.is-miss:after{animation-duration:.52s}@keyframes note-impact{0%{opacity:.95;transform:scale(.48)}to{opacity:0;transform:scale(2.15)}}@keyframes resolved-note{0%{filter:brightness(1.7);transform:translate(-50%,-50%)scale(.88)}36%{filter:brightness(1.18);transform:translate(-50%,-50%)scale(1.08)}to{filter:brightness(.72);transform:translate(-50%,-50%)scale(.94)}}@keyframes missed-note{0%{filter:brightness(1.55);opacity:1;transform:translate(-50%,-50%)scale(1)}to{filter:brightness(.7);opacity:.48;transform:translate(-50%,-50%)scale(.86)}}.beat-guides{z-index:9;pointer-events:none;position:absolute;inset:0}.beat-guide{--guide-progress:0;top:calc(28px + var(--guide-progress) * (100% - 58px));filter:drop-shadow(0 0 3px #f2eee51f);border-top:1px solid #f2eee533;width:100%;position:absolute;left:0}.beat-guide.is-downbeat{border-top-width:2px;border-top-color:#f2eee547}.beat-guide i{color:#777;width:14px;height:14px;font-family:var(--font-geist-mono), monospace;background:#2b2b2b;border-radius:50%;place-items:center;font-size:7px;font-style:normal;display:grid;position:absolute;top:-7px;left:8px}.hit-zone{--perfect-zone-height:20px;z-index:5;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none;background:linear-gradient(#f2eee509,#f2eee51b);border-top:1px solid #f2eee54d;border-bottom:1px solid #f2eee529;height:60px;position:absolute;bottom:0;left:0;right:0;box-shadow:inset 0 18px 34px #f2eee506,inset 0 -18px 32px #f2eee50f,0 -12px 34px #f2eee509}.perfect-zone{z-index:1;height:var(--perfect-zone-height);border-top:1px solid var(--gold);position:absolute;top:50%;left:0;right:0}@supports (color:color-mix(in lab, red, red)){.perfect-zone{border-top:1px solid color-mix(in srgb, var(--gold) 82%, transparent)}}.perfect-zone{border-bottom:1px solid var(--gold)}@supports (color:color-mix(in lab, red, red)){.perfect-zone{border-bottom:1px solid color-mix(in srgb, var(--gold) 82%, transparent)}}.perfect-zone{background:var(--gold)}@supports (color:color-mix(in lab, red, red)){.perfect-zone{background:color-mix(in srgb, var(--gold) 9%, transparent)}}.perfect-zone{box-shadow:inset 0 0 18px var(--gold), 0 0 14px var(--gold)}@supports (color:color-mix(in lab, red, red)){.perfect-zone{box-shadow:inset 0 0 18px color-mix(in srgb, var(--gold) 10%, transparent), 0 0 14px color-mix(in srgb, var(--gold) 9%, transparent)}}.perfect-zone{transform:translateY(-50%)}.hit-point-line{z-index:10;background:linear-gradient(90deg, transparent, var(--paper) 2%, var(--paper) 98%, transparent);height:2px;position:absolute;bottom:29px;left:0;right:0}@supports (color:color-mix(in lab, red, red)){.hit-point-line{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--paper) 88%, var(--gold)) 2%, color-mix(in srgb, var(--paper) 88%, var(--gold)) 98%, transparent)}}.hit-point-line{box-shadow:0 0 7px var(--paper), 0 0 13px var(--gold)}@supports (color:color-mix(in lab, red, red)){.hit-point-line{box-shadow:0 0 7px color-mix(in srgb, var(--paper) 48%, transparent), 0 0 13px color-mix(in srgb, var(--gold) 26%, transparent)}}.hit-point-line{pointer-events:none}.hit-point-line>span{border:1px solid var(--gold);border-radius:999px;padding:2px 6px;position:absolute;top:50%;left:50%}@supports (color:color-mix(in lab, red, red)){.hit-point-line>span{border:1px solid color-mix(in srgb, var(--gold) 58%, transparent)}}.hit-point-line>span{background:var(--black)}@supports (color:color-mix(in lab, red, red)){.hit-point-line>span{background:color-mix(in srgb, var(--black) 92%, transparent)}}.hit-point-line>span{color:var(--gold);font-family:var(--font-geist-mono), monospace;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;font-size:6px;font-style:normal;font-weight:800;transform:translate(-50%,-50%)}.manual-impact{--manual-impact-color:var(--silver);z-index:14;bottom:30px;left:var(--impact-x,50%);border:2px solid var(--manual-impact-color);background:radial-gradient(ellipse, var(--manual-impact-color), transparent 68%);border-radius:999px;width:clamp(42px,5.8vw,72px);height:clamp(26px,3.7vw,44px);position:absolute}@supports (color:color-mix(in lab, red, red)){.manual-impact{background:radial-gradient(ellipse, color-mix(in srgb, var(--manual-impact-color) 28%, transparent), transparent 68%)}}.manual-impact{box-shadow:0 0 20px var(--manual-impact-color), inset 0 0 12px var(--manual-impact-color)}@supports (color:color-mix(in lab, red, red)){.manual-impact{box-shadow:0 0 20px color-mix(in srgb, var(--manual-impact-color) 72%, transparent), inset 0 0 12px color-mix(in srgb, var(--manual-impact-color) 26%, transparent)}}.manual-impact{opacity:0;pointer-events:none;animation:.43s ease-out both manual-impact;transform:translate(-50%,50%)scale(.55)}.manual-impact.impact--perfect{--manual-impact-color:var(--gold)}.manual-impact.impact--good{--manual-impact-color:var(--silver)}.manual-impact.impact--close{--manual-impact-color:var(--bronze)}.manual-impact.impact--miss{--manual-impact-color:var(--orange)}.manual-impact.impact--listened{--manual-impact-color:var(--blue)}@keyframes manual-impact{0%{opacity:1;transform:translate(-50%,50%)scale(.55)}34%{opacity:.95;transform:translate(-50%,50%)scale(1)}to{opacity:0;transform:translate(-50%,50%)scale(1.8)}}.hit-progress{grid-template-columns:repeat(16,minmax(0,1fr));gap:3px;height:5px;display:grid;position:absolute;bottom:0;left:clamp(8px,1.2vw,18px);right:clamp(8px,1.2vw,18px)}.hit-segment{background:var(--paper);border-radius:999px;min-width:0;height:5px;transition:background .1s,box-shadow .1s,transform .1s;display:block;box-shadow:0 0 10px #f2eee538}.hit-segment.is-bar-end:not(:last-child){margin-right:5px}.hit-segment.segment--perfect{background:var(--gold);box-shadow:0 0 18px var(--gold)}@supports (color:color-mix(in lab, red, red)){.hit-segment.segment--perfect{box-shadow:0 0 18px color-mix(in srgb, var(--gold) 90%, transparent)}}.hit-segment.segment--perfect{transform:scaleY(1.8)}.hit-segment.segment--good{background:var(--silver);box-shadow:0 0 18px var(--silver)}@supports (color:color-mix(in lab, red, red)){.hit-segment.segment--good{box-shadow:0 0 18px color-mix(in srgb, var(--silver) 82%, transparent)}}.hit-segment.segment--good{transform:scaleY(1.55)}.hit-segment.segment--close{background:var(--bronze);box-shadow:0 0 18px var(--bronze)}@supports (color:color-mix(in lab, red, red)){.hit-segment.segment--close{box-shadow:0 0 18px color-mix(in srgb, var(--bronze) 85%, transparent)}}.hit-segment.segment--close{transform:scaleY(1.4)}.hit-segment.segment--miss{background:var(--orange);transform:scaleY(2);box-shadow:0 0 22px #ff5a36e6}.hit-segment.segment--listened{background:var(--blue);box-shadow:0 0 16px #8bd3f7ad}.hit-zone-label{z-index:2;background:var(--paper);color:var(--black);font-family:var(--font-geist-mono), monospace;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:4px 8px;font-size:7px;font-weight:800;position:absolute;top:8px;left:50%;transform:translate(-50%)}.accuracy-legend{z-index:2;color:#7a7872;font-family:var(--font-geist-mono), monospace;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:5px;font-size:6px;font-weight:750;display:flex;position:absolute;top:11px;right:12px}.accuracy-legend i{border-radius:50%;width:6px;height:6px;margin-left:4px}.accuracy-legend .legend--perfect{background:var(--gold)}.accuracy-legend .legend--good{background:var(--silver)}.accuracy-legend .legend--close{background:var(--bronze)}.scoreboard{z-index:2;color:var(--paper);font-family:var(--font-geist-mono), monospace;text-transform:uppercase;align-items:center;gap:8px;display:flex;position:absolute;top:7px;left:10px}.scoreboard>span{align-items:baseline;gap:4px;display:flex}.scoreboard small{color:#77746e;letter-spacing:.08em;font-size:5px;font-weight:750}.scoreboard strong{color:var(--paper);letter-spacing:-.03em;white-space:nowrap;font-size:9px;font-weight:850}.scoreboard>span:last-child strong{color:var(--gold)}.rhythm-trainer.is-listening .hit-zone{border-color:var(--blue)}@supports (color:color-mix(in lab, red, red)){.rhythm-trainer.is-listening .hit-zone{border-color:color-mix(in srgb, var(--blue) 42%, transparent)}}.rhythm-trainer.is-listening .hit-zone{background:linear-gradient(to bottom, var(--blue), var(--blue))}@supports (color:color-mix(in lab, red, red)){.rhythm-trainer.is-listening .hit-zone{background:linear-gradient(to bottom, color-mix(in srgb, var(--blue) 5%, transparent), color-mix(in srgb, var(--blue) 14%, transparent))}}.rhythm-trainer.is-listening .hit-zone{box-shadow:inset 0 -24px 38px var(--blue)}@supports (color:color-mix(in lab, red, red)){.rhythm-trainer.is-listening .hit-zone{box-shadow:inset 0 -24px 38px color-mix(in srgb, var(--blue) 9%, transparent)}}.rhythm-trainer.is-listening .hit-zone-label,.rhythm-trainer.is-listening .hit-segment.segment--pending{background:var(--blue)}@supports (color:color-mix(in lab, red, red)){.rhythm-trainer.is-listening .hit-segment.segment--pending{background:color-mix(in srgb, var(--blue) 28%, var(--paper))}}.rhythm-trainer.is-listening .falling-note{box-shadow:0 0 16px var(--lane-color)}@supports (color:color-mix(in lab, red, red)){.rhythm-trainer.is-listening .falling-note{box-shadow:0 0 16px color-mix(in srgb, var(--lane-color) 32%, transparent)}}.metronome-pulse{--pulse-color:var(--acid);z-index:6;border:2px solid var(--pulse-color);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.metronome-pulse{border:2px solid color-mix(in srgb, var(--pulse-color) 46%, transparent)}}.metronome-pulse{background:var(--pulse-color)}@supports (color:color-mix(in lab, red, red)){.metronome-pulse{background:color-mix(in srgb, var(--pulse-color) 10%, transparent)}}.metronome-pulse{box-shadow:inset 0 0 76px var(--pulse-color), inset 0 0 0 1px var(--pulse-color)}@supports (color:color-mix(in lab, red, red)){.metronome-pulse{box-shadow:inset 0 0 76px color-mix(in srgb, var(--pulse-color) 12%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--pulse-color) 24%, transparent)}}.metronome-pulse{opacity:0;pointer-events:none;animation:.11s linear both metronome-tick}.metronome-pulse.is-accent{--pulse-color:var(--orange)}@keyframes metronome-tick{0%,58%{opacity:1}59%,to{opacity:0}}.count-in{z-index:15;color:var(--muted);font-family:var(--font-geist-mono), monospace;letter-spacing:.12em;text-transform:uppercase;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0b0b0be0;border:1px solid #4a4a4a;border-radius:999px;align-items:center;gap:12px;padding:9px 14px;font-size:8px;font-weight:750;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.count-in strong{color:var(--paper);font-family:var(--font-geist-sans), sans-serif;font-size:28px;line-height:1}.pause-badge{z-index:18;color:var(--paper);text-transform:uppercase;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0b0b0be0;border:1px solid #f2eee58f;border-radius:4px;flex-direction:column;align-items:center;gap:5px;padding:10px 14px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pause-badge strong{letter-spacing:-.04em;font-size:clamp(19px,2.6vw,32px);font-weight:900;line-height:1}.pause-badge span{color:var(--blue);font-family:var(--font-geist-mono), monospace;letter-spacing:.1em;font-size:7px;font-weight:750}.transport-readout{color:#626262;font-family:var(--font-geist-mono), monospace;letter-spacing:.1em;text-transform:uppercase;z-index:5;font-size:7px;font-weight:700;position:absolute;top:14px;right:14px}.judgement{--feedback-color:var(--acid);z-index:12;bottom:68px;left:var(--feedback-x,50%);color:var(--feedback-color);pointer-events:none;position:absolute;transform:translate(-50%)}.judgement>span{border:1px solid var(--feedback-color);padding:5px 8px;display:block}@supports (color:color-mix(in lab, red, red)){.judgement>span{border:1px solid color-mix(in srgb, var(--feedback-color) 65%, transparent)}}.judgement>span{background:var(--black);border-radius:999px}@supports (color:color-mix(in lab, red, red)){.judgement>span{background:color-mix(in srgb, var(--black) 82%, transparent)}}.judgement>span{box-shadow:0 0 20px var(--feedback-color)}@supports (color:color-mix(in lab, red, red)){.judgement>span{box-shadow:0 0 20px color-mix(in srgb, var(--feedback-color) 26%, transparent)}}.judgement>span{font-family:var(--font-geist-mono), monospace;letter-spacing:.06em;text-shadow:0 0 12px var(--feedback-color);text-transform:uppercase;white-space:nowrap;font-size:clamp(9px,1.15vw,13px);font-weight:850;line-height:1;animation:.44s ease-out both feedback-word}.judgement--perfect{--feedback-color:var(--gold)}.judgement--good{--feedback-color:var(--silver)}.judgement--clean{--feedback-color:var(--acid)}.judgement--close{--feedback-color:var(--bronze)}.judgement--miss{--feedback-color:var(--orange)}@keyframes feedback-word{0%{opacity:0;transform:translateY(16px)scale(.82)}20%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-10px)scale(1.04)}}.start-overlay,.level-overlay{z-index:25;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0b0b0bb8;place-items:center;display:grid;position:absolute;inset:0}.difficulty-card{background:var(--paper);width:min(590px,100% - 30px);max-height:calc(100% - 18px);color:var(--black);box-shadow:10px 10px 0 var(--gold);border-radius:4px;flex-direction:column;align-items:flex-start;padding:clamp(18px,2.6vw,32px);display:flex;overflow-y:auto}.difficulty-card>strong{letter-spacing:-.065em;text-transform:uppercase;margin:8px 0 5px;font-size:clamp(28px,4.8vw,54px);font-weight:920;line-height:.92}.difficulty-card>p{color:#68655f;font-family:var(--font-geist-mono), monospace;letter-spacing:.04em;margin:0;font-size:8px;font-weight:650}.start-level-picker{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;width:100%;margin-top:14px;display:grid}.start-level-picker>span{color:#68655f;font-family:var(--font-geist-mono), monospace;letter-spacing:.08em;text-transform:uppercase;font-size:7px;font-weight:800}.start-level-picker select{width:100%;min-width:0;color:var(--black);font-family:var(--font-geist-mono), monospace;background:#fffdf6;border:1px solid #a8a49b;border-radius:3px;padding:9px 12px;font-size:8px;font-weight:750}.difficulty-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;width:100%;margin:16px 0 12px;display:grid}.difficulty-option{min-width:0;color:var(--black);cursor:pointer;text-align:left;background:0 0;border:1px solid #b8b4aa;border-radius:3px;flex-direction:column;align-items:flex-start;padding:10px;display:flex}.difficulty-option strong{letter-spacing:-.04em;text-transform:uppercase;font-size:clamp(15px,2vw,23px);font-weight:900}.difficulty-option small,.difficulty-option span,.space-hint{font-family:var(--font-geist-mono), monospace;text-transform:uppercase}.difficulty-option small{color:#6f6b64;margin:2px 0 7px;font-size:7px;font-weight:800}.difficulty-option span{color:#77736c;letter-spacing:.05em;font-size:6px;font-weight:650;line-height:1.35}.difficulty-option.is-selected{border-color:var(--black);background:var(--black);color:var(--paper);box-shadow:inset 0 -3px 0 var(--gold)}.difficulty-option.is-selected small,.difficulty-option.is-selected span{color:#aaa69e}.start-training-button{background:var(--orange);width:100%;color:var(--black);cursor:pointer;letter-spacing:-.035em;text-transform:uppercase;border:0;border-radius:3px;padding:11px 14px;font-size:clamp(16px,2.3vw,25px);font-weight:900}.space-hint{color:#77736c;letter-spacing:.08em;align-self:center;margin-top:7px;font-size:6px;font-weight:700}.start-card{background:var(--paper);width:min(520px,100% - 36px);color:var(--black);cursor:pointer;text-align:left;box-shadow:12px 12px 0 var(--orange);border:0;border-radius:4px;flex-direction:column;align-items:flex-start;padding:clamp(22px,3vw,38px);transition:transform .16s,box-shadow .16s;display:flex}.start-card:hover{box-shadow:7px 7px 0 var(--orange);transform:translate(5px,5px)}.start-kicker,.start-card>span:last-child{font-family:var(--font-geist-mono), monospace;letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-weight:700}.start-kicker{color:#69665f}.start-card strong{letter-spacing:-.08em;text-transform:uppercase;margin:12px 0 15px;font-size:clamp(42px,7vw,80px);font-weight:900;line-height:.8}.start-card>span:last-child{max-width:390px;line-height:1.45}.level-overlay{color:var(--black);background:#0b0b0bd1;align-content:center;padding:14px;overflow-y:auto}.result-card{background:var(--paper);width:min(620px,100%);max-height:100%;box-shadow:10px 10px 0 var(--acid);text-align:left;border-radius:4px;padding:clamp(18px,3vw,34px);overflow-y:auto}.result-kicker,.result-stats small,.result-stats em,.record-form label,.record-form p{font-family:var(--font-geist-mono), monospace;text-transform:uppercase}.result-kicker{color:#68655f;letter-spacing:.12em;font-size:8px;font-weight:800}.result-card h2{letter-spacing:-.075em;text-transform:uppercase;margin:8px 0 0;font-size:clamp(34px,5vw,62px);font-weight:920;line-height:.88}.result-pattern{color:#68655f;margin:7px 0 16px;font-size:11px;font-weight:700}.result-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.result-stats>span{background:#e8e3d9;border:1px solid #b9b5ac;flex-direction:column;min-width:0;padding:13px;display:flex}.result-stats small{color:#6c6962;letter-spacing:.08em;font-size:7px;font-weight:800}.result-stats strong{color:var(--black);letter-spacing:-.06em;text-overflow:ellipsis;white-space:nowrap;margin:5px 0 4px;font-size:clamp(28px,4vw,48px);font-weight:920;line-height:.9;overflow:hidden}.result-stats>span:last-child strong{color:#6f6514}.result-stats em{color:#77736c;letter-spacing:.06em;font-size:6px;font-style:normal;font-weight:700}.record-form{margin-top:14px}.record-form>label{color:#4c4a45;letter-spacing:.08em;margin-bottom:5px;font-size:7px;font-weight:850;display:block}.record-form>label span{color:#88847c;font-weight:650}.record-form>div{grid-template-columns:minmax(0,1fr) auto;gap:5px;display:grid}.record-form input{min-width:0;color:var(--black);background:#fffdf7;border:1px solid #aaa69d;border-radius:3px;padding:10px 11px;font-size:14px;font-weight:720}.record-form button,.result-actions button{border:1px solid var(--black);background:var(--black);color:var(--paper);cursor:pointer;text-transform:uppercase;border-radius:3px;padding:10px 13px;font-size:9px;font-weight:850}.record-form button:disabled,.result-actions button:disabled{cursor:default;opacity:.55}.record-form p{color:#a43720;margin:6px 0 0;font-size:7px;font-weight:750}.result-actions{grid-template-columns:1fr 1.35fr;gap:6px;margin-top:12px;display:grid}.result-actions button{color:var(--black);background:0 0}.result-actions .result-primary-action{border-color:var(--orange);background:var(--orange);color:var(--black)}.completion-overlay .start-card{box-shadow:12px 12px 0 var(--blue)}.pad-dock{z-index:30;background:var(--black);grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;min-width:0;min-height:0;padding-top:3px;display:grid;position:relative}.drum-pad{--pad-bg:var(--paper);--pad-ink:var(--black);--pad-hit:#ffc6a7;background:var(--pad-bg);min-width:0;min-height:0;color:var(--pad-ink);cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;border:0;border-radius:0;grid-template-columns:1fr;align-items:center;gap:4px;padding:10px 7px 8px;transition:filter .18s,opacity .18s;display:grid;position:relative;overflow:hidden}.drum-pad.is-unused{filter:grayscale(.78)brightness(.5);opacity:.56}.drum-pad.is-unused.is-active{filter:none;opacity:1}.drum-pad:after{background:var(--pad-hit);content:"";opacity:0;transition:opacity 85ms,transform 85ms;position:absolute;inset:0;transform:scale(.8)}.drum-pad--kick{--pad-bg:var(--paper)}.drum-pad--snare{--pad-bg:var(--orange);--pad-hit:#ff9c79}.drum-pad--hat{--pad-bg:var(--acid);--pad-hit:#f2ffa1}.drum-pad--cymbal{--pad-bg:var(--blue);--pad-hit:#cef0ff}.drum-pad.is-active:after{opacity:.72;transform:scale(1)}.drum-pad.is-active .pad-instrument{transform:scale(.82)}.drum-pad:focus-visible,.start-card:focus-visible,.difficulty-option:focus-visible,.start-training-button:focus-visible,.listen-button:focus-visible,.restart-button:focus-visible,.level-choice:focus-visible,.record-difficulty-tabs button:focus-visible,.record-form input:focus-visible,.record-form button:focus-visible,.result-actions button:focus-visible,.topbar-level-control select:focus-visible,.start-level-picker select:focus-visible{z-index:10;outline-offset:-7px;outline:4px solid #fff}.pad-key,.pad-instrument,.pad-copy{z-index:2;position:relative}.pad-key{width:23px;height:23px;font-family:var(--font-geist-mono), monospace;border:1px solid;border-radius:50%;place-items:center;font-size:9px;font-weight:800;display:grid;position:absolute;top:7px;left:7px}.pad-instrument{aspect-ratio:1;border:3px solid;border-radius:50%;justify-self:center;width:clamp(34px,3.4vw,44px);transition:transform 85ms}.pad-instrument:before,.pad-instrument:after,.pad-instrument i{content:"";position:absolute}.drum-pad--kick .pad-instrument{box-shadow:inset 0 0 0 2px var(--pad-bg), inset 0 0 0 4px currentColor;border-width:7px}.drum-pad--snare .pad-instrument:before,.drum-pad--snare .pad-instrument:after{background:currentColor;width:120%;height:2px;top:50%;left:-10%;transform:rotate(20deg)}.drum-pad--snare .pad-instrument:after{transform:rotate(-20deg)}.drum-pad--hat .pad-instrument{border-width:3px 0;height:28px}.drum-pad--hat .pad-instrument i{background:currentColor;width:2px;height:54px;top:-15px;left:50%}.drum-pad--cymbal .pad-instrument{background:repeating-conic-gradient(transparent 0 20deg, #0c0c0c26 21deg 23deg)}.drum-pad--cymbal .pad-instrument i{background:var(--pad-bg);border:2px solid;border-radius:50%;inset:35%}.pad-copy{text-align:center;text-transform:uppercase;justify-self:center;min-width:0}.pad-copy strong{letter-spacing:-.07em;font-size:clamp(13px,1.25vw,18px);font-weight:900;line-height:.9;display:block}.pad-copy small{font-family:var(--font-geist-mono), monospace;letter-spacing:.1em;margin-top:5px;font-size:7px;font-weight:700;display:none}.community-button{border:1px solid var(--orange);background:var(--orange);color:var(--black);cursor:pointer;font-family:var(--font-geist-mono), monospace;letter-spacing:.1em;text-transform:uppercase;border-radius:999px;padding:8px 12px;font-size:9px;font-weight:850}.community-button:hover{background:var(--paper)}.community-studio-overlay{z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#040404eb;place-items:center;padding:clamp(10px,2vw,28px);display:grid;position:fixed;inset:0}.community-studio{width:min(1180px,100%);height:min(850px,100%);min-height:0;box-shadow:14px 14px 0 var(--orange);background:#101010;border:1px solid #393939;border-radius:5px;grid-template-rows:auto minmax(0,1fr);display:grid;overflow:hidden}.studio-header{background:#171717;border-bottom:1px solid #343434;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:18px;padding:14px 16px;display:grid}.studio-header>div>span,.library-intro span,.studio-fields span,.share-level span{color:var(--orange);font-family:var(--font-geist-mono), monospace;letter-spacing:.12em;text-transform:uppercase;font-size:7px;font-weight:800}.studio-header h2,.library-intro h3{color:var(--paper);letter-spacing:-.06em;text-transform:uppercase;margin:2px 0 0;font-size:clamp(24px,3vw,38px);font-weight:920;line-height:.9}.studio-header nav{gap:4px;display:flex}.studio-header nav button,.studio-close,.library-intro button,.studio-actions button,.share-level button{color:var(--paper);cursor:pointer;font-family:var(--font-geist-mono), monospace;letter-spacing:.07em;text-transform:uppercase;background:0 0;border:1px solid #444;border-radius:3px;padding:8px 11px;font-size:8px;font-weight:800}.studio-header nav button.is-active{border-color:var(--acid);background:var(--acid);color:var(--black)}.studio-close{border-radius:50%;width:34px;height:34px;padding:0;font-size:22px;line-height:1}.studio-workspace,.community-library{min-height:0;padding:clamp(12px,1.7vw,20px);overflow-y:auto}.studio-fields{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr) 100px;gap:7px;display:grid}.studio-fields label,.share-level label{flex-direction:column;gap:5px;min-width:0;display:flex}.studio-fields input,.share-level input{width:100%;min-width:0;color:var(--paper);font:700 10px var(--font-geist-mono), monospace;background:#0a0a0a;border:1px solid #414141;border-radius:3px;outline:0;padding:9px 10px}.studio-fields input:focus,.share-level input:focus{border-color:var(--acid)}.studio-transport{font-family:var(--font-geist-mono), monospace;background:#151515;border:1px solid #303030;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:12px;margin:9px 0;padding:9px 11px;display:grid}.studio-phase{background:var(--silver);color:var(--black);letter-spacing:.08em;text-transform:uppercase;border-radius:2px;padding:4px 6px;font-size:7px;font-weight:900}.phase--recording{background:var(--orange)}.phase--testing{background:var(--gold)}.phase--passed,.phase--published{background:var(--acid)}.studio-transport strong{color:var(--paper);white-space:nowrap;font-size:9px}.studio-transport small{color:#8f8c84;text-overflow:ellipsis;white-space:nowrap;font-size:7px;overflow:hidden}.studio-grid{background:#080808;border:1px solid #303030;min-width:720px;padding:9px;overflow:hidden}.studio-bar-ruler,.studio-lane{grid-template-columns:64px minmax(0,1fr);gap:7px;display:grid}.studio-bar-ruler{margin-bottom:5px}.studio-bar-ruler>b{color:#5d5a55;font:750 6px var(--font-geist-mono), monospace;letter-spacing:.1em;text-transform:uppercase}.studio-bar-ruler{grid-template-columns:64px repeat(4,minmax(0,1fr))}.studio-lane+.studio-lane{margin-top:5px}.studio-lane>span{color:#77736c;font:850 7px var(--font-geist-mono), monospace;text-transform:uppercase;align-items:center;gap:6px;display:flex}.studio-lane>span strong{color:var(--paper);font-size:7px}.studio-lane>div{grid-template-columns:repeat(64,minmax(4px,1fr));gap:1px;min-width:0;display:grid}.studio-lane button{cursor:pointer;background:#202020;border:0;border-radius:1px;min-width:0;height:28px;padding:0}.studio-lane button:nth-child(4n+1){background:#303030}.studio-lane button.is-bar-start{box-shadow:-2px 0 #777}.studio-lane button.has-note{background:var(--lane-note,var(--paper));box-shadow:inset 0 0 0 2px #090909}.studio-lane button.is-playhead{outline:2px solid var(--gold);outline-offset:-1px}.studio-lane--kick{--lane-note:var(--paper)}.studio-lane--snare{--lane-note:var(--orange)}.studio-lane--hat{--lane-note:var(--acid)}.studio-lane--cymbal{--lane-note:var(--blue)}.studio-actions{flex-wrap:wrap;gap:5px;margin-top:9px;display:flex}.studio-actions button:hover,.share-level button:hover,.library-intro button:hover{border-color:var(--paper)}.studio-actions .studio-primary{border-color:var(--paper);background:var(--paper);color:var(--black)}.studio-actions .studio-publish{border-color:var(--acid);background:var(--acid);color:var(--black)}.studio-actions .studio-danger{color:var(--orange);border-color:#743723}.studio-actions button:disabled{cursor:default;opacity:.45}.studio-message{color:#8f8c84;font:750 8px var(--font-geist-mono), monospace}.studio-message.is-error{color:var(--orange)}.share-level{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:6px;margin-top:9px;display:grid}.studio-pads{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin-top:10px;display:grid}.studio-pad{background:var(--studio-pad-color);min-height:70px;color:var(--black);cursor:pointer;touch-action:none;border:0;border-radius:3px;justify-content:space-between;align-items:flex-end;padding:10px;display:flex}.studio-pad span{width:24px;height:24px;font:850 8px var(--font-geist-mono), monospace;border:1px solid;border-radius:50%;place-items:center;display:grid}.studio-pad strong{letter-spacing:-.06em;text-transform:uppercase;font-size:clamp(16px,2vw,26px);font-weight:920}.studio-pad--kick{--studio-pad-color:var(--paper)}.studio-pad--snare{--studio-pad-color:var(--orange)}.studio-pad--hat{--studio-pad-color:var(--acid)}.studio-pad--cymbal{--studio-pad-color:var(--blue)}.library-intro{border-bottom:1px solid #303030;justify-content:space-between;align-items:end;gap:18px;padding-bottom:16px;display:flex}.library-intro p{color:#8f8c84;margin:7px 0 0;font-size:10px}.community-level-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:12px;display:grid}.community-level-grid>button{min-width:0;min-height:112px;color:var(--paper);cursor:pointer;text-align:left;background:#171717;border:1px solid #303030;border-radius:3px;flex-direction:column;align-items:flex-start;padding:13px;display:flex}.community-level-grid>button:hover{border-color:var(--acid);background:#202020}.community-level-grid span,.community-level-grid small{color:#77736c;font:700 7px var(--font-geist-mono), monospace;text-transform:uppercase}.community-level-grid strong{letter-spacing:-.05em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;margin:10px 0 auto;font-size:22px;font-weight:900;overflow:hidden}@media (width<=760px){.community-studio-overlay{padding:0}.community-studio{width:100%;height:100%;box-shadow:none;border:0;border-radius:0}.studio-header{grid-template-columns:minmax(0,1fr) auto}.studio-header nav{grid-area:2/1/auto/-1}.studio-close{grid-area:1/2}.studio-fields{grid-template-columns:1fr 90px}.studio-fields label:first-child{grid-column:1/-1}.studio-transport{grid-template-columns:auto minmax(0,1fr)}.studio-transport small{grid-column:1/-1}.studio-grid{overflow-x:auto}.studio-pads{grid-template-columns:repeat(2,minmax(0,1fr))}.community-level-grid{grid-template-columns:1fr}}@media (width<=1180px){.game-shell{grid-template-columns:minmax(0,620px);padding:0}.game-stage{justify-self:center}.side-panel{display:none}}@media (width<=820px){.rhythm-trainer{grid-template-rows:46px minmax(0,1fr);min-height:460px}.game-stage{grid-template-rows:82px minmax(0,1fr) 102px}.topbar{grid-template-columns:1fr auto}.brand-name,.topbar-instruction{display:none}.listen-button,.restart-button{padding:7px 9px;font-size:7px}.topbar-level-control>span{display:none}.topbar-level-control select{width:78px;padding:6px 20px 6px 7px;font-size:7px}.lesson-hud{grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:10px 12px}.lesson-copy p,.eyebrow-row span+span,.lesson-metrics{display:none}.lesson-copy h1{font-size:clamp(22px,6vw,34px)}.lane-label{padding:4px 5px;font-size:6px;top:9px}.mode-indicator{padding:4px 6px;top:8px}.mode-indicator span{display:none}.falling-note{width:clamp(30px,11vw,52px);height:clamp(22px,7vw,34px)}.falling-note.is-accent{width:clamp(38px,14vw,64px)}.transport-readout{display:none}.scoreboard{gap:5px;left:5px}.scoreboard small{display:none}.scoreboard strong{font-size:7px}.pad-dock{gap:2px;padding-top:2px}.drum-pad{grid-template-rows:auto 1fr;grid-template-columns:1fr;gap:4px;padding:8px 5px 10px}.pad-key{width:21px;height:21px;font-size:7px;position:absolute;top:7px;right:7px}.pad-instrument{align-self:end;width:35px}.drum-pad--hat .pad-instrument{height:22px}.drum-pad--hat .pad-instrument i{height:39px;top:-10px}.pad-copy{text-align:center;justify-self:center}.pad-copy strong{font-size:clamp(13px,4vw,19px)}.pad-copy small{display:none}.start-card{box-shadow:7px 7px 0 var(--orange);padding:22px}.start-card strong{font-size:clamp(38px,15vw,64px)}.start-card>span:last-child{font-size:7px}.difficulty-card{width:calc(100% - 20px);box-shadow:6px 6px 0 var(--gold);padding:14px}.difficulty-card>strong{font-size:clamp(24px,7vw,36px)}.difficulty-options{margin:10px 0 9px}.start-level-picker{margin-top:9px}.difficulty-option{padding:7px}.difficulty-option span,.accuracy-legend{display:none}.hit-progress{gap:2px;inset-inline:4px}.hit-segment.is-bar-end:not(:last-child){margin-right:2px}.hit-zone-label{padding:3px 6px;font-size:6px;top:8px}.hit-point-line>span{font-size:5px}.judgement{bottom:65px}.judgement>span{font-size:clamp(8px,2.8vw,12px)}.result-card{box-shadow:6px 6px 0 var(--acid);padding:16px}.result-card h2{font-size:clamp(30px,10vw,44px)}.result-stats>span{padding:10px}.record-form>div{grid-template-columns:1fr}}@media (height<=610px){.rhythm-trainer{grid-template-rows:42px minmax(0,1fr);min-height:390px}.game-shell{padding-block:4px}.game-stage{grid-template-rows:68px minmax(0,1fr) 86px}.lesson-copy p,.lesson-metrics,.brand-name{display:none}.lesson-copy h1{font-size:25px}.pad-copy small{display:none}.pad-instrument{width:34px}.drum-pad--hat .pad-instrument{height:21px}.difficulty-card>p,.space-hint{display:none}}@media (prefers-reduced-motion:reduce){.start-card,.drum-pad:after,.pad-instrument{transition:none}.metronome-pulse,.manual-impact,.falling-note.is-hit,.falling-note.is-miss,.falling-note.is-hit:after,.falling-note.is-miss:after,.judgement,.judgement>span{animation:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
