:root{--bg:#f2ebde;--bg-deep:#e9dfcd;--surface:#fffaf0;--surface-soft:#f8f1e4;--surface-strong:#f1e6d2;--ink:#1d2420;--ink-soft:#3e453f;--muted:#787466;--muted-2:#9c9585;--line:#352b1d24;--line-strong:#352b1d3d;--green:#10241e;--green-2:#1c3b31;--green-3:#2d5646;--red:#b33a32;--red-deep:#8f2d27;--red-soft:#f5e2dc;--gold:#c69a4d;--gold-soft:#f1e3c5;--board:#e8ca92;--board-line:#7b5a35;--white:#fffdf8;--shadow:0 18px 45px #38281614;--shadow-soft:0 8px 24px #38281612;--radius:18px;--radius-sm:11px;--serif:"Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", "SimSun", serif;--sans:"Inter", "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;touch-action:pan-x pan-y;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:radial-gradient(circle at 10% 0%, #c69a4d1f, transparent 27rem), radial-gradient(circle at 90% 10%, #10241e0f, transparent 30rem), var(--bg);min-width:320px;color:var(--ink);font-family:var(--sans);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;touch-action:pan-x pan-y;margin:0;font-size:15px;line-height:1.65}@media (hover:none) and (pointer:coarse){input,select,textarea{font-size:16px}}body:before{content:"";pointer-events:none;opacity:.22;z-index:100;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.10'/%3E%3C/svg%3E");position:fixed;inset:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{color:inherit}img,svg{max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);letter-spacing:-.015em;font-weight:600;line-height:1.22}h1{margin-bottom:.7rem;font-size:clamp(2rem,3.2vw,3.35rem)}h2{font-size:clamp(1.35rem,1.8vw,1.8rem)}h3{font-size:1.15rem}p{margin-bottom:1rem}::selection{background:var(--gold-soft);color:var(--ink)}:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{z-index:300;background:var(--green);color:var(--white);border-radius:8px;padding:.65rem 1rem;position:fixed;top:10px;left:10px;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.app-shell{flex-direction:column;min-height:100vh;display:flex}.site-header{z-index:50;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f2ebdee0;border-bottom:1px solid #352b1d1f;position:sticky;top:0}.header-inner{align-items:center;gap:2rem;width:min(1180px,100% - 48px);min-height:72px;margin:0 auto;display:flex}.brand{flex:none;align-items:center;gap:.7rem;display:inline-flex}.brand-seal{background:var(--red);color:#fff2d8;width:38px;height:38px;font-family:var(--serif);border-radius:9px;place-items:center;font-size:23px;display:grid;box-shadow:inset 0 0 0 2px #fff1d266,0 4px 12px #8f2d272e}.brand-word{font-family:var(--serif);letter-spacing:.1em;flex-direction:column;font-size:1.45rem;font-weight:700;line-height:1.08;display:flex}.brand-word small{font-family:var(--sans);letter-spacing:.17em;color:var(--muted);margin-top:.18rem;font-size:.55rem;font-weight:500}.desktop-nav{align-items:center;gap:.2rem;margin-left:auto;display:flex}.nav-link{color:var(--muted);border-radius:8px;align-items:center;gap:.35rem;padding:.5rem .8rem;font-size:.88rem;font-weight:500;transition:color .15s,background .15s;display:inline-flex}.nav-link:hover,.nav-link.is-active{color:var(--ink);background:#fffaf0bf}.nav-link.is-active{box-shadow:inset 0 -2px 0 var(--red)}.ai-status-pill{border:1px solid var(--line);height:27px;min-height:27px;color:var(--muted);letter-spacing:0;white-space:nowrap;background:#fffaf0ad;border-radius:999px;align-items:center;gap:.32rem;padding:.24rem .55rem;font-size:.66rem;font-weight:600;line-height:1;display:inline-flex}.engine-badge{transition:border-color .15s,background .15s}.engine-badge:hover{border-color:var(--line-strong);background:var(--surface)}.ai-status-dot{background:var(--muted-2);border-radius:50%;flex:none;width:6px;height:6px}.ai-status-pill.is-ready{color:var(--green-3);background:#2d56460f;border-color:#2d56462e}.ai-status-pill.is-ready .ai-status-dot{background:#3c7d62;box-shadow:0 0 0 3px #3c7d621f}.engine-label{min-width:0}.engine-badge.tone-busy .engine-dot{background:var(--gold);animation:1.6s infinite pulse}.engine-badge.tone-error{color:var(--red-deep);border-color:#b33a3240}.engine-badge.tone-error .engine-dot{background:var(--red)}.main-content{flex:1;width:min(1180px,100% - 48px);margin:0 auto;padding:2.8rem 0 4rem;position:relative}.content-engine-status,.game-engine-status{display:none}.page{animation:.3s both page-in}.site-footer{border-top:1px solid var(--line);width:min(1180px,100% - 48px);color:var(--muted);letter-spacing:.02em;flex-wrap:wrap;gap:.45rem;margin:0 auto;padding:1.2rem 0 2rem;font-size:.72rem;display:flex}.site-footer a{color:var(--ink-soft);text-underline-offset:3px;-webkit-text-decoration:underline #352b1d3d;text-decoration:underline #352b1d3d}.footer-sep{opacity:.4}.footer-license{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.68rem}.bottom-nav{display:none}.eyebrow{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:.38rem;font-size:.68rem;font-weight:600;display:inline-flex}.eyebrow-dot{background:var(--red);border-radius:50%;width:6px;height:6px}.text-red{color:var(--red)}.muted{color:var(--muted)}.small{font-size:.82rem}.fine-print{color:var(--muted);align-items:flex-start;gap:.45rem;margin-bottom:0;font-size:.74rem;line-height:1.6;display:flex}.fine-print svg{flex:none;margin-top:.15rem}.panel{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft);background:#fffaf0db}.section{margin-top:2.4rem}.section-heading{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.1rem;display:flex}.section-heading h2{margin:.25rem 0 0}.section-heading.compact{align-items:flex-start;margin-bottom:1.3rem}.section-heading.compact h2{font-size:1.35rem}.text-link{color:var(--ink-soft);border-bottom:1px solid #352b1d33;align-items:center;gap:.28rem;padding-bottom:.08rem;font-size:.82rem;font-weight:600;display:inline-flex}.text-link:hover{color:var(--red-deep);border-color:var(--red)}.back-link{color:var(--muted);align-items:center;gap:.35rem;margin-bottom:1.2rem;font-size:.78rem;display:inline-flex}.back-link:hover{color:var(--ink)}.btn{cursor:pointer;border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:.45rem;min-height:40px;padding:.55rem 1rem;font-size:.84rem;font-weight:600;line-height:1.2;transition:transform .15s,background .15s,border-color .15s,color .15s,opacity .15s;display:inline-flex}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:disabled{opacity:.48;cursor:not-allowed}.btn-primary{background:var(--red);color:var(--white);box-shadow:0 8px 18px #8f2d272b}.btn-primary:hover:not(:disabled){background:var(--red-deep)}.btn-dark{background:var(--green);color:var(--white)}.btn-dark:hover:not(:disabled){background:var(--green-2)}.btn-ghost{border-color:var(--line-strong);color:var(--ink-soft);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface)}.btn-danger{background:var(--red-deep);color:var(--white)}.btn-large{min-height:48px;padding:.7rem 1.25rem;font-size:.9rem}.btn-small{min-height:32px;padding:.35rem .7rem;font-size:.75rem}.btn-block{width:100%}.icon-button{width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;place-items:center;padding:0;display:inline-grid}.icon-button:hover:not(:disabled){color:var(--ink);background:var(--surface-soft);border-color:var(--line)}.icon-button:disabled{opacity:.35;cursor:not-allowed}.text-button{color:inherit;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;flex:none;padding:0;text-decoration:underline}.segmented{border:1px solid var(--line);background:#352b1d09;border-radius:9px;align-items:center;gap:.15rem;padding:.2rem;display:inline-flex}.segmented button{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:7px;padding:.43rem .7rem;font-size:.8rem}.segmented button.is-selected{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #3828161f}.segmented.small button{padding:.32rem .55rem;font-size:.74rem}.field{flex-direction:column;gap:.5rem;display:flex}.field-label{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:.7rem;font-weight:600}.progress-track{background:#352b1d1a;border-radius:999px;width:100%;height:5px;overflow:hidden}.progress-track.large{height:8px}.progress-track>span{border-radius:inherit;background:linear-gradient(90deg, var(--gold), var(--red));height:100%;transition:width .32s;display:block}.inline-alert{color:var(--ink-soft);background:#f1e3c570;border:1px solid #c69a4d42;border-radius:9px;justify-content:space-between;align-items:center;gap:.75rem;margin-top:.85rem;padding:.7rem .85rem;font-size:.8rem;display:flex}.inline-alert-error{color:var(--red-deep);background:#b33a320f;border-color:#b33a3233}.status-pill{border:1px solid var(--line);color:var(--muted);border-radius:999px;align-items:center;padding:.25rem .55rem;font-size:.7rem;display:inline-flex}.status-pill.ready{color:var(--green-3);background:#2d564614;border-color:#2d56462e}.status-pill.error{color:var(--red-deep);background:var(--red-soft);border-color:#b33a322e}.status-pill.busy{color:#876628;background:var(--gold-soft);border-color:#c69a4d40}.done-label{color:var(--green-3);white-space:nowrap;align-items:center;gap:.22rem;font-size:.68rem;display:inline-flex}.plain-list{color:var(--ink-soft);flex-direction:column;gap:.55rem;margin:0;padding:0;font-size:.82rem;list-style:none;display:flex}.plain-list li{align-items:flex-start;gap:.38rem;display:flex}.plain-list li svg{color:var(--green-3);flex:none;margin-top:.25rem}.compact-list{gap:.4rem;font-size:.78rem}.info-list{flex-direction:column;margin:0;display:flex}.info-list>div{border-bottom:1px solid var(--line);justify-content:space-between;gap:1rem;padding:.55rem 0;font-size:.78rem;display:flex}.info-list>div:last-child{border-bottom:0}.info-list dt{color:var(--muted)}.info-list dd{text-align:right;color:var(--ink-soft);margin:0}.source-line{color:var(--muted);margin:0;font-size:.7rem;line-height:1.6}.form-error{color:var(--red-deep);font-size:.78rem}.home-hero{grid-template-columns:minmax(0,1.12fr) minmax(280px,.72fr);align-items:center;gap:clamp(2rem,5vw,5rem);padding:2.3rem 0 3.2rem;display:grid;position:relative}.home-hero:after{content:"";background:linear-gradient(90deg, transparent, var(--line-strong), transparent);height:1px;position:absolute;bottom:0;left:0;right:0}.eyebrow .lucide{color:var(--gold)}.hero-copy .eyebrow{color:var(--red-deep)}.home-hero h1{letter-spacing:-.055em;margin:1rem 0 1.3rem;font-size:clamp(3.1rem,6vw,5.25rem);line-height:1.08}.hero-lede{max-width:34rem;color:var(--ink-soft);margin-bottom:1.6rem;font-size:1rem;line-height:1.85}.hero-actions{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.hero-engine-status{align-items:center;display:inline-flex}.hero-note{color:var(--muted);align-items:center;gap:.45rem;margin-top:1rem;font-size:.73rem;display:flex}.hero-side{isolation:isolate;flex-direction:column;justify-content:center;align-items:center;min-height:350px;display:flex;position:relative}.hero-emblem{aspect-ratio:1;background:radial-gradient(circle, #fffaf0e0 0 42%, transparent 43%), repeating-conic-gradient(from 0deg, #7b5a352e 0 1deg, transparent 1deg 10deg);width:clamp(190px,19vw,270px);color:var(--red);border-radius:50%;place-items:center;display:grid;position:relative}.hero-emblem:before,.hero-emblem:after{content:"";border:1px solid #7b5a353d;border-radius:50%;position:absolute}.hero-emblem:before{inset:12%}.hero-emblem:after{opacity:.6;border-style:dashed;inset:6%}.hero-emblem>span{z-index:1;aspect-ratio:1;background:var(--red);color:#fff2d8;width:47%;font-family:var(--serif);border-radius:20%;place-items:center;font-size:clamp(3.8rem,7vw,5.5rem);line-height:1;display:grid;position:relative;box-shadow:inset 0 0 0 7px #fff1d23b,0 22px 40px #8f2d272e}.hero-emblem small{z-index:2;color:var(--muted);letter-spacing:.35em;font-size:.56rem;position:absolute;bottom:9%}.hero-stats{gap:1.25rem;margin-top:1.4rem;display:flex}.hero-stats>div{border-right:1px solid var(--line);flex-direction:column;align-items:center;padding-right:1.25rem;display:flex}.hero-stats>div:last-child{border:0;padding-right:0}.hero-stats strong{font-family:var(--serif);color:var(--ink);font-size:1.4rem;line-height:1.2}.hero-stats span{color:var(--muted);white-space:nowrap;font-size:.64rem}.hero-side-caption{color:var(--muted-2);letter-spacing:.18em;text-transform:uppercase;align-items:center;gap:.6rem;margin-top:1.5rem;font-size:.6rem;display:flex}.tiny-rule{background:var(--line-strong);width:30px;height:1px}.quick-start{background:linear-gradient(120deg,#fffaf0f5,#f8f1e4d1);justify-content:space-between;align-items:center;gap:2rem;margin-top:1.4rem;padding:1.35rem 1.5rem;display:flex}.quick-start-copy h2{margin:.25rem 0;font-size:1.45rem}.quick-start-copy p{color:var(--muted);margin-bottom:0;font-size:.78rem}.training-section-eyebrow{letter-spacing:.11em;font-size:.84rem}.quick-options{flex-wrap:wrap;align-items:flex-end;gap:1.15rem;display:flex}.continue-panel{border-left:3px solid var(--gold);align-items:center;gap:1rem;margin-top:1.4rem;padding:1.15rem 1.4rem;display:flex}.continue-icon{background:var(--gold-soft);color:#7b5b27;border-radius:50%;flex:none;place-items:center;width:42px;height:42px;display:grid}.continue-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.continue-copy{flex:1}.continue-copy h2{margin:.12rem 0 .18rem;font-size:1.25rem}.continue-copy p{color:var(--muted);margin:0;font-size:.78rem}.training-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.training-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-height:255px;box-shadow:var(--shadow-soft);flex-direction:column;padding:1.35rem;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex;position:relative;overflow:hidden}.training-card:before{content:"";pointer-events:none;border:1px solid #352b1d14;border-radius:50%;width:180px;height:180px;position:absolute;top:-90px;right:-70px;box-shadow:0 0 0 20px #352b1d06,0 0 0 45px #352b1d05}.training-card:hover{box-shadow:var(--shadow);border-color:var(--line-strong);transform:translateY(-4px)}.training-card-red{background:linear-gradient(155deg,#fffaf0,#f8e9df)}.training-card-green{background:linear-gradient(155deg,#fbf7ee,#e5efe8)}.training-card-gold{background:linear-gradient(155deg,#fffaf0,#f3e9d2)}.training-card-icon{width:43px;height:43px;color:var(--red);background:#fffaf0cc;border:1px solid #352b1d1a;border-radius:11px;place-items:center;margin-bottom:1.15rem;display:grid}.training-card-green .training-card-icon{color:var(--green-3)}.training-card-gold .training-card-icon{color:#99712c}.training-kicker{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:.65rem;font-weight:600}.training-card h3,.training-card h2{margin:.28rem 0 .45rem;font-size:1.35rem}.training-card p{color:var(--ink-soft);margin-bottom:1.3rem;font-size:.79rem;line-height:1.7}.training-footer{color:var(--muted);border-top:1px solid #352b1d1a;justify-content:space-between;align-items:center;gap:.6rem;margin-top:auto;padding-top:.85rem;font-size:.7rem;display:flex}.round-arrow{border:1px solid var(--line);background:#fffaf0b8;border-radius:50%;place-items:center;width:27px;height:27px;display:grid}.home-lower{grid-template-columns:1fr 1.08fr;gap:1rem;margin-top:1rem;display:grid}.progress-panel,.recent-panel{padding:1.35rem}.stat-grid{grid-template-columns:repeat(3,1fr);gap:.7rem;display:grid}.stat{background:#fffaf09e;border:1px solid #352b1d14;border-radius:10px;flex-direction:column;padding:.8rem;display:flex}.stat strong{font-family:var(--serif);font-size:1.65rem;line-height:1.2}.stat span{color:var(--muted);font-size:.68rem}.progress-note{color:var(--muted);align-items:center;gap:.4rem;margin:1rem 0 .5rem;font-size:.72rem;display:flex}.progress-note svg{color:var(--green-3)}.mini-progress{background:var(--line);border-radius:99px;height:3px;overflow:hidden}.mini-progress>span{background:var(--green-3);height:100%;display:block}.recent-list{flex-direction:column;display:flex}.recent-row{border-bottom:1px solid var(--line);align-items:center;gap:.65rem;padding:.58rem 0;display:flex}.recent-row:last-child{border-bottom:0;padding-bottom:0}.recent-row:hover .recent-main strong{color:var(--red-deep)}.result-dot{background:var(--muted-2);border-radius:50%;flex:none;width:7px;height:7px}.result-dot.win{background:#4a8469}.recent-main{flex-direction:column;flex:1;min-width:0;display:flex}.recent-main strong{font-size:.82rem;font-weight:600;transition:color .15s}.recent-main small{color:var(--muted);font-size:.68rem}.empty-mini{color:var(--muted);align-items:flex-start;gap:.7rem;padding:1rem 0;display:flex}.empty-mini-copy{flex-direction:column;align-items:flex-start;gap:.55rem;display:flex}.empty-mini p{margin:0;font-size:.78rem}.muted-icon{color:var(--muted-2)}.home-footnote{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;gap:1rem 2rem;margin-top:2rem;padding-top:1.1rem;font-size:.7rem;display:flex}.home-footnote>div{align-items:center;gap:.4rem;display:flex}.home-footnote svg{color:var(--gold)}.prep-card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft);background:linear-gradient(135deg,#fffaf0e6,#f1e3c56b);align-items:flex-start;gap:.85rem;padding:1.1rem 1.2rem;display:flex}.prep-card.prep-compact{border-radius:12px;padding:.8rem .9rem}.prep-card>svg{color:var(--gold);flex:none;margin-top:.12rem}.prep-icon{background:var(--gold-soft);color:#7b5b27;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;display:grid}.prep-body{flex:1;min-width:0}.prep-body strong{font-family:var(--serif);font-size:1rem;display:block}.prep-body p{color:var(--muted);margin:.18rem 0 .55rem;font-size:.76rem;line-height:1.55}.prep-body .prep-hint{margin:.55rem 0 0;font-size:.7rem}.prep-body a{color:var(--red-deep);text-underline-offset:2px;text-decoration:underline}.prep-meta{color:var(--muted);justify-content:space-between;gap:1rem;margin-top:.35rem;font-size:.67rem;display:flex}.prep-ready{background:#2d564614;border-color:#2d564633}.prep-ready>svg{color:var(--green-3)}.prep-error{background:#b33a320f;border-color:#b33a3229}.prep-error>svg{color:var(--red)}.prep-error .prep-meta{display:block}.prep-error .btn{align-self:center}.board-column,.board-under{min-width:0}.board-column,.board-frame{position:relative}.board-toolbar{justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:.7rem;display:flex}.board-toolbar-left{flex-wrap:wrap;align-items:center;gap:.55rem;min-width:0;display:inline-flex}.random-mode-label{background:var(--gold-soft);color:#8a682d;letter-spacing:.04em;white-space:nowrap;border-radius:999px;align-items:center;min-height:24px;padding:.1rem .5rem;font-size:.68rem;font-weight:600;display:inline-flex}.lesson-play-page .board-toolbar{height:32px;min-height:32px}.opening-board-float-actions{z-index:7;pointer-events:none;justify-content:center;align-items:center;padding:1rem;display:flex;position:absolute;inset:0}.opening-board-float-actions:not(.is-watch-controls){background:#f5eddc4d}.opening-review-panel{pointer-events:auto;flex-direction:column;align-items:center;gap:.65rem;padding:.25rem;display:flex}.opening-float-caption{color:var(--ink-soft);text-align:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffbf2ad;border:1px solid #ffffff94;border-radius:12px;align-items:center;gap:.42rem;padding:.5rem .8rem;font-size:.76rem;font-weight:600;line-height:1.4;display:inline-flex;box-shadow:0 8px 20px #1d24201f,inset 0 1px #ffffff94}.opening-review-actions{align-items:center;gap:.7rem;display:inline-flex}.opening-review-actions .btn{white-space:nowrap;border-radius:16px;min-width:118px;min-height:58px;padding:.65rem 1.05rem;font-size:.88rem;font-weight:700;box-shadow:0 16px 30px #1d24202e,0 4px 9px #1d24201a,inset 0 1px #ffffff38}.opening-review-actions .btn-primary{-webkit-backdrop-filter:blur(14px)saturate(125%);backdrop-filter:blur(14px)saturate(125%);background:#b33a32cc;border:1px solid #ffffff29}.opening-review-actions .btn-primary:hover:not(:disabled){background:#b33a32e6}.opening-review-actions .btn-ghost{color:var(--ink-soft);-webkit-backdrop-filter:blur(14px)saturate(120%);backdrop-filter:blur(14px)saturate(120%);background:#fffbf294;border:1px solid #ffffff9e}.opening-watch-controls{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:auto;background:#fffbf294;border:1px solid #ffffff94;border-radius:999px;align-items:center;gap:.35rem;padding:.28rem;display:inline-flex;box-shadow:0 8px 22px #1d242029,inset 0 1px #ffffff94}.opening-icon-button{width:36px;height:36px;color:var(--ink-soft);cursor:pointer;background:#ffffff8a;border:1px solid #2d56461f;border-radius:50%;place-items:center;padding:0;transition:background-color .15s,opacity .15s,transform .15s;display:inline-grid}.opening-icon-button:hover{background:#ffffffeb;transform:translateY(-1px)}.opening-icon-button.is-faint{color:#1d24208c;opacity:.58;background:#fffbf238;border-color:#2d564612}.opening-icon-button.is-faint:hover{opacity:1;background:#fffbf2b8}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.opening-board-float-actions:not(.is-watch-controls){-webkit-backdrop-filter:blur(6px)saturate(82%);backdrop-filter:blur(6px)saturate(82%);background:#f5eddc1a}.opening-review-panel{background:0 0}.opening-float-caption{-webkit-backdrop-filter:blur(16px)saturate(125%);backdrop-filter:blur(16px)saturate(125%);background:#fffbf27a}.opening-review-actions .btn-primary{-webkit-backdrop-filter:blur(16px)saturate(125%);backdrop-filter:blur(16px)saturate(125%);background:#b33a32b8}.opening-review-actions .btn-ghost{-webkit-backdrop-filter:blur(16px)saturate(135%);backdrop-filter:blur(16px)saturate(135%);background:#fffbf275}}.turn-chip{min-height:30px;color:var(--ink-soft);font-variant-numeric:tabular-nums;align-items:center;gap:.45rem;font-size:.8rem;font-weight:600;display:inline-flex}.turn-chip.is-thinking{color:var(--muted)}.turn-disc{background:var(--red);border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 3px #b33a321c}.turn-disc.b{background:var(--green);box-shadow:0 0 0 3px #10241e1f}.turn-sub{color:var(--muted);font-size:.68rem;font-weight:400}.board-shell{aspect-ratio:9/10;background:var(--board);border:1px solid #5e412061;border-radius:20px;width:100%;position:relative;overflow:hidden;box-shadow:0 24px 55px #4a30162b,0 5px 12px #4a301614,inset 0 0 0 3px #fff5da1f}.board-preview:after{content:"";z-index:3;border-radius:inherit;-webkit-backdrop-filter:blur(2.5px)saturate(1.06);backdrop-filter:blur(2.5px)saturate(1.06);pointer-events:none;background:linear-gradient(135deg,#fffdf829,#fffdf808 52%,#fffdf817);border:1px solid #ffffff52;position:absolute;inset:0;box-shadow:inset 0 1px #ffffff73,inset 0 0 22px #ffffff12}.board-svg{width:100%;height:100%;display:block}.board-grid-line{stroke:var(--board-line);stroke-width:2.3px;opacity:.9}.palace-line{stroke:var(--board-line);stroke-width:2.15px;opacity:.86}.river-text{fill:#74552f;opacity:.8;font-family:var(--serif);letter-spacing:9px;font-size:42px;font-weight:600}.piece .piece-disc{fill:#f1dcb2;stroke:#6c4825;stroke-width:4.2px}.piece .piece-ring{fill:none;stroke:#6c482557;stroke-width:1.4px}.piece-red .piece-disc{fill:#f7e5c2;stroke:#a8332b}.piece-red .piece-ring{stroke:#a8332b57}.piece-black .piece-disc{fill:#efe1c3;stroke:#1f3329}.piece-black .piece-ring{stroke:#1f332957}.piece-glyph{font-family:"STKaiti", "KaiTi", "Kaiti SC", "Songti SC", var(--serif);fill:#a8332b;pointer-events:none;font-size:51px;font-weight:600}.piece-black .piece-glyph{fill:#1d3028}.piece-selected .piece-disc{stroke:var(--gold);stroke-width:7px;filter:drop-shadow(0 0 6px #c69a4d80)}.piece-checked .piece-disc{stroke:var(--red);stroke-width:5px;filter:drop-shadow(0 0 8px #b33a328c)}.piece-hint .piece-disc{stroke:var(--gold);stroke-width:5px}.piece-capture-ring{fill:none;stroke-width:5.5px;opacity:.82;pointer-events:none}.legal-dot{fill:#2d564680;stroke:#fffaf0d1;stroke-width:2px;pointer-events:none}.ban-marker{pointer-events:none}.ban-marker-ring{fill:#c43c2e24;stroke:#c43c2ed9;stroke-width:3px}.ban-marker-cross{stroke:#c43c2ee6;stroke-width:3px;stroke-linecap:round}.legal-capture-mark{fill:none;stroke:#2f7a53;stroke-width:4px;pointer-events:none;filter:drop-shadow(0 0 4px #2f7a538c)}.last-move-marks circle{fill:none;stroke:#c69a4db8;stroke-width:2px;stroke-dasharray:4 5;pointer-events:none}.hint-arrow{stroke:var(--gold);stroke-width:7px;stroke-linecap:round;stroke-dasharray:12 11;opacity:.95;pointer-events:none}.hint-layer{pointer-events:none}.board-hit-layer{position:absolute;inset:0}.board-hit{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:50%;padding:0;position:absolute}.board-hit:hover{background:#fffaf01c}.board-hit:focus-visible{outline:2px solid var(--gold);outline-offset:-6px;background:#fffaf029}.board-controls{border:1px solid var(--line);background:#fffaf099;border-radius:12px;gap:.25rem;margin-top:.85rem;padding:.3rem;display:flex}.control-button{min-height:45px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:.32rem;font-size:.74rem;transition:background .15s,color .15s,opacity .15s;display:inline-flex}.control-button:hover:not(:disabled){background:var(--surface)}.control-button:disabled{opacity:.38;cursor:not-allowed}.control-button.danger{color:var(--red-deep)}.control-button.is-active{color:var(--red-deep);background:#c43c2e1f}.robot-card{background:linear-gradient(180deg, var(--surface) 0%, var(--surface-soft) 100%);border:1px solid var(--line);border-radius:16px;align-items:center;gap:.85rem;margin:.75rem 0;padding:.55rem 1rem .55rem .75rem;display:flex;box-shadow:0 10px 26px #1d242014}.robot-stage{perspective:520px;flex-shrink:0;width:64px;height:66px}.robot-inline{flex-shrink:0;width:48px;height:50px}.robot-inline .robot-stage,.robot-inline .robot{width:48px;height:50px}.robot{width:64px;height:66px;overflow:visible}.robot-body{transform-origin:60px 72px;transform-box:view-box;animation:3.6s ease-in-out infinite robot-breathe;transform:rotateX(9deg)}.robot-torso{transform-origin:60px 100px;transform-box:view-box}.robot-shadow{fill:#1d242029;animation:3.6s ease-in-out infinite robot-shadow-pulse}.robot-shine{fill:#fff;opacity:.16}.robot-antenna{stroke:var(--gold);stroke-width:3.2px;stroke-linecap:round}.robot-antenna-ball{transform-box:fill-box;transform-origin:50%;animation:3.2s ease-in-out infinite robot-glow}.robot-pupils{transform-box:fill-box;transform-origin:50%}.robot-lid{transform-box:fill-box;transform-origin:50%;animation:5s ease-in-out infinite robot-blink}.robot-mouth circle{transform-box:fill-box;transform-origin:50%;opacity:.5}.robot-card.is-thinking .robot-body,.robot-inline.is-thinking .robot-body{animation:2.2s ease-in-out infinite robot-sway}.robot-card.is-thinking .robot-shadow,.robot-inline.is-thinking .robot-shadow{animation:2.2s ease-in-out infinite robot-shadow-think}.robot-card.is-thinking .robot-antenna-ball,.robot-inline.is-thinking .robot-antenna-ball{animation:1s ease-in-out infinite robot-glow}.robot-card.is-thinking .robot-pupils,.robot-inline.is-thinking .robot-pupils{animation:1.7s ease-in-out infinite robot-scan}.robot-card.is-thinking .robot-lid,.robot-inline.is-thinking .robot-lid{animation:3.2s ease-in-out infinite robot-blink}.robot-card.is-thinking .robot-mouth circle,.robot-inline.is-thinking .robot-mouth circle{opacity:1;animation:1.15s ease-in-out infinite robot-dot}.robot-card.is-thinking .robot-mouth circle,.robot-inline.is-thinking .robot-mouth circle:nth-child(2){animation-delay:.18s}.robot-card.is-thinking .robot-mouth circle,.robot-inline.is-thinking .robot-mouth circle:nth-child(3){animation-delay:.36s}.robot-card-text{color:var(--ink-soft);flex-direction:column;gap:.12rem;display:flex}.robot-card-text strong{color:var(--ink);font-size:.92rem}.robot-card-text span{color:var(--muted);font-size:.76rem}@keyframes robot-breathe{0%,to{transform:rotateX(9deg)translateY(1px)}50%{transform:rotateX(9deg)translateY(-2px)}}@keyframes robot-sway{0%,to{transform:rotateX(9deg)rotateY(-11deg)translateY(1px)}50%{transform:rotateX(9deg)rotateY(11deg)translateY(-3px)}}@keyframes robot-shadow-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.75;transform:scale(.92)}}@keyframes robot-shadow-think{0%,to{opacity:1;transform:scale(1)}50%{opacity:.62;transform:scale(.86)}}@keyframes robot-scan{0%,to{transform:translate(-4px)}50%{transform:translate(4px)}}@keyframes robot-glow{0%,to{opacity:.5;transform:scale(.88)}50%{opacity:1;transform:scale(1.12)}}@keyframes robot-dot{0%,to{transform:translateY(1.5px)scale(.9)}50%{transform:translateY(-2px)scale(1.12)}}@keyframes robot-blink{0%,42%,48%,to{transform:scaleY(0)}45%{transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){.robot-body,.robot-card.is-thinking .robot-body,.robot-inline.is-thinking .robot-body,.robot-shadow,.robot-card.is-thinking .robot-shadow,.robot-inline.is-thinking .robot-shadow,.robot-antenna-ball,.robot-pupils,.robot-lid,.robot-mouth circle{animation:none}}.control-button.primary{background:var(--green);color:var(--white)}.control-button.primary:hover:not(:disabled){background:var(--green-2)}.board-help{color:var(--muted-2);text-align:center;margin:.65rem 0 0;font-size:.68rem}.player-block{min-width:0;position:relative}.robot-speak{cursor:pointer;background:0 0;border:0;border-radius:14px;flex:none;padding:0;display:inline-flex;position:relative}.robot-speak:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.robot-speak-badge{background:var(--gold);width:16px;height:16px;color:var(--white);border:1px solid #fffdf8d9;border-radius:50%;place-items:center;font-size:10px;font-weight:700;line-height:1;display:grid;position:absolute;bottom:0;right:-3px;box-shadow:0 2px 6px #3828162e}.comic-tip{--comic-border:#352b1d5c;z-index:5;border:1.5px solid var(--comic-border);background:var(--white);color:var(--ink-soft);transform-origin:10px 100%;border-radius:16px;padding:.55rem 1.6rem .55rem .75rem;font-size:.72rem;line-height:1.55;animation:.18s cubic-bezier(.2,.8,.2,1) both comic-tip-in;position:absolute;bottom:calc(100% - 8px);left:58px;right:0;box-shadow:0 10px 26px #38281624}.comic-tip-tail{pointer-events:none;width:16px;height:34px;position:absolute;top:26px;left:-14px;overflow:visible}.comic-tip-tail-fill{fill:var(--white)}.comic-tip-tail-line{fill:none;stroke:var(--comic-border);stroke-width:1.5px;stroke-linejoin:round}.comic-tip.is-notice{--comic-border:#b33a326b;color:var(--red-deep)}.capture-glyph{font-family:var(--serif);padding:0 .04em;font-size:1.06em;font-style:normal;font-weight:700}.capture-glyph.red{color:var(--red)}.capture-glyph.black{color:var(--green-3)}.comic-tip p{margin:0}.comic-tip-close{width:20px;height:20px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:5px;right:6px}.comic-tip-close:hover{color:var(--ink);background:#352b1d0f}@keyframes comic-tip-in{0%{opacity:0;transform:translateY(-4px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.comic-tip{animation:none}}.check-banner{background:var(--red-soft);color:var(--red-deep);border-radius:8px;align-items:center;gap:.4rem;margin-top:.55rem;padding:.55rem .7rem;font-size:.78rem;font-weight:600;display:flex}.engine-inline{margin-top:.8rem}.play-page{padding-top:0}.app-shell.is-game-route .page{animation:.18s both game-page-fade}.play-topline{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:0;display:flex}.play-topline .back-link{margin-bottom:0}.play-meta{color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:.3rem;font-size:.72rem;display:inline-flex}.play-topline-right{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;min-width:0;display:flex}.play-layout{grid-template-columns:minmax(0,1fr) minmax(290px,340px);align-items:start;gap:clamp(1.2rem,3vw,2.2rem);display:grid}.play-side{flex-direction:column;gap:.8rem;display:flex}.board-toolbar-actions{flex-wrap:nowrap;flex:none;justify-content:flex-end;align-items:center;gap:.45rem;min-width:0;margin-left:auto;display:flex}.play-page .board-toolbar{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);height:32px;min-height:32px;display:grid}.play-page .board-toolbar>.turn-chip{justify-self:start;min-width:0}.play-page .board-toolbar>.board-time{justify-self:center}.play-page .board-toolbar>.board-toolbar-actions{justify-self:end}.game-board-toolbar .turn-sub{display:none}.board-time{border:1px solid var(--line);min-height:30px;color:var(--muted);white-space:nowrap;background:#fffaf09e;border-radius:999px;padding:.25rem .55rem;font-size:.72rem;font-weight:600}.side-card{border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-soft);background:#fffaf0c7;padding:1.05rem}.side-heading{justify-content:space-between;align-items:center;gap:.7rem;margin-bottom:.8rem;display:flex}.side-level{color:var(--muted);font-size:.68rem}.player-row{align-items:center;gap:.65rem;padding:.35rem 0;display:flex}.player-row>div:nth-child(2){flex-direction:column;flex:1;display:flex}.player-row strong{font-size:.84rem}.player-row span{color:var(--muted);font-size:.68rem}.player-row>svg{color:var(--green-3)}.player-avatar{width:39px;height:39px;color:var(--green);font-family:var(--serif);background:#e5d3ae;border:2px solid #927348;border-radius:50%;flex:none;place-items:center;font-size:1.35rem;display:grid}.player-avatar.red{color:var(--red);border-color:var(--red);background:#f4ddc4}.player-avatar.black{color:var(--green);border-color:var(--green-3);background:#e5d3ae}.player-avatar.active{box-shadow:0 0 0 3px #c69a4d2e}.vs-line{color:var(--muted-2);letter-spacing:.18em;align-items:center;gap:.5rem;margin:.28rem 0;font-size:.58rem;display:flex}.vs-line span{background:var(--line);flex:1;height:1px}.side-meta{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:1rem;margin-top:.5rem;padding-top:.7rem;font-size:.68rem;display:flex}.move-card{min-height:0}.move-list{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;max-height:285px;padding-right:.15rem;overflow-y:auto}.move-row{border-bottom:1px solid #352b1d0f;grid-template-columns:2.1rem 1fr 1fr;align-items:center;gap:.25rem;min-height:30px;display:grid}.move-row:last-child{border-bottom:0}.move-number{color:var(--muted-2);text-align:right;padding-right:.35rem;font-size:.68rem}.move-item{min-width:0;color:var(--ink-soft);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:.3rem;padding:.25rem .3rem;font-size:.77rem;display:flex}.move-item:disabled{cursor:default}.move-item:hover:not(:disabled){background:var(--surface-soft)}.move-item.is-active{background:var(--gold-soft);color:var(--ink)}.move-item.is-capture{color:var(--red-deep)}.move-glyph{font-family:var(--serif);color:var(--muted);font-size:.7rem}.move-glyph.r{color:var(--red)}.move-empty{display:block}.hint-note{border-top:1px solid var(--line);color:#7b5b27;align-items:flex-start;gap:.4rem;margin-top:.7rem;padding-top:.7rem;font-size:.72rem;display:flex}.hint-note svg{flex:none;margin-top:.15rem}.engine-note p{color:var(--muted);font-size:.75rem;line-height:1.7}.engine-note .text-link{font-size:.73rem}.result-card{border-radius:var(--radius-sm);background:linear-gradient(135deg,#2d564614,#fffaf0cc);border:1px solid #2d564629;align-items:center;gap:.9rem;margin-top:.85rem;padding:1rem 1.1rem;display:flex}.board-frame>.result-card{z-index:8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffcf5f7;border-color:#2d56463d;border-radius:14px;flex-direction:column;align-items:stretch;gap:.7rem;width:min(100% - 24px,380px);margin:0;padding:.95rem 1rem;animation:.24s cubic-bezier(.18,.9,.22,1) both result-card-center-in;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 22px 55px #1d242042}.board-frame>.result-card>.result-mark{align-self:center}.board-frame>.result-card>div:nth-child(2){text-align:center}.board-frame>.result-card .result-actions{justify-content:center}.board-frame>.lesson-result-card{z-index:8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffcf5f7;border-radius:14px;flex-direction:column;align-items:stretch;width:min(100% - 24px,390px);margin:0;padding:.95rem 1rem;animation:.24s cubic-bezier(.18,.9,.22,1) both result-card-center-in;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 22px 55px #1d242042}.board-frame>.lesson-result-card>.result-mark{align-self:center}.board-frame>.lesson-result-card>div:nth-child(2){text-align:center}.board-frame>.lesson-result-card .board-result-actions{justify-content:center;margin-top:0}.result-card.result-draw{border-color:var(--line);background:var(--surface)}@keyframes result-card-center-in{0%{opacity:0;transform:translate(-50%,-45%)scale(.98)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.result-mark{width:45px;height:45px;color:var(--green-3);background:#2d56461f;border-radius:50%;flex:none;place-items:center;display:grid}.result-card>div:nth-child(2){flex:1}.result-card h2{margin:.1rem 0;font-size:1.25rem}.result-card p{color:var(--muted);margin:0;font-size:.72rem}.result-actions{flex-wrap:wrap;gap:.4rem;display:flex}.board-result-layer{z-index:6;pointer-events:none;place-items:center;padding:1rem;display:grid;position:absolute;inset:0}.board-result{pointer-events:auto;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffcf5f7;border:1px solid #2d564629;border-radius:16px;width:min(88%,350px);padding:.95rem 1rem;animation:.24s cubic-bezier(.2,.8,.2,1) both board-result-in;box-shadow:0 24px 55px #1d24203d}.board-result-head{align-items:center;gap:.65rem;display:flex}.board-result-mark{width:38px;height:38px;color:var(--green-3);background:#2d56461f;border-radius:50%;flex:none;place-items:center;display:grid}.board-result.is-loss .board-result-mark{color:var(--red-deep);background:#b33a321a}.board-result.is-draw .board-result-mark{color:var(--gold);background:#c69a4d24}.board-result-copy{flex-direction:column;gap:.12rem;min-width:0;display:flex}.board-result-copy strong{font-family:var(--serif);font-size:1.08rem;line-height:1.3}.board-result-copy span{color:var(--muted);font-size:.7rem}.board-result-actions{flex-wrap:wrap;gap:.4rem;margin-top:.8rem;display:flex}@keyframes board-result-in{0%{opacity:0;transform:translateY(6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.board-result{animation:none}}.setup-page{max-width:980px;margin:0 auto}.setup-heading{max-width:620px;margin-bottom:1.6rem}.setup-heading h1{margin-top:.45rem;font-size:clamp(2.2rem,4.5vw,3.8rem)}.setup-heading p{color:var(--muted);font-size:.9rem}.setup-grid{grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);align-items:start;gap:1rem;display:grid}.setup-panel{flex-direction:column;gap:1.5rem;padding:clamp(1.2rem,3vw,1.8rem);display:flex}.choice-grid{grid-template-columns:1fr 1fr;gap:.65rem;display:grid}.choice-card{border:1px solid var(--line);background:var(--surface-soft);text-align:left;cursor:pointer;border-radius:12px;flex-direction:column;align-items:flex-start;gap:.18rem;padding:1rem;transition:border-color .15s,background .15s,transform .15s;display:flex}.choice-card:hover{border-color:var(--line-strong);transform:translateY(-2px)}.choice-card.is-selected{border-color:var(--red);background:linear-gradient(150deg,#fffaf0,#f8e9df);box-shadow:inset 0 0 0 1px #b33a3226}.choice-emblem{width:38px;height:38px;color:var(--green);font-family:var(--serif);background:#e5d3ae;border:1.5px solid #927348;border-radius:9px;place-items:center;margin-bottom:.35rem;font-size:1.35rem;display:grid}.choice-emblem.red{background:var(--red-soft);color:var(--red);border-color:var(--red)}.choice-card strong{font-size:.9rem}.choice-card>span:last-child{color:var(--muted);font-size:.7rem}.level-list{flex-direction:column;gap:.35rem;display:flex}.level-row{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;align-items:center;gap:.7rem;padding:.65rem .75rem;display:flex}.level-row:hover{background:var(--surface-soft)}.level-row.is-selected{border-color:var(--line-strong);background:var(--surface-soft)}.level-number{color:var(--gold);font-family:ui-monospace,monospace;font-size:.71rem}.level-row>span:nth-child(2){flex-direction:column;flex:1;display:flex}.level-row strong{font-size:.84rem}.level-row small{color:var(--muted);font-size:.7rem}.level-row>svg{color:var(--red)}.setup-side{flex-direction:column;gap:.8rem;display:flex}.setup-about h2{font-size:1.2rem}.setup-footnote{color:var(--muted);text-align:center;margin:0;font-size:.7rem}.page-heading{max-width:700px;margin-bottom:1.6rem}.page-heading h1{text-wrap:balance;margin-top:.3rem}.page-heading p{color:var(--muted);font-size:.86rem}.favorite-toggle{border:1px solid var(--line-strong);min-height:32px;color:var(--muted);font:inherit;cursor:pointer;background:#fffaf0a8;border-radius:999px;align-items:center;gap:.3rem;padding:.28rem .62rem;font-size:.72rem;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.favorite-toggle:hover{color:var(--ink);border-color:var(--line-strong);background:var(--surface)}.favorite-toggle.is-favorite{color:#8a682d;background:var(--gold-soft);border-color:#c69a4d66}.favorite-label{color:#8a682d;white-space:nowrap;align-items:center;gap:.22rem;font-size:.68rem;display:inline-flex}.favorite-mark{color:var(--gold);flex:none}.training-grid-large .training-card{min-height:290px}.training-progress-label{align-items:center;gap:.2rem;display:inline-flex}.training-progress{background:#352b1d14;border-radius:99px;width:100%;height:3px;margin-top:.55rem;overflow:hidden}.training-progress>span{background:var(--red);height:100%;display:block}.training-card-green .training-progress>span{background:var(--green-3)}.training-card-gold .training-progress>span{background:var(--gold)}.train-summary{grid-template-columns:.9fr 1.1fr;gap:1rem;margin-top:1rem;display:grid}.train-progress-panel,.train-note-panel{padding:1.35rem}.train-tip{border-radius:var(--radius);background:#f1e3c542;border:1px dashed #352b1d33;align-items:flex-start;gap:.9rem;margin-top:1.3rem;padding:1.1rem 1.3rem;display:flex}.tip-mark{background:var(--gold-soft);color:#8a682d;width:36px;height:36px;font-family:var(--serif);border-radius:50%;flex:none;place-items:center;font-size:1.15rem;display:grid}.train-tip strong{font-family:var(--serif);font-size:.95rem}.train-tip p{color:var(--muted);margin:.12rem 0 0;font-size:.76rem}.list-heading{justify-content:space-between;align-items:flex-end;gap:1rem;max-width:none;display:flex}.list-progress-badge{color:var(--muted);white-space:nowrap;align-items:baseline;gap:.25rem;display:flex}.list-progress-badge strong{font-family:var(--serif);color:var(--ink);font-size:2rem;line-height:1}.list-progress-badge span{font-size:.7rem}.list-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.list-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.list-search{border:1px solid var(--line-strong);background:var(--surface);width:min(260px,100%);min-height:2.3rem;color:var(--ink);font:inherit;border-radius:9px;padding:.45rem .75rem;font-size:.82rem}.list-search:focus{outline:2px solid var(--green);outline-offset:1px}.list-more{width:100%;margin-top:1rem}.tactic-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.tactic-card{border:1px solid var(--line);background:#fffaf0bd;border-radius:13px;align-items:flex-start;gap:.85rem;padding:1rem;transition:transform .15s,border-color .15s,background .15s;display:flex;position:relative}.tactic-card:hover{border-color:var(--line-strong);background:var(--surface);transform:translateY(-2px)}.tactic-card.is-done{background:#2d564609}.tactic-order{color:var(--gold);padding-top:.1rem;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.73rem}.tactic-content{flex:1;min-width:0}.tactic-theme{color:var(--red-deep);letter-spacing:.04em;font-size:.65rem;font-weight:600}.tactic-content h2{margin:.16rem 0 .25rem;font-size:1.05rem}.tactic-content p{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 .45rem;font-size:.73rem;line-height:1.55;display:-webkit-box;overflow:hidden}.tactic-meta{color:var(--muted-2);flex-wrap:wrap;align-items:center;gap:.55rem;font-size:.66rem;display:flex}.tactic-status{color:var(--muted-2);flex:none;padding-top:.1rem}.tactic-status.done{color:var(--green-3)}.list-source{margin-top:1.3rem}.lesson-meta-strip{color:var(--muted);flex-wrap:wrap;gap:.75rem;font-size:.7rem;display:flex}.lesson-meta-strip span+span:before{content:"·";color:var(--muted-2);margin-right:.75rem}.lesson-toolbar-primary{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.sort-note{color:var(--muted);white-space:nowrap;font-size:.7rem}.lesson-level-filter{flex-wrap:wrap}.lesson-list{flex-direction:column;gap:.55rem;display:flex}.lesson-row{border:1px solid var(--line);background:#fffaf0b8;border-radius:12px;align-items:center;gap:.8rem;padding:1rem 1.1rem;transition:border-color .15s,background .15s,transform .15s;display:flex}.lesson-row:hover{border-color:var(--line-strong);background:var(--surface);transform:translateY(-1px)}.lesson-row.is-done{background:#2d56460b}.lesson-number{color:var(--gold);font-family:ui-monospace,monospace;font-size:.72rem}.lesson-icon{background:var(--surface-soft);width:38px;height:38px;color:var(--red);border-radius:9px;flex:none;place-items:center;display:grid}.lesson-main{flex-direction:column;flex:1;min-width:0;display:flex}.lesson-topline{align-items:center;gap:.5rem;display:flex}.lesson-level{color:var(--muted);font-size:.62rem}.lesson-main strong{font-family:var(--serif);margin:.1rem 0;font-size:1.02rem}.lesson-main small{color:var(--muted);font-size:.68rem}.lesson-state{color:var(--muted-2);white-space:nowrap;align-items:center;gap:.25rem;font-size:.68rem;display:inline-flex}.lesson-state.done{color:var(--green-3)}.lesson-arrow{color:var(--muted-2)}.training-layout{align-items:start}.training-play-page .board-column{max-width:640px}.exercise-title{margin:0 0 .25rem;font-size:1.45rem}.exercise-subtitle{color:var(--muted);margin-bottom:.9rem;font-size:.78rem}.exercise-stats{color:var(--muted);border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap;gap:.75rem;margin-bottom:.85rem;padding:.55rem 0;font-size:.7rem;display:flex}.exercise-stats span{align-items:center;gap:.25rem;display:inline-flex}.exercise-goal{color:var(--ink-soft);margin-bottom:.8rem;font-size:.8rem}.exercise-goal strong{color:var(--red-deep);margin-right:.3rem}.hint-box,.explanation-box,.comment-box{color:#6b542d;background:#f1e3c54d;border:1px solid #c69a4d40;border-radius:9px;margin-bottom:.85rem;padding:.75rem;font-size:.75rem}.hint-box{align-items:flex-start;gap:.4rem;display:flex}.hint-box svg{flex:none;margin-top:.15rem}.hint-box p,.explanation-box p,.comment-box p{margin:0;line-height:1.65}.explanation-box{color:var(--ink-soft);background:#2d56460f;border-color:#2d56462e}.comment-box{border-color:var(--line);background:var(--surface-soft);color:var(--ink-soft)}.comment-box .eyebrow{margin-bottom:.25rem}.source-info{color:var(--muted-2);border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:.7rem;margin-top:.65rem;padding-top:.75rem;font-size:.64rem;display:flex}.tactic-result{background:#2d56460f;border:1px solid #2d56462e;border-radius:11px;align-items:center;gap:.8rem;margin-top:.8rem;padding:.95rem 1rem;display:flex}.tactic-result h2{margin:.08rem 0;font-size:1.15rem}.tactic-result p{color:var(--muted);margin:0;font-size:.72rem}.line-progress{margin-top:.8rem}.line-progress-label{color:var(--muted);justify-content:space-between;gap:1rem;margin-bottom:.35rem;font-size:.7rem;display:flex}@media (max-width:600px){.opening-review-actions .btn{min-height:44px}}.lesson-intro{color:var(--ink-soft);font-size:.8rem;line-height:1.75}.key-points{margin-top:.9rem}.key-points .eyebrow{margin-bottom:.35rem}.line-selector{flex-direction:column;gap:.3rem;display:flex}.line-selector button{border:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;border-radius:7px;padding:.45rem .55rem;font-size:.76rem}.line-selector button.is-selected{border-color:var(--red);background:var(--red-soft)}.source-card p{margin-bottom:.3rem;font-size:.76rem}.board-toast{z-index:5;pointer-events:none;justify-content:center;align-items:flex-start;padding:18% 12% 0;display:flex;position:absolute;inset:0}.board-toast-pill{max-width:100%;color:var(--white);text-align:left;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:auto;background:#10241ef0;border:1px solid #c69a4d52;border-radius:999px;align-items:center;gap:.45rem;padding:.62rem 1rem;font-size:.82rem;line-height:1.25;animation:.22s cubic-bezier(.2,.8,.2,1) both toast-in;display:inline-flex;box-shadow:0 14px 34px #1d242042}.board-toast-pill.is-error{background:#7a2822f5;border-color:#ffffff2e;box-shadow:0 14px 34px #4616124d,inset 0 1px #ffffff24}.board-toast-pill.is-warning{background:#6f4e18f5;border-color:#fff4cd4d}.board-toast-action{min-height:28px;color:inherit;cursor:pointer;background:#ffffff24;border:1px solid #ffffff6b;border-radius:999px;flex:none;margin-left:.15rem;padding:.18rem .62rem;font-size:.72rem;font-weight:700}.board-toast-action:hover{background:#ffffff3d}.board-toast-pill svg{color:var(--gold);flex:none}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.board-toast-pill{animation:none}}.dialog{background:0 0;border:0;width:100%;max-width:min(440px,100vw - 32px);padding:0;overflow:visible}.dialog::backdrop{-webkit-backdrop-filter:blur(7px)saturate(.92);backdrop-filter:blur(7px)saturate(.92);background:radial-gradient(circle at 50% 18%,#c69a4d24,#0000 34%),#0c181494}.dialog-card{isolation:isolate;background:radial-gradient(circle at 100% 0,#c69a4d26,#0000 18rem),linear-gradient(155deg,#fffdf8 0%,#fbf5e9 100%);border:1px solid #6f502a3d;border-radius:22px;max-height:min(82vh,720px);position:relative;overflow:hidden;box-shadow:0 34px 90px #0e181457,0 8px 24px #0e181429,inset 0 1px #ffffffc7}.dialog-card:before{content:"";background:linear-gradient(90deg, var(--red), var(--gold), var(--green-3));opacity:.94;height:4px;position:absolute;inset:0 0 auto}.dialog-card:after{content:"";z-index:-1;pointer-events:none;border:1px solid #7e5b2c1a;border-radius:50%;width:180px;height:180px;position:absolute;top:-74px;right:-54px;box-shadow:0 0 0 22px #7e5b2c09,0 0 0 46px #7e5b2c06}.dialog[open] .dialog-card{animation:.22s cubic-bezier(.18,.9,.22,1) both dialog-enter}.dialog-head{justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 1.25rem .9rem;display:flex}.dialog-heading{align-items:center;gap:.75rem;min-width:0;display:flex}.dialog-seal{background:var(--red);color:#fff2d8;width:38px;height:38px;font-family:var(--serif);border-radius:10px;flex:none;place-items:center;font-size:1.25rem;display:grid;box-shadow:inset 0 0 0 2px #fff1d259,0 7px 16px #8f2d2733}.dialog-title-group{min-width:0}.dialog-kicker{color:var(--muted);letter-spacing:.2em;margin-bottom:.1rem;font-size:.58rem;font-weight:700;display:block}.dialog-head h2{margin:0;font-size:1.38rem;line-height:1.25}.dialog-close{width:34px;height:34px;color:var(--muted);cursor:pointer;background:#fffdf8b8;border:1px solid #352b1d1f;border-radius:50%;flex:none;place-items:center;padding:0;transition:color .15s,background .15s,border-color .15s,transform .15s;display:grid}.dialog-close:hover{color:var(--ink);background:var(--surface);border-color:#352b1d38;transform:rotate(4deg)}.dialog-body{max-height:min(58vh,500px);color:var(--ink-soft);padding:.3rem 1.25rem 1.3rem;font-size:.88rem;line-height:1.72;overflow:auto}.dialog-body p{color:var(--muted);margin:0}.dialog-footer{border-top:1px solid var(--line);background:#f7efdfc2;justify-content:flex-end;gap:.55rem;padding:.9rem 1.25rem 1.1rem;display:flex}.dialog-footer .btn{min-width:82px;min-height:42px}@keyframes dialog-enter{0%{opacity:0;transform:translateY(14px)scale(.975)}to{opacity:1;transform:translateY(0)scale(1)}}@media (max-width:560px){.dialog{width:100%;max-width:none;margin:0;inset:auto 0 0}.dialog-card{max-height:min(86vh,760px);padding-bottom:env(safe-area-inset-bottom);border-bottom:0;border-radius:24px 24px 0 0;box-shadow:0 -24px 70px #0e18144d,inset 0 1px #fffc}.dialog[open] .dialog-card{animation:.24s cubic-bezier(.18,.9,.22,1) both dialog-sheet-enter}.dialog-head{padding:1.15rem 1rem .85rem}.dialog-heading{gap:.62rem}.dialog-seal{width:34px;height:34px;font-size:1.1rem}.dialog-head h2{font-size:1.25rem}.dialog-body{max-height:60vh;padding:.25rem 1rem 1.15rem;font-size:.9rem}.dialog-footer{padding:.8rem 1rem calc(.9rem + env(safe-area-inset-bottom))}.dialog-footer .btn{flex:1}}@keyframes dialog-sheet-enter{0%{opacity:0;transform:translateY(36px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.dialog[open] .dialog-card{animation:none}}.review-heading{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.2rem;display:flex}.review-heading h1{margin:.2rem 0}.review-heading p{color:var(--muted);margin:0;font-size:.78rem}.review-controls{justify-content:center;align-items:center;gap:.2rem;margin-top:.3rem;display:flex}.review-counter{text-align:center;min-width:58px;color:var(--muted);font-variant-numeric:tabular-nums;font-size:.72rem}.history-summary{border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);flex-wrap:wrap;gap:1.2rem;margin-bottom:1rem;padding:.8rem 1rem;font-size:.72rem;display:flex}.history-summary strong{color:var(--ink);font-family:var(--serif);margin-right:.2rem;font-size:1.1rem}.history-list{flex-direction:column;gap:.5rem;display:flex}.history-row{border:1px solid var(--line);background:#fffaf0b8;border-radius:12px;align-items:stretch;display:flex;overflow:hidden}.history-main{flex:1;align-items:center;gap:.8rem;min-width:0;padding:.8rem 1rem;display:flex}.history-main:hover .history-copy strong{color:var(--red-deep)}.history-result{background:var(--surface-soft);width:34px;height:34px;color:var(--muted);font-family:var(--serif);border:1px solid var(--line);border-radius:50%;flex:none;place-items:center;font-size:.88rem;display:grid}.history-result.win{color:var(--green-3);background:#2d564617;border-color:#2d56462e}.history-result.loss{background:var(--red-soft);color:var(--red-deep);border-color:#b33a3226}.history-copy{flex-direction:column;min-width:0;display:flex}.history-copy strong{font-size:.83rem;transition:color .15s}.history-meta{color:var(--muted);flex-wrap:wrap;gap:.3rem .7rem;font-size:.68rem;display:flex}.history-meta span{align-items:center;gap:.22rem;display:inline-flex}.history-chevron{color:var(--muted-2);margin-left:auto}.history-delete{border-left:1px solid var(--line);border-radius:0;width:42px;height:auto}.empty-state{text-align:center;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;padding:3.5rem 1.5rem;display:flex}.empty-state h1,.empty-state h2{color:var(--ink);margin:.65rem 0 .3rem}.empty-state p{max-width:28rem;margin-bottom:1.1rem;font-size:.83rem}.empty-state svg{color:var(--gold)}.not-found-mark{font-family:var(--serif);color:var(--gold);opacity:.7;font-size:4rem}.settings-layout{grid-template-columns:minmax(0,1fr) 310px;align-items:start;gap:1rem;display:grid}.settings-main{flex-direction:column;gap:.9rem;display:flex}.settings-side{flex-direction:column;gap:.75rem;display:flex}.settings-section{padding:1.25rem}.settings-section h2{margin-bottom:.3rem}.settings-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:1.2rem;padding:.9rem 0;display:flex}.settings-row strong{font-size:.83rem}.settings-row p{color:var(--muted);margin:.15rem 0 0;font-size:.7rem}.settings-lede{color:var(--muted);margin-bottom:1rem;font-size:.78rem;line-height:1.7}.toggle-group{flex-wrap:wrap;justify-content:flex-end;gap:.35rem;display:flex}.toggle{border:1px solid var(--line);min-height:32px;color:var(--muted);cursor:pointer;background:0 0;border-radius:7px;align-items:center;gap:.3rem;padding:.35rem .55rem;font-size:.7rem;display:inline-flex}.toggle.is-on{color:var(--green-3);background:#2d564612;border-color:#2d564638}.engine-settings-progress{background:var(--surface-soft);border-radius:10px;margin-bottom:.9rem;padding:.9rem}.engine-progress-meta{color:var(--muted);justify-content:space-between;gap:1rem;margin:.35rem 0 .65rem;font-size:.68rem;display:flex}.engine-details .info-list{border-top:1px solid var(--line)}.engine-actions{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.danger-text{color:var(--red-deep)}.settings-actions{flex-wrap:wrap;gap:.5rem;display:flex}.license-note{background:linear-gradient(145deg, var(--surface), var(--gold-soft));flex-direction:column;gap:.25rem;display:flex}.license-note>svg{color:var(--gold)}.license-note p,.settings-side .side-card p{color:var(--muted);margin-bottom:.35rem;font-size:.74rem;line-height:1.7}.settings-version{color:var(--muted-2);text-align:center;margin-top:1.5rem;font-size:.65rem}.about-hero{border-bottom:1px solid var(--line);align-items:center;gap:1.3rem;padding:1.4rem 0 2rem;display:flex}.about-seal{background:var(--red);color:#fff2d8;width:84px;height:84px;font-family:var(--serif);border-radius:18px;flex:none;place-items:center;font-size:3.2rem;display:grid;box-shadow:inset 0 0 0 5px #fff1d23d,0 14px 26px #8f2d272e}.about-hero h1{text-wrap:balance;margin:.3rem 0 .45rem}.about-hero p{color:var(--muted);max-width:720px;margin:0;font-size:.85rem}.about-hero>div:last-child{flex:1;min-width:0}.about-grid{grid-template-columns:1fr 1fr;gap:.9rem;margin-top:1rem;display:grid}.about-section{gap:.9rem;padding:1.2rem;display:flex}.about-icon{background:var(--surface-soft);width:40px;height:40px;color:var(--gold);border-radius:10px;flex:none;place-items:center;display:grid}.about-section h2{margin:.2rem 0 .5rem;font-size:1.3rem}.about-section p{color:var(--ink-soft);margin-bottom:.65rem;font-size:.79rem;line-height:1.75}.license-links{flex-wrap:wrap;gap:.35rem;display:flex}.license-links a{border:1px solid var(--line);color:var(--ink-soft);border-radius:6px;padding:.3rem .5rem;font-size:.7rem}.license-links a:hover{background:var(--surface-soft);border-color:var(--line-strong)}.about-source{margin-top:.9rem;padding:1.3rem}.about-source h2{margin:.2rem 0 .8rem}.source-links{flex-wrap:wrap;gap:.7rem 1.2rem;margin-bottom:.9rem;display:flex}.source-links a{color:var(--red-deep);border-bottom:1px solid #b33a3240;align-items:center;gap:.25rem;padding-bottom:.08rem;font-size:.76rem;display:inline-flex}.about-footer{color:var(--muted);align-items:center;gap:.45rem;padding-top:1.3rem;font-size:.7rem;display:flex}.about-footer svg{color:var(--red)}.loading-page{min-height:45vh;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;display:flex}.loading-page p{font-size:.82rem}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes page-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes game-page-fade{0%{opacity:.55}to{opacity:1}}@media (max-width:1050px){.home-hero{grid-template-columns:minmax(0,1fr) 300px;gap:2rem}.hero-emblem{width:220px}.play-layout{grid-template-columns:minmax(0,1fr) 310px;gap:1.2rem}.quick-start{flex-direction:column;align-items:flex-start;gap:1rem}.quick-options{width:100%}}@media (max-width:880px){.hero-engine-status{display:none}.header-inner,.main-content,.site-footer{width:min(100% - 32px,720px)}.desktop-nav{display:none}.header-inner{min-height:62px}.engine-badge{margin-left:auto}.main-content{padding-top:1.5rem;padding-bottom:6.2rem}.site-footer{padding-bottom:5.5rem}.bottom-nav{z-index:60;left:50%;bottom:max(10px, env(safe-area-inset-bottom));border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffaf0f0;border-radius:18px;width:min(94%,510px);padding:.38rem;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 12px 40px #2c21142e}.bottom-nav.is-suppressed{display:none}.bottom-link{color:var(--muted);border-radius:13px;flex-direction:column;flex:1;align-items:center;gap:.12rem;padding:.34rem .2rem;font-size:.6rem;display:flex}.bottom-link.is-active{color:var(--red-deep);background:var(--red-soft)}.home-hero{grid-template-columns:1fr;gap:1.2rem;padding-top:1.4rem}.hero-side{display:none}.home-hero h1{font-size:clamp(3.4rem,12vw,5rem)}.home-hero:after{display:none}.training-grid,.training-grid-large{grid-template-columns:1fr;gap:.75rem}.training-card{min-height:0}.home-lower,.train-summary{grid-template-columns:1fr}.play-layout,.review-layout{grid-template-columns:1fr;gap:1rem}.play-side{grid-template-columns:1fr;display:grid}.training-play-page .board-column{max-width:none}.setup-grid,.settings-layout{grid-template-columns:1fr}.settings-side{grid-template-columns:1fr 1fr;display:grid}.about-grid{grid-template-columns:1fr}.quick-options{grid-template-columns:1fr;align-items:stretch;display:grid}.quick-options .btn{width:100%}.list-heading{flex-direction:column;align-items:flex-start}.tactic-grid{grid-template-columns:1fr}.history-result{width:30px;height:30px}}@media (max-width:560px){.header-inner,.main-content,.site-footer{width:calc(100% - 24px)}.brand-word small{display:none}.brand-seal{width:34px;height:34px;font-size:21px}.main-content{padding-top:1.1rem}.home-hero{padding-bottom:1.7rem}.hero-lede{font-size:.9rem;line-height:1.8}.hero-actions{grid-template-columns:1fr;display:grid}.hero-actions .btn{width:100%}.section{margin-top:1.7rem}.section-heading{flex-direction:column;align-items:flex-start;gap:.35rem}.home-lower,.train-summary{margin-top:.75rem}.progress-panel,.recent-panel,.settings-section,.train-progress-panel,.train-note-panel,.quick-start{padding:1rem}.continue-panel{flex-wrap:wrap;padding:1rem}.continue-panel .btn{width:100%}.continue-copy{min-width:calc(100% - 3.2rem)}.board-shell{border-radius:15px}.piece-glyph{font-size:51px}.board-controls{gap:.1rem;padding:.22rem}.control-button{flex-direction:column;gap:.1rem;min-height:43px;font-size:.66rem}.play-side{gap:.65rem}.side-card{padding:.9rem}.move-list{max-height:220px}.result-card{flex-wrap:wrap;padding:.9rem}.result-actions{width:100%}.result-actions .btn{flex:1}.setup-panel{gap:1.1rem;padding:1rem}.choice-grid{grid-template-columns:1fr}.settings-row{flex-direction:column;align-items:flex-start;gap:.55rem}.toggle-group,.settings-actions,.engine-actions{width:100%}.toggle{flex:1;justify-content:center}.settings-side{grid-template-columns:1fr}.lesson-row{flex-wrap:wrap;gap:.5rem;padding:.85rem}.lesson-main{min-width:calc(100% - 6.2rem)}.lesson-state{margin-left:auto}.lesson-arrow{display:none}.review-heading{flex-direction:column;align-items:flex-start}.history-main{gap:.55rem;padding:.7rem}.history-meta{gap:.2rem .5rem;font-size:.62rem}.history-meta span:nth-child(2){display:none}.history-delete{width:36px}.about-hero{align-items:flex-start;gap:.8rem}.about-seal{border-radius:13px;width:58px;height:58px;font-size:2.2rem}.about-hero h1{font-size:1.68rem}.about-section{padding:1rem}.about-icon{width:34px;height:34px}.site-footer{flex-wrap:wrap;padding-bottom:5.8rem;font-size:.64rem}.footer-sep{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.mobile-game-lobby{display:none}@media (max-width:880px){.home-page .home-hero,.home-page .quick-start,.home-page .continue-panel,.app-shell.is-home .site-header{display:none}.app-shell.is-home .main-content{padding-top:max(.7rem, env(safe-area-inset-top))}.mobile-game-lobby{margin:0 0 1.35rem;display:block}.mobile-lobby-brand{color:var(--muted)}.mobile-lobby-seal{background:var(--red);color:#fff2d8;width:18px;height:18px;font-family:var(--serif);border-radius:4px;place-items:center;font-size:.68rem;line-height:1;display:inline-grid;box-shadow:inset 0 0 0 1px #fff1d252}.mobile-lobby-head{margin-bottom:.65rem}.mobile-lobby-topline{justify-content:space-between;align-items:center;gap:.55rem;display:flex}.mobile-lobby-head h1{letter-spacing:-.04em;flex:1;min-width:0;margin:.2rem 0 .28rem;font-size:clamp(2rem,7vw,2.7rem);line-height:1.12}.mobile-lobby-head p{color:var(--muted);margin:0;font-size:.75rem}.mobile-engine-pill{border:1px solid var(--line);color:var(--muted);white-space:nowrap;background:#fffaf09e;border-radius:999px;flex:none;align-items:center;gap:.35rem;padding:.25rem .5rem;font-size:.62rem;display:inline-flex}.mobile-engine-pill i,.mobile-engine-status i{background:var(--gold);border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 3px #c69a4d1f}.mobile-engine-pill.is-ready{color:var(--green-3);background:#2d56460f;border-color:#2d56462e}.mobile-engine-pill.is-ready i,.mobile-engine-status.is-ready i{background:#3c7d62;box-shadow:0 0 0 3px #3c7d621f}.mobile-lobby-progress{background:var(--line);border-radius:999px;width:100%;height:3px;margin:.15rem 0 .55rem;overflow:hidden}.mobile-lobby-progress>span{border-radius:inherit;background:linear-gradient(90deg, var(--gold), var(--red));height:100%;transition:width .3s;display:block}.mobile-board-stage{pointer-events:none;width:min(100%,420px);margin:0 auto}.mobile-board-stage .board-shell{border-radius:17px}.mobile-board-surface{position:relative}.mobile-lobby-float-actions{z-index:4;pointer-events:none;justify-content:center;align-items:center;gap:.5rem;padding:0 12px;display:flex;position:absolute;inset:0}.mobile-lobby-float-actions>.btn,.mobile-lobby-float-stack .btn{pointer-events:auto}.mobile-lobby-float-stack{pointer-events:none;flex-direction:column;align-items:center;gap:.65rem;width:100%;display:flex}.mobile-lobby-float-cta-row{justify-content:center;align-items:center;gap:.5rem;display:flex}.mobile-lobby-float-stack .mobile-app-actions-wrap{width:auto;margin:0}.mobile-lobby-float-stack .mobile-lobby-app-actions{justify-content:center}.mobile-lobby-float-stack .mobile-app-action,.mobile-lobby-float-stack .dialog{pointer-events:auto}.mobile-lobby-cta.is-floating{white-space:nowrap;width:auto;min-height:46px;margin:0;padding:0 1.05rem;box-shadow:0 14px 28px #1d24203d,0 4px 10px #1d242029}.mobile-lobby-cta.is-floating.is-secondary{color:var(--ink-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffcf4d1;border:1px solid #ffffffa6;box-shadow:0 12px 24px #1d24202e,inset 0 1px #fff9}.mobile-lobby-cta.is-floating.is-secondary:hover:not(:disabled){background:#fffdf8f2}.mobile-board-caption{color:var(--muted);letter-spacing:.03em;justify-content:center;align-items:center;gap:.35rem;margin-top:.45rem;font-size:.67rem;display:flex}.mobile-board-caption:before{content:"";background:var(--line-strong);width:14px;height:1px}.mobile-lobby-actions{margin-top:.55rem}.mobile-lobby-options{border:1px solid var(--line);background:#fffaf0b8;border-radius:11px;grid-template-columns:1fr 1.2fr;gap:.15rem .7rem;margin-top:0;padding:.4rem .6rem;display:grid}.mobile-option-row{align-items:center;gap:.4rem;min-width:0;min-height:30px;display:flex}.mobile-option-label{color:var(--muted);flex:none;font-size:.66rem}.mobile-option-row .segmented{flex:1;justify-content:space-between;padding:.1rem}.mobile-option-row .segmented button{text-align:center;flex:1;min-height:26px;padding:.2rem .42rem}.mobile-lobby-cta{width:100%;min-height:49px;margin-top:.55rem;font-size:.88rem}.mobile-lobby-secondary{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.7rem;margin-top:.55rem;font-size:.7rem;display:flex}.mobile-lobby-opponents{align-items:center;gap:.35rem;margin-left:auto;display:flex}.mobile-lobby-secondary .btn{background:var(--gold-soft);color:#6b4d1f;border-color:#c69a4d9e;flex:none;min-height:32px;padding:.3rem .7rem;font-size:.72rem}.mobile-lobby-secondary .btn:hover{border-color:var(--gold);background:#ecd9b3}.mobile-lobby-error{color:var(--red-deep);margin:.55rem 0 0;font-size:.7rem}.mobile-lobby-app-actions{justify-content:flex-end;gap:.45rem;margin:0;display:flex}.mobile-lobby-head.is-active{margin-bottom:.95rem}.mobile-lobby-head>p{margin-top:.55rem}.mobile-app-actions-wrap{flex:none;min-width:0;margin-left:auto}.mobile-app-action{min-height:30px;color:var(--ink-soft);white-space:nowrap;background:#f1e3c594;border:1px solid #c69a4d6b;border-radius:999px;justify-content:center;align-items:center;gap:.22rem;padding:.22rem .45rem;font-size:.64rem;font-weight:600;transition:border-color .15s,background .15s;display:inline-flex}.mobile-app-action:hover:not(:disabled){background:var(--gold-soft);border-color:#c69a4d9e}.mobile-app-action.is-installed{color:var(--green-3);background:#2d56460f;border-color:#2d564633}.mobile-app-action:disabled{cursor:default;opacity:.78}.mobile-app-action-message{color:var(--green-3);text-align:right;margin:.08rem 0 0;font-size:.62rem;line-height:1rem}.mobile-app-action-message:empty{display:none}.install-help ol{margin:.85rem 0;padding-left:1.35rem}.install-help li+li{margin-top:.35rem}.install-help .install-help-note{color:var(--ink-soft)}.app-shell.is-game-route .site-header,.app-shell.is-game-route .site-footer{display:none}.app-shell.is-game-route .main-content{width:100%;padding:max(.5rem, env(safe-area-inset-top)) 8px 2rem}.app-shell.is-game-route .play-page{max-width:620px;margin:0 auto}.app-shell.is-game-route .board-column,.app-shell.is-game-route .board-under{width:100%;max-width:min(560px,90vh - 171px);margin:0 auto}.app-shell.is-game-route .board-under>:first-child{margin-top:0}.app-shell.is-game-route .board-under:not(:has(>:not(.board-help))){display:none}.app-shell.is-game-route .play-topline{align-items:center;margin-bottom:0;padding:0 .15rem}.app-shell.is-game-route .play-topline .back-link{margin-bottom:0;font-size:.72rem}.app-shell.is-game-route .play-topline-right{align-items:center;gap:.55rem;display:flex}.app-shell.is-game-route .board-toolbar{margin-bottom:.45rem}.app-shell.is-game-route .board-help,.app-shell.is-game-route .engine-note{display:none}.app-shell.is-game-route .play-side{gap:.55rem;padding-top:.15rem}.app-shell.is-game-route .side-card{padding:.9rem}}@media (max-width:560px){.app-shell.is-game-route .main-content{padding-left:6px;padding-right:6px}.mobile-lobby-head h1{font-size:2.05rem}.mobile-lobby-options{grid-template-columns:1fr}.mobile-option-row{justify-content:space-between}.mobile-option-row .segmented{flex:0 auto}.mobile-board-stage{width:100%}.ai-status-pill,.board-time{height:25px;min-height:25px;padding:.22rem .48rem;font-size:.62rem}}@media (max-height:700px) and (max-width:560px){.mobile-board-stage{width:min(100%,320px)}}@media (max-width:340px){.mobile-board-stage{width:min(100%,300px)}.mobile-lobby-head h1{font-size:1.85rem}.mobile-app-action{gap:.18rem;padding-inline:.36rem;font-size:.58rem}}@media (max-width:340px) and (max-height:620px){.mobile-board-stage{width:min(100%,260px)}.mobile-lobby-head p{display:none}.mobile-lobby-head h1{font-size:1.7rem}}@media (prefers-reduced-motion:no-preference){.piece-selected .piece-disc{animation:1.8s ease-in-out infinite selected-glow}.piece-checked .piece-disc{animation:1.15s ease-in-out infinite checked-glow}.legal-dot{transform-box:fill-box;transform-origin:50%;animation:1.5s ease-in-out infinite legal-breathe}.last-move-marks circle{transform-box:fill-box;transform-origin:50%;animation:.46s cubic-bezier(.2,.8,.2,1) both last-move-pop}.hint-arrow{animation:.68s ease-out both hint-draw}.tactic-result{animation:.38s cubic-bezier(.18,.9,.22,1) both result-pop}.mobile-board-stage{animation:.48s cubic-bezier(.2,.8,.2,1) both board-enter}}@keyframes selected-glow{0%,to{stroke:var(--gold);stroke-width:6px}50%{stroke:#e1b766;stroke-width:8px}}@keyframes checked-glow{0%,to{stroke:var(--red);stroke-width:4px;filter:drop-shadow(0 0 5px #b33a3247)}50%{stroke:#df5c52;stroke-width:6px;filter:drop-shadow(0 0 10px #b33a3299)}}@keyframes legal-breathe{0%,to{opacity:.55;transform:scale(.9)}50%{opacity:1;transform:scale(1.08)}}@keyframes last-move-pop{0%{opacity:0;transform:scale(.55)}to{opacity:1;transform:scale(1)}}@keyframes hint-draw{0%{opacity:0;stroke-dashoffset:180px}to{opacity:.95;stroke-dashoffset:0}}@keyframes result-pop{0%{opacity:0;transform:translateY(8px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes board-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes success-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media (min-width:881px){.main-content.has-content-engine-status{padding-top:3.25rem}.header-inner>.engine-badge{display:none}.content-engine-status,.game-engine-status{align-items:center;display:flex;position:absolute;top:.75rem;right:0}.app-shell.is-game-route .main-content{padding-top:1.2rem}.app-shell.is-game-route .play-topline{margin-bottom:0}.app-shell.is-game-route .play-topline>.play-topline-right{display:none}.app-shell.is-game-route .board-toolbar{margin-bottom:.55rem}.app-shell.is-game-route .play-layout{grid-template-columns:minmax(0,clamp(360px,90vh - 234px,680px)) minmax(290px,340px);justify-content:center}.app-shell.is-training-play .main-content{padding-top:1.2rem}.app-shell.is-training-play .content-engine-status{display:none}.app-shell.is-training-play .play-topline{margin-bottom:0}.app-shell.is-training-play .board-toolbar{margin-bottom:.5rem}.app-shell.is-training-play .training-layout{grid-template-columns:minmax(0,clamp(360px,90vh - 234px,680px)) minmax(290px,340px);justify-content:center}}@media (max-width:880px){.training-play-page .board-column{width:100%;max-width:min(560px,90vh - 171px);margin:0 auto}}.play-side>.side-controls{margin:0}@media (min-width:881px){.play-side>.side-controls{border-radius:14px;flex-direction:column;gap:.3rem;padding:.4rem}.side-controls .control-button{flex-direction:row;flex:none;justify-content:flex-start;gap:.55rem;min-height:42px;padding:.5rem .75rem}.side-controls .control-button span{font-size:.78rem}}.lesson-status{align-items:center;min-height:62px;margin-top:.55rem;padding:.55rem .8rem}.lesson-status.is-hint{color:var(--muted);background:#fffaf052;border-color:#0000}@media (max-width:560px){.lesson-status{min-height:76px}}.checkmate-burst,.stalemate-burst,.checkmate-stamp{pointer-events:none}.checkmate-burst,.stalemate-burst{opacity:1}.mate-ring{fill:none;stroke:var(--gold);stroke-width:4px;opacity:0;transform-box:fill-box;transform-origin:50%}.mate-ring-b{stroke:var(--red);stroke-width:3px}.mate-flash{fill:#b33a324d;opacity:0;transform-box:fill-box;transform-origin:50%}.mate-rays line{stroke:var(--gold);stroke-width:3px;stroke-linecap:round;opacity:0}.mate-rays{transform-box:fill-box;transform-origin:50%}.stalemate-ring{fill:none;stroke:var(--green-3);stroke-width:3px;opacity:0;transform-box:fill-box;transform-origin:50%}.stalemate-ring-b{stroke:var(--gold);stroke-width:4px}.stalemate-seal{fill:#f1e3c5b8;stroke:var(--gold);stroke-width:2px;opacity:0;transform-box:fill-box;transform-origin:50%}.stalemate-corners{transform-box:fill-box;transform-origin:50%}.stalemate-corners path{fill:none;stroke:var(--green-3);stroke-width:4px;stroke-linecap:round;opacity:0}.checkmate-stamp{z-index:4;border:3px solid var(--red);color:var(--red-deep);opacity:0;background:#fcf5e3f5;border-radius:12px;flex-direction:column;align-items:center;gap:.1rem;padding:.5rem 1rem .65rem;display:flex;position:absolute;top:47%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #c69a4d80,0 14px 36px #4e23183d}.checkmate-stamp.is-stalemate{border-color:var(--green-3);color:var(--green);box-shadow:0 0 0 2px #c69a4d6b,0 14px 36px #1e3b2f38}.checkmate-stamp.is-stalemate em{color:var(--green-3)}.checkmate-stamp span{font-family:var(--serif);letter-spacing:.14em;text-indent:.14em;font-size:clamp(2.1rem,5vw,3.8rem);font-weight:700;line-height:1}.checkmate-stamp em{color:var(--red);letter-spacing:.48em;text-indent:.48em;font-size:.58rem;font-style:normal;font-weight:600;line-height:1}@media (prefers-reduced-motion:no-preference){.mate-ring-a{animation:.9s cubic-bezier(.15,.7,.3,1) both mate-ring}.mate-ring-b{animation:.95s cubic-bezier(.15,.7,.3,1) .12s both mate-ring}.mate-flash{animation:.52s ease-out both mate-flash}.mate-rays{animation:.76s ease-out both mate-rays}.checkmate-stamp{animation:1.75s cubic-bezier(.18,.8,.24,1) both mate-stamp}.stalemate-ring-a{animation:1.15s cubic-bezier(.16,.72,.28,1) both stalemate-ring}.stalemate-ring-b{animation:1.25s cubic-bezier(.16,.72,.28,1) .13s both stalemate-ring}.stalemate-seal{animation:.76s ease-out both stalemate-seal}.stalemate-corners{animation:.98s cubic-bezier(.16,.72,.28,1) both stalemate-corners}.checkmate-stamp.is-stalemate{animation:1.75s cubic-bezier(.18,.8,.24,1) both stalemate-stamp}}@media (prefers-reduced-motion:reduce){.checkmate-stamp,.checkmate-burst,.stalemate-burst{display:none}}@keyframes mate-ring{0%{opacity:.9;transform:scale(.65)}55%{opacity:.5}to{opacity:0;transform:scale(3.4)}}@keyframes mate-flash{0%{opacity:.75;transform:scale(.2)}to{opacity:0;transform:scale(2.1)}}@keyframes mate-rays{0%{opacity:0;transform:rotate(-10deg)scale(.55)}28%{opacity:.9}to{opacity:0;transform:rotate(10deg)scale(1.25)}}@keyframes stalemate-ring{0%{opacity:.88;transform:scale(.82)}58%{opacity:.42}to{opacity:0;transform:scale(2.7)}}@keyframes stalemate-seal{0%{opacity:.8;transform:scale(1.7)}to{opacity:0;transform:scale(.86)}}@keyframes stalemate-corners{0%{opacity:0;transform:rotate(-7deg)scale(1.45)}32%{opacity:.9}to{opacity:0;transform:rotate(4deg)scale(.92)}}@keyframes mate-stamp{0%{opacity:0;transform:translate(-50%,-50%)scale(2.15)rotate(-11deg)}14%{opacity:1;transform:translate(-50%,-50%)scale(.92)rotate(-4deg)}24%,64%{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(-4deg)}to{opacity:0;transform:translate(-50%,-50%)scale(1.06)rotate(-4deg)}}@keyframes stalemate-stamp{0%{opacity:0;filter:blur(3px);transform:translate(-50%,-50%)scale(1.55)}18%{opacity:1;filter:blur();transform:translate(-50%,-50%)scale(.96)}28%,78%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(1.04)}}.local-games-page{max-width:none}.local-games-heading{max-width:700px;margin:0 0 1.6rem}.local-games-heading h1{text-wrap:balance;margin:.3rem 0 .45rem}.local-games-heading p{color:var(--muted);font-size:.95rem}.local-games-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.local-game-card{border:1px solid var(--line);background:#fffaf0c7;border-radius:18px;flex-direction:column;justify-content:space-between;gap:1.2rem;min-height:255px;padding:1.35rem;transition:transform .16s,border-color .16s,background .16s;display:flex;position:relative;overflow:hidden}.local-game-card:hover{border-color:var(--line-strong);background:var(--surface);transform:translateY(-3px)}.local-game-red{color:var(--red)}.local-game-green{color:var(--green)}.local-game-gold{color:var(--gold)}.local-game-top{justify-content:space-between;align-items:flex-start;display:flex}.local-game-mark{background:var(--green);color:#fff8e9;width:3.4rem;height:3.4rem;font-family:var(--serif);border-radius:14px;place-items:center;font-size:1.65rem;display:grid}.local-game-red .local-game-mark{background:var(--red)}.local-game-green .local-game-mark{background:var(--green)}.local-game-gold .local-game-mark{background:var(--gold)}.local-game-kicker{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:.65rem;font-weight:600}.local-game-card h2{color:var(--ink);font-family:var(--serif);margin:.25rem 0 .45rem;font-size:1.35rem;font-weight:600}.local-game-card p{color:var(--ink-soft);margin:0;font-size:.79rem;line-height:1.7}.local-game-action{color:currentColor;align-items:center;gap:.35rem;font-size:.78rem;font-weight:600;display:inline-flex}.local-game-mode-actions{border-top:1px solid #352b1d1a;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:auto;padding-top:.85rem;display:grid}.local-game-mode-button{min-height:42px;color:var(--green-3);background:#fffdf8b8;border:1px solid #2d56463d;border-radius:10px;justify-content:center;align-items:center;gap:.38rem;padding:.5rem .75rem;font-size:.8rem;font-weight:700;transition:transform .15s,background .15s,border-color .15s;display:inline-flex}.local-game-mode-button:hover{background:var(--surface);border-color:#2d564666;transform:translateY(-1px)}.local-game-mode-button.is-local{color:var(--red-deep);border-color:#b33a3238}.local-game-mode-button.is-local:hover{border-color:#b33a3266}.local-games-note{color:var(--muted);align-items:center;gap:.45rem;margin-top:1.25rem;font-size:.75rem;display:flex}.local-game-layout{align-items:start}.local-game-rule-chip{color:var(--muted);font-size:.7rem}.local-rule-list{color:var(--muted);gap:.55rem;margin:0;padding-left:1.1rem;font-size:.75rem;line-height:1.65;display:grid}.local-move-list{gap:.3rem;max-height:260px;display:grid;overflow:auto}.local-move-row{color:var(--ink-soft);align-items:center;gap:.45rem;font-size:.74rem;display:flex}.local-move-color{color:#fff8e9;border-radius:50%;place-items:center;width:1.15rem;height:1.15rem;font-size:.6rem;display:inline-grid}.local-move-color.r{background:var(--red)}.local-move-color.b{background:var(--green)}.local-move-note{color:var(--gold);font-size:.65rem}.jungle-board{aspect-ratio:7/9;background:#e8cf9e;border:1px solid #b99a64;border-radius:16px;grid-template-rows:repeat(9,minmax(0,1fr));grid-template-columns:repeat(7,minmax(0,1fr));width:min(100%,520px);margin:0 auto;display:grid;overflow:hidden;box-shadow:0 18px 40px -28px #50381c80}.jungle-cell{min-width:0;min-height:0;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #7e5c2c40;border-top:0;border-left:0;place-items:center;padding:0;display:grid;position:relative}.jungle-cell:nth-child(7n){border-right:0}.jungle-cell:nth-last-child(-n+7){border-bottom:0}.jungle-cell:disabled{cursor:default}.jungle-cell.is-water{background:repeating-linear-gradient(0deg,#ffffff2e 0 2px,#0000 2px 7px),#a9cbd0}.jungle-cell.is-trap{background:#d8ac6b}.jungle-cell.is-den{background:#6a4b3b}.jungle-cell.is-selected{box-shadow:inset 0 0 0 3px var(--gold)}.jungle-cell.is-last{box-shadow:inset 0 0 0 3px #2d564673}.jungle-terrain-label{color:#4830188c;font-family:var(--serif);font-size:.75rem}.jungle-cell.is-den .jungle-terrain-label{color:#fff8e9bf}.jungle-piece{color:#fff8e9;width:82%;height:82%;font-family:var(--serif);border:2px solid #fff8e9a6;border-radius:50%;place-items:center;font-size:clamp(.85rem,2.4vw,1.35rem);font-weight:600;display:grid;box-shadow:0 4px 10px -5px #281c10a6}.jungle-piece.r{background:var(--red)}.jungle-piece.b{background:var(--green)}.jungle-target{background:var(--gold);border-radius:50%;width:22%;height:22%;position:absolute;box-shadow:0 0 0 4px #b785372e}.checkers-board{aspect-ratio:1/1.02;background:radial-gradient(circle,#fffaf08c,#0000 62%),#ecd7b3;border:1px solid #c7aa77;border-radius:18px;width:min(100%,600px);margin:0 auto;position:relative;box-shadow:0 18px 40px -28px #50381c80}.checkers-home-label{z-index:1;color:#4a361e80;letter-spacing:.16em;font-size:.62rem;position:absolute;left:50%;transform:translate(-50%)}.checkers-home-label.top{top:1.2%}.checkers-home-label.bottom{bottom:1.2%}.checkers-hole{aspect-ratio:1;cursor:pointer;background:#dcc59a;border:1px solid #b99a64;border-radius:50%;place-items:center;width:5.3%;padding:0;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:inset 0 2px 3px #5a411e2e}.checkers-hole.in-black-home{background:#d5c7ad}.checkers-hole.in-red-home{background:#e1c5ad}.checkers-hole:disabled{cursor:default}.checkers-hole.is-selected{box-shadow:0 0 0 3px var(--gold)}.checkers-hole.is-last{box-shadow:0 0 0 2px #2d564673}.checkers-piece{border:1px solid #fff8e98c;border-radius:50%;width:82%;height:82%;display:block;box-shadow:inset 0 2px 3px #ffffff47,0 3px 5px -3px #321e0a80}.checkers-piece.r{background:var(--red)}.checkers-piece.b{background:var(--green)}.checkers-target{background:var(--gold);border-radius:50%;width:34%;height:34%;position:absolute}@media (max-width:880px){.local-games-grid{grid-template-columns:1fr}.local-game-card{min-height:220px}.local-game-rule-chip{display:none}.checkers-board{width:min(100%,480px)}}@media (max-width:560px){.jungle-board,.checkers-board{border-radius:12px}.checkers-hole{width:6%}.local-game-layout .board-column{min-width:0}}.local-game-card:before{content:"";opacity:.78;background:currentColor;height:3px;position:absolute;top:0;left:0;right:0}.gomoku-board{aspect-ratio:1;background:#e6cd9c;border:1px solid #b99a64;border-radius:14px;grid-template-rows:repeat(15,minmax(0,1fr));grid-template-columns:repeat(15,minmax(0,1fr));width:min(100%,620px);margin:0 auto;display:grid;overflow:hidden;box-shadow:0 18px 40px -28px #50381c80}.gomoku-cell{cursor:pointer;background:0 0;border:1px solid #7a582852;border-top:0;border-left:0;place-items:center;min-width:0;min-height:0;padding:0;display:grid;position:relative}.gomoku-cell:nth-child(15n){border-right:0}.gomoku-cell:nth-last-child(-n+15){border-bottom:0}.gomoku-cell:disabled{cursor:default}.gomoku-cell.is-last{box-shadow:inset 0 0 0 2px #2d564652}.gomoku-cell.is-win{background:#b7853733}.gomoku-stone{border-radius:50%;width:82%;height:82%;display:block;box-shadow:inset 0 2px 2px #ffffff40,0 3px 5px -3px #28190a99}.gomoku-stone.b{background:#252b28}.gomoku-stone.w{background:#fffaf0;border:1px solid #b9aa90}.connect4-board{aspect-ratio:7/6;background:linear-gradient(160deg,#315f83,#1a3d5b);border:1px solid #23445d;border-radius:18px;width:min(100%,620px);margin:0 auto;padding:1.1rem 1rem;position:relative;box-shadow:0 18px 40px -28px #142a3ccc}.connect4-grid{grid-template-rows:repeat(6,minmax(0,1fr));grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem;width:100%;height:100%;display:grid}.connect4-cell{cursor:pointer;background:#102d43;border:0;border-radius:50%;place-items:center;min-width:0;min-height:0;padding:0;display:grid;position:relative;box-shadow:inset 0 3px 5px #00000059}.connect4-cell.is-last{box-shadow:inset 0 0 0 3px #ffebba8c}.connect4-cell.is-win{box-shadow:inset 0 0 0 4px #ffd37a}.connect4-column-targets{z-index:2;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem;display:grid;position:absolute;inset:1.1rem 1rem}.connect4-column-target{cursor:pointer;background:0 0;border:0;border-radius:999px;min-width:0;padding:0;transition:background-color .12s,box-shadow .12s}.connect4-column-target:hover:not(:disabled){background:#ffffff12;box-shadow:inset 0 0 0 1px #ffffff29}.connect4-column-target:focus-visible{outline-offset:2px;outline:2px solid #ffdf95e6}.connect4-column-target:disabled{cursor:default}.connect4-disc{border-radius:50%;width:78%;height:78%;display:block;box-shadow:inset 0 3px 3px #ffffff47,0 3px 6px -3px #0009}.connect4-disc.r{background:var(--red)}.connect4-disc.y{background:#d8a62f}.turn-disc.y{background:#d8a62f;box-shadow:0 0 0 3px #d8a62f24}.local-move-color.y{color:#2b2414;background:#d8a62f}@media (max-width:560px){.gomoku-board{border-radius:10px}.connect4-board{border-radius:12px;gap:.2rem;padding:.6rem .5rem}.connect4-grid{gap:.2rem}.connect4-column-targets{gap:.2rem;inset:.6rem .5rem}}.turn-disc.w{background:#fffaf0;border:1px solid #b9aa90;box-shadow:0 0 0 3px #7869501f}.jungle-cell.is-capture .jungle-piece{box-shadow:0 0 0 3px #2f7a53,0 4px 8px -4px #18372780}@media (max-width:560px){.bottom-link{font-size:.57rem}}.undo-range{flex-direction:column;gap:.18rem;width:min(100%,250px);display:flex}.undo-range-value{color:var(--green-3);font-family:var(--serif);align-self:flex-end;font-size:1rem;font-weight:600;line-height:1.3}.undo-range input[type=range]{width:100%;height:1.35rem;accent-color:var(--green-3);cursor:pointer;margin:0}.undo-range-labels{color:var(--muted);justify-content:space-between;font-size:.62rem;display:flex}@media (max-width:720px){.undo-range{width:100%}.review-heading{flex-direction:column;align-items:flex-start}.review-heading-actions{width:100%}}.piece-ghost{pointer-events:none}.piece-echo{pointer-events:none;opacity:.34}@media (prefers-reduced-motion:no-preference){.piece-echo{animation:.22s ease-out both piece-echo-in}}@keyframes piece-echo-in{0%{opacity:0}to{opacity:.34}}.piece-rollback .piece-disc{stroke:var(--gold);stroke-width:4px;filter:drop-shadow(0 0 6px #c69a4d73)}@media (max-width:560px){.back-link{touch-action:manipulation;border-radius:10px;min-height:44px;margin-bottom:.85rem;margin-left:-.7rem;padding:.55rem .7rem;font-size:.86rem}.back-link svg{flex:none;width:18px;height:18px}.back-link:active{color:var(--ink);background:#2d564614}.list-page .back-link{margin-bottom:.55rem}.is-opening-list .list-heading{flex-direction:row;align-items:center;gap:.6rem;margin-bottom:.9rem}.is-opening-list .list-progress-badge{margin-left:auto}.is-opening-list .list-progress-badge strong{font-size:1.45rem}.is-opening-list .list-toolbar{gap:.55rem;margin-bottom:.7rem}.is-opening-list .lesson-meta-strip{gap:.45rem;font-size:.64rem}.is-opening-list .lesson-meta-strip span+span:before{margin-right:.45rem}.is-opening-list .list-actions{flex-wrap:nowrap;gap:.45rem;width:100%}.is-opening-list .list-search{flex:1;width:auto;min-width:0;min-height:40px}.is-opening-list .list-actions .btn{flex:none;min-height:40px;padding-inline:.75rem}.is-opening-list .lesson-list{gap:.4rem}.is-opening-list .lesson-row{gap:.55rem;padding:.65rem .75rem}.is-opening-list .lesson-icon{border-radius:8px;width:32px;height:32px}.is-opening-list .lesson-main strong{margin:.04rem 0;font-size:.96rem}.is-opening-list .lesson-main small{font-size:.64rem;line-height:1.45}.is-opening-list .lesson-state{font-size:.62rem}.is-opening-list .list-more{margin-top:.7rem}.list-page:not(.is-opening-list) .list-heading{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.15rem .6rem;margin-bottom:1rem;display:grid}.list-page:not(.is-opening-list) .list-heading>div:first-child{display:contents}.list-page:not(.is-opening-list) .list-heading .eyebrow{grid-area:1/1}.list-page:not(.is-opening-list) .list-heading h1{grid-area:2/1/auto/-1;margin:.2rem 0 .1rem}.list-page:not(.is-opening-list) .list-heading p{grid-area:3/1/auto/-1;margin:0;font-size:.8rem;line-height:1.55}.list-page:not(.is-opening-list) .list-progress-badge{grid-area:1/2;align-self:center;margin:0}.list-page:not(.is-opening-list) .list-progress-badge strong{font-size:1.35rem}.list-page:not(.is-opening-list) .list-toolbar{gap:.55rem;margin-bottom:.7rem}.list-page:not(.is-opening-list) .list-actions{flex-wrap:nowrap;gap:.45rem;width:100%}.list-page:not(.is-opening-list) .list-search{flex:1;width:auto;min-width:0;min-height:40px}.list-page:not(.is-opening-list) .list-actions .btn{flex:none;min-height:40px;padding-inline:.75rem}.list-page:not(.is-opening-list) .tactic-card{gap:.65rem;padding:.75rem .8rem}.list-page:not(.is-opening-list) .tactic-content h2{margin:.1rem 0 .2rem;font-size:1rem}.list-page:not(.is-opening-list) .tactic-content p{margin-bottom:.35rem;font-size:.7rem;line-height:1.45}.list-page:not(.is-opening-list) .lesson-row{gap:.5rem;padding:.7rem .8rem}.list-page:not(.is-opening-list) .lesson-icon{border-radius:8px;width:32px;height:32px}.list-page:not(.is-opening-list) .lesson-main strong{margin:.04rem 0;font-size:.96rem}.list-page:not(.is-opening-list) .lesson-main small{font-size:.64rem;line-height:1.45}.training-grid .training-card{min-height:225px;padding:1.1rem}.training-grid .training-card-icon{width:38px;height:38px;margin-bottom:.75rem}.training-grid .training-card h2,.training-grid .training-card h3{font-size:1.22rem}.training-grid .training-card p{margin-bottom:.8rem;font-size:.76rem}.training-grid .training-footer{padding-top:.65rem}.local-games-heading{margin-bottom:1.1rem}.local-games-grid{gap:.7rem}.local-game-card{gap:.8rem;min-height:205px;padding:1.05rem}.local-game-card h2{font-size:1.25rem}}@media (min-width:881px){.play-layout:has(>.board-toolbar){grid-template-rows:auto minmax(0,1fr) auto;row-gap:.75rem}.play-layout:has(>.board-toolbar)>.board-toolbar{grid-area:1/1;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.8rem;margin-bottom:0;display:grid}.play-layout:has(>.board-toolbar)>.board-toolbar>.turn-chip{justify-self:start;min-width:0}.play-layout:has(>.board-toolbar)>.board-toolbar>.btn{white-space:nowrap;justify-self:end}.play-layout:has(>.board-toolbar)>.board-column{grid-area:2/1}.play-layout:has(>.board-toolbar)>.board-under{grid-area:3/1}.play-layout:has(>.board-toolbar)>.board-under>:first-child{margin-top:0}.play-layout:has(>.board-toolbar)>.play-side{grid-area:2/2}.play-layout:has(>.board-column>.board-toolbar){grid-template-rows:auto minmax(0,1fr) auto auto;row-gap:.75rem}.play-layout:has(>.board-column>.board-toolbar)>.board-column{display:contents}.play-layout:has(>.board-column>.board-toolbar)>.board-column>.board-toolbar{grid-area:1/1;margin-bottom:0}.play-layout:has(>.board-column>.board-toolbar)>.board-column>.board-frame{grid-area:2/1}:is(.play-layout:has(>.board-column>.board-toolbar)>.board-column>.board-help,.play-layout:has(>.board-column>.board-toolbar)>.board-column>.lesson-status,.play-layout:has(>.board-column>.board-toolbar)>.board-column>.line-progress){grid-area:4/1}.play-layout:has(>.board-column>.board-toolbar)>.play-side{grid-area:2/2}}@media (min-width:881px) and (min-height:760px){.play-layout:has(>.board-column>.board-toolbar)>.play-side{align-self:stretch}.play-layout:has(>.board-column>.board-toolbar)>.play-side>.side-card:last-child{flex-direction:column;flex:auto;justify-content:space-between;display:flex}.play-layout:has(>.board-toolbar)>.play-side{align-self:stretch}.play-layout:has(>.board-toolbar)>.play-side>.side-card:last-child{flex-direction:column;flex:auto;justify-content:space-between;display:flex}.play-layout:has(>.board-toolbar)>.play-side>.side-card:last-child>.side-heading{margin-bottom:0}}@media (min-width:881px) and (max-height:759px){.play-layout:has(>.board-toolbar)>.play-side{grid-row:2/span 2}}@media (max-width:560px){.setup-page .back-link{margin-bottom:.65rem}.setup-grid{gap:.65rem}.setup-panel{border-radius:14px;gap:.72rem;padding:.82rem}.setup-panel .field{gap:.35rem}.setup-panel>.field>.segmented{grid-template-columns:1fr 1fr;width:100%;display:grid}.setup-panel>.field>.segmented button{min-height:36px;padding:.35rem .5rem}.setup-page .choice-grid{grid-template-columns:1fr 1fr;gap:.42rem}.setup-page .choice-card{border-radius:10px;min-height:0;padding:.55rem .65rem}.setup-page .choice-emblem{border-radius:7px;width:28px;height:28px;margin-bottom:.08rem;font-size:1rem}.setup-page .choice-card strong{font-size:.78rem}.setup-page .choice-card>span:last-child{display:none}.setup-page .level-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;display:grid}.setup-page .level-row{border-color:var(--line);background:var(--surface-soft);text-align:center;border-radius:8px;justify-content:center;min-height:42px;padding:.42rem .25rem}.setup-page .level-row .level-number,.setup-page .level-row small,.setup-page .level-row>svg{display:none}.setup-page .level-row strong{font-size:.76rem}.setup-page .setup-panel>.btn-large{min-height:44px;padding-block:.55rem}.setup-page .plain-list{gap:.34rem;font-size:.74rem}.setup-page .setup-footnote,.setup-page .setup-about{display:none}.setup-page .setup-side{display:block}.setup-page .setup-side .prep-card{margin-top:.1rem;padding:.65rem .75rem}}
