@font-face{
    font-family:"Inconsolata";
    src:url("../fonts/Inconsolata-Variable.woff2") format("woff2");
    font-style:normal;
    font-weight:200 900;
    font-stretch:100%;
    font-display:swap;
}

:root{
    --ink:#22231f;
    --muted:#68675f;
    --paper:#f7f4ec;
    --sheet:#fffefa;
    --line:#d7d2c6;
    --green:#526f54;
    --green-dark:#38503c;
    --green-soft:#dfe9dd;
    --red:#a14e45;
    --red-soft:#f5ded9;
    --point-loss-red:#df1d17;
    --point-loss-red-active:#ff2a20;
    --yellow:#f7edbd;
    --blue:#e2edf3;
    --lilac:#eae3f2;
    --peach:#f4dfd0;
    --sans:"Inconsolata",ui-monospace,monospace;
    --serif:"Inconsolata",ui-monospace,monospace;
    --shadow:0 12px 34px rgba(54,49,37,.08);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background-color:var(--paper);background-image:radial-gradient(rgba(45,43,34,.035) .65px,transparent .75px);background-size:5px 5px;font:15px/1.55 var(--sans)}
button,input,select,textarea{font:inherit;color:inherit}
button,a{touch-action:manipulation}
button{cursor:pointer}
a{color:inherit}
[hidden]{display:none!important}
.skip-link{position:fixed;left:12px;top:-70px;z-index:200;padding:10px 14px;background:var(--ink);color:white;border-radius:6px}
.skip-link:focus{top:12px}
.site-header{height:62px;max-width:1060px;margin:auto;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(34,35,31,.13)}
.wordmark{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-size:17px;font-weight:800;letter-spacing:-.045em}
.brand-mark{display:block;width:auto;height:26px;object-fit:contain}
.site-header nav{display:flex;align-items:center;gap:25px}
.site-header nav a,.site-header nav button{padding:6px 0;border:0;background:transparent;color:var(--muted);font-size:13px;text-decoration:none}
.site-header nav a:hover,.site-header nav a:focus,.site-header nav button:hover,.site-header nav button:focus{color:var(--ink)}
.site-header nav .sign-in-link{padding:6px 12px;border:1px solid var(--line);border-radius:7px;color:var(--ink)}
.site-header-actions{display:flex;align-items:center;gap:12px;margin-left:auto}.pwa-install-button{padding:7px 10px;border:1px solid var(--green);border-radius:7px;background:var(--green-soft);color:var(--green-dark);font-size:10px;font-weight:850;letter-spacing:.03em}.pwa-install-button[hidden]{display:none}.puzzle-sound-toggle{display:grid;width:34px;height:34px;padding:0;place-items:center;border:1px solid var(--line);border-radius:7px;background:var(--sheet);color:var(--ink)}.puzzle-sound-toggle:hover,.puzzle-sound-toggle:focus-visible{border-color:var(--green);background:var(--green-soft);outline:0}.puzzle-sound-toggle svg{display:block;width:18px;height:18px;overflow:visible}.puzzle-sound-toggle path{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.puzzle-sound-toggle .sound-speaker{fill:currentColor;stroke-width:1.3}.puzzle-sound-toggle .sound-off{display:none}.puzzle-sound-toggle.is-muted{color:var(--red)}.puzzle-sound-toggle.is-muted .sound-waves{display:none}.puzzle-sound-toggle.is-muted .sound-off{display:block}
.nav-toggle{display:none;padding:7px 10px;border:1px solid var(--line);border-radius:7px;background:transparent;font-size:12px}
.home-hub-tabs-wrap{max-width:1060px;margin:18px auto 0;padding:0 18px}
.home-hub-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;border:1px solid var(--line);border-radius:11px;background:#ece9e1;box-shadow:var(--shadow)}
.home-hub-tabs a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;min-height:58px;padding:11px 18px;border-right:1px solid var(--line);color:var(--muted);text-decoration:none}
.home-hub-tabs a:last-child{border-right:0}
.home-hub-tabs a:hover,.home-hub-tabs a:focus-visible{background:#f7f5ef;color:var(--ink);outline:0}
.home-hub-tabs a.active{background:var(--sheet);color:var(--ink);box-shadow:inset 0 -4px var(--green)}
.home-hub-tabs span{font-size:14px;font-weight:850}
.home-hub-tabs small{overflow:hidden;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.capability-strip{height:38px;display:flex;align-items:center;justify-content:center;gap:7px;padding:0 14px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.44);white-space:nowrap;overflow:hidden}
.capability-strip span{padding:3px 9px;border:1px solid var(--line);border-radius:999px;background:var(--sheet);color:var(--muted);font-size:11px}
.hero{max-width:850px;margin:27px auto 18px;padding:0 20px;text-align:center}
.hero-brand{margin:0;color:var(--green);font-size:13px;font-weight:750;letter-spacing:.025em}
.hero h1{margin:6px 0 8px;font:700 clamp(38px,5.5vw,60px)/.98 var(--serif);letter-spacing:-.052em}
.hero h1 em{color:var(--green);font-weight:500}
.hero>p:last-child{max-width:690px;margin:auto;color:var(--muted);font-size:18px}
.view-home .hero{max-width:760px;margin-top:44px}.view-home .hero h1{font-size:clamp(55px,8vw,86px)}
.view-home .capability-strip span{border:0;background:transparent;text-transform:uppercase;letter-spacing:.08em;font-size:9px}.view-home .capability-strip span+span:before{content:"→";margin-right:14px;color:#a3a398}
.view-home .primary-analyzer{padding-top:0}
.view-home .pgn-field textarea{min-height:190px;font-size:15px}.view-home .analyze-button{min-width:225px;background:var(--green);border-color:var(--green)}
.directory-hero{max-width:990px;margin:32px auto 24px;padding:0 20px}
.directory-hero h1{max-width:780px;margin:6px 0 10px;font:700 clamp(40px,5.5vw,62px)/.98 var(--serif);letter-spacing:-.052em}
.directory-hero h1 em{color:var(--green);font-weight:500}
.directory-hero>p:last-child{max-width:680px;margin:0;color:var(--muted);font-size:17px}
.directory-hero-action{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:8px 12px;border:1px solid var(--green);border-radius:7px;background:var(--green-soft);color:var(--green-dark);font-size:11px;font-weight:800;text-decoration:none}.directory-hero-action:hover,.directory-hero-action:focus-visible{background:var(--green);color:white;outline:0}.directory-hero-action span{font-size:14px}
.analyzer-wrap{max-width:990px;margin:0 auto 30px;padding:0 20px;scroll-margin-top:20px}
.analyzer-card{padding:0 24px 19px;overflow:hidden}
.input-tabs{display:grid;grid-template-columns:repeat(3,1fr);margin:0 -24px 20px;border-bottom:1px solid var(--line)}
.input-tabs button{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 24px;border:0;border-right:1px solid var(--line);background:#f3f1eb;color:var(--muted);text-align:left}
.input-tabs button:last-child{border-right:0}
.input-tabs button.active{background:var(--sheet);color:var(--ink);box-shadow:inset 0 -3px var(--green)}
.input-tabs button:focus-visible{outline:2px solid var(--green);outline-offset:-3px}
.input-tabs span{font-weight:800}
.input-tabs small{font-size:11px}
.library-heading{align-items:center}
.curriculum-count{display:flex;align-items:baseline;gap:4px;min-width:105px;padding:8px 11px;border:1px solid var(--line);border-radius:7px;background:#f7f4ec}
.curriculum-count strong{font:700 25px var(--serif);color:var(--green)}
.curriculum-count span{color:var(--muted);font-size:9px;text-transform:uppercase}
.game-library{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}
.game-library-carousel{position:relative}.carousel-arrow{display:none;place-items:center;width:34px;height:46px;padding:0;border:1px solid rgba(56,80,60,.38);border-radius:999px;background:rgba(255,254,250,.94);box-shadow:0 5px 18px rgba(34,35,31,.2);color:var(--green-dark);font-size:20px;font-weight:800;line-height:1;backdrop-filter:blur(6px)}.carousel-arrow:hover:not(:disabled),.carousel-arrow:focus-visible{border-color:var(--green);background:var(--green-soft);outline:0}.carousel-arrow:disabled{cursor:default;opacity:.32}
.guided-game{position:relative;min-height:126px;padding:13px 13px 48px;border:1px solid var(--line);border-radius:8px;background:var(--sheet);text-align:left;overflow:hidden;transition:transform .15s,border-color .15s}
.guided-game:nth-child(6n+1){background:var(--blue)}
.guided-game:nth-child(6n+2){background:var(--yellow)}
.guided-game:nth-child(6n+3){background:var(--green-soft)}
.guided-game:nth-child(6n+4){background:var(--lilac)}
.guided-game:nth-child(6n+5){background:var(--peach)}
.guided-game:hover:not(:disabled){transform:translateY(-2px);border-color:#9b998f}
.guided-game:disabled{cursor:not-allowed;filter:grayscale(.7);opacity:.58;background:#f1efe9}
.guided-game.completed{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}
.guided-game small{display:block;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.guided-game strong{display:block;margin:7px 0 4px;font:700 18px/1.12 var(--serif)}
.guided-game p{margin:0;color:var(--muted);font-size:12px;line-height:1.4}
.guided-game .game-status{position:absolute;right:9px;bottom:27px;color:var(--green-dark);font-size:13px;font-weight:800}
.guided-game .game-reward{position:absolute;left:10px;right:10px;bottom:8px;overflow:hidden;color:var(--green-dark);font-size:10px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.guided-game.completed .game-reward{color:var(--muted)}
.library-note{margin:11px 0 0;color:var(--muted);font-size:10px;text-align:center}
.library-more-link{display:flex;align-items:center;justify-content:center;gap:8px;width:max-content;margin:15px auto 0;padding:7px 12px;border:1px solid var(--line);border-radius:7px;background:#f7f4ec;color:var(--green-dark);font-size:11px;font-weight:800;text-decoration:none}
.puzzle-mode-tabs{display:grid;grid-template-columns:1fr 1fr;margin:0 -24px 19px;border-bottom:1px solid var(--line);background:#f3f1eb}
.puzzle-mode-tabs button{display:flex;align-items:center;justify-content:center;gap:10px;padding:12px 18px;border:0;border-right:1px solid var(--line);background:transparent;color:var(--muted)}
.puzzle-mode-tabs button:last-child{border-right:0}.puzzle-mode-tabs button.active{background:var(--sheet);box-shadow:inset 0 -3px var(--green);color:var(--ink)}
.puzzle-mode-tabs span{font-weight:800}.puzzle-mode-tabs small{font-size:10px}
.puzzle-branches{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin:3px 0 12px}
.puzzle-branches button{display:grid;grid-template-columns:32px 1fr;align-items:center;gap:7px;min-height:58px;padding:8px 9px;border:1px solid var(--line);border-radius:8px;background:var(--sheet);text-align:left}
.puzzle-branches button:nth-child(1){background:var(--peach)}.puzzle-branches button:nth-child(2){background:var(--yellow)}.puzzle-branches button:nth-child(3){background:var(--blue)}.puzzle-branches button:nth-child(4){background:var(--lilac)}.puzzle-branches button:nth-child(5){background:var(--green-soft)}.puzzle-branches button:nth-child(6){background:#f6e6bf}
.puzzle-branches button.active{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}
.puzzle-branches i{font:27px Georgia,serif;text-align:center}.puzzle-branches strong,.puzzle-branches small{display:block}.puzzle-branches strong{font-size:11px;line-height:1.15}.puzzle-branches small{margin-top:2px;color:var(--muted);font-size:8px;text-transform:uppercase}
.puzzle-mate-depths{display:flex;align-items:center;gap:7px;margin:-3px 0 12px;padding:9px 10px;border:1px solid #d8c98d;border-radius:8px;background:var(--yellow)}.puzzle-mate-depths[hidden]{display:none}.puzzle-mate-depth-copy{display:grid;margin-right:auto}.puzzle-mate-depth-copy strong{font-size:11px}.puzzle-mate-depth-copy small{margin-top:2px;color:var(--muted);font-size:9px}.puzzle-mate-depths button{min-height:34px;padding:6px 10px;border:1px solid #c8b971;border-radius:6px;background:rgba(255,254,250,.74);color:var(--ink);font-size:10px;font-weight:800;white-space:nowrap}.puzzle-mate-depths button.active{border-color:var(--green);background:var(--green);color:white}.puzzle-mate-depths button:hover,.puzzle-mate-depths button:focus-visible{border-color:var(--green);outline:0}
.puzzle-tools{display:grid;grid-template-columns:minmax(210px,1fr) 160px 145px auto;align-items:end;gap:8px;margin:3px 0 16px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#f7f4ec}
.puzzle-tools-toggle{display:none}
.puzzle-tools label{display:grid;gap:4px}.puzzle-tools label span{font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.puzzle-tools input,.puzzle-tools select{width:100%;height:38px;padding:7px 10px;border:1px solid var(--line);border-radius:6px;background:white;outline:none}
.puzzle-tools input:focus,.puzzle-tools select:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(82,111,84,.11)}
.puzzle-tools .surprise-button{min-height:38px;padding:7px 11px;white-space:nowrap;font-size:11px}
.quick-puzzle small{white-space:nowrap}.quick-puzzle p{font-weight:650}.quick-puzzle.completed{background:linear-gradient(145deg,var(--green-soft),var(--sheet))}
.puzzle-pagination{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:18px 0 4px;padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:#f7f4ec}.puzzle-pagination[hidden]{display:none}.puzzle-page-summary{color:var(--muted);font-size:11px;font-weight:700}.puzzle-page-controls{display:flex;align-items:center;gap:5px}.puzzle-page-controls button{display:grid;place-items:center;min-width:34px;height:34px;padding:0 8px;border:1px solid var(--line);border-radius:6px;background:var(--sheet);color:var(--ink);font-size:11px;font-weight:800}.puzzle-page-controls button:hover:not(:disabled),.puzzle-page-controls button:focus-visible{border-color:var(--green);color:var(--green-dark);outline:0}.puzzle-page-controls button[aria-current="page"]{border-color:var(--green);background:var(--green);color:white}.puzzle-page-controls button:disabled:not([aria-current="page"]){opacity:.4}
.guided-skill-browser{grid-column:1/-1;min-width:0}
.guided-tree-intro{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 11px;color:var(--muted);font-size:12px}.guided-tree-intro strong{color:var(--ink);font-size:15px}.guided-tree-intro span{white-space:nowrap}
.guided-compact-tree{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.guided-tree-branch{min-width:0;padding:6px;border:1px solid var(--line);border-radius:9px;background:#f8f7f2}
.guided-branch-button{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:8px;width:100%;min-height:56px;padding:8px 10px;border:1px solid #0d0e0c;border-radius:7px;background:linear-gradient(180deg,#3a3b35 0%,#252621 48%,#171815 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 -2px 0 rgba(0,0,0,.42),0 4px 0 #0b0c0a,0 7px 13px rgba(34,35,31,.24);color:white;text-align:left;text-shadow:0 1px 0 rgba(0,0,0,.55);transition:background .12s ease,box-shadow .12s ease,filter .12s ease,transform .08s ease}.guided-branch-button:hover,.guided-branch-button:focus-visible,.guided-branch-button.active{border-color:#293e2d;background:linear-gradient(180deg,#526f54 0%,#38503c 52%,#293e2d 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -2px 0 rgba(0,0,0,.28),0 4px 0 #213324,0 8px 15px rgba(34,35,31,.26);outline:0}.guided-branch-button:focus-visible{box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -2px 0 rgba(0,0,0,.28),0 4px 0 #213324,0 0 0 3px rgba(82,111,84,.22)}.guided-branch-button:active{transform:translateY(3px);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),inset 0 -1px 0 rgba(0,0,0,.3),0 1px 0 #213324,0 3px 7px rgba(34,35,31,.2)}
.guided-branch-button i{display:grid;place-items:center;width:32px;height:32px;border:1px solid #777970;border-radius:50%;font:18px Georgia,serif}.guided-branch-copy small,.guided-branch-copy strong{display:block}.guided-branch-copy small{color:#c2c4bd;font-size:9px;letter-spacing:.07em;text-transform:uppercase}.guided-branch-copy strong{font-size:15px;line-height:1.15}.guided-branch-progress{color:#c8ddc8;font-size:12px;font-weight:800}
.guided-skill-list{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:9px 1px 1px}.guided-skill-list:before{content:"";position:absolute;left:50%;top:0;width:1px;height:9px;background:#bcc1b7}
.guided-skill-button{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0;min-height:44px;padding:7px 8px;border:1px solid #cdd5ca;border-radius:6px;background:white;text-align:left}.guided-skill-button:hover,.guided-skill-button:focus-visible,.guided-skill-button.active{border-color:var(--green);outline:0}.guided-skill-button.active{background:var(--green-soft);box-shadow:inset 0 0 0 1px var(--green)}.guided-skill-button.locked{background:#efede8;color:#77766f}.guided-skill-button.complete{background:var(--green-soft)}.guided-skill-button strong{min-width:0;font-size:12px;line-height:1.18;white-space:normal}.guided-skill-button small{flex:none;color:var(--muted);font-size:10px;font-weight:800}
.guided-lesson-panel{margin-top:13px;padding:15px;border:1px solid var(--green);border-radius:9px;background:#fbfcf8;scroll-margin-top:12px}.guided-lesson-panel.empty{display:grid;place-items:center;min-height:96px;border-style:dashed;color:var(--muted);text-align:center}.guided-lesson-panel.empty strong{font-size:15px}.guided-lesson-panel.empty p{margin:3px 0 0;font-size:12px}.guided-tree-pointer{color:var(--green);font-size:18px;line-height:1}
.guided-lesson-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:11px}.guided-lesson-heading small{color:var(--green-dark);font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.guided-lesson-heading h3{margin:2px 0 0;font:800 21px/1.1 var(--serif)}.guided-lesson-heading p{margin:3px 0 0;color:var(--muted);font-size:12px}.guided-lessons-close{flex:none;padding:7px 10px;border:1px solid var(--line);border-radius:6px;background:white;color:var(--muted);font-size:11px;font-weight:800}.guided-lessons-close:hover,.guided-lessons-close:focus-visible{border-color:var(--green);color:var(--green-dark);outline:0}
.guided-lesson-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.guided-lesson-grid .guided-game{min-height:132px}
.tree-heading-actions{display:flex;align-items:center;gap:10px}.tree-heading-actions>a{color:var(--green-dark);font-size:11px;font-weight:800}
.view-puzzles .home-only,.view-tree .home-only{display:none}
.view-puzzles .analyzer-wrap{max-width:1100px}.view-puzzles .input-tabs{display:none}.view-puzzles .library-heading{padding-top:19px}.view-puzzles .skill-tree-section{display:none}
#puzzle-library-progress{scroll-margin-top:12px}
.view-tree .analyzer-wrap{display:none}.view-tree .skill-tree-section{max-width:1120px}.view-tree .skill-tree{padding:34px 38px 30px}.view-tree .tree-page-hero{margin-bottom:34px}
.is-quick-puzzle .explore-game,.is-quick-puzzle .lesson-jump{display:none}
.is-quick-puzzle .home-hub-tabs-wrap{display:none}
.is-guided-position .explore-game,.is-guided-position .lesson-jump{display:none}
.is-quick-puzzle .board-legend span:first-child,.is-quick-puzzle .puzzle-actions{display:none}.is-quick-puzzle .analysis-layout{grid-template-columns:minmax(360px,480px) minmax(320px,420px);align-items:start;justify-content:center}.is-quick-puzzle .lesson-column{min-width:0}.is-quick-puzzle .moment-card{min-height:0}
.is-quick-puzzle .site-header{height:52px}
.is-quick-puzzle .report-shell{margin-bottom:0;padding-top:12px}
.is-quick-puzzle .board-paper{width:min(100%,calc(100dvh - 302px));margin-inline:auto}
@media(min-width:901px){
    body.is-quick-puzzle{--quick-board-paper-size:min(calc(100dvh - 194px),calc(100vw - 516px),886px);overflow:hidden}
    .is-quick-puzzle .report-shell{max-width:calc(var(--quick-board-paper-size) + 492px)}
    .is-quick-puzzle .analysis-layout{grid-template-columns:minmax(360px,var(--quick-board-paper-size)) minmax(320px,420px)}
    .is-quick-puzzle .board-paper{width:100%}
}
.is-quick-puzzle .report-hero{display:flex;align-items:center;max-width:none;gap:8px 12px;margin:9px 0 12px;padding:0 0 10px;border-bottom:1px solid var(--line)}
.is-quick-puzzle .report-hero>.eyebrow{flex:none;margin:0;padding:4px 7px;border-radius:999px;background:var(--green-soft);font-size:8px;line-height:1}
.is-quick-puzzle .report-hero h1{flex:none;margin:0;font-size:clamp(25px,2.8vw,34px);line-height:1;white-space:nowrap}
.is-quick-puzzle .report-hero #report-matchup{flex:1;min-width:230px;gap:5px;margin:0;font-size:14px;line-height:1.15}
.is-quick-puzzle .report-hero .matchup-result{padding:3px 6px;font-size:8px}
.is-quick-puzzle .report-hero .report-skill-update{flex:none;margin:0;padding:5px 8px;font-size:11px}
.is-quick-puzzle .report-hero{display:none!important}
.is-quick-puzzle #puzzle-position-count,.is-quick-puzzle .move-line{display:none}
.is-quick-puzzle .moment-card{padding:17px 18px}
.is-quick-puzzle .moment-number{color:var(--green-dark);font-size:11px}
.is-quick-puzzle .severity.position-side{border-color:var(--line);color:var(--muted)}
.is-quick-puzzle .moment-card h2{margin:9px 0 12px;font-size:25px}
.is-quick-puzzle .moment-card.revealed>.moment-top,.is-quick-puzzle .moment-card.revealed>h2{display:none}
.analyzer-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:30px;margin-bottom:14px}
.eyebrow{margin:0 0 4px;color:var(--green);font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.analyzer-heading h2,.section-heading h2,.coming-grid h2,.how-section h2{margin:0;font:700 26px/1.1 var(--serif);letter-spacing:-.035em}
.analyzer-heading p:not(.eyebrow),.section-heading p{margin:3px 0 0;color:var(--muted)}
.coach-note{position:relative;margin-top:15px;padding:8px 12px;background:var(--yellow);border:1px solid #ddcf92;border-radius:4px;transform:rotate(1deg);font:italic 13px var(--serif)}
.coach-note:before{content:"";position:absolute;left:10px;top:-5px;width:25px;height:8px;background:rgba(214,190,135,.48);transform:rotate(-3deg)}
.field{display:flex;flex-direction:column;gap:5px;min-width:0}
.field>span{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.field textarea,.field input,.field select{width:100%;border:1px solid var(--line);border-radius:7px;background:white;outline:none}
.field textarea{min-height:150px;padding:13px 14px;resize:vertical;font:14px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.field input,.field select{min-height:40px;padding:8px 10px}
.field textarea:focus,.field input:focus,.field select:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(82,111,84,.11)}
.analysis-options{display:grid;grid-template-columns:140px 160px minmax(220px,1fr) auto;gap:11px;align-items:end;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.analysis-options p{margin:0 0 3px;color:var(--muted);font-size:12px}
.analysis-options p strong{color:var(--ink)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:41px;padding:9px 15px;border:1px solid var(--ink);border-radius:7px;text-decoration:none;font:700 16px/1.1 var(--serif);letter-spacing:.005em}
.primary-button{border-color:#0d0e0c;background:linear-gradient(180deg,#3a3b35 0%,#252621 48%,#171815 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 -2px 0 rgba(0,0,0,.42),0 4px 0 #0b0c0a,0 7px 13px rgba(34,35,31,.24);color:#fffefa;text-shadow:0 1px 0 rgba(0,0,0,.55);transition:background .12s ease,box-shadow .12s ease,filter .12s ease,transform .08s ease}
.primary-button:hover:not(:disabled){box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -2px 0 rgba(0,0,0,.42),0 5px 0 #0b0c0a,0 9px 16px rgba(34,35,31,.27);filter:brightness(1.1)}
.primary-button:focus-visible{outline:3px solid rgba(82,111,84,.32);outline-offset:4px}
.primary-button:active:not(:disabled){transform:translateY(3px);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),inset 0 -1px 0 rgba(0,0,0,.34),0 1px 0 #0b0c0a,0 3px 7px rgba(34,35,31,.2)}
.primary-button:disabled{opacity:.55;cursor:wait;box-shadow:inset 0 1px 0 rgba(255,255,255,.12),inset 0 -1px 0 rgba(0,0,0,.3),0 2px 0 #0b0c0a}
.secondary-button{border-color:#aaa59a;background:var(--sheet);color:var(--ink)}
.button:is(.board-reveal-tactic,.reveal-answer){border-color:#817c72;background:linear-gradient(180deg,#fffefa 0%,#f1eee6 58%,#ddd8cd 100%);box-shadow:inset 0 1px 0 #fff,inset 0 -2px 0 rgba(80,76,68,.16),0 4px 0 #777269,0 7px 12px rgba(34,35,31,.2);color:var(--ink);text-shadow:0 1px 0 white;transition:background .12s ease,box-shadow .12s ease,filter .12s ease,transform .08s ease}
.button:is(.board-reveal-tactic,.reveal-answer):hover:not(:disabled){background:linear-gradient(180deg,#fff 0%,#f7f4ec 55%,#e5e0d5 100%);box-shadow:inset 0 1px 0 #fff,inset 0 -2px 0 rgba(80,76,68,.16),0 5px 0 #777269,0 9px 15px rgba(34,35,31,.23)}
.button:is(.board-reveal-tactic,.reveal-answer):focus-visible{outline:3px solid rgba(82,111,84,.3);outline-offset:4px}
.button:is(.board-reveal-tactic,.reveal-answer):active:not(:disabled){transform:translateY(3px);box-shadow:inset 0 1px 0 #fff,inset 0 -1px 0 rgba(80,76,68,.2),0 1px 0 #777269,0 3px 6px rgba(34,35,31,.18)}
.analyze-button{min-width:178px}
.form-error{min-height:0;margin:9px 0 0;color:var(--red);font-size:13px;font-weight:700}
.form-error:empty{margin:0}
.example-row{display:flex;align-items:center;justify-content:center;gap:8px;margin:15px 0 -4px;color:var(--muted);font-size:12px}
.text-button{padding:2px;border:0;border-bottom:1px solid var(--green);background:none;color:var(--green);font-weight:800}
.fen-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:12px}
.fen-actions p{margin:0;color:var(--muted);font-size:12px}
.fen-preview{max-width:410px;margin:18px auto 0;padding:13px;background:#ece8dd;border-radius:8px}
.analysis-progress{display:grid;grid-template-columns:110px 1fr;align-items:center;gap:25px;margin-top:14px;padding:24px 28px;border:1px solid var(--line);border-radius:10px;background:var(--sheet)}
.thinking-knight{display:grid;place-items:center;width:88px;height:88px;border:1px solid var(--line);border-radius:50%;background:var(--green-soft)}
.thinking-knight span{font:52px Georgia,serif;animation:knight-think 1.5s ease-in-out infinite}
@keyframes knight-think{50%{transform:translate(8px,-5px) rotate(4deg)}}
.analysis-progress h2{margin:0;font:700 25px var(--serif)}
.analysis-progress p:last-child{margin:5px 0 0;color:var(--muted);font-size:13px}
.progress-track{margin-top:12px}
.progress-track span{width:12%;transition:width .5s ease}
.home-section{max-width:990px;margin:0 auto 38px;padding:0 20px}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:14px}
.lesson-preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.stationery-card{position:relative;display:flex;flex-direction:column;min-height:160px;padding:17px;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.stationery-card.blue{background:var(--blue)}
.stationery-card.yellow{background:var(--yellow)}
.stationery-card.green{background:var(--green-soft)}
.stationery-card small{font-size:10px;text-transform:uppercase;color:var(--muted)}
.stationery-card strong{max-width:85%;margin:7px 0;font:700 20px/1.1 var(--serif)}
.stationery-card p{max-width:88%;margin:auto 0 0;color:var(--muted);font-size:12px}
.stationery-card>span{position:absolute;right:13px;bottom:-13px;color:rgba(34,35,31,.08);font:700 72px var(--serif)}
.how-section{max-width:950px;margin:0 auto 48px;padding:17px 0;display:grid;grid-template-columns:1.3fr 2fr;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.how-section h2{font-size:24px}
.how-section ol{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0;padding:0;list-style:none}
.how-section li{padding-left:10px;border-left:1px solid var(--line)}
.how-section li span{display:grid;place-items:center;width:21px;height:21px;margin-bottom:5px;border:1px solid #aaa59a;border-radius:50%;font-size:10px}
.how-section li strong{font-size:13px}
.how-section li p{margin:0;color:var(--muted);font-size:11px}
.coming-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.coming-grid article{position:relative;padding:24px;border:1px solid var(--line);border-radius:9px;background:var(--sheet)}
.coming-grid article:first-child{background:linear-gradient(135deg,var(--lilac),var(--sheet))}
.coming-grid article:last-child{background:linear-gradient(135deg,var(--peach),var(--sheet))}
.coming-grid p:not(.eyebrow){color:var(--muted)}
.coming-grid article>span{font-size:10px;font-weight:800;text-transform:uppercase;color:var(--green)}

/* Chess DNA */
.dna-dashboard{scroll-margin-top:22px}.dna-heading{align-items:center}.dna-heading .button{font-size:14px}
.dna-overview{display:grid;grid-template-columns:minmax(240px,.8fr) 1.4fr;gap:22px;padding:24px;background:linear-gradient(135deg,var(--green-soft),var(--sheet) 48%)}
.dna-focus{padding-right:22px;border-right:1px solid var(--line)}.dna-focus small{display:block;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.dna-focus>strong{display:block;margin:8px 0 5px;font:700 27px/1.05 var(--serif)}.dna-focus p{margin:0 0 16px;color:var(--muted);font-size:12px}.dna-focus .button{font-size:14px}
.dna-stats{display:grid;grid-template-columns:1fr 1fr;gap:13px 18px}.dna-stat{min-width:0}.dna-stat>div{display:grid;gap:2px;margin-bottom:5px}.dna-stat strong{font:700 15px var(--serif)}.dna-stat span{color:var(--muted);font-size:10px;font-weight:800}.dna-stat .dna-level-copy{text-align:left}.dna-meter{height:10px;background:repeating-linear-gradient(90deg,#d8d4ca 0 11px,transparent 11px 15px)}.dna-meter i{display:block;height:100%;background:repeating-linear-gradient(90deg,var(--green) 0 11px,transparent 11px 15px)}
.dna-history{grid-column:1/-1;display:flex;gap:8px;padding-top:14px;border-top:1px solid var(--line)}.dna-history span{padding:6px 9px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.6);color:var(--muted);font-size:10px}.dna-history strong{color:var(--ink)}
.secondary-product{margin-top:52px}

/* Progress history */
.view-progress{padding-bottom:88px}.view-progress .capability-strip,.view-progress .hero,.view-progress .analyzer-wrap,.view-progress .skill-tree-section{display:none}.progress-page{max-width:1120px;margin:0 auto;padding:52px 20px 70px}.progress-page-hero{display:grid;grid-template-columns:minmax(0,1fr) 390px;align-items:end;gap:34px;margin-bottom:23px}.progress-page-hero h1{margin:5px 0 10px;font:800 clamp(45px,6vw,74px)/.96 var(--serif);letter-spacing:-.06em}.progress-page-hero h1 em{color:var(--green);font-weight:inherit}.progress-page-hero>div:first-child>p:last-child{max-width:650px;margin:0;color:var(--muted);font-size:15px;line-height:1.55}.progress-identity{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:12px;padding:15px}.progress-avatar{display:grid;width:52px;height:52px;place-items:center;border-radius:50%;background:var(--ink);color:var(--sheet);font:28px var(--serif)}.progress-identity small,.progress-identity strong,.progress-identity span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress-identity small{color:var(--green-dark);font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.progress-identity strong{margin:2px 0;font:800 18px var(--serif)}.progress-identity span{color:var(--muted);font-size:9px}.progress-account-action{padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:#f7f4ec;color:var(--green-dark);font-size:9px;font-weight:800}.progress-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:10px}.progress-kpis article{min-width:0;padding:14px}.progress-kpis small,.progress-kpis strong,.progress-kpis span{display:block}.progress-kpis small{color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.progress-kpis strong{margin:7px 0 2px;font:800 29px/1 var(--serif);color:var(--green-dark)}.progress-kpis span{overflow:hidden;color:var(--muted);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.progress-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,.75fr);gap:10px}.progress-dashboard-grid>section,.progress-dashboard-grid>aside{min-width:0;padding:20px}.progress-dashboard-grid h2{margin:0;font:800 24px/1.05 var(--serif);letter-spacing:-.035em}.progress-chart-card>header,.progress-domains-card>header,.progress-recent-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.progress-chart-card>header>strong,.progress-domains-card>header>span,.progress-recent-card>header>span{color:var(--muted);font-size:9px;font-weight:800;text-align:right}.progress-chart{display:grid;height:190px;grid-template-columns:repeat(28,minmax(4px,1fr));align-items:end;gap:5px;margin-top:17px;padding:12px 5px 0;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0 46px,rgba(215,210,198,.72) 46px 47px)}.progress-chart-bar{position:relative;min-height:4px;border-radius:3px 3px 0 0;background:var(--green);transition:height .25s ease}.progress-chart-bar.zero{background:#d8d4ca}.progress-chart-bar.today{box-shadow:0 0 0 2px var(--yellow)}.progress-chart-bar:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.progress-chart-axis{display:flex;justify-content:space-between;margin-top:6px;color:var(--muted);font-size:8px}.progress-chart-note{margin:11px 0 0;color:var(--muted);font-size:10px}.progress-rhythm-card{background:linear-gradient(145deg,var(--yellow),var(--sheet) 55%)}.progress-rhythm-card h2{margin-bottom:18px}.progress-heatmap{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:repeat(7,1fr);grid-auto-flow:column;gap:4px}.progress-heatmap i{aspect-ratio:1;border:1px solid rgba(82,111,84,.08);border-radius:2px;background:#e5e1d7}.progress-heatmap i.active{background:#9ab49a}.progress-heatmap i.strong{background:var(--green)}.progress-heatmap i.today{outline:2px solid var(--ink);outline-offset:1px}.progress-rhythm-stats{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:17px 0}.progress-rhythm-stats span{padding:9px 7px;border:1px solid rgba(215,210,198,.9);border-radius:6px;background:rgba(255,254,250,.62);color:var(--muted);font-size:8px;text-align:center}.progress-rhythm-stats strong{display:block;margin-bottom:2px;color:var(--ink);font:800 18px var(--serif)}.progress-rhythm-card .button{width:100%;font-size:14px}.progress-domains-card{grid-column:1/-1}.progress-domain-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 28px;margin-top:17px}.progress-domain-row{min-width:0}.progress-domain-row>div{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:5px}.progress-domain-row span{font:800 14px var(--serif)}.progress-domain-row strong{flex:none;color:var(--muted);font-size:9px}.progress-domain-row i{display:block;height:10px;background:repeating-linear-gradient(90deg,#d8d4ca 0 10px,transparent 10px 14px)}.progress-domain-row b{display:block;height:100%;background:repeating-linear-gradient(90deg,var(--green) 0 10px,transparent 10px 14px)}.progress-recent-card{grid-column:1/-1}.progress-recent-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:15px}.progress-recent-list>p{grid-column:1/-1;margin:8px 0;color:var(--muted);font-size:11px}.progress-recent-item{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px;border:1px solid var(--line);border-radius:7px;background:#faf8f2}.progress-recent-icon{display:grid;width:40px;height:40px;place-items:center;border-radius:50%;background:var(--green-soft);color:var(--green-dark);font:20px var(--serif)}.progress-recent-item strong,.progress-recent-item small{display:block}.progress-recent-item strong{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.progress-recent-item small{margin-top:2px;color:var(--muted);font-size:8px}.progress-recent-item>span:last-child{color:var(--green-dark);font-size:9px;font-weight:850}.progress-share-sticky{position:fixed;z-index:85;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));min-height:51px;padding:12px 19px;border-color:var(--green-dark);background:var(--green-dark);box-shadow:0 13px 32px rgba(34,35,31,.24);font-size:16px}.progress-share-sticky:hover{background:#263b2a}.progress-share-sticky:focus-visible{outline:3px solid rgba(82,111,84,.3);outline-offset:3px}

/* Progress targets, momentum, coaching, and milestones. */
.progress-insight-grid{display:grid;grid-template-columns:1.08fr 1fr .9fr;gap:10px;margin-bottom:10px}.progress-insight-grid>article,.progress-insight-grid>aside{min-width:0;padding:18px}.progress-insight-grid h2{margin:2px 0 0;font:800 24px/1.05 var(--serif);letter-spacing:-.035em}.progress-level-runway{background:linear-gradient(140deg,var(--green-soft),var(--sheet) 60%)}.progress-level-runway header,.progress-momentum-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.progress-level-medallion{display:grid;flex:none;width:43px;height:43px;place-items:center;border:2px solid var(--green);border-radius:50%;background:var(--sheet);color:var(--green-dark);font:800 20px var(--serif);box-shadow:0 0 0 4px rgba(82,111,84,.09)}.progress-level-meter{height:14px;margin:20px 0 9px;background:repeating-linear-gradient(90deg,#cdd7ca 0 14px,transparent 14px 19px)}.progress-level-meter i{display:block;height:100%;background:repeating-linear-gradient(90deg,var(--green) 0 14px,transparent 14px 19px);transition:width .3s ease}.progress-level-runway footer{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:8px}.progress-level-runway footer strong{color:var(--ink)}.progress-momentum-card header>span{padding:5px 7px;border-radius:999px;background:#f0eee7;color:var(--muted);font-size:8px;font-weight:850;white-space:nowrap}.progress-momentum-card header>span[data-trend="up"]{background:var(--green-soft);color:var(--green-dark)}.progress-momentum-card header>span[data-trend="down"]{background:var(--peach);color:#775343}.progress-week-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:17px 0 11px}.progress-week-stats span{padding:8px 5px;border:1px solid var(--line);border-radius:6px;background:#faf8f2;color:var(--muted);font-size:7px;text-align:center;text-transform:uppercase}.progress-week-stats strong{display:block;margin-bottom:3px;color:var(--ink);font:800 19px var(--serif);text-transform:none}.progress-momentum-card>p{margin:0;color:var(--muted);font-size:9px}.progress-coach-card{position:relative;display:flex;flex-direction:column;overflow:hidden;background:var(--ink);color:var(--sheet)}.progress-coach-card .eyebrow{color:#bcd2bb}.progress-coach-card h2{position:relative;z-index:1;max-width:80%;color:white}.progress-coach-card>p{position:relative;z-index:1;margin:9px 0 16px;color:#c6c8c1;font-size:9px;line-height:1.45}.progress-coach-card .button{position:relative;z-index:1;width:100%;margin-top:auto;border-color:#bdcfbb;background:var(--sheet);color:var(--ink);font-size:12px}.progress-coach-piece{position:absolute;right:-7px;top:-16px;color:rgba(255,255,255,.07);font:108px Georgia,serif;transform:rotate(8deg)}
.progress-chart-card>header,.progress-milestones-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.progress-chart-head-actions{display:grid;justify-items:end;gap:8px}.progress-chart-head-actions>strong,.progress-milestones-card>header>span{color:var(--muted);font-size:9px;font-weight:800;text-align:right}.progress-chart-switch{display:flex;padding:2px;border:1px solid var(--line);border-radius:6px;background:#f2efe7}.progress-chart-switch button{min-height:25px;padding:4px 7px;border:0;border-radius:4px;background:transparent;color:var(--muted);font-size:8px;font-weight:850}.progress-chart-switch button[aria-pressed="true"]{background:var(--sheet);color:var(--green-dark);box-shadow:0 1px 3px rgba(34,35,31,.12)}.progress-chart-switch button:focus-visible{outline:2px solid var(--green);outline-offset:1px}
.progress-milestones-card{grid-column:1/-1}.progress-milestone-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:15px}.progress-milestone{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:9px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#faf8f2}.progress-milestone.locked{color:var(--muted);background:#f2f0e9}.progress-milestone-icon{display:grid;width:38px;height:38px;place-items:center;border-radius:50%;background:#dedbd2;color:#88877f;font:800 18px var(--serif)}.progress-milestone.earned .progress-milestone-icon{background:var(--green);color:white;box-shadow:0 0 0 3px var(--green-soft)}.progress-milestone strong,.progress-milestone small{display:block}.progress-milestone strong{font:800 12px var(--serif)}.progress-milestone small{margin-top:2px;color:var(--muted);font-size:7px}.progress-milestone-status{color:var(--muted);font-size:8px;font-weight:850;white-space:nowrap}.progress-milestone.earned .progress-milestone-status{color:var(--green-dark)}
@media(max-width:900px){.progress-insight-grid{grid-template-columns:1fr 1fr}.progress-coach-card{grid-column:1/-1;min-height:175px}.progress-milestone-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.progress-insight-grid{grid-template-columns:1fr}.progress-coach-card{grid-column:1;min-height:190px}.progress-milestone-list{grid-template-columns:1fr}.progress-chart-card>header{align-items:flex-start}.progress-chart-head-actions{gap:6px}.progress-chart-switch button{min-height:28px;padding:5px 6px}.progress-level-runway footer{font-size:7px}}

/* A compact five-tier trophy cabinet with eight trophies per desktop row and four per mobile row. */
.progress-milestones-card{overflow:hidden;background:linear-gradient(145deg,#f7f0e3,var(--sheet) 48%,#efe2ce)}
.progress-milestone-list{display:grid;grid-template-columns:1fr;gap:9px;margin-top:14px}
.trophy-tier{overflow:hidden;border:1px solid #4a2a1a;border-radius:11px;background:linear-gradient(145deg,#3a2117,#6b4027 48%,#2b1912);box-shadow:inset 0 1px rgba(255,255,255,.16),0 6px 14px rgba(47,28,18,.14)}
.trophy-tier-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 11px 7px;border-bottom:1px solid rgba(255,255,255,.14);color:#fff8eb}.trophy-tier-heading h3{margin:0;font:800 15px/1 var(--serif);letter-spacing:-.02em}.trophy-tier-heading p{margin:2px 0 0;color:#d9c8b4;font-size:7px}.trophy-tier-heading>span{flex:none;padding:3px 6px;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(0,0,0,.16);color:#f2dfbd;font-size:7px;font-weight:850}
.trophy-shelf-row{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));overflow:visible}
.progress-milestone,.progress-milestone.locked{position:relative;display:grid;grid-template-columns:1fr;align-content:end;gap:4px;min-height:154px;padding:6px 6px 12px;border:0;border-right:1px solid rgba(255,255,255,.07);border-bottom:9px solid #8c5832;border-radius:0;background:linear-gradient(90deg,rgba(255,255,255,.03),transparent 50%,rgba(0,0,0,.08));box-shadow:inset 0 -3px #4b2a19,0 4px 0 #2a1710;color:#fff8eb}.progress-milestone:nth-child(8n){border-right:0}.progress-milestone:nth-child(-n+8){box-shadow:inset 0 -3px #4b2a19,0 4px 0 #2a1710,0 12px 13px rgba(0,0,0,.17)}
.progress-milestone-image{position:relative;display:block;height:86px;overflow:hidden;border-radius:5px 5px 2px 2px;background:rgba(0,0,0,.18);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}.progress-milestone-image img{position:absolute;left:9%;top:9%;display:block;width:82%;height:82%;object-fit:contain;transition:filter .2s ease,opacity .2s ease,transform .2s ease}.progress-milestone.earned:hover .progress-milestone-image img{transform:scale(1.025)}
.progress-milestone.locked .progress-milestone-image img{filter:grayscale(1) brightness(.38);opacity:.55}.progress-milestone.locked .progress-milestone-image:after{content:"LOCKED";position:absolute;left:50%;top:50%;padding:4px 6px;border:1px solid rgba(255,255,255,.26);border-radius:4px;background:rgba(20,14,11,.72);color:#eee3d3;font-size:7px;font-weight:900;letter-spacing:.09em;transform:translate(-50%,-50%)}
.progress-milestone-copy{min-width:0;padding:4px 5px;border:1px solid rgba(255,255,255,.13);border-radius:4px;background:rgba(22,13,9,.58)}.progress-milestone strong,.progress-milestone small,.progress-milestone-status{display:block}.progress-milestone strong{overflow:hidden;color:#fffaf0;font:800 9px/1.1 var(--serif);text-overflow:ellipsis;white-space:nowrap}.progress-milestone small{height:16px;margin-top:2px;overflow:hidden;color:#cdbda9;font-size:6px;line-height:1.3}.progress-milestone-status{margin-top:3px;color:#cabca9;font-size:6px;font-weight:850}.progress-milestone.earned .progress-milestone-status{color:#f4cb62}
.trophy-tier-bronze{--trophy-accent:#c27d47}.trophy-tier-silver{--trophy-accent:#bcc8d1}.trophy-tier-gold{--trophy-accent:#edc452}.trophy-tier-platinum{--trophy-accent:#d7e5ee}.trophy-tier-legendary{--trophy-accent:#72d9b5}.trophy-tier-heading h3:after{content:"";display:inline-block;width:7px;height:7px;margin-left:7px;border-radius:50%;background:var(--trophy-accent);box-shadow:0 0 9px var(--trophy-accent)}
.progress-trophy-account{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:11px 0 0;padding:8px 10px;border:1px solid #c7b28f;border-radius:7px;background:#fff8e8;color:#62472f;font-size:9px;font-weight:750}.progress-trophy-account button{flex:none;padding:6px 8px;border:1px solid #6b4027;border-radius:5px;background:#4a2a1a;color:#fff8eb;font-size:8px;font-weight:900}.trophy-unlock{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:11px;margin-top:11px;padding:8px;border:1px solid #694329;border-radius:8px;background:linear-gradient(135deg,#2d1b13,#603b25);box-shadow:inset 0 1px rgba(255,255,255,.13),0 5px 15px rgba(45,27,19,.18);color:#fff8eb;animation:trophy-unlock-in .42s cubic-bezier(.2,.82,.24,1)}.trophy-unlock img{display:block;width:72px;height:104px;border-radius:5px;background:#2d1b13;object-fit:contain;box-shadow:0 3px 10px rgba(0,0,0,.3)}.trophy-unlock small,.trophy-unlock strong,.trophy-unlock span{display:block}.trophy-unlock small{color:#f0bf55;font-size:8px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.trophy-unlock strong{margin:4px 0 3px;color:white;font:800 18px/1.05 var(--serif)}.trophy-unlock span{color:#dac9b5;font-size:9px;line-height:1.4}.trophy-unlock-silver small,.trophy-unlock-platinum small{color:#cfe1eb}.trophy-unlock-legendary small{color:#78e4be}
@keyframes trophy-unlock-in{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}
@media(max-width:620px){.progress-milestones-card{margin-left:-8px;margin-right:-8px;padding:12px 8px}.progress-trophy-account{align-items:flex-start;flex-direction:column}.progress-trophy-account button{width:100%}.trophy-tier-heading{padding:8px 9px}.trophy-shelf-row{grid-template-columns:repeat(4,minmax(0,1fr))}.progress-milestone,.progress-milestone.locked{min-height:145px;padding-left:4px;padding-right:4px}.progress-milestone:nth-child(4n){border-right:0}.progress-milestone:nth-child(n+5):nth-child(-n+8){box-shadow:inset 0 -3px #4b2a19,0 4px 0 #2a1710}.progress-milestone-image{height:78px}.progress-milestone-image img{position:absolute;left:9%;top:-11%;display:block;width:82%;height:115%;object-fit:contain;transition:filter .2s ease,opacity .2s ease,transform .2s ease}.progress-milestone-copy{padding:4px}.progress-milestone strong{font-size:8px}.progress-milestone.locked .progress-milestone-image:after{padding:3px 4px;font-size:5px}.trophy-unlock{grid-template-columns:60px minmax(0,1fr);gap:9px}.trophy-unlock img{width:60px;height:88px}.trophy-unlock strong{font-size:16px}}

/* Adaptive training rhythm and its share card */
.progress-rhythm-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:16px}.progress-rhythm-card .progress-rhythm-head h2{margin:0}.progress-rhythm-head>button{flex:none;padding:5px 7px;border:1px solid rgba(82,111,84,.3);border-radius:5px;background:rgba(255,254,250,.62);color:var(--green-dark);font-size:8px;font-weight:850}.progress-rhythm-head>button:hover,.progress-rhythm-head>button:focus-visible{border-color:var(--green);background:var(--sheet);outline:0}.progress-heatmap{width:min(100%,var(--rhythm-grid-width,100%));min-height:88px;margin-right:auto;margin-left:auto;grid-template-columns:repeat(var(--rhythm-columns,1),minmax(0,1fr));grid-template-rows:none;grid-auto-flow:row;align-content:center;gap:3px}.progress-heatmap i{display:grid;place-items:center;border-radius:1px;color:#fff;font-size:var(--rhythm-count-size,7px);font-style:normal;font-weight:850;font-variant-numeric:tabular-nums;letter-spacing:-.06em;line-height:1;text-shadow:0 1px 1px rgba(20,31,21,.28)}.progress-heatmap i.today{outline-width:1px}.progress-heatmap-axis{display:flex;justify-content:space-between;margin-top:5px;color:var(--muted);font-size:7px}.progress-heatmap-axis.single-day{justify-content:center}.progress-rhythm-stats{margin-top:14px}.rhythm-share-preview{margin:0 16px;padding:17px;border:1px solid #aaa59a;border-radius:9px;background:linear-gradient(145deg,var(--yellow),var(--sheet) 52%);box-shadow:0 7px 20px rgba(56,80,60,.09)}.rhythm-share-preview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:15px}.rhythm-share-preview-head small,.rhythm-share-preview-head strong,.rhythm-share-preview-head span{display:block}.rhythm-share-preview-head small{color:var(--green);font-size:9px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.rhythm-share-preview-head h3{margin:3px 0 0;font:800 22px/1.05 var(--serif)}.rhythm-share-preview-head>div:last-child{text-align:right}.rhythm-share-preview-head strong{font:800 20px var(--serif)}.rhythm-share-preview-head span{color:var(--muted);font-size:8px}.rhythm-share-grid{display:grid;width:min(100%,var(--rhythm-grid-width,100%));min-height:140px;margin-right:auto;margin-left:auto;grid-template-columns:repeat(var(--rhythm-columns,1),minmax(0,1fr));align-content:center;gap:3px}.rhythm-share-grid i{display:grid;aspect-ratio:1;place-items:center;border:1px solid rgba(82,111,84,.08);border-radius:1px;background:#e5e1d7;color:#fff;font-size:var(--rhythm-count-size,7px);font-style:normal;font-weight:850;font-variant-numeric:tabular-nums;letter-spacing:-.06em;line-height:1;text-shadow:0 1px 1px rgba(20,31,21,.28)}.rhythm-share-grid i.active{background:#9ab49a}.rhythm-share-grid i.strong{background:var(--green)}.rhythm-share-grid i.today{outline:1px solid var(--ink);outline-offset:1px}.rhythm-share-axis{display:flex;justify-content:space-between;margin-top:6px;color:var(--muted);font-size:7px}.rhythm-share-axis.single-day{justify-content:center}.rhythm-share-summary{display:flex;gap:7px;margin:14px 0 0;padding-top:12px;border-top:1px solid rgba(82,111,84,.2)}.rhythm-share-summary span{flex:1;padding:7px;border:1px solid rgba(215,210,198,.9);border-radius:5px;background:rgba(255,254,250,.6);color:var(--muted);font-size:8px;text-align:center}.rhythm-share-summary strong{display:block;color:var(--ink);font:800 17px var(--serif)}.rhythm-share-preview footer{margin-top:11px;color:var(--green-dark);font-size:8px;font-weight:850;text-transform:uppercase}

/* Learning tree */
.skill-tree-section{scroll-margin-top:20px}
.skill-tree-heading{align-items:center}
.local-progress-note{padding:5px 9px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:10px}
.skill-tree{padding:25px 28px 22px;background:radial-gradient(circle at 50% 0,rgba(223,233,221,.72),transparent 29%),var(--sheet);overflow:hidden}
.tree-user-card{position:relative;z-index:2;width:min(100%,420px);margin:auto;border:2px solid var(--green);border-radius:12px;background:var(--sheet);box-shadow:0 7px 20px rgba(56,80,60,.11);overflow:hidden}
.tree-user-identity{display:grid;grid-template-columns:48px 1fr;align-items:center;gap:11px;padding:13px 15px 11px}.tree-user-avatar{display:grid;place-items:center;width:48px;height:48px;border-radius:10px;background:var(--green);color:white;font:30px Georgia,serif}.tree-user-identity small,.tree-user-identity strong,.tree-user-identity span{display:block}.tree-user-identity small{color:var(--green);font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.tree-user-identity strong{margin:2px 0;font:800 20px/1.15 var(--serif)}.tree-user-identity span{color:var(--muted);font-size:11px}
.tree-user-stats{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f8f7f1}.tree-user-stats>span{padding:9px 10px;text-align:center}.tree-user-stats>span+span{border-left:1px solid var(--line)}.tree-user-stats strong,.tree-user-stats small{display:block}.tree-user-stats strong{font:800 18px/1 var(--serif)}.tree-user-stats small{margin-top:4px;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.tree-user-progress{display:flex;justify-content:space-between;gap:12px;padding:8px 15px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.tree-trunk{position:relative;width:50%;height:33px;margin:auto;border-bottom:2px solid #aeb7aa}
.tree-trunk:before,.tree-trunk:after{content:"";position:absolute;bottom:-34px;width:2px;height:34px;background:#aeb7aa}
.tree-trunk:before{left:0}.tree-trunk:after{right:0}
.tree-trunk:after{box-shadow:calc(-50% + 1px) -33px 0 #aeb7aa}
.tree-branches{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.tree-branch{position:relative;padding-top:20px}
.tree-branch header{display:flex;align-items:center;gap:9px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--ink);color:white}
.tree-branch header>span{display:grid;place-items:center;width:30px;height:30px;border:1px solid #777970;border-radius:50%;font-size:16px}
.tree-branch header small{display:block;color:#bbbdb5;font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.tree-branch header h3{margin:0;font:800 16px var(--serif);letter-spacing:.06em}
.tree-branch header>strong{margin-left:auto;color:#c8ddc8;font:700 18px var(--serif)}
.skill-node-grid{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}
.skill-node-grid:before{content:"";position:absolute;left:25%;right:25%;top:-22px;height:22px;border-left:1px solid #b9bbb2;border-right:1px solid #b9bbb2;border-top:1px solid #b9bbb2}
.skill-node{position:relative;display:block;width:100%;min-height:90px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.skill-node:not(.locked):hover{border-color:var(--green);box-shadow:0 5px 14px rgba(56,80,60,.12);transform:translateY(-1px)}
.skill-node:focus-visible{outline:3px solid rgba(82,111,84,.28);outline-offset:2px}
.skill-node:nth-child(n+3):before{content:"";position:absolute;left:50%;top:-11px;width:1px;height:10px;background:#b9bbb2}
.skill-node.unlocked{background:#f9fbf7;border-color:#b7ccb8}
.skill-node.complete{background:var(--green-soft);border-color:var(--green)}
.skill-node.locked{background:#efede8;color:#8b8981;cursor:help}
.skill-node-top{display:flex;align-items:center;justify-content:space-between;gap:7px}
.skill-node strong{font:700 16px var(--serif)}
.skill-state{font-size:13px}
.skill-node small{display:block;margin-top:5px;color:var(--muted);font-size:11px;line-height:1.3}
.skill-meter{margin-top:10px}
.next-unlock{margin:20px 0 0;padding-top:14px;border-top:1px dashed var(--line);color:var(--muted);font-size:13px;text-align:center}

/* Game report */
.report-shell{max-width:1160px;margin:0 auto 80px;padding:27px 24px 0}
.report-topbar{display:flex;align-items:center;justify-content:space-between}
.back-link,.report-copy-link{color:var(--muted);font-size:12px}
.report-hero{max-width:790px;margin:27px 0 20px}
.report-hero h1{margin:7px 0;font:700 clamp(38px,5.5vw,64px)/1 var(--serif);letter-spacing:-.052em}
.report-hero h1 span{color:var(--green)}
.report-hero #report-matchup{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:12px 0 0;color:var(--muted);font:600 18px/1.2 var(--serif)}
.report-hero #report-matchup strong{color:var(--ink);font-weight:700}.matchup-vs{color:var(--green);font-weight:500}.matchup-divider{color:#aaa59a}
.matchup-result{margin-left:3px;padding:4px 8px;border:1px solid var(--line);border-radius:999px;background:var(--sheet);color:var(--green-dark);font:800 9px/1 var(--sans);letter-spacing:.07em;text-transform:uppercase}
.report-hero .report-skill-update{display:inline-flex;margin-top:12px;padding:7px 12px;border:1px solid #b8cab8;border-radius:999px;background:var(--green-soft);color:var(--green-dark);font:700 14px/1.1 var(--serif);letter-spacing:.005em}
.analysis-layout{display:grid;grid-template-columns:minmax(360px,480px) minmax(0,1fr);gap:24px;align-items:start}
.board-column{position:sticky;top:15px}
.board-paper{padding:14px}
.board-task{margin:0 0 10px;padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:var(--sheet)}.board-task strong{display:block;font:800 clamp(19px,2.2vw,24px)/1.08 var(--serif);letter-spacing:-.025em}
.board-label{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;margin-bottom:9px;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.board-label>span:first-child{justify-self:start;min-width:0}.board-label .puzzle-solve-timer{grid-column:2;display:inline-block;justify-self:center;color:var(--green-dark);font-size:12px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}.puzzle-solve-time{letter-spacing:0}.puzzle-solve-time-box{display:inline-block;width:27px;height:23px;padding:0 4px;border:1px solid rgba(56,80,60,.38);border-radius:3px;background:var(--green-soft);box-shadow:inset 0 -2px 0 rgba(56,80,60,.11);line-height:21px;text-align:center;vertical-align:middle}.puzzle-solve-time-divider{margin:0 3px;color:var(--muted);line-height:1}.board-label .puzzle-solve-timer.paused{opacity:.62}
.icon-button{padding:4px 7px;border:1px solid var(--line);border-radius:5px;background:transparent;font-size:10px}
.chessboard{position:relative;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));aspect-ratio:1;width:100%;border:5px solid #34382f;border-radius:3px;user-select:none;touch-action:pan-y pinch-zoom;background:#eadfc7;box-shadow:0 2px 0 rgba(0,0,0,.13)}
.board-dna-share{width:100%;margin-top:10px;border-color:var(--ink);background:var(--ink);color:#fffefa;font-size:14px}
.board-dna-share:hover{background:#090a08}
.puzzle-desktop-controls{display:grid;gap:10px;margin-bottom:10px}.puzzle-desktop-controls .board-task,.puzzle-desktop-controls .board-dna-share,.puzzle-desktop-controls .board-point-gain{margin:0}
.is-quick-puzzle .board-task{padding:0 4px;border:0;background:transparent;box-shadow:none;text-align:center}
.board-square{position:relative;display:grid;place-items:center;width:100%;aspect-ratio:1;padding:0;border:0;border-radius:0;overflow:hidden}
.board-square.light{background:#eee3ca}
.board-square.dark{background:#78906f}
.chess-piece{position:relative;z-index:1;display:block;width:92%;height:92%;object-fit:contain;overflow:visible;pointer-events:none;filter:drop-shadow(0 1px .3px rgba(0,0,0,.18))}
.board-square:hover .chess-piece{transform:translateY(-1px)}
.board-square.last{box-shadow:inset 0 0 0 5px rgba(248,218,91,.48)}
.board-square.selected{z-index:3;box-shadow:inset 0 0 0 5px #f5ce4f;background-image:radial-gradient(circle,rgba(255,255,255,.32),transparent 60%)}
.board-square.legal-destination:after{content:"";position:absolute;z-index:4;width:18%;aspect-ratio:1;border:2px solid rgba(255,255,255,.78);border-radius:50%;background:#314e37;box-shadow:0 1px 4px rgba(19,39,24,.48);pointer-events:none}
.board-square:not(:empty):hover{filter:brightness(1.06)}
.board-square:focus-visible{z-index:3;outline:3px solid var(--ink);outline-offset:-3px}
.board-square .coord{position:absolute;z-index:2;font:800 8px var(--sans);opacity:.72;pointer-events:none}
.board-square .coord.file{right:3px;bottom:1px}
.board-square .coord.file.white-side-top{top:1px;bottom:auto}
.board-square .coord.rank{left:3px;top:1px}
.board-square.dark .coord{color:#f7f0de}
.board-arrow-layer{position:absolute;inset:0;z-index:2;width:100%;height:100%;pointer-events:none;overflow:visible}
.board-arrow-layer line{stroke-linecap:round}
.board-arrow-layer .played-arrow{stroke:rgba(161,78,69,.8);stroke-width:1.8;stroke-dasharray:4 2}
.board-arrow-layer .better-arrow{stroke:none}
.board-arrow-layer .drawn-arrow{stroke:rgba(50,78,157,.75);stroke-width:1.9}
.board-arrow-layer .previous-arrow{stroke:none}
.chessboard.is-replaying-previous-move .board-square{pointer-events:none}.previous-move-source>.chess-piece{visibility:hidden}.previous-move-piece{position:absolute;z-index:4;display:grid;place-items:center;width:12.5%;height:12.5%;pointer-events:none;will-change:transform;animation:previous-move-piece-slide .75s cubic-bezier(.25,.72,.3,1) both}.previous-move-piece.puzzle-reply-piece{animation-duration:.62s}.previous-move-piece>.chess-piece{width:92%;height:92%}@keyframes previous-move-piece-slide{from{transform:translate(0,0)}to{transform:translate(var(--previous-move-x),var(--previous-move-y))}}
.board-side-cue{position:absolute;z-index:5;left:50%;top:50%;display:flex;align-items:center;gap:9px;width:max-content;max-width:calc(100% - 28px);padding:12px 17px;border:1px solid rgba(255,255,255,.34);border-radius:999px;background:rgba(31,35,29,.92);box-shadow:0 10px 30px rgba(17,20,16,.34);color:#fff;font:800 clamp(17px,4.8vw,24px)/1 var(--serif);letter-spacing:.01em;transform:translate(-50%,-50%);pointer-events:none;animation:board-side-cue-in 1.45s ease both}
.board-side-cue>span{width:15px;height:15px;flex:none;border:1px solid rgba(255,255,255,.76);border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.35)}
.board-side-cue.is-white>span{background:#fff}.board-side-cue.is-black>span{background:#252724}
@keyframes board-side-cue-in{0%{opacity:0;transform:translate(-50%,-46%) scale(.94)}12%,72%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-54%) scale(.98)}}
.puzzle-board-prompt{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0 0;padding:10px 11px;border:1px solid #b9cbb9;border-radius:7px;background:var(--green-soft)}
.puzzle-board-prompt[hidden]{display:none}
.puzzle-board-prompt strong{font:700 15px/1.15 var(--serif)}
.puzzle-board-prompt span{flex:none;color:var(--green-dark);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.puzzle-board-prompt.incorrect{border-color:#c76c62;background:var(--red-soft);box-shadow:0 0 0 3px rgba(161,78,69,.12)}
.puzzle-board-prompt.incorrect strong,.puzzle-board-prompt.incorrect span{color:#843b34}
.puzzle-board-prompt.correct{border-color:var(--green);background:#d8ead8;box-shadow:0 0 0 3px rgba(82,111,84,.11)}
.puzzle-board-prompt.correct strong{color:var(--green-dark)}
.puzzle-board-prompt.answer{border-color:#c8a94d;background:var(--yellow)}
.is-quick-puzzle .puzzle-board-prompt{justify-content:center;text-align:center}
.board-point-gain{margin:10px 0 0;padding:12px;border:1px solid #9fbd9f;border-radius:8px;background:linear-gradient(145deg,#eef5eb,#fffefa);box-shadow:0 7px 20px rgba(56,80,60,.09);animation:point-gain-in .28s ease-out}
.board-point-gain.actions-only,.board-point-gain.summary-only-modal{margin-top:10px;padding:0;border:0;background:transparent;box-shadow:none;animation:none}.board-point-gain.actions-only>header,.board-point-gain.actions-only>.board-point-rows,.board-point-gain.summary-only-modal>header,.board-point-gain.summary-only-modal>.board-point-rows{display:none}.board-point-gain.actions-only>.board-tactic-actions,.board-point-gain.summary-only-modal>.board-tactic-actions{margin-bottom:0}
.board-point-gain.mobile-summary-source{display:none!important}
.board-point-gain>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.board-point-gain>header small{display:block;color:var(--green);font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.report-dna-mini header small{display:block;color:var(--green);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.board-point-gain>header strong{display:block;font:700 17px/1.1 var(--serif)}
.board-point-gain>header>span{display:grid;place-items:center;min-width:42px;height:32px;padding:0 9px;border-radius:0;background:var(--green);color:white;font-size:14px;font-weight:800}
.board-point-rows{display:grid;gap:8px}.board-point-row>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}.board-point-row strong{font:700 11px var(--serif)}.board-point-row>div:first-child span{color:var(--muted);font-size:9px;font-weight:800}
.board-point-gain>.board-dna-share{margin:10px 0 0}
.board-point-meter{position:relative;height:8px;background:repeating-linear-gradient(90deg,#d8d4ca 0 8px,transparent 8px 11px)}.board-point-meter i,.board-point-meter b{position:absolute;top:0;height:100%;background:repeating-linear-gradient(90deg,var(--green) 0 8px,transparent 8px 11px)}.board-point-meter b{overflow:hidden;clip-path:inset(0 calc(100% - var(--point-segment-end,100%)) 0 var(--point-segment-start,0%));background:repeating-linear-gradient(90deg,rgba(231,184,44,.52) 0 8px,transparent 8px 11px)}.board-point-meter b::after{content:"";position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--point-segment-end,100%)) 0 var(--point-segment-start,0%));background:repeating-linear-gradient(90deg,#e7b82c 0 8px,transparent 8px 11px);animation:point-meter-refill 1s cubic-bezier(.2,.72,.28,1) infinite both}.board-point-meter b.loss{background:repeating-linear-gradient(90deg,var(--point-loss-red) 0 8px,transparent 8px 11px)}.board-point-meter b.loss::after{background:repeating-linear-gradient(90deg,var(--point-loss-red-active) 0 8px,transparent 8px 11px);animation-name:point-meter-deduct}.point-counter{font-variant-numeric:tabular-nums}.point-counter:is(b,strong){display:inline-block;min-width:var(--point-counter-width);text-align:right}.board-point-gain .board-point-row.increased .board-point-delta{margin-left:3px;color:var(--green-dark);font-family:var(--sans);font-size:10px}
.board-tactic-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 11px}.board-tactic-actions.single-action{grid-template-columns:1fr}.board-tactic-actions .button{width:100%;min-width:0;margin:0;padding:9px 12px;font-size:11px}.board-tactic-actions .board-next-tactic{font-size:13px;animation:none;transform:none;touch-action:manipulation;will-change:auto}.board-tactic-actions .board-next-tactic:active:not(:disabled){transform:none}
.board-tactic-actions .board-next-tactic[aria-busy="true"]{animation:none;box-shadow:none;filter:none;will-change:auto}
@keyframes puzzle-next-pulse{0%,100%{border-color:var(--ink);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 -2px 0 rgba(0,0,0,.42),0 4px 0 #0b0c0a,0 8px 24px rgba(20,32,21,.3),0 0 0 0 rgba(34,35,31,.62)}50%{border-color:var(--ink);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -2px 0 rgba(0,0,0,.42),0 5px 0 #0b0c0a,0 10px 32px rgba(20,32,21,.46),0 0 0 11px rgba(82,111,84,0)}}
@keyframes next-action-pulse-reduced{0%,100%{border-color:var(--ink);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 -2px 0 rgba(0,0,0,.42),0 4px 0 #0b0c0a,0 8px 24px rgba(20,32,21,.3),0 0 0 0 rgba(34,35,31,.52)}50%{border-color:var(--ink);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -2px 0 rgba(0,0,0,.42),0 5px 0 #0b0c0a,0 10px 30px rgba(20,32,21,.42),0 0 0 8px rgba(82,111,84,0)}}
@keyframes point-gain-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes point-meter-grow{from{width:0}}@keyframes point-meter-refill{from{clip-path:inset(0 calc(100% - var(--point-segment-start,0%)) 0 var(--point-segment-start,0%))}to{clip-path:inset(0 calc(100% - var(--point-segment-end,100%)) 0 var(--point-segment-start,0%))}}@keyframes point-meter-deduct{from{opacity:.35;clip-path:inset(0 calc(100% - var(--point-segment-end,100%)) 0 var(--point-segment-end,100%))}to{opacity:1;clip-path:inset(0 calc(100% - var(--point-segment-end,100%)) 0 var(--point-segment-start,0%))}}
.chessboard.invalid-move{animation:invalid-move-shake .28s ease-in-out}
.chessboard.has-board-feedback .board-square{pointer-events:none}
@keyframes invalid-move-shake{25%{transform:translateX(-4px)}50%{transform:translateX(4px)}75%{transform:translateX(-2px)}}
.board-feedback-overlay{position:absolute;z-index:6;left:50%;top:50%;width:max-content;max-width:calc(100% - 34px);padding:13px 18px;border:2px solid #943f37;border-radius:9px;background:#fff4ef;box-shadow:0 10px 30px rgba(65,28,24,.32);color:#7d312b;font:700 20px/1.15 var(--serif);text-align:center;transform:translate(-50%,-50%);pointer-events:none;animation:board-feedback-in .18s ease-out}
.board-feedback-card{box-sizing:border-box;width:min(410px,calc(100% - 24px));max-width:none;padding:12px;border:1px solid #bd8b84;border-radius:8px;background:linear-gradient(145deg,#fff7f2,#fffefa);box-shadow:0 12px 34px rgba(65,28,24,.28);color:var(--ink);font-family:var(--sans);text-align:left;pointer-events:auto}
.board-feedback-card.desktop-side-feedback{position:static;width:100%;max-width:none;transform:none;animation:point-gain-in .28s ease-out}
.board-feedback-card.incorrect{animation:none}
.board-feedback-card>header{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px}.board-feedback-card>header.no-deduction{grid-template-columns:minmax(0,1fr) auto}.board-feedback-card>header small,.board-feedback-card>header strong{display:block}.board-feedback-card>header small{color:var(--red);font-size:8px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.board-feedback-card>header strong{margin-top:2px;font:700 17px/1.1 var(--serif)}.board-feedback-card>header>span,.board-feedback-card .board-feedback-total{display:grid;place-items:center;min-width:44px;height:34px;padding:0 9px;border-radius:6px;background:var(--red);color:white;font-size:14px;font-weight:850}.board-feedback-close{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid #dfbbb5;border-radius:6px;background:#fff;color:var(--red);font-size:22px;line-height:1;cursor:pointer}.board-feedback-close:hover,.board-feedback-close:focus-visible{border-color:var(--red);outline:2px solid rgba(161,78,69,.16);outline-offset:1px}
.board-feedback-boxes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:10px}.board-feedback-boxes>div{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;padding:8px 9px;border:1px solid #dfbbb5;border-radius:5px;background:#fff}.board-feedback-boxes span{min-width:0;overflow:hidden;color:var(--muted);font-size:10px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.board-feedback-boxes strong{flex:none;color:var(--red);font-size:12px}.board-feedback-card>p{margin:9px 0 0;color:var(--muted);font-size:10px;font-weight:700}
.board-feedback-progress{gap:9px;margin-top:11px}.board-feedback-progress .board-point-row>div:first-child span{display:flex;align-items:baseline;justify-content:flex-end;flex-wrap:wrap}.board-feedback-progress .board-point-delta{margin-left:3px;color:var(--red);font-family:var(--sans);font-size:10px}.board-feedback-progress .board-point-meter b.loss{background:repeating-linear-gradient(90deg,var(--point-loss-red) 0 8px,transparent 8px 11px)}
@keyframes board-feedback-in{from{transform:translate(-50%,-46%) scale(.94)}to{transform:translate(-50%,-50%) scale(1)}}
.board-legend{display:flex;flex-wrap:wrap;gap:11px;margin:8px 1px 0;color:var(--muted);font-size:9px}
.board-legend span{display:flex;align-items:center;gap:4px}
.board-legend i{width:13px;height:3px;border-radius:2px}
.legend-played{background:var(--red)}
.legend-better{background:var(--green)}
.board-controls{display:grid;grid-template-columns:38px 38px 1fr 38px 38px;align-items:center;gap:5px;margin-top:10px}
.board-controls button{height:35px;border:1px solid var(--line);border-radius:6px;background:#f5f2ea}
.board-controls button:hover{background:var(--green-soft)}
.board-controls strong{text-align:center;font-size:11px}
.explore-game{margin-top:9px;border-top:1px solid var(--line)}
.explore-game summary{padding:9px 2px 0;color:var(--muted);cursor:pointer;font-family:var(--sans);font-size:10px;font-weight:800;text-align:center;list-style:none}
.explore-game summary::-webkit-details-marker{display:none}
.explore-game summary:after{content:" +";color:var(--green)}
.explore-game[open] summary:after{content:" −"}
.small-board .chess-piece{width:82%;height:82%}
.report-dna-mini{position:relative;display:none;margin-top:13px;padding:16px}.report-dna-mini>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.report-dna-mini>header>div:first-child strong{display:block;font:700 20px/1.1 var(--serif)}.report-dna-mini>header>div:last-child{display:grid;justify-items:end;color:var(--muted);font-size:11px}.report-dna-mini>header b{color:var(--ink);font-size:12px}
.report-dna-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px 16px}.report-dna-mini-stat>div{display:flex;justify-content:space-between;gap:8px;margin-bottom:5px;font-size:13px;font-weight:800}.report-dna-mini-stat>div span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-dna-mini-stat>i{position:relative;display:block;height:9px;overflow:hidden;background:repeating-linear-gradient(90deg,#d8d4ca 0 8px,transparent 8px 11px)}.report-dna-mini-stat>i b,.report-dna-mini-stat>i span{position:absolute;top:0;display:block;height:100%}.report-dna-mini-stat>i b{left:0;background:repeating-linear-gradient(90deg,var(--green) 0 8px,transparent 8px 11px)}.report-dna-mini-stat>i .dna-meter-increase{background:repeating-linear-gradient(90deg,#e7b82c 0 8px,transparent 8px 11px);animation:point-meter-grow .55s ease-out both}.report-dna-mini-stat>i .dna-meter-decrease{background:repeating-linear-gradient(90deg,var(--point-loss-red) 0 8px,transparent 8px 11px);animation:point-meter-grow .55s ease-out both}.report-dna-mini-stat.increased{color:var(--green-dark)}.report-dna-mini-stat.decreased{color:var(--red)}
.is-quick-puzzle .report-dna-mini{margin-top:0;padding:13px 14px}.is-quick-puzzle .report-dna-mini>header{margin-bottom:10px}.is-quick-puzzle .report-dna-mini>header>div:first-child strong{font-size:18px}.is-quick-puzzle .report-dna-mini-grid{gap:9px 12px}.is-quick-puzzle .report-dna-mini-stat>div{margin-bottom:3px;font-size:11px}.is-quick-puzzle .report-dna-mini-stat>i{height:7px}.is-quick-puzzle .report-dna-share{margin-top:10px;padding-top:9px;font-size:11px}
.report-dna-share{width:100%;margin-top:14px;padding:11px 0 0;border:0;border-top:1px solid var(--line);background:transparent;color:var(--green-dark);font-size:12px;font-weight:800;text-align:left}.report-dna-close{display:none}
.completion-confetti{position:fixed;z-index:332;overflow:hidden;pointer-events:none}.completion-confetti span{position:absolute;top:-14px;left:var(--confetti-x);width:7px;height:12px;border-radius:2px;background:var(--confetti-color);opacity:0;animation:confetti-fall var(--confetti-duration) cubic-bezier(.18,.73,.31,1) var(--confetti-delay) forwards}.completion-confetti span:nth-child(3n){width:10px;height:6px;border-radius:50%}.completion-confetti span:nth-child(4n){width:5px;height:14px}
@keyframes confetti-fall{0%{opacity:1;transform:translate3d(0,-10px,0) rotate(0)}85%{opacity:1}100%{opacity:0;transform:translate3d(var(--confetti-drift),var(--confetti-fall),0) rotate(var(--confetti-rotation))}}
@keyframes dna-modal-in{from{opacity:0;transform:translateY(-46%) scale(.94)}to{opacity:1;transform:translateY(-50%) scale(1)}}
@keyframes guided-compact-modal-in{from{opacity:0;transform:translate(-50%,-46%) scale(.94)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.progress-track,.skill-meter{height:9px;overflow:hidden;background:repeating-linear-gradient(90deg,#d8d4ca 0 8px,transparent 8px 11px)}
.progress-track span,.skill-meter i{display:block;height:100%;border-radius:0;background:repeating-linear-gradient(90deg,var(--green) 0 8px,transparent 8px 11px)}
.lesson-jump{display:flex;gap:6px;margin-bottom:9px;padding:6px;border:1px solid var(--line);border-radius:9px;background:rgba(247,244,236,.95)}
.lesson-jump button{display:grid;grid-template-columns:27px 1fr;grid-template-rows:auto auto;column-gap:7px;align-items:center;flex:1;min-width:0;padding:7px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:10px;font-weight:800;text-align:left}
.lesson-jump button i{grid-row:1/3;display:grid;place-items:center;width:27px;height:27px;border:1px solid var(--line);border-radius:50%;font-style:normal}
.lesson-jump button span{line-height:1.05}.lesson-jump button small{font-size:8px;font-weight:600}
.lesson-jump button.active{border:1px solid #0d0e0c;background:linear-gradient(180deg,#3a3b35 0%,#252621 48%,#171815 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 -2px 0 rgba(0,0,0,.42),0 3px 0 #0b0c0a,0 6px 10px rgba(34,35,31,.2);color:white;text-shadow:0 1px 0 rgba(0,0,0,.55)}.lesson-jump button.done:not(.active){background:var(--green-soft);color:var(--green-dark)}
.lesson-jump button.next-ready{background:var(--green);color:white;animation:puzzle-next-pulse 1.15s ease-in-out infinite;will-change:box-shadow}
.lesson-jump button:disabled{cursor:not-allowed;opacity:.45}.is-guided-multi-step .lesson-jump button:disabled,.is-guided-multi-step .lesson-jump button.active{pointer-events:none}
.is-guided-multi-step .report-shell{padding-bottom:82px}.is-guided-multi-step .lesson-jump.guide-sticky-steps{position:fixed;z-index:340;top:auto;left:50%;bottom:max(10px,env(safe-area-inset-bottom));width:min(640px,calc(100% - 20px));margin:0;padding:8px;border-color:#aeb7aa;background:rgba(247,244,236,.96);box-shadow:0 10px 34px rgba(20,32,21,.28);backdrop-filter:blur(10px);transform:translateX(-50%);pointer-events:none}.is-guided-multi-step .lesson-jump.guide-sticky-steps button:not(:disabled):not(.active){pointer-events:auto}
.moment-card{position:relative;margin-bottom:13px;padding:22px;border:1px solid var(--line);border-radius:10px;background:var(--sheet);scroll-margin-top:70px}
.moment-card:nth-child(1){background:linear-gradient(145deg,var(--blue),var(--sheet) 55%)}
.moment-card:nth-child(2){background:linear-gradient(145deg,var(--yellow),var(--sheet) 55%)}
.moment-card:nth-child(3){background:linear-gradient(145deg,var(--green-soft),var(--sheet) 55%)}
.moment-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.moment-number{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.moment-number i{display:grid;place-items:center;width:25px;height:25px;border:1px solid var(--ink);border-radius:50%;color:var(--ink);font:700 13px var(--serif)}
.severity{padding:4px 8px;border:1px solid currentColor;border-radius:999px;color:var(--red);font-size:9px;font-weight:800;text-transform:uppercase}
.severity.inaccuracy{color:#8a6d1d}
.moment-card h2{margin:15px 0 8px;font:700 27px/1.05 var(--serif);letter-spacing:-.03em}
.reason-summary{margin:0 0 14px!important;color:#4e4e48!important;font-size:14px;line-height:1.5}
.move-line{display:flex;align-items:center;gap:8px;margin-bottom:15px}
.move-chip{padding:6px 9px;border:1px solid var(--line);border-radius:6px;background:rgba(255,255,255,.67);font:700 14px/1.1 var(--serif)}
.move-goal{color:var(--muted);font:700 14px/1.1 var(--serif)}
.move-goal.correct{color:var(--green-dark)}
.moment-card>p{color:#4e4e48}
.puzzle-feedback{min-height:24px;margin:5px 0 11px!important;padding:7px 9px;border-radius:6px;color:var(--muted)!important;font:700 15px/1.25 var(--serif)}
.puzzle-feedback:empty{display:none}
.puzzle-feedback.correct{background:var(--green-soft);color:var(--green-dark)!important}.puzzle-feedback.incorrect{border-left:4px solid var(--red);background:var(--red-soft);color:#843b34!important}.puzzle-feedback.answer{background:var(--yellow);color:#746018!important}.puzzle-feedback.hint{background:#f4edcf;color:#675d39!important}
.reveal-answer{min-width:140px}
.lesson-reveal{margin-top:18px;padding-top:18px;border-top:1px solid rgba(34,35,31,.16)}
.lesson-reveal h3{margin:0 0 6px;font:700 23px/1.08 var(--serif)}
.lesson-reveal .explanation{margin:0;color:#4e4e48;font-size:13px}
.better-move{display:grid;grid-template-columns:auto 1fr;gap:13px;align-items:start;margin:17px 0;padding:14px;border-top:1px solid rgba(34,35,31,.15);border-bottom:1px solid rgba(34,35,31,.15)}
.better-move strong{display:block;margin-top:2px;font:700 23px var(--serif);color:var(--green-dark)}
.better-move p{margin:3px 0 0;color:var(--muted);font-size:12px}
.better-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--green);color:white;font-size:17px}
.lesson-note{position:relative;margin:16px 0 0;padding:15px 17px;background:#fffdf6;border:1px solid #d9cfae;transform:rotate(-.3deg)}
.lesson-note strong{display:block;margin-bottom:3px;color:var(--green);font-size:9px;text-transform:uppercase;letter-spacing:.12em}
.lesson-note p{margin:0;font:italic 17px/1.35 var(--serif)}
.humor-line{margin:12px 0 0!important;color:var(--muted)!important;font:italic 12px var(--serif)}
.puzzle-actions{display:flex;justify-content:space-between;gap:8px;margin-top:17px}.puzzle-actions .button{min-width:125px}
.workout-panel{margin-top:18px;padding:25px;border:1px solid #9aaa9b;border-radius:11px;background:linear-gradient(145deg,#e6efe3,var(--sheet) 48%);scroll-margin-top:12px}
.workout-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}.workout-heading h2{margin:0;font:700 32px/1 var(--serif)}.workout-heading p:not(.eyebrow){margin:6px 0 0;color:var(--muted)}.workout-heading>span{padding:7px 10px;border:1px solid #aebfac;border-radius:999px;background:white;color:var(--green-dark);font-size:10px;font-weight:800;text-transform:uppercase}
.workout-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.workout-step{position:relative;display:flex;flex-direction:column;min-height:205px;padding:17px;border:1px solid var(--line);border-radius:9px;background:var(--sheet)}.workout-step small{color:var(--green);font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.workout-step>strong{max-width:85%;margin:8px 0 5px;font:700 18px/1.08 var(--serif)}.workout-step>p{margin:0 0 15px;color:var(--muted);font-size:11px}.workout-step .button{width:100%;margin-top:auto;font-size:13px}.workout-number{position:absolute;right:12px;top:9px;color:rgba(34,35,31,.1);font:700 44px var(--serif)}.lesson-step{background:var(--yellow)}.lesson-step blockquote{margin:10px 0 0;font:italic 17px/1.35 var(--serif)}.final-step{background:var(--ink);color:white}.final-step small{color:#bcd2bb}.final-step>p{color:#c6c8c1}

/* Compact share card, matching the puzzle-completion Chess DNA card. */
.share-dialog{box-sizing:border-box;width:min(540px,calc(100% - 12px));max-width:calc(100% - 12px);max-height:calc(100dvh - 12px);padding:0;overflow:auto;border:1px solid #aaa59a;border-radius:12px;background:var(--sheet);box-shadow:0 28px 90px rgba(23,24,20,.28);color:var(--ink)}.share-dialog::backdrop{background:rgba(34,35,31,.65);backdrop-filter:blur(5px)}
.share-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;padding:16px 16px 12px}.share-dialog-head h2{margin:0;font:700 23px/1 var(--serif)}
.share-dialog-close{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid var(--line);border-radius:50%;background:#f7f4ec;font-size:22px;line-height:1}
.share-card-preview{margin:0 16px;padding:16px;border:1px solid #aaa59a;border-radius:9px;background:var(--sheet);box-shadow:0 7px 20px rgba(56,80,60,.09)}
.share-preview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.share-preview-head>div:first-child small{display:block;color:var(--green);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.share-preview-head h3{margin:2px 0 0;font:700 20px/1.1 var(--serif)}.share-preview-level{display:grid;justify-items:end;color:var(--muted);font-size:10px}.share-preview-level b{color:var(--ink);font-size:12px}.share-preview-rows{display:grid;grid-template-columns:minmax(0,1fr);gap:4px}.share-preview-row{min-width:0}.share-preview-row>div{display:flex;min-width:0;justify-content:space-between;gap:8px;margin-bottom:4px;font-size:12px;font-weight:800}.share-preview-row>div:first-child{gap:4px;font-size:11px}.share-preview-row>div span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-preview-row>div strong{flex:none;white-space:nowrap}.share-preview-row>.share-preview-meta{gap:4px;color:var(--muted);font-size:8px;font-weight:700}.share-preview-row>.share-preview-meta span:last-child{text-align:right}.share-preview-row i{display:block;max-width:100%;height:9px;overflow:hidden;background:repeating-linear-gradient(90deg,#d8d4ca 0 8px,transparent 8px 11px)}.share-preview-row b{display:block;max-width:100%;height:100%;background:repeating-linear-gradient(90deg,var(--green) 0 8px,transparent 8px 11px)}.share-evidence{margin:15px 0 0;padding-top:12px;border-top:1px solid var(--line);color:var(--muted);font-size:10px}.share-card-preview blockquote{margin:8px 0 12px;font:italic 15px/1.25 var(--serif)}.share-card-preview footer{color:var(--green);font-size:8px;font-weight:800;text-transform:uppercase}.share-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 16px 7px}.share-actions .button{min-width:0;padding:10px 8px;font-size:12px}.share-privacy{margin:0;padding:0 16px 14px;color:var(--muted);font-size:8px;text-align:center}
.share-account-button{display:block;margin:-7px auto 13px;padding:2px 6px;border:0;background:transparent;color:var(--green-dark);font-size:9px;font-weight:800;text-decoration:underline;text-underline-offset:2px}.share-account-button[hidden]{display:none}
.not-found{max-width:620px;margin:80px auto;padding:45px 30px;text-align:center}
.not-found>span{font-size:42px}
.not-found h1{margin:5px 0;font:700 38px var(--serif)}
.not-found p{color:var(--muted)}
.legal-page{max-width:760px;min-height:calc(100vh - 70px);margin:55px auto;padding:0 22px 70px}
.legal-page>.eyebrow{margin-top:45px}
.legal-page h1{margin:5px 0 8px;font:700 clamp(42px,7vw,65px)/1 var(--serif);letter-spacing:-.045em}
.legal-page .legal-intro{margin:0 0 32px;color:var(--muted);font-size:18px}
.legal-page section{margin-top:12px;padding:23px;border:1px solid var(--line);border-radius:9px;background:var(--sheet)}
.legal-page section h2{margin:0;font:700 23px var(--serif)}
.legal-page section p{margin:7px 0 0;color:var(--muted)}
.site-footer{max-width:1040px;margin:0 auto;padding:24px 18px 35px;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:30px;border-top:1px solid var(--line);color:var(--muted);font-size:10px}
.site-footer .wordmark{color:var(--ink);font-size:12px}
.site-footer .brand-mark{height:20px}
.site-footer p{margin:2px 0}
.site-footer nav{display:flex;gap:15px}
.toast{position:fixed;right:18px;bottom:18px;z-index:100;padding:10px 14px;border-radius:7px;background:var(--ink);color:white;box-shadow:var(--shadow);opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s;font-size:12px}
.toast.show{opacity:1;transform:none}
.account-dialog{width:min(440px,calc(100% - 24px));padding:0;border:1px solid #aaa59a;border-radius:12px;background:var(--sheet);box-shadow:0 28px 90px rgba(23,24,20,.28);color:var(--ink)}
.account-dialog::backdrop{background:rgba(34,35,31,.58);backdrop-filter:blur(4px)}
.account-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 22px 17px;border-bottom:1px solid var(--line)}
.account-dialog-head h2{margin:0;font:700 28px/1.08 var(--serif);letter-spacing:-.035em}
.account-close{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid var(--line);border-radius:50%;background:#f7f4ec;font-size:22px;line-height:1}
.account-tabs{display:grid;grid-template-columns:1fr 1fr;margin:0;border-bottom:1px solid var(--line)}
.account-tabs button{padding:11px;border:0;border-right:1px solid var(--line);background:#f3f1eb;color:var(--muted);font-size:12px;font-weight:800}
.account-tabs button:last-child{border-right:0}.account-tabs button.active{background:var(--sheet);box-shadow:inset 0 -3px var(--green);color:var(--ink)}
.account-form{display:grid;gap:13px;padding:21px 22px 22px}
.account-form>p{margin:0 0 2px;color:var(--muted);font-size:13px}
.account-form label{display:grid;gap:5px}.account-form label>span{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.account-form label small{color:var(--muted);font-size:10px}
.account-form input{width:100%;height:43px;padding:8px 11px;border:1px solid var(--line);border-radius:7px;background:white;outline:none}
.account-form input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(82,111,84,.11)}
.account-form .button{width:100%;margin-top:2px}.account-text-button{justify-self:center;padding:2px;border:0;border-bottom:1px solid var(--green);background:none;color:var(--green-dark);font-size:11px;font-weight:800}
.account-message{min-height:0;margin:0;padding:0 22px 20px;color:var(--green-dark);font-size:12px;font-weight:750}
.account-message:empty{display:none}.account-message.error{color:var(--red)}.account-message.success{color:var(--green-dark)}
.account-signed-in{padding:27px 24px 24px;text-align:center}.account-signed-in .account-check{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 12px;border-radius:50%;background:var(--green-soft);color:var(--green-dark);font-size:25px;font-weight:800}
.account-signed-in h3{margin:0;font:700 27px var(--serif)}.account-signed-in p{margin:7px 0 19px;color:var(--muted);font-size:13px}.account-signed-in strong{color:var(--ink)}
.account-delete-link{display:block;width:max-content;margin:13px auto 0;color:var(--red);font-size:10px;font-weight:800;text-decoration:underline;text-underline-offset:3px}
.progress-account-controls{display:grid;gap:5px;justify-items:stretch}.progress-account-delete{color:var(--red);font-size:8px;font-weight:800;text-align:center;text-decoration:underline;text-underline-offset:2px}.progress-account-delete[hidden]{display:none}
.account-page{display:grid;place-items:start center;min-height:calc(100vh - 62px);padding:70px 18px}.account-page-card{width:min(480px,100%);padding:30px}
.account-page-card h1{margin:5px 0 9px;font:700 39px/1.02 var(--serif);letter-spacing:-.045em}.account-page-copy{margin:0 0 18px;color:var(--muted)}
.account-page-card .account-form{padding:4px 0 0}.account-page-card>.account-message{padding:15px 0 0}
.deletion-page{width:min(820px,calc(100% - 28px));padding-bottom:70px}.deletion-page>section{margin-top:22px}.deletion-summary ul{display:grid;gap:8px;margin:12px 0 15px;padding-left:20px;color:var(--muted);font-size:13px;line-height:1.55}.deletion-summary>p{font-size:12px}.deletion-form-card{padding:22px;border:1px solid #d6b4ae;border-radius:10px;background:#fffaf7}.deletion-form-card>h2{margin-top:0}.deletion-form-card>p{color:var(--muted);font-size:13px}.deletion-form-card form{display:grid;gap:13px;margin-top:17px}.deletion-form-card label{display:grid;gap:5px}.deletion-form-card label>span{font-size:10px;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.deletion-form-card input{width:100%;height:43px;padding:8px 11px;border:1px solid var(--line);border-radius:7px;background:white;color:var(--ink);outline:none}.deletion-form-card input:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(132,48,44,.1)}.deletion-form-card input[readonly]{background:#f1efe9;color:var(--muted)}.deletion-button{border-color:#84302c;background:#84302c;color:white}.deletion-button:hover,.deletion-button:focus-visible{background:#6f2724}.deletion-button:disabled{cursor:wait;opacity:.65}.deletion-form-card>.account-message{padding:14px 0 0}.deletion-help{margin:15px 0 0!important;padding-top:13px;border-top:1px solid var(--line);font-size:11px!important}.deletion-help a{color:var(--green-dark);font-weight:800}
@media(max-width:620px){.deletion-page{width:min(100% - 20px,820px);padding-top:38px}.deletion-form-card{padding:17px 14px}.deletion-button{width:100%;white-space:normal}}
@media(max-width:620px){.progress-account-controls{grid-column:1/-1;width:100%}.progress-account-controls .progress-account-action{width:100%}.progress-account-delete{padding:4px}}
.lesson-loader{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:20px;background:rgba(34,35,31,.72);backdrop-filter:blur(7px)}
.lesson-loader-card{width:min(440px,100%);padding:34px;text-align:center;box-shadow:0 25px 80px rgba(0,0,0,.28)}
.lesson-loader-card h2{margin:7px 0 4px;font:700 30px/1.05 var(--serif)}
.lesson-loader-card>p:not(.eyebrow){margin:0;color:var(--muted);font-size:13px}.lesson-loader-card small{display:block;margin-top:11px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.06em}
.lesson-loader-card .progress-track{margin-top:18px}
.loader-board{position:relative;display:grid;place-items:center;width:82px;height:82px;margin:0 auto 17px;border:5px solid var(--ink);border-radius:8px;background:repeating-conic-gradient(#83977a 0 25%,#eee3ca 0 50%) 0/34px 34px;overflow:hidden}
.loader-board span{position:relative;z-index:2;color:var(--ink);font:54px Georgia,serif;animation:knight-think 1.3s ease-in-out infinite}.loader-board i{position:absolute;inset:0;background:linear-gradient(100deg,transparent 25%,rgba(255,255,255,.48),transparent 75%);transform:translateX(-110%);animation:loader-sweep 1.5s infinite}
@keyframes loader-sweep{to{transform:translateX(110%)}}
.lesson-is-loading{overflow:hidden}

/* Portable Indie Page maker credit. */
.view-home{padding-bottom:70px}
.maker-credit{position:fixed;z-index:90;right:16px;bottom:max(14px,env(safe-area-inset-bottom));display:grid;grid-template-columns:40px minmax(0,1fr) 22px;align-items:center;gap:9px;width:218px;padding:7px 8px;border:1px solid rgba(23,23,23,.3);border-radius:999px;background:hsl(56 100% 45%);box-shadow:0 8px 26px rgba(38,42,78,.16);color:var(--ink);text-decoration:none;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.maker-credit:hover{transform:translateY(-2px);border-color:rgba(23,23,23,.6);box-shadow:0 12px 30px rgba(38,42,78,.2)}
.maker-credit:focus-visible{outline:3px solid rgba(23,23,23,.3);outline-offset:3px}
.maker-credit img{display:block;width:40px;height:40px;border:2px solid #fff;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1px rgba(23,23,23,.24)}
.maker-credit-copy{display:grid;min-width:0;line-height:1.15}
.maker-credit-copy small{margin-bottom:2px;color:#494400;font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.maker-credit-copy strong{overflow:hidden;font-size:12px;letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap}
.maker-credit-short-name{display:none}
.maker-credit-arrow{display:grid;width:22px;height:22px;place-items:center;border-radius:50%;background:var(--ink);color:hsl(56 100% 45%);font-size:13px;font-weight:800;transition:transform .18s ease}
.maker-credit:hover .maker-credit-arrow{transform:rotate(8deg)}
@media(max-width:680px){.maker-credit{right:8px;bottom:max(8px,env(safe-area-inset-bottom));grid-template-columns:34px minmax(0,1fr);gap:7px;width:118px;padding:6px 7px}.maker-credit img{width:34px;height:34px}.maker-credit-arrow{display:none}.maker-credit-copy strong{font-size:11px}.maker-credit-full-name{display:none}.maker-credit-short-name{display:inline}}
@media print{.maker-credit{display:none!important}}

@media(max-width:900px){
    .progress-page-hero{grid-template-columns:1fr}.progress-kpis{grid-template-columns:repeat(3,1fr)}.progress-dashboard-grid{grid-template-columns:minmax(0,1fr) minmax(240px,.65fr)}
    .guided-compact-tree{grid-template-columns:1fr 1fr}.guided-lesson-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
    .game-library{grid-template-columns:repeat(3,1fr)}.puzzle-tools{grid-template-columns:minmax(180px,1fr) 150px 135px}.puzzle-tools .surprise-button{grid-column:2}.puzzle-tools>strong{grid-column:3}
    .analysis-options{grid-template-columns:150px 1fr auto}.analysis-options p{align-self:center}.analyze-button{width:100%}
    .analysis-layout{grid-template-columns:minmax(310px,42%) 1fr;gap:14px}.is-quick-puzzle .analysis-layout{grid-template-columns:minmax(310px,42%) minmax(320px,420px)}.board-column{top:8px}
    .how-section{margin-left:20px;margin-right:20px;padding:15px 0}
}

@media(max-width:720px){
    .progress-page{padding:32px 12px 64px}.progress-page-hero{gap:20px}.progress-page-hero h1{font-size:48px}.progress-identity{grid-template-columns:46px minmax(0,1fr) auto}.progress-avatar{width:46px;height:46px}.progress-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.progress-kpis article{padding:13px}.progress-dashboard-grid{grid-template-columns:1fr}.progress-chart{height:165px;gap:3px}.progress-rhythm-card,.progress-domains-card,.progress-recent-card{grid-column:1}.progress-domain-list{gap:12px 18px}.progress-share-sticky{left:50%;right:auto;bottom:max(10px,env(safe-area-inset-bottom));width:min(230px,calc(100% - 20px));transform:translateX(-50%)}
    .board-feedback-close{width:48px;height:48px;font-size:24px}
    .puzzle-sticky-actions,.guide-sticky-actions{position:fixed;z-index:340;right:max(10px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));left:max(10px,env(safe-area-inset-left));width:auto;max-width:440px;margin:0 auto;transform:none;touch-action:manipulation}.puzzle-sticky-actions .button,.guide-sticky-actions .button{min-height:50px;font-size:14px;font-weight:850;letter-spacing:.015em;touch-action:manipulation}.puzzle-sticky-actions .button:hover:not(:disabled),.guide-sticky-actions .button:hover:not(:disabled){filter:none}.puzzle-sticky-actions .button:active:not(:disabled),.guide-sticky-actions .button:active:not(:disabled){transform:none}
    .guided-tree-intro{align-items:center;flex-direction:column;gap:2px;text-align:center}.guided-tree-intro span{white-space:normal}.guided-compact-tree{margin-right:auto;margin-left:auto}.guided-lesson-grid{grid-template-columns:1fr 1fr}.guided-lesson-heading{align-items:flex-start}.guided-lesson-heading h3{font-size:20px}.game-library-carousel.quick-carousel-active .game-library-arrow{position:absolute;z-index:4;top:50%;display:grid;transform:translateY(-50%)}.game-library-arrow.previous{left:2px}.game-library-arrow.next{right:2px}.guided-lesson-panel.mobile-modal-open{position:fixed;z-index:321;top:50%;left:12px;right:12px;display:flex;height:min(480px,calc(100dvh - 24px));min-height:0;margin:0;padding:12px;flex-direction:column;overflow:hidden;border-color:rgba(82,111,84,.75);background:rgba(255,254,250,.94);box-shadow:0 22px 70px rgba(19,27,20,.42);backdrop-filter:blur(14px);transform:translateY(-50%);animation:dna-modal-in .24s ease-out}.guided-lesson-panel.mobile-modal-open.compact-lessons{left:50%;right:auto;width:min(366px,calc(100vw - 24px));height:auto;transform:translate(-50%,-50%);animation-name:guided-compact-modal-in}.guided-lesson-panel.mobile-modal-open.lesson-count-1{width:min(232px,calc(100vw - 24px))}.guided-lesson-panel.mobile-modal-open .guided-lesson-heading{flex:none;gap:8px;margin-bottom:9px}.guided-lesson-panel.mobile-modal-open .guided-lesson-heading small{font-size:8px}.guided-lesson-panel.mobile-modal-open .guided-lesson-heading h3{font-size:18px}.guided-lesson-panel.mobile-modal-open .guided-lesson-heading p{font-size:9px;line-height:1.3}.guided-lesson-panel.mobile-modal-open .guided-lessons-close{padding:6px 8px}.guided-lesson-panel.mobile-modal-open .guided-lesson-grid{display:grid;min-height:0;flex:1;grid-template-columns:none;grid-template-rows:repeat(2,minmax(0,1fr));grid-auto-flow:column;grid-auto-columns:calc((100% - 7px)/2);gap:7px;padding:1px 1px 5px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scroll-snap-type:inline mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}.guided-lesson-panel.mobile-modal-open.compact-lessons .guided-lesson-grid{flex:none;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;grid-auto-flow:row;grid-auto-columns:auto;overflow:visible;overscroll-behavior:auto;scroll-snap-type:none}.guided-lesson-panel.mobile-modal-open.lesson-count-1 .guided-lesson-grid{grid-template-columns:1fr}.guided-lesson-panel.mobile-modal-open .guided-lesson-grid::-webkit-scrollbar{display:none}.guided-lesson-panel.mobile-modal-open .guided-game{min-height:0;padding:8px 8px 32px;scroll-snap-align:start;scroll-snap-stop:always}.guided-lesson-panel.mobile-modal-open.compact-lessons .guided-game{min-height:160px;scroll-snap-align:none;scroll-snap-stop:normal}.guided-lesson-panel.mobile-modal-open .guided-game small{overflow:hidden;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.guided-lesson-panel.mobile-modal-open .guided-game strong{margin:4px 0 0;font-size:12px}.guided-lesson-panel.mobile-modal-open .guided-game p{display:none}.guided-lesson-panel.mobile-modal-open .guided-game .game-reward{left:7px;right:auto;bottom:7px;max-width:calc(100% - 67px);font-size:7px}.guided-lesson-panel.mobile-modal-open .guided-game .game-status{right:6px;bottom:5px;font-size:9px}.guided-lesson-panel.mobile-modal-open .guided-lessons-arrow{position:absolute;z-index:3;top:56%;display:grid;width:30px;height:42px;font-size:17px;transform:translateY(-50%)}.guided-lessons-arrow.previous{left:15px}.guided-lessons-arrow.next{right:15px}.guided-lessons-backdrop{position:fixed;z-index:320;inset:0;border:0;background:rgba(24,29,24,.52);backdrop-filter:blur(3px)}body.guided-lessons-modal-open{overflow:hidden}
    .site-header{height:58px;padding:0 14px}.site-header-actions{gap:7px}.puzzle-sound-toggle{width:36px;height:36px}.nav-toggle{display:block}.site-header nav{display:none;position:absolute;z-index:50;top:57px;left:12px;right:12px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--sheet);box-shadow:var(--shadow)}.site-header nav.open{display:grid;gap:2px}.site-header nav a,.site-header nav button{padding:9px;text-align:left}.site-header nav .sign-in-link{border:0}.home-hub-tabs-wrap{margin-top:10px;padding:0 10px}.home-hub-tabs a{align-items:flex-start;flex-direction:column;justify-content:center;gap:0;min-height:54px;padding:8px 10px}.home-hub-tabs span{font-size:12px}.home-hub-tabs small{max-width:100%;font-size:8px}.has-report .home-hub-tabs-wrap{display:none}.is-quick-puzzle #board-task.generic-best-move{display:none!important}
    .capability-strip{justify-content:flex-start;overflow-x:auto}.directory-hero{margin:29px auto 20px;padding:0 14px}.directory-hero h1{font-size:42px}.directory-hero>p:last-child{font-size:15px}
    .hero{margin-top:27px}.hero h1{font-size:43px}.hero>p:last-child{font-size:16px}.view-home .hero{margin-top:30px}.view-home .hero h1{font-size:58px}.view-home .capability-strip{gap:2px}.view-home .capability-strip span{padding:3px 4px}.view-home .capability-strip span+span:before{margin-right:6px}
    .analyzer-wrap{padding:0 12px}.analyzer-card{padding:0 14px 14px}.input-tabs{margin:0 -14px 16px}.input-tabs button{padding:11px 10px}.input-tabs small{display:none}
    .analyzer-heading{display:block}.coach-note{display:inline-block;margin:13px 0 2px}.field textarea{min-height:180px}
    .game-library{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:clamp(238px,78vw,300px);gap:10px;margin-right:-14px;padding:2px 14px 10px 1px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-padding-inline:1px 14px;scroll-snap-type:inline mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}.game-library.quick-library{grid-template-rows:repeat(4,minmax(0,1fr));grid-auto-columns:calc((100% - 10px)/2)}.game-library.quick-library.short-puzzle-list{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;grid-auto-flow:row;grid-auto-columns:auto;margin-right:0;padding-right:0;overflow:visible;scroll-snap-type:none}.game-library.quick-library.short-puzzle-list[data-item-count="1"]{grid-template-columns:minmax(0,1fr)}.game-library.guided-library{display:block;margin-right:0;padding:2px 0 10px;overflow:visible}.game-library::-webkit-scrollbar{display:none}.game-library .guided-game{min-height:168px;padding:15px 14px 52px;scroll-snap-align:start;scroll-snap-stop:always}.game-library.quick-library .quick-puzzle{min-height:154px;padding:12px 10px 48px}.game-library.quick-library .quick-puzzle small{overflow:hidden;font-size:8px;text-overflow:ellipsis}.game-library.quick-library .quick-puzzle strong{margin-top:5px;font-size:14px}.game-library.quick-library .quick-puzzle p{font-size:10px}.game-library .guided-game .game-reward{left:14px;right:auto;bottom:14px;max-width:calc(100% - 105px)}.game-library.quick-library .quick-puzzle .game-reward{left:10px;bottom:12px;max-width:calc(100% - 82px);font-size:8px}.game-library .guided-game .game-status{right:12px;bottom:10px;padding:5px 8px;border:1px solid rgba(56,80,60,.28);border-radius:999px;background:rgba(255,254,250,.72)}.game-library.quick-library .quick-puzzle .game-status{right:8px;bottom:8px;padding:4px 6px;font-size:10px}.guided-game{min-height:132px}.analysis-options{grid-template-columns:1fr}.analysis-options p{grid-column:auto;grid-row:auto}.analyze-button{grid-column:auto}.puzzle-mode-tabs{margin-left:-14px;margin-right:-14px}.puzzle-mode-tabs button{align-items:flex-start;flex-direction:column;gap:1px}.puzzle-branches{grid-template-columns:repeat(3,1fr)}.puzzle-mate-depths{align-items:stretch;flex-wrap:wrap;padding:9px}.puzzle-mate-depth-copy{width:100%}.puzzle-mate-depths button{flex:1;padding-right:7px;padding-left:7px}.puzzle-tools-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin:3px 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#f7f4ec;text-align:left}.puzzle-tools-toggle>span{display:grid;gap:1px}.puzzle-tools-toggle strong{font-size:11px}.puzzle-tools-toggle small{color:var(--muted);font-size:9px}.puzzle-tools-toggle b{flex:none;padding:4px 8px;border:1px solid var(--line);border-radius:999px;background:var(--sheet);color:var(--green-dark);font-size:9px}.puzzle-tools-toggle[aria-expanded="false"]+.puzzle-tools{display:none}.puzzle-tools{grid-template-columns:1fr 1fr;margin-top:0}.puzzle-tools label:first-child{grid-column:1/-1}.puzzle-tools .surprise-button{grid-column:1}.puzzle-tools>strong{grid-column:2;padding:0;text-align:right}.tree-heading-actions{align-items:flex-end;flex-direction:column}
    .analysis-progress{grid-template-columns:65px 1fr;padding:18px}.thinking-knight{width:60px;height:60px}.thinking-knight span{font-size:36px}
    .lesson-preview-grid{grid-template-columns:1fr}.stationery-card{min-height:130px}
    .how-section{grid-template-columns:1fr;gap:16px}.how-section ol{grid-template-columns:1fr 1fr}
    .coming-grid{grid-template-columns:1fr}
    .dna-overview{grid-template-columns:1fr}.dna-focus{padding:0 0 18px;border-right:0;border-bottom:1px solid var(--line)}.dna-heading{align-items:flex-start}.dna-heading .button{flex:none}.workout-steps{grid-template-columns:1fr 1fr}.workout-step{min-height:190px}
    .skill-tree{padding:20px 14px}.tree-trunk{width:55%}.tree-branches{gap:20px}.skill-node-grid{grid-template-columns:1fr}.skill-node-grid:before{left:50%;right:auto;border-right:0}.skill-node:nth-child(n+2):before{content:"";position:absolute;left:50%;top:-11px;width:1px;height:10px;background:#b9bbb2}
    .report-shell{padding:7px 6px 0}.report-hero,.report-topbar{margin-left:6px;margin-right:6px}.report-topbar{min-height:34px}.back-link,.report-copy-link{font-size:11px}.report-hero{margin-top:8px;margin-bottom:2px}.report-hero>.eyebrow{display:none}.report-hero h1{margin:0;font-size:31px}.report-hero #report-matchup{gap:5px;margin-top:6px;font-size:15px}.report-hero .matchup-result{padding:3px 6px;font-size:8px}.report-hero .report-skill-update{display:none!important}
    .is-quick-puzzle .site-header{height:50px}
    .is-quick-puzzle .report-shell{padding-top:4px}
    .is-quick-puzzle .report-topbar{min-height:30px}
    .is-quick-puzzle .share-button{min-height:29px;padding:4px 8px;font-size:11px}
    .is-quick-puzzle .report-hero{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 8px;margin:3px 6px 6px;padding:5px 0 7px}
    .is-quick-puzzle .report-hero>.eyebrow{display:inline-flex;grid-column:1;margin:0;font-size:7px}
    .is-quick-puzzle .report-hero h1{grid-column:2;margin:0;font-size:22px;white-space:nowrap}
    .is-quick-puzzle .report-hero #report-matchup{grid-column:1/-1;min-width:0;gap:4px;margin:0;font-size:12px}
    .analysis-layout{display:block}.board-column{position:static}.board-paper{padding:6px}.is-quick-puzzle .board-paper{width:min(100%,calc(100dvh - 281px))}.puzzle-desktop-controls{display:none!important}
    .report-dna-mini{display:none}.report-dna-mini.mobile-modal-open{position:fixed;z-index:331;top:50%;left:16px;right:16px;display:block;width:auto;max-height:calc(100dvh - 32px);margin:0;padding:16px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;background:var(--sheet);box-shadow:0 22px 70px rgba(19,27,20,.42);transform:translateY(-50%);animation:dna-modal-in .28s ease-out}.report-dna-mini.mobile-modal-open>header{gap:8px;margin-bottom:10px;padding-right:34px}.report-dna-mini.mobile-modal-open>header>div:first-child strong{font-size:19px}.report-dna-mini.mobile-modal-open>.board-point-gain{margin:0 0 11px;padding:10px;box-shadow:none}.report-dna-mini.mobile-modal-open>.board-point-gain>header{margin-bottom:7px}.report-dna-mini.mobile-modal-open .board-point-rows{gap:6px}.report-dna-mini.mobile-modal-open>.board-tactic-actions{position:static;width:100%;margin:12px 0 0;transform:none}.report-dna-mini.mobile-modal-open .report-dna-mini-grid{display:none}.report-dna-mini.mobile-modal-open .report-dna-share{margin-top:11px;padding-top:9px}.report-dna-close{position:absolute;z-index:2;top:10px;right:10px;display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--sheet);color:var(--ink);font-size:23px;line-height:1}.mobile-dna-backdrop{position:fixed;z-index:330;inset:0;border:0;background:rgba(24,29,24,.64);backdrop-filter:blur(2px)}body.mobile-dna-modal-open{overflow:hidden}
    .lesson-jump{top:5px}
    .moment-card{padding:18px}.moment-card h2{font-size:25px}
    .site-footer{grid-template-columns:1fr}.site-footer nav{flex-wrap:wrap}
}

@media(prefers-reduced-motion:reduce){.lesson-jump button.next-ready{animation-name:next-action-pulse-reduced}}

@media(max-width:420px){
    .progress-page-hero h1{font-size:42px}.progress-identity{grid-template-columns:42px minmax(0,1fr)}.progress-avatar{width:42px;height:42px}.progress-account-action{grid-column:1/-1;width:100%}.progress-kpis strong{font-size:26px}.progress-dashboard-grid>section,.progress-dashboard-grid>aside{padding:16px}.progress-chart{gap:2px;padding-right:1px;padding-left:1px}.progress-domain-list,.progress-recent-list{grid-template-columns:1fr}.progress-domains-card>header,.progress-recent-card>header{display:block}.progress-domains-card>header>span,.progress-recent-card>header>span{display:block;margin-top:5px;text-align:left}
    .puzzle-pagination{align-items:stretch;flex-direction:column;gap:8px;padding:10px}.puzzle-page-summary{text-align:center}.puzzle-page-controls{justify-content:center}.puzzle-page-controls button{min-width:32px;height:32px}
    .guided-compact-tree{width:min(320px,100%);grid-template-columns:1fr}.guided-tree-branch{padding:5px}.guided-skill-list{grid-template-columns:repeat(2,minmax(0,1fr))}.guided-lesson-panel{padding:10px}.guided-lesson-grid{gap:6px}.guided-lesson-grid .guided-game{min-height:145px}.guided-lessons-close{padding:5px 7px}
    .wordmark{font-size:15px}.brand-mark{height:24px}.report-dna-mini.mobile-modal-open{left:8px;right:8px;max-height:calc(100dvh - 16px);padding:14px}.report-dna-mini.mobile-modal-open .report-dna-mini-grid{gap:8px 10px}
    .hero{padding:0 14px}.hero h1{font-size:38px}.hero>p:last-child{font-size:15px}.view-home .hero h1{font-size:50px}.view-home .primary-analyzer .analyzer-heading h2{font-size:23px}.view-home .pgn-field textarea{min-height:170px}
    .input-tabs button span{font-size:11px}.game-library{grid-auto-columns:clamp(238px,78vw,300px)}.game-library.quick-library{grid-auto-columns:calc((100% - 10px)/2)}.game-library .guided-game{min-height:168px;padding:14px 13px 52px}.game-library.quick-library .quick-puzzle{min-height:154px;padding:12px 10px 48px}.guided-game{min-height:145px;padding:11px}.guided-game strong{font-size:15px}.game-library .guided-game strong{font:700 16px/1.12 var(--serif)}.game-library.quick-library .quick-puzzle strong{font:700 14px/1.12 var(--serif)}.analysis-options{grid-template-columns:1fr}.analysis-options p,.analyze-button{grid-column:auto;grid-row:auto}.compact-field{width:100%}.puzzle-mode-tabs small{display:none}.puzzle-branches{grid-template-columns:1fr 1fr}.puzzle-branches button{min-height:52px}.puzzle-tools{grid-template-columns:1fr}.puzzle-tools label:first-child,.puzzle-tools .surprise-button,.puzzle-tools>strong{grid-column:auto}.puzzle-tools>strong{text-align:left}.lesson-loader-card{padding:28px 20px}
    .example-row{align-items:flex-start;flex-direction:column;gap:2px}.fen-actions{align-items:stretch;flex-direction:column}
    .analysis-progress{grid-template-columns:1fr;text-align:center}.thinking-knight{margin:auto}
    .dna-heading{display:block}.dna-heading .button{width:100%;margin-top:12px}.dna-overview{padding:18px}.dna-history{display:grid;grid-template-columns:1fr}.workout-panel{padding:18px 12px}.workout-heading{display:block}.workout-heading>span{display:inline-block;margin-top:10px}.workout-steps{grid-template-columns:1fr}.workout-step{min-height:175px}.share-card-preview{margin:0 12px;padding:14px}.share-actions{padding-left:12px;padding-right:12px}
    .home-section{padding:0 12px}.how-section{margin-left:12px;margin-right:12px}.how-section ol{gap:12px 5px}
    .skill-tree-heading{align-items:flex-start}.skill-tree-heading .local-progress-note{display:none}.skill-tree{padding:18px 10px}.tree-user-card{width:100%}.tree-user-identity{grid-template-columns:42px 1fr;padding:11px}.tree-user-avatar{width:42px;height:42px;font-size:26px}.tree-user-identity strong{font-size:18px}.tree-user-progress{padding-left:11px;padding-right:11px}.tree-trunk{width:52%;height:25px}.tree-trunk:before,.tree-trunk:after{bottom:-26px;height:26px}.tree-trunk:after{box-shadow:calc(-50% + 1px) -25px 0 #aeb7aa}.tree-branches{gap:8px}.tree-branch{padding-top:16px}.tree-branch header{padding:9px 8px}.tree-branch header>span{display:none}.tree-branch header>strong{font-size:15px}.skill-node{min-height:94px;padding:9px}.skill-node strong{font-size:15px}
    .report-topbar{align-items:center;gap:8px}.report-hero h1{font-size:28px}.report-hero #report-matchup{font-size:14px}.board-controls{grid-template-columns:36px 36px 1fr 36px 36px}.board-feedback-overlay{max-width:calc(100% - 24px);padding:11px 14px;font-size:18px}
    .lesson-jump button{display:flex;justify-content:center;padding:7px 4px;font-size:9px}.lesson-jump button i{flex:none}.lesson-jump button span,.lesson-jump button small{display:none}.moment-top{align-items:flex-start}.better-move{grid-template-columns:30px 1fr;padding:12px 0}.puzzle-actions{display:grid;grid-template-columns:1fr 1fr}.puzzle-actions .button{min-width:0;padding-left:8px;padding-right:8px}.puzzle-board-prompt{align-items:center;flex-direction:column;gap:5px;text-align:center}
    .site-footer{padding-left:12px;padding-right:12px}
}

@media(max-width:480px){.share-preview-row>div{display:flex;align-items:baseline;gap:8px}.share-preview-row>div span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-preview-row>div strong{font-size:10px}.share-preview-rows{gap:4px}}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.thinking-knight span,.chessboard.invalid-move,.board-feedback-overlay,.board-side-cue,.board-point-meter b::after,.previous-move-piece,.report-dna-mini.mobile-modal-open,.guided-lesson-panel.mobile-modal-open,.trophy-unlock{animation:none}.completion-confetti{display:none}.progress-track span,.toast{transition:none}}

.game-library.quick-library .quick-puzzle.completion-time .game-reward{right:10px;max-width:none;overflow:visible;line-height:1.25;text-overflow:clip;white-space:normal}

.puzzle-workout-setup{display:grid;grid-template-columns:minmax(0,.9fr) minmax(430px,1.1fr);gap:34px;align-items:center;max-width:950px;margin:0 auto 58px;padding:28px}.puzzle-workout-setup-copy h2{margin:5px 0 10px;font:700 clamp(28px,4vw,42px)/1 var(--serif);letter-spacing:-.045em}.puzzle-workout-setup-copy>p:last-child{margin:0;color:var(--muted);font-size:14px}.puzzle-workout-launch{padding:18px;border:1px solid var(--line);border-radius:10px;background:#f5f2ea}.puzzle-workout-launch-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:9px;color:var(--muted);font-size:11px}.puzzle-workout-launch-head strong{color:var(--ink)}.puzzle-workout-durations{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}.puzzle-workout-durations button{display:grid;place-items:center;min-width:0;min-height:55px;padding:6px 2px;border:1px solid var(--line);border-radius:7px;background:var(--sheet);color:var(--ink);font:800 17px var(--serif)}.puzzle-workout-durations button small{color:var(--muted);font:750 8px var(--sans);text-transform:uppercase}.puzzle-workout-durations button:hover,.puzzle-workout-durations button:focus-visible{border-color:var(--green);outline:0}.puzzle-workout-durations button.active{border-color:var(--green);background:var(--green-soft);box-shadow:inset 0 0 0 1px var(--green)}.puzzle-workout-start{width:100%;margin-top:10px}.puzzle-workout-resume{display:block;margin:10px auto 0;border:0;background:transparent;color:var(--green-dark);font-size:11px;font-weight:800;text-decoration:underline;text-underline-offset:2px}

.puzzle-workout-bar{display:grid;grid-template-columns:minmax(110px,1fr) minmax(260px,420px) auto;align-items:center;gap:16px;margin:0 0 9px;padding:8px 12px;border:1px solid var(--line);border-radius:9px;background:var(--sheet);box-shadow:var(--shadow)}.puzzle-workout-bar>div:first-child span,.puzzle-workout-bar>div:first-child strong{display:block}.puzzle-workout-bar>div:first-child span{color:var(--green-dark);font-size:8px;font-weight:850;letter-spacing:.04em;text-transform:uppercase}.puzzle-workout-bar>div:first-child strong{font-size:13px}.puzzle-workout-progress>span{display:block;margin-bottom:3px;color:var(--muted);font-size:10px;text-align:center}.puzzle-workout-progress .progress-track{margin:0}.puzzle-workout-progress .progress-track>span{width:0;transition:width .25s}.puzzle-workout-actions{display:flex;gap:6px}.puzzle-workout-actions button{min-height:34px;padding:5px 8px;border:0;background:transparent;color:var(--green-dark);font-size:10px;font-weight:850;text-decoration:underline;text-underline-offset:2px}.puzzle-workout-actions button:hover,.puzzle-workout-actions button:focus-visible{color:var(--ink);outline:1px solid var(--line);border-radius:5px}.puzzle-workout-paused{position:fixed;z-index:345;top:50%;left:50%;display:grid;justify-items:center;width:min(360px,calc(100% - 24px));padding:24px;border:1px solid var(--line);border-radius:12px;background:var(--sheet);box-shadow:0 25px 80px rgba(20,25,20,.35);text-align:center;transform:translate(-50%,-50%)}.puzzle-workout-paused:before{position:fixed;z-index:-1;inset:0;background:rgba(34,35,31,.58);content:"";transform:scale(4)}.puzzle-workout-paused strong{font:750 28px var(--serif)}.puzzle-workout-paused span{margin:5px 0 15px;color:var(--muted);font-size:12px}.is-puzzle-workout-paused .analysis-layout{pointer-events:none}.is-puzzle-workout-active.is-quick-puzzle .report-shell{padding-top:7px}.is-puzzle-workout-active.is-quick-puzzle .report-topbar{margin-top:0}

.puzzle-workout-summary{position:relative;box-sizing:border-box;width:min(720px,calc(100% - 24px));max-height:calc(100dvh - 24px);margin:auto;padding:30px;overflow:auto;border:1px solid #aaa59a;border-radius:12px;background:var(--sheet);box-shadow:0 28px 90px rgba(23,24,20,.28);color:var(--ink);text-align:center}.puzzle-workout-summary::backdrop{background:rgba(34,35,31,.65);backdrop-filter:blur(5px)}.puzzle-workout-summary-close{position:absolute;top:13px;right:13px}.puzzle-workout-summary h2{margin:5px 0 18px;font:800 42px/1 var(--serif)}.puzzle-workout-summary-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:18px 0}.puzzle-workout-summary-stats div{padding:14px 7px;border:1px solid var(--line);border-radius:8px;background:#faf8f2}.puzzle-workout-summary-stats strong,.puzzle-workout-summary-stats span{display:block}.puzzle-workout-summary-stats strong{color:var(--green-dark);font:800 28px var(--serif)}.puzzle-workout-summary-stats span{color:var(--muted);font-size:8px;text-transform:uppercase}.puzzle-workout-summary>p:not(.eyebrow){color:var(--muted)}.puzzle-workout-summary>div:last-child{display:flex;justify-content:center;gap:8px}.puzzle-workout-summary a{text-decoration:none}

@media(min-width:721px){body.is-puzzle-workout-active.is-quick-puzzle{--quick-board-paper-size:min(calc(100dvh - 258px),calc(100vw - 516px),886px)}}

@media(max-width:720px){.puzzle-workout-setup{grid-template-columns:1fr;gap:17px;margin:0 10px 38px;padding:18px}.puzzle-workout-setup-copy{text-align:center}.puzzle-workout-durations{grid-template-columns:repeat(3,minmax(0,1fr))}.puzzle-workout-durations button{min-height:48px}.puzzle-workout-bar{grid-template-columns:1fr auto;gap:2px 8px;margin:0 4px 5px;padding:5px 7px}.puzzle-workout-progress{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px}.puzzle-workout-progress>span{margin:0;white-space:nowrap}.puzzle-workout-actions{grid-column:2;grid-row:1}.is-puzzle-workout-active.is-quick-puzzle .board-paper{width:min(100%,calc(100dvh - 350px))}.puzzle-workout-summary{padding:24px 13px 18px}.puzzle-workout-summary h2{font-size:34px}.puzzle-workout-summary-stats{grid-template-columns:1fr 1fr}.puzzle-workout-summary>div:last-child{display:grid;grid-template-columns:1fr 1fr}.puzzle-workout-summary>div:last-child .button{min-width:0;padding:10px 7px}}

@media(max-width:360px){.puzzle-workout-setup{margin-left:7px;margin-right:7px;padding:14px}.puzzle-workout-durations{gap:4px}.puzzle-workout-bar>div:first-child strong{display:none}.puzzle-workout-actions button{padding:4px 5px}.is-puzzle-workout-active.is-quick-puzzle .board-paper{width:min(100%,calc(100dvh - 326px))}}

.progress-rhythm-stats{grid-template-columns:repeat(3,minmax(0,1fr))}

/* Compact progress username and direct session controls. */
.progress-identity-copy{min-width:0}.progress-identity .progress-avatar{color:var(--sheet)}.progress-username-display{display:flex;align-items:center;gap:4px;min-width:0}.progress-username-display strong{min-width:0}.progress-username-edit{display:grid;flex:0 0 22px;width:22px;height:22px;padding:4px;place-items:center;border:0;border-radius:5px;background:transparent;color:var(--green-dark);cursor:pointer}.progress-username-edit[hidden]{display:none}.progress-username-edit svg{display:block;width:13px;height:13px;fill:currentColor}.progress-username-edit:hover,.progress-username-edit:focus-visible{background:var(--green-soft);outline:0}.progress-username-edit:focus-visible{box-shadow:0 0 0 2px rgba(82,111,84,.28)}.progress-username-form{display:grid;width:min(210px,100%);grid-template-columns:minmax(0,1fr) auto;gap:5px;margin-top:6px}.progress-username-form[hidden]{display:none}.progress-username-form input{min-width:0;height:28px;padding:4px 7px;border:1px solid var(--line);border-radius:5px;background:var(--sheet);color:var(--ink);font-size:10px}.progress-username-form button{padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:#f7f4ec;color:var(--green-dark);font-size:9px;font-weight:800}.progress-username-message{min-height:12px;margin-top:3px;color:var(--green-dark)!important;line-height:1.35;white-space:normal!important}.progress-account-action{white-space:nowrap}.progress-account-action:disabled,.progress-username-form button:disabled{cursor:wait;opacity:.6}

.progress-avatar-control{position:relative;width:52px;height:52px}.progress-avatar-control .progress-avatar{width:100%;height:100%;overflow:hidden}.progress-avatar img{display:block;width:100%;height:100%;object-fit:cover}.progress-avatar img[hidden],.progress-avatar-upload[hidden]{display:none}.progress-identity #progress-avatar-fallback{display:block;color:var(--sheet);font:28px var(--serif)}.progress-avatar-upload{position:absolute;right:-4px;bottom:-4px;display:grid;width:22px;height:22px;place-items:center;border:2px solid var(--sheet);border-radius:50%;background:var(--green-dark);box-shadow:0 2px 5px rgba(34,35,31,.25);color:white;cursor:pointer;font:800 15px/1 Arial,sans-serif}.progress-avatar-upload:hover,.progress-avatar-upload:focus-within{background:var(--ink);outline:2px solid rgba(82,111,84,.28);outline-offset:1px}.progress-avatar-upload input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.progress-avatar-upload.uploading{cursor:wait;opacity:.55;pointer-events:none}@media(max-width:420px){.progress-avatar-control{width:42px;height:42px}.progress-identity #progress-avatar-fallback{font-size:24px}.progress-avatar-upload{right:-5px;bottom:-5px}}

.tree-user-avatar{overflow:hidden}.tree-user-avatar img{display:block;width:100%;height:100%;object-fit:cover}.tree-user-avatar img[hidden],.tree-user-avatar span[hidden]{display:none}.tree-user-avatar span{color:white}

/* Installable Android app and account-bound notification controls. */
.push-settings-card{display:grid;grid-template-columns:minmax(0,1.4fr) auto;gap:18px;margin:0 0 18px;padding:20px 22px}.push-settings-card[hidden]{display:none}.push-settings-copy h2{margin:3px 0 7px;font:700 25px/1.05 var(--serif)}.push-settings-copy>p:not(.eyebrow):not(.push-settings-status){max-width:690px;margin:0;color:var(--muted);font-size:12px;line-height:1.55}.push-settings-status{margin:9px 0 0;color:var(--green-dark);font-size:11px;font-weight:750}.push-settings-status.is-error{color:var(--red)}.push-settings-actions{display:flex;align-items:flex-start;flex-wrap:wrap;justify-content:flex-end;gap:7px}.push-settings-actions .button{min-height:38px}.push-device-list{display:grid;grid-column:1/-1;gap:7px}.push-device-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:#f7f4ec}.push-device-row>div:first-child{display:grid;gap:2px}.push-device-row strong{font-size:12px}.push-device-row small{color:var(--muted);font-size:9px}.push-device-controls{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:10px}.push-device-toggle{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:9px;font-weight:750}.push-device-toggle input{accent-color:var(--green)}.push-device-controls>button{padding:5px 7px;border:1px solid #d6b4ae;border-radius:5px;background:#fff5f2;color:var(--red);font-size:8px;font-weight:850}
@media(max-width:720px){.push-settings-card{grid-template-columns:1fr;padding:16px}.push-settings-actions{justify-content:stretch}.push-settings-actions .button{width:100%}.push-device-list{grid-column:1}.push-device-row{align-items:flex-start;flex-direction:column}.push-device-controls{justify-content:flex-start}}
