.app-shell{position:relative;min-height:100vh;max-width:1540px;margin:0 auto;padding:clamp(1rem,2.4vw,2rem);overflow-x:clip;overflow-y:visible;isolation:isolate;color:var(--text-primary);--app-background: radial-gradient(circle at top left, rgba(214, 168, 91, .2), transparent 28%), radial-gradient(circle at bottom right, rgba(81, 146, 203, .14), transparent 24%), linear-gradient(160deg, #161116 0%, #101720 50%, #1b242f 100%);--surface-bg: rgba(16, 20, 28, .72);--surface-soft: rgba(255, 255, 255, .05);--surface-subtle: rgba(255, 255, 255, .035);--surface-strong: rgba(9, 12, 18, .5);--surface-border: rgba(244, 228, 201, .1);--surface-border-strong: rgba(244, 228, 201, .14);--text-primary: #f7efe2;--text-secondary: rgba(247, 239, 226, .8);--text-muted: rgba(247, 239, 226, .62);--text-dim: rgba(247, 239, 226, .54);--board-light: #f0dec2;--board-dark: #875a3b;--board-frame: rgba(198, 145, 69, .56);--board-highlight: rgba(72, 195, 255, .78);--board-last-move: rgba(255, 211, 102, .5);--board-target: rgba(55, 173, 235, .74);--board-glow: rgba(214, 168, 91, .22);--theme-accent: #d6a85b;--theme-panel: linear-gradient(160deg, rgba(214, 168, 91, .22), rgba(78, 54, 28, .08));--hero-badge-bg: linear-gradient(160deg, rgba(214, 168, 91, .24), rgba(55, 121, 189, .14));--button-hover-border: rgba(214, 168, 91, .54);--button-active-bg: linear-gradient(160deg, rgba(214, 168, 91, .28), rgba(65, 155, 225, .12));--button-active-border: rgba(214, 168, 91, .68);--primary-bg: linear-gradient(150deg, #d6a85b 0%, #9a6b27 100%);--primary-text: #141821;--focus-border: rgba(72, 195, 255, .72);--focus-ring: rgba(72, 195, 255, .16);--danger-border: rgba(255, 112, 112, .28);--danger-text: #ffb2b2;--chat-own-bg: rgba(214, 168, 91, .14);--chat-own-border: rgba(214, 168, 91, .2);--fullscreen-bg: #090d13}.app-shell:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:var(--app-background)}.hero,.board-panel,.card,.history-panel{background:var(--surface-bg);border:1px solid var(--surface-border);box-shadow:0 22px 50px #0000003d;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.hero{position:relative;z-index:1;display:flex;justify-content:space-between;gap:2rem;align-items:flex-end;padding:1.8rem;border-radius:1.8rem;margin-bottom:1.35rem}.hero-actions{display:flex;align-items:flex-start;gap:.85rem}.eyebrow,.toolbar-label,.panel-head span,.field span,.room-line span{text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;color:var(--text-muted)}.hero-copy h1{margin:.45rem 0 .75rem;font-size:clamp(2.5rem,5vw,4.2rem);line-height:.95;letter-spacing:-.06em}.hero-copy p{margin:0;max-width:44rem;color:var(--text-secondary);font-size:1.02rem}.hero-copy-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.2rem}.hero-hub-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-weight:700}.hero-badge{display:flex;flex-direction:column;gap:.45rem;min-width:11rem;padding:1rem 1.15rem;border-radius:1.2rem;background:var(--hero-badge-bg)}.hero-badge strong{font-size:1.25rem}.desktop-only{display:block}.mobile-only{display:none}.arena-layout{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr);gap:1.35rem;align-items:start}.board-panel{border-radius:1.8rem;padding:1.35rem}.board-toolbar{display:grid;grid-template-columns:minmax(0,2fr) repeat(2,minmax(7rem,1fr));gap:.9rem;width:min(100%,calc(980px + 1.2rem));margin:0 auto 1rem}.board-toolbar strong{display:block;margin-top:.35rem;font-size:1rem;line-height:1.3;overflow-wrap:anywhere}.board-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.hint-strip{display:flex;align-items:center;justify-content:space-between;gap:.9rem;width:min(100%,calc(980px + 1.2rem));margin:0 auto 1rem;padding:.9rem 1rem;border-radius:1.2rem;border:1px solid var(--surface-border);background:var(--surface-subtle)}.hint-copy{min-width:0}.hint-copy span{display:block;margin-bottom:.25rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.14em;font-size:.7rem}.hint-copy strong{display:block;color:var(--text-primary);overflow-wrap:anywhere}.hint-btn{white-space:nowrap}.board-quick-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.75rem;width:min(100%,calc(980px + 1.2rem));margin:0 auto 1rem}.board-quick-actions-3d{width:min(100%,92vw)}.board-quick-actions .board-action-btn{min-width:10.5rem}.board-quick-actions .board-new-game-btn{width:auto;min-width:11rem}.board-action-btn.active,.secondary-btn.active{border-color:var(--theme-accent);background:var(--theme-panel)}.theme-strip{margin-bottom:1rem;padding:1rem;border-radius:1.3rem;border:1px solid var(--surface-border);background:var(--surface-subtle)}.panel-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.9rem}.panel-head.compact{margin-bottom:.8rem}.panel-head h2{margin:0;font-size:1rem}.history-head{display:flex;flex-direction:column;gap:.25rem}.theme-swatch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:1.9rem;aspect-ratio:1;overflow:hidden;border-radius:999px;border:1px solid var(--surface-border-strong);flex:none}.theme-swatch-light{background:var(--theme-chip-light)}.theme-swatch-dark{background:var(--theme-chip-dark)}.theme-select-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.75rem;align-items:center}.theme-preview{width:2.45rem}.board-content{display:grid;grid-template-columns:minmax(0,1fr);gap:1.2rem;align-items:start;width:min(100%,calc(980px + 1.2rem));margin:0 auto}.board-content-3d{width:min(100%,92vw)}.board-stage{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;min-width:0}.board-viewport{position:relative;display:flex;justify-content:center;width:100%}.fullscreen-board-layout{display:flex;justify-content:center;align-items:center;width:100%;min-width:0}.board-viewport:fullscreen{isolation:isolate;display:grid;place-items:center;width:100vw;height:100vh;padding:1rem;overflow:hidden;background:var(--fullscreen-bg)}.board-viewport:fullscreen:before{content:"";position:fixed;inset:0;z-index:0;background:inherit;pointer-events:none}.board-viewport-3d:fullscreen{background:var(--app-background)}.board-viewport-3d:fullscreen::backdrop{background:var(--app-background)}.board-viewport:fullscreen .fullscreen-board-layout{--fullscreen-side-width: clamp(14rem, 18vw, 18.5rem);position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,auto);gap:1rem;align-items:center;justify-content:center;width:100%;height:100%;padding-top:3.35rem;box-sizing:border-box}.board-viewport:fullscreen .fullscreen-board-layout.has-fullscreen-side-panel{grid-template-columns:minmax(0,auto) var(--fullscreen-side-width)}.board-viewport:fullscreen .board-wrap{width:min(calc(100vh - 2rem),calc(100vw - 2rem))}.board-viewport:fullscreen .board-wrap-3d{width:min(calc(100vw - 2rem),calc((100vh - 2rem)*1.4))}.board-viewport-3d:fullscreen .fullscreen-board-layout{padding-top:0}.board-viewport-3d:fullscreen .chess-board-3d{border-radius:0;box-shadow:none}.board-viewport:fullscreen .fullscreen-board-layout.has-fullscreen-side-panel .board-wrap{width:min(calc(100vh - 5.35rem),calc(100vw - var(--fullscreen-side-width) - 3rem))}.board-viewport:fullscreen .fullscreen-board-layout.has-fullscreen-side-panel .board-wrap-3d{width:min(calc(100vw - var(--fullscreen-side-width) - 3rem),calc((100vh - 5.35rem)*1.4))}.fullscreen-exit-btn{position:absolute;top:max(.75rem,env(safe-area-inset-top));right:max(.75rem,env(safe-area-inset-right));z-index:4;padding:.8rem 1rem;color:var(--text-primary);background:var(--surface-strong);border-color:var(--surface-border-strong);box-shadow:0 12px 28px #0000002e;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.board-room-clock-card{display:grid;width:min(100%,700px);margin:0;color:var(--text-primary);background:color-mix(in srgb,var(--surface-strong) 86%,transparent);border-color:var(--surface-border-strong);box-shadow:0 14px 34px #0000003d;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.board-room-clock-card .room-clock-head{display:none}.board-room-clock-card .room-clocks{grid-template-columns:repeat(2,minmax(0,1fr))}.board-room-clock-card .room-clock{padding:.5rem .62rem}.board-room-clock-card .room-clock strong{font-size:.98rem}.fullscreen-room-clock-card{margin:0;border-color:var(--surface-border-strong);background:var(--surface-strong)}.fullscreen-room-clock-card .room-clock-head{display:flex}.fullscreen-room-clock-card .room-clocks{grid-template-columns:minmax(0,1fr);gap:.5rem}.fullscreen-room-clock-card .room-clock{padding:.62rem .72rem}.fullscreen-room-clock-card .room-clock strong{font-size:1.05rem}.fullscreen-side-panel{display:grid;gap:.9rem;width:100%;max-height:min(100%,46rem);align-self:center;overflow:auto;padding:.9rem;border-radius:1.15rem;border:1px solid var(--surface-border-strong);color:var(--text-primary);background:var(--surface-bg);box-shadow:0 18px 42px #00000047;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.fullscreen-tool-card{display:grid;gap:.8rem;padding:.9rem;border-radius:1rem;border:1px solid var(--surface-border-strong);color:var(--text-primary);background:var(--surface-strong)}.fullscreen-eval-body{display:grid;grid-template-columns:3rem minmax(0,1fr);gap:.8rem;align-items:stretch;min-height:13.5rem}.fullscreen-eval-card .position-eval{height:13.5rem;padding-block:0}.fullscreen-eval-meta{display:grid;align-content:center;gap:.45rem;min-width:0}.fullscreen-eval-meta strong{color:var(--text-primary);font-size:1.7rem;line-height:1}.fullscreen-eval-meta span{color:var(--text-muted);line-height:1.35;overflow-wrap:anywhere}.fullscreen-review-controls{grid-template-columns:repeat(4,minmax(0,1fr))}.fullscreen-review-controls .secondary-btn{order:1;min-width:0;padding-inline:.5rem}.fullscreen-review-controls .review-slider{order:2;grid-column:1 / -1}.board-wrap{--board-index-size: 20px;--board-index-gap: .65rem;--board-border-size: 10px;position:relative;display:flex;flex-direction:column;gap:.65rem;width:min(100%,700px)}.board-wrap-3d{width:min(100%,92vw)}.chess-board-3d{position:relative;width:100%;aspect-ratio:7 / 5;min-height:22rem;overflow:hidden;border-radius:1.25rem;background:transparent;box-shadow:0 24px 48px #0000003d,0 0 0 1px var(--surface-border-strong);touch-action:none}.chess-board-3d-canvas{position:absolute;inset:0;opacity:1;transition:opacity .28s ease}.chess-board-3d.loading .chess-board-3d-canvas{opacity:0}.chess-board-3d canvas{display:block;width:100%;height:100%}.chess-board-3d-loading{display:grid;place-items:center;color:var(--text-secondary);font-weight:800}.chess-board-3d-load-overlay{position:absolute;inset:0;z-index:4;display:grid;place-items:center;align-content:center;gap:.55rem;padding:1.25rem;color:var(--text-primary);text-align:center;background:transparent}.chess-board-3d-load-overlay strong{font-size:clamp(1rem,2.4vw,1.3rem);line-height:1.2}.chess-board-3d-load-overlay span:not(.chess-board-3d-loader){color:var(--text-muted);font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.chess-board-3d-loader{width:2.45rem;aspect-ratio:1;border-radius:999px;border:3px solid color-mix(in srgb,var(--text-primary) 20%,transparent);border-top-color:var(--theme-accent);box-shadow:0 0 22px color-mix(in srgb,var(--theme-accent) 34%,transparent);animation:chess-board-3d-loader .82s linear infinite}.chess-board-3d-model-status{position:absolute;left:50%;bottom:1rem;z-index:3;transform:translate(-50%);padding:.55rem .75rem;border-radius:999px;color:var(--text-secondary);background:var(--surface-strong);border:1px solid var(--surface-border-strong);font-size:.78rem;font-weight:800;pointer-events:none;box-shadow:0 10px 26px #0000002e}.chess-board-3d-model-status.error{color:var(--danger-text)}@keyframes chess-board-3d-loader{to{transform:rotate(1turn)}}.chess-board-3d-access-grid{position:absolute;inset:12% 14% 14%;z-index:2;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));pointer-events:none}.chess-board-3d-access-square{min-width:0;min-height:0;border:0;border-radius:.35rem;opacity:0;pointer-events:none;background:transparent}.chess-board-3d-access-square:focus-visible{opacity:1;outline:3px solid var(--focus-border);outline-offset:-3px;background:var(--focus-ring);box-shadow:inset 0 0 0 2px var(--button-active-border)}.chess-board-3d-access-square.selected:focus-visible,.chess-board-3d-access-square.target:focus-visible{background:color-mix(in srgb,var(--focus-ring) 72%,var(--board-target))}.board-victory-3d{inset:0;border:0}.board-frame{position:relative;display:grid;grid-template-columns:var(--board-index-size) minmax(0,1fr);gap:var(--board-index-gap);align-items:stretch}.board-frame.with-eval{grid-template-columns:2.15rem var(--board-index-size) minmax(0,1fr)}.rank-labels,.file-labels{display:grid;align-items:center;justify-items:center;color:var(--text-dim);font-weight:700}.rank-labels{grid-template-rows:repeat(8,minmax(0,1fr));padding-block:var(--board-border-size)}.file-labels{grid-template-columns:repeat(8,minmax(0,1fr));padding-left:calc(var(--board-index-size) + var(--board-index-gap) + var(--board-border-size));padding-right:var(--board-border-size)}.board-wrap.analysis-board .file-labels{padding-left:calc(2.15rem + var(--board-index-gap) + var(--board-index-size) + var(--board-index-gap) + var(--board-border-size))}.board-grid{position:relative;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);width:100%;height:100%;border-radius:1.15rem;overflow:hidden;aspect-ratio:1;border:var(--board-border-size) solid var(--board-frame);background:var(--surface-strong);box-shadow:0 22px 40px #00000047,0 0 0 1px var(--surface-soft),0 0 44px var(--board-glow)}.board-drawing-layer{position:absolute;inset:0;z-index:3;width:100%;height:100%;pointer-events:none;overflow:visible;color:#e11919;filter:drop-shadow(0 2px 3px rgba(0,0,0,.32))}.board-drawing{stroke:currentColor;stroke-linecap:butt;stroke-linejoin:round}.board-drawing-line{fill:none;stroke-width:.035}.board-drawing-arrowhead{fill:currentColor;stroke:none}.position-eval{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:.32rem;align-items:stretch;min-width:0;padding-block:var(--board-border-size)}.position-eval-score,.position-eval-side{display:block;color:var(--text-dim);font-size:.68rem;font-weight:800;line-height:1;text-align:center}.position-eval-score{color:var(--text-primary);overflow-wrap:anywhere}.position-eval-track{position:relative;min-height:0;overflow:hidden;border-radius:.45rem;border:1px solid var(--surface-border-strong);background:#111}.position-eval-white,.position-eval-black{position:absolute;left:0;right:0}.position-eval-white{top:0;height:var(--white-share);background:#f4f0e7}.position-eval-black{bottom:0;height:calc(100% - var(--white-share));background:#171717}.board-wrap.celebrating .board-grid,.board-wrap.celebrating .chess-board-3d{animation:board-victory-pop .72s ease}.board-victory{position:absolute;inset:0 0 0 calc(var(--board-index-size) + var(--board-index-gap));z-index:2;display:grid;place-items:center;overflow:hidden;border-radius:1.15rem;border:var(--board-border-size) solid transparent;background:radial-gradient(circle at center,var(--focus-ring) 0%,transparent 56%),linear-gradient(180deg,#0a0e150f,#0a0e1557),var(--theme-panel);box-shadow:inset 0 0 0 1px var(--surface-border),inset 0 0 0 2px var(--button-active-border),0 0 34px #0000002e;pointer-events:none;animation:board-victory-overlay 2.1s ease forwards}.board-victory-rays{position:absolute;inset:-22%;opacity:.42;background:conic-gradient(from 8deg,transparent 0 8deg,rgba(255,255,255,.24) 8deg 12deg,transparent 12deg 28deg);filter:blur(.4px);animation:board-victory-rays 2.1s ease-out forwards}.board-victory:before,.board-victory:after{content:"";position:absolute;inset:0}.board-victory:before{background:linear-gradient(112deg,transparent 22%,rgba(255,255,255,.28) 50%,transparent 76%);transform:translate(-130%);animation:board-victory-sweep 1.1s ease .14s forwards}.board-victory:after{inset:18%;border-radius:50%;border:1px solid var(--button-active-border);background:radial-gradient(circle,rgba(255,255,255,.12) 0%,transparent 68%);filter:blur(1px);animation:board-victory-ring 1.2s ease-out .08s both}.board-victory-emblem{position:absolute;top:max(1.1rem,8%);left:50%;z-index:1;display:grid;place-items:center;width:clamp(3.2rem,10vw,4.8rem);aspect-ratio:1;transform:translate(-50%);border-radius:999px;border:1px solid rgba(255,255,255,.2);background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.38),transparent 34%),linear-gradient(150deg,var(--theme-accent),rgba(255,255,255,.16));box-shadow:0 0 32px color-mix(in srgb,var(--theme-accent) 48%,transparent),inset 0 0 0 1px #ffffff2e;animation:board-victory-emblem 1.1s cubic-bezier(.2,.86,.2,1.1) both}.board-victory-emblem svg{width:58%;height:58%;fill:none;stroke:var(--primary-text);stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 8px 14px rgba(0,0,0,.2))}.board-victory-copy{position:relative;z-index:1;display:grid;gap:.3rem;padding:4.2rem 1.4rem 1.2rem;text-align:center}.board-victory-copy span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.18em;font-size:.72rem}.board-victory-copy strong{font-size:clamp(1.8rem,4vw,2.7rem);line-height:.96;letter-spacing:-.04em;color:var(--text-primary);text-shadow:0 10px 22px rgba(0,0,0,.28)}.board-victory-copy p{margin:0;color:var(--text-secondary);font-size:.95rem}.board-victory-particles{position:absolute;inset:0}.board-victory-particle{position:absolute;left:var(--particle-x);top:var(--particle-y);width:var(--particle-size);height:var(--particle-size);border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.92),var(--theme-accent));box-shadow:0 0 14px #ffffff4d;opacity:0;animation:board-victory-particle var(--particle-duration) ease-out var(--particle-delay) forwards}.board-victory-confetti{position:absolute;inset:0}.board-victory-confetto{position:absolute;left:var(--confetti-x);top:var(--confetti-y);width:.28rem;height:.66rem;border-radius:999px;background:var(--confetti-color);opacity:0;box-shadow:0 0 10px #ffffff38;transform:rotate(var(--confetti-rotation));animation:board-victory-confetto 1.35s ease-out var(--confetti-delay) forwards}.board-victory-confetto.square{width:.42rem;height:.42rem;border-radius:.12rem}@keyframes board-victory-pop{0%{transform:scale(1)}35%{transform:scale(1.014)}to{transform:scale(1)}}@keyframes board-victory-overlay{0%{opacity:0;transform:scale(.985)}12%,72%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.01)}}@keyframes board-victory-rays{0%{opacity:0;transform:rotate(0) scale(.9)}20%{opacity:.42}to{opacity:0;transform:rotate(32deg) scale(1.06)}}@keyframes board-victory-sweep{0%{transform:translate(-130%)}to{transform:translate(130%)}}@keyframes board-victory-ring{0%{opacity:0;transform:scale(.8)}40%{opacity:1}to{opacity:0;transform:scale(1.12)}}@keyframes board-victory-emblem{0%{opacity:0;transform:translate(-50%) translateY(10px) scale(.62)}55%{opacity:1;transform:translate(-50%) translateY(0) scale(1.08)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@keyframes board-victory-particle{0%{opacity:0;transform:translateZ(0) scale(.7)}22%{opacity:1}to{opacity:0;transform:translate3d(0,-18px,0) scale(1.05)}}@keyframes board-victory-confetto{0%{opacity:0;transform:translate3d(0,8px,0) rotate(var(--confetti-rotation)) scale(.75)}18%{opacity:1}to{opacity:0;transform:translate3d(var(--confetti-drift),-34px,0) rotate(calc(var(--confetti-rotation) + 120deg)) scale(1)}}.square{position:relative;border:none;display:grid;place-items:center;width:100%;height:100%;min-width:0;min-height:0;padding:0;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.square:hover{transform:translateY(-1px);z-index:1}.square.light{background:linear-gradient(160deg,#ffffff29,#ffffff05),var(--board-light)}.square.dark{background:linear-gradient(160deg,#ffffff0f,#00000029),var(--board-dark)}.square.selected{box-shadow:inset 0 0 0 4px var(--board-highlight)}.square.last-move{box-shadow:inset 0 0 0 4px var(--board-last-move)}.square.target:after{content:"";position:absolute;inset:16%;border-radius:50%;border:3px solid var(--board-target)}.piece{display:flex;align-items:center;justify-content:center;width:68%;aspect-ratio:1;pointer-events:none;-webkit-user-select:none;user-select:none}.piece-image{width:100%;height:100%;object-fit:contain}.target-dot{width:18%;height:18%;border-radius:50%;background:var(--board-target);opacity:.35}.history-panel{margin-top:0;border-radius:1.35rem;padding:1rem}.stockfish-panel{display:grid;gap:.8rem;margin-bottom:1rem;padding:.85rem;border-radius:1.1rem;border:1px solid var(--surface-border);background:var(--surface-subtle)}.stockfish-panel-image{width:100%;border-radius:.95rem;display:block;object-fit:cover;box-shadow:0 14px 26px #0000002e}.stockfish-panel-copy span{display:block;margin-bottom:.28rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.14em;font-size:.7rem}.stockfish-panel-copy strong{display:block;color:var(--text-primary);font-size:1rem}.export-btn{white-space:nowrap}.history-empty{margin-top:1rem}.empty-state{padding:1rem;border-radius:1rem;color:var(--text-muted);background:var(--surface-soft)}.analysis-error{color:var(--danger-text)}.review-section{display:grid;gap:.9rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--surface-border)}.review-controls{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto auto;gap:.65rem;align-items:center}.review-slider{width:100%;accent-color:var(--theme-accent)}.review-progress{display:flex;justify-content:space-between;gap:1rem;color:var(--text-muted);font-size:.88rem}.review-progress strong{color:var(--text-primary)}.analysis-actions{display:grid;gap:.65rem}.analysis-copy{margin:0;color:var(--text-secondary);line-height:1.45}.review-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}.review-chip{padding:.85rem;border-radius:1rem;border:1px solid var(--surface-border);background:var(--surface-soft)}.review-chip span,.review-chip strong{display:block}.review-chip span{color:var(--text-muted);margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem}.analysis-table-wrap{overflow:auto;border-radius:1rem;border:1px solid var(--surface-border);background:var(--surface-subtle)}.analysis-table{width:100%;min-width:860px;border-collapse:collapse;background:var(--surface-strong)}.analysis-table-compact{min-width:0;table-layout:fixed;font-size:.8rem}.analysis-table th,.analysis-table td{padding:.6rem .55rem;vertical-align:top;text-align:left;border-bottom:1px solid var(--surface-border)}.analysis-table th{position:sticky;top:0;z-index:1;background:linear-gradient(180deg,var(--surface-bg) 0%,var(--surface-strong) 100%);color:var(--text-muted);text-transform:uppercase;letter-spacing:.12em;font-size:.72rem}.analysis-table tbody tr.active{background:var(--theme-panel)}.analysis-table tbody tr:hover{background:var(--surface-subtle)}.analysis-jump-btn{border:1px solid transparent;border-radius:999px;padding:.32rem .55rem;color:var(--text-primary);background:var(--surface-soft);cursor:pointer;font-size:.78rem}.analysis-jump-btn:hover{border-color:var(--button-hover-border);background:var(--theme-panel)}.analysis-pick{display:grid;gap:.18rem}.analysis-pick strong{color:var(--text-primary);display:block;overflow-wrap:anywhere}.analysis-pick span,.analysis-empty{color:var(--text-secondary);overflow-wrap:anywhere}.analysis-lines{display:grid;gap:.5rem}.analysis-line{display:grid;gap:.15rem}.analysis-line strong{color:var(--text-primary)}.analysis-line span{color:var(--text-secondary);line-height:1.4}.review-badge{display:inline-flex;align-items:center;justify-content:center;min-height:1.85rem;max-width:100%;padding:.3rem .6rem;border-radius:999px;border:1px solid var(--surface-border);background:var(--surface-soft);color:var(--text-primary);white-space:nowrap;font-size:.82rem;line-height:1.1}.review-badge.best{border-color:var(--button-active-border);background:var(--button-active-bg)}.review-badge.second{border-color:var(--focus-border);background:var(--focus-ring)}.review-badge.third{border-color:var(--surface-border-strong);background:var(--hero-badge-bg)}.review-badge.outside{border-color:var(--danger-border);background:#ff787814}.analysis-modal{position:fixed;inset:0;z-index:20;padding:1rem;pointer-events:none}.analysis-modal-card{position:absolute;top:1rem;right:1rem;width:min(480px,calc(100vw - 2rem));height:min(36rem,calc(100vh - 2rem));display:flex;flex-direction:column;overflow:hidden;border-radius:1.15rem;border:1px solid var(--surface-border);background:linear-gradient(180deg,var(--theme-panel) 0%,var(--surface-bg) 22%,var(--surface-strong) 100%);box-shadow:0 18px 44px #00000047;padding:.8rem;pointer-events:auto}.analysis-modal-header{cursor:grab;-webkit-user-select:none;user-select:none;gap:.8rem;margin-bottom:.75rem;touch-action:none}.analysis-modal-header:active{cursor:grabbing}.analysis-table-modal-wrap{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.analysis-modal-header h2{font-size:1rem}.analysis-modal-header span{font-size:.76rem}.settings-menu-btn{flex:none;min-width:9.5rem}.settings-menu-overlay{position:fixed;inset:0;z-index:35;display:block;border:none;background:#05080c70;cursor:pointer}.control-panel{position:fixed;top:0;right:0;bottom:0;z-index:40;display:flex;flex-direction:column;width:min(460px,calc(100vw - 1.2rem));height:100dvh;padding:1rem;overflow:hidden;background:linear-gradient(180deg,var(--theme-panel) 0%,var(--surface-bg) 24%,var(--surface-strong) 100%);border-left:1px solid var(--surface-border);box-shadow:-24px 0 44px #00000057;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);transform:translate(calc(100% + 1rem));transition:transform .22s ease;isolation:isolate;pointer-events:auto}.control-panel.settings-open{transform:translate(0)}.control-panel-scroll{display:flex;flex-direction:column;gap:1rem;position:relative;z-index:1;height:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding-bottom:calc(1rem + env(safe-area-inset-bottom))}.drawer-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.8rem}.drawer-close{white-space:nowrap}.control-panel .card{background:var(--surface-strong);-webkit-backdrop-filter:none;backdrop-filter:none}.settings-board-actions{margin-bottom:.85rem}.card{border-radius:1.6rem;padding:1.2rem}.segmented{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}.mode-segmented{grid-template-columns:repeat(2,minmax(0,1fr))}.segmented.compact{grid-template-columns:repeat(2,minmax(0,1fr));max-width:14rem}.mode-copy{margin:1rem 0 1.1rem;color:var(--text-secondary);line-height:1.5}.segmented-btn,.secondary-btn,.primary-btn{border:1px solid var(--surface-border-strong);border-radius:1rem;color:var(--text-primary);background:var(--surface-soft);transition:transform .18s ease,border-color .18s ease,background .18s ease;cursor:pointer}.segmented-btn:hover,.secondary-btn:hover,.primary-btn:hover{transform:translateY(-1px);border-color:var(--button-hover-border)}.segmented-btn.active{background:var(--button-active-bg);border-color:var(--button-active-border)}.segmented-btn,.secondary-btn{padding:.8rem 1rem}.online-time-controls .segmented-btn{display:grid;gap:.2rem;align-content:center;min-height:4.4rem;text-align:left}.online-time-controls .segmented-btn strong{font-size:.95rem;line-height:1.15}.online-time-controls .segmented-btn span{color:var(--text-muted);font-size:.68rem;font-weight:800;letter-spacing:.08em;line-height:1.2;text-transform:uppercase}.primary-btn{width:100%;padding:.95rem 1.1rem;background:var(--primary-bg);color:var(--primary-text);font-weight:800}.secondary-btn.danger{border-color:var(--danger-border);color:var(--danger-text)}.secondary-btn.wide{width:100%}.disconnect-btn{margin-top:1rem}.field{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.95rem}.field input,.settings-select{width:100%;padding:.9rem 1rem;border-radius:1rem;border:1px solid var(--surface-border-strong);background:var(--surface-strong);color:var(--text-primary);outline:none}.settings-select{min-height:3rem;cursor:pointer}.field input:focus,.settings-select:focus{border-color:var(--focus-border);box-shadow:0 0 0 4px var(--focus-ring)}.settings-select:hover{border-color:var(--button-hover-border)}.inline-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem}.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.theme-field,.difficulty-field{margin-bottom:1rem}.field-meta{margin:-.1rem 0 0;color:var(--text-secondary);font-size:.9rem;line-height:1.35}.drawing-help-copy{margin:0 0 .85rem;color:var(--text-secondary);font-size:.92rem;line-height:1.45}.field-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:1.1rem 0}.piece-style-row{margin:0;align-items:flex-start}.piece-style-row>span{color:var(--text-secondary);line-height:1.4}.room-card{margin-top:1rem;padding:1rem;border-radius:1.2rem;background:var(--surface-soft);border:1px solid var(--surface-border)}.room-clock-card{display:grid;gap:.75rem;margin-top:.85rem;padding:.85rem;border-radius:1rem;border:1px solid var(--surface-border-strong);background:var(--surface-strong)}.room-clock-head,.room-clock{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.room-clock-head span,.room-clock span{min-width:0;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;font-size:.62rem}.room-clock-head strong{color:var(--text-secondary);font-size:.78rem}.room-clocks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.room-clock{min-width:0;overflow:hidden;padding:.78rem .85rem;border-radius:.85rem;border:1px solid var(--surface-border);background:var(--surface-soft)}.room-clock.active{border-color:var(--button-active-border);background:var(--button-active-bg);box-shadow:inset 0 0 0 1px var(--focus-ring)}.room-clock.expired{border-color:var(--danger-border)}.room-clock strong{min-width:0;font-variant-numeric:tabular-nums;font-size:1.12rem;line-height:1;overflow-wrap:normal;text-align:right;white-space:nowrap}.chat-card{display:flex;flex-direction:column;gap:.85rem}.chat-list{display:flex;flex-direction:column;gap:.65rem;max-height:16rem;overflow:auto;padding-right:.15rem}.chat-message{padding:.7rem .8rem;border-radius:1rem;background:var(--surface-soft)}.chat-message.own{background:var(--chat-own-bg);border:1px solid var(--chat-own-border)}.chat-meta{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.35rem}.chat-meta strong{font-size:.92rem}.chat-meta span{color:var(--text-dim);font-size:.76rem;text-transform:uppercase;letter-spacing:.12em}.chat-message p{margin:0;color:var(--text-secondary);line-height:1.4;word-break:break-word}.chat-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.7rem}.chat-form input{width:100%;padding:.9rem 1rem;border-radius:1rem;border:1px solid var(--surface-border-strong);background:var(--surface-strong);color:var(--text-primary);outline:none}.chat-form input:focus{border-color:var(--focus-border);box-shadow:0 0 0 4px var(--focus-ring)}.room-line{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.8rem}.room-line strong{text-align:right}.message-card p{margin:0;color:var(--text-secondary);line-height:1.5}.message-card.error p{color:var(--danger-text)}button:disabled{opacity:.58;cursor:not-allowed;transform:none}@media(min-width:1500px){.board-content{grid-template-columns:minmax(0,700px) minmax(220px,280px);justify-content:center}.board-content-3d{grid-template-columns:minmax(0,1fr)}.history-panel{min-height:100%}}@media(max-width:1180px){.arena-layout{grid-template-columns:1fr}}@media(max-width:720px){.app-shell{padding:1rem}.stockfish-panel{display:none}.hero{flex-direction:column;align-items:flex-start;padding:1.4rem}.hero-actions{width:100%;justify-content:space-between;align-items:stretch}.hero-badge{min-width:0;flex:1 1 auto}.desktop-only{display:none!important}.mobile-only{display:block}.settings-menu-btn{flex:none;min-width:8.4rem;align-self:stretch}.board-toolbar,.action-grid,.segmented,.room-clocks,.inline-field,.chat-form{grid-template-columns:1fr}.board-actions{flex-direction:column}.board-quick-actions{flex-direction:column;align-items:stretch}.board-quick-actions .board-new-game-btn,.board-quick-actions .board-action-btn{width:100%}.hint-strip{flex-direction:column;align-items:stretch}.hint-btn{width:100%}.review-controls,.review-summary{grid-template-columns:1fr}.analysis-modal{padding:.75rem}.analysis-modal-card{top:auto;right:.75rem;bottom:.75rem;width:min(420px,calc(100vw - 1.5rem));height:min(33rem,calc(100vh - 1.5rem));padding:.75rem}.analysis-table-compact{min-width:0}.analysis-table-compact thead{display:none}.analysis-table-compact,.analysis-table-compact tbody,.analysis-table-compact tr,.analysis-table-compact td{display:block;width:100%}.analysis-table-compact tbody{padding:.35rem}.analysis-table-compact tr{margin-bottom:.75rem;border:1px solid var(--surface-border);border-radius:1rem;overflow:hidden;background:var(--surface-strong)}.analysis-table-compact td{display:grid;grid-template-columns:minmax(72px,92px) minmax(0,1fr);gap:.75rem;align-items:center;padding:.7rem .8rem;border-bottom:1px solid var(--surface-border)}.analysis-table-compact td:last-child{border-bottom:none}.analysis-table-compact td:before{content:attr(data-label);color:var(--text-muted);text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;line-height:1.2}.analysis-table-compact td>*{min-width:0}.analysis-table-modal-wrap{min-height:0}.board-action-btn{width:100%}.field-row,.room-line{flex-direction:column;align-items:flex-start}.room-line strong{text-align:left}.board-frame{gap:.55rem}.board-wrap{--board-index-size: 18px;--board-index-gap: .55rem}.chess-board-3d{min-height:18rem}.board-victory-copy{padding:3.55rem 1rem .95rem}.board-victory-copy strong{font-size:clamp(1.45rem,7vw,2rem)}.board-victory-copy p{font-size:.82rem}.control-panel{width:min(420px,calc(100vw - 1.2rem))}}@media(max-width:980px),(max-height:680px){.board-viewport:fullscreen{align-items:start;overflow:auto}.board-viewport:fullscreen .fullscreen-board-layout.has-fullscreen-side-panel{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;align-content:start;justify-items:center;min-height:100%}.board-viewport:fullscreen .fullscreen-board-layout.has-fullscreen-side-panel .board-wrap{width:min(calc(100vw - 2rem),calc(100vh - 15rem))}.board-viewport:fullscreen .fullscreen-board-layout.has-fullscreen-side-panel .board-wrap-3d{width:min(calc(100vw - 2rem),calc((100vh - 15rem)*1.4))}.board-viewport:fullscreen .fullscreen-side-panel{width:min(100%,44rem);max-height:none;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr))}.fullscreen-eval-body{min-height:10rem}.fullscreen-eval-card .position-eval{height:10rem}}@media(prefers-reduced-motion:reduce){.board-wrap.celebrating .board-grid,.board-wrap.celebrating .chess-board-3d,.board-victory,.board-victory-rays,.board-victory-emblem,.board-victory:before,.board-victory:after,.board-victory-particle,.board-victory-confetto,.chess-board-3d-loader{animation:none!important}}@media(max-width:520px){.board-panel,.card,.history-panel{padding:1rem}.stockfish-panel{padding:.75rem}.panel-head{flex-direction:column;align-items:flex-start}.export-btn{width:100%}.fullscreen-exit-btn{top:max(.65rem,env(safe-area-inset-top));right:max(.65rem,env(safe-area-inset-right))}.analysis-table-compact td{grid-template-columns:68px minmax(0,1fr);gap:.6rem;padding:.65rem .7rem}}:root{font-family:Segoe UI,Trebuchet MS,sans-serif;color:#f7efe2;background:linear-gradient(160deg,#161219,#0f1620 48%,#1b2530);color-scheme:dark}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-height:100vh}button,input,select{font:inherit}
