@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-latin-400-normal-a0AnQzuD.woff2)format("woff2"),url(/assets/fira-sans-latin-400-normal-66xCkunx.woff)format("woff")}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-latin-500-normal-Bvbxc8ch.woff2)format("woff2"),url(/assets/fira-sans-latin-500-normal-Bkfzcwmr.woff)format("woff")}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-latin-600-normal-CXKlxLG9.woff2)format("woff2"),url(/assets/fira-sans-latin-600-normal-DtSgd811.woff)format("woff")}@font-face{font-family:Fira Sans Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-condensed-latin-700-normal-COwqi4SY.woff2)format("woff2"),url(/assets/fira-sans-condensed-latin-700-normal-DW9vo9LN.woff)format("woff")}:root{--bg:#2a3038;--bar:#3e4650;--panel:#343b44;--text:#f3f1ec;--muted:#c9cdd3;--accent:#c4491f;--on-accent:#fff;--note-bg:#f3f1ec;--note-text:#23262b;--overlay:#1a1e23d1;--mark-last:#ffd54a8c;--mark-arrow:#2a3038d9;--mark-ring-light:#fff;--mark-ring-dark:#1a1e23e6;--hint-ring:inset 0 0 0 5px var(--mark-ring-dark), inset 0 0 0 10px var(--mark-ring-light), inset 0 0 0 100vmax var(--mark-last);--hint-pulse:hint-pulse .45s ease-in-out 2;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--gutter:16px;--surface:var(--panel);--surface-raised:#3e4650;--accent-soft:#e8825a;--accent-light:#f3b79d;--line:#f3f1ec1f;--text-xs:13px;--text-sm:15px;--text-md:17px;--text-lg:20px;--text-xl:26px;--text-2xl:34px;--text-3xl:44px;--tap:44px;--tap-large:56px;--motion-fast:.15s;--motion:.25s;--heading:"Fira Sans Condensed", "Arial Narrow", sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-family:Fira Sans,system-ui,sans-serif}@media (width>=700px){:root{--gutter:48px}}*{box-sizing:border-box;border-radius:0}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{background:var(--bg);margin:0;line-height:1.45}#root{flex-direction:column;min-height:100vh;display:flex}html{scrollbar-gutter:stable}.loading,.below-hero-pending{min-height:100vh}a{color:inherit}h1,h2,h3{margin:0;line-height:1.05}.display{font-family:var(--heading);text-transform:uppercase;letter-spacing:.01em;font-weight:700}.muted{color:var(--muted)}.btn{min-height:48px;padding:0 var(--space-5);font:inherit;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-secondary{color:var(--text);border-color:var(--muted);background:0 0}.btn:disabled{opacity:.4;cursor:default}.btn:focus-visible,a:focus-visible{outline:3px solid var(--text);outline-offset:2px}.button-row{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.app-header{background:var(--bar);padding:0 var(--gutter);justify-content:space-between;align-items:center;gap:var(--space-4);min-height:64px;display:flex}.brand{align-items:center;gap:var(--space-2);font-family:var(--heading);font-size:1.6rem;font-weight:700;text-decoration:none;display:inline-flex}.brand img{width:44px;height:44px;display:block}.app-header nav{gap:var(--space-5);display:flex}.app-header nav a{color:var(--muted);font-weight:500;text-decoration:none}.app-header nav a[aria-current=page]{color:var(--text)}.app-footer{padding:var(--space-6) var(--gutter);border-top:1px solid var(--bar);gap:var(--space-5);color:var(--muted);grid-template-columns:repeat(3,minmax(0,1fr));margin-top:auto;font-size:15px;display:grid}.footer-column{align-items:flex-start;gap:var(--space-2);flex-direction:column;display:flex}.footer-title{margin:0 0 var(--space-1);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:13px;font-weight:600}.app-footer a{color:var(--muted);text-decoration:none}.app-footer a:hover,.app-footer a:focus-visible{color:var(--text);text-decoration:underline}@media (width<=640px){.app-footer{grid-template-columns:1fr}}.page{width:100%;max-width:1200px;padding:var(--space-6) var(--gutter) 0;flex-direction:column;gap:20px;margin:0 auto;display:flex}.page-title{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:anywhere;font-size:clamp(30px,7vw,72px)}.prose{max-width:760px}.prose h2{margin-top:var(--space-2);font-size:1.15rem}.prose p{margin:0}.painting{background:var(--panel);position:relative;overflow:hidden}.painting img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.painting>.on-painting{z-index:1;position:relative}.painting>.on-painting:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(0deg,#1a1e23eb 0,#1a1e23db calc(100% - 80px),#1a1e2300 100%);position:absolute;inset:-80px 0 0}.tile img{object-position:50% 30%}.hero{align-items:flex-end;min-height:min(78vh,620px);display:flex}.hero .on-painting{width:100%;padding:var(--space-7) var(--gutter);gap:var(--space-4);flex-direction:column;display:flex}.hero .on-painting>*{max-width:900px}.hero h1{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:anywhere;font-size:clamp(64px,9vw,128px);line-height:.95}.progress-family h2,.progress-opening h2,.progress-opening h3{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:anywhere}.hero p{max-width:640px;margin:0;font-size:1.15rem}.hero .today{color:var(--text);font-weight:500}.library-intro{padding:56px var(--gutter) var(--space-6);justify-content:space-between;align-items:flex-end;gap:var(--space-4) var(--space-7);flex-wrap:wrap;display:flex}.library-intro h1,.library-intro h2{font-size:clamp(44px,6vw,72px)}.library-intro p{max-width:520px;color:var(--muted);margin:0}.gallery{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.tile{align-items:flex-end;height:380px;text-decoration:none;display:flex}.tile .on-painting{padding:var(--space-5);width:100%}.tile h3{font-size:clamp(32px,3vw,40px)}.tile-status{color:var(--muted);font-weight:500}.due-label{background:var(--accent);color:var(--on-accent);padding:var(--space-1) var(--space-3);font-size:.9rem;font-weight:600;display:inline-block}.tile .due-label{z-index:1;position:absolute;top:0;right:0}.chapter-hero h1{font-size:clamp(48px,8vw,96px)}.chapter-hero .on-painting{gap:var(--space-2)}@media (width>=700px){.chapter-hero .frame img{--frame-height:min(44vh, 340px)}}.line-list{background:var(--panel);margin:0;padding:0;list-style:none}.line-list li+li{border-top:1px solid var(--bg)}.line-list a{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:56px;padding:var(--space-2) 20px;text-decoration:none;display:flex}.line-list .status{color:var(--muted);flex-shrink:0}.transfer{background:var(--panel);padding:var(--space-5);gap:var(--space-3);flex-direction:column;display:flex}.transfer h2{font-size:1.2rem}.transfer p{margin:0}.trainer{flex-direction:column;width:100%;max-width:1280px;margin:0 auto;display:flex}.trainer-top{justify-content:space-between;align-items:baseline;gap:var(--space-3);padding:var(--space-4) var(--gutter) var(--space-3);display:flex}.trainer-top h1{font-size:2.2rem}.trainer-board{width:100%}.trainer-panel{flex-direction:column;display:flex}.panel-head{background:var(--bar);padding:var(--space-6);gap:var(--space-2);flex-direction:column;display:none}.panel-head h1{font-size:clamp(44px,4.5vw,64px)}.panel-body{padding:20px var(--gutter);gap:var(--space-4);flex-direction:column;display:flex}.panel-status{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.panel-status h2{font-family:var(--heading);font-size:1.8rem;font-weight:700}.note{background:var(--surface);color:var(--text);box-shadow:inset 3px 0 0 var(--accent);padding:var(--space-4) 20px;min-height:3.5em;margin:0}.moves{color:var(--muted);margin:0;display:none}.trainer-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.trainer-actions .grow{flex:100%}.trainer-actions .secondary-group{gap:var(--space-3);flex-wrap:wrap;display:flex}.trainer-actions .desktop-only{display:none}.trainer-empty{padding:var(--space-6) var(--gutter)}@media (width>=960px){.trainer{padding:40px var(--gutter);grid-template-columns:minmax(0,720px) minmax(320px,1fr);align-items:start;gap:40px;display:grid}.trainer-top{display:none}.panel-head{display:flex}.panel-body{background:var(--panel);padding:var(--space-6)}.panel-status .line-name{display:none}.moves{display:block}.trainer-actions{flex-direction:column}.trainer-actions .secondary-group{gap:var(--space-3);display:flex}.trainer-actions .desktop-only{display:inline-flex}}.board{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:none;position:relative}.trainer-actions .grow>.btn{width:100%}.sound-toggle{padding:var(--space-2) 0;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;align-self:flex-start;text-decoration:underline}@media (width>=960px){.mobile-only{display:none}}@media (width<=959px){.app-header{min-height:52px}.trainer-top{padding:10px var(--gutter) var(--space-2)}.trainer-top h1{font-size:clamp(1.25rem,6vw,1.8rem)}.trainer-top span{white-space:nowrap}.trainer-board{width:min(100%,max(280px,100dvh - 356px));margin:0 auto}.panel-body{padding:var(--space-3) var(--gutter);gap:10px}.panel-status h2{font-size:1.4rem}.note{padding:var(--space-3) var(--space-4);min-height:0}.sound-toggle{padding:0}}.upcoming-group{padding:var(--space-5) var(--gutter) var(--space-3);color:var(--muted);font-size:1.2rem}.gallery-soon{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.tile-soon .on-painting{padding:var(--space-5)}.tile-soon{height:300px}.tile-soon img{filter:grayscale(.9)}.tile-soon h4{overflow-wrap:break-word;color:var(--muted);margin:0;font-size:clamp(26px,2.1vw,32px);line-height:1.05}@media (width<=719px){.app-header{flex-wrap:wrap;row-gap:0;padding-bottom:6px}.app-header nav{justify-content:space-between;column-gap:var(--space-4);width:100%;padding:var(--space-1) 0 6px;flex-wrap:wrap;order:3;margin-left:0}.header-tools{margin-left:auto}}@media (width<=499px){.account-login{display:none}}.app-header nav{margin-left:auto}.settings{position:relative}.icon-button{width:44px;height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-button[aria-expanded=true],.icon-button:hover{color:var(--text)}.settings-panel{z-index:20;background:var(--bar);border:1px solid var(--bg);gap:var(--space-4);flex-direction:column;max-height:calc(100dvh - 64px);padding:20px;display:flex;position:fixed;top:64px;left:0;right:0;overflow-y:auto}.settings-head{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.settings-head h2{font-size:1.3rem}.setting-group{gap:var(--space-1);border:0;flex-direction:column;margin:0;padding:0;display:flex}.setting-group legend{margin-bottom:6px;font-weight:600}.choice{cursor:pointer;align-items:center;gap:10px;min-height:40px;display:flex}.choice input{width:20px;height:20px;accent-color:var(--accent);margin:0}.summary-stats{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(96px,1fr));max-width:720px;margin:0;display:grid}.summary-stats>div{background:var(--panel);padding:14px var(--space-4)}.summary-stats dt{color:var(--muted);font-size:.9rem}.summary-stats dd{margin:var(--space-1) 0 0;font-family:var(--heading);font-size:clamp(2rem,6vw,2.6rem);font-weight:700}.plain-list{margin:var(--space-2) 0 0;padding-left:1.2em}@media (width>=700px){.settings-panel{width:380px;max-height:calc(100dvh - 80px);position:absolute;top:calc(100% + 10px);left:auto;right:0}}@media (width<=400px){.hero h1{font-size:48px}}.explanation{box-shadow:inset 3px 0 0 var(--muted);color:var(--text);margin:0;padding-left:14px}.explanation-box{justify-items:start;gap:12px;display:grid}.btn-understood{border-color:var(--text);min-width:140px}.progress-opening{background:var(--panel);padding:20px var(--space-5);flex-direction:column;gap:10px;display:flex}.progress-opening h2{font-size:1.3rem}.progress-opening p{margin:0}.status-bar{background:var(--bg);height:12px;display:flex}.status-learned{background:var(--text)}.status-learning{background:var(--muted)}.status-new{background:var(--bar)}.status-legend{gap:var(--space-2) 20px;flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.status-legend li{align-items:center;gap:var(--space-2);display:flex}.legend-swatch{border:1px solid var(--muted);width:14px;height:14px;display:inline-block}.weak-list a>span:first-child{min-width:0}.chooser .panel-body{gap:0}.chooser-title{font-family:var(--heading);margin-bottom:var(--space-2);font-size:1.6rem;font-weight:700}.choice-block{align-items:flex-start;gap:var(--space-2);padding:var(--space-4) 0;border-top:1px solid var(--bar);flex-direction:column;display:flex}.choice-block h3{font-size:1.1rem}.choice-block p{margin:0}.field{gap:var(--space-1);flex-direction:column;width:100%;display:flex}.field select{min-height:44px;padding:0 var(--space-3);font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--muted)}.field select:disabled{opacity:.7}.field input,.field textarea{min-height:44px;padding:var(--space-2) var(--space-3);font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--muted)}.field input[aria-invalid=true]{border-color:var(--accent)}@media (width<=959px){.chooser .panel-head{padding:20px var(--gutter);display:flex}}.tile-progress{z-index:1;background:#1a1e23bf;height:4px;position:absolute;bottom:0;left:0;right:0}.tile-progress span{height:100%;position:absolute;top:0;left:0}.tile-progress-known{background:color-mix(in srgb, var(--accent) 45%, #f3f1ec)}.tile-progress-learned{background:var(--accent)}.choice-grid{gap:0 var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.board-preview{flex-shrink:0;grid-template-rows:repeat(2,12px);grid-template-columns:repeat(2,12px);display:grid}.piece-preview{background:var(--bg);flex-shrink:0;display:inline-flex}.piece-preview img{display:block}.set-name{text-transform:capitalize}.onboarding{max-width:720px;padding-top:56px;padding-bottom:56px}.onboarding .lead{font-size:1.15rem}.onboarding-actions,.onboarding-options{align-items:stretch;gap:var(--space-3);flex-direction:column;max-width:420px;display:flex}.link-button{padding:var(--space-2) 0;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;align-self:flex-start;text-decoration:underline}.update-banner{z-index:30;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--gutter);background:var(--bar);border-top:1px solid var(--bg);flex-wrap:wrap;display:flex;position:fixed;bottom:0;left:0;right:0}.promotion-menu{z-index:5;justify-content:center;align-items:center;gap:var(--space-3);background:var(--overlay);color:var(--text);flex-direction:column;display:flex;position:absolute;inset:0}.promotion-menu p{margin:0;font-weight:600}.promotion-choices{gap:var(--space-2);display:flex}.promotion-choices button{width:72px;height:72px;padding:var(--space-2);background:var(--note-bg);cursor:pointer;border:1px solid #0000}.promotion-choices button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.promotion-choices img{width:100%;height:100%;display:block}.promotion-menu .link-button{color:var(--text);align-self:center}.study-controls{gap:var(--space-2);display:flex}.study-controls .btn{flex:1;padding:0;font-size:1.4rem}.move-list{gap:2px var(--space-1);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.move-list li{align-items:baseline;display:flex}.move-number{color:var(--muted);padding-left:var(--space-1)}.move-list button{padding:var(--space-1) 6px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0}.move-list button[aria-current=step]{background:var(--accent);color:var(--on-accent)}.small{margin:0;font-size:.9rem}.mini-board{aspect-ratio:1;grid-template-columns:repeat(8,1fr);width:100%;display:grid}.mini-board span{position:relative}.mini-board span.marked:after{content:"";background:var(--mark-last);position:absolute;inset:0}.mini-board img{width:92%;height:92%;position:absolute;inset:4%}.slipped-list{margin:var(--space-3) 0;gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));padding:0;list-style:none;display:grid}.slipped-list button{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;flex-direction:column;gap:6px;padding:0;font-size:.85rem;display:flex}.slipped-list button[aria-expanded=true]{border-color:var(--text)}.slipped-detail{gap:var(--space-4);margin-bottom:var(--space-3);grid-template-columns:minmax(0,260px) minmax(0,1fr);align-items:start;display:grid}@media (width<=559px){.slipped-detail{grid-template-columns:1fr}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}input:focus-visible,select:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--text);outline-offset:2px}.typed-move{gap:var(--space-1);color:var(--muted);flex-direction:column;display:flex}.typed-move input{max-width:12em;min-height:44px;padding:0 var(--space-3);font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--muted)}.typed-move input[aria-invalid=true]{border-color:var(--accent)}.typed-move-error{color:var(--text)}@media (pointer:coarse){.typed-move{display:none}}body:has(.update-banner) .app-footer{padding-bottom:120px}.gallery-openings{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.beta-label{margin-left:var(--space-2);padding:0 var(--space-2);border:1px solid var(--muted);font-size:.85rem}.opening-text{padding:56px var(--gutter) var(--space-6);gap:var(--space-7);max-width:1200px;display:grid}@media (width>=900px){.opening-text{grid-template-columns:minmax(0,1fr) 280px;align-items:start}}.opening-text-main{gap:var(--space-5);flex-direction:column;align-items:flex-start;max-width:920px;font-size:18px;display:flex}.opening-text p{margin:0;line-height:1.6}.opening-text-main p,.opening-text-main .text-list{max-width:65ch}.opening-summary{gap:var(--space-3);flex-direction:column;display:flex}@media (width<=699px){.opening-text-main{font-size:17px}}#opening-text-full{gap:var(--space-6);flex-direction:column;display:flex}.text-section{gap:var(--space-3);flex-direction:column;display:flex}.text-heading{font-family:var(--heading);color:var(--text);margin:0;font-size:22px;font-weight:600;line-height:1.25}.text-subheading{font-family:var(--heading);margin:var(--space-2) 0 0;font-size:18px;font-weight:600}.text-list{gap:var(--space-2);flex-direction:column;margin:0;padding-left:1.2em;line-height:1.6;display:flex}.san{white-space:nowrap;font-weight:500}.key-moves{align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;display:flex}.key-moves .mini-board{width:200px}.key-moves .move-list{flex:200px}.text-positions{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));margin:0;padding:0;list-style:none;display:grid}.text-positions li{gap:var(--space-2);flex-direction:column;display:flex}.text-positions a{display:block}.text-positions a:hover .mini-board,.text-positions a:focus-visible .mini-board{outline:2px solid var(--accent);outline-offset:2px}.painting-note{gap:var(--space-3);flex-direction:column;display:flex}.painting-note img{aspect-ratio:4/5;object-fit:cover;width:100%}.soon-label{font-family:var(--heading);font-size:22px;font-weight:600}.chapter-intro{gap:var(--space-3);flex-direction:column;max-width:720px;line-height:1.6;display:flex}.chapter-intro p{margin:0}.help-buttons{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.btn-small{min-height:44px;padding:0 var(--space-2);font-size:.95rem}.start-choice{gap:var(--space-3);flex-direction:column;display:flex}.start-choice .btn{width:100%;min-height:56px;padding:var(--space-2) var(--space-4);flex-direction:column;gap:2px}.start-choice .btn small{font-size:.85rem;font-weight:400}.check-row{align-items:center;gap:var(--space-2);min-height:44px;display:flex}.check-row input{width:20px;height:20px;accent-color:var(--accent)}.mini-board{position:relative}.mini-board span.outlined:before{content:"";border:2px solid var(--note-bg);outline:1px solid var(--note-text);z-index:1;position:absolute;inset:6%}.mini-arrows{pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;inset:0}.mini-arrows line{stroke:var(--mark-arrow);stroke-width:.16px;stroke-linecap:round;opacity:.9}.mini-arrows polygon{fill:var(--mark-arrow);opacity:.9}.text-figure{gap:var(--space-3) var(--space-5);align-items:start;display:grid}.text-figure figure{gap:var(--space-2);flex-direction:column;width:100%;max-width:320px;margin:0;display:flex}.text-figure figure a{display:block}.text-figure figure a:hover .mini-board,.text-figure figure a:focus-visible .mini-board{outline:2px solid var(--accent);outline-offset:2px}.text-figure figcaption{color:var(--muted);font-size:15px;line-height:1.4}@media (width>=700px){.text-figure{grid-template-columns:240px minmax(0,1fr)}}.tile-variants{font-family:var(--heading);color:var(--text);font-size:20px;font-weight:600}.breadcrumbs{padding:var(--space-3) var(--gutter);background:var(--bar);font-size:15px}.breadcrumbs ol{gap:var(--space-1) var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.breadcrumbs li+li:before{content:"›";margin-right:var(--space-2);color:var(--muted)}.breadcrumbs a{color:var(--text)}.breadcrumbs [aria-current=page]{color:var(--muted)}.family-note{padding:0 var(--gutter) var(--space-5);max-width:720px;color:var(--muted)}.trainer-opening{color:var(--muted);font-size:15px;font-weight:500;display:block}.look-back{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--gutter);flex-wrap:wrap;display:flex}.look-back .btn-small{min-width:44px}.look-back-note{font-weight:600}@media (width>=960px){.look-back{padding:var(--space-2) 0}}@keyframes hint-pulse{50%{box-shadow:inset 0 0 0 8px var(--mark-ring-dark), inset 0 0 0 14px var(--mark-ring-light), inset 0 0 0 100vmax var(--mark-last)}}@media (prefers-reduced-motion:reduce){:root{--hint-pulse:none}}.board-with-eval{gap:var(--space-2);flex-direction:column;display:flex}.eval-bar{width:100%;height:22px;font:inherit;color:inherit;background:#1a1e23;border:0;padding:0;display:block;position:relative;overflow:hidden}button.eval-bar{cursor:pointer}.eval-white{width:calc(var(--share) * 100%);background:#f3f1ec;transition:width .4s,height .4s;position:absolute;inset:0 auto 0 0}.eval-flipped .eval-white{inset:0 0 0 auto}.eval-label{color:#f3f1ec;mix-blend-mode:difference;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex;position:absolute;inset:0}@media (width>=960px){.board-with-eval{flex-direction:row}.board-with-eval>:last-child{flex:1;min-width:0}.eval-bar{flex:none;align-self:stretch;width:26px;height:auto}.eval-white{width:auto;height:calc(var(--share) * 100%);inset:auto 0 0}.eval-flipped .eval-white{inset:0 0 auto}.eval-label{writing-mode:vertical-rl;font-size:12px}}@media (prefers-reduced-motion:reduce){.eval-white{transition:none}}.custom-positions{gap:var(--space-2);flex-direction:column;display:flex}.custom-list{margin:var(--space-3) 0;gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));padding:0;list-style:none;display:grid}.custom-list li{gap:var(--space-2);flex-direction:column;align-items:flex-start;display:flex}body.settings-open{overflow:hidden}.settings-screen{z-index:50;background:var(--bg);flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.settings-bar{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--gutter);background:var(--bar);display:flex}.settings-bar h2{font-family:var(--heading);margin:0;font-size:22px;font-weight:600}.settings-layout{flex:1;grid-template-columns:240px minmax(0,1fr);min-height:0;display:grid}.settings-nav{border-right:1px solid var(--bar);padding:var(--space-4) 0;overflow-y:auto}.settings-nav ul{margin:0;padding:0;list-style:none}.settings-nav button{width:100%;min-height:48px;padding:var(--space-3) var(--gutter);color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;font-size:17px;display:block}.settings-nav button[aria-current=true]{background:var(--panel);box-shadow:inset 4px 0 0 var(--accent)}.settings-content{padding:var(--space-5) var(--gutter) var(--space-7);gap:var(--space-4);flex-direction:column;max-width:760px;display:flex;overflow-y:auto}.settings-content h3{font-family:var(--heading);margin:0;font-size:22px;font-weight:600}.settings-back{display:none}.settings-preview{aspect-ratio:1;width:min(100%,420px)}@media (width<=759px){.settings-layout{grid-template-columns:minmax(0,1fr)}.settings-nav{border-right:0}.settings-screen:not(.has-category) .settings-content,.settings-screen.has-category .settings-nav{display:none}.settings-nav button[aria-current=true]{box-shadow:none;background:0 0}.settings-back{min-height:44px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0;text-decoration:underline;display:inline-flex}.settings-preview{width:100%}}.header-tools{align-items:center;gap:var(--space-2);display:flex}.account{align-items:center;gap:var(--space-2);display:flex;position:relative}.streak{color:var(--accent);align-items:center;gap:4px;font-weight:600;display:inline-flex}.streak span{color:var(--text)}.account-button{cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:0;display:inline-flex}.avatar{display:block}.account-menu{z-index:40;padding:var(--space-2) 0;background:var(--panel);border:1px solid var(--bar);min-width:200px;margin:0;list-style:none;position:absolute;top:calc(100% + 6px);right:0}.account-menu a,.account-menu button{width:100%;padding:var(--space-3) var(--space-4);color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;text-decoration:none;display:block}.account-menu a:hover,.account-menu button:hover{background:var(--bar)}.login{max-width:480px}.login-buttons{gap:var(--space-3);flex-direction:column;display:flex}.login-google,.login-apple{min-height:48px;padding:0 var(--space-4);font:inherit;cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:12px;font-weight:500;display:flex}.login-google{color:#1f1f1f;background:#fff;border:1px solid #747775}.login-apple{color:#fff;background:#000;border:1px solid #000}.login-email{gap:var(--space-2);flex-direction:column;display:flex}.login-email input{min-height:44px}.login-legal{gap:var(--space-4);flex-wrap:wrap;display:flex}.confirm-dialog{max-width:min(440px, calc(100vw - 2 * var(--space-4)));padding:var(--space-5);border:1px solid var(--muted);background:var(--panel);color:var(--text)}.confirm-dialog::backdrop{background:color-mix(in srgb, var(--bg) 80%, transparent)}.confirm-dialog h2{margin-top:0}.account-facts{gap:var(--space-1) var(--space-4);margin:0 0 var(--space-4);grid-template-columns:1fr;display:grid}@media (width>=600px){.account-facts{gap:var(--space-2) var(--space-4);grid-template-columns:max-content 1fr}}.account-facts dd+dt{margin-top:var(--space-2)}@media (width>=600px){.account-facts dd+dt{margin-top:0}}.account-facts dt{font-weight:600}.account-facts dd{overflow-wrap:anywhere;margin:0}.danger-zone{gap:var(--space-2);padding:var(--space-4);box-shadow:inset 4px 0 0 var(--accent);background:var(--bar);flex-direction:column;display:flex}.danger-zone h4{margin:0}.btn-danger{color:var(--text);border-color:var(--accent);background:0 0}.profile{gap:var(--space-5);flex-direction:column;align-items:flex-start;display:flex}.profile section{width:100%}.profile-head{align-items:center;gap:var(--space-5);display:flex}.profile-head p{margin:var(--space-2) 0 0}.profile-editor{gap:var(--space-4);flex-direction:column;width:100%;max-width:640px;display:flex}.avatar-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(60px,1fr));display:grid}.avatar-choice{cursor:pointer;justify-content:center;padding:4px;display:flex;position:relative}.avatar-choice input{opacity:0;position:absolute}.avatar-choice:has(input:checked){outline:3px solid var(--text)}.avatar-choice:has(input:focus-visible){outline:3px solid var(--text)}.field-error{color:#ffb4a2}.calendar{gap:4px;display:flex}.calendar-week{flex-direction:column;gap:4px;display:flex}.calendar-day{background:var(--panel);width:14px;height:14px}.calendar-day.trained{background:var(--accent)}.calendar-day.future{background:0 0}.achievement-row{gap:var(--space-3);flex-wrap:wrap;display:flex}.achievement-empty{background:var(--surface);width:64px;height:64px}.soon-tag{margin-left:var(--space-2);border:1px solid var(--muted);color:var(--muted);vertical-align:middle;padding:2px 8px;font-size:13px;font-weight:500;display:inline-block}.placeholder-block{box-shadow:inset 3px 0 0 var(--bar);padding-left:var(--space-4)}:root[data-background=ink]{--bg:#1f2633;--bar:#323c4d;--panel:#2a3342}:root[data-background=moss]{--bg:#262e29;--bar:#3a453d;--panel:#313b34}:root[data-background=plum]{--bg:#2d2630;--bar:#443a48;--panel:#3a313e}.background-swatch{border:1px solid var(--muted);width:28px;height:28px;display:inline-block}.bg-slate{background:#2a3038}.bg-ink{background:#1f2633}.bg-moss{background:#262e29}.bg-plum{background:#2d2630}.theme-strip{padding:var(--space-3);background:var(--bg);border:1px solid var(--bar);grid-template-rows:repeat(2,56px);grid-template-columns:repeat(4,56px);width:max-content;display:grid}.theme-strip span{position:relative}.theme-strip span.marked:after{content:"";background:var(--mark-last);position:absolute;inset:0}.theme-strip img{z-index:1;width:92%;height:92%;position:absolute;inset:4%}.choice-with-action{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.placeholder-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.placeholder-list li{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--bar);display:flex}.placeholder-list a{color:var(--text)}.drawn-marks{z-index:3;pointer-events:none;opacity:.6;width:100%;height:100%;position:absolute;inset:0}.hint-arrow{z-index:4;pointer-events:none;opacity:.7;width:100%;height:100%;animation:.16s ease-out hint-arrow-in;position:absolute;inset:0}.hint-arrow-light{opacity:.45}@keyframes hint-arrow-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.hint-arrow{animation:none}}.grade-badge{z-index:5;pointer-events:none;line-height:0;position:absolute;transform:translate(-70%,-30%)}.grade-badge[data-edge=right]{transform:translate(-100%,-30%)}.grade-seal{vertical-align:middle;display:inline-block}.grade-line{align-items:center;gap:var(--space-2);font-weight:600;display:flex}.daily-block{align-items:center;gap:var(--space-5);padding:var(--space-6) var(--gutter);background:var(--panel);flex-wrap:wrap;display:flex}.daily-board{flex:none;width:min(220px,100%)}.daily-board-pending{aspect-ratio:1}.daily-text{align-items:flex-start;gap:var(--space-3);flex-direction:column;max-width:520px;display:flex}.daily-text h2{margin:0;font-size:clamp(32px,4vw,48px)}.daily-text p{margin:0}.daily-after h3{margin:var(--space-3) 0 var(--space-1);font-size:1rem}.daily-other{padding-bottom:0}.self-test-link{margin:var(--space-5) 0;align-items:flex-start;gap:var(--space-2);flex-direction:column;display:flex}.self-test-link h2,.self-test-link p{margin:0}.missed-list{margin:var(--space-3) 0 var(--space-5);gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));padding:0;list-style:none;display:grid}.missed-list li{gap:var(--space-3);grid-template-columns:120px 1fr;align-items:start;display:grid}.missed-list p{margin:0 0 var(--space-1)}.h1-alt{margin-top:var(--space-2);letter-spacing:0;text-transform:none;color:var(--muted);font-family:Fira Sans,system-ui,sans-serif;font-size:.32em;font-weight:500;display:block}.guide h2,.glossary h2{margin-top:var(--space-6)}.glossary-index{gap:var(--space-2) var(--space-4);flex-wrap:wrap;padding:0;list-style:none;display:flex}.glossary-term h2{scroll-margin-top:var(--space-5)}.faq-item h3{margin-bottom:var(--space-1)}.choice-question fieldset{margin:0 0 var(--space-4);gap:var(--space-2);border:0;flex-direction:column;padding:0;display:flex}.choice-question legend{gap:var(--space-1);margin-bottom:var(--space-3);flex-direction:column;padding:0;display:flex}.choice-question-text{font-size:1.3rem;font-weight:600}.choice-results{gap:var(--space-5);flex-direction:column;padding:0;list-style:none;display:flex}.choice-result{gap:var(--space-3);grid-template-columns:1fr;display:grid}@media (width>=600px){.choice-result{grid-template-columns:160px 1fr}}.choice-result img{aspect-ratio:4/3;object-fit:cover;width:100%;max-width:320px}.choice-result h2{margin:0 0 var(--space-2);font-size:clamp(22px,3vw,28px)}.turn-off-mark{animation:.18s ease-out turn-off-in}@keyframes turn-off-in{0%{opacity:0;transform:translate(-70%,-30%)scale(.4)}}@media (prefers-reduced-motion:reduce){.turn-off-mark{animation:none}}.eval-unknown .eval-label{min-height:1em}.search-field{align-items:center;gap:var(--space-3);min-height:52px;padding:0 var(--space-4);background:var(--panel);border:1px solid var(--muted);display:flex}.search-field:focus-within{border-color:var(--text);outline:1px solid var(--text);outline-offset:0}.search-field input{min-width:0;color:var(--text);font:inherit;background:0 0;border:0;outline:none;flex:1;padding:12px 0;font-size:1.05rem}.search-field input::placeholder{color:var(--muted)}.search-field input::-webkit-search-cancel-button{display:none}.search-icon{color:var(--muted);flex:none}.library-search{padding:0 var(--gutter) var(--space-6);max-width:760px}.search-results{gap:var(--space-4);padding:var(--space-4) 0;display:grid}.search-mode-inline .search-results{background:var(--panel);padding:var(--space-4);border:1px solid var(--muted);border-top:0}.search-group{gap:2px;display:grid}.search-group-title{margin:0 0 var(--space-1);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.85rem;font-weight:600}.search-hit{align-items:center;gap:var(--space-3);color:var(--text);padding:8px;text-decoration:none;display:flex}.search-hit.active{background:color-mix(in srgb, var(--text) 12%, transparent);outline:1px solid var(--muted)}.search-hit img,.search-mark{object-fit:cover;background:var(--bg);flex:none;width:44px;height:44px}.search-mark-term:after,.search-mark-guide:after{height:100%;color:var(--muted);place-items:center;font-weight:700;display:grid}.search-mark-term:after{content:"A"}.search-mark-guide:after{content:"¶"}.search-hit-text{min-width:0;display:grid}.search-hit-title{overflow-wrap:anywhere;font-weight:600}.search-hit-title .soon-tag{margin-left:var(--space-2)}.search-hit-crumbs{color:var(--muted);font-size:.85rem}.search-overlay{z-index:50;padding:8vh var(--gutter) var(--space-5);background:var(--overlay);justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0}.search-dialog{width:min(680px,100%);max-height:84vh;padding:var(--space-5);background:var(--bg);border:1px solid var(--muted);overflow-y:auto;box-shadow:0 24px 60px #00000080}.search-close{flex:none}.search-hint{margin:0}@media (width<=499px){.search-overlay{padding:0}.search-dialog{border:0;height:100%;max-height:100vh}}.play-setup{gap:var(--space-4);max-width:720px;display:grid}.play-setup p{margin:0}.play-start-board{width:min(260px,100%)}.play-levels{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.play-clocks{justify-content:space-between;gap:var(--space-3);margin-top:var(--space-3);font-variant-numeric:tabular-nums;display:flex}.play-clock{padding:var(--space-2) var(--space-3);border:1px solid var(--muted);color:var(--muted)}.play-clock.running{color:var(--text);border-color:var(--text)}.play-review{gap:var(--space-3);display:grid}.play-review h2,.play-review h3,.play-review p{margin:0}.play-review-moves{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.play-review-move{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;display:flex}.play-review-moves li.selected .play-review-move,.play-review-move:hover{border-color:var(--muted)}.play-review-better{align-items:center;gap:var(--space-3);padding:0 var(--space-2) var(--space-2) 38px;color:var(--muted);flex-wrap:wrap;display:flex}.train-wrap{gap:var(--space-6);width:100%;max-width:960px;padding:var(--space-5) var(--gutter) var(--space-7);margin:0 auto;display:grid}.train-title{font-size:var(--text-2xl)}.train-head{gap:var(--space-2);display:grid}.section-title{font-size:var(--text-xl);margin-bottom:var(--space-2);font-weight:600}.section-note{color:var(--muted);font-size:var(--text-sm);margin:0}.back-link{align-items:center;gap:var(--space-2);min-height:var(--tap);margin-bottom:calc(-1 * var(--space-4));color:var(--muted);font-size:var(--text-sm);justify-self:start;text-decoration:none;display:inline-flex}.back-link:hover,.back-link:focus-visible{color:var(--text)}.btn-block{width:100%;min-height:var(--tap-large);font-size:var(--text-md);display:flex}@media (width>=700px){.btn-block{max-width:360px}}.continue-card{gap:var(--space-4);padding:var(--space-4);background:var(--surface);display:grid}.continue-row{align-items:center;gap:var(--space-4);display:flex}.continue-image{object-fit:cover;object-position:50% 30%;flex:none;width:72px;height:72px}.continue-text{gap:var(--space-1);min-width:0;display:grid}.continue-label{color:var(--muted);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;margin:0;font-weight:600}.continue-title{font-size:var(--text-lg);font-weight:600;line-height:1.2}.continue-title a{text-decoration:none}.continue-sub{color:var(--muted);font-size:var(--text-sm);margin:0}.train-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (width>=700px){.train-grid{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr))}.train-title{font-size:var(--text-3xl)}}.train-tile{aspect-ratio:4/3;min-height:var(--tap);align-items:flex-end;text-decoration:none;display:flex}.train-tile img{object-position:50% 30%}.train-tile .on-painting{width:100%;padding:var(--space-3) var(--space-3) var(--space-4);display:block}.train-tile .on-painting:before{background:linear-gradient(0deg,#1a1e23e6 0,#1a1e23b3 calc(100% - 40px),#1a1e2300 100%);inset:-40px 0 0}.train-tile-name{font-size:var(--text-md);overflow-wrap:anywhere;font-weight:600;line-height:1.2;display:block}@media (width>=700px){.train-tile-name{font-size:var(--text-lg)}}@media (prefers-reduced-motion:no-preference){.train-tile img{transition:transform var(--motion) ease-out}.train-tile:hover img,.train-tile:focus-visible img{transform:scale(1.03)}}.train-more-link{margin:var(--space-4) 0 0;font-size:var(--text-sm)}.train-more-link a{color:var(--muted)}.train-main{gap:var(--space-2);display:grid}.train-main-sub,.train-nothing{color:var(--muted);font-size:var(--text-sm);margin:0}.action-list{margin-top:calc(-1 * var(--space-3));gap:1px;display:grid}.action-row{align-items:center;gap:var(--space-3);min-height:var(--tap-large);padding:var(--space-3) var(--space-4);background:var(--surface);text-decoration:none;display:flex}.action-row:hover,.action-row:focus-visible{background:var(--surface-raised)}.action-row-text{flex:1;gap:2px;min-width:0;display:grid}.action-row-label{font-weight:600}.action-row-sub{color:var(--muted);font-size:var(--text-sm);overflow-wrap:anywhere}.action-row-arrow{color:var(--muted);font-size:var(--text-xl);flex:none;line-height:1}.train-chapters{gap:var(--space-2);display:grid}.chapter-picker{gap:var(--space-4);width:100%;display:grid}.chapter-options{margin:var(--space-2) 0 0;gap:1px;padding:0;list-style:none;display:grid}.chapter-option{background:var(--surface);box-shadow:inset 3px 0 #0000}.chapter-option.selected{background:var(--surface-raised);box-shadow:inset 3px 0 0 var(--accent)}.chapter-option-button{width:100%;min-height:var(--tap-large);padding:var(--space-3) var(--space-4);color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;gap:2px;display:grid}.chapter-option-button:focus-visible{outline:3px solid var(--text);outline-offset:-3px}.chapter-option-name{font-size:var(--text-md);font-weight:600}.chapter-option-moves{color:var(--muted);font-size:var(--text-sm);overflow-wrap:anywhere}.chapter-option-status{align-items:center;gap:var(--space-2);margin-top:var(--space-1);color:var(--muted);font-size:var(--text-xs);display:flex}.chapter-option-actions{gap:var(--space-3);padding:0 var(--space-4) var(--space-4);display:grid}@media (width>=700px){.chapter-option-actions{grid-template-columns:minmax(0,1fr) auto;align-items:end}}.mini-progress{background:var(--bar);width:64px;height:4px;display:inline-block}.mini-progress span{background:var(--accent);height:100%;display:block}.defining-moves{align-items:flex-start;gap:var(--space-3);flex-wrap:wrap;display:flex}.defining-board{width:min(200px,100%)}.defining-list{flex:1;min-width:180px;margin:0;line-height:2}.move-number{color:var(--muted);margin-right:2px}.move-button{color:var(--text);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;padding:0 4px}.move-button.current{border-color:var(--accent)}.tile-moves{color:var(--text);overflow-wrap:anywhere;font-size:.9rem}.chapter-moves{margin-bottom:var(--space-5)}.variant-links{color:var(--muted);margin:0}.variant-dialog{gap:var(--space-3);display:grid}.variant-dialog h2,.variant-dialog p{margin:0}.opponent-choice{padding:var(--space-6) var(--gutter) 0;max-width:760px}.opponent-choice p{margin:0 0 var(--space-3)}.opponent-choice h2{margin-bottom:var(--space-3)}.choice-small-title{font-size:clamp(24px,4vw,36px)}.choice-progress{background:var(--line,#7f7f7f40);height:6px;margin-bottom:var(--space-4);border-radius:0;overflow:hidden}.choice-progress span{background:var(--accent);height:100%;transition:width .2s ease-out;display:block}.choice-answer{border:1px solid var(--line,#7f7f7f59);border-radius:0;min-height:48px;padding:10px 12px}.choice-answer:has(input:checked){border-color:var(--accent)}.choice-slot{margin:0 0 var(--space-1);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.8rem}.choice-result h3{margin:var(--space-3) 0 var(--space-1);font-size:1rem}.choice-result h3+p{margin-top:0}.choice-reasons{margin:0;padding-left:1.2em}.choice-soon{font-size:.75rem;font-family:var(--font-body,inherit);vertical-align:middle;color:var(--muted);border:1px solid;border-radius:0;margin-left:.5em;padding:1px 8px;font-weight:600;display:inline-block}.choice-instead,.choice-alternative{margin-top:var(--space-3)}.text-layout-toc{display:none}.toc-title{margin:0 0 var(--space-2);font-family:var(--heading);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.85rem;font-weight:600}.toc ol,.read-on ul{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.toc a,.read-on a{color:var(--muted);border-left:1px solid #0000;padding:4px 0 4px 12px;font-size:.92rem;line-height:1.35;text-decoration:none;display:block}.toc a:hover,.read-on a:hover{color:var(--text)}.toc a[aria-current=location]{color:var(--text);border-left-color:var(--accent);font-weight:600}.glossary-index span{color:var(--muted);opacity:.5}.glossary-letter-heading{font-family:var(--heading);margin:var(--space-6) 0 var(--space-3);color:var(--accent);font-size:2rem}.glossary-term{scroll-margin-top:var(--space-5)}.glossary-term h3{margin:0 0 var(--space-2);font-size:1.15rem}.glossary-term p{margin:0 0 var(--space-2);max-width:70ch}.glossary-cards{gap:var(--space-5);flex-direction:column;display:flex}.glossary-term.marked{outline:2px solid var(--accent);outline-offset:8px;animation:1.6s ease-out term-mark}@keyframes term-mark{0%{background:color-mix(in srgb, var(--accent) 22%, transparent)}}@media (width>=760px){.glossary-cards{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));align-items:start;display:grid}.glossary-term{background:var(--panel);padding:var(--space-4) var(--space-5)}.glossary-term.marked{outline-offset:0}}@media (width>=1200px){.text-layout{max-width:1440px;padding:0 var(--gutter);grid-template-columns:220px minmax(0,760px);justify-content:center;align-items:start;column-gap:56px;margin:0 auto;display:grid}.text-layout.with-aside{grid-template-columns:220px minmax(0,760px) 260px}.text-layout.wide{grid-template-columns:120px minmax(0,1120px)}.text-layout>.page{max-width:none;margin:0;padding-left:0;padding-right:0}.text-layout-toc,.text-layout-aside{top:var(--space-5);max-height:calc(100vh - 2 * var(--space-5));margin-top:150px;display:block;position:sticky;overflow-y:auto}.text-layout.wide .toc ol{grid-template-columns:repeat(3,1fr);display:grid}.text-layout.wide .toc a{font-family:var(--heading);padding-left:8px;font-size:1.05rem}.prose p,.prose li,.guide p,.guide li{max-width:70ch}.opening-text{grid-template-columns:200px minmax(0,1fr) 280px;max-width:1440px;margin:0 auto}.opening-text .text-layout-toc{margin-top:0}}@media (width>=1200px) and (height<=500px){.text-layout-toc,.text-layout-aside{max-height:none;position:static}}@media (width>=1200px) and (height>=880px){.trainer{--board:min(calc(100dvh - 64px - 96px), calc(100vw - 2 * var(--gutter) - 40px - 400px), 1080px);grid-template-columns:max(720px, var(--board)) minmax(360px, 480px);justify-content:center;max-width:none}}@media (width>=1200px){.gallery-soon{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}}@media (width>=1600px){.gallery-openings{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}}.text-layout h2[id],.opening-text h2[id],.opponent-choice h2[id],#chapters-heading{scroll-margin-top:var(--space-5)}.hero-framed{align-items:center;gap:var(--space-6) 56px;min-height:0;padding:var(--space-7) var(--gutter);background:var(--bg);grid-template-columns:minmax(0,1fr) auto;display:grid;position:relative}.hero-framed>.on-painting{grid-area:1/1;padding:0}.hero-plain{grid-template-columns:minmax(0,1fr)}.framed-painting{align-items:flex-start;gap:var(--space-3);flex-direction:column;grid-area:1/2;margin:0;display:flex}.frame{background:#1c2025;padding:12px;box-shadow:0 22px 48px #00000080,inset 0 0 0 1px #ffffff14}.frame img{--frame-height:min(56vh, 440px);--frame-width:min(44vw, 620px);width:min(var(--frame-width), calc(var(--frame-height) * var(--ratio)));height:auto;aspect-ratio:var(--ratio);display:block;box-shadow:0 0 0 1px #8d949e}.museum-label{background:var(--surface);max-width:300px;color:var(--text);font-size:var(--text-xs);overflow-wrap:anywhere;flex-direction:column;gap:2px;min-width:0;padding:8px 12px;line-height:1.35;display:flex}.museum-title{font-style:italic;font-weight:600}@media (width<=699px){.hero-framed{padding:var(--space-5) var(--gutter) var(--space-6);gap:var(--space-4);grid-template-columns:minmax(0,1fr)}.hero-framed>.on-painting{grid-row:2}.framed-painting{flex-direction:row;grid-area:1/1;align-items:flex-end}.frame{flex:none;padding:7px}.frame img{--frame-height:170px;--frame-width:min(342px, calc(100vw - 2 * var(--gutter) - 14px))}.museum-label{max-width:160px;padding:6px 8px;font-size:.72rem}.framed-painting.wide{flex-direction:column;align-items:flex-start}.framed-painting.wide .museum-label{max-width:none}}.library-filter-bar{padding:0 var(--gutter) var(--space-4)}.library-filters summary{cursor:pointer;font-family:var(--heading);padding:var(--space-2) 0;width:fit-content;font-size:1.1rem;font-weight:600}.filter-active{margin-left:var(--space-2);background:var(--accent);color:var(--on-accent);border-radius:0;padding:0 8px;font-size:.8rem}.filter-groups{gap:var(--space-3) var(--space-6);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.filter-group{border:0;min-width:0;margin:0;padding:0}.filter-group legend{margin-bottom:var(--space-1);color:var(--muted);padding:0;font-size:.85rem}.filter-options{flex-wrap:wrap;gap:6px;display:flex}.filter-chip{cursor:pointer;border:1px solid #f3f1ec4d;border-radius:0;align-items:center;min-height:36px;padding:0 12px;font-size:.92rem;display:inline-flex;position:relative}.filter-chip input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.filter-chip.selected{background:var(--text);color:var(--bg);border-color:var(--text)}.filter-chip:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.filter-summary{gap:var(--space-4);margin:var(--space-3) 0 0;align-items:baseline;display:flex}.library-filters>.muted.small{margin:var(--space-1) 0 0}.variant-pick{margin-top:var(--space-4)}.variant-pick h3{margin:0 0 var(--space-1);font-size:1.1rem}.variant-pick>p{margin:0 0 var(--space-3)}.hall-page{gap:var(--space-4);max-width:760px}.hall-title{font-size:clamp(30px,5vw,48px)}.hall-step-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.85rem}.hall-intro{color:var(--muted);margin:0}.swan-guide{align-items:flex-start;gap:var(--space-3);display:flex}.swan-guide-icon{flex:none;width:48px;height:48px;margin-top:2px}.swan-guide-bubble{padding:var(--space-3) var(--space-4);background:var(--surface-raised);color:var(--text);border-radius:14px;flex:1;min-height:3em;line-height:1.5;position:relative}.swan-guide-bubble:before{content:"";border:8px solid #0000;border-left:0;border-right-color:var(--surface-raised);position:absolute;top:16px;left:-8px}.swan-guide-bubble a{color:inherit}.swan-good .swan-guide-bubble{box-shadow:inset 4px 0 #c3c9d1}.swan-try .swan-guide-bubble{box-shadow:inset 4px 0 0 var(--accent)}.hall-exercise{gap:var(--space-4);flex-direction:column;display:flex}.lesson-board,.hall-chessboard{align-self:center;width:min(100%,480px,100dvh - 330px);min-width:min(100%,280px);position:relative}@media (width>=900px){.hall-lesson .hall-page{max-width:1080px}.hall-exercise{column-gap:var(--space-6);row-gap:var(--space-4);grid-template-columns:minmax(0,1fr) auto;align-content:start;display:grid}.hall-exercise>*{grid-column:1}.hall-exercise>.lesson-board,.hall-exercise>.hall-chessboard{grid-area:1/2/span 6;align-self:start;width:min(480px,100dvh - 260px)}}.lesson-board{aspect-ratio:1;-webkit-user-select:none;user-select:none;grid-template-columns:repeat(8,1fr);display:grid}.lesson-square{aspect-ratio:1;font:inherit;border:0;margin:0;padding:0;position:relative}button.lesson-square{cursor:pointer}.lesson-square{box-shadow:var(--square-focus,0 0 #0000), var(--square-state,0 0 #0000)}button.lesson-square:focus-visible{--square-focus:inset 0 0 0 3px var(--mark-ring-dark), inset 0 0 0 6px var(--mark-ring-light);z-index:2;outline:none}.lesson-square img{pointer-events:none;width:92%;height:92%;position:absolute;inset:4%}.lesson-square.marked{--square-state:inset 0 0 0 100vmax var(--mark-last)}.lesson-square.chosen{--square-state:inset 0 0 0 4px var(--mark-ring-light), inset 0 0 0 100vmax #2a303873}.lesson-square.help{--square-state:var(--hint-ring);animation:var(--hint-pulse)}.lesson-star{color:var(--accent-soft);text-shadow:0 1px 2px #00000080;pointer-events:none;place-items:center;font-size:clamp(18px,5vw,36px);display:grid;position:absolute;inset:0}.lesson-star:before{content:"★"}.lesson-square[data-rank]:before,.lesson-square[data-file]:after{pointer-events:none;z-index:1;font-size:10px;font-weight:600;position:absolute}.lesson-square[data-rank]:before{content:attr(data-rank);top:2px;left:3px}.lesson-square[data-file]:after{content:attr(data-file);bottom:1px;right:3px}.lesson-arrows line{stroke:var(--mark-arrow);stroke-width:.16px;stroke-linecap:round}.lesson-arrows polygon{fill:var(--mark-arrow)}.hall-choices{gap:var(--space-2);flex-wrap:wrap;display:flex}.hall-choice{color:var(--text);background:0 0;border:1px solid #f3f1ec66}.hall-choice:disabled{opacity:.45;text-decoration:line-through}.hall-choice.right{opacity:1;background:var(--accent);border-color:var(--accent);color:var(--on-accent);text-decoration:none}.hall-stars{color:var(--accent-soft);letter-spacing:2px}.hall-count{text-align:center;margin:0}.hall-dots{gap:6px;margin:0;padding:0;list-style:none;display:flex}.hall-dots li{background:#f3f1ec40;border-radius:50%;width:10px;height:10px}.hall-dots li.done{background:#c3c9d1}.hall-dots li.current{background:var(--accent)}.hall-success{gap:var(--space-4);flex-direction:column;align-items:flex-start;display:flex}.hall-success-stars{color:var(--accent-soft);letter-spacing:6px;margin:0;font-size:56px;animation:.6s ease-out hall-pop}.hall-star-empty{color:#f3f1ec33}@keyframes hall-pop{0%{opacity:0;transform:scale(.6)}}@media (prefers-reduced-motion:reduce){.hall-success-stars{animation:none}}.hall-steps{margin:var(--space-4) 0 0;gap:var(--space-5);flex-direction:column;padding:0;list-style:none;display:flex}.hall-step{background:var(--panel);padding:var(--space-4) var(--space-5)}.hall-step-head{gap:var(--space-4);align-items:flex-start;display:flex}.hall-step-head>div{overflow-wrap:break-word;min-width:0}.hall-step-head h2{margin:0 0 var(--space-1);font-size:1.3rem}.hall-step-head p{margin:0 0 var(--space-1)}.hall-step-number{border:1px solid var(--accent);width:40px;height:40px;font-family:var(--heading);border-radius:50%;flex:none;place-items:center;font-size:1.2rem;font-weight:700;display:grid}.hall-step.complete .hall-step-number{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.hall-step-bar{margin:var(--space-3) 0}.hall-lessons{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin:0;padding:0;list-style:none;display:grid}.hall-lessons a{gap:var(--space-2);background:var(--bg);min-height:40px;color:var(--text);align-items:center;padding:6px 10px;text-decoration:none;display:flex}.hall-lessons a:hover{outline:1px solid var(--accent)}.hall-lesson-mark{min-width:3.2em;color:var(--accent-soft)}.hall-lessons a:not(.done) .hall-lesson-mark{color:var(--muted)}.hall-test-link{margin:var(--space-3) 0 0}.hall-opening-why{margin:0}.hall-frame-text{font-style:italic}.hall-step-bar.mini-progress{width:100%}.hall-entry{align-items:center;gap:var(--space-3) var(--space-5);margin:var(--space-5) var(--gutter) 0;padding:var(--space-4) var(--space-5);background:var(--panel);flex-wrap:wrap;max-width:1200px;display:flex}.hall-entry>div{flex:260px}.hall-entry h2{margin:0 0 var(--space-1);font-size:1.3rem}.hall-entry p{margin:0}@media (width<=959px){.nav-wide-only{display:none}}.nav-wide-only{white-space:nowrap}.choice-first-hall{padding:var(--space-4) var(--space-5);background:var(--panel);margin-bottom:var(--space-5)}.choice-first-hall h2{margin:0 0 var(--space-2)}.ssr-view,.app-view{display:contents}.app-view.app-pending{visibility:hidden;flex-direction:column;min-height:100vh;display:flex;position:absolute;top:0;left:0;right:0}@media (width<=699px){.ssr-view .library-filters[open]>:not(summary){display:none}.ssr-view .library-filters[open]>summary{list-style-type:disclosure-closed}}.eval-graph{margin:var(--space-3) 0 var(--space-4);cursor:pointer;position:relative}.eval-graph svg{border:1px solid var(--muted);width:100%;height:110px;display:block}.eval-graph-dots{pointer-events:none;position:absolute;inset:2px}.eval-graph-dot{border:2px solid #f3f1ec;border-radius:50%;width:12px;height:12px;position:absolute;transform:translate(-50%,-50%)}.review-counts{border-collapse:collapse;width:100%;max-width:560px}.review-counts th,.review-counts td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--bar);text-align:left}.review-counts td,.review-counts thead th+th{text-align:right;width:90px}.review-overview h2{margin:var(--space-5) 0 var(--space-2)}.review-footer{padding-top:0}.review-progress{width:100%;height:12px;accent-color:var(--accent)}.review-heading{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.review-buttons .btn{flex:140px}.review-list summary{cursor:pointer;padding:var(--space-2) 0;font-weight:600}.review-move-list{gap:var(--space-1);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.review-move-list button{gap:var(--space-1);padding:var(--space-1) var(--space-2);background:var(--panel);color:var(--text);border:1px solid var(--muted);font:inherit;cursor:pointer;align-items:center;display:inline-flex}.review-move-list li.selected button{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-large{padding:var(--space-4) var(--space-6);font-size:20px}@media (width<=420px){.btn-large{width:100%}}.level-summary{margin:var(--space-3) 0}.level-counts{gap:var(--space-2);margin:0 0 var(--space-2);align-items:center;font-weight:600;display:flex}.level-bar{background:var(--bar);max-width:480px;height:8px;display:flex}.level-bar .level-master{background:var(--accent)}.level-bar .level-solid{background:var(--accent-soft)}.level-bar .level-learned{background:#c3c9d1}.level-bar .level-busy{background:#7d8590}.level-bar .level-new{background:var(--bar)}.tier-seal{vertical-align:middle;flex:none}.mastery-card{padding:var(--space-4);background:var(--surface);box-shadow:inset 3px 0 0 var(--accent)}.mastery-list{gap:var(--space-2);margin:var(--space-3) 0;padding:0;list-style:none;display:grid}.mastery-list li{gap:var(--space-3);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.mastery-list span{overflow-wrap:anywhere;min-width:0}.train-page{min-height:100vh}.review-grade{gap:var(--space-2);align-items:center;display:inline-flex}.review-grade .grade-seal{flex:none}.review-counts th[scope=row]{overflow-wrap:anywhere}@media (width<=400px){.review-counts th,.review-counts td{padding:var(--space-2)}.review-counts td,.review-counts thead th+th{width:56px}.review-counts thead th+th{font-size:13px}}.museum{flex-direction:column;display:flex}.wing-nav{gap:var(--space-2) var(--space-5);padding:var(--space-3) var(--gutter);border-top:1px solid var(--bar);border-bottom:1px solid var(--bar);flex-wrap:wrap;display:flex}.wing-nav a{color:var(--text);font-family:var(--heading);font-size:20px;font-weight:600;text-decoration:none}.wing-nav a:hover,.wing-nav a:focus-visible{text-decoration:underline}.wing-count{margin-left:var(--space-2);color:var(--muted);font-size:15px;font-weight:500}.wing{padding-top:var(--space-6);scroll-margin-top:var(--space-4)}.wing-head{padding:0 var(--gutter) var(--space-4)}.wing-head h2{margin:0;font-size:clamp(32px,4.5vw,52px)}.wing-head p{margin:var(--space-1) 0 0;color:var(--muted)}.room{margin:0 0 var(--space-6)}.room-board{gap:var(--space-1);max-width:640px;padding:var(--space-4) var(--gutter) var(--space-4);flex-direction:column;display:flex}.room-label{color:var(--text);font-family:var(--heading);margin:0;font-size:22px;font-weight:600}.room-intro,.room-meta{color:var(--muted);margin:0}.room-meta a{color:var(--muted)}.room-row{grid-template-columns:repeat(auto-fill,minmax(260px,340px));display:grid}.room-row-all{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.room-row-singles{margin-bottom:var(--space-6)}.lib-tile{height:340px}.lib-tile h3{overflow-wrap:break-word;margin:0;font-size:clamp(28px,2.6vw,36px);line-height:1.05}.tile-family{margin-bottom:var(--space-1);color:var(--muted);letter-spacing:.03em;font-size:14px;font-weight:600;display:block}.view-switch{margin:var(--space-4) var(--gutter);gap:0;display:flex}.view-switch button{min-height:44px;padding:0 var(--space-4);color:var(--text);border:1px solid var(--muted);font:inherit;cursor:pointer;background:0 0;font-weight:500}.view-switch button+button{border-left:0}.view-switch button[aria-pressed=true]{background:var(--text);color:var(--bg)}@media (width<=699px){.room-row:not(.room-row-all){scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scroll-padding:0 var(--gutter);display:flex;overflow-x:auto}.room-row:not(.room-row-all) .lib-tile{scroll-snap-align:start;flex:0 0 78%;max-width:320px}.room-row-all{grid-template-columns:1fr}.room-row-all .lib-tile{height:260px}}.info-desk{padding-bottom:var(--space-6)}.desk-cards{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin:0;padding:0;list-style:none;display:grid}.desk-card{gap:var(--space-2);height:100%;padding:var(--space-4);background:var(--panel);border:1px solid var(--bar);color:var(--text);flex-direction:column;text-decoration:none;display:flex}.desk-card:hover,.desk-card:focus-visible{border-color:var(--muted)}.desk-icon{color:var(--muted)}.desk-title{font-family:var(--heading);font-size:22px;font-weight:600}.desk-text{color:var(--muted)}.museum-pending{min-height:100vh}
