@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(data:font/woff2;base64,d09GMgABAAAAAAaEABMAAAAADFgAAAYdAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbbhwoP0hWQVJpBmA/U1RBVIE4AFwvbBEICoJ8gkMLFAAwhCoBNgIkAyIEIAWGUAdiDAcbvgpRVHJOI/viwCYyfSFrJjFIG8raYpYj9+IeSF0s6zD+Lk/4OGrZHhHV+wvt2ffuWPwlA51lIICIosSVmyOKEs5Uzlx3NKeXIgn1ssCydUybDV0IHga+SszIyfrQe9bLTFNxjayzgs76hNsDoSYtRe32fiJ4gxBjrP8L+w//zzHjv7Yqyr9o2vOBDXhCo2jMtr4uwAK/gV1U0PxAq/EAD+yW9EoKOL1KLw8rHrFgCSgRTQRzBzpeXVhweEDlyfY8gIoOa2CQJzrTAHIIoitTMVV2dyFwpJ2iAEQTpSkhPitxD3YwuZHEagTcAhyKAcBmUyPdhTovJThOw6HYiaF2M/J7erdi2OUutor6ES6Ac88AvfZvKpb6fJoArohb524042j6Jij36NI7P8Pb7s721naN9gcTtcjXQP4l+8BKEzFVGMxxoHqlq8Ul4LGneFJBDFaOdKpLPcg8P14YSDwIcn75hdlyJLTBlZ4voL6tT46yC/njunXqpJ0/bSvmrH1o3kRlwZ+j0DBogkF3KbDRVBlbOc+fY5HVXwPoT9hfekPnyZMaEmenYLMSg5npqegFOsgXsBv1IoF9aIVfSCNHkk6+gIzILsiYuhWQCfUtZEpbkRntQxBZgw7MwFbMcRvwJrAnBlDqs7isLtL7pO84Xru1i7ah7tckH1Wreqq6K9u0amxU1bcff/s2Y1ni3rh2I8zHzqkm3PGvv3mzC6NDBz/UcOBIg+nm88rxN8MbdtypvHUL5o1c2zG0urYpRmW+VHZdiba6GXN/3v0B3i3nt4RBsbfAu8ftLqRcTIlZ4VYheFTAS5nXLS65VZrbuW3daF2Ze1ChyGXWZN6u9nUuH1LfyTERifZXEpIueMe28vF8FOoTnsONzw+1djo9P71lZGx1vM8mH/BhvSa2HDsRZ1+Ul+RmpnPOIaEuwWnZZdkgQWAAyCDDZ1wk+0sh7wseAAwA6UlHxbftCgYAAwKAgwIAEA7ACfHIRbV7J6dwF/ZzcRRmAjXUYKAGWAlDCCFmKnH+LJEQfHKEmVrfmKwSEab36AcubXQBoDYJV/aRV+funFD8wAXLSLYbwr9+DR+h/qZIKCfeqRG5ghHpdY0zcV2nuz5iJMhAFjaTDwOcoyKGG9JHrCfdp4cC+kCvUrxc7+bliIMiHj95sPIbUeWZEP/HLnN2tlr9EBeRiktHuWvErx98fRz1MuEvHO3FDRgtsSzL/P0hsDLK2n5/uHMOjvTst0HD6t+80ZN798j7j//kjqHxIOZDFPR/FxurFD6/HxGbB799RPHLx5F89MoBOub9jVuOWtmPH3o9H3r26DIuff+LqPLwff/xryDRmiAYmjxiK0GwS9XU+k8QpUrHsCTs4qH89Fv44ubWbQmOE51M7J8Pt8+h+NKt3zZpa2L9zZqcRlyEc4MaNGdfjQCxgIygn78ne4yAzcLWA3zAJ6RRGbijvHr1W+XN8ywrG0EoZSySb0/A9KsllI7Q/Pq8hLu76tfTy5cF4X8bQxTtYp2vr6/+1oI4AhgAlNYFryt62VaX9ktO6VsAeDLeWx6fff4vdV1ts7N6+gw9GCsQnqPB0QUttB9nEc7Aaf4XM0NQ90VJ+HV1rG04znGCmXcpPCA9+nxdMPgPlT7Dz83NMfZuMJaNeRqbc+tjd2QER/b0B44d7nv5Rif7VC8svYkx9SKWwb3YzN2M3cY8jSNLl+PYZqfjxNTxOLXVCmfmduDc0ty1kLbjeiGfIrDFJXWPTTMD5TKupR8cpZgJeXTofId8NoUj6E8XfAc2k4WPdbCberDYAp8Q7L5dUo8wE8cs9QINZYvwXKzvBS4v/n+fQZkGrrFysKEIuFBgjQpxiHH1XA+ZBI+C+oAoxhYKECc42rGOc8L4mYhsiThGfFjOcKmFubPpDgwnY1918Fwo8ouenDJxvGP96HFWJ28hiOy251oKjkcbGz2POMme8CTMThx6wqOPsFtPI6j6HhDyDTxFQYnL88FcXGAGHl3ZuueRbEuxbK6Hc84ZDvRrREtLzyjj8Xkd/uShR1b0sYd8Nh8/c8znxCnadxQcf2nFVWIyw1g+4StXav9j75s+CQAA) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-vietnamese-wght-normal-CHiFlh_0.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-latin-ext-wght-normal-Dg-wlmqe.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-latin-wght-normal-CaVRRdDk.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-cyrillic-ext-opsz-normal-DIwfbPUE.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-cyrillic-opsz-normal-C0olyEE-.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-greek-opsz-normal-DrHU7SY7.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-vietnamese-opsz-normal-BOyYyU_V.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-latin-ext-opsz-normal-HoL-AExg.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-latin-opsz-normal-BpEBLj1O.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--bg: #fbf9f4;--bg-sunk: #f4f1e6;--surface: #fffefb;--surface-2: #f7f4ea;--surface-3: #efeadb;--line: #e9e3d2;--line-strong: #d8d0ba;--ink: #25321f;--ink-2: #4a5541;--muted: #6f6a55;--faint: #938d76;--accent: #2f6b46;--accent-hi: #3d7f55;--accent-ink: #245638;--accent-soft: rgba(47, 107, 70, .1);--accent-soft-2: rgba(47, 107, 70, .16);--on-accent: #f7faf3;--ok: #3f7d3f;--ok-ink: #2a6040;--ok-soft: rgba(63, 125, 63, .1);--bad: #b0472f;--bad-ink: #9a3c26;--bad-soft: rgba(176, 71, 47, .09);--warn: #a8781a;--warn-ink: #7d5f1a;--warn-soft: rgba(168, 120, 26, .12);--info: #3b5a7a;--info-soft: rgba(59, 90, 122, .1);--sec-home: #2f6b46;--sec-play: #b0582f;--sec-learn: #8a6a1f;--sec-review: #3b5a7a;--sec-coach: #6a3b7a;--sec-home-soft: rgba(47, 107, 70, .1);--sec-play-soft: rgba(176, 88, 47, .1);--sec-learn-soft: rgba(138, 106, 31, .12);--sec-review-soft: rgba(59, 90, 122, .1);--sec-coach-soft: rgba(106, 59, 122, .09);--sec-admin: #57513f;--sec-admin-soft: rgba(87, 81, 63, .11);--k-brilliant: #0f8a8f;--k-great: #2f6f9e;--k-best: #2f6b46;--k-excellent: #62923a;--k-good: #7a857a;--k-book: #74522f;--k-inaccuracy: #a8781a;--k-mistake: #c05f22;--k-miss: #7a4a86;--k-blunder: #a63f28;--kt-brilliant: #0a6e72;--kt-great: #2a6391;--kt-inaccuracy: #7d5a0e;--kt-mistake: #a44a12;--kt-miss: #6c3f78;--kt-blunder: #983722;--k-glyph: #fffefb;--k-ring: #f7f3e8;--board-light: #e8d9b5;--board-dark: #8a5f3d;--board-frame: #54422e;--coord-on-l: #3a2816;--coord-on-d: #f6ecd6;--sh-1: 0 1px 2px rgba(56, 64, 40, .08);--sh-2: 0 1px 2px rgba(56, 64, 40, .1), 0 4px 10px rgba(56, 64, 40, .07);--sh-3: 0 2px 6px rgba(56, 64, 40, .12), 0 18px 40px rgba(56, 64, 40, .14);--focus: 0 0 0 3px rgba(47, 107, 70, .35);--font-display: "Source Serif 4 Variable", "Source Serif 4", Georgia, serif;--font-body: "Hanken Grotesk Variable", "Hanken Grotesk", -apple-system, "Segoe UI", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--fs-xs: .8125rem;--fs-sm: .9375rem;--fs-md: 1.0625rem;--fs-lg: 1.1875rem;--fs-xl: 1.4375rem;--fs-2xl: 1.875rem;--fs-3xl: 2.375rem;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 22px;--r-full: 999px;--tap: 44px;--topbar-h: 60px;--tabbar-h: 64px;--sidebar-w: 256px;--rail-w: 76px;--content-max: 1180px;--ease: cubic-bezier(.2, .7, .2, 1);--dur-1: .12s;--dur-2: .2s;--dur-3: .32s;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px)}:root[data-theme=dark]{color-scheme:dark;--bg: #141a13;--bg-sunk: #10150f;--surface: #1c241b;--surface-2: #222c21;--surface-3: #2a3528;--line: #2f3b2d;--line-strong: #3d4b3a;--ink: #edf0e3;--ink-2: #cfd6c3;--muted: #a2ab92;--faint: #7f8971;--accent: #5fa878;--accent-hi: #72bd8b;--accent-ink: #86cc9d;--accent-soft: rgba(95, 168, 120, .14);--accent-soft-2: rgba(95, 168, 120, .22);--on-accent: #0f190f;--ok: #7cc47f;--ok-ink: #8fd092;--ok-soft: rgba(124, 196, 127, .12);--bad: #d97b60;--bad-ink: #e59479;--bad-soft: rgba(217, 123, 96, .12);--warn: #d9b25a;--warn-ink: #e3c275;--warn-soft: rgba(217, 178, 90, .14);--info: #8fb0cc;--info-soft: rgba(143, 176, 204, .12);--sec-home: #6fb487;--sec-play: #e08a60;--sec-learn: #d9b25a;--sec-review: #8fb0cc;--sec-coach: #c49ad4;--sec-home-soft: rgba(111, 180, 135, .14);--sec-play-soft: rgba(224, 138, 96, .14);--sec-learn-soft: rgba(217, 178, 90, .14);--sec-review-soft: rgba(143, 176, 204, .14);--sec-coach-soft: rgba(196, 154, 212, .14);--sec-admin: #cfc5ab;--sec-admin-soft: rgba(207, 197, 171, .14);--k-brilliant: #17a0a2;--k-great: #4483ae;--k-best: #3d8358;--k-excellent: #78a84a;--k-good: #8d988c;--k-book: #8a6540;--k-inaccuracy: #bd8b23;--k-mistake: #d2702f;--k-miss: #9160a0;--k-blunder: #bd4e33;--board-frame: #0d110c;--kt-brilliant: var(--k-brilliant);--kt-great: #6fa3cc;--kt-inaccuracy: #d9ad4a;--kt-mistake: #e48a4e;--kt-miss: #b98bc8;--kt-blunder: #e0765a;--sh-1: 0 1px 2px rgba(0, 0, 0, .3);--sh-2: 0 1px 2px rgba(0, 0, 0, .35), 0 4px 10px rgba(0, 0, 0, .28);--sh-3: 0 2px 6px rgba(0, 0, 0, .4), 0 18px 40px rgba(0, 0, 0, .45);--focus: 0 0 0 3px rgba(114, 189, 139, .45)}:root[data-display=large]{--fs-xs: .9375rem;--fs-sm: 1.0625rem;--fs-md: 1.1875rem;--fs-lg: 1.3125rem;--fs-xl: 1.625rem;--fs-2xl: 2.0625rem;--fs-3xl: 2.5rem;--tap: 52px;--topbar-h: 64px;--tabbar-h: 72px}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent;scroll-behavior:auto}body{margin:0;min-height:100dvh;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:var(--fs-md);line-height:1.55;font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overscroll-behavior-y:none}h1,h2,h3,h4{font-family:var(--font-display);font-weight:650;line-height:1.18;letter-spacing:-.012em;margin:0;color:var(--ink);text-wrap:balance}h1{font-size:var(--fs-2xl)}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}h4{font-size:var(--fs-md)}p{margin:0;text-wrap:pretty}a{color:var(--accent-ink);text-underline-offset:3px}img,svg{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}input,textarea,select{font-size:max(16px,1em)}ul,ol{margin:0;padding:0;list-style:none}code,kbd,samp{font-family:var(--font-mono);font-size:.92em}hr{border:0;border-top:1px solid var(--line);margin:var(--sp-4) 0}::selection{background:var(--accent-soft-2)}:focus{outline:none}:focus-visible{outline:none;box-shadow:var(--focus);border-radius:var(--r-sm)}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:fixed;left:12px;top:-60px;z-index:1000;background:var(--accent);color:var(--on-accent);padding:10px 16px;border-radius:var(--r-md);text-decoration:none;font-weight:600;transition:top var(--dur-2) var(--ease)}.skip-link:focus{top:calc(12px + var(--safe-t))}.mono{font-family:var(--font-mono)}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:var(--fs-sm)}.xs{font-size:var(--fs-xs)}.num{font-variant-numeric:tabular-nums}.eyebrow{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:500;letter-spacing:.04em;color:var(--accent-ink)}.lede{font-size:var(--fs-lg);color:var(--ink-2);line-height:1.5}.clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.stack{display:flex;flex-direction:column;gap:var(--gap, var(--sp-4))}.row{display:flex;align-items:center;gap:var(--gap, var(--sp-3));min-width:0}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.grow{flex:1 1 auto;min-width:0}.center{display:grid;place-items:center}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);padding:0 18px;border-radius:var(--r-md);border:1px solid transparent;font-weight:600;font-size:var(--fs-sm);line-height:1.2;letter-spacing:.005em;text-decoration:none;white-space:nowrap;user-select:none;transition:background var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease),color var(--dur-1) var(--ease),transform var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease);-webkit-user-select:none}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55}.btn-sm{min-height:36px;padding:0 12px;font-size:var(--fs-xs);border-radius:var(--r-sm);gap:6px}.btn-lg{min-height:52px;padding:0 24px;font-size:var(--fs-md);border-radius:var(--r-md)}.btn-block{width:100%}.btn-label{overflow:hidden;text-overflow:ellipsis}.btn-primary{background:var(--accent);color:var(--on-accent);box-shadow:var(--sh-1)}.btn-primary:hover:not(:disabled){background:var(--accent-hi)}.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}.btn-secondary:hover:not(:disabled){background:var(--surface-2);border-color:var(--faint)}.btn-ghost{background:transparent;color:var(--ink)}.btn-ghost:hover:not(:disabled){background:var(--surface-3)}.btn-quiet{background:var(--accent-soft);color:var(--accent-ink)}.btn-quiet:hover:not(:disabled){background:var(--accent-soft-2)}.btn-danger{background:var(--bad);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(1.06)}:root[data-theme=dark] .btn-danger{color:#1a0f0b}.icon-btn{position:relative;display:inline-grid;place-items:center;flex:none;width:var(--tap);height:var(--tap);border-radius:var(--r-md);border:1px solid transparent;background:transparent;color:var(--ink-2);transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease)}.icon-btn:hover:not(:disabled){background:var(--surface-3);color:var(--ink)}.icon-btn:disabled{opacity:.4}.icon-btn-sm{width:36px;height:36px;border-radius:var(--r-sm)}.icon-btn-lg{width:52px;height:52px}.icon-btn-secondary{background:var(--surface);border-color:var(--line-strong)}.icon-btn-primary{background:var(--accent);color:var(--on-accent)}.icon-btn-primary:hover:not(:disabled){background:var(--accent-hi);color:var(--on-accent)}.icon-btn-badge{position:absolute;top:6px;right:6px;min-width:17px;height:17px;padding:0 4px;border-radius:var(--r-full);background:var(--bad);color:#fff;font-size:11px;font-weight:700;line-height:17px;text-align:center;box-shadow:0 0 0 2px var(--bg)}.icon-btn-badge:empty{min-width:9px;width:9px;height:9px;top:9px;right:9px;padding:0}.spinner{display:inline-block;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite;flex:none}@keyframes spin{to{transform:rotate(360deg)}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1);min-width:0}.card-pad-none{padding:0}.card-pad-sm{padding:var(--sp-3)}.card-pad-md{padding:var(--sp-5)}.card-pad-lg{padding:var(--sp-6)}.card-sunk{background:var(--surface-2);box-shadow:none}.card-accent{background:var(--accent-soft);border-color:transparent;box-shadow:none}.card-head{display:flex;align-items:flex-start;gap:var(--sp-3);margin-bottom:var(--sp-4)}.card-head-icon{display:grid;place-items:center;width:36px;height:36px;flex:none;border-radius:var(--r-md);background:var(--accent-soft);color:var(--accent-ink)}.card-title{font-size:var(--fs-lg)}.card-sub{color:var(--muted);font-size:var(--fs-sm);margin-top:2px}a.card{text-decoration:none;color:inherit}.card.is-interactive{transition:border-color var(--dur-1) var(--ease),box-shadow var(--dur-2) var(--ease),transform var(--dur-2) var(--ease)}.card.is-interactive:hover{border-color:var(--line-strong);box-shadow:var(--sh-2)}.card.is-interactive:active{transform:translateY(1px)}.page{width:100%;max-width:var(--content-max);margin:0 auto;padding:var(--sp-6) var(--sp-6) var(--sp-12)}.page-narrow>*{max-width:760px}.page-centered>*{margin-inline:auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-6)}.page-head-text{min-width:0;flex:1 1 360px}.page-title{font-size:var(--fs-2xl)}.page-lede{color:var(--muted);font-size:var(--fs-md);margin-top:6px;max-width:62ch}.page-head .eyebrow{margin-bottom:6px}.page-head-actions{display:flex;gap:var(--sp-2);flex-wrap:wrap}.section{margin-top:var(--sp-8)}.section:first-child{margin-top:0}.section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-3)}.section-title{font-size:var(--fs-lg)}.section-link{font-size:var(--fs-sm);font-weight:600;color:var(--accent-ink);text-decoration:none;display:inline-flex;align-items:center;gap:4px;min-height:var(--tap)}.section-link:hover{text-decoration:underline}.grid{display:grid;gap:var(--sp-4)}.grid-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}.grid-4{grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr))}.badge{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 9px;border-radius:var(--r-full);font-size:12.5px;font-weight:650;line-height:1;white-space:nowrap;letter-spacing:.01em}.badge-neutral{background:var(--surface-3);color:var(--ink-2)}.badge-accent{background:var(--accent-soft);color:var(--accent-ink)}.badge-ok{background:var(--ok-soft);color:var(--ok-ink)}.badge-bad{background:var(--bad-soft);color:var(--bad-ink)}.badge-warn,.badge-gold{background:var(--warn-soft);color:var(--warn-ink)}.badge-info{background:var(--info-soft);color:var(--info)}.badge-plum{background:var(--sec-coach-soft);color:var(--sec-coach)}.seg{display:inline-flex;padding:3px;gap:2px;border-radius:var(--r-md);background:var(--surface-3);max-width:100%;overflow-x:auto;scrollbar-width:none}.seg::-webkit-scrollbar{display:none}.seg-item{display:inline-flex;align-items:center;gap:6px;justify-content:center;min-height:calc(var(--tap) - 6px);padding:0 14px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-weight:600;font-size:var(--fs-sm);white-space:nowrap;transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease)}.seg-item:hover{color:var(--ink)}.seg-item.is-on{background:var(--surface);color:var(--ink);box-shadow:var(--sh-1)}:root[data-theme=dark] .seg-item.is-on{background:var(--line-strong);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}.seg-sm .seg-item{min-height:32px;padding:0 10px;font-size:var(--fs-xs)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.tabs::-webkit-scrollbar{display:none}.tab{position:relative;display:inline-flex;align-items:center;gap:7px;flex:none;min-height:var(--tap);padding:0 14px;border:0;background:transparent;color:var(--muted);font-weight:600;font-size:var(--fs-sm);white-space:nowrap}.tab:hover,.tab.is-on{color:var(--ink)}.tab.is-on:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2.5px;border-radius:2px;background:var(--accent)}.tab-count{min-width:20px;height:20px;padding:0 6px;border-radius:var(--r-full);background:var(--surface-3);color:var(--ink-2);font-size:12px;line-height:20px;text-align:center}.tab.is-on .tab-count{background:var(--accent-soft);color:var(--accent-ink)}.pbar{height:8px;border-radius:var(--r-full);background:var(--surface-3);overflow:hidden}.pbar>span{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width var(--dur-3) var(--ease)}.pbar-gold>span{background:var(--sec-learn)}.pbar-info>span{background:var(--info)}.pbar-ok>span{background:var(--ok)}.pring{position:relative;display:inline-grid;place-items:center;flex:none}.pring svg{position:absolute;inset:0}.pring circle{fill:none}.pring-track{stroke:var(--surface-3)}.pring-fill{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset var(--dur-3) var(--ease)}.pring-gold .pring-fill{stroke:var(--sec-learn)}.pring-info .pring-fill{stroke:var(--info)}.pring-text{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink-2)}.skel{display:block;background:linear-gradient(90deg,var(--surface-3) 0%,var(--surface-2) 50%,var(--surface-3) 100%);background-size:200% 100%;animation:shimmer 1.3s ease-in-out infinite;border-radius:6px}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--sp-10) var(--sp-5);gap:8px}.empty-compact{padding:var(--sp-6) var(--sp-4)}.empty-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--surface-3);color:var(--muted);margin-bottom:4px}.empty-compact .empty-icon{width:44px;height:44px}.empty-title{font-weight:650;font-size:var(--fs-md)}.empty-body{color:var(--muted);font-size:var(--fs-sm);max-width:44ch}.empty-action{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.notice{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;border-radius:var(--r-md);font-size:var(--fs-sm)}.notice-icon{flex:none}.notice-info{background:var(--info-soft);color:var(--ink)}.notice-info .notice-icon{color:var(--info)}.notice-ok{background:var(--ok-soft)}.notice-ok .notice-icon{color:var(--ok-ink)}.notice-bad{background:var(--bad-soft)}.notice-bad .notice-icon{color:var(--bad-ink)}.notice-warn{background:var(--warn-soft)}.notice-warn .notice-icon{color:var(--warn-ink)}.notice-accent{background:var(--accent-soft)}.notice-accent .notice-icon{color:var(--accent-ink)}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field-label{font-weight:600;font-size:var(--fs-sm);color:var(--ink)}.field-hint{color:var(--muted);font-size:var(--fs-xs)}.field-error{color:var(--bad-ink);font-size:var(--fs-xs);font-weight:600}.input{width:100%;min-height:var(--tap);padding:10px 14px;border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);transition:border-color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease)}.input::placeholder{color:var(--faint)}.input:hover{border-color:var(--faint)}.input:focus{border-color:var(--accent);box-shadow:var(--focus);outline:none}.has-error .input{border-color:var(--bad)}.textarea{min-height:120px;resize:vertical;line-height:1.5}.select-wrap{position:relative;display:block}.select{appearance:none;-webkit-appearance:none;padding-right:40px;cursor:pointer}.select-wrap:after{content:"";position:absolute;right:16px;top:50%;width:8px;height:8px;pointer-events:none;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:translateY(-70%) rotate(45deg)}.form-grid{display:grid;gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}.switch-row{display:flex;align-items:center;gap:16px;min-height:var(--tap);padding:6px 0}.switch-label{font-weight:600;cursor:pointer}.switch{position:relative;width:50px;height:30px;flex:none;border-radius:var(--r-full);border:0;background:var(--line-strong);transition:background var(--dur-2) var(--ease)}.switch.is-on{background:var(--accent)}.switch-knob{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:var(--sh-1);transition:transform var(--dur-2) var(--ease)}.switch.is-on .switch-knob{transform:translate(20px)}.lrow{display:flex;align-items:center;gap:14px;width:100%;min-height:64px;padding:12px 16px;border:0;background:transparent;color:inherit;text-align:left;text-decoration:none;border-radius:var(--r-md)}.lrow.is-link{transition:background var(--dur-1) var(--ease)}.lrow.is-link:hover{background:var(--surface-2)}.lrow-lead{flex:none;display:grid;place-items:center}.lrow-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.lrow-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lrow-sub{color:var(--muted);font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lrow-trail{flex:none;display:flex;align-items:center;gap:8px;color:var(--muted)}.list-card{padding:6px}.list-card .lrow+.lrow{box-shadow:0 -1px 0 var(--line);border-radius:0}.list-card .lrow+.lrow:hover{border-radius:var(--r-md);box-shadow:none}.list-card .lrow:hover+.lrow{box-shadow:none}.avatar{display:inline-grid;place-items:center;flex:none;overflow:hidden;border-radius:50%;background:var(--accent);color:var(--on-accent);font-weight:700;letter-spacing:.02em}.avatar img{width:100%;height:100%;object-fit:cover}.kbd{display:inline-block;min-width:22px;padding:1px 6px;border-radius:6px;border:1px solid var(--line-strong);border-bottom-width:2px;background:var(--surface);font-size:12px;text-align:center}.overlay{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:#141a126b;padding:16px;animation:fadeIn var(--dur-2) var(--ease)}.sheet{display:flex;flex-direction:column;width:100%;max-height:min(86dvh,760px);background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--sh-3);animation:popIn var(--dur-2) var(--ease);outline:none}.sheet-sm{max-width:440px}.sheet-md{max-width:560px}.sheet-lg{max-width:760px}.sheet-grip{display:none}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 14px 6px 22px}.sheet-title{font-size:var(--fs-lg)}.sheet-body{padding:8px 22px 20px;overflow-y:auto;overscroll-behavior:contain}.sheet-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px calc(12px + var(--safe-b));border-top:1px solid var(--line);flex-wrap:wrap}@media (max-width: 640px){.overlay{align-items:flex-end;padding:0}.sheet{max-width:none;border-radius:var(--r-xl) var(--r-xl) 0 0;animation:slideUp var(--dur-3) var(--ease)}.sheet-grip{display:block;width:40px;height:5px;border-radius:3px;background:var(--line-strong);margin:8px auto 0}.sheet-foot>*{flex:1 1 0}}@keyframes fadeIn{0%{opacity:0}}@keyframes popIn{0%{opacity:0;transform:translateY(8px) scale(.98)}}@keyframes slideUp{0%{transform:translateY(100%)}}.popover{position:fixed;z-index:150;min-width:240px;max-width:min(360px,calc(100vw - 16px));background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-3);padding:6px;animation:popIn var(--dur-1) var(--ease)}.menu-item{display:flex;align-items:center;gap:12px;width:100%;min-height:var(--tap);padding:0 12px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--ink);font-size:var(--fs-sm);font-weight:550;text-align:left;text-decoration:none}.menu-item:hover{background:var(--surface-2)}.menu-item svg{color:var(--muted);flex:none}.menu-sep{height:1px;background:var(--line);margin:6px 4px}.toasts{position:fixed;z-index:300;left:50%;transform:translate(-50%);bottom:calc(24px + var(--safe-b));display:flex;flex-direction:column;gap:8px;width:min(440px,calc(100vw - 24px));pointer-events:none}.toast{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--r-md);background:var(--ink);color:var(--bg);box-shadow:var(--sh-3);font-size:var(--fs-sm);pointer-events:auto;animation:popIn var(--dur-2) var(--ease)}.toast-bad{background:var(--bad);color:#fff}.toast-action{border:0;background:transparent;color:inherit;font-weight:700;text-decoration:underline;min-height:36px;padding:0 4px}@media (max-width: 1023px){.toasts{bottom:calc(var(--tabbar-h) + 16px + var(--safe-b))}}@media (pointer: coarse),(max-width: 1023px){.btn-sm{min-height:44px;padding:0 14px}.icon-btn-sm{width:44px;height:44px}.seg-sm .seg-item{min-height:44px}.seg-sm{padding:2px}.chip{min-height:44px}}.shell{min-height:100dvh}.shell-main{min-width:0;display:flex;flex-direction:column;min-height:100dvh}.shell-content{flex:1 1 auto;min-width:0;outline:none}.brand{display:inline-flex;align-items:center;gap:10px;min-height:var(--tap);color:var(--ink);text-decoration:none;font-family:var(--font-display);font-weight:700;font-size:1.1875rem;letter-spacing:-.01em;white-space:nowrap}.brand-mark{flex:none;border-radius:10px}.brand.is-compact .brand-name{display:none}.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:12px;height:calc(var(--topbar-h) + var(--safe-t));padding:var(--safe-t) 12px 0 12px;background:color-mix(in srgb,var(--bg) 86%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--line)}.topbar-left{display:flex;align-items:center;gap:6px;min-width:0;flex:1 1 auto}.topbar-title{font-family:var(--font-display);font-weight:650;font-size:var(--fs-lg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.topbar-actions{display:flex;align-items:center;gap:4px;flex:none}.topbar-back{margin-left:-4px}.credit-chip{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:var(--r-full);background:var(--warn-soft);color:var(--warn-ink);font-weight:700;font-size:var(--fs-xs);text-decoration:none;margin-right:4px;white-space:nowrap}.credit-chip:hover{filter:brightness(.97)}.account-btn{display:grid;place-items:center;width:var(--tap);height:var(--tap);border:0;background:transparent;border-radius:50%;padding:0}.notif-pop{width:min(380px,calc(100vw - 16px));padding:8px}.notif-pop-head{display:flex;align-items:center;justify-content:space-between;padding:2px 8px 4px}.notif-pop-title{font-size:var(--fs-md)}.notif-empty{padding:12px 8px 16px}.notif-list{display:flex;flex-direction:column;gap:2px;max-height:60dvh;overflow-y:auto}.notif-item{display:flex;align-items:flex-start;gap:12px;padding:10px 8px;border-radius:var(--r-md);color:var(--ink);text-decoration:none;font-size:var(--fs-sm)}.notif-item:hover{background:var(--surface-2)}.notif-item.is-unread .notif-text{font-weight:650}.notif-chev{color:var(--faint);flex:none;align-self:center}.notif-icon{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:10px}.notif-homework{background:var(--sec-coach-soft);color:var(--sec-coach)}.notif-review{background:var(--sec-learn-soft);color:var(--sec-learn)}.notif-analysis{background:var(--sec-review-soft);color:var(--sec-review)}.notif-coach{background:var(--accent-soft);color:var(--accent-ink)}.notif-text{display:block;line-height:1.4}.notif-time{display:block;color:var(--muted);font-size:var(--fs-xs);margin-top:2px}.notif-dot{width:9px;height:9px;border-radius:50%;background:var(--bad);flex:none;margin-top:6px}.acct-head{display:flex;align-items:center;gap:12px;padding:8px 8px 6px}.acct-name{font-weight:700}.acct-sub{color:var(--muted);font-size:var(--fs-xs)}.shell.has-banner{--banner-h: 36px}.demo-banner{display:flex;align-items:center;gap:12px;padding:0 16px;height:var(--banner-h, 36px);background:var(--warn-soft);color:var(--warn-ink);font-size:var(--fs-xs);font-weight:600}.demo-banner .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.demo-exit{border:0;background:transparent;color:inherit;font-weight:700;text-decoration:underline;min-height:32px;white-space:nowrap}.snav-count{flex:none;margin-left:auto;min-width:22px;height:22px;padding:0 7px;border-radius:var(--r-full);background:var(--warn-soft);color:var(--warn-ink);font-size:12px;font-weight:750;line-height:22px;text-align:center;font-variant-numeric:tabular-nums}.sidebar{display:none}@media (min-width: 1024px){.shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr)}.shell.is-collapsed{grid-template-columns:var(--rail-w) minmax(0,1fr)}.sidebar{display:flex;flex-direction:column;position:sticky;top:0;height:100dvh;border-right:1px solid var(--line);background:var(--bg-sunk);padding:14px 12px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}:root[data-theme=dark] .sidebar{background:var(--bg-sunk)}.sidebar-top{padding:2px 6px 18px}.is-collapsed .sidebar-top{padding:2px 0 18px;display:flex;justify-content:center}.sidebar-nav{display:flex;flex-direction:column;gap:4px;flex:1 1 auto}.sidebar-foot{padding-top:12px;border-top:1px solid var(--line)}.snav-item{display:flex;align-items:center;gap:12px;width:100%;min-height:46px;padding:0 10px;border-radius:var(--r-md);border:0;background:transparent;color:var(--ink-2);font-weight:600;font-size:var(--fs-md);text-decoration:none;text-align:left;transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease)}.snav-item:hover{background:var(--surface-3);color:var(--ink)}.snav-icon{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:10px;color:var(--muted);transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease)}.snav-item.is-on{background:var(--surface);color:var(--ink);box-shadow:var(--sh-1)}.snav-group[data-sec=home] .snav-item.is-on .snav-icon{background:var(--sec-home-soft);color:var(--sec-home)}.snav-group[data-sec=play] .snav-item.is-on .snav-icon{background:var(--sec-play-soft);color:var(--sec-play)}.snav-group[data-sec=learn] .snav-item.is-on .snav-icon{background:var(--sec-learn-soft);color:var(--sec-learn)}.snav-group[data-sec=analysis] .snav-item.is-on .snav-icon{background:var(--sec-review-soft);color:var(--sec-review)}.snav-group[data-sec=coach] .snav-item.is-on .snav-icon{background:var(--sec-coach-soft);color:var(--sec-coach)}.snav-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.is-collapsed .snav-label{display:none}.is-collapsed .snav-item{justify-content:center;padding:0}.snav-sub{display:flex;flex-direction:column;gap:1px;margin:4px 0 8px 27px;padding-left:12px;border-left:1.5px solid var(--line-strong)}.snav-subitem{display:flex;align-items:center;gap:8px;min-height:38px;padding:0 10px;border-radius:var(--r-sm);color:var(--muted);text-decoration:none;font-size:var(--fs-sm);font-weight:550}.snav-subitem:hover{background:var(--surface-3);color:var(--ink)}.snav-subitem.is-on{color:var(--ink);font-weight:700;background:var(--surface-3)}.snav-soon{font-size:11px;font-weight:700;color:var(--warn-ink);background:var(--warn-soft);padding:2px 7px;border-radius:var(--r-full);letter-spacing:.01em}.snav-soon.is-preview{color:var(--info);background:var(--info-soft)}.snav-collapse{color:var(--muted);font-size:var(--fs-sm)}.snav-sep{height:1px;background:var(--line);margin:10px 8px}.snav-group[data-sec=admin] .snav-item.is-on .snav-icon{background:var(--sec-admin-soft);color:var(--sec-admin)}.snav-icon{position:relative}.snav-dot{position:absolute;top:3px;right:3px;width:9px;height:9px;border-radius:50%;background:var(--warn);box-shadow:0 0 0 2px var(--bg-sunk)}.topbar{padding:0 20px 0 28px;height:var(--topbar-h)}.topbar-brand-m{display:none}.is-focus .topbar{padding-left:14px}}@media (max-width: 1023px){.topbar-title.is-desktop-only{display:none}.shell-content{padding-bottom:calc(var(--tabbar-h) + var(--safe-b))}.is-focus .shell-content{padding-bottom:0}.topbar{padding-left:14px;padding-right:6px}.is-focus .topbar{padding-left:6px}}.tabbar{display:none}@media (max-width: 1023px){.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:repeat(5,1fr);height:calc(var(--tabbar-h) + var(--safe-b));padding-bottom:var(--safe-b);background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(16px);backdrop-filter:saturate(1.4) blur(16px);border-top:1px solid var(--line)}.tabbar-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);text-decoration:none;font-size:11.5px;font-weight:650;letter-spacing:.01em;min-width:0;-webkit-user-select:none;user-select:none}:root[data-display=large] .tabbar-item{font-size:13px}.tabbar-icon{display:grid;place-items:center;width:56px;height:32px;border-radius:var(--r-full);transition:background var(--dur-2) var(--ease),color var(--dur-2) var(--ease)}.tabbar-item.is-on{color:var(--ink)}.tabbar-item[data-sec=home].is-on .tabbar-icon{background:var(--sec-home-soft);color:var(--sec-home)}.tabbar-item[data-sec=play].is-on .tabbar-icon{background:var(--sec-play-soft);color:var(--sec-play)}.tabbar-item[data-sec=learn].is-on .tabbar-icon{background:var(--sec-learn-soft);color:var(--sec-learn)}.tabbar-item[data-sec=analysis].is-on .tabbar-icon{background:var(--sec-review-soft);color:var(--sec-review)}.tabbar-item[data-sec=coach].is-on .tabbar-icon{background:var(--sec-coach-soft);color:var(--sec-coach)}.tabbar-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 2px}.subtabs{position:sticky;top:calc(var(--topbar-h) + var(--safe-t));z-index:40;display:flex;gap:6px;padding:8px 14px;overflow-x:auto;scrollbar-width:none;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.subtabs::-webkit-scrollbar{display:none}.subtab{position:relative;display:inline-flex;align-items:center;gap:6px;flex:none;height:38px;padding:0 14px;border-radius:var(--r-full);background:var(--surface);border:1px solid var(--line);color:var(--ink-2);font-size:var(--fs-sm);font-weight:600;text-decoration:none;white-space:nowrap}.subtab.is-on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.subtab-dot{width:6px;height:6px;border-radius:50%;background:var(--warn)}.subtab-count{min-width:20px;height:20px;padding:0 6px;border-radius:var(--r-full);background:var(--warn-soft);color:var(--warn-ink);font-size:11.5px;font-weight:750;line-height:20px;text-align:center;font-variant-numeric:tabular-nums}.subtabs-end{flex:none;width:2px}.subtabs[data-sec=admin]:before,.subtabs[data-sec=admin]:after{content:"";position:sticky;flex:none;width:32px;align-self:stretch;z-index:1;pointer-events:none;opacity:0;transition:opacity var(--dur-1) var(--ease)}.subtabs[data-sec=admin]:before{left:-14px;margin-right:-32px;background:linear-gradient(to left,transparent,var(--bg))}.subtabs[data-sec=admin]:after{right:-14px;margin-left:-32px;background:linear-gradient(to right,transparent,var(--bg))}.subtabs[data-sec=admin][data-left]:before,.subtabs[data-sec=admin][data-right]:after{opacity:1}.subtab.is-on .subtab-count{background:color-mix(in srgb,var(--bg) 22%,transparent);color:var(--bg)}}@media (min-width: 1024px){.subtabs{display:none}}@media (max-width: 640px){.page{padding:var(--sp-4) var(--sp-4) var(--sp-10)}.page-head{margin-bottom:var(--sp-5)}.page-title{font-size:var(--fs-xl)}.card-pad-md{padding:var(--sp-4)}.card-pad-lg{padding:var(--sp-5)}.credit-chip-text{display:none}.credit-chip{width:var(--tap);height:var(--tap);padding:0;justify-content:center;background:transparent;color:var(--warn-ink);margin:0}}.cg-wrap{box-sizing:content-box;position:relative;display:block}cg-container{position:absolute;width:100%;height:100%;display:block;top:0}cg-board{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:0;background-size:cover}.cg-wrap.manipulable cg-board{cursor:pointer}cg-board square{position:absolute;top:0;left:0;width:12.5%;height:12.5%;pointer-events:none}cg-board square.move-dest{pointer-events:auto}cg-board square.last-move{will-change:transform}.cg-wrap piece{position:absolute;top:0;left:0;width:12.5%;height:12.5%;background-size:cover;z-index:2;will-change:transform;pointer-events:none}cg-board piece.dragging{cursor:move;z-index:11!important}piece.anim{z-index:8}piece.fading{z-index:1;opacity:.5}.cg-wrap piece svg{overflow:hidden;position:relative;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:2;opacity:.6}.cg-wrap cg-auto-pieces,.cg-wrap .cg-shapes,.cg-wrap .cg-custom-svgs{overflow:visible;position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.cg-wrap cg-auto-pieces{z-index:2}.cg-wrap cg-auto-pieces piece{opacity:.3}.cg-wrap .cg-shapes{overflow:hidden;opacity:.6;z-index:2}.cg-wrap .cg-custom-svgs{z-index:9}.cg-wrap .cg-custom-svgs svg{overflow:visible}.cg-wrap coords{position:absolute;display:flex;pointer-events:none;opacity:.8;font-family:sans-serif;font-size:9px}.cg-wrap coords.ranks{left:4px;top:-20px;flex-flow:column-reverse;height:100%;width:12px}.cg-wrap coords.ranks.black{flex-flow:column}.cg-wrap coords.ranks.left{left:-15px;align-items:flex-end}.cg-wrap coords.files{bottom:-4px;left:24px;flex-flow:row;width:100%;height:16px;text-transform:uppercase;text-align:center}.cg-wrap coords.files.black{flex-flow:row-reverse}.cg-wrap coords coord{flex:1 1 auto}.cg-wrap coords.ranks coord{transform:translateY(39%)}.cg-wrap coords.squares{bottom:0;left:0;text-transform:uppercase;text-align:right;flex-flow:column-reverse;height:100%;width:12.5%}.cg-wrap coords.squares.black{flex-flow:column}.cg-wrap coords.squares.left{text-align:left}.cg-wrap coords.squares coord{padding:6% 4%}.cg-wrap coords.squares.rank2{transform:translate(100%)}.cg-wrap coords.squares.rank3{transform:translate(200%)}.cg-wrap coords.squares.rank4{transform:translate(300%)}.cg-wrap coords.squares.rank5{transform:translate(400%)}.cg-wrap coords.squares.rank6{transform:translate(500%)}.cg-wrap coords.squares.rank7{transform:translate(600%)}.cg-wrap coords.squares.rank8{transform:translate(700%)}cg-board{background-color:#f0d9b5;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgogICAgIHZpZXdCb3g9IjAgMCA4IDgiIHNoYXBlLXJlbmRlcmluZz0iY3Jpc3BFZGdlcyI+CjxnIGlkPSJhIj4KICA8ZyBpZD0iYiI+CiAgICA8ZyBpZD0iYyI+CiAgICAgIDxnIGlkPSJkIj4KICAgICAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBpZD0iZSIgb3BhY2l0eT0iMCIvPgogICAgICAgIDx1c2UgeD0iMSIgeT0iMSIgaHJlZj0iI2UiIHg6aHJlZj0iI2UiLz4KICAgICAgICA8cmVjdCB5PSIxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBpZD0iZiIgb3BhY2l0eT0iMC4yIi8+CiAgICAgICAgPHVzZSB4PSIxIiB5PSItMSIgaHJlZj0iI2YiIHg6aHJlZj0iI2YiLz4KICAgICAgPC9nPgogICAgICA8dXNlIHg9IjIiIGhyZWY9IiNkIiB4OmhyZWY9IiNkIi8+CiAgICA8L2c+CiAgICA8dXNlIHg9IjQiIGhyZWY9IiNjIiB4OmhyZWY9IiNjIi8+CiAgPC9nPgogIDx1c2UgeT0iMiIgaHJlZj0iI2IiIHg6aHJlZj0iI2IiLz4KPC9nPgo8dXNlIHk9IjQiIGhyZWY9IiNhIiB4OmhyZWY9IiNhIi8+Cjwvc3ZnPg==)}cg-board square.move-dest{background:radial-gradient(#14551e80 22%,#208530 0,#0000004d,#0000 0)}cg-board square.premove-dest{background:radial-gradient(#141e5580 22%,#203085 0,#0000004d,#0000 0)}cg-board square.oc.move-dest{background:radial-gradient(transparent 0%,transparent 80%,rgba(20,85,0,.3) 80%)}cg-board square.oc.premove-dest{background:radial-gradient(transparent 0%,transparent 80%,rgba(20,30,85,.2) 80%)}cg-board square.move-dest:hover{background:#14551e4d}cg-board square.premove-dest:hover{background:#141e5533}cg-board square.last-move{background-color:#9bc70069}cg-board square.selected{background-color:#14551e80}cg-board square.check{background:radial-gradient(ellipse at center,red,#e70000 25%,#a9000000 89%,#9e000000)}cg-board square.current-premove{background-color:#141e5580}.orientation-white .ranks :nth-child(odd),.orientation-white .files :nth-child(2n),.orientation-black .ranks :nth-child(2n),.orientation-black .files :nth-child(odd),coords.squares:nth-of-type(odd) :nth-child(2n),coords.squares:nth-of-type(2n) :nth-child(odd){color:#484848cc}.orientation-white .ranks :nth-child(2n),.orientation-white .files :nth-child(odd),.orientation-black .ranks :nth-child(odd),.orientation-black .files :nth-child(2n),coords.squares:nth-of-type(odd) :nth-child(odd),coords.squares:nth-of-type(2n) :nth-child(2n){color:#fffc}.board.cg-wrap coords{opacity:1;font-family:var(--font-body);font-weight:700;line-height:1;z-index:3;font-size:clamp(10px,calc(var(---cg-width, 480px) * .024),14px);--coord-pad: calc(var(---cg-width, 480px) * .005 + 1px)}.board.cg-wrap coords coord{box-sizing:border-box}.board.cg-wrap coords.ranks{top:0;left:0;width:12.5%;height:100%}.board.cg-wrap coords.ranks coord{flex:0 0 12.5%;transform:none;text-align:left;padding:var(--coord-pad) 0 0 var(--coord-pad)}.board.cg-wrap coords.files{top:auto;bottom:0;left:0;width:100%;height:12.5%;align-items:flex-end;text-transform:none}.board.cg-wrap coords.files coord{flex:0 0 12.5%;text-align:right;padding:0 var(--coord-pad) var(--coord-pad) 0}.board.cg-wrap.orientation-white coords.ranks coord:nth-child(odd),.board.cg-wrap.orientation-white coords.files coord:nth-child(odd),.board.cg-wrap.orientation-black coords.ranks coord:nth-child(2n),.board.cg-wrap.orientation-black coords.files coord:nth-child(2n){color:var(--coord-on-d);text-shadow:1px 0 var(--coord-on-l),-1px 0 var(--coord-on-l),0 1px var(--coord-on-l),0 -1px var(--coord-on-l),1px 1px var(--coord-on-l),-1px -1px var(--coord-on-l),1px -1px var(--coord-on-l),-1px 1px var(--coord-on-l)}.board.cg-wrap.orientation-white coords.ranks coord:nth-child(2n),.board.cg-wrap.orientation-white coords.files coord:nth-child(2n),.board.cg-wrap.orientation-black coords.ranks coord:nth-child(odd),.board.cg-wrap.orientation-black coords.files coord:nth-child(odd){color:var(--coord-on-l);text-shadow:1px 0 var(--coord-on-d),-1px 0 var(--coord-on-d),0 1px var(--coord-on-d),0 -1px var(--coord-on-d),1px 1px var(--coord-on-d),-1px -1px var(--coord-on-d),1px -1px var(--coord-on-d),-1px 1px var(--coord-on-d)}:root{--board-bg: #b58863 url(/board/wood4.jpg) 0 0 / cover;--board-frame: #54422e;--pc-wP: url(/piece/maestro/wP.svg);--pc-wN: url(/piece/maestro/wN.svg);--pc-wB: url(/piece/maestro/wB.svg);--pc-wR: url(/piece/maestro/wR.svg);--pc-wQ: url(/piece/maestro/wQ.svg);--pc-wK: url(/piece/maestro/wK.svg);--pc-bP: url(/piece/maestro/bP.svg);--pc-bN: url(/piece/maestro/bN.svg);--pc-bB: url(/piece/maestro/bB.svg);--pc-bR: url(/piece/maestro/bR.svg);--pc-bQ: url(/piece/maestro/bQ.svg);--pc-bK: url(/piece/maestro/bK.svg);--board-shadow: 0 2px 6px rgba(56, 64, 40, .12), 0 24px 48px rgba(56, 64, 40, .16)}:root[data-theme=dark]{--board-shadow: 0 2px 6px rgba(0, 0, 0, .4), 0 24px 48px rgba(0, 0, 0, .5)}.board-box{position:relative;width:100%;max-width:var(--board-size, 100%);aspect-ratio:1 / 1;margin-inline:auto;flex:none}:root{--frame-pad: 13px}.board-frame{position:absolute;box-sizing:content-box;border-radius:14px;background:linear-gradient(158deg,color-mix(in srgb,var(--board-frame),#ffffff 12%),var(--board-frame));box-shadow:var(--board-shadow),inset 0 1px #ffffff12}:root[data-theme=dark] .board-frame{background:linear-gradient(158deg,color-mix(in srgb,#0d110c,#ffffff 12%),#0d110c);box-shadow:var(--board-shadow),0 0 0 1px #ffffff12,inset 0 1px #ffffff12}.board-inner{position:relative}.board{position:absolute;inset:0;border-radius:4px;overflow:hidden;touch-action:none}.board:after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 0 1px #00000042,inset 0 2px 11px -6px #00000080;z-index:3}.board cg-container{width:100%!important;height:100%!important}.board cg-board{background:var(--board-bg)}.board cg-board square.last-move{background-color:var(--lm-hl, rgba(206, 164, 66, .42))}.board cg-board square.selected{background-color:#cea4428f}.cg-wrap piece.dragging{cursor:grabbing}.cg-wrap piece.ghost{opacity:.3}.cg-wrap piece.pawn.white{background-image:var(--pc-wP)}.cg-wrap piece.knight.white{background-image:var(--pc-wN)}.cg-wrap piece.bishop.white{background-image:var(--pc-wB)}.cg-wrap piece.rook.white{background-image:var(--pc-wR)}.cg-wrap piece.queen.white{background-image:var(--pc-wQ)}.cg-wrap piece.king.white{background-image:var(--pc-wK)}.cg-wrap piece.pawn.black{background-image:var(--pc-bP)}.cg-wrap piece.knight.black{background-image:var(--pc-bN)}.cg-wrap piece.bishop.black{background-image:var(--pc-bB)}.cg-wrap piece.rook.black{background-image:var(--pc-bR)}.cg-wrap piece.queen.black{background-image:var(--pc-bQ)}.cg-wrap piece.king.black{background-image:var(--pc-bK)}.board svg.cg-shapes,.board svg.cg-custom-svgs{opacity:1}.board svg.cg-shapes line{stroke-linecap:round}@media (max-width: 1023px){.work-board,.ws-board{--frame-pad: 0px}.work-board .board-frame,.ws-board .board-frame{border-radius:0;box-shadow:none;background:none}.work-board .board,.ws-board .board{border-radius:0}}.san{white-space:nowrap}.fig-wrap{display:inline}.fig{display:inline-block;height:1.08em;vertical-align:-.2em;margin-right:.08em;flex:none}.kbadge{display:block;flex:none}.evalbar{position:relative;width:14px;border-radius:4px;overflow:hidden;flex:none;background:#2b2b27;box-shadow:0 0 0 1px var(--line-strong)}.evalbar-white{position:absolute;left:0;right:0;bottom:0;background:#f3efe4;transition:height var(--dur-3) var(--ease)}.evalbar.is-flipped .evalbar-white{bottom:auto;top:0}.evalbar-text{position:absolute;left:0;right:0;font-size:10.5px;font-weight:800;text-align:center;font-variant-numeric:tabular-nums;z-index:1;letter-spacing:-.02em}.evalbar-idle{background:var(--surface-3)}.evalbar-idle .evalbar-white{display:none}.promo{position:absolute;inset:0;z-index:20;background:#14100a8c;border-radius:inherit}.promo-col{position:absolute;width:12.5%;height:50%;display:flex;flex-direction:column}.promo-opt{flex:1 1 0;display:grid;place-items:center;border:0;padding:0;background:var(--surface);cursor:pointer}.promo-opt img{width:88%;height:88%;border-radius:50%;background:var(--surface-3);padding:6%;box-sizing:border-box;transition:background var(--dur-1) var(--ease)}.promo-opt:hover img,.promo-opt:focus-visible img{background:var(--accent-soft-2)}.promo-opt:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.san-tok{white-space:nowrap}.route-enter{animation:routeIn var(--dur-2) var(--ease)}@keyframes routeIn{0%{opacity:0;transform:translateY(4px)}}.side-dot{display:inline-block;width:12px;height:12px;border-radius:50%;flex:none;box-shadow:inset 0 0 0 1.5px var(--line-strong)}.side-w{background:#f7f3e8;box-shadow:inset 0 0 0 1.5px #9b9480}.side-b{background:#2b2b27;box-shadow:none}:root[data-theme=dark] .side-b{box-shadow:inset 0 0 0 1.5px #9aa38c}.side-icon{display:inline-grid;place-items:center;flex:none;border-radius:8px;background:var(--surface-3);padding:2px;box-sizing:content-box}.side-icon img{width:100%;height:100%}.acc-pill{font-variant-numeric:tabular-nums;font-weight:700;font-size:var(--fs-sm);color:var(--ink-2);padding:2px 8px;border-radius:var(--r-full);background:var(--surface-3)}.inline-badge{margin-left:8px;vertical-align:2px}.back-link{display:inline-flex;align-items:center;gap:4px;min-height:36px;margin-bottom:10px;color:var(--muted);text-decoration:none;font-weight:600;font-size:var(--fs-sm)}.back-link:hover{color:var(--ink)}.link-btn{border:0;background:none;padding:0;color:var(--accent-ink);font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;min-height:38px;padding:0 14px;border-radius:var(--r-full);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);font-size:var(--fs-sm);font-weight:600;text-align:left}.chip:hover{border-color:var(--faint);color:var(--ink)}.chip.is-on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.bullet-list{list-style:disc;padding-left:22px;display:grid;gap:6px;color:var(--ink-2)}.input-affix{position:relative;display:block}.input-affix .input.has-lead{padding-left:42px}.affix-lead{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--faint);pointer-events:none}.input-affix .affix-ok{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--ok-ink)}.affix-btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:40px;height:40px;border:0;background:none;color:var(--muted);border-radius:var(--r-sm);display:grid;place-items:center}.affix-btn[aria-pressed=true]{color:var(--accent-ink)}.panel-pad{padding:16px}.ok-ink{color:var(--ok-ink)}.shake{animation:shake .36s var(--ease)}@keyframes shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.typing{display:inline-flex;gap:4px;margin-left:8px;vertical-align:middle}.typing i{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:blink 1.2s infinite ease-in-out}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}.ftile{position:relative;display:flex;align-items:center;gap:14px;min-height:76px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);color:var(--ink);text-decoration:none;box-shadow:var(--sh-1);transition:border-color var(--dur-1) var(--ease),box-shadow var(--dur-2) var(--ease),transform var(--dur-2) var(--ease)}.ftile:hover{border-color:var(--line-strong);box-shadow:var(--sh-2)}.ftile:active{transform:translateY(1px)}.ftile-lg{min-height:96px;padding:18px;align-items:flex-start}.ftile-icon{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:12px}.ftile-lg .ftile-icon{width:50px;height:50px;border-radius:14px}.ftile[data-sec=home] .ftile-icon{background:var(--sec-home-soft);color:var(--sec-home)}.ftile[data-sec=play] .ftile-icon{background:var(--sec-play-soft);color:var(--sec-play)}.ftile[data-sec=learn] .ftile-icon{background:var(--sec-learn-soft);color:var(--sec-learn)}.ftile[data-sec=analysis] .ftile-icon{background:var(--sec-review-soft);color:var(--sec-review)}.ftile[data-sec=coach] .ftile-icon{background:var(--sec-coach-soft);color:var(--sec-coach)}.ftile-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.ftile-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-weight:700;font-size:var(--fs-md);line-height:1.3}.ftile-blurb{color:var(--muted);font-size:var(--fs-sm);line-height:1.45}.ftile-meta{margin-top:6px}.ftile-soon.is-preview{color:var(--info);background:var(--info-soft)}.ftile-soon{font-size:11px;font-weight:700;color:var(--warn-ink);background:var(--warn-soft);padding:2px 8px;border-radius:var(--r-full)}.ftile-arrow{color:var(--faint);flex:none;transition:transform var(--dur-2) var(--ease),color var(--dur-1)}.ftile-lg .ftile-arrow{margin-top:14px}.ftile:hover .ftile-arrow{transform:translate(3px);color:var(--ink-2)}.ftile.is-soon .ftile-icon{filter:saturate(.75)}.home-hero{margin-bottom:var(--sp-5)}.home-title{font-size:clamp(1.75rem,1.3rem + 1.6vw,2.375rem);margin-top:6px}.home-name{color:var(--accent-ink)}.home-grid{display:grid;gap:var(--sp-6);grid-template-columns:minmax(0,1fr)}@media (min-width: 1100px){.home-grid{grid-template-columns:minmax(0,1fr) 340px;align-items:start}}.home-main{min-width:0}.next-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;padding:22px;border-radius:var(--r-xl);text-decoration:none;color:var(--ink);background:linear-gradient(135deg,var(--surface) 0%,var(--surface-2) 100%);border:1px solid var(--line);box-shadow:var(--sh-2);transition:box-shadow var(--dur-2) var(--ease),transform var(--dur-2) var(--ease)}.next-card:hover{box-shadow:var(--sh-3)}.next-card:active{transform:translateY(1px)}.next-card.is-skeleton{display:block}.next-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:16px}.next-card[data-tone=analysis] .next-icon{background:var(--sec-review-soft);color:var(--sec-review)}.next-card[data-tone=coach] .next-icon{background:var(--sec-coach-soft);color:var(--sec-coach)}.next-card[data-tone=learn] .next-icon{background:var(--sec-learn-soft);color:var(--sec-learn)}.next-body{display:flex;flex-direction:column;gap:4px;min-width:0}.next-label{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);letter-spacing:.03em}.next-title{font-family:var(--font-display);font-weight:650;font-size:var(--fs-xl);line-height:1.2}.next-text{color:var(--ink-2);font-size:var(--fs-sm)}@media (max-width: 640px){.next-card{grid-template-columns:auto minmax(0,1fr);padding:18px;gap:14px}.next-icon{width:48px;height:48px}.next-cta{grid-column:1 / -1;width:100%}}.home-quick{margin-top:var(--sp-8)}.quick-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))}.home-side{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}.side-card{display:flex;flex-direction:column;gap:12px}.side-card-head{display:flex;align-items:center;gap:10px}.side-card-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--accent-soft);color:var(--accent-ink)}.side-card[data-sec=coach] .side-card-icon{background:var(--sec-coach-soft);color:var(--sec-coach)}.side-card[data-sec=learn] .side-card-icon{background:var(--sec-learn-soft);color:var(--sec-learn)}.side-card-title{font-size:var(--fs-md)}.plan-list,.explore-list,.course-mini-list{display:flex;flex-direction:column;gap:2px}.plan-item,.explore-item{display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 8px;margin:0 -8px;border-radius:var(--r-sm);color:var(--ink);text-decoration:none;font-size:var(--fs-sm);font-weight:550}.plan-item:hover,.explore-item:hover{background:var(--surface-2)}.plan-check{color:var(--sec-coach);flex:none}.explore-item svg{color:var(--muted);flex:none}.course-mini{display:flex;flex-direction:column;gap:6px;padding:8px;margin:0 -8px;border-radius:var(--r-sm);color:var(--ink);text-decoration:none;font-size:var(--fs-sm);font-weight:600}.course-mini:hover{background:var(--surface-2)}.play-modes{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}.how-card{display:flex;flex-direction:column;gap:8px}.how-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--sec-play-soft);color:var(--sec-play)}.play-preview{display:grid;gap:24px;grid-template-columns:minmax(0,300px) minmax(0,1fr);align-items:center}@media (max-width: 720px){.play-preview{grid-template-columns:1fr}.play-preview-board{max-width:320px}}.coach-quote{margin:0;font-family:var(--font-display);font-size:var(--fs-lg);line-height:1.45;color:var(--ink);border-left:3px solid var(--sec-play);padding-left:16px}.coach-bubble{background:var(--surface-2);border-radius:var(--r-md);padding:12px 14px;font-size:var(--fs-sm)}.coach-bubble-who{display:block;font-weight:700;font-size:var(--fs-xs);color:var(--accent-ink);margin-bottom:2px}.tempo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.tempo-cell{display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 6px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line)}.tempo-cell b{font-size:var(--fs-lg);font-variant-numeric:tabular-nums}.tempo-cell small{color:var(--muted);font-size:var(--fs-xs)}.video-mock{display:flex;flex-direction:column;gap:12px}.video-tiles{display:grid;grid-template-columns:1fr 1fr;gap:8px}.video-tile{aspect-ratio:16 / 10;border-radius:var(--r-md);background:var(--surface-3);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--muted)}.module-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}.continue-card{display:flex;flex-direction:column;gap:10px;text-decoration:none;color:var(--ink)}.continue-title{font-family:var(--font-display);font-weight:650;font-size:var(--fs-lg)}.path-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}.path-card{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.path-step{display:grid;place-items:center;min-width:44px;height:44px;padding:0 10px;border-radius:12px;background:var(--sec-learn-soft);color:var(--sec-learn);font-weight:800;font-variant-numeric:tabular-nums}.soon-hero{display:grid;gap:var(--sp-8);grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center}@media (max-width: 900px){.soon-hero{grid-template-columns:1fr}}.soon-text{display:flex;flex-direction:column;gap:16px}.soon-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:16px}.soon-page[data-sec=play] .soon-icon{background:var(--sec-play-soft);color:var(--sec-play)}.soon-page[data-sec=learn] .soon-icon{background:var(--sec-learn-soft);color:var(--sec-learn)}.soon-points{display:flex;flex-direction:column;gap:10px}.soon-points li{display:flex;gap:10px;align-items:flex-start}.soon-points svg{color:var(--accent);flex:none;margin-top:3px}.soon-preview{max-width:460px;width:100%;justify-self:center}.soon-related{margin-top:var(--sp-8);display:flex;flex-direction:column;gap:8px}.classic-list{display:flex;flex-direction:column}.classic-row{display:flex;align-items:center;gap:14px;padding:12px 4px;border-bottom:1px solid var(--line)}.classic-row:last-child{border-bottom:0}.classic-year{font-weight:800;color:var(--sec-learn);min-width:44px}.classic-players{display:block;font-weight:650}.classic-event{display:block}.mini{position:relative;width:100%;aspect-ratio:1;border-radius:5px;overflow:hidden;box-shadow:0 0 0 3px var(--board-frame),0 8px 18px -10px #1e160c80;margin:3px;width:calc(100% - 6px)}.mini-grid{display:grid;grid-template-columns:repeat(8,1fr);width:100%;height:100%;background:var(--board-bg)}.mini-sq{position:relative}.mini-sq.hi:after{content:"";position:absolute;inset:0;background:#2f6b4666}.mini-sq.lm:after{content:"";position:absolute;inset:0;background:#cea4426b}.mini-sq img{position:absolute;inset:4%;width:92%;height:92%;z-index:1}.mini-arrows{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}.mini-line{stroke-width:.24;stroke-linecap:round;opacity:.9}.mini-green{stroke:#2f8a4c;fill:#2f8a4c}.mini-red{stroke:#c0452b;fill:#c0452b}.mini-blue{stroke:#2d5d8f;fill:#2d5d8f}.mini-gold{stroke:#b98a1a;fill:#b98a1a}.mini-ah{stroke:none}.page-work{max-width:1440px;padding-top:var(--sp-5)}.work{--board-size: min(calc(100dvh - var(--topbar-h) - var(--banner-h, 0px) - 130px), 760px);display:grid;gap:var(--sp-6);align-items:start;grid-template-columns:minmax(300px,var(--board-size)) minmax(320px,440px);justify-content:center}.work-board{display:flex;flex-direction:column;gap:12px;min-width:0;position:sticky;top:calc(var(--topbar-h) + 16px)}.work-panel{min-width:0}.work-under,.work-above{display:flex;justify-content:center}.work-under{padding-top:14px}@media (max-width: 1023px){.page-work{padding:0 0 var(--sp-8)}.work{grid-template-columns:minmax(0,1fr);gap:14px;--board-size: 100%}.work-board{position:static}.work-board .board-box{max-width:min(100vw,620px)}.work-board .board{border-radius:0}.work-panel{padding:0 var(--sp-4)}}@media (min-width: 640px) and (max-width: 1023px){.work-board .board{border-radius:6px}.page-work{padding-top:var(--sp-4)}}.board-controls{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}.controls-sep{width:1px;height:28px;background:var(--line);margin:0 4px}.pz-top{display:grid;gap:16px;grid-template-columns:minmax(0,1fr) 220px}@media (max-width: 760px){.pz-top{grid-template-columns:1fr}}.pz-daily{display:grid;gap:24px;grid-template-columns:minmax(0,260px) minmax(0,1fr);align-items:center}@media (max-width: 560px){.pz-daily{grid-template-columns:1fr}.pz-daily-board{max-width:300px;width:100%;margin:0 auto}}.pz-stats{display:flex;flex-direction:column;gap:14px}.pz-stats-title{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:650}.pz-stats .pz-stat+.pz-stat{padding-top:14px;border-top:1px solid var(--line)}.pz-today{margin-top:auto;display:flex;align-items:center;gap:8px;font-weight:600;font-size:var(--fs-sm);color:var(--muted)}.pz-today.is-done{color:var(--ok-ink)}@media (max-width: 760px){.pz-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}.pz-stats-title,.pz-today{grid-column:1 / -1}.pz-stats .pz-stat+.pz-stat{padding-top:0;border-top:0}}.pz-stat{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;color:var(--sec-learn)}.pz-stat svg{grid-row:span 2}.pz-stat-num{font-size:var(--fs-2xl);font-weight:800;color:var(--ink);line-height:1}.theme-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr))}.theme-chip{display:flex;align-items:center;gap:8px;min-height:52px;padding:0 16px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);text-decoration:none;color:var(--ink);font-weight:600}.theme-chip:hover{border-color:var(--line-strong);box-shadow:var(--sh-1)}.theme-chip svg{color:var(--faint)}.track-card{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.track-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--sec-learn-soft);color:var(--sec-learn)}.pz-panel{display:flex;flex-direction:column;gap:16px}.pz-status{display:flex;align-items:center;gap:10px;min-height:56px;padding:12px 16px;border-radius:var(--r-md);background:var(--surface-2);font-weight:650;font-size:var(--fs-md)}.pz-good,.pz-solved{background:var(--ok-soft);color:var(--ok-ink)}.pz-wrong{background:var(--bad-soft);color:var(--bad-ink)}.pz-actions{display:flex;flex-wrap:wrap;gap:8px}.panel-title{font-size:var(--fs-xl);margin-top:4px}.line-crumbs{display:flex;flex-wrap:wrap;gap:2px 4px;margin-top:12px}.crumb{display:inline-flex;align-items:baseline;gap:2px;min-height:32px;padding:0 6px;border:0;border-radius:6px;background:none;color:var(--ink);font-size:var(--fs-sm)}.crumb:hover{background:var(--surface-3)}.crumb.is-on{background:var(--accent-soft);color:var(--accent-ink);font-weight:700}.crumb.is-ahead{color:var(--faint)}.crumb-no{color:var(--muted);font-variant-numeric:tabular-nums;margin-right:2px}.masters-card{overflow:hidden}.masters-head{display:grid;grid-template-columns:64px 120px minmax(0,1fr);gap:10px;padding:10px 14px;font-size:var(--fs-xs);color:var(--muted);border-bottom:1px solid var(--line);font-weight:600}.masters-list{display:flex;flex-direction:column}.masters-list.is-stale{opacity:.6}.masters-row,.masters-total{display:grid;grid-template-columns:64px 120px minmax(0,1fr);gap:10px;align-items:center;width:100%;min-height:44px;padding:6px 14px;border:0;background:none;color:var(--ink);text-align:left;font-size:var(--fs-sm)}.masters-row:hover:not(:disabled){background:var(--surface-2)}.masters-row:disabled{cursor:default}.masters-total{color:var(--muted);border-top:1px solid var(--line);font-weight:600}.masters-san{font-weight:700}.masters-count{display:flex;justify-content:flex-end;align-items:baseline;gap:6px;font-variant-numeric:tabular-nums}.masters-count small{min-width:2.7em;text-align:right}.masters-head .num{text-align:right;padding-right:calc(2.7em + 6px)}.masters-total .num{text-align:right;padding-right:calc(2.7em + 6px);font-variant-numeric:tabular-nums}.masters-mini .masters-row{padding:6px 0;grid-template-columns:56px 110px minmax(0,1fr)}.masters-mini .eyebrow{margin-bottom:6px}.wdb{display:flex;height:20px;border-radius:5px;overflow:hidden;font-size:11px;font-weight:700;line-height:20px;box-shadow:inset 0 0 0 1px var(--line)}.wdb>span{text-align:center;overflow:hidden;white-space:nowrap}.wdb-w{background:#f3efe4;color:#2b2b27;box-shadow:inset 0 0 0 1px var(--line-strong)}.wdb-d{background:#a8a292;color:#fff}.wdb-b{background:#2f2e29;color:#f3efe4}.topgames{display:flex;flex-direction:column}.topgame{display:flex;align-items:center;gap:10px;min-height:44px;padding:4px 0;color:var(--ink);text-decoration:none;font-size:var(--fs-sm);border-bottom:1px solid var(--line)}.topgame:last-child{border-bottom:0}.tg-res{min-width:34px;text-align:center;font-weight:800;font-size:var(--fs-xs);padding:3px 0;border-radius:6px;background:var(--surface-3)}.ws{--ws-eval: 28px;--ws-board: min(calc(100dvh - var(--topbar-h) - var(--banner-h, 0px) - 196px), calc(100vw - var(--sidebar-w) - 556px), 900px);display:grid;gap:32px;padding:20px 24px 16px;max-width:1600px;margin:0 auto;grid-template-columns:calc(var(--ws-board) + var(--ws-eval)) minmax(360px,1fr);grid-template-areas:"board panel";align-items:start}.is-collapsed .ws{--ws-board: min(calc(100dvh - var(--topbar-h) - var(--banner-h, 0px) - 196px), calc(100vw - var(--rail-w) - 556px), 900px)}.ws-board{grid-area:board;display:flex;flex-direction:column;gap:8px;min-width:0}.ws-board-row{display:flex;gap:10px;align-items:stretch}.ws-board-row .board-box{flex:1 1 auto;max-width:none}.ws-panel{grid-area:panel;display:flex;flex-direction:column;min-width:0;height:calc(100dvh - var(--topbar-h) - var(--banner-h, 0px) - 40px);position:sticky;top:calc(var(--topbar-h) + 20px);container-type:inline-size;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1);overflow:hidden}.ws-controls-wrap{margin-top:6px}.ws-head{display:flex;align-items:flex-start;gap:12px;padding:16px 18px 10px}.ws-title{font-size:var(--fs-xl);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ws-tabs .tab{padding:0 11px;gap:6px}@container (max-width: 560px){.ws-tabs .tab svg{display:none}}.ws-acc{display:flex;flex-direction:column;align-items:flex-end;flex:none}.ws-acc .num{font-size:var(--fs-xl);font-weight:800;line-height:1.1}.ws-acc small{color:var(--muted);font-size:var(--fs-xs)}.ws-progress{display:flex;flex-direction:column;gap:6px;padding:0 18px 12px}.ws-panel>.notice{margin:0 12px 10px}.ws-tabs{padding:0 8px;flex:none}.ws-tabpanel{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;position:relative}.pstrip{display:flex;align-items:center;gap:10px;min-height:34px;padding:0 4px;font-size:var(--fs-sm)}.pstrip-name{font-weight:700}.pstrip-rating{color:var(--muted)}.pstrip-you{flex:none;padding:1px 8px;border-radius:var(--r-full);background:var(--accent-soft);color:var(--accent-ink);font-size:var(--fs-xs);font-weight:700}.pstrip-clock{margin-left:auto;font-weight:700;padding:3px 10px;border-radius:6px;background:var(--surface-3);font-size:var(--fs-xs)}.pstrip-clock.is-active{background:var(--ink);color:var(--bg)}.ws-board-row .evalbar{width:18px;margin-block:var(--frame-pad)}@media (max-width: 1023px){.ws{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0;height:calc(100dvh - var(--topbar-h) - var(--safe-t) - var(--banner-h, 0px))}.ws-board{display:contents}.ws-board>.pstrip,.ws-board>.ws-board-row{flex:none;order:1}.ws-panel{order:2}.ws-board>.ws-controls-wrap{order:3;margin-top:0}.ws-board .board-box{max-width:min(100vw,calc(100dvh - var(--topbar-h) - var(--banner-h, 0px) - 300px),640px)}.ws-board .board{border-radius:0}.ws-board-row{justify-content:center;gap:0}.ws-board-row .evalbar{width:10px;border-radius:0}.ws-board-row .evalbar .evalbar-text,.ws-board-row .evalbar.evalbar-idle{display:none}.ws-board-row .board-box{min-width:0}.ws-board-row .board-box{flex:0 1 auto;width:100%}.pstrip{min-height:30px;padding:0 12px;font-size:var(--fs-xs)}.ws-panel{position:static;height:auto;flex:1 1 auto;min-height:0;border-radius:0;border:0;border-top:1px solid var(--line);box-shadow:none;overflow-y:auto;overscroll-behavior:contain}.ws-panel>.ws-tabs{position:sticky;top:0;z-index:3;background:var(--surface)}.ws-panel>.ws-tabpanel{flex:none;overflow:visible}.ws-head{padding:10px 14px 6px}.ws-title,.ws-acc .num{font-size:var(--fs-lg)}.ws-controls-wrap{flex:none;padding:6px 8px calc(6px + var(--safe-b));border-top:1px solid var(--line);background:var(--surface)}.ws-controls{flex-wrap:nowrap;justify-content:space-between;gap:2px}.ws-controls .controls-sep{display:none}}@media (max-width: 1023px) and (max-height: 620px){.ws{height:auto}.ws-board .board-box{max-width:min(100vw,480px)}.ws-panel{min-height:420px}}.moments{display:flex;flex-direction:column;gap:8px;padding:12px}.opening-line{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r-md);background:var(--surface-2);color:var(--ink-2)}.opening-icon{color:var(--sec-review)}.moment{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);transition:border-color var(--dur-1),box-shadow var(--dur-2)}.moment.is-active{border-color:var(--line-strong);box-shadow:var(--sh-2)}.moment.mk-hata.is-active{box-shadow:inset 3px 0 0 var(--bad),var(--sh-2)}.moment.mk-rakip.is-active{box-shadow:inset 3px 0 0 var(--k-miss),var(--sh-2)}.moment.mk-parlak.is-active,.moment.mk-harika.is-active{box-shadow:inset 3px 0 0 var(--k-brilliant),var(--sh-2)}.moment.mk-saglam.is-active,.moment.mk-plan.is-active,.moment.mk-acilis.is-active{box-shadow:inset 3px 0 0 var(--accent),var(--sh-2)}.moment.is-pending .moment-head{opacity:.8}.moment-head{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:8px 12px;border:0;background:none;color:var(--ink);text-align:left;flex-wrap:wrap}.moment-move{display:inline-flex;align-items:baseline;gap:4px;font-weight:700;font-size:var(--fs-md)}.moment-no{color:var(--muted);font-weight:600}.moment-nag{font-weight:800;margin-left:-4px}.nag-blunder,.nag-mistake{color:var(--k-mistake)}.nag-inaccuracy{color:var(--k-inaccuracy)}.nag-brilliant{color:var(--k-brilliant)}.nag-great{color:var(--k-great)}.moment-kind{color:var(--muted);font-size:var(--fs-sm);font-weight:600}.moment-loss{margin-left:auto;font-weight:800;color:var(--bad-ink);font-size:var(--fs-sm)}.moment-chev{color:var(--faint);transition:transform var(--dur-2);flex:none}.moment:not(.mk-hata):not(.mk-rakip) .moment-chev{margin-left:auto}.moment.is-active .moment-chev{transform:rotate(180deg)}.moment-body{display:flex;flex-direction:column;gap:12px;padding:0 14px 14px}.moment-better{font-size:var(--fs-md)}.moment-tags{display:flex;flex-wrap:wrap;gap:6px}.moment-text p{line-height:1.6}.moment-essence{color:var(--ink-2);font-size:var(--fs-sm);line-height:1.55}.moment-writing{color:var(--muted);display:flex;align-items:center;gap:4px}.moment-praise{display:flex;gap:8px;align-items:center;color:var(--k-brilliant);font-weight:600;font-size:var(--fs-sm)}.inline-line{display:inline;border:0;background:var(--accent-soft);color:var(--accent-ink);border-radius:5px;padding:1px 5px;font:inherit;font-weight:650;cursor:pointer}.inline-line:hover{background:var(--accent-soft-2)}.plan-menu ul{display:flex;flex-direction:column;gap:4px;margin-top:4px}.evidence{border-top:1px solid var(--line);padding-top:10px;font-size:var(--fs-sm)}.evidence summary{cursor:pointer;font-weight:650;color:var(--muted);min-height:36px;display:flex;align-items:center;gap:6px;list-style:none}.evidence summary::-webkit-details-marker{display:none}.evidence-chev{transition:transform var(--dur-2) var(--ease)}.evidence[open] .evidence-chev{transform:rotate(180deg)}.evidence dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 12px;margin:8px 0 0}.evidence dt{color:var(--muted);font-weight:600}.evidence dd{margin:0}.objection{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--line);padding-top:12px}.objection .field-label{display:inline-flex;align-items:center;gap:6px}.objection-row{display:flex;gap:8px}.objection-answer{background:var(--surface-2);border-radius:var(--r-md);padding:10px 12px;display:flex;flex-direction:column;gap:6px;font-size:var(--fs-sm)}.fb-link{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;border:0;background:none;padding:4px 0;color:var(--faint);font-size:var(--fs-xs);font-weight:600;min-height:32px}.fb-link:hover{color:var(--muted)}.review-card{background:var(--accent-soft);border-radius:var(--r-md);padding:14px 16px;display:flex;flex-direction:column;gap:6px}.moves{height:100%;overflow-y:auto;padding:10px 12px}.moves-empty{padding:8px}.moves-grid{display:flex;flex-direction:column;padding:8px 0 16px}.moves-row{display:grid;grid-template-columns:44px 1fr 1fr;align-items:center;min-height:36px}.moves-row-wrap:nth-child(odd) .moves-row{background:var(--surface-2);border-radius:6px}.mv-no{color:var(--muted);font-size:var(--fs-sm);text-align:right;padding-right:10px}.mv{display:inline-flex;align-items:center;gap:0;min-height:34px;padding:0 8px;border:0;border-radius:6px;background:none;color:var(--ink);font-size:var(--fs-md);text-align:left;font-variant-numeric:tabular-nums}.mv:hover{background:var(--surface-3)}.mv.is-cur{background:var(--accent);color:var(--on-accent)}.mv.is-empty{pointer-events:none}.mv-nag{font-weight:800}.mv.k-blunder{color:var(--kt-blunder);font-weight:700}.mv.k-mistake{color:var(--kt-mistake);font-weight:700}.mv.k-miss{color:var(--kt-miss);font-weight:700}.mv.k-inaccuracy{color:var(--kt-inaccuracy);font-weight:700}.mv.k-brilliant{color:var(--kt-brilliant);font-weight:700}.mv.k-great{color:var(--kt-great);font-weight:700}.mv.is-cur .mv-nag{color:inherit}.mv.mv.is-cur{color:var(--on-accent)}.var-line{display:flex;flex-wrap:wrap;align-items:center;gap:2px;margin:4px 0 6px 44px;padding:6px 8px;border-left:2px solid var(--info);background:var(--info-soft);border-radius:0 6px 6px 0}.mv-var{font-size:var(--fs-sm);min-height:30px;padding:0 5px}.mv-no-inline{color:var(--muted);margin-right:2px}.var-exit{margin-left:auto;width:32px;height:32px;display:grid;place-items:center;border:0;background:none;color:var(--info);border-radius:6px}.var-exit:hover{background:var(--surface)}.report{display:flex;flex-direction:column;gap:16px}.report-acc{display:grid;grid-template-columns:1fr 1fr;gap:10px}.acc-card{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"dot name" "num num" "lbl lbl";column-gap:8px;align-items:center;padding:12px;border-radius:var(--r-md);background:var(--surface-2)}.acc-card.is-you{box-shadow:inset 0 0 0 1.5px var(--accent)}.acc-card .side-dot{grid-area:dot}.acc-name{grid-area:name;font-weight:650;font-size:var(--fs-sm)}.acc-num{grid-area:num;font-size:var(--fs-2xl);font-weight:800;margin-top:4px}.acc-card .muted{grid-area:lbl}.report-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.report-table th{color:var(--muted);font-weight:600;font-size:var(--fs-xs);text-align:left;padding:6px}.report-table th.num,.report-table td.num{text-align:center;width:64px;font-weight:700}.report-table td{padding:6px;border-top:1px solid var(--line);vertical-align:middle;line-height:1.25}.report-table tr.is-zero{color:var(--faint)}.report-table tr.is-zero .kbadge{filter:saturate(.3);opacity:.6}.report-k{display:flex;align-items:center;gap:10px;min-height:26px}.engine{display:flex;flex-direction:column;gap:10px}.engine-opts{gap:8px}.engine-lines{display:flex;flex-direction:column;gap:4px}.engine-wait{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:var(--fs-sm)}.engine-line{display:flex;align-items:flex-start;gap:10px;width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--ink)}.engine-score{flex:none;min-width:54px;min-height:28px;border:0;text-align:center;font-weight:800;font-size:var(--fs-sm);padding:2px 6px;border-radius:6px;cursor:pointer}.engine-score.is-w{background:#f3efe4;color:#2b2b27;box-shadow:inset 0 0 0 1px var(--line)}.engine-score.is-b{background:#2f2e29;color:#f3efe4}.engine-pv{display:flex;flex-wrap:wrap;gap:0 2px;font-size:var(--fs-sm);align-items:center}.engine-mv{display:inline-flex;align-items:center;gap:1px;min-height:28px;padding:0 5px;border:0;border-radius:5px;background:none;color:var(--ink);font-size:inherit;cursor:pointer}.engine-mv:hover{background:var(--surface-3)}.engine-no{color:var(--muted)}.engine-opt{display:inline-flex;align-items:center;gap:8px}.engine-opt-label{font-size:var(--fs-xs);font-weight:600;color:var(--muted)}.ask{display:flex;flex-direction:column;height:100%}.ask-thread{flex:1 1 auto;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:14px}.ask-empty{display:flex;flex-direction:column;gap:10px}.ask .composer{margin:0 12px 12px}.lib-tools{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:16px}.lib-search{flex:1 1 280px;max-width:460px}.lib-row{display:flex;align-items:center;gap:4px;padding-right:8px}.lib-row+.lib-row{box-shadow:0 -1px 0 var(--line)}.lib-main{display:flex;align-items:center;gap:14px;flex:1 1 auto;min-width:0;min-height:68px;padding:10px 12px 10px 16px;color:var(--ink);text-decoration:none;border-radius:var(--r-md)}.lib-main:hover{background:var(--surface-2)}.lib-main .lrow-sub{display:block}.lib-main .lrow-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal}.lib-meta{display:flex;align-items:center;gap:8px;flex:none}@media (max-width: 560px){.lib-main{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;column-gap:12px;row-gap:8px;padding-right:4px}.lib-main .lrow-sub{white-space:normal}.lib-meta{grid-column:2;justify-content:flex-start}}.running-card{display:flex;align-items:center;gap:12px;padding:14px 16px;margin-bottom:16px;border-radius:var(--r-md);background:var(--info-soft);color:var(--ink);text-decoration:none}.running-pulse{width:10px;height:10px;border-radius:50%;background:var(--info);animation:ping 1.4s infinite;flex:none}@keyframes ping{0%{box-shadow:0 0 #3b5a7a80}to{box-shadow:0 0 0 10px #3b5a7a00}}.new-src{max-width:100%}.game-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;min-height:72px;padding:10px 14px}.game-meta{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media (max-width: 560px){.game-row{grid-template-columns:auto minmax(0,1fr);row-gap:8px}.game-row>.game-actions,.game-row>.btn{grid-column:1 / -1;justify-self:end}}.game-row+.game-row{box-shadow:0 -1px 0 var(--line)}.res-badge{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;font-weight:800;font-size:var(--fs-sm);flex:none}.res-win{background:var(--ok-soft);color:var(--ok-ink)}.res-loss{background:var(--bad-soft);color:var(--bad-ink)}.res-draw{background:var(--surface-3);color:var(--ink-2)}.game-opp{font-weight:700;display:flex;align-items:center;gap:8px}.game-actions{display:flex;align-items:center;gap:4px;flex:none}.import-form{display:grid;gap:14px;grid-template-columns:180px minmax(0,1fr) auto;align-items:end}@media (max-width: 640px){.import-form{grid-template-columns:1fr}}.start-sheet{display:grid;gap:20px;grid-template-columns:200px minmax(0,1fr);align-items:start}@media (max-width: 560px){.start-sheet{grid-template-columns:1fr}.start-board{max-width:220px}}.sheet-cost{display:inline-flex;align-items:center;gap:6px;margin-right:auto;color:var(--warn-ink);font-size:var(--fs-xs);font-weight:650}@media (max-width: 640px){.sheet-cost{flex-basis:100%!important;justify-content:center}}.course-strip{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}.course-chip{display:flex;align-items:center;gap:12px;padding:12px 14px;text-decoration:none;color:var(--ink)}.course-chip-name{display:block;font-weight:700}.own-games{margin:var(--sp-6) 0 0}.own-list{display:flex;flex-direction:column;margin-top:10px}.own-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.own-name{display:block;font-weight:650}.own-row .muted.xs{font-size:var(--fs-sm)}.cat-tools{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:var(--sp-8) 0 var(--sp-2)}.cat-search{flex:1 1 260px;max-width:420px}.cat-tools .seg{height:44px;box-sizing:border-box}.cat-tools .seg-item{min-height:0;height:100%}.cat-tools .input{height:44px;min-height:44px;padding-block:0}.cat-tools .chip{min-height:44px}.op-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr))}.opc{display:grid;grid-template-columns:136px minmax(0,1fr);gap:14px;padding:12px;text-decoration:none;color:var(--ink);content-visibility:auto;contain-intrinsic-size:140px}.opc.is-locked{opacity:.65;cursor:not-allowed}.opc-board{align-self:start}.opc-body{display:flex;flex-direction:column;gap:6px;min-width:0}.opc-name{font-size:var(--fs-md);line-height:1.25}.opc-blurb{color:var(--muted);font-size:var(--fs-sm);line-height:1.4}.opc-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:auto}.course-hero{display:grid;gap:28px;grid-template-columns:minmax(0,300px) minmax(0,1fr);align-items:center}@media (max-width: 760px){.course-hero{grid-template-columns:1fr}.course-hero-board{max-width:300px;width:100%;margin:0 auto}}.course-hero-body{display:flex;flex-direction:column;gap:14px}.course-prog{display:flex;flex-direction:column;gap:6px;max-width:480px}.course-prog b{white-space:nowrap}.var-list{padding:4px}.var-row{display:flex;align-items:center;gap:4px;padding-right:6px}.var-row+.var-row{box-shadow:0 -1px 0 var(--line)}.var-main{flex:1 1 auto;min-width:0;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 120px;grid-template-areas:"name bar state" "moves bar state";gap:2px 16px;align-items:center;padding:10px 12px;color:var(--ink);text-decoration:none;border-radius:var(--r-md)}.var-main:hover{background:var(--surface-2)}.var-name{grid-area:name;font-weight:650}.var-moves{grid-area:moves}.var-bar{grid-area:bar}.var-state{grid-area:state;font-size:var(--fs-xs);color:var(--muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap}@media (max-width: 640px){.var-main{grid-template-columns:minmax(0,1fr);grid-template-areas:"name" "moves" "bar" "state";gap:4px}}.state-dot{width:8px;height:8px;border-radius:50%;background:var(--line-strong)}.st-learning,.st-taught{background:var(--sec-learn)}.st-reviewing{background:var(--info)}.st-mastered{background:var(--ok)}.due-n{color:var(--warn-ink)}.lesson-board{width:100%}.lesson-steps{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:var(--board-outer, var(--board-size));margin-inline:auto;gap:8px}.lesson-panel{display:flex;flex-direction:column;gap:14px}.lesson-prog{display:flex;align-items:center;gap:10px}.lesson-prog .pbar{flex:1 1 auto}.lesson-head{display:flex;flex-direction:column;gap:8px}.lesson-head .back-link{margin:0;min-height:28px}.lesson-title{font-size:var(--fs-xl)}.lesson-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.coach-say{display:flex;gap:10px;align-items:flex-start;padding:14px 16px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-1);font-size:var(--fs-md);line-height:1.55;animation:popIn var(--dur-2) var(--ease)}.coach-say.is-dim{color:var(--muted);font-style:italic;background:none;border-style:dashed;box-shadow:none}.coach-say-avatar{display:grid;place-items:center;width:28px;height:28px;flex:none;border-radius:50%;background:var(--accent);color:var(--on-accent);margin-top:1px}.hold{display:flex;flex-direction:column;gap:6px}.your-move{display:flex;flex-direction:column;gap:2px;padding:12px 16px;border-radius:var(--r-md);background:var(--accent-soft);border-left:4px solid var(--accent)}.your-move b{font-size:var(--fs-md);display:flex;align-items:center;gap:6px}.your-move span{color:var(--ink-2);font-size:var(--fs-sm)}.your-move.is-wrong{background:var(--bad-soft);border-left-color:var(--bad)}.your-move.is-trap{background:var(--warn-soft);border-left-color:var(--warn)}.coach-wait{display:flex;align-items:center;gap:6px}.trap{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:var(--r-lg);border:1px solid}.trap.is-trap{background:var(--bad-soft);border-color:color-mix(in srgb,var(--bad) 30%,transparent)}.trap.is-mistake{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 35%,transparent)}.trap.is-chance{background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok) 30%,transparent)}.trap-badge{display:inline-flex;align-items:center;gap:6px;font-weight:800;font-size:var(--fs-sm)}.trap.is-trap .trap-badge{color:var(--bad-ink)}.trap.is-mistake .trap-badge{color:var(--warn-ink)}.trap.is-chance .trap-badge{color:var(--ok-ink)}.trap-eval{font-weight:800}.trap-eval small{font-weight:600;color:var(--muted)}.trap-body{line-height:1.55}.trap-line span{color:var(--faint)}.trap-line span.is-on{color:var(--ink);font-weight:700}.trans-box{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-radius:var(--r-md);background:var(--info-soft)}.trans-line .is-on{color:var(--muted)}.trans-line .is-new{font-weight:700}.trans-line .is-now{background:var(--info);color:#fff;border-radius:4px;padding:0 3px}.ask-box{display:flex;flex-direction:column;gap:10px}.opt-list{display:flex;flex-direction:column;gap:8px}.opt{display:grid;grid-template-columns:64px minmax(0,1fr) 8.6em;gap:12px;align-items:center;width:100%;min-height:60px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--ink);text-align:left;transition:border-color var(--dur-1),box-shadow var(--dur-1)}.opt:hover,.opt:focus-visible{border-color:var(--info);box-shadow:var(--sh-2)}.opt.is-mine{border-color:var(--accent)}.opt-san{font-weight:800;font-size:var(--fs-md)}.opt-body{display:flex;flex-direction:column;gap:6px;min-width:0}.opt-name{font-size:var(--fs-sm);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opt-bar{height:6px;border-radius:3px;background:var(--surface-3);overflow:hidden}.opt-bar i{display:block;height:100%;background:var(--info)}.opt-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:0;font-variant-numeric:tabular-nums}.opt-badges{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.done-box{display:flex;flex-direction:column;gap:12px;align-items:flex-start}.done-badge{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--ok-soft);color:var(--ok-ink)}.done-title{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:650}.offer{display:flex;flex-direction:column;gap:10px;width:100%}.offer-wide{display:grid;grid-template-columns:180px minmax(0,1fr);gap:16px;align-items:center}@media (max-width: 560px){.offer-wide{grid-template-columns:1fr}.offer-board{max-width:220px}}.crumbs{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.verdict{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--r-md)}.verdict.is-ok{background:var(--ok-soft);color:var(--ok-ink)}.verdict.is-no{background:var(--bad-soft);color:var(--bad-ink)}.verdict b{font-size:var(--fs-md)}.verdict p{color:var(--ink)}.next-timer{position:relative;overflow:hidden}.next-timer-bar{position:absolute;left:0;bottom:0;height:3px;width:100%;background:#ffffffb3;transform-origin:left;animation:timer linear forwards}@keyframes timer{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.drill-end{max-width:640px}.drill-stats{display:flex;gap:32px;justify-content:center}.drill-stats div{display:flex;flex-direction:column;align-items:center}.drill-stats b{font-size:var(--fs-2xl)}.drill-stats span{color:var(--muted);font-size:var(--fs-sm)}@media (max-width: 1023px){.lesson-steps{padding:0 var(--sp-4);max-width:none}}.chat{display:grid;grid-template-columns:290px minmax(0,1fr);gap:0;height:calc(100dvh - var(--topbar-h) - var(--banner-h, 0px));max-width:1280px;margin:0 auto}.chat-side{border-right:1px solid var(--line);padding:18px 12px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.chat-side-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 4px}.chat-side-title{font-size:var(--fs-md)}.sess-list{display:flex;flex-direction:column;gap:2px}.sess{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:var(--r-md);color:var(--ink);text-decoration:none}.sess:hover{background:var(--surface-3)}.sess.is-on{background:var(--surface);box-shadow:var(--sh-1)}.sess-title{font-weight:650;font-size:var(--fs-sm)}.sess-meta{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:var(--fs-xs)}.chat-main{display:flex;flex-direction:column;min-width:0;min-height:0}.chat-bar{display:flex;align-items:center;gap:8px;padding:12px 20px;border-bottom:1px solid var(--line)}.chat-bar-title{font-weight:700}.chat-bar-link{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs);color:var(--sec-review);text-decoration:none;font-weight:600}.chat-hist-btn{display:none}.chat-scroll{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain}.chat-thread{display:flex;flex-direction:column;gap:16px;padding:24px 20px;max-width:780px;margin:0 auto;width:100%}.chat-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:8vh 20px 24px;max-width:620px;margin:0 auto}.chat-empty-icon{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:var(--sec-coach-soft);color:var(--sec-coach)}.chat-empty-title{font-size:var(--fs-2xl)}.chat-empty .chips{justify-content:center;margin-top:12px}.chat-compose{padding:12px 20px calc(12px + var(--safe-b));border-top:1px solid var(--line);background:var(--bg)}.chat-compose .composer{max-width:780px;margin:0 auto}.chat-note{text-align:center;margin-top:6px}@media (max-width: 1023px){.chat{grid-template-columns:1fr;height:calc(100dvh - var(--topbar-h) - var(--safe-t) - var(--banner-h, 0px) - 55px - var(--tabbar-h) - var(--safe-b))}.chat-side{display:none}.chat-hist-btn{display:inline-flex}.chat-bar{padding:8px 12px}.chat-thread{padding:16px 14px}.chat-compose{padding:8px 12px}.chat-note{display:none}}.bubble{display:flex;gap:10px;max-width:100%}.bubble-user{justify-content:flex-end}.bubble-user p{background:var(--accent);color:var(--on-accent);padding:10px 14px;border-radius:18px 18px 4px;max-width:min(560px,85%);white-space:pre-wrap;overflow-wrap:anywhere}.bubble-coach{align-items:flex-start}.bubble-avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--sec-coach);color:#fff;flex:none;margin-top:2px}.bubble-body{display:flex;flex-direction:column;gap:6px;min-width:0;max-width:min(660px,92%)}.bubble-coach .md{background:var(--surface);border:1px solid var(--line);padding:12px 16px;border-radius:4px 18px 18px;box-shadow:var(--sh-1);overflow-wrap:anywhere}.bubble-coach.is-error .md{background:var(--bad-soft);border-color:transparent}.md p+p,.md ul,.md ol{margin-top:8px}.md ul{list-style:disc;padding-left:20px}.md ol{list-style:decimal;padding-left:20px}.md code{background:var(--surface-3);padding:1px 5px;border-radius:4px}.bubble-verified{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs);color:var(--ok-ink);font-weight:600;padding-left:4px}.thinking{display:flex;align-items:center;color:var(--muted);font-size:var(--fs-sm);padding:12px 16px;background:var(--surface);border:1px solid var(--line);border-radius:4px 18px 18px}.composer{display:flex;align-items:flex-end;gap:8px;padding:6px 6px 6px 16px;border-radius:24px;border:1px solid var(--line-strong);background:var(--surface);box-shadow:var(--sh-1)}.composer:focus-within{border-color:var(--accent);box-shadow:var(--focus)}.composer-input{flex:1 1 auto;min-height:40px;max-height:168px;padding:9px 0;border:0;background:none;resize:none;line-height:1.45;outline:none}.composer-side{display:flex;align-items:center;gap:6px}.composer-cost{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:var(--warn-ink);padding:0 4px}.composer .icon-btn{width:40px;height:40px;border-radius:50%}.stat-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}.stat{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon icon" "num num" "lbl lbl" "sub sub";gap:2px;align-content:start}.stat-icon{grid-area:icon;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;margin-bottom:6px}.stat-icon[data-sec=coach]{background:var(--sec-coach-soft);color:var(--sec-coach)}.stat-icon[data-sec=analysis]{background:var(--sec-review-soft);color:var(--sec-review)}.stat-icon[data-sec=play]{background:var(--sec-play-soft);color:var(--sec-play)}.stat-icon[data-sec=learn]{background:var(--sec-learn-soft);color:var(--sec-learn)}.stat-num{grid-area:num;font-size:var(--fs-2xl);font-weight:800;line-height:1.1}.stat-label{grid-area:lbl;font-weight:650;font-size:var(--fs-sm)}.stat-sub{grid-area:sub;color:var(--muted);font-size:var(--fs-xs)}.prog-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));margin-top:24px}.bars{display:flex;flex-direction:column;gap:12px;margin-top:16px}.bar-row{display:grid;grid-template-columns:110px minmax(0,1fr) 40px;gap:12px;align-items:center;font-size:var(--fs-sm)}.bar-val{text-align:right;font-weight:700}.sub-h{font-size:var(--fs-sm);margin:20px 0 8px;font-family:var(--font-body);font-weight:700}.split-bar{display:flex;height:36px;border-radius:8px;overflow:hidden;font-size:var(--fs-xs);font-weight:700}.split-bar span{display:flex;align-items:center;justify-content:center;white-space:nowrap;overflow:hidden;padding:0 6px;min-width:0}.split-a{background:var(--sec-play-soft);color:var(--sec-play)}.split-b{background:var(--sec-review-soft);color:var(--sec-review)}.motif-list{display:flex;flex-direction:column;margin-top:10px}.motif-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.motif-row:first-child{border-top:0}.motif-name{display:block;font-weight:650}.motif-ex{display:flex;gap:10px;flex-wrap:wrap}.motif-link{font-size:var(--fs-xs);font-weight:600;color:var(--sec-review)}.notebook-card{background:linear-gradient(135deg,var(--surface) 0%,var(--sec-coach-soft) 140%)}.gate{display:flex;flex-direction:column;gap:6px;margin-top:16px}.hw-list{display:flex;flex-direction:column;gap:10px}.hw-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px}.hw-card.is-closed{opacity:.75}.hw-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--sec-coach-soft);color:var(--sec-coach);flex:none}.hw-title{font-weight:700}.nowrap{white-space:nowrap}.hw-actions{display:flex;align-items:center;gap:6px;margin-left:auto}@media (max-width: 560px){.hw-card{grid-template-columns:auto minmax(0,1fr)}.hw-actions{grid-column:1 / -1;justify-content:flex-end;margin-left:0}}.notif-item-lg{padding:14px 16px}.notif-item-lg+.notif-item-lg{box-shadow:0 -1px 0 var(--line)}.credit-hero{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.credit-hero-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:var(--warn-soft);color:var(--warn-ink)}.credit-hero-num{font-size:var(--fs-2xl);font-weight:800;font-family:var(--font-display)}.cost-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--surface-3);color:var(--ink-2)}.cost-pill{display:inline-flex;align-items:center;gap:4px;font-weight:800;color:var(--warn-ink);background:var(--warn-soft);padding:4px 10px;border-radius:var(--r-full)}.profile-hero{display:flex;align-items:center;gap:18px}.setting-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;min-height:var(--tap)}.settings-board{display:grid;gap:24px;grid-template-columns:minmax(0,1fr) 180px;align-items:center}@media (max-width: 560px){.settings-board{grid-template-columns:1fr}.settings-board-preview{max-width:200px}}.public{min-height:100dvh;display:flex;flex-direction:column}.pub-bar{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);padding-top:var(--safe-t)}.pub-bar-in{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:1180px;margin:0 auto;padding:8px 16px;min-height:60px}.lang-btn{min-width:44px;height:44px;border-radius:var(--r-md);border:0;background:none;font-weight:800;font-size:var(--fs-xs);color:var(--ink-2);letter-spacing:.04em}.lang-btn:hover{background:var(--surface-3)}.auth-wrap{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:5vh 16px 40px}.auth-card{width:100%;max-width:440px;display:flex;flex-direction:column;gap:16px}.auth-head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}.auth-title{font-size:var(--fs-2xl)}.auth-seg{width:100%}.auth-seg .seg-item{flex:1 1 0}.lichess-btn{background:#2b2b27;color:#fff}.lichess-btn:hover{background:#3a3a35}:root[data-theme=dark] .lichess-btn{background:#f3efe4;color:#1b1b18}.auth-or{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:var(--fs-xs)}.auth-or:before,.auth-or:after{content:"";flex:1;height:1px;background:var(--line)}.auth-demo{display:flex;flex-direction:column;align-items:center;gap:6px;padding-top:12px;border-top:1px solid var(--line);text-align:center}.auth-foot{margin-top:16px}.welcome{max-width:640px;width:100%;margin:0 auto;padding:8vh 16px 48px;display:flex;flex-direction:column;gap:24px}.welcome-head{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.lp-wrap{max-width:1180px;margin:0 auto;padding:0 20px}.lp-hero{padding:7vh 0 8vh}.lp-hero-grid{display:grid;gap:48px;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center}@media (max-width: 960px){.lp-hero-grid{grid-template-columns:1fr;gap:32px}}.lp-hero-text{display:flex;flex-direction:column;gap:20px;align-items:flex-start}.lp-title{font-size:clamp(2.1rem,1.4rem + 3vw,3.4rem);line-height:1.08}.lp-title-b{display:block;color:var(--muted);font-weight:600;font-size:.72em;margin-top:10px;line-height:1.2}.lp-ctas{gap:10px}.lp-ticks{display:flex;flex-direction:column;gap:8px;color:var(--ink-2);font-size:var(--fs-sm)}.lp-ticks li{display:flex;align-items:center;gap:10px}.lp-ticks svg{color:var(--accent);flex:none}.lp-lesson{padding:18px;display:flex;flex-direction:column;gap:12px;max-width:460px;width:100%;justify-self:center;box-shadow:var(--sh-3)}.lp-lesson-head{display:flex;align-items:center;gap:10px}.lp-coach-dot{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--accent);color:var(--on-accent)}.lp-lesson-who{font-weight:700}.lp-legend{display:flex;gap:16px;flex-wrap:wrap}.lp-legend span{display:inline-flex;align-items:center;gap:6px}.lg-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.lg-green{background:#15781b}.lg-red{background:#b23a1f}.lp-speech{font-size:var(--fs-sm);line-height:1.55}.lp-verified{color:var(--ok-ink);background:var(--ok-soft);padding:8px 10px;border-radius:8px}.lp-section{padding:9vh 0}.lp-alt{background:var(--bg-sunk)}.lp-h2{font-size:clamp(1.6rem,1.2rem + 1.4vw,2.3rem);margin:8px 0 24px}.lp-pillars{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))}.lp-pillar{padding:20px;display:flex;flex-direction:column;gap:10px}.lp-pillar-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px}.lp-pillar[data-sec=learn] .lp-pillar-icon{background:var(--sec-learn-soft);color:var(--sec-learn)}.lp-pillar[data-sec=analysis] .lp-pillar-icon{background:var(--sec-review-soft);color:var(--sec-review)}.lp-pillar[data-sec=coach] .lp-pillar-icon{background:var(--sec-coach-soft);color:var(--sec-coach)}.lp-pillar[data-sec=play] .lp-pillar-icon{background:var(--sec-play-soft);color:var(--sec-play)}.lp-feats{display:flex;flex-direction:column;gap:6px;margin-top:auto;padding-top:8px;border-top:1px solid var(--line);font-size:var(--fs-sm)}.lp-feats li{display:flex;align-items:center;gap:8px;min-height:30px}.lp-split{display:grid;gap:40px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}@media (max-width: 860px){.lp-split{grid-template-columns:1fr}}.lp-layers{display:grid;gap:12px}.lp-layers h3{margin:4px 0 6px}.lp-who .card{display:flex;flex-direction:column;gap:8px}.lp-who-icon{color:var(--accent)}.lp-cta{display:flex;align-items:center;gap:24px;flex-wrap:wrap;background:linear-gradient(135deg,var(--surface) 0%,var(--accent-soft) 160%)}.lp-cta .lp-h2{margin-bottom:8px}.lp-foot{border-top:1px solid var(--line);padding:24px 0 calc(24px + var(--safe-b))}@media (max-width: 480px){.pub-cta{display:none}}@media (pointer: coarse),(max-width: 1023px){.ml-mv,.crumb,.fb-link,.link-btn,.var-exit{min-height:44px;min-width:44px}.demo-exit{min-height:44px}.evidence summary{min-height:44px}}.theme-picker{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.theme-opt{position:relative;display:flex;flex-direction:column;gap:10px;align-items:stretch;padding:12px;border-radius:var(--r-md);border:1.5px solid var(--line);background:var(--surface);text-align:left;color:var(--ink)}.theme-opt:hover{border-color:var(--line-strong)}.theme-opt.is-on{border-color:var(--accent);box-shadow:var(--focus)}.theme-swatch{display:grid;grid-template-columns:repeat(4,1fr);aspect-ratio:2 / 1;border-radius:4px;overflow:hidden;margin:3px}.theme-sq{display:grid;place-items:center}.theme-sq img{width:86%;height:86%}.piece-swatch{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:6px;border-radius:6px;background:var(--surface-2);aspect-ratio:3 / 2}.piece-swatch img{width:100%;height:100%;object-fit:contain}.theme-name{display:flex;flex-direction:column;font-weight:650;font-size:var(--fs-sm)}.theme-name small{color:var(--accent-ink);font-weight:600;font-size:var(--fs-xs)}.theme-check{position:absolute;top:8px;right:8px;color:var(--on-accent);background:var(--accent);border-radius:50%;padding:2px;width:20px;height:20px}.timeline{flex:none;position:relative;display:grid;grid-template-columns:16px minmax(0,1fr);grid-template-rows:1fr 1fr;column-gap:8px;height:46px;margin:2px 18px 10px}.tl-side{font-size:10px;font-weight:800;color:var(--faint);display:grid;place-items:center;grid-column:1}.tl-side.is-you{color:var(--accent-ink)}.tl-w{grid-row:1}.tl-b{grid-row:2}.tl-track{grid-column:2;grid-row:1 / 3;position:relative;border-radius:6px;background:var(--surface-2);overflow:hidden}.tl-mid{position:absolute;left:0;right:0;top:50%;height:1px;background:var(--line-strong)}.tl-bar{position:absolute;top:0;bottom:0;padding:0;border:0;background:transparent;cursor:pointer}.tl-bar:hover{background:color-mix(in srgb,var(--ink) 7%,transparent)}.tl-bar.is-cur{background:color-mix(in srgb,var(--accent) 16%,transparent);box-shadow:inset 1px 0 0 var(--accent),inset -1px 0 0 var(--accent)}.tl-fill{position:absolute;left:12%;right:12%;border-radius:2px;background:var(--line-strong)}.tl-fill.up{bottom:50%}.tl-fill.down{top:50%}.tl-fill.k-inaccuracy{background:var(--k-inaccuracy)}.tl-fill.k-mistake{background:var(--k-mistake)}.tl-fill.k-miss{background:var(--k-miss)}.tl-fill.k-blunder{background:var(--k-blunder)}.tl-fill.k-brilliant{background:var(--k-brilliant)}.tl-fill.k-great{background:var(--k-great)}@media (max-width: 1023px){.timeline{height:34px;margin:0 14px 6px}}.home2{display:flex;flex-direction:column;gap:var(--sp-6)}.home2 .section{margin-top:var(--sp-2)}.coach-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:32px;align-items:center;padding:28px;border-radius:var(--r-xl);background:radial-gradient(120% 140% at 0% 0%,var(--surface) 40%,color-mix(in srgb,var(--accent) 7%,var(--surface)) 100%);box-shadow:var(--sh-2)}.coach-hero-text{display:flex;flex-direction:column;gap:16px;min-width:0}.coach-msg{display:flex;gap:12px;align-items:flex-start}.coach-msg-avatar{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:50%;background:var(--accent);color:var(--on-accent);box-shadow:0 0 0 4px var(--accent-soft)}.coach-msg-body{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-md);line-height:1.55;color:var(--ink-2);min-width:0;flex:1}.coach-msg-who{font-weight:700;color:var(--ink);font-size:var(--fs-sm)}.coach-hero-board{min-width:0;max-width:380px;width:100%;justify-self:center}.hero-board-link{display:flex;flex-direction:column;gap:12px;color:var(--ink);text-decoration:none}.hero-board-link:hover .mini{box-shadow:0 0 0 3px var(--board-frame),0 14px 28px -12px #1e160c8c}.hero-board-cap{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;font-size:var(--fs-sm)}.hero-board-cap b{font-size:var(--fs-md)}.legend-dots{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:var(--fs-xs);margin-left:auto}.legend-dots .lg-dot{margin-left:4px}@media (max-width: 900px){.coach-hero{grid-template-columns:1fr;padding:20px;gap:22px}.coach-hero-board{max-width:340px}}.home-row{display:grid;gap:var(--sp-5);grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}.home-row-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr))}@media (max-width: 900px){.home-row{grid-template-columns:1fr}}.today-list{display:flex;flex-direction:column;gap:4px;margin-top:14px}.today-item{display:flex;align-items:center;gap:12px;min-height:52px;padding:8px 12px;border-radius:var(--r-md);color:var(--ink);text-decoration:none;background:var(--surface-2);font-weight:550}.today-item:hover{background:var(--surface-3)}.today-item.is-done{background:transparent;color:var(--muted)}.today-item.is-done .grow{text-decoration:line-through;text-decoration-color:var(--line-strong)}.today-check{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line-strong);color:transparent;flex:none}.today-check svg{display:none}.today-item.is-done .today-check{background:var(--ok);border-color:var(--ok);color:#fff}.today-item.is-done .today-check svg{display:block}.today-icon{color:var(--muted);flex:none}.stat-col{display:flex;flex-direction:column;gap:var(--sp-3)}@media (max-width: 900px){.stat-col{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}}.mini-stat{display:flex;align-items:center;gap:14px}@media (max-width: 560px){.mini-stat{flex-direction:column;align-items:flex-start;gap:8px}.mini-stat-go{display:none}}.mini-stat-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;flex:none}.mini-stat-icon{background:var(--accent-soft);color:var(--accent-ink)}.mini-stat-icon.is-warm{background:var(--warn-soft);color:var(--warn-ink)}a.mini-stat{text-decoration:none;color:var(--ink)}.mini-stat-go{color:var(--faint);flex:none;transition:transform var(--dur-1) var(--ease),color var(--dur-1) var(--ease)}a.mini-stat:hover .mini-stat-go{color:var(--accent-ink);transform:translate(2px)}.mini-stat-num{display:block;font-size:var(--fs-xl);font-weight:800;line-height:1.1}.mini-stat-label{display:block;color:var(--muted);font-size:var(--fs-xs);font-weight:600}.feature-card{display:flex;flex-direction:column;gap:14px}.feature-body{display:grid;grid-template-columns:180px minmax(0,1fr);gap:20px;align-items:center}@media (max-width: 480px){.feature-body{grid-template-columns:120px minmax(0,1fr);gap:14px}}.feature-title{font-size:var(--fs-lg)}.upcoming{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}.upcoming-item{display:flex;align-items:center;gap:12px;padding:14px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);text-decoration:none;color:var(--ink)}.upcoming-item:hover{border-color:var(--line-strong);box-shadow:var(--sh-1)}.upcoming-item .grow{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.upcoming-title{font-weight:650;font-size:var(--fs-sm)}.upcoming-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;flex:none}.upcoming-item[data-sec=play] .upcoming-icon{background:var(--sec-play-soft);color:var(--sec-play)}.upcoming-item[data-sec=learn] .upcoming-icon{background:var(--sec-learn-soft);color:var(--sec-learn)}@media (max-width: 560px){.list-card .lrow{flex-wrap:wrap;row-gap:8px}.list-card .lrow-main{flex:1 1 calc(100% - 60px)}.list-card .lrow-trail{flex:1 1 100%;padding-left:50px;justify-content:flex-start}.list-card .lrow-title{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.title-with-badge{display:inline-flex;align-items:center;gap:12px;flex-wrap:wrap}.title-with-badge .badge{font-family:var(--font-body)}.notation-box{border-top:1px solid var(--line);padding-top:10px;display:flex;flex-direction:column;gap:6px}.notation-title{font-size:var(--fs-sm);font-weight:650;color:var(--ink-2)}.ml{max-height:214px;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}.ml-row{display:grid;grid-template-columns:44px minmax(0,1fr) minmax(0,1fr);align-items:center}.ml-row:nth-child(2n){background:var(--surface-2)}.ml-no{color:var(--muted);font-size:var(--fs-sm);text-align:right;padding-right:10px}.ml-mv{display:flex;align-items:center;min-height:34px;padding:0 10px;border:0;background:none;color:var(--ink);font-size:var(--fs-md);text-align:left;border-radius:0}.ml-mv:hover:not(:disabled){background:var(--surface-3)}.ml-mv:disabled{cursor:default}.ml-mv.is-cur{background:var(--accent);color:var(--on-accent);font-weight:700}.ml-mv.is-empty{pointer-events:none}.cn-closed{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cn-open{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border-radius:var(--r-full);border:1px dashed color-mix(in srgb,var(--sec-coach) 55%,transparent);background:transparent;color:var(--sec-coach);font-size:var(--fs-sm);font-weight:650;transition:background var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease)}.cn-open:hover{background:var(--sec-coach-soft);border-style:solid}.cn-open:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--sec-coach) 35%,transparent)}.cn-open.is-locked{opacity:.55;cursor:not-allowed}.cn-open.is-locked:hover{background:transparent;border-style:dashed}.cn-open-state{font-weight:600;font-size:var(--fs-xs);color:var(--muted);padding-left:8px;border-left:1px solid var(--line-strong)}.cn-lock{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:var(--fs-xs)}.cn-box{display:flex;flex-direction:column;gap:12px;padding:14px 16px 16px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--sec-coach);box-shadow:var(--sh-2);animation:popIn var(--dur-2) var(--ease)}.cn-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.cn-title{display:inline-flex;align-items:center;gap:6px 8px;flex-wrap:wrap;font-weight:700;font-size:var(--fs-md);line-height:1.3}.cn-head .btn{margin-top:-6px}.cn-head .btn{margin-right:-8px}.cn-source{margin-top:-4px;color:var(--muted)}.cn-state{color:var(--ink-2)}.cn-field{display:flex;flex-direction:column;gap:6px;min-width:0}.cn-labelrow{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.cn-box .textarea{min-height:0}.cn-box .cn-text{min-height:92px}.cn-box .cn-why{min-height:68px}.cn-box.is-report .cn-why{min-height:96px}.cn-text{font-size:var(--fs-md)}.cn-count{align-self:flex-end;color:var(--muted)}.cn-count.is-low{color:var(--bad-ink);font-weight:700}.cn-toggle{align-self:flex-start;color:var(--muted);font-size:var(--fs-sm);min-height:32px}.cn-toggle:hover{color:var(--ink)}.cn-problem{display:flex;flex-direction:column;gap:10px;padding-top:12px;border-top:1px solid var(--line)}.cn-box.is-report .cn-problem{padding-top:0;border-top:0}.cn-move{max-width:220px;font-family:var(--font-mono)}.cn-acts{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.cn-keys{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}.cn-done{align-items:center}.cn-done b{font-size:var(--fs-sm)}.cn-warn{color:var(--warn-ink);margin-top:2px}.cn-err{align-items:center}.trap-coach{padding-top:10px;border-top:1px solid color-mix(in srgb,var(--ink) 10%,transparent)}.trap-coach .cn-box{box-shadow:var(--sh-1)}@media (pointer: coarse),(max-width: 1023px){.cn-open{min-height:44px}.cn-keys{display:none}}.fbm-lede{margin:-4px 0 12px;max-width:60ch}.fbm-list{display:flex;flex-direction:column}.fbm-item{display:flex;flex-direction:column;gap:10px;padding:16px 18px}.fbm-item+.fbm-item{border-top:1px solid var(--line)}.fbm-item.is-editing{background:var(--surface-2)}.fbm-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.fbm-text{line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}.fbm-res{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:var(--r-md);background:var(--ok-soft);color:var(--ink)}.fbm-res svg{flex:none;margin-top:2px;color:var(--ok-ink)}.fbm-acts{--gap: 4px;margin-left:-10px}.fbm-acts .fbm-open{margin-left:auto;min-height:36px}.fbm-drop{color:var(--bad-ink)}.fbm-edit .textarea{min-height:96px}.fbm-edit .fbm-acts{margin-left:0;--gap: 8px}@media (max-width: 560px){.fbm-item{padding:14px}}.reset-tool{display:flex;flex-direction:column;align-items:flex-end;gap:4px;max-width:280px}.reset-note{text-align:right}@media (max-width: 767px){.reset-tool{align-items:flex-start;max-width:none}.reset-note{text-align:left}}
