:root{--bg:#101c24;--surface:#16232d;--line:#2a3a43;--accent:#efb47c;--muted:#96a9b6;--text:#f5eee3}
body{background:radial-gradient(ellipse at 38% -10%,#1a2b33 0,transparent 58%),#101c24}.header{height:96px;border-bottom-color:#34404899}.brand{gap:13px;letter-spacing:-.04em}.brand-emblem{width:46px;height:46px;filter:drop-shadow(0 3px 5px #0005)}.brand-copy{display:flex;flex-direction:column;gap:5px}.brand-copy>span{font-size:1.3rem;font-weight:500}.brand-copy strong{font-weight:750;color:#f3ddbb}.brand-copy small{font:500 .48rem Georgia,serif;letter-spacing:.26em;color:#af9b7b}.header-note{font-size:.76rem;letter-spacing:.01em;color:#91a3ae}.icon-button{border-color:#41505a;color:#d0b48e}.app-shell{max-width:1250px}main{grid-template-columns:minmax(0,1fr) 326px;gap:42px;padding-top:35px}.board-heading{position:relative;z-index:7;align-items:flex-start;margin-bottom:0}.board-heading>div{max-width:60%}.board-heading .eyebrow{font-size:.61rem;letter-spacing:.18em;color:#b59e7e}h1{font-size:1.95rem;font-weight:650;letter-spacing:-.06em}.board-heading .rule-tag{display:none}.board-stage{position:relative;isolation:isolate}.robot-perch{height:76px;display:flex;align-items:flex-end;justify-content:space-between;padding:0 3px 10px;gap:10px}.robot-perch>span:first-child{color:#91a6af;font-size:.7rem;max-width:43%;line-height:1.7}.perch-edition{color:#947f64;font-family:Georgia,serif;font-size:.52rem;letter-spacing:.14em;align-self:center;opacity:.8;margin-right:37%}.opponent-strip{min-height:30px;margin:0 0 9px;font-size:.75rem;position:relative;z-index:6}.opponent-strip .mini-piece{width:17px;height:17px;border-radius:50%;box-shadow:inset 1px 1px 3px #fff5,1px 2px 3px #0008}.opponent-strip .mini-piece.black{background:radial-gradient(circle at 30% 20%,#7d8680,#242d27 48%,#070e0c);border-color:#66726d}.opponent-strip .mini-piece.white{background:radial-gradient(circle at 30% 20%,#fffef2,#e4d7bc 65%,#b09b7b);border-color:#e8dbbc}.opponent-strip>div>span:last-child{font-size:.66rem}.strip-status{font-size:.52rem;letter-spacing:.11em}.board-frame{border-radius:5px;padding:22px;background:linear-gradient(125deg,#fff0c052,transparent 20%,#5a35203b 85%),url('./assets/kaya-wood.webp') center/cover;border:1px solid #d5ae77;box-shadow:0 8px 0 #69472e,0 12px 4px #0007,0 25px 42px #0005,inset 3px 3px 2px #f7d8a3,inset -3px -4px 2px #735237}.board-frame:before{inset:7px;border-radius:1px;border:1px solid #e0b98a77}.board{box-shadow:0 0 0 1.5px #654326,inset 0 0 15px #3523154d}.cell{background:#d7b587}.cell.dark{background:#80573e}.chess-canvas{position:absolute;left:0;top:-116px;width:100%;height:calc(100% + 155px);pointer-events:none;z-index:5}.scene-ready .board-frame,.scene-ready .board{background:transparent;border-color:transparent;box-shadow:none}.scene-ready .board-frame:before{opacity:0}.scene-ready .cell{background:transparent}.scene-ready .cell .piece,.scene-ready .cell .coord,.scene-ready .cell:before,.scene-ready .cell:after{opacity:0}.scene-ready .cell:focus-visible{outline:2px solid #fff1be;outline-offset:-3px}.scene-fallback .robot-perch:after{content:'';position:absolute;right:0;top:-93px;width:170px;height:170px;background:url('./assets/robot-pearl.webp') center/contain no-repeat;pointer-events:none}.scene-fallback .chess-canvas{display:none}.local-match .robot-perch{height:15px}.local-match .robot-perch>span{display:none}.local-match.scene-fallback .robot-perch:after{display:none}.bottom-strip{margin-top:19px;margin-bottom:0}.board-caption{margin-top:11px;color:#98a8ae;font-size:.65rem}.quiet-note{border-color:#2e3e4599;margin-top:15px;padding-top:13px}.legend-last{background:#c7a468}.legend-dot{background:#648373}.panel-heading{margin:4px 0 15px}.panel-heading .eyebrow{font-size:.6rem;letter-spacing:.17em}.mode-switch{background:#0c171e;border-color:#30404c}.mode-switch button{font-size:.75rem;padding:10px 4px}.mode-switch button[aria-pressed=true]{background:linear-gradient(#34414e,#2a3641);box-shadow:inset 0 1px 0 #68747a33,0 2px 4px #0003}.robot-portrait{position:relative;border-radius:8px;overflow:hidden;border:1px solid #46535a;margin-top:17px;aspect-ratio:1.75;background:#0b151d;box-shadow:0 7px 18px #0002}.robot-portrait>img{width:100%;height:100%;object-fit:cover;object-position:center 47%;display:block}.robot-portrait:after{content:'';position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#07121aeb);pointer-events:none}.portrait-caption{position:absolute;left:14px;right:12px;bottom:11px;z-index:1;display:flex;align-items:flex-end;justify-content:space-between;text-shadow:0 2px 6px #000}.portrait-caption>div>span{display:block;color:#c2b7a9;font-size:.47rem;letter-spacing:.17em;margin-bottom:7px}.portrait-caption strong{font-size:.83rem;font-weight:600}.portrait-caption b{font:italic .7rem Georgia,serif;color:#edb17a;margin:0 10px}.portrait-level{border:1px solid #c4955c80;background:#0b151eb0;padding:5px 8px;border-radius:4px;color:#ebc38f;font:500 .66rem ui-monospace,monospace}.robot-portrait.thinking{border-color:#ca9e67;box-shadow:0 0 0 2px #d9b77e15}.bot-greeting{font-size:.64rem;color:#98aeb8;margin:9px 1px 0;line-height:1.6;min-height:15px}.motion-toggle{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;margin:10px 0 0;padding:7px 8px;background:#14252e;border:1px solid #354c54;border-radius:4px;color:#9db7bf;font-size:.65rem}.motion-toggle>span{width:5px;height:5px;border-radius:50%;background:#677a83}.motion-toggle[aria-pressed=true]>span{background:#88c6c9;box-shadow:0 0 6px #81c8d055}.motion-toggle:hover{background:#20333c}.difficulty-heading{margin:15px 0 9px;font-size:.73rem}.difficulty-heading strong{font-size:.7rem;color:#e5b37e}.level-grid{gap:4px}.level-button{height:30px;font-family:ui-monospace,monospace;border-color:#3a4b54;border-radius:4px;font-size:.7rem}.level-button[aria-pressed=true]{background:linear-gradient(#ffcc98,#eaa26b);color:#3a291e;border-color:#e4b584;box-shadow:inset 0 1px 0 #ffe6bba0,0 2px 7px #0002}.level-description{font-size:.65rem;margin-bottom:12px}.color-picker{padding-top:10px;font-size:.69rem}.color-picker button{font-size:.65rem}.status-block{padding:19px 0 14px;margin-top:17px}.status-block h2{font-size:1.22rem}.status-block p{font-size:.7rem}.status-overline{font-size:.55rem}.players{grid-template-columns:1fr 1fr;gap:7px}.player{padding:10px 9px;gap:6px;flex-wrap:wrap;align-items:flex-start;min-height:75px;background:#122029}.player.active{background:#202b2c;border-color:#ad8c60}.player-symbol{width:24px;height:30px}.player-symbol svg{width:26px;height:31px}.player-info>strong{font-size:.72rem}.player-info>span{font-size:.57rem}.turn-tag{font-size:.52rem;margin-left:30px;margin-top:-3px;padding:3px 5px}.captured .piece{width:13px;height:15px}.history-heading{margin:15px 0 8px;font-size:.67rem}.move-history{height:67px;background:#0e1921;font-size:.7rem;border-color:#2d3d46}.empty-history{margin:17px 0;font-size:.63rem}.actions{margin-top:12px;gap:7px}.actions button{font-size:.72rem;padding:11px 7px}.primary-button{background:linear-gradient(#ffd0a1,#edaa74);box-shadow:inset 0 1px 0 #ffe5c080,0 3px 9px #0002}.primary-button:hover{background:linear-gradient(#ffdbb5,#f5b582)}.secondary-button{border-color:#3d515d}.rules{margin-top:18px;padding-top:13px}.rules summary{font-size:.68rem}footer{padding:19px 0 25px;color:#8298a2;font-size:.59rem}.board-caption .text-button{font-size:.67rem}
@media(min-width:761px) and (max-height:820px){.app-shell{max-width:min(1190px,calc(100svh + 390px));padding:0 36px}.header{height:80px}main{grid-template-columns:minmax(0,1fr) 300px;gap:35px;padding-top:24px}.board-heading{margin-bottom:0}h1{font-size:1.7rem}.robot-perch{height:57px}.board-frame{padding:20px}.chess-canvas{top:-111px;height:calc(100% + 145px)}.opponent-strip{min-height:26px}.bottom-strip{margin-top:17px}.robot-portrait{aspect-ratio:1.85}.panel-heading{margin-top:1px}.quiet-note{margin-top:12px}.brand-emblem{width:41px;height:41px}.brand-copy>span{font-size:1.2rem}}
@media(max-width:1000px) and (min-width:761px){.app-shell{padding:0 26px}main{grid-template-columns:minmax(0,1fr) 285px;gap:27px}.robot-perch{height:56px}.perch-edition{display:none}.chess-canvas{top:-92px;height:calc(100% + 128px)}.robot-portrait{margin-top:15px}.portrait-caption{left:11px}.level-grid{gap:3px}.brand-copy small{font-size:.44rem}}
@media(max-width:760px){.app-shell{max-width:600px;padding:0 20px}.header{height:83px;gap:12px}.brand{gap:10px}.brand-emblem{width:40px;height:40px}.brand-copy>span{font-size:1.16rem}.brand-copy small{font-size:.42rem;letter-spacing:.21em}.header-note{font-size:.59rem}.header .icon-button{width:29px;height:29px}main{display:grid;grid-template-columns:1fr;gap:25px;padding-top:26px}.board-heading .eyebrow{font-size:.52rem;letter-spacing:.1em}.board-heading>div{max-width:62%}h1{font-size:1.65rem}.robot-perch{height:55px;padding-bottom:7px}.robot-perch>span:first-child{font-size:.59rem;max-width:44%}.perch-edition{display:none}.chess-canvas{top:-62px;height:calc(100% + 93px)}.board-frame{padding:16px}.opponent-strip{min-height:28px;margin-bottom:8px;font-size:.7rem}.opponent-strip>div{gap:6px}.opponent-strip>div>span:last-child{font-size:.6rem}.strip-status{font-size:.47rem}.bottom-strip{margin-top:15px;margin-bottom:0}.board-caption{font-size:.62rem;margin-top:8px}.board-caption .text-button{font-size:.65rem}.quiet-note{font-size:.63rem;margin-top:11px;padding-top:11px}.game-panel{padding-top:21px}.robot-portrait{aspect-ratio:1.9;margin-top:16px}.portrait-caption{left:16px;bottom:14px}.portrait-caption strong{font-size:.97rem}.portrait-caption>div>span{font-size:.51rem}.portrait-level{font-size:.75rem;padding:6px 10px}.bot-greeting{font-size:.7rem}.motion-toggle{font-size:.7rem;padding:8px}.difficulty-heading{font-size:.78rem;margin-top:17px}.difficulty-heading strong{font-size:.75rem}.level-grid{gap:5px}.level-button{height:35px;font-size:.78rem}.level-description{font-size:.7rem;margin:10px 0 15px}.color-picker{font-size:.75rem;padding-top:13px}.color-picker button{font-size:.72rem;padding:7px 11px}.status-block{padding-top:20px}.status-block h2{font-size:1.3rem}.status-block p{font-size:.75rem}.player{min-height:78px;padding:11px 12px;gap:9px}.player-info>strong{font-size:.78rem}.player-info>span{font-size:.62rem}.turn-tag{margin-left:33px;font-size:.57rem}.history-heading{font-size:.72rem}.move-history{height:84px;font-size:.78rem}.empty-history{font-size:.68rem;margin:25px 0}.actions button{font-size:.8rem;padding:14px 8px}.rules summary{font-size:.75rem}footer{font-size:.58rem}.local-match .robot-perch{height:12px}}
@media(max-width:380px){.app-shell{padding:0 14px}.header-note{display:none}.board-frame{padding:13px}.brand-emblem{width:37px;height:37px}.chess-canvas{top:-48px;height:calc(100% + 77px)}.robot-perch{height:49px}.board-heading .eyebrow{font-size:.45rem}h1{font-size:1.5rem}.quiet-note{font-size:.58rem}.level-grid{gap:3px}.level-button{height:32px}.player{padding:10px 9px}.robot-portrait{aspect-ratio:1.75}.board-caption{font-size:.58rem}}

@media(min-width:761px) and (max-height:820px){.app-shell{max-width:min(1120px,calc(100svh + 110px));padding:0 30px}main{grid-template-columns:minmax(0,1fr) 280px;gap:30px}.robot-perch{height:48px}.chess-canvas{top:-93px;height:calc(100% + 128px)}.board-frame{padding:16px}.robot-portrait{aspect-ratio:1.85}.portrait-caption{left:11px;right:10px}.portrait-caption>div>span{font-size:.42rem}.level-grid{gap:3px}.perch-edition{display:none}.board-heading .eyebrow{font-size:.52rem}}
