@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.relative{position:relative}.static{position:static}.block{display:block}.contents{display:contents}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.table-row{display:table-row}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.border{border-style:var(--tw-border-style);border-width:1px}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}:root:where(:not([data-skin=focus])){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--text-on-accent:#fff;--bg-canvas:#f5f4f0;--bg-paper:#fff;--bg-raised:#eeece6;--bg-key:#e2dfd7;--text-primary:#14151a;--text-secondary:#525663;--border-default:#ddd9d0;--border-subtle:#eae7e0;--border-strong:#a8a399;--accent-vermilion:#c03628;--accent-vermilion-fill:#b23023;--accent-vermilion-dark:#822016;--accent-bamboo:#185a4a;--accent-bamboo-fill:#165243;--progress-fill:#c6ded7;--state-success:#15684e;--state-success-fill:#125c45;--state-error:#b42318;--state-error-fill:#991b1b;--heat-smooth:#ece9e1;--heat-mild:#e7c87a;--heat-clear:#d77b45;--heat-severe:#a9362c;--heat-severe-text:#fff8ee;--focus-ring:#185a4a;--shadow-key:0 2px 0 #c5c0b5, 0 3px 6px #14151a0d;--shadow-panel:0 12px 32px -8px #14151a0f, 0 2px 6px #14151a08;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-press:cubic-bezier(.2, 0, 0, 1);--font-display:"PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", "Microsoft YaHei", sans-serif;--font-reading:"Songti SC", "STSong", "Kaiti SC", "STKaiti", serif;--font-body:"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-data:"SFMono-Regular", "JetBrains Mono", "Cascadia Mono", "Liberation Mono", monospace;--radius-small:10px;--radius-medium:16px;--radius-large:22px}:root:where(:not([data-skin=focus]))[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--text-on-accent:#fff;--bg-canvas:#0d0e12;--bg-paper:#15171e;--bg-raised:#1c1f28;--bg-key:#262a36;--text-primary:#f3f2ee;--text-secondary:#a6aab8;--border-default:#2a2e3b;--border-subtle:#20232e;--border-strong:#4e5569;--accent-vermilion:#ff8066;--accent-vermilion-fill:#b83728;--accent-vermilion-dark:#ff9e8a;--accent-bamboo:#5eead4;--accent-bamboo-fill:#115e59;--progress-fill:#194b47;--state-success:#6ee7b7;--state-success-fill:#065f46;--state-error:#fda29b;--state-error-fill:#991b1b;--heat-smooth:#262a36;--heat-mild:#786a3f;--heat-clear:#9b5335;--heat-severe:#b64237;--heat-severe-text:#fff8ee;--focus-ring:#5eead4;--shadow-key:0 2px 0 #08090c, 0 4px 10px #00000059;--shadow-panel:0 20px 50px -12px #00000073, 0 4px 12px #00000040}@media (prefers-color-scheme:dark){:root:where(:not([data-skin=focus]))[data-theme=system]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--text-on-accent:#fff;--bg-canvas:#0d0e12;--bg-paper:#15171e;--bg-raised:#1c1f28;--bg-key:#262a36;--text-primary:#f3f2ee;--text-secondary:#a6aab8;--border-default:#2a2e3b;--border-subtle:#20232e;--border-strong:#4e5569;--accent-vermilion:#ff8066;--accent-vermilion-fill:#b83728;--accent-vermilion-dark:#ff9e8a;--accent-bamboo:#5eead4;--accent-bamboo-fill:#115e59;--progress-fill:#194b47;--state-success:#6ee7b7;--state-success-fill:#065f46;--state-error:#fda29b;--state-error-fill:#991b1b;--heat-smooth:#262a36;--heat-mild:#786a3f;--heat-clear:#9b5335;--heat-severe:#b64237;--heat-severe-text:#fff8ee;--focus-ring:#5eead4;--shadow-key:0 2px 0 #08090c, 0 4px 10px #00000059;--shadow-panel:0 20px 50px -12px #00000073, 0 4px 12px #00000040}}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg-canvas);min-width:320px;scroll-padding-top:92px}body{color:var(--text-primary);background:var(--bg-canvas);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0}button,input,select,textarea{font:inherit}button,a,select,input,textarea{outline:none}:where(button,a,select,input,textarea):focus-visible{box-shadow:0 0 0 3px var(--bg-raised), 0 0 0 6px var(--focus-ring)}button{color:inherit}a{color:inherit;text-decoration:none}.hydration-boundary,.hydration-content{min-height:100dvh}.hydration-content[aria-hidden=true]{visibility:hidden}.hydration-status{z-index:200;min-height:100dvh;color:var(--text-primary);background:var(--bg-canvas);place-items:center;display:grid;position:fixed;inset:0}.hydration-status>div{text-align:center;justify-items:center;gap:10px;padding:28px;display:grid}.hydration-status span{width:58px;height:58px;color:var(--text-on-accent);border-radius:var(--radius-small);background:var(--accent-vermilion-fill);box-shadow:0 3px 0 var(--accent-vermilion-dark);font-family:var(--font-reading);grid-template-columns:1fr 18px;place-items:center;font-size:25px;display:grid}.hydration-status small{height:100%;font:700 8px/1 var(--font-data);writing-mode:vertical-rl;border-left:1px solid #ffffff4d;place-items:center;display:grid}.hydration-status strong{font-family:var(--font-display);letter-spacing:.08em;margin-top:8px;font-size:18px}.hydration-status p{color:var(--text-secondary);margin:0;font-size:12px}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.site-header{z-index:30;color:var(--text-primary);border-bottom:1px solid var(--border-default);background:var(--bg-paper);position:sticky;top:0}.header-inner{grid-template-columns:240px 1fr auto;align-items:stretch;gap:32px;width:min(1320px,100% - 64px);min-height:72px;margin:auto;display:grid}.brand{align-items:center;gap:12px;display:inline-flex}.brand-mark{width:38px;height:38px;color:var(--text-on-accent);background:var(--accent-vermilion-fill);font:500 24px/1 var(--font-display);transition:transform .22s var(--ease-out), box-shadow .22s ease;border-radius:3px 6px 4px 5px;flex:none;place-items:center;display:grid;transform:rotate(-1.5deg);box-shadow:inset 0 0 0 1px #ffffff3d}.brand:hover .brand-mark{transform:rotate(0);box-shadow:inset 0 0 0 1px #ffffff6b}.brand strong,.brand small{display:block}.brand strong{font-family:var(--font-display);letter-spacing:.1em;font-size:17px;font-weight:600}.brand small{color:var(--text-secondary);letter-spacing:.08em;margin-top:4px;font-size:9px;line-height:1.2}.main-nav{justify-content:center;align-items:stretch;display:flex}.nav-item{min-width:96px;color:var(--text-secondary);justify-content:center;align-items:center;padding:0 12px;font-size:13px;font-weight:600;transition:color .16s,background .16s;display:inline-flex;position:relative}.nav-item:last-child{border-inline-end:0}.nav-item:hover,.nav-item.active{color:var(--text-primary);background:var(--accent-bamboo)}@supports (color:color-mix(in lab, red, red)){.nav-item:hover,.nav-item.active{background:color-mix(in srgb, var(--accent-bamboo) 5%, transparent)}}.nav-item.active:after{content:"";background:var(--accent-vermilion);width:26px;height:2px;animation:nav-marker-in .22s var(--ease-out) both;border-radius:999px;position:absolute;bottom:11px;left:50%;transform:translate(-50%)rotate(-1.5deg)}.local-badge{color:var(--text-secondary);white-space:nowrap;align-self:center;align-items:center;gap:8px;font-size:11px;display:inline-flex}.header-utilities{justify-content:end;align-items:center;gap:12px;display:flex}.theme-switch{min-height:34px;color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-small);background:var(--bg-raised);cursor:pointer;box-shadow:0 2px 0 var(--border-default);transition:transform .14s var(--ease-press), color .14s ease;align-items:center;gap:7px;padding:0 10px;display:inline-flex}.theme-switch:hover{color:var(--text-primary);transform:translateY(-1px)}.theme-switch:active{box-shadow:none;transform:translateY(1px)}.theme-switch span{color:var(--accent-vermilion);font:700 15px/1 var(--font-data)}.theme-switch b{font-size:11px}.local-badge i{border:2px solid var(--bg-paper);outline:1px solid var(--accent-bamboo);background:var(--accent-bamboo);border-radius:50%;width:8px;height:8px}.page-wrap,.site-footer{width:min(1320px,100% - 64px);margin-inline:auto}.page-wrap{flex:1}.page-wrap>.hero-row,.page-wrap>.subpage{animation:page-enter .36s var(--ease-out) both}.page-wrap>.metric-strip{animation:page-enter .36s 70ms var(--ease-out) both}.page-wrap>.workspace-grid{animation:page-enter .36s .12s var(--ease-out) both}.hero-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:40px;min-height:196px;padding:40px 0 32px;display:grid}.eyebrow{color:var(--accent-vermilion);letter-spacing:.12em;margin-bottom:10px;font-size:11px;font-weight:700;line-height:1.2;display:block}.hero-row h1,.subpage-heading h1{font-family:var(--font-display);letter-spacing:.03em;margin:0;font-size:clamp(34px,3.4vw,50px);font-weight:500;line-height:1.08}.hero-row h1 em{color:var(--accent-vermilion);margin-left:.12em;font-style:normal;display:inline-block}.hero-row p,.subpage-heading p{max-width:670px;color:var(--text-secondary);margin:10px 0 0;font-size:14px;line-height:1.8}.hero-actions,.practice-actions,.modal-actions{gap:8px;display:flex}.hero-actions{flex-wrap:wrap;justify-content:end}.button.common-entry{color:var(--accent-bamboo);border-color:var(--accent-bamboo)}@supports (color:color-mix(in lab, red, red)){.button.common-entry{border-color:color-mix(in srgb, var(--accent-bamboo) 58%, var(--border-default))}}.button.common-entry{background:linear-gradient(90deg, var(--accent-bamboo) 0 6px, var(--bg-raised) 6px)}@supports (color:color-mix(in lab, red, red)){.button.common-entry{background:linear-gradient(90deg, color-mix(in srgb, var(--accent-bamboo) 12%, var(--bg-paper)) 0 6px, var(--bg-raised) 6px)}}.button{border:1px solid var(--border-default);border-radius:var(--radius-small);cursor:pointer;min-height:44px;transition:transform .14s var(--ease-press), box-shadow .14s var(--ease-press), background .14s ease, border-color .14s ease;justify-content:center;align-items:center;padding:0 18px;font-size:12px;font-weight:750;display:inline-flex}.button:hover:not(:disabled){transform:translateY(-1px)}.button:active:not(:disabled){box-shadow:none;transform:translateY(1px)}.button:disabled{cursor:not-allowed;opacity:.55}.button.primary{color:var(--text-on-accent);border-color:var(--accent-vermilion-fill);background:var(--accent-vermilion-fill);box-shadow:none}.button.secondary{background:var(--bg-raised);box-shadow:none}.button.secondary:hover:not(:disabled){border-color:var(--border-strong);background:var(--bg-paper)}.button.danger{color:var(--state-error);border-color:var(--state-error)}@supports (color:color-mix(in lab, red, red)){.button.danger{border-color:color-mix(in srgb, var(--state-error) 50%, var(--border-default))}}.button.danger{background:var(--bg-paper)}.heading-actions{flex-wrap:wrap;justify-content:flex-end;align-items:stretch;gap:10px;display:flex}.metric-strip{border-block:1px solid var(--border-default);background:0 0;grid-template-columns:minmax(168px,1.35fr) repeat(5,minmax(112px,1fr));margin-bottom:0;display:grid;overflow:hidden}.typing-diagnostics{border-bottom:1px solid var(--border-default);background:var(--accent-bamboo);grid-template-columns:repeat(10,minmax(68px,1fr));gap:8px;margin-bottom:20px;padding:10px 14px;display:grid}@supports (color:color-mix(in lab, red, red)){.typing-diagnostics{background:color-mix(in srgb, var(--accent-bamboo) 3%, transparent)}}.diagnostic-metric{min-width:0;color:var(--text-primary);font-family:var(--font-data);white-space:nowrap;align-items:baseline;gap:4px;display:inline-flex}.diagnostic-metric small{color:var(--text-secondary);font:9px/1.2 var(--font-body)}.diagnostic-metric strong{font-size:12px}.diagnostic-metric i{color:var(--text-secondary);font-size:8px;font-style:normal}.metric{border-right:1px solid var(--border-default);grid-template-columns:1fr auto;align-items:end;min-height:76px;padding:13px 18px;display:grid}.metric:last-child{border-right:0}.metric>span{color:var(--text-secondary);grid-column:1/-1;align-self:start;font-size:11px}.metric strong{font:700 26px/1 var(--font-data);letter-spacing:-.08em}.metric small{color:var(--text-secondary);margin-left:6px;font-size:9px}.metric.primary-metric{color:var(--accent-vermilion);background:0 0;position:relative}.metric.primary-metric:before{content:"";background:var(--accent-vermilion);width:2px;position:absolute;inset-block:0;inset-inline-start:0}.metric.primary-metric strong{font-size:32px}.metric.primary-metric>span,.metric.primary-metric small{color:var(--text-secondary)}.metric.primary-metric.is-active{background:var(--accent-vermilion)}@supports (color:color-mix(in lab, red, red)){.metric.primary-metric.is-active{background:color-mix(in srgb, var(--accent-vermilion) 5%, transparent)}}.code-length-metric{grid-template-columns:1fr;align-items:stretch;min-width:0}.code-length-current{align-items:baseline;display:flex}.code-length-baseline{min-width:0;color:var(--accent-bamboo);border-top:1px solid var(--border-subtle);font:700 10px/1.2 var(--font-data);justify-content:space-between;align-items:baseline;gap:8px;margin-top:8px;padding-top:7px;display:flex}.code-length-baseline span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.metric .code-length-baseline strong{color:inherit;font:700 12px/1 var(--font-data);letter-spacing:-.02em;flex:none;margin:0}.code-length-baseline.is-unavailable{color:var(--text-secondary)}.workspace-grid,.challenge-layout,.history-grid{grid-template-columns:minmax(0,1fr) 288px;align-items:start;gap:20px;display:grid}.typing-card,.side-panel,.challenge-card,.history-panel,.settings-card,.summary-card,.lookup-search,.lookup-results{border:1px solid var(--border-default);border-radius:var(--radius-medium);background:var(--bg-paper);box-shadow:none}.typing-card{border-color:var(--border-strong);border-radius:var(--radius-large);min-width:0;box-shadow:var(--shadow-panel);overflow:hidden}.practice-commandbar{min-height:48px;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);background:var(--accent-bamboo);justify-content:space-between;align-items:center;gap:16px;padding:7px 10px 7px 16px;display:flex}@supports (color:color-mix(in lab, red, red)){.practice-commandbar{background:color-mix(in srgb, var(--accent-bamboo) 4%, var(--bg-raised))}}.practice-commandbar{font-size:10px;font-weight:700}.practice-mode,.practice-actions{align-items:center;display:flex}.practice-mode>span:not(.practice-mode-mark){border-inline-end:1px solid var(--border-default);align-items:center;min-height:26px;padding:0 10px;display:inline-flex}.practice-mode>span:last-child{border-inline-end:0}.practice-mode-mark{width:28px;height:28px;color:var(--text-on-accent);background:var(--accent-vermilion-fill);font:500 17px/1 var(--font-display);border-radius:4px 6px 3px 5px;place-items:center;margin-right:4px;display:grid;transform:rotate(-1.5deg)}.practice-actions{gap:4px}.practice-actions button{min-height:44px;color:var(--text-secondary);border-radius:var(--radius-small);cursor:pointer;background:0 0;border:1px solid #0000;padding:0 11px;font-size:10px;font-weight:750}.practice-actions button:hover,.practice-actions button.active{color:var(--text-primary);border-color:var(--border-default);background:var(--bg-paper)}.practice-actions button.active{color:var(--accent-vermilion)}.practice-actions button:disabled{opacity:.45;cursor:not-allowed}.ghost-mode-picker{border:1px solid var(--border-default);border-radius:var(--radius-small);background:var(--bg-paper);align-items:center;gap:4px;margin:0 auto 0 0;padding:3px 6px;display:flex}.ghost-mode-picker legend{color:var(--accent-bamboo);padding:0 4px;font-size:8px}.ghost-mode-picker label{cursor:pointer;border-radius:3px;align-items:center;gap:4px;min-height:28px;padding:0 7px;display:inline-flex}.ghost-mode-picker label:has(input:checked){color:var(--accent-vermilion);background:var(--accent-vermilion)}@supports (color:color-mix(in lab, red, red)){.ghost-mode-picker label:has(input:checked){background:color-mix(in srgb, var(--accent-vermilion) 9%, transparent)}}.ghost-mode-picker input{accent-color:var(--accent-vermilion)}.ghost-mode-picker label:has(input:disabled){cursor:not-allowed;opacity:.42}.ghost-live-card{color:var(--text-secondary);border:1px dashed var(--accent-vermilion);border-radius:var(--radius-medium);background:var(--accent-vermilion);align-items:center;gap:14px;margin:-8px 0 18px;padding:11px 16px;display:flex}@supports (color:color-mix(in lab, red, red)){.ghost-live-card{background:color-mix(in srgb, var(--accent-vermilion) 5%, var(--bg-paper))}}.ghost-live-card{font:700 10px/1.4 var(--font-data)}.ghost-live-card strong{color:var(--text-primary);font-size:13px}.ghost-live-card small{margin-left:auto}.typing-toolbar{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:24px;min-height:76px;padding:16px 24px;display:flex}.article-heading{flex:1;min-width:0}.article-toolbar-actions{align-items:center;gap:28px;display:flex}.article-kicker{flex-wrap:wrap;gap:6px;display:flex}.article-kicker span{color:var(--accent-bamboo);border:0;padding:3px 0;font-size:10px;font-weight:650}.article-kicker span+span:before{content:"·";color:var(--border-strong);margin-right:6px}.typing-toolbar h2{font-family:var(--font-display);margin:9px 0 0;font-size:21px;font-weight:600}.article-restart{align-items:center;display:flex}.article-restart .toolbar-actions{align-items:center;gap:12px;width:100%;display:flex}.toolbar-actions button{min-height:46px;color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-small);background:var(--bg-raised);box-shadow:none;cursor:pointer;padding:0 15px;font-size:11px;font-weight:700;transition:color .12s,border-color .12s,background .12s,box-shadow .12s,transform .12s;position:relative}.toolbar-actions button:hover:not(:disabled){color:var(--text-primary);border-color:var(--border-strong);background:var(--bg-paper);box-shadow:var(--shadow-key);transform:translateY(-1px)}.toolbar-actions button:active:not(:disabled){box-shadow:none;transform:translateY(1px)}.toolbar-actions .common-toolbar-action{text-align:left;letter-spacing:.04em;min-width:118px;padding:0 16px 0 47px;overflow:hidden}.toolbar-actions .common-toolbar-action:before{border-right:1px solid var(--border-subtle);width:30px;font:800 16px/1 var(--font-data);place-items:center;display:grid;position:absolute;inset:5px auto 5px 5px}.toolbar-actions .range-action:before{content:"▦";color:var(--accent-vermilion)}.toolbar-actions .range-action:after{content:"";background:var(--accent-vermilion);width:3px;position:absolute;inset:0 auto 0 0}.toolbar-actions .shuffle-action{color:var(--accent-bamboo);border-color:var(--accent-bamboo)}@supports (color:color-mix(in lab, red, red)){.toolbar-actions .shuffle-action{border-color:color-mix(in srgb, var(--accent-bamboo) 48%, var(--border-default))}}.toolbar-actions .shuffle-action{background:var(--accent-bamboo)}@supports (color:color-mix(in lab, red, red)){.toolbar-actions .shuffle-action{background:color-mix(in srgb, var(--accent-bamboo) 7%, var(--bg-raised))}}.toolbar-actions .shuffle-action:before{content:"⇄";color:var(--accent-bamboo);border-right-color:var(--accent-bamboo)}@supports (color:color-mix(in lab, red, red)){.toolbar-actions .shuffle-action:before{border-right-color:color-mix(in srgb, var(--accent-bamboo) 25%, var(--border-subtle))}}.toolbar-actions .shuffle-action:hover:not(:disabled){color:var(--accent-bamboo);border-color:var(--accent-bamboo);background:var(--accent-bamboo)}@supports (color:color-mix(in lab, red, red)){.toolbar-actions .shuffle-action:hover:not(:disabled){background:color-mix(in srgb, var(--accent-bamboo) 12%, var(--bg-raised))}}.toolbar-actions .restart-action{min-width:96px;color:var(--text-primary);background:var(--bg-paper)}.toolbar-actions .restart-action:before{content:"↺";color:var(--accent-vermilion);font:800 15px/1 var(--font-data);margin-right:7px}.toolbar-actions button:disabled{cursor:not-allowed;opacity:.55}.root-rail{min-height:48px;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);background:var(--accent-bamboo);grid-template-columns:repeat(5,1fr);display:grid;position:relative}@supports (color:color-mix(in lab, red, red)){.root-rail{background:color-mix(in srgb, var(--accent-bamboo) 3%, var(--bg-raised))}}.ghost-progress-marker{z-index:3;width:2px;inset:3px auto 3px var(--ghost-progress);border-left:2px dashed var(--accent-vermilion);filter:drop-shadow(0 0 2px var(--bg-paper));transition:left .12s linear;position:absolute;transform:translate(-1px)}.ghost-progress-marker:before{content:"幽";color:var(--accent-vermilion);font:800 8px/1 var(--font-data);position:absolute;top:-1px;left:4px}.root-rail>span{--segment-progress:0%;border-right:1px solid var(--border-subtle);gap:4px;padding:10px 12px;display:grid;position:relative;overflow:hidden}.root-rail>span:before{content:"";width:var(--segment-progress);background:var(--progress-fill);transition:width .12s linear;position:absolute;inset:0 auto 0 0}.root-rail b,.root-rail small{z-index:1;position:relative}.root-rail>span:last-child{border-right:0}.root-rail b{font:700 11px/1 var(--font-data);letter-spacing:.12em}.root-rail small{font-size:9px}.article-text{overscroll-behavior:contain;scroll-behavior:smooth;height:clamp(340px,42vh,500px);min-height:340px;max-height:500px;color:var(--text-secondary);padding:38px 44px 40px 52px;scroll-padding-block:28%;overflow-y:auto}@supports (color:color-mix(in lab, red, red)){.article-text{color:color-mix(in srgb, var(--text-secondary) 82%, var(--text-primary))}}.article-text{background:linear-gradient(90deg, transparent 0 31px, var(--accent-vermilion) 31px 32px, transparent 32px), repeating-linear-gradient(0deg, transparent 0 49px, var(--text-primary) 49px 50px), var(--bg-paper)}@supports (color:color-mix(in lab, red, red)){.article-text{background:linear-gradient(90deg, transparent 0 31px, color-mix(in srgb, var(--accent-vermilion) 28%, transparent) 31px 32px, transparent 32px), repeating-linear-gradient(0deg, transparent 0 49px, color-mix(in srgb, var(--text-primary) 3.5%, transparent) 49px 50px), var(--bg-paper)}}.article-text{cursor:text;font-family:var(--font-reading);letter-spacing:.055em;white-space:pre-wrap;font-weight:500;line-height:2}.article-text::-webkit-scrollbar{width:8px}.article-text::-webkit-scrollbar-thumb{background:var(--text-secondary);border:2px solid #0000;border-radius:999px}@supports (color:color-mix(in lab, red, red)){.article-text::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--text-secondary) 34%, transparent)}}.article-text::-webkit-scrollbar-thumb{background-clip:padding-box}.article-text span{border-radius:2px;transition:color 90ms,background 90ms}.article-text span.correct{color:var(--accent-bamboo)}@supports (color:color-mix(in lab, red, red)){.article-text span.correct{color:color-mix(in srgb, var(--accent-bamboo) 78%, var(--text-primary))}}.article-text span.wrong{color:#fff;background:var(--state-error-fill)}.article-text span.current{color:var(--text-on-accent);background:var(--accent-vermilion-fill);box-shadow:0 0 0 1px var(--accent-vermilion-fill);animation:current-character-in .15s var(--ease-out) both}.article-swap{animation:article-swap-in .24s var(--ease-out) both}.article-text.common-character-text{white-space:normal}.common-character-text>.paragraph-break{display:none}.typing-input{resize:vertical;width:100%;min-height:96px;color:var(--text-primary);border:0;border-top:1px solid var(--border-subtle);background:var(--accent-bamboo);border-radius:0;padding:20px 28px}@supports (color:color-mix(in lab, red, red)){.typing-input{background:color-mix(in srgb, var(--accent-bamboo) 2%, var(--bg-raised))}}.typing-input{font-size:18px;line-height:1.65}.typing-input::placeholder{color:var(--text-secondary)}.typing-footer{min-height:44px;color:var(--text-secondary);border-top:1px solid var(--border-subtle);font:9px/1.4 var(--font-data);justify-content:space-between;align-items:center;padding:0 24px;display:flex}.typing-position{font-variant-numeric:tabular-nums;letter-spacing:.04em}.code-hint-card{min-width:112px;color:var(--text-primary);border:1px solid var(--accent-vermilion);grid-template-columns:30px minmax(74px,1fr);display:grid;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.code-hint-card{border:1px solid color-mix(in srgb, var(--accent-vermilion) 34%, var(--border-default))}}.code-hint-card{border-radius:var(--radius-small);background:var(--bg-raised)}.code-hint-character{min-height:34px;color:var(--text-on-accent);background:var(--accent-vermilion-fill);font:500 19px/1 var(--font-display);place-items:center;display:grid}.code-hint-copy{align-content:center;gap:1px;padding:4px 6px 3px;display:grid}.code-hint-copy small{color:var(--text-secondary);letter-spacing:.04em;white-space:nowrap;font-size:7px;font-weight:650}.code-hint-copy b{color:var(--accent-bamboo);font:760 15px/1.05 var(--font-data);letter-spacing:.08em}.code-hint-card.has-error{border-color:var(--state-error)}.code-hint-card.has-error .code-hint-character{background:var(--state-error-fill)}.code-hint-card.has-error .code-hint-copy b{color:var(--state-error);font:650 9px/1.2 var(--font-body);letter-spacing:0}.hesitation-heatmap{background:var(--bg-paper);gap:16px;padding:20px;display:grid}.workspace-grid>.side-panel{grid-area:1/2}.hesitation-heading{justify-content:space-between;align-items:end;gap:20px;display:flex}.hesitation-heading h3{font-family:var(--font-display);margin:4px 0 0;font-size:21px}.hesitation-threshold{color:var(--text-secondary);font:9px/1.5 var(--font-data);text-align:right}.heatmap-legend{color:var(--text-secondary);flex-wrap:wrap;gap:8px 16px;font-size:10px;display:flex}.heatmap-legend span{align-items:center;gap:6px;display:inline-flex}.heatmap-legend i{border-radius:3px;width:18px;height:10px;display:inline-block;box-shadow:inset 0 -2px}@supports (color:color-mix(in lab, red, red)){.heatmap-legend i{box-shadow:inset 0 -2px 0 color-mix(in srgb, currentColor 30%, transparent)}}.heatmap-passage{color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-medium);background:linear-gradient(transparent calc(2em - 1px), var(--border-subtle) 1px), var(--bg-raised);font-family:var(--font-reading);overflow-wrap:anywhere;background-size:100% 2em;padding:18px 20px;font-size:19px;line-height:2}.heatmap-passage mark{min-width:1em;color:inherit;background:var(--heat-smooth);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:3px;padding:2px 1px}.heatmap-passage mark.heat-level-1{background:var(--heat-mild);box-shadow:inset 0 -2px 0 var(--accent-vermilion)}@supports (color:color-mix(in lab, red, red)){.heatmap-passage mark.heat-level-1{box-shadow:inset 0 -2px 0 color-mix(in srgb, var(--accent-vermilion) 45%, transparent)}}.heatmap-passage mark.heat-level-2{color:#251810;background:var(--heat-clear);box-shadow:inset 0 -3px 0 var(--accent-vermilion-dark)}.heatmap-passage mark.heat-level-3{color:var(--heat-severe-text);background:var(--heat-severe);box-shadow:inset 0 -3px 0 var(--accent-vermilion-dark)}.heat-level-0{background:var(--heat-smooth)}.heat-level-1{background:var(--heat-mild)}.heat-level-2{background:var(--heat-clear)}.heat-level-3{background:var(--heat-severe)}.hesitation-ranking{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.hesitation-ranking li{border-left:3px solid var(--heat-clear);border-radius:0 var(--radius-small) var(--radius-small) 0;background:var(--bg-raised);gap:5px;min-width:0;padding:10px 12px;display:grid}.hesitation-ranking b,.hesitation-ranking strong{font:700 9px/1.3 var(--font-data)}.hesitation-ranking b{color:var(--accent-vermilion)}.hesitation-ranking span{color:var(--text-secondary);font-family:var(--font-reading);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.hesitation-empty{text-align:center;border:1px dashed var(--border-default);border-radius:var(--radius-medium);background:var(--bg-raised);place-content:center;gap:5px;min-height:88px;padding:16px;display:grid}.hesitation-empty strong{color:var(--state-success);font-family:var(--font-display);font-size:18px}.hesitation-empty span{color:var(--text-secondary);font-size:10px}.heatmap-segment-button{min-width:1em;min-height:28px;color:inherit;cursor:pointer;font:inherit;line-height:inherit;vertical-align:baseline;-webkit-box-decoration-break:clone;box-decoration-break:clone;border:0;border-radius:3px;margin:0;padding:2px 1px}.heatmap-segment-button.heat-level-1{background:var(--heat-mild);box-shadow:inset 0 -2px 0 var(--accent-vermilion)}@supports (color:color-mix(in lab, red, red)){.heatmap-segment-button.heat-level-1{box-shadow:inset 0 -2px 0 color-mix(in srgb, var(--accent-vermilion) 45%, transparent)}}.heatmap-segment-button.heat-level-2{color:#251810;background:var(--heat-clear);box-shadow:inset 0 -3px 0 var(--accent-vermilion-dark)}.heatmap-segment-button.heat-level-3{color:var(--heat-severe-text);background:var(--heat-severe);box-shadow:inset 0 -3px 0 var(--accent-vermilion-dark)}.heatmap-segment-button:hover{outline:2px solid var(--accent-vermilion);outline-offset:2px}.heatmap-segment-button:focus-visible,.hesitation-segment-actions button:focus-visible,.hesitation-practice-modal button:focus-visible,.hesitation-practice-input:focus-visible{outline:3px solid var(--accent-bamboo);outline-offset:3px}.hesitation-segment-actions{flex-wrap:wrap;align-items:center;gap:5px;margin-top:3px;display:flex}.hesitation-segment-actions button{min-height:32px;color:var(--accent-bamboo);border:1px solid var(--border-default);border-radius:var(--radius-small);background:var(--bg-paper);cursor:pointer;padding:0 8px;font-size:9px;font-weight:750}.hesitation-segment-actions button:first-of-type{color:var(--text-on-accent);border-color:var(--accent-bamboo);background:var(--accent-bamboo-fill)}.hesitation-segment-actions button:disabled{cursor:not-allowed;opacity:.58}.hesitation-segment-status{width:100%;color:var(--text-secondary);font:700 9px/1.4 var(--font-data);white-space:normal;align-items:center;gap:5px;display:inline-flex}.hesitation-segment-status i{width:16px;height:16px;color:var(--text-on-accent);background:var(--accent-bamboo-fill);border-radius:50%;flex:none;place-items:center;font-style:normal;display:inline-grid}.hesitation-practice-modal{background:linear-gradient(#20262206 1px, transparent 1px), linear-gradient(90deg, #20262206 1px, transparent 1px), var(--bg-raised);background-size:32px 32px;gap:16px;max-height:calc(100dvh - 116px);padding:20px;display:grid;overflow-y:auto}.hesitation-practice-meta{justify-content:space-between;align-items:end;gap:16px;display:flex}.hesitation-practice-meta>div{gap:4px;display:grid}.hesitation-practice-meta .eyebrow{margin:0}.hesitation-practice-meta strong{font-family:var(--font-display);font-size:18px}.hesitation-practice-meta>span{color:var(--text-secondary);font:700 10px/1.4 var(--font-data)}.hesitation-practice-target{color:var(--text-secondary);border:1px solid var(--border-strong);border-top:3px solid var(--accent-vermilion);border-radius:var(--radius-medium);background:var(--bg-paper);font-family:var(--font-reading);text-align:center;overflow-wrap:anywhere;padding:18px 20px;font-size:clamp(22px,5vw,34px);line-height:1.75}.hesitation-practice-target span{border-radius:3px;min-width:1em;display:inline-block}.hesitation-practice-target span.focus-fragment{box-shadow:inset 0 -3px 0 var(--accent-vermilion)}.hesitation-practice-target span.correct{color:var(--accent-bamboo)}.hesitation-practice-target span.wrong{color:var(--text-on-accent);background:var(--state-error-fill)}.hesitation-practice-target span.current{color:var(--text-on-accent);background:var(--accent-vermilion-fill)}.hesitation-practice-goal,.hesitation-practice-ready p,.hesitation-practice-outcome p,.hesitation-save-error p{color:var(--text-secondary);margin:0;font-size:11px;line-height:1.7}.hesitation-practice-goal{border-left:3px solid var(--accent-bamboo);padding-left:10px}.hesitation-practice-ready,.hesitation-practice-done,.hesitation-save-error{justify-content:space-between;align-items:center;gap:14px;display:flex}.hesitation-practice-input-block{border:1px solid var(--border-default);border-radius:var(--radius-medium);background:var(--bg-paper);overflow:hidden}.hesitation-practice-input{resize:vertical;width:100%;min-height:108px;color:var(--text-primary);background:var(--bg-paper);font-family:var(--font-reading);border:0;padding:18px 20px;font-size:20px;line-height:1.7}.hesitation-practice-live{min-height:42px;color:var(--text-secondary);border-top:1px solid var(--border-subtle);font:700 9px/1.4 var(--font-data);justify-content:space-between;align-items:center;gap:12px;padding:0 16px;display:flex}.hesitation-practice-notice{color:var(--state-warning,var(--accent-vermilion));border-top:1px solid var(--border-subtle);margin:0;padding:8px 16px;font-size:10px}.hesitation-round-result{border:1px solid var(--border-default);border-left:4px solid var(--accent-bamboo);border-radius:var(--radius-medium);background:var(--bg-paper);grid-template-columns:repeat(4,minmax(0,1fr)) auto;align-items:center;gap:10px;padding:16px;display:grid}.hesitation-round-result>span,.hesitation-round-result>strong{font:700 10px/1.4 var(--font-data)}.hesitation-round-result>span{color:var(--text-secondary)}.hesitation-practice-summary{gap:12px;display:grid}.hesitation-practice-outcome{border:1px solid var(--border-default);border-left:4px solid var(--accent-vermilion);border-radius:var(--radius-medium);background:var(--bg-paper);align-items:center;gap:12px;padding:14px 16px;display:flex}.hesitation-practice-outcome.mastered{border-left-color:var(--state-success)}.hesitation-practice-outcome>span{width:34px;height:34px;color:var(--text-on-accent);background:var(--accent-vermilion-fill);border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.hesitation-practice-outcome.mastered>span{background:var(--state-success)}.hesitation-practice-outcome strong{font-family:var(--font-display);margin-bottom:3px;font-size:16px;display:block}.hesitation-attempt-table{border:1px solid var(--border-default);border-radius:var(--radius-medium);background:var(--bg-paper);overflow:hidden}.hesitation-attempt-table>div{border-top:1px solid var(--border-subtle);min-height:42px;font:600 10px/1.4 var(--font-data);grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:8px;padding:0 14px;display:grid}.hesitation-attempt-table>div:first-child{border-top:0}.hesitation-attempt-head{color:var(--text-secondary);background:var(--bg-raised);font-weight:800!important}.hesitation-saving,.hesitation-practice-done>span{color:var(--text-secondary);margin:0;font-size:11px}.hesitation-save-error{border:1px solid var(--state-error);padding:12px 14px}@supports (color:color-mix(in lab, red, red)){.hesitation-save-error{border:1px solid color-mix(in srgb, var(--state-error) 45%, var(--border-default))}}.hesitation-save-error{border-radius:var(--radius-small);background:var(--state-error)}@supports (color:color-mix(in lab, red, red)){.hesitation-save-error{background:color-mix(in srgb, var(--state-error) 6%, var(--bg-paper))}}.side-panel{padding:24px}.side-heading,.panel-title{justify-content:space-between;align-items:center;display:flex}.side-heading{margin-bottom:20px}.side-heading .eyebrow{margin-bottom:4px}.side-heading h3,.settings-mini h3{font-family:var(--font-display);margin:0;font-size:19px}.count-badge{width:auto;height:auto;color:var(--accent-bamboo);border-radius:var(--radius-small);background:var(--accent-bamboo);place-items:center;padding:5px 8px;display:grid}@supports (color:color-mix(in lab, red, red)){.count-badge{background:color-mix(in srgb, var(--accent-bamboo) 10%, var(--bg-paper))}}.count-badge{font:700 11px/1 var(--font-data)}.side-panel label,.settings-card>label,.custom-form label{color:var(--text-secondary);gap:7px;margin-top:15px;font-size:11px;font-weight:700;display:grid}select,.custom-form input,.custom-form textarea{width:100%;min-height:44px;color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-small);background:var(--bg-raised);padding:0 11px}.mistake-summary,.completion-stat{background:var(--bg-raised)}.side-action{width:100%;min-height:44px;color:var(--text-on-accent);border:1px solid var(--accent-vermilion-fill);border-radius:var(--radius-small);background:var(--accent-vermilion-fill);box-shadow:none;cursor:pointer;transition:transform .14s var(--ease-press), box-shadow .14s var(--ease-press), background .14s ease;justify-content:space-between;align-items:center;margin-top:8px;padding:0 13px;font-size:12px;font-weight:750;display:flex}.side-action:hover:not(:disabled){transform:translateY(-1px)}.side-action:active:not(:disabled){box-shadow:none;transform:translateY(1px)}.side-action.subtle{color:var(--text-primary);border-color:var(--border-default);background:var(--bg-raised);box-shadow:var(--shadow-key);justify-content:center}.side-action:disabled{cursor:not-allowed;opacity:.52;box-shadow:none}.tip-box{border:0;border-left:2px solid var(--accent-bamboo);margin-top:20px;padding:14px}@supports (color:color-mix(in lab, red, red)){.tip-box{border-left:2px solid color-mix(in srgb, var(--accent-bamboo) 50%, var(--border-default))}}.tip-box{border-radius:0 var(--radius-small) var(--radius-small) 0;background:var(--accent-bamboo)}@supports (color:color-mix(in lab, red, red)){.tip-box{background:color-mix(in srgb, var(--accent-bamboo) 6%, var(--bg-paper))}}.tip-box span{color:var(--accent-bamboo);font-size:10px;font-weight:800}.tip-box p{color:var(--text-secondary);margin:5px 0 0;font-size:11px;line-height:1.65}.loading-card{min-height:480px;color:var(--text-secondary);place-items:center;display:grid}.error-card{border:1px solid var(--state-error);grid-template-columns:auto 1fr auto;align-items:center;gap:16px;min-height:120px;margin-block:24px;padding:22px;display:grid}@supports (color:color-mix(in lab, red, red)){.error-card{border:1px solid color-mix(in srgb, var(--state-error) 48%, var(--border-default))}}.error-card{background:var(--state-error)}@supports (color:color-mix(in lab, red, red)){.error-card{background:color-mix(in srgb, var(--state-error) 6%, var(--bg-paper))}}.error-card{border-radius:var(--radius-medium);box-shadow:none}.error-card>span{color:#fff;background:var(--state-error-fill);width:38px;height:38px;font:800 18px/1 var(--font-data);place-items:center;display:grid}.error-card strong{margin-bottom:5px;display:block}.error-card p{color:var(--text-secondary);margin:0;font-size:12px;line-height:1.6}.subpage{padding:56px 0 72px}.input-review{width:100%;min-height:96px;color:var(--text-primary);border-top:1px solid var(--border-default);border-radius:var(--radius-small);background:var(--bg-raised);flex-direction:column;display:flex;overflow:hidden}.input-review:focus-visible{outline:2px solid var(--accent-bamboo);outline-offset:-2px}.input-review-text{white-space:pre-wrap;overflow-wrap:break-word;flex:auto;min-height:0;padding:20px 28px;font-size:18px;line-height:1.65;overflow:auto}.input-review-text:focus-visible{outline:2px solid var(--accent-bamboo);outline-offset:-2px}.input-review-phrase{color:var(--accent-vermilion);font:inherit;letter-spacing:inherit;text-align:inherit;white-space:inherit;text-underline-offset:4px;cursor:pointer;background:0 0;border:0;border-radius:0;margin:0;padding:0;text-decoration-line:underline;text-decoration-style:dashed;text-decoration-thickness:1px;display:inline}.input-review-phrase:hover,.input-review-phrase[aria-pressed=true]{background:var(--accent-vermilion)}@supports (color:color-mix(in lab, red, red)){.input-review-phrase:hover,.input-review-phrase[aria-pressed=true]{background:color-mix(in srgb, var(--accent-vermilion) 10%, transparent)}}.input-review-phrase:focus-visible{outline:2px solid var(--accent-vermilion);outline-offset:2px}.input-review-hint{overflow-wrap:anywhere;max-height:calc(100% - 70px);color:var(--text-secondary);border-top:1px solid var(--border-subtle);flex-wrap:wrap;flex:none;align-items:center;gap:4px 12px;padding:4px 28px;font-size:12px;line-height:1.5;display:flex;overflow:auto}.input-review-hint strong,.input-review-hint code{color:var(--text-primary)}.input-review-hint code{font-family:var(--font-data)}.input-review-hint button{color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-small);background:var(--bg-paper);cursor:pointer;padding:2px 8px}.input-review-explanation{flex-basis:100%}.typing-review-actions{border-top:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;padding:12px 24px;display:flex}.typing-review-save{min-width:0;color:var(--text-secondary);overflow-wrap:anywhere;flex:200px;font-size:12px;line-height:1.5}.typing-review-buttons{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.typing-review-buttons .button{white-space:normal;min-width:0;max-width:100%}@media (max-width:780px){.input-review-text{padding:17px 20px}.input-review-hint{max-height:calc(100% - 64px);padding:4px 20px}.typing-review-actions{padding:12px 20px}.typing-review-buttons{flex:100%}.typing-review-buttons .button{flex:auto}}.subpage-heading{max-width:760px;margin-bottom:36px}.subpage-heading.centered{text-align:center;max-width:760px;margin:0 auto 38px}.lookup-heading{text-align:left;margin-inline:auto}.subpage-heading.with-action{justify-content:space-between;align-items:end;gap:24px;max-width:none;display:flex}.challenge-card{background:linear-gradient(90deg, transparent 49.9%, var(--border-default) 50%, transparent 50.1%), var(--bg-paper);place-items:center;min-height:540px;display:grid}@supports (color:color-mix(in lab, red, red)){.challenge-card{background:linear-gradient(90deg, transparent 49.9%, color-mix(in srgb, var(--border-default) 32%, transparent) 50%, transparent 50.1%), var(--bg-paper)}}.challenge-card{transition:border-color .16s,box-shadow .16s}.challenge-card.has-error{border-color:var(--state-error);box-shadow:inset 0 0 0 3px var(--state-error)}@supports (color:color-mix(in lab, red, red)){.challenge-card.has-error{box-shadow:inset 0 0 0 3px color-mix(in srgb, var(--state-error) 28%, transparent)}}.challenge-start,.challenge-running{text-align:center;width:min(540px,100% - 48px)}.challenge-start h2{font-family:var(--font-display);margin:0 0 10px;font-size:30px}.challenge-start p{color:var(--text-secondary);margin:0 0 24px}.result-score{margin:16px}.result-score strong{color:var(--accent-vermilion);font:800 48px/1 var(--font-data)}.result-score span{color:var(--text-secondary)}.challenge-status,.code-slots,.quick-searches{justify-content:center;gap:8px;display:flex}.challenge-status span{color:var(--text-secondary);border:0;border-bottom:1px solid var(--border-default);background:var(--bg-raised);font:10px/1 var(--font-data);padding:6px 10px}.question-character{font-family:var(--font-display);margin:44px 0 28px;font-size:clamp(68px,10vw,112px);font-weight:600}.code-slots{margin-bottom:16px}.code-slots span,.keyboard-visual span{border:1px solid var(--border-default);background:var(--bg-raised);box-shadow:var(--shadow-key);font-family:var(--font-data);place-items:center;display:grid}.code-slots span{width:58px;height:64px;color:var(--text-secondary);border-radius:var(--radius-small);transition:color .16s ease, background .16s ease, border-color .16s ease, transform .16s var(--ease-out);font-size:26px;font-weight:750}.code-slots span.filled{color:var(--text-on-accent);border-color:var(--accent-bamboo-fill);background:var(--accent-bamboo-fill);transform:translateY(-2px)}.code-input{width:min(280px,100%);height:48px;color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-small);background:var(--bg-raised);text-align:center;font:700 18px/1 var(--font-data);padding:0 14px}.code-input.right{border-color:var(--state-success)}.code-input.wrong{border-color:var(--state-error);background:var(--state-error)}@supports (color:color-mix(in lab, red, red)){.code-input.wrong{background:color-mix(in srgb, var(--state-error) 8%, var(--bg-raised))}}.code-input.wrong{box-shadow:0 0 0 3px var(--state-error)}@supports (color:color-mix(in lab, red, red)){.code-input.wrong{box-shadow:0 0 0 3px color-mix(in srgb, var(--state-error) 16%, transparent)}}.challenge-running.is-wrong .code-slots span.filled{border-color:var(--state-error-fill);background:var(--state-error-fill)}.feedback-region{place-items:start center;min-height:116px;margin-top:14px;display:grid}.feedback{margin:0;padding:8px 12px;font-size:12px;font-weight:750}.feedback.right{color:var(--state-success);animation:feedback-in .18s var(--ease-out) both}.feedback.wrong{color:var(--state-error);animation:feedback-in .18s var(--ease-out) both}.question-swap{animation:question-swap-in .22s var(--ease-out) both}.wrong-answer{width:min(400px,100%);color:var(--text-primary);border:1px solid var(--state-error);background:var(--state-error);padding:14px 16px 16px}@supports (color:color-mix(in lab, red, red)){.wrong-answer{background:color-mix(in srgb, var(--state-error) 9%, var(--bg-raised))}}.wrong-answer{border-radius:var(--radius-small);text-align:left}.wrong-answer>span{color:var(--state-error);letter-spacing:.08em;margin-bottom:7px;font-size:11px;font-weight:800;display:block}.wrong-answer p{flex-wrap:wrap;align-items:baseline;gap:8px;margin:0 0 12px;font-size:12px;display:flex}.wrong-answer del,.wrong-answer strong{font:800 20px/1 var(--font-data)}.wrong-answer del{color:var(--state-error);text-decoration-thickness:2px}.wrong-answer strong{color:var(--state-success)}.wrong-answer i{color:var(--text-secondary);font-style:normal}.wrong-answer .button{width:100%;min-height:44px}.settings-mini>h3{margin-bottom:18px}.segmented{border:1px solid var(--border-default);border-radius:var(--radius-small);background:var(--bg-key);grid-template-columns:repeat(2,1fr);padding:3px;display:grid}.segmented button:disabled{cursor:not-allowed;opacity:.58}.segmented.small{grid-template-columns:repeat(3,1fr)}.segmented button{cursor:pointer;border-radius:calc(var(--radius-small) - 2px);min-height:44px;transition:color .16s ease, background .16s ease, transform .14s var(--ease-press);background:0 0;border:0;font-size:11px;font-weight:700}.segmented button:active:not(:disabled){transform:scale(.98)}.segmented button.active{color:var(--text-on-accent);background:var(--accent-bamboo-fill)}.segmented.small.history-filter{background:0 0;border:0;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;width:min(320px,100%);padding:0}.history-filter button{border:1px solid var(--border-default);background:var(--bg-raised);min-width:0}.history-filter button.active{border-color:var(--accent-bamboo-fill)}.switch-row{border-bottom:1px solid var(--border-default);align-items:center;padding:15px 0;grid-template-columns:1fr auto!important}.switch-row>span{gap:3px;display:grid}.switch-row strong{color:var(--text-primary);font-size:12px}.switch-row small{color:var(--text-secondary);font-weight:500}.switch-row input{width:44px;height:28px;accent-color:var(--accent-bamboo)}.mistake-summary{justify-content:space-between;margin:18px 0 8px;padding:13px;display:flex}.mistake-summary span,.mistake-row span{color:var(--text-secondary);font-size:11px}.mistake-summary strong{color:var(--state-error)}.mistake-row{border-bottom:1px solid var(--border-default);justify-content:space-between;padding:9px 0;font-size:12px;display:flex}.mistake-row span{font-family:var(--font-data)}.lookup-search{border-color:var(--border-strong);max-width:760px;min-height:64px;box-shadow:var(--shadow-panel);align-items:center;gap:13px;margin:auto;padding:0 20px;display:flex}.lookup-search-field{border:1px solid var(--border-default);border-radius:var(--radius-small);background:var(--bg-raised);width:min(680px,100%);min-width:0;min-height:48px;transition:border-color .18s ease, box-shadow .18s ease, transform .18s var(--ease-out);align-items:center;gap:8px;margin-inline:auto;padding:0 6px 0 15px;display:flex}.lookup-search-field:focus-within{border-color:var(--accent-bamboo);box-shadow:0 0 0 3px var(--bg-paper), 0 0 0 6px var(--focus-ring), 0 5px 0 var(--accent-bamboo)}@supports (color:color-mix(in lab, red, red)){.lookup-search-field:focus-within{box-shadow:0 0 0 3px var(--bg-paper), 0 0 0 6px var(--focus-ring), 0 5px 0 color-mix(in srgb, var(--accent-bamboo) 18%, var(--border-default))}}.lookup-search-field:focus-within{transform:translateY(-2px)}.lookup-search-field input:focus-visible{box-shadow:none}.lookup-search input{min-width:0;min-height:44px;color:var(--text-primary);background:0 0;border:0;flex:1;font-size:17px}.lookup-search button{min-height:44px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0}.lookup-empty{text-align:center;max-width:760px;margin:auto;padding:64px 0}.keyboard-visual{justify-items:center;gap:8px;max-width:720px;margin:0 auto 36px;display:grid}.keyboard-row{animation:lookup-keyboard-row-in .38s var(--ease-out) both;grid-auto-columns:50px;grid-auto-flow:column;gap:6px;display:grid}.keyboard-row:nth-child(2){animation-delay:55ms}.keyboard-row:nth-child(3){animation-delay:.11s}.keyboard-visual span{width:50px;height:50px;color:var(--text-secondary);border-radius:var(--radius-small);font-size:13px;font-weight:700}.lookup-empty h2{font-family:var(--font-display);margin:0;font-size:23px}.lookup-empty p{color:var(--text-secondary);margin:8px 0 20px}.quick-searches button{min-height:44px;color:var(--accent-bamboo);border:1px solid var(--accent-bamboo);border-radius:var(--radius-small);cursor:pointer;background:0 0;padding:0 13px}.lookup-results{max-width:760px;margin:22px auto 0;overflow:hidden}.result-heading,.lookup-row{border-bottom:1px solid var(--border-default);grid-template-columns:1fr 2fr auto;align-items:center;gap:20px;padding:15px 20px;display:grid}.result-heading{color:var(--text-secondary);background:var(--bg-key);font-size:11px}.result-heading strong{grid-column:3}.lookup-row:last-child{border-bottom:0}.lookup-row{animation:list-row-in .26s var(--ease-out) both}.lookup-row:nth-child(2){animation-delay:30ms}.lookup-row:nth-child(3){animation-delay:60ms}.lookup-row:nth-child(4){animation-delay:90ms}.lookup-row:nth-child(5){animation-delay:.12s}.lookup-row>strong{font-family:var(--font-display);font-size:25px}.lookup-row code{color:var(--text-on-accent);background:var(--accent-bamboo-fill);font:750 15px/1 var(--font-data);border-radius:4px;margin-right:8px;padding:7px 10px;display:inline-block}.lookup-row small{color:var(--text-secondary)}.summary-grid{grid-template-columns:.9fr 1.25fr .9fr 1fr;gap:12px;margin-bottom:16px;display:grid}.summary-card{transition:transform .18s var(--ease-out), box-shadow .18s ease;padding:20px}.summary-card>span,.summary-card p{color:var(--text-secondary);font-size:11px}.summary-card strong{font:750 30px/1 var(--font-data);margin:12px 0 7px;display:block}.summary-card strong small{color:var(--text-secondary);margin-left:5px;font-size:10px}.summary-card p{margin:0}.summary-card.accent{color:var(--accent-vermilion);border-color:var(--accent-vermilion)}@supports (color:color-mix(in lab, red, red)){.summary-card.accent{border-color:color-mix(in srgb, var(--accent-vermilion) 52%, var(--border-default))}}.summary-card.accent{background:var(--accent-vermilion)}@supports (color:color-mix(in lab, red, red)){.summary-card.accent{background:color-mix(in srgb, var(--accent-vermilion) 5%, var(--bg-paper))}}.summary-card.accent>span,.summary-card.accent p,.summary-card.accent strong small{color:var(--text-secondary)}.history-grid{grid-template-columns:minmax(0,1.6fr) minmax(280px,.7fr)}.history-panel{overflow:hidden}.panel-title{border-bottom:1px solid var(--border-default);min-height:66px;padding:0 20px}.panel-title h2{font-family:var(--font-display);margin:0;font-size:19px}.panel-title>span{color:var(--text-secondary);font-size:11px}.table-head,.table-row{border-bottom:1px solid var(--border-default);grid-template-columns:minmax(210px,1.8fr) repeat(5,minmax(68px,.62fr)) minmax(88px,auto);align-items:center;gap:14px;min-height:70px;padding:10px 20px;font-size:12px;display:grid}.table-head{min-height:38px;color:var(--text-secondary);background:var(--bg-key);padding-block:0;font-size:10px}.session-practice{gap:4px;min-width:0;display:grid}.session-practice strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.table-row small{color:var(--text-secondary);font-size:9px;display:block}.session-speed,.session-kps,.session-code-length,.session-accuracy{white-space:nowrap;align-items:baseline;gap:4px;display:inline-flex}.session-speed small,.session-kps small,.session-code-length small,.session-accuracy small{display:inline}.session-code-length .session-theoretical{width:100%;color:var(--accent-bamboo);margin-top:3px;font-size:8px;display:block}.session-code-length{flex-wrap:wrap}.session-diagnostics{border-top:1px dashed var(--border-subtle);grid-column:1/-1;grid-template-columns:repeat(9,minmax(64px,1fr));gap:10px;padding-top:9px;display:grid}.session-recommendation-evidence{border-top:1px dashed var(--border-subtle);grid-column:1/-1;padding:9px 0 2px}.session-recommendation-evidence summary{cursor:pointer;width:max-content;max-width:100%;color:var(--accent-bamboo);font-size:9px;font-weight:750}.session-recommendation-evidence ul{color:var(--text-secondary);margin:8px 0 0;padding-left:18px;font-size:9px;line-height:1.7}.session-actions{justify-items:stretch;gap:6px;display:grid}.session-actions button{width:100%}.session-heatmap-trigger{min-height:34px;color:var(--accent-vermilion);border:1px solid var(--border-default);border-radius:var(--radius-small);background:var(--bg-raised);cursor:pointer;white-space:nowrap;padding:0 10px;font-size:10px;font-weight:700}.session-heatmap-trigger[aria-expanded=true]{color:var(--text-on-accent);border-color:var(--accent-vermilion-fill);background:var(--accent-vermilion-fill)}.session-heatmap-detail{border-top:1px dashed var(--border-subtle);grid-column:1/-1}.hesitation-heatmap.compact{background:0 0;padding:18px 0 8px}.hesitation-heatmap.compact .heatmap-passage{max-height:280px;overflow-y:auto}.error-cloud{padding:10px 20px}.error-cloud>div{border-bottom:1px solid var(--border-default);grid-template-columns:40px 1fr 28px;align-items:center;gap:8px;min-height:48px;display:grid}.error-cloud>div>strong{font-family:var(--font-display);font-size:21px}.error-cloud>div>span{color:var(--text-secondary);font:10px/1 var(--font-data)}.error-cloud>div>b{color:#fff;background:var(--state-error-fill);place-items:center;width:26px;height:26px;font-size:10px;display:grid}.completion-stat{margin:8px 20px 20px;padding:14px}.completion-stat span,.completion-stat strong{display:block}.completion-stat span{color:var(--text-secondary);font-size:10px}.completion-stat strong{margin:5px 0 10px}.completion-stat i{background:var(--bg-key);height:5px;display:block;overflow:hidden}.completion-stat i b{background:var(--accent-bamboo);height:100%;display:block}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.settings-card{transition:transform .18s var(--ease-out), box-shadow .18s ease;padding:28px}.settings-card-title{align-items:center;gap:13px;margin-bottom:18px;display:flex}.settings-card-title>span{width:40px;height:40px;color:var(--text-on-accent);background:var(--accent-bamboo-fill);font-family:var(--font-display);border-radius:4px 7px 5px 6px;place-items:center;font-size:19px;display:grid}.settings-card-title h2,.settings-card-title p{margin:0}.settings-card-title h2{font-family:var(--font-display);font-size:19px}.settings-card-title p{color:var(--text-secondary);margin-top:3px;font-size:10px}.range-row{grid-template-columns:1fr!important}.range-row>span{justify-content:space-between;display:flex}.range-row input{width:100%;accent-color:var(--accent-bamboo)}.license-card>p{color:var(--text-secondary);font-size:12px;line-height:1.75}.license-card>a{color:var(--accent-bamboo);text-underline-offset:4px;font-size:12px;font-weight:750;text-decoration:underline}.theme-settings{grid-template-columns:minmax(0,1fr) minmax(280px,.78fr);align-items:start;gap:22px;display:grid}.theme-settings-heading,.theme-settings-controls{min-width:0}.theme-settings-heading{grid-column:1/-1;justify-content:space-between;align-items:end;gap:16px;display:flex}.theme-settings-heading h3,.theme-settings-heading p{margin:0}.theme-settings-heading h3{font:700 15px/1.35 var(--font-display)}.theme-settings-heading p{max-width:50ch;color:var(--text-secondary);text-align:right;font-size:10px;line-height:1.55}.theme-settings-controls{gap:16px;display:grid}.theme-preset-fieldset{border:0;min-width:0;margin:0;padding:0}.theme-preset-fieldset legend{color:var(--text-secondary);margin-bottom:8px;font-size:11px;font-weight:700}.theme-preset-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.theme-preset-option{min-width:0;min-height:70px;color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-small);background:var(--bg-raised);cursor:pointer;text-align:left;transition:color .14s ease, border-color .14s ease, background-color .14s ease, box-shadow .14s ease, transform .14s var(--ease-out);align-content:space-between;gap:8px;padding:8px;font-size:10px;font-weight:750;display:grid;position:relative;box-shadow:0 2px #0000}.theme-preset-option:hover{color:var(--text-primary);border-color:var(--border-strong);transform:translateY(-1px)}.theme-preset-option.is-selected,.theme-preset-option[aria-pressed=true]{color:var(--text-primary);border-color:var(--accent-bamboo);background:var(--accent-bamboo)}.theme-preset-option:has(input:checked){color:var(--text-primary);border-color:var(--accent-bamboo);background:var(--accent-bamboo)}@supports (color:color-mix(in lab, red, red)){.theme-preset-option.is-selected,.theme-preset-option[aria-pressed=true]{background:color-mix(in srgb, var(--accent-bamboo) 7%, var(--bg-paper))}.theme-preset-option:has(input:checked){background:color-mix(in srgb, var(--accent-bamboo) 7%, var(--bg-paper))}}.theme-preset-option.is-selected,.theme-preset-option[aria-pressed=true]{box-shadow:0 2px 0 var(--accent-bamboo)}.theme-preset-option:has(input:checked){box-shadow:0 2px 0 var(--accent-bamboo)}@supports (color:color-mix(in lab, red, red)){.theme-preset-option.is-selected,.theme-preset-option[aria-pressed=true]{box-shadow:0 2px 0 color-mix(in srgb, var(--accent-bamboo) 38%, var(--border-default))}.theme-preset-option:has(input:checked){box-shadow:0 2px 0 color-mix(in srgb, var(--accent-bamboo) 38%, var(--border-default))}}.theme-preset-option.is-selected:after,.theme-preset-option[aria-pressed=true]:after{content:"已选";color:var(--text-on-accent);background:var(--accent-bamboo-fill);font:700 8px/1 var(--font-data);border-radius:2px;padding:2px 4px;position:absolute;top:6px;right:6px}.theme-preset-option:has(input:checked):after{content:"已选";color:var(--text-on-accent);background:var(--accent-bamboo-fill);font:700 8px/1 var(--font-data);border-radius:2px;padding:2px 4px;position:absolute;top:6px;right:6px}.theme-preset-option input[type=radio]{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.theme-preset-option:focus-visible{box-shadow:0 0 0 3px var(--bg-raised), 0 0 0 6px var(--focus-ring)}.theme-preset-option:has(input:focus-visible){box-shadow:0 0 0 3px var(--bg-raised), 0 0 0 6px var(--focus-ring)}.theme-preset-swatch{border:1px solid var(--preset-text,var(--text-primary));height:24px;display:block;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.theme-preset-swatch{border:1px solid color-mix(in srgb, var(--preset-text,var(--text-primary)) 18%, transparent)}}.theme-preset-swatch{background:var(--preset-canvas,var(--bg-canvas));border-radius:2px}.theme-preset-swatch:before{content:"";background:var(--preset-paper,var(--bg-paper));box-shadow:inset 0 0 0 1px var(--preset-text,var(--text-primary));border-radius:1px;position:absolute;inset:5px 28% 5px 6px}@supports (color:color-mix(in lab, red, red)){.theme-preset-swatch:before{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--preset-text,var(--text-primary)) 12%, transparent)}}.theme-preset-swatch:after{content:"";background:var(--preset-accent,var(--accent-vermilion-fill));border-radius:1px;width:18%;position:absolute;inset:5px 6px 5px auto}.theme-preset-option>span:last-child{gap:3px;min-width:0;display:grid}.theme-preset-option>span:last-child strong,.theme-preset-option>span:last-child small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.theme-preset-option>span:last-child small{color:var(--text-secondary);font-size:8px;font-weight:600}.custom-theme-controls{border:1px solid var(--border-default);border-left:3px solid var(--accent-vermilion);border-radius:var(--radius-small);background:var(--accent-bamboo);grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;display:grid}@supports (color:color-mix(in lab, red, red)){.custom-theme-controls{background:color-mix(in srgb, var(--accent-bamboo) 4%, var(--bg-raised))}}.custom-theme-controls[hidden]{display:none}.custom-theme-heading{grid-column:1/-1;justify-content:space-between;align-items:center;gap:12px;display:flex}.custom-theme-heading>div{gap:4px;min-width:0;display:grid}.custom-theme-heading strong{font-size:11px}.custom-theme-heading small{color:var(--text-secondary);font-size:9px;line-height:1.45}.color-control-grid{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.color-control{grid-template-columns:minmax(0,1fr) 48px;align-items:center;min-width:0;color:var(--text-primary)!important;gap:10px!important;margin:0!important;display:grid!important}.color-control>span,.color-control>div{min-width:0}.color-control strong,.color-control small{display:block}.color-control strong{font-size:11px}.color-control small,.color-control output{color:var(--text-secondary);font:650 9px/1 var(--font-data);text-transform:uppercase;margin-top:4px}.color-control input[type=color],.color-control-swatch{border:1px solid var(--border-strong);border-radius:var(--radius-small);background:var(--bg-paper);cursor:pointer;width:48px;height:44px;min-height:44px;padding:3px}.color-control input[type=color]::-webkit-color-swatch-wrapper{padding:0}.color-control input[type=color]::-webkit-color-swatch{border:0;border-radius:2px}.color-control input[type=color]::-moz-color-swatch{border:0;border-radius:2px}.theme-reset-button{min-height:36px;color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-small);background:var(--bg-paper);cursor:pointer;justify-self:start;padding:0 10px;font-size:10px;font-weight:700}.theme-reset-button:hover{color:var(--text-primary);border-color:var(--border-strong)}.theme-preview{min-width:0;color:var(--preview-text,var(--text-primary));border:1px solid var(--preview-border,var(--border-default));border-radius:var(--radius-medium);background:var(--preview-canvas,var(--bg-canvas));box-shadow:0 6px 0 var(--preview-accent,var(--accent-bamboo));padding:12px;position:sticky;top:108px}@supports (color:color-mix(in lab, red, red)){.theme-preview{box-shadow:0 6px 0 color-mix(in srgb, var(--preview-accent,var(--accent-bamboo)) 14%, var(--preview-border,var(--border-default)))}}.theme-preview-toolbar{min-height:32px;color:var(--preview-text-secondary,var(--text-secondary));border:1px solid var(--preview-border,var(--border-default));border-radius:var(--radius-small) var(--radius-small) 0 0;background:var(--preview-raised,var(--bg-raised));font:700 8px/1 var(--font-data);border-bottom:0;justify-content:space-between;align-items:center;gap:8px;padding:0 10px;display:flex}.theme-preview-toolbar span{color:var(--preview-accent,var(--accent-vermilion))}.theme-preview-card{border:1px solid var(--preview-border,var(--border-default));border-radius:0 0 var(--radius-small) var(--radius-small);background:var(--preview-paper,var(--bg-paper));gap:10px;padding:14px;display:grid}.theme-preview-card p,.theme-preview-card small{color:var(--preview-text-secondary,var(--text-secondary));margin:0;line-height:1.55}.theme-preview-card strong{font-family:var(--font-display);font-size:15px}.theme-preview-practice{min-height:62px;color:var(--preview-text,var(--text-primary));border:1px solid var(--preview-border,var(--border-default));border-left:3px solid var(--preview-accent,var(--accent-vermilion));background:linear-gradient(transparent calc(2em - 1px), var(--preview-text,var(--text-primary)) 1px), var(--preview-raised,var(--bg-raised));border-radius:2px;flex-direction:column;justify-content:center;align-items:flex-start;padding:10px;display:flex}@supports (color:color-mix(in lab, red, red)){.theme-preview-practice{background:linear-gradient(transparent calc(2em - 1px), color-mix(in srgb, var(--preview-text,var(--text-primary)) 9%, transparent) 1px), var(--preview-raised,var(--bg-raised))}}.theme-preview-practice{font-family:var(--font-reading);background-size:100% 2em;font-size:14px;line-height:2}.theme-preview-practice span{color:var(--preview-text-secondary,var(--text-secondary));font:700 8px/1 var(--font-data)}.theme-preview-practice strong{font-size:14px}.theme-preview-actions{justify-content:space-between;align-items:center;gap:8px;display:flex}.theme-preview-button{min-height:34px;color:var(--preview-accent-text,var(--text-on-accent));border:1px solid var(--preview-accent,var(--accent-vermilion));background:var(--preview-accent,var(--accent-vermilion-fill));border-radius:2px;justify-content:center;justify-self:start;align-items:center;padding:0 12px;font-size:9px;font-weight:750;display:inline-flex}.theme-preview-status{align-items:center;gap:8px;font-size:9px;font-weight:700;display:inline-flex}.theme-preview-status .success{color:var(--state-success)}.theme-preview-status .error{color:var(--state-error)}.theme-contrast-note{color:var(--text-secondary);border-left:3px solid var(--state-success);background:var(--state-success);grid-column:1/-1;align-items:flex-start;gap:7px;margin:10px 0 0;padding:8px 10px;display:flex}@supports (color:color-mix(in lab, red, red)){.theme-contrast-note{background:color-mix(in srgb, var(--state-success) 7%, var(--bg-paper))}}.theme-contrast-note{font-size:9px;line-height:1.5}.theme-contrast-note:before{content:"AA";color:var(--state-success);font:800 8px/1.5 var(--font-data);flex:none}.theme-contrast-note.is-warning,.theme-contrast-note[data-warning=true]{color:var(--text-primary);border-left-color:var(--state-error);background:var(--state-error)}@supports (color:color-mix(in lab, red, red)){.theme-contrast-note.is-warning,.theme-contrast-note[data-warning=true]{background:color-mix(in srgb, var(--state-error) 7%, var(--bg-paper))}}.theme-contrast-note.is-warning:before,.theme-contrast-note[data-warning=true]:before{content:"!";color:var(--state-error)}.modal-backdrop{inset:var(--modal-viewport-top,0px) 0 auto;height:var(--modal-viewport-height,100dvh);z-index:100;background:#111714bf;place-items:center;padding:24px;animation:.18s ease-out both backdrop-in;display:grid;position:fixed}.modal{width:min(760px,100%);max-height:min(760px, calc(var(--modal-viewport-height,100dvh) - 48px));border:1px solid var(--text-primary);border-radius:var(--radius-medium);background:var(--bg-paper);animation:modal-in .24s var(--ease-out) both;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 24px 70px #00000042}.modal>header{min-height:64px;color:var(--text-primary);border-bottom:1px solid var(--border-default);background:var(--bg-raised);flex-shrink:0;justify-content:space-between;align-items:center;padding:0 20px;display:flex}.modal>:not(header){overscroll-behavior:contain;min-height:0;overflow-y:auto}.modal>header h2{font-family:var(--font-display);margin:0;font-size:19px}.modal>header button{width:44px;height:44px;color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-small);cursor:pointer;background:0 0;font-size:20px}.article-list{background:linear-gradient(#20262206 1px, transparent 1px), linear-gradient(90deg, #20262206 1px, transparent 1px), var(--bg-raised);background-size:32px 32px;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:620px;padding:14px;display:grid;overflow-y:auto}.article-list-summary{color:var(--text-secondary);grid-column:1/-1;padding:4px 2px;font-size:12px;font-weight:700}.article-list .article-choice{text-align:left;width:100%;min-height:132px;color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-medium);background:var(--bg-paper);cursor:pointer;transition:border-color .15s ease, background .15s ease, transform .15s var(--ease-out), box-shadow .15s ease;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:16px;padding:16px;display:grid;box-shadow:0 5px 14px #20262209}.article-list .article-choice:hover{border-color:var(--accent-bamboo);background:var(--bg-paper);transform:translateY(-2px);box-shadow:0 10px 24px #20262214}.article-library-tools{border-bottom:1px solid var(--border-subtle);grid-template-columns:minmax(0,1fr) minmax(140px,180px) auto;align-items:end;gap:12px;padding:16px;display:grid}.article-library-tools label{min-width:0;color:var(--text-secondary);gap:6px;font-size:13px;display:grid}.article-library-tools input,.article-library-tools select{border:1px solid var(--border-default);border-radius:var(--radius-small);width:100%;min-width:0;color:var(--text-primary);background:var(--bg-paper);font:inherit;padding:10px}.article-library-tools button[aria-pressed=true],.article-favorite-toggle[aria-pressed=true]{color:var(--accent-bamboo);border-color:var(--accent-bamboo)}.article-list-item{grid-template-rows:1fr auto;gap:6px;min-width:0;display:grid}.article-favorite-toggle{border:1px solid var(--border-default);border-radius:var(--radius-small);min-height:44px;color:var(--text-secondary);background:var(--bg-paper);cursor:pointer;justify-self:end;padding:8px 14px;font-size:13px}.article-favorite-error{color:var(--accent-vermilion);padding:8px 16px}@media (max-width:620px){.article-library-tools{grid-template-columns:minmax(0,1fr) auto}.article-library-tools label:first-child{grid-column:1/-1}}.article-card-copy{align-content:space-between;gap:8px;display:grid}.article-card-copy>small{color:var(--accent-vermilion);font-size:9px;font-weight:750}.article-card-copy>strong{font-family:var(--font-display);align-self:center;font-size:18px;line-height:1.25}.article-card-copy>span{color:var(--text-secondary);font-size:9px}.article-record{color:var(--text-secondary);border-left:1px solid var(--border-subtle);align-content:center;gap:5px;min-width:96px;padding-left:14px;display:grid}.article-record small,.article-record i{font-size:8px;font-style:normal}.article-record strong{color:var(--text-secondary);font:700 11px/1.2 var(--font-data)}.article-record.practiced strong{color:var(--accent-bamboo)}.common-practice-picker{max-height:calc(100dvh - 112px);padding:20px;overflow-y:auto}.common-practice-intro{border:1px solid var(--border-default);background:linear-gradient(90deg, var(--accent-bamboo), var(--bg-raised) 58%);grid-template-columns:auto 1fr;align-items:center;gap:20px;min-height:108px;margin-bottom:14px;padding:16px 18px;display:grid}@supports (color:color-mix(in lab, red, red)){.common-practice-intro{background:linear-gradient(90deg, color-mix(in srgb, var(--accent-bamboo) 13%, var(--bg-raised)), var(--bg-raised) 58%)}}.common-practice-intro>span{color:var(--accent-bamboo);font:800 42px/1 var(--font-data);letter-spacing:-.08em}.common-practice-intro strong{font-family:var(--font-display);font-size:19px}.common-practice-intro p{color:var(--text-secondary);margin:6px 0 0;font-size:11px;line-height:1.65}.common-range-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.common-range-grid button{min-height:78px;color:var(--text-primary);border:1px solid var(--border-default);background:var(--bg-paper);cursor:pointer;text-align:left;border-radius:2px;grid-template-rows:auto auto;grid-template-columns:30px 1fr auto;align-items:center;column-gap:10px;padding:12px 14px;transition:transform .14s,border-color .14s,background .14s;display:grid}.common-range-grid button:last-child{grid-column:1/-1}.common-range-grid button:hover:not(:disabled){border-color:var(--accent-bamboo);background:var(--accent-bamboo);transform:translateY(-2px)}@supports (color:color-mix(in lab, red, red)){.common-range-grid button:hover:not(:disabled){background:color-mix(in srgb, var(--accent-bamboo) 6%, var(--bg-paper))}}.common-range-grid button:disabled{cursor:wait;opacity:.5}.common-range-grid button>span{color:var(--text-secondary);font:700 10px/1 var(--font-data);grid-row:1/-1}.common-range-grid button strong{font-family:var(--font-display);align-self:end;font-size:18px}.common-range-grid button small{color:var(--text-secondary);align-self:start;font-size:10px}.common-range-grid button i{color:var(--accent-vermilion);font:700 18px/1 var(--font-data);grid-area:1/3/-1;font-style:normal}.common-source-note{color:var(--text-secondary);text-align:right;margin:14px 0 0;font-size:10px}.custom-form{padding:20px}.custom-form label{margin:0 0 16px}.custom-form textarea{resize:vertical;min-height:260px;padding:12px;line-height:1.7}.modal-actions{justify-content:space-between;align-items:center}.modal-actions>span{color:var(--text-secondary);font-size:11px}.empty-state{color:var(--text-secondary);text-align:center;font-size:12px;padding:42px 20px!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.music-content{min-height:100dvh;padding-bottom:calc(88px + env(safe-area-inset-bottom))}.music-dock{z-index:50;color:#f4f1e8;border-top:3px solid var(--accent-vermilion);padding-bottom:env(safe-area-inset-bottom);background:#18201d;position:fixed;inset:auto 0 0;box-shadow:0 -18px 40px #11171429}.music-dock:not(.is-collapsed):before{content:"";background:var(--accent-vermilion);transform-origin:0;height:3px;animation:music-brush-line .42s var(--ease-out) both;position:absolute;inset:-3px 0 auto}.music-dock.is-collapsed{opacity:0;visibility:hidden;pointer-events:none}.music-dock[data-morphing],.music-dock-peek.is-visible[data-morphing]{visibility:hidden;pointer-events:none}.music-dock-morph{z-index:50;pointer-events:none;contain:layout style;will-change:transform, width, height;border:0 solid #0000;position:fixed;inset:0 auto auto 0;overflow:hidden}.music-morph-controls{transform-origin:bottom;position:absolute;bottom:0;left:0}.music-dock-morph .music-dock{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;visibility:visible;opacity:1;background:0 0;border:0;position:relative;inset:auto}.music-dock-morph .music-dock:before{display:none}.music-dock-morph *{transition:none!important;animation:none!important}.music-morph-icon{place-items:center;width:44px;height:44px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.music-dock button,.music-dock input{accent-color:var(--accent-vermilion)}.music-dock button{color:inherit}.music-dock-peek{color:#f4f1e8;background:var(--dock-bg,#18201d);cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;border:1px solid #f4f1e833;border-radius:50%;place-items:center;width:44px;min-width:44px;height:44px;padding:0;display:grid;position:relative;box-shadow:0 10px 30px #1117143d}.music-dock-peek.is-visible{opacity:1;visibility:visible;pointer-events:auto}.music-dock-peek:hover{background:#202a26;border-color:#f4f1e875}.music-peek-icon{width:28px;height:32px;color:var(--accent-vermilion);display:block}.music-peek-arrow{color:#86bca9}@keyframes music-brush-line{0%{transform:scaleX(0)}}.music-dock-bar{grid-template-columns:160px auto minmax(0,1fr) minmax(72px,120px) minmax(150px,.8fr) 110px 44px;align-items:center;gap:14px;width:min(1480px,100% - 64px);min-height:72px;margin:auto;display:grid}.music-station,.music-now-playing,.music-volume,.music-library-heading,.music-library-heading>div{align-items:center;display:flex}.music-station{gap:10px;min-width:0}.music-station strong,.music-station small,.music-now-playing strong,.music-now-playing small{display:block}.music-station strong{font-family:var(--font-display);letter-spacing:.08em;font-size:14px}.music-station small{color:#f4f1e875;text-overflow:ellipsis;white-space:nowrap;max-width:145px;margin-top:3px;font-size:8px;overflow:hidden}.station-pulse{flex:none;justify-content:center;align-items:end;gap:3px;width:28px;height:32px;display:flex}.station-pulse i{transform-origin:bottom;width:3px;height:9px;transition:height .18s var(--ease-out), background .18s ease;background:#f4f1e861;border-radius:3px 3px 1px 1px}.station-pulse i:nth-child(2){height:18px}.station-pulse i:nth-child(3){height:13px}.station-pulse.active i{animation:music-meter .92s var(--ease-out) infinite alternate;background:#86bca9}.station-pulse.active i:nth-child(2){animation-delay:-380ms}.station-pulse.active i:nth-child(3){animation-delay:-180ms}@keyframes music-meter{0%{opacity:.62;transform:scaleY(.36)translateY(1px)}to{opacity:1;transform:scaleY(1)}}.music-transport{align-items:center;gap:5px;display:flex}.music-transport button,.music-collapse,.music-library-toggle{cursor:pointer;background:#f4f1e80b;border:1px solid #f4f1e833}.music-transport button{width:32px;height:32px;font:700 19px/1 var(--font-data);border-radius:50%;place-items:center;display:grid}.music-transport .music-play-button{width:42px;height:42px;color:var(--text-on-accent);border-color:var(--accent-vermilion);background:var(--accent-vermilion-fill);transition:transform .18s var(--ease-out), border-color .18s ease, background .18s ease, box-shadow .18s ease;padding-left:3px;font-size:12px}.music-transport .music-play-button.is-playing{animation:1.8s ease-in-out infinite music-seal-breathe;box-shadow:0 0 0 4px #aa382c24,0 0 0 8px #aa382c0f}.music-transport button:hover:not(:disabled),.music-collapse:hover,.music-library-toggle:hover{background:#f4f1e81a;border-color:#f4f1e885}.music-dock button:disabled,.music-dock input:disabled{cursor:not-allowed;opacity:.42}.music-now-playing{gap:12px;min-width:0}.music-now-playing>span{color:#86bca9;font:700 9px/1 var(--font-data);flex:none}.music-track-copy{min-width:0;animation:music-ink-reveal .26s var(--ease-out) both;flex:1}.music-now-playing strong,.music-now-playing small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.music-now-playing strong{font-size:11px;font-weight:700}.music-now-playing small{color:#f4f1e87a;margin-top:4px;font-size:8px}.music-library-toggle{border-radius:var(--radius-small);flex:none;align-items:center;gap:6px;min-height:34px;padding:0 9px;font-size:9px;font-weight:750;display:inline-flex}.music-library-toggle span{color:#86bca9;font:700 12px/1 var(--font-data)}@keyframes music-ink-reveal{0%{opacity:0;transform:translate(-7px)}}@keyframes music-seal-breathe{50%{transform:rotate(-1.5deg);box-shadow:0 0 0 5px #aa382c2e,0 0 0 11px #aa382c08}}.music-ruler{scrollbar-width:thin;cursor:pointer;background:0 0;border:1px solid #f4f1e81f;border-radius:6px;grid-auto-columns:44px;grid-auto-flow:column;align-items:center;gap:0;width:100%;min-width:0;height:64px;padding:0 6px;display:grid;overflow-x:auto}.music-ruler>button>span{width:100%;min-width:0;height:6px;transition:height .22s var(--ease-out), background .18s ease, transform .18s ease;background:#f4f1e838;border-radius:2px;display:block}.music-ruler:hover,.music-ruler:focus-within{border-color:#86bca98c}.music-ruler>button.active>span{background:#86bca9;height:22px}.music-dock.is-playing .music-ruler>button.active>span{animation:1.4s ease-in-out infinite music-root-breathe}.music-ruler>button:hover>span,.music-ruler>button:focus-visible>span{background:#b5dccc}.music-ruler>button:not(.active):hover>span,.music-ruler>button:not(.active):focus-visible>span{height:10px;transform:translateY(-1px)}.music-ruler>button:active>span{transform:scaleY(.75)}@keyframes music-root-breathe{0%,to{opacity:1;transform:scaleY(1)}50%{opacity:.8;transform:scaleY(.82)}}@media (prefers-reduced-motion:reduce){.music-dock.is-playing .music-ruler>button.active>span{animation:none}}.music-progress{grid-template-columns:auto minmax(90px,1fr);align-items:center;gap:10px;min-width:0;display:grid}.music-progress span{color:#f4f1e885;font:8px/1 var(--font-data);white-space:nowrap}.music-progress input,.music-volume input,.music-mobile-controls input{cursor:pointer;width:100%;height:18px;margin:0}.music-volume{gap:8px;min-width:0}.music-volume>button{width:30px;height:30px;font:700 11px/1 var(--font-data);border-radius:50%;flex:none}.music-volume label{flex:1;width:100%}.music-collapse{border-radius:50%;flex:none;place-items:center;width:44px;height:44px;padding:0;display:grid}.music-collapse>svg{display:block}.music-library-reveal{opacity:0;pointer-events:none;max-height:0;transition:max-height .3s var(--ease-out), opacity .22s ease;position:absolute;inset:auto 0 100%;overflow:hidden}.music-library-reveal.is-expanded{opacity:1;max-height:min(568px,100dvh - 78px)}.music-library-reveal.is-expanded .music-library{pointer-events:auto}.music-library{width:min(940px,100% - 64px);max-height:min(560px,100dvh - 110px);color:var(--text-primary);border:1px solid var(--border-strong);background:var(--bg-paper);border-bottom:0;margin:0 auto 8px;overflow-y:auto;box-shadow:0 -20px 60px #11171438}@media (prefers-reduced-motion:reduce){.music-dock,.music-dock-peek,.music-library-reveal{transition:none!important}}.music-library-heading{border-bottom:1px solid var(--border-subtle);background:linear-gradient(90deg, var(--accent-bamboo) 0 5px, transparent 5px), var(--bg-raised);justify-content:space-between;gap:20px;min-height:78px;padding:16px 20px}@supports (color:color-mix(in lab, red, red)){.music-library-heading{background:linear-gradient(90deg, color-mix(in srgb, var(--accent-bamboo) 12%, transparent) 0 5px, transparent 5px), var(--bg-raised)}}.music-library-heading>div{gap:14px}.music-library-heading span{color:var(--accent-bamboo);font:700 9px/1.2 var(--font-data);letter-spacing:.1em}.music-library-heading strong{font-family:var(--font-display);font-size:22px}.music-library-heading small{color:var(--text-secondary);font-size:9px}.music-track-list{display:grid}.music-track-row{border:0;border-bottom:1px solid var(--border-subtle);cursor:pointer;text-align:left;background:0 0;grid-template-columns:38px minmax(180px,1fr) minmax(120px,.6fr) auto;align-items:center;gap:12px;min-height:58px;padding:10px 20px;display:grid;color:var(--text-primary)!important}.music-track-row:last-child{border-bottom:0}.music-track-row:hover,.music-track-row.active{background:var(--accent-bamboo)}@supports (color:color-mix(in lab, red, red)){.music-track-row:hover,.music-track-row.active{background:color-mix(in srgb, var(--accent-bamboo) 8%, var(--bg-paper))}}.music-track-row.active{box-shadow:inset 4px 0 0 var(--accent-vermilion)}.music-track-row>span,.music-track-row time{color:var(--text-secondary);font:9px/1 var(--font-data)}.music-track-row strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.music-track-row small{color:var(--text-secondary);font-size:9px}.music-mobile-controls{display:none}.site-footer{min-height:92px;color:var(--text-secondary);border-top:1px solid var(--border-default);justify-content:space-between;gap:20px;margin-top:38px;padding:22px 0 28px;font-size:10px;display:flex}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.training-heading{justify-content:space-between;align-items:end;gap:32px;display:flex}.goal-seal{text-align:center;background:radial-gradient(circle, var(--bg-paper) 0 57%, transparent 58%), conic-gradient(var(--accent-bamboo-fill) var(--goal-progress), var(--border-subtle) 0);border-radius:50%;flex:none;place-content:center;width:132px;height:132px;display:grid;position:relative}.goal-seal:after{content:"";border:1px solid var(--border-default);border-radius:inherit;pointer-events:none;position:absolute;inset:12px}.goal-seal strong,.goal-seal span{z-index:1;display:block;position:relative}.goal-seal strong{color:var(--accent-bamboo);font:750 28px/1 var(--font-data)}.goal-seal span{color:var(--text-secondary);margin-top:8px;font-size:10px}.training-tabs{border:1px solid var(--border-default);border-radius:var(--radius-medium);background:var(--bg-raised);grid-template-columns:repeat(3,1fr);margin-bottom:20px;padding:5px;display:grid}.training-tabs button{border-radius:var(--radius-small);cursor:pointer;min-height:46px;transition:color .16s ease, background .16s ease, transform .16s var(--ease-press);background:0 0;border:0;font-weight:700}.training-tabs button:active{transform:scale(.99)}.training-tabs button.active{color:var(--text-on-accent);background:var(--accent-bamboo-fill)}.training-plan{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:20px;display:grid}.training-brief,.training-goal-bridge{border-bottom:1px solid var(--border-default);grid-column:1/-1;justify-content:space-between;align-items:center;gap:24px;min-width:0;padding:20px 0;display:flex}.training-brief{padding-top:0}.training-brief>div,.training-goal-bridge>div{min-width:0}.training-brief h2,.training-goal-bridge h2{font-family:var(--font-display);font-size:var(--ui-title-panel);text-wrap:balance;margin:6px 0 8px;line-height:1.4}.training-brief p,.training-goal-bridge p{max-width:64ch;color:var(--text-secondary);font-size:var(--ui-text-body);margin:0;line-height:1.75}.training-brief>a,.training-goal-bridge>a{flex:none}.daily-progress-note{color:var(--text-secondary);font-size:var(--ui-text-meta);margin:16px 0 0;line-height:1.75}.plan-task-guidance{gap:10px;margin:12px 0 0;display:grid}.plan-task-guidance div{grid-template-columns:4em minmax(0,1fr);gap:10px;display:grid}.plan-task-guidance dt{color:var(--text-secondary);font-size:var(--ui-text-meta);line-height:1.75}.plan-task-guidance dd{font-size:var(--ui-text-body);margin:0;line-height:1.75}.plan-task-guidance div:last-child dd{color:var(--text-secondary);font-size:var(--ui-text-meta)}.adaptive-plan-steps>li.is-next>a,.adaptive-plan-steps>li.is-next>button{color:var(--text-on-accent);border-color:var(--accent-bamboo-fill);background:var(--accent-bamboo-fill)}@media (max-width:780px){.training-brief,.training-goal-bridge{flex-direction:column;align-items:stretch;gap:16px}.training-brief>a,.training-goal-bridge>a{align-self:start}.plan-task-guidance div{grid-template-columns:minmax(0,1fr);gap:3px}}.daily-progress-card,.smart-plan-card,.due-review-card,.hesitation-queue-card,.code-drill,.management-card,.trend-panel{border:1px solid var(--border-default);border-radius:var(--radius-large);background:var(--bg-paper);box-shadow:var(--shadow-panel)}.daily-progress-card,.smart-plan-card,.due-review-card,.hesitation-queue-card{padding:24px}.daily-progress-card .panel-title,.smart-plan-card .panel-title,.due-review-card .panel-title,.hesitation-queue-card .panel-title,.trend-panel .panel-title{border-bottom:1px solid var(--border-subtle);min-height:auto;padding:0 0 20px}.daily-progress-card .training-card-header,.smart-plan-card .training-card-header,.due-review-card .training-card-header,.hesitation-queue-card .training-card-header{background:0 0;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:32px;min-height:104px;padding:4px 0 24px;display:grid}.training-card-heading{align-content:center;gap:12px;min-width:0;display:grid}.training-card-heading .eyebrow,.training-card-heading h2{margin:0}.training-card-heading h2{letter-spacing:.025em;line-height:1.35}.training-card-stat{border-left:1px solid var(--border-subtle);white-space:nowrap;grid-template-columns:auto auto;place-content:center end;align-items:baseline;gap:8px;min-width:96px;padding-left:24px;display:grid}.training-card-stat strong{color:var(--accent-bamboo);font:800 24px/1 var(--font-data)}.training-card-stat span{color:var(--text-secondary);font:700 10px/1.2 var(--font-body);letter-spacing:.04em}.daily-progress-card h2,.smart-plan-card h2,.due-review-card h2,.hesitation-queue-card h2,.code-drill h2,.management-card h2,.trend-panel h2{font-family:var(--font-display);margin:4px 0 0;font-size:24px;font-weight:600}.goal-row{border-bottom:1px solid var(--border-subtle);grid-template-columns:82px minmax(100px,1fr) 124px;align-items:center;gap:14px;min-height:62px;display:grid}.goal-row>span{color:var(--text-secondary);font-size:11px;font-weight:700}.goal-row>i{background:var(--bg-key);border-radius:999px;height:8px;overflow:hidden}.goal-row>i b{border-radius:inherit;background:var(--accent-bamboo-fill);width:0;height:100%;transition:width .24s var(--ease-out);display:block}.goal-row>strong{text-align:right;font:650 11px/1.2 var(--font-data)}.goal-editor{grid-template-columns:repeat(3,1fr);gap:10px;padding-top:18px;display:grid}.goal-editor label{color:var(--text-secondary);gap:7px;font-size:10px;display:grid}.goal-editor input{border:1px solid var(--border-default);border-radius:var(--radius-small);background:var(--bg-raised);width:100%;min-height:42px;padding:0 10px}.plan-steps{margin:0;padding:0;list-style:none}.plan-steps li{border-bottom:1px solid var(--border-subtle);grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:16px;min-height:104px;display:grid}.plan-steps li:last-child{border-bottom:0}.plan-steps li>span:first-child{width:38px;height:38px;color:var(--text-on-accent);background:var(--accent-vermilion-fill);font-family:var(--font-display);border-radius:50%;place-items:center;display:grid}.plan-steps strong,.plan-steps p{display:block}.plan-steps p{color:var(--text-secondary);margin:5px 0 0;font-size:11px;line-height:1.55}.plan-steps a,.plan-steps button{border:1px solid var(--border-default);border-radius:var(--radius-small);min-height:38px;color:var(--accent-bamboo);background:var(--bg-raised);cursor:pointer;align-items:center;padding:0 13px;font-size:11px;font-weight:750;display:inline-flex}.plan-steps button:disabled{cursor:not-allowed;opacity:.48}.adaptive-plan-card{position:relative;overflow:hidden}.adaptive-plan-card:before{content:"ER · TRAINING RX";color:var(--border-strong);font:700 8px/1 var(--font-data);letter-spacing:.12em;pointer-events:none;position:absolute;top:9px;right:12px}.due-review-card{border-top:3px solid var(--accent-bamboo);grid-column:1/-1}.due-review-card .training-card-stat strong small{color:var(--text-secondary);font-size:12px}.due-review-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.due-review-list li{border:1px solid var(--border-subtle);border-left:4px solid var(--accent-bamboo);border-radius:var(--radius-medium);background:var(--bg-raised);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;min-width:0;min-height:156px;padding:16px;display:grid}.due-review-copy{gap:7px;min-width:0;display:grid}.due-review-copy>div{justify-content:space-between;align-items:center;gap:10px;display:flex}.due-review-copy>div span,.due-review-copy time,.due-review-copy small{color:var(--text-secondary);font:700 9px/1.4 var(--font-data)}.due-review-copy>div span{color:var(--accent-bamboo);border:1px solid var(--border-default);background:var(--bg-paper);border-radius:999px;padding:4px 7px}.due-review-copy time{color:var(--accent-vermilion)}.due-review-copy strong{overflow-wrap:anywhere;font-family:var(--font-reading);font-size:18px;line-height:1.45}.due-review-copy p{color:var(--text-secondary);margin:0;font-size:10px;line-height:1.6}.due-review-actions{gap:8px;display:grid}.due-review-actions .button{white-space:nowrap;min-height:44px}.review-queue-message{color:var(--text-secondary);border-left:3px solid var(--accent-vermilion);background:var(--accent-vermilion);margin:0 0 14px;padding:10px 12px}@supports (color:color-mix(in lab, red, red)){.review-queue-message{background:color-mix(in srgb, var(--accent-vermilion) 7%, var(--bg-raised))}}.review-queue-message{font-size:11px;line-height:1.55}.due-review-empty{text-align:center;border:1px dashed var(--border-default);border-radius:var(--radius-medium);background:var(--bg-raised);place-content:center;gap:5px;min-height:104px;padding:18px;display:grid}.due-review-empty span,.due-review-note{color:var(--text-secondary);font-size:10px;line-height:1.6}.due-review-note{margin:14px 0 0}.hesitation-queue-card{border-top:3px solid var(--accent-vermilion);grid-column:1/-1}.hesitation-queue-card .training-card-stat strong small{color:var(--text-secondary);font-size:12px}.hesitation-queue-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.hesitation-queue-list li{border:1px solid var(--border-subtle);border-radius:var(--radius-medium);background:var(--bg-raised);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;min-width:0;min-height:112px;padding:14px;display:grid}.hesitation-queue-list li[data-status=in-progress]{border-left:4px solid var(--accent-bamboo)}.hesitation-queue-list li[data-status=completed]{background:var(--state-success)}@supports (color:color-mix(in lab, red, red)){.hesitation-queue-list li[data-status=completed]{background:color-mix(in srgb, var(--state-success) 6%, var(--bg-raised))}}.hesitation-queue-copy{gap:5px;min-width:0;display:grid}.hesitation-queue-copy>span,.hesitation-queue-copy small,.hesitation-queue-copy time{color:var(--text-secondary);font:700 9px/1.4 var(--font-data)}.hesitation-queue-copy strong{font-family:var(--font-reading);text-overflow:ellipsis;white-space:nowrap;font-size:16px;overflow:hidden}.hesitation-queue-copy time{color:var(--state-success)}.hesitation-queue-list .button{white-space:nowrap;min-height:44px}.hesitation-queue-empty{text-align:center;border:1px dashed var(--border-default);border-radius:var(--radius-medium);background:var(--bg-raised);place-content:center;gap:5px;min-height:104px;padding:18px;display:grid}.hesitation-queue-empty span,.hesitation-queue-note{color:var(--text-secondary);font-size:10px;line-height:1.6}.hesitation-queue-note{margin:14px 0 0}.plan-message{border-left:3px solid var(--accent-vermilion);color:var(--text-secondary);background:var(--accent-vermilion);margin:14px 0 0;padding:10px 12px}@supports (color:color-mix(in lab, red, red)){.plan-message{background:color-mix(in srgb, var(--accent-vermilion) 7%, var(--bg-raised))}}.plan-message{font-size:11px;line-height:1.55}.adaptive-plan-steps li{align-items:start;min-height:136px;padding-block:14px}.adaptive-plan-steps li[data-status=pending]>span:first-child{color:var(--accent-vermilion);border:1px solid var(--accent-vermilion);background:0 0}.adaptive-plan-steps li[data-status=in-progress]{box-shadow:inset 4px 0 0 var(--accent-bamboo)}.adaptive-plan-steps li[data-status=in-progress]>span:first-child{background:var(--accent-bamboo-fill)}.adaptive-plan-steps li[data-status=completed]{background:var(--state-success)}@supports (color:color-mix(in lab, red, red)){.adaptive-plan-steps li[data-status=completed]{background:color-mix(in srgb, var(--state-success) 5%, transparent)}}.adaptive-plan-steps li[data-status=completed]>span:first-child{background:var(--state-success-fill)}.plan-task-copy{min-width:0}.plan-task-title{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.plan-task-title small{color:var(--text-secondary);font:700 9px/1.2 var(--font-data);white-space:nowrap}.plan-task-copy em{color:var(--accent-bamboo);font:normal 700 9px/1.4 var(--font-data);text-overflow:ellipsis;white-space:nowrap;margin-top:9px;display:block;overflow:hidden}.adaptive-plan-steps a,.adaptive-plan-steps button,.plan-task-done{align-self:center;min-height:44px}.plan-task-done{width:max-content;max-width:100%;color:var(--state-success);border:1px solid var(--state-success);justify-self:end;align-items:center;padding-inline:12px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.plan-task-done{border:1px solid color-mix(in srgb, var(--state-success) 55%, var(--border-default))}}.plan-task-done{border-radius:var(--radius-small);white-space:nowrap;font-size:10px;font-weight:750}.plan-actions{border-top:1px solid var(--border-subtle);align-items:center;gap:12px;padding-top:16px;display:flex}.plan-actions button{flex:none;min-height:44px}.plan-actions span{color:var(--text-secondary);font-size:10px;line-height:1.5}.training-completion-summary{padding-top:18px}.summary-ledger{border-block:1px solid var(--border-default);grid-template-columns:repeat(3,1fr);display:grid}.summary-ledger span{min-height:82px;color:var(--text-secondary);border-right:1px solid var(--border-subtle);text-align:center;place-content:center;gap:6px;padding:14px 10px;font-size:10px;display:grid}.summary-ledger span:last-child{border-right:0}.summary-ledger b{color:var(--state-success);font:800 24px/1 var(--font-data)}.remaining-weaknesses{margin-top:18px}.remaining-weaknesses h3{font:650 15px/1.3 var(--font-display);margin:0 0 8px}.remaining-weaknesses ul{margin:0;padding:0;list-style:none}.remaining-weaknesses li{border-top:1px solid var(--border-subtle);grid-template-columns:44px minmax(0,1fr) 48px;align-items:center;gap:10px;min-height:42px;display:grid}.remaining-weaknesses li strong{font-family:var(--font-display);font-size:17px}.remaining-weaknesses li span,.training-completion-summary>p{color:var(--text-secondary);font-size:10px;line-height:1.55}.remaining-weaknesses li b{color:var(--accent-vermilion);font:700 10px/1 var(--font-data);text-align:right}@media (max-width:620px){.adaptive-plan-card:before{display:none}.adaptive-plan-steps li{min-height:0}.plan-task-title{flex-direction:column;align-items:flex-start;gap:5px}.plan-task-copy em{white-space:normal}.plan-actions{flex-direction:column;align-items:stretch}.summary-ledger{grid-template-columns:1fr}.summary-ledger span{border-right:0;border-bottom:1px solid var(--border-subtle);min-height:64px}.summary-ledger span:last-child{border-bottom:0}}.root-zone-rail{grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:18px;display:grid}.root-zone-rail button{min-height:104px;color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-medium);background:var(--bg-paper);cursor:pointer;transition:color .16s ease, border-color .16s ease, transform .16s var(--ease-out);align-content:center;gap:5px;padding:14px 10px;display:grid}.root-zone-rail button:hover{border-color:var(--accent-bamboo);transform:translateY(-1px)}.root-zone-rail button.active{color:var(--text-on-accent);border-color:var(--accent-bamboo-fill);background:var(--accent-bamboo-fill)}.root-zone-rail b{font:700 13px/1 var(--font-data);letter-spacing:.08em}.root-zone-rail strong{font-family:var(--font-display);font-size:20px}.root-zone-rail small{font-size:9px}.code-drill{grid-template-columns:minmax(220px,.72fr) minmax(320px,1.28fr);gap:28px;min-height:500px;padding:28px;display:grid}.code-drill-copy{border-radius:var(--radius-medium);background:linear-gradient(135deg, var(--accent-bamboo), transparent 72%), var(--bg-raised);align-self:stretch;padding:20px}@supports (color:color-mix(in lab, red, red)){.code-drill-copy{background:linear-gradient(135deg, color-mix(in srgb, var(--accent-bamboo) 10%, transparent), transparent 72%), var(--bg-raised)}}.code-drill-copy h2{margin-top:10px;font-size:clamp(28px,4vw,42px)}.code-drill-copy p{color:var(--text-secondary);margin:18px 0 0;line-height:1.8}.drill-start,.drill-running{text-align:center;align-content:center;place-items:center;gap:22px;min-height:420px;display:grid}.drill-start>div strong,.drill-start>div span{display:block}.drill-start>div strong{color:var(--accent-bamboo);font:750 70px/1 var(--font-data)}.drill-start>div span,.drill-start>p{color:var(--text-secondary);margin-top:9px}.drill-progress{width:100%;color:var(--text-secondary);font:650 11px/1.2 var(--font-data);justify-content:space-between;display:flex}.drill-question{min-height:120px;font-family:var(--font-display);animation:question-swap-in .22s var(--ease-out) both;place-items:center;font-size:clamp(64px,10vw,108px);display:grid}.code-drill .feedback-region{min-height:94px}.training-empty{text-align:center;min-height:180px;color:var(--text-secondary);border:1px dashed var(--border-default);border-radius:var(--radius-medium);background:var(--bg-raised);place-items:center;padding:30px;display:grid}.trend-panel{margin:20px 0;padding:24px}.trend-range{border:1px solid var(--border-default);border-radius:var(--radius-small);background:var(--bg-raised);gap:3px;padding:3px;display:flex}.trend-range button{cursor:pointer;background:0 0;border:0;border-radius:4px;min-height:34px;padding:0 12px;font-size:10px;font-weight:700}.trend-range button.active{color:var(--text-on-accent);background:var(--accent-bamboo-fill)}.trend-summary{min-height:52px;color:var(--text-secondary);align-items:center;gap:24px;font-size:10px;display:flex}.trend-summary span{align-items:center;gap:6px;display:flex}.trend-summary i{border-radius:50%;width:9px;height:9px}.speed-dot{background:var(--accent-bamboo-fill)}.accuracy-dot{background:var(--accent-vermilion-fill)}.trend-chart{position:relative}.trend-chart svg{width:100%;height:auto;display:block;overflow:visible}.chart-grid{stroke:var(--border-subtle);stroke-width:1px}.speed-line,.accuracy-line{stroke-width:4px;stroke-linecap:round;stroke-linejoin:round}.speed-line{stroke:var(--accent-bamboo-fill)}.accuracy-line{stroke:var(--accent-vermilion-fill);stroke-dasharray:7 6}.trend-labels{color:var(--text-secondary);font:9px/1 var(--font-data);justify-content:space-between;display:flex}.trend-empty{text-align:center;color:var(--text-secondary);border-radius:var(--radius-small);background:var(--bg-raised);margin-top:14px;padding:12px;font-size:11px}.session-share{min-height:34px;color:var(--accent-bamboo);border:1px solid var(--border-default);border-radius:var(--radius-small);background:var(--bg-raised);cursor:pointer;white-space:nowrap;transition:color .14s ease, border-color .14s ease, transform .14s var(--ease-press);justify-content:center;justify-self:end;align-items:center;gap:6px;padding:0 10px;font-size:10px;font-weight:700;display:inline-flex}.session-share:hover{color:var(--text-primary);border-color:var(--accent-bamboo);transform:translateY(-1px)}.session-share span{font:800 13px/1 var(--font-data)}.data-management{gap:20px;margin-top:20px;display:grid}.management-card{padding:24px}.management-card>div:first-child>p,.management-heading p,.pwa-card p{color:var(--text-secondary);margin:8px 0 0;line-height:1.6}.management-actions{flex-wrap:wrap;gap:10px;margin-top:20px;display:flex}.restore-preview{border:1px solid var(--accent-vermilion);border-radius:var(--radius-medium);background:var(--accent-vermilion);justify-content:space-between;align-items:center;gap:18px;margin-top:18px;padding:16px;display:flex}@supports (color:color-mix(in lab, red, red)){.restore-preview{background:color-mix(in srgb, var(--accent-vermilion) 6%, var(--bg-paper))}}.restore-preview strong,.restore-preview span,.restore-preview small{display:block}.restore-preview span{margin-top:5px}.restore-preview small{color:var(--text-secondary);margin-top:5px}.management-message{color:var(--accent-bamboo);margin:14px 0 0;font-size:11px}.storage-total{border-left:3px solid var(--accent-bamboo);background:var(--bg-raised);align-items:baseline;gap:12px;margin-top:20px;padding:16px 18px;display:flex}.storage-total strong{font:750 23px/1 var(--font-data)}.storage-total span,.maintenance-log p{color:var(--text-secondary);font-size:10px;line-height:1.6}.storage-warning{color:var(--state-error);border:1px solid var(--state-error);margin:12px 0 0;padding:10px 12px}@supports (color:color-mix(in lab, red, red)){.storage-warning{border:1px solid color-mix(in srgb, var(--state-error) 45%, var(--border-default))}}.storage-warning{border-radius:var(--radius-small);background:var(--state-error)}@supports (color:color-mix(in lab, red, red)){.storage-warning{background:color-mix(in srgb, var(--state-error) 6%, var(--bg-paper))}}.storage-warning{font-size:10px;line-height:1.6}.cleanup-all-action{border:1px solid var(--accent-vermilion);justify-content:space-between;align-items:center;gap:18px;margin-top:14px;padding:14px 16px;display:flex}@supports (color:color-mix(in lab, red, red)){.cleanup-all-action{border:1px solid color-mix(in srgb, var(--accent-vermilion) 45%, var(--border-default))}}.cleanup-all-action{border-radius:var(--radius-medium);background:var(--accent-vermilion)}@supports (color:color-mix(in lab, red, red)){.cleanup-all-action{background:color-mix(in srgb, var(--accent-vermilion) 5%, var(--bg-paper))}}.cleanup-all-action strong,.cleanup-all-action span{display:block}.cleanup-all-action strong{color:var(--text-primary);font-size:13px}.cleanup-all-action span{max-width:78ch;color:var(--text-secondary);margin-top:5px;font-size:10px;line-height:1.6}.cleanup-all-action .button{flex:none}.cleanup-category-list{gap:10px;margin-top:14px;display:grid}.cleanup-category{border:1px solid var(--border-default);border-radius:var(--radius-medium);background:var(--bg-raised);justify-content:space-between;align-items:center;gap:14px;padding:14px;display:flex}.cleanup-category>div{min-width:0}.cleanup-category strong,.backup-reminder strong{color:var(--text-primary);font-size:13px;line-height:1.6;display:block}.cleanup-category span,.backup-reminder span{color:var(--text-secondary);margin-top:5px;font-size:12px;line-height:1.6;display:block}.cleanup-category .button,.backup-reminder .button{flex:none;min-height:44px}.backup-reminder{border:1px solid var(--border-default);border-radius:var(--radius-medium);background:var(--bg-raised);margin-top:16px;padding:14px}.backup-reminder-notice{border:1px solid var(--border-default);border-radius:var(--radius-small);background:var(--bg-paper);flex-wrap:wrap;align-items:center;gap:10px;margin:16px 0;padding:14px 16px;display:flex}.backup-reminder-notice p{color:var(--text-secondary);flex:240px;margin:0;font-size:14px;line-height:1.6}.backup-reminder-notice .button{font-size:13px}.backup-reminder.is-due{border-color:var(--accent-bamboo)}.backup-reminder .button{margin-top:10px}@media (max-width:640px){.cleanup-category{flex-direction:column;align-items:stretch}}.maintenance-log,.priority-explanation{border:1px solid var(--border-default);border-radius:var(--radius-medium);background:var(--bg-raised);margin-top:16px;padding:12px 14px}.maintenance-log summary,.priority-explanation summary{cursor:pointer;color:var(--accent-bamboo);font-size:10px;font-weight:750}.maintenance-log ol,.priority-explanation ol{margin:12px 0 0;padding:0;list-style:none}.maintenance-log li{border-top:1px solid var(--border-subtle);grid-template-columns:128px 1fr;gap:10px;padding:8px 0;font-size:10px;line-height:1.5;display:grid}.maintenance-log time{color:var(--text-secondary);font:500 9px/1.5 var(--font-data)}.priority-explanation>p{color:var(--text-secondary);margin:12px 0 0;font-size:10px;line-height:1.7}.priority-explanation li{border-top:1px solid var(--border-subtle);grid-template-columns:28px 54px 1fr;gap:10px;padding:9px 0;font-size:10px;line-height:1.6;display:grid}.priority-explanation li b{color:var(--accent-vermilion);font:700 10px/1.6 var(--font-data)}.priority-explanation li span{color:var(--text-secondary)}.management-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.custom-manager-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px;display:grid}.custom-manager-list article{border:1px solid var(--border-default);border-radius:var(--radius-medium);background:var(--bg-raised);grid-template-rows:auto 1fr auto;min-height:154px;padding:16px;display:grid}.custom-manager-list article strong,.custom-manager-list article span{display:block}.custom-manager-list article span{color:var(--text-secondary);margin-top:4px;font-size:9px}.custom-manager-list article p{color:var(--text-secondary);margin:12px 0;font-size:11px;line-height:1.6}.custom-manager-list article>div:last-child{gap:14px;display:flex}.custom-manager-list article button{color:var(--accent-bamboo);cursor:pointer;background:0 0;border:0;padding:0;font-size:10px;font-weight:700}.custom-manager-list article button.danger-text{color:var(--state-error)}.custom-edit{border:1px solid var(--accent-bamboo);border-radius:var(--radius-medium);background:var(--bg-raised);grid-column:1/-1;gap:12px;padding:16px;display:grid}.custom-edit label{color:var(--text-secondary);gap:7px;font-size:10px;display:grid}.custom-edit input,.custom-edit textarea{border:1px solid var(--border-default);border-radius:var(--radius-small);background:var(--bg-paper);width:100%;padding:11px}.custom-edit textarea{resize:vertical;min-height:180px;line-height:1.7}.custom-edit>div{justify-content:end;align-items:center;gap:10px;display:flex}.custom-edit>div span{color:var(--text-secondary);margin-right:auto;font-size:10px}.pwa-card{background:linear-gradient(110deg, var(--accent-bamboo), transparent 60%), var(--bg-paper);justify-content:space-between;align-items:center;gap:24px;display:flex}@supports (color:color-mix(in lab, red, red)){.pwa-card{background:linear-gradient(110deg, color-mix(in srgb, var(--accent-bamboo) 9%, transparent), transparent 60%), var(--bg-paper)}}.pwa-card small{color:var(--text-secondary);margin-top:8px;display:block}@keyframes page-enter{0%{opacity:0;transform:translateY(8px)}}@keyframes nav-marker-in{0%{opacity:0;transform:translate(-50%)translateY(4px)rotate(-1.5deg)scaleX(.65)}}@keyframes article-swap-in{0%{opacity:.45;transform:translateY(5px)}}@keyframes current-character-in{0%{box-shadow:0 0 0 5px color-mix(in srgb, var(--accent-vermilion-fill) 24%, transparent);transform:translateY(-1px)}}@keyframes question-swap-in{0%{opacity:0;transform:translateY(7px)scale(.98)}}@keyframes feedback-in{0%{opacity:0;transform:translateY(-3px)}}@keyframes list-row-in{0%{opacity:0;transform:translate(-5px)}}@keyframes backdrop-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(10px)scale(.985)}}:root[data-focus-mode=true] .site-header,:root[data-focus-mode=true] .hero-row,:root[data-focus-mode=true] .side-panel,:root[data-focus-mode=true] .site-footer{display:none}:root[data-focus-mode=true] .page-wrap{width:min(1540px,100% - 48px);padding-top:22px}:root[data-focus-mode=true] .workspace-grid{grid-template-columns:1fr}:root[data-focus-mode=true] .metric-strip{margin-bottom:14px}:root[data-focus-mode=true] .typing-card{box-shadow:0 20px 52px #2026221a}:root[data-focus-mode=true] .article-text{height:clamp(420px,58dvh,680px);max-height:none}@media (max-width:1120px){.music-dock-bar{grid-template-columns:auto minmax(0,1fr) minmax(72px,100px) minmax(140px,.8fr) 110px 44px}.music-station{display:none}.header-inner{grid-template-columns:auto 1fr}.local-badge{display:none}.nav-item{min-width:auto}.nav-item span{display:none}.metric-strip{grid-template-columns:repeat(3,1fr)}.typing-diagnostics{grid-template-columns:repeat(5,minmax(80px,1fr))}.metric:nth-child(3n){border-right:0}.metric:nth-child(-n+3){border-bottom:1px solid var(--border-subtle)}.workspace-grid,.challenge-layout,.history-grid,.training-plan{grid-template-columns:1fr}.code-drill{grid-template-columns:minmax(200px,.65fr) minmax(320px,1.35fr)}.side-panel{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.side-heading,.tip-box{grid-column:1/-1}.side-panel label,.side-action{margin-top:0}.hesitation-ranking{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:960px){.music-dock-bar{grid-template-columns:auto minmax(0,1fr) minmax(120px,.8fr) 44px}.music-ruler,.music-volume{display:none}}@media (max-width:780px){.music-content{padding-bottom:calc(88px + env(safe-area-inset-bottom))}.music-dock-bar{grid-template-columns:auto minmax(0,1fr) auto;gap:10px;width:100%;min-height:64px;padding:0 12px}.music-ruler,.music-progress,.music-volume{display:none}.music-transport{gap:3px}.music-transport button{width:28px;height:28px}.music-transport .music-play-button{width:38px;height:38px}.music-now-playing{gap:8px}.music-now-playing>span{font-size:8px}.music-now-playing strong{font-size:10px}.music-library-toggle{padding-inline:7px}.music-library{width:calc(100% - 20px);max-height:calc(100dvh - 86px);margin-bottom:6px}.music-library-heading{min-height:66px;padding:12px 14px}.music-library-heading>div{gap:5px;display:grid}.music-library-heading strong{font-size:18px}.music-library-heading small{display:none}.music-mobile-controls{border-bottom:1px solid var(--border-subtle);background:var(--bg-raised);grid-template-columns:1fr .72fr;gap:16px;padding:12px 14px;display:grid}.music-mobile-controls label{gap:5px;min-width:0;display:grid}.music-mobile-controls span{color:var(--text-secondary);font-size:9px}.music-track-row{grid-template-columns:28px minmax(0,1fr) auto;gap:8px;min-height:54px;padding:9px 14px}.music-track-row small{display:none}.header-inner,.page-wrap,.site-footer{width:min(100% - 28px,1480px)}.site-header{position:static}.header-inner{flex-wrap:wrap;gap:8px;min-height:auto;padding-top:12px;display:flex}.brand{width:100%;min-height:52px}.main-nav{justify-content:start;width:100%;overflow-x:auto}.nav-item{flex:none;min-height:46px}.hero-row{grid-template-columns:1fr;align-items:start;gap:18px;min-height:auto;padding:24px 0 20px}.hero-row h1,.subpage-heading h1{font-size:clamp(32px,8vw,44px)}.hero-row h1 em{margin-top:4px;display:block}.hero-actions{width:100%}.hero-actions .button{flex:calc(50% - 4px);padding-inline:10px}.hero-actions .common-entry{flex-basis:100%}.common-range-grid{grid-template-columns:1fr}.common-range-grid button:last-child{grid-column:auto}.metric-strip{grid-template-columns:repeat(2,1fr)}.typing-diagnostics{grid-template-columns:repeat(2,minmax(0,1fr));padding-inline:12px}.metric:nth-child(3n){border-right:1px solid var(--border-subtle)}.metric:nth-child(2n){border-right:0}.metric:nth-child(-n+4){border-bottom:1px solid var(--border-subtle)}.typing-toolbar{flex-wrap:wrap;align-items:flex-start;gap:12px;min-height:72px}.article-toolbar-actions{justify-content:space-between;gap:16px;width:100%}.practice-commandbar{flex-direction:column;align-items:stretch;gap:6px;padding:8px}.practice-mode{overflow-x:auto}.practice-actions button{flex:1}.practice-actions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.ghost-mode-picker{order:3;width:100%;overflow-x:auto}.ghost-mode-picker label{flex:1 0 auto;justify-content:center}.ghost-live-card{flex-direction:column;align-items:flex-start;gap:5px}.ghost-live-card small{margin-left:0}.root-rail{min-height:44px}.root-rail>span{text-align:center;padding:9px 5px}.root-rail b{letter-spacing:0;font-size:9px}.root-rail small{display:none}.article-text{min-height:300px;padding:26px 20px}.typing-input{padding:17px 20px}.typing-footer{flex-direction:column;justify-content:center;align-items:start;gap:4px;min-height:52px}.code-hint-card{grid-template-columns:28px minmax(72px,1fr);min-width:108px}.code-hint-character{min-height:32px;font-size:18px}.code-hint-copy b{font-size:14px}.hesitation-heading{flex-direction:column;align-items:start;gap:8px}.hesitation-threshold{text-align:left}.hesitation-ranking{grid-template-columns:repeat(2,minmax(0,1fr))}.side-panel{display:block}.side-panel label{margin-top:15px}.side-action{margin-top:10px}.subpage{padding:40px 0}.subpage-heading.with-action{flex-direction:column;align-items:start}.training-heading{align-items:start}.goal-seal{width:108px;height:108px}.root-zone-rail{grid-template-columns:repeat(5,minmax(104px,1fr));overflow-x:auto}.code-drill{grid-template-columns:1fr;min-height:auto;padding:18px}.code-drill-copy{padding:18px}.drill-start,.drill-running{min-height:360px}.trend-panel,.management-card{padding:18px}.trend-panel .panel-title{flex-direction:column;align-items:start;gap:12px}.trend-summary{flex-direction:column;align-items:start;gap:8px;padding-block:10px}.custom-manager-list{grid-template-columns:1fr}.management-heading,.pwa-card,.restore-preview,.cleanup-all-action{flex-direction:column;align-items:stretch}.maintenance-log li,.priority-explanation li{grid-template-columns:1fr;gap:3px}.panel-title:has(.history-filter){flex-direction:column;align-items:start;gap:12px;min-height:auto;padding-block:14px}.segmented.small.history-filter{width:100%}.summary-grid,.settings-grid{grid-template-columns:1fr}.table-head{display:none}.table-row{grid-template-columns:1fr repeat(2,auto);padding:13px 16px}.table-row>span:last-child{display:none}.lookup-row{grid-template-columns:80px 1fr}.lookup-row small{display:none}.keyboard-visual span{width:26px;height:34px}.keyboard-row{grid-auto-columns:26px;gap:3px}.site-footer{flex-direction:column}.error-card{grid-template-columns:auto 1fr}.error-card .button{grid-column:1/-1;width:100%}.article-list{grid-template-columns:1fr}:root[data-focus-mode=true] .page-wrap{width:min(100% - 20px,1480px);padding-top:10px}}@media (max-width:420px){.music-dock-bar{grid-template-columns:auto minmax(0,1fr) auto;gap:7px;padding-inline:8px}.music-dock-peek{bottom:10px;right:10px}.music-dock-peek>span:nth-child(2),.music-dock-peek>b,.music-library-toggle>span,.music-now-playing>span{display:none}.music-mobile-controls{grid-template-columns:1fr}.brand small{display:none}.nav-item{padding-inline:11px;font-size:12px}.metric{min-height:76px;padding:14px}.metric strong{font-size:24px}.metric.primary-metric strong{font-size:29px}.typing-toolbar{flex-direction:column;align-items:start}.article-restart{gap:8px;width:100%;margin-left:0}.article-restart .toolbar-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.toolbar-actions button{white-space:nowrap;width:100%}.toolbar-actions .common-toolbar-action{min-width:0;padding-inline:38px 8px}.toolbar-actions .range-action{min-width:0}.toolbar-actions .common-toolbar-action:before{width:26px}.toolbar-actions .restart-action{grid-column:1/-1}.common-practice-picker{padding:14px}.common-practice-intro{grid-template-columns:1fr;gap:8px}.common-practice-intro>span{font-size:32px}.article-text{padding-inline:16px}.practice-mode>span:not(.practice-mode-mark){white-space:nowrap;padding-inline:8px}.article-list .article-choice{gap:10px;min-height:122px;padding:13px}.article-record{min-width:86px;padding-left:10px}.quick-searches{flex-wrap:wrap}.training-heading{flex-direction:column}.goal-seal{align-self:center}.training-tabs{overflow-x:auto}.training-tabs button{min-width:110px}.daily-progress-card,.smart-plan-card,.due-review-card,.hesitation-queue-card{padding:17px}.goal-row{grid-template-columns:72px minmax(70px,1fr)}.goal-row>strong{text-align:left;grid-column:1/-1}.goal-editor{grid-template-columns:1fr}.plan-steps li{grid-template-columns:38px 1fr;padding:14px 0}.plan-steps li>:last-child{grid-column:2;justify-self:start}.drill-question{min-height:92px}.code-drill .code-slots span{width:48px;height:56px}.custom-edit>div{flex-direction:column;align-items:stretch}.custom-edit>div span{margin-right: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}}.advanced-page{gap:20px;display:grid}.advanced-page>*{min-width:0}.advanced-heading{margin-bottom:0}.advanced-tabs{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.advanced-tabs button{text-align:left;min-height:86px;color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-medium);background:var(--bg-paper);cursor:pointer;gap:7px;padding:18px;display:grid}.advanced-tabs button.active{color:var(--text-on-accent);border-color:var(--accent-bamboo-fill);background:var(--accent-bamboo-fill)}.advanced-tabs strong{font:700 18px/1.2 var(--font-display)}.advanced-tabs span{opacity:.76;font-size:11px}.advanced-tabs button.active span{opacity:1}.advanced-preview-card{border:1px solid var(--border-default);border-top:3px solid var(--accent-bamboo);border-radius:var(--radius-medium);background:var(--bg-paper);min-height:330px;box-shadow:var(--shadow-panel);grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);align-items:center;gap:40px;padding:32px;display:grid}.advanced-preview-card h2{font:700 30px/1.3 var(--font-display);margin:8px 0 12px}.advanced-preview-card p{max-width:520px;color:var(--text-secondary);line-height:1.8}.advanced-rhythm-placeholder{border:1px solid var(--border-subtle);background:var(--bg-raised);align-items:end;gap:8px;height:190px;padding:18px;display:flex}.advanced-rhythm-placeholder i{background:var(--accent-bamboo);flex:1;min-width:4px}@supports (color:color-mix(in lab, red, red)){.advanced-rhythm-placeholder i{background:color-mix(in srgb, var(--accent-bamboo) 68%, transparent)}}@media (max-width:780px){.advanced-tabs,.advanced-preview-card{grid-template-columns:1fr}.advanced-preview-card{padding:20px}}@media (max-width:520px){.advanced-tabs{gap:8px}.advanced-tabs button{min-height:72px;padding:12px}}.advanced-module,.advanced-practice,.rhythm-result{border:1px solid var(--border-default);border-radius:var(--radius-medium);background:var(--bg-paper);box-shadow:var(--shadow-panel);padding:26px}.advanced-module{border-top:3px solid var(--accent-bamboo)}.advanced-module-heading{border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:center;gap:20px;min-height:88px;display:flex}.advanced-module-heading h2,.advanced-practice h2,.rhythm-result h2{font:700 26px/1.3 var(--font-display);margin:6px 0 0}.advanced-empty,.season-intro{min-height:220px;color:var(--text-secondary);text-align:center;border:1px dashed var(--border-default);background:var(--bg-raised);place-items:center;padding:30px;line-height:1.8;display:grid}.rhythm-result{box-shadow:none;margin-top:20px}.rhythm-metric-grid{border:1px solid var(--border-default);grid-template-columns:repeat(3,minmax(0,1fr));margin:20px 0;display:grid}.rhythm-metric-grid>div{border-right:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);align-content:center;gap:8px;min-height:92px;padding:16px;display:grid}.rhythm-metric-grid span,.rhythm-hand-note,.scenario-card small,.season-day-list small{color:var(--text-secondary);font-size:10px}.rhythm-metric-grid strong{font:700 18px/1.2 var(--font-data)}.advanced-rhythm-curve{border:1px solid var(--border-subtle);background:linear-gradient(var(--grid-line) 1px, transparent 1px), var(--bg-raised);background-size:100% 25%;align-items:end;gap:5px;height:190px;padding:18px;display:flex}.advanced-rhythm-curve i{background:var(--accent-bamboo-fill);flex:1;min-width:3px}.advanced-rhythm-curve span{color:var(--text-secondary);margin:auto}.rhythm-hand-note{flex-wrap:wrap;gap:18px;padding:14px 0;display:flex}.rhythm-weak-list{gap:8px;display:grid}.rhythm-weak-list h3{font:700 16px/1.3 var(--font-display)}.rhythm-weak-list button{min-height:62px;color:var(--text-primary);text-align:left;border:1px solid var(--border-default);background:var(--bg-raised);cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;display:flex}.rhythm-weak-list small{color:var(--text-secondary)}.scenario-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px;display:grid}.advanced-scenario-result{border:1px solid var(--line);background:var(--panel);border-radius:1rem;margin-bottom:1.25rem;padding:1.1rem}@supports (color:color-mix(in lab, red, red)){.advanced-scenario-result{background:color-mix(in srgb, var(--panel) 92%, transparent)}}.advanced-scenario-result .rhythm-result{margin-top:1rem}.scenario-card{border:1px solid var(--border-default);background:var(--bg-raised);flex-direction:column;align-items:flex-start;min-height:250px;padding:20px;display:flex}.scenario-card>span{color:var(--accent-bamboo);border:1px solid var(--border-default);font:700 10px/1 var(--font-data);padding:5px 8px}.scenario-card h3{font:700 20px/1.35 var(--font-display);margin:22px 0 8px}.scenario-card p{color:var(--text-secondary);margin:0 0 12px;font-size:12px;line-height:1.7}.scenario-card .button{width:100%;margin-top:auto}.advanced-practice .panel-title{border-bottom:1px solid var(--border-default);padding-bottom:18px}.advanced-practice-text{border:1px solid var(--border-default);background:var(--bg-raised);min-height:250px;max-height:48vh;font-family:var(--font-reading);margin:20px 0 0;padding:26px;font-size:clamp(21px,3vw,30px);line-height:2;overflow-y:auto}.advanced-practice-text span.correct{color:var(--state-success)}.advanced-practice-text span.wrong{color:var(--state-error);text-decoration:underline}.advanced-practice-text span.current{color:var(--text-on-accent);background:var(--accent-vermilion-fill)}.advanced-practice textarea{width:100%;min-height:110px;color:var(--text-primary);border:1px solid var(--border-default);background:var(--bg-paper);font:18px/1.7 var(--font-reading);border-top:0;padding:16px}.advanced-practice-actions{justify-content:flex-end;gap:10px;margin-top:14px;display:flex}.advanced-save-error{color:var(--state-error)}.season-layout{grid-template-columns:260px minmax(0,1fr);gap:16px;margin-top:20px;display:grid}.season-progress-card{border:1px solid var(--border-default);background:var(--bg-raised);flex-direction:column;padding:24px;display:flex}.season-progress-card>span{color:var(--text-secondary);font-size:11px}.season-progress-card>strong{color:var(--accent-bamboo);font:800 58px/1 var(--font-data);margin:18px 0}.season-progress-card strong small{font-size:16px}.season-progress-card p{line-height:1.6}.season-progress-card .button{margin-top:auto}.season-day-list{border:1px solid var(--border-default);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.season-day-list li{border-right:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:68px;padding:12px;display:grid}.season-day-list li>span{border:1px solid var(--border-default);width:28px;height:28px;font:700 11px/1 var(--font-data);place-items:center;display:grid}.season-day-list li.current{background:var(--accent-bamboo)}@supports (color:color-mix(in lab, red, red)){.season-day-list li.current{background:color-mix(in srgb, var(--accent-bamboo) 8%, var(--bg-raised))}}.season-day-list li.completed>span{color:var(--text-on-accent);background:var(--accent-bamboo-fill)}.season-comparison{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.season-setup{border:1px solid var(--border-default);background:var(--bg-raised);gap:22px;margin-top:20px;padding:24px;display:grid}.season-setup>*,.season-goal-grid>*,.season-evaluation-grid>*{min-width:0}.season-setup h3,.season-goal-card h3,.season-evaluation h3,.season-history-summary h3{font:700 18px/1.35 var(--font-display);margin:0}.season-setup p,.season-goal-card p,.season-evaluation p,.season-history-summary p{color:var(--text-secondary);margin:0;line-height:1.7}.season-goal-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.season-goal-option{min-height:118px;color:var(--text-primary);text-align:left;overflow-wrap:anywhere;border:1px solid var(--border-default);border-radius:var(--radius-small);background:var(--bg-paper);cursor:pointer;transition:border-color .16s ease, background-color .16s ease, transform .18s var(--ease-out);align-content:start;gap:8px;padding:16px;display:grid;position:relative}.season-goal-option strong{font:700 16px/1.35 var(--font-display)}.season-goal-option span,.season-goal-option small{color:var(--text-secondary);font-size:11px;line-height:1.6}.season-goal-option.active,.season-goal-option[aria-pressed=true]{border-color:var(--accent-bamboo);background:var(--accent-bamboo)}.season-goal-option:has(input:checked){border-color:var(--accent-bamboo);background:var(--accent-bamboo)}@supports (color:color-mix(in lab, red, red)){.season-goal-option.active,.season-goal-option[aria-pressed=true]{background:color-mix(in srgb, var(--accent-bamboo) 10%, var(--bg-paper))}.season-goal-option:has(input:checked){background:color-mix(in srgb, var(--accent-bamboo) 10%, var(--bg-paper))}}.season-goal-option.active,.season-goal-option[aria-pressed=true]{box-shadow:inset 0 3px 0 var(--accent-bamboo-fill)}.season-goal-option:has(input:checked){box-shadow:inset 0 3px 0 var(--accent-bamboo-fill)}.season-goal-option input{accent-color:var(--accent-bamboo-fill)}.season-duration-options{flex-wrap:wrap;gap:8px;display:flex}.season-duration-options>button,.season-duration-options>label{min-height:44px;color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-small);background:var(--bg-paper);cursor:pointer;justify-content:center;align-items:center;gap:7px;padding:9px 14px;display:inline-flex}.season-duration-options>button.active,.season-duration-options>button[aria-pressed=true]{color:var(--text-on-accent);border-color:var(--accent-bamboo-fill);background:var(--accent-bamboo-fill)}.season-duration-options>label:has(input:checked){color:var(--text-on-accent);border-color:var(--accent-bamboo-fill);background:var(--accent-bamboo-fill)}.season-goal-card,.season-evaluation,.season-history-summary{border:1px solid var(--border-default);background:var(--bg-raised);gap:16px;margin-top:16px;padding:20px;display:grid}.season-goal-card{border-top:3px solid var(--accent-bamboo)}.season-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.season-controls .button{min-width:112px}.season-evaluation{background:var(--bg-paper)}.season-evaluation-grid{border:1px solid var(--border-default);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.season-evaluation-grid>div{border-right:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);align-content:center;gap:7px;min-height:88px;padding:14px;display:grid}.season-evaluation-grid span,.season-evaluation-grid small{color:var(--text-secondary);font-size:10px;line-height:1.5}.season-evaluation-grid strong{overflow-wrap:anywhere;font:700 18px/1.25 var(--font-data)}.season-tradeoffs{color:var(--text-secondary);border-left:3px solid var(--accent-vermilion);background:var(--accent-vermilion);margin:0;padding:14px 16px 14px 34px}@supports (color:color-mix(in lab, red, red)){.season-tradeoffs{background:color-mix(in srgb, var(--accent-vermilion) 6%, var(--bg-raised))}}.season-tradeoffs{line-height:1.7}.season-tradeoffs li+li{margin-top:6px}.season-status-note{color:var(--text-secondary);overflow-wrap:anywhere;border:1px solid var(--border-subtle);border-radius:var(--radius-small);background:var(--bg-paper);margin:0;padding:11px 13px;font-size:12px;line-height:1.65}.season-history-summary{box-shadow:none}.season-history-summary>ul,.season-history-summary>ol{margin:0;padding-left:20px;line-height:1.7}@media (hover:hover){.season-goal-option:hover,.season-duration-options>button:hover,.season-duration-options>label:hover{border-color:var(--accent-bamboo)}.season-goal-option:hover{transform:translateY(-1px)}}@media (max-width:900px){.scenario-grid,.season-layout{grid-template-columns:1fr}.season-goal-grid,.season-evaluation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:620px){.advanced-module,.advanced-practice,.rhythm-result{border-inline:0;border-radius:0;padding:16px}.advanced-module-heading,.rhythm-weak-list button{flex-direction:column;align-items:stretch}.advanced-module-heading{padding-bottom:16px}.rhythm-metric-grid,.season-day-list{grid-template-columns:1fr}.advanced-practice-text{min-height:210px;padding:16px}.advanced-practice-actions{grid-template-columns:1fr 1fr;display:grid}.season-setup,.season-goal-card,.season-evaluation,.season-history-summary{border-inline:0;border-radius:0;margin-inline:-16px;padding:16px}.season-goal-grid,.season-evaluation-grid{grid-template-columns:1fr}.season-goal-option{min-height:0}.season-duration-options{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.season-duration-options>button,.season-duration-options>label{width:100%;min-width:0}.season-controls{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.season-controls .button,.season-controls button{width:100%;min-width:0}.season-tradeoffs{padding-left:30px}}@media (max-width:380px){.season-duration-options,.season-controls{grid-template-columns:1fr}.season-evaluation-grid strong{font-size:16px}}@media (prefers-reduced-motion:reduce){.season-goal-option,.season-duration-options>button,.season-duration-options>label{transition:none!important;animation:none!important}}.training-tabs.phrase-tabs{grid-template-columns:repeat(4,1fr)}.phrase-training{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.phrase-training-note{border:1px solid var(--border-default);border-left:4px solid var(--accent-bamboo);border-radius:var(--radius-medium);background:var(--bg-raised);grid-template-columns:minmax(130px,.42fr) minmax(220px,.8fr) minmax(280px,1.4fr) auto;align-items:center;gap:14px 22px;padding:18px 22px;display:grid}.phrase-training-note strong{font-family:var(--font-display);font-size:18px}.phrase-training-note p,.phrase-training-note small{color:var(--text-secondary);margin:0;font-size:10px;line-height:1.65}.phrase-training-note small{text-align:right}@media (max-width:1120px){.phrase-training-note{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.phrase-training-note small{text-align:left}}@media (max-width:760px){.training-tabs.phrase-tabs{grid-template-columns:repeat(2,1fr)}.phrase-training-note{grid-template-columns:1fr}.phrase-training-note small{text-align:left}}.challenge-module-heading{margin-bottom:24px}.challenge-module-heading h2{font:700 24px/1.3 var(--font-display);margin:8px 0 12px}.challenge-module-heading p{color:var(--text-secondary);line-height:1.8}.subpage.key-summary-page{--profile-surface:var(--lightningcss-light,#f7fafc)var(--lightningcss-dark,#132731);--profile-ink:var(--lightningcss-light,#183242)var(--lightningcss-dark,#ecf4f7);--profile-muted:var(--lightningcss-light,#536978)var(--lightningcss-dark,#b0c6d1);--profile-wash:var(--lightningcss-light,#e5eff3)var(--lightningcss-dark,#203d4a);--profile-accent:var(--lightningcss-light,#126a78)var(--lightningcss-dark,#91d7df);--profile-line:var(--lightningcss-light,#c5d6de)var(--lightningcss-dark,#3d5b6a);color:var(--profile-ink);max-width:1200px;margin-inline:auto;padding:2rem 1rem 0}.subpage.key-summary-embedded{padding:0 0 1rem}.key-summary-page .key-summary-toolbar{justify-content:space-between;align-items:center;gap:2rem;margin-bottom:2rem;display:flex}.key-summary-intro{min-width:0}.key-summary-page .eyebrow{color:var(--profile-accent);font:600 .75rem/1.5 var(--font-body);letter-spacing:.12em}.key-summary-intro h2{font:700 clamp(1.75rem, 3vw, 2.5rem)/1.3 var(--font-display);letter-spacing:-.035em;margin:.75rem 0}.key-summary-intro h2 span{color:var(--profile-muted);font:400 .875rem/1.7 var(--font-body);letter-spacing:0;margin-top:.5rem;display:block}.key-summary-intro p{color:var(--profile-muted);margin:0;font-size:.875rem}.key-summary-page .button.primary.summary-practice-link{background:var(--profile-ink);min-height:44px;color:var(--profile-surface);border-color:var(--profile-ink);box-shadow:none;flex-shrink:0;gap:1.5rem}.key-summary-metrics{border-block:1px solid var(--profile-line);grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 2rem;padding:1.5rem 0;display:grid}.key-summary-metrics>div{border-right:1px solid var(--profile-line);min-width:0;padding:0 1.5rem}.key-summary-metrics>div:first-child{padding-left:0}.key-summary-metrics>div:last-child{border:0}.key-summary-metrics dt{color:var(--profile-muted);font-size:.8125rem}.key-summary-metrics dd{font:600 clamp(1.5rem, 3vw, 2.25rem)/1.2 var(--font-data);overflow-wrap:anywhere;margin:.75rem 0}.key-summary-metrics dd small{color:var(--profile-muted);font:400 .75rem var(--font-body);margin-left:.5rem}.key-summary-metrics dd.metric-text{font-family:var(--font-body);font-size:1.5rem}.key-summary-metrics .metric-description{color:var(--profile-muted);font:400 .75rem/1.6 var(--font-body);margin:0}.keyboard-heatmap-card{border:1px solid var(--profile-line);background:var(--profile-surface);border-radius:1rem;min-width:0;padding:2rem}.summary-card-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.summary-card-heading h2{font:700 1.5rem/1.3 var(--font-display);margin:.5rem 0 0}.heat-legend{color:var(--profile-muted);align-items:center;gap:.25rem;font-size:.75rem;display:flex}.heat-legend span{padding:0 .25rem}.heat-legend i{background:var(--profile-wash);border-radius:2px;width:1rem;height:.75rem}.heat-legend i:nth-of-type(2){background:#c8e5e8}.heat-legend i:nth-of-type(3){background:#73b7c1}.heat-legend i:nth-of-type(4){background:#126a78}.keyboard-instruction{color:var(--profile-muted);margin:.75rem 0 1.5rem;font-size:.8125rem}.keyboard-scroll-region{overscroll-behavior-inline:contain;max-width:100%;padding:4px;overflow-x:auto}.keyboard-heatmap{border:1px solid var(--profile-line);background:var(--profile-wash);border-radius:.75rem;gap:.5rem;min-width:820px;padding:1.25rem;display:grid}.keyboard-heat-row{gap:.375rem;display:flex}.key-summary-page .heat-key{flex:var(--key-width) 1 0;border:1px solid var(--profile-line);min-width:0;height:3.5rem;color:var(--profile-ink);background:var(--profile-surface);box-shadow:0 3px 0 var(--profile-line);cursor:pointer;border-radius:.375rem;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:.5rem;transition:transform .15s;display:flex}.heat-key b{font:600 .8125rem var(--font-data)}.heat-key small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font:400 .625rem var(--font-data);align-self:flex-end;overflow:hidden}.key-summary-page .heat-key[data-heat=low]{color:#183242;background:#c8e5e8}.key-summary-page .heat-key[data-heat=medium]{color:#183242;background:#73b7c1}.key-summary-page .heat-key[data-heat=high]{color:#fff;background:#126a78}.key-summary-page .heat-key[aria-pressed=true]{outline:2px solid var(--profile-accent);outline-offset:2px}@media (hover:hover){.key-summary-page .heat-key:hover{transform:translateY(-2px)}}.keyboard-scroll-hint{color:var(--profile-muted);margin:.75rem 0;font-size:.75rem;display:none}.key-inspector{border-top:1px solid var(--profile-line);align-items:center;gap:1rem;margin-top:1.5rem;padding-top:1.5rem;display:flex}.inspector-key{border:1px solid var(--profile-line);min-width:3.5rem;height:3.5rem;font:600 1.25rem var(--font-data);background:var(--profile-wash);border-bottom-width:3px;border-radius:.5rem;place-items:center;padding:0 .5rem;display:grid}.key-inspector strong{font-size:.9375rem}.key-inspector p{color:var(--profile-muted);margin:.375rem 0 0;font-size:.75rem}.key-inspector dl{gap:2rem;margin:0 0 0 auto;display:flex}.key-inspector dt{color:var(--profile-muted);font-size:.75rem}.key-inspector dd{font:600 1.25rem var(--font-data);margin:.375rem 0 0}.key-inspector dd small{font-size:.75rem;font-weight:400}.key-summary-empty{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1.5rem;padding:2rem 0;display:grid}.empty-key-motif{gap:.25rem;display:flex}.empty-key-motif kbd{border:1px solid var(--profile-line);width:2.5rem;height:2.75rem;font:700 1.25rem var(--font-display);background:var(--profile-surface);border-bottom-width:3px;border-radius:.375rem;place-items:center;display:grid}.empty-key-motif kbd:last-child{margin-top:.5rem}.key-summary-empty h2{font:700 1.125rem var(--font-display);margin:0 0 .5rem}.key-summary-empty p{max-width:40rem;color:var(--profile-muted);margin:0;font-size:.8125rem;line-height:1.8}.summary-text-link{min-height:44px;color:var(--profile-accent);text-underline-offset:4px;align-items:center;gap:.75rem;font-size:.875rem;text-decoration:underline;display:inline-flex}.summary-data-footer{border-top:1px solid var(--profile-line);justify-content:space-between;align-items:center;gap:1rem;padding-top:1.5rem;display:flex}.summary-data-footer strong{font-size:.8125rem;font-weight:500}.summary-data-footer p{color:var(--profile-muted);margin:.5rem 0 0;font-size:.75rem}.summary-reset{min-height:44px;color:var(--profile-muted);border:1px solid var(--profile-line);cursor:pointer;background:0 0;border-radius:.375rem;flex-shrink:0;padding:.5rem .75rem;font-size:.75rem}.summary-reset:disabled{cursor:default;opacity:.6}.summary-reset-message{color:var(--profile-muted);font-size:.8125rem}.key-summary-page :focus-visible{outline:3px solid var(--focus-ring);outline-offset:4px}@media (max-width:1024px){.keyboard-scroll-hint{display:block}}@media (max-width:768px){.key-summary-page .key-summary-toolbar{align-items:flex-start;gap:1rem}.key-summary-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem 0}.key-summary-metrics>div:nth-child(3){padding-left:0}.key-summary-metrics>div:nth-child(2){border:0}.keyboard-heatmap-card{padding:1.25rem}.key-summary-empty{grid-template-columns:auto minmax(0,1fr)}.key-summary-empty .summary-text-link{grid-column:2}}@media (max-width:520px){.key-summary-page .key-summary-toolbar{flex-direction:column}.key-summary-page .button.primary.summary-practice-link{justify-content:space-between;width:100%}.key-summary-metrics>div{padding-left:1rem;padding-right:.5rem}.keyboard-heatmap-card{padding:1rem}.summary-card-heading{align-items:flex-end}.summary-card-heading h2{font-size:1.25rem}.key-inspector{flex-wrap:wrap;gap:.75rem}.key-inspector dl{gap:2rem;width:100%;margin:.5rem 0 0}.key-summary-empty{gap:1rem}.empty-key-motif{display:none}.key-summary-empty,.key-summary-empty .summary-text-link{display:block}.summary-data-footer{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){.key-summary-page .heat-key{transition:none}}:root:where(:not([data-skin=focus])){--text-on-accent:#fff;--bg-canvas:#f5f4f0;--bg-paper:#fff;--bg-raised:#eeece6;--bg-key:#e2dfd7;--text-primary:#14151a;--text-secondary:#525663;--border-default:#ddd9d0;--border-subtle:#eae7e0;--border-strong:#a8a399;--accent-vermilion:#c03628;--accent-vermilion-fill:#b23023;--accent-vermilion-dark:#822016;--accent-bamboo:#185a4a;--accent-bamboo-fill:#165243;--progress-fill:#c6ded7;--state-success:var(--lightningcss-light,#15684e)var(--lightningcss-dark,#6ee7b7);--state-success-fill:var(--lightningcss-light,#125c45)var(--lightningcss-dark,#065f46);--state-error:var(--lightningcss-light,#b42318)var(--lightningcss-dark,#fda29b);--state-error-fill:#991b1b;--heat-smooth:var(--lightningcss-light,#ece9e1)var(--lightningcss-dark,#262a36);--heat-mild:var(--lightningcss-light,#e7c87a)var(--lightningcss-dark,#786a3f);--heat-clear:var(--lightningcss-light,#d77b45)var(--lightningcss-dark,#9b5335);--heat-severe:var(--lightningcss-light,#a9362c)var(--lightningcss-dark,#b64237);--heat-severe-text:#fff8ee;--focus-ring:var(--lightningcss-light,#185a4a)var(--lightningcss-dark,#5eead4);--shadow-key:0 2px 0 #c5c0b5, 0 3px 6px #14151a0d;--shadow-panel:0 12px 32px -8px #14151a0f, 0 2px 6px #14151a08;--font-display:"PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", "Microsoft YaHei", sans-serif;--font-reading:"Songti SC", "STSong", "Kaiti SC", "STKaiti", serif;--font-body:"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-data:"SFMono-Regular", "JetBrains Mono", "Cascadia Mono", "Liberation Mono", monospace;--radius-small:10px;--radius-medium:16px;--radius-large:22px;--grid-line:var(--accent-bamboo)}@supports (color:color-mix(in lab, red, red)){:root:where(:not([data-skin=focus])){--grid-line:color-mix(in srgb, var(--accent-bamboo) 5%, transparent)}}:root:where(:not([data-skin=focus])){--dock-bg:#14151a;--dock-text:#f3f2ee}:root:where(:not([data-skin=focus]))[data-theme=dark]{--text-on-accent:#fff;--bg-canvas:#0d0e12;--bg-paper:#15171e;--bg-raised:#1c1f28;--bg-key:#262a36;--text-primary:#f3f2ee;--text-secondary:#a6aab8;--border-default:#2a2e3b;--border-subtle:#20232e;--border-strong:#4e5569;--accent-vermilion:#ff8066;--accent-vermilion-fill:#b83728;--accent-vermilion-dark:#ff9e8a;--accent-bamboo:#5eead4;--accent-bamboo-fill:#115e59;--progress-fill:#194b47;--state-success:#6ee7b7;--state-success-fill:#065f46;--state-error:#fda29b;--state-error-fill:#991b1b;--focus-ring:#5eead4;--shadow-key:0 2px 0 #08090c, 0 4px 10px #00000059;--shadow-panel:0 20px 50px -12px #00000073, 0 4px 12px #00000040;--grid-line:var(--accent-bamboo)}@supports (color:color-mix(in lab, red, red)){:root:where(:not([data-skin=focus]))[data-theme=dark]{--grid-line:color-mix(in srgb, var(--accent-bamboo) 5%, transparent)}}@media (prefers-color-scheme:dark){:root:where(:not([data-skin=focus]))[data-theme=system]{--text-on-accent:#fff;--bg-canvas:#0d0e12;--bg-paper:#15171e;--bg-raised:#1c1f28;--bg-key:#262a36;--text-primary:#f3f2ee;--text-secondary:#a6aab8;--border-default:#2a2e3b;--border-subtle:#20232e;--border-strong:#4e5569;--accent-vermilion:#ff8066;--accent-vermilion-fill:#b83728;--accent-vermilion-dark:#ff9e8a;--accent-bamboo:#5eead4;--accent-bamboo-fill:#115e59;--progress-fill:#194b47;--state-success:#6ee7b7;--state-success-fill:#065f46;--state-error:#fda29b;--state-error-fill:#991b1b;--focus-ring:#5eead4;--shadow-key:0 2px 0 #08090c, 0 4px 10px #00000059;--shadow-panel:0 20px 50px -12px #00000073, 0 4px 12px #00000040;--grid-line:var(--accent-bamboo)}@supports (color:color-mix(in lab, red, red)){:root:where(:not([data-skin=focus]))[data-theme=system]{--grid-line:color-mix(in srgb, var(--accent-bamboo) 5%, transparent)}}}:root:where(:not([data-skin=focus]))[data-theme=bamboo]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--text-on-accent:#fff;--bg-canvas:#f2ece1;--bg-paper:#fcfaf4;--bg-raised:#ebe4d6;--bg-key:#dfd6c3;--text-primary:#202621;--text-secondary:#566057;--border-default:#cfc5b0;--border-subtle:#e0d8c6;--border-strong:#968b75;--accent-vermilion:#b3432b;--accent-vermilion-fill:#963521;--accent-vermilion-dark:#6f241c;--accent-bamboo:#2b5b4c;--accent-bamboo-fill:#245042;--progress-fill:#bfd1c6;--focus-ring:#2b5b4c;--shadow-key:0 2px 0 #b8ad96;--shadow-panel:0 12px 32px -8px #37302212;--grid-line:var(--accent-bamboo)}@supports (color:color-mix(in lab, red, red)){:root:where(:not([data-skin=focus]))[data-theme=bamboo]{--grid-line:color-mix(in srgb, var(--accent-bamboo) 6%, transparent)}}:root:where(:not([data-skin=focus]))[data-theme=qingdai]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--text-on-accent:#fff;--bg-canvas:#ebf0f2;--bg-paper:#fafcfd;--bg-raised:#e1e9ec;--bg-key:#d2dee3;--text-primary:#18252c;--text-secondary:#4d5f69;--border-default:#bdcdd4;--border-subtle:#d4e0e5;--border-strong:#7b929c;--accent-vermilion:#2e5266;--accent-vermilion-fill:#264759;--accent-vermilion-dark:#1b3544;--accent-bamboo:#28586b;--accent-bamboo-fill:#214d5e;--progress-fill:#b6cdd0;--focus-ring:#28586b;--shadow-key:0 2px 0 #9ab0b8;--shadow-panel:0 12px 32px -8px #182a3412;--grid-line:var(--accent-vermilion)}@supports (color:color-mix(in lab, red, red)){:root:where(:not([data-skin=focus]))[data-theme=qingdai]{--grid-line:color-mix(in srgb, var(--accent-vermilion) 6%, transparent)}}:root:where(:not([data-skin=focus]))[data-theme=custom]{color-scheme:var(--custom-color-scheme,light);--text-on-accent:var(--custom-accent-text,#fff);--bg-canvas:var(--custom-canvas,#f2ebdd);--bg-paper:var(--custom-paper,#fbf7ec);--bg-raised:var(--custom-raised,#f3eedf);--bg-key:var(--custom-key,#e5dcc8);--text-primary:var(--custom-text,#242c27);--text-secondary:var(--custom-text-secondary,#5e685e);--border-default:var(--custom-border,#cbbfa8);--border-subtle:var(--custom-border,#cbbfa8)}@supports (color:color-mix(in lab, red, red)){:root:where(:not([data-skin=focus]))[data-theme=custom]{--border-subtle:color-mix(in srgb, var(--custom-border,#cbbfa8) 62%, var(--custom-paper,#fbf7ec))}}:root:where(:not([data-skin=focus]))[data-theme=custom]{--border-strong:var(--custom-border-strong,#968b75);--accent-vermilion:var(--custom-accent,#b3432b);--accent-vermilion-fill:var(--custom-accent,#b3432b);--accent-vermilion-dark:var(--custom-accent,#b3432b)}@supports (color:color-mix(in lab, red, red)){:root:where(:not([data-skin=focus]))[data-theme=custom]{--accent-vermilion-dark:color-mix(in srgb, var(--custom-accent,#b3432b) 78%, var(--custom-text,#242c27))}}:root:where(:not([data-skin=focus]))[data-theme=custom]{--accent-bamboo:var(--custom-accent,#b3432b);--accent-bamboo-fill:var(--custom-accent,#b3432b);--progress-fill:var(--custom-accent,#b3432b)}@supports (color:color-mix(in lab, red, red)){:root:where(:not([data-skin=focus]))[data-theme=custom]{--progress-fill:color-mix(in srgb, var(--custom-accent,#b3432b) 28%, var(--custom-paper,#fbf7ec))}}:root:where(:not([data-skin=focus]))[data-theme=custom]{--shadow-key:0 2px 0 var(--custom-border-strong,#968b75);--shadow-panel:0 14px 36px var(--custom-text,#242c27)}@supports (color:color-mix(in lab, red, red)){:root:where(:not([data-skin=focus]))[data-theme=custom]{--shadow-panel:0 14px 36px color-mix(in srgb, var(--custom-text,#242c27) 10%, transparent)}}:root:where(:not([data-skin=focus]))[data-theme=custom]{--grid-line:var(--custom-accent,#b3432b)}@supports (color:color-mix(in lab, red, red)){:root:where(:not([data-skin=focus]))[data-theme=custom]{--grid-line:color-mix(in srgb, var(--custom-accent,#b3432b) 8%, transparent)}}html:where(:not([data-skin=focus])){scroll-padding-top:92px}:where(html:not([data-skin=focus])) body{background-color:var(--bg-canvas);background-image:radial-gradient(ellipse 80% 420px at 50% 0%, var(--accent-bamboo), transparent 70%);min-height:100dvh}@supports (color:color-mix(in lab, red, red)){:where(html:not([data-skin=focus])) body{background-image:radial-gradient(ellipse 80% 420px at 50% 0%, color-mix(in srgb, var(--accent-bamboo) 6%, transparent), transparent 70%)}}:where(html:not([data-skin=focus])) body{font-size:15px}:where(html:not([data-skin=focus])) body:before{display:none}:where(html:not([data-skin=focus])) ::selection{color:var(--text-on-accent);background:var(--accent-bamboo-fill)}:where(html:not([data-skin=focus])) .skip-link{z-index:100;color:var(--text-on-accent);background:var(--accent-bamboo-fill);padding:10px 16px;font-weight:700;position:fixed;top:8px;left:8px;transform:translateY(-160%)}:where(html:not([data-skin=focus])) .skip-link:focus{transform:translateY(0)}:where(html:not([data-skin=focus])) .site-header{border-bottom:1px solid var(--border-default)}@supports (color:color-mix(in lab, red, red)){:where(html:not([data-skin=focus])) .site-header{border-bottom:1px solid color-mix(in srgb, var(--border-default) 70%, #ffffff2e)}}:where(html:not([data-skin=focus])) .site-header{background:linear-gradient(180deg, #ffffff14 0%, transparent 100%), var(--bg-canvas)}@supports (color:color-mix(in lab, red, red)){:where(html:not([data-skin=focus])) .site-header{background:linear-gradient(180deg, #ffffff14 0%, transparent 100%), color-mix(in srgb, var(--bg-canvas) 72%, transparent)}}:where(html:not([data-skin=focus])) .site-header{-webkit-backdrop-filter:blur(24px)saturate(180%);box-shadow:inset 0 -1px #ffffff1f,0 8px 32px -12px #14151a14}:where(html:not([data-skin=focus])) .header-inner{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:24px;width:min(1380px,100% - 48px);min-height:76px}:where(html:not([data-skin=focus])) .brand{gap:12px}:where(html:not([data-skin=focus])) .brand-mark{width:42px;height:42px;color:var(--text-on-accent);background:radial-gradient(120% 90% at 30% 0%, #ffffff57 0%, transparent 60%), linear-gradient(155deg, var(--accent-bamboo-fill), var(--accent-bamboo-fill));border:1px solid #ffffff57;border-radius:12px;grid-template-columns:1fr 14px;display:grid;overflow:hidden}@supports (color:color-mix(in lab, red, red)){:where(html:not([data-skin=focus])) .brand-mark{background:radial-gradient(120% 90% at 30% 0%, #ffffff57 0%, transparent 60%), linear-gradient(155deg, color-mix(in srgb, var(--accent-bamboo-fill) 82%, #2dd4bf), var(--accent-bamboo-fill))}}:where(html:not([data-skin=focus])) .brand-mark{box-shadow:inset 0 1.5px 1px #ffffff94, inset 0 -1.5px 2px #00000040, 0 6px 16px -3px var(--accent-bamboo-fill)}@supports (color:color-mix(in lab, red, red)){:where(html:not([data-skin=focus])) .brand-mark{box-shadow:inset 0 1.5px 1px #ffffff94, inset 0 -1.5px 2px #00000040, 0 6px 16px -3px color-mix(in srgb, var(--accent-bamboo-fill) 42%, transparent)}}:where(html:not([data-skin=focus])) .brand-mark{font-family:var(--font-reading);transform:none}:where(html:not([data-skin=focus])) .brand-mark:before,:where(html:not([data-skin=focus])) .brand-mark:after{display:none}:where(html:not([data-skin=focus])) .brand-mark i{place-items:center;font-size:20px;font-style:normal;display:grid}:where(html:not([data-skin=focus])) .brand-mark b{font:700 7px/1 var(--font-data);letter-spacing:.06em;text-orientation:mixed;writing-mode:vertical-rl;border-left:1px solid #ffffff3d;place-items:center;padding-block:5px;display:grid}:where(html:not([data-skin=focus])) .brand:hover .brand-mark{transform:translateY(-1px)}:where(html:not([data-skin=focus])) .brand strong{font-family:var(--font-display);letter-spacing:-.01em;font-size:16px;font-weight:700}:where(html:not([data-skin=focus])) .brand small{color:var(--text-secondary);font:600 9px/1.2 var(--font-data);letter-spacing:.06em;margin-top:2px}:where(html:not([data-skin=focus])) .main-nav{isolation:isolate;border:1px solid var(--border-strong);justify-self:center;align-items:center;gap:4px;padding:5px;position:relative}@supports (color:color-mix(in lab, red, red)){:where(html:not([data-skin=focus])) .main-nav{border:1px solid color-mix(in srgb, var(--border-strong) 34%, #ffffff8c)}}:where(html:not([data-skin=focus])) .main-nav{background:linear-gradient(135deg, #ffffff52 0%, #ffffff0f 46%, #ffffff2e 100%), var(--bg-paper);border-radius:999px}@supports (color:color-mix(in lab, red, red)){:where(html:not([data-skin=focus])) .main-nav{background:linear-gradient(135deg, #ffffff52 0%, #ffffff0f 46%, #ffffff2e 100%), color-mix(in srgb, var(--bg-paper) 56%, transparent)}}:where(html:not([data-skin=focus])) .main-nav{-webkit-backdrop-filter:blur(28px)saturate(200%)brightness(1.03);box-shadow:inset 0 1.5px 1px #ffffffad,inset 0 -1px 1px #ffffff38,inset 0 2px 12px #14151a0f,0 14px 34px -6px #14151a24,0 2px 6px #14151a0d}:where(html:not([data-skin=focus]))[data-theme=dark] .main-nav{background:linear-gradient(135deg, #ffffff26 0%, #ffffff05 48%, #ffffff17 100%), var(--bg-paper);border-color:#ffffff2e}@supports (color:color-mix(in lab, red, red)){:where(html:not([data-skin=focus]))[data-theme=dark] .main-nav{background:linear-gradient(135deg, #ffffff26 0%, #ffffff05 48%, #ffffff17 100%), color-mix(in srgb, var(--bg-paper) 52%, transparent)}}:where(html:not([data-skin=focus]))[data-theme=dark] .main-nav{box-shadow:inset 0 1px .5px #ffffff61,inset 0 -1px .5px #ffffff1a,inset 0 3px 14px #0000007a,0 16px 40px -6px #0000009e,0 2px 8px #00000061}@media (prefers-color-scheme:dark){:where(html:not([data-skin=focus]))[data-theme=system] .main-nav{background:linear-gradient(135deg, #ffffff26 0%, #ffffff05 48%, #ffffff17 100%), var(--bg-paper);border-color:#ffffff2e}@supports (color:color-mix(in lab, red, red)){:where(html:not([data-skin=focus]))[data-theme=system] .main-nav{background:linear-gradient(135deg, #ffffff26 0%, #ffffff05 48%, #ffffff17 100%), color-mix(in srgb, var(--bg-paper) 52%, transparent)}}:where(html:not([data-skin=focus]))[data-theme=system] .main-nav{box-shadow:inset 0 1px .5px #ffffff61,inset 0 -1px .5px #ffffff1a,inset 0 3px 14px #0000007a,0 16px 40px -6px #0000009e,0 2px 8px #00000061}}:where(html:not([data-skin=focus])) .nav-item{min-width:0;min-height:44px;transition:color .2s ease, background .22s var(--ease-out), box-shadow .22s var(--ease-out), transform .18s var(--ease-out);border-right:0;border-radius:999px;flex-direction:row;flex:0 auto;align-items:center;gap:8px;padding:0 16px;position:relative;overflow:hidden}:where(html:not([data-skin=focus])) .nav-item:before{content:"";opacity:0;pointer-events:none;transition:opacity .22s var(--ease-out);background:linear-gradient(#ffffff7a 0%,#ffffff17 68%,#0000 100%);border-radius:999px;position:absolute;inset:1px 2px 46%}:where(html:not([data-skin=focus])) .nav-item>span{z-index:1;color:var(--text-secondary);border:1px solid var(--border-strong);padding:2px 6px;position:relative}@supports (color:color-mix(in lab, red, red)){:where(html:not([data-skin=focus])) .nav-item>span{border:1px solid color-mix(in srgb, var(--border-strong) 28%, #ffffff38)}}:where(html:not([data-skin=focus])) .nav-item>span{background:linear-gradient(180deg, #ffffff2e, #ffffff05), var(--bg-raised);border-radius:6px}@supports (color:color-mix(in lab, red, red)){:where(html:not([data-skin=focus])) .nav-item>span{background:linear-gradient(180deg, #ffffff2e, #ffffff05), color-mix(in srgb, var(--bg-raised) 70%, transparent)}}:where(html:not([data-skin=focus])) .nav-item>span{font:700 9px/1.1 var(--font-data);letter-spacing:.06em;transition:color .18s,border-color .18s,background .18s,box-shadow .18s;box-shadow:inset 0 1px .5px #ffffff47,0 1px 2px #0000000f}:where(html:not([data-skin=focus])) .nav-item>strong{z-index:1;white-space:nowrap;font-size:13px;font-weight:600;position:relative}:where(html:not([data-skin=focus])) .nav-item:hover:not(.active){color:var(--text-primary);background:linear-gradient(180deg, #ffffff3d 0%, #ffffff0f 100%), var(--bg-raised)}@supports (color:color-mix(in lab, red, red)){:where(html:not([data-skin=focus])) .nav-item:hover:not(.active){background:linear-gradient(180deg, #ffffff3d 0%, #ffffff0f 100%), color-mix(in srgb, var(--bg-raised) 60%, transparent)}}:where(html:not([data-skin=focus])) .nav-item:hover:not(.active){transform:translateY(-.5px);box-shadow:inset 0 1px .5px #ffffff61,inset 0 -1px .5px #ffffff1f,0 4px 12px -2px #0000001a}:where(html:not([data-skin=focus])) .nav-item:hover:before{opacity:.58}:where(html:not([data-skin=focus])) .nav-item:active{transform:scale(.97)}:where(html:not([data-skin=focus])) .nav-item.active{color:var(--text-on-accent);background:radial-gradient(120% 95% at 50% 0%, #ffffff52 0%, transparent 60%), linear-gradient(180deg, var(--accent-bamboo-fill) 0%, var(--accent-bamboo-fill) 52%, var(--accent-bamboo-fill) 100%)}@supports (color:color-mix(in lab, red, red)){:where(html:not([data-skin=focus])) .nav-item.active{background:radial-gradient(120% 95% at 50% 0%, #ffffff52 0%, transparent 60%), linear-gradient(180deg, color-mix(in srgb, var(--accent-bamboo-fill) 78%, #2dd4bf) 0%, var(--accent-bamboo-fill) 52%, color-mix(in srgb, var(--accent-bamboo-fill) 86%, #041714) 100%)}}:where(html:not([data-skin=focus])) .nav-item.active{box-shadow:inset 0 1.5px 1px #ffffffb8, inset 0 -2px 3px #00000047, inset 0 0 18px #5eead438, 0 6px 20px -2px var(--accent-bamboo-fill), 0 2px 6px #00000040}@supports (color:color-mix(in lab, red, red)){:where(html:not([data-skin=focus])) .nav-item.active{box-shadow:inset 0 1.5px 1px #ffffffb8, inset 0 -2px 3px #00000047, inset 0 0 18px #5eead438, 0 6px 20px -2px color-mix(in srgb, var(--accent-bamboo-fill) 58%, transparent), 0 2px 6px #00000040}}:where(html:not([data-skin=focus])) .nav-item.active:before{opacity:1}:where(html:not([data-skin=focus])) .nav-item.active:after{content:"";pointer-events:none;background:radial-gradient(90% 70% at 50% 105%,#ffffff52 0%,#0000 65%);border:1px solid #ffffff73;border-radius:999px;width:auto;height:auto;animation:none;position:absolute;inset:0;transform:none}:where(html:not([data-skin=focus])) .nav-item.active>span{color:var(--text-on-accent);background:linear-gradient(#ffffff57,#ffffff24);border-color:#ffffff70;box-shadow:inset 0 1px .5px #ffffff9e,0 1px 3px #0000002e}:where(html:not([data-skin=focus])) .theme-switch{border:1px solid var(--border-strong)}@supports (color:color-mix(in lab, red, red)){:where(html:not([data-skin=focus])) .theme-switch{border:1px solid color-mix(in srgb, var(--border-strong) 34%, #ffffff6b)}}:where(html:not([data-skin=focus])) .theme-switch{background:linear-gradient(135deg, #ffffff3d, #ffffff0a), var(--bg-paper);border-radius:999px}@supports (color:color-mix(in lab, red, red)){:where(html:not([data-skin=focus])) .theme-switch{background:linear-gradient(135deg, #ffffff3d, #ffffff0a), color-mix(in srgb, var(--bg-paper) 60%, transparent)}}:where(html:not([data-skin=focus])) .theme-switch{-webkit-backdrop-filter:blur(20px)saturate(180%);box-shadow:inset 0 1px .5px #ffffff85,0 4px 14px -3px #14151a1a}:where(html:not([data-skin=focus])) .local-badge{border:1px solid var(--border-strong);justify-self:end;gap:8px;padding:6px 12px}@supports (color:color-mix(in lab, red, red)){:where(html:not([data-skin=focus])) .local-badge{border:1px solid color-mix(in srgb, var(--border-strong) 30%, #ffffff61)}}:where(html:not([data-skin=focus])) .local-badge{background:linear-gradient(135deg, #ffffff38, #ffffff08), var(--bg-paper);border-radius:999px}@supports (color:color-mix(in lab, red, red)){:where(html:not([data-skin=focus])) .local-badge{background:linear-gradient(135deg, #ffffff38, #ffffff08), color-mix(in srgb, var(--bg-paper) 58%, transparent)}}:where(html:not([data-skin=focus])) .local-badge{-webkit-backdrop-filter:blur(20px)saturate(180%);font-size:11px;box-shadow:inset 0 1px .5px #ffffff75,0 4px 14px -3px #14151a14}:where(html:not([data-skin=focus])) .local-badge i{width:8px;height:8px;box-shadow:0 0 0 3px var(--accent-bamboo);border:0;outline:0}@supports (color:color-mix(in lab, red, red)){:where(html:not([data-skin=focus])) .local-badge i{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-bamboo) 18%, transparent)}}:where(html:not([data-skin=focus])) .local-badge b{display:none}:where(html:not([data-skin=focus])) .page-wrap,:where(html:not([data-skin=focus])) .site-footer{width:min(1380px,100% - 48px)}:where(html:not([data-skin=focus])) .hero-row{background:0 0;border:0;grid-template-columns:minmax(0,1fr) auto;min-height:0;padding:28px 0 22px;position:relative}:where(html:not([data-skin=focus])) .hero-row:before,:where(html:not([data-skin=focus])) .subpage-heading:before{display:none}:where(html:not([data-skin=focus])) .eyebrow{color:var(--accent-bamboo);font:700 11px/1.3 var(--font-data);letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px}:where(html:not([data-skin=focus])) .eyebrow:before,:where(html:not([data-skin=focus])) .eyebrow:after{content:none}:where(html:not([data-skin=focus])) .hero-row h1,:where(html:not([data-skin=focus])) .subpage-heading h1{max-width:900px;font-family:var(--font-display);letter-spacing:-.025em;font-size:clamp(26px,2.8vw,38px);font-weight:700;line-height:1.2}:where(html:not([data-skin=focus])) .hero-row h1 em{color:var(--accent-vermilion);font-family:inherit;font-style:normal}:where(html:not([data-skin=focus])) .hero-row p,:where(html:not([data-skin=focus])) .subpage-heading p{max-width:680px;color:var(--text-secondary);margin-top:6px;font-size:14px;line-height:1.7}:where(html:not([data-skin=focus])) .button,:where(html:not([data-skin=focus])) .side-action,:where(html:not([data-skin=focus])) .article-restart button,:where(html:not([data-skin=focus])) .toolbar-actions button,:where(html:not([data-skin=focus])) .history-filter button,:where(html:not([data-skin=focus])) .trend-range button,:where(html:not([data-skin=focus])) .training-tabs button,:where(html:not([data-skin=focus])) .segmented button{border-radius:var(--radius-small);min-height:44px;transition:color .16s ease, border-color .16s ease, background-color .16s ease, box-shadow .16s ease, transform .16s var(--ease-out);font-weight:650}:where(html:not([data-skin=focus])) .button:hover:not(:disabled),:where(html:not([data-skin=focus])) .side-action:hover:not(:disabled),:where(html:not([data-skin=focus])) .article-restart button:hover:not(:disabled),:where(html:not([data-skin=focus])) .toolbar-actions button:hover:not(:disabled){transform:translateY(-1px)}:where(html:not([data-skin=focus])) .button.primary,:where(html:not([data-skin=focus])) .side-action{color:var(--text-on-accent);border-color:var(--accent-bamboo-fill);background:var(--accent-bamboo-fill);box-shadow:0 4px 12px var(--accent-bamboo-fill)}@supports (color:color-mix(in lab, red, red)){:where(html:not([data-skin=focus])) .button.primary,:where(html:not([data-skin=focus])) .side-action{box-shadow:0 4px 12px color-mix(in srgb, var(--accent-bamboo-fill) 24%, transparent)}}:where(html:not([data-skin=focus])) .button.primary:active,:where(html:not([data-skin=focus])) .side-action:active{box-shadow:none;transform:translateY(1px)}:where(html:not([data-skin=focus])) .button.secondary,:where(html:not([data-skin=focus])) .side-action.subtle{border-color:var(--border-default);background:var(--bg-paper);box-shadow:0 1px 3px #14151a0a}:where(html:not([data-skin=focus])) .metric-strip{box-shadow:none;background:0 0;border:0;gap:12px;margin:0;overflow:visible}:where(html:not([data-skin=focus])) .metric{border:1px solid var(--border-default);border-radius:var(--radius-medium);background:var(--bg-paper);min-height:88px;box-shadow:var(--shadow-panel);padding:16px 20px;position:relative}:where(html:not([data-skin=focus])) .metric:after{content:attr(data-unit)}:where(html:not([data-skin=focus])) .metric>span{font:650 11px/1.2 var(--font-body);letter-spacing:.02em}:where(html:not([data-skin=focus])) .metric strong{letter-spacing:-.04em;margin-top:8px;font-size:28px}:where(html:not([data-skin=focus])) .metric.primary-metric,:where(html:not([data-skin=focus])) .metric.primary-metric.is-active{color:var(--text-on-accent);border-color:var(--accent-bamboo-fill);background:var(--accent-bamboo-fill)}:where(html:not([data-skin=focus])) .metric.primary-metric:before{display:none}:where(html:not([data-skin=focus])) .metric.primary-metric>span,:where(html:not([data-skin=focus])) .metric.primary-metric small{color:var(--text-on-accent)}:where(html:not([data-skin=focus])) .typing-diagnostics{border:1px solid var(--border-default);border-radius:var(--radius-medium);background:var(--bg-paper);margin:12px 0 0;padding:12px 18px;box-shadow:0 2px 8px #14151a08}:where(html:not([data-skin=focus])) .workspace-grid,:where(html:not([data-skin=focus])) .challenge-layout,:where(html:not([data-skin=focus])) .history-grid,:where(html:not([data-skin=focus])) .training-plan,:where(html:not([data-skin=focus])) .settings-grid{gap:20px}:where(html:not([data-skin=focus])) .workspace-grid{grid-template-columns:minmax(0,1fr) 296px;margin-top:20px}:where(html:not([data-skin=focus])) .typing-card,:where(html:not([data-skin=focus])) .side-panel,:where(html:not([data-skin=focus])) .challenge-card,:where(html:not([data-skin=focus])) .history-panel,:where(html:not([data-skin=focus])) .settings-card,:where(html:not([data-skin=focus])) .summary-card,:where(html:not([data-skin=focus])) .lookup-search,:where(html:not([data-skin=focus])) .lookup-results,:where(html:not([data-skin=focus])) .trend-panel,:where(html:not([data-skin=focus])) .daily-progress-card,:where(html:not([data-skin=focus])) .smart-plan-card,:where(html:not([data-skin=focus])) .due-review-card,:where(html:not([data-skin=focus])) .hesitation-queue-card,:where(html:not([data-skin=focus])) .management-card,:where(html:not([data-skin=focus])) .pwa-card{border-color:var(--border-default);border-radius:var(--radius-large);background-color:var(--bg-paper);box-shadow:var(--shadow-panel)}:where(html:not([data-skin=focus])) .typing-card,:where(html:not([data-skin=focus])) .challenge-card,:where(html:not([data-skin=focus])) .trend-panel{border-top:1px solid var(--border-default)}:where(html:not([data-skin=focus])) .side-panel,:where(html:not([data-skin=focus])) .settings-card,:where(html:not([data-skin=focus])) .summary-card{position:relative;overflow:hidden}:where(html:not([data-skin=focus])) .side-panel:before,:where(html:not([data-skin=focus])) .settings-card:before,:where(html:not([data-skin=focus])) .summary-card:before{display:none}:where(html:not([data-skin=focus])) .typing-toolbar,:where(html:not([data-skin=focus])) .panel-title,:where(html:not([data-skin=focus])) .settings-card-title{border-bottom-color:var(--border-subtle);background:var(--bg-paper)}:where(html:not([data-skin=focus])) .practice-commandbar{border-color:var(--border-subtle);background:var(--bg-raised);border-radius:0;padding:10px 20px}:where(html:not([data-skin=focus])) .training-tabs{border-color:var(--border-default);border-radius:var(--radius-medium);background:var(--bg-paper);box-shadow:var(--shadow-panel)}:where(html:not([data-skin=focus])) .practice-mode-mark,:where(html:not([data-skin=focus])) .goal-seal,:where(html:not([data-skin=focus])) .training-tabs button.active,:where(html:not([data-skin=focus])) .segmented button.active,:where(html:not([data-skin=focus])) .history-filter button.active,:where(html:not([data-skin=focus])) .trend-range button.active{color:var(--text-on-accent);background:var(--accent-bamboo-fill)}:where(html:not([data-skin=focus])) .root-rail,:where(html:not([data-skin=focus])) .root-zone-rail{border-block-color:var(--border-subtle);background:var(--bg-raised)}:where(html:not([data-skin=focus])) .root-rail>span,:where(html:not([data-skin=focus])) .root-zone-rail button{border-right-color:var(--border-subtle)}:where(html:not([data-skin=focus])) .root-rail b,:where(html:not([data-skin=focus])) .root-zone-rail strong{color:var(--accent-bamboo);font-family:var(--font-data)}:where(html:not([data-skin=focus])) .article-text{background:var(--bg-paper);font-family:var(--font-reading);font-size:var(--practice-font-size);background-image:none;line-height:2.05}:where(html:not([data-skin=focus])) .article-text span.current{color:var(--text-on-accent);outline:3px solid var(--accent-vermilion);border-radius:5px}@supports (color:color-mix(in lab, red, red)){:where(html:not([data-skin=focus])) .article-text span.current{outline:3px solid color-mix(in srgb, var(--accent-vermilion) 20%, transparent)}}:where(html:not([data-skin=focus])) .article-text span.current{background:var(--accent-vermilion-fill)}:where(html:not([data-skin=focus])) .article-text span.correct{color:var(--state-success)}:where(html:not([data-skin=focus])) .typing-input,:where(html:not([data-skin=focus])) .code-input,:where(html:not([data-skin=focus])) .lookup-search input,:where(html:not([data-skin=focus])) input,:where(html:not([data-skin=focus])) select,:where(html:not([data-skin=focus])) textarea{border-color:var(--border-default);border-radius:var(--radius-small);background:var(--bg-raised)}:where(html:not([data-skin=focus])) .typing-input{border-top:1px solid var(--border-subtle);background:var(--bg-raised);border-radius:0}:where(html:not([data-skin=focus])) .subpage{padding:0 0 56px}:where(html:not([data-skin=focus])) .subpage-heading{border:0;border-bottom:1px solid var(--border-default);background:0 0;flex-direction:column;justify-content:center;width:100%;max-width:none;min-height:0;margin-bottom:24px;padding:28px 0 22px;display:flex;position:relative}:where(html:not([data-skin=focus])) .subpage-heading.centered{text-align:left}:where(html:not([data-skin=focus])) .subpage-heading.with-action{flex-direction:row;justify-content:space-between;align-items:center}:where(html:not([data-skin=focus])) .subpage-heading>*{z-index:1;position:relative}:where(html:not([data-skin=focus])) .challenge-layout{grid-template-columns:minmax(0,1fr) 300px}:where(html:not([data-skin=focus])) .challenge-card{background:radial-gradient(circle at 50% 0%, var(--accent-bamboo), transparent 60%), var(--bg-paper);min-height:520px;overflow:hidden}@supports (color:color-mix(in lab, red, red)){:where(html:not([data-skin=focus])) .challenge-card{background:radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--accent-bamboo) 6%, transparent), transparent 60%), var(--bg-paper)}}:where(html:not([data-skin=focus])) .challenge-start:before{content:"86";color:var(--accent-bamboo);font:800 72px/1 var(--font-data);letter-spacing:-.1em}:where(html:not([data-skin=focus])) .challenge-start h2,:where(html:not([data-skin=focus])) .lookup-empty h2,:where(html:not([data-skin=focus])) .panel-title h2,:where(html:not([data-skin=focus])) .settings-card-title h2,:where(html:not([data-skin=focus])) .daily-progress-card h2,:where(html:not([data-skin=focus])) .smart-plan-card h2{font-family:var(--font-display);font-weight:700}:where(html:not([data-skin=focus])) .question-character,:where(html:not([data-skin=focus])) .drill-question{color:var(--text-primary);font-family:var(--font-reading)}:where(html:not([data-skin=focus])) .code-slots span{border-color:var(--border-strong);border-radius:var(--radius-small);background:var(--bg-raised);box-shadow:var(--shadow-key)}:where(html:not([data-skin=focus])) .lookup-page{max-width:none}:where(html:not([data-skin=focus])) .lookup-page .lookup-heading,:where(html:not([data-skin=focus])) .lookup-page .keyboard-visual,:where(html:not([data-skin=focus])) .lookup-page .lookup-empty,:where(html:not([data-skin=focus])) .lookup-page .lookup-results,:where(html:not([data-skin=focus])) .lookup-page .lookup-search{width:100%;max-width:none;margin-inline:auto}:where(html:not([data-skin=focus])) .lookup-search{border-width:1px;min-height:80px}:where(html:not([data-skin=focus])) .keyboard-visual{padding:26px 0}:where(html:not([data-skin=focus])) .keyboard-visual span{border-color:var(--border-default);border-radius:var(--radius-small);background:var(--bg-key);box-shadow:var(--shadow-key);font:700 12px/1 var(--font-data)}:where(html:not([data-skin=focus])) .lookup-empty>h2,:where(html:not([data-skin=focus])) .lookup-empty>p,:where(html:not([data-skin=focus])) .lookup-empty>.quick-searches{animation:lookup-copy-rise-in .42s var(--ease-out) both}:where(html:not([data-skin=focus])) .lookup-empty>p{animation-delay:60ms}:where(html:not([data-skin=focus])) .lookup-empty>.quick-searches{animation-delay:.11s}@supports (animation-timeline:view()){:where(html:not([data-skin=focus])) .lookup-results .lookup-row{animation:linear both lookup-result-reveal;animation-timeline:view();animation-range:entry entry 32%}}@keyframes lookup-keyboard-row-in{0%{opacity:0;transform:translateY(8px)}}@keyframes lookup-copy-rise-in{0%{opacity:0;transform:translateY(6px)}}@keyframes lookup-result-reveal{0%{opacity:.45;transform:translateY(8px)}}:where(html:not([data-skin=focus])) .lookup-row{border-bottom-color:var(--border-default)}:where(html:not([data-skin=focus])) .lookup-row>strong{font-family:var(--font-reading);font-size:30px}:where(html:not([data-skin=focus])) .lookup-row code{color:var(--accent-bamboo);background:var(--bg-key)}:where(html:not([data-skin=focus])) .summary-grid{gap:14px}:where(html:not([data-skin=focus])) .summary-card{min-height:132px;padding:22px 24px}:where(html:not([data-skin=focus])) .summary-card strong{font-family:var(--font-data);letter-spacing:-.05em;font-size:32px}:where(html:not([data-skin=focus])) .summary-card.accent{color:var(--text-on-accent);border-color:var(--accent-bamboo-fill);background:var(--accent-bamboo-fill)}:where(html:not([data-skin=focus])) .trend-chart{background:linear-gradient(var(--grid-line) 1px, transparent 1px), var(--bg-paper);background-size:100% 25%}:where(html:not([data-skin=focus])) .speed-line,:where(html:not([data-skin=focus])) .accuracy-line{stroke-width:3px}.settings-heading{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:32px;display:grid}.settings-heading>div:first-child{min-width:0}.settings-heading>div:first-child>p{max-width:58ch}.settings-heading-summary{border:1px solid var(--border-default);border-bottom:3px solid var(--accent-bamboo);border-radius:var(--radius-small);background:var(--bg-raised);grid-template-columns:repeat(3,minmax(0,1fr));width:min(100%,430px);margin:0;display:grid}.settings-heading-summary>div{gap:6px;min-width:0;padding:13px 15px 11px;display:grid}.settings-heading-summary>div+div{border-left:1px solid var(--border-default)}.settings-heading-summary dt{color:var(--text-secondary);font:700 9px/1 var(--font-data);letter-spacing:.06em}.settings-heading-summary dd{font:700 13px/1.25 var(--font-body);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.settings-workbench{grid-template-columns:176px minmax(0,1fr);align-items:start;gap:20px;display:grid}.settings-index{border:1px solid var(--border-default);border-radius:var(--radius-medium);background:var(--bg-paper);box-shadow:var(--shadow-panel);position:sticky;top:92px;overflow:hidden}.settings-index-heading{border-bottom:1px solid var(--border-default);background:var(--bg-raised);gap:7px;padding:17px 16px 15px;display:grid}.settings-index-heading strong{font-family:var(--font-display);font-size:18px}.settings-index nav{display:grid}.settings-index nav a{border-bottom:1px solid var(--border-subtle);min-height:52px;color:var(--text-secondary);grid-template-columns:32px 1fr;align-items:center;gap:11px;padding:8px 14px;font-size:11px;font-weight:750;transition:color .14s,background-color .14s;display:grid}.settings-index nav a:hover{color:var(--text-primary);background:var(--accent-bamboo)}@supports (color:color-mix(in lab, red, red)){.settings-index nav a:hover{background:color-mix(in srgb, var(--accent-bamboo) 7%, var(--bg-paper))}}.settings-index kbd,.settings-section-key{width:32px;height:30px;color:var(--accent-bamboo);border:1px solid var(--border-strong);border-radius:var(--radius-small);background:var(--bg-key);box-shadow:var(--shadow-key);font:800 11px/1 var(--font-data);flex:none;place-items:center;display:grid}.settings-section-key{width:36px;height:36px}.settings-index-status{border-top:3px solid var(--accent-vermilion);background:var(--accent-vermilion);gap:5px;padding:15px 16px 17px;display:grid}@supports (color:color-mix(in lab, red, red)){.settings-index-status{background:color-mix(in srgb, var(--accent-vermilion) 4%, var(--bg-raised))}}.settings-index-status span,.settings-index-status small{color:var(--text-secondary);font-size:9px;line-height:1.45}.settings-index-status strong{font:800 12px/1.4 var(--font-data)}.settings-index-status ul{border-top:1px solid var(--border-subtle);gap:6px;margin:4px 0 0;padding:8px 0 0;list-style:none;display:grid}.settings-index-status li{justify-content:space-between;align-items:center;gap:8px;display:flex}.settings-index-status li b{color:var(--text-secondary);font:750 9px/1.45 var(--font-data)}.settings-index-status li b.is-on{color:var(--accent-bamboo)}.settings-content{min-width:0}.settings-page .settings-grid{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.settings-page .settings-card,.settings-page .settings-card:nth-child(n){grid-column:auto;scroll-margin-top:96px}.settings-page .settings-card{padding:0 20px 20px}.settings-page .settings-card-title{border-bottom:1px solid var(--border-default);min-height:70px;margin:0 -20px 18px;padding:13px 20px}.settings-page .settings-card-title>span{width:36px;height:36px;color:var(--accent-bamboo);border:1px solid var(--border-strong);background:var(--bg-key);box-shadow:var(--shadow-key);font:800 11px/1 var(--font-data)}.settings-page .theme-settings{grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr)}.settings-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.settings-quick-grid .settings-card{min-height:246px}.settings-page .license-card{grid-template-columns:minmax(0,1fr) auto;align-items:end;column-gap:24px;display:grid}.settings-page .license-card .settings-card-title{grid-column:1/-1}.settings-page .license-card>p{max-width:76ch;margin-bottom:0}.settings-content>.data-management,.settings-content>.pwa-card,.settings-page .custom-manager{scroll-margin-top:96px}.settings-content>.data-management{margin-top:16px}.settings-content>.pwa-card{border-top:3px solid var(--accent-bamboo);margin-top:16px}.settings-content>.license-card{margin-top:16px}.data-tools-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.data-tool-card{min-width:0;padding:0 20px 20px;scroll-margin-top:96px}.data-tool-card>p{color:var(--text-secondary);font-size:13px;line-height:1.6}.data-tool-card .storage-total{flex-wrap:wrap;margin-top:0}.data-tool-card .cleanup-all-action,.data-tool-card .restore-preview{flex-direction:column;align-items:flex-start;gap:12px}.data-tool-card .maintenance-log li{grid-template-columns:minmax(0,1fr);gap:4px}.settings-content .pwa-card{grid-template-columns:36px minmax(0,1fr) auto;align-items:center;display:grid}.switch-row{border-bottom-color:var(--border-default);min-height:64px}.switch-row input{border-color:var(--border-strong);border-radius:4px}.switch-row input:checked{border-color:var(--accent-bamboo-fill);background:var(--accent-bamboo-fill)}.training-heading{align-items:center}.goal-seal{border:8px solid var(--bg-raised);background:radial-gradient(circle, var(--bg-paper) 0 58%, transparent 59%), conic-gradient(var(--accent-bamboo-fill) var(--goal-progress), var(--border-subtle) 0);width:136px;height:136px;box-shadow:var(--shadow-panel);border-radius:50%}.goal-seal strong{color:var(--accent-bamboo)}.daily-progress-card,.smart-plan-card,.due-review-card{border-top:1px solid var(--border-default)}.plan-steps li>span:first-child{color:var(--text-on-accent);border-radius:var(--radius-small);background:var(--accent-bamboo-fill);font-family:var(--font-data)}.root-zone-rail button.active{color:var(--text-on-accent);background:var(--accent-bamboo-fill)}.root-zone-rail button.active strong,.root-zone-rail button.active small{color:inherit}.code-drill{border-color:var(--border-default);border-top:1px solid var(--border-default);border-radius:var(--radius-large);background:var(--bg-paper);box-shadow:var(--shadow-panel)}.error-card{border-left:4px solid var(--state-error);border-radius:var(--radius-medium)}.empty-state,.training-empty,.lookup-empty{border:1px dashed var(--border-strong);border-radius:var(--radius-large);background:radial-gradient(circle at 50% 0%, var(--accent-bamboo), transparent 65%), var(--bg-paper)}@supports (color:color-mix(in lab, red, red)){.empty-state,.training-empty,.lookup-empty{background:radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--accent-bamboo) 5%, transparent), transparent 65%), var(--bg-paper)}}.modal-backdrop{background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.modal-backdrop{background:color-mix(in srgb, var(--text-primary) 55%, transparent)}}.modal-backdrop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.modal{border:1px solid var(--border-default);border-radius:var(--radius-large);box-shadow:0 32px 96px -12px var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.modal{box-shadow:0 32px 96px -12px color-mix(in srgb, var(--text-primary) 28%, transparent)}}.site-footer{border:0;border-top:1px solid var(--border-default);background:0 0;align-items:center;min-height:64px;margin-top:36px;padding:18px 84px 24px 4px;line-height:1.5}.site-footer b{color:var(--accent-bamboo);background:var(--accent-bamboo);border-radius:6px;margin-right:10px;padding:3px 8px}@supports (color:color-mix(in lab, red, red)){.site-footer b{background:color-mix(in srgb, var(--accent-bamboo) 10%, var(--bg-paper))}}.site-footer b{font:700 9px/1 var(--font-data);letter-spacing:.08em}.music-dock{color:var(--dock-text);background:var(--dock-bg);border-top:1px solid #ffffff1f}@supports (color:color-mix(in lab, red, red)){.music-dock{background:color-mix(in srgb, var(--dock-bg) 94%, transparent)}}.music-dock{-webkit-backdrop-filter:blur(20px)saturate(160%);backdrop-filter:blur(20px)saturate(160%);box-shadow:0 -16px 48px #00000038}.music-dock-bar{min-height:72px}.music-station:before{content:"♫";color:var(--accent-vermilion);font:700 22px/1 var(--font-display)}.station-pulse{display:none}.music-transport .music-play-button{border-color:var(--accent-vermilion-fill);background:var(--accent-vermilion-fill);box-shadow:0 4px 12px var(--accent-vermilion-fill)}@supports (color:color-mix(in lab, red, red)){.music-transport .music-play-button{box-shadow:0 4px 12px color-mix(in srgb, var(--accent-vermilion-fill) 35%, transparent)}}.music-ruler>button.active>span,.music-progress input,.music-volume input{accent-color:var(--accent-vermilion)}@media (max-width:1180px){.header-inner{grid-template-columns:230px minmax(520px,1fr) auto}.local-badge{display:none}.workspace-grid{grid-template-columns:minmax(0,1fr) 260px}}@media (max-width:900px){body:before{width:calc(100% - 24px)}.header-inner,.page-wrap,.site-footer{width:min(100% - 24px,1480px)}.site-header{position:sticky}.header-inner{grid-template-columns:190px minmax(0,1fr) 44px;gap:0;padding-top:0;display:grid}.brand{width:auto;min-height:70px}.brand-mark{grid-template-columns:1fr 15px;width:44px;height:44px}.brand-mark i{font-size:21px}.brand strong{font-size:15px}.main-nav{justify-content:stretch;width:auto}.nav-item{min-height:70px;padding-inline:8px}.nav-item>strong{font-size:11px}.hero-row,.subpage-heading{min-height:210px;padding-inline:18px}.workspace-grid{grid-template-columns:1fr}.workspace-grid>.side-panel{grid-area:auto/1}.side-panel{display:grid}.settings-card,.settings-card:nth-child(n){grid-column:span 6}.history-grid{grid-template-columns:1fr}.table-head{display:none}.table-row{grid-template-columns:repeat(5,minmax(0,1fr));grid-template-areas:"practice practice practice practice action""speed kps code-length accuracy duration""diagnostics diagnostics diagnostics diagnostics diagnostics";gap:12px 10px}.session-practice{grid-area:practice}.session-speed{grid-area:speed}.session-kps{grid-area:kps}.session-code-length{grid-area:code-length}.session-accuracy{grid-area:accuracy}.session-duration{grid-area:duration;display:block}.session-actions{grid-area:action;align-self:start}.session-diagnostics{grid-area:diagnostics;grid-template-columns:repeat(5,minmax(0,1fr))}}@media (max-width:620px){body{background-size:28px 28px}body:before{display:none}.header-inner,.page-wrap,.site-footer{width:100%}.panel-title:has(.history-filter){flex-direction:column;align-items:stretch;gap:12px;padding:14px 16px}.history-filter{width:100%}.history-filter button{min-height:40px}.table-row{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"practice action""speed kps""code-length accuracy""duration duration""diagnostics diagnostics";padding:14px 16px}.session-actions{grid-area:action}.session-diagnostics{grid-template-columns:repeat(2,minmax(0,1fr))}.hesitation-heatmap{padding:16px}.hesitation-heatmap.compact{padding-inline:0}.heatmap-passage{padding:14px 12px;font-size:17px}.hesitation-ranking{grid-template-columns:1fr}.site-header{position:static}.header-inner{gap:0;display:flex;position:relative}.brand{width:100%;min-height:66px;padding-inline:14px}.header-utilities{position:absolute;top:16px;right:14px}.theme-switch{justify-content:center;width:38px;padding:0}.theme-switch b{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.main-nav{border-top:1px solid var(--border-default);scrollbar-width:thin;border-inline:0}.nav-item{min-width:92px;min-height:56px}.nav-item:nth-child(n){display:flex}.hero-row{grid-template-columns:1fr;gap:24px;min-height:auto;padding:34px 16px 28px}.subpage-heading{min-height:194px;margin-bottom:18px;padding:34px 16px 28px}.hero-row:before,.subpage-heading:before{font-size:70px;top:16px;right:16px}.hero-row h1,.subpage-heading h1{max-width:86%;font-size:clamp(34px,10vw,46px)}.hero-actions{grid-template-columns:1fr 1fr;display:grid}.hero-actions .button,.hero-actions .common-entry{flex-basis:auto;width:100%;min-width:0}.hero-actions .common-entry{grid-column:1/-1}.metric-strip{box-shadow:0 5px 0 var(--accent-bamboo);border-inline:0}@supports (color:color-mix(in lab, red, red)){.metric-strip{box-shadow:0 5px 0 color-mix(in srgb, var(--accent-bamboo) 18%, var(--border-default))}}.metric{min-height:82px}.workspace-grid,.challenge-layout,.history-grid,.training-plan,.settings-grid{gap:12px}.workspace-grid{margin-top:18px}.typing-card,.side-panel,.challenge-card,.history-panel,.settings-card,.summary-card,.trend-panel,.daily-progress-card,.smart-plan-card,.due-review-card,.hesitation-queue-card,.management-card,.pwa-card,.code-drill{box-shadow:none;border-inline:0;border-radius:0}.subpage-heading.with-action{flex-direction:column;align-items:flex-start}.heading-actions{grid-template-columns:minmax(0,1fr) auto;width:100%;display:grid}.challenge-layout{grid-template-columns:1fr}.challenge-card{min-height:430px}.lookup-page .lookup-heading,.lookup-page .lookup-search,.lookup-page .keyboard-visual,.lookup-page .lookup-empty,.lookup-page .lookup-results{width:calc(100% - 28px)}.summary-grid,.settings-grid{grid-template-columns:1fr}.settings-card,.settings-card:nth-child(n){grid-column:auto}.goal-seal{width:112px;height:112px}.daily-progress-card .training-card-header,.smart-plan-card .training-card-header,.due-review-card .training-card-header,.hesitation-queue-card .training-card-header{grid-template-columns:1fr;gap:16px;min-height:auto;padding-bottom:20px}.training-card-stat{border-top:1px solid var(--border-subtle);border-left:0;place-content:center start;min-width:0;padding:12px 0 0}.site-footer{margin-top:20px;padding:14px 72px 14px 16px}}.site-header{animation:header-drop-in .42s var(--ease-out) both}.hero-row>div:first-child>*,.subpage-heading>*{animation:copy-rise-in .48s var(--ease-out) both}.hero-row>div:first-child>:nth-child(2),.subpage-heading>:nth-child(2){animation-delay:60ms}.hero-row>div:first-child>:nth-child(3),.subpage-heading>:nth-child(3){animation-delay:.11s}.hero-actions{animation:copy-rise-in .48s .15s var(--ease-out) both}.hero-row:before,.subpage-heading:before{transform-origin:100% 0;animation:watermark-settle-in .72s 80ms var(--ease-out) both}.typing-card{transition:border-color .22s ease, box-shadow .22s ease, transform .22s var(--ease-out)}.typing-card:has(.typing-input:focus){border-color:var(--accent-bamboo)}@supports (color:color-mix(in lab, red, red)){.typing-card:has(.typing-input:focus){border-color:color-mix(in srgb, var(--accent-bamboo) 72%, var(--border-strong))}}.typing-card:has(.typing-input:focus){box-shadow:0 0 0 4px var(--accent-bamboo), var(--shadow-panel)}@supports (color:color-mix(in lab, red, red)){.typing-card:has(.typing-input:focus){box-shadow:0 0 0 4px color-mix(in srgb, var(--accent-bamboo) 9%, transparent), var(--shadow-panel)}}.typing-card:has(.typing-input:focus){transform:translateY(-2px)}@keyframes header-drop-in{0%{opacity:0;transform:translateY(-10px)}}@keyframes copy-rise-in{0%{opacity:0;transform:translateY(10px)}}@keyframes watermark-settle-in{0%{opacity:0;transform:translate(14px)rotate(2deg)scale(.96)}}.summary-distributions{margin:2.5rem 0}.summary-section-heading{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.25rem;display:flex}.summary-section-heading h2{font:700 1.5rem var(--font-display);margin:0}.summary-section-heading p{color:var(--profile-muted);margin:0;font-size:.8125rem}.key-analysis-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}.key-summary-page .usage-card{border:1px solid var(--profile-line);background:var(--profile-surface);border-radius:.75rem;min-width:0;padding:1.5rem}.usage-card h3{font:600 1rem var(--font-body);margin:0 0 1.5rem}.key-analysis-layout>:last-child{grid-column:1/-1}.distribution-list{gap:1rem;margin:0;padding:0;list-style:none;display:grid}.distribution-list li{grid-template-columns:4rem minmax(0,1fr) 2.75rem 5.5rem;align-items:center;gap:.75rem;font-size:.8125rem;display:grid}.distribution-list strong{text-align:right;font:600 .8125rem var(--font-data)}.distribution-list small{text-align:right;color:var(--profile-muted);font:400 .75rem var(--font-data);overflow-wrap:anywhere}.distribution-track{background:var(--profile-wash);border-radius:.25rem;height:.5rem;overflow:hidden}.distribution-track i{height:100%;width:var(--usage-rate);background:var(--profile-accent);border-radius:inherit;display:block}.key-analysis-layout>:last-child .distribution-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:3rem}.hand-balance-values{justify-content:space-between;margin:2rem 0 1.25rem;display:flex}.hand-balance-values>div{flex-direction:column;gap:.75rem;display:flex}.hand-balance-values>div:last-child{text-align:right}.hand-balance-values span{color:var(--profile-muted);font-size:.8125rem}.hand-balance-values strong{font:500 2.5rem var(--font-data)}.hand-balance-values small{margin-left:.25rem;font-size:1rem}.hand-balance-track{background:var(--profile-wash);border-radius:.375rem;height:.75rem;overflow:hidden}.hand-balance-track i{width:var(--usage-rate);background:var(--profile-accent);height:100%;display:block}.chart-note{max-width:28rem;color:var(--profile-muted);margin:1.5rem 0 0;font-size:.8125rem;line-height:1.8}@media (max-width:768px){.summary-section-heading{flex-direction:column;gap:.5rem}.key-analysis-layout,.key-analysis-layout>:last-child .distribution-list{grid-template-columns:minmax(0,1fr)}}@media (max-width:520px){.key-summary-page .usage-card{padding:1rem}.distribution-list li{grid-template-columns:3.5rem minmax(0,1fr) 2.5rem;gap:.5rem}.distribution-list small{grid-column:2/-1;margin-top:-.25rem}}@media (max-width:900px){.settings-heading{grid-template-columns:1fr;align-items:start;gap:22px}.settings-heading-summary{width:100%}.settings-workbench{grid-template-columns:1fr}.settings-index{position:static}.settings-index-heading,.settings-index-status{display:none}.settings-index nav{grid-template-columns:repeat(8,minmax(96px,1fr));overflow-x:auto}.settings-index nav a{border-right:1px solid var(--border-subtle);border-bottom:0;grid-template-columns:28px 1fr;min-height:56px}.settings-index kbd{width:28px;height:28px}.settings-card.theme-settings-card{grid-column:1/-1}.settings-card:has(.theme-settings){grid-column:1/-1}.settings-page .theme-settings{grid-template-columns:1fr}.theme-preview{position:static}}@media (max-width:620px){.settings-heading{display:flex}.settings-heading-summary>div{padding-inline:10px}.settings-workbench{gap:12px}.settings-index{border-radius:var(--radius-small);margin-inline:14px}.settings-page .settings-grid{gap:12px}.settings-quick-grid,.data-tools-grid{grid-template-columns:1fr;gap:12px}.data-tool-card{padding-inline:16px}.settings-quick-grid .settings-card{min-height:0}.settings-page .settings-card{padding-inline:16px}.settings-page .settings-card-title{margin-inline:-16px;padding-inline:16px}.settings-page .license-card{display:block}.settings-page .license-card>a{margin-top:12px;display:inline-block}.settings-content .pwa-card{grid-template-columns:36px minmax(0,1fr)}.settings-content .pwa-card>.button{grid-column:1/-1}.theme-settings-heading{flex-direction:column;align-items:flex-start;gap:6px}.theme-settings-heading p{text-align:left}.theme-preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.custom-theme-controls{grid-template-columns:1fr}.theme-reset-button{grid-column:auto}}@media (max-width:380px){.theme-preset-grid,.due-review-actions{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.theme-preset-option{transition:none}}#music-header-slot{align-self:center;width:44px;min-width:44px;height:44px}#music-header-slot .music-dock-peek{width:44px;min-width:44px;height:44px;min-height:44px;padding:0}@media (max-width:780px){#music-header-slot{width:0;min-width:0;height:0}.music-dock-peek{z-index:50;position:fixed;bottom:12px;right:12px}}@media (min-width:621px) and (max-width:900px){.header-inner{grid-template-columns:190px minmax(0,1fr) 100px}}@media (max-width:620px){.header-utilities{gap:8px;top:11px}.brand{padding-right:108px}.due-review-list,.hesitation-queue-list,.due-review-list li,.hesitation-queue-list li{grid-template-columns:1fr}.due-review-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.due-review-actions .button,.hesitation-queue-list .button{width:100%}.hesitation-practice-modal{max-height:calc(100dvh - 96px);padding:14px}.hesitation-practice-meta,.hesitation-practice-ready,.hesitation-practice-done,.hesitation-save-error{flex-direction:column;align-items:stretch}.hesitation-practice-meta>span{text-align:left}.hesitation-practice-target{padding:14px 10px;font-size:23px}.hesitation-round-result{grid-template-columns:repeat(2,minmax(0,1fr))}.hesitation-round-result .button{grid-column:1/-1}.hesitation-practice-ready .button,.hesitation-practice-done .button,.hesitation-save-error .button{width:100%}.hesitation-segment-actions{grid-template-columns:1fr;display:grid}.hesitation-segment-actions button{width:100%}}@media (prefers-reduced-motion:reduce){.heatmap-segment-button,.hesitation-practice-modal *,.hesitation-practice-modal :before,.hesitation-practice-modal :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.training-tabs button,.advanced-tabs button{transition:color .16s ease, border-color .16s ease, background-color .16s ease, transform .18s var(--ease-out)}@media (hover:hover){.training-tabs button:hover:not(.active),.advanced-tabs button:hover:not(.active){transform:translateY(-1px)}}.training-tabs button.active,.advanced-tabs button.active{animation:tab-settle-in .22s var(--ease-out) both}.goal-row>i{position:relative}.goal-row>i b{transform-origin:0;animation:goal-fill-in .52s var(--ease-out) both}.goal-row[data-complete=true]>i:after{content:"";background:linear-gradient(90deg, transparent, var(--text-on-accent), transparent);width:32%;position:absolute;inset:0 auto 0 -32%}@supports (color:color-mix(in lab, red, red)){.goal-row[data-complete=true]>i:after{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--text-on-accent) 55%, transparent), transparent)}}.goal-row[data-complete=true]>i:after{animation:goal-complete-sheen .46s .18s var(--ease-out) both}.advanced-rhythm-curve i{transform-origin:bottom;animation:rhythm-bar-rise .42s calc(70ms + var(--rhythm-index) * 24ms) var(--ease-out) both}@keyframes tab-settle-in{0%{transform:translateY(2px)}}@keyframes goal-fill-in{0%{opacity:.55;transform:scaleX(0)}}@keyframes goal-complete-sheen{0%{transform:translate(0)}to{transform:translate(412.5%)}}@keyframes rhythm-bar-rise{0%{opacity:.2;transform:scaleY(.08)}}@media (prefers-reduced-motion:reduce){.training-tabs button,.advanced-tabs button,.goal-row>i b,.goal-row[data-complete=true]>i:after,.advanced-rhythm-curve i{transition:none!important;animation:none!important}}.pet-companion{left:max(16px, env(safe-area-inset-left));bottom:max(14px, env(safe-area-inset-bottom));z-index:110;color:var(--text-primary);position:fixed}.pet-touch{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;border:0;border-radius:22px;width:88px;height:88px;padding:0;display:block;position:relative}.pet-touch:focus-visible,.pet-choices button:focus-visible{outline:3px solid var(--accent-vermilion);outline-offset:3px}.pet-art{width:100%;height:100%;display:block;overflow:visible}.pet-bubble{border:1px solid var(--border-subtle);background:var(--bg-paper);width:max-content;max-width:180px;color:var(--text-primary);border-radius:14px 14px 14px 3px;padding:9px 12px;font-size:13px;position:absolute;bottom:calc(100% + 8px);left:0;box-shadow:0 4px 16px #00000012}.pet-choices{gap:10px;margin:12px 0 20px;display:flex}.pet-choices button{border:1px solid var(--border-subtle);min-width:0;color:inherit;cursor:pointer;background:0 0;border-radius:14px;flex:1;padding:8px}.pet-choices button[aria-pressed=true]{border:2px solid var(--accent-vermilion);background:var(--accent-vermilion)}@supports (color:color-mix(in lab, red, red)){.pet-choices button[aria-pressed=true]{background:color-mix(in srgb, var(--accent-vermilion) 8%, transparent)}}.pet-choices button[aria-pressed=true]{padding:7px}.pet-choices .pet-art{width:64px;max-width:100%;height:64px;margin:0 auto 5px}.pet-body,.pet-head,.pet-eyes{transform-box:fill-box;transform-origin:bottom}.pet-idle .pet-body{animation:5s ease-in-out infinite pet-breathe}.pet-idle .pet-eyes{animation:7s infinite pet-blink}.pet-reply .pet-head{animation:.65s ease-in-out 3 pet-nuzzle}.pet-celebrate .pet-body{animation:.65s ease-in-out 4 pet-hop}@keyframes pet-breathe{50%{transform:scaleY(1.025)}}@keyframes pet-blink{0%,44%,48%,to{transform:scaleY(1)}46%{transform:scaleY(.15)}}@keyframes pet-nuzzle{50%{transform:rotate(-9deg)}}@keyframes pet-hop{50%{transform:translateY(-9px)rotate(3deg)}}@media (max-width:620px){.pet-touch{width:60px;height:60px}.pet-companion{left:max(10px, env(safe-area-inset-left));bottom:max(10px, env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){.pet-companion *{animation:none!important}}.pet-companion.is-dragging .pet-touch{cursor:grabbing}.pet-companion.is-dragging .pet-art *{animation:none}.pet-companion[data-bubble-side=right] .pet-bubble{left:auto;right:0}.pet-companion[data-bubble-below=true] .pet-bubble{top:calc(100% + 8px);bottom:auto}.pet-bubble{pointer-events:none}.first-use-backdrop{z-index:110;background:var(--text-primary);place-items:center;padding:24px;display:grid;position:fixed;inset:0}@supports (color:color-mix(in lab, red, red)){.first-use-backdrop{background:color-mix(in srgb, var(--text-primary) 66%, transparent)}}.first-use-backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:.18s ease-out both backdrop-in}.first-use-guide{border:1px solid var(--border-strong);border-top:4px solid var(--accent-vermilion);border-radius:var(--radius-medium);background:var(--bg-paper);width:min(620px,100%);max-height:min(760px,100dvh - 48px);box-shadow:0 30px 100px var(--text-primary);overflow-y:auto}@supports (color:color-mix(in lab, red, red)){.first-use-guide{box-shadow:0 30px 100px color-mix(in srgb, var(--text-primary) 24%, transparent)}}.first-use-guide{animation:modal-in .24s var(--ease-out) both}.first-use-header{border-bottom:1px solid var(--border-default);background:var(--bg-raised);justify-content:space-between;gap:20px;padding:24px 28px 20px;display:flex}.first-use-header h2{max-width:440px;font-family:var(--font-display);margin:8px 0 0;font-size:clamp(24px,4vw,34px);line-height:1.1}.first-use-body{padding:26px 28px 28px}.first-use-lead{max-width:540px;color:var(--text-secondary);margin:0 0 22px;font-size:15px;line-height:1.8}.first-use-steps{gap:10px;margin:0;padding:0;list-style:none;display:grid}.first-use-steps li{border:1px solid var(--border-default);background:var(--bg-raised);align-items:center;gap:14px;min-height:62px;padding:10px 12px;display:flex}.first-use-steps li>span{width:34px;height:34px;color:var(--text-on-accent);background:var(--accent-vermilion-fill);font:800 11px/1 var(--font-data);border-radius:50%;flex:none;place-items:center;display:grid}.first-use-steps li.done{border-color:var(--accent-bamboo)}.first-use-steps li.done>span{background:var(--accent-bamboo-fill)}.first-use-steps div{gap:4px;display:grid}.first-use-steps strong{font-size:14px}.first-use-steps small,.first-use-note,.first-use-progress{color:var(--text-secondary);font-size:11px;line-height:1.6}.first-use-progress{color:var(--accent-bamboo);margin:14px 0 0;font-weight:700}.first-use-actions{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.first-use-note{margin:18px 0 0}.first-use-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:18px;display:grid}.first-use-summary>div{border-top:3px solid var(--accent-bamboo);background:var(--bg-raised);padding:14px}.first-use-summary span,.first-use-summary small{color:var(--text-secondary);font-size:10px;display:block}.first-use-summary strong{color:var(--accent-bamboo);font:800 24px/1 var(--font-data);margin:8px 4px 0 0;display:inline-block}.first-use-recommendation{border-left:4px solid var(--accent-vermilion);background:var(--bg-raised);padding:18px}.first-use-recommendation h3{font-family:var(--font-display);margin:8px 0;font-size:23px}.first-use-recommendation p{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.7}@media (max-width:620px){.first-use-backdrop{align-items:end;padding:12px}.first-use-guide{max-height:calc(100dvh - 24px)}.first-use-header,.first-use-body{padding-left:18px;padding-right:18px}.first-use-summary{gap:5px}.first-use-summary>div{padding:10px 8px}.first-use-summary strong{font-size:18px}.first-use-actions>button{flex:100%}}@media (prefers-reduced-motion:reduce){.first-use-backdrop,.first-use-guide{animation:none}}.first-use-entry{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;font-size:13px;display:flex}.first-use-body button{min-height:44px}.history-page{max-width:1280px;margin-inline:auto}.history-heading{justify-content:space-between;align-items:center;gap:24px;padding:24px 0 36px;display:flex}.history-heading .eyebrow{color:var(--accent-bamboo);letter-spacing:.12em;font-size:11px}.history-heading h1{font:600 clamp(28px, 3vw, 42px)/1.3 var(--font-display);letter-spacing:-.04em;margin:16px 0 12px}.history-heading p{color:var(--text-secondary);margin:0;font-size:14px}.history-heading .button{gap:24px;min-height:46px}.history-overview-heading{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.history-overview-heading h2{font:650 16px var(--font-body);margin:0}.history-overview-heading>span{color:var(--text-secondary);font-size:12px}.history-page .summary-grid{border:1px solid var(--border-default);background:var(--bg-paper);border-radius:12px;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;overflow:hidden}.history-page .summary-card{border:0;border-right:1px solid var(--border-subtle);min-height:0;box-shadow:none;background:0 0;border-radius:0;padding:16px 24px;transform:none}.history-page .summary-card:last-child{border-right:0}.history-page .summary-card:before{display:none}.history-page .summary-card>span{font-size:13px}.history-page .summary-card strong{letter-spacing:-.04em;margin:10px 0 8px;font-size:28px}.history-page .summary-card.accent{color:var(--accent-bamboo);background:var(--accent-bamboo)}@supports (color:color-mix(in lab, red, red)){.history-page .summary-card.accent{background:color-mix(in srgb, var(--accent-bamboo) 5%, var(--bg-paper))}}.history-sections{border-bottom:1px solid var(--border-default);gap:28px;margin:20px 0;display:flex;overflow-x:auto}.history-sections button{min-height:52px;color:var(--text-secondary);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;flex-shrink:0;align-items:center;gap:8px;padding:0 0 14px;font-size:14px;font-weight:600;display:flex}.history-sections button[aria-pressed=true]{color:var(--accent-bamboo);border-bottom-color:var(--accent-bamboo)}.history-sections button>span{background:var(--bg-key);font:11px var(--font-data);border-radius:5px;padding:3px 7px}.history-page .history-grid{grid-template-columns:minmax(0,1fr) 260px;align-items:start;gap:24px;display:grid}.history-page .history-panel{border:1px solid var(--border-default);background:var(--bg-paper);min-width:0;box-shadow:none;border-radius:12px}.history-page .panel-title{gap:16px;min-height:84px;padding:20px 24px}.history-page .panel-title h2{font:650 17px var(--font-body)}.history-panel-note{color:var(--text-secondary);margin:6px 0 0;font-size:12px}.history-page .segmented.small.history-filter{grid-template-columns:repeat(auto-fit,minmax(44px,1fr));gap:4px}.history-page .history-filter button{min-height:44px;padding-inline:10px}.history-page .table-head{display:none}.history-page .table-row{grid-template-columns:repeat(5,minmax(0,1fr));grid-template-areas:"practice practice practice action action""speed kps code-length accuracy duration";gap:18px 12px;padding:24px;font-size:15px}.history-page .session-practice{grid-area:practice}.history-page .session-practice strong{font-size:15px}.history-page .session-practice small{margin-top:4px;font-size:11px}.history-page .session-actions{flex-wrap:wrap;grid-area:action;justify-content:end;display:flex}.history-page .session-actions button{width:auto;min-height:36px}.history-page .session-speed{grid-area:speed}.history-page .session-kps{grid-area:kps}.history-page .session-code-length{grid-area:code-length}.history-page .session-accuracy{grid-area:accuracy}.history-page .session-duration{grid-area:duration}.history-page .table-row>span:not(.session-practice){font-family:var(--font-data);flex-wrap:wrap;align-content:start;gap:5px;display:flex}.history-page .table-row>span:not(.session-practice):before{width:100%;color:var(--text-secondary);font:11px var(--font-body)}.history-page .session-speed:before{content:"速度"}.history-page .session-kps:before{content:"击键"}.history-page .session-code-length:before{content:"码长"}.history-page .session-accuracy:before{content:"字准"}.history-page .session-duration:before{content:"用时"}.session-diagnostic-disclosure{grid-column:1/-1}.history-page .session-diagnostics{grid-template-columns:repeat(3,minmax(0,1fr));padding:16px 0}.history-page .session-recommendation-evidence{padding-top:12px}.history-page .session-recommendation-evidence summary,.session-diagnostic-disclosure summary{color:var(--text-secondary);cursor:pointer;min-height:28px;font-size:12px}.history-page .session-recommendation-evidence li{font-size:12px}.history-empty{text-align:center;padding:60px 24px}.history-key-mark{justify-content:center;gap:8px;margin-bottom:28px;display:flex}.history-key-mark span{border:1px solid var(--border-default);width:52px;height:52px;color:var(--accent-bamboo);background:var(--bg-raised);font:24px var(--font-display);border-bottom-width:4px;border-radius:9px;place-items:center;display:grid}.history-key-mark span:last-child{width:72px;transform:translateY(8px)}.history-empty h3{font:600 23px var(--font-display);margin:0 0 12px}.history-empty p{max-width:340px;color:var(--text-secondary);margin:0 auto 24px;font-size:13px;line-height:1.9}.history-page .error-cloud>.empty-state{text-align:left;border:0;padding:24px 0;font-size:13px;line-height:1.9;display:block}.history-page .completion-stat{border:0;border-top:1px solid var(--border-subtle);background:0 0;margin:16px 20px 24px;padding:20px 0 0}.history-page .completion-stat span{font-size:12px}.history-page .completion-stat strong{font:24px var(--font-data);margin:12px 0}.history-page .trend-panel{box-shadow:none;border-radius:12px;margin:0}.history-page .trend-chart{max-width:900px;margin:auto}.history-page .weekly-report{box-shadow:none;border-radius:12px;margin:0}.history-footer{border-top:1px solid var(--border-default);color:var(--text-secondary);justify-content:space-between;align-items:center;gap:20px;margin-top:32px;padding-top:20px;font-size:12px;display:flex}.history-footer[hidden]{display:none}.history-footer a{color:var(--accent-bamboo);text-underline-offset:4px;text-decoration:underline}.history-clear{min-height:44px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;padding:8px 0;font-size:12px}.history-clear:hover{color:var(--state-error)}.history-page button:focus-visible,.history-page a:focus-visible,.history-page summary:focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px}@media (max-width:1100px){.history-page .history-grid{grid-template-columns:minmax(0,1fr)}.history-page .history-sidebar{grid-template-columns:1fr 1fr;display:grid}.history-sidebar .panel-title{grid-column:1/-1}.history-page .summary-card{padding:16px 20px}}@media (max-width:620px){.history-heading{flex-direction:column;align-items:start;padding:8px 0 28px}.history-page .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.history-page .summary-card{padding:14px 16px}.history-page .summary-card:nth-child(2){border-right:0}.history-page .summary-card:nth-child(-n+2){border-bottom:1px solid var(--border-subtle)}.history-sections{justify-content:space-between;gap:8px;margin-top:20px}.history-sections button{font-size:13px}.history-page .panel-title{padding:20px 16px}.history-page .table-row{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"practice practice""speed kps""code-length accuracy""duration duration""action action";padding:20px 16px}.history-page .session-actions{justify-content:start}.history-page .session-actions button,.history-page .history-filter button{min-height:44px}.history-page .history-sidebar{display:block}.history-empty{padding:40px 20px}.history-empty h3{font-size:21px}.history-footer{flex-direction:column;align-items:start;gap:0}.history-page .trend-panel{padding:16px}.history-page .trend-summary{flex-wrap:wrap;gap:12px;padding-block:16px}.history-page{width:calc(100% - 32px);margin-inline:auto}.history-heading h1{font-size:clamp(23px,6.7vw,28px)}.history-overview-heading>span{font-size:11px}.history-page .history-filter button{padding-inline:6px}.history-page .summary-card strong{font-size:24px}}.history-page .history-filter button{color:var(--text-secondary);background:var(--bg-raised)}.history-page .history-filter button.active{color:var(--text-on-accent);background:var(--accent-bamboo-fill)}:root:where([data-skin=focus]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-body:"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-display:"Songti SC", "STSong", "Noto Serif CJK SC", var(--font-body);--font-reading:"Songti SC", "STSong", "Kaiti SC", serif;--font-data:"SFMono-Regular", "JetBrains Mono", "Menlo", "Cascadia Mono", monospace;--radius-small:10px;--radius-medium:16px;--radius-large:22px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-press:cubic-bezier(.2, 0, 0, 1);--shadow-panel:0 12px 30px -10px #18231c0d, 0 2px 6px #18231c05;--shadow-key:0 1px 0 var(--border-default);--dock-bg:#18231c;--dock-text:#f7f6f2;--heat-smooth:var(--lightningcss-light,#edf2e7)var(--lightningcss-dark,#29342b);--heat-mild:var(--lightningcss-light,#e7c87a)var(--lightningcss-dark,#786a3f);--heat-clear:var(--lightningcss-light,#d77b45)var(--lightningcss-dark,#9b5335);--heat-severe:var(--lightningcss-light,#a9362c)var(--lightningcss-dark,#b64237);--heat-severe-text:#fff8ee;--state-success:var(--lightningcss-light,#3b6016)var(--lightningcss-dark,#b5da83);--state-success-fill:var(--lightningcss-light,#3b6016)var(--lightningcss-dark,#406024);--state-error:var(--lightningcss-light,#b23742)var(--lightningcss-dark,#ff9ca6);--state-error-fill:var(--lightningcss-light,#b23742)var(--lightningcss-dark,#8d2839);--bg-canvas:#f7f6f2;--bg-paper:#fff;--bg-raised:#f1f0ea;--bg-key:#e6e5dc;--text-primary:#18231c;--text-secondary:#5a6459;--border-default:#dcdbd2;--border-subtle:#e9e8e0;--border-strong:#a5a89b;--accent-bamboo:#2f5212;--accent-bamboo-fill:#d4e8b4;--text-on-accent:#18231c;--progress-fill:#d4e8b4;--focus-ring:#4c7722;--accent-vermilion:var(--accent-bamboo);--accent-vermilion-fill:var(--accent-bamboo-fill);--accent-vermilion-dark:var(--accent-bamboo)}:root:where([data-skin=focus])[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-canvas:#111412;--bg-paper:#191d1a;--bg-raised:#202622;--bg-key:#2a322c;--text-primary:#eef2ec;--text-secondary:#a8b4a6;--border-default:#333d35;--border-subtle:#262e28;--border-strong:#627264;--accent-bamboo:#b8e08d;--accent-bamboo-fill:#b8e08d;--text-on-accent:#18231c;--progress-fill:#5a7d3a;--focus-ring:#b8e08d;--shadow-panel:0 20px 50px -12px #0000006b;--accent-vermilion:var(--accent-bamboo);--accent-vermilion-fill:var(--accent-bamboo-fill);--accent-vermilion-dark:var(--accent-bamboo)}:root:where([data-skin=focus])[data-theme=bamboo]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-canvas:#f2efe4;--bg-paper:#fffcf4;--bg-raised:#f7f4e9;--bg-key:#e9ecda;--text-primary:#26301f;--text-secondary:#5e6953;--border-default:#d6dbc5;--border-subtle:#e6e8d8;--border-strong:#a8b292;--accent-bamboo:#3d5d28;--accent-bamboo-fill:#d6e6a7;--text-on-accent:#26301f;--progress-fill:#c6d990;--focus-ring:#728c4d;--accent-vermilion:var(--accent-bamboo);--accent-vermilion-fill:var(--accent-bamboo-fill);--accent-vermilion-dark:var(--accent-bamboo)}:root:where([data-skin=focus])[data-theme=qingdai]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-canvas:#eef3f4;--bg-paper:#fff;--bg-raised:#f4f8f9;--bg-key:#e3eef0;--text-primary:#1e3239;--text-secondary:#566c74;--border-default:#d1dfe3;--border-subtle:#e1ebee;--border-strong:#91abb3;--accent-bamboo:#245b70;--accent-bamboo-fill:#b5dce7;--text-on-accent:#1e3239;--progress-fill:#a4cfdc;--focus-ring:#427e92;--accent-vermilion:var(--accent-bamboo);--accent-vermilion-fill:var(--accent-bamboo-fill);--accent-vermilion-dark:var(--accent-bamboo)}@media (prefers-color-scheme:dark){:root:where([data-skin=focus])[data-theme=system]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-canvas:#111412;--bg-paper:#191d1a;--bg-raised:#202622;--bg-key:#2a322c;--text-primary:#eef2ec;--text-secondary:#a8b4a6;--border-default:#333d35;--border-subtle:#262e28;--border-strong:#627264;--accent-bamboo:#b8e08d;--accent-bamboo-fill:#b8e08d;--text-on-accent:#18231c;--progress-fill:#5a7d3a;--focus-ring:#b8e08d;--shadow-panel:0 20px 50px -12px #0000006b;--accent-vermilion:var(--accent-bamboo);--accent-vermilion-fill:var(--accent-bamboo-fill);--accent-vermilion-dark:var(--accent-bamboo)}}:root:where([data-skin=focus])[data-theme=custom]{color-scheme:var(--custom-color-scheme,light);--text-on-accent:var(--custom-accent-text,#fff);--bg-canvas:var(--custom-canvas,#f2ebdd);--bg-paper:var(--custom-paper,#fbf7ec);--bg-raised:var(--custom-raised,#f3eedf);--bg-key:var(--custom-key,#e5dcc8);--text-primary:var(--custom-text,#242c27);--text-secondary:var(--custom-text-secondary,#5e685e);--border-default:var(--custom-border,#cbbfa8);--border-subtle:var(--custom-border,#cbbfa8)}@supports (color:color-mix(in lab, red, red)){:root:where([data-skin=focus])[data-theme=custom]{--border-subtle:color-mix(in srgb, var(--custom-border,#cbbfa8) 62%, var(--custom-paper,#fbf7ec))}}:root:where([data-skin=focus])[data-theme=custom]{--border-strong:var(--custom-border-strong,#968b75);--accent-vermilion:var(--custom-accent,#b3432b);--accent-vermilion-fill:var(--custom-accent,#b3432b);--accent-vermilion-dark:var(--custom-accent,#b3432b)}@supports (color:color-mix(in lab, red, red)){:root:where([data-skin=focus])[data-theme=custom]{--accent-vermilion-dark:color-mix(in srgb, var(--custom-accent,#b3432b) 78%, var(--custom-text,#242c27))}}:root:where([data-skin=focus])[data-theme=custom]{--accent-bamboo:var(--custom-accent,#b3432b);--accent-bamboo-fill:var(--custom-accent,#b3432b);--progress-fill:var(--custom-accent,#b3432b)}@supports (color:color-mix(in lab, red, red)){:root:where([data-skin=focus])[data-theme=custom]{--progress-fill:color-mix(in srgb, var(--custom-accent,#b3432b) 28%, var(--custom-paper,#fbf7ec))}}:root:where([data-skin=focus])[data-theme=custom]{--shadow-key:0 2px 0 var(--custom-border-strong,#968b75);--shadow-panel:0 14px 36px var(--custom-text,#242c27)}@supports (color:color-mix(in lab, red, red)){:root:where([data-skin=focus])[data-theme=custom]{--shadow-panel:0 14px 36px color-mix(in srgb, var(--custom-text,#242c27) 10%, transparent)}}:root:where([data-skin=focus])[data-theme=custom]{--unused-grid-line:var(--custom-accent,#b3432b)}@supports (color:color-mix(in lab, red, red)){:root:where([data-skin=focus])[data-theme=custom]{--unused-grid-line:color-mix(in srgb, var(--custom-accent,#b3432b) 8%, transparent)}}:where(html[data-skin=focus]) .season-goal-option[aria-pressed=true]>span{color:var(--text-primary)}html:where([data-skin=focus]){scroll-padding-top:24px}:where(html[data-skin=focus]) body{background:var(--bg-canvas);font-size:14px}:where(html[data-skin=focus]) body:before{display:none}:where(html[data-skin=focus]) ::selection{color:var(--text-on-accent);background:var(--accent-bamboo-fill)}:where(html[data-skin=focus]) .app-shell{padding-left:184px;display:block}:where(html[data-skin=focus]) .site-header{border:0;border-right:1px solid var(--border-default);background:var(--bg-paper);width:184px;animation:none;position:fixed;inset:0 auto 0 0}:where(html[data-skin=focus]) .header-inner{flex-direction:column;gap:30px;width:100%;height:100%;margin:0;padding:30px 16px 20px;display:flex}:where(html[data-skin=focus]) .brand{border:0;gap:10px;min-height:44px;padding:0}:where(html[data-skin=focus]) .brand-mark{width:36px;height:36px;color:var(--bg-paper);background:var(--text-primary);box-shadow:none;border-radius:9px;grid-template-columns:1fr;display:grid;transform:none}:where(html[data-skin=focus]) .brand-mark i{font:600 22px/1 var(--font-body)}:where(html[data-skin=focus]) .brand-mark b{display:none}:where(html[data-skin=focus]) .brand strong{font:650 15px/1.4 var(--font-body);letter-spacing:0}:where(html[data-skin=focus]) .brand small{font:10px/1.4 var(--font-data);letter-spacing:.05em}:where(html[data-skin=focus]) .main-nav{border:0;flex-direction:column;align-items:stretch;gap:7px;width:100%;display:flex;overflow:visible}:where(html[data-skin=focus]) .nav-item{min-height:46px;color:var(--text-secondary);background:0 0;border:0;border-radius:9px;justify-content:start;align-items:center;gap:10px;padding:0 12px;display:flex}:where(html[data-skin=focus]) .nav-item:before,:where(html[data-skin=focus]) .nav-item:after,:where(html[data-skin=focus]) .nav-item>span{display:none}:where(html[data-skin=focus]) .nav-item strong{font-size:13px;font-weight:550}:where(html[data-skin=focus]) .nav-item:hover{color:var(--text-primary);background:var(--bg-raised)}:where(html[data-skin=focus]) .nav-item.active{color:var(--text-on-accent);background:var(--accent-bamboo-fill);box-shadow:none}:where(html[data-skin=focus]) .header-utilities{border:0;flex-wrap:wrap;justify-content:start;align-items:center;gap:10px;margin-top:auto;padding:0;display:flex}:where(html[data-skin=focus]) .theme-switch{border:1px solid var(--border-default);background:var(--bg-paper);border-radius:9px;padding:0 12px}:where(html[data-skin=focus]) .local-badge{width:100%;margin-top:10px;font-size:10px}:where(html[data-skin=focus]) .local-badge b{display:none}:where(html[data-skin=focus]) #music-header-slot{width:44px}:where(html[data-skin=focus]) #music-header-slot .music-dock-peek{box-shadow:none;color:var(--text-secondary);border:1px solid var(--border-default);background:var(--bg-paper);position:static;transform:none}:where(html[data-skin=focus]) .page-wrap,:where(html[data-skin=focus]) .site-footer{width:min(1280px,100%);margin:0 auto}:where(html[data-skin=focus]) .page-wrap{padding:30px clamp(24px,4vw,64px) 20px}:where(html[data-skin=focus]) .site-footer{color:var(--text-secondary);background:0 0;border:0;flex-wrap:wrap;gap:12px;padding:24px clamp(24px,4vw,64px) 32px;font-size:11px;display:flex}:where(html[data-skin=focus]) .site-footer b{font-size:10px}:where(html[data-skin=focus]) .eyebrow{color:var(--text-secondary);letter-spacing:.08em;font-size:11px}:where(html[data-skin=focus]) .subpage{padding-top:0}:where(html[data-skin=focus]) .subpage-heading,:where(html[data-skin=focus]) .history-heading{background:0 0;border:0;min-height:0;margin:0;padding:0 0 28px}:where(html[data-skin=focus]) .subpage-heading:before,:where(html[data-skin=focus]) .subpage-heading:after{display:none}:where(html[data-skin=focus]) .subpage-heading h1,:where(html[data-skin=focus]) .history-heading h1{font:650 clamp(24px, 2.7vw, 32px)/1.4 var(--font-body);letter-spacing:-.02em;margin:6px 0 0}:where(html[data-skin=focus]) .training-heading{grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}:where(html[data-skin=focus]) .training-heading .goal-seal{width:100px;height:100px}:where(html[data-skin=focus]) .subpage-heading p,:where(html[data-skin=focus]) .history-heading p{margin:10px 0 0;font-size:13px;line-height:1.75}:where(html[data-skin=focus]) .button{border-radius:var(--radius-small);box-shadow:none;font-size:13px}:where(html[data-skin=focus]) .button.primary{color:var(--text-on-accent);border-color:var(--accent-bamboo-fill);background:var(--accent-bamboo-fill);box-shadow:none}:where(html[data-skin=focus]) .button.primary:hover{color:var(--text-on-accent);background:var(--accent-bamboo-fill)}@supports (color:color-mix(in lab, red, red)){:where(html[data-skin=focus]) .button.primary:hover{background:color-mix(in srgb, var(--accent-bamboo-fill) 90%, var(--text-primary))}}:where(html[data-skin=focus]) .button.secondary{color:var(--text-primary);border-color:var(--border-default);background:var(--bg-paper)}:where(html[data-skin=focus]) .button.danger{color:var(--state-error);border-color:var(--state-error);background:var(--bg-paper)}:where(html[data-skin=focus]) .training-tabs,:where(html[data-skin=focus]) .advanced-tabs,:where(html[data-skin=focus]) .segmented{box-shadow:none;border-radius:9px}:where(html[data-skin=focus]) .training-tabs button,:where(html[data-skin=focus]) .advanced-tabs button{font-size:13px}:where(html[data-skin=focus]) .training-tabs button.active,:where(html[data-skin=focus]) .advanced-tabs button.active,:where(html[data-skin=focus]) .segmented button.active{color:var(--text-on-accent);background:var(--accent-bamboo-fill)}:where(html[data-skin=focus]) .training-tabs button.active:before,:where(html[data-skin=focus]) .advanced-tabs button.active:before{display:none}:where(html[data-skin=focus]) .training-tabs button.active span,:where(html[data-skin=focus]) .advanced-tabs button.active span{color:inherit}:where(html[data-skin=focus]) .training-card,:where(html[data-skin=focus]) .advanced-card,:where(html[data-skin=focus]) .settings-card,:where(html[data-skin=focus]) .summary-card,:where(html[data-skin=focus]) .history-panel,:where(html[data-skin=focus]) .plan-card,:where(html[data-skin=focus]) .goal-editor,:where(html[data-skin=focus]) .training-overview,:where(html[data-skin=focus]) .goal-progress-card,:where(html[data-skin=focus]) .weekly-report,:where(html[data-skin=focus]) .trend-panel{border-color:var(--border-default);border-radius:var(--radius-medium);box-shadow:none}:where(html[data-skin=focus]) .settings-heading-summary{background:var(--bg-paper);border-bottom-width:1px}:where(html[data-skin=focus]) .settings-heading-summary dt,:where(html[data-skin=focus]) .settings-index-status span,:where(html[data-skin=focus]) .settings-index-status small{font-size:11px}:where(html[data-skin=focus]) .settings-index{top:24px}:where(html[data-skin=focus]) .settings-index-heading{background:var(--bg-paper)}:where(html[data-skin=focus]) .settings-index nav a{font-size:13px}:where(html[data-skin=focus]) .settings-index-status{background:var(--bg-raised);border-top-width:1px}:where(html[data-skin=focus]) .settings-section-key{box-shadow:none}:where(html[data-skin=focus]) .theme-preview{box-shadow:none;top:24px}:where(html[data-skin=focus]) .theme-preview-practice{background:var(--preview-raised,var(--bg-raised))}:where(html[data-skin=focus]) .theme-preset-option{box-shadow:none;border-radius:9px}:where(html[data-skin=focus]) .theme-contrast-note{font-size:12px}:where(html[data-skin=focus]) .history-page{width:100%}:where(html[data-skin=focus]) .history-heading{padding-bottom:28px}:where(html[data-skin=focus]) .history-heading h1{margin-top:6px}:where(html[data-skin=focus]) .practice-heading{justify-content:space-between;align-items:center;gap:24px;margin-bottom:26px;display:flex}:where(html[data-skin=focus]) .practice-heading .eyebrow{margin:0 0 5px}:where(html[data-skin=focus]) .practice-heading h1{margin:0;font-size:18px;font-weight:600}:where(html[data-skin=focus]) .metric-strip{box-shadow:none;background:0 0;border:0;grid-template-columns:repeat(3,minmax(0,1fr));min-width:330px;margin:0;animation:none;display:grid;overflow:visible}:where(html[data-skin=focus]) .metric-strip .metric{min-height:56px;color:var(--text-primary);border:0;border-left:1px solid var(--border-default);background:0 0;grid-template-columns:auto auto;place-content:center start;gap:5px;padding:0 18px}:where(html[data-skin=focus]) .metric-strip .metric>span{font-size:11px}:where(html[data-skin=focus]) .metric-strip .metric strong{letter-spacing:-.04em;font-size:24px;font-weight:550}:where(html[data-skin=focus]) .metric-strip .metric small{align-self:end;margin:0;font-size:10px}:where(html[data-skin=focus]) .metric-value{font-variant-numeric:tabular-nums;animation:focus-number .22s var(--ease-out)}:where(html[data-skin=focus]) .workspace-grid{display:block}:where(html[data-skin=focus]) .typing-card{border:1px solid var(--border-default);background:var(--bg-paper);box-shadow:none;animation:focus-arrive .5s var(--ease-out) both;border-radius:14px;padding:26px 30px 0}:where(html[data-skin=focus]) .typing-card:has(.typing-input:focus){border-color:var(--border-default);box-shadow:none;transform:none}:where(html[data-skin=focus]) .typing-toolbar{border:0;align-items:center;gap:16px;min-height:0;padding:0 0 20px}:where(html[data-skin=focus]) .article-heading{display:block}:where(html[data-skin=focus]) .article-heading h2{font:600 24px/1.4 var(--font-body);margin:8px 0 0}:where(html[data-skin=focus]) .article-kicker{color:var(--text-secondary);gap:10px;font-size:12px}:where(html[data-skin=focus]) .article-kicker span:after{display:none}:where(html[data-skin=focus]) .article-toolbar-actions{gap:14px}:where(html[data-skin=focus]) .toolbar-actions{border:0;gap:8px;display:flex}:where(html[data-skin=focus]) .toolbar-actions button{color:var(--text-primary);border:1px solid var(--border-default);background:var(--bg-paper);border-radius:9px;padding:0 14px;font-size:13px}:where(html[data-skin=focus]) .toolbar-actions button:first-child{color:var(--text-on-accent);border-color:var(--accent-bamboo-fill);background:var(--accent-bamboo-fill)}:where(html[data-skin=focus]) .code-hint-card{border:1px solid var(--border-default);background:var(--bg-raised);min-width:112px;box-shadow:none;border-radius:9px;padding:8px 12px}:where(html[data-skin=focus]) .code-hint-character{font:600 25px/1 var(--font-body)}:where(html[data-skin=focus]) .code-hint-copy small{font-size:10px}:where(html[data-skin=focus]) .root-rail{background:0 0;border:0;border-radius:3px;gap:2px;height:4px;min-height:0;padding:0;display:grid;overflow:visible}:where(html[data-skin=focus]) .root-rail>span{background:var(--bg-key);border:0;height:4px;min-height:4px;padding:0}:where(html[data-skin=focus]) .root-rail>span:before{background:var(--progress-fill);transition:width .35s var(--ease-out)}:where(html[data-skin=focus]) .root-rail b,:where(html[data-skin=focus]) .root-rail small{display:none}:where(html[data-skin=focus]) .article-text{height:auto;min-height:140px;max-height:260px;color:var(--text-secondary);font-size:var(--practice-font-size,27px);font-family:var(--font-reading);letter-spacing:.015em;scrollbar-width:thin;background:0 0;margin:24px 0;padding:0 6px 0 0;font-weight:400;line-height:1.95;overflow-y:auto;-webkit-mask-image:linear-gradient(#000 calc(100% - 14px),#0000);mask-image:linear-gradient(#000 calc(100% - 14px),#0000)}:where(html[data-skin=focus]) .article-text .paragraph-break{white-space:normal;height:12px;font-size:0;line-height:0;display:block}:where(html[data-skin=focus]) .article-text.common-character-text .paragraph-break{display:none}:where(html[data-skin=focus]) .article-text span{border-radius:2px;transition:none}:where(html[data-skin=focus]) .article-text span.correct{color:var(--state-success);background:0 0}:where(html[data-skin=focus]) .article-text span.wrong{color:var(--state-error);background:var(--state-error)}@supports (color:color-mix(in lab, red, red)){:where(html[data-skin=focus]) .article-text span.wrong{background:color-mix(in srgb, var(--state-error) 9%, transparent)}}:where(html[data-skin=focus]) .article-text span.wrong{text-underline-offset:5px;text-decoration:underline}:where(html[data-skin=focus]) .article-text span.current{color:var(--text-primary);border-bottom:2px solid var(--accent-bamboo);background:var(--bg-key);box-shadow:none;animation:none}:where(html[data-skin=focus]) .typing-input{border:1px solid var(--border-default);width:100%;height:96px;min-height:96px;color:var(--text-primary);background:var(--bg-raised);font:20px/1.7 var(--font-body);resize:vertical;border-radius:9px;margin:0;padding:16px}:where(html[data-skin=focus]) .typing-input:focus{outline:2px solid var(--focus-ring);outline-offset:2px;border-color:var(--focus-ring);box-shadow:none}:where(html[data-skin=focus]) .typing-input::placeholder{color:var(--text-secondary);font-size:15px}:where(html[data-skin=focus]) .typing-footer{background:0 0;border:0;min-height:40px;padding:12px 0 18px;font-size:11px}:where(html[data-skin=focus]) .practice-commandbar{border-top:1px solid var(--border-subtle);background:0 0;border-bottom:0;flex-flow:wrap;align-items:center;gap:12px;min-height:0;margin:0 -30px;padding:12px 24px;display:flex}:where(html[data-skin=focus]) .practice-mode{display:none}:where(html[data-skin=focus]) .ghost-mode-picker{background:0 0;border:0;order:0;gap:0;margin:0 auto 0 0;padding:0}:where(html[data-skin=focus]) .ghost-mode-picker legend{float:left;height:44px;color:var(--text-secondary);align-items:center;padding:0 10px 0 0;font-size:11px;display:flex}:where(html[data-skin=focus]) .ghost-mode-picker label{padding-inline:8px;font-size:11px}:where(html[data-skin=focus]) .ghost-mode-picker label:has(input:checked){color:var(--text-primary);background:var(--bg-key)}:where(html[data-skin=focus]) .practice-actions{flex-wrap:wrap;order:1;justify-content:end;width:auto;margin:0;display:flex}:where(html[data-skin=focus]) .practice-actions button{font-size:12px}:where(html[data-skin=focus]) .practice-diagnostics{border:1px solid var(--border-default);background:var(--bg-paper);border-radius:9px;margin-top:18px}:where(html[data-skin=focus]) .practice-diagnostics>summary{min-height:48px;color:var(--text-primary);cursor:pointer;padding:14px 18px;font-size:13px}:where(html[data-skin=focus]) .practice-diagnostics>summary span{color:var(--text-secondary);margin-left:14px;font-size:11px}:where(html[data-skin=focus]) .secondary-metrics{grid-template-columns:repeat(3,minmax(0,1fr));padding:4px 18px 0;display:grid}:where(html[data-skin=focus]) .secondary-metrics .metric{border-right:1px solid var(--border-subtle);padding:12px}:where(html[data-skin=focus]) .secondary-metrics .metric:last-child{border:0}:where(html[data-skin=focus]) .secondary-metrics .metric>span{font-size:12px}:where(html[data-skin=focus]) .secondary-metrics .metric strong{font-size:24px}:where(html[data-skin=focus]) .typing-diagnostics{background:0 0;border:0;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px 12px;margin:0;padding:20px;display:grid}:where(html[data-skin=focus]) .diagnostic-metric small{font-size:11px}:where(html[data-skin=focus]) .diagnostic-metric strong{font-size:13px}:where(html[data-skin=focus]) .diagnostic-metric i{font-size:10px}:where(html[data-skin=focus]) .practice-diagnostics[open]>:not(summary){animation:focus-panel .35s var(--ease-out)}:where(html[data-skin=focus]) .practice-sources{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;font-size:12px;display:flex}:where(html[data-skin=focus]) .practice-sources button{color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:9px;padding:0 12px;font-size:12px}:where(html[data-skin=focus]) .practice-sources button:hover{color:var(--text-primary);background:var(--bg-key)}:where(html[data-skin=focus]) .article-picker-filters{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}:where(html[data-skin=focus]) .article-picker-filters label{color:var(--text-secondary);gap:7px;font-size:12px;display:grid}:where(html[data-skin=focus]) .article-picker-filters select{border:1px solid var(--border-default);width:100%;min-width:0;color:var(--text-primary);background:var(--bg-raised);border-radius:9px;padding:0 10px;font-size:13px}:where(html[data-skin=focus]) .article-picker-filters .side-action{margin:0;font-size:12px}:where(html[data-skin=focus]) .article-list .article-choice{box-shadow:none;border-radius:9px}:where(html[data-skin=focus]) .modal{border:1px solid var(--border-default);border-radius:14px;box-shadow:0 20px 80px #00000020}:where(html[data-skin=focus]) .modal header h2{font:600 21px/1.4 var(--font-body)}:where(html[data-skin=focus]) .typing-review-actions{animation:focus-panel .45s var(--ease-out);background:0 0;border:0;padding-inline:0}:where(html[data-skin=focus]) .typing-review-save{gap:6px;font-size:12px;display:grid}:where(html[data-skin=focus]) .typing-review-save strong{color:var(--text-primary);font-size:17px}:where(html[data-skin=focus]) .typing-review-save span{color:var(--text-secondary)}:where(html[data-skin=focus]) .training-plan{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:start}:where(html[data-skin=focus]) .adaptive-plan-card:before{display:none}:where(html[data-skin=focus]) .due-review-card,:where(html[data-skin=focus]) .daily-progress-card,:where(html[data-skin=focus]) .smart-plan-card,:where(html[data-skin=focus]) .hesitation-queue-card,:where(html[data-skin=focus]) .advanced-module{border-top:1px solid var(--border-default)}:where(html[data-skin=focus]) .due-review-card.is-empty{padding:16px 22px}:where(html[data-skin=focus]) .due-review-card.is-empty .training-card-header,:where(html[data-skin=focus]) .due-review-card.is-empty .due-review-note{display:none}:where(html[data-skin=focus]) .due-review-card.is-empty .due-review-empty{text-align:left;background:0 0;border:0;place-content:start;min-height:0;padding:0}:where(html[data-skin=focus]) .due-review-empty span,:where(html[data-skin=focus]) .due-review-note{font-size:12px}:where(html[data-skin=focus]) .adaptive-plan-steps>li.is-next>a,:where(html[data-skin=focus]) .adaptive-plan-steps>li.is-next>button{color:var(--text-on-accent);border-color:var(--accent-bamboo-fill);background:var(--accent-bamboo-fill)}:where(html[data-skin=focus]) .settings-page .settings-grid{align-items:start}:where(html[data-skin=focus]) .first-use-entry{margin-bottom:20px;font-size:12px}:where(html[data-skin=focus]) .first-use-entry .button{background:0 0;font-size:12px}:where(html[data-skin=focus]) .first-use-guide{border-top-width:1px}:where(html[data-skin=focus]) .pet-touch{width:60px;height:60px}:where(html[data-skin=focus]) .music-dock{box-shadow:0 8px 30px #00000018}:root:where([data-skin=focus])[data-focus-mode=true] .app-shell{padding-left:0}:root:where([data-skin=focus])[data-focus-mode=true] .page-wrap{width:min(1160px,100%);padding:28px}:root:where([data-skin=focus])[data-focus-mode=true] .metric-strip{margin:0}:root:where([data-skin=focus])[data-focus-mode=true] .article-text{height:auto;max-height:min(45dvh,400px)}:root:where([data-skin=focus])[data-focus-mode=true] .practice-sources{display:none}@keyframes focus-arrive{0%{opacity:0;transform:translateY(8px)}}@keyframes focus-panel{0%{opacity:0;transform:translateY(6px)}}@keyframes focus-number{0%{opacity:.5;transform:translateY(4px)}}@media (max-width:1180px){:where(html[data-skin=focus]) .training-plan{grid-template-columns:minmax(0,1fr)}:where(html[data-skin=focus]) .header-inner{gap:30px}:where(html[data-skin=focus]) .practice-commandbar{justify-content:space-between}:where(html[data-skin=focus]) .article-toolbar-actions{gap:10px}:where(html[data-skin=focus]) .settings-heading{grid-template-columns:1fr;gap:18px}:where(html[data-skin=focus]) .settings-heading-summary{width:100%}:where(html[data-skin=focus]) .settings-workbench{grid-template-columns:minmax(0,1fr)}:where(html[data-skin=focus]) .settings-index{display:none}}@media (max-width:780px){html:where([data-skin=focus]){scroll-padding-top:20px}:where(html[data-skin=focus]) .app-shell{padding-left:0}:where(html[data-skin=focus]) .site-header{border-right:0;border-bottom:1px solid var(--border-default);width:100%;position:relative}:where(html[data-skin=focus]) .header-inner{grid-template-columns:1fr auto;gap:14px;height:auto;min-height:0;padding:16px 18px 0;display:grid}:where(html[data-skin=focus]) .brand{grid-area:auto}:where(html[data-skin=focus]) .brand strong{font-size:15px}:where(html[data-skin=focus]) .brand small{font-size:10px}:where(html[data-skin=focus]) .header-utilities{flex-wrap:nowrap;grid-area:1/2;justify-content:end;margin:0;position:static}:where(html[data-skin=focus]) .local-badge{display:none}:where(html[data-skin=focus]) .main-nav{grid-area:2/1/auto/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;width:100%;margin:0;padding:0 0 12px;display:grid;overflow:visible}:where(html[data-skin=focus]) .nav-item{justify-content:center;min-height:44px;padding:0 10px}:where(html[data-skin=focus]) .nav-item>span{display:none}:where(html[data-skin=focus]) .nav-item strong{font-size:13px}:where(html[data-skin=focus]) .page-wrap{width:100%;padding:22px 18px 18px}:where(html[data-skin=focus]) .site-footer{width:100%;padding:24px 18px 90px}:where(html[data-skin=focus]) .practice-heading{flex-wrap:wrap;gap:16px;margin-bottom:20px}:where(html[data-skin=focus]) .practice-heading-copy{align-items:baseline;gap:12px;display:flex}:where(html[data-skin=focus]) .practice-heading-copy .eyebrow{order:2}:where(html[data-skin=focus]) .metric-strip{box-shadow:none;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;min-width:0}:where(html[data-skin=focus]) .metric-strip .metric{padding:0 14px}:where(html[data-skin=focus]) .metric-strip .metric:first-child{border:0;padding-left:0}:where(html[data-skin=focus]) .metric-strip .metric strong{font-size:23px}:where(html[data-skin=focus]) .typing-card{padding:20px 16px 0}:where(html[data-skin=focus]) .typing-toolbar{flex-wrap:wrap;gap:14px;padding-bottom:18px}:where(html[data-skin=focus]) .article-heading{width:100%}:where(html[data-skin=focus]) .article-heading h2{font-size:20px}:where(html[data-skin=focus]) .article-kicker{gap:8px;font-size:11px}:where(html[data-skin=focus]) .article-toolbar-actions{justify-content:space-between;width:100%}:where(html[data-skin=focus]) .article-restart{margin-left:auto}:where(html[data-skin=focus]) .toolbar-actions button{padding-inline:12px}:where(html[data-skin=focus]) .code-hint-card{min-width:96px;padding:6px 8px}:where(html[data-skin=focus]) .code-hint-character{font-size:22px}:where(html[data-skin=focus]) .article-text{font-size:clamp(20px, calc(var(--practice-font-size,27px) * .8), 34px);min-height:100px;max-height:180px;margin:18px 0;line-height:1.85;-webkit-mask-image:linear-gradient(#000 calc(100% - 14px),#0000);mask-image:linear-gradient(#000 calc(100% - 14px),#0000)}:where(html[data-skin=focus]) .typing-input{height:92px;min-height:92px;padding:12px;font-size:18px}:where(html[data-skin=focus]) .typing-input::placeholder{font-size:13px}:where(html[data-skin=focus]) .typing-footer{flex-direction:column;align-items:start;gap:8px;padding-bottom:14px}:where(html[data-skin=focus]) .practice-commandbar{gap:8px;margin-inline:-16px;padding:10px 12px}:where(html[data-skin=focus]) .ghost-mode-picker{width:100%}:where(html[data-skin=focus]) .ghost-mode-picker label{padding-inline:8px}:where(html[data-skin=focus]) .practice-commandbar .practice-actions{flex:1;justify-content:start;gap:0;width:auto;display:flex}:where(html[data-skin=focus]) .practice-actions button{padding-inline:10px}:where(html[data-skin=focus]) .practice-diagnostics>summary span{margin-left:8px}:where(html[data-skin=focus]) .secondary-metrics{padding-inline:8px}:where(html[data-skin=focus]) .secondary-metrics .metric{padding:12px 8px}:where(html[data-skin=focus]) .secondary-metrics .metric strong{font-size:20px}:where(html[data-skin=focus]) .typing-diagnostics{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:20px 16px}:where(html[data-skin=focus]) .article-picker-filters{grid-template-columns:repeat(2,minmax(0,1fr))}:where(html[data-skin=focus]) .article-picker-filters label:last-of-type,:where(html[data-skin=focus]) .article-picker-filters .side-action{grid-column:1/-1}:where(html[data-skin=focus]) .subpage-heading,:where(html[data-skin=focus]) .history-heading{padding-bottom:22px}:where(html[data-skin=focus]) .subpage-heading h1,:where(html[data-skin=focus]) .history-heading h1{font-size:25px}:where(html[data-skin=focus]) .subpage-heading p{font-size:13px}:where(html[data-skin=focus]) .history-page{width:100%}:where(html[data-skin=focus]) .settings-heading{flex-direction:column;align-items:stretch;gap:16px;display:flex}:where(html[data-skin=focus]) .settings-heading-summary{width:100%;max-width:none}:where(html[data-skin=focus]) .settings-heading-summary>div{padding-inline:10px}:where(html[data-skin=focus]) .training-heading{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;display:grid}:where(html[data-skin=focus]) .training-heading .goal-seal{width:72px;height:72px;box-shadow:none;margin:0}:where(html[data-skin=focus]) .training-heading .goal-seal strong{font-size:20px}:where(html[data-skin=focus]) .training-heading .goal-seal span{font-size:9px}:where(html[data-skin=focus]) .training-plan{grid-template-columns:minmax(0,1fr)}:where(html[data-skin=focus]) .training-tabs{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}:where(html[data-skin=focus]) .training-tabs button{min-width:0}:where(html[data-skin=focus]) .advanced-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}:where(html[data-skin=focus]) .advanced-tabs button{min-height:64px;padding:10px 12px}:where(html[data-skin=focus]) .advanced-tabs strong{font-size:15px}:where(html[data-skin=focus]) .advanced-tabs span{font-size:11px}:where(html[data-skin=focus]) .due-review-card.is-empty{padding:14px 16px}:where(html[data-skin=focus]) .due-review-card,:where(html[data-skin=focus]) .daily-progress-card,:where(html[data-skin=focus]) .smart-plan-card,:where(html[data-skin=focus]) .hesitation-queue-card,:where(html[data-skin=focus]) .advanced-module{border:1px solid var(--border-default);border-radius:var(--radius-medium)}:where(html[data-skin=focus]) .smart-plan-card .training-card-header{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:0;padding-bottom:16px}:where(html[data-skin=focus]) .smart-plan-card .training-card-stat{min-width:52px;padding-left:12px}:where(html[data-skin=focus]) .smart-plan-card .training-card-heading{gap:8px}:where(html[data-skin=focus]) .smart-plan-card .training-card-heading h2{font-size:20px}:where(html[data-skin=focus]) .article-heading,:where(html[data-skin=focus]) .article-heading h2{text-align:left}:where(html[data-skin=focus]) .article-kicker{justify-content:start}:where(html[data-skin=focus]) .typing-toolbar{text-align:left}:where(html[data-skin=focus]) .article-toolbar-actions .toolbar-actions{justify-content:start}:where(html[data-skin=focus]) .settings-content{min-width:0}:where(html[data-skin=focus]) .first-use-entry{gap:8px;margin-bottom:16px}:root:where([data-skin=focus])[data-focus-mode=true] .page-wrap{width:100%;padding:22px 18px}}@media (prefers-reduced-motion:reduce){:where(html[data-skin=focus]) .typing-card,:where(html[data-skin=focus]) .metric-value,:where(html[data-skin=focus]) .practice-diagnostics[open]>:not(summary),:where(html[data-skin=focus]) .typing-review-actions{animation:none}:where(html[data-skin=focus]) .root-rail>span:before{transition:none}}.skin-fieldset{border:0;min-width:0;margin:24px 0;padding:0}.skin-fieldset legend{margin-bottom:12px;font-weight:650}.skin-options{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.skin-option{border:1px solid var(--border-default);border-radius:var(--radius-medium);background:var(--bg-paper);cursor:pointer;min-width:0;transition:border-color .16s ease, box-shadow .16s ease, transform .16s var(--ease-out);gap:12px;padding:16px;display:grid;position:relative}.skin-option:hover{border-color:var(--border-strong);transform:translateY(-1px)}.skin-option:has(input:checked){border-color:var(--accent-bamboo);box-shadow:inset 0 0 0 1px var(--accent-bamboo), var(--shadow-panel)}.skin-option:has(input:focus-visible){outline:2px solid var(--focus-ring);outline-offset:3px}.skin-option>input{width:18px;height:18px;accent-color:var(--accent-bamboo);margin:0;position:absolute;top:16px;right:16px}.skin-option-copy{gap:6px;padding-right:20px;display:grid}.skin-option-copy strong{font-size:15px}.skin-option-copy small{color:var(--text-secondary);font-size:12px;line-height:1.75}.skin-thumbnail{color:#14151a;background:#f5f4f0;border:1px solid #ddd9d0;border-radius:12px;grid-template-rows:28px 1fr;height:136px;display:grid;overflow:hidden}.skin-thumbnail-nav{background:#fff;border-bottom:1px solid #eae7e0;justify-content:center;align-items:center;gap:6px;padding:6px 10px;display:flex}.skin-thumbnail-nav i{background:#165243;border-radius:999px;width:22px;height:8px}.skin-thumbnail-page{background:#f5f4f0;gap:8px;min-width:0;padding:12px 16px;display:grid}.skin-thumbnail-page b{font:650 12px/1.4 var(--font-display)}.skin-thumbnail-page>i{background:#a8a399;border-radius:999px;width:48%;height:3px}.skin-thumbnail-page>span{gap:6px;display:flex}.skin-thumbnail-page>span i{background:#fff;border:1px solid #ddd9d0;border-radius:6px;width:26px;height:14px}.skin-thumbnail-page em{background:#fff;border:1px solid #ddd9d0;border-radius:8px;padding:6px 10px;font:12px/1.5 Songti SC,STSong,serif}[data-skin-option=focus] .skin-thumbnail{color:#18231c;background:#f7f6f2;border-color:#dce1d7;border-radius:12px;grid-template-rows:1fr;grid-template-columns:42px 1fr}[data-skin-option=focus] .skin-thumbnail-nav{background:#fff;border:0;border-right:1px solid #dce1d7;flex-direction:column;justify-content:start;align-items:stretch;gap:10px;padding:12px 6px}[data-skin-option=focus] .skin-thumbnail-nav i{background:#c6ed78;border-radius:999px;width:100%;height:6px}[data-skin-option=focus] .skin-thumbnail-page{background-image:none;align-content:center}[data-skin-option=focus] .skin-thumbnail-page b,[data-skin-option=focus] .skin-thumbnail-page em{font-family:var(--font-body)}[data-skin-option=focus] .skin-thumbnail-page em{background:#fff;border-color:#dce1d7;border-radius:8px}[data-skin-option=neon] .skin-thumbnail{color:#eaf0ff;background:#0a0f1e;border-color:#263352}[data-skin-option=neon] .skin-thumbnail-nav{background:linear-gradient(#101728,#0c1322);border-bottom:0;box-shadow:inset 0 -1px #22d3ee73,0 0 8px -2px #22d3ee66}[data-skin-option=neon] .skin-thumbnail-nav i{background:#1b2740}[data-skin-option=neon] .skin-thumbnail-nav i:first-child{background:linear-gradient(135deg,#0e7490,#a21caf);box-shadow:0 0 8px -1px #22d3eea6}[data-skin-option=neon] .skin-thumbnail-page{background:radial-gradient(120% 70% at 50% 0,#22d3ee1f,#0000 60%),#0a0f1e}[data-skin-option=neon] .skin-thumbnail-page b{color:#0000;background:linear-gradient(100deg,#22d3ee,#e879f9);-webkit-background-clip:text;background-clip:text}[data-skin-option=neon] .skin-thumbnail-page>i{background:#2a3a5e}[data-skin-option=neon] .skin-thumbnail-page>span i{background:#151e33;border-color:#263352;box-shadow:inset 0 -1.5px #22d3ee80}[data-skin-option=neon] .skin-thumbnail-page em{color:#93a0c4;font-family:var(--font-body);background:#101728;border-color:#263352;box-shadow:inset 0 0 8px -2px #22d3ee59}[data-skin-option=roots] .skin-thumbnail{color:#2b2b2b;background:#efe8d8;border:0;border-radius:0;grid-template-rows:22px 1fr}[data-skin-option=roots] .skin-thumbnail-nav{background:0 0;border:0;gap:0;padding:0}[data-skin-option=roots] .skin-thumbnail-nav i{border-radius:0;width:16.6%;height:100%}[data-skin-option=roots] .skin-thumbnail-nav i:first-child{background:#f5d90a}[data-skin-option=roots] .skin-thumbnail-nav i:nth-child(2){background:#c43228}[data-skin-option=roots] .skin-thumbnail-nav i:nth-child(3){background:#1d4e89}[data-skin-option=roots] .skin-thumbnail-page{background:#efe8d8;grid-template-columns:42px 1fr;align-items:center}[data-skin-option=roots] .skin-thumbnail-page b{font:750 28px/1 var(--font-body)}[data-skin-option=roots] .skin-thumbnail-page>i{display:none}[data-skin-option=roots] .skin-thumbnail-page>span i{border:0;border-radius:0;width:18px;height:18px}[data-skin-option=roots] .skin-thumbnail-page>span i:first-child{background:#1d4e89}[data-skin-option=roots] .skin-thumbnail-page>span i:nth-child(2){background:#c43228}[data-skin-option=roots] .skin-thumbnail-page>span i:nth-child(3){background:#f5d90a}[data-skin-option=roots] .skin-thumbnail-page em{color:#f5d90a;font-family:var(--font-data);background:#2b2b2b;border:0;border-radius:0}:where(html:not([data-skin=focus])) .article-side-filters{display:contents}:where(html:not([data-skin=focus])) .summary-card:hover,:where(html:not([data-skin=focus])) .settings-card:hover{box-shadow:var(--shadow-panel)}.settings-heading-summary{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:620px){.skin-options{grid-template-columns:minmax(0,1fr)}.settings-heading-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}[data-skin-option=roots] .skin-thumbnail-page{grid-template-rows:1fr auto;min-height:0;overflow:hidden}[data-skin-option=roots] .skin-thumbnail-page em{grid-column:1/-1}:root{--ui-text-body:14px;--ui-text-meta:12px;--ui-title-panel:21px;--ui-panel-padding:clamp(18px, 2.5vw, 26px);--ui-section-gap:22px}body{font-size:var(--ui-text-body)}.eyebrow{font-size:var(--ui-text-meta);line-height:1.6}.subpage-heading h1,.history-heading h1{text-wrap:balance;font-size:clamp(26px,3vw,38px);line-height:1.3}.subpage-heading p,.history-heading p{font-size:var(--ui-text-body);line-height:1.75}.nav-item strong{font-size:var(--ui-text-body)}.panel-title h2,.training-card-heading h2,.settings-card-title h2,.advanced-module-heading h2,.weekly-section-heading h3{font-size:var(--ui-title-panel);text-wrap:balance;line-height:1.4}.button,.toolbar-actions button,.practice-actions button,.training-tabs button,.advanced-tabs button,.segmented button,.trend-range button,.history-mode-tabs button,.plan-steps a,.plan-steps button,.session-share{min-height:44px;font-size:var(--ui-text-body);line-height:1.5}.button,.plan-steps a,.plan-steps button{text-align:center;padding:10px 16px}.training-plan{gap:var(--ui-section-gap);align-items:start}.training-heading{grid-template-columns:minmax(0,1fr) auto;display:grid}:where(html:not([data-skin=focus])) .training-heading{min-height:0;padding:28px 0 22px}.due-review-card.is-empty{padding:16px var(--ui-panel-padding)}.due-review-card.is-empty .training-card-header{display:none}.due-review-card.is-empty .due-review-empty{text-align:left;background:0 0;border:0;place-content:start;min-height:0;padding:0}.daily-progress-card,.smart-plan-card,.due-review-card,.hesitation-queue-card,.trend-panel{min-width:0;padding:var(--ui-panel-padding)}.daily-progress-card .training-card-header,.smart-plan-card .training-card-header,.due-review-card .training-card-header,.hesitation-queue-card .training-card-header{align-items:center;gap:16px;min-height:0;padding:0 0 20px}.training-card-heading{gap:8px}.training-card-stat{gap:6px;min-width:64px;padding-left:16px}.training-card-stat strong{font-variant-numeric:tabular-nums;font-size:26px}.training-card-stat span,.training-card-stat strong small,.goal-row>span,.goal-row>strong,.goal-editor label,.goal-seal span{font-size:var(--ui-text-meta);line-height:1.6}.goal-editor{gap:12px}.goal-editor input{width:100%;min-width:0;font-size:var(--ui-text-body)}.plan-steps{margin-block:8px 0}.adaptive-plan-steps li{gap:16px;min-height:0;padding-block:20px}.plan-task-title{flex-wrap:wrap;gap:6px 12px}.plan-task-title strong{font-size:16px;line-height:1.5}.plan-task-title small,.plan-task-copy em,.plan-task-done,.plan-actions span,.priority-explanation,.priority-explanation summary,.priority-explanation p,.priority-explanation li span,.due-review-copy>div span,.due-review-copy time,.due-review-copy small,.due-review-copy p,.due-review-empty span,.due-review-note,.hesitation-queue-note,.hesitation-queue-empty span,.summary-ledger span,.remaining-weaknesses li span,.training-completion-summary>p{font-size:var(--ui-text-meta);line-height:1.75}.plan-steps p{font-size:var(--ui-text-body);margin-top:8px;line-height:1.75}.plan-task-copy em{white-space:normal;overflow-wrap:anywhere}.plan-actions{gap:12px;padding-top:20px}.due-review-copy>div{flex-wrap:wrap}.due-review-list li{gap:16px}.settings-card-title p,.switch-row>span small,.range-row small,.theme-contrast-note,.practice-diagnostics>summary,.typing-footer,.diagnostic-metric small,.diagnostic-metric i,.first-use-note,.first-use-steps small,.summary-card>span,.summary-card p,.summary-card strong small,.advanced-tabs span,.season-day-list small,.season-status-note{font-size:var(--ui-text-meta);line-height:1.75}.season-goal-card p,.season-setup p,.season-progress-card p{font-size:var(--ui-text-body);line-height:1.75}.settings-card-title h2{margin-bottom:6px}.trend-panel .panel-title{flex-wrap:wrap;gap:16px}.trend-range{flex:none}.trend-range button{padding-inline:14px}.trend-summary{font-size:var(--ui-text-body);flex-wrap:wrap;gap:12px 24px;padding-block:16px}.trend-summary span{flex-wrap:wrap}.trend-summary strong{font-variant-numeric:tabular-nums}.trend-scale{color:var(--text-secondary);font-size:var(--ui-text-meta);margin:0 0 12px;line-height:1.75}.trend-chart svg{height:clamp(200px,22vw,280px);overflow:hidden}.speed-line,.accuracy-line{stroke-width:2.5px}.trend-labels{font-size:var(--ui-text-meta);gap:12px;margin-top:12px;line-height:1.5}.trend-empty{font-size:var(--ui-text-body);line-height:1.75}.weekly-volume dt,.weekly-volume-change,.weekly-normalization,.weekly-radar-note,.weekly-missing,.weekly-goal-note{font-size:var(--ui-text-meta);line-height:1.75}@media (max-width:1180px){:where(html:not([data-skin=focus])) .header-inner{grid-template-columns:auto minmax(0,1fr) auto;gap:14px}:where(html:not([data-skin=focus])) .nav-item{padding-inline:12px}}@media (max-width:900px){:where(html:not([data-skin=focus])) .hero-row,:where(html:not([data-skin=focus])) .subpage-heading{min-height:0;padding:24px 0 18px}:where(html:not([data-skin=focus])) .nav-item{min-height:44px;padding-inline:10px}}@media (max-width:780px){:where(html:not([data-skin=focus])) .training-brief,:where(html:not([data-skin=focus])) .training-goal-bridge{padding-inline:0}:where(html:not([data-skin=focus])) .training-heading{padding:20px 0}:where(html:not([data-skin=focus])) .main-nav{border-radius:16px;padding:4px}.main-nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;width:100%;display:grid;overflow:visible}.nav-item{justify-content:center;min-width:0;padding:10px 6px}.nav-item>span{display:none}.subpage-heading h1,.history-heading h1{font-size:28px}.training-heading{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;display:grid}.training-heading .goal-seal{border-width:5px;width:80px;height:80px;margin:0}.training-heading .goal-seal strong{font-size:22px}.training-heading .goal-seal span{font-size:11px}.training-plan{grid-template-columns:minmax(0,1fr);gap:16px}.training-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.training-tabs button{min-width:0;padding:10px 8px}.due-review-list{grid-template-columns:minmax(0,1fr)}.goal-editor{grid-template-columns:repeat(3,minmax(0,1fr))}.goal-editor label{min-width:0}.goal-row{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding-block:14px}.goal-row>i{grid-area:2/1/auto/-1}.goal-row>span{grid-area:1/1}.goal-row>strong{text-align:right;grid-area:1/2}.daily-progress-card .training-card-header,.smart-plan-card .training-card-header,.due-review-card .training-card-header,.hesitation-queue-card .training-card-header{grid-template-columns:minmax(0,1fr) auto}.training-card-stat{min-width:56px;padding-left:12px}.adaptive-plan-steps li{grid-template-columns:36px minmax(0,1fr);gap:12px}.adaptive-plan-steps li>:last-child{grid-column:2;justify-self:start}.plan-task-title small{white-space:normal}.trend-labels span:last-child{text-align:right}}@media (max-width:620px){:where(html:not([data-skin=focus])) .page-wrap,:where(html:not([data-skin=focus])) .site-footer{width:calc(100% - 28px)}:where(html:not([data-skin=focus])) .metric-strip{box-shadow:none}:where(html:not([data-skin=focus])) .typing-card,:where(html:not([data-skin=focus])) .side-panel,:where(html:not([data-skin=focus])) .challenge-card,:where(html:not([data-skin=focus])) .history-panel,:where(html:not([data-skin=focus])) .settings-card,:where(html:not([data-skin=focus])) .summary-card,:where(html:not([data-skin=focus])) .trend-panel,:where(html:not([data-skin=focus])) .daily-progress-card,:where(html:not([data-skin=focus])) .smart-plan-card,:where(html:not([data-skin=focus])) .due-review-card,:where(html:not([data-skin=focus])) .hesitation-queue-card,:where(html:not([data-skin=focus])) .management-card,:where(html:not([data-skin=focus])) .pwa-card,:where(html:not([data-skin=focus])) .code-drill{border-radius:var(--radius-medium);border-inline:1px solid var(--border-default);box-shadow:var(--shadow-panel)}}@media (max-width:380px){.due-review-list li{grid-template-columns:minmax(0,1fr)}.due-review-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.due-review-actions .button{white-space:normal;padding-inline:8px}.training-card-stat{grid-template-columns:1fr;justify-items:end;gap:2px}.goal-editor{grid-template-columns:minmax(0,1fr)}}:root{--glass-surface:var(--bg-paper)}@supports (color:color-mix(in lab, red, red)){:root{--glass-surface:color-mix(in srgb, var(--bg-paper) 72%, transparent)}}:root{--glass-edge:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){:root{--glass-edge:color-mix(in srgb, var(--text-primary) 12%, transparent)}}:root{--glass-lens:var(--lightningcss-light,#ffffffd1)var(--lightningcss-dark,#ffffff1c);--glass-highlight:var(--lightningcss-light,#ffffffe6)var(--lightningcss-dark,#ffffff2e);--glass-shadow:var(--lightningcss-light,#181c200f)var(--lightningcss-dark,#0003)}html .site-header{background:var(--bg-canvas)}@supports (color:color-mix(in lab, red, red)){html .site-header{background:color-mix(in srgb, var(--bg-canvas) 82%, transparent)}}html .site-header{box-shadow:none;-webkit-backdrop-filter:blur(24px)saturate(110%);backdrop-filter:blur(24px)saturate(110%);animation:none}html[data-skin] .brand-mark{color:var(--text-primary);border:1px solid var(--glass-edge);background:var(--glass-surface);box-shadow:inset 0 1px 0 var(--glass-highlight), 0 2px 6px -3px var(--glass-shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);grid-template-columns:1fr;transform:none}html[data-skin] .brand:hover .brand-mark{box-shadow:inset 0 1px 0 var(--glass-highlight);transform:none}html[data-skin] .brand small{color:var(--text-secondary);font:400 11px/1.4 var(--font-body);letter-spacing:0;margin-top:3px}html[data-skin] .local-badge{color:var(--text-secondary);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;font:400 12px/1.5 var(--font-body);letter-spacing:0;background:0 0;border:0;border-radius:0;padding:0}html[data-skin] .main-nav{isolation:isolate;border:1px solid var(--glass-edge);background:var(--glass-surface);box-shadow:inset 0 1px 0 var(--glass-highlight), 0 6px 20px -8px var(--glass-shadow);-webkit-backdrop-filter:blur(24px)saturate(120%);backdrop-filter:blur(24px)saturate(120%);border-radius:999px;gap:4px;padding:5px;position:relative}html[data-skin] .nav-item{z-index:1;min-width:0;min-height:44px;color:var(--text-secondary);box-shadow:none;background:0 0;border:0;border-radius:999px;padding:0 20px;transition:color .16s,background-color .16s,transform .16s;transform:none}html[data-skin] .nav-item strong{font-family:var(--font-body);letter-spacing:0;font-size:14px;font-weight:500}html[data-skin] .nav-item:before,html[data-skin] .nav-item:after{display:none}html[data-skin] .nav-item:hover:not(.active){color:var(--text-primary);background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){html[data-skin] .nav-item:hover:not(.active){background:color-mix(in srgb, var(--text-primary) 4%, transparent)}}html[data-skin] .nav-item:hover:not(.active){box-shadow:none;transform:none}html[data-skin] .nav-item.active{color:var(--text-primary);background:var(--glass-lens);box-shadow:none}html[data-skin] .main-nav[data-lens-ready] .nav-item.active{background:0 0}html[data-skin] .nav-item.active strong{font-weight:650}html .main-nav>.nav-lens{z-index:0;pointer-events:none;visibility:hidden;border:1px solid var(--glass-highlight);background:var(--glass-lens);box-shadow:0 2px 6px var(--glass-shadow), inset 0 -1px 0 var(--glass-edge);border-radius:999px;display:block;position:absolute;top:0;left:0}html .main-nav[data-lens-ready]>.nav-lens{visibility:visible}html[data-skin] .button,html[data-skin] .theme-switch{min-height:44px;font-family:var(--font-body);box-shadow:none;border-radius:999px;font-weight:500;transition:background-color .16s,border-color .16s,transform .16s}html[data-skin] .button.secondary,html[data-skin] .theme-switch{color:var(--text-primary);border:1px solid var(--glass-edge);background:var(--glass-surface);box-shadow:inset 0 1px 0 var(--glass-highlight), 0 2px 8px -4px var(--glass-shadow);-webkit-backdrop-filter:blur(16px)saturate(110%);backdrop-filter:blur(16px)saturate(110%)}html[data-skin] .button.primary{color:var(--bg-paper);background:var(--text-primary);box-shadow:none;border:1px solid #0000;font-weight:600}html[data-skin] .button:hover:not(:disabled),html[data-skin] .theme-switch:hover{box-shadow:none;transform:none}html[data-skin] .button.secondary:hover:not(:disabled),html[data-skin] .theme-switch:hover{background:var(--bg-paper)}html[data-skin] .button.primary:hover:not(:disabled){color:var(--bg-paper);background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){html[data-skin] .button.primary:hover:not(:disabled){background:color-mix(in srgb, var(--text-primary) 90%, var(--bg-paper))}}html[data-skin] .button:active:not(:disabled),html[data-skin] .theme-switch:active,html[data-skin] .nav-item:active{transform:scale(.98)}html .nav-item:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}html[data-skin=focus] .main-nav{border-radius:22px}@media (max-width:1180px){html[data-skin] .nav-item{padding-inline:12px}}@media (max-width:780px){html[data-skin] .main-nav{border-radius:24px}html[data-skin] .nav-item{padding-inline:8px}html[data-skin] .nav-item strong{font-size:13px}}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){html[data-skin] .brand-mark,html[data-skin] .site-header,html[data-skin] .main-nav,html[data-skin] .theme-switch,html[data-skin] .button.secondary{background:var(--bg-paper)}}@media (prefers-reduced-transparency:reduce),(forced-colors:active){html[data-skin] .brand-mark,html[data-skin] .site-header,html[data-skin] .main-nav,html[data-skin] .theme-switch,html[data-skin] .button.secondary{background:var(--bg-paper);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}html .main-nav>.nav-lens{display:none}html[data-skin] .main-nav .nav-item.active{color:var(--text-primary);background:var(--bg-raised);box-shadow:inset 0 0 0 1px var(--border-strong)}}@media (forced-colors:active){html[data-skin] .main-nav .nav-item.active{outline-offset:-3px;outline:2px solid highlight}}@media (prefers-reduced-motion:reduce){html[data-skin] .nav-item,html[data-skin] .theme-switch,html[data-skin] .button{transition:none;transform:none}}html .music-local-import{padding:8px 20px}html .music-local-actions{flex-wrap:wrap;gap:8px;display:flex}html .music-local-actions button{min-height:44px;color:var(--text-primary);background:var(--bg-paper);border:1px solid var(--glass-edge);font:inherit;border-radius:12px;padding:8px 12px}html .music-local-import p{color:var(--text-secondary);margin:8px 0 0;font-size:12px;line-height:1.5}html .music-local-import p:empty{display:none}html .music-content{padding-bottom:calc(64px + env(safe-area-inset-bottom))}html .music-dock{inset:auto 24px calc(20px + env(safe-area-inset-bottom)) auto;width:min(288px,100% - 32px);max-height:calc(100dvh - 40px - env(safe-area-inset-bottom));color:var(--text-primary);border:1px solid var(--glass-edge);background:var(--bg-paper);border-radius:24px;flex-direction:column;padding:0;display:flex;overflow-y:auto}@supports (color:color-mix(in lab, red, red)){html .music-dock{background:color-mix(in srgb, var(--bg-paper) 92%, transparent)}}html .music-dock{box-shadow:inset 0 1px 0 var(--glass-highlight), 0 12px 40px -12px var(--glass-shadow);-webkit-backdrop-filter:blur(20px)saturate(110%);backdrop-filter:blur(20px)saturate(110%)}html .music-dock:before,html .music-station:before,html .station-pulse{display:none}html .music-dock-bar{flex-shrink:0;grid-template-columns:minmax(0,1fr) 44px;grid-template-areas:"station close""track track""transport transport""progress progress""volume volume";gap:2px;width:100%;min-height:0;margin:0;padding:8px 12px;display:grid}html .music-station{grid-area:station;display:block}html .music-station strong{font:600 13px/1.5 var(--font-body);letter-spacing:0}html .music-station small{max-width:none;color:var(--text-secondary);white-space:normal;font-size:11px}html .music-collapse{grid-area:close;align-self:start}html .music-now-playing{grid-area:track;gap:10px;min-width:0;padding-block:0;display:flex}html .music-now-playing>span{display:none}html .music-track-copy{animation:none}html .music-now-playing strong{font-size:15px;font-weight:600;line-height:1.4}html .music-now-playing small{color:var(--text-secondary);font-size:12px}html .music-library-toggle{min-height:44px;padding:0 10px;font-size:12px;font-weight:500}html .music-library-toggle span{display:none}html .music-transport{grid-area:transport;justify-content:center;gap:16px}html .music-dock .music-transport button,html .music-dock .music-collapse,html .music-dock .music-volume>button,html .music-dock .music-library-toggle{min-width:44px;min-height:44px;color:var(--text-primary);box-shadow:none;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;transition:background-color .16s,transform .16s;animation:none}html .music-dock .music-transport .music-play-button{width:44px;height:44px;color:var(--bg-paper);background:var(--text-primary);border:1px solid var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-highlight);font-size:16px}html .music-dock .music-transport .music-play-button.is-playing{box-shadow:inset 0 1px 0 var(--glass-highlight);animation:none}html .music-dock button:hover:not(:disabled){background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){html .music-dock button:hover:not(:disabled){background:color-mix(in srgb, var(--text-primary) 6%, transparent)}}html .music-dock .music-play-button:hover:not(:disabled){background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){html .music-dock .music-play-button:hover:not(:disabled){background:color-mix(in srgb, var(--text-primary) 90%, var(--bg-paper))}}html .music-dock button:active:not(:disabled){transform:scale(.97)}html .music-dock button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}html .music-progress{flex-direction:column-reverse;grid-area:progress;align-items:stretch;gap:0;display:flex}html .music-progress span{color:var(--text-secondary);text-align:right;font-size:11px}html .music-volume{grid-area:volume;gap:12px;width:100%;display:flex}html .music-progress input,html .music-volume input{height:44px;accent-color:var(--text-primary)}html .music-volume>button{font-size:12px}html .music-library-reveal{flex-shrink:0;width:100%;transition:none;position:static;inset:auto}html .music-library-reveal.is-expanded{max-height:none}html .music-library{border:0;border-top:1px solid var(--glass-edge);width:100%;min-width:0;max-height:220px;box-shadow:none;background:0 0;border-radius:0;margin:0;overflow-y:auto}html .music-library-heading{background:0 0;gap:8px;min-height:0;padding:12px 20px}html .music-library-heading>div{display:block}html .music-library-heading span{display:none}html .music-library-heading strong{font:600 13px/1.4 var(--font-body)}html .music-library-heading small{font-size:11px}html .music-track-row{grid-template-columns:22px minmax(0,1fr) auto;gap:10px;width:100%;min-width:0;min-height:56px;padding:10px 20px}html .music-track-row strong{font-size:12px}html .music-track-row small{display:none}html .music-track-row>span,html .music-track-row time{font-size:11px}html .music-track-row.active{background:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){html .music-track-row.active{background:color-mix(in srgb, var(--text-primary) 6%, transparent)}}html .music-track-row.active{box-shadow:inset 2px 0 0 var(--text-primary)}html .music-dock-peek,html #music-header-slot .music-dock-peek{color:var(--text-primary);border:1px solid var(--glass-edge);background:var(--glass-surface);box-shadow:inset 0 1px 0 var(--glass-highlight), 0 2px 8px var(--glass-shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}html .music-peek-icon,html .music-peek-arrow{color:var(--text-primary)}html .music-dock-morph .music-dock{width:100%;max-height:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;position:relative;inset:auto}@media (max-width:780px){html .music-dock{right:16px;bottom:calc(16px + env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){html .music-dock button{transition:none;transform:none}}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){html .music-dock,html .music-dock-peek,html #music-header-slot .music-dock-peek{background:var(--bg-paper)}}@media (prefers-reduced-transparency:reduce),(forced-colors:active){html .music-dock,html .music-dock-peek,html #music-header-slot .music-dock-peek{background:var(--bg-paper);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}}:root[data-skin=neon]:not([data-theme=custom]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--text-on-accent:#fff;--bg-canvas:#0a0f1e;--bg-paper:#101728;--bg-raised:#151e33;--bg-key:#1b2740;--text-primary:#eaf0ff;--text-secondary:#93a0c4;--border-default:#263352;--border-subtle:#1c2740;--border-strong:#46587f;--accent-vermilion:#f0abfc;--accent-vermilion-fill:#a21caf;--accent-vermilion-dark:#f5d0fe;--accent-bamboo:#22d3ee;--accent-bamboo-fill:#0e7490;--progress-fill:#155e75;--state-success:#34d399;--state-success-fill:#047857;--state-error:#fb7185;--state-error-fill:#9f1239;--heat-smooth:#17203a;--heat-mild:#6d28d9;--heat-clear:#c026d3;--heat-severe:#f43f5e;--heat-severe-text:#fff0f6;--focus-ring:#22d3ee;--shadow-key:0 2px 0 #060b16, 0 4px 10px #00000073;--shadow-panel:0 20px 50px -12px #0000008c, 0 4px 12px #0000004d;--grid-line:#22d3ee0f;--dock-bg:#0b1222;--dock-text:#eaf0ff;--radius-small:8px;--radius-medium:12px;--radius-large:16px;--neon-a:#22d3ee;--neon-a-fill:#0e7490;--neon-b:#e879f9;--neon-b-fill:#a21caf;--neon-action-fill:linear-gradient(135deg, #0e7490, #a21caf);--neon-action-text:#fff;--glass-surface:var(--bg-paper)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon]:not([data-theme=custom]){--glass-surface:color-mix(in srgb, var(--bg-paper) 66%, transparent)}}:root[data-skin=neon]:not([data-theme=custom]){--glass-edge:var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon]:not([data-theme=custom]){--glass-edge:color-mix(in srgb, var(--neon-a) 24%, #94a3d838)}}:root[data-skin=neon]:not([data-theme=custom]){--glass-lens:linear-gradient(135deg, #0e7490, #a21caf);--glass-highlight:#d6e8ff38;--glass-shadow:#0006;scrollbar-color:#2a3a5e #0a0f1e}:root[data-skin=neon][data-theme=dark]{--bg-canvas:#07060e;--bg-paper:#0f0d1c;--bg-raised:#151228;--bg-key:#1b1834;--text-primary:#f2edff;--text-secondary:#a79fc9;--border-default:#2a2447;--border-subtle:#1f1b3a;--border-strong:#4d4480;--accent-vermilion:#f0abfc;--accent-vermilion-fill:#a21caf;--accent-bamboo:#e879f9;--accent-bamboo-fill:#a21caf;--progress-fill:#3b1d5e;--focus-ring:#e879f9;--grid-line:#e879f90f;--dock-bg:#0d0b18;--neon-a:#e879f9;--neon-a-fill:#a21caf;--neon-b:#67e8f9;--neon-b-fill:#0e7490;--neon-action-fill:linear-gradient(135deg, #a21caf, #0e7490);--glass-lens:linear-gradient(135deg, #a21caf, #0e7490);--glass-edge:var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon][data-theme=dark]{--glass-edge:color-mix(in srgb, var(--neon-a) 26%, #a79fc93d)}}:root[data-skin=neon][data-theme=dark]{scrollbar-color:#37305c #07060e}@media (prefers-color-scheme:dark){:root[data-skin=neon][data-theme=system]{--bg-canvas:#07060e;--bg-paper:#0f0d1c;--bg-raised:#151228;--bg-key:#1b1834;--text-primary:#f2edff;--text-secondary:#a79fc9;--border-default:#2a2447;--border-subtle:#1f1b3a;--border-strong:#4d4480;--accent-vermilion:#f0abfc;--accent-vermilion-fill:#a21caf;--accent-bamboo:#e879f9;--accent-bamboo-fill:#a21caf;--progress-fill:#3b1d5e;--focus-ring:#e879f9;--grid-line:#e879f90f;--dock-bg:#0d0b18;--neon-a:#e879f9;--neon-a-fill:#a21caf;--neon-b:#67e8f9;--neon-b-fill:#0e7490;--neon-action-fill:linear-gradient(135deg, #a21caf, #0e7490);--glass-lens:linear-gradient(135deg, #a21caf, #0e7490);--glass-edge:var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon][data-theme=system]{--glass-edge:color-mix(in srgb, var(--neon-a) 26%, #a79fc93d)}}:root[data-skin=neon][data-theme=system]{scrollbar-color:#37305c #07060e}}:root[data-skin=neon][data-theme=bamboo]{--bg-canvas:#07130e;--bg-paper:#0c1b14;--bg-raised:#10231a;--bg-key:#152b21;--text-primary:#eaf6ee;--text-secondary:#8fb3a2;--border-default:#1f3a2e;--border-subtle:#172e24;--border-strong:#3f6b56;--accent-vermilion:#fbbf24;--accent-vermilion-fill:#b45309;--accent-bamboo:#6ee7b8;--accent-bamboo-fill:#166534;--progress-fill:#14532d;--focus-ring:#6ee7b8;--grid-line:#6ee7b80d;--dock-bg:#0a1811;--neon-a:#6ee7b8;--neon-a-fill:#166534;--neon-b:#fbbf24;--neon-b-fill:#b45309;--neon-action-fill:linear-gradient(135deg, #166534, #b45309);--glass-lens:linear-gradient(135deg, #166534, #b45309);--glass-edge:var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon][data-theme=bamboo]{--glass-edge:color-mix(in srgb, var(--neon-a) 24%, #8fb3a238)}}:root[data-skin=neon][data-theme=bamboo]{scrollbar-color:#2a4a3a #07130e}:root[data-skin=neon][data-theme=qingdai]{--bg-canvas:#0a1424;--bg-paper:#101e33;--bg-raised:#152641;--bg-key:#1b2f4f;--text-primary:#eaf2ff;--text-secondary:#90a6cc;--border-default:#24385c;--border-subtle:#1b2c4a;--border-strong:#47618f;--accent-vermilion:#22d3ee;--accent-vermilion-fill:#0e7490;--accent-bamboo:#93c5fd;--accent-bamboo-fill:#1d4ed8;--progress-fill:#1e3a8a;--focus-ring:#93c5fd;--grid-line:#93c5fd0f;--dock-bg:#0c1729;--neon-a:#93c5fd;--neon-a-fill:#1d4ed8;--neon-b:#22d3ee;--neon-b-fill:#0e7490;--neon-action-fill:linear-gradient(135deg, #1d4ed8, #0e7490);--glass-lens:linear-gradient(135deg, #1d4ed8, #0e7490);--glass-edge:var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon][data-theme=qingdai]{--glass-edge:color-mix(in srgb, var(--neon-a) 26%, #90a6cc3d)}}:root[data-skin=neon][data-theme=qingdai]{scrollbar-color:#2c4166 #0a1424}:root[data-skin=neon][data-theme=custom]{--neon-a:var(--custom-accent,#22d3ee);--neon-a-fill:var(--custom-accent,#22d3ee);--neon-b:var(--custom-accent,#22d3ee);--neon-b-fill:var(--custom-accent,#22d3ee);--neon-action-fill:var(--custom-accent,#22d3ee);--neon-action-text:var(--custom-accent-text,#fff)}:root[data-skin=neon] body{background-color:var(--bg-canvas);background-image:radial-gradient(120% 55% at 50% -12%, var(--neon-a), transparent 62%), radial-gradient(80% 40% at 88% 118%, var(--neon-b), transparent 64%), repeating-linear-gradient(90deg, #8ca0dc0b 0 1px, transparent 1px 72px), repeating-linear-gradient(0deg, #8ca0dc08 0 1px, transparent 1px 72px)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] body{background-image:radial-gradient(120% 55% at 50% -12%, color-mix(in srgb, var(--neon-a) 13%, transparent), transparent 62%), radial-gradient(80% 40% at 88% 118%, color-mix(in srgb, var(--neon-b) 9%, transparent), transparent 64%), repeating-linear-gradient(90deg, #8ca0dc0b 0 1px, transparent 1px 72px), repeating-linear-gradient(0deg, #8ca0dc08 0 1px, transparent 1px 72px)}}:root[data-skin=neon] body{background-attachment:fixed,fixed,fixed,fixed}:root[data-skin=neon] ::selection{color:#051019;background:var(--neon-a)}:root[data-skin=neon] ::-webkit-scrollbar{width:10px;height:10px}:root[data-skin=neon] ::-webkit-scrollbar-track{background:0 0}:root[data-skin=neon] ::-webkit-scrollbar-thumb{background:var(--neon-a);border:2px solid #0000;border-radius:999px}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] ::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--neon-a) 38%, var(--bg-key))}}:root[data-skin=neon] ::-webkit-scrollbar-thumb{background-clip:content-box}:root[data-skin=neon] .site-header{border-bottom:1px solid var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .site-header{border-bottom:1px solid color-mix(in srgb, var(--neon-a) 16%, var(--border-default))}}:root[data-skin=neon] .site-header{background:linear-gradient(180deg, #bed7ff0d, transparent 72%), var(--bg-canvas)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .site-header{background:linear-gradient(180deg, #bed7ff0d, transparent 72%), color-mix(in srgb, var(--bg-canvas) 78%, transparent)}}:root[data-skin=neon] .site-header:after{content:"";background:linear-gradient(90deg, transparent, var(--neon-a) 18%, var(--neon-b) 82%, transparent);height:1px;position:absolute;inset:auto 0 -1px}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .site-header:after{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--neon-a) 72%, transparent) 18%, color-mix(in srgb, var(--neon-b) 66%, transparent) 82%, transparent)}}:root[data-skin=neon] .site-header:after{box-shadow:0 0 14px var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .site-header:after{box-shadow:0 0 14px color-mix(in srgb, var(--neon-a) 42%, transparent)}}:root[data-skin=neon] .site-header:after{pointer-events:none}:root[data-skin=neon] .brand-mark{color:#07101d;background:linear-gradient(135deg, var(--neon-a), var(--neon-b));box-shadow:inset 0 1px 0 #ffffff59, 0 0 22px -4px var(--neon-a);border:1px solid #d6e8ff66}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .brand-mark{box-shadow:inset 0 1px 0 #ffffff59, 0 0 22px -4px color-mix(in srgb, var(--neon-a) 60%, transparent)}}:root[data-skin=neon] .brand-mark{font-family:var(--font-display);font-weight:700}:root[data-skin=neon] .main-nav{box-shadow:inset 0 1px #d6e8ff1f,inset 0 2px 14px #00000080,0 14px 36px -10px #0000009e}:root[data-skin=neon] .main-nav>.nav-lens{box-shadow:0 0 20px -2px var(--neon-a), inset 0 1px 0 #ffffff47;border-color:#d6e8ff47}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .main-nav>.nav-lens{box-shadow:0 0 20px -2px color-mix(in srgb, var(--neon-a) 52%, transparent), inset 0 1px 0 #ffffff47}}:root[data-skin=neon] .main-nav[data-lens-ready] .nav-item.active,:root[data-skin=neon] .nav-item.active{color:var(--neon-action-text)}:root[data-skin=neon] .nav-item:hover:not(.active){color:var(--text-primary);background:var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .nav-item:hover:not(.active){background:color-mix(in srgb, var(--neon-a) 10%, transparent)}}:root[data-skin=neon] .theme-switch{color:var(--text-primary);border-color:var(--glass-edge)}:root[data-skin=neon] .theme-switch span{color:var(--neon-a)}:root[data-skin=neon] .local-badge span{color:var(--neon-a);font:650 10px/1.4 var(--font-data);letter-spacing:.08em}:root[data-skin=neon] .eyebrow{color:var(--neon-a)}:root[data-skin=neon] .eyebrow:before{content:"// ";color:var(--neon-b)}:root[data-skin=neon] .hero-row h1 em{background:linear-gradient(100deg, var(--neon-a) 12%, var(--neon-b) 88%);color:#0000;filter:drop-shadow(0 0 16px var(--neon-a));-webkit-background-clip:text;background-clip:text}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .hero-row h1 em{filter:drop-shadow(0 0 16px color-mix(in srgb, var(--neon-a) 32%, transparent))}}:root[data-skin=neon] .button.primary,:root[data-skin=neon] .side-action{color:var(--neon-action-text);background:var(--neon-action-fill);box-shadow:inset 0 1px 0 #ffffff38, 0 8px 26px -10px var(--neon-a);border:1px solid #d6e8ff3d}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .button.primary,:root[data-skin=neon] .side-action{box-shadow:inset 0 1px 0 #ffffff38, 0 8px 26px -10px color-mix(in srgb, var(--neon-a) 62%, transparent)}}:root[data-skin=neon] .button.primary:hover:not(:disabled){color:var(--neon-action-text);filter:brightness(1.12)}:root[data-skin=neon] .button.secondary{color:var(--text-primary);border-color:var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .button.secondary{border-color:color-mix(in srgb, var(--neon-a) 30%, var(--border-default))}}:root[data-skin=neon] .button.secondary{background:var(--bg-raised)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .button.secondary{background:color-mix(in srgb, var(--bg-raised) 82%, transparent)}}:root[data-skin=neon] .button.secondary:hover:not(:disabled){border-color:var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .button.secondary:hover:not(:disabled){border-color:color-mix(in srgb, var(--neon-a) 62%, var(--border-default))}}:root[data-skin=neon] .button.secondary:hover:not(:disabled){box-shadow:0 0 18px -6px var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .button.secondary:hover:not(:disabled){box-shadow:0 0 18px -6px color-mix(in srgb, var(--neon-a) 55%, transparent)}}:root[data-skin=neon] .practice-mode-mark,:root[data-skin=neon] .training-tabs button.active,:root[data-skin=neon] .segmented button.active,:root[data-skin=neon] .history-filter button.active,:root[data-skin=neon] .trend-range button.active{color:var(--neon-action-text);background:var(--neon-action-fill);box-shadow:inset 0 1px 0 #fff3, 0 6px 18px -8px var(--neon-a);border-color:#d6e8ff38}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .practice-mode-mark,:root[data-skin=neon] .training-tabs button.active,:root[data-skin=neon] .segmented button.active,:root[data-skin=neon] .history-filter button.active,:root[data-skin=neon] .trend-range button.active{box-shadow:inset 0 1px 0 #fff3, 0 6px 18px -8px color-mix(in srgb, var(--neon-a) 58%, transparent)}}:root[data-skin=neon] .practice-actions button.active{color:var(--neon-a);border-color:var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .practice-actions button.active{border-color:color-mix(in srgb, var(--neon-a) 55%, var(--border-default))}}:root[data-skin=neon] .practice-actions button.active{background:var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .practice-actions button.active{background:color-mix(in srgb, var(--neon-a) 14%, var(--bg-raised))}}:root[data-skin=neon] .practice-actions button.active{box-shadow:0 0 16px -6px var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .practice-actions button.active{box-shadow:0 0 16px -6px color-mix(in srgb, var(--neon-a) 50%, transparent)}}:root[data-skin=neon] .toolbar-actions .shuffle-action{border-color:var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .toolbar-actions .shuffle-action{border-color:color-mix(in srgb, var(--neon-a) 42%, var(--border-default))}}:root[data-skin=neon] .toolbar-actions .shuffle-action{background:var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .toolbar-actions .shuffle-action{background:color-mix(in srgb, var(--neon-a) 9%, var(--bg-raised))}}:root[data-skin=neon] .typing-card,:root[data-skin=neon] .side-panel,:root[data-skin=neon] .challenge-card,:root[data-skin=neon] .history-panel,:root[data-skin=neon] .settings-card,:root[data-skin=neon] .summary-card,:root[data-skin=neon] .lookup-search,:root[data-skin=neon] .lookup-results,:root[data-skin=neon] .trend-panel,:root[data-skin=neon] .daily-progress-card,:root[data-skin=neon] .smart-plan-card,:root[data-skin=neon] .due-review-card,:root[data-skin=neon] .hesitation-queue-card,:root[data-skin=neon] .management-card,:root[data-skin=neon] .pwa-card{border-color:var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .typing-card,:root[data-skin=neon] .side-panel,:root[data-skin=neon] .challenge-card,:root[data-skin=neon] .history-panel,:root[data-skin=neon] .settings-card,:root[data-skin=neon] .summary-card,:root[data-skin=neon] .lookup-search,:root[data-skin=neon] .lookup-results,:root[data-skin=neon] .trend-panel,:root[data-skin=neon] .daily-progress-card,:root[data-skin=neon] .smart-plan-card,:root[data-skin=neon] .due-review-card,:root[data-skin=neon] .hesitation-queue-card,:root[data-skin=neon] .management-card,:root[data-skin=neon] .pwa-card{border-color:color-mix(in srgb, var(--neon-a) 18%, var(--border-default))}}:root[data-skin=neon] .typing-card,:root[data-skin=neon] .side-panel,:root[data-skin=neon] .challenge-card,:root[data-skin=neon] .history-panel,:root[data-skin=neon] .settings-card,:root[data-skin=neon] .summary-card,:root[data-skin=neon] .lookup-search,:root[data-skin=neon] .lookup-results,:root[data-skin=neon] .trend-panel,:root[data-skin=neon] .daily-progress-card,:root[data-skin=neon] .smart-plan-card,:root[data-skin=neon] .due-review-card,:root[data-skin=neon] .hesitation-queue-card,:root[data-skin=neon] .management-card,:root[data-skin=neon] .pwa-card{background-color:var(--bg-paper);box-shadow:var(--shadow-panel), 0 0 46px -22px var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .typing-card,:root[data-skin=neon] .side-panel,:root[data-skin=neon] .challenge-card,:root[data-skin=neon] .history-panel,:root[data-skin=neon] .settings-card,:root[data-skin=neon] .summary-card,:root[data-skin=neon] .lookup-search,:root[data-skin=neon] .lookup-results,:root[data-skin=neon] .trend-panel,:root[data-skin=neon] .daily-progress-card,:root[data-skin=neon] .smart-plan-card,:root[data-skin=neon] .due-review-card,:root[data-skin=neon] .hesitation-queue-card,:root[data-skin=neon] .management-card,:root[data-skin=neon] .pwa-card{box-shadow:var(--shadow-panel), 0 0 46px -22px color-mix(in srgb, var(--neon-a) 50%, transparent)}}:root[data-skin=neon] .typing-card,:root[data-skin=neon] .challenge-card,:root[data-skin=neon] .trend-panel{border-top:1px solid var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .typing-card,:root[data-skin=neon] .challenge-card,:root[data-skin=neon] .trend-panel{border-top:1px solid color-mix(in srgb, var(--neon-a) 32%, transparent)}}:root[data-skin=neon] .metric{border-color:var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .metric{border-color:color-mix(in srgb, var(--neon-a) 18%, var(--border-default))}}:root[data-skin=neon] .metric strong{font-family:var(--font-data);letter-spacing:-.03em}:root[data-skin=neon] .metric.primary-metric,:root[data-skin=neon] .metric.primary-metric.is-active{color:var(--neon-action-text);background:var(--neon-action-fill);box-shadow:inset 0 1px 0 #ffffff38, 0 10px 30px -12px var(--neon-a);border-color:#d6e8ff38}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .metric.primary-metric,:root[data-skin=neon] .metric.primary-metric.is-active{box-shadow:inset 0 1px 0 #ffffff38, 0 10px 30px -12px color-mix(in srgb, var(--neon-a) 62%, transparent)}}:root[data-skin=neon] .metric.primary-metric:before{content:"";opacity:.55;border-top:2px solid #fff9;border-left:2px solid #fff9;width:12px;height:12px;position:absolute;inset:7px auto auto 7px}:root[data-skin=neon] .summary-card strong{font-family:var(--font-data)}:root[data-skin=neon] .summary-card.accent{color:var(--neon-action-text);background:var(--neon-action-fill);border-color:#d6e8ff38}:root[data-skin=neon] .article-text{color:var(--text-secondary);position:relative}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .article-text{color:color-mix(in srgb, var(--text-secondary) 80%, var(--neon-a))}}:root[data-skin=neon] .article-text{background-color:var(--bg-paper);background-image:repeating-linear-gradient(0deg, #bed2ff07 0 1px, transparent 1px 3px), radial-gradient(130% 80% at 50% 0%, var(--neon-a), transparent 58%), linear-gradient(90deg, transparent 0 43px, var(--neon-b) 43px 44px, transparent 44px)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .article-text{background-image:repeating-linear-gradient(0deg, #bed2ff07 0 1px, transparent 1px 3px), radial-gradient(130% 80% at 50% 0%, color-mix(in srgb, var(--neon-a) 7%, transparent), transparent 58%), linear-gradient(90deg, transparent 0 43px, color-mix(in srgb, var(--neon-b) 42%, transparent) 43px 44px, transparent 44px)}}:root[data-skin=neon] .article-text{box-shadow:inset 0 0 52px -18px var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .article-text{box-shadow:inset 0 0 52px -18px color-mix(in srgb, var(--neon-a) 52%, transparent)}}:root[data-skin=neon] .article-text span.correct{color:var(--state-success);text-shadow:0 0 9px var(--state-success)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .article-text span.correct{text-shadow:0 0 9px color-mix(in srgb, var(--state-success) 38%, transparent)}}:root[data-skin=neon] .article-text span.wrong{color:var(--state-error);text-shadow:0 0 9px var(--state-error)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .article-text span.wrong{text-shadow:0 0 9px color-mix(in srgb, var(--state-error) 40%, transparent)}}:root[data-skin=neon] .article-text span.current{color:#f4fbff;outline:1px solid var(--neon-a);border-radius:6px}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .article-text span.current{outline:1px solid color-mix(in srgb, var(--neon-a) 85%, transparent)}}:root[data-skin=neon] .article-text span.current{background:var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .article-text span.current{background:color-mix(in srgb, var(--neon-a) 20%, transparent)}}:root[data-skin=neon] .article-text span.current{box-shadow:0 0 16px var(--neon-a), inset 0 0 10px var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .article-text span.current{box-shadow:0 0 16px color-mix(in srgb, var(--neon-a) 45%, transparent), inset 0 0 10px color-mix(in srgb, var(--neon-a) 18%, transparent)}}@media (prefers-reduced-motion:no-preference){:root[data-skin=neon] .article-text span.current{animation:1.3s ease-in-out infinite neon-caret-breathe}}@keyframes neon-caret-breathe{0%,to{box-shadow:0 0 16px color-mix(in srgb, var(--neon-a) 45%, transparent), inset 0 0 10px color-mix(in srgb, var(--neon-a) 18%, transparent)}50%{box-shadow:0 0 5px color-mix(in srgb, var(--neon-a) 20%, transparent), inset 0 0 4px color-mix(in srgb, var(--neon-a) 8%, transparent)}}:root[data-skin=neon] .typing-input{border-top:1px solid var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .typing-input{border-top:1px solid color-mix(in srgb, var(--neon-a) 22%, var(--border-subtle))}}:root[data-skin=neon] .typing-input{background:linear-gradient(180deg, #bed2ff05, transparent), var(--bg-raised)}:root[data-skin=neon] .ghost-progress-marker{border-left:2px dashed var(--neon-b);filter:drop-shadow(0 0 4px var(--neon-b))}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .ghost-progress-marker{filter:drop-shadow(0 0 4px color-mix(in srgb, var(--neon-b) 60%, transparent))}}:root[data-skin=neon] .ghost-progress-marker:before{color:var(--neon-b)}:root[data-skin=neon] .root-rail,:root[data-skin=neon] .root-zone-rail{border-block-color:var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .root-rail,:root[data-skin=neon] .root-zone-rail{border-block-color:color-mix(in srgb, var(--neon-a) 16%, var(--border-subtle))}}:root[data-skin=neon] .root-rail,:root[data-skin=neon] .root-zone-rail{background:linear-gradient(180deg, var(--neon-a), transparent), var(--bg-raised)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .root-rail,:root[data-skin=neon] .root-zone-rail{background:linear-gradient(180deg, color-mix(in srgb, var(--neon-a) 5%, transparent), transparent), var(--bg-raised)}}:root[data-skin=neon] .root-rail b,:root[data-skin=neon] .root-zone-rail strong{color:var(--neon-a)}:root[data-skin=neon] .root-zone-rail button.active strong{color:var(--text-on-accent)}:root[data-skin=neon] .keyboard-visual span,:root[data-skin=neon] .code-slots span{border-color:var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .keyboard-visual span,:root[data-skin=neon] .code-slots span{border-color:color-mix(in srgb, var(--neon-a) 26%, var(--border-default))}}:root[data-skin=neon] .keyboard-visual span,:root[data-skin=neon] .code-slots span{background:linear-gradient(180deg, #bed2ff0d, transparent), var(--bg-key);box-shadow:inset 0 -2px 0 var(--neon-a), inset 0 1px 0 #d6e8ff24, 0 0 12px -4px var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .keyboard-visual span,:root[data-skin=neon] .code-slots span{box-shadow:inset 0 -2px 0 color-mix(in srgb, var(--neon-a) 45%, transparent), inset 0 1px 0 #d6e8ff24, 0 0 12px -4px color-mix(in srgb, var(--neon-a) 55%, transparent)}}:root[data-skin=neon] .challenge-start:before{background:linear-gradient(135deg, var(--neon-a), var(--neon-b));color:#0000;filter:drop-shadow(0 0 18px var(--neon-a));-webkit-background-clip:text;background-clip:text}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .challenge-start:before{filter:drop-shadow(0 0 18px color-mix(in srgb, var(--neon-a) 38%, transparent))}}:root[data-skin=neon] .challenge-card{background:radial-gradient(circle at 50% 0%, var(--neon-a), transparent 62%), var(--bg-paper)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .challenge-card{background:radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--neon-a) 7%, transparent), transparent 62%), var(--bg-paper)}}:root[data-skin=neon] .lookup-row code{color:var(--neon-a)}:root[data-skin=neon] .modal-backdrop{background:#05070fbd}:root[data-skin=neon] .modal{border-color:var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .modal{border-color:color-mix(in srgb, var(--neon-a) 26%, var(--border-default))}}:root[data-skin=neon] .modal{box-shadow:0 30px 80px -20px #000000b8, 0 0 50px -18px var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .modal{box-shadow:0 30px 80px -20px #000000b8, 0 0 50px -18px color-mix(in srgb, var(--neon-a) 45%, transparent)}}:root[data-skin=neon] .site-footer{border-top:1px solid var(--neon-a)}@supports (color:color-mix(in lab, red, red)){:root[data-skin=neon] .site-footer{border-top:1px solid color-mix(in srgb, var(--neon-a) 14%, var(--border-default))}}:root[data-skin=neon] .site-footer b{color:var(--neon-a);font-family:var(--font-data);letter-spacing:.08em}html[data-skin=roots]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--text-on-accent:#fff;--bg-canvas:#efe8d8;--bg-paper:#f7f1e4;--bg-raised:#e7dfcc;--bg-key:#f7f1e4;--text-primary:#2b2b2b;--text-secondary:#4a453c;--border-default:#2b2b2b;--border-subtle:#d5ccb8;--border-strong:#2b2b2b;--accent-vermilion:#a52a22;--accent-vermilion-fill:#c43228;--accent-vermilion-dark:#8e241c;--accent-bamboo:#1d4e89;--accent-bamboo-fill:#1f7a4d;--progress-fill:#f5d90a;--state-success:#1f7a4d;--state-success-fill:#1f7a4d;--state-error:#c43228;--state-error-fill:#c43228;--focus-ring:#1d4e89;--shadow-key:none;--shadow-panel:none;--font-display:"PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", "Microsoft YaHei", sans-serif;--font-reading:"PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", "Microsoft YaHei", sans-serif;--font-body:"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--radius-small:0;--radius-medium:0;--radius-large:0;--roots-yellow:#f5d90a;--roots-red:#c43228;--roots-blue:#1d4e89;--roots-green:#1f7a4d;--roots-ink:#2b2b2b;--roots-news:#efe8d8}html[data-skin=roots][data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-canvas:#1a1712;--bg-paper:#241f18;--bg-raised:#2e2820;--bg-key:#241f18;--text-primary:#f3ead8;--text-secondary:#c3b7a2;--border-default:#f3ead8;--border-subtle:#4a4338;--border-strong:#f3ead8;--roots-news:#1a1712}@media (prefers-color-scheme:dark){html[data-skin=roots][data-theme=system]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-canvas:#1a1712;--bg-paper:#241f18;--bg-raised:#2e2820;--bg-key:#241f18;--text-primary:#f3ead8;--text-secondary:#c3b7a2;--border-default:#f3ead8;--border-subtle:#4a4338;--border-strong:#f3ead8;--roots-news:#1a1712}}html[data-skin=roots][data-theme=bamboo]{--bg-canvas:#e7f0e4;--bg-paper:#f3f7f0;--roots-news:#e7f0e4}html[data-skin=roots][data-theme=qingdai]{--bg-canvas:#e4ebf2;--bg-paper:#f2f6f8;--roots-news:#e4ebf2}html[data-skin=roots][data-theme=custom]{color-scheme:var(--custom-color-scheme,light);--bg-canvas:var(--custom-canvas,#efe8d8);--bg-paper:var(--custom-paper,#f7f1e4);--bg-raised:var(--custom-raised,#e7dfcc);--text-primary:var(--custom-text,#2b2b2b);--text-secondary:var(--custom-text-secondary,#4a453c);--border-default:var(--custom-text,#2b2b2b);--border-strong:var(--custom-text,#2b2b2b);--roots-news:var(--custom-canvas,#efe8d8)}html[data-skin=roots] body{background:var(--roots-news);color:var(--text-primary);font-family:var(--font-body);background-image:none}html[data-skin=roots] .eyebrow{display:none}html[data-skin=roots] .site-header{background:var(--roots-news);box-shadow:none;-webkit-backdrop-filter:none;border:0;border-radius:0}html[data-skin=roots] .header-inner{flex-direction:column;gap:0;width:100%;min-height:0;margin:0;padding:0;display:flex}html[data-skin=roots] .brand{display:none}html[data-skin=roots] .main-nav{width:100%;box-shadow:none;background:0 0;border:0;border-radius:0;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;display:grid;overflow:visible}html[data-skin=roots] .main-nav>.nav-lens{box-shadow:inset 0 -6px 0 var(--roots-yellow);background:0 0;border:0;border-radius:0}html[data-skin=roots] .main-nav:has(.nav-item:nth-child(2).active)>.nav-lens{box-shadow:inset 0 -6px 0 var(--roots-ink)}html[data-skin=roots] .nav-item{color:#fff;min-width:0;min-height:54px;box-shadow:none;background:#4e4942;border:0;border-radius:0;padding:8px 6px}html[data-skin=roots] .nav-item:before,html[data-skin=roots] .nav-item:after{display:none}html[data-skin=roots] .nav-item strong{font:700 14px/1.25 var(--font-body);letter-spacing:.04em}html[data-skin=roots] .nav-item:nth-child(2){background:var(--roots-yellow);color:var(--roots-ink)}html[data-skin=roots] .nav-item:nth-child(3){background:var(--roots-red);color:#fff}html[data-skin=roots] .nav-item:nth-child(4){background:var(--roots-blue);color:#fff}html[data-skin=roots] .nav-item:nth-child(5){background:var(--roots-green);color:#fff}html[data-skin=roots] .nav-item:nth-child(6){background:var(--roots-ink);color:#fff}html[data-skin=roots] .nav-item:nth-child(7){color:#fff;background:#4e4942}html[data-skin=roots] .nav-item:hover,html[data-skin=roots] .nav-item.active{background:inherit;color:inherit}html[data-skin=roots] .nav-item:nth-child(2):hover,html[data-skin=roots] .nav-item:nth-child(2).active{background:var(--roots-yellow);color:var(--roots-ink)}html[data-skin=roots] .nav-item:nth-child(3):hover,html[data-skin=roots] .nav-item:nth-child(3).active{background:var(--roots-red);color:#fff}html[data-skin=roots] .nav-item:nth-child(4):hover,html[data-skin=roots] .nav-item:nth-child(4).active{background:var(--roots-blue);color:#fff}html[data-skin=roots] .nav-item:nth-child(5):hover,html[data-skin=roots] .nav-item:nth-child(5).active{background:var(--roots-green);color:#fff}html[data-skin=roots] .nav-item:nth-child(6):hover,html[data-skin=roots] .nav-item:nth-child(6).active{background:var(--roots-ink);color:#fff}html[data-skin=roots] .header-utilities{border-bottom:4px solid var(--text-primary);background:var(--roots-news);justify-content:flex-end;align-items:center;gap:10px;padding:8px 16px;display:flex}html[data-skin=roots] .theme-switch,html[data-skin=roots] .button,html[data-skin=roots] .local-badge{-webkit-backdrop-filter:none;box-shadow:none;border-radius:0}html[data-skin=roots] .theme-switch,html[data-skin=roots] .button.secondary{color:var(--text-primary);border:2px solid var(--text-primary);background:0 0}html[data-skin=roots] .button.primary{color:var(--roots-yellow);border:2px solid var(--text-primary);background:var(--roots-ink)}html[data-skin=roots] .button:active:not(:disabled),html[data-skin=roots] .theme-switch:active:not(:disabled),html[data-skin=roots] .practice-actions button:active:not(:disabled),html[data-skin=roots] .toolbar-actions button:active:not(:disabled){transform:translateY(2px)}html[data-skin=roots] .page-wrap{width:100%;max-width:none;padding:0 0 24px}html[data-skin=roots] .site-footer{border-top:4px solid var(--text-primary);box-shadow:none;background:0 0;border-radius:0}html[data-skin=roots] .workspace-grid{display:block}html[data-skin=roots] .roots-sheet,html[data-skin=roots] .typing-card{box-shadow:none;background:0 0;border:0;border-radius:0}html[data-skin=roots] .roots-sheet{grid-template-columns:minmax(240px,320px) minmax(0,1fr);align-items:start;display:grid}html[data-skin=roots] .roots-bench{display:contents}html[data-skin=roots] .roots-sheet>:not(.roots-bench){grid-column:2}html[data-skin=roots] .roots-plate{border-right:4px solid var(--text-primary);background:repeating-linear-gradient(0deg, transparent 0 7px, var(--roots-ink) 7px 8px), var(--roots-news);grid-area:1/1/span 12;align-self:stretch;min-height:100%;padding:22px 20px 28px}@supports (color:color-mix(in lab, red, red)){html[data-skin=roots] .roots-plate{background:repeating-linear-gradient(0deg, transparent 0 7px, color-mix(in srgb, var(--roots-ink) 8%, transparent) 7px 8px), var(--roots-news)}}html[data-skin=roots] .roots-plate small{font:700 12px/1.4 var(--font-data);letter-spacing:.14em}html[data-skin=roots] .roots-glyph{font:750 clamp(88px, 11vw, 148px)/.9 var(--font-body);letter-spacing:-.06em;margin:4px 0 16px}html[data-skin=roots] .roots-keys{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}html[data-skin=roots] .roots-keys div{border:3px solid var(--text-primary);min-height:84px;color:var(--text-primary);background:0 0;flex-direction:column;justify-content:space-between;padding:8px 10px;display:flex}html[data-skin=roots] .roots-keys div[data-zone=pie]{border-color:var(--roots-yellow)}html[data-skin=roots] .roots-keys div[data-zone=na]{border-color:var(--roots-red)}html[data-skin=roots] .roots-keys div[data-zone=heng]{border-color:var(--roots-blue)}html[data-skin=roots] .roots-keys div[data-zone=shu]{border-color:var(--roots-green)}html[data-skin=roots] .roots-keys div[data-zone=zhe],html[data-skin=roots] .roots-keys div[data-zone=mark]{border-color:var(--roots-ink)}html[data-skin=roots] .roots-keys b{font:750 36px/1 var(--font-body)}html[data-skin=roots] .roots-keys span{font:700 14px/1 var(--font-data);letter-spacing:.08em}html[data-skin=roots] .roots-keys div.is-stamped{background:var(--roots-ink);color:#fff;animation:.14s cubic-bezier(.2,0,0,1) both roots-stamp}html[data-skin=roots] .roots-keys div[data-zone=pie].is-stamped{background:var(--roots-yellow);color:var(--roots-ink)}html[data-skin=roots] .roots-keys div[data-zone=na].is-stamped{background:var(--roots-red);color:#fff}html[data-skin=roots] .roots-keys div[data-zone=heng].is-stamped{background:var(--roots-blue);color:#fff}html[data-skin=roots] .roots-keys div[data-zone=shu].is-stamped{background:var(--roots-green);color:#fff}html[data-skin=roots] .roots-code{font:700 28px/1 var(--font-data);letter-spacing:.18em;margin-top:14px}html[data-skin=roots] .practice-commandbar,html[data-skin=roots] .typing-toolbar,html[data-skin=roots] .ghost-live-card{border:0;border-bottom:1px solid var(--text-primary);box-shadow:none;background:0 0;border-radius:0;margin:0}html[data-skin=roots] .practice-commandbar,html[data-skin=roots] .typing-toolbar{padding:14px 28px 12px}html[data-skin=roots] .code-hint-card{display:none}html[data-skin=roots] .article-text{height:min(62vh,640px);min-height:280px;max-height:none;color:var(--text-primary);font-family:var(--font-body);letter-spacing:.01em;background:0 0;border:0;margin:0;padding:18px 28px 20px;font-weight:600;line-height:1.8}html[data-skin=roots] .article-text span.correct{color:var(--roots-ink);background:var(--roots-yellow)}html[data-skin=roots] .article-text span.wrong{color:#fff;background:var(--roots-red)}html[data-skin=roots] .article-text span.current{color:var(--roots-yellow);background:var(--roots-ink);box-shadow:none;animation:none}html[data-skin=roots] .article-text span:not(.correct):not(.wrong):not(.current):not(.paragraph-break){color:var(--text-secondary);background:0 0}html[data-skin=roots] .typing-footer{padding:8px 28px 16px}html[data-skin=roots] :is(.subpage-heading,.history-heading,.training-heading,.settings-card,.training-plan,.adaptive-plan-card,.due-review-card,.hesitation-queue-card,.trend-panel,.lookup-card){box-shadow:none;border-radius:0}html[data-skin=roots] .music-dock{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--bg-paper);border:2px solid var(--text-primary);box-shadow:none;border-radius:0}html[data-skin=roots] .roots-glyph{animation:.28s cubic-bezier(.2,0,0,1) both roots-glyph-in}html[data-skin=roots] .roots-keys div{animation:.28s cubic-bezier(.2,0,0,1) both roots-block-in}html[data-skin=roots] .roots-keys div:nth-child(2){animation-delay:40ms}html[data-skin=roots] .roots-keys div:nth-child(3){animation-delay:80ms}html[data-skin=roots] .roots-keys div:nth-child(4){animation-delay:.12s}@keyframes roots-stamp{0%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes roots-glyph-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes roots-block-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (max-width:780px){html[data-skin=roots] .main-nav{grid-template-columns:repeat(3,minmax(0,1fr))}html[data-skin=roots] .roots-sheet{grid-template-columns:1fr}html[data-skin=roots] .roots-bench{flex-direction:column;display:flex}html[data-skin=roots] .roots-sheet>:not(.roots-bench),html[data-skin=roots] .roots-plate,html[data-skin=roots] .article-text{grid-area:auto}html[data-skin=roots] .roots-plate{border-right:0;border-bottom:4px solid var(--text-primary);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px 16px;padding:12px 16px 16px;display:grid}html[data-skin=roots] .roots-plate small{grid-column:1/-1}html[data-skin=roots] .roots-glyph{margin:0;font-size:72px}html[data-skin=roots] .roots-code{margin:0;font-size:20px}html[data-skin=roots] .practice-commandbar,html[data-skin=roots] .typing-toolbar,html[data-skin=roots] .article-text,html[data-skin=roots] .typing-footer{padding-inline:16px}}@media (prefers-reduced-motion:reduce){html[data-skin=roots] .roots-glyph,html[data-skin=roots] .roots-keys div,html[data-skin=roots] .roots-keys div.is-stamped,html[data-skin=roots] .button:active:not(:disabled),html[data-skin=roots] .theme-switch:active:not(:disabled){animation:none;transform:none}}html[data-skin=roots] .main-nav .nav-item:nth-child(2){--nav-fill:#f5d90a;--nav-ink:#2b2b2b}html[data-skin=roots] .main-nav .nav-item:nth-child(3){--nav-fill:#c43228}html[data-skin=roots] .main-nav .nav-item:nth-child(4){--nav-fill:#1d4e89}html[data-skin=roots] .main-nav .nav-item:nth-child(5){--nav-fill:#1f7a4d}html[data-skin=roots] .main-nav .nav-item:nth-child(6){--nav-fill:#2b2b2b}html[data-skin=roots] .main-nav .nav-item:nth-child(7){--nav-fill:#4e4942}html[data-skin=roots] .main-nav[data-lens-ready] .nav-item.active,html[data-skin=roots] .main-nav[data-lens-ready] .nav-item,html[data-skin=roots] .main-nav .nav-item:hover,html[data-skin=roots] .main-nav .nav-item.active{background:var(--nav-fill);color:var(--nav-ink,#fff)}html[data-skin=roots] .article-heading h1{font:750 26px/1.3 var(--font-body);margin:6px 0 0}:is(html[data-skin=roots] .ghost-mode-picker label:has(input:checked),html[data-skin=roots] .theme-preview-toolbar>span){color:var(--text-primary)}html[data-skin=roots] .article-kicker,html[data-skin=roots] .practice-mode-mark{color:var(--text-primary);background:0 0}html[data-skin=roots] .article-text span.current{border-radius:0;outline:0}html[data-skin=roots] .article-text{height:min(46vh,440px)}html[data-skin=roots] .header-utilities{width:100%}html[data-skin=roots] .site-header{padding:0}@media (max-width:780px){html[data-skin=roots] .roots-keys{grid-template-columns:repeat(4,minmax(0,1fr))}html[data-skin=roots] .roots-keys div{min-height:64px;padding:6px}html[data-skin=roots] .roots-keys b{font-size:24px}html[data-skin=roots] .roots-code{grid-column:2}}html[data-skin=roots] .roots-progress{accent-color:#1f7a4d;width:100%;height:8px;margin-top:24px}@media (max-width:780px){html[data-skin=roots] .roots-progress{grid-column:1/-1;margin-top:0}}html[data-skin=roots] .skin-option:has(input:checked){background:var(--bg-paper)}html[data-skin=roots] .header-utilities{position:static;inset:auto}html[data-skin=roots] .app-shell:not([data-view=typing]) .page-wrap{width:calc(100% - 48px);max-width:1440px;margin-inline:auto;padding-top:24px}@media (max-width:780px){html[data-skin=roots] .roots-sheet{flex-direction:column;display:flex}html[data-skin=roots] .roots-sheet>*{width:100%}html[data-skin=roots] .roots-sheet>.typing-toolbar{order:0}html[data-skin=roots] .roots-sheet>.roots-bench{order:1}html[data-skin=roots] .roots-sheet>.typing-input{order:2}html[data-skin=roots] .roots-sheet>.typing-footer{order:3}html[data-skin=roots] .roots-sheet>.practice-commandbar{order:4}html[data-skin=roots] .article-text{height:180px;min-height:180px}html[data-skin=roots] .app-shell:not([data-view=typing]) .page-wrap{width:calc(100% - 24px)}}@media (prefers-reduced-motion:reduce){html[data-skin=roots] .practice-actions button:active:not(:disabled),html[data-skin=roots] .toolbar-actions button:active:not(:disabled){transform:none}}button,a.skip-link,a.brand,input:not([type=checkbox]):not([type=radio]):not([type=file]),select{min-width:44px;min-height:44px}select{height:44px}.music-dock button{flex-shrink:0;min-width:44px;min-height:44px}:is(label:has(>input[type=checkbox]),label:has(>input[type=radio])){min-width:44px;min-height:44px}.metric.primary-metric>span{color:var(--text-on-accent)}.article-text:focus-visible,[tabindex="-1"]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}.license-card>a{align-items:center;min-height:44px;display:inline-flex}.theme-switch{min-height:44px}.practice-mode>span,.practice-actions>button:not(:disabled){color:var(--text-primary)}.music-dock .music-ruler>button{cursor:pointer;background:0 0;border:0;border-radius:3px;align-items:center;width:100%;min-width:44px;height:44px;padding:0 2px;display:grid}.skip-link{z-index:120;border-radius:var(--radius-small);color:var(--text-on-accent);background:var(--accent-bamboo-fill);padding:10px 16px;font-weight:600;position:fixed;top:8px;left:8px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
