@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Serif:ital,wght@0,400;1,400&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f2ec;--surface:#fffdf9;--ink:#1f1c18;--ink-2:#4b463f;--muted:#8a8378;--line:#e3ddd2;--line-strong:#cbc3b5;--accent:#9a3b26;--board-light:#ebe3d2;--board-dark:#a8896a;--last-move:#d9b54a73;--selected:#6f8f3a99;--good:#3f6f45;--fine:#4b6a85;--warn:#9a6a12;--bad:#a2462a;--worst:#9a2d23;--radius:6px;--sans:"IBM Plex Sans", system-ui, sans-serif;--serif:"IBM Plex Serif", Georgia, serif;--mono:"IBM Plex Mono", ui-monospace, monospace;font-family:var(--sans);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#1a1917;--surface:#211f1c;--ink:#ebe6dc;--ink-2:#bdb5a8;--muted:#8c8579;--line:#34312c;--line-strong:#4a453e;--accent:#d98a6f;--good:#8cbf8f;--fine:#93b3cf;--warn:#d9b25f;--bad:#e0906b;--worst:#e57d70}}*{box-sizing:border-box}html{overflow-x:clip}body{background:var(--bg);min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3{font-weight:400}.landing-shell,.game-shell{flex-direction:column;min-height:100vh;display:flex}.screen{flex:1;animation:.25s ease-out fade-in}.site-header{justify-content:space-between;align-items:center;gap:16px;width:100%;max-width:1200px;margin:0 auto;padding:22px 32px;display:flex}.wordmark{font-family:var(--serif);font-size:21px}.header-nav{align-items:center;gap:20px;font-size:14px;display:flex}.account-name{color:var(--muted)}.offline-note{color:var(--accent)}.site-footer{color:var(--muted);text-align:center;padding:28px 24px 32px;font-size:13px}.site-footer a{color:var(--ink-2)}.app-loading{color:var(--muted);text-align:center;padding:20vh 0}.text-button{color:var(--ink-2);font-size:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px;background:0 0;border:0;padding:0}.text-button:hover:not(:disabled){color:var(--ink);text-decoration-color:currentColor}.split-layout{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:80px;max-width:1200px;margin:0 auto;padding:48px 32px 64px;display:grid}.intro h1{max-width:560px;font-family:var(--serif);letter-spacing:-.01em;margin:0 0 16px;font-size:clamp(36px,4.4vw,52px);line-height:1.12}.lede{max-width:520px;color:var(--ink-2);margin:0;font-size:17px;line-height:1.6}.featured-position{max-width:360px;margin:44px 0 0}.diagram{aspect-ratio:1;border:1px solid var(--ink);grid-template-columns:repeat(8,1fr);display:grid}.diagram span{aspect-ratio:1;place-items:center;display:grid}.diagram .light{background:var(--board-light)}.diagram .dark{background:var(--board-dark)}.diagram i{font-size:clamp(22px,3vw,34px);font-style:normal;line-height:1}.featured-position figcaption{color:var(--muted);margin-top:12px;font-size:13px;line-height:1.55}.featured-position figcaption strong{color:var(--ink-2);font-weight:500}.card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:28px}.card h2{font-family:var(--serif);margin:0 0 20px;font-size:24px}.field-label{color:var(--ink-2);margin:16px 0 6px;font-size:13px;font-weight:500;display:block}.card h2+.field-label{margin-top:0}.text-input{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);outline:none;width:100%;height:42px;padding:0 12px;transition:border-color .15s}.text-input:focus{border-color:var(--ink)}.hint{color:var(--muted);margin:8px 0 0;font-size:13px}.hint.warning{color:var(--warn)}.error-message{color:var(--accent);margin:12px 0 0;font-size:14px}.switch-mode{color:var(--muted);text-align:center;margin:18px 0 0;font-size:14px}.primary-button,.secondary-button{border-radius:var(--radius);justify-content:center;align-items:center;height:42px;padding:0 16px;font-size:14px;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex}.primary-button{border:1px solid var(--ink);background:var(--ink);width:100%;color:var(--bg);margin-top:20px}.primary-button:hover:not(:disabled){background:var(--ink-2);border-color:var(--ink-2)}.secondary-button{border:1px solid var(--line-strong);width:100%;color:var(--ink);background:0 0}.secondary-button:hover:not(:disabled){border-color:var(--ink)}.secondary-button.danger{color:var(--accent)}.mode-picker{border:1px solid var(--line-strong);border-radius:var(--radius);grid-template-columns:repeat(3,1fr);display:grid;overflow:hidden}.mode-picker button{border:0;border-left:1px solid var(--line-strong);height:38px;color:var(--ink-2);background:0 0;font-size:14px}.mode-picker button:first-child{border-left:0}.mode-picker button.active{background:var(--ink);color:var(--bg)}.agent-config{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.agent-selector{grid-template-columns:56px .8fr 1.15fr 1.15fr;align-items:end;gap:8px;margin-bottom:8px;display:grid}.agent-selector>strong{text-transform:capitalize;align-items:center;gap:6px;height:36px;font-size:13px;font-weight:500;display:flex}.agent-selector label{flex-direction:column;gap:4px;min-width:0;display:flex}.agent-selector label span{color:var(--muted);font-size:12px}.agent-selector select{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);width:100%;height:36px;padding:0 8px;font-size:13px}.seat-dot{border:1px solid var(--ink);border-radius:50%;width:10px;height:10px}.seat-dot.white{background:#fff}.seat-dot.black{background:var(--ink)}.divider{color:var(--muted);align-items:center;gap:10px;margin:22px 0 14px;font-size:13px;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}.join-row{grid-template-columns:1fr 84px;gap:8px;display:grid}.code-input{font-family:var(--mono);letter-spacing:.15em;text-transform:uppercase}.code-input::placeholder{font-family:var(--sans);letter-spacing:0;text-transform:none;color:var(--muted)}.game-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:40px;max-width:1200px;margin:0 auto;padding:8px 32px 40px;display:grid}.board-column{justify-self:center;width:min(100%,100svh - 210px,720px);min-width:300px}.board-toolbar{justify-content:space-between;align-items:center;gap:12px;height:36px;display:flex}.toolbar-actions{align-items:center;gap:16px;font-size:13px;display:flex}.segmented{border:1px solid var(--line-strong);border-radius:var(--radius);display:inline-flex;overflow:hidden}.segmented button{height:26px;color:var(--muted);background:0 0;border:0;padding:0 10px;font-size:12px}.segmented button.active{background:var(--ink);color:var(--bg)}.game-status{align-items:baseline;gap:8px;min-width:0;display:flex}.game-status strong{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.status-pulse{display:none}.status-note{color:var(--muted);font-size:13px}.move-tip{color:var(--muted);margin:10px 0 0;font-size:13px}.player-bar{align-items:center;gap:10px;height:52px;display:flex}.player-avatar{border:1px solid var(--line-strong);border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:13px;font-weight:500;display:grid}.player-avatar.white{color:#1f1c18;background:#fbf8f1}.player-avatar.black{color:#efe6d3;background:#2a2521;border-color:#2a2521}.player-meta{flex-direction:column;flex:1;min-width:0;line-height:1.25;display:flex}.player-meta strong{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.player-meta span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.thinking-note{color:var(--muted);font-size:12px;font-style:italic}.player-clock{border:1px solid var(--line-strong);border-radius:var(--radius);min-width:76px;color:var(--muted);font-family:var(--mono);text-align:center;font-variant-numeric:tabular-nums;padding:5px 10px;font-size:18px}.player-clock.running{border-color:var(--ink);background:var(--ink);color:var(--bg)}.player-clock.low{border-color:var(--accent);background:var(--accent);color:#fff}.board-stage{aspect-ratio:1;width:100%;position:relative}.board-stage.is-3d{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.board3d-canvas{touch-action:none;inset:0;position:absolute!important}.board-loading{color:var(--muted);place-items:center;font-size:14px;display:grid;position:absolute;inset:0}.board2d{border:1px solid var(--ink);grid-template-rows:repeat(8,minmax(0,1fr));grid-template-columns:repeat(8,minmax(0,1fr));width:100%;height:100%;display:grid;position:relative;overflow:hidden}.square{cursor:default;border:0;min-width:0;min-height:0;padding:0;position:relative}.square.light{background:var(--board-light)}.square.dark{background:var(--board-dark)}.board2d.can-move .square{cursor:pointer}.square.last-move:before,.square.selected:before,.square.in-check:before{content:"";pointer-events:none;position:absolute;inset:0}.square.last-move:before{background:var(--last-move)}.square.selected:before{background:var(--selected)}.square.in-check:before{background:radial-gradient(circle,#c0392bd9,#c0392b40 60%,#0000 72%)}.move-dot{z-index:3;aspect-ratio:1;background:#1f1c1847;border-radius:50%;width:26%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.capture-ring{z-index:3;border:4px solid #1f1c1847;border-radius:50%;position:absolute;inset:3%}.rank-label,.file-label{z-index:1;pointer-events:none;font-size:11px;font-weight:500;position:absolute}.square.light .rank-label,.square.light .file-label{color:var(--board-dark)}.square.dark .rank-label,.square.dark .file-label{color:var(--board-light)}.rank-label{top:2px;left:4px}.file-label{bottom:1px;right:4px}.piece-layer{z-index:2;pointer-events:none;position:absolute;inset:0}.piece2d{place-items:center;width:12.5%;height:12.5%;transition:transform .18s ease-out;display:grid;position:absolute;top:0;left:0}.piece-layer.no-motion .piece2d{transition:none}.piece2d>span,.diagram i{-webkit-user-select:none;user-select:none;font-family:Segoe UI Symbol,"Noto Sans Symbols 2",DejaVu Sans,Georgia,serif}.piece2d>span{font-size:clamp(30px,6.2vw,66px);line-height:1;transition:transform .15s}.piece2d.white-piece>span,.diagram .white-piece{color:#fbf8f1;-webkit-text-stroke:1.2px #2a2521}.piece2d.black-piece>span,.diagram .black-piece{color:#2a2521}.piece2d.lifted>span{transform:scale(1.06)}.diagram .white-piece{-webkit-text-stroke-width:.7px}.board-notice{z-index:10;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);text-align:center;pointer-events:none;width:min(300px,80%);padding:18px 20px;position:absolute;top:50%;left:50%;translate:-50% -50%}.board-notice strong{font-family:var(--serif);font-size:20px;font-weight:400;line-height:1.25;display:block}.board-notice span{color:var(--muted);margin-top:6px;font-size:13px;display:block}.game-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);scrollbar-width:thin;max-height:calc(100svh - 32px);position:sticky;top:16px;overflow-y:auto}.game-panel>*+*{border-top:1px solid var(--line)}.room-block,.coach-panel,.analysis-block,.panel-actions,.record-actions{padding:18px 20px}.panel-kicker{color:var(--muted);margin:0;font-size:13px}.room-code-row{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.room-code-row strong{font-family:var(--mono);letter-spacing:.12em;font-size:24px;font-weight:500}.room-code-actions{gap:12px;font-size:13px;display:flex}.room-description{color:var(--ink-2);margin:4px 0 0;font-size:14px}.copy-notice{color:var(--good);margin:6px 0 0;font-size:13px}.agent-error{color:var(--accent);justify-content:space-between;align-items:center;gap:10px;margin-top:12px;font-size:13px;display:flex}.agent-error button{border-radius:var(--radius);height:30px;color:inherit;background:0 0;border:1px solid;flex:none;padding:0 10px;font-size:13px}.recorder-panel{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:14px;font-size:13px;display:flex}.recorder-heading{color:var(--ink-2);align-items:center;gap:10px;display:flex}.recorder-heading time{color:var(--accent);font-family:var(--mono);align-items:center;gap:6px;display:flex}.recorder-heading time i{background:var(--accent);border-radius:50%;width:7px;height:7px;animation:1.2s infinite blink}.recorder-start,.recorder-stop,.recorder-ready button{border:1px solid var(--line-strong);border-radius:var(--radius);background:0 0;height:30px;padding:0 10px;font-size:13px}.recorder-start:hover:not(:disabled),.recorder-ready button:hover{border-color:var(--ink)}.recorder-stop{border-color:var(--accent);color:var(--accent)}.recorder-ready{gap:8px;width:100%;display:grid}.recorder-ready video{border-radius:var(--radius);background:#000;width:100%}.recorder-ready>div{gap:8px;display:flex}.recorder-error{width:100%;color:var(--accent);margin:0;font-size:13px}.takeback-banner{font-size:14px;overflow:hidden}.takeback-banner>div:first-child{padding:14px 20px 0}.takeback-banner>div:first-child:last-child{color:var(--muted);padding-bottom:14px}.takeback-banner.incoming{background:color-mix(in srgb, var(--warn) 9%, var(--surface))}.takeback-banner strong{font-weight:500}.takeback-actions{gap:8px;padding:12px 20px 14px;display:flex}.takeback-actions button{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);height:32px;padding:0 14px;font-size:13px}.takeback-actions button.accept{border-color:var(--ink);background:var(--ink);color:var(--bg)}.coach-heading{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.coach-heading>span{font-weight:500}.grade-badge{font-size:14px;font-weight:500}.grade-best .grade-badge,.grade-excellent .grade-badge{color:var(--good)}.grade-good .grade-badge{color:var(--fine)}.grade-inaccuracy .grade-badge{color:var(--warn)}.grade-mistake .grade-badge{color:var(--bad)}.grade-blunder .grade-badge{color:var(--worst)}.coach-empty,.coach-loading{color:var(--muted);margin:8px 0 0;font-size:14px}.coach-lesson{margin-top:10px;font-size:14px}.coach-lesson>p{color:var(--ink-2);margin:10px 0 0;line-height:1.55}.coach-moves{grid-template-columns:1fr 1fr;gap:12px;display:grid}.coach-moves>span{color:var(--muted);flex-direction:column;font-size:12px;display:flex}.coach-moves strong{color:var(--ink);font-family:var(--mono);font-size:16px;font-weight:500}.coach-moves small{font-size:12px;line-height:1.35}.coach-note strong{color:var(--ink);font-weight:500}.coach-line{margin-top:12px}.coach-line>span{color:var(--muted);font-size:12px}.coach-line>div{gap:2px;margin-top:4px;display:grid}.coach-line-move{grid-template-columns:52px 1fr;gap:8px;font-size:13px;display:grid}.coach-line-move code{font-family:var(--mono)}.coach-line-move small{color:var(--muted);font-size:12px}.move-heading{justify-content:space-between;padding:16px 20px 6px;font-weight:500;display:flex}.move-heading span:last-child{color:var(--muted);font-weight:400}.move-list{scrollbar-width:thin;max-height:220px;padding:0 12px 14px;overflow-y:auto}.move-row{font-family:var(--mono);grid-template-columns:34px 1fr 1fr;padding:3px 8px;font-size:14px;display:grid}.move-row>span{color:var(--muted)}.move-row strong{font-weight:400}.move-row.latest{background:color-mix(in srgb, var(--ink) 5%, transparent);border-radius:4px}.empty-moves{color:var(--muted);margin:0;padding:4px 20px 16px;font-size:14px}.analysis-block{color:var(--ink-2);font-size:14px;line-height:1.6}.analysis-title{color:var(--ink);margin:0;font-size:15px;font-weight:500}.analysis-block p{margin:8px 0 0}.analysis-summary{color:var(--ink)}.player-review{margin-top:12px}.player-review strong,.key-moments strong{color:var(--ink);font-weight:500}.player-review p{margin-top:2px}.key-moments{margin-top:12px}.key-moments ul{margin:4px 0 0;padding-left:18px}.analysis-failed{color:var(--accent)}.analysis-loading p{color:var(--muted)}.record-actions{gap:16px;font-size:13px;display:flex}.panel-actions{gap:8px;display:grid}.panel-actions .primary-button{margin-top:0}.panel-error{margin:0;padding:0 20px 16px;border-top:0!important}.dialog-backdrop,.history-backdrop{z-index:50;background:#14120f59;position:fixed;inset:0}.dialog-backdrop{place-items:center;padding:20px;display:grid}.confirm-dialog{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);width:min(380px,100%);padding:24px}.confirm-dialog h2{font-family:var(--serif);margin:0 0 6px;font-size:22px}.confirm-dialog p{color:var(--ink-2);margin:0 0 20px;font-size:14px}.dialog-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.dialog-actions .primary-button{margin-top:0}.primary-button.danger-confirm{border-color:var(--accent);background:var(--accent);color:#fff}.history-backdrop{justify-content:flex-end;display:flex}.history-drawer{border-left:1px solid var(--line-strong);background:var(--bg);flex-direction:column;width:min(560px,100%);height:100%;display:flex}.history-drawer>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;padding:22px 24px 16px;display:flex}.history-drawer h2{font-family:var(--serif);margin:0;font-size:24px}.history-drawer header p{color:var(--muted);margin:2px 0 0;font-size:13px}.history-list{flex:1;padding:8px 24px 24px;overflow-y:auto}.history-state{color:var(--muted);text-align:center;padding:60px 0}.history-state p{color:var(--ink-2);margin:0 0 4px}.match-card{border-bottom:1px solid var(--line)}.match-card summary{cursor:pointer;grid-template-columns:22px minmax(0,1fr) auto;align-items:baseline;gap:12px;padding:14px 0;list-style:none;display:grid}.match-card summary::-webkit-details-marker{display:none}.match-outcome{font-family:var(--mono);font-weight:500}.match-outcome.win{color:var(--good)}.match-outcome.loss{color:var(--worst)}.match-outcome.draw,.match-outcome.evaluation{color:var(--muted)}.match-summary-copy{flex-direction:column;min-width:0;display:flex}.match-summary-copy strong{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.match-summary-copy strong span{color:var(--muted);font-weight:400}.match-summary-copy>span,.match-card time{color:var(--muted);font-size:13px}.match-details{grid-template-columns:repeat(4,1fr);gap:10px;padding:0 0 16px 34px;font-size:13px;display:grid}.match-details>div{flex-direction:column;display:flex}.match-details>div span{color:var(--muted)}.match-details>div strong{text-transform:capitalize;font-weight:500}.match-details p{color:var(--ink-2);font-family:var(--mono);grid-column:1/-1;margin:0;font-size:13px;line-height:1.7}.match-details button{grid-column:1/-1;justify-self:start}@keyframes blink{50%{opacity:.3}}@keyframes fade-in{0%{opacity:0}}@media (width<=1000px){.game-layout{grid-template-columns:1fr}.board-column{width:min(100%,680px)}.game-panel{justify-self:center;width:min(100%,680px);max-height:none;position:static}}@media (width<=860px){.split-layout{grid-template-columns:1fr;gap:40px;padding:24px 20px 48px}.card{max-width:460px}.featured-position{max-width:300px;margin-top:32px}}@media (width<=560px){.site-header{padding:16px}.account-name{display:none}.game-layout{padding:4px 16px 32px}.board-column{min-width:0}.card{padding:22px 18px}.agent-selector{grid-template-columns:1fr 1fr}.agent-selector>strong{grid-column:1/-1;height:auto}.match-details{grid-template-columns:1fr 1fr;padding-left:0}.match-card summary{grid-template-columns:22px minmax(0,1fr)}.match-card time{grid-column:2}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
