.Modal-module__FIIlTa__overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#000000b3;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.Modal-module__FIIlTa__container{background-color:var(--color-bg-modal);border:1px solid var(--color-border);border-radius:12px;flex-direction:column;gap:20px;min-width:300px;max-width:95vw;max-height:90vh;padding:25px;display:flex;position:relative;overflow-y:auto;box-shadow:0 10px 25px #00000080}@media (max-width:768px){.Modal-module__FIIlTa__container{min-width:unset;width:calc(100vw - 24px);max-width:100%;padding:16px}}.Modal-module__FIIlTa__header{color:var(--color-text-primary);font-family:var(--font-family);text-align:center;margin-bottom:15px;font-size:20px;font-weight:700}.Modal-module__FIIlTa__content{flex-direction:column;gap:20px;display:flex}
.SettingsModal-module__0qApGa__content{flex-direction:column;gap:20px;display:flex}.SettingsModal-module__0qApGa__settingItem{flex-direction:column;align-items:center;gap:10px;display:flex}.SettingsModal-module__0qApGa__octaveCtrl{align-items:center;gap:15px;display:flex}.SettingsModal-module__0qApGa__octaveLabel{color:var(--color-text-primary);font-family:var(--font-family);margin:0 15px}.SettingsModal-module__0qApGa__checkboxLabel{color:var(--color-text-primary);font-family:var(--font-family);font-size:var(--font-size-base,14px);cursor:pointer;align-items:center;gap:8px;display:flex}
.sound-choice-module__XT9-Uq__page{background-color:var(--color-bg-dark);font-family:var(--font-family);flex-direction:column;justify-content:center;align-items:center;display:flex}.sound-choice-module__XT9-Uq__container{flex-direction:column;align-items:center;gap:32px;display:flex}.sound-choice-module__XT9-Uq__title{color:var(--color-text-primary);font-family:var(--font-family);margin:0;font-size:24px;font-weight:700}.sound-choice-module__XT9-Uq__subtitle{color:var(--color-text-secondary);font-family:var(--font-family);margin:0;font-size:16px}.sound-choice-module__XT9-Uq__buttons{gap:16px;display:flex}
.Toast-module__LiSyoq__toast{background-color:var(--color-surface);color:var(--color-text-primary);font-family:var(--font-family);z-index:2000;pointer-events:none;white-space:nowrap;border-radius:8px;padding:12px 24px;font-size:14px;font-weight:500;animation:.2s ease-out Toast-module__LiSyoq__toastIn;position:fixed;bottom:32px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0006}@keyframes Toast-module__LiSyoq__toastIn{0%{opacity:0;transform:translate(-50%)translateY(8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}
.ErrorBoundary-module__efF9rW__errorContainer{text-align:center;color:var(--color-accent-red);padding:40px}.ErrorBoundary-module__efF9rW__errorContainer h2,.ErrorBoundary-module__efF9rW__errorContainer p{font-family:var(--font-family,sans-serif)}.ErrorBoundary-module__efF9rW__retryButton{background-color:var(--color-accent-red);color:#fff;cursor:pointer;font-size:14px;font-weight:700;font-family:var(--font-family,sans-serif);border:none;border-radius:4px;margin-top:16px;padding:8px 20px;transition:background-color .2s}.ErrorBoundary-module__efF9rW__retryButton:hover{background-color:var(--color-accent-red-hover)}
.Piano-module__MAd_DW__container{background-color:var(--color-bg-dark);flex-direction:column;justify-content:center;align-items:center;padding:0 20px;display:flex;overflow-x:auto}@media (max-width:768px){.Piano-module__MAd_DW__container{padding:0 8px}}@media (max-width:480px){.Piano-module__MAd_DW__container{padding:0 4px}}.Piano-module__MAd_DW__mobileOnly,.Piano-module__MAd_DW__desktopOnly{display:contents}@media (max-width:768px){.Piano-module__MAd_DW__desktopOnly{display:none}}@media (min-width:769px){.Piano-module__MAd_DW__mobileOnly{display:none}}.Piano-module__MAd_DW__audioError{background-color:var(--color-accent-red);color:var(--color-text-primary);font-family:var(--font-family);border-radius:6px;align-items:center;gap:10px;margin-bottom:12px;padding:10px 16px;font-size:14px;font-weight:700;display:flex}.Piano-module__MAd_DW__audioLoading{justify-content:center;align-items:center;margin-bottom:12px;display:flex}.Piano-module__MAd_DW__spinner{border:3px solid var(--color-surface);border-top-color:var(--color-text-secondary);border-radius:50%;width:20px;height:20px;animation:.6s linear infinite Piano-module__MAd_DW__spin}@keyframes Piano-module__MAd_DW__spin{to{transform:rotate(360deg)}}
.keyBase-module__6xkjHW__baseWhite{width:var(--white-key-width,var(--key-white-default-width));border:1px solid var(--key-white-border);z-index:1;border-radius:0 0 5px 5px;justify-content:center;align-items:flex-end;display:flex}.keyBase-module__6xkjHW__baseBlack{width:calc(var(--white-key-width,var(--key-white-default-width)) * var(--key-black-width-ratio));margin-left:calc(var(--white-key-width,var(--key-white-default-width)) * (var(--key-black-width-ratio) / -2));margin-right:calc(var(--white-key-width,var(--key-white-default-width)) * (var(--key-black-width-ratio) / -2));z-index:2;border-radius:0 0 3px 3px;justify-content:center;align-items:flex-end;display:flex}.keyBase-module__6xkjHW__baseLabel{color:var(--key-label);pointer-events:none}.keyBase-module__6xkjHW__baseKeyInteractive{cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}
.PianoKeyboard-module__lyIroq__keyboard{background-color:var(--color-bg-darker);touch-action:none;border-radius:10px;padding:20px;display:flex;position:relative;box-shadow:0 10px 30px #00000080}@media (max-width:768px){.PianoKeyboard-module__lyIroq__keyboard{border-radius:6px;padding:10px}}.PianoKeyboard-module__lyIroq__selectKey{font:inherit;color:inherit;text-align:inherit;background:0 0;border:none;padding:0;transition:background-color .15s;}.PianoKeyboard-module__lyIroq__white{height:var(--key-select-white-height);background-color:var(--key-white-pressed);padding-bottom:6px;}.PianoKeyboard-module__lyIroq__white:hover{background-color:var(--color-text-dark)}.PianoKeyboard-module__lyIroq__white.PianoKeyboard-module__lyIroq__selected{background-color:var(--color-accent-primary);border-color:var(--color-accent-primary-dark)}.PianoKeyboard-module__lyIroq__black{height:var(--key-select-black-height);background-color:var(--key-black);padding-bottom:6px;}.PianoKeyboard-module__lyIroq__black:hover{background-color:var(--key-black-active)}.PianoKeyboard-module__lyIroq__black.PianoKeyboard-module__lyIroq__selected:after{content:"";background-color:var(--color-accent-primary);pointer-events:none;border-radius:0 0 3px 3px;position:absolute;inset:3px}.PianoKeyboard-module__lyIroq__label{font-size:10px;}.PianoKeyboard-module__lyIroq__white.PianoKeyboard-module__lyIroq__selected .PianoKeyboard-module__lyIroq__label{color:var(--color-text-primary)}
.PianoKey-module__U99Uua__key{font:inherit;color:inherit;text-align:inherit;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background:0 0;border:none;padding:0;}.PianoKey-module__U99Uua__white{height:var(--key-white-height);background-color:var(--key-white);padding-bottom:10px;transition:background-color .1s;}.PianoKey-module__U99Uua__black{height:var(--key-black-height);background-color:var(--key-black);padding-bottom:10px;transition:background-color .1s;}.PianoKey-module__U99Uua__white.PianoKey-module__U99Uua__active{background-color:var(--key-white-active);border-color:var(--key-white-active-border)}.PianoKey-module__U99Uua__black.PianoKey-module__U99Uua__active{background-color:var(--key-black-active)}.PianoKey-module__U99Uua__white.PianoKey-module__U99Uua__pressed{background-color:var(--key-white-pressed);box-shadow:inset 0 0 10px #0003}.PianoKey-module__U99Uua__black.PianoKey-module__U99Uua__pressed{background-color:var(--key-black-pressed);box-shadow:inset 0 0 10px #00000080}.PianoKey-module__U99Uua__note{font-size:12px;}.PianoKey-module__U99Uua__black .PianoKey-module__U99Uua__note{color:var(--color-text-primary)}
.PianoControls-module__p4Ic9G__controls{color:var(--color-text-primary);font-family:var(--font-family);align-items:center;gap:30px;margin-bottom:20px;display:flex}.PianoControls-module__p4Ic9G__labelCtrl{align-items:center;gap:15px;display:flex}.PianoControls-module__p4Ic9G__countdown{background-color:var(--color-accent-primary);height:40px;color:var(--color-text-primary);font-family:var(--font-family);font-variant-numeric:tabular-nums;letter-spacing:.05em;border-radius:5px;align-items:center;padding:0 15px;font-size:14px;font-weight:700;display:inline-flex}
.IntervalsSelector-module___CGAFG__content{flex-direction:column;gap:20px;display:flex}.IntervalsSelector-module___CGAFG__grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}@media (min-width:769px){.IntervalsSelector-module___CGAFG__grid{grid-template-columns:repeat(6,1fr)}}.IntervalsSelector-module___CGAFG__gridNames{grid-template-columns:repeat(3,1fr)}@media (min-width:769px){.IntervalsSelector-module___CGAFG__gridNames{grid-template-columns:repeat(4,1fr)}}.IntervalsSelector-module___CGAFG__tabControl,.IntervalsSelector-module___CGAFG__displayModeControl{background-color:var(--color-bg-darker);border-radius:8px;gap:4px;padding:4px;display:flex}.IntervalsSelector-module___CGAFG__directionToggles,.IntervalsSelector-module___CGAFG__playbackToggles{gap:10px;display:flex}.IntervalsSelector-module___CGAFG__firstNoteRow{justify-content:space-between;align-items:center;display:flex}.IntervalsSelector-module___CGAFG__checkBoxLabel{color:var(--color-text-muted);font-family:var(--font-family);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:14px;display:flex}.IntervalsSelector-module___CGAFG__checkBox{cursor:pointer;width:18px;height:18px;accent-color:var(--color-accent-primary)}.IntervalsSelector-module___CGAFG__goCancelRow{flex-direction:column;gap:10px;display:flex}.IntervalsSelector-module___CGAFG__durationRow{align-items:center;gap:6px;display:flex}.IntervalsSelector-module___CGAFG__durationLabel{font-family:var(--font-family);color:var(--color-text-muted);font-size:13px}.IntervalsSelector-module___CGAFG__durationInput{border:1px solid var(--color-surface);background-color:var(--color-bg-darker);width:52px;height:30px;color:var(--color-text-primary);font-family:var(--font-family);text-align:center;border-radius:5px;padding:0 4px;font-size:13px;font-weight:700}.IntervalsSelector-module___CGAFG__durationUnit{font-family:var(--font-family);color:var(--color-text-muted);font-size:13px}.IntervalsSelector-module___CGAFG__savedList{flex-direction:column;gap:8px;min-height:80px;display:flex}.IntervalsSelector-module___CGAFG__mobileOnly{display:flex}.IntervalsSelector-module___CGAFG__desktopOnly{display:none}@media (min-width:769px){.IntervalsSelector-module___CGAFG__mobileOnly{display:none}.IntervalsSelector-module___CGAFG__desktopOnly{display:flex}}.IntervalsSelector-module___CGAFG__savedEmpty{color:var(--color-text-muted);font-family:var(--font-family);text-align:center;margin:0;padding:20px 0;font-size:14px}.IntervalsSelector-module___CGAFG__savedRow{align-items:center;gap:8px;display:flex}.IntervalsSelector-module___CGAFG__saveBtnSpinner{border:2px solid var(--color-surface);border-top-color:var(--color-text-secondary);border-radius:50%;width:13px;height:13px;animation:.6s linear infinite IntervalsSelector-module___CGAFG__spin}@keyframes IntervalsSelector-module___CGAFG__spin{to{transform:rotate(360deg)}}.IntervalsSelector-module___CGAFG__noteSelectorOverlay{z-index:1100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#00000080;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;bottom:0;left:0}.IntervalsSelector-module___CGAFG__noteSelectorPanel{flex-direction:column;align-items:center;gap:12px;display:flex}.IntervalsSelector-module___CGAFG__noteSelectorHeader{color:var(--color-text-primary);font-family:var(--font-family);text-shadow:0 1px 4px #000c;font-size:16px}.IntervalsSelector-module___CGAFG__modeControl{background-color:var(--color-bg-darker);border-radius:8px;gap:4px;width:100%;padding:4px;display:flex}
.ChallengeSummaryModal-module__zDyBCG__tableWrapper{max-height:60vh;overflow:auto}.ChallengeSummaryModal-module__zDyBCG__table{border-collapse:collapse;width:100%;font-family:var(--font-family);color:var(--color-text-primary);font-size:13px}.ChallengeSummaryModal-module__zDyBCG__table th{text-align:left;color:var(--color-text-muted);border-bottom:1px solid var(--color-surface);white-space:nowrap;background-color:var(--color-bg-modal);padding:8px 12px;font-weight:700;position:sticky;top:0}.ChallengeSummaryModal-module__zDyBCG__table td{border-bottom:1px solid var(--color-surface);white-space:nowrap;text-align:left;padding:8px 12px}.ChallengeSummaryModal-module__zDyBCG__table tr:last-child td{border-bottom:none}.ChallengeSummaryModal-module__zDyBCG__table tr:hover td{background-color:var(--color-surface)}.ChallengeSummaryModal-module__zDyBCG__footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding-top:4px;display:flex}.ChallengeSummaryModal-module__zDyBCG__footerLeft{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.ChallengeSummaryModal-module__zDyBCG__totalScore{font-family:var(--font-family);color:var(--color-text-primary);font-size:15px}.ChallengeSummaryModal-module__zDyBCG__pastList{flex-direction:column;gap:4px;min-height:60px;max-height:50vh;display:flex;overflow-y:auto}.ChallengeSummaryModal-module__zDyBCG__pastHeader{border-bottom:1px solid var(--color-surface);font-family:var(--font-family);color:var(--color-text-muted);grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:4px 4px 6px;font-size:12px;font-weight:700;display:grid}.ChallengeSummaryModal-module__zDyBCG__pastRow{border-bottom:1px solid var(--color-surface);font-family:var(--font-family);grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:8px 4px;font-size:13px;display:grid}.ChallengeSummaryModal-module__zDyBCG__pastRow:last-child{border-bottom:none}.ChallengeSummaryModal-module__zDyBCG__pastDate{color:var(--color-text-secondary)}.ChallengeSummaryModal-module__zDyBCG__pastScore{color:var(--color-text-primary);font-weight:700}.ChallengeSummaryModal-module__zDyBCG__empty{color:var(--color-text-muted);font-family:var(--font-family);text-align:center;margin:0;padding:20px 0;font-size:14px}@media (max-width:480px){.ChallengeSummaryModal-module__zDyBCG__hideOnMobile{display:none}}.ChallengeSummaryModal-module__zDyBCG__signInForm{border-top:1px solid var(--color-surface);flex-direction:column;gap:8px;padding-top:8px;display:flex}.ChallengeSummaryModal-module__zDyBCG__signInInput{border:1px solid var(--color-surface);background-color:var(--color-bg-darker);height:34px;color:var(--color-text-primary);font-family:var(--font-family);border-radius:5px;padding:0 10px;font-size:13px}.ChallengeSummaryModal-module__zDyBCG__signInInput::placeholder{color:var(--color-text-muted)}.ChallengeSummaryModal-module__zDyBCG__signInError{font-family:var(--font-family);color:var(--color-text-secondary);margin:0;font-size:12px}
.PianoStatus-module__Uzx7tW__statusContainer{flex-direction:column;align-items:center;margin-top:30px;display:flex}.PianoStatus-module__Uzx7tW__pressedKey{font-family:var(--font-family);color:var(--color-text-primary);align-items:center;gap:12px;font-weight:700;display:flex}.PianoStatus-module__Uzx7tW__practiceInfo{font-family:var(--font-family);align-items:center;gap:12px;margin-bottom:8px;display:flex}.PianoStatus-module__Uzx7tW__practiceIntervalName{color:var(--color-text-primary);font-size:24px;font-weight:700}
.IntervalGrid-module__y0Bpda__label{text-align:center;color:var(--color-text-primary);font-family:var(--font-family);font-size:var(--font-size-base,14px);margin:0}.IntervalGrid-module__y0Bpda__grid{grid-template-columns:repeat(3,1fr);gap:8px;width:100%;max-width:480px;margin:12px auto 0;display:grid}.IntervalGrid-module__y0Bpda__button{min-height:56px}.IntervalGrid-module__y0Bpda__allButton{width:100%;max-width:480px;margin:8px auto 0;display:block}.IntervalGrid-module__y0Bpda__playbackRow{align-items:center;gap:8px;width:100%;max-width:480px;margin:8px auto 0;display:flex}.IntervalGrid-module__y0Bpda__playbackLabel{color:var(--color-text-primary);font-family:var(--font-family);font-size:var(--font-size-base,14px);white-space:nowrap}.IntervalGrid-module__y0Bpda__actionRow{gap:8px;width:100%;max-width:480px;margin:8px auto 0;display:flex}.IntervalGrid-module__y0Bpda__actionButton{flex:1}
