:root{--bg-color: #f8f9fa;--card-bg: #ffffff;--card-border: #000000;--text-primary: #111827;--text-secondary: #4b5563;--accent-color: #3b82f6;--accent-hover: #2563eb;--success-color: #10b981;--error-color: #ef4444;--highlight-color: #f59e0b;--font-family: "Outfit", sans-serif;--shadow-color: rgba(0, 0, 0, .05)}[data-theme=dark]{--bg-color: #0f1115;--card-bg: #1a1d24;--card-border: transparent;--text-primary: #ffffff;--text-secondary: #8b9bb4;--shadow-color: rgba(0, 0, 0, .3)}body{margin:0;font-family:var(--font-family);background-color:var(--bg-color);color:var(--text-primary);display:flex;justify-content:center;align-items:center;min-height:100vh;padding-top:60px}#app{width:100%;max-width:1400px;padding:1rem;box-sizing:border-box}.app-layout{display:flex;flex-direction:column;gap:2rem;align-items:center;width:100%}.sidebar-left,.sidebar-right{display:flex;flex-direction:column;gap:1rem;height:100%;transition:all .5s ease}.scoring-panel{display:flex;flex-direction:column;gap:.75rem;width:100%;animation:fadeIn .3s ease-out}.score-card{background:var(--card-bg);border:1px solid var(--text-secondary);border-radius:12px;padding:1rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;box-shadow:0 2px 4px var(--shadow-color)}.score-card .label{font-size:.8rem;text-transform:uppercase;color:var(--text-secondary);letter-spacing:.05em;font-weight:500}.score-card .value{font-size:1.5rem;font-weight:700;color:var(--text-primary)}.results-panel{display:flex;flex-direction:column;gap:1rem;width:100%;animation:fadeIn .3s ease-out}.result-card{background:var(--card-bg-highlight);border-color:var(--primary-color);padding:1.5rem}.result-card .value{color:var(--primary-color);font-size:2rem}#close-results-btn{width:100%;margin-top:.5rem}.focus-mode .sidebar-left,.focus-mode .header{filter:blur(5px);opacity:.3;pointer-events:none}.scoring-panel.hidden-scores{display:none}.header{transition:all .5s ease}.main-content{display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding-top:2rem}.action-area{display:flex;justify-content:center;width:100%}.container{display:flex;flex-direction:column;gap:2rem;align-items:center;width:100%}.header{position:fixed;top:0;left:0;width:100%;background-color:var(--bg-color);padding:.75rem 0;border-bottom:1px solid var(--card-border, rgba(0, 0, 0, .08));z-index:1000;display:flex;justify-content:center;box-shadow:0 2px 10px #0000000d}.header-top{display:flex;align-items:center;justify-content:center;gap:1rem}.header h1{font-family:Outfit,sans-serif;font-weight:700;font-size:1.8rem;margin:0;letter-spacing:-.05em;color:var(--text-primary);text-shadow:0 2px 10px rgba(0,0,0,.1)}[data-theme=dark] h1{background:linear-gradient(135deg,#fff,#a5b4fc);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.icon-btn{background:none;border:none;color:var(--text-primary);cursor:pointer;padding:.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.icon-btn:hover{background-color:#0000000d}[data-theme=dark] .icon-btn:hover{background-color:#ffffff1a}.hidden{display:none}.subtitle{color:var(--text-secondary);font-size:1rem;margin-top:.25rem}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font-family);background-color:var(--bg-color);color:var(--text-primary);display:flex;justify-content:center;align-items:center;min-height:100vh}#app{width:100%;max-width:1400px;padding:1rem}.grid-viewport{flex:1;min-width:0;max-width:600px;overflow:hidden;position:relative}#grid-overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;pointer-events:none;z-index:10}.overlay-column{width:33.333%;display:flex;flex-direction:column;gap:1rem;align-items:center;justify-content:center;padding:0 .5rem}.overlay-cell{width:100%;aspect-ratio:4/3;position:relative}#grid-track{display:flex;width:100%;will-change:transform}#grid-track .chord-column{display:flex;flex-direction:column;gap:1rem;flex-shrink:0;align-items:center;justify-content:center;padding:0 .5rem}.chord-column{display:flex;flex-direction:column;gap:.5rem;flex:1}.chord-card{width:100%;background-color:var(--card-bg);border-radius:16px;padding:1.5rem;display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:4/3;box-shadow:0 4px 6px -1px var(--shadow-color),0 2px 4px -1px var(--shadow-color);transition:transform .2s ease,box-shadow .2s ease,border-color .2s;border:2px solid var(--card-border);position:relative}.degree{position:absolute;top:.5rem;left:.5rem;right:auto;font-size:.85rem;color:var(--text-primary);font-weight:600;letter-spacing:0;margin:0;pointer-events:auto;background-color:var(--card-bg);border:1.5px solid var(--text-primary);border-radius:50%;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0000001a;z-index:20}.hide-functions .degree{display:none}.overlay-cell.active-target{border:4px solid var(--highlight-color);border-radius:16px;box-shadow:inset 0 0 15px #f59e0b66;transform:none;width:100%;height:100%;box-sizing:border-box}.overlay-cell.active-target .degree{color:var(--highlight-color);font-weight:700;font-size:1.5rem;width:3rem;height:3rem;border-width:3px;text-shadow:0 0 15px var(--highlight-color);background-color:var(--card-bg);transition:all .2s cubic-bezier(.175,.885,.32,1.275)}.root-preview-mode .overlay-cell:not(.allowed-preview) .degree{opacity:0;transform:scale(.5);transition:all .3s ease}.root-preview-mode .overlay-cell.allowed-preview .degree{opacity:1;transform:scale(1)}@keyframes flash-red{0%{background-color:var(--card-bg)}50%{background-color:#ef444480!important;border-color:var(--error-color);box-shadow:0 0 15px #ef444466}to{background-color:var(--card-bg)}}@keyframes flash-global-red{0%{box-shadow:inset 0 0 0 0 transparent;background-color:transparent}50%{box-shadow:inset 0 0 50px #ef444466;background-color:#ef444433}to{box-shadow:inset 0 0 0 0 transparent;background-color:transparent}}.flash-global-error .chord-card{animation:flash-card-red .4s ease-out}@keyframes flash-card-red{0%,to{border-color:var(--card-border);background:var(--card-bg)}50%{border-color:var(--error-color);background:#ef444480!important;box-shadow:0 0 15px #ef444466}}.name{display:inline-block}.chord-label-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1}.primary-name{font-weight:700}.chord-card .primary-name{font-size:3rem}.chord-card .enharmonic-name{font-size:1.4rem;font-weight:300;opacity:.6;margin-top:-.1rem}.answer-btn.has-enharmonic{flex-direction:column;height:auto;min-height:2.8rem;padding:.2rem 0;line-height:1.2}.answer-btn .primary-name{font-size:.85rem}.answer-btn .enharmonic-name{font-size:.65rem;font-weight:300;opacity:.7}.chord-card.active-target{border-color:var(--highlight-color);box-shadow:0 0 20px #f59e0b4d}@keyframes flash-green{0%{background-color:var(--card-bg)}50%{background-color:#10b98133;border-color:var(--success-color)}to{background-color:var(--card-bg)}}@keyframes flash-red{0%{background-color:var(--card-bg)}50%{background-color:#ef444433;border-color:var(--error-color)}to{background-color:var(--card-bg)}}.flash-success{animation:flash-green .4s ease-out}.flash-error{animation:flash-red .4s ease-out}.game-running .chord-card:not(.is-root) .name,.game-running .chord-card:not(.is-root) img.mnemonic-img{filter:blur(20px);opacity:.1;transition:filter 1s ease-out,opacity 1s ease-out}.game-running .chord-card.revealed .name,.game-running .chord-card.revealed img.mnemonic-img{filter:blur(0);opacity:1;transition:filter .1s ease-out,opacity .1s ease-out}.preview-mode .chord-card:not(.is-root) .name,.preview-mode .chord-card:not(.is-root) img.mnemonic-img,.preview-mode .chord-card:not(.is-root) .degree{filter:blur(15px);opacity:.1;transition:all .5s ease}.preview-mode .chord-card.allowed-preview .name,.preview-mode .chord-card.allowed-preview img.mnemonic-img,.preview-mode .chord-card.allowed-preview .degree{filter:blur(0);opacity:1}.menu-container{display:flex;flex-direction:column;gap:1.25rem;align-items:center;padding:0;animation:fadeIn .3s ease-out;width:100%;max-width:900px;margin:0 auto}.menu-header{display:flex;justify-content:space-between;align-items:center;width:100%;padding-bottom:.75rem;border-bottom:1px solid var(--card-border, rgba(0, 0, 0, .08))}.menu-header h2{font-size:1.35rem;font-weight:700;color:var(--text-primary);margin:0}.danger-text-btn{background:transparent;color:var(--error-color);border:1px solid rgba(239,68,68,.3);padding:.35rem .75rem;border-radius:6px;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s ease}.danger-text-btn:hover{background:#ef44441a;border-color:var(--error-color)}.secondary-btn{background:var(--card-bg);color:var(--text-primary);border:1px solid var(--card-border, rgba(0,0,0,.1));padding:.6rem 1.2rem;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease;width:100%;text-align:center}.secondary-btn:hover{border-color:var(--accent-color);background:var(--bg-color)}.results-actions{display:flex;flex-direction:column;gap:.5rem;width:100%;margin-top:.75rem}.results-actions button{width:100%}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem;width:100%}.menu-card{background:var(--card-bg);border:1px solid var(--card-border, rgba(0,0,0,.1));border-radius:12px;padding:1.75rem 1.5rem;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;gap:.5rem;text-align:center;box-shadow:0 2px 6px var(--shadow-color)}.menu-card:hover{border-color:var(--accent-color);transform:translateY(-2px);box-shadow:0 8px 16px var(--shadow-color);background:var(--card-bg)}.menu-card h3{margin:0;color:var(--text-primary);font-size:1.35rem;font-weight:700}.menu-card p{margin:0;color:var(--text-secondary);font-size:.9rem;line-height:1.4}.exercise-group{width:100%;margin-bottom:1.25rem}.exercise-group h3{color:var(--text-secondary);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.6rem;border-bottom:1px solid var(--card-border, rgba(0, 0, 0, .08));padding-bottom:.35rem}.exercise-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.75rem;width:100%}.exercise-item{background:var(--card-bg);border:1px solid var(--card-border, rgba(0,0,0,.1));border-radius:10px;padding:.85rem;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;gap:.5rem;transition:all .2s ease;height:100%;text-align:left;box-shadow:0 2px 4px var(--shadow-color)}.exercise-item.locked{opacity:.75;background:#e2e8f0;border-color:#cbd5e1}[data-theme=dark] .exercise-item.locked{background:#0d1117;border-color:#ffffff14;opacity:.65}.exercise-item.perfect-acc .exercise-meta{background:#10b98133!important;color:#047857!important;border:1px solid rgba(16,185,129,.35)}[data-theme=dark] .exercise-item.perfect-acc .exercise-meta{background:#10b98140!important;color:#34d399!important;border-color:#34d39966}.exercise-item.tier-bronze{background:linear-gradient(135deg,#cd7f321f,#8b45132e);border:1.5px solid #cd7f32;box-shadow:0 4px 12px #cd7f3233}.exercise-item.tier-bronze:hover{border-color:#e59850;box-shadow:0 6px 16px #cd7f3259;transform:translateY(-2px)}.exercise-item.tier-bronze .exercise-meta{background:#cd7f3233;color:#b86518}[data-theme=dark] .exercise-item.tier-bronze{background:linear-gradient(135deg,#a0522d40,#64280a59);border-color:#e59850}[data-theme=dark] .exercise-item.tier-bronze .exercise-meta{color:#f6b27b;background:#cd7f324d}.exercise-item.tier-silver{background:linear-gradient(135deg,#e2e8f099,#cbd5e180);border:1.5px solid #94a3b8;box-shadow:0 4px 12px #94a3b840}.exercise-item.tier-silver:hover{border-color:#cbd5e1;box-shadow:0 6px 16px #94a3b866;transform:translateY(-2px)}.exercise-item.tier-silver .exercise-meta{background:#94a3b840;color:#334155}[data-theme=dark] .exercise-item.tier-silver{background:linear-gradient(135deg,#94a3b840,#47556959);border-color:#cbd5e1}[data-theme=dark] .exercise-item.tier-silver .exercise-meta{color:#f1f5f9;background:#94a3b84d}.exercise-item.tier-gold{background:linear-gradient(135deg,#fef3c7bf,#fde68a99);border:1.5px solid #f59e0b;box-shadow:0 4px 14px #f59e0b4d}.exercise-item.tier-gold:hover{border-color:#fbbf24;box-shadow:0 6px 20px #f59e0b73;transform:translateY(-2px)}.exercise-item.tier-gold .exercise-meta{background:#f59e0b40;color:#b45309}[data-theme=dark] .exercise-item.tier-gold{background:linear-gradient(135deg,#d9770659,#92400e73);border-color:#fbbf24}[data-theme=dark] .exercise-item.tier-gold .exercise-meta{color:#fef08a;background:#f59e0b59}.exercise-item.completed{border-color:#10b98166}.exercise-item:hover:not(.locked){border-color:var(--accent-color);transform:translateY(-2px);box-shadow:0 6px 12px var(--shadow-color)}.exercise-header{display:flex;align-items:center;gap:.5rem}.exercise-badge{font-size:1.1rem}.exercise-header h4{margin:0;font-size:.95rem;font-weight:600;color:var(--text-primary)}.exercise-info p{margin:0 0 .35rem;font-size:.8rem;color:var(--text-secondary);line-height:1.35}.exercise-meta{display:inline-block;font-size:.75rem;color:var(--accent-color);font-weight:600;background:#3b82f614;padding:.2rem .5rem;border-radius:4px}.exercise-actions{display:flex;justify-content:space-between;align-items:center;margin-top:.25rem;padding-top:.5rem;border-top:1px solid var(--card-border, rgba(0, 0, 0, .06))}.override-label{display:flex;align-items:center;gap:.35rem;font-size:.75rem;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.override-checkbox{cursor:pointer;accent-color:var(--accent-color)}.start-exercise-btn{background:var(--accent-color);color:#fff;border:none;border-radius:6px;padding:.3rem .65rem;font-size:.75rem;font-weight:600;cursor:pointer;transition:opacity .2s ease}.start-exercise-btn:disabled{background:var(--text-secondary);opacity:.4;cursor:not-allowed}.results-header-box{display:flex;flex-direction:column;align-items:center;gap:.25rem;margin-bottom:.5rem}#result-exercise-title{margin:0;font-size:1.2rem;font-weight:700;color:var(--text-primary);text-align:center}.results-tag{display:inline-block;font-size:.75rem;font-weight:600;color:var(--accent-color);background:#3b82f61a;padding:.15rem .5rem;border-radius:4px}.tier-result-card{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:.75rem 1rem;margin:.75rem 0;border-radius:8px;background:#f59e0b14;border:1px solid var(--accent-color);text-align:center}.tier-result-card.practice{background:#3b82f614;border-color:var(--accent-color)}.tier-result-card .tier-icon{font-size:1.1rem;font-weight:700}.tier-result-card .unlock-msg{font-size:.85rem;color:#10b981;font-weight:600}.chord-breakdown-section{width:100%;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--card-border, rgba(0,0,0,.08))}.chord-breakdown-section h4{margin:0 0 .5rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);text-align:center}.chord-breakdown-list{display:flex;flex-direction:column;gap:.35rem;max-height:180px;overflow-y:auto;padding-right:4px}.chord-stat-row{display:flex;justify-content:space-between;align-items:center;background:var(--bg-color);padding:.35rem .6rem;border-radius:6px;border:1px solid var(--card-border, rgba(0,0,0,.04));font-size:.8rem}.chord-stat-name{font-weight:700;color:var(--text-primary);min-width:40px}.chord-stat-count{font-size:.75rem;color:var(--text-secondary)}.chord-stat-time{font-weight:600;font-family:monospace}.chord-stat-time.fast{color:#10b981}.chord-stat-time.medium{color:#f59e0b}.chord-stat-time.slow{color:#ef4444}.no-breakdown{font-size:.8rem;color:var(--text-secondary);text-align:center;padding:.5rem}.exercise-info p{margin:0;font-size:.75rem;color:var(--text-secondary);line-height:1.3}.arrow{align-self:flex-end;margin-top:auto;color:var(--accent-color);font-weight:700;opacity:0;transition:opacity .2s}.exercise-item:hover .arrow{opacity:1}#back-to-main{position:absolute;top:2rem;left:2rem;z-index:50;margin:0}.text-btn{background:none;border:none;color:var(--text-secondary);font-size:.9rem;cursor:pointer;align-self:flex-start;padding:0 1rem;margin-bottom:.5rem}.text-btn:hover{color:var(--accent-color);text-decoration:underline}.exercise-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;width:100%;align-items:start;margin-top:1rem}.game-view{width:100%;display:flex;flex-direction:column;align-items:center;gap:2rem;animation:fadeIn .3s ease-out}.controls-panel{display:flex;flex-direction:column;gap:1.25rem;width:100%;max-width:600px;background:var(--card-bg);padding:1.25rem;border-radius:16px;align-items:center}.control-group{display:flex;flex-direction:column;gap:.5rem;width:100%;align-items:center}.game-controls{border-top:1px solid rgba(255,255,255,.1);padding-top:1.5rem;gap:1rem}.select-wrapper{position:relative;width:100%}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--card-bg);border:1px solid var(--text-secondary);color:var(--text-primary);padding:.75rem 1rem;border-radius:8px;width:100%;font-family:inherit;font-size:1rem;cursor:pointer}[data-theme=dark] select{background-color:#272a33;border-color:#3f4451}select:focus{outline:none;border-color:var(--accent-color)}.arrow{position:absolute;right:1rem;top:50%;transform:translateY(-50%);pointer-events:none;font-size:.8rem;color:var(--text-secondary)}button{font-family:var(--font-family);cursor:pointer;border:none;transition:all .2s}.primary-btn{background-color:var(--success-color);color:#fff;padding:.75rem 2rem;border-radius:8px;font-weight:700;font-size:1rem;text-transform:uppercase;letter-spacing:.05em;width:auto;min-width:200px}.primary-btn.stop{background-color:transparent;color:var(--text-secondary);border:2px solid var(--text-secondary)}.primary-btn.stop:hover{color:var(--text-primary);border-color:var(--text-primary);background-color:#0000000d}.primary-btn:hover{transform:translateY(-1px);filter:brightness(1.1)}.primary-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.mode-toggles{display:flex;background:var(--bg-color);border:1px solid var(--text-secondary);border-radius:8px;padding:.25rem;width:100%}[data-theme=dark] .mode-toggles{background:#272a33;border:none}.mode-btn{background:transparent;color:var(--text-secondary);padding:.5rem 1rem;border-radius:6px;font-weight:500;flex:1;text-align:center;font-size:.9rem}.mode-btn.active{background-color:var(--accent-color);color:#fff}.answer-board{display:flex;flex-direction:row;gap:.75rem;width:100%}.answer-board.hidden{display:none}.chord-column{display:flex;flex-direction:column;gap:.35rem;flex:1}.chord-column h4{margin:0 0 .5rem;text-align:center;color:var(--text-secondary);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}.answer-btn{width:100%;height:2rem;min-height:2rem;background-color:var(--card-bg);color:var(--text-primary);border:1px solid var(--text-secondary);border-radius:4px;font-weight:600;font-size:.85rem;cursor:pointer;transition:all .1s;padding:0;display:flex;align-items:center;justify-content:center}.answer-btn:hover{background-color:var(--bg-color);border-color:var(--text-primary)}[data-theme=dark] .answer-btn{background-color:#272a33;border-color:#3f4451;color:var(--text-secondary)}[data-theme=dark] .answer-btn:hover{background-color:#3f4451;color:#fff}.toggle-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;background:var(--card-bg);padding:.5rem 1rem;border-radius:8px;border:1px solid var(--text-secondary);transition:all .2s}.toggle-label:hover{border-color:var(--text-primary)}.toggle-label input[type=checkbox]{accent-color:var(--accent-color);width:1.1rem;height:1.1rem}.toggle-text{font-size:.95rem;font-weight:500;color:var(--text-primary)}.chord-card img.mnemonic-img{width:100%;height:100%;object-fit:cover;display:none;user-select:none;-webkit-user-drag:none;-webkit-user-select:none;pointer-events:none}.chord-card.show-mnemonic{padding:0;overflow:hidden}.chord-card.show-mnemonic .name{display:none}.chord-card.show-mnemonic img.mnemonic-img{display:block}.game-running .chord-card:not(.is-root) img.mnemonic-img{filter:blur(20px);opacity:.1;transition:filter 2s ease-out,opacity 2s ease-out}.game-running .chord-card.revealed img.mnemonic-img{filter:blur(0);opacity:1;transition:filter .1s ease-out,opacity .1s ease-out}.hidden{display:none!important}.stats-panel{display:flex;flex-direction:column;gap:1rem;background:var(--card-bg);padding:1rem;border-radius:16px;width:100%;box-shadow:0 4px 6px -1px var(--shadow-color);animation:fadeIn .3s ease-out}.stat-row{display:flex;justify-content:space-between;gap:1rem}.stat-item{display:flex;flex-direction:column;align-items:center;flex:1}.stat-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);margin-bottom:.25rem}.stat-value{font-size:1.25rem;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.limit-row{border-top:1px solid rgba(0,0,0,.1);padding-top:.75rem;justify-content:center;align-items:center;flex-direction:column}[data-theme=dark] .limit-row{border-top-color:#ffffff1a}.limit-row .stat-label{margin-bottom:0}.limit-row .stat-value{font-size:1rem}.debug-overlay{position:fixed;bottom:20px;right:20px;background:#000c;color:#0f0;padding:10px 15px;border-radius:8px;font-family:monospace;font-size:14px;z-index:1000;pointer-events:none;transition:opacity .3s}.debug-overlay.hidden,.chord-card.mystery .name,.chord-card.mystery img.mnemonic-img{opacity:0}.chord-card.mystery:after{content:"?";font-size:2rem;color:var(--text-muted);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.mt-2{margin-top:.5rem}.slider-wrapper{display:flex;flex-direction:column}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:var(--text-secondary);opacity:.7;transition:opacity .2s;outline:none}input[type=range]:hover{opacity:1}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent-color);cursor:pointer;transition:transform .1s ease;border:none}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent-color);cursor:pointer;transition:transform .1s ease;border:none}input[type=range]::-moz-range-thumb:hover{transform:scale(1.2)}.header-top{display:flex;justify-content:space-between;align-items:center;width:100%;max-width:900px;margin:0 auto;padding:0 .5rem}#app-title{font-size:1.35rem;font-weight:700;margin:0;cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text-primary);text-align:center;transition:opacity .2s}#app-title:hover{opacity:.8}.header-right{display:flex;align-items:center;gap:.35rem}#menu-toggle{position:static;transform:none}.sidebar-left{position:fixed;top:0;left:-340px;width:300px;height:100vh;background-color:var(--card-bg);border-right:1px solid var(--card-border, rgba(0, 0, 0, .08));z-index:1000;transition:left .3s cubic-bezier(.16,1,.3,1);padding:1.25rem 1rem;overflow-y:auto;box-shadow:4px 0 24px #00000026;display:flex;flex-direction:column;gap:1rem}.sidebar-left.open{left:0}.sidebar-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:.75rem;border-bottom:1px solid var(--card-border, rgba(0, 0, 0, .08))}.sidebar-header h3{margin:0;font-size:1.1rem;font-weight:700;color:var(--text-primary)}.icon-btn-sm{background:transparent;border:none;color:var(--text-secondary);font-size:1.1rem;cursor:pointer;padding:.2rem .4rem;border-radius:4px;transition:background .2s}.icon-btn-sm:hover{background:var(--bg-color);color:var(--text-primary)}.controls-panel{display:flex;flex-direction:column;gap:.85rem;width:100%}.control-group{display:flex;flex-direction:column;gap:.35rem;padding-bottom:.75rem;border-bottom:1px solid var(--card-border, rgba(0, 0, 0, .06))}.control-group:last-child{border-bottom:none;padding-bottom:0}.control-group h3{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin:0 0 .25rem}.toggle-label{display:flex;justify-content:space-between;align-items:center;padding:.4rem .5rem;border-radius:6px;border:1px solid transparent;background:transparent;cursor:pointer;transition:background .15s ease}.toggle-label:hover{background:var(--bg-color);border-color:var(--card-border, rgba(0,0,0,.04))}.toggle-text{font-size:.825rem;font-weight:500;color:var(--text-primary)}.toggle-label input[type=checkbox]{accent-color:var(--accent-color);width:16px;height:16px;cursor:pointer}.select-wrapper select{width:100%;padding:.45rem .75rem;border-radius:6px;border:1px solid var(--card-border, rgba(0, 0, 0, .12));background-color:var(--bg-color);color:var(--text-primary);font-size:.825rem;font-weight:500;outline:none;cursor:pointer;transition:border-color .2s ease}.select-wrapper select:focus{border-color:var(--accent-color)}.drawer-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:999;opacity:0;transition:opacity .3s ease-in-out;pointer-events:none}.drawer-overlay:not(.hidden){opacity:1;pointer-events:auto}.answer-board{display:flex;flex-direction:column;gap:1.5rem;width:100%;max-width:600px;margin-top:1rem}.chord-column{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:.5rem}.chord-column h4{width:100%;text-align:center;margin-bottom:.5rem;font-size:1.1rem;color:var(--text-secondary);font-weight:500}.answer-btn{min-width:60px;min-height:44px;padding:.5rem 1rem;border-radius:8px}.primary-btn,.mode-btn{min-height:44px;padding:.5rem 1.5rem;border-radius:8px}@media (min-width: 1024px){.app-layout{position:relative;display:flex;flex-direction:column;align-items:center;width:100%;max-width:700px;margin:0 auto}.sidebar-right{position:absolute;right:-240px;top:0;width:220px}}.carousel-wrapper{display:flex;align-items:center;justify-content:center;width:100%;gap:.5rem}.nav-arrow{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s;z-index:10}.nav-arrow:hover{background:#8080801a;color:var(--text-primary)}.grid-viewport{margin:0!important}.answer-board{display:flex;flex-direction:column;gap:1rem;width:100%;align-items:center}.chord-column{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;gap:.5rem;width:100%;overflow-x:auto;padding-bottom:.2rem}.answer-btn{width:50px!important;height:50px!important;min-width:50px!important;min-height:50px!important;padding:0!important;border-radius:10px!important;display:flex;align-items:center;justify-content:center}@media (max-width: 768px){.overlay-cell .degree{transform:scale(.65);transform-origin:center}.chord-card{padding:.5rem!important;border-radius:10px!important}.chord-card .primary-name{font-size:1.5rem!important}.chord-card .enharmonic-name{font-size:.8rem!important}}.sidebar-left .control-group{background:#00000005;border:1px solid rgba(128,128,128,.1);border-radius:12px;padding:.75rem 1rem;margin-bottom:.5rem}[data-theme=dark] .sidebar-left .control-group{background:#ffffff08}
