:root{--ink:#10231e;--ink2:#17332c;--cream:#f5f1e9;--paper:#fffdfa;--muted:#9ba9a2;--line:#dcded6;--green:#36ba75;--green-dark:#168d55;--gold:#e5bd67;--red:#df665c;--shadow:0 20px 60px #07160f2b}*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--cream);font-family:'DM Sans',sans-serif;min-height:100vh}.noise{position:fixed;inset:0;pointer-events:none;opacity:.08;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");z-index:9}button,input,select{font:inherit}button{cursor:pointer}.container{width:min(1160px,calc(100% - 40px));margin:auto}.nav{height:86px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:20px;letter-spacing:-.6px;cursor:pointer}.brand-mark{width:34px;height:34px;border:1px solid #83d9ad;border-radius:50%;display:grid;place-items:center;color:#83d9ad;font-family:Georgia;font-size:22px}.nav-links{display:flex;align-items:center;gap:26px}.nav-links a{color:#d4ddd8;text-decoration:none;font-size:14px;cursor:pointer}.nav-links a:hover{color:white}.btn{border:0;border-radius:9px;padding:13px 18px;font-weight:700;letter-spacing:-.1px;transition:.18s transform,.18s background}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--green);color:#082016}.btn-primary:hover{background:#54d991}.btn-ghost{background:#ffffff14;color:var(--cream);border:1px solid #ffffff2e}.btn-light{background:var(--paper);color:var(--ink)}.btn-danger{background:#f8e0de;color:#9d332b}.hero{min-height:calc(100vh - 86px);display:grid;grid-template-columns:1fr .95fr;align-items:center;gap:60px;padding:28px 0 70px}.eyebrow{color:#7ee3a9;font-size:12px;text-transform:uppercase;letter-spacing:1.8px;font-weight:700}.hero h1{font-family:'Playfair Display',Georgia,serif;font-size:clamp(52px,7vw,88px);line-height:.96;letter-spacing:-4px;margin:18px 0 24px}.hero h1 em{font-style:normal;color:#70d99a}.hero p{max-width:470px;font-size:18px;line-height:1.6;color:#b9c8c0;margin:0 0 32px}.btn-row{display:flex;gap:12px;flex-wrap:wrap}.hero-note{display:flex;align-items:center;gap:12px;color:#9fb0a8;font-size:13px;margin-top:28px}.avatars{display:flex}.avatar{width:28px;height:28px;border-radius:50%;border:2px solid var(--ink);margin-left:-7px;background:#e8c18a;color:#5f432b;display:grid;place-items:center;font-size:11px}.hero-board-wrap{position:relative;max-width:510px;margin:auto;width:100%}.orb{position:absolute;width:350px;height:350px;border-radius:50%;background:#36ba7530;filter:blur(55px);top:10%;left:15%}.hero-board{position:relative;display:grid;grid-template-columns:repeat(8,1fr);aspect-ratio:1;border:9px solid #e9e2d4;border-radius:4px;box-shadow:0 30px 70px #0008;transform:rotate(3deg)}.hero-board .sq:nth-child(16n + 1),.hero-board .sq:nth-child(16n + 3),.hero-board .sq:nth-child(16n + 5),.hero-board .sq:nth-child(16n + 7),.hero-board .sq:nth-child(16n + 10),.hero-board .sq:nth-child(16n + 12),.hero-board .sq:nth-child(16n + 14),.hero-board .sq:nth-child(16n + 16){background:#718e75}.hero-board .sq{background:#dde3d3;display:grid;place-items:center;font-size:clamp(20px,4vw,45px);color:#1d382b;text-shadow:0 2px #fff8}.hero-board .darkpiece{color:#27493c;text-shadow:0 1px #a2b9a5}.page{padding-bottom:50px}.page-head{padding:38px 0 28px}.page-head h1{font-family:'Playfair Display';font-size:43px;margin:0;letter-spacing:-1.5px}.page-head p{color:#aabcb3;margin:7px 0 0}.dashboard-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.stat{background:#18372f;border:1px solid #ffffff15;border-radius:12px;padding:20px}.stat span{display:block;color:#9eb4aa;font-size:13px}.stat strong{font-size:32px;margin-top:7px;display:block}.actions{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:15px;margin-top:20px}.action-card{background:var(--paper);color:var(--ink);border-radius:13px;padding:24px;min-height:150px;position:relative;overflow:hidden}.action-card.green{background:#38bd78;color:#092218}.action-card.dark{background:#1b3c33;color:var(--cream)}.action-card h3{font-size:19px;margin:25px 0 5px}.action-card p{margin:0;color:inherit;opacity:.72;font-size:14px}.action-icon{font-size:25px}.game-layout{display:grid;grid-template-columns:minmax(400px,680px) minmax(275px,1fr);gap:30px;align-items:start}.board-shell{position:relative;padding:23px 23px 0 0}.board{width:100%;aspect-ratio:1;display:grid;grid-template-columns:repeat(8,1fr);box-shadow:var(--shadow);border-radius:4px;overflow:hidden}.square{position:relative;border:0;padding:0;display:grid;place-items:center;font-size:clamp(29px,5.5vw,54px);font-family:Georgia;background:#e8eadf;color:#2d4436;user-select:none}.square.dark{background:#668368}.square.selected{box-shadow:inset 0 0 0 5px #ebc755}.square.last{box-shadow:inset 0 0 0 999px #e2c96a66}.square.legal:after{content:'';width:18%;aspect-ratio:1;border-radius:50%;background:#1d5537a8;position:absolute}.square.capture:after{content:'';position:absolute;inset:7%;border:4px solid #be544c;border-radius:50%}.square.check{background:#dc666099!important}.piece{position:relative;z-index:1;filter:drop-shadow(0 2px 1px #0003);transition:transform .18s}.square:hover .piece{transform:scale(1.08)}.coord-rank{position:absolute;left:5px;top:3px;font:11px 'DM Mono';color:#25452f99}.coord-file{position:absolute;right:5px;bottom:3px;font:11px 'DM Mono';color:#25452f99}.side{display:grid;gap:14px}.turn-card,.moves-card,.mini-card{background:var(--paper);color:var(--ink);border-radius:12px;padding:18px}.player-row{display:flex;align-items:center;gap:11px;padding:9px 0}.player-dot{width:31px;height:31px;border-radius:50%;display:grid;place-items:center}.player-dot.white{background:#edf0e8;color:#1d3526;border:1px solid #c7cec3}.player-dot.black{background:#254136;color:white}.player-row strong{font-size:14px}.player-row small{display:block;color:#7e8c84;margin-top:2px}.turn{border-top:1px solid var(--line);margin-top:8px;padding-top:15px;color:#274638;font-weight:700;font-size:14px}.pulse{width:8px;height:8px;border-radius:50%;background:var(--green);display:inline-block;margin-right:7px;box-shadow:0 0 0 5px #36ba752b}.game-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px}.game-controls button{padding:11px;border-radius:8px;background:#ffffff12;border:1px solid #ffffff20;color:white;font-size:13px;font-weight:600}.game-controls button:hover{background:#ffffff22}.moves-card{min-height:220px}.moves-card h3{font-size:13px;text-transform:uppercase;letter-spacing:1px;margin:0 0 13px;color:#66776c}.move-list{display:grid;grid-template-columns:32px 1fr 1fr;line-height:30px;font-family:'DM Mono';font-size:13px;max-height:260px;overflow:auto}.move-num{color:#8b9891}.empty{color:#98a69e;font-size:14px;padding:18px 0}.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.choice{padding:21px;border:1px solid #dae0d8;background:var(--paper);border-radius:11px;text-align:left;color:var(--ink)}.choice.active{border:2px solid var(--green);background:#effbf4}.choice strong,.choice span{display:block}.choice strong{font-size:17px}.choice span{color:#718078;font-size:13px;margin-top:4px}.form-card{background:var(--paper);color:var(--ink);border-radius:14px;padding:26px;max-width:700px}.field-label{font-size:13px;font-weight:700;margin:19px 0 7px;display:block}.input,select{width:100%;padding:13px;border:1px solid #d4dbd3;border-radius:8px;background:white;color:var(--ink)}.segmented{display:flex;gap:8px}.segmented button{flex:1;padding:12px;border:1px solid #d2d9d1;background:white;border-radius:8px;color:#3b5042}.segmented button.active{background:#17372c;color:white;border-color:#17372c}.history-table{background:var(--paper);color:var(--ink);border-radius:13px;overflow:hidden}.history-row{display:grid;grid-template-columns:1.1fr 1.2fr 1.2fr .9fr .7fr .55fr;align-items:center;gap:8px;padding:15px 18px;border-bottom:1px solid #e5e8e2;font-size:14px}.history-row.header{background:#f0f3ed;font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:#718078;font-weight:700}.result{font-size:12px;border-radius:20px;padding:5px 9px;background:#e3f6e9;color:#16814b;width:max-content}.result.draw{background:#f4ead5;color:#876012}.link-btn{border:0;background:none;color:#148451;font-weight:700}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:30px}.auth-card{width:min(440px,100%);background:var(--paper);color:var(--ink);padding:30px;border-radius:16px;box-shadow:var(--shadow)}.auth-card .brand{margin-bottom:30px}.tabs{display:flex;border-bottom:1px solid var(--line);gap:20px}.tabs button{background:none;border:0;padding:0 0 12px;color:#78877e;font-weight:700}.tabs button.active{color:#157b4a;border-bottom:2px solid #28ad6a}.modal-backdrop{position:fixed;z-index:20;inset:0;background:#05150db0;display:grid;place-items:center;padding:20px}.modal{background:var(--paper);color:var(--ink);border-radius:15px;padding:28px;width:min(410px,100%);box-shadow:var(--shadow);text-align:center}.modal h2{font-family:'Playfair Display';font-size:30px;margin:0 0 8px}.promotion{display:flex;justify-content:center;gap:8px;margin:20px 0}.promotion button{width:62px;height:62px;font-size:36px;background:#e8ede5;border:1px solid #cdd5ca;border-radius:8px}.toast{position:fixed;right:25px;bottom:25px;background:#f9fbf7;color:#17372c;border-radius:9px;padding:13px 17px;box-shadow:var(--shadow);font-size:14px;font-weight:600;z-index:30;animation:toast .25s}.toast.success{border-left:4px solid var(--green)}@keyframes toast{from{transform:translateY(15px);opacity:0}to{transform:none;opacity:1}}.tag{font:11px 'DM Mono';padding:5px 8px;background:#dff6e8;color:#16814b;border-radius:4px}@media(max-width:760px){.container{width:min(100% - 28px,600px)}.nav{height:72px}.nav-links a:not(.nav-login){display:none}.hero{grid-template-columns:1fr;padding-top:45px;gap:45px}.hero h1{font-size:54px;letter-spacing:-2.5px}.hero-board-wrap{max-width:390px}.dashboard-grid{grid-template-columns:repeat(2,1fr)}.actions{grid-template-columns:1fr}.game-layout{grid-template-columns:1fr;gap:18px}.board-shell{padding:15px 15px 0 0}.page-head{padding:23px 0}.page-head h1{font-size:35px}.history-row{grid-template-columns:1fr 1fr .7fr .45fr;padding:13px;font-size:12px}.history-row>*:nth-child(1),.history-row>*:nth-child(5){display:none}.choice-grid{grid-template-columns:1fr}.square{font-size:clamp(24px,10vw,49px)}}
