.share-game{display:flex;justify-content:flex-end;margin:-12px 0 14px}.share-game>.text-button{font-size:12px}.install-banner{display:flex;align-items:center;gap:12px;margin:0 0 22px;padding:13px 16px;background:var(--neutral-4);border:1px solid var(--neutral-5);border-radius:8px;color:var(--green-11)}.install-banner p{flex:1;font-size:13px;line-height:1.5}.install-banner .secondary{font-size:12px;flex-shrink:0}.install-dialog{border:1px solid var(--neutral-5);border-radius:14px;max-width:540px;width:calc(100% - 28px);max-height:calc(100dvh - 32px);padding:26px;color:var(--neutral-12);background:var(--neutral-1);box-shadow:0 25px 80px color-mix(in oklch,var(--neutral-12) 38%,transparent);overflow:auto}.install-dialog::backdrop{background:color-mix(in oklch,var(--neutral-12) 65%,transparent)}.install-title{display:flex;align-items:center;gap:13px;margin-bottom:18px}.install-title img{border-radius:10px}.install-title h2{font-size:26px;flex:1}.install-title .text-button{flex-shrink:0;min-width:36px}.install-dialog>p{font-size:14px;line-height:1.7;margin:14px 0}.install-dialog>.primary{margin:8px 0 18px}.install-platforms{margin:23px 0 13px}.install-platforms button{font-size:12px;min-height:44px;padding:10px 12px}.install-dialog ol{padding-left:22px;font-size:14px;line-height:1.7}.install-dialog li{padding-left:4px;margin:13px 0}.install-dialog .install-connection{font-size:12px;color:var(--neutral-9);border-top:1px solid var(--neutral-5);padding-top:15px}.install-message{background:var(--neutral-3);padding:12px;border-radius:6px}@media(max-width:620px){.install-banner{flex-wrap:wrap;gap:9px;padding:13px}.install-banner p{font-size:12px;min-width:180px}.install-banner .secondary{width:100%;min-height:44px}.install-dialog{padding:21px}.install-title h2{font-size:23px}.install-title{gap:10px}.install-title img{width:40px;height:40px}}.auth-page{max-width:1100px;margin:auto;padding:36px 28px;color:var(--ink, var(--green-12))}.auth-brand{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-display);font-size:25px;text-decoration:none;color:inherit}.auth-brand span{font-size:36px}.auth-layout{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start;margin-top:70px}.auth-intro h1{font-size:clamp(38px,5vw,62px);line-height:1.12;margin:16px 0 24px}.auth-intro p{font-size:17px;line-height:1.65}.auth-intro ul{padding-left:22px;line-height:2.2;margin:24px 0}.auth-card{background:var(--neutral-1);border:1px solid var(--neutral-5);border-radius:18px;padding:30px;box-shadow:0 12px 40px color-mix(in oklch,var(--green-12) 6%,transparent)}.auth-card h2{font-size:29px;margin:10px 0 14px}.auth-card p{line-height:1.6;color:var(--neutral-10)}.auth-card form,.auth-card label{display:flex;flex-direction:column;gap:8px}.auth-card label{font-weight:600;margin:18px 0 5px}.auth-card input{width:100%;min-width:0;background:var(--neutral-1);border:1px solid var(--neutral-7);border-radius:8px;padding:12px 14px;font:inherit;color:var(--green-12);min-height:48px}.auth-card small{color:var(--neutral-10);font-size:13px}.auth-card .primary{width:100%;margin-top:20px;justify-content:center;min-height:50px}.auth-card button{white-space:normal}.auth-switch{display:flex;flex-direction:column;gap:12px;align-items:center;margin-top:24px}.auth-switch button{background:none;border:0;text-decoration:underline;text-underline-offset:4px;color:var(--neutral-11);min-height:36px;font:inherit;cursor:pointer}.auth-card .account-check{flex-direction:row;align-items:flex-start;gap:12px;font-weight:400;line-height:1.5}.account-check input{width:22px;min-height:22px;flex-shrink:0;margin:0}.auth-card .recovery-code{font-family:monospace;font-size:15px}.auth-footer{text-align:center;margin-top:50px;color:var(--neutral-9);font-size:14px}.account-error{color:var(--red-10)!important;background:var(--neutral-2);padding:12px;border-radius:8px;overflow-wrap:anywhere}.account-notice{display:flex;gap:8px 20px;align-items:center;flex-wrap:wrap;border-bottom:1px solid var(--neutral-5);padding:0 0 14px;margin-bottom:28px;font-size:13px;color:var(--green-10)}.account-notice a{color:inherit;text-underline-offset:3px}.account-notice a:first-child{font-weight:650;text-decoration:none}.account-notice.sync-offline,.account-notice.sync-conflict{color:var(--red-10)}.account-panel{display:flex!important;flex-direction:column;align-items:stretch!important;gap:16px}.account-panel p{line-height:1.6;margin:0}.account-panel h2,.account-panel h3{margin:0 0 10px}.account-panel>.secondary{align-self:flex-start}.account-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}.account-migration,.account-conflict{background:var(--neutral-2);border:1px solid var(--neutral-5);padding:22px;border-radius:12px}.account-migration>.primary{margin-top:16px}.account-conflict{background:var(--neutral-1);border-color:var(--yellow-5)}.account-conflict>.secondary{margin-top:16px}@media(max-width:700px){.auth-page{padding:22px 18px}.auth-layout{display:flex;flex-direction:column;gap:26px;margin-top:30px}.auth-intro h1{font-size:36px;margin:10px 0}.auth-intro>p:not(.eyebrow),.auth-intro ul{display:none}.auth-intro .install-app{margin-top:15px}.auth-card{padding:22px;width:100%}.auth-footer{margin-top:26px}.account-actions{flex-direction:column}.account-actions button{justify-content:center;width:100%}.account-migration,.account-conflict{padding:16px}.account-notice{font-size:12px}}.assessment-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,300px);gap:28px;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:12px;margin:28px 0}.assessment-panel h2,.recommended-lessons h2{margin:8px 0 14px}.assessment-panel p,.recommended-lessons>p{line-height:1.7}.assessment-actions{display:flex;flex-direction:column;justify-content:center;gap:14px}.assessment-actions label{display:flex;flex-direction:column;gap:8px}.assessment-actions select{background:var(--field);color:var(--ink);border:1px solid var(--line);padding:12px;border-radius:7px;max-width:100%}.assessment-actions small{color:var(--muted);line-height:1.5}.recommended-lessons{margin:28px 0 40px}.recommendation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.recommendation-card{padding:24px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.recommendation-card h3{font-size:23px;line-height:1.3;margin:16px 0}.recommendation-card p{font-size:14px;line-height:1.7}.recommendation-card details{margin-top:18px}.recommendation-card details button{display:flex;text-align:left}.level-evidence{color:var(--muted);font-size:13px!important}.exercise-tools{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.exercise-tools button{flex:1;white-space:normal;min-height:44px}.solution-section:focus{outline:none}.guided-study{background:var(--surface);padding:22px;border:1px solid var(--line);border-radius:12px;margin:16px 0}.guided-study .study-top{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.guided-study .study-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.7fr);gap:24px}.guided-study p{line-height:1.7}.study-controls{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.study-caption{min-height:48px}.study-target{font-weight:600}.opening-context-note{padding:14px;border:1px solid var(--line);border-radius:8px;line-height:1.6;margin:12px 0}.lesson-level{margin:0 0 20px;color:var(--muted);line-height:1.6}@media(max-width:700px){.assessment-panel,.recommendation-grid,.guided-study .study-layout{grid-template-columns:1fr}.assessment-panel,.recommendation-card,.guided-study{padding:17px}.exercise-tools{gap:6px}.exercise-tools button{font-size:12px;padding:10px}.study-controls button{flex-grow:1}.guided-study .study-layout{gap:12px}}.guided-study,.study-board,.solution-section{scroll-margin-top:88px}.guided-study:focus{outline:none}.study-side{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:15px 0}.study-side select{padding:12px;background:var(--field);color:var(--ink);border:1px solid var(--line);border-radius:7px;max-width:100%}.study-caption{font-weight:600}.chessboard .square.wrong-square{background:#d85b5b!important;box-shadow:inset 0 0 0 4px #981d29,inset 0 0 0 6px #ffd6d6}.retry-move,.solution-move{width:100%;margin:5px 0}.opening-track{padding:15px;margin:18px 0;border:1px solid var(--line);border-radius:9px}.opening-track label{display:flex;flex-direction:column;gap:8px;margin-top:12px}.opening-track select{width:100%;padding:12px;border:1px solid var(--line);border-radius:7px;background:var(--field);color:var(--ink);text-overflow:ellipsis}.study-notes{display:flex;flex-direction:column;gap:15px}.study-intro{margin:14px 0}.study-score{font-weight:600}.study-result{padding:18px;border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;gap:13px}.study-result strong{display:flex;align-items:center;gap:8px}.study-result.perfect{border-color:var(--green-9)}.study-result.retry{border-color:var(--red-9)}.automatic-study{font-size:13px;padding:12px;border:1px solid var(--line);border-radius:8px}.automatic-study button{margin-left:8px}@media(max-width:700px){.lesson-examples .guided-study{border:0;padding:12px 0;margin:16px -8px}.opening-track{padding:12px}.study-side,.study-intro{font-size:14px}.study-notes{gap:12px}.study-result{padding:13px}}.opening-practice-list{margin:26px 0}.opening-practice-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px;margin-top:12px;background:var(--surface);border:1px solid var(--line);border-radius:10px}.opening-practice-row p{font-size:13px;color:var(--muted)}@media(max-width:700px){.opening-practice-row{align-items:stretch;flex-direction:column}}.opening-path{margin:18px 0;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}.opening-path .opening-practice-row{margin:0;border:0;border-radius:0;border-bottom:1px solid var(--line)}.opening-milestones{list-style:none;margin:0;padding:0 20px;display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.opening-milestones li{padding:18px 0;border-bottom:1px solid var(--line)}.opening-milestones p,.opening-path-note{font-size:14px;color:var(--muted)}.opening-path-note{padding:0 20px 12px}.opening-milestones button{white-space:normal}.progress-evidence{margin:26px 0}.evidence-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px}.progress-evidence table{border-collapse:collapse;width:100%;background:var(--surface);font-size:14px}.progress-evidence th,.progress-evidence td{padding:14px;text-align:left;border-bottom:1px solid var(--line)}.progress-evidence small{display:block;color:var(--muted);font-weight:400;margin-top:6px}.progress-evidence .muted{font-size:13px}@media(max-width:650px){.opening-milestones{grid-template-columns:1fr;padding:0 16px}.opening-milestones button{width:100%;justify-content:center}.progress-evidence th,.progress-evidence td{padding:10px 8px;font-size:12px}.opening-path-note{padding:0 16px 12px}}.study-beyond{display:grid;gap:10px;justify-items:start;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.study-beyond p{margin:0}@media(max-width:700px){.guided-study{display:flex;flex-direction:column}.guided-study>*{order:2}.guided-study>.study-top{order:0}.guided-study>.study-layout{order:1}}.address-change{margin-bottom:24px;padding:22px;border:1px solid var(--neutral-6);border-radius:10px;background:var(--neutral-3);color:var(--neutral-11)}.address-change h2{font-size:26px;margin:0 0 12px}.address-change p{font-size:14px;line-height:1.7;margin:10px 0;overflow-wrap:anywhere}.address-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}.address-actions a{text-decoration:none}@media(max-width:620px){.address-change{padding:17px}.address-change h2{font-size:23px}.address-actions>*{width:100%;justify-content:center;font-size:12px;min-height:44px}}.opening-achievement{padding:20px;margin:18px 0;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink)}.achievement-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:18px}.achievement-heading>span{font-size:13px;color:var(--muted)}.opening-achievement label{display:block;font-size:14px;margin:16px 0}.opening-achievement label>strong{float:right;margin-left:8px}.opening-achievement progress{display:block;width:100%;height:12px;accent-color:var(--blue);margin-top:9px}.opening-achievement p{font-size:14px;margin:12px 0}.opening-achievement a{margin-top:8px}.roadmap-intro+.opening-achievement{margin:20px}.opening-path>.opening-achievement{margin:12px 0}@media(max-width:600px){.opening-achievement{padding:16px}.achievement-heading{align-items:flex-start}.opening-achievement a{width:100%}}.chessboard{position:relative}.board-interactive{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.board-status{font-size:12px;color:var(--muted);line-height:1.6;text-align:center;margin:12px 0}.board-column>.wide+.wide{margin-top:9px}.board-suggestion{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none}.course-page{max-width:1150px}.course-summary{padding:24px;margin:24px 0}.course-summary progress{display:block;width:100%;height:10px;margin-top:16px;accent-color:var(--blue)}.course-stage-list{list-style:none;display:flex;gap:12px;padding:0;margin:24px 0}.course-stage-list li{display:flex;align-items:center;gap:12px;flex:1;padding:16px;border:1px solid var(--line);border-radius:12px}.course-stage-list li[aria-current]{border-color:var(--blue);background:var(--surface)}.course-stage-list li>span{font-weight:700}.course-stage-list small,.course-branches small{display:block;color:var(--muted);margin-top:6px}.course-step{padding:24px;margin:24px 0}.course-step>label{display:block;max-width:320px;margin:20px 0}.course-step>label select{display:block;width:100%;margin-top:8px}.course-step h2{font-size:1.6rem}.course-branches{list-style:none;padding:0}.course-branches li{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}.course-branches button{flex-shrink:0}.course-checkpoint{padding:18px;background:var(--surface);border-radius:12px;margin:20px 0}.course-checkpoint dl{display:grid;grid-template-columns:1fr 1fr;gap:14px}.course-checkpoint dd{margin:4px 0 0;color:var(--muted)}.course-history{margin:24px 0}.exam-status{padding:20px;border:1px solid var(--line);border-radius:12px;margin:18px 0}.exam-status.success{border-color:var(--blue)}.course-step>a{display:block;margin-top:14px}@media(max-width:600px){.course-stage-list{flex-direction:column}.course-summary,.course-step{padding:18px}.course-branches li{align-items:flex-start;flex-direction:column;gap:12px}.course-branches button{width:100%;justify-content:center}.course-checkpoint dl{grid-template-columns:1fr}.course-step>.primary{width:100%}}.course-step>p,.course-summary>p{margin-top:12px}.course-step>h2{margin-bottom:14px}.course-summary.panel,.course-step.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px}.course-stage-list li>div{min-width:0}.course-history summary{cursor:pointer}.course-next{margin:20px 0;padding:18px 0;border-top:1px solid var(--line)}.course-next p{margin:8px 0 14px}.course-summary summary{cursor:pointer;color:var(--muted);font-size:14px}.course-page>label progress{display:block;width:100%;max-width:560px;margin:12px 0 20px;accent-color:var(--blue)}.course-page .success{color:var(--blue);font-weight:700;padding:12px 0}.course-page>button{margin:8px 8px 8px 0}.opening-acquis{margin:24px 0}.opening-acquis>h2{margin-bottom:8px}.opening-acquis .opening-practice-row>div{min-width:0;flex:1}.opening-acquis h3{margin:0;font-size:19px}.opening-acquis .opening-success{display:flex;align-items:center;gap:8px;color:var(--success-ink);font-weight:600}.opening-learned-count{font-size:25px;font-variant-numeric:tabular-nums}.opening-acquis progress{display:block;width:100%;max-width:480px;height:9px;margin:10px 0;accent-color:var(--action)}.opening-acquis .primary{flex-shrink:0;max-width:100%;white-space:normal}.learning-guide{display:flex;flex-wrap:wrap;gap:8px 20px;margin:16px 0 24px;color:var(--muted);font-size:14px}.learning-guide a{font-weight:600}.course-path-overview{margin:24px 0}.course-path-overview ol{list-style:none;padding:0;display:grid;gap:10px}.course-path-overview li{display:flex;align-items:flex-start;gap:12px;padding:14px;border:1px solid var(--line);border-radius:10px}.course-path-overview li[aria-current=step]{border-color:var(--action);background:var(--surface)}.course-path-overview li>div{min-width:0}.course-path-overview li>svg{flex-shrink:0}.course-path-overview p{margin:6px 0 0;color:var(--muted)}@media(max-width:700px){.opening-acquis .primary{width:100%}}.game-settings{display:flex;align-items:end;gap:1.1rem;flex-wrap:wrap;margin-bottom:1rem;padding:1.2rem}.game-settings label{display:grid;gap:.45rem;font-size:.85rem;flex:1;min-width:145px}.game-settings select,.game-archive select{max-width:100%;padding:.65rem;border:1px solid var(--neutral-6);border-radius:5px;background:var(--neutral-1);color:var(--neutral-12)}.game-settings small{font-size:.72rem;color:var(--neutral-10)}.game-skill input{width:100%;accent-color:var(--neutral-11)}.game-archive{display:flex;align-items:center;gap:1rem;font-size:.85rem;margin:1rem 0 1.5rem}.game-board-area{min-width:0}.game-player{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 0;color:var(--neutral-12);font-size:.88rem}.game-player span:last-child{color:var(--neutral-9);font-size:.78rem}.game-notebook{padding:1.5rem;min-width:0;align-self:start}.game-notebook h2{margin:.3rem 0 1rem}.game-notebook p{line-height:1.65}.game-comment{font-size:.96rem}.game-end-controls{border-top:1px solid var(--neutral-5);margin-top:1rem;padding-top:1rem}.game-error{background:var(--red-2);border:1px solid var(--red-6);border-radius:var(--radius);color:var(--red-11);padding:1rem;margin-top:1rem}.game-review progress{width:100%;accent-color:var(--neutral-11)}.game-moment{border-top:1px solid var(--neutral-5);padding:1.3rem 0}.game-moment h3{margin:.4rem 0}.game-moment details{margin:.8rem 0}.game-moment summary{cursor:pointer;color:var(--neutral-11);font-weight:600}.game-explanation{white-space:pre-line;font-size:.88rem;line-height:1.65;margin:1rem 0}.game-moment li{font-size:.82rem;line-height:1.6;margin:.6rem 0}.game-moment-actions{display:flex;gap:.6rem;flex-wrap:wrap}.game-moment-actions button{font-size:.78rem}.game-history{margin-top:1.5rem;border-top:1px solid var(--neutral-5);padding-top:.8rem}.game-history .move-list{display:flex;flex-wrap:wrap;gap:.3rem;max-height:240px;overflow:auto}.game-history .move-list button{border:0;border-radius:3px;padding:.45rem .6rem;color:var(--neutral-12);background:transparent}.game-history .move-list button:hover,.game-history .move-list button.active{background:var(--neutral-4)}.game-history .move-list span{color:var(--neutral-9);font-size:.72rem}.game-page .board-controls{display:flex;flex-wrap:wrap;gap:.5rem}.game-page .board-controls button{font-size:.8rem}@media(max-width:700px){.game-settings{padding:.9rem;gap:.8rem}.game-settings label:first-child{flex-basis:100%}.game-settings>button{width:100%}.game-notebook{padding:1.1rem}.game-archive{display:grid;gap:.4rem}.game-player{font-size:.8rem}.game-player span:last-child{font-size:.7rem}.game-page .board-controls button{flex:1;padding:.6rem}.game-moment-actions button{flex:1}}.game-page .game-board-area,.game-page .game-notebook{width:100%}.game-page .game-settings label{min-width:0;width:100%;flex:1 1 145px}.game-page .game-settings select{min-width:0;width:100%}.game-page .game-archive select{min-width:0}.game-page .board-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;width:100%;margin:16px 0}.game-page .board-controls button{width:auto!important;height:auto!important;min-height:44px;min-width:90px;padding:10px 16px;flex:0 1 auto;white-space:normal;line-height:1.35;overflow-wrap:normal}.thinking-hint{margin:14px 0}.thinking-hint .hint-box{display:block;line-height:1.65;padding:16px}.thinking-hint small{display:block;margin-top:10px;color:var(--muted)}@media(max-width:600px){.game-page .board-controls button{flex:1 1 110px;min-width:0}.thinking-hint>button{width:100%}}.game-learning-summary{padding:24px;margin:24px 0}.game-learning-summary p{line-height:1.65;margin:12px 0}.game-learning-summary article{padding:18px 0;border-top:1px solid var(--line)}.exam-assistance{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0;padding:16px;border:1px solid var(--border);border-radius:12px}.exam-assistance p{flex-basis:100%;margin:0}.exam-assistance button{min-height:44px;white-space:normal}.exercise-board-wrap{position:relative}.move-feedback{position:absolute;right:12px;top:12px;display:flex;align-items:center;gap:8px;padding:11px 15px;border-radius:40px;box-shadow:0 4px 20px color-mix(in oklch,var(--neutral-12) 19%,transparent);font-size:14px;font-weight:700;pointer-events:none;animation:move-confirm .4s var(--ease-out);z-index:2}.move-feedback-success{background:var(--neutral-3);color:var(--green-11);border:2px solid var(--green-8)}.move-feedback-error{background:var(--neutral-3);color:var(--red-10);border:2px solid var(--red-8);animation:move-retry .4s ease-out}.move-feedback-alternative{background:var(--neutral-3);color:var(--neutral-11);border:2px solid var(--neutral-8)}.automatic-reply{display:flex;gap:11px;justify-content:center;align-items:center;min-height:48px;color:var(--green-11);font-size:14px}.automatic-reply .spinner{width:16px;height:16px}@keyframes move-confirm{0%{opacity:0;transform:translateY(8px) scale(.78)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes move-retry{0%{opacity:0;transform:translate(7px)}35%{opacity:1;transform:translate(-4px)}70%{transform:translate(2px)}to{transform:translate(0)}}@media(prefers-reduced-motion:reduce){.move-feedback,.automatic-reply .spinner{animation:none}}@media(max-width:620px){.move-feedback{top:8px;right:8px;padding:8px 11px;font-size:12px}}.exercise-workspace .move-feedback-error{background:var(--neutral-3);color:var(--red-11);border-color:var(--red-9)}[data-theme=dark] .exercise-workspace .move-feedback-error{background:var(--red-12);color:var(--red-4);border-color:var(--red-8)}.exercise-workspace .board-status:has(+.exercise-tools){min-height:44px}.lesson-mode-note{display:flex;align-items:center;gap:20px;justify-content:space-between;padding:18px;margin:18px 0;background:var(--surface);border:1px solid var(--line);border-radius:10px}.lesson-mode-note p{font-size:14px;color:var(--muted);max-width:720px;margin:8px 0 0}.lesson-mode-note button{flex-shrink:0}@media(max-width:700px){.lesson-mode-note{flex-direction:column;align-items:stretch}.lesson-mode-note button{justify-content:center;white-space:normal}}.attempt-judgement{display:block;margin-top:6px;font-variant-numeric:tabular-nums}.session-result.session-result-compact{padding:22px;margin-bottom:20px}.session-result-compact .result-emblem{display:none}.session-result.session-result-compact h2{font-size:25px}.session-result-compact .button-row{margin-top:16px}.learning-roadmap{margin:26px 0 34px;border:1px solid var(--neutral-6);border-radius:12px;background:var(--neutral-1);overflow:hidden}.roadmap-intro{padding:25px 28px;background:var(--neutral-3)}.roadmap-intro h2{margin:9px 0 12px;font-size:32px}.roadmap-intro p{max-width:720px;font-size:14px;color:var(--green-11)}.roadmap-steps{list-style:none;margin:0;padding:0 28px}.roadmap-step{display:grid;grid-template-columns:34px 1fr;gap:17px;padding:25px 0;border-bottom:1px solid var(--line)}.roadmap-number{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--neutral-3);color:var(--neutral-11);font-weight:650}.roadmap-now .roadmap-number{background:var(--neutral-11);color:var(--neutral-1)}.roadmap-when{font-size:12px;color:var(--muted)}.roadmap-step h3{font-size:20px;margin:6px 0 9px}.roadmap-step p{font-size:14px;max-width:760px}.roadmap-step .primary,.roadmap-step .secondary{margin-top:16px}.roadmap-prerequisites{margin-top:17px;font-size:12px}.roadmap-prerequisites summary,.roadmap-later summary{cursor:pointer;padding:7px 0}.roadmap-prerequisites .text-button{display:flex;margin:7px 0}.roadmap-followup{padding:22px 28px;font-size:13px}.roadmap-followup .text-button{margin-top:10px}.roadmap-later{margin:0 28px 24px;font-size:13px}.roadmap-later>div{padding:15px 0;border-top:1px solid var(--line)}.roadmap-later h3{margin:7px 0}.roadmap-later p{font-size:13px}.learning-roadmap>.error-text{padding:15px 28px}@media(max-width:620px){.roadmap-intro{padding:21px 18px}.roadmap-intro h2{font-size:27px}.roadmap-steps{padding:0 17px}.roadmap-step{grid-template-columns:27px 1fr;gap:10px}.roadmap-number{width:26px;height:26px;font-size:12px}.roadmap-step h3{font-size:17px}.roadmap-step p,.roadmap-intro p{font-size:12px}.roadmap-step .primary,.roadmap-step .secondary{width:100%;font-size:12px;justify-content:center;flex-wrap:wrap}.roadmap-followup{padding:18px}.roadmap-later{margin:0 18px 20px}}@font-face{font-family:"Young Serif";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/young-serif-latin-ext-400-normal-DzElnxZw.woff2) format("woff2"),url(/assets/young-serif-latin-ext-400-normal-4arC2Gh9.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Young Serif";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/young-serif-latin-400-normal-DIMmNPI9.woff2) format("woff2"),url(/assets/young-serif-latin-400-normal-D1tz0Z9s.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-ext-wght-normal-DCwSJGxG.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-normal-D_ZTVpCC.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--neutral-1: oklch(.985 .006 135);--neutral-2: oklch(.965 .009 135);--neutral-3: oklch(.945 .011 135);--neutral-4: oklch(.92 .013 135);--neutral-5: oklch(.895 .015 135);--neutral-6: oklch(.865 .017 135);--neutral-7: oklch(.82 .019 135);--neutral-8: oklch(.75 .021 135);--neutral-9: oklch(.55 .03 160);--neutral-10: oklch(.49 .03 160);--neutral-11: oklch(.43 .03 160);--neutral-12: oklch(.26 .03 160);--blue-1: oklch(.985 .01 165);--blue-2: oklch(.965 .02 165);--blue-3: oklch(.94 .032 165);--blue-4: oklch(.91 .042 165);--blue-5: oklch(.88 .05 165);--blue-6: oklch(.84 .058 165);--blue-7: oklch(.78 .065 165);--blue-8: oklch(.68 .075 165);--blue-9: oklch(.37 .065 165);--blue-10: oklch(.31 .058 165);--blue-11: oklch(.38 .075 165);--blue-12: oklch(.24 .045 165);--green-1: oklch(.992 .007 152);--green-2: oklch(.977 .013 152);--green-3: oklch(.955 .022 152);--green-4: oklch(.93 .03 152);--green-5: oklch(.905 .038 152);--green-6: oklch(.873 .045 152);--green-7: oklch(.83 .054 152);--green-8: oklch(.76 .065 152);--green-9: oklch(.56 .09 152);--green-10: oklch(.5 .09 152);--green-11: oklch(.45 .074 152);--green-12: oklch(.27 .038 152);--yellow-1: oklch(.992 .01 82);--yellow-2: oklch(.977 .018 82);--yellow-3: oklch(.955 .033 82);--yellow-4: oklch(.93 .043 82);--yellow-5: oklch(.905 .055 82);--yellow-6: oklch(.873 .065 82);--yellow-7: oklch(.83 .078 82);--yellow-8: oklch(.76 .094 82);--yellow-9: oklch(.56 .13 82);--yellow-10: oklch(.5 .13 82);--yellow-11: oklch(.45 .107 82);--yellow-12: oklch(.27 .055 82);--red-1: oklch(.992 .013 32);--red-2: oklch(.977 .022 32);--red-3: oklch(.955 .04 32);--red-4: oklch(.93 .053 32);--red-5: oklch(.905 .067 32);--red-6: oklch(.873 .08 32);--red-7: oklch(.83 .096 32);--red-8: oklch(.76 .115 32);--red-9: oklch(.56 .16 32);--red-10: oklch(.5 .16 32);--red-11: oklch(.45 .131 32);--red-12: oklch(.27 .067 32);--violet-1: oklch(.992 .009 305);--violet-2: oklch(.977 .015 305);--violet-3: oklch(.955 .028 305);--violet-4: oklch(.93 .036 305);--violet-5: oklch(.905 .046 305);--violet-6: oklch(.873 .055 305);--violet-7: oklch(.83 .066 305);--violet-8: oklch(.76 .079 305);--violet-9: oklch(.56 .11 305);--violet-10: oklch(.5 .11 305);--violet-11: oklch(.45 .09 305);--violet-12: oklch(.27 .046 305)}:root[data-theme=dark]{--neutral-1: oklch(.2 .028 165);--neutral-2: oklch(.225 .031 165);--neutral-3: oklch(.26 .034 165);--neutral-4: oklch(.285 .035 165);--neutral-5: oklch(.31 .036 165);--neutral-6: oklch(.35 .037 165);--neutral-7: oklch(.41 .035 165);--neutral-8: oklch(.5 .03 165);--neutral-9: oklch(.7 .02 88);--neutral-10: oklch(.76 .02 88);--neutral-11: oklch(.84 .022 88);--neutral-12: oklch(.95 .022 88);--blue-1: oklch(.21 .02 85);--blue-2: oklch(.24 .03 85);--blue-3: oklch(.28 .045 85);--blue-4: oklch(.31 .055 85);--blue-5: oklch(.35 .065 85);--blue-6: oklch(.4 .075 85);--blue-7: oklch(.48 .085 85);--blue-8: oklch(.58 .095 85);--blue-9: oklch(.8 .105 85);--blue-10: oklch(.85 .1 85);--blue-11: oklch(.84 .1 85);--blue-12: oklch(.95 .04 85);--green-1: oklch(.175 .007 152);--green-2: oklch(.2 .013 152);--green-3: oklch(.24 .022 152);--green-4: oklch(.27 .03 152);--green-5: oklch(.3 .038 152);--green-6: oklch(.34 .045 152);--green-7: oklch(.4 .054 152);--green-8: oklch(.49 .065 152);--green-9: oklch(.7 .09 152);--green-10: oklch(.76 .09 152);--green-11: oklch(.82 .074 152);--green-12: oklch(.95 .038 152);--yellow-1: oklch(.175 .01 82);--yellow-2: oklch(.2 .018 82);--yellow-3: oklch(.24 .033 82);--yellow-4: oklch(.27 .043 82);--yellow-5: oklch(.3 .055 82);--yellow-6: oklch(.34 .065 82);--yellow-7: oklch(.4 .078 82);--yellow-8: oklch(.49 .094 82);--yellow-9: oklch(.7 .13 82);--yellow-10: oklch(.76 .13 82);--yellow-11: oklch(.82 .107 82);--yellow-12: oklch(.95 .055 82);--red-1: oklch(.175 .013 32);--red-2: oklch(.2 .022 32);--red-3: oklch(.24 .04 32);--red-4: oklch(.27 .053 32);--red-5: oklch(.3 .067 32);--red-6: oklch(.34 .08 32);--red-7: oklch(.4 .096 32);--red-8: oklch(.49 .115 32);--red-9: oklch(.7 .16 32);--red-10: oklch(.76 .16 32);--red-11: oklch(.82 .131 32);--red-12: oklch(.95 .067 32);--violet-1: oklch(.175 .009 305);--violet-2: oklch(.2 .015 305);--violet-3: oklch(.24 .028 305);--violet-4: oklch(.27 .036 305);--violet-5: oklch(.3 .046 305);--violet-6: oklch(.34 .055 305);--violet-7: oklch(.4 .066 305);--violet-8: oklch(.49 .079 305);--violet-9: oklch(.7 .11 305);--violet-10: oklch(.76 .11 305);--violet-11: oklch(.82 .09 305);--violet-12: oklch(.95 .046 305)}:root{font-family:var(--font-body);color:var(--neutral-12);background:var(--neutral-3);font-synthesis:none;font-weight:400;--ink: var(--neutral-12);--muted: var(--neutral-9);--blue: var(--neutral-11);--line: var(--neutral-5);--sage: var(--green-8);--gold: var(--yellow-8);--surface: var(--neutral-1)}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.48}a{color:var(--blue)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--neutral-9);outline-offset:4px}button{border:0}h1,h2,h3,p{margin:0}h1,h2{font-family:var(--font-display);font-weight:500;letter-spacing:-.035em}h1{font-size:clamp(30px,3vw,43px);line-height:1.16}h2{font-size:27px;line-height:1.2}h3{font-size:17px;line-height:1.4;font-weight:600}p{line-height:1.7}small{font-size:12px}.muted{color:var(--muted);font-size:14px}.app-shell{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--neutral-1);border-right:1px solid var(--line);padding:40px 22px 23px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);font-family:var(--font-display);font-size:21px;line-height:1.13}.brand strong{font-weight:600}.brand-symbol{font-family:Segoe UI Symbol,serif;font-size:49px;line-height:1;color:var(--blue)}.sidebar-intro{font-size:11px;color:var(--muted);margin:19px 0 30px;white-space:nowrap}.sidebar nav{display:flex;flex-direction:column;gap:7px}.nav-item{display:flex;align-items:center;gap:12px;min-height:48px;padding:12px 13px;color:var(--neutral-10);text-decoration:none;border-radius:7px;font-size:14px;font-weight:500}.nav-item:hover{background:var(--neutral-3)}.nav-item.active{background:var(--neutral-4);color:var(--blue);font-weight:650}.nav-badge{background:var(--neutral-11);color:var(--neutral-1);font-size:10px;border-radius:50px;min-width:19px;padding:2px 5px;text-align:center;margin-left:auto}.sidebar-bottom{margin-top:auto;padding-top:30px}.personal-profile{display:flex;align-items:center;gap:10px;padding:18px 3px;border-top:1px solid var(--line);margin-bottom:12px}.avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--neutral-5);color:var(--green-11);font-size:20px}.personal-profile strong{display:block;font-size:13px}.personal-profile div>span{font-size:10px;color:var(--muted)}.sidebar-bottom .nav-item{font-size:12px;padding:11px 4px;gap:8px}.local-note{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:6px;margin-top:12px}.online-dot{width:7px;height:7px;border-radius:50%;background:var(--green-9);display:inline-block;flex-shrink:0}.main-content{width:100%;max-width:1430px;padding:43px clamp(24px,3.5vw,60px) 20px;margin:0 auto;min-width:0}.page-header{display:flex;justify-content:space-between;align-items:center;gap:22px;margin-bottom:33px}.page-header p{color:var(--muted);font-size:14px;margin-top:12px;max-width:690px}.date-label{font-size:12px;color:var(--muted);white-space:nowrap;text-transform:capitalize}.primary,.secondary,.text-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:14px;font-weight:600;text-decoration:none;line-height:1.35}.primary{color:var(--neutral-1);background:var(--blue);padding:14px 21px;border-radius:6px;box-shadow:0 3px 5px color-mix(in oklch,var(--neutral-12) 4%,transparent)}.primary:hover{background:var(--neutral-12)}.secondary{color:var(--blue);background:var(--neutral-1);padding:12px 17px;border:1px solid var(--neutral-6);border-radius:6px}.secondary:hover{background:var(--neutral-2);border-color:var(--neutral-8)}.text-button{color:var(--blue);padding:9px 0;background:transparent;text-align:left}.text-button:hover{text-decoration:underline}.wide{width:100%}.button-row{display:flex;gap:12px;flex-wrap:wrap}.today-hero{background:var(--neutral-4);border:1px solid var(--neutral-5);border-radius:12px;padding:35px 36px 28px;display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,330px);gap:37px;align-items:center;overflow:hidden}.hero-copy{max-width:475px}.session-tag{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--neutral-10);margin-bottom:17px}.hero-copy h2{font-size:clamp(30px,3.1vw,44px);max-width:410px;line-height:1.17;margin-bottom:18px}.hero-copy>p{font-size:14px;max-width:410px;color:var(--neutral-10)}.hero-meta{display:flex;gap:20px;margin:21px 0 25px;flex-wrap:wrap}.hero-meta>span{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--neutral-9)}.hero-action{min-height:49px;justify-content:space-between;min-width:233px}.hero-copy>.text-button{display:block;font-size:11px;margin-top:5px;font-weight:400}.hero-position{padding:0 5px;align-self:center}.hero-position .board-frame{box-shadow:0 14px 25px #24352c19;border:6px solid #f8fbf9;border-radius:4px}.position-caption{display:flex;align-items:center;justify-content:center;gap:7px;font-size:10px;color:var(--green-9);margin-top:12px}.side-dot{width:12px;height:12px;border-radius:50%;display:inline-block;border:1px solid #778d83;flex-shrink:0}.side-dot.white{background:#fff}.side-dot.black{background:#24392f}.daily-strip{display:flex;align-items:center;gap:36px;padding:27px 3px 28px;margin-bottom:17px;border-bottom:1px solid var(--line)}.daily-strip>div{display:flex;align-items:center;gap:11px}.strip-number{font-size:25px;font-weight:600;letter-spacing:-1px}.strip-number small{font-size:14px;font-weight:400;color:var(--muted);letter-spacing:0}.daily-strip>div>span:last-child{font-size:11px;max-width:100px;color:var(--muted);line-height:1.55}.daily-strip>.text-button{margin-left:auto;font-size:12px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:26px 0 20px}.section-heading h2{font-size:26px}.section-heading p{font-size:12px;color:var(--muted);margin-top:6px}.section-heading .text-button{font-size:12px;white-space:nowrap}.next-lesson{background:var(--neutral-1);border:1px solid var(--line);border-radius:8px;display:flex;align-items:center;gap:23px;padding:23px 26px}.lesson-illustration{width:79px;height:79px;position:relative;flex-shrink:0;border-radius:5px;background:var(--neutral-4);display:flex;align-items:center;justify-content:center;font-family:Segoe UI Symbol,serif;font-size:52px;color:var(--green-10)}.lesson-illustration>span{font-size:32px;align-self:flex-end;margin-left:-12px;color:var(--green-9)}.domain-label{font-size:11px;font-weight:600;color:var(--green-10);display:inline-block;margin-bottom:6px}.next-lesson h3{font-size:19px;margin-bottom:6px}.next-lesson p{font-size:12px;color:var(--muted);max-width:490px;margin-bottom:8px}.next-lesson .muted{font-size:10px}.next-lesson .secondary{margin-left:auto;flex-shrink:0;font-size:12px}.domain-paths{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--neutral-1)}.domain-path{padding:22px 20px;text-align:left;background:var(--neutral-1);color:var(--ink);border-right:1px solid var(--line)}.domain-path:last-child{border:0}.domain-path:hover{background:var(--neutral-2)}.domain-piece{font-family:Segoe UI Symbol,serif;font-size:30px;display:inline-flex;width:47px;height:47px;align-items:center;justify-content:center;border-radius:10px;margin-bottom:15px}.tone-0{color:var(--green-9);background:var(--neutral-3)}.tone-1{color:var(--neutral-9);background:var(--neutral-3)}.tone-2{color:var(--yellow-9);background:var(--neutral-3)}.tone-3{color:var(--violet-9);background:var(--neutral-4)}.domain-path h3{font-size:14px;margin-bottom:8px}.domain-path p{font-size:11px;color:var(--muted);line-height:1.7;min-height:38px}.domain-path>span:last-child{display:flex;align-items:center;justify-content:space-between;font-size:10px;margin-top:15px;font-weight:600}.app-footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;padding-top:18px;margin-top:40px;font-size:10px;color:var(--neutral-9)}.app-footer a{color:inherit}.mobile-menu{display:none}.board-frame{position:relative;width:100%;max-width:620px;margin:0 auto}.chessboard{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));aspect-ratio:1;container-type:inline-size;overflow:hidden;border-radius:3px;width:100%;box-shadow:0 0 0 1px #59726322}.square{padding:0;margin:0;aspect-ratio:1;display:flex;justify-content:center;align-items:center;position:relative;border:0;border-radius:0;-webkit-user-select:none;user-select:none;touch-action:manipulation;overflow:hidden}.piece{font-family:Segoe UI Symbol,Apple Symbols,"Noto Sans Symbols 2",serif;font-size:10.9cqw;line-height:1;position:relative;z-index:2;display:block;pointer-events:none;transform:translateY(-1%)}.white-piece{color:var(--neutral-1);-webkit-text-stroke:.8px var(--green-11);text-shadow:0 2px 1px color-mix(in oklch,var(--green-12) 25%,transparent)}.black-piece{color:var(--green-12);-webkit-text-stroke:.45px color-mix(in oklch,var(--neutral-3) 39%,transparent);text-shadow:0 2px 1px color-mix(in oklch,var(--green-12) 20%,transparent)}.legal-dot{width:24%;height:24%;position:absolute;border-radius:50%;background:#24483540;z-index:4;pointer-events:none}.legal-ring{position:absolute;inset:3%;border:5px solid #203f3955;border-radius:50%;z-index:4;pointer-events:none}.promotion{position:absolute;z-index:10;inset:22% 7% auto;background:var(--neutral-1);padding:22px;border-radius:10px;box-shadow:0 12px 80px color-mix(in oklch,var(--green-12) 50%,transparent);text-align:center}.promotion>div{display:flex;justify-content:center;margin:14px 0}.promotion>div button{font-family:Segoe UI Symbol,serif;font-size:44px;background:var(--neutral-3);border-radius:4px;margin:3px;width:55px;height:60px;color:var(--ink)}.play-layout{display:grid;grid-template-columns:minmax(280px,1.25fr) minmax(270px,.85fr);gap:35px;align-items:start}.player-label{display:flex;align-items:center;gap:9px;font-size:12px;margin-bottom:12px}.player-label .muted{margin-left:auto;font-size:11px}.board-help{color:var(--muted);font-size:10px;text-align:center;margin-top:13px}.coach-panel,.panel{background:var(--neutral-1);border:1px solid var(--line);padding:26px;border-radius:10px;min-width:0}.coach-heading{display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:19px;margin-bottom:23px}.coach-mark{background:var(--neutral-3);width:43px;height:43px;display:grid;place-items:center;font-family:Segoe UI Symbol,serif;color:var(--green-10);font-size:33px;border-radius:50%}.coach-heading strong{font-size:14px;display:block}.coach-heading small{color:var(--muted);display:block;margin-top:4px}.coach-panel h2{font-size:27px;margin-bottom:14px}.exercise-objective{font-size:13px;font-weight:600;margin-bottom:14px}.feedback{font-size:14px;line-height:1.8;color:var(--neutral-10);margin-bottom:20px}.feedback.positive{color:var(--green-11)}.coach-actions{display:flex;flex-direction:column;gap:9px}.coach-actions>.text-button{font-size:12px;align-self:center}.coach-panel>.muted{margin-bottom:17px;font-size:12px}.coach-panel>p{font-size:13px;margin:12px 0 18px}.lesson-note{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.lesson-note strong{font-size:11px;color:var(--green-9)}.lesson-note p{font-size:12px;line-height:1.7;margin-top:7px;color:var(--muted)}.hint-box{display:flex;gap:11px;padding:13px 15px;margin:18px 0;background:var(--neutral-2);border-radius:6px;color:var(--yellow-10)}.hint-box>svg{flex-shrink:0;margin-top:4px}.hint-box p{font-size:12px}.solution-section{margin-top:36px;border-top:1px solid var(--line);padding-top:10px}.variation-layout{display:grid;grid-template-columns:minmax(270px,1fr) minmax(260px,.85fr);gap:32px;align-items:start}.variation-notes{padding:15px 0}.variation-notes h3{font-size:18px;margin-bottom:18px}.explanation{font-size:14px;line-height:1.85;color:var(--neutral-10)}.board-controls{display:flex;align-items:center;justify-content:center;gap:18px;padding:12px 0}.board-controls button{width:34px;height:34px;display:grid;place-items:center;border-radius:5px;background:var(--neutral-1);color:var(--ink);border:1px solid var(--line)}.board-controls span{font-size:12px;color:var(--muted)}.move-list{display:flex;gap:6px;flex-wrap:wrap;margin:20px 0}.move-list>button{padding:7px 9px;background:var(--neutral-3);color:var(--ink);border-radius:4px;font-size:13px}.move-list small{margin-right:5px;color:var(--muted)}.move-list>button.active{background:var(--blue);color:var(--neutral-1)}.move-list>button.active small{color:var(--neutral-4)}.catalog-toolbar{display:flex;flex-direction:column;gap:20px;margin-bottom:28px}.tabs{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.tabs>button{padding:11px 15px;font-size:13px;font-weight:500;border-radius:5px;background:transparent;color:var(--muted)}.tabs>button.active{background:var(--blue);color:var(--neutral-1)}.tabs>button:hover:not(.active){background:var(--neutral-4)}.search-input{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--neutral-1);border:1px solid var(--line);border-radius:6px;max-width:430px;color:var(--muted)}.search-input input{border:0;outline:none;width:100%;background:transparent;color:var(--ink);font-size:13px}.course-list{display:flex;flex-direction:column;gap:14px}.course-module{background:var(--neutral-1);border:1px solid var(--line);border-radius:9px;overflow:hidden}.module-heading{display:flex;align-items:center;gap:22px;padding:24px 27px;width:100%;background:var(--neutral-1);color:var(--ink);text-align:left}.module-heading:hover{background:var(--neutral-1)}.module-emblem{font-family:Segoe UI Symbol,serif;width:60px;height:67px;display:grid;place-items:center;font-size:43px;border-radius:7px;flex-shrink:0}.module-title{flex:1;min-width:0}.module-title h2{font-size:25px}.module-title p{font-size:12px;color:var(--muted);margin-top:8px;max-width:670px}.module-count{min-width:107px;padding:0 10px}.module-count strong{display:block;font-size:17px}.module-count small{color:var(--muted);font-size:10px}.mini-track,.skill-track{display:block;height:4px;border-radius:5px;background:var(--neutral-3);margin-top:11px;overflow:hidden}.mini-track i,.skill-track i{display:block;height:100%;background:var(--green-9)}.rotated{transform:rotate(180deg)}.lesson-list{padding:0 27px 15px 105px}.lesson-row{display:flex;align-items:center;gap:15px;width:100%;padding:16px 0;text-align:left;background:var(--neutral-1);color:var(--ink);border-top:1px solid var(--neutral-3)}.lesson-number{width:28px;height:28px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;background:var(--neutral-3);color:var(--neutral-9);font-size:12px}.lesson-number.complete{background:var(--neutral-4);color:var(--green-10)}.lesson-row>span:nth-child(2){flex:1;min-width:0}.lesson-row strong{font-size:13px}.lesson-row small{display:block;color:var(--muted);font-size:11px;line-height:1.6;margin-top:4px}.lesson-duration{font-size:10px;color:var(--muted);white-space:nowrap}.breadcrumb{font-size:11px;margin-bottom:17px;justify-content:flex-start}.lesson-topline{display:flex;gap:22px;align-items:center;font-size:12px;color:var(--muted);flex-wrap:wrap;margin-top:-13px}.lesson-topline span{display:flex;gap:6px;align-items:center}.lesson-tabs{border-bottom:1px solid var(--line);padding-bottom:12px;margin:25px 0}.lesson-reading{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:43px;align-items:start}.lesson-prose h2{font-size:28px;margin:9px 0 23px}.lesson-prose>p{font-size:15px;line-height:1.9;margin-bottom:19px;max-width:720px}.key-ideas{display:flex;gap:14px;margin:29px 0;background:var(--neutral-3);padding:23px;border-radius:7px;color:var(--green-11)}.key-ideas>svg{flex-shrink:0}.key-ideas h3{font-size:15px}.key-ideas ul{padding-left:18px;margin-bottom:0}.key-ideas li{font-size:13px;line-height:1.75;margin:8px 0}.lesson-aside{padding:17px;background:var(--neutral-1);border:1px solid var(--line);border-radius:8px}.lesson-aside>p{font-size:11px;margin:12px 0;color:var(--muted)}.lesson-aside h3{font-size:13px;margin-top:18px}.lesson-aside .text-button{font-size:11px}.compact{margin-bottom:22px}.lesson-examples{background:var(--neutral-1);border:1px solid var(--line);border-radius:9px;padding:24px}.section-actions{display:flex;justify-content:flex-end;margin-top:20px}.challenge-heading{display:flex;gap:12px;align-items:center;font-size:12px;color:var(--muted);margin-bottom:24px}.pill{display:inline-flex;align-items:center;justify-content:center;background:var(--neutral-4);color:var(--green-10);border-radius:30px;padding:5px 10px;font-size:10px;line-height:1.4;white-space:nowrap}.lesson-result,.session-result{max-width:720px;padding:42px;background:var(--neutral-1);border:1px solid var(--line);border-radius:12px;margin:25px auto;text-align:center}.result-emblem{display:inline-flex;align-items:center;justify-content:center;background:var(--neutral-4);color:var(--green-9);width:76px;height:76px;border-radius:50%;margin-bottom:24px}.lesson-result h2,.session-result h2{font-size:33px;margin-bottom:22px}.lesson-result p,.session-result p{font-size:14px;margin-bottom:21px}.lesson-result .button-row,.session-result .button-row{justify-content:center;margin-top:26px}.practice-start{display:grid;grid-template-columns:1fr 280px;gap:40px;padding:30px;background:var(--neutral-4);border:1px solid var(--neutral-5);border-radius:10px;margin-bottom:36px}.practice-start h2{font-size:34px;margin:5px 0 13px}.practice-start p{font-size:13px;color:var(--muted);max-width:510px}.practice-start label{display:block;font-size:12px;margin-bottom:8px}.practice-start select{margin-bottom:14px;width:100%}select,input[type=number],.settings-section input{padding:11px 13px;border:1px solid var(--neutral-6);border-radius:5px;background:var(--neutral-1);color:var(--ink);font-size:14px}.practice-start .primary{width:100%;font-size:12px}.motif-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.motif{display:flex;align-items:flex-start;flex-direction:column;position:relative;padding:20px;background:var(--neutral-1);border:1px solid var(--line);border-radius:7px;color:var(--ink);text-align:left;min-height:139px}.motif:hover{border-color:var(--green-8);background:var(--neutral-1)}.motif>span{font-family:Segoe UI Symbol,serif;font-size:31px;color:var(--green-9);margin-bottom:9px}.motif strong{font-size:13px;margin-bottom:6px}.motif small{font-size:10px;color:var(--muted)}.motif>svg{position:absolute;right:16px;top:24px;color:var(--neutral-8)}.soft-note{display:flex;align-items:center;gap:17px;background:var(--neutral-3);border-radius:8px;padding:23px;color:var(--neutral-9)}.soft-note>svg{flex-shrink:0}.soft-note p{font-size:13px}.review-list{border:1px solid var(--line);background:var(--neutral-1);border-radius:8px;overflow:hidden}.review-row{display:flex;align-items:center;gap:15px;width:100%;background:var(--neutral-1);padding:19px 22px;text-align:left;color:var(--ink);border-bottom:1px solid var(--line)}.review-row:last-child{border:0}.review-row>span:nth-child(2){flex:1}.review-row strong{display:block;font-size:13px}.review-row small{color:var(--muted);font-size:11px;display:block;margin-top:4px}.session-top{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:12px;color:var(--muted);margin-bottom:13px}.session-top .text-button{font-size:12px}.session-track{height:5px;background:var(--neutral-4);border-radius:5px;margin-bottom:30px}.session-track i{height:100%;background:var(--green-8);display:block;border-radius:5px}.exercise-heading{display:flex;justify-content:space-between;align-items:center;margin:5px 0 23px;gap:12px}.exercise-heading .muted{font-size:11px}.skill-profiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.skill-profile{padding:24px;background:var(--neutral-1);border:1px solid var(--line);border-radius:8px}.skill-profile h3{font-size:14px;margin-bottom:14px}.skill-rating{display:block;font-size:29px;font-weight:550;letter-spacing:-1px;white-space:nowrap}.skill-profile p{font-size:11px;color:var(--muted);margin-top:15px}.skill-profile small{font-size:10px;color:var(--green-9)}.rating-note{font-size:11px;color:var(--muted);margin:19px 0 34px;max-width:820px}.progress-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:27px 0;margin-top:30px;gap:35px}.progress-summary strong{font-size:36px;font-weight:500}.progress-summary strong small{font-size:18px;color:var(--muted)}.progress-summary h3{font-size:14px;margin:9px 0}.progress-summary p{font-size:12px;color:var(--muted)}.activity-grid{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:7px}.activity-day{aspect-ratio:1;background:var(--neutral-4);display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:5px;font-size:12px;gap:3px;color:var(--neutral-9)}.activity-day small{font-size:9px}.intensity-1{background:var(--neutral-5);color:var(--green-10)}.intensity-2{background:var(--green-7);color:var(--green-11)}.intensity-3{background:var(--green-8);color:var(--neutral-1)}.intensity-4{background:var(--green-9);color:var(--neutral-1)}.upcoming-list>div{display:flex;align-items:center;gap:20px;padding:16px 0;border-bottom:1px solid var(--line);font-size:12px}.upcoming-list>div>span:first-child{flex:1}.upcoming-list strong{font-size:13px;display:block}.upcoming-list small{display:block;font-size:10px;color:var(--muted);margin-top:4px}.settings-layout{display:grid;grid-template-columns:1fr 1fr;gap:25px}.settings-section{background:var(--neutral-1);border:1px solid var(--line);padding:28px;border-radius:8px}.settings-section h2{font-size:25px;margin-bottom:23px}.settings-section label{display:flex;flex-direction:column;gap:9px;font-size:12px;margin-bottom:20px;color:var(--neutral-10)}.settings-section p{font-size:13px;margin-bottom:20px}.settings-section .muted{font-size:11px}.settings-section .primary{margin-bottom:17px}.settings-section .file-import{display:inline-flex;flex-direction:row;margin-bottom:15px;font-size:13px;cursor:pointer}.file-import input{position:absolute;width:1px;height:1px;opacity:0}.sources-section{margin-top:35px;padding:0 8px;max-width:780px}.sources-section h2{margin-bottom:17px}.sources-section p,.sources-section li{font-size:13px;line-height:1.85;color:var(--muted)}.sources-section h3{margin:23px 0 13px}.sources-section ul{padding-left:20px}.sources-section li{margin:9px 0}.startup{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:30px;text-align:center;gap:20px}.startup h1{font-size:38px}.startup p{color:var(--muted);max-width:600px}.startup .brand-symbol{font-size:72px}.loading-line{height:3px;width:140px;background:linear-gradient(90deg,var(--neutral-6),var(--neutral-10),var(--neutral-6));border-radius:5px}.spinner{display:inline-block;vertical-align:middle;width:17px;height:17px;border-radius:50%;border:2px solid var(--neutral-7);border-top-color:var(--neutral-11);animation:spin .8s linear infinite;margin-right:7px;flex-shrink:0}.loading-state{min-height:300px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px}.empty-state{padding:60px 25px;text-align:center;color:var(--muted);display:flex;align-items:center;flex-direction:column;gap:20px}.empty-state h1,.empty-state h2{color:var(--ink)}.error-text{color:var(--red-10);font-size:13px}.success-text{color:var(--green-10);font-size:13px}.error-banner{padding:17px 20px;background:var(--neutral-3);color:var(--red-11);border:1px solid var(--red-6);border-radius:7px;margin-bottom:20px;font-size:13px;line-height:1.6}.error-banner a{display:block;margin-top:8px}.status-message{padding:13px 17px;background:var(--neutral-3);border-radius:5px;font-size:13px;line-height:1.7}@media(min-width:1550px){.main-content{padding-top:54px}.today-hero{padding:40px 45px;grid-template-columns:1fr 350px}.hero-copy h2{font-size:48px}.hero-copy>p{font-size:15px}.daily-strip{gap:50px}.domain-path{padding:26px}.domain-path h3{font-size:16px}.domain-path p{font-size:12px}}@media(max-width:1150px){.app-shell{grid-template-columns:205px minmax(0,1fr)}.sidebar{padding:30px 15px 20px}.brand{font-size:19px}.nav-item{font-size:12px;padding:11px 10px}.sidebar-intro{font-size:10px}.main-content{padding:32px 26px 20px}.date-label{display:none}.today-hero{gap:25px;padding:27px;grid-template-columns:1fr 260px}.hero-copy h2{font-size:34px}.hero-meta{gap:10px}.daily-strip{gap:20px}.daily-strip>.text-button{display:none}.domain-paths{grid-template-columns:repeat(2,1fr)}.domain-path{border-bottom:1px solid var(--line)}.domain-path:nth-child(2){border-right:0}.domain-path:nth-child(3){border-bottom:0}.domain-path p{min-height:0}.next-lesson{padding:20px;gap:17px;flex-wrap:wrap}.next-lesson>.secondary{margin-left:95px}.next-lesson>div:nth-child(2){flex:1}.play-layout{gap:23px;grid-template-columns:minmax(250px,1fr) minmax(240px,.8fr)}.coach-panel{padding:21px}.coach-panel h2{font-size:24px}.lesson-reading{grid-template-columns:1fr 240px;gap:28px}.module-heading{padding:20px;gap:17px}.module-title h2{font-size:23px}.lesson-list{padding-left:97px}.module-count{min-width:89px}.skill-profiles{grid-template-columns:repeat(2,1fr)}.practice-start{grid-template-columns:1fr 230px;gap:25px}.motif-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:850px){.app-shell{display:block}.mobile-menu{display:flex;align-items:center;gap:13px;position:sticky;top:0;width:100%;height:59px;background:var(--neutral-1);border-bottom:1px solid var(--line);color:var(--ink);padding:0 20px;z-index:40;font-family:var(--font-display);font-size:18px}.sidebar{position:fixed;top:59px;bottom:0;left:0;height:calc(100dvh - 59px);width:255px;z-index:35;transform:translate(-100%);box-shadow:10px 0 45px color-mix(in oklch,var(--neutral-12) 8%,transparent);padding:25px 20px}.sidebar.open{transform:translate(0)}.sidebar .brand{font-size:21px}.sidebar-intro{font-size:11px}.sidebar .nav-item{font-size:14px}.main-content{padding:27px 23px 20px;max-width:800px}.page-header{margin-bottom:26px}.page-header p{font-size:13px}.today-hero{grid-template-columns:1fr 245px;padding:26px;gap:24px}.hero-copy h2{font-size:33px}.hero-copy>p{font-size:12px}.hero-action{min-width:0;font-size:12px;padding:13px 15px}.hero-meta{margin:17px 0}.hero-meta>span{font-size:10px}.module-title p{max-width:470px}.lesson-reading{gap:27px;grid-template-columns:1fr 230px}.play-layout{grid-template-columns:minmax(265px,1.05fr) minmax(235px,.95fr)}.variation-layout{grid-template-columns:minmax(250px,1fr) minmax(230px,.8fr);gap:23px}.settings-layout{gap:17px}.settings-section{padding:24px}.activity-grid{grid-template-columns:repeat(14,minmax(0,1fr));gap:5px}}@media(max-width:620px){.main-content{padding:24px 17px 20px}h1{font-size:31px}.page-header p{font-size:12px;line-height:1.75}.today-hero{grid-template-columns:1fr;padding:25px 23px 23px;gap:26px}.hero-copy{max-width:none}.hero-copy h2{font-size:36px;max-width:330px}.hero-copy>p{font-size:13px;max-width:420px}.hero-meta{margin:18px 0 21px;gap:15px}.hero-action{font-size:14px;width:100%;min-height:48px}.hero-copy>.text-button{width:100%;text-align:center;font-size:11px}.hero-position{max-width:280px;justify-self:center;width:100%}.session-tag{margin-bottom:14px}.daily-strip{padding:22px 0;gap:17px;align-items:flex-start}.daily-strip>div{flex:1;display:block}.strip-number{font-size:24px;display:block;margin-bottom:4px}.daily-strip>div>span:last-child{font-size:10px;display:block;max-width:none}.strip-number small{font-size:12px}.section-heading h2{font-size:25px}.section-heading{gap:12px;align-items:flex-start;margin-top:26px}.section-heading .text-button{font-size:10px;max-width:95px;white-space:normal;text-align:right;padding-top:5px}.section-heading p{font-size:11px}.next-lesson{padding:20px;gap:16px}.lesson-illustration{width:56px;height:65px;font-size:44px}.next-lesson h3{font-size:16px}.next-lesson p{font-size:11px}.next-lesson .domain-label{font-size:10px}.next-lesson>.secondary{margin-left:0;width:100%;margin-top:3px}.next-lesson>.lesson-illustration{align-self:flex-start}.domain-path{padding:20px 16px}.domain-path h3{font-size:13px}.domain-path p{font-size:11px;min-height:38px}.domain-piece{width:41px;height:41px;font-size:27px}.app-footer{font-size:9px;margin-top:31px}.play-layout{display:flex;flex-direction:column;gap:24px}.board-column{width:100%}.coach-panel{width:100%;padding:23px}.coach-panel h2{font-size:28px}.coach-heading{padding-bottom:16px;margin-bottom:21px}.board-help{font-size:9px}.player-label{font-size:11px}.board-frame{max-width:500px}.variation-layout{display:flex;flex-direction:column;gap:12px}.variation-layout>div{width:100%}.variation-notes{padding:10px 2px}.variation-notes .explanation{font-size:13px}.lesson-tabs{gap:2px;justify-content:space-between}.lesson-tabs button{font-size:11px;padding:10px 9px}.lesson-reading{display:flex;flex-direction:column}.lesson-prose>p{font-size:14px}.lesson-prose h2{font-size:26px}.lesson-aside{max-width:360px;align-self:center;width:100%}.key-ideas{padding:20px;gap:10px}.key-ideas li{font-size:12px}.lesson-topline{font-size:10px;gap:10px 16px;margin-top:-9px}.breadcrumb{font-size:10px;line-height:1.6}.lesson-examples{padding:18px 15px}.section-actions .primary{width:100%;font-size:12px}.challenge-heading{align-items:flex-start;font-size:10px;gap:10px;margin-bottom:20px}.lesson-result,.session-result{padding:28px 21px}.lesson-result h2,.session-result h2{font-size:29px}.lesson-result .button-row>button,.session-result .button-row>button{width:100%}.catalog-toolbar{gap:17px}.catalog-toolbar .tabs{gap:3px}.catalog-toolbar .tabs button{font-size:11px;padding:10px 11px}.search-input{padding:11px 13px}.search-input input{font-size:12px}.module-heading{padding:19px 15px;gap:13px;align-items:flex-start}.module-emblem{width:40px;height:49px;font-size:32px;border-radius:5px}.module-title h2{font-size:22px}.module-title p{font-size:11px}.module-title .domain-label{font-size:9px}.module-count{display:none}.module-heading>svg{width:16px;flex-shrink:0;margin-top:17px}.lesson-list{padding:0 16px 9px}.lesson-row{gap:11px;padding:15px 0}.lesson-row small{font-size:10px}.lesson-row strong{font-size:12px}.lesson-duration{display:none}.lesson-number{width:24px;height:24px;font-size:10px}.practice-start{grid-template-columns:1fr;padding:25px 22px;gap:23px}.practice-start h2{font-size:31px}.practice-start .primary{font-size:13px}.motif-grid{gap:10px}.motif{padding:18px 15px;min-height:142px}.motif strong{font-size:12px}.review-row{padding:16px 14px;gap:11px;flex-wrap:wrap}.review-row strong{font-size:12px}.review-row .pill{font-size:9px;margin-left:28px}.review-row>svg:last-child{margin-left:auto}.session-top{font-size:10px;gap:10px}.session-top .text-button{font-size:10px}.session-track{margin-bottom:22px}.exercise-heading{margin:0 0 19px;align-items:flex-start}.exercise-heading .muted{font-size:10px;max-width:170px;text-align:right}.skill-profiles{gap:10px}.skill-profile{padding:19px 16px}.skill-profile h3{font-size:12px}.skill-rating{font-size:26px}.skill-profile p{font-size:10px}.skill-profile small{font-size:9px}.rating-note{font-size:10px;line-height:1.8}.progress-summary{gap:19px;grid-template-columns:1fr}.progress-summary>div{display:grid;grid-template-columns:72px 1fr;gap:0 12px}.progress-summary strong{grid-row:span 2;font-size:31px;align-self:center}.progress-summary strong small{display:block;font-size:13px}.progress-summary h3{margin-top:0;margin-bottom:5px;font-size:13px}.progress-summary p{font-size:11px}.activity-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.upcoming-list>div{gap:10px;flex-wrap:wrap;font-size:10px}.upcoming-list strong{font-size:12px}.upcoming-list .pill{font-size:9px}.settings-layout{grid-template-columns:1fr;gap:20px}.settings-section{padding:25px 22px}.sources-section{padding:0 2px}.sources-section h2{font-size:25px}.sources-section p,.sources-section li{font-size:12px}.sources-section a{overflow-wrap:anywhere}.error-banner{padding:14px;font-size:12px}.startup h1{font-size:31px}.startup p{font-size:13px}.empty-state{padding:42px 15px}.primary,.secondary{min-height:44px}.text-button{min-height:36px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}:root{--page: var(--neutral-3);--action: var(--neutral-11);--action-hover: var(--neutral-12);--field: var(--neutral-1);--focus: var(--blue-10);background:var(--page);color:var(--ink)}body{background:var(--page);color:var(--ink)}.appearance-control{display:flex;justify-content:flex-end;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:20px;font-size:13px;color:var(--ink)}.appearance-control label{display:inline-flex;align-items:center;gap:7px}.appearance-control select{min-height:42px;padding:8px 28px 8px 12px;border:1px solid var(--line);border-radius:7px;background:var(--field);color:var(--ink);font:inherit}.appearance-control small{flex-basis:100%;text-align:right;color:var(--muted)}.auth-topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.auth-topbar .appearance-control{margin:0}.device-settings{margin-bottom:25px}.settings-section .device-check{display:flex;flex-direction:row;align-items:center;gap:12px;color:var(--ink);font-size:14px}.settings-section .device-check input{width:22px;height:22px;min-width:22px;padding:0;margin:0;accent-color:var(--action)}.primary,.nav-badge,.tabs>button.active,.move-list>button.active,.roadmap-now .roadmap-number{background:var(--action);color:var(--neutral-1)}input::placeholder{color:var(--muted);opacity:1}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.chessboard,.chessboard *,.promotion .piece,.side-dot{forced-color-adjust:none;color-scheme:only light}.chessboard .piece,.promotion .piece{width:88%;height:88%;transform:none;filter:none;text-shadow:none;-webkit-text-stroke:0;pointer-events:none}.promotion>div button{display:grid;place-items:center}.side-dot.white{background:#fff8e7;border:2px solid #172b3a}.side-dot.black{background:#172b3a;border:2px solid #fff8e7;box-shadow:0 0 0 1px #172b3a}:root[data-theme=dark] .hero-position .board-frame{border-color:#3c5548}.auto-exercise-next{border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin:10px 0;background:var(--surface);color:var(--ink);font-size:12px;line-height:1.5;text-align:center}.auto-exercise-next button{display:block;margin:3px auto 0;text-align:center;font-size:12px}@media(max-width:620px){.appearance-control{font-size:12px;margin-bottom:16px}.auth-topbar{gap:18px}.auth-topbar .appearance-control{margin-left:auto}.auth-topbar .auth-brand{font-size:24px}.device-settings{margin-bottom:20px}}:root{--font-display: "Young Serif", "Iowan Old Style", Georgia, serif;--font-body: "Figtree Variable", "Segoe UI", system-ui, sans-serif;--page: var(--neutral-2);--surface: var(--neutral-1);--raised: var(--neutral-3);--field: var(--neutral-1);--ink: var(--neutral-12);--muted: var(--neutral-11);--line: var(--neutral-6);--border: var(--neutral-6);--blue: var(--blue-11);--action: var(--blue-9);--action-hover: var(--blue-10);--on-action: oklch(.97 .02 90);--focus: var(--blue-8);--sage: var(--green-9);--gold: oklch(.56 .11 80);--success-bg: var(--green-3);--success-ink: var(--green-11);--celebrate-bg: var(--yellow-4);--celebrate-ink: var(--yellow-12);--radius-sm: 8px;--radius: 14px;--radius-lg: 20px;--pill: 999px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--shadow-soft: 0 1px 2px color-mix(in oklch, var(--neutral-12) 6%, transparent), 0 8px 24px color-mix(in oklch, var(--neutral-12) 6%, transparent);--ease-out: cubic-bezier(.22, 1, .36, 1);font-family:var(--font-body);color:var(--ink);background:var(--page)}:root[data-theme=dark]{color-scheme:dark;--on-action: oklch(.22 .04 85);--gold: oklch(.8 .105 85);--shadow-soft: 0 1px 2px color-mix(in oklch, black 30%, transparent), 0 8px 24px color-mix(in oklch, black 25%, transparent)}body{background:radial-gradient(120% 70% at 70% -10%,var(--neutral-3),transparent 60%) fixed,var(--page);color:var(--ink);font-family:var(--font-body)}h1,h2,h3{font-family:var(--font-display);font-weight:400;font-synthesis:none;letter-spacing:-.01em}.primary,.nav-badge,.tabs>button.active,.move-list>button.active,.roadmap-now .roadmap-number{background:var(--action);color:var(--on-action)}.primary:hover{background:var(--action-hover)}.primary,.secondary,.cta{border-radius:var(--pill)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.mobile-menu,.mobile-bar,.tabbar{display:none}.app-shell{grid-template-columns:228px minmax(0,1fr)}.sidebar{background:var(--surface);padding:28px 16px 20px;gap:var(--space-lg)}.sidebar .brand{font-size:18px;font-weight:700;gap:8px;padding:0 10px;white-space:nowrap}.brand strong{font-weight:800;color:var(--action)}.brand-symbol{font-size:30px;color:var(--action)}.sidebar nav{gap:4px}.nav-item{min-height:44px;padding:10px 14px;border-radius:var(--pill);color:var(--muted);font-weight:600;transition:background .16s var(--ease-out),color .16s var(--ease-out)}.nav-item:hover{background:var(--neutral-3);color:var(--ink)}.nav-item.active{background:var(--blue-3);color:var(--blue-11);font-weight:700}.nav-badge{background:var(--action);color:var(--on-action);font-size:11px;font-weight:700}.sidebar-bottom{padding-top:var(--space-md);display:grid;gap:var(--space-sm)}.sidebar-bottom .nav-item{font-size:14px;padding:10px 14px;gap:12px}.personal-profile{border-top:1px solid var(--line);margin:0;padding:14px 10px 0;gap:10px}.personal-profile strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.avatar{width:32px;height:32px;font-size:15px;font-weight:700;background:var(--blue-3);color:var(--blue-11)}.account-notice{position:fixed;right:16px;bottom:16px;z-index:30;display:flex;align-items:center;gap:8px;margin:0;padding:6px 12px;font-size:13px;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow-soft);transition:opacity .3s}.account-notice.sync-saved{opacity:0;pointer-events:none}.sync-dot{width:8px;height:8px;border-radius:50%;background:var(--yellow-9)}.sync-offline .sync-dot,.sync-conflict .sync-dot{background:var(--red-9)}@media(max-width:860px){.app-shell{display:block}.sidebar{display:none}.mobile-bar{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:40;height:54px;padding:0 var(--space-md);background:color-mix(in oklch,var(--surface) 92%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}.brand-compact{font-size:17px;font-weight:700;gap:8px}.brand-compact .brand-symbol{font-size:24px}.icon-link{display:grid;place-items:center;width:44px;height:44px;margin-right:-10px;border-radius:var(--pill);color:var(--muted)}.icon-link.active{color:var(--action);background:var(--blue-3)}.tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:40;background:color-mix(in oklch,var(--surface) 94%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.tabbar a{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 2px 9px;font-size:11px;font-weight:600;color:var(--muted);text-decoration:none}.tabbar a.active{color:var(--action);font-weight:800}.tabbar a.active svg{background:var(--blue-3);border-radius:var(--pill);padding:2px 12px;box-sizing:content-box}.tab-badge{position:absolute;top:4px;left:calc(50% + 10px);min-width:17px;padding:1px 5px;border-radius:var(--pill);background:var(--action);color:var(--on-action);font-size:10px;font-weight:800;line-height:15px}.main-content{padding:var(--space-md) var(--space-md) calc(84px + env(safe-area-inset-bottom))}.account-notice{bottom:calc(84px + env(safe-area-inset-bottom));right:12px}}.more-list{display:grid;gap:8px}.more-item{display:grid;grid-template-columns:24px minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:14px 16px;border-radius:16px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none}.more-item strong{display:block;font-size:16px}.more-item small{display:block;color:var(--muted);font-size:13.5px}.more-item>svg:first-child{color:var(--gold, var(--action))}.today-hello{color:var(--muted);font-size:15px;margin:0 0 var(--space-md)}.today-session{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,300px);gap:var(--space-xl);align-items:center;padding:var(--space-xl);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);margin-bottom:var(--space-xl)}.today-tag{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--blue-11);margin:0}.streak{text-transform:none;letter-spacing:0;font-size:13px;font-weight:700;color:var(--celebrate-ink);background:var(--celebrate-bg);padding:3px 10px;border-radius:var(--pill)}.today-session h1{font-size:clamp(30px,4vw,44px);line-height:1.05;letter-spacing:-.025em;margin:var(--space-sm) 0 var(--space-md)}.today-session-copy>p:not(.today-tag):not(.error-text){color:var(--muted);font-size:17px;line-height:1.5;max-width:44ch;margin-bottom:var(--space-lg)}.today-session-copy{display:flex;flex-direction:column;align-items:flex-start}.today-session-copy .text-button{margin-top:var(--space-md);font-weight:600}.cta{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:14px 26px;font-size:17px;font-weight:800;transition:transform .16s var(--ease-out),background .16s var(--ease-out)}.cta:hover:not(:disabled){transform:translateY(-1px)}.cta:active:not(:disabled){transform:translateY(0)}.today-session-board{width:100%;max-width:300px;justify-self:end}.today-next{display:grid;gap:var(--space-md)}.today-next-title{font-size:13px;font-family:var(--font-body);font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.next-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md);width:100%;text-align:left;padding:var(--space-md) var(--space-lg);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);transition:border-color .16s var(--ease-out),background .16s var(--ease-out)}.next-row:hover{border-color:var(--blue-7);background:var(--blue-2)}.next-row strong{display:block;font-size:16px}.next-row small{display:block;margin-top:2px;color:var(--muted);font-size:14px}.next-row-go{display:inline-flex;align-items:center;gap:2px;flex-shrink:0;color:var(--blue-11);font-weight:700;font-size:14px}@media(max-width:760px){.today-session{grid-template-columns:1fr;padding:var(--space-lg);gap:var(--space-lg)}.today-session-board{justify-self:center;max-width:280px;order:-1}.cta{width:100%;justify-content:center}.today-session-copy .text-button{align-self:center}.next-row{padding:var(--space-md)}.next-row-go{font-size:0}.next-row-go svg{width:20px;height:20px}}.page-header{margin-bottom:var(--space-xl)}.page-header h1{font-size:clamp(30px,3.4vw,40px);line-height:1.08;letter-spacing:-.025em}.page-header p{margin-top:var(--space-sm);color:var(--muted);font-size:16px;max-width:60ch}.progress-empty,.level-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:var(--space-xl);margin-bottom:var(--space-xl)}.progress-empty{text-align:center;display:grid;justify-items:center;gap:var(--space-md);padding:var(--space-2xl) var(--space-xl)}.progress-empty p{color:var(--muted);max-width:46ch;line-height:1.5}.level-card h2,.activity-section h2,.upcoming-section h2{font-size:22px;margin-bottom:var(--space-md)}.level-card>.muted{margin-top:var(--space-md);font-size:14px}.skill-bars{display:grid;gap:var(--space-md)}.skill-bar{display:grid;grid-template-columns:150px minmax(0,1fr) 56px 150px;align-items:center;gap:var(--space-md)}.skill-name{font-weight:700}.skill-bar .skill-track{height:10px;border-radius:var(--pill);background:var(--neutral-4);overflow:hidden}.skill-bar .skill-track i{display:block;height:100%;border-radius:var(--pill);background:var(--action)}.skill-bar .skill-rating{font-family:var(--font-display);font-size:20px;text-align:right;font-variant-numeric:tabular-nums}.skill-bar small{color:var(--muted);font-size:13px}.key-figures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-md);margin-bottom:var(--space-xl)}.key-figures div{display:grid;gap:2px;padding:var(--space-lg);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.key-figures strong{font-family:var(--font-display);font-size:32px;font-variant-numeric:tabular-nums}.key-figures small{font-size:16px;color:var(--muted)}.key-figures span{color:var(--muted);font-size:14px}.activity-section{margin-bottom:var(--space-xl)}.activity-strip{display:grid;grid-template-columns:repeat(28,minmax(0,1fr));gap:4px;max-width:720px}.activity-cell{aspect-ratio:1;border-radius:4px;background:var(--neutral-4)}.activity-cell.intensity-1{background:var(--blue-5)}.activity-cell.intensity-2{background:var(--blue-7)}.activity-cell.intensity-3{background:var(--blue-9)}.activity-cell.intensity-4{background:var(--blue-11)}.upcoming-section{margin:var(--space-xl) 0}@media(max-width:760px){.progress-empty,.level-card{padding:var(--space-lg)}.skill-bar{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name rating" "track track" "note note";gap:4px var(--space-md)}.skill-name{grid-area:name}.skill-bar .skill-rating{grid-area:rating}.skill-bar .skill-track{grid-area:track}.skill-bar small{grid-area:note}.key-figures{grid-template-columns:1fr;gap:var(--space-sm)}.key-figures div{grid-template-columns:auto 1fr;align-items:baseline;gap:var(--space-md);padding:var(--space-md)}.key-figures strong{font-size:26px}.activity-strip{grid-template-columns:repeat(14,minmax(0,1fr))}}.progress-link-games:not(:empty){margin-bottom:var(--space-lg)}.game-settings.panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(170px,1.1fr) auto;align-items:end;gap:var(--space-md);padding:var(--space-lg);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line)}.game-settings label{display:grid;gap:6px;font-size:13px;font-weight:700;color:var(--muted)}.game-settings select{min-height:44px;border-radius:var(--radius-sm)}.game-settings .game-skill small{font-weight:400}.game-settings .primary{min-height:44px;padding:0 22px;white-space:nowrap}.game-notebook.panel,.panel{border-radius:var(--radius-lg)}@media(max-width:860px){.game-settings.panel{grid-template-columns:1fr 1fr;padding:var(--space-md);gap:var(--space-sm) var(--space-md)}.game-settings .game-skill,.game-settings .primary{grid-column:1 / -1}.game-page.has-game{display:flex;flex-direction:column}.game-page.has-game>*{order:2}.game-page.has-game>.page-header{order:0}.game-page.has-game>.play-layout{order:1;margin-bottom:var(--space-lg)}.game-page .page-header{margin-bottom:var(--space-md)}}.practice-start{border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-soft);padding:var(--space-xl);gap:var(--space-xl)}.practice-start h2{font-size:26px;margin-bottom:var(--space-sm)}.practice-start p{color:var(--muted);line-height:1.5;max-width:48ch}.motif-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-sm)}.motif{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:var(--space-md);min-height:64px;padding:var(--space-sm) var(--space-md);text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);transition:border-color .16s var(--ease-out),background .16s var(--ease-out)}.motif:hover:not(:disabled){border-color:var(--blue-7);background:var(--blue-2)}.motif>span:first-child{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--pill);background:var(--green-3);color:var(--green-11);font-size:22px;font-family:Segoe UI Symbol,"Noto Sans Symbols 2",sans-serif}.motif-text{display:grid;gap:2px;min-width:0}.motif .motif-text strong{display:block;margin:0;font-size:15px;color:var(--ink)}.motif .motif-text small{margin:0;color:var(--muted);font-size:13px}.motif svg{color:var(--muted)}.recommendation-grid{gap:var(--space-md)}.recommendation-card{border-radius:var(--radius);padding:var(--space-lg)}.course-list{gap:var(--space-sm)}.course-module{border-radius:var(--radius);overflow:hidden}.module-heading{padding:var(--space-md) var(--space-lg);gap:var(--space-md)}.module-title h2{font-size:18px}.module-title p{font-size:14px}.module-emblem{width:40px;height:40px;font-size:22px;border-radius:var(--pill)}.tabs>button{border-radius:var(--pill)}.settings-section,.install-banner,.account-panel{border-radius:var(--radius-lg)}.device-settings .appearance-control{display:grid;justify-content:stretch;justify-items:start;gap:6px;margin:var(--space-md) 0 4px;font-size:14px}.device-settings .appearance-control label{font-weight:600;color:var(--ink)}.device-settings .appearance-control select{width:100%}@media(max-width:760px){.practice-start{padding:var(--space-lg)}.motif-grid{grid-template-columns:1fr}.module-heading{padding:var(--space-md)}.module-title p{display:none}.module-title h2{font-size:16px}.recommendation-grid{display:grid;grid-auto-flow:column;grid-auto-columns:85%;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:var(--space-sm);margin:0 calc(-1 * var(--space-md));padding-inline:var(--space-md);scroll-padding-inline:var(--space-md)}.recommendation-card{scroll-snap-align:start}}.play-switch{display:none}.linked-accounts,.pgn-import,.games-section{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-lg)}.linked-heading,.games-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-md)}.linked-accounts h2,.pgn-import h2,.games-section h2{font-size:20px}.linked-heading .secondary{display:inline-flex;align-items:center;gap:8px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.linked-account{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-md) 0;border-top:1px solid var(--line)}.linked-account strong,.linked-account small{display:block}.linked-account small{color:var(--muted);margin-top:2px}.linked-remove{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm)}.linked-form{display:grid;grid-template-columns:160px minmax(0,1fr) auto;align-items:end;gap:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--line)}.linked-form .field,.games-toolbar .field,.pgn-import>label[for]{display:grid;gap:6px;font-size:13px;font-weight:700;color:var(--muted)}.linked-form input,.linked-form select,.games-toolbar select{min-height:44px}.linked-form .primary{min-height:44px;padding:0 22px}.linked-form p{grid-column:1 / -1;font-size:13px}.pgn-open{display:inline-flex;align-items:center;gap:8px;margin-bottom:var(--space-lg)}.pgn-import{display:grid;gap:var(--space-sm)}.pgn-import textarea{width:100%;font:13px/1.5 ui-monospace,Cascadia Mono,Consolas,monospace;padding:var(--space-sm);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--field);color:var(--ink);resize:vertical}.pgn-import .file-import{justify-self:start}.pgn-color{display:flex;flex-wrap:wrap;gap:var(--space-md);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md)}.pgn-color legend{font-weight:700;padding:0 4px}.pgn-color label{display:inline-flex;align-items:center;gap:6px}.games-toolbar h2{margin-right:auto}.games-list{display:grid;gap:var(--space-sm)}.game-row{display:grid;grid-template-columns:92px minmax(0,1fr) auto;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);text-decoration:none;transition:border-color .16s var(--ease-out),background .16s var(--ease-out)}.game-row:hover{border-color:var(--blue-7);background:var(--blue-2)}.game-row-main{min-width:0}.game-row-main strong,.game-row-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-row-main small{color:var(--muted);font-size:13px;margin-top:2px}.game-outcome{font-weight:800;font-size:13px;text-align:center;padding:4px 8px;border-radius:var(--pill)}.outcome-win{background:var(--green-3);color:var(--green-11)}.outcome-loss{background:var(--red-3);color:var(--red-11)}.outcome-draw,.outcome-unknown{background:var(--neutral-3);color:var(--neutral-11)}.analysis-chip{font-size:12px;font-weight:700;color:var(--muted);white-space:nowrap}.analysis-chip.status-done{color:var(--blue-11)}.analysis-chip.status-failed{color:var(--red-11)}.games-empty{text-align:center;padding:var(--space-lg)}.game-detail{display:grid;grid-template-columns:minmax(280px,560px) minmax(0,1fr);gap:var(--space-xl);align-items:start}.replay-controls{display:grid;grid-template-columns:auto 1fr 1fr auto;gap:var(--space-sm);margin-top:var(--space-md)}.replay-controls button{min-height:44px;display:inline-flex;align-items:center;justify-content:center}.game-detail-side{display:grid;gap:var(--space-md)}.game-detail-side>.text-button{justify-self:start}.game-opening{font-weight:700}.game-analysis{display:grid;gap:var(--space-md);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-lg)}.game-analysis h2{font-size:20px}.key-moment{display:grid;gap:var(--space-sm);padding-top:var(--space-md);border-top:1px solid var(--line)}.key-moment header{display:flex;align-items:center;gap:var(--space-sm)}.key-moment .text-button,.game-analysis .cta{justify-self:start}.game-moves{display:flex;flex-wrap:wrap;gap:4px}@media(max-width:860px){.play-switch{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;margin-bottom:var(--space-lg);background:var(--neutral-3);border-radius:var(--pill)}.play-switch a{text-align:center;padding:9px 0;border-radius:var(--pill);font-weight:700;color:var(--muted);text-decoration:none}.play-switch a.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-soft)}.game-detail,.linked-form{grid-template-columns:1fr}.game-row{grid-template-columns:76px minmax(0,1fr)}.games-toolbar h2{flex-basis:100%}.games-toolbar .field{flex:1}.games-toolbar select{width:100%}.analysis-chip{grid-column:2}}.field label{font-size:13px;font-weight:700;color:var(--muted)}.linked-form input{padding:0 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--field);color:var(--ink);font:inherit}@media(min-width:861px){.play-layout{grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr)}.variation-layout{grid-template-columns:minmax(0,1fr) minmax(0,.85fr)}}@media(min-width:701px){.guided-study .study-layout{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}}.play-layout>*,.variation-layout>*,.guided-study .study-layout>*,.game-detail>*{min-width:0}.coach-panel,.variation-notes,.guided-study,.game-notebook{overflow-wrap:anywhere}.coach-panel button,.variation-notes button,.guided-study button,.game-notebook button{white-space:normal}.board-status{min-height:4.8em}.exercise-board-wrap .automatic-reply{position:absolute;left:50%;bottom:12px;transform:translate(-50%);z-index:2;min-height:0;padding:8px 14px;border-radius:var(--pill);background:color-mix(in oklch,var(--surface) 92%,transparent);box-shadow:var(--shadow-soft);white-space:nowrap;pointer-events:none}.board-frame{--pad: clamp(10px, 3.4%, 22px);padding:var(--pad);border-radius:12px;background:linear-gradient(145deg,#4a2f1c,#2b1a10 40%,#1d120a);box-shadow:0 26px 50px -22px #0009,0 10px 20px -12px #00000073,inset 0 1px #ffdcaa2e,inset 0 0 0 1px #0006;transition:box-shadow .6s var(--ease-out, ease-out)}.board-frame:before{content:"";position:absolute;inset:calc(var(--pad) - 5px);border-radius:4px;border:1px solid rgb(216 178 102 / .55);pointer-events:none}.board-frame .chessboard{border-radius:2px;box-shadow:0 0 0 1px #0000008c;overflow:hidden}.board-frame .chessboard .square{background-color:#e6d1a6;background-image:var(--wood-light, none);background-size:800% 800%;background-position:calc(var(--grain-x) * 14.28%) calc(var(--grain-y) * 14.28%);box-shadow:none}.board-frame .chessboard .square.dark{background-color:#93613e;background-image:var(--wood-dark, none)}.board-frame .chessboard .square:after{content:"";position:absolute;inset:0;pointer-events:none;transition:background-color .2s}.board-frame .chessboard .square.last-move:after{background-color:#ecc4606b}.board-frame .chessboard .square.selected:after,.board-frame .chessboard .square.hinted:after{background-color:#ecc460a3}.board-frame .chessboard .square.hinted:after{animation:square-glow 1.4s ease-in-out infinite}@keyframes square-glow{50%{background-color:#ecc46040}}.board-frame .chessboard .square.drop-target:after{box-shadow:inset 0 0 0 3px #fff4d68c}.board-frame .chessboard .square.drop-target:hover:after{box-shadow:inset 0 0 0 4px #fff4d6f2}.board-frame .chessboard .square.in-check:after{background:radial-gradient(circle,rgb(255 70 40 / .9) 0%,rgb(255 70 40 / .4) 42%,transparent 72%)}.board-frame .chessboard .square.wrong-square:after{background-color:#d640328c}.board-frame .chessboard .square.suggested-target:after{box-shadow:inset 0 0 0 4px #6fbe78d9}.board-frame .chessboard .square:focus-visible:after{box-shadow:inset 0 0 0 3px #fff4d6}.board-frame .legal-dot{width:26%;height:26%;border:0;background:#23140852;z-index:3}.board-frame .legal-ring{inset:2%;border:0;box-shadow:inset 0 0 0 5px #23140852;z-index:3}.board-pieces{position:absolute;inset:0;pointer-events:none;z-index:2}.board-piece{position:absolute;left:0;top:0;width:12.5%;height:12.5%;display:grid;place-items:center;transition:transform .24s cubic-bezier(.22,1,.36,1),opacity .2s;will-change:transform}.board-piece .piece{width:90%;height:90%;translate:0 3%;filter:drop-shadow(0 3px 2px rgb(20 10 0 / .35))}.board-pieces.still .board-piece{transition:none}.board-piece.dragging{transition:none;z-index:5}.board-piece.dragging .piece{filter:drop-shadow(0 16px 10px rgb(20 10 0 / .4))}.board-piece.snapping{transition:transform .12s cubic-bezier(.22,1,.36,1);z-index:4}.board-piece.leaving{opacity:0;z-index:1}.board-pieces:not(.still) .board-piece:not(.leaving){animation:piece-appear .22s ease-out}@keyframes piece-appear{0%{opacity:0}}.board-coordinates{position:absolute;inset:0;pointer-events:none;font:600 clamp(8px,1.5cqw,11px) / 1 var(--font-body, system-ui),sans-serif;color:#c9a667;letter-spacing:.04em}.board-coordinates .coordinate{position:absolute;display:grid;place-items:center;z-index:auto}.board-coordinates .file{left:calc(var(--pad) + (100% - 2 * var(--pad)) * var(--i) / 8);width:calc((100% - 2 * var(--pad)) / 8);bottom:0;height:var(--pad);right:auto;top:auto}.board-coordinates .rank{top:calc(var(--pad) + (100% - 2 * var(--pad)) * var(--i) / 8);height:calc((100% - 2 * var(--pad)) / 8);left:0;width:var(--pad)}.board-suggestion{z-index:4}.board-suggestion .arrow-line{stroke:#58aa68d9;animation:arrow-in .3s ease-out}.board-suggestion .arrow-head{fill:#58aa68d9}.board-suggestion .arrow-line.arrow-idea{stroke:#e2b250e0}.board-suggestion .arrow-head.arrow-idea{fill:#e2b250e0}.board-suggestion .arrow-line.arrow-bad{stroke:#e2684ed9}.board-suggestion .arrow-head.arrow-bad{fill:#e2684ed9}@keyframes arrow-in{0%{opacity:0}}.board-frame.board-won{box-shadow:0 26px 50px -22px #0009,0 0 0 2px #d8b266,0 0 60px -6px #d8b266}.board-frame.board-shake{animation:board-shake .36s}@keyframes board-shake{20%,60%{translate:-6px 0}40%,80%{translate:6px 0}}@media(prefers-reduced-motion:reduce){.board-piece,.board-piece.snapping,.board-frame.board-shake,.board-frame .chessboard .square.hinted:after{transition:none;animation:none}}.line-explorer{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:var(--space-xl, 32px);align-items:start}.line-board{display:grid;gap:12px;min-width:0}.line-player{display:flex;align-items:center;gap:4px;background:var(--raised, var(--surface));border:1px solid var(--line);border-radius:999px;padding:4px;max-width:420px;width:100%;margin-inline:auto}.line-player button{width:44px;height:40px;border:0;border-radius:999px;background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer;padding:0}.line-player button:hover:not(:disabled){background:var(--surface)}.line-player button:disabled{opacity:.35;cursor:default}.line-player .line-play{width:58px;background:var(--action);color:var(--on-action)}.line-player .line-play:hover:not(:disabled){background:var(--action-hover, var(--action))}.line-count{flex:1;text-align:center;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.line-notes{display:grid;gap:16px;min-width:0;overflow-wrap:anywhere;align-content:start}.line-notes h3{margin:0}.line-comment{background:var(--raised, var(--surface));border:1px solid var(--line);border-radius:4px 18px 18px;padding:14px 16px;font-size:15.5px;line-height:1.55;min-height:5.2em;animation:line-comment-in .3s var(--ease-out, ease-out)}.line-comment .san{font-family:var(--font-display);color:var(--gold, var(--action));margin-right:4px}@keyframes line-comment-in{0%{opacity:0;translate:0 6px}}.line-moves.move-list{display:flex;flex-wrap:wrap;gap:2px;font-family:var(--font-display);font-size:16px}.line-move{display:inline-flex;align-items:baseline;white-space:nowrap}.line-move small{color:var(--muted);font-size:13px;padding:0 2px 0 8px}.line-move button{border:0;background:none;padding:5px 8px;border-radius:8px;font:inherit;color:var(--ink);cursor:pointer}.line-move button:hover{background:var(--surface)}.line-move button.active{background:var(--action);color:var(--on-action)}.line-actions{display:flex;flex-wrap:wrap;gap:10px}@media(max-width:860px){.line-explorer{grid-template-columns:minmax(0,1fr);gap:16px}}@media(prefers-reduced-motion:reduce){.line-comment{animation:none}}@media(max-width:860px){.line-notes>.line-comment{order:-2}.line-notes>.line-moves{order:-1}}.line-move button.marked{text-decoration:underline wavy color-mix(in oklab,#e8836a 80%,transparent);text-underline-offset:5px}.line-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;padding:10px 14px;border-radius:14px;background:color-mix(in oklab,var(--gold, #d8b266) 14%,var(--surface));border:1px solid color-mix(in oklab,var(--gold, #d8b266) 40%,transparent);font-weight:600}.game-detail{display:block}.key-moment.current{border-color:color-mix(in oklab,var(--gold, #d8b266) 60%,transparent);box-shadow:0 0 0 1px color-mix(in oklab,var(--gold, #d8b266) 40%,transparent)}.key-moment-actions{display:flex;flex-wrap:wrap;gap:4px 16px}.line-eval{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;max-width:420px;width:100%;margin-inline:auto;font-size:13.5px;font-weight:600;font-variant-numeric:tabular-nums}.line-eval i{display:block;height:12px;border-radius:99px;background:#1f1b17;overflow:hidden;box-shadow:inset 0 0 0 1px var(--line)}.line-eval b{display:block;height:100%;background:#f1ead9;transition:width .4s var(--ease-out, ease-out)}.exercise-workspace .play-layout{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:var(--space-xl, 32px);align-items:start}.exercise-workspace .board-column{display:grid;gap:10px}.exercise-workspace .board-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;min-height:0;margin:0}.exercise-workspace .coach-panel{display:grid;gap:14px;align-content:start;background:var(--raised, var(--surface));border:1px solid var(--line);border-radius:24px;padding:22px;position:sticky;top:16px;box-shadow:none}.exercise-workspace .coach-heading{display:flex;gap:12px;align-items:center;margin:0;padding:0;border:0}.coach-avatar{width:46px;height:46px;flex:none;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#f3d894,#b98d3e);box-shadow:inset 0 -3px 6px #50320a66}.coach-avatar img{width:32px;height:32px}.exercise-workspace .coach-heading strong{display:block;font-family:var(--font-display);font-size:18px;font-weight:600}.exercise-workspace .coach-heading small{color:var(--muted)}.exercise-workspace .coach-panel .player-label{display:flex;align-items:center;gap:8px;font-weight:700;margin:0}.exercise-workspace .coach-panel .player-label .muted{margin-left:auto;font-weight:500;font-variant-numeric:tabular-nums}.exercise-workspace .exercise-objective{margin:-6px 0 0;color:var(--muted);font-size:14px}.coach-thread{display:grid;gap:8px;align-content:start;min-height:140px}.coach-bubble{background:var(--surface);border:1px solid var(--line);border-radius:4px 18px 18px;padding:11px 14px;font-size:15px;line-height:1.5;animation:bubble-in .35s var(--ease-out, ease-out)}.coach-bubble.old{opacity:.55;font-size:13.5px;padding:7px 12px}.coach-bubble .san{font-family:var(--font-display);color:var(--gold, var(--action));margin-right:2px}.coach-bubble.good{background:color-mix(in oklab,var(--success-bg, #cfe9d4) 70%,var(--surface))}.coach-bubble.bad{background:color-mix(in oklab,#e8836a 16%,var(--surface))}.coach-bubble.idea,.coach-bubble.lesson{background:color-mix(in oklab,var(--gold, #d8b266) 14%,var(--surface));border-color:color-mix(in oklab,var(--gold, #d8b266) 40%,transparent)}.coach-bubble.lesson h2{font-size:16px;margin:0 0 4px}.coach-bubble.lesson p{margin:0;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}.coach-bubble.wait{display:flex;align-items:center;gap:10px;color:var(--muted)}@keyframes bubble-in{0%{opacity:0;translate:0 8px}}.exercise-workspace .coach-actions{display:flex;flex-direction:row;flex-wrap:wrap;gap:10px;align-items:center;margin:0}.exercise-workspace .coach-actions .next-exercise{flex-basis:100%;justify-content:center}.exercise-workspace .coach-actions>.text-button{font-size:14px;align-self:center}.exercise-workspace .coach-actions .small{font-size:13px;margin:0}.exercise-workspace .auto-exercise-next{flex-basis:100%}.exercise-board-wrap .move-feedback{top:18px;right:18px;padding:8px 14px;font-size:13.5px;border-width:1.5px;z-index:6}.win-stamp{position:absolute;left:50%;top:50%;z-index:7;pointer-events:none;translate:-50% -50%;rotate:-5deg;max-width:80%;font-family:var(--font-display);font-size:clamp(22px,4.2vw,38px);line-height:1.05;text-align:center;color:#2a1a06;background:#f0cf85;padding:12px 24px 14px;border-radius:10px;box-shadow:0 18px 40px -10px #0009,inset 0 0 0 2px #50320a59;animation:stamp-in 2.4s cubic-bezier(.22,1,.36,1) both}.win-stamp small{display:block;font:700 11px/1 var(--font-body),sans-serif;letter-spacing:.18em;text-transform:uppercase;margin-bottom:6px;opacity:.7}@keyframes stamp-in{0%{opacity:0;scale:1.6}14%{opacity:1;scale:.96}20%{scale:1}80%{opacity:1}to{opacity:0;scale:.94}}.exercise-workspace .solution-section{display:grid;gap:16px;margin:0;padding:0;border:0}.exercise-workspace .solution-section .section-heading{display:flex;align-items:baseline;justify-content:space-between}@media(max-width:860px){.exercise-workspace .play-layout{grid-template-columns:minmax(0,1fr);gap:14px}.exercise-workspace .coach-panel{position:static;padding:18px;border-radius:20px}.coach-thread{min-height:90px}}@media(prefers-reduced-motion:reduce){.coach-bubble,.win-stamp{animation:none}.win-stamp{display:none}}.app-shell.focus-mode{display:block}.focus-mode>.sidebar,.focus-mode>.tabbar,.focus-mode>.mobile-bar{display:none!important}.focus-mode>.main-content{max-width:1240px;margin:0 auto;padding:8px 24px 40px}.session-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:8px 0 18px;margin:0;border:0}.session-close{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer;padding:0}.session-close:hover{background:var(--surface)}.session-heading{display:grid;grid-template-columns:auto auto;justify-content:center;align-items:baseline;gap:4px 10px;text-align:center;min-width:0}.session-kind{font-size:14px}.session-domain{font-size:13px;color:var(--muted)}.session-steps{grid-column:1 / -1;display:flex;gap:5px;justify-content:center;flex-wrap:wrap}.session-steps i{width:22px;height:6px;border-radius:99px;background:var(--line);transition:background .3s}.session-steps i.done{background:var(--success-ink, #3a8a55)}.session-steps i.now{background:var(--gold, var(--action));width:34px}.session-count{font-variant-numeric:tabular-nums;color:var(--muted);font-size:14px;min-width:42px;text-align:right}.session-note{margin:-8px 0 14px;text-align:center;color:var(--muted);font-size:14px}.focus-mode .exercise-workspace .board-frame{max-width:min(100%,calc(100vh - 150px))}.exercise-workspace .coach-actions .thinking-hint{display:contents}.exercise-workspace .coach-actions .thinking-hint .hint-box{order:-1;flex-basis:100%;margin:0;border-radius:4px 18px 18px}@media(max-width:760px){.focus-mode>.main-content{padding:4px 12px 24px}.session-steps i{width:12px}.session-steps i.now{width:22px}.exercise-workspace .coach-actions>button,.exercise-workspace .coach-actions .thinking-hint>button{flex:1 1 140px;width:auto}}.exercise-workspace .coach-state{font-size:24px;line-height:1.15;margin:2px 0 0}.game-page.has-game{display:flex;flex-direction:column}.game-page.has-game>.page-header{order:-2}.game-page.has-game>.page-header p{display:none}.game-page.has-game>.play-layout{order:-1;margin-top:0}.review-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.review-tabs button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:99px;padding:9px 16px;font:inherit;font-weight:600;cursor:pointer}.review-tabs button.active{background:var(--success-bg, #cfe9d4);border-color:var(--success-ink, #3a8a55)}.review-tabs button.bad.active{background:color-mix(in oklab,#e8836a 22%,var(--surface));border-color:#c4643f}.game-review-section{margin-top:var(--space-xl, 32px);display:grid;gap:12px}.variation-controls{display:flex;flex-wrap:wrap;gap:4px 16px}.variation-controls .text-button{display:inline-flex;align-items:center;gap:6px}.verdict{display:inline-block;padding:1px 10px;border-radius:99px;font-size:13.5px}.verdict-good{background:color-mix(in oklab,var(--success-bg, #cfe9d4) 70%,transparent);color:var(--success-ink, #2f7a4a)}.verdict-warn{background:color-mix(in oklab,var(--gold, #d8b266) 25%,transparent);color:var(--ink)}.verdict-bad{background:color-mix(in oklab,var(--danger-bg, #f3c9c0) 70%,transparent);color:var(--danger-ink, #b3412f)}.candidates{display:grid;gap:10px;margin-top:12px}.candidates>.secondary{justify-self:start;display:inline-flex;align-items:center;gap:8px}.candidate-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.candidate-list li{display:grid;gap:4px;padding:10px 12px;border-radius:14px;border:1px solid var(--line);background:var(--surface)}.candidate-list li>button{display:flex;align-items:center;gap:10px;padding:0;border:0;background:none;font:inherit;color:inherit;cursor:pointer;text-align:left}.candidate-list p{margin:0;color:var(--muted);font-size:14px}.candidate-score{font-variant-numeric:tabular-nums;color:var(--muted)}.variation-tree{display:grid;gap:6px;margin-top:14px}.variation-tree p{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}.variation-tree .variation-branch{padding-left:14px;color:var(--muted)}.variation-tree button{border:0;background:none;font:inherit;padding:2px 6px;border-radius:8px;cursor:pointer;color:inherit}.variation-tree button.active{background:var(--action, #1d3b2e);color:var(--action-ink, #fff)}.today-session h1{font-size:clamp(36px,5vw,60px);line-height:1.02}button.today-session-board{border:0;padding:0;background:none;cursor:pointer;transition:transform .35s var(--ease-out)}button.today-session-board:hover:not(:disabled){transform:translateY(-4px)}button.today-session-board .chessboard,button.today-session-board .chessboard .square{cursor:pointer}.today-week{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:var(--space-xl, 32px)}.week-panel{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:20px 22px;display:grid;gap:10px;align-content:start}.week-panel .today-tag{margin:0}.week-panel h2{font-size:21px;margin:0 0 4px}.week-days{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}.week-days span{display:grid;justify-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--muted)}.week-days img{width:28px;height:28px;opacity:.22;filter:grayscale(1);transition:opacity .4s,transform .4s var(--ease-out)}.week-days .on img{opacity:1;filter:drop-shadow(0 2px 2px rgb(0 0 0 / .25))}.week-days .today img{border-radius:50%;outline:1.5px dashed var(--gold, var(--action));outline-offset:3px}.week-days .today.on img{outline-style:solid;transform:scale(1.1)}.week-note{margin:4px 0 0;color:var(--muted);font-size:14px}.week-meter{display:grid;grid-template-columns:1fr auto;gap:6px;font-size:14.5px}.week-meter i{grid-column:1 / -1;height:8px;border-radius:99px;background:var(--raised, var(--line));overflow:hidden}.week-meter b{display:block;height:100%;border-radius:inherit;background:var(--success-ink, #3a8a55)}.week-meter .muted{font-variant-numeric:tabular-nums}.today-week+.today-next{margin-top:var(--space-xl, 32px)}.player-report{display:grid;gap:var(--space-lg, 24px)}.report-section{display:grid;gap:14px}.report-section>h2{font-size:26px;margin:8px 0 0}.report-section h3{font-size:18px;margin:0 0 8px}.report-plan{list-style:none;margin:0;padding:0;display:grid;gap:12px}.report-plan>li{display:grid;grid-template-columns:40px minmax(0,1fr);gap:14px;padding:18px 20px;background:var(--surface);border:1px solid var(--line);border-radius:20px}.report-plan>li:first-child{border-color:color-mix(in oklab,var(--gold, #d8b266) 55%,transparent);background:color-mix(in oklab,var(--gold, #d8b266) 8%,var(--surface))}.report-plan-number{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-display);font-size:18px;border:1.5px solid var(--gold, var(--action));color:var(--gold, var(--action))}.report-plan strong{font-family:var(--font-display);font-weight:400;font-size:19px}.report-plan p{margin:4px 0 12px;color:var(--muted)}.report-strengths{margin:0;padding:0;list-style:none;display:grid;gap:8px}.report-strengths li{padding:12px 16px;border-radius:14px;background:color-mix(in oklab,var(--success-bg, #cfe9d4) 55%,var(--surface))}.report-strengths li:before{content:"✓ ";color:var(--success-ink, #3a8a55);font-weight:700}.report-openings,.report-errors,.report-trends{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}.report-openings ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}.opening-branch{padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:var(--surface);display:grid;gap:8px}.opening-branch-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.opening-branch-head strong{font-family:var(--font-display);font-weight:400;font-size:17px}.advice-chip{flex:none;font-size:12px;font-weight:700;padding:3px 10px;border-radius:99px;border:1px solid var(--line);color:var(--muted)}.advice-keep .advice-chip{color:var(--success-ink, #3a8a55);border-color:currentColor}.advice-course .advice-chip{color:#c4643f;border-color:currentColor}.opening-branch-score{display:grid;gap:6px;font-size:13.5px;color:var(--muted)}.opening-branch-score i,.report-meter i{display:block;height:8px;border-radius:99px;background:var(--raised, var(--line));overflow:hidden}.opening-branch-score b,.report-meter b{display:block;height:100%;border-radius:inherit;background:var(--success-ink, #3a8a55)}.advice-course .opening-branch-score b,.report-meter b{background:#c4643f}.opening-branch .text-button{justify-self:start;display:inline-flex;gap:6px;align-items:center}.report-meter{display:grid;grid-template-columns:1fr auto;gap:6px;margin-bottom:12px;font-size:14.5px}.report-meter i{grid-column:1 / -1}.report-kinds{list-style:none;margin:0;padding:0;display:grid;gap:6px}.report-kinds li{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:10px 14px;border-radius:12px;background:var(--surface);border:1px solid var(--line)}.report-kinds strong{font-family:var(--font-display);font-weight:400;font-size:18px;font-variant-numeric:tabular-nums}.report-trend{padding:16px 18px;border-radius:18px;background:var(--surface);border:1px solid var(--line);color:var(--ink)}.report-trend h3{display:flex;justify-content:space-between;align-items:baseline}.report-trend .up{color:var(--success-ink, #3a8a55);font-size:15px}.report-trend .down{color:#c4643f;font-size:15px}.report-curve{width:100%;height:auto;display:block;color:var(--gold, var(--action))}.report-curve-axis{fill:var(--muted);font-size:10px}.report-curve-value{fill:var(--ink);font-size:11px;font-weight:700}.report-note{font-size:13px}.report-entry{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;padding:16px 20px;margin:12px 0;border-radius:18px;border:1px solid color-mix(in oklab,var(--gold, #d8b266) 50%,transparent);background:color-mix(in oklab,var(--gold, #d8b266) 10%,var(--surface));color:var(--ink);cursor:pointer}.report-entry strong{display:block;font-family:var(--font-display);font-weight:400;font-size:19px}.report-entry small{color:var(--muted)}.prepare-page{display:grid;gap:var(--space-lg, 24px)}.prepare-card{padding:20px 22px;border-radius:22px;border:1px solid color-mix(in oklab,var(--gold, #d8b266) 45%,transparent);background:color-mix(in oklab,var(--gold, #d8b266) 7%,var(--surface));display:grid;gap:14px}.prepare-card h2{display:flex;align-items:center;gap:10px;font-size:24px;margin:0}.prepare-card p{margin:0}.opponent-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;align-items:end}.opponent-form label{display:grid;gap:6px;font-size:13px;font-weight:600}.opponent-form input,.opponent-form select{min-height:44px;border-radius:12px;border:1px solid var(--line);background:var(--field, var(--surface));color:var(--ink);padding:0 12px;font:inherit}.opponent-form button{min-height:44px}.stance{justify-self:start;margin:0;font-weight:700;padding:6px 14px;border-radius:99px;border:1px solid currentColor}.stance-solid{color:#4f8fbf}.stance-balanced{color:var(--gold, var(--action))}.stance-ambitious{color:#c4643f}.plan-picks{list-style:none;margin:0;padding:0;display:grid;gap:10px}.plan-picks li{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;align-items:baseline;padding:12px 16px;border-radius:16px;background:var(--surface);border:1px solid var(--line)}.plan-picks strong{font-family:var(--font-display);font-weight:400;font-size:22px;color:var(--gold, var(--action))}.plan-picks small{grid-column:1 / -1;color:var(--muted)}.probable-lines{list-style:none;margin:0;padding:0;display:grid;gap:12px}.probable-line{padding:14px 16px;border-radius:16px;background:var(--surface);border:1px solid var(--line);display:grid;gap:10px}.probable-line p{margin:0;font-size:13.5px}.probable-moves{display:flex;flex-wrap:wrap;gap:6px;font-family:var(--font-display)}.probable-step{padding:4px 9px;border-radius:9px;border:1px solid var(--line);display:inline-flex;gap:5px;align-items:baseline}.probable-step.you{background:color-mix(in oklab,var(--gold, #d8b266) 16%,var(--surface))}.probable-step small{font-family:var(--font-body);font-size:11px;color:var(--muted)}.weak-spot{color:var(--success-ink, #3a8a55);font-weight:700}.slot-card{padding:16px 18px;border-radius:18px;background:var(--surface);border:1px solid var(--line);display:grid;gap:12px;align-content:start}.mastery{display:grid;gap:3px}.mastery small{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gold, var(--action))}.mastery strong{font-family:var(--font-display);font-weight:400;font-size:19px}.mastery-line{font-family:var(--font-display);font-size:15px}.mastery .muted{font-size:13px}.choices{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}.choices>li{padding:14px 16px;border-radius:16px;background:var(--surface);border:1px solid var(--line);display:grid;gap:8px}.choice-head{display:flex;justify-content:space-between;font-weight:600;font-size:14px}.confidence{font-size:12px;padding:2px 9px;border-radius:99px;border:1px solid currentColor}.confidence.solid{color:var(--success-ink, #3a8a55)}.confidence.tentative{color:var(--muted)}.choice-option{display:grid;grid-template-columns:64px 1fr auto;gap:10px;align-items:center;font-size:13.5px}.choice-option strong{font-family:var(--font-display);font-weight:400;font-size:16px}.choice-option i{display:block;height:8px;border-radius:99px;background:var(--raised, var(--line));overflow:hidden}.choice-option b{display:block;height:100%;background:var(--muted);border-radius:inherit}.choice-option.best b{background:var(--success-ink, #3a8a55)}.choice-option.best strong{color:var(--success-ink, #3a8a55)}.plan-picks .pick-idea{color:var(--gold, var(--action))}.find-accounts{justify-self:start}.player-search{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.player-search h3{font-size:17px;margin:0 0 8px}.search-results{list-style:none;margin:0;padding:0;display:grid;gap:8px}.search-results li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}.search-results li>span{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline}.search-results small{flex-basis:100%;color:var(--muted)}.match{font-size:12px;padding:1px 8px;border-radius:99px;border:1px solid currentColor}.match-high{color:var(--success-ink, #3a8a55)}.match-medium{color:var(--gold, var(--action))}.match-low{color:var(--muted)}.written-plan{padding:18px 20px;border-radius:18px;background:color-mix(in oklab,var(--gold, #d8b266) 9%,var(--surface));border:1px solid color-mix(in oklab,var(--gold, #d8b266) 45%,transparent);display:grid;gap:10px}.written-plan h3{margin:0}.written-plan h4{margin:0 0 6px;font-size:15px}.written-plan ul{margin:0;padding-left:18px;display:grid;gap:6px}.written-plan p{margin:0}.opponent-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.opponent-filters label{display:grid;gap:4px;font-size:13px;font-weight:600}.opponent-filters select{min-height:40px;border-radius:10px;border:1px solid var(--line);background:var(--field, var(--surface));color:var(--ink);padding:0 10px;font:inherit}.opponent-game-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.opponent-game-list>li{border-radius:14px;border:1px solid var(--line);background:var(--surface);overflow:hidden}.opponent-game-list>li.open{padding-bottom:16px}.opponent-game-list>li.open .line-explorer{padding:0 16px}.opponent-game{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;border:0;background:none;color:var(--ink);text-align:left;cursor:pointer}.opponent-game:hover{background:var(--raised, var(--surface))}.opponent-game-main{flex:1;display:grid;gap:2px}.opponent-game-main small{color:var(--muted)}.outcome{font-size:12.5px;font-weight:700;padding:2px 10px;border-radius:99px;border:1px solid currentColor}.outcome-win{color:#c4643f}.outcome-loss{color:var(--success-ink, #3a8a55)}.outcome-draw{color:var(--muted)}.kind-advice{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}.program-page{display:grid;gap:var(--space-lg, 24px)}.program-week{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 18px;border-radius:16px;background:var(--surface);border:1px solid var(--line);font-weight:600}.program-week i,.program-progress i{display:block;height:10px;border-radius:99px;background:var(--raised, var(--line));overflow:hidden}.program-week b,.program-progress b{display:block;height:100%;border-radius:inherit;background:var(--success-ink, #3a8a55);transition:width .4s var(--ease-out, ease-out)}.program-week strong{font-family:var(--font-display);font-weight:400;font-size:20px;font-variant-numeric:tabular-nums}.program-blocks{list-style:none;margin:0;padding:0;display:grid;gap:12px}.program-blocks>li{display:grid;grid-template-columns:42px minmax(0,1fr);gap:14px;padding:18px 20px;border-radius:20px;background:var(--surface);border:1px solid var(--line)}.program-blocks>li.complete{background:color-mix(in oklab,var(--success-bg, #cfe9d4) 45%,var(--surface))}.program-number{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-display);font-size:18px;border:1.5px solid var(--gold, var(--action));color:var(--gold, var(--action))}.complete .program-number{border-color:var(--success-ink, #3a8a55);background:var(--success-ink, #3a8a55);color:var(--surface)}.program-body{display:grid;gap:6px}.program-body strong{font-family:var(--font-display);font-weight:400;font-size:20px}.program-lesson{font-weight:600}.program-body p{margin:0;color:var(--muted)}.program-progress{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;max-width:420px;font-size:13.5px}.fide-actions{display:inline-flex;flex-wrap:wrap;gap:4px 14px}.opponent-pgn{display:grid;gap:10px}.opponent-pgn[open]{padding-bottom:4px}.opponent-pgn summary{cursor:pointer;font-weight:700;color:var(--gold, var(--action))}.opponent-pgn p{margin:0;max-width:68ch}.opponent-pgn textarea{width:100%;font:inherit;font-size:14px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:inherit;resize:vertical}.opponent-pgn>button{justify-self:start}.program-preview{display:grid;gap:14px;padding:20px 22px;border-radius:22px;background:var(--surface);border:1px solid var(--line)}.program-preview-head{display:grid;gap:8px}.program-preview-head h2{margin:0;font-size:24px}.program-preview-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}.program-preview-list>li{display:grid;gap:8px;padding-top:12px;border-top:1px solid var(--line)}.program-preview-list strong{font-family:var(--font-display);font-weight:400;font-size:19px}.program-preview-list p{margin:2px 0;color:var(--muted)}.program-preview>.text-button{justify-self:start}.assessment-history{display:grid;gap:12px;padding:20px 22px;border-radius:22px;border:1px solid var(--line);background:var(--surface)}.assessment-history h2{margin:0;font-size:24px}.assessment-history p{margin:0}.assessment-history table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.assessment-history th,.assessment-history td{padding:8px 6px;text-align:left;border-bottom:1px solid var(--line);font-size:15px}.assessment-history thead th{font-size:12.5px;color:var(--muted);font-weight:600}.assessment-history .up{color:var(--success-ink, #3a8a55);font-weight:700}.assessment-history .down{color:var(--danger-ink, #b3412f);font-weight:700}.assessment-history>button{justify-self:start}.lab-page{display:grid;gap:var(--space-lg, 24px)}.lab-advice ul{margin:0;padding-left:20px;display:grid;gap:4px}.lab-best{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin:0}.lab-best strong{font-family:var(--font-display);font-weight:400;font-size:30px}.lab-candidates{list-style:none;margin:0;padding:0;display:grid;gap:12px}.lab-candidates>li{display:grid;gap:10px;padding:18px 20px;border-radius:20px;border:1px solid var(--line);background:var(--surface)}.lab-candidates>li.best{border-color:color-mix(in oklab,var(--gold, var(--action)) 60%,var(--line))}.lab-candidates header{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}.lab-candidates header strong{font-family:var(--font-display);font-weight:400;font-size:21px}.lab-candidates dl{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:8px 18px}.lab-candidates dt{font-size:12.5px;color:var(--muted)}.lab-candidates dd{margin:0;font-variant-numeric:tabular-nums}.lab-banner{padding:10px 14px;border-radius:14px;background:color-mix(in oklab,var(--gold, #d8b266) 12%,var(--surface));margin:0 0 12px}.lab-variations{display:grid;gap:8px}.lab-variations label{min-width:0;display:grid;gap:4px;font-size:13.5px;max-width:460px}.lab-variations p{margin:0;max-width:70ch}.lab-map{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:14px}.lab-map th,.lab-map td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top}.lab-map thead th{font-size:12.5px;font-weight:500;color:var(--muted)}.lab-map tbody th span{display:block;font-weight:400;font-size:12.5px}.lab-map tr.weak td:last-child{color:var(--red-11, #a5402d);font-weight:600}.lab-map tr.strong td:last-child{color:var(--success-ink);font-weight:600}.lab-variations{min-width:0}.lab-variations select{min-width:0;max-width:100%}.lab-map-scroll{overflow-x:auto;max-width:100%}.lab-map{min-width:620px}.lab-map small{display:block;color:var(--muted);font-weight:400}.lab-map .lab-family{background:color-mix(in oklab,var(--action) 6%,var(--surface))}.lab-map .lab-variant th{padding-left:20px;font-weight:400}.lab-map-scroll:focus-visible{outline:2px solid var(--action);outline-offset:2px}.lab-report{display:grid;gap:8px;padding:14px 16px;margin:0 0 12px;border-radius:16px;background:color-mix(in oklab,var(--gold, #d8b266) 10%,var(--surface))}.lab-report h3,.lab-report p{margin:0}.lab-worst{margin:0;padding-left:1.3em}.lab-map-help{display:none}@media(max-width:700px){.lab-map-help{display:block}}.lab-traps{display:grid;gap:8px}.lab-traps summary{cursor:pointer;font-weight:600}.lab-traps ol{margin:8px 0 0;padding-left:1.3em;display:grid;gap:14px}.lab-traps li{display:grid;gap:4px;justify-items:start}.lab-traps p{margin:0;max-width:72ch}.nav-secondary{display:grid;gap:2px;margin-top:18px}.nav-secondary p{margin:0 0 4px 12px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.nav-secondary .nav-item{font-size:14px;min-height:36px}.coach-level{display:grid;gap:12px;padding:18px 20px;border:1px solid var(--line);border-radius:20px;background:var(--surface);margin:0 0 20px}.coach-level-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px}.coach-level-head h2{margin:0}.coach-level-domains{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr));gap:10px}.coach-level-domains li{display:grid;gap:2px;padding:10px 12px;border-radius:14px;background:color-mix(in oklab,var(--sage, #6f8f6a) 8%,var(--surface))}.coach-level-domains strong{font-size:24px;font-variant-numeric:tabular-nums}.coach-level-domains small{color:var(--muted)}.coach-level-domains small.up{color:var(--success-ink)}.coach-level-domains small.down{color:var(--red-11, #a5402d)}.hub-start,.hub-more{display:grid;gap:8px;margin:0 0 24px}.hub-start h2,.hub-more h2{margin:0}.tree-panel{display:grid;gap:12px;min-width:0}.tree-moves{max-height:520px;overflow:auto;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);font-variant-numeric:tabular-nums}.tree-line,.tree-branch{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 4px}.tree-branches{flex-basis:100%;display:grid;gap:4px;margin:2px 0 4px 10px;padding-left:10px;border-left:1px solid var(--line)}.tree-move{border:0;background:transparent;padding:2px 5px;border-radius:6px;font:inherit;font-size:14px;color:var(--ink);cursor:pointer}.tree-move:disabled{cursor:default;color:var(--ink)}.tree-move.mine{font-weight:600}.tree-move.current{background:var(--action);color:var(--on-action)}.tree-feedback{margin:0;padding:10px 12px;border-radius:12px}.tree-feedback.good{background:var(--success-bg);color:var(--success-ink)}.tree-feedback.bad{background:color-mix(in oklab,var(--red-9, #c0502f) 10%,var(--surface))}.tree-train{display:grid;gap:8px}.tree-train p{margin:0}@media(max-width:820px){.repertoire-tree{grid-template-columns:1fr}}.popular-moves ul{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:4px}.popular-moves li{display:grid;grid-template-columns:56px minmax(0,1fr) 44px auto;align-items:center;gap:8px;font-variant-numeric:tabular-nums;font-size:14px}.popular-moves i{display:block;height:8px;border-radius:99px;background:color-mix(in oklab,var(--line) 70%,transparent);overflow:hidden}.popular-moves b{display:block;height:100%;background:var(--sage, #6f8f6a)}.popular-moves p{margin:0}.moment-lesson{display:grid;gap:8px;margin:8px 0}.moment-lesson div{display:grid;gap:2px}.moment-lesson dt{font-size:12.5px;font-weight:600;color:var(--muted)}.moment-lesson dd{margin:0;max-width:70ch}.surprise-moves{display:grid;gap:6px;padding:10px 12px;border-radius:14px;background:color-mix(in oklab,var(--gold, #d8b266) 12%,var(--surface))}.surprise-moves p{margin:0}.surprise-moves ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}.surprise-moves li{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px}.surprise-moves small{flex-basis:100%}.opening-level{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}.level-dots{display:inline-flex;gap:4px}.level-dots i{width:10px;height:10px;border-radius:50%;border:1px solid var(--line);background:var(--surface)}.level-dots i.on{background:var(--sage, #6f8f6a);border-color:var(--sage, #6f8f6a)}.level-dots i.current{border-color:var(--action);box-shadow:0 0 0 2px color-mix(in oklab,var(--action) 25%,transparent)}.tree-move.missed{text-decoration:underline wavy color-mix(in oklab,var(--red-9, #c0502f) 70%,transparent);text-underline-offset:3px}.level-trend{width:100%;height:44px;margin-top:4px;overflow:visible}.level-trend path{fill:none;stroke:var(--sage, #6f8f6a);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.level-trend circle{fill:var(--sage, #6f8f6a);stroke:var(--surface);stroke-width:2}.level-trend circle.start{fill:var(--surface);stroke:var(--sage, #6f8f6a)}.level-trend circle.hit{fill:transparent;stroke:none}.level-trend-point:focus-visible circle:not(.hit),.level-trend-point:hover circle:not(.hit){stroke:var(--ink)}.level-trend-point:focus-visible{outline:none}.daily-challenge{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:16px;align-items:center;padding:18px 20px;border:1px solid var(--line);border-radius:20px;background:color-mix(in oklab,var(--gold, #d8b266) 10%,var(--surface));margin:0 0 20px}.daily-challenge h2,.daily-challenge p{margin:0 0 8px}.daily-challenge-board{border:0;padding:0;background:none;cursor:pointer}.daily-challenge-board:disabled{cursor:default}@media(max-width:560px){.daily-challenge{grid-template-columns:1fr}.daily-challenge-board{max-width:240px}}.real-trend{display:grid;gap:12px;padding:18px 20px;border:1px solid var(--line);border-radius:20px;background:var(--surface);margin:0 0 20px;justify-items:start}.real-trend .coach-level-head{width:100%}.real-trend .report-curve{width:100%;max-width:420px;color:var(--sage, #6f8f6a)}.real-trend-figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:10px;width:100%}.real-trend-figures>div{display:grid;gap:2px;padding:10px 12px;border-radius:14px;background:color-mix(in oklab,var(--sage, #6f8f6a) 8%,var(--surface))}.real-trend-figures strong{font-size:24px;font-variant-numeric:tabular-nums}.real-trend-figures small{color:var(--muted)}.real-trend-figures small.up{color:var(--success-ink)}.real-trend-figures small.down{color:var(--red-11, #a5402d)}@media(max-width:560px){.today-session-board{display:none}.daily-challenge{grid-template-columns:minmax(0,1fr) 110px;align-items:start}.daily-challenge-board{max-width:110px}}.opening-acquis.compact{gap:8px}.decision-tree{display:grid;gap:10px;min-width:0}.dt-path{display:flex;flex-wrap:wrap;gap:4px}.dt-chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:3px 10px;font:inherit;font-size:13px;color:var(--ink);cursor:pointer}.dt-chip.current{background:var(--action);border-color:var(--action);color:var(--on-action)}.dt-chip.explored{border-style:dashed}.dt-scroll{overflow-x:auto;padding:10px 4px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);max-height:560px;overflow-y:auto}.dt-node{display:flex;align-items:center;position:relative}.dt-here{flex:none;display:grid;gap:2px;padding:7px 10px;border-radius:10px;background:var(--action);color:var(--on-action);font-size:13px;font-weight:600}.dt-here small{font-weight:400;font-size:11.5px}.tree-full{display:grid;gap:10px;margin-top:20px}.dt-children{display:flex;flex-direction:column;gap:8px;margin-left:18px;padding-left:18px;position:relative}.dt-children:before{content:"";position:absolute;left:0;top:18px;bottom:18px;border-left:2px solid var(--line)}.dt-children:after{content:"";position:absolute;left:-18px;top:50%;width:18px;border-top:2px solid var(--line)}.dt-children>.dt-node:before,.dt-children>.dt-more:before{content:"";position:absolute;left:-18px;top:50%;width:18px;border-top:2px solid var(--line)}.dt-children>.dt-more{position:relative}.dt-card{flex:none;display:grid;gap:2px;text-align:left;min-width:96px;max-width:220px;padding:7px 10px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}.dt-card .dt-moves{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}.dt-card small{font-size:11.5px;color:var(--muted)}.dt-card.mine{background:var(--success-bg);border-color:color-mix(in oklab,var(--success-ink) 35%,var(--line))}.dt-card.explored{border-style:dashed;border-color:var(--gold, #b8913f);background:color-mix(in oklab,var(--gold, #d8b266) 10%,var(--surface))}.dt-card.current{outline:2px solid var(--action);outline-offset:1px}.dt-card.missed .dt-moves{text-decoration:underline wavy color-mix(in oklab,var(--red-9, #c0502f) 70%,transparent);text-underline-offset:3px}.dt-card:hover{border-color:var(--action)}.dt-more{border:1px dashed var(--line);background:transparent;border-radius:10px;padding:6px 10px;font:inherit;font-size:13px;color:var(--muted);cursor:pointer;width:max-content}.dt-legend{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0;font-size:12.5px}.dt-key{display:inline-block;width:14px;height:10px;border-radius:3px;border:1px solid var(--line);background:var(--surface)}.dt-key.mine{background:var(--success-bg)}.dt-key.explored{border-style:dashed;border-color:var(--gold, #b8913f)}.tree-move.explored{border:1px dashed var(--gold, #b8913f)}.tree-view-switch{margin:0}.dt-children:has(>:only-child):before{display:none}.masters-page{display:grid;gap:var(--space-lg, 24px)}.master-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:14px}.master-card{width:100%;height:100%;display:grid;align-content:start;gap:8px;padding:18px 20px;border-radius:20px;border:1px solid var(--line);background:var(--surface);color:inherit;text-align:left;font:inherit;cursor:pointer;transition:border-color .2s var(--ease-out, ease-out),transform .2s var(--ease-out, ease-out)}.master-card:hover,.master-card:focus-visible{border-color:color-mix(in oklab,var(--gold, var(--action)) 60%,var(--line));transform:translateY(-2px)}.master-card small{font-size:11.5px;font-weight:700;letter-spacing:.02em;color:var(--gold, var(--action))}.master-card strong{font-family:var(--font-display);font-weight:400;font-size:22px;line-height:1.2}.master-card p{margin:0;color:var(--muted);font-size:14.5px;line-height:1.5}.master-tags{display:flex;flex-wrap:wrap;gap:6px}.master-theme{font-size:12.5px;padding:3px 10px;border-radius:99px;border:1px solid var(--line);color:var(--muted)}.master-go{display:inline-flex;align-items:center;gap:6px;margin-top:4px;font-weight:700;color:var(--gold, var(--action))}.master-guess{display:grid;grid-template-columns:minmax(0,min(560px,100%)) minmax(0,1fr);gap:28px;align-items:start}.master-guess-text{display:grid;gap:12px;align-content:start}.master-guess-text h2{margin:0;font-size:26px}.master-guess-text p{margin:0;line-height:1.55;max-width:62ch}.master-hint{display:flex;gap:8px;align-items:flex-start;padding:10px 14px;border-radius:14px;background:color-mix(in oklab,var(--gold, #d8b266) 12%,var(--surface))}.master-hint svg{flex:none;margin-top:3px;color:var(--gold, var(--action))}@media(max-width:860px){.master-guess{grid-template-columns:minmax(0,1fr);gap:18px}}.masters-row{margin-bottom:var(--space-md, 16px)}
