.theory-page .caption{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-subtle);font-size:11px;font-weight:500}.theory-tabs{border-bottom:1px solid var(--line);background:var(--bg-sunken);gap:4px;padding:14px 32px;display:flex;overflow-x:auto}.theory-tabs a{color:var(--ink-muted);white-space:nowrap;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:500;transition:background .2s,color .2s}.theory-tabs a:hover{color:var(--foreground)}.theory-tabs a.active{background:var(--bg-elevated);color:var(--ink)}.theory-page .theory-hero{border-bottom:1px solid var(--line);padding:72px 32px 48px;position:relative;overflow:hidden}.theory-page .theory-hero:before{content:"𝄞";font-family:var(--font-display);color:var(--ink);opacity:.04;pointer-events:none;font-size:560px;font-style:italic;line-height:1;position:absolute;top:-80px;right:-40px}.theory-page .theory-hero-inner{max-width:1100px;margin:0 auto;position:relative}.theory-page .section-marker{font-family:var(--font-mono);color:var(--ink-subtle);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:12px;margin-bottom:14px;font-size:11px;display:flex}.theory-page .section-marker .rule{background:var(--line);flex:1;height:1px}.theory-page .theory-hero h1{font-family:var(--font-sans);letter-spacing:-.035em;max-width:16ch;margin:0;font-size:clamp(38px,6vw,72px);font-weight:400;line-height:.98}.theory-page .theory-hero h1 em{font-family:var(--font-display);color:var(--accent);font-style:italic;font-weight:400}.theory-page .theory-hero p.lede{color:var(--ink-muted);max-width:54ch;margin:24px 0 0;font-size:clamp(15px,1.4vw,17px);line-height:1.6}.theory-page .modules-section{padding:48px 32px 80px}.theory-page .modules-inner{max-width:1100px;margin:0 auto}.theory-page .modules-grid{grid-template-columns:repeat(2,1fr);gap:18px;display:grid}.theory-page .module-card{background:var(--bg-elevated);border:1px solid var(--line);color:var(--ink);border-radius:16px;flex-direction:column;gap:16px;min-height:280px;padding:28px;text-decoration:none;transition:border-color .2s,background .2s;display:flex;position:relative;overflow:hidden}.theory-page a.module-card:hover{border-color:var(--line-strong);background:var(--bg-elevated-2)}.theory-page .module-card.soon{opacity:.65;background:0 0;border-style:dashed}.theory-page .module-card .numeral{font-family:var(--font-display);color:var(--accent);font-size:80px;font-style:italic;line-height:.9;position:absolute;top:20px;right:28px}.theory-page .module-card.soon .numeral{color:var(--ink-faint)}.theory-page .module-card-head{flex-direction:column;gap:6px;padding-right:100px;display:flex}.theory-page .module-card h2{font-family:var(--font-sans);letter-spacing:-.02em;margin:0;font-size:32px;font-weight:500;line-height:1.05}.theory-page .module-card p{color:var(--ink-muted);max-width:46ch;margin:8px 0 0;font-size:14px;line-height:1.55}.theory-page .preview-staff{background:var(--bg-sunken);border-radius:8px;height:80px;margin-top:4px;padding:18px 16px;position:relative;overflow:hidden}.theory-page .preview-staff-lines{background-image:repeating-linear-gradient(to bottom, transparent 0, transparent 8px, color-mix(in oklab, var(--ink) 22%, transparent) 8px, color-mix(in oklab, var(--ink) 22%, transparent) 9px);height:40px;position:absolute;top:28px;left:16px;right:16px}.theory-page .preview-staff-clef{font-family:var(--font-display);color:var(--ink);font-size:56px;font-style:italic;line-height:1;position:absolute;top:8px;left:16px}.theory-page .module-card-foot{border-top:1px dashed var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:12px;display:flex}.theory-page .tag{border:1px solid var(--line);font-family:var(--font-mono);color:var(--ink-subtle);background:#ffffff0a;border-radius:999px;padding:3px 9px;font-size:11px}.theory-page .open-cta{color:var(--accent);font-size:13px;font-weight:500}.theory-page .chord-page{padding:48px 32px 80px}.theory-page .chord-inner{max-width:1100px;margin:0 auto}.theory-page .chord-header{margin-bottom:32px}.theory-page .chord-header h1{font-family:var(--font-sans);letter-spacing:-.025em;margin:8px 0 0;font-size:clamp(32px,4.5vw,52px);font-weight:400;line-height:1.05}.theory-page .chord-header h1 em{font-family:var(--font-display);color:var(--accent);font-style:italic;font-weight:400}.theory-page .chord-header p{color:var(--ink-muted);max-width:56ch;margin:14px 0 0;font-size:15px;line-height:1.6}.theory-page .chord-search{max-width:520px;margin-top:22px;position:relative}.theory-page .chord-search input{border:1px solid var(--line-input);background:var(--bg-elevated);width:100%;height:44px;color:var(--ink);font-size:14px;font-family:var(--font-sans);border-radius:12px;outline:none;padding:0 36px 0 38px;transition:border-color .2s}.theory-page .chord-search input::placeholder{color:var(--ink-subtle)}.theory-page .chord-search input:focus{border-color:var(--accent)}.theory-page .chord-search .search-icon{width:16px;height:16px;color:var(--ink-subtle);pointer-events:none;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.theory-page .chord-search .search-clear{background:var(--bg-sunken);width:24px;height:24px;color:var(--ink-muted);cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;transition:color .2s;display:inline-flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.theory-page .chord-search .search-clear:hover{color:var(--ink)}.theory-page .chord-search-results{z-index:20;background:var(--bg-elevated);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:2px;max-height:320px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 12px 32px -10px #0000008c}.theory-page .chord-search-result{text-align:left;cursor:pointer;font-family:var(--font-sans);color:var(--ink);background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;transition:background .15s;display:flex}.theory-page .chord-search-result:hover,.theory-page .chord-search-result:focus-visible{background:var(--bg-elevated-2)}.theory-page .chord-search-result .result-label{font-size:14px;font-weight:500}.theory-page .chord-search-result .result-sub{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-subtle);font-size:11px}.theory-page .chord-search .search-empty{color:var(--ink-subtle);padding:12px;font-size:13px;line-height:1.5}.theory-page .constructor{background:var(--bg-elevated);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:22px;margin-bottom:32px;padding:28px;display:flex}.theory-page .step{flex-direction:column;gap:10px;display:flex}.theory-page .chip-row{flex-wrap:wrap;gap:6px;display:flex}.theory-page .chip{border:1px solid var(--line);color:var(--ink-muted);font-family:var(--font-sans);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;gap:6px;min-width:56px;padding:8px 14px;font-size:13px;font-weight:500;transition:border-color .2s,background .2s,color .2s;display:inline-flex}.theory-page .chip:hover{color:var(--ink)}.theory-page .chip.active{border-color:var(--accent-amber-line,#f2ba534d);background:var(--accent-amber-soft,#f2ba5324);color:var(--accent)}@supports (color:lab(0% 0 0)){.theory-page .chip.active{border-color:var(--accent-amber-line,lab(79.1911% 13.3651 58.6741/.3));background:var(--accent-amber-soft,lab(79.1911% 13.3651 58.6741/.14))}}.theory-page .chip:disabled{opacity:.4;cursor:not-allowed}.theory-page .chip .glyph{font-family:var(--font-display);font-size:18px;font-style:italic;line-height:1}.theory-page .seg{border:1px solid var(--line);background:var(--bg-sunken);border-radius:12px;gap:2px;width:fit-content;padding:4px;display:inline-flex}.theory-page .seg button{color:var(--ink-muted);font-family:var(--font-sans);cursor:pointer;background:0 0;border:0;border-radius:8px;min-width:80px;padding:8px 18px;font-size:13px;font-weight:500}.theory-page .seg button.active{background:var(--bg-elevated-2);color:var(--ink)}.theory-page .mode-toggles{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-top:18px;display:flex}.theory-page .toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.theory-page .toggle input{width:16px;height:16px;accent-color:var(--accent)}.theory-page .mode-switch{border:1px solid var(--line);background:var(--bg-sunken);border-radius:12px;gap:2px;padding:4px;display:inline-flex}.theory-page .mode-switch button{color:var(--ink-muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:6px 14px;font-size:12px;font-weight:500}.theory-page .mode-switch button.active{background:var(--bg-elevated-2);color:var(--ink)}.theory-page .result-row{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:16px;display:flex}.theory-page .result-row h2{font-family:var(--font-sans);letter-spacing:-.015em;margin:4px 0 0;font-size:clamp(20px,2.4vw,24px);font-weight:500}.theory-page .play-all{background:var(--accent);height:38px;color:var(--accent-foreground);cursor:pointer;border:0;border-radius:10px;align-items:center;gap:8px;padding:0 16px;font-size:13px;font-weight:500;display:inline-flex}.theory-page .play-all:disabled{opacity:.55;cursor:not-allowed}.theory-page .form-players{flex-wrap:wrap;gap:8px;margin-bottom:24px;display:flex}.theory-page .form-player{border:1px solid var(--line);background:var(--bg-elevated);color:var(--ink-muted);font-family:var(--font-mono);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:7px 12px 7px 8px;font-size:12px;transition:border-color .2s,color .2s;display:inline-flex}.theory-page .form-player:hover{border-color:var(--line-strong);color:var(--ink)}.theory-page .form-player .play-dot{background:var(--bg-elevated-2);border:1px solid var(--line);width:24px;height:24px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;font-size:9px;display:inline-flex}.theory-page .tip-grid{grid-template-columns:1.4fr 1fr;gap:18px;display:grid}.theory-page .tip-card{background:var(--bg-elevated);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:10px;padding:22px;display:flex}.theory-page .tip-card h3{letter-spacing:-.005em;margin:0;font-size:15px;font-weight:500}.theory-page .tip-card p{color:var(--ink-muted);margin:0;font-size:13px;line-height:1.55}.theory-page .tip-card .divider-note{color:var(--ink);border-top:1px dashed var(--line);padding-top:8px}.theory-page .tip-card a{color:var(--accent);font-size:13px;font-weight:500}.theory-page .quiz-options{flex-wrap:wrap;gap:8px;margin-bottom:24px;display:flex}.theory-page .quiz-option{border:1px solid var(--line-input);background:var(--bg-elevated);color:var(--ink);cursor:pointer;border-radius:10px;padding:10px 16px;font-size:13px;font-weight:500;transition:border-color .2s,background .2s}.theory-page .quiz-option:hover:not(:disabled){border-color:var(--line-strong)}.theory-page .quiz-option:disabled{cursor:default}.theory-page .quiz-option[data-result=correct]{border-color:var(--ok);background:var(--ok-soft);color:var(--ok)}.theory-page .quiz-option[data-result=wrong]{border-color:var(--bad);background:var(--bad-soft);color:var(--bad)}.theory-page .quiz-streak-banner{border-radius:12px;align-items:center;gap:10px;padding:12px 16px;font-size:13px;line-height:1.5;display:flex}.theory-page .quiz-streak-banner.anon{background:var(--accent-amber-soft,#f2ba5324);border:1px solid var(--accent-amber-line,#f2ba534d);color:var(--ink)}@supports (color:lab(0% 0 0)){.theory-page .quiz-streak-banner.anon{background:var(--accent-amber-soft,lab(79.1911% 13.3651 58.6741/.14));border:1px solid var(--accent-amber-line,lab(79.1911% 13.3651 58.6741/.3))}}.theory-page .quiz-streak-banner.anon a{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.theory-page .quiz-streak-banner.saved{color:var(--ink);background:#72b8751a;background:lab(69.0092% -33.5937 27.2/.1);border:1px solid #72b87540;border:1px solid lab(69.0092% -33.5937 27.2/.25)}.theory-page .quiz-streak-banner>span:first-child{flex-shrink:0;font-size:16px;line-height:1}.theory-page .quiz-feedback{flex-wrap:wrap;align-items:center;gap:16px;margin-top:6px;display:flex}.theory-page .quiz-score{font-family:var(--font-mono);color:var(--ink-subtle);font-size:12px}.theory-page .chord-inner.wide{max-width:1440px}.theory-page .chord-layout{grid-template-columns:400px 1fr;align-items:start;gap:28px;min-width:0;display:grid}.theory-page .chord-filters{background:var(--bg-elevated);border:1px solid var(--line);border-radius:18px;flex-direction:column;gap:18px;padding:22px;display:flex;position:sticky;top:80px}.theory-page .chord-tile-grid{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.theory-page .chord-tile{border:1px solid var(--line);background:var(--bg-sunken);color:var(--ink);cursor:pointer;text-align:left;font-family:var(--font-sans);border-radius:10px;flex-direction:column;align-items:flex-start;gap:2px;min-height:50px;padding:8px 12px;transition:border-color .2s,background .2s;display:flex}.theory-page .chord-tile:hover{border-color:var(--line-strong)}.theory-page .chord-tile.active{border-color:var(--accent-amber-line,#f2ba5373);background:var(--accent-amber-soft,#f2ba5324)}@supports (color:lab(0% 0 0)){.theory-page .chord-tile.active{border-color:var(--accent-amber-line,lab(79.1911% 13.3651 58.6741/.45));background:var(--accent-amber-soft,lab(79.1911% 13.3651 58.6741/.14))}}.theory-page .chord-tile .figure{font-family:var(--font-mono);color:var(--ink);font-size:13px;font-weight:600;line-height:1.1}.theory-page .chord-tile.active .figure{color:var(--accent)}.theory-page .chord-tile .sub{color:var(--ink-subtle);font-size:10.5px;line-height:1.2}.theory-page .mobile-filters-toggle{display:none}.theory-page .chord-result{background:var(--bg-elevated);border:1px solid var(--line);border-radius:18px;flex-direction:column;gap:18px;min-width:0;padding:26px;display:flex}.theory-page .filter-step{flex-direction:column;gap:8px;display:flex}.theory-page .filter-switch{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding-top:4px;font-size:13px;display:inline-flex}.theory-page .filter-switch input{opacity:0;pointer-events:none;position:absolute}.theory-page .filter-switch .switch-track{background:var(--bg-sunken);border:1px solid var(--line-input);border-radius:999px;flex-shrink:0;width:36px;height:20px;transition:background .2s,border-color .2s;position:relative}.theory-page .filter-switch .switch-thumb{background:var(--ink-muted);border-radius:50%;width:14px;height:14px;transition:transform .2s,background .2s;position:absolute;top:2px;left:2px}.theory-page .filter-switch input:checked+.switch-track{background:var(--accent);border-color:var(--accent)}.theory-page .filter-switch input:checked+.switch-track .switch-thumb{background:var(--accent-foreground);transform:translate(16px)}.theory-page .clef-row{border-top:1px solid var(--line);flex-direction:column;gap:8px;padding-top:14px;display:flex}.theory-page .result-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.theory-page .result-head h2{font-family:var(--font-sans);letter-spacing:-.015em;margin:4px 0 0;font-size:clamp(20px,2.2vw,26px);font-weight:500}.theory-page .chord-staff-wrap{background:var(--bg-sunken);border:1px solid var(--line);-ms-overflow-style:none;scrollbar-width:none;border-radius:14px;width:100%;min-width:0;max-width:100%;padding:8px;overflow-x:auto}.theory-page .chord-staff-wrap::-webkit-scrollbar{display:none}.theory-page .octave-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.theory-page .octave-row .caption{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-subtle);font-size:11px;font-weight:500}.theory-page .octave-row .oct-btn{border:1px solid var(--line-input);height:32px;color:var(--ink);cursor:pointer;background:0 0;border-radius:8px;padding:0 12px;font-size:12px;font-weight:500;transition:border-color .2s,color .2s}.theory-page .octave-row .oct-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.theory-page .octave-row .oct-btn:disabled{opacity:.4;cursor:not-allowed}.theory-page .octave-row .oct-value{font-family:var(--font-mono);color:var(--ink-muted);text-align:center;min-width:70px;font-size:12px}.theory-page .form-tabs{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.theory-page .form-tab{border:1px solid var(--line);background:var(--bg-elevated-2);color:var(--ink);cursor:pointer;font-family:var(--font-sans);text-align:left;border-radius:12px;align-items:center;gap:10px;padding:10px 14px 10px 10px;transition:border-color .2s,background .2s;display:inline-flex}.theory-page .form-tab:hover{border-color:var(--line-strong)}.theory-page .form-tab.active{border-color:var(--accent-amber-line,#f2ba5380);background:var(--accent-amber-soft,#f2ba5324)}@supports (color:lab(0% 0 0)){.theory-page .form-tab.active{border-color:var(--accent-amber-line,lab(79.1911% 13.3651 58.6741/.5));background:var(--accent-amber-soft,lab(79.1911% 13.3651 58.6741/.14))}}.theory-page .form-tab .play-dot{background:var(--bg-elevated);border:1px solid var(--line);width:26px;height:26px;color:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:9px;display:inline-flex}.theory-page .form-tab.active .play-dot{background:var(--accent);border-color:var(--accent);color:var(--accent-foreground)}.theory-page .form-tab-text{flex-direction:column;gap:1px;min-width:0;display:flex}.theory-page .form-tab-text .figure{font-family:var(--font-mono);color:var(--ink);font-size:13px;font-weight:600}.theory-page .form-tab-text .sub{color:var(--ink-subtle);font-size:11px}.theory-page .result-bottom{grid-template-columns:1.4fr 1fr;gap:16px;display:grid}.theory-page .result-bottom .tip-card,.theory-page .result-bottom .keyboard-card{background:var(--bg-sunken);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:10px;padding:18px;display:flex}.theory-page .result-bottom .tip-card h3{letter-spacing:-.005em;color:var(--accent);margin:0;font-size:15px;font-weight:500}.theory-page .result-bottom .tip-card p{color:var(--ink-muted);margin:0;font-size:13px;line-height:1.55}.theory-page .keyboard-card svg{width:100%;height:auto}.theory-page .keyboard-card{-ms-overflow-style:none;scrollbar-width:none;overflow-x:auto}.theory-page .keyboard-card::-webkit-scrollbar{display:none}.theory-page .keyboard-notes{color:var(--ink-subtle);font-size:12px;font-family:var(--font-mono)}.theory-page .keyboard-notes b{color:var(--ink);font-weight:500}.theory-page .chord-empty{text-align:center;color:var(--ink-subtle);padding:80px 20px;font-size:13px}@media (max-width:900px){.theory-tabs{padding:12px 18px}.theory-page .theory-hero{padding:32px 18px 28px}.theory-page .modules-section,.theory-page .chord-page{padding:28px 18px 48px}.theory-page .modules-grid{grid-template-columns:1fr;gap:14px}.theory-page .module-card{min-height:auto;padding:20px}.theory-page .module-card .numeral{font-size:56px;top:14px;right:18px}.theory-page .module-card h2{font-size:26px}.theory-page .module-card-head{padding-right:60px}.theory-page .constructor{gap:18px;padding:18px}.theory-page .tip-grid{grid-template-columns:1fr}.theory-page .chord-layout{flex-direction:column;gap:14px;display:flex}.theory-page .chord-result{order:1;gap:14px;width:100%;max-width:100%;padding:16px;overflow-x:hidden}.theory-page .chord-page{overflow-x:clip}.theory-page .chord-staff-wrap{padding:4px}.theory-page .mobile-filters-toggle{border:1px solid var(--line);background:var(--bg-elevated);color:var(--ink);cursor:pointer;font-family:var(--font-sans);text-align:left;border-radius:14px;order:2;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.theory-page .mobile-filters-toggle .summary{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.theory-page .mobile-filters-toggle .summary .cap{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-subtle);font-size:10px;font-weight:500}.theory-page .mobile-filters-toggle .summary .sel{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.theory-page .mobile-filters-toggle .chev{color:var(--accent);flex-shrink:0;font-size:12px}.theory-page .chord-filters{order:3;gap:14px;padding:18px;position:static}.theory-page .chord-filters[data-mobile-open=false]{display:none}.theory-page .result-bottom{grid-template-columns:1fr}.theory-page .form-tabs{grid-template-columns:repeat(2,1fr);gap:8px}.theory-page .form-tab{gap:8px;padding:8px 10px 8px 8px}.theory-page .form-tab .play-dot{width:22px;height:22px;font-size:8px}.theory-page .form-tab-text .figure{font-size:12px}.theory-page .form-tab-text .sub{font-size:10px}.theory-page .chord-tile-grid{grid-template-columns:repeat(2,1fr);gap:5px}.theory-page .chord-tile{min-height:44px;padding:7px 10px}.theory-page .chord-tile .sub{font-size:10px}.theory-page .chip{min-width:0;padding:6px 11px;font-size:12px}}
