.chess3d-main{padding:2.1rem 0 4rem}.chess3d-hero{display:flex;justify-content:space-between;gap:2rem;align-items:center}.chess3d-hero-side{display:grid;grid-template-columns:auto 1fr;gap:.1rem .8rem;min-width:210px}.chess3d-hero-side span{font:800 2rem/1 system-ui;color:#96e7ff}.chess3d-hero-side small{align-self:end;color:#a9c4d6;letter-spacing:.08em}.chess3d-shell{display:grid;grid-template-columns:270px 1fr;gap:1.2rem;padding:1.1rem}.chess3d-panel{border:1px solid rgba(121,210,255,.22);border-radius:18px;padding:1.1rem;background:linear-gradient(160deg,rgba(6,17,36,.88),rgba(11,35,58,.66));display:flex;flex-direction:column;gap:1rem}.chess3d-panel p{color:#b4c9d9;font-size:.9rem;line-height:1.55}.chess3d-turn{display:flex;gap:.7rem;align-items:center}.chess3d-turn small,.chess3d-captured small{display:block;color:#76b7d6;font-size:.67rem;letter-spacing:.12em}.chess3d-turn strong{display:block;margin-top:.18rem}.chess3d-turn span{width:12px;height:12px;border-radius:50%;background:#e9f6ff;box-shadow:0 0 18px #bdeeff}.chess3d-turn span.black{background:#6c9cc0;box-shadow:0 0 18px #5489b0}.chess3d-captured{padding:.8rem 0;border-block:1px solid rgba(120,202,255,.16)}.chess3d-captured div{min-height:1.55rem;font-size:1.18rem;letter-spacing:.08em}.chess3d-actions{display:grid;gap:.55rem}.chess3d-stage{min-height:580px;position:relative;overflow:hidden;border-radius:18px;border:1px solid rgba(99,213,255,.3);background:radial-gradient(circle at 50% 20%,#183d64,#060d1b 72%)}#chessCanvas{position:absolute;inset:0}.chess3d-stage canvas{width:100%;height:100%;display:block}.chess3d-badge,.chess3d-fullscreen-hint{position:absolute;border:1px solid rgba(143,232,255,.3);padding:.35rem .55rem;border-radius:99px;font-size:.68rem;letter-spacing:.12em;color:#b9edff;background:#061426aa;pointer-events:none}.chess3d-badge{right:14px;bottom:12px}.chess3d-fullscreen-hint{display:none;left:50%;bottom:18px;transform:translateX(-50%)}.chess3d-stage:fullscreen,.chess3d-stage.is-fallback-fullscreen{width:100vw;height:100vh;min-height:100vh;border-radius:0;border:0;background:#030914}.chess3d-stage:fullscreen .chess3d-fullscreen-hint,.chess3d-stage.is-fallback-fullscreen .chess3d-fullscreen-hint{display:block}@media(max-width:850px){.chess3d-hero,.chess3d-shell{grid-template-columns:1fr;display:grid}.chess3d-stage{min-height:470px}.chess3d-panel{order:2}.chess3d-hero-side{grid-template-columns:auto 1fr}}
/* Space-neon presentation layer for the chess board. */
.chess3d-stage { border-color: rgba(74,175,255,.82); background: radial-gradient(ellipse at 50% 20%, #173b61 0%, #071321 45%, #01040a 100%); box-shadow: inset 0 0 90px rgba(0,111,255,.28), inset 0 -70px 100px rgba(255,26,61,.12), 0 0 38px rgba(20,123,255,.3); }
.chess3d-stage::before { content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 0; background: linear-gradient(90deg, rgba(0,82,255,.22), transparent 38%, transparent 62%, rgba(255,20,44,.2)), radial-gradient(circle at 14% 18%, #bcecff 0 1px, transparent 2px), radial-gradient(circle at 86% 16%, #ffd0d7 0 1px, transparent 2px), repeating-linear-gradient(90deg, rgba(120,205,255,.035) 0 1px, transparent 1px 48px), linear-gradient(180deg, transparent 58%, rgba(0,0,0,.48)); opacity: .95; }
.chess3d-stage::after { content: ''; position: absolute; left: 6%; right: 6%; bottom: 5%; height: 2px; pointer-events: none; z-index: 2; background: linear-gradient(90deg, #157dff, #55caff 28%, transparent 42%, transparent 58%, #ff5a67 72%, #ff153b); box-shadow: 0 0 18px #2e9cff, 0 0 24px rgba(255,32,55,.75); opacity: .9; }
#chessCanvas { z-index: 1; }
