:root{color:#1b2b25;font-synthesis:none;text-rendering:optimizelegibility;--ink:#1b2b25;--muted:#68736e;--paper:#fffdf6;--line:#d9d5c8;--green:#1f5a48;--green-dark:#153f34;--gold:#e5b94e;--board-light:#e7ddc2;--board-dark:#547866;--shadow:0 24px 70px #1b2b251f;background:#f2f0e8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #d19a16}.shell{max-width:1240px;margin:0 auto;padding:28px}.topbar{justify-content:space-between;align-items:end;gap:24px;margin-bottom:24px;display:flex}.eyebrow{color:var(--green);letter-spacing:.14em;text-transform:uppercase;margin:0 0 5px;font-size:12px;font-weight:800}h1{letter-spacing:-.04em;margin:0;font-family:Georgia,serif;font-size:clamp(34px,5vw,58px);font-weight:500}h2{margin:0;font-size:18px}.status{border:1px solid var(--line);background:#fffdf6bf;border-radius:999px;align-items:center;gap:9px;padding:10px 14px;font-size:14px;display:flex}.status-dot{background:#8d9692;border-radius:50%;width:9px;height:9px}.status-dot.active{background:#2ba36d;box-shadow:0 0 0 4px #2ba36d21}.workspace{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:24px;display:grid}.board-panel{background:var(--green-dark);box-shadow:var(--shadow);border-radius:24px;padding:clamp(14px,3vw,30px)}.board-wrap{width:min(100%,760px);margin:0 auto}.board{aspect-ratio:1;border:8px solid #0f332a;border-radius:10px;grid-template-columns:repeat(8,1fr);display:grid;overflow:hidden}.square{border:0;place-items:center;min-width:0;padding:0;display:grid;position:relative}.square.light{background:var(--board-light)}.square.dark{background:var(--board-dark)}.square.dark:hover:not(:disabled){filter:brightness(1.08)}.square:focus-visible{z-index:3;outline-offset:-4px;outline:4px solid #fff}.square.start:after,.square.next:after{content:"";aspect-ratio:1;background:var(--gold);border-radius:50%;width:24%;position:absolute;box-shadow:0 0 0 5px #e5b94e3b}.square.next:after{background:#fff5ba;width:20%}.square.selected{box-shadow:inset 0 0 0 5px var(--gold)}.square.animated{z-index:2;box-shadow:inset 0 0 0 6px #fff5ba}.square.captured:before{content:"×";z-index:4;color:#8a241f;font-size:clamp(24px,5vw,48px);font-weight:800;position:absolute}.piece{z-index:2;aspect-ratio:1;border-radius:50%;width:68%;position:relative;box-shadow:inset 0 0 0 5px #ffffff29,0 8px 13px #00000047}.piece.white{background:#fffaf0;border:2px solid #c9bfa9}.piece.black{background:#202a27;border:2px solid #0e1513}.crown{color:var(--gold);place-items:center;font-size:clamp(18px,3vw,34px);display:grid;position:absolute;inset:0}.coordinate{color:#ffffff94;font-size:clamp(8px,1.1vw,12px);position:absolute;bottom:2px;left:5px}.light .coordinate{color:#1b2b2573}.board.disabled{pointer-events:none}.board-help{color:#d4e2dc;text-align:center;min-height:24px;margin:14px 0 0;font-size:14px}.board-placeholder{color:#fff;place-items:center;min-height:520px;display:grid}.side-panel{gap:16px;display:grid}.card{border:1px solid var(--line);background:var(--paper);border-radius:18px;padding:20px;box-shadow:0 10px 35px #1b2b250f}.controls-card{gap:12px;display:grid}label{color:var(--muted);font-size:13px;font-weight:700}textarea{resize:vertical;border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:10px;padding:10px;font-family:ui-monospace,monospace;font-size:12px}.card button{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:10px;padding:10px 12px;font-weight:700}.card button:hover:not(:disabled){border-color:var(--green)}.card button.primary{color:#fff;border-color:var(--green);background:var(--green)}.card button.primary:hover:not(:disabled){background:var(--green-dark)}.button-row{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.button-row button{padding-inline:6px;font-size:12px}.error{color:#8a241f;background:#fbe8e5;border-radius:9px;margin:0;padding:10px;font-size:13px}.card-heading{justify-content:space-between;align-items:center;display:flex}.card-heading span{text-align:center;background:#edf1ed;border-radius:999px;min-width:28px;padding:3px 8px;font-size:12px}.move-list{max-height:270px;margin:14px 0 0;padding:0;list-style:none;overflow:auto}.move-list li{border-bottom:1px solid #ece8dc;grid-template-columns:28px 1fr;gap:6px;padding:8px 0;font-size:14px;display:grid}.move-list li>span{color:var(--muted)}.move-list small{color:var(--muted);grid-column:2}.muted{color:var(--muted);margin:14px 0 0;font-size:13px}.meta-card dl{margin:14px 0 0}.meta-card dl div{border-bottom:1px solid #ece8dc;justify-content:space-between;gap:14px;padding:7px 0;font-size:13px;display:flex}.meta-card dt{color:var(--muted)}.meta-card dd{margin:0;font-family:ui-monospace,monospace;font-size:11px}.mode-footer{text-align:right;max-width:1240px;margin:0 auto 28px;padding:0 28px}.mode-footer a{color:var(--green);text-underline-offset:4px;font-weight:800}.lesson-shell{max-width:1240px;min-height:calc(100vh - 70px);margin:0 auto;padding:28px}.lesson-header{justify-content:space-between;align-items:end;gap:24px;display:flex}.lesson-stage{border:1px solid var(--line);background:var(--paper);color:var(--green);border-radius:999px;padding:10px 14px;font-weight:800}.lesson-progress{background:#dfe5df;border-radius:999px;height:9px;margin:22px 0 24px;overflow:hidden}.lesson-progress span{border-radius:inherit;background:linear-gradient(90deg, var(--green), #72a58b);height:100%;transition:width .18s;display:block}.lesson-workspace{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:24px;display:grid}.lesson-board-panel{position:sticky;top:16px}.lesson-panel{gap:16px;min-height:420px;display:grid}.lesson-panel-heading{color:var(--muted);justify-content:space-between;align-items:center;gap:16px;font-size:12px;font-weight:800;display:flex}.lesson-kicker{color:var(--green);letter-spacing:.06em;text-transform:uppercase}.lesson-prompt{color:#3f4c46;margin:0;font-size:16px;line-height:1.55}.concept-options,.lesson-actions{gap:10px;display:grid}.lesson-feedback{color:#7a2d27;background:#fff0ed;border:1px solid #e4c7c2;border-radius:12px;padding:14px}.lesson-feedback.success{color:#1f6844;background:#edf8f1;border-color:#b8d9c6}.lesson-feedback.hint{color:#315f87;background:#edf5fb;border-color:#c7d8e8}.lesson-feedback p{margin:6px 0 0;line-height:1.45}.save-status{color:var(--muted);margin:auto 0 0;font-size:12px}.lesson-loading{text-align:center;max-width:640px;margin:80px auto}.lesson-result{text-align:center;max-width:720px;margin:70px auto;padding:36px}.lesson-result h2{margin:8px 0 18px;font-family:Georgia,serif;font-size:clamp(28px,4vw,42px)}.lesson-result p{color:var(--muted);font-size:16px;line-height:1.55}.lesson-result button{margin-top:12px}.text-link{color:var(--green);text-underline-offset:4px;font-weight:800}.program-shell{max-width:1120px;min-height:calc(100vh - 70px);margin:0 auto;padding:32px 28px}.program-header{justify-content:space-between;align-items:start;gap:28px;margin-bottom:28px;display:flex}.program-header p:not(.eyebrow){max-width:720px;color:var(--muted);line-height:1.55}.program-loading{text-align:center;max-width:640px;margin:70px auto}.lesson-catalog{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.lesson-card{gap:12px;display:grid}.lesson-card-heading{color:var(--muted);text-transform:uppercase;justify-content:space-between;gap:12px;font-size:12px;font-weight:800;display:flex}.lesson-card p{color:var(--muted);margin:0;line-height:1.5}.lesson-card small{color:var(--muted)}.lesson-status{background:#edf1ed;border-radius:999px;padding:4px 8px}.lesson-status.passed{color:#1f6844;background:#edf8f1}.lesson-status.needs_review{color:#8a241f;background:#fbe8e5}.lesson-link{color:#fff;background:var(--green);border-radius:10px;justify-self:start;padding:10px 14px;font-weight:800;text-decoration:none}.skills-card{margin-top:22px}.skill-list,.run-history{margin:16px 0 0;padding:0;list-style:none}.skill-list li{border-bottom:1px solid #ece8dc;justify-content:space-between;gap:18px;padding:10px 0;display:flex}.skill-list span,.run-history{color:var(--muted)}.run-history li{padding:6px 0}.lesson-result .text-link{margin-top:16px;display:block}@media (width<=900px){.shell{padding:18px}.topbar{flex-direction:column;align-items:start}.workspace,.lesson-workspace{grid-template-columns:1fr}.lesson-board-panel{position:static}.side-panel{grid-template-columns:1fr 1fr}.lesson-catalog{grid-template-columns:1fr}.controls-card{grid-column:1/-1}}@media (width<=560px){.shell{padding:10px}.lesson-shell{padding:12px 10px}.lesson-header{flex-direction:column;align-items:start;gap:12px}.program-shell{padding:18px 10px}.program-header{flex-direction:column;gap:12px}.lesson-header h1{font-size:36px}.lesson-stage{padding:7px 11px;font-size:13px}.lesson-progress{margin:14px 0}.lesson-workspace{gap:12px}.lesson-board-panel{order:1}.lesson-panel{order:2;min-height:0;padding:16px}.board-panel{border-radius:15px;padding:8px}.board{border-width:5px}.side-panel{grid-template-columns:1fr}.controls-card{grid-column:auto}.coordinate{display:none}.mode-footer{text-align:center;margin-bottom:18px;padding:0 10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}
