:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#252b2c;background:#f5f7f6;font-synthesis:none;--surface: #fff;--line: #e9edeb;--muted: #7b8584;--green: #0b8a5a;--green-soft: #e8f5ef;--blue: #2f78bd;--hover: #edf0ef}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input{font:inherit}button,a,input,li{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}:focus-visible{outline:3px solid #69c69b;outline-offset:2px}.site-header{background:var(--surface);border-bottom:1px solid var(--line)}.site-header__inner{width:min(100% - 40px,1040px);margin:auto;display:flex;align-items:center;gap:58px;height:72px}.brand{display:inline-flex;align-items:center;gap:10px;font-size:21px;font-weight:760;letter-spacing:-.035em;white-space:nowrap}.brand__mark{display:block;flex:none;width:33px;height:33px}.site-header nav{align-self:stretch;display:flex}.nav-link{position:relative;display:grid;align-items:center;padding:0 11px;color:#697370;font-weight:650}.nav-link--active{color:var(--green)}.nav-link--active:after{content:"";position:absolute;inset:auto 0 -1px;height:3px;border-radius:3px 3px 0 0;background:var(--green)}.page-shell{width:min(100% - 40px,1040px);margin:38px auto 72px}.page-heading,.game-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}.eyebrow{margin:0 0 5px;color:var(--green);font-size:12px;font-weight:750;letter-spacing:.09em;text-transform:uppercase}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(28px,4vw,38px);letter-spacing:-.045em;line-height:1.14}.filters{display:flex;align-items:end;gap:10px;padding:17px 20px 19px;background:var(--surface);border:1px solid var(--line);border-radius:12px}.filter-field{display:flex;flex-direction:column;gap:7px;min-width:0}.filter-field>span{color:#687471;font-size:12px;font-weight:680}.filter-field--player{flex:1 1 300px;max-width:390px}.filter-field--type,.filter-field--result,.filter-field--series{flex:0 1 180px}.filter-field input{width:100%;height:40px;padding:0 12px;border:1px solid #dfe5e2;border-radius:7px;background:#fff;color:#2b3230;outline:none}.filter-field input:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}.filter-field input::placeholder{color:#a1aaa5}.select{position:relative}.select__trigger{display:flex;align-items:center;gap:9px;width:100%;height:40px;padding:0 10px 0 12px;border:1px solid #dfe5e2;border-radius:7px;background:#fff;color:#2b3230;text-align:left;cursor:pointer;outline:none;transition:border-color .15s,box-shadow .15s}.select__trigger:hover{border-color:#c9d2ce}.select__trigger:focus-visible,.select.is-open .select__trigger{border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}.select__value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select__icon{display:grid;flex:none;place-items:center;width:22px;height:22px;border-radius:6px;background:var(--green-soft);color:var(--green)}.select__icon svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.select__chevron{flex:none;width:16px;height:16px;fill:none;stroke:#8a9591;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s}.select.is-open .select__chevron{transform:rotate(180deg)}.select__list{position:absolute;z-index:20;top:calc(100% + 6px);left:0;min-width:100%;max-height:280px;margin:0;padding:5px;overflow-y:auto;list-style:none;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 12px 32px #18282121,0 2px 6px #1828210f;animation:select-in .14s ease-out}.select__option{display:flex;align-items:center;gap:9px;min-height:38px;padding:0 9px;border-radius:7px;color:#2b3230;font-size:14px;cursor:pointer;-webkit-user-select:none;user-select:none}.select__option.is-highlighted{background:#f3f6f4}.select__option[aria-selected=true]{color:var(--green);font-weight:680}.select__check{flex:none;width:16px;height:16px;fill:none;stroke:var(--green);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.multi-select__more{flex:none;padding:1px 7px;border-radius:10px;background:var(--green-soft);color:var(--green);font-size:12px;font-weight:700}.multi-select__box{display:grid;flex:none;place-items:center;width:16px;height:16px;border:1.5px solid #c9d2ce;border-radius:4px;background:#fff}.select__option[aria-selected=true] .multi-select__box{border-color:var(--green);background:var(--green)}.multi-select__box svg{width:12px;height:12px;fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.multi-select__all{position:relative;margin-bottom:9px}.multi-select__all:after{content:"";position:absolute;right:4px;bottom:-5px;left:4px;border-top:1px solid var(--line)}.select__empty{padding:10px 9px;color:var(--muted);font-size:13px}.player-select__field{padding:0 6px 0 11px;cursor:text}.player-select__field:focus-within{border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}.player-select__field input,.player-select__field input:focus{flex:1;min-width:0;height:100%;padding:0;border:0;outline:none;background:transparent;color:inherit;box-shadow:none}.player-select__search{flex:none;width:15px;height:15px;fill:none;stroke:#8a9591;stroke-width:1.7;stroke-linecap:round}.player-select__clear{display:grid;flex:none;place-items:center;width:26px;height:26px;padding:0;border:0;border-radius:6px;background:transparent;color:#8a9591;cursor:pointer}.player-select__clear:hover{background:#f0f3f1;color:#2b3230}.player-select__clear svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.player-select .select__chevron{margin-right:4px}.player-select .select__list{max-height:320px}.player-select .select__option{min-height:46px}.player-select .select__value{display:flex;flex-direction:column;gap:1px;line-height:1.25}.player-select__username{overflow:hidden;text-overflow:ellipsis}.player-select__name{overflow:hidden;color:var(--muted);font-size:12px;font-weight:400;text-overflow:ellipsis}.player-select__avatar{display:grid;flex:none;place-items:center;width:28px;height:28px;border-radius:50%;background:#f0f3f1;color:#5d6965;font-size:12px;font-weight:700}.select__option[aria-selected=true] .player-select__avatar{background:var(--green-soft);color:var(--green)}@keyframes select-in{0%{opacity:0;transform:translateY(-4px)}}@media(prefers-reduced-motion:reduce){.select__list{animation:none}.select__chevron,.scroll-top{transition:none}}.filter-button{height:40px;padding:0 19px;border:0;border-radius:7px;background:var(--green);color:#fff;font-size:14px;font-weight:700}.filter-button:hover{background:#08754c}.list-heading{display:flex;justify-content:space-between;padding:28px 4px 11px;color:var(--muted);font-size:12px}.list-heading span:first-child{color:#343d3a;font-size:15px;font-weight:740}.games-list{overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.game-row{display:grid;grid-template-columns:minmax(0,270px) minmax(0,1fr) 100px 90px 130px 22px;align-items:center;gap:16px;min-height:86px;padding:11px 20px;border-bottom:1px solid var(--line);transition:background .15s}.game-row:last-child{border-bottom:0}.game-row:hover{background:#f8fbf9}.game-row__players{grid-column:1;display:grid;gap:5px;min-width:0}.game-row__tournament{grid-column:2;overflow:hidden;color:var(--green);font-size:13px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.player-line{display:flex;align-items:center;gap:8px;min-width:0;font-size:14px;line-height:1.3}.piece-dot{display:inline-block;flex:none;width:13px;height:13px;border:1.5px solid #7b8783;border-radius:50%}.piece-dot--white{background:#fff}.piece-dot--black{border-color:#3c4542;background:#3c4542}.player-line__name{overflow:hidden;font-weight:630;text-overflow:ellipsis;white-space:nowrap}.player-line__rating{color:var(--muted);font-variant-numeric:tabular-nums}.game-row__result{grid-column:3;justify-self:center;font-size:17px;font-weight:760;font-variant-numeric:tabular-nums;white-space:nowrap}.game-row__type{grid-column:4;justify-self:start;padding:5px 10px;border-radius:6px;background:#f0f3f1;color:#68726e;font-size:12px;font-weight:670}.game-row__date{grid-column:5;justify-self:end;color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}.game-row__arrow{grid-column:6;color:#abb4ae;font-size:24px;line-height:1}.content-state{padding:48px 20px;color:var(--muted);text-align:center}.load-more{min-height:44px;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px;color:var(--muted);font-size:13px}.load-more button{color:var(--green);font:inherit;font-weight:700;background:none;border:0;cursor:pointer}.load-more button:hover,.back-link:hover{text-decoration:underline}.scroll-top{position:fixed;right:max(20px,calc((100vw - 1040px)/2 - 64px));bottom:24px;z-index:20;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--green);box-shadow:0 6px 18px #1a262124;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .18s,transform .18s,visibility .18s}.scroll-top--visible{opacity:1;visibility:visible;transform:none}.scroll-top:hover{background:var(--green-soft)}.back-link{display:inline-block;margin-bottom:23px;color:var(--green);font-size:14px;font-weight:690}.back-link--button{padding:0;border:0;background:none}.game-heading{align-items:center;margin-bottom:30px}.game-heading h1{font-size:clamp(25px,3.5vw,34px)}.game-heading h1 span{color:#a3aca6;font-weight:450}.game-heading__date{display:block;margin-top:6px;color:var(--muted);font-size:14px;font-variant-numeric:tabular-nums}.game-heading__tournament{margin:7px 0 0;color:var(--green);font-size:14px;font-weight:650}.game-heading__tournament a:hover{text-decoration:underline}.game-heading__result{white-space:nowrap;font-size:27px;font-variant-numeric:tabular-nums}.game-layout{display:grid;grid-template-columns:minmax(0,510px) minmax(270px,1fr);align-items:start;gap:36px}.board-section{min-width:0}.board-player{display:flex;align-items:center;gap:10px;height:44px;font-size:15px}.board-player .piece-dot{width:15px;height:15px}.board-player strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-player__rating{color:var(--muted);font-size:14px;font-variant-numeric:tabular-nums}.board-section{--eval-width: 24px;--eval-gap: 8px}.board-section .board-player{margin-left:calc(var(--eval-width) + var(--eval-gap))}.captured-pieces.cg-wrap{display:flex;flex:0 1 auto;align-items:center;gap:3px;min-width:0;height:20px;overflow:hidden}.captured-pieces__group{display:flex;flex:none}.captured-pieces.cg-wrap piece{position:static;display:block;flex:none;width:19px;height:19px;margin-left:-11px;will-change:auto}.captured-pieces.cg-wrap piece:first-child{margin-left:0}.captured-pieces__advantage{flex:none;margin-left:2px;color:var(--muted);font-size:13px;font-weight:650;font-variant-numeric:tabular-nums}.board-clock{margin-left:auto;min-width:64px;padding:4px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:#69756e;font-size:15px;font-weight:600;text-align:center;font-variant-numeric:tabular-nums}.board-clock--active{border-color:#36443c;background:#36443c;color:#fff}.board-clock--flagged{border-color:#c2413a;background:#fdecea;color:#b3372f}.board-row{display:flex;align-items:stretch;gap:var(--eval-gap)}.board-row .board-swipe{flex:1;min-width:0}.eval-bar{position:relative;flex:none;width:var(--eval-width);overflow:hidden;border:1px solid #cfd6d2;border-radius:4px;background:#3c4542}.eval-bar__white{position:absolute;inset:auto 0 0;background:#f4f5f1;transition:height .18s ease}.eval-bar--empty{opacity:.35}.eval-bar__value{position:absolute;left:0;right:0;font-size:10px;font-weight:700;line-height:1;text-align:center;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.eval-bar__value--white{bottom:5px;color:#36443c}.eval-bar__value--black{top:5px;color:#f4f5f1}.eval-bar--flipped .eval-bar__white{inset:0 0 auto}.eval-bar--flipped .eval-bar__value--white{top:5px;bottom:auto}.eval-bar--flipped .eval-bar__value--black{top:auto;bottom:5px}.analysis-note{display:flex;align-items:center;gap:10px;margin:0 0 10px;padding:7px 8px 7px 12px;border:1px solid #eadba3;border-radius:8px;background:#fbf5df;color:#5f562f;font-size:13px;line-height:1.45}.analysis-note p{flex:1;margin:0}.analysis-note button{display:grid;flex:none;place-items:center;width:30px;height:30px;padding:0;border:0;border-radius:6px;background:transparent;color:#776b38}.analysis-note button:hover{background:#f2e8c2;color:#4f4727}.analysis-note button svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.board-swipe{position:relative;touch-action:pan-y}.chess-board{width:100%;aspect-ratio:1}.chess-board.cg-wrap coords.ranks{top:0;left:4px;height:100%}.chess-board.cg-wrap coords.ranks coord{flex:0 0 12.5%;line-height:1;transform:none}.chess-board.cg-wrap coords.files{bottom:3px;left:0;width:100%;height:12px}.chess-board.cg-wrap coords.files coord{flex:0 0 12.5%;padding-right:4px;text-align:right}.move-controls{display:grid;grid-template-columns:48px 48px minmax(0,1fr);grid-auto-columns:48px;grid-auto-flow:column;align-items:center;margin-top:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);overflow:hidden}.move-controls button{height:44px;border:0;background:transparent;color:#36443c;font-size:18px}.move-controls button:hover:not(:disabled){background:var(--hover)}.move-controls button:focus-visible{outline:0;box-shadow:inset 0 -3px var(--blue)}.move-controls button:disabled{color:#c7ceca;cursor:default}.move-controls__sound,.move-controls__flip{display:grid;place-items:center;border-left:1px solid var(--line)!important;color:#69756e!important}.move-controls__sound[aria-pressed=false]{color:#b3bcb7!important}.move-controls__sound svg,.move-controls__flip svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.move-controls span{overflow:hidden;color:#69756e;font-size:12px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.move-controls__label--short{display:none}.moves-section{margin-top:44px;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.moves-section__heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:18px 20px;border-bottom:1px solid var(--line)}.moves-section__heading h2{margin:0;font-size:17px;letter-spacing:-.02em}.moves-section__heading span{color:var(--muted);font-size:12px}.moves-list{max-height:510px;overflow:auto;padding:8px 0}.move-pair{display:grid;grid-template-columns:52px 1fr 1fr;align-items:stretch;min-height:38px}.move-pair:nth-child(2n){background:#f8faf9}.move-pair__number{padding:9px 14px 9px 20px;color:#99a39d;font-size:13px;font-variant-numeric:tabular-nums}.move-pair button{border:0;background:transparent;color:#323c36;text-align:left;font-size:14px;font-weight:640}.move-pair button:hover{background:var(--hover)}.move-pair button.is-current{background:var(--blue);color:#fff}.move-pair button:focus-visible,.move-variation__line button:focus-visible,.engine-line__moves button:focus-visible{outline:0;box-shadow:inset 0 -2px var(--blue)}.move-pair button.is-current:focus-visible,.move-variation__line button.is-current:focus-visible{box-shadow:inset 0 -2px #ffffffb3}.moves-empty{margin:0;padding:22px 20px;color:var(--muted);font-size:14px}.move-pair__gap{display:flex;align-items:center;color:#b3bcb7;font-size:14px}.move-variation{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px;padding:6px 10px 6px 16px;border-block:1px solid var(--line);background:#f4f7f5}.move-variation+.move-variation{border-top:0}.move-variation__line{display:flex;flex:1;flex-wrap:wrap;align-items:center;gap:1px;min-width:0}.move-variation__line button:not(.move-variation__delete){padding:3px 4px;border:0;border-radius:4px;background:transparent;color:#46524b;font-size:13px;font-weight:620}.move-variation__line button:not(.move-variation__delete):hover{background:var(--hover)}.move-variation__line button.is-current{background:var(--blue);color:#fff}.move-variation__line button.is-current .move-variation__number{color:inherit}.move-variation__number{margin-right:2px;color:#99a39d;font-weight:500}.move-variation__nested{display:inline-flex;flex-wrap:wrap;align-items:center;gap:1px;color:#a3aca6;font-size:13px}.move-variation__delete{display:grid;flex:none;place-items:center;width:26px;height:26px;padding:0;border:0;border-radius:5px;background:transparent;color:#a3aca6}.move-variation__nested .move-variation__delete{width:20px;height:20px}.move-variation__delete:hover{background:#e7ece9;color:#36443c}.move-variation__delete svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.engine-line{display:flex;flex-basis:100%;align-items:center;gap:6px;min-height:26px;margin-top:2px;padding:2px 0 0 4px;border-top:1px dashed #dbe2de}.engine-line__name{display:grid;flex:none;place-items:center;width:14px;height:26px}.engine-line__dot{width:7px;height:7px;border-radius:50%;background:var(--blue)}.engine-line__dot.is-working{animation:engine-pulse 1.1s ease-in-out infinite}@keyframes engine-pulse{50%{opacity:.25}}@media(prefers-reduced-motion:reduce){.engine-line__dot.is-working{animation:none;opacity:.5}}.engine-line__message{margin:0;color:var(--muted);font-size:13px;line-height:1.4}.engine-line__moves{display:flex;flex:1;flex-wrap:wrap;align-items:center;gap:1px;min-width:0;margin:0;padding:0;list-style:none}.engine-line__moves button{padding:3px 4px;border:0;border-radius:4px;background:transparent;color:#66726b;font-size:13px;font-weight:560}.engine-line__moves button:hover{background:var(--hover);color:#323c36}.engine-line__depth{margin-left:4px;color:#a3aca6;font-size:12px;font-variant-numeric:tabular-nums}.promotion-picker{position:absolute;inset:0;z-index:5;display:grid;place-items:center;background:#1c24206b}.promotion-picker__pieces.cg-wrap{display:flex;gap:6px;padding:8px;border-radius:10px;background:var(--surface);box-shadow:0 10px 28px #141e1947}.promotion-picker__pieces button{width:clamp(46px,11vw,62px);aspect-ratio:1;padding:4px;border:0;border-radius:8px;background:#eef2f0}.promotion-picker__pieces button:hover{background:var(--hover)}.promotion-picker__pieces button:focus-visible{background:var(--hover);outline:2px solid var(--blue);outline-offset:-2px}.promotion-picker__pieces.cg-wrap piece{position:static;display:block;width:100%;height:100%;pointer-events:none;will-change:auto}.puzzle-page{max-width:980px;margin:0 auto}.puzzle-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:26px}.puzzle-heading h1{margin:0 0 7px;font-size:clamp(28px,4vw,40px);letter-spacing:-.035em}.puzzle-heading p:not(.eyebrow){margin:0;color:var(--muted)}.puzzle-layout{display:grid;grid-template-columns:minmax(300px,540px) minmax(260px,1fr);align-items:start;gap:34px}.puzzle-board-section{min-width:0}.puzzle-game-meta{margin:0 0 2px;color:var(--muted);font-size:13px;font-weight:680}.puzzle-player{display:flex;align-items:center;gap:9px;min-height:42px;color:var(--muted);font-size:13px}.puzzle-player--top{justify-content:flex-start}.puzzle-player strong{color:#323c36;font-size:15px}.puzzle-player .piece-dot{width:14px;height:14px}.puzzle-player span:last-child{margin-left:auto;font-variant-numeric:tabular-nums}.puzzle-board{border-radius:5px;box-shadow:0 8px 24px #1f2f2721}.puzzle-move-controls{grid-template-columns:48px 48px minmax(0,1fr) 48px 48px}.puzzle-panel{margin-top:62px;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.puzzle-status{display:flex;align-items:center;gap:12px;min-height:78px;padding:16px 18px;border-bottom:1px solid var(--line)}.puzzle-status__icon{display:grid;flex:none;place-items:center;width:36px;height:36px;border-radius:50%;font-size:21px;font-weight:800}.puzzle-status__icon--white{background:#3c4542;color:#fff}.puzzle-status__icon--black{background:#eef0ef;color:#252b2c}.puzzle-status__icon--success{background:var(--green-soft);color:var(--green)}.puzzle-status p{margin:0;font-weight:680;line-height:1.4}.puzzle-panel--solved .puzzle-status{border-color:#b7dfcc;background:#effaf5}.puzzle-moves{border-bottom:1px solid var(--line)}.puzzle-moves__heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:14px 18px 9px}.puzzle-moves__heading h2{margin:0;color:#323c36;font-size:14px;letter-spacing:-.01em}.puzzle-moves__list{max-height:252px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin}.puzzle-move-row{display:grid;grid-template-columns:42px minmax(0,1fr) minmax(0,1fr);min-height:36px;color:#323c36;font-size:14px;font-weight:650}.puzzle-move-row:nth-child(2n){background:#f8faf9}.puzzle-move-row>span,.puzzle-move-row>button{display:flex;min-width:0;align-items:center;padding:7px 10px}.puzzle-move-row>button{border:0;background:transparent;color:inherit;font:inherit;text-align:left}.puzzle-move-row>button:hover{background:var(--hover)}.puzzle-move-row>button:focus-visible{outline:0;box-shadow:inset 0 -3px var(--blue)}.puzzle-move-row__number{justify-content:flex-end;color:#99a39d;font-size:12px;font-weight:500;font-variant-numeric:tabular-nums}.puzzle-move-row>button.is-current{background:var(--blue);color:#fff}.puzzle-move-row>button.is-current:focus-visible{box-shadow:inset 0 -3px #ffffffb3}.puzzle-move-row>button.is-correct.is-current{background:#4f8426;color:#fff}.puzzle-move__check{margin-left:auto;padding-left:6px;color:#4f8426;font-size:17px;font-weight:850;line-height:1}.puzzle-move-row>button.is-correct.is-current .puzzle-move__check{color:#fff}.puzzle-moves__empty{margin:0;padding:2px 18px 15px;color:var(--muted);font-size:13px;line-height:1.45}.puzzle-actions{display:flex;flex-wrap:wrap;align-items:center;gap:9px;padding:0 18px 18px}.puzzle-actions--controls{padding-top:18px}.puzzle-actions button,.puzzle-actions a{display:inline-flex;align-items:center;min-height:42px;padding:0 15px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:#36443c;font:inherit;font-weight:680;text-decoration:none}.puzzle-actions button:hover:not(:disabled),.puzzle-actions a:hover{background:var(--green-soft)}.puzzle-actions button:disabled{color:#aeb7b2;cursor:default}.puzzle-result{padding:18px}.puzzle-result h2{margin:0 0 8px;font-size:21px}.puzzle-result p{margin:0 0 20px;color:var(--muted);line-height:1.55}.puzzle-result .puzzle-actions{padding:0}.puzzle-empty{max-width:520px;margin:70px auto;text-align:center}.puzzle-empty h1{margin:5px 0 12px}.puzzle-empty p:not(.eyebrow){margin:0 0 25px;color:var(--muted)}.puzzle-empty__link{display:inline-flex;align-items:center;justify-content:center}.puzzle-empty__actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:16px}.puzzle-empty__secondary{color:var(--green);font-size:14px;font-weight:680}.skeleton{border-radius:7px;background:#e9eeeb;animation:skeleton-pulse 1.4s ease-in-out infinite}.puzzle-skeleton__title{width:min(260px,70%);height:40px;margin-bottom:7px}.puzzle-skeleton__board{width:100%;aspect-ratio:1;margin-top:62px;border-radius:5px}.puzzle-skeleton__panel{display:grid;gap:14px;padding:22px 18px}.puzzle-skeleton__line{height:18px}.puzzle-skeleton__line:first-child{width:70%}@keyframes skeleton-pulse{50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}}.app-loading,.error-page{padding:80px 20px;color:var(--muted);text-align:center}.error-page h1{margin-bottom:15px;color:#252b2c}.error-page a{color:var(--green)}.error-page p{max-width:420px;margin:0 auto 26px;font-size:15px;line-height:1.5}.error-page__icon{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 20px;border-radius:16px;background:var(--green-soft);color:var(--green)}.error-page__icon svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.error-page__actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:18px}.error-page__actions .filter-button:disabled{background:#6aa78e}.error-page__link{margin-bottom:0}.error-page__button{display:inline-flex;align-items:center;color:#fff}.route-progress{position:fixed;inset:0 0 auto;height:3px;background:#0b8a5a24;z-index:50}.route-progress__bar{height:100%;border-radius:0 3px 3px 0;background:var(--green);box-shadow:0 0 8px #0b8a5a80;animation:route-progress 12s cubic-bezier(.1,.8,.2,1) forwards}@keyframes route-progress{0%{width:0}30%{width:45%}to{width:92%}}@media(prefers-reduced-motion:reduce){.route-progress__bar{animation:none;width:45%}}@media(max-width:900px){.game-row{grid-template-columns:minmax(0,1fr) 68px 24px;gap:8px;min-height:78px;padding:10px 13px}.game-row__players{grid-column:1;grid-row:1}.game-row__result{grid-column:2;grid-row:1}.game-row__tournament{grid-column:1 / 3;grid-row:2;padding-left:21px;font-size:12px}.game-row__type{grid-column:2;grid-row:2;justify-self:center;padding:0;background:none;font-size:11px}.game-row__date{grid-column:1;grid-row:2;justify-self:start;font-size:12px}.game-row__arrow{grid-column:3;grid-row:1 / 3}.game-row--tournament .game-row__type,.game-row--tournament .game-row__date{grid-row:3}.game-row--tournament .game-row__arrow{grid-row:1 / 4}}@media(max-width:760px){.site-header__inner{width:min(100% - 28px,600px);height:62px;gap:28px}.brand{font-size:18px}.brand__mark{width:30px;height:30px}.page-shell{width:min(100% - 28px,600px);margin-top:28px}.page-heading{margin-bottom:20px}.game-layout{grid-template-columns:1fr;gap:26px}.moves-section{margin-top:0}.moves-list{max-height:300px}.puzzle-layout{grid-template-columns:1fr;gap:22px}.puzzle-panel{margin-top:0}}@media(max-width:520px){.page-shell{margin-top:24px}.filters{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:14px}.filter-field--player{grid-column:1 / -1;max-width:none}.filter-field--type,.filter-field--result,.filter-field--series{min-width:0}.filters--with-result .filter-field--series{grid-column:1 / -1}.filter-button{grid-column:1 / -1;padding:0 16px}.list-heading{padding-top:25px}.game-row{grid-template-columns:minmax(0,1fr) 58px 24px}.game-row__result{font-size:15px}.player-line{font-size:13px}.game-row__tournament{padding-left:19px;font-size:11px}.piece-dot{width:11px;height:11px}.board-player{gap:7px}.captured-pieces.cg-wrap{gap:2px}.captured-pieces.cg-wrap piece{width:15px;height:15px;margin-left:-10px}.captured-pieces.cg-wrap piece:first-child{margin-left:0}.captured-pieces__advantage{font-size:12px}.game-heading{align-items:end;gap:10px;margin-bottom:20px}.game-heading h1{font-size:23px}.game-heading__result{font-size:19px}.move-controls:not(.puzzle-move-controls){grid-template-columns:42px 42px minmax(0,1fr);grid-auto-columns:42px}.move-controls__label{display:none}.move-controls__label--short{display:inline}.move-controls button{height:48px}.board-section{--eval-width: 18px;--eval-gap: 6px}.eval-bar__value{font-size:8px;letter-spacing:-.04em}.board-clock{min-width:56px;padding:3px 6px;font-size:14px}.puzzle-heading{align-items:start;flex-direction:column;gap:12px}.puzzle-actions{align-items:stretch;flex-direction:column}.puzzle-actions button,.puzzle-actions a{width:100%;min-height:44px;display:flex;align-items:center;justify-content:center}}@media(prefers-reduced-motion:reduce){.puzzle-board .cg-wrap piece{transition-duration:.01ms!important}}.brand small{margin-left:5px;color:var(--muted);font-size:11px;font-weight:720;letter-spacing:.08em;text-transform:uppercase}.admin-app .page-shell,.admin-app .site-header__inner{width:min(100% - 40px,1180px)}.admin-page{display:grid;gap:18px}.admin-heading{display:flex;align-items:end;justify-content:space-between;gap:24px}.admin-heading h1{margin:0;font-size:clamp(28px,4vw,40px);letter-spacing:-.035em}.admin-heading>span{color:var(--muted);font-size:13px}.admin-tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line)}.admin-tabs a{flex:none;padding:11px 15px;border:0;border-bottom:3px solid transparent;border-radius:0;background:transparent;color:var(--muted);font:inherit;font-weight:700;text-decoration:none}.admin-tabs a:hover{color:#323c36;background:var(--surface)}.admin-tabs a.is-active{border-bottom-color:var(--green);color:#25342d}.admin-panel{border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 2px 8px #1f2f270d}.admin-panel-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:18px 20px;border-bottom:1px solid var(--line)}.admin-panel-heading h2{margin:0 0 3px;font-size:19px}.admin-panel-heading p{margin:0;color:var(--muted);font-size:13px}.admin-toolbar{display:flex;align-items:end;justify-content:flex-end;flex-wrap:wrap;gap:8px}.admin-field,.admin-add-player label{display:grid;gap:5px;min-width:145px;color:var(--muted);font-size:12px;font-weight:680}.admin-field--player{min-width:190px}.admin-add-player input{min-height:40px;padding:0 11px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:#323c36;font:inherit;font-size:14px}.admin-button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 13px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:#36443c;font:inherit;font-size:14px;font-weight:700;text-decoration:none;cursor:pointer}.admin-button:hover:not(:disabled){background:var(--green-soft)}.admin-button:disabled{opacity:.55;cursor:default}.admin-button--primary{border-color:var(--green);background:var(--green);color:#fff}.admin-button--primary:hover:not(:disabled){background:#08794f}.admin-button--danger-text{color:#a33b32}.admin-button--danger{border-color:#a33b32;background:#a33b32;color:#fff}.admin-state{padding:42px 20px;color:var(--muted);text-align:center}.admin-state--error,.admin-inline-error,.admin-row-error{color:#a33b32}.admin-inline-error{margin:12px 0 0;font-size:13px}.admin-review-list{display:grid;gap:16px;padding:18px}.admin-review-card{display:grid;grid-template-columns:minmax(260px,350px) minmax(0,1fr);gap:22px;padding:16px;border:1px solid var(--line);border-radius:10px;background:#f8faf9}.admin-review-board,.admin-review-content{min-width:0}.admin-review-content>.eyebrow{margin-bottom:4px}.admin-review-content h2{margin:0 0 8px;font-size:20px}.admin-review-content h2 span{color:var(--muted);font-weight:450}.admin-review-content>p{margin:5px 0}.admin-muted{color:var(--muted);font-size:13px}.admin-review-reason{padding:7px 9px;border-left:3px solid var(--line);color:var(--muted);font-size:13px}.admin-solutions{margin-top:15px;padding:13px 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.admin-solutions h3{margin:0 0 3px;font-size:15px}.admin-solutions>p{margin:0 0 9px;color:var(--muted);font-size:12px}.admin-solutions ol{display:grid;gap:6px;margin:0;padding-left:24px}.admin-solutions li{line-height:1.7}.admin-solutions li::marker{color:var(--muted);font-size:12px;font-weight:750}.admin-attack,.admin-defense{display:inline-block;white-space:nowrap;font-variant-numeric:tabular-nums}.admin-attack{color:#29362f;font-weight:780}.admin-defense{color:var(--muted)}.admin-solution-arrow{margin:0 6px;color:var(--muted)}.admin-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:15px}.admin-reject{display:grid;grid-template-columns:minmax(190px,1fr) auto auto;align-items:end;gap:8px;margin-top:10px;padding:12px;border:1px solid #d9aaa6;border-radius:8px;background:var(--surface)}.admin-reject .admin-field{min-width:0}.admin-reject strong{color:#a33b32}.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:12px 15px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.admin-table th{color:var(--muted);font-size:12px;font-weight:700}.admin-table td{font-size:14px}.admin-table td>span{display:block;margin-top:3px;color:var(--muted);font-size:12px}.admin-table tbody tr:last-child td{border-bottom:0}.admin-table td:last-child{text-align:right;white-space:nowrap}.admin-pulse-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;padding:18px}.admin-pulse-list article{padding:15px;border:1px solid var(--line);border-radius:9px;background:#f8faf9}.admin-pulse-list h3{margin:4px 0 7px;font-size:16px}.admin-pulse-list p{margin:5px 0}.admin-pulse-list .admin-button{margin-top:9px}.admin-add-player{display:flex;align-items:end;gap:8px;padding:18px 20px;border-bottom:1px solid var(--line)}.admin-add-player label{flex:1}.admin-row-error{max-width:320px;overflow-wrap:anywhere}@media(max-width:800px){.admin-app .page-shell,.admin-app .site-header__inner{width:min(100% - 24px,680px)}.admin-panel-heading{align-items:stretch;flex-direction:column}.admin-toolbar{justify-content:flex-start}.admin-review-card{grid-template-columns:1fr}.admin-review-board{width:min(100%,420px);margin:auto}}@media(max-width:520px){.admin-heading{align-items:start;flex-direction:column;gap:5px}.admin-toolbar,.admin-add-player{align-items:stretch;flex-direction:column}.admin-toolbar .admin-field{width:100%}.admin-reject{grid-template-columns:1fr 1fr}.admin-reject .admin-field{grid-column:1 / -1}.admin-table th,.admin-table td{padding:10px}}.admin-ai{border-top:1px solid var(--border, #333);padding-block:12px;margin-block:12px}.admin-ai p{margin-block:6px}.admin-ai-stale{color:#bd8531}.admin-ai-moves{display:flex;flex-wrap:wrap;gap:6px}.admin-ai-json{white-space:pre-wrap;overflow-wrap:anywhere;max-height:600px;overflow:auto;font-size:12px}
