@font-face{font-family:Golos Text Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/golos-text-cyrillic-ext-wght-normal-hICkpzq7.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Golos Text Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/golos-text-cyrillic-wght-normal-mKek_fSS.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Golos Text Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/golos-text-latin-ext-wght-normal-B-I5lbAQ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Golos Text Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/golos-text-latin-wght-normal-BS5oQT7X.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-bg:#f1ece0;--color-surface:#fff;--color-surface-2:#f7f3ea;--color-border:#e0d8c6;--color-text:#2c261d;--color-text-dim:#6f6555;--color-text-faint:#9c917d;--color-primary:#6d9540;--color-primary-hover:#7ba34d;--color-primary-active:#5d8135;--color-primary-disabled:#c6d5ab;--color-on-primary:#fff;--color-primary-soft:#eaf0dd;--color-accent:#d99a2b;--color-accent-soft:#f8efdb;--color-danger:#d64541;--color-danger-soft:#fbe9e8;--color-success:#2f9e6e;--color-success-soft:#e4f4ec;--board-light:#f0d9b5;--board-dark:#b58863;--board-highlight:#ffd42a;--board-hover:#ffffff8c;--board-move-dot:#3a2b1a;--board-check:#f2311f;--board-arrow-engine:#6d9540;--board-arrow-user:#e8a33d;--move-brilliant:#3a9e8f;--move-great:#5b8ab5;--move-best:#6d9540;--move-excellent:#85a25c;--move-good:#9aa584;--move-book:#a78d5f;--move-forced:#98917f;--move-inaccuracy:#c2a23f;--move-mistake:#c07f42;--move-miss:#b8604c;--move-blunder:#a83c33;--font-sans:"Golos Text Variable", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono Variable", ui-monospace, monospace;--text-xs:12px;--leading-xs:16px;--text-sm:13px;--leading-sm:18px;--text-base:14px;--leading-base:20px;--text-md:16px;--leading-md:24px;--text-lg:18px;--leading-lg:26px;--text-xl:22px;--leading-xl:30px;--text-2xl:28px;--leading-2xl:36px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--radius-s:6px;--radius-m:10px;--radius-l:14px;--radius-full:999px;--shadow-1:0 1px 2px #2c261d0f, 0 2px 8px #2c261d0f;--shadow-2:0 4px 12px #2c261d1a, 0 12px 32px #2c261d24;--side-white:#f7f4ec;--side-black:#2c261d;--on-side-white:#2c261d;--on-side-black:#f7f4ec;--overlay-veil:#1b2a3a73;--shadow-piece-drag:drop-shadow(0 6px 10px #1b2a3a59);--focus-ring:0 0 0 3px #6d954059;--icon-size:20px;--icon-stroke:1.75;--duration-fast:.12s;--duration-base:.18s;--duration-slow:.28s;--ease-out:cubic-bezier(.2, .8, .3, 1);--ease-in:cubic-bezier(.6, 0, .8, .4)}:root[data-theme=dark]{--color-bg:#262624;--color-surface:#30302e;--color-surface-2:#3a3a37;--color-border:#4c4c47;--color-text:#f0eee6;--color-text-dim:#b8b5aa;--color-text-faint:#85837a;--color-primary:#74994a;--color-primary-hover:#82a854;--color-primary-active:#8db263;--color-primary-disabled:#47513a;--color-primary-soft:#39422e;--color-accent:#e0a842;--color-accent-soft:#453623;--color-danger:#e0635f;--color-danger-soft:#462b29;--color-success:#45b183;--color-success-soft:#29392f;--shadow-1:0 1px 2px #0000004d, 0 2px 8px #00000047;--shadow-2:0 4px 12px #0000006b, 0 12px 32px #00000080;--overlay-veil:#0a080699;--shadow-piece-drag:drop-shadow(0 6px 12px #0009);--focus-ring:0 0 0 3px #82a85473}body{transition:background-color var(--duration-slow) var(--ease-out), color var(--duration-slow) var(--ease-out)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-base);-webkit-font-smoothing:antialiased;overflow:hidden}button,input,select{font-family:inherit}:focus-visible{box-shadow:var(--focus-ring);outline:none}.chess-board{border-radius:var(--radius-s);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:100%;height:auto;font-family:var(--font-sans);display:block}.chess-board--dragging{cursor:grabbing}.board-square{outline:none}.board-square:focus-visible{stroke:var(--board-highlight);stroke-width:5px}.board-square--target{cursor:pointer}.board-hover-ring{stroke:var(--board-hover)}.board-coord{pointer-events:none;font-size:20px;font-weight:700}.board-piece{cursor:grab;will-change:transform}.board-piece--dragging{cursor:grabbing;filter:var(--shadow-piece-drag)}.board-arrows,.board-move-badge{pointer-events:none}.board-move-badge text{fill:var(--color-on-primary);font:700 19px var(--font-mono)}.material-bar{border-radius:var(--radius-s);background:var(--side-black);border:1px solid var(--color-border);align-self:stretch;width:28px;position:relative;overflow:hidden}.material-bar__white{background:var(--side-white);transition:height .5s cubic-bezier(.25,.8,.4,1);position:absolute;left:0;right:0}.material-bar__white--bottom{bottom:0}.material-bar__white--top{top:0}.material-bar__label{white-space:nowrap;pointer-events:none;font-size:11px;font-weight:700;line-height:1;font-family:var(--font-mono);position:absolute;left:50%;transform:translate(-50%)}.material-bar__label--bottom{bottom:4px}.material-bar__label--top{top:4px}.material-bar__label--on-white{color:var(--on-side-white)}.material-bar__label--on-dark{color:var(--on-side-black)}.move-list{background:var(--color-surface-2);color:var(--color-text);border-radius:var(--radius-m);padding:var(--space-2) 0;min-height:0;font-family:var(--font-mono);overflow-y:auto}.move-list__empty{padding:var(--space-3) var(--space-4);color:var(--color-text-faint);font-size:var(--text-base)}.move-list__rows{margin:0;padding:0;list-style:none}.move-list__row{grid-template-columns:2.75em minmax(0,1fr) minmax(0,1fr);align-items:center;display:grid}.move-list__row:nth-child(odd){background:var(--color-surface)}.move-list__no{color:var(--color-text-faint);font-size:var(--text-sm);text-align:center}.move-list__move{appearance:none;padding:3px var(--space-2);border-radius:var(--radius-s);color:var(--color-text);font:inherit;font-size:var(--text-base);text-align:left;cursor:pointer;align-items:center;gap:var(--space-1);background:0 0;border:0;min-width:0;margin:2px 6px 2px 0;font-weight:600;display:flex;overflow:hidden}.move-list__time{padding-left:var(--space-1);color:var(--color-text-faint);font-size:var(--text-xs);white-space:nowrap;margin-left:auto;font-weight:400}.move-list__move--current .move-list__time{color:var(--color-primary-active);opacity:.7}.move-badge{border-radius:var(--radius-full);width:16px;height:16px;color:var(--color-on-primary);font:700 10px / 1 var(--font-mono);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.move-list__move:hover{background:var(--color-border)}.move-list__move:focus-visible{box-shadow:var(--focus-ring);outline:none}.move-list__move--current{background:var(--color-primary-soft);color:var(--color-primary-active)}.move-list__move--current:hover{background:var(--color-primary-disabled)}.promotion-overlay{z-index:10;background:var(--overlay-veil);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.promotion-dialog{background:var(--color-surface);border-radius:var(--radius-m);box-shadow:var(--shadow-2);align-items:center;gap:6px;padding:10px;display:flex}.promotion-dialog__option{border-radius:var(--radius-s);background:var(--color-surface-2);cursor:pointer;border:0;width:72px;height:72px;padding:5px;transition:background .12s,transform .12s}.promotion-dialog__option:hover,.promotion-dialog__option:focus-visible{background:var(--color-primary-soft);transform:translateY(-2px)}.promotion-dialog__option:focus-visible{box-shadow:var(--focus-ring);outline:none}.promotion-dialog__option svg{width:100%;height:100%;display:block}.promotion-dialog__cancel{border-radius:var(--radius-s);width:32px;height:72px;color:var(--color-text-faint);font-size:var(--text-md);cursor:pointer;background:0 0;border:0;line-height:1}.promotion-dialog__cancel:hover,.promotion-dialog__cancel:focus-visible{background:var(--color-surface-2);color:var(--color-text)}.promotion-dialog__cancel:focus-visible{box-shadow:var(--focus-ring);outline:none}.sandbox-center{flex:1;place-items:center;min-width:0;min-height:0;display:grid;container-type:size}.sandbox-board-col{gap:var(--space-2);flex-direction:column;width:min(100cqw,100cqh - 56px);display:flex}.sandbox-board-wrap{aspect-ratio:1;width:100%}.sandbox-board{border-radius:var(--radius-s);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:100%;height:100%;font-family:var(--font-sans);display:block}.sandbox-square{cursor:pointer;outline:none}.sandbox-square:focus-visible{stroke:var(--color-primary);stroke-width:5px}.sandbox-coord{pointer-events:none;font-size:20px;font-weight:700}.sandbox-piece{cursor:grab}.sandbox-hover-ring{stroke:var(--board-hover)}.sandbox-ghost{pointer-events:none;z-index:50;opacity:.85;position:fixed;transform:translate(-50%,-50%)}.sandbox-errors{gap:var(--space-1);flex-direction:column;justify-content:center;min-height:40px;display:flex}.sandbox-errors__item{color:var(--color-danger);font:500 var(--text-sm) / var(--leading-sm) var(--font-sans)}.sandbox-errors__ok{color:var(--color-text-faint);font:400 var(--text-sm) / var(--leading-sm) var(--font-sans)}.sandbox-palette{gap:var(--space-2);flex-direction:column;display:flex}.sandbox-palette__label{font:500 var(--text-sm) / var(--leading-sm) var(--font-sans);color:var(--color-text-dim)}.sandbox-palette__row{gap:var(--space-1);grid-template-columns:repeat(6,1fr);display:grid}.sandbox-palette__cell{aspect-ratio:1;padding:var(--space-1);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-s);cursor:pointer;touch-action:none;transition:background .12s,border-color .12s}.sandbox-palette__cell:hover{background:var(--color-primary-soft);border-color:var(--color-primary)}.sandbox-palette__cell:active{background:var(--color-primary-soft);border-color:var(--color-primary-active)}.sandbox-palette__cell:focus-visible{box-shadow:var(--focus-ring);outline:none}.sandbox-palette__cell--active,.sandbox-palette__cell--active:hover{background:var(--color-primary-soft);border-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary)}.sandbox-palette__cell svg{width:100%;height:100%;display:block}.sandbox-eraser--active,.sandbox-eraser--active:hover{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary)}.sandbox-fen{font:400 var(--text-xs) / var(--leading-xs) var(--font-mono);color:var(--color-text-dim);background:var(--color-surface-2);border-radius:var(--radius-s);padding:var(--space-2) var(--space-3);word-break:break-all;-webkit-user-select:all;user-select:all}.sandbox-screen .game-side>:last-child{flex:none;margin-top:auto;overflow-y:visible}.sandbox-side__title{font:700 var(--text-lg) / var(--leading-lg) var(--font-sans)}.sandbox-actions{gap:var(--space-2);display:flex}.sandbox-actions>*{white-space:nowrap;flex:1}.sandbox-screen button:focus-visible{box-shadow:var(--focus-ring);outline:none}.shell{height:100dvh;display:flex;overflow:hidden}.shell__main,.page-layer{flex:1;min-width:0;min-height:0;display:flex}.page-layer--hidden{display:none}.sidebar-slot{z-index:20;flex-shrink:0;width:64px;position:relative}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);width:64px;padding:var(--space-3) var(--space-2);flex-direction:column;transition:width .18s,box-shadow .18s;display:flex;position:absolute;top:0;bottom:0;left:0;overflow:hidden}.sidebar:hover,.sidebar:focus-within{width:220px;box-shadow:var(--shadow-2)}.sidebar__logo{align-items:center;gap:var(--space-2);padding:0 var(--space-2);margin-bottom:var(--space-3);-webkit-user-select:none;user-select:none;white-space:nowrap;display:flex}.sidebar__logo-icon{text-align:center;font-size:var(--text-2xl);line-height:var(--leading-2xl);color:var(--color-primary);flex:0 0 32px}.sidebar__logo-name{font:700 var(--text-md) / var(--leading-md) var(--font-sans);color:var(--color-text)}.sidebar__nav{gap:var(--space-1);flex-direction:column;display:flex}.sidebar__item{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);border-radius:var(--radius-m);color:var(--color-text-dim);font:500 var(--text-base) / var(--leading-base) var(--font-sans);text-align:left;white-space:nowrap;cursor:pointer;background:0 0;border:none;transition:background .15s,color .15s;display:flex}.sidebar__icon{flex:0 0 32px;place-items:center;display:grid;position:relative}.sidebar__dot{border-radius:var(--radius-full);background:var(--color-danger);opacity:0;width:8px;height:8px;transition:transform var(--duration-fast) var(--ease-in), opacity var(--duration-fast) var(--ease-in);transform:scale(0)}.sidebar__dot--on{opacity:1;transition:transform var(--duration-fast) var(--ease-out), opacity var(--duration-fast) var(--ease-out);transform:scale(1)}.sidebar__dot--icon{box-shadow:0 0 0 2px var(--color-surface);position:absolute;top:0;right:4px}.sidebar:hover .sidebar__dot--icon,.sidebar:focus-within .sidebar__dot--icon{opacity:0;transform:scale(0)}.sidebar__dot--label{margin-left:var(--space-2);vertical-align:middle;display:inline-block}.sidebar__label{text-overflow:ellipsis;opacity:0;min-width:0;transition:opacity .15s;overflow:hidden}.sidebar:hover .sidebar__label,.sidebar:focus-within .sidebar__label{opacity:1}.sidebar__item:hover{background:var(--color-surface-2);color:var(--color-text)}.sidebar__item:active{background:var(--color-primary-soft);color:var(--color-primary)}.sidebar__item:focus-visible{box-shadow:var(--focus-ring);outline:none}.sidebar__item--active,.sidebar__item--active:hover{background:var(--color-primary-soft);color:var(--color-primary)}.sidebar__item--accent,.sidebar__item--accent:hover{color:var(--color-accent)}.sidebar__item--accent:hover,.sidebar__item--accent:active{background:var(--color-accent-soft)}.sidebar__item--accent.sidebar__item--active,.sidebar__item--accent.sidebar__item--active:hover{background:var(--color-accent-soft);color:var(--color-accent)}.sidebar__theme{margin-top:auto;margin-bottom:var(--space-2)}.sidebar__account{gap:var(--space-1);border-top:1px solid var(--color-border);padding-top:var(--space-2);flex-direction:column;display:flex}.sidebar__user{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-m);cursor:pointer;text-align:left;width:100%;min-width:0;transition:background var(--duration-fast) var(--ease-out);background:0 0;border:none;display:flex}.sidebar__user:hover{background:var(--color-surface-2)}.sidebar__user:active{background:var(--color-primary-soft)}.sidebar__user:focus-visible{box-shadow:var(--focus-ring);outline:none}.sidebar__avatar{border-radius:var(--radius-full);background:var(--color-primary-soft);height:32px;color:var(--color-primary);font:600 var(--text-sm) / var(--leading-sm) var(--font-sans);-webkit-user-select:none;user-select:none;flex:0 0 32px;place-items:center;display:grid}.sidebar__nick{font:600 var(--text-sm) / var(--leading-sm) var(--font-sans);color:var(--color-text);white-space:nowrap}.btn-primary,.btn-secondary,.btn-danger,.btn-ghost{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-m);padding:var(--space-2) var(--space-4);font:500 var(--text-base) / var(--leading-base) var(--font-sans);cursor:pointer;border:none;transition:background .15s,color .15s;display:inline-flex}.btn-primary{background:var(--color-primary);color:var(--color-on-primary)}.btn-primary:hover{background:var(--color-primary-hover)}.btn-primary:active{background:var(--color-primary-active)}.btn-primary:disabled{background:var(--color-primary-disabled);cursor:default}.btn-secondary{background:var(--color-surface-2);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-primary-soft)}.btn-secondary:active{background:var(--color-border)}.btn-secondary:disabled{color:var(--color-text-faint);background:var(--color-surface-2);cursor:default}.btn-danger{background:var(--color-danger);color:var(--color-on-primary)}.btn-danger:hover{filter:brightness(1.06)}.btn-danger:active{filter:brightness(.94)}.btn-danger:disabled{background:var(--color-danger-soft);color:var(--color-text-faint);cursor:default;filter:none}.btn-ghost{color:var(--color-text-dim);padding-left:var(--space-2);padding-right:var(--space-2);background:0 0}.btn-ghost:hover{background:var(--color-surface-2);color:var(--color-text)}.btn-ghost:active{background:var(--color-border)}.btn-block{width:100%;margin-top:var(--space-4)}.link-button{margin:var(--space-3) auto 0;color:var(--color-primary);font:500 var(--text-sm) / var(--leading-sm) var(--font-sans);cursor:pointer;background:0 0;border:none;display:block}.link-button:hover{color:var(--color-primary-hover);text-decoration:underline}.play-home{align-items:stretch;gap:var(--space-4);min-height:0;padding:var(--space-4);flex:1;display:flex;position:relative}.play-home__center{justify-content:safe center;align-items:center;gap:var(--space-6);min-width:0;padding:var(--space-2);flex-direction:column;flex:1;display:flex;overflow-y:auto}.play-home__title{font:700 var(--text-2xl) / var(--leading-2xl) var(--font-sans)}.play-home__left{align-items:center;gap:var(--space-6);flex-direction:column;width:100%;max-width:816px;display:flex}.tiles{gap:var(--space-4);grid-template-columns:repeat(2,minmax(280px,400px));justify-content:center;width:100%;display:grid}@media (width<=760px){.tiles{grid-template-columns:minmax(260px,400px)}}.tile{color:var(--color-text);align-items:flex-start;gap:var(--space-2);padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-l);min-height:132px;box-shadow:var(--shadow-1);text-align:left;transition:border-color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);flex-direction:column;display:flex}button.tile{cursor:pointer}button.tile:hover:not(:disabled){border-color:var(--color-primary);box-shadow:var(--shadow-2)}button.tile:active:not(:disabled){transform:scale(.985)}button.tile:focus-visible{box-shadow:var(--focus-ring), var(--shadow-1);outline:none}.tile:disabled,.tile--disabled{cursor:default;opacity:.6;box-shadow:none}.tile__head{align-items:center;gap:var(--space-2);display:flex}.tile__icon{color:var(--color-primary);flex:none}.tile__name{font:600 var(--text-md) / var(--leading-md) var(--font-sans);align-items:center;gap:var(--space-2);display:flex}.tile__meta{font:400 var(--text-sm) / var(--leading-sm) var(--font-sans);color:var(--color-text-dim)}.tile__tc-grid{gap:var(--space-2);width:100%;margin-top:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.tile__tc-list{gap:var(--space-2);width:100%;margin-top:var(--space-2);flex-direction:column;display:flex}.tile--lichess .tile__head{width:100%}.tile__head-user{align-items:center;gap:var(--space-2);min-width:0;margin-left:auto;display:flex}.tile__online{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:500 var(--text-xs) / var(--leading-xs) var(--font-mono);color:var(--color-text-dim);overflow:hidden}.net-dot{border-radius:var(--radius-full);background:var(--color-success);width:8px;height:8px;animation:net-pulse calc(var(--duration-slow) * 7) var(--ease-out) infinite;flex:none}.net-dot--bad{background:var(--color-danger)}@keyframes net-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.75)}}.tile__rating{font:700 var(--text-xl) / var(--leading-xl) var(--font-mono);color:var(--color-accent)}.tile__rating--provisional{color:var(--color-text-dim)}.tile__rating--empty{color:var(--color-text-faint)}.tile__body-enter{animation:tile-body-in var(--duration-base) var(--ease-out) both}@keyframes tile-body-in{0%{opacity:0}to{opacity:1}}.lichess-skel__btn{border-radius:var(--radius-m);background:var(--color-surface-2);border:1px solid var(--color-border);height:54px;animation:skel-pulse 1.1s var(--ease-out) infinite alternate}@keyframes skel-pulse{0%{opacity:.45}to{opacity:1}}.lichess-connect{flex:1;justify-content:center;align-self:stretch;align-items:center;display:flex}.lichess-note{font:500 var(--text-sm) / var(--leading-sm) var(--font-sans);animation:tile-body-in var(--duration-base) var(--ease-out) both}.lichess-note--success{color:var(--color-success)}.lichess-note--error{color:var(--color-danger)}.tc-btn{min-width:0;padding:var(--space-2) var(--space-1);background:var(--color-surface-2);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-m);cursor:pointer;transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);flex-direction:column;flex:1 1 0;align-items:center;gap:0;display:flex}.tc-btn:hover:not(:disabled){background:var(--color-primary-soft);border-color:var(--color-primary)}.tc-btn:active:not(:disabled){background:var(--color-border);transform:scale(.97)}.tc-btn:disabled{cursor:default;color:var(--color-text-dim)}.tc-btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.tc-btn__time{font:600 var(--text-base) / var(--leading-base) var(--font-sans);white-space:nowrap}.tc-btn__label{font:400 var(--text-xs) / var(--leading-xs) var(--font-sans);color:var(--color-text-dim)}.tc-btn__rating{font:700 var(--text-base) / var(--leading-base) var(--font-mono);color:var(--color-accent);margin-top:var(--space-1)}.tc-btn__rating--provisional{color:var(--color-text-dim)}.tc-btn__rating--empty{color:var(--color-text-faint)}.tc-btn--row{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);flex-direction:row}.tc-btn__col{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.tc-btn--row .tc-btn__rating{margin:0 0 0 auto}.badge{font:500 var(--text-xs) / var(--leading-xs) var(--font-sans);color:var(--color-accent);background:var(--color-accent-soft);border-radius:var(--radius-full);padding:0 var(--space-2)}.play-home__stats{font:400 var(--text-sm) / var(--leading-sm) var(--font-sans);color:var(--color-text-dim)}.play-panel{top:var(--space-4);right:var(--space-4);bottom:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-l);width:345px;box-shadow:var(--shadow-2);padding:var(--space-4);gap:var(--space-4);flex-direction:column;display:flex;position:absolute;overflow-y:auto}@media (width<=1633px){.play-home{flex-direction:column;align-items:center;overflow-y:auto}.play-home__center{flex:none;width:100%;overflow-y:visible}.play-panel{width:100%;max-width:816px;box-shadow:none;flex-shrink:0;position:static;overflow-y:visible}}.play-panel__account{align-items:center;gap:var(--space-3);min-width:0;display:flex}.play-panel__avatar{border-radius:var(--radius-full);background:var(--color-primary-soft);height:48px;color:var(--color-primary);font:700 var(--text-lg) / var(--leading-lg) var(--font-sans);-webkit-user-select:none;user-select:none;flex:0 0 48px;place-items:center;display:grid}.play-panel__nick{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:600 var(--text-md) / var(--leading-md) var(--font-sans);color:var(--color-text);overflow:hidden}.play-panel__section{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.play-panel__title{align-items:baseline;gap:var(--space-2);font:600 var(--text-base) / var(--leading-base) var(--font-sans);color:var(--color-text);display:flex}.panel-enter{animation:tile-body-in var(--duration-base) var(--ease-out) both}.play-panel .game-row{gap:var(--space-2);padding:var(--space-2) var(--space-3)}.play-panel .game-row__outcome{width:76px;font-size:var(--text-xs);line-height:var(--leading-xs)}.play-panel .game-row__sub{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.game-screen{gap:var(--space-4);min-width:0;padding:var(--space-4);flex:1;display:flex}.game-center{flex:1;place-items:center;min-width:0;min-height:0;display:grid;container-type:size}.board-column{gap:var(--space-2);flex-direction:column;display:flex}.board-row{gap:var(--space-2);align-items:stretch;height:min(100cqh,100cqw - 36px);display:flex}.board-column--with-bars .board-row{height:min(100cqh - 112px,100cqw - 36px)}.board-row--no-bar{height:min(100cqh,100cqw)}.board-column--with-bars .board-row--no-bar{height:min(100cqh - 112px,100cqw)}.board-wrap{aspect-ratio:1;height:100%;position:relative}.player-bar{align-items:center;gap:var(--space-2);min-width:0;height:48px;display:flex}.player-bar__info{flex-direction:column;flex:1;justify-content:center;min-width:0;display:flex}.player-bar__line{align-items:baseline;gap:var(--space-2);min-width:0;display:flex}.player-bar__avatar{border-radius:var(--radius-full);background:var(--color-primary-soft);width:36px;height:36px;color:var(--color-primary);font:600 var(--text-md) / var(--leading-md) var(--font-sans);-webkit-user-select:none;user-select:none;flex-shrink:0;place-items:center;display:grid}.player-bar__name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:600 var(--text-base) / var(--leading-base) var(--font-sans);color:var(--color-text);overflow:hidden}.player-bar__sep{color:var(--color-text-faint)}.player-bar__rating{font:700 var(--text-md) / var(--leading-md) var(--font-mono);color:var(--color-accent)}.player-bar__subtitle{white-space:nowrap;font:400 var(--text-sm) / var(--leading-sm) var(--font-sans);color:var(--color-text-dim)}.player-bar__captured{align-items:center;min-height:18px;display:flex;overflow:hidden}.player-bar__captured-piece{flex-shrink:0;display:block}.player-bar__captured-piece+.player-bar__captured-piece{margin-left:-7px}.player-bar__advantage{margin-left:var(--space-1);font:500 var(--text-xs) / var(--leading-xs) var(--font-mono);color:var(--color-text-dim)}.player-bar__clock{flex-shrink:0;margin-left:auto}.clock-face{justify-content:space-between;align-items:center;gap:var(--space-2);min-width:104px;padding:var(--space-1) var(--space-3);border-radius:var(--radius-m);background:var(--color-surface-2);color:var(--color-text-faint);font:700 var(--text-lg) / var(--leading-lg) var(--font-mono);transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);display:inline-flex}.clock-face--active{background:var(--color-primary-soft);color:var(--color-text)}.clock-face--danger{color:var(--color-danger);animation:clock-pulse 1s var(--ease-out) infinite}@keyframes clock-pulse{50%{opacity:.55}}.clock-face__icon{flex-shrink:0;display:block}.clock-face__hand{transform-box:view-box;transform-origin:50%}@media (prefers-reduced-motion:reduce){.clock-face--danger{animation:none}}.board-wrap svg{width:100%;height:100%;display:block}.game-side{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-l);width:345px;padding:var(--space-4);gap:var(--space-3);flex-direction:column;flex-shrink:0;min-height:0;display:flex}.game-side__header{justify-content:space-between;align-items:center;display:flex}.game-side__bot{font:400 var(--text-sm) / var(--leading-sm) var(--font-sans);color:var(--color-text-dim)}.game-side__bot strong{font:700 var(--text-md) / var(--leading-md) var(--font-mono);color:var(--color-accent)}.status{background:var(--color-surface-2);border-radius:var(--radius-m);padding:var(--space-2) var(--space-3);font:600 var(--text-base) / var(--leading-base) var(--font-sans);align-items:center;min-height:40px;display:flex}.status__notice{color:var(--color-text-dim);animation:fade-in var(--duration-base) var(--ease-out) both}.status__notice--closing{animation:fade-out var(--duration-base) var(--ease-in) both}.status__claim{width:100%;animation:fade-in var(--duration-base) var(--ease-out) both}.status__syncing{align-items:center;gap:var(--space-2);color:var(--color-text-dim);animation:fade-in var(--duration-base) var(--ease-out) both, syncing-pulse 1.6s var(--ease-out) var(--duration-base) infinite;display:inline-flex}@keyframes syncing-pulse{50%{opacity:.6}}.status__syncing-spinner{border-radius:var(--radius-full);border:2px solid var(--color-border);border-top-color:var(--color-primary);flex-shrink:0;width:14px;height:14px;animation:1s linear infinite spin}@media (prefers-reduced-motion:reduce){.status__syncing{animation:fade-in var(--duration-base) var(--ease-out) both}.status__syncing-spinner{animation:none}}.status__result-sync{gap:var(--space-1);flex-direction:column;display:flex}.status__result-sync .status__syncing{font:400 var(--text-sm) / var(--leading-sm) var(--font-sans)}.status__syncing.status__syncing--closing{animation:fade-out var(--duration-base) var(--ease-in) both}.controls{gap:var(--space-3);flex-direction:column;display:flex}.opt-seg{padding:var(--space-1);gap:var(--space-1);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-m);display:flex}.opt-seg__btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-s);font:500 var(--text-sm) / var(--leading-sm) var(--font-sans);color:var(--color-text-dim);cursor:pointer;transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);background:0 0;border:none;flex:1;display:inline-flex}.opt-seg__btn:hover{color:var(--color-text)}.opt-seg__btn:active{background:var(--color-surface)}.opt-seg__btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.opt-seg__btn--active,.opt-seg__btn--active:hover{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-1)}.controls-ai{opacity:0;visibility:hidden;margin-top:calc(-1 * var(--space-3));transition:grid-template-rows var(--duration-base) var(--ease-in), margin-top var(--duration-base) var(--ease-in), opacity var(--duration-base) var(--ease-in), visibility 0s linear var(--duration-base);grid-template-rows:0fr;display:grid}.controls-ai--open{opacity:1;visibility:visible;transition:grid-template-rows var(--duration-base) var(--ease-out), margin-top var(--duration-base) var(--ease-out), opacity var(--duration-base) var(--ease-out);grid-template-rows:1fr;margin-top:0}.controls-ai__inner{gap:var(--space-3);overflow-clip-margin:var(--space-1);flex-direction:column;min-height:0;display:flex;overflow:clip}@media (prefers-reduced-motion:reduce){.controls-ai,.controls-ai--open{transition:opacity var(--duration-fast) var(--ease-out)}}.side-pick{gap:var(--space-3);display:flex}.side-swatch{align-items:center;gap:var(--space-1);cursor:pointer;color:var(--color-text-dim);font:500 var(--text-xs) / var(--leading-xs) var(--font-sans);transition:color var(--duration-fast) var(--ease-out);background:0 0;border:none;flex-direction:column;padding:0;display:flex}.side-swatch__square{border-radius:var(--radius-m);border:2px solid var(--color-border);width:44px;height:44px;transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);place-items:center;display:grid}.side-swatch__square--w{background:var(--side-white);color:var(--on-side-white)}.side-swatch__square--b{background:var(--side-black);color:var(--on-side-black)}.side-swatch__square--auto{background:var(--color-surface-2);color:var(--color-text-dim)}.side-swatch:hover{color:var(--color-text)}.side-swatch:hover .side-swatch__square{border-color:var(--color-text-faint)}.side-swatch:active .side-swatch__square{border-color:var(--color-primary-hover)}.side-swatch:focus-visible{outline:none}.side-swatch:focus-visible .side-swatch__square{box-shadow:var(--focus-ring)}.side-swatch--active{color:var(--color-text)}.side-swatch--active .side-swatch__square,.side-swatch--active:hover .side-swatch__square{border-color:var(--color-primary)}.nav-arrows{gap:var(--space-2);display:flex}.nav-arrows__btn{padding-left:var(--space-2);padding-right:var(--space-2);flex:1}.game-side__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.game-side__actions>*{white-space:nowrap;flex:1}.game-side .move-list,.game-side>:last-child{flex:1;min-height:0;overflow-y:auto}.game-side>.game-side__tab{gap:var(--space-3);flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:visible}.side-tabs{padding:var(--space-1);gap:var(--space-1);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-m);display:inline-flex}.side-tabs__btn{padding:var(--space-1) var(--space-3);border-radius:var(--radius-s);font:500 var(--text-sm) / var(--leading-sm) var(--font-sans);color:var(--color-text-dim);cursor:pointer;transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);background:0 0;border:none}.side-tabs__btn:hover{color:var(--color-text)}.side-tabs__btn:active{background:var(--color-surface)}.side-tabs__btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.side-tabs__btn--active,.side-tabs__btn--active:hover{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-1)}.game-center__tab{place-items:center;width:100%;min-width:0;height:100%;min-height:0;display:grid}.tab-panel{animation:tab-in var(--duration-fast) var(--ease-out) both}.tab-panel--closing{animation:tab-out var(--duration-fast) var(--ease-in) both}@keyframes tab-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes tab-out{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(4px)}}@media (prefers-reduced-motion:reduce){.tab-panel{animation:fade-in var(--duration-fast) var(--ease-out) both}.tab-panel--closing{animation:fade-out var(--duration-fast) var(--ease-in) both}}.game-side__tab--sandbox .sandbox-start{gap:var(--space-3);flex-direction:column;margin-top:auto;display:flex}.review-btn{width:100%}.review-progress{gap:var(--space-2);background:var(--color-surface-2);border-radius:var(--radius-m);padding:var(--space-2) var(--space-3);font:400 var(--text-sm) / var(--leading-sm) var(--font-sans);color:var(--color-text-dim);flex-direction:column;display:flex}.review-progress__track{border-radius:var(--radius-full);background:var(--color-border);height:4px;overflow:hidden}.review-progress__fill{border-radius:var(--radius-full);background:var(--color-primary);height:100%;transition:width .2s}.review-progress__fill--indeterminate{width:40%;animation:review-indeterminate 1.4s var(--ease-out) infinite}@keyframes review-indeterminate{0%{transform:translate(-100%)}to{transform:translate(350%)}}.review-btn--appear{animation:fade-in var(--duration-base) var(--ease-out) both}.analysis-failed{align-items:center;gap:var(--space-2);font:400 var(--text-sm) / var(--leading-sm) var(--font-sans);color:var(--color-text-dim);animation:fade-in var(--duration-base) var(--ease-out) both;display:flex}.analysis-failed .link-button{margin:0;display:inline}.analysis-failed .link-button:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius-s);outline:none}.review-summary{gap:var(--space-3);background:var(--color-surface-2);border-radius:var(--radius-m);padding:var(--space-3);flex-direction:column;display:flex}.review-acc{align-items:center;gap:var(--space-2);grid-template-columns:1fr auto 1fr;display:grid}.review-acc__label{font:500 var(--text-xs) / var(--leading-xs) var(--font-sans);color:var(--color-text-dim)}.review-acc__card{padding:var(--space-2);border-radius:var(--radius-m);border:1px solid var(--color-border);flex-direction:column;align-items:center;gap:0;display:flex}.review-acc__card--white{background:var(--side-white);color:var(--on-side-white)}.review-acc__card--black{background:var(--side-black);color:var(--on-side-black);border-color:var(--side-black)}.review-acc__value{font:700 var(--text-lg) / var(--leading-lg) var(--font-mono)}.review-acc__side{font:500 var(--text-xs) / var(--leading-xs) var(--font-sans);opacity:.7}.review-table{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.review-table__row{align-items:center;gap:var(--space-2);grid-template-columns:2.5em 24px 1fr 2.5em;display:grid}.review-table__count{font:600 var(--text-sm) / var(--leading-sm) var(--font-mono);color:var(--color-text);text-align:center}.review-table__count--zero{color:var(--color-text-faint);font-weight:400}.review-table__icon{place-items:center;display:grid}.review-table__name{font:500 var(--text-sm) / var(--leading-sm) var(--font-sans);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;text-align:left;min-width:0;overflow:hidden}.field{gap:var(--space-1);font:500 var(--text-sm) / var(--leading-sm) var(--font-sans);color:var(--color-text-dim);flex-direction:column;display:flex}.field input[type=text],.field input[type=email],.field input[type=password],.field select{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-s);padding:var(--space-2) var(--space-3);font:400 var(--text-base) / var(--leading-base) var(--font-sans);transition:border-color .15s}.field input:hover,.field select:hover{border-color:var(--color-text-faint)}.field input:focus,.field select:focus{border-color:var(--color-primary)}.field input[type=range]{accent-color:var(--color-primary)}.field__error{color:var(--color-danger);font:400 var(--text-xs) / var(--leading-xs) var(--font-sans)}.checkbox{align-items:center;gap:var(--space-2);font:400 var(--text-sm) / var(--leading-sm) var(--font-sans);color:var(--color-text);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex}.checkbox input{accent-color:var(--color-primary);cursor:pointer;width:16px;height:16px}.auth-form{gap:var(--space-3);flex-direction:column;display:flex}.auth-form__error{background:var(--color-danger-soft);color:var(--color-danger);border-radius:var(--radius-s);padding:var(--space-2) var(--space-3);font:500 var(--text-sm) / var(--leading-sm) var(--font-sans)}.modal-overlay{background:var(--overlay-veil);z-index:100;padding:var(--space-4);animation:fade-in var(--duration-base) var(--ease-out) both;place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--color-surface);border-radius:var(--radius-l);box-shadow:var(--shadow-2);padding:var(--space-6);max-width:100%;max-height:calc(100dvh - var(--space-8));animation:modal-in var(--duration-base) var(--ease-out) both;overflow-y:auto}.modal-overlay--closing{animation:fade-out var(--duration-base) var(--ease-in) both;pointer-events:none}.modal-overlay--closing .modal{animation:modal-out var(--duration-base) var(--ease-in) both}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)scale(.96)}}@keyframes modal-out{to{opacity:0;transform:translateY(8px)scale(.96)}}.modal__header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.modal__header h2{font:700 var(--text-xl) / var(--leading-xl) var(--font-sans)}.modal__close{color:var(--color-text-faint);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-s);background:0 0;border:none}.modal__close:hover{color:var(--color-text);background:var(--color-surface-2)}.modal__hint{font:400 var(--text-sm) / var(--leading-sm) var(--font-sans);color:var(--color-text-dim);margin-bottom:var(--space-3)}.level-list{gap:var(--space-2);flex-direction:column;display:flex}.level-item{text-align:left;padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-m);cursor:pointer;flex-direction:column;gap:0;transition:border-color .15s,background .15s;display:flex}.level-item:hover{border-color:var(--color-primary)}.level-item:active{background:var(--color-surface-2)}.level-item--active,.level-item--active:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.level-item__title{font:600 var(--text-base) / var(--leading-base) var(--font-sans)}.level-item__desc{font:400 var(--text-sm) / var(--leading-sm) var(--font-sans);color:var(--color-text-dim)}.rating-delta{justify-content:center;align-items:baseline;gap:var(--space-3);margin:var(--space-4) 0;font-family:var(--font-mono);display:flex}.rating-delta__old{font-size:var(--text-lg);color:var(--color-text-faint)}.rating-delta__arrow{color:var(--color-text-dim)}.rating-delta__new{font:700 var(--text-2xl) / var(--leading-2xl) var(--font-mono);color:var(--color-accent);align-items:baseline;gap:var(--space-2);display:flex}.rating-delta__prov{font:400 var(--text-xs) / var(--leading-xs) var(--font-sans);color:var(--color-text-faint)}.modal__actions{gap:var(--space-2);margin-top:var(--space-4);display:flex}.modal__actions>*{flex:1}.modal__actions--column{flex-direction:column}.seek{align-items:center;gap:var(--space-2);padding-top:var(--space-2);flex-direction:column;display:flex}.seek .modal__actions{width:100%}.seek__pulse{place-items:center;width:56px;height:56px;display:grid;position:relative}.seek__pulse-core{border-radius:var(--radius-full);background:var(--color-primary);width:16px;height:16px;animation:seek-core 1.4s var(--ease-out) infinite}.seek__pulse-ring{border-radius:var(--radius-full);border:2px solid var(--color-primary);opacity:0;animation:seek-ring 1.4s var(--ease-out) infinite;position:absolute;inset:0}@keyframes seek-core{50%{transform:scale(.8)}}@keyframes seek-ring{0%{opacity:.7;transform:scale(.3)}to{opacity:0;transform:scale(1)}}.seek__tc{font:600 var(--text-md) / var(--leading-md) var(--font-sans);color:var(--color-text)}.seek__timer{font:700 var(--text-xl) / var(--leading-xl) var(--font-mono);color:var(--color-text-dim);font-variant-numeric:tabular-nums}.seek__note{min-height:var(--leading-sm);font:400 var(--text-sm) / var(--leading-sm) var(--font-sans);color:var(--color-text-dim);opacity:0;transition:opacity var(--duration-base) var(--ease-in)}.seek__note--visible{opacity:1;transition-timing-function:var(--ease-out)}@media (prefers-reduced-motion:reduce){.seek__pulse-core{animation:none}.seek__pulse-ring{opacity:.4;animation:none;transform:none}}.profile{gap:var(--space-5);width:100%;min-width:0;padding:var(--space-6);flex-direction:column;flex:1;max-width:720px;margin:0 auto;display:flex;overflow-y:auto}.profile>*{animation:profile-rise var(--duration-slow) var(--ease-out) both}.profile>:nth-child(2){animation-delay:calc(var(--duration-fast) * .5)}.profile>:nth-child(3){animation-delay:var(--duration-fast)}.profile>:nth-child(4){animation-delay:calc(var(--duration-fast) * 1.5)}.profile>:nth-child(n+5){animation-delay:calc(var(--duration-fast) * 2)}@keyframes profile-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.profile__header{align-items:center;gap:var(--space-4);display:flex}.profile__avatar{border-radius:var(--radius-full);background:var(--color-primary-soft);width:72px;height:72px;color:var(--color-primary);font:700 var(--text-2xl) / var(--leading-2xl) var(--font-sans);-webkit-user-select:none;user-select:none;flex-shrink:0;place-items:center;display:grid}.profile__identity{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.profile__name{font:700 var(--text-2xl) / var(--leading-2xl) var(--font-sans);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.profile__since{font:400 var(--text-sm) / var(--leading-sm) var(--font-sans);color:var(--color-text-dim)}.profile__header-actions{flex-shrink:0;margin-left:auto}.stat-cards{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.stat-card{gap:var(--space-1);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-l);box-shadow:var(--shadow-1);flex-direction:column;display:flex}.stat-card__label{font:500 var(--text-xs) / var(--leading-xs) var(--font-sans);color:var(--color-text-dim)}.stat-card__value{font:700 var(--text-2xl) / var(--leading-2xl) var(--font-mono);color:var(--color-text)}.stat-card__value--accent{color:var(--color-accent)}.stat-card__value--wld{align-items:baseline;gap:var(--space-1);display:flex}.stat-card__w{color:var(--color-success)}.stat-card__l{color:var(--color-danger)}.stat-card__d{color:var(--color-text-dim)}.stat-card__sep{color:var(--color-text-faint);font-size:var(--text-md)}.stat-card__sub{font:400 var(--text-xs) / var(--leading-xs) var(--font-sans);color:var(--color-text-faint)}.stats-grid{gap:var(--space-3);grid-template-columns:repeat(6,minmax(0,1fr));display:grid}.stats-grid>*{grid-column:span 2}.stats-grid>.pool-chip--big{grid-column:span 3}@media (width<=560px){.stats-grid{grid-template-columns:minmax(0,1fr)}.stats-grid>*,.stats-grid>.pool-chip--big{grid-column:span 1}}.pool-chip{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-m);box-shadow:var(--shadow-1);display:flex}.pool-chip__tc{flex-direction:column;gap:0;min-width:0;display:flex}.pool-chip__time{font:600 var(--text-md) / var(--leading-md) var(--font-mono)}.pool-chip__family{font:400 var(--text-xs) / var(--leading-xs) var(--font-sans);color:var(--color-text-dim)}.pool-chip__nums{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:0;margin-left:auto;display:flex}.pool-chip__rating{font:700 var(--text-md) / var(--leading-md) var(--font-mono);color:var(--color-accent)}.pool-chip__rating--provisional{color:var(--color-text-dim)}.pool-chip__rating--empty{color:var(--color-text-faint)}.pool-chip--big{padding:var(--space-4)}.pool-chip--big .pool-chip__rating{font:700 var(--text-xl) / var(--leading-xl) var(--font-mono)}.pool-chip__wld{align-items:baseline;gap:var(--space-1);font:500 var(--text-xs) / var(--leading-xs) var(--font-mono);display:flex}.pool-chip__w{color:var(--color-success)}.pool-chip__l{color:var(--color-danger)}.pool-chip__d{color:var(--color-text-dim)}.pool-chip__sep{color:var(--color-text-faint)}.lichess-user-link{font:500 var(--text-sm) / var(--leading-sm) var(--font-mono);color:var(--color-primary);border-radius:var(--radius-s);text-decoration:none}.lichess-user-link:hover{color:var(--color-primary-hover);text-decoration:underline}.lichess-user-link:active{color:var(--color-primary-active)}.lichess-user-link:focus-visible{box-shadow:var(--focus-ring);outline:none}.lichess-controls{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.lichess-sync{align-items:center;gap:var(--space-2);font:400 var(--text-sm) / var(--leading-sm) var(--font-sans);color:var(--color-text-dim);display:flex}.lichess-sync--error{color:var(--color-danger)}.lichess-actions{gap:var(--space-2);flex-shrink:0;display:flex}.game-row__line{align-items:baseline;gap:var(--space-2);min-width:0;display:flex}.game-row__who{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.game-row__opp-rating{color:var(--color-text-dim)}.game-row__right{flex-direction:column;flex:none;align-items:flex-end;gap:2px;min-width:3.5em;margin-left:auto;display:flex}.game-row__diff{font:600 var(--text-sm) / var(--leading-sm) var(--font-mono);font-variant-numeric:tabular-nums}.game-row__diff--up{color:var(--color-success)}.game-row__diff--down{color:var(--color-danger)}.game-row__date{color:var(--color-text-faint);font-size:var(--text-xs);line-height:var(--leading-sm);white-space:nowrap}.profile-section{gap:var(--space-3);flex-direction:column;display:flex}.profile-section__head{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.profile-section__title{align-items:center;gap:var(--space-2);font:600 var(--text-lg) / var(--leading-lg) var(--font-sans);display:flex}.profile-section__count{font:600 var(--text-sm) / var(--leading-sm) var(--font-mono);color:var(--color-text-dim);background:var(--color-surface-2);border-radius:var(--radius-full);padding:0 var(--space-2)}.profile-cta{background:var(--color-surface-2);border:1px dashed var(--color-border);border-radius:var(--radius-m);padding:var(--space-4);font:400 var(--text-sm) / var(--leading-sm) var(--font-sans);color:var(--color-text-dim)}.profile-loading{align-items:center;gap:var(--space-2);color:var(--color-text-dim);font:400 var(--text-sm) / var(--leading-sm) var(--font-sans);display:flex}.profile-empty{color:var(--color-text-dim);font:400 var(--text-sm) / var(--leading-sm) var(--font-sans)}.profile-state{justify-content:center;align-items:center;gap:var(--space-3);color:var(--color-text-dim);text-align:center;padding:var(--space-6);flex-direction:column;flex:1;display:flex}.profile-state h1{font:700 var(--text-xl) / var(--leading-xl) var(--font-sans);color:var(--color-text)}.profile-state p{max-width:360px}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.game-list,.friend-list,.search-results{gap:var(--space-2);animation:profile-rise var(--duration-base) var(--ease-out) both;flex-direction:column;list-style:none;display:flex}.game-row{align-items:center;gap:var(--space-4);width:100%;padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-m);cursor:pointer;text-align:left;transition:border-color var(--duration-fast), box-shadow var(--duration-fast);font:400 var(--text-base) / var(--leading-base) var(--font-sans);color:var(--color-text);display:flex}.game-row:hover{border-color:var(--color-primary);box-shadow:var(--shadow-1)}.game-row:active{background:var(--color-surface-2)}.game-row:disabled{opacity:.6;cursor:default}.game-row:focus-visible{box-shadow:var(--focus-ring);outline:none}.game-row__outcome{text-align:center;width:92px;padding:var(--space-1) 0;border-radius:var(--radius-full);font:600 var(--text-sm) / var(--leading-sm) var(--font-sans);flex-shrink:0}.game-row__outcome--win{background:var(--color-success-soft);color:var(--color-success)}.game-row__outcome--loss{background:var(--color-danger-soft);color:var(--color-danger)}.game-row__outcome--draw{background:var(--color-surface-2);color:var(--color-text-dim)}.game-row__main{flex-direction:column;flex:1;min-width:0;display:flex}.game-row__sub{color:var(--color-text-dim);font-size:var(--text-sm);line-height:var(--leading-sm)}.friend-avatar{border-radius:var(--radius-full);background:var(--color-primary-soft);width:32px;height:32px;color:var(--color-primary);font:600 var(--text-sm) / var(--leading-sm) var(--font-sans);-webkit-user-select:none;user-select:none;flex-shrink:0;place-items:center;display:grid}.friend-row{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-m);cursor:pointer;text-align:left;transition:border-color var(--duration-fast), box-shadow var(--duration-fast);font:400 var(--text-base) / var(--leading-base) var(--font-sans);color:var(--color-text);display:flex}.friend-row:hover{border-color:var(--color-primary);box-shadow:var(--shadow-1)}.friend-row:active{background:var(--color-surface-2)}.friend-row:focus-visible{box-shadow:var(--focus-ring);outline:none}.friend-row__name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.friend-row__rating{font:700 var(--text-md) / var(--leading-md) var(--font-mono);color:var(--color-accent);flex-shrink:0}.drawer{opacity:0;visibility:hidden;transition:grid-template-rows var(--duration-base) var(--ease-in), opacity var(--duration-base) var(--ease-in), visibility 0s linear var(--duration-base);grid-template-rows:0fr;display:grid}.drawer--open{opacity:1;visibility:visible;transition:grid-template-rows var(--duration-base) var(--ease-out), opacity var(--duration-base) var(--ease-out);grid-template-rows:1fr}.drawer__inner{min-height:0;overflow:hidden}.friend-search{gap:var(--space-2);padding:var(--space-1) var(--space-1) var(--space-2);flex-direction:column;display:flex}.search-result{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-surface-2);border-radius:var(--radius-m);font:400 var(--text-base) / var(--leading-base) var(--font-sans);color:var(--color-text);display:flex}.search-result__name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.search-result__rating{font:700 var(--text-sm) / var(--leading-sm) var(--font-mono);color:var(--color-text-dim);flex-shrink:0}.btn-small{padding:var(--space-1) var(--space-3);font-size:var(--text-sm);line-height:var(--leading-sm)}.chevron{transition:transform var(--duration-base) var(--ease-out)}.chevron--open{transform:rotate(180deg)}@media (prefers-reduced-motion:reduce){.profile>*,.game-list,.friend-list,.search-results,.tile__body-enter,.lichess-note,.lichess-skel__btn,.panel-enter,.net-dot{animation:none}.drawer{transition:opacity var(--duration-fast) linear, visibility 0s linear var(--duration-fast)}.drawer--open{transition:opacity var(--duration-fast) linear}.chevron{transition:none}}.settings-stub{justify-content:center;align-items:center;gap:var(--space-3);color:var(--color-text-dim);text-align:center;padding:var(--space-6);flex-direction:column;flex:1;display:flex}.settings-stub h1{font:700 var(--text-xl) / var(--leading-xl) var(--font-sans);color:var(--color-text)}.news{gap:var(--space-4);min-width:0;padding:var(--space-6);flex-direction:column;flex:1;max-width:720px;margin:0 auto;display:flex;overflow-y:auto}.news__title{font:700 var(--text-2xl) / var(--leading-2xl) var(--font-sans)}.news__feed{gap:var(--space-3);flex-direction:column;display:flex}.news-card{gap:var(--space-2);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-l);padding:var(--space-5);animation:card-in var(--duration-slow) var(--ease-out) both;animation-delay:calc(var(--news-i,0) * var(--duration-fast) / 3);flex-direction:column;display:flex}@keyframes card-in{0%{opacity:0;transform:translateY(8px)}}.news-card__header{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.news-card__title{font:700 var(--text-lg) / var(--leading-lg) var(--font-sans)}.news-card__date{color:var(--color-text-faint);font:400 var(--text-sm) / var(--leading-sm) var(--font-sans);flex-shrink:0}.news-card__paragraph{font:400 var(--text-base) / var(--leading-base) var(--font-sans);color:var(--color-text-dim)}.news-card__highlights{background:var(--color-surface-2);border-radius:var(--radius-m);padding:var(--space-3) var(--space-4)}.news-card__highlights h3{font:600 var(--text-sm) / var(--leading-sm) var(--font-sans);color:var(--color-text);margin-bottom:var(--space-1)}.news-card__highlights ul{padding-left:var(--space-4);gap:var(--space-1);flex-direction:column;margin:0;display:flex}.news-card__highlights li{font:400 var(--text-sm) / var(--leading-sm) var(--font-sans);color:var(--color-text-dim)}@media (prefers-reduced-motion:reduce){.modal-overlay,.modal-overlay--closing{animation-duration:var(--duration-fast)}.modal{animation:fade-in var(--duration-fast) var(--ease-out) both}.modal-overlay--closing .modal{animation:fade-out var(--duration-fast) var(--ease-in) both}.news-card{animation:fade-in var(--duration-fast) var(--ease-out) both;animation-delay:0s}.sidebar__dot{transition:opacity var(--duration-fast) linear}}.settings-stub p{max-width:360px}
