@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-vietnamese-600-normal-A5AYRdjN.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-600-normal-CNlPk46_.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-ext-600-normal-18ESti3H.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-600-normal-Clv9cIcR.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2)format("woff2"),url(/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-vietnamese-700-normal-DYeBwlKR.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-700-normal-DhIzd8Tb.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-ext-700-normal-CwuXbfVR.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-700-normal-BIHFfxf0.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-700-normal-v1xN8_Wq.woff2)format("woff2"),url(/assets/barlow-condensed-latin-700-normal-Dmwat-ge.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-cyrillic-ext-wght-normal-DzyfIafT.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-cyrillic-wght-normal-BMDVbyM7.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-greek-ext-wght-normal-BWSLJLk6.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-greek-wght-normal-C9H9m1vD.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-vietnamese-wght-normal-C1uRvKPU.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-latin-ext-wght-normal-C8iNium2.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-sans-3-latin-wght-normal-BqRLTx4X.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color:#080808;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--font-display:"Barlow Condensed", "Arial Narrow", sans-serif;--font-body:"Source Sans 3 Variable", sans-serif;--ink:#080808;--ink-2:#202020;--muted:#686868;--muted-2:#969696;--canvas:#f2f2f2;--surface:#fff;--surface-2:#e7e7e7;--line:#d0d0d0;--line-strong:#a6a6a6;--green:#39a935;--green-dark:#187b2b;--green-soft:#e4f5e5;--yellow:#ffe600;--yellow-dark:#b8a600;--yellow-soft:#fff9bf;--red:#ed1c24;--red-soft:#ffe5e6;--tap-good:oklch(72% .18 145);--tap-miss:oklch(65% .22 27);--shadow-card:0 1px 2px #0000000f, 0 8px 24px #0000000d;--shadow-float:0 14px 38px #00000029;--control-group-gap:12px;--radius-sm:10px;--radius-md:16px;--radius-lg:22px;--ease-out:cubic-bezier(.22, 1, .36, 1);background:#ededed;font-family:"Source Sans 3 Variable",sans-serif}*{box-sizing:border-box}html{background:var(--canvas);scroll-behavior:smooth;min-width:320px;min-height:100%}body{background:var(--canvas);min-width:320px;min-height:100vh;color:var(--ink);font-family:var(--font-body);overscroll-behavior-y:none;margin:0;font-size:1rem;line-height:1.45}button,input{font:inherit}button{color:inherit}button:focus{outline:none}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.42}.visually-hidden{clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.app-shell{min-height:100vh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:var(--canvas)}.skip-link{z-index:800;border-radius:var(--radius-sm);background:var(--ink);color:#fff;transition:translate .15s var(--ease-out);padding:10px 14px;font-weight:700;position:fixed;top:12px;left:12px;translate:0 -160%}.skip-link:focus{translate:0}.app-header{z-index:300;min-height:62px;padding:8px max(16px, env(safe-area-inset-right)) 8px max(16px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(20px)saturate(1.5);background:#ffffffed;border-bottom:1px solid #00000017;justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;top:0}.app-header__identity,.app-header__right{align-items:center;gap:10px;min-width:0;display:flex}.app-header__title{border-left:1px solid var(--line);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;padding-left:10px;font-size:.88rem;font-weight:700;overflow:hidden}.brand-button{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;align-items:center;min-height:42px;padding:0;display:inline-flex}.brand-mark{background:#050505;width:90px;height:44px;display:block;overflow:hidden}.brand-mark img{object-fit:contain;width:100%;height:100%;display:block}.brand-mark--compact{width:82px;height:40px}.install-button,.installed-badge{border:1px solid var(--ink);background:var(--ink);color:#fff;border-radius:12px;align-items:center;gap:6px;min-height:40px;padding:0 13px;font-size:.84rem;font-weight:750;display:inline-flex}.install-button{cursor:pointer;transition:transform 90ms var(--ease-out), background-color .12s linear;-webkit-tap-highlight-color:transparent}.install-button:active{background:#262626;transform:scale(.95)}.installed-badge{border-color:var(--line);background:var(--surface-2);color:var(--muted)}.native-modal{z-index:1000;padding:20px max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(7px);background:#0000008a;justify-content:center;align-items:flex-end;animation:.18s linear both modal-fade;display:flex;position:fixed;inset:0}.native-sheet{border:1px solid var(--line);background:var(--surface);width:min(100%,520px);max-height:min(760px,100dvh - 32px);box-shadow:var(--shadow-float);color:var(--ink);animation:sheet-in .28s var(--ease-out) both;border-radius:24px;padding:24px 20px 20px;position:relative;overflow-y:auto}.native-sheet__hero{background:var(--ink);color:#fff;border-radius:15px;place-items:center;width:48px;height:48px;margin-bottom:18px;display:grid}.native-sheet h2{font-family:var(--font-display);letter-spacing:-.025em;margin:6px 42px 12px 0;font-size:clamp(2rem,10vw,2.6rem);line-height:.95}.native-sheet>p{color:var(--muted);margin:10px 0 0;line-height:1.42}.native-sheet__close{position:absolute;top:14px;right:14px}.icon-button{cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:40px;height:40px;display:grid}.install-steps{gap:8px;margin:18px 0 0;padding:0;list-style:none;display:grid}.install-steps li{border:1px solid var(--line);background:#f7f7f7;border-radius:15px;grid-template-columns:54px 1fr;align-items:center;gap:12px;padding:12px;display:grid}.install-steps li>span{background:var(--ink);color:#fff;border-radius:12px;justify-content:center;align-items:center;gap:3px;min-height:42px;display:flex}.install-steps li>span strong{font-family:var(--font-display);font-size:1rem}.install-steps p{color:var(--muted);margin:0;font-size:.88rem;line-height:1.35}.install-steps p svg{vertical-align:-3px;display:inline}.native-sheet__done{width:100%;margin-top:16px}.native-sheet__actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:18px;display:grid}.native-sheet__error{background:var(--red-soft);border-radius:12px;padding:10px 12px;font-weight:700;color:#a10f14!important}.native-sheet__success{background:var(--green-soft);border-radius:12px;padding:10px 12px;font-weight:700;color:var(--green-dark)!important}.home-screen,.tutorial-screen,.play-screen,.favorites-screen{width:min(100%,980px);padding:22px 16px calc(108px + env(safe-area-inset-bottom));margin:0 auto}.home-screen{max-width:760px}.tutorial-screen{max-width:780px}.play-workspace,.play-performance,.tutorial-learning,.tutorial-performance{display:contents}.eyebrow{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:800;line-height:1.1;display:block}.home-welcome h1,.tutorial-topline h1,.play-heading h1,.favorites-heading h1,.section-heading h2,.play-lane__header h2,.deck-library__header h2{font-family:var(--font-display);letter-spacing:-.025em;margin:0;font-weight:700;line-height:.96}.home-welcome{padding:8px 2px 18px}.home-welcome h1{margin-top:7px;font-size:clamp(2.9rem,14vw,4.25rem)}.home-welcome p{max-width:36ch;color:var(--muted);margin:10px 0 0;font-size:1.03rem;line-height:1.42}.home-deck-cover{border-radius:var(--radius-lg);box-shadow:var(--shadow-card);color:#fff;background:#050505;border:1px solid #242424;padding:14px 14px 0;overflow:hidden}.home-deck-cover__topline{justify-content:space-between;align-items:center;gap:12px;display:flex}.home-deck-cover__topline img{width:116px;height:auto}.home-deck-cover__topline span{color:#aaa;font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;font-size:.88rem;font-weight:600}.hero-deck{grid-template-columns:repeat(4,minmax(62px,1fr));gap:7px;margin-top:8px;padding:30px 0 28px;display:grid;position:relative}.hero-deck__rail{color:#777;font-variant-numeric:tabular-nums;text-align:center;grid-template-columns:repeat(4,1fr);font-size:.65rem;display:grid;position:absolute;top:8px;left:0;right:0}.hero-deck__card{z-index:calc(4 - var(--card-i));transform:rotate(calc((var(--card-i) - 1.5) * 1.15deg));position:relative}.hero-deck__card:nth-of-type(3){translate:0 3px}.hero-deck__caption{color:#8d8d8d;font-size:.68rem;font-weight:650;position:absolute;bottom:7px;left:1px}.mode-choices{gap:10px;margin-top:28px;display:grid}.section-heading{padding:0 2px 6px}.section-heading h2{margin-top:5px;font-size:2.25rem}.mode-choice{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);text-align:left;cursor:pointer;min-height:112px;transition:transform .1s var(--ease-out), border-color .12s linear;-webkit-tap-highlight-color:transparent;grid-template-columns:30px 44px 1fr auto;align-items:center;gap:11px;padding:16px 14px;display:grid;position:relative;box-shadow:0 1px 1px #00000008}.mode-choice:active{border-color:var(--ink);transform:scale(.985)}.mode-choice__number{color:var(--muted-2);font-family:var(--font-display);align-self:start;padding-top:2px;font-size:.78rem;font-weight:700}.mode-choice__icon{background:var(--ink);color:#fff;border-radius:14px;place-items:center;width:44px;height:44px;display:grid}.mode-choice--tutorial .mode-choice__icon{background:var(--yellow);color:var(--ink)}.mode-choice__body{gap:2px;display:grid}.mode-choice__body strong{font-family:var(--font-display);letter-spacing:-.015em;font-size:1.65rem;font-weight:700;line-height:1}.mode-choice__body>span{max-width:38ch;color:var(--muted);font-size:.88rem;line-height:1.3}.mode-choice__body small{color:var(--green-dark);margin-top:3px;font-size:.72rem;font-weight:750}.mode-choice__arrow{color:var(--muted);transition:transform .16s var(--ease-out)}.home-facts{color:var(--muted);text-align:center;grid-template-columns:repeat(3,1fr);gap:0;margin-top:14px;padding:10px 0;font-size:.74rem;display:grid}.home-facts>div{flex-direction:column;justify-content:center;align-items:center;gap:1px;min-height:48px;display:flex}.home-facts>div+div{border-left:1px solid var(--line)}.home-facts strong{color:var(--ink);font-family:var(--font-display);font-size:1.02rem}.entrance{animation:enter .43s var(--ease-out) both;animation-delay:calc(var(--i,0) * 55ms)}.rhythm-card{--rhythm-accent:#f7f7f5;--rhythm-halo:#e3e5e2;--rhythm-halo-edge:#7c837f;--playback-pulse-duration:.16s;aspect-ratio:1.58;color:#fff;cursor:pointer;touch-action:manipulation;width:100%;min-width:0;transition:transform 90ms var(--ease-out), box-shadow 90ms linear, border-color 90ms linear;-webkit-tap-highlight-color:transparent;background:#030405;border:1px solid #232323;border-radius:12px;grid-template-rows:auto 1fr;padding:7px;display:grid;position:relative;overflow:hidden;transform:translateZ(0);box-shadow:0 2px #232323,0 5px 12px #0000001c}.rhythm-card--notation{color:var(--ink);background:#fff;border-color:#c7c7c7;box-shadow:0 2px #d2d2d2,0 5px 12px #00000014}.rhythm-card--compact{border-radius:10px}.rhythm-card--preview{cursor:default}.rhythm-card:active{box-shadow:none;transform:translateY(2px)scale(.97)}.rhythm-card.is-selected{border-color:var(--yellow);box-shadow:0 0 0 3px var(--yellow), 0 5px 12px #0000001f}.rhythm-card.is-playing{z-index:4;transform:translateY(-4px)scale(1.02);box-shadow:0 5px #282a29,0 12px 20px #0003}.rhythm-card--notation.is-playing{box-shadow:0 5px #c7c9c7,0 12px 20px #00000029}.rhythm-card--value-gray{--rhythm-accent:#929896;--rhythm-halo:#e0e3e1;--rhythm-halo-edge:#737a77}.rhythm-card--value-green{--rhythm-accent:#4dcc63;--rhythm-halo:#dff5e2;--rhythm-halo-edge:#2e9c41}.rhythm-card--value-yellow{--rhythm-accent:#ffe81f;--rhythm-halo:#fff3a1;--rhythm-halo-edge:#aa9a00}.rhythm-card--value-red{--rhythm-accent:#ff4c55;--rhythm-halo:#ffe0e2;--rhythm-halo-edge:#ce2d35}.rhythm-card__meta{z-index:3;font-family:var(--font-display);justify-content:space-between;align-items:center;padding:0 2px;font-size:.74rem;font-weight:700;line-height:1;display:flex;position:relative}.rhythm-card__index{opacity:.58;font-variant-numeric:tabular-nums}.rhythm-card__meta.is-beat-start .rhythm-card__letter,.rhythm-card__meta.is-beat-start .rhythm-card__index{animation:beat-knock var(--playback-pulse-duration) var(--ease-out) both}.rhythm-card__cells{grid-template-columns:repeat(var(--cell-count), minmax(0, 1fr));align-items:stretch;height:100%;padding:3px 0 17px;display:grid}.rhythm-card__cell{transition:transform 90ms var(--ease-out);border:0 dashed #ffffff6b;border-right-width:1px;place-items:center;display:grid;position:relative}.rhythm-card--notation .rhythm-card__cell{border-color:#00000061}.rhythm-card__cell:last-child{border-right:0}.rhythm-card__cell.is-active{z-index:3}.rhythm-card--notation .rhythm-card__cell.is-active{z-index:1}.rhythm-card--notation .rhythm-card__cell.is-active:after{aspect-ratio:1;border:1px solid var(--rhythm-halo-edge);background:var(--rhythm-halo);content:"";width:clamp(28px,72%,42px);animation:notation-strike var(--playback-pulse-duration) var(--ease-out) both;border-radius:50%;position:absolute}.rhythm-card__cell.is-active .hit-mark,.rhythm-card__cell.is-active .rest-dash{animation:rhythm-strike var(--playback-pulse-duration) var(--ease-out) both}.hit-mark,.rest-dash{z-index:1;background:var(--rhythm-accent);transition:transform 90ms var(--ease-out);position:relative}.hit-mark{aspect-ratio:1;border-radius:50%;width:clamp(9px,18%,17px)}.hit-mark--white{background:#f7f7f5}.hit-mark--gray{background:#929896}.hit-mark--green{background:#4dcc63}.hit-mark--yellow{background:#ffe81f}.hit-mark--red{background:#ff4c55}.rest-dash{width:clamp(14px,32%,28px);height:4px}.hit-mark:after,.rest-dash:after{border:2px solid var(--rhythm-accent);border-radius:inherit;content:"";opacity:0;pointer-events:none;position:absolute;inset:-2px}.rhythm-card__cell.is-active .hit-mark:after,.rhythm-card__cell.is-active .rest-dash:after{animation:rhythm-echo var(--playback-pulse-duration) var(--ease-out) both}@keyframes rhythm-strike{0%{transform:translateY(-4px)scale(1.72)}45%{transform:translateY(-3px)scale(1.44)}to{transform:translateY(-2px)scale(1.36)}}@keyframes rhythm-echo{0%{opacity:.72;transform:scale(.8)}to{opacity:0;transform:scale(2.15)}}@keyframes notation-strike{0%{opacity:.96;transform:scale(1.12)}to{opacity:.72;transform:scale(.94)}}@keyframes beat-knock{0%{opacity:1;transform:translateY(-1px)scale(1.42)}to{opacity:1;transform:none}}.rest-dash--white{background:#f7f7f5}.rest-dash--gray{background:#929896}.rest-dash--green{background:#4dcc63}.rest-dash--yellow{background:#ffe81f}.rest-dash--red{background:#ff4c55}.rhythm-card--black.rhythm-card--value-gray .rhythm-card__letter{color:#a6acab}.rhythm-card--black.rhythm-card--value-green .rhythm-card__letter{color:#4dcc63}.rhythm-card--black.rhythm-card--value-yellow .rhythm-card__letter{color:#ffe81f}.rhythm-card--black.rhythm-card--value-red .rhythm-card__letter{color:#ff4c55}.music-notation{z-index:2;width:calc(100% - 18px);height:calc(100% - 40px);color:var(--ink);pointer-events:none;position:absolute;inset:22px 9px 18px;overflow:visible}.music-notation__tuplet text{font-family:Georgia,serif;font-size:10px;font-style:italic;font-weight:700}.note-mark{width:18px;height:29px;position:relative}.note-mark__head{background:currentColor;border-radius:50%;width:14px;height:10px;position:absolute;bottom:3px;left:1px;rotate:-17deg}.note-mark__stem{background:currentColor;width:2px;height:19px;position:absolute;bottom:9px;right:2px}.rest-mark{gap:2px;width:14px;display:grid;rotate:-8deg}.rest-mark span{background:currentColor;width:11px;height:3px;display:block}.rest-mark span:last-child{justify-self:end}.rhythm-card__brand{z-index:4;pointer-events:none;width:clamp(18px,18%,28px);height:auto;position:absolute;bottom:6px;right:7px}.rhythm-card__edge{display:none}.tutorial-topline,.play-heading{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.tutorial-topline h1,.play-heading h1{margin-top:5px;font-size:clamp(2.65rem,12vw,3.5rem)}.lesson-count{background:var(--surface-2);color:var(--muted);font-variant-numeric:tabular-nums;border-radius:10px;flex:none;padding:7px 10px;font-size:.78rem;font-weight:750}.lesson-progress{background:#dedede;border-radius:14px;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:18px;padding:4px;display:grid}.lesson-progress button{min-height:38px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;font-size:.78rem;font-weight:800;display:grid}.lesson-progress button.is-current{background:var(--ink);color:#fff}.lesson-progress button.is-complete:not(.is-current){background:var(--surface);color:var(--green-dark)}.lesson-story{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);gap:12px;margin-top:16px;padding:16px;display:grid}.lesson-story>p{color:var(--muted);margin:0;font-size:1rem;line-height:1.45}.lesson-rule{border-top:1px solid var(--line);align-items:center;gap:10px;padding-top:12px;font-size:.9rem;font-weight:750;display:flex}.tutorial-phrase{overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-width:none;grid-auto-columns:minmax(104px,1fr);grid-auto-flow:column;gap:8px;margin:16px -16px 0;padding:8px 16px 16px;scroll-padding-inline:16px;display:grid;overflow-x:auto}.tutorial-phrase::-webkit-scrollbar{display:none}.tutorial-phrase>*{scroll-snap-align:start}.tutorial-actions{grid-template-columns:1fr 1.15fr;gap:10px;margin-top:8px;display:grid}.primary-action,.secondary-action{border:1px solid var(--ink);cursor:pointer;min-height:52px;transition:transform 90ms var(--ease-out), background-color .1s linear;-webkit-tap-highlight-color:transparent;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:750;display:inline-flex}.primary-action{background:var(--ink);color:#fff}.secondary-action{background:var(--surface)}.primary-action:active,.secondary-action:active{transform:scale(.97)}.pad-countdown{z-index:1;pointer-events:none;align-content:center;justify-items:center;gap:5px;display:grid;position:relative}.pad-countdown__caption{color:#b8b8b8;font:800 .625rem var(--font-body);letter-spacing:.14em;text-transform:uppercase}.pad-countdown__number{color:#f7f7f3;font:700 3.5rem/1 var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.025em}.pad-countdown.is-ready .pad-countdown__number{color:var(--green);font-size:2.75rem}.pad-countdown__steps{gap:5px;margin-top:3px;display:flex}.pad-countdown__steps>span{background:#424843;border-radius:50%;width:6px;height:6px}.pad-countdown__steps>.is-current{background:var(--green)}.tutorial-pace{row-gap:var(--control-group-gap);justify-items:start;min-width:0;margin:0 0 14px;display:grid}.tutorial-pace__heading{width:100%;color:var(--muted);font:800 .625rem var(--font-body);letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;align-items:baseline;margin-bottom:0;display:flex}.tutorial-pace__heading strong{color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:0;font-size:.85rem}.tutorial-pace__options{background:#e8e8e2;border-radius:14px;gap:3px;width:100%;padding:3px;display:flex}.tutorial-pace__options button{min-width:0;min-height:48px;color:var(--muted);font:750 .82rem var(--font-body);cursor:pointer;background:0 0;border:0;border-radius:11px;flex:1;justify-content:center;align-items:center;gap:5px;padding:6px;transition:background-color .12s linear,color .12s linear;display:inline-flex}.tutorial-pace__options button[aria-pressed=true]{background:var(--ink);color:var(--surface)}.tutorial-pace>p{color:var(--muted);font:500 .7rem/1.4 var(--font-body);margin:7px 0 0}.tap-pad{background:var(--ink);width:100%;min-height:124px;box-shadow:0 4px 0 #3a3a3a, var(--shadow-card);color:#fff;font-family:var(--font-display);letter-spacing:.01em;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;transition:transform 70ms var(--ease-out), box-shadow 70ms linear, background-color 70ms linear;-webkit-tap-highlight-color:transparent;border:1px solid #292929;border-radius:20px;place-items:center;gap:2px;margin-top:16px;padding:16px;font-size:1.48rem;font-weight:700;display:grid;position:relative;overflow:hidden}.tap-pad:before,.tap-pad:after{content:"";border:1px solid #ffffff1f;border-radius:50%;width:82px;height:82px;position:absolute}.tap-pad--start{touch-action:pan-y}.deck-addition{position:relative}.deck-addition__confirmation{color:#173d23;text-align:center;font:700 .75rem var(--font-body);pointer-events:none;background:#d9f4de;border-radius:0 0 11px 11px;padding:5px 2px;animation:.28s cubic-bezier(.25,1,.5,1) deck-added;position:absolute;bottom:0;left:0;right:0}@keyframes deck-added{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.deck-addition__confirmation{animation:none}}.tap-pad:before{top:-40px;left:-25px}.tap-pad:after{bottom:-44px;right:-27px}.tap-pad>svg,.tap-pad>.tap-pad__label,.tap-pad>.tap-pad__hint{z-index:1;position:relative}.tap-pad__feedback{--tap-feedback-color:var(--tap-good);z-index:2;border-radius:inherit;background:color-mix(in oklch, var(--tap-feedback-color) 6%, transparent);box-shadow:inset 0 0 42px color-mix(in oklch, var(--tap-feedback-color) 11%, transparent);pointer-events:none;justify-content:flex-end;align-items:flex-start;padding:9px 11px;animation:.44s cubic-bezier(.16,1,.3,1) both tap-feedback;display:flex;position:absolute;inset:0}.tap-pad__feedback--miss{--tap-feedback-color:var(--tap-miss)}.tap-pad__feedback>span{background:color-mix(in oklch, var(--tap-feedback-color) 18%, #080808);color:var(--tap-feedback-color);font-family:var(--font-body);letter-spacing:.055em;text-transform:uppercase;border-radius:999px;padding:3px 7px;font-size:.66rem;font-weight:850;line-height:1.2}.tap-pad.is-hit{background:#262626;transform:translateY(3px)scale(.99);box-shadow:0 1px #3a3a3a}.tap-pad:disabled{opacity:1;color:#bdbdbd;background:#292929}.tap-pad--compact{grid-template-columns:auto auto;place-content:center;column-gap:8px;min-height:88px;font-size:1.28rem}.play-performance>.tap-pad,.tutorial-performance>.tap-pad{width:100%;min-height:clamp(7.75rem,14vw,9rem);font-size:clamp(1.28rem,2vw,1.55rem)}.play-performance>.audio-help-link{margin-top:10px}.tap-pad__hint{color:#aaa;font-family:var(--font-body);font-size:.7rem;font-weight:650}.tap-pad--compact .tap-pad__hint{grid-column:1/-1}.audio-help-link{min-height:42px;color:var(--muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:6px;margin:2px auto 0;padding:0 10px;font-size:.74rem;font-weight:700;display:flex}.score-panel{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);animation:score-in .32s var(--ease-out) both;grid-template-columns:auto 1fr;align-items:center;gap:14px;margin-top:16px;padding:15px;display:grid;position:relative}.score-panel.is-pass{background:var(--green-soft);border-color:#a3d9a6}.score-panel__number{text-align:center;min-width:64px;display:grid}.score-panel__number strong{font-family:var(--font-display);font-size:2.2rem;line-height:.9}.score-panel__number span,.score-panel p{color:var(--muted);font-size:.72rem}.score-panel h2{font-family:var(--font-display);margin:0;font-size:1.35rem;line-height:1}.score-panel p{margin:4px 0 0;line-height:1.3}.score-panel__check{color:var(--green-dark);position:absolute;top:8px;right:8px}.play-score{min-height:78px;margin-top:10px;padding:11px 14px}.play-score__pass{color:var(--muted);letter-spacing:.07em;text-transform:uppercase;margin-bottom:3px;font-size:.68rem;font-weight:800;display:block}.tutorial-completion{scroll-margin-block-end:calc(88px + env(safe-area-inset-bottom))}.lesson-nav{justify-content:space-between;align-items:center;gap:8px;margin-top:24px;display:flex}.lesson-nav button{cursor:pointer;background:0 0;border:0;align-items:center;gap:2px;min-height:44px;padding:0 4px;font-weight:750;display:inline-flex}.lesson-nav>span{color:var(--muted);text-align:center;font-size:.74rem;font-weight:650}.play-back{min-height:42px;color:var(--muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;margin:-8px 0 8px -7px;padding:0 8px;font-size:.8rem;font-weight:750;display:inline-flex}.play-heading{padding:4px 2px 0}.view-toggle{background:#dedede;border-radius:12px;flex:none;padding:3px;display:flex}.view-toggle button{min-height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;padding:0 12px;font-size:.78rem;font-weight:800}.view-toggle button.is-active{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #00000024}.transport{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-card);border-radius:18px;grid-template-columns:54px minmax(130px,1fr) 52px 52px;gap:7px;margin-top:16px;padding:8px;display:grid}.transport button{cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;border-radius:12px;min-height:52px}.transport__play{background:var(--ink);color:#fff;transition:transform 90ms var(--ease-out);place-items:center;display:grid}.transport__play:active{transform:scale(.93)}.tempo-control{grid-template-columns:34px minmax(64px,1fr) 34px;align-items:center;gap:4px;min-width:0;display:grid}.tempo-control>button{background:var(--surface-2);min-height:40px;font-size:1.08rem;font-weight:800}.tempo-control label{min-width:0;color:var(--muted);grid-template-columns:1fr auto;align-items:center;gap:0 4px;font-size:.62rem;font-weight:750;display:grid}.tempo-control strong{color:var(--ink);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-size:.9rem;line-height:1}.tempo-control small{color:var(--muted);font-size:.52rem}.tempo-control input{width:100%;height:20px;accent-color:var(--ink);grid-column:1/-1;margin:0}.transport__toggle{background:var(--surface-2);color:var(--muted);place-items:center;display:grid}.transport__toggle span{font-size:.6rem;font-weight:750}.transport__toggle.is-active{background:var(--ink);color:#fff}.deck-library{border:1px solid var(--line);background:var(--surface);border-radius:20px;margin-top:16px;padding:16px;box-shadow:0 1px 2px #00000008}.play-lane{margin-top:16px}.play-lane__header,.deck-library__header{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.play-lane__header h2,.deck-library__header h2{margin-top:5px;font-size:1.72rem}.lane-actions{gap:6px;display:flex}.lane-actions button,.lane-feedback button{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:11px;justify-content:center;align-items:center;gap:5px;min-height:42px;padding:0 11px;font-size:.76rem;font-weight:750;display:inline-flex}.lane-actions button{flex:0 0 44px;width:44px;min-height:44px;padding:0}.lane-actions .lane-save{background:var(--yellow-soft);border-color:#c7b500}.lane-actions .lane-save.is-saved{border-color:var(--yellow);background:var(--yellow)}.play-lane__scroll{overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-width:none;touch-action:pan-x pan-y;grid-auto-columns:minmax(112px,140px);grid-auto-flow:column;gap:8px;margin:16px 0 0;padding:8px 0 16px;scroll-padding-inline:0;display:grid;overflow-x:auto}.play-lane__scroll::-webkit-scrollbar{display:none}.play-lane__scroll>*{scroll-snap-align:start}.play-lane__scroll .rhythm-card{touch-action:pan-y}.play-lane__scroll .music-notation{transform:translateY(-7px)}.lane-card{touch-action:pan-y;min-width:0;transform:translate3d(var(--drag-x,0), 0, 0);transition:transform .16s var(--ease-out);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:relative}.lane-card *,.play-lane__scroll{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.lane-card img{-webkit-user-drag:none}.lane-card.is-pressing .rhythm-card{transform:translateY(2px)scale(.975);box-shadow:0 1px #232323}.lane-card.is-dragging{z-index:5;will-change:transform;transition:none}.lane-card.is-dragging .rhythm-card{border-color:var(--yellow);box-shadow:0 0 0 3px var(--yellow), 0 12px 24px #0003;transform:translateY(-3px)scale(1.025)}.lane-card.is-drop-target:before{z-index:6;border:2px dashed var(--yellow-dark);content:"";pointer-events:none;border-radius:13px;position:absolute;inset:-4px}.lane-empty{border:1px dashed var(--line-strong);min-height:136px;color:var(--muted);text-align:center;border-radius:14px;align-content:center;place-items:center;gap:2px;margin-top:12px;padding:18px;display:grid}.lane-empty strong{color:var(--ink);font-family:var(--font-display);margin-top:5px;font-size:1.2rem}.lane-empty span{max-width:32ch;font-size:.82rem}.lane-feedback{border-top:1px solid var(--line);min-height:42px;color:var(--muted);justify-content:space-between;align-items:center;gap:10px;font-size:.78rem;display:flex}.lane-feedback>span{padding:10px 0}.lane-feedback button{color:#b61319;border-color:#f1a4a7;flex:none}.swipe-hint{color:var(--muted-2);text-align:center;font-size:.68rem;display:block}.deck-library__header>span{color:var(--muted);font-size:.74rem;font-weight:700}.subdivision-filter{scrollbar-width:none;gap:7px;margin:14px -16px 0;padding:0 16px 8px;display:flex;overflow-x:auto}.subdivision-filter::-webkit-scrollbar{display:none}.subdivision-filter button{border:1px solid var(--line);background:var(--surface);min-height:40px;color:var(--muted);cursor:pointer;border-radius:12px;flex:none;padding:0 14px;font-size:.76rem;font-weight:750}.subdivision-filter button.is-active{border-color:var(--ink);background:var(--ink);color:#fff}.synonym-guide{border:1px solid var(--line);background:#f7f7f6;border-radius:15px;margin-top:4px}.notation-key{background:var(--ink);color:#f7f7f5;border-radius:13px;gap:6px;margin:10px 0 8px;padding:11px 13px;display:grid}.notation-key>strong{font-family:var(--font-display);font-size:1.15rem;line-height:1}.notation-key__terms{color:#d3d5d2;flex-wrap:wrap;gap:4px 13px;font-size:.79rem;line-height:1.25;display:flex}.notation-key__terms b{color:#ffe81f;margin-right:3px;font-weight:800}.synonym-guide__toggle{border-radius:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;width:100%;min-height:58px;padding:8px 11px;display:grid}.synonym-guide__toggle>svg:first-child{color:var(--muted)}.synonym-guide__toggle>span:nth-child(2){display:grid}.synonym-guide__toggle strong{font-size:.82rem}.synonym-guide__toggle small{color:var(--muted);font-size:.68rem}.synonym-guide__swatches{gap:4px;display:flex}.synonym-guide__swatches i,.family-dot{border-radius:50%;flex:none;width:9px;height:9px;display:inline-block;box-shadow:0 0 0 1px #00000024}.synonym-guide__swatches .is-gray,.family-dot--gray{background:#929896}.synonym-guide__swatches .is-green,.family-dot--green{background:#3fb854}.synonym-guide__swatches .is-yellow,.family-dot--yellow{background:#f0d900}.synonym-guide__swatches .is-red,.family-dot--red{background:#ed343d}.synonym-guide__chevron{color:var(--muted);transition:transform .18s var(--ease-out)}.synonym-guide.is-open .synonym-guide__chevron{transform:rotate(180deg)}.synonym-guide__reveal{transition:grid-template-rows .22s var(--ease-out);grid-template-rows:0fr;display:grid}.synonym-guide.is-open .synonym-guide__reveal{grid-template-rows:1fr}.synonym-guide__reveal>div{overflow:hidden}.synonym-guide__reveal p{border-top:1px solid var(--line);max-width:62ch;color:var(--muted);margin:0 12px 10px;padding-top:11px;font-size:.76rem;line-height:1.4}.notation-comparison{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:0 12px 12px;display:grid}.notation-comparison__card{background:#fff;border:1px solid #c7c7c7;border-radius:9px;height:94px;padding:6px 8px;position:relative;box-shadow:0 2px #d2d2d2}.notation-comparison__card strong{font-family:var(--font-display);font-size:.85rem}.notation-comparison__card .music-notation{width:calc(100% - 16px);height:calc(100% - 42px);inset:17px 8px 25px}.notation-comparison__card small{color:var(--muted);font-size:.68rem;line-height:1.1;position:absolute;bottom:6px;left:8px;right:8px}.notation-comparison>span{color:var(--muted);grid-column:1/-1;font-size:.73rem;line-height:1.3}.synonym-families{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:0 12px 12px;display:grid}.synonym-family{--family-color:#929896;border:1px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;border-radius:12px;grid-template-columns:auto 1fr;align-items:center;gap:9px;min-width:0;min-height:56px;padding:8px 9px;display:grid}.synonym-family--green{--family-color:#3fb854}.synonym-family--yellow{--family-color:#e4cd00}.synonym-family--red{--family-color:#ed343d}.synonym-family.is-active{border-color:var(--family-color);box-shadow:0 0 0 2px color-mix(in oklch, var(--family-color) 25%, transparent)}.synonym-family__dot{background:var(--family-color);border-radius:50%;width:11px;height:11px}.synonym-family>span:last-child{min-width:0;display:grid}.synonym-family strong{font-family:var(--font-display);text-overflow:ellipsis;white-space:nowrap;font-size:.96rem;line-height:1;overflow:hidden}.synonym-family small{color:var(--muted);margin-top:3px;font-size:.7rem;line-height:1.2}.synonym-guide__clear{min-height:40px;color:var(--green-dark);cursor:pointer;background:0 0;border:0;margin:-3px 12px 10px;padding:0;font-size:.74rem;font-weight:800}.deck-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 10px;margin-top:8px;display:grid}.deck-grid__item{align-content:start;gap:7px;min-width:0;display:grid}.deck-grid__item>span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:5px;font-size:.7rem;line-height:1.2;display:flex;overflow:hidden}.deck-empty-filter{min-height:116px;color:var(--muted);text-align:center;align-content:center;place-items:center;gap:4px;font-size:.8rem;display:grid}.deck-empty-filter button{min-height:40px;color:var(--ink);cursor:pointer;background:0 0;border:0;padding:0 10px;font-weight:800}.undo-toast{z-index:500;right:12px;bottom:calc(82px + max(12px, env(safe-area-inset-bottom)));background:var(--ink);max-width:560px;min-height:58px;box-shadow:var(--shadow-float);color:#fff;animation:sheet-in .25s var(--ease-out) both;border-radius:16px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;padding:7px 7px 7px 14px;font-size:.8rem;display:grid;position:fixed;left:12px}.undo-toast button{color:#fff;cursor:pointer;background:#222;border:1px solid #555;border-radius:11px;min-height:42px;padding:0 12px;font-weight:750}.undo-toast--addition{top:calc(64px + env(safe-area-inset-top));bottom:auto}.undo-toast .undo-toast__close{background:0 0;border-color:#0000;width:42px;padding:0}.favorites-heading{justify-content:space-between;align-items:flex-end;gap:18px;padding:4px 2px 18px;display:flex}.favorites-heading h1{margin-top:5px;font-size:clamp(2.75rem,12vw,3.8rem)}.favorites-heading p{max-width:46ch;color:var(--muted);margin:9px 0 0;font-size:.9rem}.favorites-heading__create{border:1px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;border-radius:13px;flex:none;align-items:center;gap:7px;min-height:48px;padding:0 15px;font-weight:800;display:inline-flex}.favorites-empty{border:1px dashed var(--line-strong);background:var(--surface);text-align:center;border-radius:22px;align-content:center;place-items:center;gap:7px;min-height:min(570px,100dvh - 220px);padding:48px 20px;display:grid;position:relative;overflow:hidden}.favorites-empty__icon{background:var(--yellow);border-radius:50%;place-items:center;width:58px;height:58px;margin-bottom:7px;display:grid}.favorites-empty__sample{grid-template-columns:repeat(3,1fr);gap:6px;width:min(100%,330px);margin:1px 0 16px;display:grid;transform:rotate(-1.5deg)}.favorites-empty__sample>:nth-child(2){translate:0 -5px}.favorites-empty h2{font-family:var(--font-display);letter-spacing:-.02em;margin:2px 0 0;font-size:2rem;line-height:1}.favorites-empty p{max-width:40ch;color:var(--muted);margin:2px 0 15px;font-size:.88rem}.favorites-empty .primary-action{padding-inline:18px}.favorites-tools{border:1px solid var(--line);background:var(--surface);border-radius:17px;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:8px;display:grid}.favorites-search{background:var(--surface-2);min-width:0;min-height:44px;color:var(--muted);border-radius:11px;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:0 10px;display:grid}.favorites-search input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0}.favorites-search input::placeholder{color:var(--muted)}.favorites-search button{cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:34px;height:34px;padding:0;display:grid}.favorites-sort{color:var(--muted);grid-template-columns:auto auto;align-items:center;gap:7px;padding:0 5px 0 9px;font-size:.72rem;font-weight:800;display:grid}.favorites-sort select{border:1px solid var(--line);background:var(--surface);min-height:40px;color:var(--ink);border-radius:10px;padding:0 28px 0 9px;font-size:.76rem;font-weight:750}.favorites-count{color:var(--muted);align-items:center;gap:6px;padding:12px 3px 8px;font-size:.74rem;font-weight:700;display:flex}.favorites-grid{gap:11px;display:grid}.favorite-card{border:1px solid var(--line);background:var(--surface);min-width:0;transition:border-color .13s linear, transform .15s var(--ease-out);border-radius:19px;overflow:hidden;box-shadow:0 1px 2px #00000009}.favorite-card.is-playing{border-color:#c7b500}.favorite-card__topline{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;padding:14px 14px 8px;display:grid}.favorite-card__title{min-width:0}.favorite-card__title>h2,.favorite-card__title>button{display:inline}.favorite-card__title h2{font-family:var(--font-display);letter-spacing:-.015em;margin:0;font-size:1.35rem;line-height:1}.favorite-card__title>button{color:var(--muted);vertical-align:-3px;cursor:pointer;background:0 0;border:0;margin-left:6px;padding:4px}.favorite-card__title>span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:.68rem;display:block;overflow:hidden}.favorite-card__title form{grid-template-columns:minmax(0,1fr) 36px 36px;gap:4px;display:grid}.favorite-card__title form input{border:1px solid var(--ink);background:var(--surface);border-radius:9px;min-width:0;height:38px;padding:0 9px;font-weight:750}.favorite-card__title form button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:9px;place-items:center;width:36px;height:36px;padding:0;display:grid}.favorite-card__title form button:last-child{background:var(--surface-2);color:var(--ink)}.favorite-card__heart{background:var(--yellow);width:32px;height:32px;color:var(--ink);border-radius:50%;place-items:center;display:grid}.favorite-card__rail{scrollbar-width:none;grid-auto-columns:74px;grid-auto-flow:column;align-items:center;gap:6px;min-height:76px;padding:7px 14px 12px;display:grid;overflow-x:auto}.favorite-card__rail::-webkit-scrollbar{display:none}.favorite-card__rail .hit-mark:after,.favorite-card__rail .rest-dash:after{display:none}.favorite-card__rail .rhythm-card--notation .rhythm-card__cell.is-active:after{width:22px;translate:0 -7px}.favorite-card__more{background:var(--surface-2);width:50px;height:50px;color:var(--muted);font-family:var(--font-display);border-radius:50%;place-items:center;font-weight:800;display:grid}.favorite-card__actions{border-top:1px solid var(--line);background:#f8f8f7;grid-template-columns:1fr 1fr 44px 44px;gap:6px;padding:9px;display:grid}.favorite-card__actions button{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:11px;justify-content:center;align-items:center;gap:6px;min-height:44px;font-size:.76rem;font-weight:800;display:inline-flex}.favorite-card__actions .favorite-card__listen{border-color:var(--ink);background:var(--ink);color:#fff}.favorite-card__actions .favorite-card__practice{background:var(--yellow);border-color:#c7b500}.favorite-card__actions .favorite-card__delete{color:#b61319}.favorites-no-results{min-height:250px;color:var(--muted);text-align:center;align-content:center;place-items:center;gap:8px;display:grid}.favorites-no-results strong{color:var(--ink)}.favorites-no-results button{cursor:pointer;background:0 0;border:0;min-height:42px;font-weight:800}.favorites-pagination{grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;margin-top:18px;display:grid}.favorites-pagination button{cursor:pointer;background:0 0;border:0;align-items:center;gap:3px;min-height:44px;padding:0;font-weight:800;display:inline-flex}.favorites-pagination button:last-child{justify-self:end}.favorites-pagination>span{color:var(--muted);font-size:.72rem;font-weight:700}.favorites-notice{z-index:480;right:14px;bottom:calc(82px + max(12px, env(safe-area-inset-bottom)));background:var(--ink);max-width:calc(100vw - 28px);min-height:48px;box-shadow:var(--shadow-float);color:#fff;cursor:pointer;animation:sheet-in .22s var(--ease-out) both;border:0;border-radius:13px;align-items:center;gap:8px;padding:0 12px;font-size:.76rem;font-weight:700;display:flex;position:fixed}.bottom-nav{z-index:300;padding:5px max(14px, env(safe-area-inset-right)) max(5px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(22px)saturate(1.6);background:#fffffff0;border-top:1px solid #0000001f;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{min-height:58px;color:var(--muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;align-content:center;place-items:center;gap:2px;font-size:.66rem;font-weight:700;display:grid;position:relative}.bottom-nav button:before{z-index:-1;content:"";width:44px;height:30px;transition:background-color .13s linear, transform .13s var(--ease-out);background:0 0;border-radius:15px;position:absolute;top:5px}.bottom-nav button svg{z-index:1;position:relative}.bottom-nav button.is-active{color:var(--ink)}.bottom-nav button.is-active:before{background:var(--yellow)}@keyframes enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes sheet-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}@keyframes tap-feedback{0%{opacity:0;transform:scale(.975)}18%,64%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.012)}}@keyframes score-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@media (hover:hover){.mode-choice:hover{border-color:var(--ink)}.mode-choice:hover .mode-choice__arrow{transform:translate(4px)}.rhythm-card:not(.rhythm-card--preview):hover{transform:translateY(-2px);box-shadow:0 3px #232323,0 9px 20px #00000024}.rhythm-card:not(.rhythm-card--preview):active:hover{transform:translateY(2px)scale(.97)}.primary-action:hover,.install-button:hover{background:#252525}.secondary-action:hover,.lane-actions button:hover,.lane-feedback button:hover{background:var(--surface-2)}}@media (width<=699px),(hover:none) and (pointer:coarse){.tap-pad__hint{display:none}.tutorial-performance .tap-pad__hint{display:block}.tap-pad--compact{grid-template-columns:auto auto}}@media (width<=399px){.favorites-heading__create{justify-content:center;gap:0;width:48px;padding:0;font-size:0}.favorites-sort>span{display:none}.favorites-sort{padding-left:0}.transport{grid-template-columns:50px minmax(120px,1fr) 48px 48px;gap:5px;padding:6px}.tempo-control{grid-template-columns:30px minmax(54px,1fr) 30px}.tempo-control label>span{display:none}.tempo-control label{grid-template-columns:1fr}.tempo-control strong{text-align:center}.lane-actions button{width:44px}}@media (width>=700px){.app-header{padding-right:max(28px, env(safe-area-inset-right));padding-left:max(28px, env(safe-area-inset-left))}.home-screen,.tutorial-screen,.play-screen,.favorites-screen{padding-left:28px;padding-right:28px}.home-screen{padding-top:30px}.mode-choice{grid-template-columns:38px 48px 1fr auto;gap:16px;padding-left:18px;padding-right:18px}.mode-choice__icon{width:48px;height:48px}.tutorial-phrase{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:row;overflow:visible}.deck-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:22px 14px}.favorites-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.favorite-card__rail{grid-auto-columns:76px}.play-lane__scroll{grid-auto-columns:minmax(136px,160px)}.bottom-nav{border:1px solid #0000001f;border-bottom:0;border-radius:20px 20px 0 0;width:480px;left:auto;right:50%;translate:50%}.undo-toast{width:min(560px,100vw - 32px);left:auto;right:50%;translate:50%}.favorites-notice{right:50%;translate:50%}.native-modal{align-items:center}}@media (width>=980px){.deck-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.transport{grid-template-columns:64px 1fr 64px 64px}}@media (orientation:landscape) and (width>=560px){.app-shell--play .app-header,.app-shell--tutorial .app-header{min-height:50px;padding-top:3px;padding-bottom:3px}.app-shell--play .brand-mark--compact,.app-shell--tutorial .brand-mark--compact{width:74px;height:36px}.app-shell--play .install-button,.app-shell--play .installed-badge,.app-shell--tutorial .install-button,.app-shell--tutorial .installed-badge{min-height:44px}.app-shell--play .bottom-nav,.app-shell--tutorial .bottom-nav{width:auto;padding-top:2px;padding-bottom:max(2px, env(safe-area-inset-bottom));border-bottom:0;border-left:0;border-right:0;border-radius:0;left:0;right:0;translate:none}.app-shell--play .bottom-nav button,.app-shell--tutorial .bottom-nav button{flex-direction:row;gap:7px;min-height:46px;font-size:.72rem;display:flex}.app-shell--play .bottom-nav button:before,.app-shell--tutorial .bottom-nav button:before{border-radius:11px;width:min(112px,90%);height:36px;top:5px}.play-screen,.tutorial-screen{width:min(100%,1440px);max-width:none;padding-top:10px;padding-right:max(12px, env(safe-area-inset-right));padding-bottom:calc(58px + env(safe-area-inset-bottom));padding-left:max(12px, env(safe-area-inset-left));grid-template-columns:minmax(0,56fr) minmax(0,44fr);align-items:start;column-gap:clamp(10px,1.4vw,20px);display:grid}.play-screen{grid-template-areas:"workspace performance""deck performance";row-gap:10px}.play-workspace,.tutorial-learning{min-width:0;display:block}.play-workspace{grid-area:workspace}.play-performance,.tutorial-performance{top:calc(60px + env(safe-area-inset-top));min-width:0;height:calc(100dvh - 120px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overscroll-behavior-y:contain;scrollbar-width:thin;flex-direction:column;min-height:0;padding:1px 2px 6px;display:flex;position:sticky;overflow-y:auto}.play-performance{grid-area:performance}.play-heading{align-items:center;padding:0}.play-heading h1,.tutorial-topline h1{margin-top:2px;font-size:clamp(1.65rem,2.7vw,2.35rem);line-height:1}.view-toggle button{min-height:44px}.transport{border-radius:14px;grid-template-columns:44px minmax(136px,1fr) 44px 44px;gap:4px;margin-top:8px;padding:4px}.transport button,.tempo-control>button{min-height:44px}.tempo-control{grid-template-columns:44px minmax(48px,1fr) 44px;gap:2px}.subdivision-filter button{min-height:44px}.deck-library{border-radius:16px;margin-top:8px;padding:10px}.play-lane__header h2,.deck-library__header h2{margin-top:2px;font-size:1.4rem}.play-lane__scroll{grid-auto-columns:calc(25% - 4.5px);gap:6px;margin:8px 0 0;padding:4px 0 8px;scroll-padding-inline:0}.play-performance>.tap-pad,.tutorial-performance>.tap-pad{border-radius:18px;flex:1 0 136px;min-height:136px;margin-top:0;font-size:clamp(1.5rem,2.4vw,2.1rem)}.play-performance>.audio-help-link,.tutorial-performance>.audio-help-link{flex:0 0 44px;min-height:44px;margin:4px auto 0}.play-score{flex:none;margin-top:8px}.deck-library{grid-area:deck;margin-top:0}.deck-grid{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:14px 10px}.tutorial-screen{grid-template-areas:"learning performance"}.tutorial-learning{flex-direction:column;grid-area:learning;display:flex}.tutorial-performance{grid-area:performance}.lesson-progress{order:1;margin-top:8px}.lesson-progress button{min-height:44px}.tutorial-phrase{order:2;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:8px 0 0;padding:4px 0 8px;scroll-padding-inline:0;overflow-x:auto}.tutorial-pace{order:3;margin:8px 0 10px}.tutorial-actions{order:4;margin-top:4px}.lesson-story{order:5;margin-top:10px;padding:12px}.tutorial-completion{flex:none;scroll-margin-block-end:8px}.tutorial-completion .score-panel{margin-top:8px;padding:10px}.lesson-nav{margin-top:6px}}@media (orientation:landscape) and (width>=560px) and (height<=340px){.play-screen,.tutorial-screen{padding-top:6px}.play-heading .eyebrow{display:none}.play-heading h1{font-size:1.5rem}.transport{margin-top:4px}.play-lane{margin-top:5px}.play-lane__scroll{margin-top:2px;padding-bottom:6px}.lesson-progress,.tutorial-phrase{margin-top:4px}.tutorial-phrase{padding-bottom:4px}.tutorial-actions{margin-top:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.landscape-swap{display:none}@media (orientation:landscape) and (width>=560px){.landscape-swap{border:1px solid var(--line);min-height:44px;color:inherit;background:var(--surface);font:inherit;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:6px 10px;font-size:.8rem;display:inline-flex}.landscape-swap[aria-pressed=true]{background:var(--ink);color:var(--surface)}.play-screen--pad-left{grid-template-columns:minmax(0,44fr) minmax(0,56fr)}}@media (orientation:landscape) and (width>=560px) and (height<=599px){.tutorial-learning .lesson-progress{order:5}.tutorial-learning .lesson-story{order:6}.tutorial-pace{align-items:center;gap:var(--control-group-gap) 8px;grid-template-columns:56px minmax(0,1fr);margin:6px 0;display:grid}.tutorial-pace__heading{flex-direction:column;align-items:flex-start;gap:3px;margin-bottom:0}.tutorial-pace__options button{min-height:44px}.tutorial-pace>p{grid-column:2;margin:0}.play-screen,.tutorial-screen{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.play-screen--pad-left{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}.play-lane__scroll{grid-auto-columns:max(104px,25% - 4.5px)}.tutorial-phrase{grid-template-columns:none;grid-auto-columns:max(104px,25% - 4.5px);grid-auto-flow:column}}.score-panel--waiting{display:none}@media (orientation:landscape) and (width>=560px){.play-score,.tutorial-completion .score-panel{flex:0 0 64px;gap:10px;height:64px;min-height:64px;padding:8px 10px;animation:none;display:grid}.play-score{background:var(--green-soft)}.score-panel--waiting{background:var(--surface)}.play-score .score-panel__number,.tutorial-completion .score-panel__number{font-variant-numeric:tabular-nums;justify-content:center;align-items:baseline;display:flex}.play-score .score-panel__number strong,.tutorial-completion .score-panel__number strong{font-size:1.75rem}.play-score h2,.tutorial-completion .score-panel h2{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.9rem;line-height:1.15;display:-webkit-box;overflow:hidden}.play-score p,.tutorial-completion .score-panel p{display:none}.score-panel--waiting strong,.score-panel--waiting h2{color:var(--muted)}}.settings-header-button{min-width:48px;min-height:48px;color:var(--ink,#111112);background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.origin-screen[hidden]{display:none}.settings-page{width:100%;max-width:1200px;margin:0 auto;padding:24px 20px 100px;animation:.2s cubic-bezier(.25,1,.5,1) settings-enter}@keyframes settings-enter{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.settings-columns,.settings-column{gap:24px;min-width:0;display:grid}.settings-page h2{letter-spacing:-.5px;margin:0 0 12px;font:800 1.625rem/1.15 "Source Sans 3 Variable",sans-serif}.settings-intro h2{letter-spacing:-1.4px;margin:6px 0;font-size:2.625rem}.settings-intro p{color:#66676b;margin:0}.settings-intro .eyebrow{letter-spacing:2px;font-size:.6875rem;font-weight:800}.settings-preview{color:#f5f4f0;background:#111112;border-radius:20px;padding:16px}.settings-preview__top{letter-spacing:2px;justify-content:space-between;align-items:center;font-size:.6875rem;font-weight:700;display:flex}.settings-preview button{color:#f5f4f0;background:0 0;border:1px solid #f5f4f0;border-radius:50%;place-items:center;min-width:48px;min-height:48px;display:grid}.settings-preview__phrase{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:12px 0;display:grid}.settings-preview__phrase .rhythm-card{width:100%;min-width:0;height:66px}.settings-preview small{color:#c2c2c2}.sound-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));gap:8px;display:grid}.sound-choice{background:#fff;border:1px solid #deded9;border-radius:14px;align-items:center;min-width:0;transition:border-color .12s,background-color .12s;display:flex;overflow:hidden}.sound-choice--original{grid-column:1/-1}.sound-choice.is-selected{background:#f4fbf6;border-color:#27844e;box-shadow:inset 0 0 0 1px #27844e}.sound-choice__select{text-align:left;color:#111112;background:0 0;border:0;flex:1;align-items:center;gap:10px;min-width:0;min-height:88px;padding:12px;display:flex}.sound-choice strong,.sound-choice small{overflow-wrap:anywhere;display:block}.sound-choice strong{font-size:1rem;line-height:1.2}.sound-choice small{color:#66676b;margin-top:3px;font-size:.8125rem}.sound-choice__icon{flex-shrink:0;display:block}.sound-choice__check{color:#27844e;flex-shrink:0}.sound-choice__preview{background:0 0;border:0;border-radius:50%;flex-shrink:0;place-items:center;width:48px;min-height:48px;display:grid}.default-badge{color:#246c46;background:#daefe1;border-radius:20px;flex-shrink:0;margin-left:auto;padding:4px 8px;font-size:.625rem;font-weight:800}.settings-volumes{padding:0 4px}.volume-control{padding:10px 0}.volume-control__label{align-items:center;gap:12px;display:flex}.volume-control label{margin-right:auto;font-size:1.125rem;font-weight:700}.volume-control output{color:#66676b;text-align:right;min-width:45px}.volume-control input{accent-color:#111112;width:100%;min-height:48px;margin:0}.volume-control.is-muted input{opacity:.4;transition:opacity .12s}.settings-caption,.settings-save{color:#66676b;margin:0;font-size:.875rem}.settings-save{margin-top:16px}.settings-save button{min-height:48px;margin-left:12px}.settings-group{background:#fff;border:1px solid #deded9;border-radius:18px;overflow:hidden}.settings-row{text-align:left;color:#111112;background:0 0;border:0;border-bottom:1px solid #deded9;align-items:center;gap:12px;width:100%;min-height:64px;padding:12px 16px;font:700 1.0625rem/1.3 "Source Sans 3 Variable",sans-serif;display:flex}.settings-row:last-child{border-bottom:0}.settings-row>span:first-child,.settings-row__body{flex:1}.settings-row small{color:#66676b;font-size:.875rem;font-weight:400;display:block}.settings-switch{background:0 0;border:0;border-radius:30px;width:50px;min-width:50px;min-height:48px;padding:0;position:relative}.settings-switch:before{content:"";background:#777;border-radius:30px;transition:background .16s;position:absolute;inset:9px 0}.settings-switch span{background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .16s cubic-bezier(.25,1,.5,1);position:absolute;top:12px;left:3px}.settings-switch[aria-checked=true]:before{background:#27844e}.settings-switch[aria-checked=true] span{transform:translate(20px)}.settings-switch:disabled{opacity:.45}.settings-page__heading{margin:0 0 24px;font-size:1.875rem}.settings-article{max-width:720px}.settings-article section{border-bottom:1px solid #deded9;padding:16px 0}.settings-article p{color:#55565a;line-height:1.6}.settings-article a{color:#246c46;text-decoration:underline}.settings-article fieldset{border:1px solid #deded9;border-radius:14px;margin:24px 0 8px;padding:12px}.settings-article legend{font-weight:700}.settings-article fieldset label{align-items:center;gap:12px;min-height:48px;display:flex}.settings-error{color:#a32426}.settings-confirm-backdrop{z-index:1000;background:#11111288;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.settings-confirm{background:#fff;border-radius:18px;max-width:420px;padding:24px}.settings-confirm button{min-height:48px;margin-right:12px}.settings-page button,.settings-header-button{transition:transform .12s cubic-bezier(.25,1,.5,1)}.settings-page button:active,.settings-header-button:active{transition:transform 90ms;transform:scale(.97)}.settings-page :focus-visible,.settings-header-button:focus-visible{outline-offset:3px;outline:2px solid #246c46}@media (orientation:landscape) and (width>=560px){.settings-columns{grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));align-items:start}.settings-page{padding-top:20px}.settings-volumes{background:#fff;border:1px solid #deded9;border-radius:18px;padding:16px}}@media (width<=359px){.sound-grid{grid-template-columns:1fr}.settings-intro h2{font-size:2.25rem}.settings-page{padding-inline:16px}}@media (width>=950px){.sound-choice__icon{display:block}}html[data-reduced-motion=true] *,html[data-reduced-motion=true] :before,html[data-reduced-motion=true] :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}html[data-reduced-motion=true] .settings-page button:active,html[data-reduced-motion=true] .settings-header-button:active{transform:none}@media (prefers-reduced-motion:reduce){.settings-page{animation:none}.settings-page button:active,.settings-header-button:active{transform:none}}.app-shell--settings .app-header,.app-shell--settings .bottom-nav{background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none}.app-shell--settings .app-header__title{white-space:normal;color:var(--ink);font-size:1rem;line-height:1.15}@media (orientation:landscape) and (width>=560px){.app-shell--settings .app-header{min-height:48px;padding-block:0}.app-shell--settings .bottom-nav{border-radius:0;width:100%;max-width:none;padding-block:0;bottom:0;left:0;right:0;translate:none}.app-shell--settings .bottom-nav button{flex-direction:row;gap:8px;min-height:48px}}@media (width<=359px){.app-shell--settings .app-header{gap:4px;padding-inline:8px}.app-shell--settings .app-header__identity{gap:4px}.app-shell--settings .brand-mark--compact{width:60px}}@media (width<=559px){.sound-choice__select{flex-wrap:wrap}.default-badge{margin-left:0}}.sound-choice:not(.sound-choice--original) .sound-choice__select{flex-direction:column;align-items:flex-start;gap:6px}@keyframes settings-leave{to{opacity:0;transform:translate(-16px)}}::view-transition-old(root){animation:.15s cubic-bezier(.25,1,.5,1) both settings-leave}::view-transition-new(root){animation:.2s cubic-bezier(.25,1,.5,1) both settings-enter}@media (prefers-reduced-motion:reduce){::view-transition-old(root){animation:none}::view-transition-new(root){animation:none}}.sound-choice__check{transition:opacity .12s}.sound-choice:not(.sound-choice--original) .sound-choice__check{position:absolute;top:10px;right:10px}.sound-choice__select{position:relative}.settings-column{grid-template-columns:minmax(0,1fr)}.app-shell--settings{overflow-x:clip}.settings-row>span:first-child,.settings-row__body{overflow-wrap:anywhere;min-width:0}.volume-control__label{flex-wrap:wrap}.volume-control label{overflow-wrap:anywhere;min-width:0;max-width:100%}.home-discover{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.home-discover button,.play-guide-link{border:1px solid var(--line);background:var(--surface);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;transition:transform 90ms var(--ease-out), border-color .1s linear;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-size:.9rem;font-weight:750;display:inline-flex}.home-discover button:active,.play-guide-link:active{transform:scale(.97)}@media (hover:hover){.home-discover button:hover,.play-guide-link:hover{border-color:var(--ink)}}.physical-deck{border:1px solid var(--line);background:var(--surface);border-radius:18px;gap:16px;margin-top:32px;padding:24px;display:grid}.physical-deck h2{margin:6px 0;font-size:1.65rem;line-height:1.15}.physical-deck p{max-width:54ch;color:var(--muted);margin:0;line-height:1.5}.physical-deck a{width:fit-content;min-height:48px;color:var(--ink);text-decoration:none}.physical-deck small{color:var(--muted);font-size:.75rem}.why-abel{max-width:760px;margin:auto;padding:28px 20px 100px}.why-abel h1{letter-spacing:-.04em;margin:10px 0 16px;font-size:clamp(2.3rem,6vw,3.8rem);line-height:1}.why-abel h1:focus{outline:none}.why-abel__intro{max-width:42ch;color:var(--muted);font-size:1.15rem;line-height:1.5}.why-example{background:var(--surface);border:1px solid var(--line);border-radius:18px;margin:28px 0;padding:14px}.why-example__cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.why-example__cards>div{min-width:0}.why-example__cards .rhythm-card{width:100%;min-width:0}.why-example__cards .music-notation{width:84%;height:68%;inset:0 8% 32%}@media (width<=359px){.why-example__cards{grid-template-columns:repeat(2,minmax(0,1fr))}}.why-example__cards>div>span{text-align:center;color:var(--muted);margin-top:8px;font-size:.75rem;display:block}.why-example__controls{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.why-example__controls button{border:1px solid var(--line);background:var(--surface);border-radius:12px;align-items:center;gap:8px;min-height:48px;padding:12px;font-weight:700;display:flex}.why-principles>section{border-bottom:1px solid var(--line);gap:20px;padding:20px 0;display:flex}.why-principles__number{color:var(--green);font-size:1.4rem;font-weight:800}.why-principles h2,.why-transfer h2{margin:0 0 8px;font-size:1.6rem}.why-principles p,.why-transfer p{color:var(--muted);max-width:60ch;margin:0;line-height:1.6}.why-transfer{gap:16px;margin-top:32px;display:grid}.why-transfer__diagram{flex-wrap:wrap;align-items:center;gap:12px;font-weight:750;display:flex}.why-transfer .primary-action{align-items:center;gap:12px;width:fit-content;display:flex}.why-transfer small{color:var(--muted)}.play-screen .transport{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.play-screen .tempo-control{flex:1;min-width:156px}.play-screen .transport__play{flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:8px 12px;display:flex}.play-screen .transport__play span{font-size:.7rem;font-weight:750}.play-screen .transport__toggle{width:auto;padding:10px}.play-screen .play-lane__scroll{scrollbar-width:thin;scrollbar-color:var(--muted) transparent}.play-screen .play-lane__scroll::-webkit-scrollbar{height:4px;display:block}.play-screen .play-lane__scroll::-webkit-scrollbar-thumb{background:var(--muted);border-radius:4px}.orientation-hint{color:var(--muted);margin-top:6px;font-size:.75rem;display:block}.filter-caption,.deck-library__header p{color:var(--muted);font-size:.75rem;line-height:1.4}.sound-off-note{color:var(--muted);font-size:.8rem;line-height:1.5}.sound-off-note button{background:0 0;min-height:44px;padding:8px;font-weight:700;text-decoration:underline}.guide-banner{top:calc(60px + env(safe-area-inset-top));z-index:8;background:var(--surface);border:1px solid var(--line);border-radius:14px;align-items:flex-start;gap:16px;padding:14px;display:flex;position:sticky;box-shadow:0 4px 16px #0000000c}.guide-banner>div{flex:1;min-width:0}.guide-banner h2{margin:4px 0;font-size:1.15rem;line-height:1.2}.guide-banner p{color:var(--muted);margin:0;font-size:.85rem;line-height:1.4}.guide-banner>button{border:1px solid var(--line);background:var(--surface);border-radius:10px;min-height:44px;padding:8px 12px;font-weight:700}.play-screen--guided [data-guide-target]{scroll-margin-block:180px}.play-screen--guided[data-guide-step=deck] [data-guide-target=deck],.play-screen--guided[data-guide-step=transport] [data-guide-target=transport],.play-screen--guided[data-guide-step=view] [data-guide-target=view],.play-screen--guided[data-guide-step=pad] [data-guide-target=pad],.play-screen--guided[data-guide-step=preview] [data-guide-target=preview]{outline:2px solid var(--green);outline-offset:4px;border-radius:14px}@media (orientation:landscape) and (width>=560px){.orientation-hint{display:none}.play-screen--guided{grid-template-areas:"guide guide""workspace performance""deck performance"}.guide-banner{top:calc(50px + env(safe-area-inset-top));grid-area:guide}.play-screen--guided .play-performance{top:calc(180px + env(safe-area-inset-top));height:calc(100dvh - 240px);min-height:136px}}.play-screen--guided .play-heading h1{font-size:1.5rem;line-height:1.2}.play-screen--guided .play-heading .eyebrow{display:none}.guide-banner h2:focus{outline:none}@media (orientation:landscape) and (width>=560px){.play-screen{grid-template-areas:"workspace performance""lane performance""deck performance"}.play-screen.play-screen--pad-left{grid-template-areas:"performance workspace""performance lane""performance deck"}.play-heading{gap:var(--control-group-gap);flex-wrap:wrap}.play-heading>div:first-child{flex:200px;min-width:0}.play-heading .landscape-swap{white-space:nowrap;flex:none}.play-heading .play-guide-link{white-space:nowrap}.play-lane{top:calc(52px + env(safe-area-inset-top));z-index:3;background:var(--canvas);grid-area:lane;padding-bottom:8px;position:sticky}.play-lane .lane-feedback{margin-top:4px;font-size:.72rem}.play-lane .swipe-hint{font-size:.65rem}.play-screen--guided{grid-template-areas:"guide guide""workspace performance""lane performance""deck performance"}.play-screen--guided.play-screen--pad-left{grid-template-areas:"guide guide""performance workspace""performance lane""performance deck"}.play-screen--guided .play-lane{position:static}}.tempo-control input.tempo-exact{width:3.2em;min-height:44px;color:inherit;font:inherit;text-align:center;appearance:textfield;background:0 0;border:0;padding:0}.tempo-exact::-webkit-inner-spin-button{appearance:none;margin:0}.tempo-exact::-webkit-outer-spin-button{appearance:none;margin:0}.practice-options{margin-top:var(--control-group-gap);border-block:1px solid var(--line)}.practice-options summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-height:48px;font-size:.875rem;font-weight:700;display:flex}.practice-options summary:after{content:"+";font-size:1.3rem}.practice-options[open] summary:after{content:"−"}.practice-options summary>span{color:var(--muted);margin-left:auto;font-size:.75rem;font-weight:400}.practice-options__body{gap:16px;padding:8px 0 20px;display:grid}.practice-options__body>label{gap:6px;font-size:.875rem;font-weight:700;display:grid}.practice-options select{border:1px solid var(--line-strong);background:var(--surface);width:100%;min-height:48px;color:var(--ink);font:inherit;border-radius:10px;padding:8px 12px;font-weight:400}.practice-options small{color:var(--muted);font-size:.8rem;font-weight:400}.practice-options .practice-check{align-items:center;gap:12px;min-height:48px;display:flex}.practice-check input{width:22px;height:22px;accent-color:var(--green-dark)}.practice-check small{display:block}.session-warning{padding:12px 0;font-size:.875rem}.session-warning button{background:0 0;border:0;min-height:44px;font-weight:700;text-decoration:underline}.upcoming-cards{align-items:center;gap:8px;min-height:72px;padding-block:8px;display:flex}.upcoming-cards>span{width:44px;color:var(--muted);letter-spacing:.04em;font-size:.65rem;font-weight:800}.upcoming-cards>div{pointer-events:none;width:90px}.upcoming-cards .rhythm-card{width:100%;height:60px;min-height:60px}.upcoming-cards .rhythm-card__brand{width:20px}.upcoming-cards .rhythm-card__letter,.upcoming-cards .rhythm-card__index{font-size:.6rem}.upcoming-cards .hit-mark{width:8px;height:8px}.upcoming-cards .rest-dash{width:10px;height:4px}.random-pool{flex-wrap:wrap;align-items:center;gap:8px;padding-block:8px;display:flex}.random-pool button{border:1px solid var(--line);background:var(--surface);border-radius:8px;min-height:44px;padding:6px 10px;font-size:.8rem;font-weight:700}.random-pool button[aria-pressed=true]{background:var(--ink);color:var(--surface);border-color:var(--ink)}.random-pool>span{color:var(--muted);font-size:.8rem}.review-passage{border:1px solid var(--line-strong);background:var(--surface);text-align:left;border-radius:10px;flex-wrap:wrap;justify-content:space-between;gap:8px;min-height:48px;padding:12px;font-weight:700;display:flex}.review-passage span{color:var(--muted);font-weight:400}.practice-screen{max-width:760px;margin-inline:auto;padding:28px 20px 112px}.practice-intro{margin-bottom:32px}.practice-intro h1{font-family:var(--font-display);letter-spacing:-.02em;margin:8px 0;font-size:2.75rem;font-weight:700;line-height:1.02}.practice-intro p{max-width:48ch;color:var(--muted);margin:12px 0 0}.practice-menu{border-top:1px solid var(--line)}.practice-menu>button{border:0;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;align-items:center;gap:16px;width:100%;padding:24px 0;display:flex}.practice-menu__number{color:var(--muted-2);font-family:var(--font-display);align-self:start;font-size:1.5rem}.practice-menu>button>span:nth-child(2){flex:1;gap:5px;display:grid}.practice-menu small{color:var(--green-dark);font-size:.75rem;font-weight:700}.practice-menu strong{font-family:var(--font-display);font-size:1.75rem;line-height:1.15}.practice-menu span span{color:var(--muted);font-size:.875rem}.practice-menu svg{flex-shrink:0}.practice-screen fieldset{border:0;min-width:0;margin:0 0 24px;padding:0}.practice-screen legend{margin-bottom:12px;padding:0;font-size:.875rem;font-weight:700}.practice-segments{flex-wrap:wrap;gap:8px;display:flex}.practice-segments button{border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;border-radius:10px;min-height:48px;padding:8px 16px;font-weight:700}.practice-segments button[aria-pressed=true]{background:var(--ink);color:var(--surface);border-color:var(--ink)}.practice-vocabulary__cards{grid-template-columns:repeat(auto-fill,minmax(66px,1fr));gap:6px;margin-top:16px;display:grid}.practice-vocabulary__cards .rhythm-card{width:100%;height:54px;min-height:54px}.practice-vocabulary__cards .rhythm-card__brand{width:18px}.practice-vocabulary__cards .rhythm-card__letter{font-size:.6rem}.practice-vocabulary__cards .hit-mark{width:7px;height:7px}.practice-vocabulary__cards .rest-dash{width:8px;height:3px}.practice-start,.daily-phrase,.grouping-practice{padding-top:8px}.practice-screen h2{font-family:var(--font-display);margin:0 0 12px;font-size:1.75rem;line-height:1.1}.practice-start>p,.daily-phrase>p,.grouping-practice>p{max-width:52ch;color:var(--muted);margin:0 0 24px}.practice-screen .primary-action,.practice-screen .secondary-action{cursor:pointer;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:12px 20px;display:inline-flex}.practice-screen .primary-action{border:1px solid var(--ink);background:var(--ink);color:var(--surface);border-radius:12px;font-weight:700}.practice-screen .secondary-action{border:1px solid var(--line-strong);background:var(--surface);border-radius:12px;font-weight:700}.practice-footnote,.practice-caption{color:var(--muted);margin-top:24px;font-size:.875rem}.practice-preview,.dictation-solution{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:24px 0;display:grid}.practice-preview .rhythm-card,.dictation-solution .rhythm-card{width:100%}.dictation-listen{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.dictation-listen h2{margin-bottom:0}.dictation-pulse{gap:8px;margin:24px 0;display:flex}.dictation-pulse span{border:1px solid var(--line);border-radius:50%;place-items:center;width:32px;height:32px;font-size:.8rem;display:grid}.dictation-pulse span.is-current{background:var(--yellow);border-color:var(--ink)}.dictation-answer{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.dictation-slot{border:1px dashed var(--line-strong);text-align:center;border-radius:12px;align-content:center;justify-items:stretch;min-width:0;min-height:108px;display:grid}.dictation-slot:has(.rhythm-card){border:0}.dictation-slot .rhythm-card{width:100%}.dictation-slot__number{color:var(--muted-2);font-family:var(--font-display);font-size:2rem}.dictation-slot small,.dictation-slot>span:last-child:not(.dictation-slot__number){color:var(--muted);font-size:.75rem}.dictation-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.dictation-result{border-block:1px solid var(--line);margin-top:24px;padding-block:16px}.dictation-result strong{align-items:center;gap:8px;font-size:1.25rem;display:flex}.dictation-result.is-correct strong{color:var(--green-dark)}.dictation-result p{color:var(--muted);margin-bottom:0}.practice-actions{flex-wrap:wrap;gap:8px;margin-top:24px;display:flex}.grouping-preview{flex-wrap:wrap;gap:16px;margin:32px 0;display:flex}.grouping-preview>div{gap:4px;display:flex}.grouping-preview span{background:var(--ink);width:40px;height:56px;color:var(--surface);border-radius:8px;place-items:center;font-size:1.25rem;font-weight:700;display:grid}.grouping-preview .is-accent{color:var(--yellow);box-shadow:inset 0 0 0 2px var(--yellow-dark)}select:focus-visible,summary:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}@media (width>=600px){.practice-screen{padding-top:40px}.practice-intro h1{font-size:3.5rem}.practice-vocabulary__cards{grid-template-columns:repeat(auto-fill,minmax(88px,1fr))}.dictation-answer,.dictation-choices{grid-template-columns:repeat(4,minmax(0,1fr))}.practice-options__body{grid-template-columns:1fr 1fr}.practice-check{grid-column:1/-1}}@media (height<=540px) and (orientation:landscape){.practice-options summary>span{display:none}.upcoming-cards{min-height:50px;padding:4px 0}.upcoming-cards .rhythm-card{height:42px;min-height:42px}.upcoming-cards>div{width:64px}}.play-heading .play-guide-link{margin-top:var(--control-group-gap)}.mode-choice--practice .mode-choice__icon{background:var(--yellow-soft);color:var(--ink)}.play-screen .transport__toggle .control-state{margin-left:4px;font-size:.72rem;font-weight:750;display:inline-block}.practice-options .preview-option{grid-template-columns:18px 1fr;align-items:center;column-gap:8px;display:grid}.preview-option small{grid-column:2}.play-tips{margin-top:var(--control-group-gap);border:1px solid var(--line);background:var(--surface);border-radius:12px;flex-shrink:0}.play-tips summary{cursor:pointer;align-items:center;gap:8px;min-height:48px;padding:10px 14px;font-size:.875rem;font-weight:700;list-style:none;display:flex}.play-tips summary::-webkit-details-marker{display:none}.play-tips summary>svg:last-child{margin-left:auto}.play-tips[open] summary>svg:last-child{transform:rotate(180deg)}.play-tips ul{gap:10px;margin:0;padding:0 14px 14px;list-style:none;display:grid}.play-tips li{color:var(--muted);grid-template-columns:18px 1fr;align-items:start;gap:10px;font-size:.8rem;line-height:1.4;display:grid}.play-tips li svg{color:var(--ink)}.play-performance>.play-tips+.audio-help-link{margin-top:4px}.up-next-toggle{border:1px solid var(--line);background:var(--surface);min-height:48px;color:var(--ink);font:inherit;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:8px 12px;font-size:.8rem;display:inline-flex}.up-next-toggle[aria-pressed=true]{background:var(--ink);color:var(--surface)}@media (orientation:landscape) and (width>=560px){.tutorial-learning .upcoming-cards{grid-column:1/-1}.play-performance .play-tips{margin-top:var(--control-group-gap)}}@media (orientation:portrait){.play-heading h1{font-size:2.5rem;line-height:1.05}}.play-screen .transport__toggle>span{font-size:.72rem}@media (orientation:landscape) and (width>=560px) and (height<=599px){.tutorial-pace .up-next-toggle{grid-column:2}}
