@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap');
:root{--navy:#101e37;--ink:#182b43;--muted:#526277;--blue:#215ca8;--blue-light:#e8f1fc;--paper:#f8f7f3;--line:#d6dce3;--white:#fff;--serif:'Libre Caslon Display',Georgia,serif;--sans:'DM Sans',system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.65}button,input,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}a{color:var(--blue);text-underline-offset:4px}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button,select{color:var(--ink);border:1px solid #7e8da1;border-radius:7px;background:var(--white);padding:10px 15px}button:hover:not(:disabled){background:var(--blue-light)}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #3983dd;outline-offset:4px}button.primary:hover{background:#194b8c;color:#fff}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;padding:12px 22px;border:1px solid #7e8da1;border-radius:6px;background:white;color:var(--ink);text-decoration:none;font-weight:600;font-size:14px;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.primary{background:var(--blue);border-color:var(--blue);color:white}.full{width:100%;margin-top:10px}.text-link{font-weight:600;font-size:14px}.on-dark{color:#d9e9ff}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:400}h2{font-family:var(--serif);font-size:clamp(32px,3.2vw,44px);line-height:1.14;letter-spacing:-.6px;margin-bottom:18px}h3{font-size:20px;line-height:1.4;font-weight:600;margin-bottom:10px}p{margin-bottom:16px}.small{font-size:12px;color:var(--muted);line-height:1.65}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;line-height:1.6;margin-bottom:19px}.masthead{display:flex;align-items:center;justify-content:space-between;max-width:1240px;margin:auto;padding:23px 40px}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--ink);font-size:23px;font-weight:700;letter-spacing:-.8px;line-height:1.25}.brand-icon{display:grid;place-items:center;border:1px solid #a8b5c7;border-radius:6px;width:39px;height:42px;font-size:31px;color:var(--blue);font-weight:400}.brand-light{font-weight:400}.brand small{display:block;font-size:7px;letter-spacing:1.8px;margin-top:6px;font-weight:500}.sister{font-size:12px;color:var(--muted)}.hero{max-width:1240px;margin:0 auto;background:var(--navy) url('assets/grid-atmosphere.svg') center/cover;color:white;min-height:470px;display:grid;grid-template-columns:1.3fr 1fr;padding:58px 64px 34px;overflow:hidden;border-radius:10px;position:relative}.hero-copy{z-index:1}.hero .eyebrow{color:#aec6e7}h1{font-family:var(--serif);font-size:clamp(48px,5.1vw,69px);line-height:1.05;letter-spacing:-1.7px;margin-bottom:23px}h1 em{color:#b8d5f8;font-weight:400;font-style:normal}.lede{max-width:465px;font-size:14px;color:#d5e0f0;line-height:1.85}.hero-actions{display:flex;align-items:center;gap:24px;margin-top:27px}.hero-actions .primary{background:#d4e7ff;border-color:#d4e7ff;color:#112d52}.hero-actions .primary:hover{background:#fff}.app-meta{display:flex;gap:14px;flex-wrap:wrap;margin-top:36px;font-size:8px;letter-spacing:.5px;color:#c2cee0}.app-meta span+span::before{content:'·';margin-right:14px}.hero-motif{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;transform:rotate(-8deg) translate(15px,0)}.motif-kicker{font-size:8px;letter-spacing:3px;color:#bfceed}.hero-grid{display:grid;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(9,minmax(0,1fr));width:285px;height:285px;box-shadow:0 0 90px #7eb4ff26,20px 30px 0 #1d365442;border:1px solid #92add155;border-radius:4px;background:#1e3b5a70;overflow:hidden}.hero-grid span{line-height:1;display:grid;place-items:center;font-family:var(--serif);font-size:20px;color:#d9e9ff;border-right:1px solid #99b5d329;border-bottom:1px solid #99b5d329}.hero-grid span:nth-child(3n){border-right:1px solid #afc9e78c}.hero-grid span:nth-child(n+19):nth-child(-n+27),.hero-grid span:nth-child(n+46):nth-child(-n+54){border-bottom:1px solid #afc9e78c}.hero-grid .hero-selected{background:#bcd9ff;color:#163353;font-weight:700;box-shadow:0 0 20px #abcfff88}.motif-caption{font-size:10px;color:#c6d7ed;letter-spacing:1px;display:flex;align-items:center;gap:8px}.little-dot{height:5px;width:5px;background:#acd3ff;border-radius:50%}.view-tabs{max-width:1160px;margin:0 auto;display:flex;align-items:center;gap:35px;min-height:77px;border-bottom:1px solid var(--line)}.view-tabs a{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--muted);height:77px;font-size:14px;border-bottom:3px solid transparent;padding:0 3px}.view-tabs a span{font-size:9px;color:var(--muted)}.view-tabs a[aria-current=page]{color:var(--blue);font-weight:700;border-bottom-color:var(--blue)}.nav-note{margin-left:auto;color:var(--muted);font-size:11px;font-style:italic}main{max-width:1160px;margin:auto;padding:40px 0 65px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin:0 0 25px}.section-heading .eyebrow{color:var(--blue);margin-bottom:10px}.section-heading h2{font-size:36px;margin-bottom:0}.section-heading>p{font-size:12px;color:var(--muted);max-width:320px;margin-bottom:4px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#ffffff65;margin-bottom:57px}.stat-grid article{padding:25px 30px}.stat-grid article+article{border-left:1px solid var(--line)}.stat-label{display:block;font-size:9px;letter-spacing:1.5px;color:var(--muted);font-weight:600}.stat-grid strong{display:block;font-family:var(--serif);font-size:49px;font-weight:400;color:var(--ink);line-height:1.4;margin:6px 0}.stat-grid p{font-size:12px;color:var(--muted);margin-bottom:5px}.stat-grid a,.timeline a,.fact-grid a{font-size:10px}.editorial-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:75px;margin-bottom:48px}.history>.eyebrow{color:var(--blue)}.history>p:not(.eyebrow){color:var(--muted);font-size:14px;max-width:530px}.timeline{margin-top:29px}.timeline article{display:grid;grid-template-columns:68px 1fr;gap:24px;position:relative;padding-bottom:28px}.timeline article>span{font-size:16px;color:var(--blue);font-weight:500;padding-top:2px}.timeline article>div{border-left:1px solid var(--line);padding-left:25px;position:relative}.timeline article>div::before{content:'';width:7px;height:7px;background:var(--blue);border:3px solid var(--paper);box-sizing:content-box;position:absolute;left:-7px;top:8px;border-radius:50%}.timeline h3{font-size:16px;margin-bottom:5px}.timeline p{font-size:12px;color:var(--muted);margin-bottom:5px}.side-stack{display:grid;gap:20px;align-content:start}.blue-card{background:#1c3d65;color:white;padding:33px;border-radius:8px;position:relative;overflow:hidden}.blue-card::after{content:'9';font-family:var(--serif);font-size:230px;color:#aacff00d;position:absolute;right:10px;top:50px;line-height:1;pointer-events:none}.blue-card .eyebrow{color:#c1d5ef;font-size:9px}.blue-card h3{font-family:var(--serif);font-size:33px;font-weight:400;line-height:1.12;margin:0 0 20px}.blue-card p:not(.eyebrow){color:#d1dfed;font-size:12px;max-width:300px}.card-symbol{display:block;font-size:31px;color:#b7d3f7;margin-bottom:22px}.paper-card{background:#ffffffa8;border:1px solid var(--line);border-radius:8px;padding:27px}.paper-card .eyebrow{color:var(--muted);font-size:9px}.paper-card h3{font-family:var(--serif);font-size:28px;font-weight:400;line-height:1.2}.paper-card p{font-size:12px;color:var(--muted)}.paper-card p:last-child{margin-bottom:0}.paper-card p.small{font-size:10px}.fact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin-bottom:38px}.fact-number{display:block;font-size:9px;letter-spacing:1.5px;color:var(--blue);margin-bottom:22px}.fact-grid h3{font-size:26px}.rules-strip{display:flex;align-items:center;gap:35px;padding:30px 33px;background:#eaf0f7;border:1px solid #d1deee;border-radius:8px}.rules-strip .eyebrow{font-size:9px;margin-bottom:12px;color:var(--blue)}.rules-strip h2{font-size:30px;margin-bottom:0}.rules-strip ol{display:flex;gap:40px;padding-left:25px;margin:0 auto}.rules-strip li{font-size:13px;padding-left:4px}.rules-strip li::marker{color:var(--blue);font-weight:700}.rules-strip strong,.rules-strip span{display:block}.rules-strip span{font-size:11px;color:var(--muted)}footer{max-width:1160px;margin:auto;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px 0 35px}footer .brand{font-size:16px}footer p,footer>span{font-size:10px;color:var(--muted);margin:0}.skip-link{position:absolute;top:-80px;left:12px;z-index:5;background:white;padding:10px}.skip-link:focus{top:10px}.error-state{padding:24px;border:1px solid #8c3d26;background:#fff3ed;border-radius:8px;margin:20px auto}.error-state h2{font-size:25px}.game-layout{display:grid;grid-template-columns:minmax(0,560px) minmax(270px,1fr);gap:55px;align-items:start;max-width:990px;margin:35px auto 0}.board-panel{min-width:0}.board-top{display:flex;justify-content:space-between;font-size:12px;font-weight:600;margin-bottom:14px}.sudoku-board{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));border:2px solid var(--ink);aspect-ratio:1;background:var(--ink);gap:0}.cell{border:none;border-radius:0;border-right:1px solid #8593a5;border-bottom:1px solid #8593a5;padding:0;aspect-ratio:1;min-width:0;background:#fff;font-size:clamp(20px,3vw,30px);font-weight:400;display:grid;place-items:center;position:relative;line-height:1;color:#1e5398}.cell.given{color:#182b43;font-weight:600;background:#f6f8fa}.cell:nth-child(3n){border-right:2px solid var(--ink)}.cell:nth-child(9n){border-right:0}.cell:nth-child(n+19):nth-child(-n+27),.cell:nth-child(n+46):nth-child(-n+54){border-bottom:2px solid var(--ink)}.cell:nth-child(n+73){border-bottom:0}.cell.related{background:#edf3fa}.cell.same{background:#d4e5fa}.cell.selected,.cell.selected:hover{background:#bcd6f5;box-shadow:inset 0 0 0 2px var(--blue);z-index:1}.cell.error{color:#94361e;background:#fff0e9}.cell.error::after{content:'!';position:absolute;right:3px;top:2px;font-size:10px;font-weight:bold}.cell:focus-visible{outline:3px solid #215ca8;outline-offset:-4px;z-index:2}.cell .candidate-grid{display:grid;grid-template-columns:repeat(3,1fr);width:90%;height:86%;align-items:center;font-size:clamp(9px,1.3vw,13px);line-height:1;color:#42546a}.candidate-grid span{text-align:center;min-width:0}.game-progress{display:flex;align-items:center;gap:15px;font-size:11px;color:var(--muted);margin:15px 0}.game-progress progress{flex:1;height:5px;accent-color:var(--blue);border:0}.numpad{display:grid;grid-template-columns:repeat(9,1fr);gap:6px}.numpad button{font-size:22px;padding:7px 0;border-color:#8292a8;min-height:44px}.game-tools{display:grid;grid-template-columns:1.7fr 1fr 1fr;gap:8px;margin-top:12px}.game-tools button{font-size:12px;padding:10px 4px}.game-tools button[aria-pressed=true]{background:#d4e5fa;box-shadow:inset 0 0 0 1px var(--blue)}.keyboard-help{font-size:10px;margin-top:13px}.game-sidebar{display:grid;gap:18px}.game-sidebar label{display:block;font-size:12px;font-weight:600;margin-bottom:8px}.game-sidebar select{width:100%;font-size:12px;margin-bottom:10px}.game-sidebar h3{font-size:26px}.help-buttons{display:flex;flex-wrap:wrap;gap:8px}.help-buttons button{font-size:11px;padding:8px 10px}.game-message{margin:17px 0 0;padding-top:15px;border-top:1px solid var(--line)}#apply-hint{font-size:12px;margin:15px 0}#hint-link{display:block;font-size:12px}.small-note{font-size:12px;color:var(--muted);padding:10px 20px}.small-note p{font-size:11px;margin-top:8px}.technique-controls{display:flex;gap:20px;align-items:end;background:#edf1f6;border:1px solid var(--line);padding:22px 25px;border-radius:8px;margin:30px 0}.technique-controls label{display:block;font-size:10px;font-weight:700;letter-spacing:.6px;margin-bottom:7px}.technique-controls select{width:100%;min-height:46px;font-size:13px}.technique-select{flex:1}.technique-controls>.small{padding-bottom:12px;white-space:nowrap}.lesson{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:35px 0;min-height:380px}.lesson h2{font-size:43px;margin-bottom:8px}.lesson .english{color:var(--muted);font-size:12px;margin-bottom:23px}.level-badge{font-size:9px;font-weight:700;letter-spacing:1px;background:var(--blue-light);color:#204c83;padding:6px 10px;border-radius:4px;display:inline-block;margin-bottom:20px}.lesson-rule{font-size:17px;line-height:1.8}.lesson-steps{padding-left:20px;color:var(--muted);font-size:13px}.lesson-steps li{padding:0 0 13px 9px}.pitfall{font-size:12px;background:#eaf0f7;border-left:3px solid #3973b8;padding:15px 17px;color:#354c67;margin:18px 0}.lesson-source{font-size:11px}.example-panel{background:#fff;border:1px solid var(--line);border-radius:8px;padding:29px;align-self:start}.example-panel .eyebrow{font-size:9px;color:var(--blue)}.example-panel h3{font-size:17px}.example-panel>p{font-size:13px;color:var(--muted)}.candidate-example{display:flex;flex-wrap:wrap;gap:10px;margin:25px 0}.candidate-item{min-width:65px;flex:1;text-align:center}.candidate-item small{font-size:9px;color:var(--muted);display:block;margin-bottom:5px}.candidate-item strong{font-weight:500;font-size:15px;border:1px solid #8292a8;background:#f4f8fd;min-height:58px;display:grid;place-items:center;border-radius:5px;padding:6px;white-space:pre-wrap}.candidate-item.changed strong{border:2px solid var(--blue);background:#dceafb}.candidate-item .change-label{display:block;font-size:9px;font-weight:700;color:#215ca8;margin-top:5px;min-height:15px}.example-result{font-size:13px;padding:15px 0 0;border-top:1px solid var(--line);color:var(--ink)}.example-caption{font-size:10px!important;margin:12px 0!important}.technique-navigation{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid var(--line);padding-top:25px}.technique-navigation button{font-size:12px}.method-note{margin-top:35px;border:1px solid var(--line);padding:18px 23px;border-radius:7px}.method-note summary{font-size:13px;font-weight:600;cursor:pointer}.method-note p{font-size:12px;color:var(--muted);margin:17px 0 0}[hidden]{display:none!important}
@media(min-width:1400px){.masthead{padding-left:0;padding-right:0}.hero{max-width:1240px}.view-tabs,main,footer{max-width:1160px}}
@media(max-width:1250px){.hero{margin:0 25px}.view-tabs,main,footer{margin-left:45px;margin-right:45px}.hero{padding:45px 40px}.hero-grid{width:250px;height:250px}.editorial-layout{gap:40px}.rules-strip{flex-wrap:wrap}.rules-strip ol{gap:25px}.rules-strip .button{margin-left:auto}}
@media(max-width:850px){.hero{grid-template-columns:1.5fr 1fr;padding:37px 30px 25px}.hero-grid{width:200px;height:200px}.hero-motif{transform:rotate(-8deg)}.motif-kicker{font-size:6px;letter-spacing:1.5px}.motif-caption{font-size:8px}.hero-actions{gap:16px;flex-wrap:wrap}.app-meta{font-size:7px}.view-tabs,main,footer{margin-left:28px;margin-right:28px}.section-heading{align-items:start;flex-direction:column;gap:12px}.section-heading h2{font-size:32px}.section-heading>p{max-width:none}.stat-grid article{padding:20px}.stat-grid strong{font-size:40px}.stat-grid p br{display:none}.editorial-layout{gap:28px;grid-template-columns:1.2fr 1fr}.blue-card{padding:25px}.paper-card{padding:22px}.fact-grid{gap:10px}.fact-grid .paper-card{padding:20px}.fact-grid h3{font-size:23px}.game-layout{gap:25px;grid-template-columns:minmax(0,1.5fr) minmax(230px,1fr)}.game-tools{gap:4px}.game-tools button{font-size:10px}.lesson{gap:25px}.technique-controls{gap:12px}.technique-controls>.small{display:none}.example-panel{padding:20px}}
@media(max-width:620px){body{font-size:14px}.masthead{padding:20px}.brand{font-size:21px}.sister{font-size:10px}.brand small{font-size:6px;letter-spacing:1.3px}.hero{margin:0 12px;padding:32px 24px 24px;display:block;min-height:430px}.hero-copy{position:relative}.hero h1{font-size:clamp(40px,12vw,49px);letter-spacing:-1px;max-width:350px}.hero .eyebrow{font-size:8px;letter-spacing:1.4px}.lede{font-size:13px;max-width:330px}.hero-motif{position:absolute;right:-55px;top:40px;opacity:.13;transform:rotate(-12deg);pointer-events:none}.hero-grid{width:270px;height:270px}.motif-kicker,.motif-caption{display:none}.hero-actions{gap:19px;position:relative}.hero-actions .button{font-size:12px;padding:11px 16px}.hero-actions .text-link{font-size:12px}.app-meta{margin-top:27px;gap:9px;font-size:7px}.app-meta span+span::before{margin-right:9px}.view-tabs{margin:0 20px;gap:24px;min-height:68px}.view-tabs a{height:68px;font-size:13px;gap:7px}.nav-note{display:none}main{margin:0 20px;padding-top:28px}.section-heading h2{font-size:31px}.section-heading>p{font-size:12px}.section-heading .eyebrow{font-size:8px;letter-spacing:1.3px}.stat-grid{grid-template-columns:1fr;margin-bottom:35px}.stat-grid article{padding:21px 24px;display:grid;grid-template-columns:120px 1fr;gap:0 10px}.stat-grid article+article{border-left:0;border-top:1px solid var(--line)}.stat-label{font-size:8px;grid-column:1/-1}.stat-grid strong{font-size:36px;grid-row:2/4;align-self:center;margin:6px 0}.stat-grid p{align-self:end;padding-top:12px;line-height:1.7;font-size:11px}.stat-grid a{font-size:9px}.editorial-layout{grid-template-columns:1fr;gap:24px}.history>.eyebrow{font-size:8px;letter-spacing:1.5px}.history h2{font-size:36px}.history>p:not(.eyebrow){font-size:13px}.timeline article{grid-template-columns:45px 1fr;gap:14px}.timeline article>div{padding-left:20px}.timeline h3{font-size:15px}.side-stack{grid-template-columns:1fr;gap:15px}.blue-card h3{font-size:32px}.fact-grid{grid-template-columns:1fr;gap:12px}.fact-grid .paper-card{padding:25px}.fact-grid h3{font-size:27px}.fact-number{margin-bottom:13px}.rules-strip{display:block;padding:26px}.rules-strip ol{display:block;margin:22px 0;padding-left:21px}.rules-strip li{margin-bottom:13px}.rules-strip .button{width:100%}footer{margin:0 20px;flex-wrap:wrap;gap:10px;padding-bottom:24px}footer .brand{font-size:15px}footer p{display:none}footer>span{font-size:9px}.game-layout{grid-template-columns:1fr;gap:20px;margin-top:24px}.board-panel{max-width:520px;width:100%;margin:auto}.game-sidebar{grid-template-columns:1fr}.cell{font-size:25px}.cell .candidate-grid{font-size:10px}.numpad{gap:4px}.numpad button{font-size:21px}.game-tools button{font-size:12px}.technique-controls{display:block;padding:18px;margin:24px 0 0}.technique-controls>div+div{margin-top:14px}.lesson{grid-template-columns:1fr;padding-top:25px;gap:15px}.lesson h2{font-size:36px}.lesson-rule{font-size:16px}.level-badge{margin-bottom:15px}.example-panel{padding:22px}.technique-navigation{gap:8px;flex-wrap:wrap}.technique-navigation button{font-size:11px;padding:9px 10px}.technique-navigation span{font-size:10px}.method-note{padding:16px}.method-note summary{font-size:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.game-progress progress::-webkit-progress-bar{background:#d7dfe9;border-radius:4px}.game-progress progress::-webkit-progress-value{background:var(--blue);border-radius:4px}.game-progress progress::-moz-progress-bar{background:var(--blue);border-radius:4px}

dialog{max-width:460px;width:calc(100% - 36px);border:1px solid #7e8da1;border-radius:10px;padding:30px;color:var(--ink);background:var(--paper);box-shadow:0 20px 80px #101e3740}dialog::backdrop{background:#101e3799}dialog h2{font-size:31px}dialog p{font-size:13px;color:var(--muted)}.dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:25px}.dialog-actions button{font-size:12px}

.large-integer{overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
/* Full-board, stepwise technique laboratory. */
.lesson{display:block;min-height:500px}.lesson-intro{display:grid;grid-template-columns:1fr 1.3fr;gap:40px;margin-bottom:28px}.lesson-intro h2{margin-bottom:8px}.lesson-intro .lesson-rule{font-size:16px;margin-bottom:12px}.lesson-theory{font-size:13px;color:var(--muted)}.lesson-theory summary{cursor:pointer;font-weight:600;color:var(--blue)}.lesson-theory p{margin:12px 0}.lesson-workspace{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px;align-items:start}.lesson-board-panel{min-width:0;background:white;border:1px solid var(--line);border-radius:10px;padding:18px}.lesson-board-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:12px;margin-bottom:8px}.lesson-board-tools label{display:flex;align-items:center;gap:9px;font-weight:600}.lesson-board-tools input{width:110px;accent-color:var(--blue)}.lesson-board-tools output{font-variant-numeric:tabular-nums;color:var(--muted)}.lesson-board-tools button{margin-left:auto;padding:6px 9px;font-size:11px}.lesson-pan-help{font-size:11px;color:var(--muted);margin:7px 0 12px}.lesson-scroll{overflow:auto;overscroll-behavior-x:contain;scrollbar-gutter:stable;max-width:100%;padding:0 3px 8px 0;border-radius:4px}.lesson-scroll:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.lesson-coordinate-grid{display:grid;grid-template-columns:26px minmax(0,1fr);grid-template-rows:24px auto;margin:auto}.lesson-col-labels{grid-column:2;display:grid;grid-template-columns:repeat(9,1fr);font-size:10px;text-align:center;color:var(--muted)}.lesson-row-labels{display:grid;grid-template-rows:repeat(9,1fr);font-size:10px;color:var(--muted);align-items:center}.lesson-board{position:relative;aspect-ratio:1;border:2px solid #233e60;border-radius:2px;isolation:isolate}.lesson-cells{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));grid-template-rows:repeat(9,minmax(0,1fr));height:100%;width:100%}.lesson-cell{position:relative;display:grid;place-items:center;padding:0;border:0;border-right:1px solid #8997a8;border-bottom:1px solid #8997a8;border-radius:0;background:white;min-width:0;min-height:0;aspect-ratio:1;color:#182b43}.lesson-cell:nth-child(3n){border-right:2px solid #233e60}.lesson-cell:nth-child(9n){border-right:0}.lesson-cell:nth-child(n+19):nth-child(-n+27),.lesson-cell:nth-child(n+46):nth-child(-n+54){border-bottom:2px solid #233e60}.lesson-cell:nth-child(n+73){border-bottom:0}.lesson-cell:hover{background:#edf4fd}.lesson-cell:focus-visible{outline:3px solid #215ca8;outline-offset:-3px;z-index:3}.lesson-value{font-size:var(--lesson-value-size,34px);font-weight:600;line-height:1}.lesson-cell.solved .lesson-value{color:#1e5398}.lesson-candidates{height:100%;width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));padding:4px;font-size:var(--lesson-candidate-size,18px);line-height:1.1;font-variant-numeric:tabular-nums}.lesson-candidate{display:grid;place-items:center;position:relative;border:1px solid transparent;border-radius:4px;font-weight:500;min-width:0}.lesson-house{background:#f0f5fc}.lesson-focus{box-shadow:inset 0 0 0 2px #7198c5}.lesson-cell .candidate-pattern,.lesson-cell .candidate-a{background:#244f83;color:white;font-weight:700}.lesson-cell .candidate-b{background:#dceafd;color:#183f70;border:2px dashed #315f97;font-weight:700}.lesson-cell .candidate-target,.lesson-cell .candidate-delete{background:#fff0ca;color:#704600;border:1px solid #906100;font-weight:700}.lesson-cell .candidate-delete{text-decoration:line-through;text-decoration-thickness:2px}.lesson-cell .candidate-result{background:#d9eafa;color:#173f71;border:2px solid #215ca8;font-weight:700}.lesson-cell .digit-filter{outline:2px solid #111f35;outline-offset:-2px}.lesson-target-cell{box-shadow:inset 0 0 0 3px #906100}.lesson-cell.inspected{outline:3px solid #183f70;outline-offset:-3px;z-index:2}.lesson-cell.inspection-peer{background:#f0f5fc}.trial-cell{background:#fff0ca!important;box-shadow:inset 0 0 0 2px #906100}.trial-cell .lesson-value{color:#704600!important}.trial-marker{position:absolute;right:4px;top:1px;font-size:15px;font-weight:700;color:#704600}.lesson-links{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:4;overflow:visible}.lesson-links line{stroke:#215ca8;stroke-width:3.3;stroke-linecap:round;opacity:.8}.lesson-links line.weak{stroke-dasharray:8 7}.lesson-legend{display:flex;gap:8px 14px;flex-wrap:wrap;font-size:10px;color:var(--muted);padding:14px 0 10px}.lesson-legend>span{display:flex;align-items:center;gap:5px}.lesson-legend i{width:19px;height:19px;display:grid;place-items:center;font-style:normal;font-weight:700;border-radius:3px}.legend-pattern{background:#244f83;color:#fff}.legend-alternate{background:#dceafd;border:1px dashed #315f97;color:#183f70}.legend-target,.legend-trial{background:#fff0ca;color:#704600;border:1px solid #906100}.legend-link{color:#215ca8;font-size:18px}.lesson-inspection{border-top:1px solid var(--line);padding:11px 0 0;font-size:12px;margin-bottom:0;min-height:42px}.lesson-step-panel{background:#edf3fb;border:1px solid #bacce2;border-radius:10px;padding:24px;position:sticky;top:16px}.lesson-step-panel .eyebrow{font-size:9px;color:var(--blue);margin-bottom:15px}.lesson-step-heading{display:flex;justify-content:space-between;gap:12px;margin-bottom:15px;align-items:center;font-size:10px;color:var(--muted)}.lesson-step-heading strong{color:var(--blue);font-size:11px;letter-spacing:1px}.lesson-step-panel h3{font-family:var(--serif);font-size:31px;line-height:1.15;font-weight:400}.lesson-step-text{font-size:14px;line-height:1.8;min-height:132px}.lesson-playback{display:grid;grid-template-columns:1fr 1fr;gap:8px}.lesson-playback button{padding:10px 9px;font-size:12px;min-height:42px;gap:5px}.lesson-speed{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted);margin:14px 0}.lesson-speed select{font-size:10px;padding:6px 7px;min-width:0;max-width:175px}.lesson-timeline{list-style:none;padding:15px 0 0;margin:16px 0;border-top:1px solid #bacce2;display:grid;gap:4px;max-height:290px;overflow:auto}.lesson-timeline button{display:flex;align-items:center;gap:9px;border:1px solid transparent;background:transparent;font-size:11px;text-align:left;width:100%;padding:7px}.lesson-timeline button>span{display:grid;place-items:center;border:1px solid #7e8da1;width:22px;height:22px;border-radius:50%;flex-shrink:0;font-size:10px}.lesson-timeline button[aria-current=step]{font-weight:700;background:white;border-color:#6b8cb5;color:#173f71}.lesson-timeline button[aria-current=step]>span{background:#244f83;border-color:#244f83;color:white}.lesson-source-note{font-size:11px;color:var(--muted);margin-top:16px}.lesson-step-panel .lesson-source{font-size:10px}.lesson .english{margin-bottom:0}
@media(min-width:1200px){#teknik{margin-left:-25px;margin-right:-25px}.lesson-workspace{grid-template-columns:minmax(0,1fr) 330px}}
@media(max-width:1000px){.lesson-workspace{grid-template-columns:minmax(0,1fr)}.lesson-step-panel{position:static;order:-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,1fr);gap:0 25px}.lesson-step-panel>.eyebrow,.lesson-step-heading,.lesson-step-panel>h3,.lesson-step-text{grid-column:1}.lesson-step-text{min-height:0}.lesson-playback,.lesson-speed,.lesson-timeline{grid-column:2}.lesson-playback{grid-row:1/4;align-self:start}.lesson-speed{grid-row:4;align-self:start;margin-top:0}.lesson-timeline{grid-row:5;max-height:125px;margin-top:0}.lesson-source-note{grid-column:1;grid-row:5}.lesson-step-panel>.lesson-source{grid-column:1}.lesson-intro{gap:25px}.lesson-board-tools button{margin-left:0}}
@media(max-width:620px){.lesson-intro{display:block}.lesson-intro .lesson-rule{margin-top:20px;font-size:15px}.lesson-workspace{gap:14px}.lesson-board-panel{padding:12px}.lesson-step-panel{display:block;padding:20px}.lesson-step-panel h3{font-size:28px}.lesson-step-text{font-size:13px;min-height:0}.lesson-timeline{max-height:145px}.lesson-board-tools{font-size:11px;gap:7px}.lesson-board-tools input{width:85px}.lesson-board-tools button{font-size:10px}.lesson-pan-help{font-size:10px}.lesson-step-panel>.lesson-source-note{margin-top:14px}}
@media(prefers-reduced-motion:reduce){.lesson-scroll{scroll-behavior:auto}}

.lesson-compact-controls{display:none}
@media(max-width:1000px){.lesson-compact-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;position:sticky;top:6px;z-index:10;background:#edf3fb;border:1px solid #9cb4d1;border-radius:6px;padding:7px;margin:0 0 12px;box-shadow:0 3px 12px #182b4310}.lesson-compact-controls button{font-size:12px;padding:7px 12px;min-height:36px}.lesson-compact-controls strong{font-size:11px;color:#173f71}}

.lesson-cell .candidate-c,.legend-third{background:#e2ecf6;color:#183f70;border:3px double #315f97;font-weight:700}

.lesson-links{z-index:1}.lesson-candidates,.lesson-value{position:relative;z-index:2}
.technique-search-bar{display:flex;align-items:end;gap:14px;background:#edf3fb;border:1px solid #bacce2;padding:18px 22px;border-radius:8px;margin-top:25px}.technique-search-bar>div{flex:1;min-width:0}.technique-search-bar label{display:block;font-size:12px;font-weight:600;margin-bottom:7px}.technique-search-bar input{width:100%;min-height:44px;background:white;border:1px solid #7e8da1;border-radius:6px;padding:9px 12px;color:var(--ink);font-size:14px}.technique-search-bar input:focus-visible{outline:3px solid #3983dd;outline-offset:3px}.technique-search-bar button{font-size:12px;min-height:44px}#technique-match-status{margin:8px 0 0}.technique-controls{margin-top:18px}.lesson-aliases{font-size:11px;color:var(--muted);margin:7px 0}.lesson-prerequisites{font-size:11px;color:var(--muted);margin:14px 0 0;line-height:1.8}.lesson-theory{font-size:13px}.lesson-theory[open]{border-top:1px solid var(--line);padding-top:10px;margin-top:12px}.technique-coverage{margin-top:28px;border:1px solid #9fb5d0;border-radius:8px;background:#f0f5fc;padding:20px 23px}.technique-coverage>summary{cursor:pointer;font-weight:600;font-size:15px}.technique-coverage>summary>span{display:block;font-size:11px;color:var(--muted);margin:6px 0 0 17px;font-weight:400}.coverage-scope,.coverage-meaning,.coverage-source-links,.coverage-exclusions{font-size:12px;color:var(--muted);margin:17px 0}.coverage-result{font-size:12px;font-weight:600;color:#204c83}.coverage-items{display:grid;gap:8px;max-height:620px;overflow:auto;padding-right:5px}.coverage-item{border:1px solid var(--line);border-radius:6px;background:white;padding:12px 15px}.coverage-item>summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:13px;font-weight:600}.coverage-item>summary::before{content:'+';font-weight:700;color:#215ca8}.coverage-item[open]>summary::before{content:'−'}.coverage-item>summary>span{flex:1}.coverage-badge{font-size:9px;border:1px solid #829abc;border-radius:4px;padding:4px 6px;color:#204c83;font-weight:500;max-width:215px}.coverage-badge.interactive{background:#e3efff}.coverage-badge.reference,.coverage-badge.variant{border-style:dashed;background:#f5f7fb;color:#43586f}.coverage-item-body{margin-top:13px;border-top:1px solid var(--line);padding-top:12px;font-size:12px}.coverage-item-body p{margin-bottom:10px}.coverage-aliases{font-size:10px;color:var(--muted)}.coverage-actions{display:flex;gap:10px 18px;flex-wrap:wrap}.coverage-actions a{font-size:11px}.coverage-item summary:focus-visible{outline:3px solid #3983dd;outline-offset:3px}.lesson-cell .candidate-d,.legend-fourth{background:#d6edf3;color:#173d51;border:2px dotted #24576f;font-weight:700}.empty-state{padding:25px;background:#edf3fb;border:1px solid #bacce2;border-radius:8px;color:#354c67;font-size:14px}
@media(max-width:620px){.technique-search-bar{display:block;padding:17px}.technique-search-bar button{margin-top:10px;min-height:38px}.technique-search-bar input{font-size:13px}.technique-coverage{padding:16px}.coverage-item>summary{align-items:start;gap:8px;flex-wrap:wrap}.coverage-badge{margin-left:15px}.coverage-items{max-height:600px}.coverage-item{padding:12px}.lesson-prerequisites{font-size:11px}}

.lesson-group-node{fill:none;stroke:#315f97;stroke-width:2.5;stroke-dasharray:3 4}
