:root{--bg:#f5f1e8;--surface:#fffdf9;--surface-2:#efe9dc;--ink:#1c2230;--muted:#636b7c;--line:#e2dacb;--accent:#a8690f;--on-accent:#fffdf9;--accent-ink:#7d4d06;--accent-soft:#f6e7cb;--rh:#d59a2c;--lh:#3f8fb5;--lh-soft:#dcecf4;--lh-ink:#1f5f7f;--good:#2f9a62;--good-soft:#dcf1e5;--good-ink:#1c6a41;--bad:#d4483d;--bad-soft:#f9dfdc;--bad-ink:#9c2a21;--lane:#1c22300d;--roll-bg:#fbf8f1;--piano-bed:#2a2118;--shadow:0 1px 2px #1c22300f, 0 10px 28px #1c223012;--shadow-sm:0 1px 2px #1c22301f;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "Cascadia Mono", Consolas, "SF Mono", Menlo, monospace;--radius:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f131a;--surface:#171c26;--surface-2:#202735;--ink:#eef0f4;--muted:#9aa3b5;--line:#2a3242;--accent:#e7b04a;--on-accent:#1a1304;--accent-ink:#f0c56f;--accent-soft:#3a2e14;--rh:#e7b04a;--lh:#5fb4d6;--lh-soft:#16303d;--lh-ink:#8fd0ea;--good:#56c98a;--good-soft:#143424;--good-ink:#8be0b0;--bad:#ff7a6b;--bad-soft:#3d1a17;--bad-ink:#ffa79c;--lane:#ffffff0b;--roll-bg:#121722;--piano-bed:#07090d;--shadow:0 1px 2px #0000004d, 0 10px 28px #00000040;--shadow-sm:0 1px 2px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0f131a;--surface:#171c26;--surface-2:#202735;--ink:#eef0f4;--muted:#9aa3b5;--line:#2a3242;--accent:#e7b04a;--on-accent:#1a1304;--accent-ink:#f0c56f;--accent-soft:#3a2e14;--rh:#e7b04a;--lh:#5fb4d6;--lh-soft:#16303d;--lh-ink:#8fd0ea;--good:#56c98a;--good-soft:#143424;--good-ink:#8be0b0;--bad:#ff7a6b;--bad-soft:#3d1a17;--bad-ink:#ffa79c;--lane:#ffffff0b;--roll-bg:#121722;--piano-bed:#07090d;--shadow:0 1px 2px #0000004d, 0 10px 28px #00000040;--shadow-sm:0 1px 2px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.55}h1,h2,h3{font-family:var(--serif);text-wrap:balance;margin:0;font-weight:600;line-height:1.2}h1{letter-spacing:-.01em;font-size:clamp(28px,3.4vw,38px)}h2{font-size:23px}h3{font-size:18px}p{margin:0}a{color:var(--accent-ink)}small,.small{font-size:13px}.muted{color:var(--muted)}.mono{font-family:var(--mono);letter-spacing:.08em}.nowrap{white-space:nowrap}.spacer{flex:1}.icon{flex:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input[type=range]{width:100%;accent-color:var(--accent)}.app{grid-template-columns:236px minmax(0,1fr);min-height:100dvh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;gap:18px;height:100dvh;padding:20px 14px;display:flex;position:sticky;top:0}.brand{color:var(--ink);align-items:center;gap:12px;padding:4px 8px;text-decoration:none;display:flex}.brand strong{font-family:var(--serif);font-size:22px;line-height:1.1;display:block}.brand small{color:var(--muted);font-size:12px}.brand-mark{background:var(--ink);border-bottom:4px solid var(--rh);border-radius:10px;gap:2px;height:38px;padding:6px 6px 0;display:flex}.brand-mark i{background:var(--surface);border-radius:0 0 2px 2px;width:7px;height:100%}.nav{flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.nav a{color:var(--muted);border-radius:10px;align-items:center;gap:12px;padding:9px 12px;font-size:15px;font-weight:600;text-decoration:none;display:flex}.nav a:hover{background:var(--surface-2);color:var(--ink)}.nav a.on{background:var(--accent-soft);color:var(--accent-ink)}.status{gap:6px;display:grid}.status-line{border:1px dashed var(--line);width:100%;color:var(--muted);font:inherit;text-align:left;cursor:pointer;background:0 0;border-radius:10px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;font-weight:600;text-decoration:none;display:flex}.status-line.ok{color:var(--good-ink);background:var(--good-soft);border-style:solid;border-color:#0000}.status-line span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dot{background:var(--good);border-radius:50%;flex:none;width:8px;height:8px}.main{min-width:0}.app-immersive{grid-template-columns:minmax(0,1fr)}.app-immersive .sidebar{display:none}.page{gap:20px;max-width:1140px;margin:0 auto;padding:30px 32px 72px;display:grid}.page.narrow{max-width:860px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 24px;display:flex}.page-header .lead{max-width:62ch;margin-top:6px}.page-actions{flex-wrap:wrap;gap:8px;display:flex}.lead{color:var(--muted);font-size:17px}.section-title{margin-top:10px}.eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--accent-ink);font-size:12px;font-weight:700}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card.pad{align-content:start;gap:12px;padding:20px 22px;display:grid}.card-title{align-items:center;gap:10px;font-size:20px;display:flex}.link-card{color:inherit;text-decoration:none;transition:transform .12s,border-color .12s}.link-card:hover{border-color:var(--accent);transform:translateY(-2px)}.notice{background:var(--surface-2);box-shadow:none;grid-template-columns:auto 1fr;align-items:start}.notice>div{justify-items:start;gap:8px;display:grid}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;display:grid}.row{align-items:center;gap:10px;display:flex}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.row.center{flex-wrap:wrap;justify-content:center}.btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:9px 15px;font-size:15px;font-weight:600;line-height:1.3;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--muted)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.primary:hover:not(:disabled){filter:brightness(1.07);border-color:var(--accent)}.btn.ghost{color:var(--muted);background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){background:var(--surface-2);color:var(--ink);border-color:#0000}.btn.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.btn.small{border-radius:8px;padding:5px 11px;font-size:13px}.btn.icon{min-width:40px;padding:9px}.btn.big{border-radius:12px;padding:14px 26px;font-size:17px}.btn.danger{color:var(--bad-ink);justify-self:start}.seg{background:var(--surface-2);border-radius:11px;flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.seg button{color:var(--muted);font:inherit;cursor:pointer;white-space:pre;background:0 0;border:0;border-radius:8px;padding:6px 12px;font-size:14px;font-weight:600}.seg button:hover{color:var(--ink)}.seg button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;padding:6px 13px;font-size:14px;font-weight:600}.chip:hover:not(:disabled){border-color:var(--muted)}.chip.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.chip.dim:not(.on){color:var(--muted)}.chip:disabled{opacity:.55;cursor:default}.chip.family{border-radius:12px;flex-direction:column;align-items:center;gap:0;padding:6px 16px;font-size:17px;display:inline-flex}.chip.family small{color:var(--muted);font-size:11px}.tag{background:var(--surface-2);width:fit-content;color:var(--muted);font-family:var(--sans);white-space:nowrap;border-radius:999px;align-items:center;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.tag.gold{background:var(--accent-soft);color:var(--accent-ink)}.tag.blue{background:var(--lh-soft);color:var(--lh-ink)}.tag.green{background:var(--good-soft);color:var(--good-ink)}.banner{background:var(--surface-2);border-radius:10px;padding:10px 14px;font-weight:600}.banner.good{background:var(--good-soft);color:var(--good-ink)}.banner.bad{background:var(--bad-soft);color:var(--bad-ink)}.banner.center{text-align:center}.progress{background:var(--surface-2);border-radius:999px;height:6px;display:block;overflow:hidden}.progress>span{border-radius:inherit;background:var(--accent);height:100%;transition:width .3s;display:block}.stars{color:var(--line);gap:1px;font-size:16px;line-height:1;display:inline-flex}.stars .on{color:var(--rh)}.field{justify-items:start;gap:6px;display:grid}.field>input,.field>textarea,.field>select,.field>.chips{width:100%}.field-label{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;font-weight:700;display:flex}.inline-field{color:var(--muted);white-space:nowrap;align-items:center;gap:8px;font-size:13px;font-weight:700;display:inline-flex}.inline-field input[type=range]{width:120px}.input{border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;border-radius:10px;padding:9px 12px}.input.num{width:62px;padding:7px 8px}.form{gap:16px}.chart-input{font-family:var(--mono);white-space:pre;resize:vertical;font-size:14px;line-height:1.5;overflow-x:auto}.toggle{cursor:pointer;grid-template-columns:auto 1fr;align-items:start;gap:12px;display:grid}.toggle.disabled{opacity:.6;cursor:default}.toggle input{opacity:0;pointer-events:none;position:absolute}.toggle-track{background:var(--line);border-radius:999px;width:42px;height:24px;margin-top:2px;transition:background .15s;position:relative}.toggle-track:after{content:"";background:var(--surface);width:18px;height:18px;box-shadow:var(--shadow-sm);border-radius:50%;transition:transform .15s;position:absolute;top:3px;left:3px}.toggle input:checked+.toggle-track{background:var(--accent)}.toggle input:checked+.toggle-track:after{transform:translate(18px)}.toggle input:focus-visible+.toggle-track{outline:2px solid var(--accent);outline-offset:2px}.toggle strong,.toggle small{display:block}.facts{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px 20px;margin:0;display:grid}.facts dt{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:700}.facts dd{margin:2px 0 0;font-weight:600}.legend{color:var(--muted);align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.legend:before{content:"";background:var(--rh);border-radius:3px;width:10px;height:10px}.legend.lh:before{background:var(--lh)}.plain-list{gap:2px;margin:0;padding-left:18px;display:grid}.piano{background:var(--piano-bed);border-radius:10px;width:100%;padding-top:5px;overflow-x:auto;box-shadow:inset 0 3px #7a1f1f}.piano-keys{touch-action:none;-webkit-user-select:none;user-select:none;height:168px;position:relative}.piano-md .piano-keys{height:124px}.piano-sm{box-shadow:none;border-radius:6px;padding-top:3px}.piano-sm .piano-keys{height:44px}.piano-static .piano-keys{pointer-events:none}.key{cursor:pointer;flex-direction:column;justify-content:flex-end;align-items:center;gap:3px;display:flex;position:absolute;top:0}.key-white{color:#5d6475;z-index:1;background:linear-gradient(#fffefa 60%,#ece6d8);border:1px solid #bdb5a3;border-top:0;border-radius:0 0 6px 6px;height:100%;padding-bottom:7px}.key-black{color:#cfd4de;z-index:2;background:linear-gradient(#333946,#10131a 85%);border-radius:0 0 4px 4px;height:61%;padding-bottom:6px;box-shadow:0 2px 3px #00000073,inset 0 -4px #ffffff14}.piano-sm .key-white{border-radius:0 0 3px 3px;padding:0}.piano-sm .key-black{box-shadow:none;border-radius:0 0 2px 2px}.key-down.key-white{background:linear-gradient(#e9e3d4,#d9d2c0)}.key-down.key-black{background:linear-gradient(#4a5163,#262b37)}.key-rh,.key-target{--tone:var(--rh)}.key-lh{--tone:var(--lh)}.key-good{--tone:var(--good)}.key-bad{--tone:var(--bad)}.key-info{--tone:#9aa3b5}.key-white[class*=key-rh],.key-white.key-target,.key-white.key-lh,.key-white.key-good,.key-white.key-bad,.key-white.key-info{background:linear-gradient(color-mix(in srgb, var(--tone) 55%, #fffefa) 0%, var(--tone) 100%);border-color:color-mix(in srgb, var(--tone) 70%, #000)}.key-black.key-rh,.key-black.key-target,.key-black.key-lh,.key-black.key-good,.key-black.key-bad,.key-black.key-info{background:linear-gradient(color-mix(in srgb, var(--tone) 80%, #000) 0%, var(--tone) 100%)}.key-bad{animation:.25s shake}@keyframes shake{25%{transform:translate(-2px)}75%{transform:translate(2px)}}.key-mark{color:#1c2230;pointer-events:none;background:#fffdf9;border-radius:999px;place-items:center;min-width:24px;height:24px;padding:0 5px;font-size:12px;font-weight:800;line-height:1;display:grid;box-shadow:0 1px 2px #00000040}.key-black .key-mark{min-width:20px;height:20px;padding:0 3px;font-size:10px}.key-label{pointer-events:none;font-size:10px;font-weight:700;line-height:1}.key-hint{font-family:var(--mono);pointer-events:none;background:#1c22301a;border-radius:4px;padding:1px 4px;font-size:10px;line-height:1.2}.key-black .key-hint{background:#ffffff24}.key-middle.key-white:before{content:"";opacity:.7;background:#b9781a;border-radius:50%;width:5px;height:5px;position:absolute;top:8px}.piano-sm .key-mark,.piano-sm .key-label,.piano-sm .key-middle:before{display:none}.staff{width:100%;max-width:400px;height:auto;display:block}.staff-line{stroke:var(--ink);stroke-width:1.2px}.staff-clef,.staff-accidental{fill:var(--ink);font-family:Segoe UI Symbol,Noto Music,Apple Symbols,Bravura,serif}.staff-note{fill:var(--ink)}.staff-good .staff-note{fill:var(--good)}.staff-name{fill:var(--muted);font-family:var(--sans);font-weight:700}.staff-box{background:var(--surface-2);border-radius:12px;place-items:center;padding:6px 12px;display:grid}.staff-box.big .staff{max-width:460px}.hero{background:radial-gradient(120% 140% at 100% 0%, var(--accent-soft) 0%, transparent 55%), var(--surface);grid-template-columns:1fr auto;align-items:center;gap:24px;padding:30px 32px;display:grid}.hero-text{justify-items:start;gap:12px;display:grid}.hero-side{justify-items:center;gap:12px;display:grid}.streak{color:var(--accent-ink);align-items:center;gap:6px;font-weight:600;display:flex}.ring{width:132px;height:132px;position:relative}.ring svg{width:100%;height:100%}.ring-track{fill:none;stroke:var(--surface-2);stroke-width:8px}.ring-fill{fill:none;stroke:var(--accent);stroke-width:8px;stroke-linecap:round;transition:stroke-dasharray .4s}.ring-text{text-align:center;place-content:center;display:grid;position:absolute;inset:0}.ring-text strong{font-family:var(--serif);font-size:34px;line-height:1}.ring-text small{color:var(--muted)}.week{grid-template-columns:repeat(7,1fr);gap:8px;height:120px;display:grid}.week-day{color:var(--muted);grid-template-rows:1fr auto;justify-items:center;gap:6px;display:grid}.week-day.today{color:var(--ink);font-weight:700}.week-bar{background:var(--surface-2);border-radius:8px;align-items:flex-end;width:100%;max-width:34px;display:flex;overflow:hidden}.week-bar span{background:var(--lh);border-radius:8px;width:100%;min-height:0}.week-bar span.full{background:var(--accent)}.module-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.module-list li{grid-template-columns:minmax(0,1.4fr) 1fr auto;align-items:center;gap:12px;font-size:14px;font-weight:600;display:grid}.module{overflow:hidden}.module-head{justify-content:space-between;align-items:flex-end;gap:16px;padding:20px 22px 14px;display:flex}.module-head>div:first-child{gap:5px;display:grid}.module-progress{text-align:right;gap:6px;width:120px;display:grid}.lesson-list{margin:0;padding:0;list-style:none}.lesson-row{border-top:1px solid var(--line);color:inherit;align-items:center;gap:14px;padding:12px 22px;text-decoration:none;display:flex}.lesson-row:hover{background:var(--surface-2)}.lesson-row.next{background:color-mix(in srgb, var(--accent-soft) 50%, transparent)}.lesson-check{border:2px solid var(--line);border-radius:50%;flex:none;place-items:center;width:26px;height:26px;display:grid}.lesson-check.done{border-color:var(--good);background:var(--good);color:#fff}.lesson-info{flex:1;min-width:0;display:grid}.lesson,.player{flex-direction:column;height:100dvh;display:flex}.lesson-top,.player-top{background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:10px 16px;display:flex}.lesson-title,.player-title{flex:1;min-width:0;line-height:1.25;display:grid}.lesson-title strong,.player-title strong{font-family:var(--serif);font-size:19px}.dots{gap:5px;display:flex}.dots span{background:var(--surface-2);border-radius:999px;width:22px;height:6px}.dots .on{background:var(--accent)}.dots .done{background:var(--good)}.lesson-body{flex:1;justify-content:center;align-items:flex-start;min-height:0;padding:24px 16px;display:flex;overflow-y:auto}.step{width:100%;max-width:720px;gap:14px!important}.step p{font-size:17px}.step .btn{justify-self:start}.done-card{text-align:center;justify-items:center;padding:36px 24px!important}.done-card .stars{font-size:40px}.lesson-dock{background:var(--surface);border-top:1px solid var(--line);padding:12px 16px 14px}.lesson-dock .piano{max-width:1100px;margin:0 auto}.lesson-actions{align-items:center;gap:8px;max-width:1100px;margin:12px auto 0;display:flex}.seq{flex-wrap:wrap;gap:6px;display:flex}.seq-item{border:1px solid var(--line);background:var(--surface);border-radius:10px;justify-items:center;min-width:46px;padding:6px 10px;font-weight:700;display:grid}.seq-item small{color:var(--muted);font-size:11px}.seq-item.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}.seq-item.done{background:var(--good-soft);color:var(--good-ink);border-color:#0000}.chord-now{justify-items:start;gap:2px;display:grid}.chord-now.center{justify-items:center;gap:10px;padding:12px 0}.chord-big{font-family:var(--serif);font-size:34px;font-weight:600;line-height:1.1}.chord-big.sm{font-size:22px}.chord-big.xl{font-size:48px}.chord-big.xxl{font-size:84px}.chord-big.good{color:var(--good)}.chord-name small{font-size:.7em;font-weight:500}.seq-item sub{color:var(--muted);font-size:.65em}.chord-bass{opacity:.7}.quiz-q{font-family:var(--serif);font-size:21px!important}.quiz-options{gap:8px;display:grid}.quiz-options.wide{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}.btn.option{white-space:normal;text-align:left;justify-content:flex-start;padding:13px 16px;font-size:16px;justify-self:stretch!important}.quiz-options.wide .btn.option{font-family:var(--serif);justify-content:center;font-size:22px}.btn.option.good{opacity:1;background:var(--good-soft);border-color:var(--good);color:var(--good-ink)}.btn.option.bad{background:var(--bad-soft);border-color:var(--bad);color:var(--bad-ink)}.now-chord{justify-items:end;line-height:1.1;display:grid}.player-controls{background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 16px;display:flex}.seekbar{background:var(--surface-2);cursor:pointer;height:8px}.seekbar span{background:var(--accent);height:100%;display:block}.roll-scroll{flex:1;min-height:0;display:flex;overflow-x:auto}.roll-inner{flex-direction:column;flex:1;min-height:0;display:flex}.roll-inner .piano{border-radius:0;overflow:visible}.roll{background:var(--roll-bg);flex:1;min-height:180px;position:relative}.roll canvas{width:100%;height:100%;position:absolute;inset:0}.roll-legend{background:color-mix(in srgb, var(--surface) 85%, transparent);border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:5px 10px;font-size:12px;display:flex;position:absolute;top:10px;left:12px}.result{background:color-mix(in srgb, var(--bg) 70%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);place-items:center;padding:16px;display:grid;position:absolute;inset:0}.result-card{text-align:center;justify-items:center;min-width:min(340px,100%)}.result-card .stars{font-size:34px}.result-score{font-family:var(--serif);font-size:54px;line-height:1}.workshop{grid-template-columns:264px minmax(0,1fr);align-items:start;gap:20px;display:grid}.workshop-main{gap:16px;min-width:0;display:grid}.prog-list{gap:10px;max-height:calc(100dvh - 32px);padding:10px;display:grid;position:sticky;top:16px;overflow-y:auto}.prog-list h3{color:var(--muted);font-family:var(--sans);letter-spacing:.08em;text-transform:uppercase;padding:6px 10px 4px;font-size:12px;font-weight:700}.prog-item{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;gap:1px;padding:8px 10px;display:grid}.prog-item small{color:var(--muted);font-family:var(--mono);font-size:12px}.prog-item:hover{background:var(--surface-2)}.prog-item.on{background:var(--accent-soft);color:var(--accent-ink)}.chord-strip{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;display:grid}.chord-card{border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer;border-radius:12px;justify-items:start;gap:4px;padding:10px 12px 12px;display:grid}.chord-card small{font-family:var(--mono)}.chord-card:hover{border-color:var(--muted)}.chord-card.on{border-color:var(--accent);background:var(--accent-soft)}.tip{background:var(--surface-2);border-radius:10px;gap:10px;padding:12px 14px;display:flex}.tip .icon{color:var(--accent-ink);margin-top:3px}.controls-card{gap:16px!important}.chart-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:20px;display:grid}.chart-side{gap:16px;display:grid;position:sticky;top:16px}.chart-tools{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding-bottom:14px;display:flex}.key-now{min-width:44px;color:var(--ink);font-family:var(--serif);text-align:center;font-size:22px}.chart{font-family:var(--mono);font-size:15px;line-height:1.55;overflow-x:auto}.chart-line{white-space:pre;min-height:1.55em}.chart-chord{all:unset;color:var(--accent-ink);cursor:pointer;border-radius:4px;font-weight:700}.chart-chord:hover,.chart-chord:focus-visible{background:var(--accent-soft);box-shadow:0 0 0 3px var(--accent-soft)}.chart-section{color:var(--muted);font-family:var(--sans);letter-spacing:.1em;text-transform:uppercase;margin:14px 0 4px;font-size:12px;font-weight:700}.chart-section:first-child{margin-top:0}.chart-gap{height:.8em}.dict{gap:16px;display:grid}.dict.split{grid-template-columns:minmax(280px,350px) minmax(0,1fr);align-items:start}.dict.split .wide{grid-column:1/-1}@media (width<=980px){.dict.split{grid-template-columns:minmax(0,1fr)}}.trainer,.ear,.reading{gap:16px!important}.ear>.btn{justify-self:center}.tally{flex-wrap:wrap}.metro{justify-content:space-between;align-items:center;gap:16px;display:flex}.metro-bpm{line-height:1.1;display:grid}.metro-bpm strong{font-family:var(--serif);font-size:56px;line-height:1}.metro-dots{gap:8px;display:flex}.metro-dots span{background:var(--surface-2);border-radius:50%;width:18px;height:18px;transition:transform 60ms}.metro-dots span.on{background:var(--lh);transform:scale(1.25)}.metro-dots span.first.on{background:var(--accent)}.bridges{margin:0;padding:0;list-style:none;display:grid}.bridges li{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px;padding:12px 0;display:grid}.bridges li>div:first-child{grid-column:1/-1;display:grid}.bridge-chords{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.arrow{color:var(--muted)}.tester{background:var(--surface-2);border-radius:12px;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;padding:14px;display:grid}.tester>div{align-content:start;gap:4px;display:grid}.tester strong{font-size:18px}.tester .progress{background:var(--line);margin-top:8px}.guide{border:1px solid var(--line);border-radius:12px;padding:12px 14px}.guide summary{cursor:pointer;font-weight:700}.guide ol{gap:6px;margin:10px 0;padding-left:22px;display:grid}.song-card .song-foot{margin-top:4px}.about{text-align:center;max-width:60ch;margin:0 auto}.sekit-promo{background:linear-gradient(100deg, var(--accent-soft), transparent 70%), var(--surface);grid-template-columns:auto 1fr auto;align-items:center}.sekit-promo>.icon:first-child{color:var(--accent-ink)}.output-bar{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;align-items:center;gap:8px 14px;padding:12px 16px;display:flex}.output-bar small{flex:260px}.sekit-create .card{align-content:start}.sekit-create .btn{justify-self:start}.part-list,.layer-list,.marker-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.layer-list li{grid-template-columns:auto minmax(0,1fr) auto auto auto;align-items:center;gap:8px;display:grid}.layer-list .input{min-width:0;padding:6px 10px}.muted-layer .input,.muted-layer .swatch{opacity:.45}.swatch{border-radius:4px;width:14px;height:14px}.marker-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:4px 0;display:flex}.sekit-stage{gap:18px!important}.stage-top{flex-wrap:wrap;align-items:center;gap:16px 24px;display:flex}.play-big{border-radius:16px;min-width:170px;padding:18px 28px;font-size:20px}.play-big.playing{background:var(--ink);border-color:var(--ink);color:var(--surface)}.stage-pos{line-height:1.2;display:grid}.stage-pos strong{font-family:var(--serif);font-variant-numeric:tabular-nums;font-size:30px}.stage-pos strong small{color:var(--muted);font-size:.7em}.stage-controls{flex-wrap:wrap;align-items:center;gap:12px 28px;display:flex}.stepper{align-items:center;gap:8px;display:inline-flex}.stepper strong{min-width:64px;font-family:var(--serif);text-align:center;font-variant-numeric:tabular-nums;font-size:24px}.sections .chip{padding:8px 16px;font-size:15px}.timeline{background:var(--roll-bg);border:1px solid var(--line);border-radius:10px;width:100%;height:150px;display:block}.timeline.seekable{cursor:pointer}.studio{gap:16px;display:grid}.rec-card.live{border-color:var(--bad);box-shadow:0 0 0 3px var(--bad-soft), var(--shadow)}.rec-dot{background:var(--bad);border-radius:50%;width:12px;height:12px;display:inline-block}.rec-card.live .card-title .rec-dot{animation:1s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.25}}.rec-button{border-color:var(--bad);color:var(--bad-ink)}.rec-button.live{background:var(--bad);color:#fff}.rec-status{color:var(--bad-ink);font-variant-numeric:tabular-nums}.rec-options{align-items:flex-end;gap:14px 24px}.rec-options input[type=range]{width:220px}@media (width<=980px){.workshop,.chart-layout,.grid-2{grid-template-columns:minmax(0,1fr)}.prog-list,.chart-side{max-height:none;position:static}.prog-list{max-height:260px}}@media (width<=820px){.app{grid-template-columns:minmax(0,1fr)}.sidebar{z-index:20;height:auto;padding:4px 6px calc(4px + env(safe-area-inset-bottom));border-right:0;border-top:1px solid var(--line);position:fixed;inset:auto 0 0}.brand,.status{display:none}.nav{flex-direction:row;overflow:auto hidden}.nav a{flex-direction:column;gap:2px;min-width:70px;padding:6px 8px;font-size:11px}.main{padding-bottom:68px}.app-immersive .main{padding-bottom:0}.page{padding:20px 16px 40px}.hero{grid-template-columns:minmax(0,1fr);padding:22px 20px}.hero-side{grid-auto-flow:column;justify-content:start;align-items:center;gap:20px}.ring{width:96px;height:96px}.ring-text strong{font-size:24px}.piano-keys{height:140px}.dots span{width:10px}.chord-big.xxl{font-size:60px}.lesson-row{flex-wrap:wrap;padding:12px 16px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.storage-status{color:var(--muted);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;padding:8px 28px;font-size:12px;display:flex}.storage-error{background:var(--surface);color:var(--bad);border-bottom:1px solid var(--line);justify-content:flex-start}.section-nav{border-bottom:1px solid var(--line);gap:6px;padding:10px 28px;display:flex;overflow-x:auto}.section-nav a{color:var(--muted);white-space:nowrap;border-radius:8px;padding:8px 12px;text-decoration:none}.section-nav a.on{color:var(--ink);background:var(--surface);font-weight:600}.intent-cards{margin-bottom:24px}.practice-recommendation{margin-bottom:20px}.backup-preview{border-top:1px solid var(--line);margin-top:18px;padding-top:12px}.setlist-entries{margin:20px 0;padding:0;list-style:none}.setlist-entry{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:16px;padding:18px 0;display:flex}.setlist-entry>div:first-child{flex:220px}.setlist-entry small{display:block}.setlist-entry .field{margin:0}.app-immersive .storage-status:not(.storage-error){display:none}.app-immersive .storage-error{z-index:50;position:fixed;inset:auto 0 0}@media (width<=820px){.section-nav{padding:8px 12px}.storage-status{padding:6px 12px}.nav a{text-align:center;flex:1;min-width:0;font-size:10px}}
