:root{--bg:#101510;--panel:#171e18;--panel2:#1c241e;--line:#303b31;--muted:#91998d;--cream:#f3eddd;--gold:#d8c39b;--green:#b1c99e;--forest:#718b66;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--cream);font:14px var(--sans);min-height:100vh}.ambient{position:fixed;inset:0;z-index:-1;background:radial-gradient(ellipse at 78% 22%,#283228 0,transparent 34%),radial-gradient(ellipse at 15% 83%,#1b241d 0,transparent 34%);pointer-events:none}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 7.2%;border-bottom:1px solid #ffffff0a}.brand{display:flex;align-items:center;gap:11px;color:var(--cream);text-decoration:none;font-weight:700;letter-spacing:.19em;font-size:12px}.brand-mark{font-size:29px;color:var(--gold);line-height:1}.brand small{display:block;font-size:8px;letter-spacing:.3em;color:#90998e;margin-top:4px}.top-nav{display:flex;align-items:center;gap:37px;height:100%}.nav-link{height:100%;display:flex;align-items:center;color:#a8ada3;text-decoration:none;position:relative}.nav-link.active{color:var(--cream)}.nav-link.active:after{content:'';position:absolute;height:2px;bottom:0;background:var(--gold);left:0;right:0}.online{font-size:11px;color:#9fa79b;letter-spacing:.03em}.online i,.caption-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#a5c88e;margin-right:7px;box-shadow:0 0 9px #a5c88e77}.online b{color:var(--cream);font-weight:500}.avatar{border:1px solid #596253;background:#29332a;color:var(--gold);width:33px;height:33px;border-radius:50%;font-family:var(--serif);font-size:16px;cursor:pointer}.hero{min-height:550px;display:grid;grid-template-columns:1fr 1.08fr;align-items:center;padding:42px 8% 45px;gap:5%;overflow:hidden}.hero-copy{padding:20px 0 20px 4%;max-width:530px}.eyebrow{color:#aeb99f;font-size:9px;font-weight:700;letter-spacing:.22em;display:flex;align-items:center;gap:9px}.eyebrow>span{width:19px;height:1px;background:var(--gold)}h1{font:500 clamp(49px,6vw,77px)/1.1 var(--serif);letter-spacing:-.045em;margin:26px 0 18px}h1 em,h2 em,.quote-strip em{color:var(--gold);font-weight:500}.hero-lead{font-size:14px;line-height:1.85;color:#a1a79c;max-width:415px}.hero-actions{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}.button{border:1px solid var(--line);padding:13px 17px;border-radius:5px;font:600 11px var(--sans);letter-spacing:.03em;cursor:pointer;transition:.2s}.button:hover{transform:translateY(-2px);filter:brightness(1.08)}.button-primary{background:#d9c69f;color:#191e16;border-color:#d9c69f}.button-primary>span:first-child{font-size:18px;vertical-align:-2px;margin-right:7px}.button-arrow{margin-left:13px}.button-secondary{background:#ffffff05;color:#e5e1d7}.hero-meta{display:flex;gap:12px;align-items:center;margin-top:33px;font-size:10px;color:#90978d}.hero-meta strong{color:#d8d9cd;font-weight:500}.avatars{display:flex;align-items:center}.avatars span,.avatars b{width:22px;height:22px;border:1px solid #263126;border-radius:50%;background:#384436;display:grid;place-items:center;color:#e5d8b9;font-size:12px;margin-left:-5px}.avatars span:first-child{margin-left:0}.avatars span:nth-child(2){background:#4b5140}.avatars span:nth-child(3){background:#485340}.avatars b{background:#242c24;font-size:9px;color:#c4cbbb}.hero-scene{height:450px;position:relative;display:flex;align-items:center;justify-content:center;perspective:1000px}.scene-glow{position:absolute;width:75%;height:60%;top:22%;left:12%;background:#87977210;filter:blur(55px)}.scene-label,.scene-coordinate{position:absolute;top:4px;left:0;color:#9da494;font-size:9px;letter-spacing:.17em}.scene-label span{color:#586353;margin-left:14px}.scene-coordinate{left:auto;right:0;top:auto;bottom:8px;font-size:8px;letter-spacing:.14em;color:#777f72}.hero-board{width:min(370px,72vw);height:min(370px,72vw);transform:rotateX(49deg) rotateZ(-38deg);transform-style:preserve-3d;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);box-shadow:30px 37px 0 #10140f,31px 38px 0 #384033,35px 46px 28px #0009;position:relative;z-index:1}.hero-board:after{content:'';position:absolute;inset:0;transform:translateZ(-17px) translateY(17px);background:#332c21;z-index:-1;box-shadow:0 0 0 2px #6a5e46}.mini-square{display:grid;place-items:center;font-size:32px;text-shadow:0 3px 3px #0008}.mini-square.light{background:#bbaa88;color:#39362c}.mini-square.dark{background:#687a60;color:#eee3c7}.scene-caption{position:absolute;bottom:29px;left:1px;color:#aeb3a6;font-size:9px;letter-spacing:.08em}.modes{padding:43px 8% 67px;background:linear-gradient(#171c17a8,#171c17a8);border-top:1px solid #ffffff08}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:23px}.section-heading .eyebrow{font-size:8px}h2{font:500 28px var(--serif);margin:7px 0 0}.text-link{color:#aab19f;text-decoration:none;font-size:10px}.text-link span{color:var(--gold);margin-left:8px}.mode-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.mode-card{position:relative;text-align:left;display:flex;flex-direction:column;min-height:193px;padding:19px 19px 15px;background:linear-gradient(135deg,#222a23,#1a211b);border:1px solid #303a31;border-radius:5px;color:var(--cream);cursor:pointer;transition:.2s;font-family:var(--sans)}.mode-card:hover{transform:translateY(-3px);border-color:#687460}.mode-card.featured{background:linear-gradient(135deg,#2c382c,#1c241d);border-color:#53634e}.mode-icon{position:absolute;right:19px;top:15px;font-size:22px;color:var(--gold)}.mode-tag{color:#b3b89f;font-size:8px;letter-spacing:.16em;margin-bottom:19px}.mode-card strong{font:500 17px var(--serif);margin-bottom:8px}.mode-description{max-width:260px;font-size:10px;line-height:1.6;color:#969d91}.mode-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #ffffff10;margin-top:auto;padding-top:12px;color:#a1a99b;font-size:9px}.mode-footer i{font-style:normal;color:var(--gold);font-size:13px}.quote-strip{height:116px;border-top:1px solid #ffffff0c;display:flex;align-items:center;padding:0 9%;gap:15px}.quote-strip>span{font:52px var(--serif);color:#887754}.quote-strip p{font:19px var(--serif);color:#c7c7b9}.quote-strip small{font-size:8px;letter-spacing:.17em;color:#7e867a;margin-left:5px}.quote-stat{margin-left:auto;display:flex;align-items:center;gap:12px}.quote-stat strong{font:27px var(--serif);color:var(--gold)}.quote-stat span{font-size:8px;letter-spacing:.16em;color:#828a7c}.modal-backdrop{display:none;position:fixed;inset:0;z-index:5;background:#080b08d9;backdrop-filter:blur(8px);align-items:center;justify-content:center;padding:18px}.modal-backdrop.open{display:flex}.modal{width:min(540px,100%);max-height:92vh;overflow:auto;position:relative;padding:34px;background:linear-gradient(145deg,#202820,#171d18);border:1px solid #414a3c;box-shadow:0 25px 100px #0009;border-radius:8px}.modal-close{position:absolute;right:17px;top:13px;border:0;background:none;color:#a6ad9f;font-size:25px;cursor:pointer}.modal .eyebrow{font-size:8px}.modal h2{font-size:30px;margin:10px 0}.modal p{color:#a4ab9f;font-size:12px;line-height:1.7}.field-label{display:block;margin:20px 0 8px;color:#aeb6a7;font-size:10px;letter-spacing:.08em}.text-input,.select-input{width:100%;background:#101510;border:1px solid #394238;border-radius:4px;padding:12px;color:#f1eadb;font:12px var(--sans);outline:none}.text-input:focus,.select-input:focus{border-color:#a7956d}.difficulty-list{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.difficulty{background:#141a15;border:1px solid #3a4337;color:#c4c9bd;padding:11px 5px;border-radius:4px;font-size:10px;cursor:pointer}.difficulty.selected{background:#364332;border-color:#839072;color:#f2ecd9}.difficulty small{display:block;margin-top:4px;color:#98a18e;font-size:8px}.modal-action{width:100%;margin-top:22px}.room-result{padding:16px;background:#121813;border:1px dashed #66705d;border-radius:5px;text-align:center;margin-top:16px}.room-code{font:30px var(--serif);letter-spacing:.18em;color:var(--gold);margin:6px}.subtle{font-size:10px!important;color:#899286!important}.copy-button{border:1px solid #46503f;background:#242d23;color:#e6e2d3;border-radius:4px;padding:8px 15px;font-size:10px;cursor:pointer}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:25px;max-width:1120px;margin:20px auto 60px;padding:0 25px}.game-top{display:flex;justify-content:space-between;align-items:center;margin:3px 0 14px}.back-link{color:#aab19f;text-decoration:none;font-size:10px}.game-title{font:19px var(--serif)}.board-frame{padding:14px;background:linear-gradient(135deg,#a88e60,#594a34 70%);border-radius:5px;box-shadow:0 25px 60px #0008, inset 0 1px 0 #eed8a5}.chess-board{aspect-ratio:1;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);transform:rotateX(2deg);box-shadow:0 14px 22px #0007;position:relative;overflow:hidden}.square{position:relative;display:grid;place-items:center;cursor:pointer;user-select:none;min-width:0}.square.light{background:#ded2b8}.square.dark{background:#687e63}.square.selected{background:#c5ad62!important}.square.hint:after{content:'';position:absolute;width:25%;height:25%;border-radius:50%;background:#28381d88}.square.capture:after{content:'';position:absolute;inset:5px;border:4px solid #9a5746;border-radius:50%}.square.last{box-shadow:inset 0 0 0 100px #d6cb6a33}.piece{font-size:clamp(27px,5.8vw,61px);line-height:1;z-index:1;transform:translateY(-3px);filter:drop-shadow(0 3px 2px #17170f55);transition:transform .1s}.piece:hover{transform:translateY(-7px)}.piece.white{color:#fff9e9;text-shadow:0 2px 1px #746b58,0 0 2px #4e483c}.piece.black{color:#30362e;text-shadow:0 1px 0 #abb29c,0 3px 1px #0008}.coord{position:absolute;font:8px var(--sans);opacity:.6;left:4px;top:3px;pointer-events:none}.light .coord{color:#5c5545}.dark .coord{color:#f0ead5}.player-bar{display:flex;align-items:center;gap:11px;padding:10px 3px}.player-avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#343d33;color:var(--gold);font-size:17px}.player-info{font-size:11px;color:#e6e6d8}.player-info small{display:block;font-size:9px;color:#92998d;margin-top:3px}.clock{margin-left:auto;font:21px var(--serif);letter-spacing:.04em;background:#222820;padding:7px 12px;border-radius:4px;color:#c9ceb9}.clock.active{background:#adbd94;color:#1b2118}.game-side{padding-top:46px}.side-panel{background:#1a211b;border:1px solid #303a31;border-radius:5px;padding:17px;margin-bottom:13px}.side-panel h3{font:16px var(--serif);margin:0 0 13px}.game-status{font-size:11px;color:#c7cbbd;line-height:1.6}.move-list{height:190px;overflow:auto;font-size:10px;color:#a7ad9e}.move-row{display:grid;grid-template-columns:24px 1fr 1fr;padding:6px 4px;border-bottom:1px solid #ffffff08}.move-row:nth-child(odd){background:#ffffff05}.move-no{color:#727c6d}.side-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.side-button{background:#222a23;border:1px solid #3a453a;color:#d8dccf;border-radius:4px;padding:9px 7px;font:10px var(--sans);cursor:pointer}.side-button:hover{border-color:#82916f}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,20px);background:#303b30;color:#eff1e7;padding:11px 18px;border:1px solid #596452;border-radius:5px;font-size:11px;opacity:0;pointer-events:none;transition:.2s;z-index:9}.toast.show{opacity:1;transform:translate(-50%,0)}.promotion-select{display:flex;gap:12px;margin-top:14px}.promotion-select button{font-size:34px;background:#253025;border:1px solid #515c4d;border-radius:4px;cursor:pointer;padding:4px 11px;color:#eee}.puzzle-board .square{cursor:pointer}@media(max-width:850px){.topbar{padding:0 5%}.hero{padding:32px 6%;grid-template-columns:1fr .9fr;gap:1%}.hero-copy{padding-left:0}.hero-scene{height:390px}.hero-board{width:min(310px,70vw);height:min(310px,70vw)}.modes{padding-left:6%;padding-right:6%}.mode-grid{gap:9px}.mode-card{padding:15px;min-height:200px}.game-layout{grid-template-columns:minmax(0,1fr) 240px;gap:14px}}@media(max-width:650px){.topbar{height:65px}.top-nav{gap:15px}.top-nav .nav-link{font-size:11px}.online{display:none}.hero{display:flex;flex-direction:column;align-items:stretch;padding:38px 7% 24px}.hero-copy{max-width:none}.hero-copy h1{font-size:57px;margin:18px 0 11px}.hero-lead{font-size:12px}.hero-scene{height:320px;margin-top:2px}.hero-board{width:min(295px,78vw);height:min(295px,78vw)}.scene-label{top:8px}.scene-caption{bottom:13px}.modes{padding:34px 7% 44px}.section-heading{align-items:center}h2{font-size:24px}.mode-grid{grid-template-columns:1fr}.mode-card{min-height:155px}.mode-tag{margin-bottom:12px}.mode-description{max-width:80%}.quote-strip{padding:0 5%;height:95px;gap:7px}.quote-strip p{font-size:15px}.quote-strip small{display:none}.quote-stat span{display:none}.game-layout{display:flex;flex-direction:column;gap:2px;margin:10px auto 35px;padding:0 13px}.game-side{padding-top:0}.board-frame{padding:8px}.piece{font-size:clamp(26px,10vw,53px)}.player-bar{padding:8px 3px}.clock{font-size:18px;padding:6px 10px}.move-list{height:100px}.game-top{margin-bottom:10px}.modal{padding:28px 22px}.modal h2{font-size:27px}}@media(max-width:385px){.top-nav{gap:10px}.top-nav .nav-link:nth-child(2){display:none}.hero-actions{gap:7px}.button{padding:12px 11px;font-size:10px}}
/* A raised playing surface and tactile, three-dimensional clock bezels. */
.board-frame{perspective:none!important;transform-style:flat!important;box-shadow:0 28px 60px #0009,0 12px 0 #433923,inset 0 1px 0 #eed8a5!important}.chess-board{transform:none!important;transform-origin:center bottom;box-shadow:0 18px 25px #0008,0 4px 0 #44503d!important}.clock{background:linear-gradient(155deg,#394338,#1c231d 66%)!important;border:1px solid #58604d;border-radius:4px;box-shadow:inset 0 1px 0 #d9dec225,inset 0 -3px 5px #0006,0 4px 0 #101510,0 7px 12px #0005!important;transform:perspective(160px) rotateX(5deg);text-shadow:0 1px 0 #000}.clock.active{background:linear-gradient(155deg,#e0d0aa,#a7966f 70%)!important;border-color:#eee0ba;color:#272b20;box-shadow:inset 0 1px 0 #fff8,inset 0 -3px 5px #52472f55,0 4px 0 #574e3a,0 7px 12px #0005!important;text-shadow:none}@media(max-width:1200px){.game-layout{grid-template-columns:minmax(0,1fr) 250px;max-width:100%;gap:16px}.board-frame{padding:10px}}

.square.in-check{background:#b85e50!important;box-shadow:inset 0 0 26px #681f1f99!important}
.public-toggle{display:flex;align-items:center;gap:10px;margin-top:15px;padding:11px 12px;border:1px solid #394238;border-radius:4px;background:#151b16;color:#e4e5d9;font-size:11px;cursor:pointer}.public-toggle input{accent-color:#b8c69d;width:15px;height:15px}.public-toggle small{display:block;color:#929b8d;font-size:9px;margin-top:3px}.public-rooms{margin-top:20px;border-top:1px solid #ffffff12;padding-top:14px}.public-rooms-heading{display:flex;justify-content:space-between;align-items:center;color:#b4bba9;font-size:9px;letter-spacing:.16em}.refresh-rooms{background:none;border:0;color:#cdbb93;font:10px var(--sans);cursor:pointer}.public-room-list{display:grid;gap:7px;margin-top:10px;max-height:175px;overflow:auto}.public-room{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;background:#141a15;border:1px solid #374135;border-radius:4px;color:var(--cream);text-align:left;cursor:pointer}.public-room:hover{border-color:#879578;background:#202920}.public-room b{display:block;font:500 13px var(--serif)}.public-room small{display:block;color:#8e978b;font-size:9px;margin-top:4px}.public-room-join{white-space:nowrap;color:var(--gold);font-size:9px}.join-by-code{margin-top:15px;padding-top:13px;border-top:1px solid #ffffff12}.join-by-code .field-label{margin:0 0 8px}.join-code-row{display:flex;gap:9px}.join-code-row .text-input{min-width:0}