.reflex-app .hearing-setup{grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:clamp(32px,6vw,80px);display:grid}.reflex-app .hearing-intro h1{letter-spacing:-.035em;margin:20px 0 24px;font-size:clamp(40px,4.8vw,64px);line-height:1.35}.reflex-app .hearing-intro h1 span{color:var(--accent);font-weight:400}.reflex-app .hearing-intro>p:not(.eyebrow){color:var(--muted);font-size:17px;line-height:1.85}.reflex-app .hearing-emblem{border-block:1px solid var(--line);align-items:center;height:200px;margin-top:44px;display:flex;position:relative;overflow:hidden}.reflex-app .hearing-emblem i{border:1px solid var(--brand-bright);opacity:.7;border-radius:50%;width:190px;height:110px;position:absolute;left:-32px;rotate:-25deg}.reflex-app .hearing-emblem i:nth-child(2){opacity:.4;left:4px}.reflex-app .hearing-emblem i:nth-child(3){opacity:.2;left:40px}.reflex-app .hearing-emblem b{z-index:1;font:13px/1.8 var(--ui-font);letter-spacing:.12em;color:var(--muted);margin-left:auto}.reflex-app .hearing-kind{gap:0;margin-bottom:20px;display:grid}.reflex-app .hearing-kind button{text-align:left;border:0;border-bottom:1px solid var(--line);min-height:86px;color:var(--ink);background:0 0;grid-template-columns:28px 1fr;gap:4px 12px;padding:16px 0;display:grid}.reflex-app .hearing-kind button small{color:var(--muted);grid-row:1/3;padding-top:4px;font:13px ui-monospace,monospace}.reflex-app .hearing-kind strong{font-size:20px;font-weight:500}.reflex-app .hearing-kind button>span{color:var(--muted);font-size:14px;line-height:1.7}.reflex-app .hearing-kind button[aria-pressed=true]{border-bottom-color:var(--brand-bright)}.reflex-app .hearing-kind button[aria-pressed=true] strong{color:var(--accent)}.reflex-app .hearing-options{flex-wrap:wrap;gap:20px;margin:24px 0;display:flex}.reflex-app .hearing-options label{color:var(--muted);gap:8px;font-size:15px;display:grid}.reflex-app .hearing-options select{border:1px solid var(--line);background:var(--panel);min-height:46px;color:var(--ink);border-radius:2px;max-width:100%;padding:8px 12px}.reflex-app .hearing-auto{cursor:pointer;align-items:center;gap:12px;min-height:64px;margin:0 0 20px;display:flex}.reflex-app .hearing-auto input{width:21px;height:21px;accent-color:var(--accent);flex-shrink:0}.reflex-app .hearing-auto span{gap:5px;display:grid}.reflex-app .hearing-auto strong{font-size:16px;font-weight:500}.reflex-app .hearing-auto small{color:var(--muted);font-size:14px;line-height:1.6}.reflex-app .retry-source{color:var(--muted);border-left:2px solid var(--accent);padding-left:14px;font-size:15px;line-height:1.8}.reflex-app .hearing-comparison{margin:24px 0 20px}.reflex-app .comparison-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.reflex-app .comparison-heading strong{font-size:18px;font-weight:500}.reflex-app .comparison-heading>span{color:var(--muted);font-size:14px}.reflex-app .comparison-lane{border:0;border-top:1px solid var(--line);text-align:left;width:100%;min-height:80px;color:var(--ink);background:0 0;align-items:center;gap:18px;padding:14px 4px;transition:background-color .1s;display:flex}.reflex-app .comparison-label{flex:1;gap:5px;min-width:0;display:grid}.reflex-app .comparison-label small{color:var(--muted);font-size:13px}.reflex-app .comparison-label strong{font-size:20px;font-weight:500;line-height:1.5}.reflex-app .comparison-tones{flex-shrink:0;gap:6px;display:flex}.reflex-app .comparison-tones b{text-align:center;min-width:30px;font:500 20px/1.6 var(--ui-font);color:var(--muted)}.reflex-app .comparison-tones .tone-difference{color:var(--ink);border-bottom:2px solid}.reflex-app .comparison-lane.chosen .tone-difference{color:var(--amber);border-bottom-style:dashed}.reflex-app .comparison-play{color:var(--muted);margin-inline:4px;font-size:15px}.reflex-app .comparison-lane[aria-pressed=true]{background:#f3efe708}.reflex-app .comparison-lane[aria-pressed=true] .comparison-play{color:var(--ink);animation:.45s ease-out comparison-beat}.reflex-app .hearing-comparison>p{color:var(--muted);margin:12px 0;font-size:15px;line-height:1.85}.reflex-app .comparison-label small{font-size:14px}.reflex-app .hearing-session[data-outcome=wrong] .hearing-reveal{border-top:0;padding-top:0}@keyframes comparison-beat{0%{transform:scale(1.35)}to{transform:scale(1)}}@media (hover:hover){.reflex-app .comparison-lane:hover{background:#f3efe708}.reflex-app .comparison-lane:hover .comparison-play{color:var(--ink)}}@media (width<=600px){.reflex-app .comparison-lane{gap:8px;padding:12px 0}.reflex-app .comparison-label strong{font-size:17px}.reflex-app .comparison-tones{gap:3px}.reflex-app .comparison-tones b{min-width:24px;font-size:18px}.reflex-app .comparison-play{margin:0;font-size:13px}.reflex-app .hearing-comparison{margin-top:20px}}@media (prefers-reduced-motion:reduce){.reflex-app .comparison-lane{transition:none}.reflex-app .comparison-lane .comparison-play{animation:none!important}}.reflex-app .hearing-range{border-block:1px solid var(--line);margin:0 0 26px;padding-block:18px}.reflex-app .hearing-range summary{cursor:pointer;min-height:32px;font-size:15px}.reflex-app .hearing-range summary::marker{color:var(--accent)}.reflex-app .hearing-range .relation-options button{font:15px/1.5 var(--ui-font);border-radius:2px}.reflex-app .hearing-settings>.primary-button{z-index:2;justify-content:space-between;width:100%;position:sticky;bottom:12px}.reflex-app .hearing-session:focus{outline:none}.reflex-app main:has(.hearing-session){padding-block:24px}.reflex-app .hearing-session>h1{font:500 clamp(30px,4vw,48px)/1.4 var(--ui-font);margin:20px 0}.reflex-app .listening-surface{border-block:1px solid var(--line);align-items:center;gap:32px;min-height:180px;margin-top:24px;padding:24px 0;display:flex;position:relative}.reflex-app .listen-trigger{color:var(--ink);background:0 0;border:0;flex-direction:column;flex-shrink:0;align-items:center;gap:10px;min-width:112px;padding:4px;font-size:16px;display:flex}.reflex-app .listen-trigger svg{fill:none;width:80px;height:80px;transition:transform .1s;overflow:visible}.reflex-app .listen-trigger circle{stroke:var(--muted);stroke-width:1px}.reflex-app .listen-trigger path{fill:var(--ink)}.reflex-app .listen-trigger:hover circle,.reflex-app .listen-trigger:focus-visible circle{stroke:var(--accent)}.reflex-app .listen-trigger:active svg{transform:scale(.96)}.reflex-app .listening-field{flex:1;justify-content:space-between;align-items:center;gap:6px;min-width:0;height:86px;display:flex}.reflex-app .listening-field i{background:var(--brand-bright);transform-origin:50%;opacity:.4;flex:1;min-width:2px;max-width:6px;height:10px}.reflex-app [data-playing=true] .listening-field i{animation:listening-pulse 1.48s cubic-bezier(.2,.8,.2,1) var(--pulse-delay) both}.reflex-app .listen-caption{color:var(--muted);font-size:13px;position:absolute;bottom:15px;right:0}.reflex-app .hearing-notice{min-height:28px;color:var(--muted);margin:12px 0;font-size:14px;line-height:1.7}.reflex-app .hearing-session .answer-choice span{font-family:var(--ui-font);font-size:24px;line-height:1.5}.reflex-app .hearing-session .answer-choice{background:0 0;border-radius:2px}.reflex-app .hearing-session .summary-score strong,.reflex-app .session-summary .summary-score strong{color:var(--ink)}.reflex-app .hearing-session[data-outcome] .answer-choices{display:none}.reflex-app .hearing-session[data-outcome] .listening-surface{min-height:120px;padding:12px 0}.reflex-app .hearing-session[data-outcome] .listen-trigger svg{width:52px;height:52px}.reflex-app .hearing-session[data-outcome] .listening-field{height:60px}.reflex-app .hearing-reveal{border-top:1px solid var(--line);margin-top:24px;padding-top:20px;animation:.18s ease-out hearing-relation}.reflex-app .hearing-verdict{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.reflex-app .hearing-verdict strong{align-items:center;gap:10px;font-size:18px;font-weight:500;display:flex}.reflex-app .hearing-verdict>span{font-size:26px}.reflex-app .hearing-verdict:not(.correct){color:var(--amber)}.reflex-app .hearing-reveal .review-explanation{color:var(--muted);margin:12px 0 4px;font-size:16px;line-height:1.85}.reflex-app .hearing-reveal>.stage-note{margin:4px 0 12px}.reflex-app .hearing-session:not([data-kind=interval]) .relationship-arrow,.reflex-app .hearing-session:not([data-kind=interval]) .key-markers{display:none}.reflex-app .hearing-session .piano-keyboard{height:224px}.reflex-app .hearing-session .keyboard-caption{font-size:14px}.reflex-app .piano-key.is-sounding{outline-offset:-7px;filter:brightness(1.1);outline:2px solid #fff7e2}.reflex-app .hearing-replay-actions{flex-wrap:wrap;gap:12px;margin-top:16px;display:flex}.reflex-app .hearing-bottom{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:24px;display:flex}.reflex-app .hearing-bottom>p{color:var(--muted);flex:1;font-size:15px;line-height:1.8}.reflex-app .hearing-bottom .primary-button{margin:0}.reflex-app .hearing-bottom:has(.primary-button){z-index:2;background:var(--bg);border-top:1px solid var(--line);padding-block:12px;position:sticky;bottom:0}.reflex-app .hearing-session[data-outcome] .hearing-bottom>p{display:none}.reflex-app .hearing-finish{color:var(--muted);margin-top:14px}.reflex-app .review-strip-section{margin-block:28px}.reflex-app .review-strip-caption{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px;display:flex}.reflex-app .review-strip-caption strong{font-size:17px;font-weight:500}.reflex-app .review-strip-caption>span{color:var(--muted);font-size:14px}.reflex-app .review-strip{grid-template-columns:repeat(10,minmax(0,1fr));gap:6px;display:grid}.reflex-app .review-beat{border:0;border-bottom:2px solid var(--line);min-height:64px;color:var(--muted);background:0 0;flex-direction:column;align-items:center;gap:6px;padding:8px 0;transition:background-color .1s,border-color .1s;display:flex}.reflex-app .review-beat span{font:13px ui-monospace,monospace}.reflex-app .review-beat b{font-size:20px;font-weight:400}.reflex-app .review-beat.correct{color:var(--ink)}.reflex-app .review-beat.wrong{color:var(--amber);border-bottom-style:dashed}.reflex-app .review-beat[aria-pressed=true]{border-bottom-color:var(--ink);background:#f3efe70a}.reflex-app .review-strip-legend{color:var(--muted);font-size:13px;line-height:1.7}@keyframes listening-pulse{0%,to{opacity:.4;scale:1}18%{opacity:1;scale:1 5.8}42%{opacity:.6;scale:1 2.5}65%{opacity:.85;scale:1 4}}@keyframes hearing-relation{0%{clip-path:inset(0 0 100%)}to{clip-path:inset(0)}}@media (hover:hover){.reflex-app .hearing-kind button:hover strong{color:var(--accent)}.reflex-app .review-beat:hover{background:#f3efe70a}}@media (width<=760px){.reflex-app .hearing-setup{grid-template-columns:1fr;gap:28px}.reflex-app .hearing-intro h1{margin:12px 0 16px;font-size:42px}.reflex-app .hearing-emblem{display:none}.reflex-app .hearing-options{gap:18px}.reflex-app .hearing-intro>p:not(.eyebrow){font-size:16px}}@media (width<=600px){.reflex-app .listening-surface{gap:16px;min-height:166px;padding-top:18px}.reflex-app .listen-trigger{min-width:92px;font-size:15px}.reflex-app .listen-trigger svg{width:64px;height:64px}.reflex-app .listening-field{gap:4px}.reflex-app .listen-caption{font-size:14px}.reflex-app .hearing-session .answer-choice{min-height:64px;padding:12px}.reflex-app .hearing-session .answer-choice span{font-size:20px}.reflex-app .hearing-bottom .primary-button{justify-content:space-between;width:100%;min-height:54px}.reflex-app .review-strip{grid-template-columns:repeat(5,minmax(0,1fr))}.reflex-app .hearing-verdict>span{font-size:23px}.reflex-app .hearing-session .question-heading h1{font-size:28px}}@media (prefers-reduced-motion:reduce){.reflex-app .listening-field i{animation:none!important}.reflex-app [data-playing=true] .listening-field i{opacity:.8;height:24px}.reflex-app .hearing-reveal{animation:none}.reflex-app .listen-trigger svg,.reflex-app .review-beat{transition:none}}@media (width<=600px){.reflex-app main:has(.hearing-session){padding-block:16px}.reflex-app .hearing-session .session-bar{margin-bottom:12px}.reflex-app .hearing-bottom:has(.primary-button){gap:8px}.reflex-app .hearing-bottom>p{margin:0;font-size:14px}.reflex-app .hearing-reveal{margin-top:16px;padding-top:14px}}.pointer-field{pointer-events:none;z-index:0;opacity:0;--pointer-x:50vw;--pointer-y:50vh;--pitch-position:50%;--pointer-color:#b72832;transition:opacity .22s;position:fixed;inset:0;overflow:hidden}.pointer-field[data-active=true]{opacity:1}.pointer-horizon{top:var(--pointer-y);border-top:1px solid var(--pointer-color);opacity:.1;position:absolute;left:0;right:0}.pointer-pitch{left:var(--pitch-position);border-left:1px solid var(--pointer-color);opacity:.1;width:1px;transition:left .14s cubic-bezier(.2,.8,.2,1);position:absolute;top:0;bottom:0}.pointer-cross{left:var(--pointer-x);top:var(--pointer-y);opacity:.38;width:26px;height:26px;color:var(--pointer-color);position:absolute;transform:translate(-50%,-50%)}.pointer-cross:before,.pointer-cross:after{content:"";background:var(--pointer-color);position:absolute}.pointer-cross:before{width:1px;height:26px;top:0;left:12px}.pointer-cross:after{width:26px;height:1px;top:12px;left:0}@media (hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.pointer-field{display:none}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#201f1d}body{margin:0}.reflex-app{--bg:#201f1d;--panel:#292825;--line:#45413c;--ink:#f3efe7;--muted:#b4ada3;--accent:#f0a092;--amber:#e4bc84;min-height:100svh;color:var(--ink);flex-direction:column;font-family:system-ui,-apple-system,Segoe UI,sans-serif;display:flex}.reflex-app *,.reflex-app :before,.reflex-app :after{box-sizing:border-box}.reflex-app button,.reflex-app select{font:inherit}.reflex-app button{cursor:pointer;touch-action:manipulation}.reflex-app button:focus-visible,.reflex-app a:focus-visible,.reflex-app select:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.reflex-app a{color:inherit;text-decoration:none}.reflex-app .app-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:84px;padding:16px clamp(12px,5vw,72px);display:flex}.reflex-app .brand{letter-spacing:.06em;align-items:center;gap:12px;font-weight:650;display:flex}.reflex-app .brand-mark{width:40px;height:40px;color:var(--bg);background:var(--accent);border-radius:10px;place-items:center;font-size:25px;display:grid}.reflex-app .brand small{color:var(--muted);letter-spacing:.09em;font:9px/1.6 ui-monospace,monospace;display:block}.reflex-app nav{gap:4px;display:flex}.reflex-app nav button{min-width:44px;min-height:44px;color:var(--muted);background:0 0;border:0;border-radius:7px;padding:10px 14px}.reflex-app nav button[aria-current=page]{color:var(--accent);background:#f0a09210}.reflex-app main{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:clamp(24px,6vw,64px) clamp(12px,4vw,48px)}.reflex-app .eyebrow{color:var(--accent);letter-spacing:.13em;margin:0 0 16px;font:11px/1.5 ui-monospace,monospace}.reflex-app h1{letter-spacing:-.04em;margin:0 0 20px;font-size:clamp(30px,5vw,60px);line-height:1.16}.reflex-app .intro{color:var(--muted);font-size:15px;line-height:1.9}.reflex-app .primary-button{min-height:48px;color:var(--bg);background:var(--accent);border:0;border-radius:8px;align-items:center;gap:36px;margin-top:28px;padding:12px 20px;font-weight:650;display:flex}.reflex-app .stage-note{color:var(--muted);margin-top:16px;font-size:12px;line-height:1.7}.reflex-app .principles{color:var(--muted);flex-wrap:wrap;gap:28px;margin-top:44px;font-size:13px;display:flex}.reflex-app .principles span:before{content:"";background:var(--accent);border-radius:50%;width:5px;height:5px;margin-right:9px;display:inline-block}.reflex-app .empty-panel{border:1px dashed var(--line);color:var(--muted);border-radius:10px;margin-top:24px;padding:28px;font-size:14px}.reflex-app .app-footer{color:var(--muted);border-top:1px solid var(--line);justify-content:space-between;gap:12px;padding:14px clamp(12px,5vw,72px);font-size:11px;display:flex}.reflex-app .practice-screen h1{margin-bottom:10px;font-size:30px}.reflex-app .practice-screen .eyebrow{margin-bottom:8px}.reflex-app .practice-screen .intro{margin:8px 0 16px;font-size:13px;line-height:1.7}.reflex-app .shortcut-explanation{color:var(--muted);margin:12px 0 18px;font-size:11px;line-height:1.7}.reflex-app .preview-panel{min-width:0}.reflex-app .preview-controls{justify-content:space-between;align-items:end;gap:12px;display:flex}.reflex-app .preview-controls label{color:var(--muted);align-items:center;gap:10px;font-size:12px;display:flex}.reflex-app .preview-controls select,.reflex-app .label-toggle{border:1px solid var(--line);min-height:44px;color:var(--ink);background:var(--panel);border-radius:7px;padding:10px 14px}.reflex-app .label-toggle[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.reflex-app .keyboard-legend{color:var(--muted);align-items:center;gap:18px;margin:16px 0 12px;font-size:11px;display:flex}.reflex-app .keyboard-legend span{align-items:center;gap:7px;display:flex}.reflex-app .keyboard-legend span:last-child{margin-left:auto}.reflex-app .root-dot{background:#b72832;border-radius:50%;width:9px;height:9px;display:inline-block}.reflex-app .target-diamond{border:2px solid #9c671c;width:9px;height:9px;display:inline-block;transform:rotate(45deg)}.reflex-app .piano-keyboard{touch-action:none;-webkit-user-select:none;user-select:none;isolation:isolate;background:#302b28;border-radius:7px;width:100%;height:210px;position:relative;box-shadow:0 12px 28px #0004}.reflex-app .piano-keyboard:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.reflex-app .piano-key{touch-action:none;border:0;border-radius:0 0 5px 5px;flex-direction:column;justify-content:end;align-items:center;gap:10px;padding:10px 2px;display:flex;position:absolute;top:0}.reflex-app .piano-key>*{pointer-events:none}.reflex-app .white-key{z-index:1;color:#292421;background:linear-gradient(#fffaf0,#e9e2d7);box-shadow:inset 0 0 0 1px #b6ada0,inset 0 -4px #c7bcae}.reflex-app .black-key{z-index:2;color:#f3efe7;background:linear-gradient(100deg,#44403b,#292521);box-shadow:inset 0 0 0 1px #211d1a,inset 0 -5px #1b1816,0 4px 5px #0005}.reflex-app .key-markers{align-items:center;gap:6px;display:flex;position:absolute;top:25%}.reflex-app .key-markers .root-dot,.reflex-app .key-markers .target-diamond{width:11px;height:11px}.reflex-app .black-key .root-dot{background:var(--accent)}.reflex-app .black-key .target-diamond{border-color:var(--amber)}.reflex-app .key-name{text-align:center;max-width:100%;font:11px/1.2 ui-monospace,monospace;overflow:hidden}.reflex-app .key-name>span{display:block}.reflex-app .piano-key kbd{opacity:.56;font:9px/1 ui-monospace,monospace}.reflex-app .keyboard-caption{color:var(--muted);justify-content:space-between;gap:12px;margin:12px 0 0;font-size:11px;display:flex}.reflex-app .commit-readout{border:1px solid var(--line);min-height:52px;color:var(--muted);background:var(--panel);border-radius:7px;flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px;padding:12px 14px;font-size:12px;display:flex}.reflex-app .commit-readout strong{color:var(--accent);font:16px ui-monospace,monospace}.reflex-app .commit-readout small{margin-left:auto;font-size:10px}.reflex-app .width-warning{color:var(--amber);font-size:12px;line-height:1.6}.reflex-app .too-narrow{opacity:.4}@media (width<=600px){.reflex-app .piano-keyboard{height:180px}.reflex-app .shortcut-explanation{display:none}.reflex-app .keyboard-legend{gap:12px;font-size:10px}.reflex-app .practice-screen .intro{font-size:12px}}@media (width<=359px){.reflex-app main{padding-inline:8px}}@media (width>=780px) and (height<=500px){.reflex-app .app-header{min-height:52px;padding-block:6px}.reflex-app main{padding-block:14px}.reflex-app .practice-screen{grid-template-columns:180px minmax(0,1fr);gap:20px;display:grid}.reflex-app .practice-screen .intro{font-size:11px}.reflex-app .shortcut-explanation{display:none}.reflex-app .piano-keyboard{height:156px}.reflex-app .keyboard-legend{margin-block:10px}.reflex-app .commit-readout{min-height:44px;margin-top:8px;padding:8px}.reflex-app .app-footer{display:none}}@media (width<=480px){.reflex-app .app-header{gap:6px;min-height:70px}.reflex-app .brand{gap:8px;font-size:13px}.reflex-app .brand small{font-size:7px}.reflex-app .brand-mark{width:30px;height:34px}.reflex-app nav button{padding:8px}.reflex-app .app-footer{font-size:10px}}@media (prefers-reduced-motion:reduce){.reflex-app *,.reflex-app :before,.reflex-app :after{scroll-behavior:auto;transition:none!important}}.reflex-app .secondary-button{border:1px solid var(--line);min-height:44px;color:var(--ink);background:var(--panel);border-radius:7px;padding:10px 14px}.reflex-app button:disabled{cursor:default;opacity:.55}.reflex-app .training-screen .piano-key:disabled{opacity:1}.reflex-app .answer-area:has(.answer-choices) .keyboard-caption{display:none}.reflex-app .text-button{min-height:44px;color:var(--accent);background:0 0;border:0;padding:10px 0;font-size:13px}.reflex-app .start-actions,.reflex-app .session-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px;display:flex}.reflex-app .start-actions .primary-button,.reflex-app .session-actions .primary-button{margin:0}.reflex-app .start-options{gap:24px;margin:12px 0;display:flex}.reflex-app .display-settings{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.reflex-app .display-settings label,.reflex-app .focus-options label{color:var(--muted);align-items:center;gap:12px;font-size:12px;display:flex}.reflex-app .display-settings select,.reflex-app .focus-options select{border:1px solid var(--line);background:var(--panel);min-height:44px;color:var(--ink);border-radius:7px;padding:8px 10px}.reflex-app .focus-options{border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;gap:16px;margin-top:20px;padding:20px;display:flex}.reflex-app .focus-options fieldset{width:100%;color:var(--muted);border:0;margin:0;padding:0;font-size:12px}.reflex-app .relation-options{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.reflex-app .relation-options button{border:1px solid var(--line);background:var(--panel);min-width:44px;min-height:44px;color:var(--muted);border-radius:7px;font:18px ui-monospace,monospace}.reflex-app .relation-options button[aria-pressed=true]{color:var(--accent);border-color:var(--accent);background:#f0a09210}.reflex-app .training-screen{min-width:0}.reflex-app .session-bar{color:var(--accent);justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;font:14px ui-monospace,monospace;display:flex}.reflex-app .question-heading h1{overflow-wrap:anywhere;margin:12px 0;font:500 clamp(26px,4vw,42px)/1.3 ui-monospace,system-ui,monospace}.reflex-app .question-heading .eyebrow{margin-bottom:8px}.reflex-app .question-heading .eyebrow span{color:var(--muted);margin-left:10px}.reflex-app .question-instruction{color:var(--muted);margin:0 0 18px;font-size:12px;line-height:1.7}.reflex-app .answer-area{min-width:0}.reflex-app .answer-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.reflex-app .answer-choice{border:1px solid var(--line);min-height:72px;color:var(--ink);background:var(--panel);border-radius:9px;justify-content:space-between;align-items:center;gap:8px;padding:16px 20px;display:flex}.reflex-app .answer-choice span{font:28px ui-monospace,monospace}.reflex-app .answer-choice kbd{color:var(--muted);font:12px ui-monospace,monospace}.reflex-app .answer-choice:active{border-color:var(--accent);background:#f0a09218}.reflex-app .training-feedback{border:1px solid var(--line);background:var(--panel);min-height:60px;color:var(--muted);border-radius:7px;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:20px;padding:10px 14px;font-size:12px;display:flex}.reflex-app .training-feedback.wrong strong,.reflex-app .training-feedback.timeout strong{color:var(--amber)}.reflex-app .training-feedback button{margin-left:auto}.reflex-app .training-feedback button,.reflex-app .training-tools button{min-height:44px;color:var(--ink);background:0 0;border:0;border-radius:6px;padding:8px;font-size:12px}.reflex-app .training-tools{align-items:center;gap:8px;margin-top:8px;display:flex}.reflex-app .training-tools span{color:var(--muted);margin-left:auto;font-size:10px}.reflex-app .pause-panel{min-height:270px;padding:20px 0}.reflex-app .pause-panel h1{font-size:30px}.reflex-app .pause-panel p{color:var(--muted);font-size:13px;line-height:1.8}.reflex-app .pause-panel .pause-solution{color:var(--amber);font:24px ui-monospace,monospace}.reflex-app .summary-score{align-items:center;gap:24px;margin:28px 0;display:flex}.reflex-app .summary-score strong{color:var(--accent);font:60px ui-monospace,monospace}.reflex-app .summary-score strong small{font-size:24px}.reflex-app .summary-score span{color:var(--muted);font-size:13px;line-height:1.8}.reflex-app .summary-table{width:100%;margin-top:24px;overflow-x:auto}.reflex-app .summary-table table{border-collapse:collapse;text-align:left;width:100%;font-size:13px}.reflex-app .summary-table caption{text-align:left;color:var(--muted);margin-bottom:12px;font-size:12px}.reflex-app .summary-table td,.reflex-app .summary-table th{border-bottom:1px solid var(--line);padding:14px 8px}.reflex-app .summary-table small{color:var(--muted);margin-top:5px;font-size:10px;display:block}.reflex-app .purpose-switch{gap:8px;margin-top:24px;display:flex}.reflex-app .purpose-switch button{border:1px solid var(--line);min-width:92px;min-height:44px;color:var(--muted);background:var(--panel);border-radius:8px}.reflex-app .purpose-switch button[aria-pressed=true]{color:var(--bg);background:var(--accent);border-color:var(--accent);font-weight:650}.reflex-app .specialty-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-block:20px;display:grid}.reflex-app .specialty-grid button{text-align:left;border:1px solid var(--line);min-height:88px;color:var(--ink);background:var(--panel);border-radius:9px;padding:16px}.reflex-app .specialty-grid strong,.reflex-app .specialty-grid span{display:block}.reflex-app .specialty-grid span{color:var(--muted);margin-top:8px;font-size:11px;line-height:1.6}.reflex-app .start-screen .display-settings{margin-top:24px}.reflex-app .answer-choice.is-correct:disabled{opacity:1;border-color:var(--accent);color:var(--accent);background:#f0a09218}.reflex-app .answer-choice.was-wrong:disabled{opacity:1;border-color:var(--amber);color:var(--amber)}.reflex-app .review-panel{border:1px solid var(--line);border-radius:10px;margin-top:24px;padding:16px}.reflex-app .review-panel summary{cursor:pointer;min-height:44px;color:var(--accent)}.reflex-app .review-nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-block:12px;display:flex}.reflex-app .review-nav label{align-items:center;gap:8px;font-size:12px;display:flex}.reflex-app .review-nav select{border:1px solid var(--line);min-height:44px;color:var(--ink);background:var(--panel);border-radius:7px;padding:8px}.reflex-app .review-explanation{color:var(--accent);font-size:14px;line-height:1.7}.reflex-app .training-feedback span{overflow-wrap:anywhere}@media (width<=600px){.reflex-app .specialty-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.reflex-app .specialty-grid button{min-height:88px;padding:12px}.reflex-app .review-panel{padding:10px}}@media (width>=601px) and (height>=501px){.reflex-app main:has(.training-screen){padding-block:24px}.reflex-app .training-screen .piano-keyboard{height:180px}.reflex-app .training-screen .answer-choice{min-height:64px}}@media (width<=600px){.reflex-app main:has(.training-screen){padding-top:16px;padding-bottom:16px}.reflex-app .session-bar{margin-bottom:16px}.reflex-app .question-heading h1{margin-block:8px;font-size:26px}.reflex-app .question-instruction{margin-bottom:12px}.reflex-app .training-screen .piano-keyboard{height:144px}.reflex-app .training-screen .keyboard-legend{margin-block:10px}.reflex-app .training-screen .keyboard-caption{margin-top:8px;font-size:10px}.reflex-app .training-screen .answer-choices{gap:8px;margin-top:12px}.reflex-app .training-screen .answer-choice{min-height:54px;padding:8px 14px}.reflex-app .training-screen .answer-choice span{font-size:24px}.reflex-app .training-feedback{min-height:52px;margin-top:12px;padding:8px}.reflex-app .start-screen h1{font-size:38px}.reflex-app .start-screen .principles{gap:20px;margin-top:24px}}@media (width>=780px) and (height<=500px){.reflex-app .session-bar{margin-bottom:10px}.reflex-app .question-view{grid-template-columns:180px minmax(0,1fr);gap:16px;display:grid}.reflex-app .question-heading h1{font-size:26px}.reflex-app .training-screen .piano-keyboard{height:130px}.reflex-app .training-screen .keyboard-legend{margin-top:0}.reflex-app .training-screen .keyboard-caption{margin-top:6px}.reflex-app .training-screen .answer-choices{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}.reflex-app .training-screen .answer-choice{min-height:48px;padding:8px 12px}.reflex-app .training-screen .answer-choice span{font-size:22px}.reflex-app .training-feedback{min-height:44px;margin-top:10px;padding:0 10px}.reflex-app .training-tools{margin-top:2px}.reflex-app .training-bottom{grid-template-columns:minmax(0,1fr) auto;gap:12px;margin-top:10px;display:grid}.reflex-app .training-bottom .training-feedback,.reflex-app .training-bottom .training-tools{margin:0}}.reflex-app .piano-keyboard.compact{height:224px;box-shadow:none}.reflex-app .training-screen .piano-keyboard.compact{height:224px}.reflex-app .key-markers{z-index:1;transform:translateY(-50%)}.reflex-app .key-markers .root-dot,.reflex-app .key-markers .target-diamond{place-items:center;width:22px;height:22px;font:700 13px/1 ui-monospace,monospace;display:grid;box-shadow:0 0 0 2px #fff9,0 2px 5px #0005}.reflex-app .key-markers .root-dot{color:#fff;background:#a4232d}.reflex-app .key-markers .target-diamond{color:#603700;background:#ffe4ad;border:2px solid #ac6712;border-radius:3px}.reflex-app .target-diamond span{transform:rotate(-45deg)}.reflex-app .white-key.is-root{background:linear-gradient(#fff0e9,#e9b6ac);box-shadow:inset 0 0 0 2px #b72832}.reflex-app .white-key.is-target{background:linear-gradient(#fff7e8,#f2dcaf);box-shadow:inset 0 0 0 2px #ac6712}.reflex-app .black-key.is-root{background:#7f3036;box-shadow:inset 0 0 0 2px #f0a092,0 4px 5px #0005}.reflex-app .black-key.is-target{background:#664514;box-shadow:inset 0 0 0 2px #e4bc84,0 4px 5px #0005}.reflex-app .relationship-arrow{z-index:3;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.reflex-app .relationship-arrow path{fill:none;stroke-linecap:round}.reflex-app .relationship-arrow marker path{fill:#ac6712;stroke:#fff4d6;stroke-width:1px}.reflex-app .arrow-outline{stroke:#fff4d6;stroke-width:6px;opacity:.95}.reflex-app .arrow-line{stroke:#ac6712;stroke-width:3px}.reflex-app .piano-keyboard.compact .piano-key kbd{display:none}@media (width<=600px){.reflex-app .question-heading h1{font-size:24px}.reflex-app .question-instruction{font-size:11px}.reflex-app .keyboard-caption{flex-wrap:wrap;gap:4px}.reflex-app .training-screen .session-bar{margin-bottom:10px}.reflex-app .training-screen .answer-choices{gap:6px;margin-top:8px}.reflex-app .training-screen .answer-choice{min-height:44px;padding-block:6px}.reflex-app .training-screen .awaiting-feedback{background:0 0;border:0;min-height:0;margin-top:8px;padding:0;font-size:10px;line-height:1.5}.reflex-app .training-screen .training-tools{margin-top:4px}}.reflex-app{--brand:#b72832;--brand-bright:#d5444b;--brand-soft:#f0a092;--success:#f3efe7;background:var(--bg)}.reflex-app .app-header{border-color:var(--line)}.reflex-app .brand{letter-spacing:0}.reflex-app .brand-mark{background:0 0;border-radius:0;align-items:end;gap:4px;width:32px;height:28px;padding-bottom:3px;display:flex}.reflex-app .brand-mark i{background:var(--brand-bright);width:6px;height:16px}.reflex-app .brand-mark i:nth-child(2){height:26px}.reflex-app .brand-mark i:nth-child(3){height:21px}.reflex-app nav{gap:16px}.reflex-app nav button{border-bottom:2px solid #0000;border-radius:0;min-width:44px;padding-inline:3px}.reflex-app nav button[aria-current=page]{color:var(--ink);border-bottom-color:var(--brand-bright);background:0 0}.reflex-app button:not(.piano-key),.reflex-app select,.reflex-app a{transition:background-color .11s,color .11s,border-color .11s,box-shadow 80ms}.reflex-app .primary-button{color:#fff7f0;background:var(--brand);border-radius:2px;font-weight:600}.reflex-app .primary-button:not(:disabled):hover{background:#9c202b}.reflex-app .primary-button:active{box-shadow:inset 0 3px #0003}.reflex-app .secondary-button,.reflex-app select,.reflex-app .preview-controls select,.reflex-app .label-toggle{border-radius:3px}.reflex-app .secondary-button:hover{border-color:var(--muted)}.reflex-app .text-button{color:var(--accent)}.reflex-app.screen-start main{max-width:1240px;padding-block:40px}.reflex-app .start-screen{grid-template-columns:.9fr 1.1fr;align-items:start;gap:clamp(40px,6vw,84px);display:grid}.reflex-app .start-intro,.reflex-app .start-workspace{min-width:0}.reflex-app .start-intro .eyebrow{margin-bottom:24px;font-size:10px}.reflex-app .start-intro h1{letter-spacing:-.05em;margin-bottom:24px;font-size:clamp(48px,5.4vw,74px);font-weight:450;line-height:1.16}.reflex-app .start-intro h1 span{color:var(--accent)}.reflex-app .start-description{color:var(--muted);margin:0;font-size:12px;line-height:1.9}.reflex-app .interval-poster{color:var(--accent);margin-top:44px}.reflex-app .interval-poster svg{width:100%;margin-top:16px;display:block}.reflex-app .poster-caption{color:var(--muted);justify-content:space-between;gap:12px;font:9px/1.6 ui-monospace,monospace;display:flex}.reflex-app .poster-notes{fill:var(--ink);font:400 94px Georgia,serif}.reflex-app .poster-scale{fill:var(--muted);font:11px ui-monospace,monospace}.reflex-app .poster-result{border-top:1px solid var(--line);align-items:center;margin-top:4px;padding-top:12px}.reflex-app .poster-result strong{color:var(--accent);font:35px Georgia,serif}.reflex-app .start-principles{color:var(--muted);gap:32px;margin-top:26px;font:9px ui-monospace,monospace;display:flex}.reflex-app .setup-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.reflex-app .setup-heading .eyebrow{margin:0;font-size:10px}.reflex-app .setup-heading>span{color:var(--muted);font-size:10px}.reflex-app .purpose-switch{border-bottom:1px solid var(--line);gap:0;margin-top:18px}.reflex-app .purpose-switch button{min-height:48px;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;flex:1}.reflex-app .purpose-switch button[aria-pressed=true]{color:var(--ink);border-bottom-color:var(--brand-bright);background:0 0;font-weight:600}.reflex-app .start-workspace>.intro{min-height:43px;margin:12px 0 20px;font-size:12px;line-height:1.8}.reflex-app .specialty-label{justify-content:space-between;align-items:center;gap:8px;margin:0;font-size:12px;display:flex}.reflex-app .specialty-label span{color:var(--muted);font-size:10px}.reflex-app .specialty-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px;margin:14px 0 20px}.reflex-app .specialty-grid button{border:0;border-bottom:1px solid var(--line);background:0 0;border-radius:0;align-items:center;gap:12px;min-height:79px;padding:14px 0;display:flex;position:relative}.reflex-app .specialty-grid button:first-child{grid-column:1/-1;min-height:64px}.reflex-app .specialty-grid button[aria-pressed=true]{border-color:var(--line);background:0 0}.reflex-app .specialty-grid button[aria-pressed=true] strong,.reflex-app .specialty-grid button[aria-pressed=true] .specialty-number,.reflex-app .specialty-grid button:hover strong{color:var(--accent)}.reflex-app .specialty-grid .specialty-number{color:var(--muted);align-self:start;margin-top:2px;font:10px ui-monospace,monospace}.reflex-app .specialty-grid .specialty-description{margin-top:6px;font-size:10px;line-height:1.6}.reflex-app .specialty-grid .specialty-check{color:var(--accent);margin:0 0 0 auto;font:14px ui-monospace,monospace}.reflex-app .start-actions{gap:18px;margin-top:20px}.reflex-app .start-actions .primary-button{flex:1;justify-content:space-between;min-height:58px;font-size:16px}.reflex-app .start-actions .text-button{font-size:12px}.reflex-app .session-preferences{border-top:1px solid var(--line);margin-top:20px}.reflex-app .session-preferences>summary{cursor:pointer;min-height:44px;color:var(--muted);padding-block:14px;font-size:11px}.reflex-app .session-preferences>summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.reflex-app .session-preferences .display-settings{margin-top:8px}.reflex-app .session-preferences .stage-note{font-size:11px}.reflex-app .focus-options{background:0 0;border-radius:2px}.reflex-app .relation-options button{border-radius:2px}.reflex-app .session-bar{border-bottom:1px solid var(--line);color:var(--muted);position:relative}.reflex-app .session-progress{background:var(--brand-bright);height:2px;transition:width .14s ease-out;position:absolute;bottom:-1px;left:0}.reflex-app .question-heading h1{letter-spacing:-.03em;font-weight:500}.reflex-app .training-screen .answer-choice{background:0 0;border-radius:2px}.reflex-app .answer-choice:not(:disabled):hover{border-color:#8b7d72}.reflex-app .answer-choice:not(:disabled):active{background:#4a302c;box-shadow:inset 0 2px #0003}.reflex-app .answer-choice.is-correct:disabled{color:var(--ink);border-color:var(--ink);box-shadow:inset 3px 0 var(--ink);background:#f3efe70a}.reflex-app .answer-choice.was-wrong:disabled{color:var(--amber);border-style:dashed;border-color:var(--amber);background:0 0}.reflex-app .training-feedback{border:0;border-top:1px solid var(--line);background:0 0;border-radius:0;padding-inline:0}.reflex-app .training-feedback.correct strong{color:var(--ink)}.reflex-app .training-feedback button{color:var(--accent);border-radius:0}.reflex-app .piano-keyboard{box-shadow:none;background:#302b28;border-radius:0}.reflex-app .piano-key{border-radius:0 0 2px 2px}.reflex-app .white-key.is-pressed{background:#e7bbb1;box-shadow:inset 0 4px #9b60554d,inset 0 -1px #6c3527,inset 0 0 0 1px #ae6c5e}.reflex-app .black-key.is-pressed{background:#80333a;box-shadow:inset 0 4px #0005,inset 0 -1px #0007,inset 0 0 0 1px #f0a092}.reflex-app .is-pressed .key-name,.reflex-app .is-pressed kbd{transform:translateY(1px)}.reflex-app .relation-trace{color:var(--accent);margin-top:16px}.reflex-app .trace-caption{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;font-size:10px;line-height:1.7;display:flex}.reflex-app .trace-caption strong{color:var(--accent);white-space:nowrap;font-weight:500}.reflex-app .trace-caption small{color:var(--muted);margin-left:8px;font-size:9px}.reflex-app .trace-caption strong small{color:var(--amber);margin-left:0}.reflex-app .trace-down .trace-span{transform-origin:100%}.reflex-app .review-panel,.reflex-app .empty-panel{border-radius:2px}@keyframes trace-settle{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media (width<=1000px){.reflex-app .start-screen{grid-template-columns:.85fr 1.15fr;gap:36px}.reflex-app .specialty-grid{column-gap:16px}.reflex-app .specialty-grid button{gap:8px}.reflex-app .specialty-check{font-size:12px}.reflex-app .start-principles{gap:22px}}@media (width<=760px){.reflex-app.screen-start main{padding-block:28px}.reflex-app .start-screen{grid-template-columns:1fr;gap:28px}.reflex-app .start-intro h1{margin-bottom:14px;font-size:40px}.reflex-app .start-intro h1 br{display:none}.reflex-app .start-intro .eyebrow{margin-bottom:16px;font-size:9px}.reflex-app .interval-poster,.reflex-app .start-principles{display:none}.reflex-app .start-description{font-size:11px}.reflex-app .start-description br{display:none}.reflex-app .setup-heading{border-top:1px solid var(--line);padding-top:20px}.reflex-app .specialty-grid button{gap:10px;min-height:76px}.reflex-app .specialty-grid .specialty-check{display:none}.reflex-app .specialty-grid{column-gap:18px}.reflex-app .start-actions{bottom:max(12px,env(safe-area-inset-bottom));z-index:5;background:var(--bg);border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:12px;padding:9px;position:sticky}.reflex-app .start-actions .primary-button{min-height:52px;padding-inline:14px;font-size:14px}.reflex-app .start-actions .text-button{font-size:11px}.reflex-app .session-preferences{margin-top:16px}}@media (width<=480px){.reflex-app .app-header{min-height:70px;padding-block:10px}.reflex-app .brand-mark{gap:3px;width:25px;height:24px}.reflex-app .brand-mark i{width:5px;height:13px}.reflex-app .brand-mark i:nth-child(2){height:22px}.reflex-app .brand-mark i:nth-child(3){height:17px}.reflex-app nav{gap:5px}.reflex-app nav button{min-width:36px;padding:8px 3px;font-size:11px}.reflex-app .start-intro h1{font-size:36px}.reflex-app .app-footer{font-size:9px}.reflex-app .relation-trace{margin-top:10px}.reflex-app .trace-caption{gap:8px;font-size:9px}.reflex-app .trace-caption>span small{display:none}.reflex-app .training-screen .awaiting-feedback{background:0 0}}@media (width>=780px) and (height<=500px){.reflex-app .relation-trace{margin-top:8px}.reflex-app .trace-graphic{height:30px}.reflex-app .interval-poster{display:none}}@media (prefers-reduced-motion:reduce){.reflex-app *,.reflex-app :before,.reflex-app :after{transition:none!important;animation:none!important}}.reflex-app .answer-choices:has(.is-correct) .answer-choice:not(.is-correct):not(.was-wrong){display:none}.reflex-app .answer-choices:has(.is-correct):not(:has(.was-wrong)) .is-correct{grid-column:1/-1}.reflex-app .training-screen .keyboard-region+.answer-choices{margin-top:12px}.reflex-app .trace-graphic{height:38px;margin:6px 6px 0;position:relative}.reflex-app .trace-axis{background:#776c61;height:1px;position:absolute;top:10px;left:0;right:0}.reflex-app .trace-tick{border-left:1px solid #776c61;height:8px;position:absolute;top:7px}.reflex-app .trace-tick>span{color:var(--muted);font:9px ui-monospace,monospace;position:absolute;top:16px;transform:translate(-50%)}.reflex-app .trace-span{background:var(--brand-bright);transform-origin:0;height:3px;animation:.16s cubic-bezier(.2,.7,.2,1) trace-settle;position:absolute;top:9px}.reflex-app .trace-root{background:var(--brand-bright);border-radius:50%;width:8px;height:8px;position:absolute;top:7px;transform:translate(-50%)}.reflex-app .trace-target{background:var(--amber);width:10px;height:10px;position:absolute;top:6px;transform:translate(-50%)rotate(45deg)}.reflex-app .trace-chosen{border-left:2px dashed var(--amber);height:23px;position:absolute;top:0}@media (width<=600px){.reflex-app .training-screen .keyboard-region+.answer-choices{margin-top:8px}.reflex-app .training-feedback:has(>strong){grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding-block:8px;display:grid}:is(.reflex-app .training-feedback>strong,.reflex-app .training-feedback:has(>strong)>span){grid-column:1;font-size:11px;line-height:1.6}.reflex-app .training-feedback>button{grid-area:1/2/span 2;align-self:center;margin-left:0}.reflex-app .trace-caption strong small{font-size:8px}}@media (prefers-reduced-motion:reduce){.reflex-app .trace-span{animation:none}}.reflex-app{--ui-font:"PingFang SC","Microsoft YaHei UI","Microsoft YaHei","Noto Sans CJK SC",system-ui,sans-serif;font-family:var(--ui-font);font-size:16px}.reflex-app>.pointer-field{--pointer-color:#e06d68}.reflex-app>.app-header,.reflex-app>main,.reflex-app>.app-footer{z-index:1;position:relative}.reflex-app .brand{font-size:18px}.reflex-app .brand small{font-size:11px}.reflex-app .eyebrow,.reflex-app .start-intro .eyebrow,.reflex-app .setup-heading .eyebrow{font:13px/1.6 var(--ui-font);letter-spacing:.08em}.reflex-app .start-description,.reflex-app .start-workspace>.intro{font-size:17px;line-height:1.85}.reflex-app .specialty-label{font-size:17px}.reflex-app .specialty-label span,.reflex-app .setup-heading>span{font-size:14px}.reflex-app .specialty-grid strong{font-size:17px;font-weight:600}.reflex-app .specialty-grid .specialty-description{font-size:14px;line-height:1.7}.reflex-app .specialty-grid .specialty-number{font-size:13px}.reflex-app .specialty-grid button{min-height:94px;padding:17px 0}.reflex-app .session-preferences>summary,.reflex-app .session-preferences .stage-note,.reflex-app .stage-note,.reflex-app .focus-options label,.reflex-app .focus-options fieldset,.reflex-app .display-settings label,.reflex-app .start-actions .text-button{font-size:15px;line-height:1.8}.reflex-app .poster-caption{font:13px/1.7 var(--ui-font)}.reflex-app .poster-scale{font-size:14px}.reflex-app .question-heading h1{font-family:var(--ui-font);letter-spacing:0;font-size:clamp(32px,4vw,48px);font-weight:600;line-height:1.35}.reflex-app .question-instruction{font-size:16px;line-height:1.7}.reflex-app .session-bar{font:16px/1.6 var(--ui-font);font-variant-numeric:tabular-nums}.reflex-app .keyboard-caption,.reflex-app .training-screen .keyboard-caption,.reflex-app .keyboard-legend,.reflex-app .shortcut-explanation,.reflex-app .training-tools,.reflex-app .app-footer{font-family:var(--ui-font);font-size:14px;line-height:1.7}.reflex-app .training-feedback,.reflex-app .training-screen .awaiting-feedback{font-size:15px;line-height:1.75}.reflex-app .training-feedback button{min-height:48px;font-size:16px}.reflex-app .trace-caption{font-size:14px}.reflex-app .trace-caption small,.reflex-app .trace-caption strong small,.reflex-app .trace-tick>span{font-size:12px}.reflex-app .piano-keyboard.compact .key-name{font-size:13px}.reflex-app .piano-keyboard.compact .black-key .key-name{font-size:11px}.reflex-app .key-name{font-size:16px}.reflex-app .piano-key kbd{font-size:12px}.reflex-app .piano-key{transition:background-color 80ms,box-shadow 80ms}@media (hover:hover){.reflex-app .white-key:not(:disabled):hover{background:#f4d4c8;box-shadow:inset 0 -6px #b72832,inset 0 0 0 1px #b7283280}.reflex-app .black-key:not(:disabled):hover{background:#78353a;box-shadow:inset 0 -5px #3b181d,inset 0 0 0 1px #f0a092}.reflex-app .answer-choice:not(:disabled):hover{border-color:var(--accent);background:#b7283220}.reflex-app .specialty-grid button:hover{background:#d5444b0c}.reflex-app .primary-button:hover span{transform:translate(3px,-3px)}}.reflex-app .primary-button span{transition:transform .18s}.reflex-app .purpose-switch button{position:relative}.reflex-app .purpose-switch button:after{content:"";background:var(--brand-bright);transform-origin:0;height:3px;transition:transform .22s cubic-bezier(.2,.8,.2,1);position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}.reflex-app .purpose-switch button[aria-pressed=true]:after{transform:scaleX(1)}.reflex-app .specialty-check{transition:transform .18s}.reflex-app .specialty-grid button[aria-pressed=true] .specialty-check{animation:.3s ease-out target-lock}.reflex-app .relationship-arrow .arrow-outline{stroke-width:8px}.reflex-app .relationship-arrow .arrow-line{stroke-width:3.5px}.reflex-app .relationship-arrow .arrow-flow{stroke:#fff6dc;stroke-width:3px;stroke-dasharray:.13 .87;stroke-dashoffset:1px;animation:.56s cubic-bezier(.18,.7,.25,1) forwards arrow-travel}.reflex-app .key-markers .root-dot,.reflex-app .key-markers .target-diamond{width:26px;height:26px;font-size:15px}.reflex-app .answer-choice{position:relative;overflow:hidden}.reflex-app .answer-choice.is-correct{animation:.42s ease-out answer-lock}.reflex-app .answer-choice.is-correct:after{content:"";background:var(--ink);width:3px;animation:.36s ease-out confirm-beat;position:absolute;inset:0 auto 0 0}.reflex-app .answer-choice.was-wrong{animation:.28s ease-out answer-correct}.reflex-app .training-feedback.correct>strong:before{content:none}.reflex-app .training-feedback.wrong>strong:before{content:"↺ ";font-size:22px}.reflex-app .training-feedback.correct>strong{animation:.32s ease-out target-lock}.reflex-app .training-feedback.wrong>strong{animation:.28s ease-out answer-correct}.reflex-app .training-screen{position:relative}.reflex-app .training-screen[data-outcome]:before{content:"";background:var(--accent);transform-origin:0;pointer-events:none;height:3px;animation:.48s cubic-bezier(.2,.7,.2,1) forwards result-wave;position:absolute;top:0;left:0;right:0}.reflex-app .training-screen[data-outcome=wrong]:before{background:var(--amber)}.reflex-app .training-screen[data-outcome=correct] .is-target .key-markers{animation:.4s ease-out marker-confirm}.reflex-app .trace-target{animation:.32s ease-out target-lock}.reflex-app .trace-chosen{animation:.28s ease-out answer-correct}.reflex-app .session-preferences[open]>.display-settings,.reflex-app .focus-options{animation:.18s ease-out panel-open}@keyframes arrow-travel{0%{stroke-dashoffset:1px;opacity:0}15%{opacity:1}to{stroke-dashoffset:-.13px;opacity:0}}@keyframes answer-lock{0%{background:#f3efe722;box-shadow:inset 3px 0 #f3efe7,inset 0 0 0 2px #f3efe755}to{background:#f3efe70a;box-shadow:inset 3px 0 #f3efe7}}@keyframes confirm-beat{0%{opacity:.8;width:14px}to{opacity:1;width:4px}}@keyframes target-lock{0%{opacity:.4;filter:brightness(1.8)}to{opacity:1;filter:brightness()}}@keyframes marker-confirm{0%,to{filter:brightness()}40%{filter:brightness(1.7)}}@keyframes answer-correct{0%,to{translate:0}25%{translate:-3px}65%{translate:2px}}@keyframes result-wave{0%{opacity:1;transform:scaleX(0)}60%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(1)}}@keyframes panel-open{0%{clip-path:inset(0 0 100%)}to{clip-path:inset(0)}}@media (width<=760px){.reflex-app .start-intro h1{font-size:42px}.reflex-app .specialty-grid button{min-height:96px}.reflex-app .start-actions .primary-button{min-height:56px;font-size:17px}.reflex-app .start-actions .text-button{font-size:15px}}@media (width<=600px){.reflex-app .brand{font-size:16px}.reflex-app nav button{min-width:40px;font-size:15px}.reflex-app .brand small{font-size:10px}.reflex-app .start-intro .eyebrow{font-size:13px}.reflex-app .start-description{font-size:16px}.reflex-app .question-heading h1{margin-block:10px;font-size:30px}.reflex-app .question-instruction{margin-bottom:12px;font-size:15px;line-height:1.55}.reflex-app .session-bar{font-size:15px}:is(.reflex-app .training-feedback>strong,.reflex-app .training-feedback:has(>strong)>span){font-size:15px;line-height:1.7}.reflex-app .training-feedback:has(>strong){gap:6px 12px;display:flex}.reflex-app .training-feedback>strong{flex-shrink:0}.reflex-app .training-feedback>span{flex:200px}.reflex-app .training-feedback>button{margin-left:auto}.reflex-app .trace-caption{flex-wrap:wrap;gap:2px 12px;font-size:13px}.reflex-app .training-screen .awaiting-feedback{font-size:14px}.reflex-app .answer-choice span{font-size:28px}.reflex-app .training-screen .answer-choice{min-height:50px}.reflex-app .specialty-grid{column-gap:14px}.reflex-app .specialty-grid .specialty-number{display:none}.reflex-app .app-footer{flex-wrap:wrap;font-size:13px}.reflex-app .setup-heading>span{font-size:13px}}@media (width>=780px) and (height<=500px){.reflex-app .question-heading h1{font-size:28px}.reflex-app .question-instruction{font-size:14px}.reflex-app .training-bottom{display:block}.reflex-app .training-tools{margin-top:6px}.reflex-app .session-bar{font-size:15px}}@media (prefers-reduced-motion:reduce){.reflex-app *,.reflex-app :before,.reflex-app :after{transition:none!important;animation:none!important}.reflex-app .arrow-flow,.reflex-app .arrow-pulse{display:none}}@media (width<=600px){.reflex-app .training-screen .answer-choice span{font-size:30px}.reflex-app .training-tools{flex-wrap:wrap;gap:6px 16px}.reflex-app .training-tools>span{font-size:13px}.reflex-app .training-feedback.correct>strong,.reflex-app .training-feedback.wrong>strong{font-size:17px}}.reflex-app .training-tools button,.reflex-app .text-button,.reflex-app .review-nav label,.reflex-app .preview-controls label,.reflex-app .commit-readout,.reflex-app .summary-score span,.reflex-app .summary-table table,.reflex-app .review-explanation{font-size:15px;line-height:1.75}.reflex-app .training-tools span,.reflex-app .commit-readout small,.reflex-app .summary-table caption,.reflex-app .summary-table small{font-size:14px;line-height:1.75}.reflex-app .pause-panel p,.reflex-app .practice-screen .intro{font-size:16px;line-height:1.8}.reflex-app .black-key .key-name{font-size:13px}@media (width<=600px){.reflex-app .training-tools span{flex-basis:100%;margin-left:8px;font-size:13px}.reflex-app .brand small{font-family:var(--ui-font);letter-spacing:.02em;white-space:nowrap;font-size:9px}.reflex-app .app-header{gap:8px}.reflex-app .training-tools button{padding-block:8px}}@media (width<=359px){.reflex-app .brand small{display:none}.reflex-app .brand{font-size:16px}.reflex-app nav{gap:2px}}.reflex-app .piano-key kbd{font-family:var(--ui-font)}.reflex-app .confirmation-mark{vertical-align:middle;width:30px;height:30px;color:var(--ink);flex-shrink:0;display:inline-block;overflow:visible}.reflex-app .confirmation-ring{stroke:currentColor;stroke-width:1px;opacity:.25;transform-origin:16px 16px;animation:.38s ease-out confirmation-arrive}.reflex-app .confirmation-check{stroke:currentColor;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0;animation:.26s ease-out confirmation-write}.reflex-app .answer-choice.is-correct kbd{opacity:1;background:0 0;align-items:center;display:flex}.reflex-app .training-feedback.correct>strong{align-items:center;gap:8px;animation:none;display:inline-flex}.reflex-app .training-screen[data-outcome=correct]:before{background:var(--ink);height:2px}.reflex-app .training-screen[data-outcome=correct] .session-progress{background:var(--ink)}.reflex-app .training-screen[data-outcome=correct] .is-target:after{content:"";outline-offset:0;pointer-events:none;outline:2px solid #fff7e2;animation:.42s ease-out forwards key-confirmation;position:absolute;inset:8px}.reflex-app .training-screen[data-outcome=correct] .trace-span{background:var(--ink);animation:.36s ease-out relation-confirmation}.reflex-app .training-screen[data-outcome=correct] .trace-target{background:var(--ink)}.reflex-app .relationship-arrow .arrow-line{stroke-linecap:round}.reflex-app .relationship-arrow .arrow-pulse{pointer-events:none}.reflex-app nav button{position:relative}.reflex-app nav button:after{content:"";background:var(--accent);transform-origin:0;height:1px;transition:scale .14s ease-out;position:absolute;bottom:4px;left:10px;right:10px;scale:0 1}.reflex-app nav button:hover:after,.reflex-app nav button:focus-visible:after,.reflex-app nav button[aria-current]:after{scale:1}.reflex-app .specialty-grid button>div{transition:color .1s}.reflex-app .specialty-grid button:active .specialty-check{scale:.8}.reflex-app .relation-options button{transition:background-color .1s,box-shadow .1s}.reflex-app .relation-options button[aria-pressed=true]{box-shadow:inset 0 -2px var(--accent)}.reflex-app .session-preferences>summary::marker{color:var(--accent)}.reflex-app .interval-poster:hover svg>path:nth-of-type(2){animation:.45s ease-out poster-reach}.reflex-app .answer-choice:not(:disabled):active{box-shadow:inset 0 3px #f3efe733}.reflex-app .training-feedback button{position:relative}.reflex-app .training-feedback button:after{content:"";transform-origin:0;background:currentColor;height:1px;transition:scale .14s ease-out;position:absolute;bottom:7px;left:12px;right:12px;scale:0 1}.reflex-app .training-feedback button:hover:after,.reflex-app .training-feedback button:focus-visible:after{scale:1}@keyframes confirmation-write{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes confirmation-arrive{0%{opacity:0;scale:1.35}to{opacity:.25;scale:1}}@keyframes key-confirmation{0%{opacity:.9;inset:3px}70%{opacity:.7;inset:8px}to{opacity:0;inset:8px}}@keyframes relation-confirmation{0%{filter:brightness(1.7)}to{filter:brightness()}}@keyframes poster-reach{0%{stroke-dasharray:240;stroke-dashoffset:240px}to{stroke-dasharray:240;stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){.reflex-app *,.reflex-app :before,.reflex-app :after{transition:none!important;animation:none!important}.reflex-app .arrow-pulse{display:none}.reflex-app .training-screen[data-outcome=correct] .is-target:after{content:none}}
