@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-ext-wght-normal-BOFOeGcA.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-wght-normal-Xz1IZZA0.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-vietnamese-700-normal-DYeBwlKR.woff2) format("woff2"),url(/assets/barlow-condensed-vietnamese-700-normal-DhIzd8Tb.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-ext-700-normal-CwuXbfVR.woff2) format("woff2"),url(/assets/barlow-condensed-latin-ext-700-normal-BIHFfxf0.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-700-normal-v1xN8_Wq.woff2) format("woff2"),url(/assets/barlow-condensed-latin-700-normal-Dmwat-ge.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/barlow-condensed-vietnamese-800-normal-CpjukuLw.woff2) format("woff2"),url(/assets/barlow-condensed-vietnamese-800-normal-BZxKbt5V.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/barlow-condensed-latin-ext-800-normal-DGNyg4u8.woff2) format("woff2"),url(/assets/barlow-condensed-latin-ext-800-normal-gY_0Gifi.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/barlow-condensed-latin-800-normal-BKzMuPgK.woff2) format("woff2"),url(/assets/barlow-condensed-latin-800-normal-e9GbPXiK.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-family:DM Sans Variable,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#eef1e7;background:#111711;font-synthesis:none;--bg:#111711;--panel:#1a211a;--panel-light:#202920;--line:#2b342b;--muted:#929e90;--green:#c7eaa0;--green-ink:#1e3018;--coral:#dc8c73;--ivory:#e5dec5;color-scheme:dark}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button,a,input{-webkit-tap-highlight-color:transparent}button{color:inherit}button:focus-visible{outline:2px solid var(--green);outline-offset:4px}a:focus-visible{outline:2px solid var(--green);outline-offset:4px}input:focus-visible{outline:none;border-color:var(--green)!important;box-shadow:0 0 0 3px #c7eaa012}a{color:var(--green)}button{border:0}h1,h2,h3,p{margin:0}h1{font-family:Barlow Condensed,Impact,sans-serif;font-size:54px;line-height:1.05;font-weight:400;letter-spacing:-1.2px}h2{font-size:21px;letter-spacing:-.6px;font-weight:550}h3{font-size:17px;font-weight:550;letter-spacing:-.2px}em{font-family:Barlow Condensed,Impact,sans-serif;font-weight:400}svg{flex-shrink:0}strong{font-weight:600}.muted{color:var(--muted)}.accent{color:var(--green)}.small{font-size:12px!important}.eyebrow{font-size:10px;font-weight:600;letter-spacing:1.65px;line-height:1.7;color:#abb6a5;display:flex;align-items:center;gap:8px}.tiny-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);flex-shrink:0}.button{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;transition:background .18s,box-shadow .18s,transform .18s}.full-width{width:100%}.icon-button{width:34px;height:34px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;background:transparent;color:#a6b09e;flex-shrink:0;transition:background .15s,color .15s}.icon-button:hover:not(:disabled){background:#ffffff0b;color:#e8eddf}.text-button{padding:0;background:transparent;font-size:12px;display:inline-flex;align-items:center;gap:7px;color:#c6d5b8;font-weight:500}.text-button:hover:not(:disabled){color:var(--green)}.brand{display:inline-flex;align-items:center;gap:10px;font-size:29px;letter-spacing:-1.5px;font-weight:650;line-height:1}.brand-mark{height:36px;width:36px;background:var(--green);color:#283b1d;display:flex;align-items:center;justify-content:center;border-radius:10px;transform:rotate(-7deg);margin-right:2px}.brand-mark svg{transform:rotate(7deg)}.brand-period{color:var(--green);margin-left:-10px}.brand-button{padding:0;background:transparent;text-align:left}.avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:#364733;color:#daedc9;font-size:13px;font-weight:600;flex-shrink:0;letter-spacing:.3px}.avatar-1{background:#4d3d31;color:#edd5b5}.avatar-2{background:#364642;color:#c4e2db}.avatar-3{background:#454239;color:#ede2bb}.avatar-4{background:#3f3d4d;color:#dcd4ed}.avatar.large{width:80px;height:80px;font-size:27px;border-radius:23px}.avatar.small-avatar{width:33px;height:33px;border-radius:50%;font-size:11px}.online-dot{position:absolute;width:9px;height:9px;background:var(--green);border:2px solid var(--panel);border-radius:50%;right:-1px;bottom:-1px}.spinner{animation:spin .9s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.auth-page{min-height:100dvh;display:flex;flex-direction:column;background:var(--bg);padding:24px}.auth-header{display:flex;align-items:center;width:100%;flex-shrink:0}.auth-layout{width:100%;max-width:420px;flex:1;display:flex;align-items:center;justify-content:center;margin:0 auto;padding:32px 0}.auth-card{width:100%}.auth-card{padding:36px}.auth-card h2{font-family:Barlow Condensed,Impact,sans-serif;font-size:36px;font-weight:400;letter-spacing:-.8px;margin-bottom:8px}.auth-card>.muted{font-size:13px;line-height:1.6}.segmented{display:flex;padding:4px;background:#121a12;border:1px solid #2d3929;border-radius:9px;gap:4px;margin:26px 0 24px}.segmented button{flex:1;background:transparent;color:#9eab93;padding:10px;border-radius:6px;font-size:12px;font-weight:500}.segmented button.selected{background:#34412e;color:#e7efd8;box-shadow:0 2px 4px #0002}form label{display:block;font-size:12px;color:#d9dfd2;margin-bottom:18px;font-weight:500}form label>input{display:block;width:100%;border:1px solid #344030;background:#151d14;border-radius:8px;padding:13px 14px;font-size:13px;color:#f0f2eb;margin-top:8px;transition:border-color .15s}.password-input input{display:block;width:100%;border:1px solid #344030;background:#151d14;border-radius:8px;padding:13px 14px;font-size:13px;color:#f0f2eb;margin-top:8px;transition:border-color .15s}input::placeholder{color:#74806d}.field-hint{display:block;font-size:10px;color:#8b9980;line-height:1.5;margin-top:5px;font-weight:400}.password-input{position:relative;display:block}.password-input input{padding-right:45px}.auth-card form>.button{margin-top:4px}.form-error{padding:10px 12px;border:1px solid #704e3f;background:#a3563912;border-radius:7px;color:#f4b49d;font-size:12px;line-height:1.5;margin:12px 0}.boot-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:30px;padding:30px;text-align:center}.boot-screen p{font-size:14px;color:var(--muted);max-width:430px;line-height:1.7}.app-shell{min-height:100dvh}.sidebar{position:fixed;width:230px;top:0;bottom:0;left:0;border-right:1px solid var(--line);background:#171e16;padding:32px 20px 0;display:flex;flex-direction:column;z-index:30}.sidebar .brand-button{padding-left:8px}.sidebar-play{margin:40px 0 30px;padding:13px 15px;justify-content:flex-start}.sidebar-play svg:last-child{margin-left:auto}.nav-label{font-size:9px;letter-spacing:1.5px;color:#7f8e76;margin:0 0 14px 13px;font-weight:600}.sidebar nav{display:flex;flex-direction:column;gap:6px}.nav-item{width:100%;display:flex;align-items:center;gap:12px;background:transparent;border-radius:8px;padding:13px 12px;color:#9eab95;text-align:left;font-size:12px;transition:background .15s}.nav-item:hover{background:#ffffff05;color:#e3eada}.nav-item.active{background:#c7eaa00e;color:var(--green);box-shadow:inset 3px 0 var(--green)}.nav-count{margin-left:auto;min-width:20px;height:20px;background:#c7eaa019;display:flex;align-items:center;justify-content:center;font-size:10px;border-radius:5px}.sidebar-bottom{margin-top:auto}.sidebar-message{padding:28px 14px 30px;margin-top:30px;border-top:1px solid var(--line);color:#b4c2a7}.sidebar-message svg{color:#718e59}.sidebar-message p{font-size:15px;line-height:1.5;margin:14px 0 9px}.sidebar-message em{font-size:21px;color:#cad9ba}.sidebar-message>span{font-size:10px;color:#819174}.sidebar-bottom>.nav-item{margin-bottom:18px}.sidebar-bottom>.nav-item svg:last-child{margin-left:auto}.sidebar-profile{border-top:1px solid var(--line);padding:21px 0;display:flex;align-items:center;gap:7px}.profile-nav{background:transparent;display:flex;align-items:center;gap:9px;padding:0;min-width:0;text-align:left;flex:1}.profile-nav .avatar{width:35px;height:35px;font-size:11px;border-radius:10px}.profile-nav>span:last-child{min-width:0;display:flex;flex-direction:column;gap:4px}.profile-nav strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:108px}.profile-nav small{font-size:9px;color:#85967a}.main-shell{margin-left:230px;min-height:100dvh}.topbar{height:76px;border-bottom:1px solid var(--line);padding:0 40px;display:flex;align-items:center;justify-content:space-between;background:#111711dc}.topbar-left,.topbar-right{display:flex;align-items:center;gap:20px}.live-status{display:flex;align-items:center;gap:7px;font-size:10px;color:#9aac8b}.topbar-right>.icon-button{border-left:1px solid var(--line);border-radius:0;padding-left:16px;width:36px}.topbar-avatar{padding:0;background:transparent}.menu-toggle{display:none}.page-content{max-width:1450px;margin:auto;padding:42px 40px 22px;min-height:calc(100dvh - 76px);display:flex;flex-direction:column}.page-content>div{flex:1}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:32px}.page-heading h1{margin:9px 0 13px}.page-heading p{font-size:12px;color:#9aaa90;line-height:1.7}.page-heading>.button{margin-top:15px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:36px;padding:24px 0}.stat{padding:0 24px;border-right:1px solid var(--line)}.stat:last-child{border:0}.stat-label{font-size:9px;letter-spacing:1.3px;color:#9aa98e;display:flex;align-items:center;gap:8px;margin-bottom:12px}.stat-label svg{color:#9eb188}.stat>strong{display:flex;align-items:baseline;font-size:31px;font-weight:500;letter-spacing:-1px}.stat:first-child>strong{color:var(--green)}.stat-detail{color:#798970;font-size:9px;letter-spacing:0;font-weight:400;margin-left:14px}.percent{font-size:17px;letter-spacing:0;margin-left:3px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.section-heading .eyebrow{margin-bottom:6px}.count-label{font-size:11px;color:#819275}.small-tabs{display:flex;align-items:center;gap:15px}.small-tabs button{background:transparent;color:#8b9a80;display:flex;align-items:center;gap:6px;padding:5px 0;font-size:11px;border-bottom:1px solid transparent}.small-tabs button.selected{color:var(--green);border-bottom-color:var(--green)}.small-tabs button span{color:#a0b18f;background:#c7eaa00a;border-radius:4px;font-size:9px;padding:2px 4px}.page-loading{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;min-height:65vh;font-size:13px;color:#a5b299}.loading-inline{padding:30px;text-align:center;color:var(--muted)}.board-wrap{position:relative;width:100%;padding-left:18px;padding-bottom:24px}.board{position:relative;aspect-ratio:1;border:7px solid #404a32;border-radius:9px;box-shadow:0 15px 38px #0003,0 0 0 1px #62714a35;overflow:hidden;background:#37452c}.squares{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);position:absolute;inset:0}.square{position:relative;min-width:0;min-height:0;padding:0;border-radius:0;aspect-ratio:1;transition:background .15s;opacity:1!important}.square.light{background:#c6cfaa}.square.dark{background:#586c44}.square.dark:hover:not(:disabled){background:#667e4e}.square.selected{background:#93ad62!important;box-shadow:inset 0 0 0 3px #dff8b5}.square:focus-visible{outline-offset:-4px;z-index:4;outline:3px solid #fff8d9}.piece-cell{position:absolute;width:12.5%;height:12.5%;padding:1.15%;pointer-events:none;display:flex;align-items:center;justify-content:center;will-change:top,left}.piece{width:100%;height:100%;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px #0004,0 7px 8px #1b221950;transition:box-shadow .2s;border:2px solid #0002}.piece.red{background:linear-gradient(145deg,#f3aa8a,#c77f60);border-color:#f2ad8550;color:#9d5940;box-shadow:0 4px #935739,0 7px 8px #1b221970}.piece.black{background:linear-gradient(145deg,#f5edcf,#cbc4a7);border-color:#fff9d755;color:#a39b77;box-shadow:0 4px #908967,0 7px 8px #1b221950}.piece-rim{width:83%;height:83%;border:1px solid currentColor;border-radius:50%;box-shadow:inset 0 1px 1px #fff7;display:flex;align-items:center;justify-content:center;position:relative}.piece-rim:after{content:"";position:absolute;inset:8%;border:1px solid currentColor;border-radius:50%;opacity:.42}.piece-face{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.piece-face svg{width:48%;height:48%;color:inherit;z-index:1}.piece-engraving{width:20%;height:20%;border-radius:50%;background:currentColor;opacity:.23;box-shadow:0 1px #fff8}.piece.king .piece-rim{border-width:2px}.piece.lifted{box-shadow:0 5px #77492d,0 13px 12px #16251390;filter:brightness(1.1)}.move-dot{position:absolute;width:25%;height:25%;left:37.5%;top:37.5%;border-radius:50%;background:#dbf5a7bb;box-shadow:0 0 0 6px #def5ad22;z-index:5;pointer-events:none}.capture-dot{background:#fff6c9}.rank-labels{position:absolute;left:0;top:7px;bottom:31px;display:grid;grid-template-rows:repeat(8,1fr);font-size:9px;color:#92a17f;align-items:center}.file-labels{position:absolute;left:25px;right:7px;bottom:4px;display:grid;grid-template-columns:repeat(8,1fr);font-size:9px;text-align:center;color:#92a17f}.mini-board{padding:0}.mini-board .board{border-width:4px;border-radius:6px;box-shadow:0 7px 18px #0002}.mini-board .piece{border-width:1px;box-shadow:0 2px #0004,0 3px 4px #0003}.mini-board .piece-rim:after{border-width:.5px}.mini-board .piece-engraving{display:none}.pending-section{margin-bottom:30px;overflow:hidden}.invitation{display:flex;align-items:center;gap:14px;padding:15px 18px;border-bottom:1px solid #35432c}.invitation:last-child{border-bottom:0}.invitation>div{flex:1}.invitation strong{display:block;font-size:12px;margin-bottom:4px}.invitation span:not(.avatar){font-size:10px;color:#9fae91}.waiting-row{display:flex;align-items:center;gap:12px;padding:14px 18px;font-size:11px;color:#aebca3}.waiting-row .text-button:nth-last-child(2){margin-left:auto}.waiting-row+.waiting-row{border-top:1px solid var(--line)}.waiting-dot{width:7px;height:7px;border-radius:50%;background:#c4bf80}.welcome-banner{background:radial-gradient(ellipse at 92% 30%,#74894c25,transparent 55%),#202c1b;border:1px solid #3d4e31;border-radius:13px;min-height:304px;display:flex;align-items:center;justify-content:space-between;overflow:hidden;padding:32px 34px;position:relative}.welcome-banner>div:first-child{position:relative;z-index:2}.welcome-banner h2{font-family:Barlow Condensed,Impact,sans-serif;font-size:42px;line-height:1.07;font-weight:400;margin:14px 0;letter-spacing:-.8px}.welcome-banner h2 em{color:#c5db9e}.welcome-banner p{font-size:11px;line-height:1.8;color:#a4b392;margin-bottom:20px}.banner-note{font-size:9px;color:#8da376;display:flex;align-items:center;gap:7px;margin-top:17px}.banner-note .tiny-dot{width:4px;height:4px}.welcome-board{width:270px;flex-shrink:0;transform:rotate(-11deg);margin-right:10px;margin-left:16px;box-shadow:0 0 0 15px #c7eaa008,0 0 0 30px #c7eaa004;border-radius:10px}.welcome-board .board{border:7px solid #56663e;box-shadow:0 10px 30px #0004}.game-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.game-card{background:#1b231a;border:1px solid var(--line);border-radius:11px;text-align:left;padding:0;overflow:hidden}.game-card.your-turn{border-color:#4a6038}.game-card-head{display:flex;justify-content:space-between;align-items:center;padding:16px 15px 13px}.badge{display:inline-flex;align-items:center;gap:6px;font-size:10px;padding:5px 8px;border-radius:5px;background:#ffffff06;color:#a6b69a;line-height:1.5}.badge .tiny-dot{background:#8b987d;width:4px;height:4px}.badge.green{background:#c7eaa012;color:#c8e9a4}.badge.green .tiny-dot{background:#c7eaa0}.game-card-head>.small{font-size:9px!important}.game-card-body{padding:0 15px 18px;display:flex;gap:15px;align-items:center}.card-board{width:46%;flex-shrink:0}.card-opponent{display:flex;flex-direction:column;gap:6px;min-width:0}.card-opponent .avatar{width:32px;height:32px;font-size:10px;border-radius:9px;margin-bottom:6px}.card-opponent strong{font-size:12px;overflow:hidden;text-overflow:ellipsis}.card-opponent>.small{font-size:9px!important}.game-card-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 15px;border-top:1px solid var(--line);font-size:10px;color:#b5c7a5}.game-card.your-turn .game-card-footer{color:var(--green)}.dashboard-bottom{margin-top:36px;display:grid;grid-template-columns:1.6fr 1fr;gap:32px}.recent-list{border:1px solid var(--line);border-radius:10px;overflow:hidden}.quiet-empty{display:flex;align-items:center;justify-content:center;gap:16px;padding:37px 20px;min-height:128px;background:#192118;border:1px dashed #34402d;border-radius:10px}.quiet-empty>svg{color:#6f835f}.quiet-empty p{font-size:12px;line-height:1.8;color:#b8c3ac}.quiet-empty p span{color:#7f9173;font-size:11px}.tip-card{background:#1b2518;border:1px solid #34432a;border-radius:11px;padding:24px}.tip-card .eyebrow{font-size:8px;letter-spacing:1.2px;color:#a2b68e}.tip-card h3{font-family:Barlow Condensed,Impact,sans-serif;font-size:30px;font-weight:400;line-height:1.08;margin:14px 0}.tip-card p{color:#8e9f81;font-size:11px;line-height:1.7;margin-bottom:16px}.empty-state{background:#192118;border:1px dashed #354330;border-radius:11px;text-align:center;padding:43px 24px;display:flex;flex-direction:column;align-items:center}.empty-icon{width:60px;height:60px;display:flex;align-items:center;justify-content:center;color:#92af76;background:#c7eaa008;border:1px solid #c7eaa015;border-radius:17px;margin-bottom:18px}.empty-state :is(h2,h3){font-family:Barlow Condensed,Impact,sans-serif;font-size:28px;font-weight:400;margin-bottom:12px}.empty-state p{font-size:12px;color:#8fa080;line-height:1.8;max-width:420px}.empty-state .button{margin-top:25px}.lobby-info{display:flex;align-items:center;gap:28px;font-size:11px;color:#92a57f;padding:17px 21px;border:1px solid var(--line);border-radius:9px;background:#192118;margin-bottom:35px}.lobby-info>span{display:flex;align-items:center;gap:7px}.open-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.open-card{background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:20px}.open-card-title{display:flex;gap:11px;align-items:center}.open-card-title>div{min-width:0}.open-card-title strong{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis}.open-card-title>div>span{display:block;font-size:10px;color:#8e9f80;margin-top:5px}.open-seat{margin-left:auto;display:flex;align-items:center;gap:5px;font-size:9px;color:var(--green)}.open-seat .tiny-dot{width:4px;height:4px}.open-game-info{display:flex;justify-content:space-between;font-size:10px;color:#869a76;margin:25px 0 15px}.players-section{margin-top:36px}.search-input{display:flex;align-items:center;gap:10px;border:1px solid #35412f;background:#172016;border-radius:8px;padding:0 12px;color:#829777}.search-input input{width:100%;padding:11px 0;border:0;background:transparent;font-size:12px;color:#e5eddb;min-width:0}.search-input:focus-within{border-color:var(--green)}.search-input input:focus-visible{box-shadow:none}.people-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.person-card{display:flex;gap:11px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:16px;background:var(--panel)}.person-card>div{flex:1;min-width:0}.person-card strong{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis}.person-card small{display:block;margin-top:5px;font-size:10px;color:#8a9d7c}.person-card .icon-button{background:#c7eaa008;color:#c1d5ad}.history-row{width:100%;display:flex;align-items:center;gap:13px;background:#192118;padding:16px 19px;text-align:left;border-bottom:1px solid var(--line)}.history-row:last-child{border-bottom:0}.history-row:hover{background:#202a1d}.history-row .avatar{width:33px;height:33px;font-size:10px;border-radius:10px}.history-opponent{flex:1;min-width:0}.history-opponent strong{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis}.history-opponent small{font-size:9px;display:block;color:#829674;margin-top:5px}.result{font-size:10px;border-radius:5px;padding:4px 10px;min-width:45px;text-align:center;background:#354035;color:#b5c4b1}.result-win{background:#c7eaa017;color:var(--green)}.result-loss{background:#dd977017;color:#d9a18a}.history-time{color:#889d7a;font-size:10px;margin:0 10px;min-width:54px;text-align:right}.history-row>svg{color:#819675}.history-table{border:1px solid var(--line);border-radius:11px;overflow:hidden}.history-table-head{display:flex;align-items:center;background:#212a1e;border-bottom:1px solid var(--line);padding:13px 20px;font-size:9px;letter-spacing:1px;color:#9cae8c;gap:13px}.history-table-head span:first-child{flex:1}.history-table-head span:nth-child(2){width:45px}.history-table-head span:nth-child(3){width:74px;text-align:right}.history-table-head span:last-child{width:17px}.pagination{display:flex;align-items:center;gap:8px;margin-top:20px}.pagination>span{margin-right:auto}.profile-card{background:linear-gradient(120deg,#26351e,#192118);border:1px solid #3c5030;border-radius:13px;padding:30px;display:flex;align-items:center;gap:24px;margin-bottom:25px}.profile-card h2{font-size:25px;margin-bottom:7px}.profile-card p{font-size:12px;color:#a8b898;margin-bottom:8px;word-break:break-word}.profile-badge{margin-left:auto;background:#c7eaa00e;border:1px solid #c7eaa01a;padding:9px 12px;border-radius:7px;display:flex;align-items:center;gap:8px;color:#c9e6af;font-size:10px}.rivalries{border:1px solid var(--line);border-radius:11px;overflow:hidden}.rivalry{display:flex;align-items:center;gap:16px;padding:20px;background:var(--panel);border-bottom:1px solid var(--line)}.rivalry:last-child{border:0}.rivalry-name{flex:1;min-width:0}.rivalry-name strong{font-size:13px;display:block;overflow:hidden;text-overflow:ellipsis}.rivalry-name small{font-size:10px;display:block;color:#8e9e81;margin-top:5px}.rivalry-score{display:flex;gap:24px;margin-right:20px}.rivalry-score>span{font-size:10px;color:#889c77}.rivalry-score strong{font-size:20px;display:block;font-weight:500;line-height:1.5;color:#d2ddc8}.rivalry-score strong.accent{color:var(--green)}.rules-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.rule-card{padding:28px;background:#192118;border:1px solid var(--line);border-radius:11px}.rule-number{font-family:Barlow Condensed,Impact,sans-serif;font-size:35px;color:#779a59;display:block;margin-bottom:20px}.rule-card h3{font-size:17px;margin-bottom:13px}.rule-card p{font-size:12px;color:#9aa88e;line-height:1.8}.room-content{max-width:1320px;padding-top:25px}.game-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);gap:34px;align-items:start}.game-board-section{min-width:0}.game-board-section .board-wrap{padding-left:20px;padding-bottom:25px}.game-board-section .board{border:8px solid #424e34;box-shadow:0 15px 35px #0004}.player-strip{display:flex;align-items:center;gap:12px;padding:15px 10px 20px 22px;min-height:75px}.player-strip>div:nth-child(2){min-width:0}.player-strip strong{display:flex;align-items:center;gap:7px;font-size:13px;overflow:hidden;text-overflow:ellipsis}.player-strip>div>span{display:block;margin-top:5px}.you-label{font-size:8px!important;padding:2px 5px;background:#c7eaa010;color:#bfd5a9;letter-spacing:0;font-weight:400;border-radius:3px}.piece-count{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:10px;color:#a7b69b;flex-shrink:0}.piece-count .color-dot{margin-top:0!important}.piece-count>span:last-child{font-size:9px!important;margin-top:0!important}.turn-indicator{display:flex;align-items:center;gap:5px;font-size:9px;color:var(--green);background:#c7eaa00b;padding:5px 7px;border-radius:4px;flex-shrink:0}.turn-indicator .tiny-dot{width:4px;height:4px}.vacant{background:#263322;color:#8aa074;border:1px dashed #4d613e}.board-toolbar{display:flex;align-items:center;gap:4px;padding:3px 0 0 22px}.board-toolbar>span{display:flex;align-items:center;gap:7px;font-size:9px;color:#859b77;margin-right:auto}.board-toolbar .tiny-dot{width:4px;height:4px}.color-dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex-shrink:0}.color-dot.red{background:var(--coral)}.color-dot.black{background:var(--ivory)}.game-panel{margin-top:10px;overflow:hidden}.turn-panel{padding:27px 24px 25px;background:#222d1c;border-bottom:1px solid #36452c}.turn-panel.my-turn{background:linear-gradient(135deg,#2c3c21,#23301b)}.turn-panel .eyebrow{font-size:9px;color:#a2b690}.turn-panel h2{font-family:Barlow Condensed,Impact,sans-serif;font-size:34px;line-height:1.08;letter-spacing:-.4px;font-weight:400;margin:12px 0}.turn-panel.my-turn h2{color:#d5ecb7}.turn-panel p{font-size:11px;line-height:1.8;color:#a6b498;min-height:40px}.move-panel-heading{display:flex;align-items:center;justify-content:space-between;padding:18px 23px;border-bottom:1px solid var(--line)}.move-panel-heading h2{font-size:12px;color:#d4dfc9}.move-log{height:228px;overflow:auto;padding:10px 13px;scrollbar-width:thin;scrollbar-color:#455c32 transparent}.move-entry{display:flex;width:100%;align-items:center;gap:13px;text-align:left;background:transparent;border-radius:5px;padding:9px 10px;font-size:11px}.move-entry:disabled{opacity:1;color:inherit}.move-entry:hover:not(:disabled){background:#c7eaa00d}.move-entry.replay-selected{background:#c7eaa00d}.move-entry>span:first-child{width:18px}.move-entry .color-dot{width:7px;height:7px}.move-entry strong{font-weight:400;font-variant-numeric:tabular-nums;line-height:1.7;color:#c1d1b3;font-size:11px}.journal-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:#66874e}.journal-empty>span{font-size:11px;line-height:1.8;text-align:center;color:#809774}.game-panel-note{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding:17px 23px;color:#86a16e}.game-panel-note span{font-size:9px;color:#81966f;line-height:1.6}.computer-notice{display:flex;align-items:center;gap:10px;padding:16px 18px;background:#c7eaa00e;border-bottom:1px solid #3c4a31;color:#a4c283;flex-wrap:wrap}.computer-notice p{font-size:11px;color:#cedfbe;flex:1;line-height:1.6}.computer-notice>div{display:flex;gap:6px}.replay-controls{display:flex;align-items:center;justify-content:space-between;gap:5px;border-top:1px solid var(--line);padding:12px 19px}.replay-controls>span{font-size:10px;margin-right:auto;color:#99af85}.rematch-button{width:calc(100% - 38px);margin:5px 19px 18px;font-size:12px}.waiting-actions{padding:15px 19px;border-top:1px solid var(--line)}.game-error{display:flex;flex-direction:column;gap:25px;align-items:center;justify-content:center;min-height:60vh;color:#d3b69d;font-size:13px}.confirmation-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:25px}.modal-backdrop{position:fixed;inset:0;background:#060b08b5;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);display:flex;align-items:center;justify-content:center;z-index:100;padding:24px;overflow:auto}.modal{position:relative;width:100%;max-width:510px;padding:32px}.modal-close{position:absolute;top:16px;right:16px}.modal>.eyebrow{margin-bottom:12px;font-size:8px;color:#98b383}.modal h2{font-family:Barlow Condensed,Impact,sans-serif;font-size:34px;font-weight:400;line-height:1.15;letter-spacing:-.5px;max-width:90%;margin-bottom:10px}.modal>.muted{font-size:12px;line-height:1.8}.game-mode-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:25px}.game-mode{flex:1;display:flex;align-items:flex-start;flex-direction:column;padding:18px 15px;border:1px solid #3c4d32;border-radius:9px;background:#182115;text-align:left;color:#9bb487;gap:10px}.game-mode strong{font-size:12px;color:#d0dbc7;margin-top:2px}.game-mode span{font-size:10px;line-height:1.7;color:#819772}.game-mode.chosen{background:#c7eaa00c;border-color:#87a863;color:var(--green)}.game-mode.chosen strong{color:#d9edc2}.game-settings{display:flex;justify-content:space-between;align-items:center;margin:22px 0;padding:16px 0;border-top:1px solid #35462b;border-bottom:1px solid #35462b;color:#a7bd94;font-size:10px;gap:10px}.game-settings>span{display:flex;align-items:center;gap:7px}.modal-footnote{font-size:10px;text-align:center;color:#8ca17c;margin-top:15px;line-height:1.7}.opponent-search{margin-top:20px}.player-options{max-height:210px;overflow:auto;margin-top:12px;scrollbar-width:thin;scrollbar-color:#526742 transparent}.player-options>p{padding:15px;line-height:1.7}.player-option{display:flex;align-items:center;gap:12px;border:1px solid transparent;background:transparent;border-radius:8px;padding:12px;width:100%;text-align:left}.player-option:hover{background:#ffffff05}.player-option.chosen{background:#c7eaa00a;border-color:#4f693b}.player-option strong{font-size:12px;display:block}.player-option small{font-size:10px;color:#849f73;display:block;margin-top:5px}.player-option>svg{margin-left:auto;color:var(--green)}.selected-opponent{font-size:11px;color:#a6b998;margin-top:12px}.selected-opponent strong{color:var(--green)}.auth-page+.toast-region{left:24px}.toast-region{position:fixed;bottom:25px;left:250px;right:25px;display:flex;justify-content:center;z-index:200;pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:20px;max-width:520px;background:#2c3a24;border:1px solid #5c7745;border-radius:10px;padding:12px 14px 12px 20px;box-shadow:0 10px 50px #0006;color:#dfedce;font-size:12px;line-height:1.6}.nav-overlay{display:none}@media(min-width:1600px){.page-content{padding-top:48px}.welcome-board{width:330px}.welcome-banner{min-height:360px}.game-board-section .board-wrap{max-width:660px}}@media(max-width:1200px){.sidebar{width:206px;padding-left:16px;padding-right:16px}.main-shell{margin-left:206px}.topbar{padding:0 28px}.page-content{padding-left:28px;padding-right:28px}.game-grid,.open-grid,.people-grid{grid-template-columns:repeat(2,1fr)}.stat{padding:0 18px}.stat-detail{display:none}.welcome-board{width:245px;margin-right:-28px}.welcome-banner{padding:30px 28px}.welcome-banner h2{font-size:37px}.dashboard-bottom{gap:24px;grid-template-columns:1.4fr 1fr}.game-layout{gap:24px;grid-template-columns:minmax(0,1.35fr) minmax(265px,1fr)}.game-panel-note{padding:16px}.turn-panel{padding:23px 20px}.turn-panel h2{font-size:30px}.turn-indicator{display:none}.toast-region{left:225px}.sidebar-profile .icon-button{width:29px}.profile-nav strong{max-width:90px}}@media(max-width:960px){.auth-card{padding:26px}.sidebar{width:185px;padding:26px 14px 0}.sidebar .brand{font-size:26px}.sidebar .brand-mark{width:31px;height:31px}.sidebar-play{font-size:11px;padding:12px 11px}.main-shell{margin-left:185px}.nav-item{font-size:11px;gap:9px;padding:12px 10px}.sidebar-message{padding-left:10px;padding-right:10px}.sidebar-profile{gap:2px}.profile-nav small{display:none}.profile-nav strong{max-width:73px;font-size:11px}.page-content{padding:32px 22px 20px}.topbar{padding:0 22px;height:66px}.topbar-right{gap:13px}.live-status{font-size:9px}.page-heading h1{font-size:43px}.page-heading .eyebrow{font-size:8px}.page-heading p{font-size:11px}.stats-grid{padding:20px 0}.stat{padding:0 14px}.stat-label{font-size:8px;letter-spacing:.5px;gap:5px}.stat-label svg{width:12px}.stat>strong{font-size:27px}.welcome-banner{padding:25px}.welcome-board{width:205px;margin-right:-80px;opacity:.65}.welcome-banner p{max-width:250px}.welcome-banner h2{font-size:36px}.welcome-banner .eyebrow{font-size:8px;letter-spacing:1px}.welcome-banner .desktop-only{display:none}.dashboard-bottom{grid-template-columns:1fr}.tip-card{display:none}.game-grid{gap:13px}.card-opponent strong{font-size:11px}.game-card-body{gap:10px}.game-card-head{padding:14px 12px}.game-card-head>.small{font-size:8px!important}.badge{font-size:9px;padding:4px 6px}.lobby-info{gap:15px;font-size:9px;padding:15px}.people-grid{gap:12px}.person-card{padding:12px;gap:9px}.person-card .avatar{width:34px;height:34px;font-size:11px}.game-layout{grid-template-columns:minmax(0,1fr)}.game-board-section{width:100%;max-width:580px;margin:auto}.game-panel{max-width:562px;width:calc(100% - 18px);margin:0 auto}.move-log{height:180px}.turn-panel p{min-height:0}.game-panel-note{display:none}.turn-indicator{display:flex}.room-content{padding-top:25px}.profile-badge{display:none}.rivalry-score{gap:16px;margin-right:0}.rivalry{flex-wrap:wrap;gap:12px}.rules-grid{gap:14px}.rule-card{padding:22px}.rule-card h3{font-size:15px}.rule-card p{font-size:11px}.toast-region{left:200px}}@media(max-width:740px){.auth-card{padding:28px}.auth-card h2{font-size:32px}.sidebar{width:235px;padding:30px 20px 0}.sidebar .brand{font-size:29px}.sidebar-play{font-size:13px}.nav-item{font-size:12px;padding:14px 12px;gap:12px}.profile-nav small{display:block}.profile-nav strong{max-width:110px;font-size:12px}.main-shell{margin-left:0}.nav-overlay{display:block;position:fixed;inset:0;background:#0008;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:29}.topbar{height:62px;padding:0 20px}.topbar-left{gap:10px}.menu-toggle{display:flex}.topbar-right{gap:9px}.topbar-right>.icon-button{display:none}.live-status{font-size:0;gap:0}.live-status .tiny-dot{width:6px;height:6px}.page-content{padding:30px 20px 20px}.page-heading{align-items:flex-start;gap:12px;margin-bottom:25px}.page-heading h1{font-size:43px}.page-heading .eyebrow{font-size:7px;letter-spacing:1px}.page-heading p{font-size:11px;max-width:350px}.page-heading>.button{margin-top:25px}.stats-grid{padding:19px 0;margin-bottom:28px}.stat{padding:0 14px}.stat-label{font-size:7px;gap:5px;letter-spacing:.7px}.stat-label svg{width:11px}.stat>strong{font-size:26px}.percent{font-size:14px}.small-tabs{gap:12px}.small-tabs button{font-size:10px}.welcome-banner{min-height:310px;padding:26px}.welcome-board{width:250px;margin-right:-130px;opacity:.55}.welcome-banner h2{font-size:40px}.welcome-banner p{max-width:250px}.welcome-banner .eyebrow{font-size:7px;max-width:200px}.game-grid{gap:14px}.game-card-head{padding:13px}.game-card-body{padding:0 13px 17px;gap:12px}.card-opponent strong{font-size:11px}.card-opponent>.small{font-size:8px!important}.dashboard-bottom{margin-top:30px}.pending-section{margin-bottom:25px}.invitation{padding:13px;gap:10px}.invitation .avatar{width:32px;height:32px;font-size:10px}.invitation strong{font-size:11px}.invitation span:not(.avatar){font-size:9px}.waiting-row{padding:13px;gap:8px;font-size:10px;flex-wrap:wrap}.waiting-row .text-button{font-size:10px!important}.toast-region{left:20px;right:20px;bottom:20px}.toast{font-size:11px;padding-left:15px}.lobby-info{flex-wrap:wrap;font-size:10px;gap:15px}.lobby-info>span:last-child{display:none}.open-grid{grid-template-columns:repeat(2,1fr);gap:13px}.open-card{padding:17px}.open-card-title .avatar{width:32px;height:32px;font-size:10px}.open-card-title strong{font-size:11px}.open-card-title>div>span{font-size:8px}.open-seat{display:none}.players-section .section-heading{align-items:flex-start}.players-section .search-input{max-width:180px}.search-input input{font-size:11px}.profile-card{padding:24px;gap:19px}.avatar.large{width:63px;height:63px;font-size:22px;border-radius:17px}.profile-card h2{font-size:22px}.profile-card p{font-size:11px}.rivalry-score{gap:19px}.rules-grid{grid-template-columns:1fr}.rule-card{padding:24px}.rule-number{margin-bottom:12px}.game-layout{gap:20px}.game-board-section .board-wrap{padding-left:17px}.game-board-section .board{border-width:6px}.rank-labels,.file-labels{font-size:8px}.player-strip{padding-left:19px;padding-right:4px;gap:10px}.player-strip strong{font-size:12px}.player-strip .avatar{width:35px;height:35px;font-size:11px}.piece-count{gap:5px}.piece-count>span:last-child{font-size:8px!important}.board-toolbar{padding-left:18px}.board-toolbar>span{font-size:8px}.game-panel{width:calc(100% - 17px);margin-left:17px}.turn-panel{padding:23px}.turn-panel h2{font-size:32px}.turn-panel p{font-size:12px}.modal-backdrop{padding:17px}.modal{padding:27px;max-height:calc(100dvh - 34px);overflow:auto}.modal h2{font-size:31px}.modal .eyebrow{font-size:7px}.game-mode{padding:16px 12px}.game-settings,.modal-footnote{font-size:9px}}@media(max-width:420px){.auth-card{padding:24px}.page-content{padding-left:16px;padding-right:16px}.topbar{padding-left:14px;padding-right:17px}.page-heading{flex-wrap:wrap}.page-heading>.button{margin-top:0}.page-heading h1{font-size:41px}.stats-grid{grid-template-columns:repeat(2,1fr);row-gap:20px}.stat:nth-child(2){border-right:0}.stat{padding-left:22px}.stat-label{font-size:8px}.stat>strong{font-size:30px}.section-heading{gap:12px}.small-tabs{gap:9px}.small-tabs button{font-size:9px}.welcome-banner{padding:24px 21px}.welcome-board{margin-right:-155px}.welcome-banner h2{font-size:36px}.welcome-banner p{font-size:10px;max-width:210px}.game-grid{grid-template-columns:1fr}.game-card-body .card-board{width:125px}.card-opponent>.small{font-size:10px!important}.card-opponent strong{font-size:14px}.game-card-head>.small{font-size:10px!important}.game-card .badge{font-size:10px}.open-grid,.people-grid{grid-template-columns:1fr}.open-card-title strong{font-size:13px}.open-card-title>div>span{font-size:10px}.open-card-title .avatar{width:40px;height:40px;font-size:13px}.open-seat{display:flex}.players-section .section-heading{flex-direction:column;gap:16px}.players-section .search-input{max-width:none;width:100%}.profile-card{padding:21px;gap:14px}.avatar.large{width:53px;height:53px;font-size:19px}.profile-card h2{font-size:20px}.profile-card p{font-size:10px}.rivalry{padding:17px}.rivalry-score{gap:18px;margin-left:52px}.rivalry .button{margin-left:auto}.history-row{padding:15px 12px;gap:10px}.history-time{font-size:9px;margin:0;min-width:40px}.history-opponent small{font-size:8px}.history-opponent strong{font-size:11px}.result{font-size:9px;min-width:37px;padding:4px 7px}.history-row>svg{width:14px}.turn-indicator{display:none}.board-toolbar>span{font-size:7px}.board-toolbar .icon-button{width:30px}.game-mode strong{font-size:11px}.game-mode span{font-size:9px}.game-settings{flex-wrap:wrap;font-size:10px;justify-content:center}.modal{padding:24px}.game-mode-options{gap:9px}.modal h2{font-size:29px}}@media(min-width:961px)and (max-height:800px){.game-board-section{max-width:max(340px,calc(100dvh - 360px));width:100%;justify-self:center}.player-strip{min-height:60px;padding-top:10px;padding-bottom:12px}.game-panel-note{display:none}.game-panel .move-log{height:200px}.turn-panel{padding-top:22px;padding-bottom:22px}.sidebar-message{padding-top:20px;padding-bottom:20px;margin-top:15px}.sidebar-play{margin-top:32px;margin-bottom:24px}.sidebar-bottom>.nav-item{margin-bottom:12px}.sidebar-profile{padding-top:17px;padding-bottom:17px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}*:before{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.piece-cell{will-change:auto}}.game-mode-computer{grid-column:1/-1;display:grid;grid-template-columns:24px 1fr;column-gap:12px;row-gap:3px;align-items:center}.game-mode-computer svg{grid-row:1/3}.game-mode-computer strong{margin:0}.computer-difficulty{border:0;padding:0;margin:22px 0 0;min-width:0}.computer-difficulty legend{font-size:12px;color:#d0dbc7;margin-bottom:10px}.computer-difficulty .segmented{margin:0;display:flex}.computer-difficulty .segmented button{flex:1}.computer-difficulty p{font-size:11px;color:var(--muted);line-height:1.7;margin-top:10px}:root{color-scheme:light;color:#171c20;background:#f4ebd5;--ink: #171c20;--paper: #f4ebd5;--cyan: #43b3ba;--yellow: #f3cb45;--bg: #f4ebd5;--panel: #f9f2e2;--panel-light: #e8dfc8;--line: #171c2038;--muted: #505451;--green: #24656b;--green-ink: #171c20;--coral: #eb684a;--ivory: #43b3ba;--display: "Barlow Condensed", Impact, sans-serif;--ink-shadow: 5px 5px 0 var(--ink)}body{background:transparent}#root{isolation:isolate;min-height:100dvh}:root{background-color:var(--paper);background-image:radial-gradient(#171c2020 .65px,transparent .85px),repeating-linear-gradient(112deg,transparent 0 19px,#171c200c 19px 20px,transparent 20px 37px);background-size:5px 5px,auto}.app-shell,.auth-page,.boot-screen,.main-shell{background:transparent}h1,.auth-card h2,.modal h2,.turn-panel h2,.welcome-banner h2,.tip-card h3{font-family:var(--display);color:var(--ink);font-weight:800;text-transform:uppercase;letter-spacing:.01em;line-height:1.05}.empty-state :is(h2,h3){font-family:var(--display);color:var(--ink);font-weight:800;text-transform:uppercase;letter-spacing:.01em;line-height:1.05}.section-heading h2{color:var(--ink);line-height:1.05}.rule-number{font-family:var(--display);color:var(--ink);font-weight:800;text-transform:uppercase;letter-spacing:.01em;line-height:1.05}h1{font-size:52px}em{font-family:inherit;font-weight:inherit;font-style:normal}h1 em,.page-heading h1 em{color:var(--ink)}.eyebrow{color:var(--ink);font-weight:700;font-size:11px;letter-spacing:1.4px}.page-heading p,.count-label,.muted,.field-hint{color:var(--muted)}.text-button,.icon-button{color:var(--ink)}.text-button:hover:not(:disabled){color:#24656b}.icon-button{border-radius:3px}.icon-button:hover:not(:disabled){color:var(--ink);background:#43b3ba25}button:focus-visible{outline:3px solid #24656b;outline-offset:4px}a:focus-visible{outline:3px solid #24656b;outline-offset:4px}.sidebar button:focus-visible{outline-color:var(--yellow)}input:focus-visible{border-color:var(--ink)!important;outline:2px solid #24656b;outline-offset:2px;box-shadow:none}.square:focus-visible{outline:3px solid var(--yellow);outline-offset:-4px}.tiny-dot{background:var(--cyan);border:1px solid var(--ink);width:7px;height:7px}.neutral-dot{background:var(--muted)}.brand{font-family:var(--display);font-size:38px;text-transform:uppercase;font-weight:800;letter-spacing:-1px;gap:7px;color:var(--ink);transform:rotate(-3deg)}.brand-mark{background:transparent;color:inherit;border-radius:0;width:25px;height:30px;margin:0;transform:none}.brand-mark svg{width:25px;height:25px;transform:none;stroke-width:2.8}.brand-name{min-width:0}.brand-last-word{white-space:nowrap}.brand-period{color:var(--yellow);margin-left:0}.avatar,.avatar.large,.avatar.small-avatar,.profile-nav .avatar,.card-opponent .avatar,.history-row .avatar{border:1px solid #171c2040;border-radius:4px 8px 3px 6px;color:var(--ink);background:var(--yellow);box-shadow:none;font-weight:700}.topbar-avatar .avatar{border:0;box-shadow:none;background:transparent;border-radius:inherit}.avatar-1{background:#e99578}.avatar-2{background:#6dc4c7}.avatar-3{background:#f1d477}.avatar-4{background:#b9b0d0}.online-dot{background:var(--cyan);border-color:var(--ink)}.auth-page{background:transparent}.auth-header .brand{padding:6px}.auth-layout{max-width:440px}.auth-card h2{font-size:44px}.segmented{border:2px solid var(--ink);background:var(--paper);border-radius:3px}.segmented button{color:var(--muted);font-weight:700;border-radius:2px}.segmented button.selected{color:var(--ink);background:var(--cyan);box-shadow:2px 2px 0 var(--ink)}form label{color:var(--ink);font-weight:600}form label>input{background:#fffaf0;border:2px solid var(--ink);border-radius:3px;color:var(--ink)}.password-input input{background:#fffaf0;border:2px solid var(--ink);border-radius:3px;color:var(--ink)}input::placeholder{color:#626760}.field-hint{font-size:11px}.form-error{color:#8e2f20;background:#fbe0d4;border:2px solid #8e2f20;border-radius:3px}.sidebar{background:var(--ink);color:var(--paper);border-right:3px solid var(--ink);box-shadow:none}.sidebar .brand{color:var(--paper)}.sidebar .brand-button{padding-left:2px}.sidebar-play{box-shadow:4px 4px 0 var(--cyan)}.sidebar-play:hover:not(:disabled){box-shadow:3px 3px 0 var(--cyan)}.nav-label{color:#cec7b5;font-size:10px}.nav-item{color:#ddd7c9;border:2px solid transparent;border-radius:3px 1px 4px 2px}.nav-item:hover{color:var(--paper);background:#ffffff0b}.nav-item.active{color:var(--ink);background:var(--cyan);border-color:var(--paper);box-shadow:3px 3px 0 var(--paper);transform:rotate(-1deg);font-weight:700}.nav-count{background:var(--ink);color:var(--paper);border-radius:2px}.sidebar-message,.sidebar-profile{border-color:#f4ebd56b}.sidebar-message{color:var(--paper)}.sidebar-message p,.sidebar-message em{font-family:var(--display);color:var(--paper);text-transform:uppercase;font-size:26px;font-weight:800;line-height:1.05}.sidebar-message svg{color:var(--yellow)}.sidebar-message>span{color:#cec7b5}.profile-nav small{color:#cec7b5}.sidebar .icon-button{color:var(--paper)}.sidebar .icon-button:hover{background:#ffffff15;color:var(--yellow)}.topbar{position:sticky;top:0;z-index:25;background:var(--paper);border-bottom:3px solid var(--ink)}.live-status{color:var(--ink);font-weight:600}.nav-overlay{background:#171c208c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.recent-list,.quiet-empty,.tip-card,.empty-state,.lobby-info,.open-card,.person-card,.history-table,.rivalries,.rule-card,.profile-card{background:var(--panel);border:1px solid var(--line);border-radius:3px 2px 5px 1px;box-shadow:none}.game-card{background:var(--panel);border:3px solid var(--ink);border-radius:3px 2px 5px 1px;box-shadow:var(--ink-shadow)}.stat{border-color:var(--line)}.stat-label{color:var(--muted)}.stat-label svg{color:var(--muted)}.stat-detail{color:var(--muted)}.stat>strong{color:var(--ink);font-family:var(--display);font-weight:800;font-size:35px}.stat:first-child>strong{color:var(--ink);font-family:var(--display);font-weight:800;font-size:35px}.small-tabs button{color:var(--muted);font-weight:600}.small-tabs button.selected{color:var(--ink);border-bottom:3px solid var(--ink)}.small-tabs button span{color:var(--ink);background:var(--yellow);border-radius:2px}.page-loading{color:var(--muted)}.game-card.your-turn{border-color:var(--ink)}.game-card{transform-origin:center}.badge{background:#e9dfc6;color:var(--ink);border:1px solid var(--ink);border-radius:2px;font-weight:600}.badge.green{background:#b7ddda;color:#174e52}.badge.green .tiny-dot{background:var(--cyan)}.game-card-footer{color:var(--muted);background:var(--paper);border-color:var(--line)}.game-card.your-turn .game-card-footer{background:var(--yellow);color:var(--ink);font-weight:600}.quiet-empty>svg{color:var(--muted)}.quiet-empty p,.quiet-empty p span,.tip-card p,.empty-state p{color:var(--muted)}.tip-card h3{font-size:34px}.tip-card .eyebrow{color:var(--ink)}.empty-icon{background:transparent;color:var(--muted);border:0;border-radius:0;box-shadow:none;width:auto;height:auto;margin-bottom:20px}.empty-icon svg{width:34px;height:34px}.empty-state{background:transparent;border:1px dashed var(--line)}.quiet-empty{background:transparent;border:0;border-top:1px solid var(--line);border-radius:0}.lobby-info{background:transparent;border:0;padding:0;gap:24px;font-size:12px}.welcome-banner{background:var(--yellow);border:1px solid var(--line);border-radius:3px 1px 5px 2px;box-shadow:none}.welcome-banner:after{content:"";position:absolute;inset:auto 0 0 auto;width:40%;height:65%;background:repeating-linear-gradient(130deg,transparent 0 5px,#171c2025 5px 6px,transparent 6px 10px);clip-path:polygon(100% 0,100% 100%,0 100%);pointer-events:none}.welcome-banner h2{font-size:46px}.welcome-banner h2 em{color:var(--ink)}.welcome-banner p,.banner-note{color:#333c39}.welcome-board{box-shadow:none;z-index:1}.waiting-row{color:var(--muted)}.invitation span:not(.avatar){color:var(--muted)}.lobby-info{color:var(--muted)}.open-card-title>div>span{color:var(--muted)}.open-game-info,.person-card small{color:var(--muted)}.waiting-dot{background:var(--yellow);border:1px solid var(--ink)}.search-input{background:#fffaf0;border:2px solid var(--ink);border-radius:3px;color:var(--ink)}.search-input input{color:var(--ink)}.search-input:focus-within{border-color:var(--ink)}.search-input.keyboard-focus:focus-within{border-color:var(--ink);outline:2px solid #24656b;outline-offset:-4px}.search-input input:focus-visible{outline:none;box-shadow:none}:root[data-theme=dark] .search-input.keyboard-focus:focus-within{outline-color:#75d2d3}.person-card .icon-button{color:var(--ink);background:var(--yellow);border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink)}.person-card .icon-button:hover:not(:disabled){background:var(--cyan)}.person-card .icon-button:active:not(:disabled){transform:translate(2px,2px);box-shadow:none}.history-row,.rivalry,.history-row:hover{background:var(--panel)}.history-opponent small,.history-time{color:var(--muted)}.history-row>svg{color:var(--muted)}.profile-card p,.rivalry-name small{color:var(--muted)}.rivalry-score>span{color:var(--muted)}.history-table-head{background:var(--paper);color:var(--ink);font-weight:700}.result{background:#deddd0;color:#424944;border:1px solid var(--ink);border-radius:2px;font-weight:700}.result-win{background:#b7ddda;color:#174e52}.result-loss{background:#f6c4b0;color:#893824}.profile-card{background:var(--yellow)}.profile-badge{background:transparent;color:var(--ink);border:0;border-radius:0}.rivalry-score strong{color:var(--ink)}.rivalry-score strong.accent,.rule-number{color:#24656b}.rule-card p{color:var(--muted)}.board,.game-board-section .board,.welcome-board .board{border:10px solid var(--ink);background:var(--ink);border-radius:4px 2px 6px 1px;box-shadow:5px 6px 0 var(--ink);overflow:visible}.board:after{content:"";position:absolute;inset:-6px;border:1px solid #f4ebd570;pointer-events:none;border-radius:3px 1px 5px 2px}.squares{overflow:hidden;border-radius:1px}.square.light{background:var(--paper)}.square.dark{background:#2b646b;background-image:repeating-linear-gradient(135deg,transparent 0 5px,#171c203d 5px 6px,transparent 6px 10px)}.square.dark:hover:not(:disabled){background-color:#367b80}.square.selected{background:#91b695!important;box-shadow:inset 0 0 0 3px var(--yellow)}.piece-cell{will-change:transform,left,top}.piece{border:3px solid var(--ink);border-radius:48% 52% 46% 54%;color:var(--ink);transition:none;position:relative}.piece.red{background:var(--coral);border-color:var(--ink);color:var(--ink)}.piece.black{background:var(--cyan);border-color:var(--ink);color:var(--ink)}.piece:before{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 2px 3px #ffffff70;pointer-events:none}.piece-rim{border:1.5px solid var(--ink);border-radius:50% 46% 51% 49%;box-shadow:inset -2px -2px #171c203b;position:relative}.piece-rim:after{inset:52% 10% 10% 12%;border:0;border-radius:0 0 60% 60%;background:repeating-linear-gradient(130deg,transparent 0 3px,var(--ink) 3px 4px,transparent 4px 6px);opacity:.55}.piece-face svg{color:var(--ink);width:46%;height:46%}.piece.lifted{filter:none;outline:2px solid var(--yellow);outline-offset:3px}.mini-board .board{border-width:4px;border-radius:3px;box-shadow:2px 3px 0 var(--ink);overflow:hidden}.mini-board .board:after{display:none}.mini-board .piece{border-width:1.5px}.mini-board .piece-rim{border-width:1px}.mini-board .piece-rim:after{border:0;opacity:.35;background-size:7px 7px}.move-dot,.capture-dot{background:var(--yellow);border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink)}.rank-labels,.file-labels{color:var(--ink);font-size:11px;font-weight:600}.player-strip{margin:0 0 18px 20px;padding:12px 14px;min-height:65px}.player-strip>div>span{color:var(--muted)}.piece-count{color:var(--muted)}.you-label{background:transparent;color:var(--muted);font-size:10px!important;padding:0}.turn-indicator{background:var(--panel-light);color:var(--ink);border:1px solid var(--ink);border-radius:2px;font-weight:700;transform:rotate(-2deg)}.vacant{background:var(--paper);color:var(--muted);border:2px dashed var(--ink)}.color-dot{border:1px solid var(--ink)}.board-toolbar>span{color:var(--muted)}.game-panel{margin-top:0}.turn-panel,.turn-panel.my-turn{background:var(--yellow);border-bottom:3px solid var(--ink);position:relative}.turn-panel:after{content:"";position:absolute;bottom:0;right:0;width:75px;height:35px;background:repeating-linear-gradient(130deg,transparent 0 5px,#171c2040 5px 6px,transparent 6px 9px);clip-path:polygon(100% 0,100% 100%,0 100%);pointer-events:none}.turn-panel .eyebrow,.turn-panel.my-turn h2,.turn-panel h2{color:var(--ink)}.turn-panel h2{font-size:38px;transform:rotate(-2deg)}.turn-panel p{color:#333c39;font-size:12px}.move-panel-heading h2{color:var(--ink);font-family:var(--display);text-transform:uppercase;font-size:24px;font-weight:800}.move-log{scrollbar-color:#505451 var(--paper)}.move-entry{border-radius:2px}.move-entry strong{color:var(--ink);font-weight:500;font-size:12px}.move-entry:hover:not(:disabled){background:#c7e0d9}.move-entry.replay-selected{background:#c7e0d9}.journal-empty{color:var(--muted)}.journal-empty>span{color:var(--muted)}.game-panel-note,.game-panel-note span{color:var(--muted)}.replay-controls>h2{margin:0 auto 0 0;line-height:normal;color:var(--ink)}.replay-panel .replay-controls{border-top:0}.computer-notice{background:#c7e0d9;color:var(--ink);border-color:var(--line)}.computer-notice p{color:var(--ink)}.game-error{background:var(--panel);color:#8e2f20}.modal-backdrop{background:#171c208c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal>.eyebrow{color:var(--ink);font-size:10px}.modal h2{font-size:40px}.game-mode{background:var(--paper);border:2px solid var(--ink);border-radius:3px;color:var(--ink)}.game-mode strong{color:var(--ink)}.game-mode span,.game-settings,.modal-footnote,.player-option small,.selected-opponent{color:var(--muted)}.game-mode.chosen{background:#b7ddda;border-color:var(--ink);color:var(--ink);box-shadow:2px 2px 0 var(--ink)}.game-mode.chosen strong{color:var(--ink)}.game-settings{border-color:var(--line)}.player-options{scrollbar-color:#505451 var(--paper)}.player-option{border-radius:3px}.player-option:hover{background:#e9dfc6}.player-option.chosen{background:#c7e0d9;border-color:var(--ink)}.computer-difficulty legend{color:var(--ink)}.toast{background:var(--panel);border:2px solid var(--ink);border-radius:3px;box-shadow:4px 4px 0 var(--ink);color:var(--ink)}.dashboard-heading h1{margin-top:0}.dashboard-heading p{font-size:15px}.stats-grid{padding:26px 0}.stat-label{font-size:13px;font-weight:600;letter-spacing:.8px;margin-bottom:10px;color:var(--ink)}.stat-label svg{width:18px;height:18px;color:var(--ink)}.stat>strong{font-size:48px;line-height:1}.stat:first-child>strong{font-size:48px;line-height:1}.percent{font-size:26px}.text-button.ink-link{padding:7px 10px;border:1.5px solid var(--ink);border-radius:2px 4px 2px 1px;background:var(--panel);color:var(--ink);font-size:12px;font-weight:600;transition:background .15s}.text-button.ink-link:hover:not(:disabled){background:var(--cyan);color:var(--ink)}.text-button.ink-link:active:not(:disabled){background:var(--yellow)}.text-button.cancel-link:hover:not(:disabled){background:#f6c4b0}.ink-link svg{transition:transform .2s}.ink-link:hover:not(:disabled) svg{transform:translate(1px,-1px)}.waiting-row .outgoing-cancel{margin-left:auto}.spring-tabs{padding:4px;gap:4px;border:2px solid var(--ink);border-radius:4px;background:var(--panel)}.spring-tabs button,.spring-tabs button.selected{position:relative;isolation:isolate;padding:8px 11px;border:0;color:var(--ink);border-radius:2px;font-size:13px;font-weight:600}.spring-tabs button>.tab-selector{position:absolute;inset:0;z-index:-1;background:var(--cyan);border:1px solid var(--ink);border-radius:2px;padding:0;box-shadow:1px 1px 0 var(--ink)}.spring-tabs button>.tab-label{font-size:inherit;padding:0;background:none}.spring-tabs button>.tab-count{font-size:11px;padding:2px 5px;background:var(--paper);border:1px solid var(--ink);border-radius:2px}.ready-banner{min-height:240px}.ready-banner h2{max-width:360px;margin:0 0 24px}.game-mode,.game-mode.chosen{position:relative;isolation:isolate;overflow:hidden;background:var(--paper)}.game-mode>.mode-fill{position:absolute;inset:0;z-index:-1;background:var(--cyan);pointer-events:none}.game-mode strong{font-size:14px}.game-mode>span:not(.mode-fill){font-size:12px}.game-mode-options,.opponent-search,.computer-difficulty{margin-bottom:24px}@media(max-width:960px){h1{font-size:46px}}@media(max-width:740px){h1{font-size:43px}.sidebar .brand{font-size:38px}.topbar{height:62px}.auth-card h2{font-size:40px}.player-strip{margin-left:17px;padding:11px 10px;min-height:62px}.game-board-section .board{border-width:8px}.game-panel{margin-left:17px}.turn-panel h2{font-size:35px}.modal h2{font-size:36px}form label>input{font-size:16px}.password-input input{font-size:16px}.dashboard-heading p{font-size:14px}.stats-grid{grid-template-columns:repeat(2,1fr);row-gap:24px;padding:24px 0}.stat{padding:0 18px}.stat:nth-child(2){border-right:0}.stat-label{font-size:13px;gap:7px;letter-spacing:.5px}.stat-label svg{width:17px;height:17px}.stat>strong{font-size:44px}.stat:first-child>strong{font-size:44px}.active-section>.section-heading{flex-wrap:wrap}.spring-tabs{gap:4px}.spring-tabs button,.spring-tabs button.selected{font-size:12px}.ready-banner{min-height:240px}.ready-banner h2{max-width:245px;font-size:38px}.game-mode strong{font-size:13px}.game-mode>span:not(.mode-fill){font-size:11px}}@media(max-width:420px){h1{font-size:41px}.auth-card{padding:26px}.auth-card h2{font-size:38px}.stat{padding:0 15px}.stat-label{font-size:12px;min-height:32px;margin-bottom:8px}.ready-banner h2{max-width:180px;font-size:36px}.waiting-row{display:grid;grid-template-columns:7px minmax(0,1fr) auto;gap:10px}.waiting-row>span:not(.waiting-dot){grid-column:2 / -1;min-width:0}.waiting-row .outgoing-cancel{grid-row:2;grid-column:3}}@media(prefers-reduced-motion:reduce){.piece-cell{will-change:auto}.ink-link svg{transition:none}.button{transition:none}.ink-link:hover:not(:disabled) svg{transform:none}.person-card .icon-button:active:not(:disabled){transform:none}}.account-settings{max-width:680px;display:grid;gap:24px}.settings-section{padding:26px;display:flex;flex-direction:column;gap:16px}.settings-section h2{font-size:24px;font-weight:700}.settings-heading{display:flex;align-items:center;justify-content:space-between}.settings-section label{display:flex;flex-direction:column;gap:8px;font-size:13px;margin-bottom:0}.settings-section label>input{width:100%;padding:12px 14px;font-size:16px;margin-top:0}.settings-section .field-hint{margin-top:-8px;font-size:12px}.settings-section>.button{align-self:flex-start;margin-top:4px}.settings-success{font-size:13px;color:#24656b;line-height:1.5}.history-rivalries{margin-top:32px}.history-view{flex-shrink:0}.history-table-head span:last-child{width:74px}@media(max-width:740px){.settings-section{padding:22px}.dashboard-heading>.button{margin-top:10px}}@media(max-width:420px){.history-row{display:grid;grid-template-columns:33px minmax(0,1fr) auto;gap:10px}.history-row .history-time{grid-column:2;text-align:left}.history-row .history-view{grid-column:3;grid-row:2}.history-table-head{display:none}}.button.spring-button,.icon-button.spring-icon{transition:background .15s,color .15s}.sidebar{transition:none}@media(prefers-reduced-motion:reduce){.button.spring-button,.icon-button.spring-icon{transition:none}}.modal.new-game-modal{height:min(690px,calc(100dvh - 34px));max-height:none;overflow:hidden;display:flex;flex-direction:column;gap:16px}.new-game-modal>h2{flex-shrink:0;margin-bottom:0}.new-game-body{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-gutter:stable;padding:8px 10px 8px 4px}.new-game-modal .game-mode-options{margin:0 0 20px}.new-game-details{height:180px;position:relative}.new-game-mode-content{position:absolute;inset:0}.new-game-modal .computer-difficulty,.new-game-modal .opponent-search{margin:0;height:100%}.new-game-modal .opponent-search{display:flex;flex-direction:column;gap:10px}.new-game-modal .search-input{flex-shrink:0;margin:0}.new-game-modal .player-options{flex:1;min-height:0;max-height:none;margin:0;overflow-y:auto}.new-game-modal .selected-opponent{flex-shrink:0;min-height:20px;margin:0;font-size:12px}.new-game-footer{flex-shrink:0}.new-game-feedback{height:34px;overflow-y:auto;margin-bottom:8px}.new-game-feedback .form-error{margin:0;padding:5px 8px;font-size:12px}.game-mode.spring-button{transition:background .15s,color .15s}.segmented.difficulty-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:4px;gap:4px}.difficulty-picker button,.difficulty-picker button.selected{position:relative;isolation:isolate;color:var(--ink);background:transparent;box-shadow:none;font-weight:700}.difficulty-selector{position:absolute;inset:0;z-index:-1;pointer-events:none;background:var(--cyan);border:1px solid var(--ink);border-radius:2px;box-shadow:1px 1px 0 var(--ink)}@media(prefers-reduced-motion:reduce){.game-mode.spring-button{transition:none}}.active-games-wrap{container-type:inline-size;overflow:hidden}.active-games-panel{overflow:clip;overflow-clip-margin:8px}.active-games-content{display:flow-root}.active-games-table{width:100%;table-layout:fixed;border-collapse:collapse;text-align:left}.active-games-table th{padding:15px 18px;font-size:11px;text-transform:uppercase;letter-spacing:1px;background:var(--paper);border-bottom:1px solid var(--line)}.active-games-table td{padding:20px 18px;border-bottom:1px solid var(--line);font-size:14px}.active-games-table tr:last-child td{border-bottom:0}.active-opponent>div{display:flex;align-items:center;gap:12px}.active-opponent strong{display:block;line-height:1.25}.active-opponent small{display:block;margin-top:5px;color:var(--muted);font-size:13px;line-height:1.25}.active-turn-label{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;white-space:nowrap}.active-turn-label:not(.is-your-turn) .tiny-dot{background:var(--muted)}.active-updated{color:var(--muted);white-space:nowrap}.active-continue{text-align:right}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@container (max-width: 720px){.active-games-table colgroup{display:none}.active-games-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.active-games-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"opponent action" "turn updated";gap:12px;padding:20px;border-bottom:1px solid var(--line)}.active-games-table tr:last-child{border:0}.active-games-table td{padding:0;border:0;min-width:0}.active-opponent{grid-area:opponent}.active-turn{grid-area:turn}.active-updated{grid-area:updated;text-align:right}.active-continue{grid-area:action;align-self:center}}@container (max-width: 380px){.active-games-table tr{grid-template-areas:"opponent opponent" "turn updated" "action action";padding:18px}.active-continue{justify-self:end}}.icon-button.spring-icon{background:transparent;border:0;box-shadow:none;color:var(--ink)}.icon-button.spring-icon:hover:not(:disabled){background:transparent;border:0;box-shadow:none;color:var(--ink)}.icon-button.spring-icon:active:not(:disabled){background:transparent;border:0;box-shadow:none;color:var(--ink)}.icon-button.spring-icon:focus-visible{background:transparent;border:0;box-shadow:none;color:var(--ink)}.sidebar .icon-button.spring-icon{color:var(--paper)}.sidebar .icon-button.spring-icon:hover:not(:disabled){color:var(--yellow)}.icon-button.spring-icon:not(.modal-close){position:relative}.icon-halo{position:absolute;inset:2px;border-radius:50%;background:#171c2012;pointer-events:none}.sidebar .icon-halo{background:#f4ebd526}.icon-glyph{position:relative;display:flex;align-items:center;justify-content:center;pointer-events:none}.password-visibility-icon{position:relative;display:inline-flex;width:19px;height:19px}.password-visibility-icon>svg{width:19px;height:19px}.password-visibility-slash{position:absolute;inset:0}.password-input>.icon-button.spring-icon{position:absolute;right:6px;top:50%;transform:translateY(-50%)}.navigation-toggle{display:flex}.app-shell.sidebar-hidden>.toast-region{left:25px}.live-status{min-width:14px;justify-content:center}.active-games-filters{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-bottom:24px}.active-games-filters .record-controls{flex:1 1 240px;margin-bottom:0}.active-games-filters .spring-tabs{flex-shrink:0;margin-left:auto}.board-controls{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin:0 0 18px 20px}.player-strip-slot{position:relative;min-height:83px}.player-strip-slot .player-strip{position:absolute;top:0;left:0;right:0}@media(max-width:740px){.board-controls{margin-left:17px}.player-strip-slot{min-height:80px}}.modal-backdrop:has(.new-game-modal){align-items:flex-start;padding-top:clamp(20px,8dvh,64px)}.modal.new-game-modal{transform-origin:50% 18%;height:auto;max-height:calc(100dvh - clamp(20px,8dvh,64px) - 20px);overflow-y:auto;scrollbar-width:thin;scrollbar-gutter:stable}.new-game-body{flex:none;overflow:visible}.new-game-modal .game-mode-options{margin-bottom:0}.new-game-details{height:auto}.new-game-mode-content{position:static;overflow:hidden}.new-game-mode-inner{padding-top:20px}.new-game-modal .computer-difficulty,.new-game-modal .opponent-search{height:auto}.new-game-modal .player-options{max-height:160px;flex:none}.new-game-feedback{height:auto;max-height:70px}.piece.chess-piece{border:2px solid var(--ink);border-radius:48% 52% 47% 53%}.piece.chess-piece.white{background:linear-gradient(145deg,#ffd2b4,#f2ac90,#df947c 70%,#c77964);color:var(--ink)}.piece.chess-piece.black{background:linear-gradient(145deg,#b1e4e0,#77c9c8,#50a5af 70%,#368392);color:var(--ink)}.chess-piece:before{inset:1px;box-shadow:inset 2px 3px 1px #fff8,inset -1px -3px 1px #171c2030}.chess-piece .piece-rim{width:81%;height:81%;border:1px solid #171c208c;border-radius:49% 47% 51% 48%;background:linear-gradient(145deg,#ffffff24,#fff0 45%,#171c2014);box-shadow:inset 1px 2px #fff5,inset -1px -2px #171c2030}.chess-piece .piece-rim:after{inset:64% 9% 7%;background:repeating-linear-gradient(130deg,transparent 0 2px,#171c20 2px 3px,transparent 3px 5px);opacity:.18}.chess-piece .piece-face{position:relative;z-index:1}.chess-piece .piece-face .chess-icon{width:78%;height:84%;overflow:visible}.chess-icon{stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.chess-icon-relief{fill:#fff8;stroke:#fff8}.chess-icon-face{fill:#20292a;stroke:#20292a}.chess-icon-face .chess-icon-detail{fill:#f0ddbd;stroke:none}.chess-icon-face .chess-icon-line{fill:none;stroke:#f0ddbd;stroke-width:2.1}.mini-board .piece.chess-piece{border-width:1px}.mini-board .chess-piece .piece-rim{border-width:.5px}.color-dot.white{background:var(--coral);border:1px solid var(--ink)}.color-dot.black{background:var(--cyan);border:1px solid var(--ink)}.chess-status{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;margin-bottom:22px;border:1px solid var(--ink);background:var(--panel)}.chess-status strong{font-size:18px}.chess-status span{color:var(--muted);font-size:13px}.chess-status.in-check{background:#f7cfbf}.chess-status.finished{background:var(--panel)}.chess-status.finished.lost{background:#efc2bf}.chess-status.finished.won{background:#cee4d1}.side-label{margin-left:auto;color:var(--muted);font-size:12px}.promotion-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-top:20px}.promotion-options .button{flex-direction:column}.promotion-symbol{width:42px;height:44px}.promotion-symbol .chess-icon{width:100%;height:100%}@media(max-width:740px){.chess-status{align-items:flex-start;flex-direction:column}.side-label{display:none}}.board{container-type:inline-size}.new-game-modal .game-mode-options{grid-template-columns:repeat(2,minmax(0,1fr))}.new-game-modal .game-mode{display:flex;flex-direction:column;align-items:flex-start;grid-column:auto}@media(max-width:740px){.new-game-modal .game-mode-options{grid-template-columns:1fr}.new-game-modal .game-mode{display:grid;grid-template-columns:24px 1fr;column-gap:12px;row-gap:3px;align-items:center}.new-game-modal .game-mode>svg{grid-row:1 / 3}.new-game-modal .game-mode>strong{margin:0}.new-game-modal .game-mode>span:not(.mode-fill){grid-column:2}}.board.sculpted-board,.game-board-section .board.sculpted-board,.welcome-board .board.sculpted-board{border:0;background:transparent;box-shadow:none;border-radius:0;overflow:visible;aspect-ratio:1}.sculpted-board:after{display:none}.chess-scene{position:absolute;inset:0;touch-action:manipulation}.chess-scene canvas{display:block;width:100%;height:100%}.chess-scene .chess-ink{position:absolute;inset:0;pointer-events:none}.sculpted-board .accessible-squares{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);pointer-events:none}.board-wrap:has(.sculpted-board){padding:0}.board-wrap:has(.sculpted-board)>.rank-labels{display:none}.board-wrap:has(.sculpted-board)>.file-labels{display:none}.scene-error{padding:30px;font-size:14px;background:var(--paper);border:1px solid var(--ink)}.scene-loading{display:grid;place-items:center}.color-dot.white{background:var(--coral)}.color-dot.black{background:var(--cyan)}.chess-scene>.scene-loading{position:absolute;inset:0}.avatar{font-family:var(--display);font-weight:800;letter-spacing:.035em}.avatar:not(.small-avatar){border:2px solid var(--ink);border-radius:3px 1px 5px 2px;box-shadow:2px 2px 0 var(--ink)}.history-opponent strong,.rivalry-name strong,.player-option strong,.profile-nav strong{font-family:var(--display);font-weight:800;letter-spacing:.025em;text-transform:uppercase}.player-strip .you-label{font-family:DM Sans Variable,sans-serif;text-transform:none;font-size:10px;border:1px solid var(--ink);background:var(--panel-light);padding:1px 4px;border-radius:2px;color:var(--ink)}.history-table,.rivalries,.profile-card{border:2px solid var(--ink);border-radius:3px 1px 5px 2px;box-shadow:3px 3px 0 var(--ink)}.profile-card h2{font-family:var(--display);font-weight:800;letter-spacing:.025em;text-transform:uppercase}.board-display-toolbar{display:flex;width:max-content;align-items:center;gap:4px;margin:0;padding:0 4px;background:var(--panel);border:2px solid var(--ink);border-radius:3px 1px 5px 2px;box-shadow:3px 3px 0 var(--ink)}.game-board-section .board.sculpted-board{aspect-ratio:1 / .9;overflow:visible}.game-board-section .chess-scene{top:auto;left:-30%;right:auto;bottom:calc(100% / .9 * -.3);width:160%;height:calc(100% / .9 * 1.6)}.game-panel.panel-empty{display:none}.board-display-toolbar .board-tool[aria-pressed=true]{background:transparent}.board-tool-divider{align-self:stretch;width:1px;margin:4px 2px;background:var(--line)}.board-player-reveal,.journal-reveal{overflow:hidden;transform-origin:top center}.board-player-reveal{padding-right:4px}.player-strip>div:nth-child(2){flex:1;min-width:0}.player-strip>div:nth-child(2)>strong{white-space:nowrap}.player-strip>div:nth-child(2)>span{white-space:nowrap}.player-strip>div:nth-child(2)>span{overflow:hidden;text-overflow:ellipsis}.game-board-section .player-strip{margin-left:0}.game-panel{margin-left:0;width:calc(100% - 4px)}.game-board-section .chess-status{align-items:flex-start;flex-direction:column;gap:8px;margin:0 4px 14px 0;padding:16px;border:2px solid var(--ink);border-radius:3px 1px 5px 2px;box-shadow:3px 3px 0 var(--ink)}.chess-status-heading{display:flex;align-items:center;gap:12px;min-width:0}.chess-status-heading strong{font-family:var(--display);font-size:clamp(24px,3vw,32px);line-height:1.08;font-weight:800;letter-spacing:.025em;text-transform:uppercase}.chess-status.in-check .chess-status-heading strong{font-style:italic}.chess-status .chess-status-detail{line-height:1.5}.chess-status.in-check .chess-status-detail{padding-left:52px;color:var(--ink)}.chess-status .check-burst{position:relative;isolation:isolate;display:grid;place-items:center;flex:0 0 40px;height:40px;color:var(--ink);font:800 30px/1 var(--display);transform:rotate(-8deg)}.check-burst:before{content:"";position:absolute;clip-path:polygon(50% 0,60% 17%,79% 6%,79% 27%,100% 29%,88% 47%,100% 65%,79% 70%,79% 93%,59% 83%,50% 100%,40% 83%,21% 93%,21% 72%,0 68%,12% 50%,0 32%,21% 28%,21% 7%,40% 17%)}.check-burst:after{content:"";position:absolute;clip-path:polygon(50% 0,60% 17%,79% 6%,79% 27%,100% 29%,88% 47%,100% 65%,79% 70%,79% 93%,59% 83%,50% 100%,40% 83%,21% 93%,21% 72%,0 68%,12% 50%,0 32%,21% 28%,21% 7%,40% 17%)}.check-burst:before{inset:0;z-index:-2;background:var(--ink)}.check-burst:after{inset:3px;z-index:-1;background:var(--coral)}.avatar:not(.small-avatar){background:#e2dfd4;color:var(--ink);box-shadow:none}.player-strip .avatar{background:#e2dfd4;color:var(--ink);box-shadow:none}.player-strip .piece-count>span:last-child{font-size:12px!important;color:var(--ink)}.player-strip-slot{min-height:88px}.game-layout{grid-template-columns:minmax(0,1fr);justify-items:center}.game-layout .game-board-section,.game-layout .game-panel{width:100%;max-width:760px}.game-board-section .journal-reveal{position:relative;z-index:1;margin-right:4px}.journal-reveal .move-panel{margin-bottom:14px}.journal-reveal .move-panel-heading{border-bottom:2px solid var(--ink)}.journal-reveal .move-entry{border-radius:0;border-bottom:1px solid var(--line);box-shadow:none}.journal-reveal .move-entry:last-child{border-bottom:0}.journal-reveal .move-log{height:180px}.board-player-reveal,.game-board-section .chess-status,.game-panel{position:relative;z-index:1}.board-player-reveal{z-index:2}.app-shell{overflow:clip}.navigation-dock{position:sticky;top:12px;height:0;z-index:40;pointer-events:none}.navigation-dock .navigation-toggle{position:absolute;top:0;left:12px;width:36px;height:36px;pointer-events:auto}.navigation-dock .navigation-toggle.spring-icon{background:var(--paper);border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink)}.page-content,.page-content.room-content{min-height:100dvh;padding-top:64px}.sidebar-connection{display:flex!important;align-items:center}.new-game-modal .player-options>p{padding:4px 0;font-size:13px!important;line-height:1.6}.new-game-mode-inner{padding-top:16px}.new-game-modal .game-mode{padding:16px;gap:10px}.new-game-modal .game-mode>strong{margin:0}.new-game-modal .game-mode-options{gap:12px}.status-reveal{overflow:hidden}.navigation-dock .navigation-toggle{padding:0;min-height:36px;border:2px solid var(--ink);border-radius:3px 1px 5px 2px}.navigation-dock .navigation-toggle>svg{width:19px;height:19px}.profile-nav .avatar:not(.small-avatar){background:var(--yellow);box-shadow:2px 2px 0 var(--ink)}.dashboard-controls{margin-bottom:24px}.dashboard-controls .dashboard-heading{margin-bottom:14px}.dashboard-controls .dashboard-heading{align-items:center}.dashboard-controls .dashboard-heading>.button{margin-top:0}.sidebar .brand{font-size:28px}.icon-tooltip{pointer-events:none;transform-origin:bottom right;position:absolute;z-index:10;right:0;bottom:calc(100% + 9px);width:max-content;max-width:min(240px,calc(100vw - 40px));padding:7px 10px;border:1px solid var(--ink);border-radius:3px;background:var(--ink);color:var(--paper);box-shadow:2px 2px #171c2026;font-family:inherit;font-size:12px;font-weight:500;line-height:1.4;white-space:normal;text-align:left}.board-tool:first-child .icon-tooltip{left:0;right:auto;transform-origin:bottom left}.sidebar-profile .logout-button{width:36px;height:36px;border-radius:50%;flex:0 0 36px;padding:0}.sidebar-profile .logout-button .icon-halo{inset:3px}@media(max-width:740px){.new-game-modal .game-mode{grid-template-columns:24px 1fr;grid-template-rows:1fr}.new-game-modal .game-mode>svg{grid-row:1}.page-content,.page-content.room-content{padding-top:60px}}.tooltip-anchor{position:relative;display:inline-flex}.connection-tooltip .icon-tooltip{left:0;right:auto;transform-origin:bottom left}.sidebar .logout-button .icon-tooltip{background:#fff;color:var(--ink);border-color:var(--ink)}.button.spring-button:not(.navigation-toggle){position:relative}.navigation-toggle .icon-tooltip{left:0;right:auto;transform-origin:bottom left}.game-layout .color-dot.white{background:var(--piece-white, var(--coral))}.game-layout .color-dot.black{background:var(--piece-black, var(--cyan))}.board-display-toolbar{min-height:36px;position:fixed;top:12px;right:12px;z-index:28;max-width:calc(100vw - 72px);flex-wrap:wrap;justify-content:flex-end}.board-display-toolbar .board-tool{height:32px}.board-display-toolbar .icon-tooltip{top:calc(100% + 9px);bottom:auto;transform-origin:top right}.board-display-toolbar .board-tool:first-child .icon-tooltip{transform-origin:top left}@media(max-width:480px){.board-display-toolbar{gap:2px}.board-display-toolbar .board-tool{width:30px}}@media(max-width:360px){.page-content.room-content{padding-top:96px}}.piece-color-control{display:flex}.piece-color-trigger .chess-icon{width:23px;height:24px}.piece-color-trigger .chess-icon-relief{display:none}.piece-color-trigger .chess-icon-face{fill:none;stroke:var(--ink);stroke-width:4}.piece-color-trigger .chess-icon-detail{fill:var(--ink)}.piece-color-trigger .chess-icon-line{stroke:var(--ink)}.piece-color-menu{position:absolute;top:calc(100% + 10px);right:0;width:min(320px,calc(100vw - 40px));padding:8px;border:2px solid var(--ink);border-radius:3px 1px 5px 2px;background:var(--panel);color:var(--ink);box-shadow:3px 3px 0 var(--ink);z-index:10}.piece-color-menu button{width:100%;display:flex;align-items:center;gap:10px;padding:10px 8px;background:transparent;border-radius:3px;text-align:left;font-size:13px;line-height:1.3}.piece-color-menu button:hover{background:#43b3ba24}.piece-color-menu button:focus-visible{background:#43b3ba24}.piece-color-menu button:focus-visible{outline-offset:-2px}.piece-color-menu button>span:first-child{flex:1}.piece-color-menu .piece-color-reverse{border-bottom:1px solid var(--line);border-radius:0;padding:10px 5px 14px;gap:8px;font-size:11px;font-weight:600}.piece-color-reverse>span:first-of-type{flex:1}.piece-color-pair{display:inline-flex;gap:5px;flex-shrink:0}.piece-color-pair i{display:block;width:23px;height:23px;border:1.5px solid var(--ink);border-radius:50%}.piece-color-check{visibility:hidden;flex-shrink:0}.piece-color-menu [aria-checked=true] .piece-color-check{visibility:visible}.piece-color-menu [aria-checked=true]{font-weight:700;background:#43b3ba14}.piece-color-legend{display:flex;justify-content:space-between;gap:12px;padding:12px 8px 4px;font-size:10px;color:var(--muted)}.piece-color-legend>span:last-child{margin-right:20px}.piece-color-options{max-height:min(330px,calc(100dvh - 250px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:3px}.piece-color-group{padding:8px 8px 5px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.piece-color-options [role=group]+[role=group]{margin-top:6px;border-top:1px solid var(--line)}.game-settings-error{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:760px;margin:0 auto 16px;padding:12px 16px;background:#f4d1c4;border:1px solid var(--ink);font-size:13px}.auth-card-sizing{overflow:clip;overflow-clip-margin:10px}.auth-card-content{display:flow-root}.auth-field-reveal{display:flow-root;overflow:clip;overflow-clip-margin:4px}.auth-picker button,.auth-picker button.selected{position:relative;isolation:isolate;background:transparent;color:var(--ink);box-shadow:none}.auth-picker .difficulty-selector{pointer-events:none}.brand-mark .chess-icon-relief{display:none}.brand-mark .chess-icon-face{fill:currentColor;stroke:currentColor;stroke-width:1}.brand-mark .chess-icon-detail{fill:var(--paper)}.brand-mark .chess-icon-line{fill:none;stroke:var(--paper);stroke-width:2}.toggle-cancel{position:absolute;right:-1px;bottom:0;width:15px;height:15px;border-radius:50%;background:var(--panel);color:var(--ink);pointer-events:none;fill:none;stroke:currentColor;stroke-width:2.5}.player-strip .avatar{background:var(--player-piece-color);color:var(--player-text-color)}.page-content.room-content{padding-left:12px;padding-right:8px;padding-bottom:16px;max-width:none}#board-controls-dock{flex:0 0 0;height:0;min-height:0}.game-layout{container:chess-room / inline-size;width:100%;gap:16px}.game-layout .game-board-section{display:grid;grid-template-columns:minmax(0,1fr);width:100%;max-width:none;margin:0;align-items:start;min-width:0}.game-layout .game-board-section>*{min-width:0}.game-layout[data-grouped-players=true][data-players=true] .board-player-reveal{overflow:visible}.game-layout #game-status{grid-column:1;grid-row:1}.game-layout #top-player-card{grid-column:1;grid-row:2}.game-layout .game-board-section>.board-wrap{grid-column:1;grid-row:3;width:calc(100% - 4px);justify-self:start}.game-layout #bottom-player-card{grid-column:1;grid-row:4}.game-layout #move-journal{grid-column:1;grid-row:5}.game-layout .game-panel{width:calc(100% - 4px);max-width:none;justify-self:start}.game-layout .player-strip-slot{display:grid;min-height:0}.game-layout .player-strip-slot .player-strip{position:relative;grid-area:1 / 1}.game-layout .player-strip{display:grid;grid-template-columns:32px minmax(0,1fr) auto;grid-template-rows:repeat(2,minmax(0,1fr));height:64px;min-height:64px;padding:8px 10px;column-gap:8px;row-gap:2px;margin:0 0 10px}.game-layout .player-strip .avatar{grid-column:1;grid-row:1 / 3;width:32px;height:32px;font-size:13px}.game-layout .player-strip>div:nth-child(2){grid-column:2;grid-row:1 / 3;align-self:center}.game-layout .player-strip .you-label{flex-shrink:0}.game-layout .player-strip>div:nth-child(2)>span{margin-top:2px}.game-layout .piece-count{grid-column:3;grid-row:2;gap:4px;margin:0;justify-self:end}.game-layout .player-strip .piece-count>span:last-child{font-size:10px!important}.game-layout .side-label{display:none}.game-layout .turn-indicator{grid-column:3;grid-row:1;display:inline-flex;justify-self:end;font-size:9px;padding:2px 4px;transform:none}.game-layout .game-board-section .chess-status{padding:10px 12px;margin-bottom:12px;gap:4px}.game-layout .chess-status-heading strong{font-size:22px}.game-layout .chess-status-detail{font-size:12px}.game-layout .check-burst{flex-basis:28px;height:28px;font-size:22px}.game-layout .chess-status.in-check .chess-status-detail{padding-left:40px}.game-layout .journal-reveal .move-panel{margin:0 0 4px}.game-layout .journal-reveal .move-panel-heading{padding:12px}.game-layout .journal-reveal .move-log{height:180px;padding:6px}.game-layout .journal-reveal .move-entry{padding:7px 8px;gap:9px}.game-layout .journal-reveal .move-entry strong{font-size:12px}.game-layout .game-board-section .chess-status{flex-direction:row;flex-wrap:wrap;align-items:center;column-gap:12px;padding:9px 12px}.game-layout .chess-status.in-check .chess-status-detail{padding-left:0}@container chess-room (min-width: 560px) and (max-width: 899px){.game-layout .game-board-section{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:min-content min-content minmax(0,1fr) auto;column-gap:12px}.game-layout #move-journal{grid-column:2;grid-row:1 / 4}.game-layout #game-status{grid-column:1;grid-row:1}.game-layout #top-player-card{grid-column:1;grid-row:2}.game-layout #bottom-player-card{grid-column:1;grid-row:3}.game-layout .game-board-section>.board-wrap{grid-column:1 / -1;grid-row:4}.game-layout[data-status=false] #top-player-card{grid-row:1}.game-layout[data-status=false] #bottom-player-card{grid-row:2}.game-layout[data-journal=false] #top-player-card{grid-column:1;grid-row:2}.game-layout[data-journal=false] #bottom-player-card{grid-column:2;grid-row:2}.game-layout[data-journal=false][data-status=false] #top-player-card,.game-layout[data-journal=false][data-status=false] #bottom-player-card{grid-row:1}.game-layout .game-board-section .chess-status{min-height:64px;padding:8px 12px;margin-bottom:10px;flex-direction:column;align-items:flex-start;gap:2px}.game-layout .journal-reveal .move-panel{margin-bottom:12px}.game-layout .journal-reveal .move-log{height:180px}.game-layout[data-players=true] #move-journal{align-self:stretch;min-height:0}.game-layout[data-players=true] .journal-reveal .move-panel{position:absolute;inset:0 0 10px;min-height:0;display:flex;flex-direction:column;margin:0}.game-layout[data-players=true] .journal-reveal .move-panel-heading{flex-shrink:0}.game-layout[data-players=true] .journal-reveal .move-log{flex:1;height:0;min-height:0}}@container chess-room (min-width: 900px){.game-layout .game-board-section{grid-template-columns:minmax(0,1fr) clamp(260px,27%,340px);grid-template-rows:repeat(3,min-content) minmax(0,1fr);column-gap:20px}.game-layout .game-board-section>.board-wrap{grid-column:1;grid-row:1 / 5;width:100%;max-width:900px}.game-layout #game-status{grid-column:2;grid-row:1}.game-layout #top-player-card{grid-column:2;grid-row:2}.game-layout #bottom-player-card{grid-column:2;grid-row:3}.game-layout #move-journal{grid-column:2;grid-row:4}.game-layout .game-board-section .chess-status{flex-direction:column;align-items:flex-start;gap:4px}.game-layout .journal-reveal .move-log{height:clamp(150px,calc(100dvh - 440px),360px)}.game-layout[data-players=false] .journal-reveal .move-log{height:clamp(180px,calc(100dvh - 300px),460px)}.game-layout[data-status=false] .journal-reveal .move-log{height:clamp(180px,calc(100dvh - 360px),420px)}.game-layout[data-status=false][data-players=false] .journal-reveal .move-log{height:clamp(180px,calc(100dvh - 220px),540px)}.game-layout[data-journal=false][data-status=false][data-players=false] .game-board-section{grid-template-columns:minmax(0,1fr) 0;column-gap:0}.game-layout[data-journal=false][data-status=false][data-players=false] .board-wrap{justify-self:center;width:min(100%,900px)}}.skip-link{position:fixed;z-index:200;top:8px;left:8px;transform:translateY(-180%);padding:12px 16px;background:var(--panel);color:var(--ink);border:3px solid var(--ink)}.skip-link:focus{transform:none}main:focus{outline:none}h1[tabindex="-1"]:focus{outline:none}.sidebar{overflow-y:auto;overscroll-behavior:contain}.sidebar>*{flex-shrink:0}.auth-card h1{font-size:44px;margin-bottom:24px}.auth-card form>label+.password-input{display:block;margin-top:7px;margin-bottom:20px}.auth-card form>label:has(+.password-input){margin-bottom:0}.rule-card h2{font-size:24px;margin-bottom:10px}.data-error,.connection-banner{padding:12px;border:2px solid var(--ink);background:var(--panel);color:var(--ink);display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.connection-banner{position:fixed;z-index:45;bottom:10px;left:10px;right:10px;max-width:600px}.move-entry.replay-selected{box-shadow:inset 4px 0 0 var(--ink);font-weight:800}.piece-color-menu{max-height:calc(100dvh - 80px);overflow-y:auto;overscroll-behavior:contain}.piece-color-options{max-height:none;overflow:visible}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}.auth-password-hint{margin:0;padding-bottom:20px}button[aria-disabled=true]:not(.square){opacity:.55;cursor:default}button.move-entry[aria-disabled=true]{opacity:1}.theme-toggle.icon-button{width:44px;height:44px;flex-shrink:0;padding:0}.theme-icon{display:inline-grid;place-items:center;width:18px;height:18px;flex-shrink:0}.theme-toggle .icon-tooltip{left:0;right:auto;transform-origin:bottom left}.auth-header .theme-toggle .icon-tooltip{left:auto;right:0;transform-origin:bottom right}.auth-header{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.sidebar .theme-toggle{margin-bottom:18px}.sidebar .sidebar-bottom :is(.theme-toggle,.logout-button).spring-icon{color:#f4ebd5;outline-color:#f4ebd5}.sidebar .sidebar-bottom :is(.theme-toggle,.logout-button).spring-icon:hover:not(:disabled){color:#f4ebd5;outline-color:#f4ebd5}.sidebar .sidebar-bottom :is(.theme-toggle,.logout-button).spring-icon:active{color:#f4ebd5;outline-color:#f4ebd5}.sidebar .sidebar-bottom :is(.theme-toggle,.logout-button).spring-icon:focus-visible{color:#f4ebd5;outline-color:#f4ebd5}.sidebar .theme-toggle .icon-tooltip{background:#f4ebd5;color:#171c20;border-color:#f4ebd5}:root[data-theme=dark]{color-scheme:dark;color:#f4ebd5;--ink: #f4ebd5;--paper: #17232c;--bg: #17232c;--panel: #202f39;--panel-light: #334651;--line: #a7b4b9;--muted: #c0cbc9;--green: #75d2d3;--green-ink: #171c20;background-color:var(--paper);background-image:radial-gradient(#f4ebd522 .65px,transparent .85px),repeating-linear-gradient(112deg,transparent 0 19px,#f4ebd508 19px 20px,transparent 20px 37px)}:root[data-theme=dark] .sidebar{background:#101b23;color:#f4ebd5;border-color:#a7b4b9}:root[data-theme=dark] .sidebar .brand{color:#f4ebd5}:root[data-theme=dark] .nav-item.active{color:#171c20}:root[data-theme=dark] .segmented button.selected{color:#171c20}:root[data-theme=dark] .small-tabs button.selected{color:#171c20}:root[data-theme=dark] .game-mode.chosen{color:#171c20}:root[data-theme=dark] .auth-picker button.selected{color:#171c20}:root[data-theme=dark] .difficulty-picker button.selected{color:#171c20}:root[data-theme=dark] form label>input{background:#17232c;color:var(--ink);border-color:var(--line)}:root[data-theme=dark] .password-input input{background:#17232c;color:var(--ink);border-color:var(--line)}:root[data-theme=dark] .search-input{background:#17232c;color:var(--ink);border-color:var(--line)}:root[data-theme=dark] input::placeholder{color:#b9c5c8}:root[data-theme=dark] button:focus-visible{outline-color:#75d2d3}:root[data-theme=dark] a:focus-visible{outline-color:#75d2d3}:root[data-theme=dark] input:focus-visible{outline-color:#75d2d3;border-color:var(--line)!important}:root[data-theme=dark] .text-button:hover:not(:disabled){color:#75d2d3}:root[data-theme=dark] .chess-status.in-check{background:#60382f}:root[data-theme=dark] .chess-status.finished.lost{background:#60382f}:root[data-theme=dark] .chess-status.finished.won{background:#294b40}:root[data-theme=dark] .move-entry:hover:not(:disabled){background:#34524e}:root[data-theme=dark] .move-entry.replay-selected{background:#34524e}:root[data-theme=dark] .piece-color-menu{background:var(--panel)}:root[data-theme=dark] .piece-color-menu button:hover{background:#334b55}:root[data-theme=dark] .piece-color-menu button:focus-visible{background:#334b55}:root[data-theme=dark] .player-option{background:var(--panel);color:var(--ink)}:root[data-theme=dark] .settings-section{background:var(--panel);color:var(--ink)}:root[data-theme=dark] .player-option.chosen{background:#34524e}:root[data-theme=dark] .settings-success{background:#294b40;color:#e0f4e8;border-color:#b9d4bf}:root[data-theme=dark] .history-table-head{color:var(--muted)}:root[data-theme=dark] .result-win{color:#171c20}:root[data-theme=dark] .result-loss{color:#171c20}:root[data-theme=dark] .result-draw{color:#171c20}.modal{max-height:calc(100dvh - 34px);overflow-y:auto;overscroll-behavior:contain}.confirmation-actions{flex-wrap:wrap}.pending-section .button,.active-section .button,.history-page .button.compact{min-height:40px}.active-games-filters .spring-tabs button{min-height:40px;font-size:12px;font-weight:700;line-height:1.4}.pending-section{container:challenges / inline-size}.invitation{display:grid;grid-template-columns:auto minmax(0,1fr)}.invitation-player{min-width:0;min-height:40px;display:flex;flex-direction:column;justify-content:space-between;gap:5px;overflow-wrap:anywhere}.invitation-player>strong{margin-bottom:0;line-height:1.25}.invitation .invitation-player>span{font-size:13px;line-height:1.25}.pending-section .avatar{width:40px;height:40px;font-size:13px}.waiting-row{font-size:13px;font-weight:600}.waiting-dot{width:7px;height:7px;flex-shrink:0}.active-turn-label>.tiny-dot{width:7px;height:7px;flex-shrink:0}.invitation>.invitation-actions{grid-column:1 / -1;display:flex;align-items:center;gap:10px}.invitation-actions .button{flex:1;white-space:nowrap}@container challenges (min-width: 620px){.invitation{grid-template-columns:auto minmax(0,1fr) auto}.invitation>.invitation-actions{grid-column:auto}.invitation-actions .button{flex:none}}@media(max-width:440px){.confirmation-actions{flex-direction:column;align-items:stretch}.confirmation-actions .button{width:100%}}.fallback-board .accessible-squares{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:1;margin:0;overflow:visible;clip:auto;clip-path:none;pointer-events:auto}.game-board-section .board.fallback-board{aspect-ratio:1;border:2px solid var(--ink)}.fallback-piece{display:grid;place-items:center;position:absolute;inset:4%}.fallback-piece svg{width:80%;height:80%}.fallback-piece .chess-icon-face{fill:var(--piece-white, var(--coral));stroke:#171c20;stroke-width:1.5}.fallback-piece.black .chess-icon-face{fill:var(--piece-black, var(--cyan))}.fallback-piece .chess-icon-relief{fill:#fff;stroke:#fff;stroke-width:4}.fallback-board .square.light{background:#f9f2e2}.fallback-board .square.dark{background:#24656b}.fallback-board .square:focus-visible{outline:3px solid #fff;outline-offset:-6px;box-shadow:inset 0 0 0 3px #000}.fallback-board .square.selected{box-shadow:inset 0 0 0 3px #000,inset 0 0 0 6px #fff}.fallback-board .move-dot{background:var(--yellow);border:3px solid #000;box-shadow:none}.fallback-notice{margin-top:8px;color:var(--muted);font-size:12px}.boot-screen h1{max-width:600px;font-size:32px;text-align:center}.boot-status{display:flex;align-items:center;flex-direction:column;gap:20px}:root[data-theme=dark] .sidebar .icon-button.spring-icon{color:#f4ebd5}:root[data-theme=dark] .nav-item:not(.active):hover{color:#f4ebd5}:root[data-theme=dark] .welcome-banner h2{color:#171c20}:root[data-theme=dark] .game-mode.chosen strong{color:#171c20}:root[data-theme=dark] .spring-tabs button.selected .tab-label{color:#171c20}:root[data-theme=dark] .rule-number{color:#75d2d3}:root[data-theme=dark] .rivalry-score strong.accent{color:#75d2d3}:root[data-theme=dark] .computer-notice{background:#294b40;color:var(--ink);border-color:var(--line)}:root[data-theme=dark] .game-settings-error{background:#60382f;color:var(--ink);border-color:#e6b8a8}:root[data-theme=dark] .game-error{background:var(--panel);color:#ffd1c5;border-color:#e6b8a8}:root[data-theme=dark] .logout-button .icon-tooltip{color:#171c20}:root[data-theme=dark] .avatar{color:#171c20}:root[data-theme=dark] .player-strip .avatar{background:var(--player-piece-color);color:var(--player-text-color)}:root[data-theme=dark] .player-option:hover{background:#334b55}:root[data-theme=dark] .text-button.ink-link:hover:not(:disabled){color:#171c20}:root[data-theme=dark] .text-button.ink-link:active:not(:disabled){color:#171c20}:root[data-theme=dark] .check-burst{color:#171c20}:root[data-theme=dark] .promotion-options .chess-icon-face{fill:#f4ebd5;stroke:#f4ebd5}:root[data-theme=dark] .promotion-options .chess-icon-detail{fill:#171c20}:root[data-theme=dark] .promotion-options .chess-icon-line{stroke:#171c20}:root[data-theme=dark] .welcome-banner button:focus-visible{outline-color:#171c20}:root[data-theme=dark] .game-mode .mode-fill{opacity:0!important}:root[data-theme=dark] .game-mode.chosen .mode-fill{opacity:1!important}.active-opponent>div>div{min-width:0}.active-opponent strong{overflow-wrap:anywhere}.record-controls{display:flex;justify-content:flex-start;margin-bottom:20px}.record-search{width:100%;max-width:360px;margin:0}.record-search input{min-width:0;width:100%}.history-page .record-pagination{margin-top:18px}.record-pagination .icon-button{width:40px;height:40px}.record-feedback{display:flex;align-items:center;gap:10px;padding:24px 0;color:var(--muted);font-size:14px}.history-games-table .result{font-size:13px;line-height:1.4;padding:5px 10px}.rivalries-table .rivalry-score{margin:0;gap:16px;text-align:left}.rivalries-table .rivalry-score>span{font-size:13px}.rivalries-table .rivalry-score strong{font-size:15px;line-height:1.25}.rivalries-table .active-continue .button{white-space:nowrap}@container (max-width: 720px){.history-games-table .history-result{grid-area:turn}.history-games-table .history-finished{grid-area:updated}.rivalries-table tr{grid-template-areas:"opponent action" "score score"}.rivalries-table .rivalry-results{grid-area:score}}@container (max-width: 380px){.rivalries-table tr{grid-template-areas:"opponent opponent" "score score" "action action"}}@container (max-width: 559.98px){.history-games-table tr{grid-template-areas:"turn updated" "opponent action"}}@container (max-width: 380px){.history-games-table tr{grid-template-areas:"turn updated" "opponent opponent" "action action"}}@container (min-width: 560px) and (max-width: 720px){.history-page .active-games-table colgroup{display:table-column-group}.history-page .active-games-table thead{display:table-header-group;position:static;width:auto;height:auto;overflow:visible;clip:auto}.history-page .active-games-table tr{display:table-row;padding:0;border:0}.history-page .active-games-table th{padding-inline:12px}.history-page .active-games-table td{padding:20px 12px;border-bottom:1px solid var(--line)}.history-page .active-games-table tr:last-child td{border-bottom:0}.history-page .history-finished{text-align:left}.history-page .rivalries-table{--rivalry-record-width: 36%;--rivalry-action-width: 26%}}.fallback-board .square:focus-visible{outline:3px solid #fff;outline-offset:-9px;box-shadow:inset 0 0 0 6px #000}:root[data-theme=dark] .fallback-board .square:focus-visible{outline:3px solid #fff;outline-offset:-9px;box-shadow:inset 0 0 0 6px #000}:root{--ui-stroke: 2px;--ui-body-size: 16px;--ui-button-radius: 2px 5px 3px 1px;--ui-panel-radius: 3px 2px 5px 1px;--ui-card-radius: 3px 1px 5px 2px;--ui-dialog-radius: 3px 2px 6px 1px;--ui-card-shadow: 3px 3px 0 var(--ink);--ui-dialog-shadow: 7px 7px 0 var(--ink);--ui-title-weight: 800;--ui-title-tracking: .025em;--ui-game-title-size: 17px;--ui-game-description-size: 11px;--ui-record-title-size: 15px;--ui-record-description-size: 13px;--ui-action-size: 12px;--ui-secondary-hover: #d5e5dd}:root[data-theme=dark]{--ui-secondary-hover: #334b55}.button[data-variant]{display:inline-flex;align-items:center;justify-content:center;border:var(--ui-stroke) solid var(--ink);border-radius:var(--ui-button-radius);font-weight:700;line-height:1.4;white-space:nowrap}.button[data-variant=primary]{background:var(--yellow);color:var(--ink)}.button[data-variant=secondary],.button[data-variant=subtle]{background:var(--panel);color:var(--ink)}.button[data-variant=danger]{background:var(--coral);color:var(--ink)}.button[data-variant=primary]:hover:not(:disabled){background:#ffda62}.button[data-variant=primary]:active:not(:disabled){background:var(--yellow)}.button[data-variant=secondary]:hover:not(:disabled),.button[data-variant=subtle]:hover:not(:disabled){background:var(--ui-secondary-hover)}:root[data-theme=dark] .button[data-variant=primary],:root[data-theme=dark] .button[data-variant=danger]{color:#171c20}.button[data-size=regular]{font-size:13px;padding:14px 20px;gap:11px}.button[data-size=compact]{font-size:var(--ui-action-size);padding:9px 14px;gap:11px}.button[data-size=row]{min-height:40px;font-size:var(--ui-action-size);padding:8px 10px;gap:6px}.button[data-size=row]>svg{width:16px;height:16px;flex-shrink:0}.button[data-size=featured]{font-size:14px;font-weight:800;padding:13px 18px;gap:11px}.button[data-size=sidebar]{font-size:13px;padding:13px 15px;gap:11px}.button[data-size=navigation]{font-size:13px;padding:0;gap:11px;border-radius:var(--ui-card-radius)}.button[data-size=replay]{font-size:var(--ui-action-size);padding:14px 20px;gap:11px}.button[data-size=avatar]{font-size:13px;padding:0;gap:11px;border-radius:4px 8px 3px 6px}.button[data-size=welcome]{font-size:11px;padding:12px 16px;gap:11px}@media(max-width:960px){.button[data-size=sidebar]{padding:12px 11px}}@media(max-width:740px){.button[data-size=featured]{gap:6px}.button[data-size=featured]>svg{width:15px}}@media(max-width:420px){.button[data-size=row]{padding-inline:6px}}.ui-surface[data-surface]{background:var(--panel);border:var(--ui-stroke) solid var(--ink);box-shadow:none}.ui-surface[data-surface=quiet]{border:1px solid var(--line)}.ui-surface[data-surface=raised]{box-shadow:var(--ui-card-shadow)}.ui-surface[data-surface=dialog]{border-width:3px;box-shadow:var(--ui-dialog-shadow)}.ui-surface[data-corners=square]{border-radius:0}.ui-surface[data-corners=panel]{border-radius:var(--ui-panel-radius)}.ui-surface[data-corners=sketch]{border-radius:var(--ui-card-radius)}.ui-surface[data-corners=dialog]{border-radius:var(--ui-dialog-radius)}.ui-text[data-text=body]{font-size:var(--ui-body-size);font-weight:400;line-height:1.5;color:var(--ink)}.ui-text[data-text=game-title],.ui-text[data-text=record-title]{font-family:var(--display);font-weight:var(--ui-title-weight);letter-spacing:var(--ui-title-tracking);text-transform:uppercase}.ui-text[data-text=game-title]{font-size:var(--ui-game-title-size);line-height:normal;color:var(--ink)}.ui-text[data-text=game-description]{font-size:var(--ui-game-description-size);line-height:1.3;color:var(--ink)}.ui-text[data-text=record-title]{font-size:var(--ui-record-title-size)}.ui-text[data-text=record-description]{font-size:var(--ui-record-description-size)}.ui-text[data-text=section-title]{font-family:var(--display);font-size:28px;color:var(--ink);font-weight:var(--ui-title-weight);text-transform:uppercase;letter-spacing:.01em;line-height:1.05}.ui-text[data-muted=true]{color:var(--muted)}@media(max-width:740px){.ui-text[data-text=section-title]{font-size:25px}}
