:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#1d2924;font-synthesis:none;text-rendering:optimizelegibility;--ink:#1d2924;--muted:#6d7771;--forest:#29493b;--forest-2:#3d6653;--cream:#f4f1e9;--paper:#fffdf8;--line:#dedbd1;--terracotta:#d9784d;--danger:#a34438;--light-square:#eadfc9;--dark-square:#718c79;--shadow:0 22px 55px #25342d1c;background:#f4f1e9;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--cream);scroll-behavior:smooth;min-height:100%}body{background:radial-gradient(circle at 0 0, #39675214, transparent 27rem), var(--cream);-webkit-font-smoothing:antialiased;min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:2px;outline:3px solid #d9784d73}.page-width{width:min(1180px,100% - 48px);margin-inline:auto}.eyebrow{color:var(--terracotta);letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:800;line-height:1.3;display:block}.brand{color:var(--forest);letter-spacing:-.025em;align-items:center;gap:11px;font-size:18px;font-weight:800;display:inline-flex}.brand em{color:var(--terracotta);font-style:normal}.brand-mark{background:var(--forest);color:#fff9ed;border-radius:13px;place-items:center;width:42px;height:42px;font-family:Georgia,Times New Roman,serif;font-size:27px;line-height:1;display:grid;box-shadow:0 7px 18px #29493b33}.button{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:9px;min-height:44px;padding:0 18px;font-size:14px;font-weight:750;line-height:1;transition:transform .15s,background .15s,border-color .15s,box-shadow .15s;display:inline-flex}.button:hover:not(:disabled){transform:translateY(-1px)}.button:active:not(:disabled){transform:translateY(0)}.button:disabled{cursor:not-allowed;opacity:.56}.button svg,.icon-button svg,.connection-badge svg,.hero-points svg,.spectator-note svg{flex:none;width:19px;height:19px}.button-primary{background:var(--forest);color:#fff;box-shadow:0 8px 20px #29493b33}.button-primary:hover:not(:disabled){background:#213d31;box-shadow:0 11px 24px #29493b3d}.button-quiet{border-color:var(--line);color:#35443d;background:#fffdf8c2}.button-quiet:hover:not(:disabled){background:#fff;border-color:#c8cbc3}.button-danger,.button-danger-quiet:hover:not(:disabled){border-color:var(--danger);background:var(--danger);color:#fff}.button-danger-quiet{color:var(--danger);border-color:#a3443847}.button-small{border-radius:10px;min-height:38px;padding-inline:13px;font-size:13px}.button-large{border-radius:15px;min-height:56px;font-size:16px}.button-full{width:100%}.icon-button{border:1px solid var(--line);cursor:pointer;background:#fffdf8d1;border-radius:12px;flex:none;place-items:center;width:42px;height:42px;display:grid}.home-header{justify-content:space-between;align-items:center;min-height:88px;display:flex}.hero{grid-template-columns:minmax(0,1fr) minmax(420px,.85fr);align-items:center;gap:72px;min-height:455px;padding-block:44px 68px;display:grid}.hero-copy h1{max-width:670px;color:var(--forest);letter-spacing:-.055em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(50px,6vw,78px);font-weight:500;line-height:.98}.hero-copy>p{color:#5f6a65;max-width:590px;margin:26px 0 24px;font-size:19px;line-height:1.55}.hero-points{flex-wrap:wrap;gap:12px 22px;display:flex}.hero-points span{color:#485650;align-items:center;gap:7px;font-size:13px;font-weight:700;display:inline-flex}.hero-points svg{color:var(--terracotta)}.hero-art{place-items:center;min-height:360px;display:grid;position:relative}.hero-art:before{content:"";background:#375b4a14;border-radius:50%;width:360px;height:360px;position:absolute}.mini-board{border:9px solid #fffaf0;border-radius:27px;grid-template-columns:repeat(4,1fr);width:300px;height:300px;display:grid;position:relative;overflow:hidden;transform:rotate(-4deg);box-shadow:0 30px 65px #233a2f33}.mini-board>span:nth-child(odd){background:#e9ddc7}.mini-board>span:nth-child(2n),.mini-board>span:nth-child(8n+5),.mini-board>span:nth-child(8n+7){background:#78917e}.mini-board>span:nth-child(8n+6),.mini-board>span:nth-child(8n+8){background:#e9ddc7}.hero-piece{z-index:2;filter:drop-shadow(0 8px 5px #1c282233);font-family:Georgia,Times New Roman,serif;font-size:72px;position:absolute}.hero-king{color:#1d2924;top:68px;right:31px}.hero-knight{color:#fff8e9;-webkit-text-stroke:1px #27372f;bottom:12px;left:34px}.floating-note{z-index:3;min-height:42px;color:var(--forest);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffdf8f0;border:1px solid #dedbd1bf;border-radius:13px;align-items:center;gap:8px;padding:0 15px;font-size:13px;font-weight:800;display:flex;position:absolute;box-shadow:0 12px 30px #26383021}.note-top{top:15px;right:0;transform:rotate(3deg)}.note-bottom{bottom:20px;left:0;transform:rotate(-2deg)}.note-bottom i{background:#52a46d;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #52a46d21}.create-section{grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);align-items:start;gap:24px;padding-bottom:110px;display:grid}.create-card,.how-card{box-shadow:var(--shadow);background:#fffdf8e8;border:1px solid #d3d0c6d1;border-radius:25px}.create-card{padding:38px}.how-card{padding:34px}.card-heading,.section-heading{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.card-heading{margin-bottom:30px}.card-heading h2,.section-heading h2,.how-card h2{color:var(--forest);letter-spacing:-.035em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:31px;font-weight:500}.step-badge{color:#5b6c63;white-space:nowrap;background:#edf1ec;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:800}.field-label{color:#3a4841;margin-bottom:9px;font-size:13px;font-weight:800;display:block}.input-wrap{margin-bottom:26px;position:relative}.input-wrap svg{color:#849087;width:19px;height:19px;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.input-wrap input{width:100%;height:52px;color:var(--ink);background:#fff;border:1px solid #d8d7cf;border-radius:13px;padding:0 16px 0 47px;font-size:16px;transition:border .15s,box-shadow .15s}.input-wrap input::placeholder{color:#a2aaa5}.input-wrap input:focus{border-color:#668674;box-shadow:0 0 0 4px #486f5b1a}.form-group{border:0;min-width:0;margin:0 0 26px;padding:0}.side-picker{background:#ecebe5;border-radius:15px;grid-template-columns:repeat(3,1fr);gap:8px;padding:5px;display:grid}.side-picker button{cursor:pointer;background:0 0;border:0;border-radius:11px;justify-content:center;align-items:center;gap:8px;min-height:48px;font-size:13px;font-weight:750;display:flex}.side-picker button.selected{background:#fff;box-shadow:0 3px 10px #2d373217}.side-symbol{font-family:Georgia,Times New Roman,serif;font-size:23px;line-height:1}.side-symbol-white{color:#fffef8;-webkit-text-stroke:.7px #33453b}.side-symbol-black{color:#25342d}.side-symbol-random{color:var(--terracotta);font-family:inherit;font-size:18px}.time-picker{grid-template-columns:repeat(4,1fr);gap:9px;display:grid}.time-picker button{cursor:pointer;text-align:left;background:#fff;border:1px solid #ddddd5;border-radius:14px;flex-direction:column;justify-content:flex-end;align-items:flex-start;min-height:91px;padding:12px;display:flex;position:relative}.time-picker button svg{color:#9ca49f;width:17px;height:17px;position:absolute;top:11px;right:11px}.time-picker button strong{font-size:13px}.time-picker button small{color:#8b938e;margin-top:3px;font-size:10px}.time-picker button.selected{border-color:var(--forest-2);box-shadow:inset 0 0 0 1px var(--forest-2);background:#f5f8f4}.time-picker button.selected svg{color:var(--terracotta)}.form-error{color:#8e3e34;background:#faeae6;border-radius:10px;margin:-8px 0 16px;padding:11px 13px;font-size:13px;line-height:1.45}.form-footnote{color:#8a918d;text-align:center;margin:12px 0 0;font-size:11px}.spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}.spinner-dark{border-color:#29493b33;border-top-color:var(--forest)}@keyframes spin{to{transform:rotate(360deg)}}.steps-list{gap:23px;margin:30px 0 28px;padding:0;list-style:none;display:grid}.steps-list li{grid-template-columns:34px 1fr;align-items:start;gap:13px;display:grid;position:relative}.steps-list li:not(:last-child):after{content:"";background:#dddcd3;width:1px;position:absolute;top:35px;bottom:-22px;left:16px}.steps-list li>span{z-index:1;width:34px;height:34px;color:var(--forest);background:#edf2ed;border-radius:50%;place-items:center;font-size:12px;font-weight:850;display:grid}.steps-list strong{font-size:13px}.steps-list p{color:#7b847f;margin:4px 0 0;font-size:12px}.privacy-note{background:#edf2ed;border-radius:14px;grid-template-columns:44px 1fr;align-items:center;gap:12px;padding:14px;display:grid}.privacy-note>span{width:42px;height:42px;color:var(--forest);background:#fff;border-radius:12px;place-items:center;font-family:Georgia,serif;font-size:27px;display:grid}.privacy-note p{color:#647069;margin:0;font-size:11px;line-height:1.5}.privacy-note strong{color:#34453c}.recent-section{padding-bottom:90px}.section-heading{margin-bottom:22px}.recent-list{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.recent-game{border:1px solid var(--line);background:#fffdf8c2;border-radius:16px;grid-template-columns:46px minmax(0,1fr) 22px;align-items:center;gap:12px;min-width:0;padding:13px;transition:border .15s,transform .15s,background .15s;display:grid}.recent-game:hover{background:#fff;border-color:#bdc8c1;transform:translateY(-2px)}.recent-piece{width:46px;height:46px;color:var(--forest);background:#e9eee9;border-radius:12px;place-items:center;font-family:Georgia,serif;font-size:28px;display:grid}.recent-game>span:nth-child(2){flex-direction:column;gap:4px;min-width:0;display:flex}.recent-game strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.recent-game small{color:#828a85;font-size:11px}.recent-game>svg{color:#9ba29e;width:18px}.home-footer{border-top:1px solid var(--line);padding-block:27px calc(27px + env(safe-area-inset-bottom));color:#8b928e;justify-content:space-between;align-items:center;font-size:11px;display:flex}.home-footer span{color:#56645d;font-weight:800}.home-footer p{margin:0}.game-page{min-height:100vh;padding-bottom:env(safe-area-inset-bottom);background:radial-gradient(circle at 100% 0,#d9784d12,#0000 28rem),#f4f1e9}.game-header{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f4f1e9db;border-bottom:1px solid #d6d4cbcc;grid-template-columns:44px 1fr auto;align-items:center;gap:14px;width:min(1220px,100% - 40px);min-height:76px;margin:0 auto;display:grid;position:sticky;top:0}.brand-compact{font-size:15px}.brand-compact .brand-mark{display:none}.game-header-actions{align-items:center;gap:9px;display:flex}.connection-badge{color:#41614f;background:#e7eee8;border-radius:999px;align-items:center;gap:6px;min-height:34px;padding:0 11px;font-size:10px;font-weight:800;display:inline-flex}.connection-badge svg{width:14px;height:14px}.connection-offline{color:#9b4e40;background:#f5e4de}.connection-connecting{color:#747b76;background:#edeae1}.game-layout{grid-template-columns:minmax(420px,690px) minmax(310px,360px);align-items:start;gap:clamp(24px,4vw,52px);width:min(1140px,100% - 40px);margin:28px auto 48px;display:grid}.board-column{min-width:0}.player-bar{grid-template-columns:43px minmax(0,1fr) auto;align-items:center;gap:11px;min-height:62px;padding:7px 2px;display:grid}.player-avatar{border:1px solid #d4d5ce;border-radius:12px;place-items:center;width:42px;height:42px;font-family:Georgia,Times New Roman,serif;font-size:28px;display:grid;box-shadow:0 3px 8px #252e2912}.avatar-white{color:#fffef9;-webkit-text-stroke:.7px #2b3b33;background:#fffdf5}.avatar-black{color:#f3eee3;background:#2c4237;border-color:#25372e}.player-meta{min-width:0}.player-name-line{align-items:center;gap:7px;min-width:0;display:flex}.player-name-line strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.you-badge{color:#607067;letter-spacing:.08em;text-transform:uppercase;background:#e3e9e3;border-radius:999px;padding:3px 6px;font-size:8px;font-weight:900}.presence{color:#929994;align-items:center;gap:5px;margin-top:4px;font-size:10px;display:flex}.presence i{background:#b8bdb9;border-radius:50%;width:6px;height:6px}.presence-online{color:#5b7967}.presence-online i{background:#51a36b;box-shadow:0 0 0 3px #51a36b1f}.player-clock{color:#53615a;letter-spacing:-.06em;text-align:center;font-variant-numeric:tabular-nums;background:#fffdf8bf;border:1px solid #dad9d1;border-radius:11px;min-width:88px;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:19px;font-weight:750}.player-active .player-clock{border-color:var(--forest);background:var(--forest);color:#fff;box-shadow:0 6px 16px #29493b2e}.player-active .clock-low{border-color:var(--danger);background:var(--danger);animation:1s ease-in-out infinite clock-pulse}@keyframes clock-pulse{50%{box-shadow:0 0 0 5px #a344381f}}.player-empty{opacity:.68}.board-shell{-webkit-user-select:none;user-select:none;touch-action:manipulation;background:#fffaf0;border:7px solid #fffaf0;border-radius:18px;width:100%;overflow:hidden;box-shadow:0 18px 45px #23352c2e}.chess-board{aspect-ratio:1;grid-template-rows:repeat(8,1fr);grid-template-columns:repeat(8,1fr);width:100%;display:grid}.board-square{cursor:pointer;border:0;border-radius:0;place-items:center;min-width:0;min-height:0;padding:0;display:grid;position:relative;overflow:hidden}.square-light{background:var(--light-square);color:#59705f}.square-dark{background:var(--dark-square);color:#e6dcc7}.square-last-move:before,.square-selected:before,.square-check:before{z-index:0;content:"";position:absolute;inset:0}.square-last-move:before{background:#eec0536b}.square-selected:before{background:#ecb13a99;box-shadow:inset 0 0 0 3px #7650123d}.square-check:before{background:radial-gradient(circle,#be382ce6,#be382c40 58%,#0000 75%)}.chess-piece{z-index:2;cursor:grab;filter:drop-shadow(0 3px 2px #1f2a2438);font-family:"Noto Sans Symbols 2",Arial Unicode MS,Georgia,Times New Roman,serif;font-size:clamp(32px,5.8vw,62px);line-height:1;transition:transform .1s;display:block;position:relative}.board-square:active .chess-piece{transform:scale(1.06)}.piece-white{color:#fffdf5;-webkit-text-stroke:.7px #35443d}.piece-black{color:#213129;-webkit-text-stroke:.25px #0e1712}.legal-marker{z-index:3;aspect-ratio:1;pointer-events:none;background:#2346345c;border-radius:50%;width:22%;position:absolute}.square-legal-capture .legal-marker{background:0 0;border:clamp(3px,.45vw,5px) solid #2346346e;width:84%}.coordinate{z-index:4;pointer-events:none;font-size:clamp(7px,1.1vw,10px);font-weight:900;line-height:1;position:absolute}.coordinate-file{bottom:3px;right:4px}.coordinate-rank{top:4px;left:4px}.board-tools{color:#919792;letter-spacing:.05em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:12px;min-height:52px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;display:flex}.board-tools .button{min-height:34px;box-shadow:none;color:#6c7771;letter-spacing:.02em;text-transform:none;background:0 0;border:0;padding-inline:6px;font-family:inherit;font-size:9px}.game-sidebar{background:#fffdf8eb;border:1px solid #d3d0c6d9;border-radius:21px;min-width:0;display:grid;position:sticky;top:104px;overflow:hidden;box-shadow:0 18px 46px #25342d1a}.game-status{border-bottom:1px solid var(--line);min-height:126px;padding:23px 24px 20px}.game-status strong{color:var(--forest);letter-spacing:-.035em;font-family:Georgia,Times New Roman,serif;font-size:25px;font-weight:500;display:block}.game-status p{color:#7c8580;margin:7px 0 0;font-size:11px;line-height:1.5}.status-finished{background:linear-gradient(135deg,#f2f6f1,#fffdf880)}.invite-card{border-bottom:1px solid var(--line);grid-template-columns:43px 1fr;gap:11px;padding:20px 22px;display:grid}.invite-icon,.draw-icon{width:42px;height:42px;color:var(--forest);background:#e8eee8;border-radius:12px;place-items:center;display:grid}.invite-icon svg,.draw-icon svg{width:20px}.invite-card strong,.draw-offer strong{font-size:12px}.invite-card p,.draw-offer p{color:#868e89;margin:3px 0 0;font-size:10px;line-height:1.45}.invite-link{background:#fff;border:1px solid #dcddd5;border-radius:11px;grid-column:1/-1;grid-template-columns:minmax(0,1fr) 35px;align-items:center;min-width:0;display:grid;overflow:hidden}.invite-link span{color:#607068;text-overflow:ellipsis;white-space:nowrap;padding-left:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;overflow:hidden}.invite-link button{cursor:pointer;background:#f8f7f2;border:0;border-left:1px solid #e2e2da;place-items:center;height:35px;display:grid}.invite-link svg{width:15px}.invite-card>.button{grid-column:1/-1;min-height:45px}.draw-offer{background:#fff6e8;border-bottom:1px solid #dfcdb8;grid-template-columns:43px 1fr;gap:11px;padding:18px 22px;display:grid}.draw-icon{color:#7f5b2f;background:#f3e1c3}.draw-buttons{grid-column:1/-1;grid-template-columns:1fr 1fr;gap:7px;display:grid}.draw-buttons .button{min-height:39px;padding:0 9px;font-size:11px}.activity-panel{min-height:188px}.activity-tabs{border-bottom:1px solid #eceae3;grid-template-columns:1fr 1fr;height:42px;display:grid}.activity-tabs button{color:#55635c;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;border-right:1px solid #eceae3;justify-content:center;align-items:center;gap:7px;font-size:10px;font-weight:850;display:flex}.activity-tabs button:last-child{border-right:0}.activity-tabs button.selected{color:var(--forest);box-shadow:inset 0 -2px var(--forest);background:#f3f6f1}.activity-tabs small{color:#838b86;background:#eeeee8;border-radius:999px;place-items:center;min-width:22px;height:20px;font-size:9px;display:grid}.activity-tabs .unread-badge{background:var(--orange);color:#fff}.moves-scroll{overscroll-behavior:contain;min-height:145px;max-height:220px;overflow-y:auto}.moves-empty{color:#a3a8a5;flex-direction:column;justify-content:center;align-items:center;gap:7px;min-height:145px;display:flex}.moves-empty span{opacity:.55;font-family:Georgia,serif;font-size:30px}.moves-empty p{margin:0;font-size:10px}.moves-list{margin:0;padding:8px 0;list-style:none}.moves-list li{grid-template-columns:35px 1fr 1fr;align-items:center;min-height:31px;padding:0 23px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;display:grid}.moves-list li:nth-child(2n){background:#eeeee87a}.moves-list li>span{color:#9ca29e}.moves-list b{color:#46534c;font-weight:700}.chat-panel{grid-template-rows:auto minmax(145px,1fr) auto;min-height:250px;display:grid}.push-control{background:#faf9f4;border-bottom:1px solid #eceae3;padding:9px 12px}.push-button{width:100%;min-height:48px;color:var(--forest);text-align:left;cursor:pointer;background:#fff;border:1px solid #e0e1d9;border-radius:11px;grid-template-columns:34px 1fr;align-items:center;gap:9px;padding:7px 10px;display:grid}.push-button:disabled{cursor:default;opacity:.68}.push-button>svg{justify-self:center;width:18px}.push-button>span{flex-direction:column;gap:2px;min-width:0;display:flex}.push-button strong{font-size:10px}.push-button small{color:#8a918d;font-size:8px;font-weight:500;line-height:1.35}.push-subscribed .push-button{background:#edf5ed;border-color:#cbdccc}.chat-scroll{overscroll-behavior:contain;background:#f8f7f2;min-height:145px;max-height:210px;padding:12px;overflow-y:auto}.chat-empty{color:#9aa19d;text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:120px;display:flex}.chat-empty svg{width:25px;margin-bottom:8px}.chat-empty strong{color:#657069;font-size:11px}.chat-empty p{max-width:210px;margin:4px 0 0;font-size:9px;line-height:1.45}.chat-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.chat-list li{color:#425048;background:#fff;border:1px solid #e0e1d9;border-radius:12px 12px 12px 4px;width:fit-content;max-width:84%;padding:7px 39px 7px 10px;position:relative}.chat-list li.chat-own{border-color:var(--forest);background:var(--forest);color:#fff;border-radius:12px 12px 4px;align-self:flex-end}.chat-list li>span{color:#87908a;margin-bottom:2px;font-size:8px;font-weight:800;display:block}.chat-list li.chat-own>span{color:#bcd0c3}.chat-list p{overflow-wrap:anywhere;margin:0;font-size:10px;line-height:1.4}.chat-list time{color:#a2a8a4;font-size:7px;position:absolute;bottom:6px;right:8px}.chat-list .chat-own time{color:#acc2b5}.chat-form{background:#fff;border-top:1px solid #e5e4dc;grid-template-columns:minmax(0,1fr) 40px;gap:7px;padding:10px 12px;display:grid}.chat-form input{min-width:0;height:39px;color:var(--ink);font:inherit;background:#fafaf7;border:1px solid #dcded5;border-radius:10px;outline:none;padding:0 12px;font-size:11px}.chat-form input:focus{border-color:#779487;box-shadow:0 0 0 3px #345b481a}.chat-form button{background:var(--forest);color:#fff;cursor:pointer;border:0;border-radius:10px;place-items:center;width:40px;height:39px;display:grid}.chat-form button:disabled{cursor:default;background:#c9ceca}.chat-form button svg{width:17px}.chat-spectator-note{color:#858d88;text-align:center;border-top:1px solid #e5e4dc;padding:13px;font-size:9px}.game-actions{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:8px;padding:13px;display:grid}.game-actions .button{min-width:0;min-height:40px;padding-inline:9px;font-size:11px}.spectator-note{color:#67716c;background:#eef0eb;border-radius:12px;grid-column:1/-1;align-items:center;gap:10px;padding:10px 12px;display:flex}.spectator-note span{flex-direction:column;gap:2px;font-size:9px;display:flex}.spectator-note strong{color:#46534c;font-size:11px}.loading-page,.centered-page,.join-page{place-items:center;min-height:100vh;padding:24px;display:grid}.join-page{background:radial-gradient(circle at 50% 15%, #3d665324, transparent 23rem), var(--cream);min-height:100svh;padding:24px}.join-card{border:1px solid var(--line);width:min(430px,100%);box-shadow:var(--shadow);background:#fffdf8f2;border-radius:25px;padding:33px}.join-card>.brand{margin-bottom:34px}.join-card h1{color:var(--forest);letter-spacing:-.04em;margin:0;font-family:Georgia,serif;font-size:34px;font-weight:500}.join-card>p{color:var(--muted);margin:10px 0 25px;font-size:13px;line-height:1.5}.join-card .input-wrap{margin-bottom:13px}.join-card>small{color:#9ba19d;letter-spacing:.06em;text-align:center;text-transform:uppercase;margin-top:18px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;display:block}.join-invite-art{grid-template-columns:54px 1fr 54px;align-items:center;gap:12px;margin-bottom:30px;display:grid}.join-invite-art span{background:var(--forest);color:#fff9ed;border-radius:16px;place-items:center;width:54px;height:54px;font-family:Georgia,serif;font-size:34px;display:grid}.join-invite-art span:last-child{color:#fff;-webkit-text-stroke:.7px var(--forest);background:#fff;border:1px solid #d5d5ce}.join-invite-art i{background:repeating-linear-gradient(90deg,#b8beb9 0 4px,#0000 4px 9px);height:1px}.loading-page{color:#78817c;align-content:center;gap:16px;font-size:12px}.loading-brand{align-items:center;gap:15px;display:flex}.error-card{border:1px solid var(--line);background:var(--paper);text-align:center;width:min(430px,100%);box-shadow:var(--shadow);border-radius:24px;padding:38px}.error-card .brand-mark{margin:0 auto 22px}.error-card h1{color:var(--forest);margin:0;font-family:Georgia,serif;font-size:30px;font-weight:500}.error-card p{color:var(--muted);margin:12px 0 22px;font-size:13px;line-height:1.55}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#131d188a;place-items:center;padding:20px;animation:.16s ease-out fade-in;display:grid;position:fixed;inset:0;overflow-y:auto}@keyframes fade-in{0%{opacity:0}}.modal-card{background:var(--paper);text-align:center;border-radius:22px;width:min(390px,100%);padding:30px;animation:.19s ease-out modal-in;position:relative;box-shadow:0 35px 80px #0c161147}@keyframes modal-in{0%{transform:translateY(8px)scale(.98)}}.modal-card h2{color:var(--forest);letter-spacing:-.03em;margin:0;font-family:Georgia,serif;font-size:27px;font-weight:500}.modal-card>p{color:#737d77;margin:11px 0 22px;font-size:12px;line-height:1.55}.modal-symbol,.install-glyph{width:55px;height:55px;color:var(--forest);background:#e8eee8;border-radius:16px;place-items:center;margin:0 auto 18px;display:grid}.modal-symbol svg{width:25px}.danger-symbol{color:var(--danger);background:#f8e8e4}.modal-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.modal-actions .button{padding-inline:10px;font-size:12px}.promotion-card{text-align:left}.promotion-card h2{font-size:25px}.promotion-options{grid-template-columns:repeat(4,1fr);gap:7px;margin:22px 0 15px;display:grid}.promotion-options button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:13px;flex-direction:column;justify-content:center;align-items:center;min-width:0;min-height:92px;display:flex}.promotion-options .chess-piece{font-size:46px}.promotion-options small{color:#828a85;font-size:9px}.install-help{text-align:center}.install-glyph{background:var(--forest);color:#fff;font-family:Georgia,serif;font-size:35px}.modal-close{width:34px;height:34px;position:absolute;top:13px;right:13px}.toast{z-index:120;right:24px;bottom:calc(24px + env(safe-area-inset-bottom));color:#fff;background:#203d30;border-radius:13px;align-items:center;gap:9px;max-width:min(360px,100% - 32px);min-height:48px;padding:11px 16px;font-size:12px;font-weight:700;animation:.18s ease-out toast-in;display:flex;position:fixed;box-shadow:0 18px 45px #16271f47}.toast svg{width:18px}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@media (width<=980px){.hero{grid-template-columns:minmax(0,1fr) 360px;gap:32px}.mini-board{width:270px;height:270px}.create-section{grid-template-columns:1fr 310px}.time-picker{grid-template-columns:repeat(2,1fr)}.game-layout{grid-template-columns:1fr;gap:20px;width:min(760px,100% - 40px)}.game-sidebar{grid-template-columns:1fr 1fr;position:static}.game-status,.activity-panel,.invite-card,.draw-offer{min-width:0}.game-status{border-right:1px solid var(--line);grid-area:1/1}.invite-card,.draw-offer{grid-column:1/-1}.activity-panel{border-left:1px solid var(--line);grid-area:1/2}.game-actions{grid-column:1/-1}}@media (width<=760px){.page-width{width:min(100% - 30px,580px)}.home-header{min-height:74px}.brand{font-size:15px}.brand-mark{border-radius:11px;width:37px;height:37px;font-size:24px}.install-button{width:40px;padding:0;font-size:0}.hero{grid-template-columns:1fr;gap:35px;min-height:0;padding-block:48px 60px}.hero-copy h1{font-size:clamp(48px,15vw,66px)}.hero-copy>p{margin-block:21px 22px;font-size:16px}.hero-art{min-height:300px}.hero-art:before{width:290px;height:290px}.mini-board{border-width:7px;border-radius:22px;width:245px;height:245px}.hero-piece{font-size:61px}.hero-king{top:55px;right:23px}.hero-knight{left:26px}.note-top{right:3px}.note-bottom{left:3px}.create-section{grid-template-columns:1fr;padding-bottom:75px}.create-card,.how-card{border-radius:20px}.create-card{padding:25px 20px}.how-card{padding:26px 22px}.card-heading h2,.section-heading h2{font-size:27px}.time-picker{grid-template-columns:repeat(2,1fr)}.recent-list{grid-template-columns:1fr}.home-footer{flex-direction:column;align-items:flex-start;gap:7px}.game-header{width:100%;min-height:calc(62px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 12px 0;grid-template-columns:40px 1fr auto;gap:9px}.game-header>.icon-button{width:38px;height:38px}.brand-compact{font-size:13px}.connection-badge{justify-content:center;width:34px;padding:0;font-size:0}.share-header{width:38px;padding:0}.share-header span{display:none}.game-layout{gap:10px;width:100%;margin:10px auto 28px}.board-column{padding-inline:8px}.player-bar{grid-template-columns:38px minmax(0,1fr) auto;gap:9px;min-height:55px}.player-avatar{border-radius:10px;width:37px;height:37px;font-size:24px}.player-name-line strong{font-size:12px}.presence{margin-top:2px;font-size:9px}.player-clock{border-radius:9px;min-width:76px;padding:7px 8px;font-size:17px}.board-shell{border-width:4px;border-radius:10px;box-shadow:0 10px 28px #23352c29}.chess-piece{font-size:clamp(32px,10.8vw,53px)}.board-tools{min-height:42px}.game-sidebar{border-radius:17px;grid-template-columns:1fr;margin:0 8px}.game-status{border-right:0;grid-area:auto;min-height:112px;padding:20px}.game-status strong{font-size:23px}.activity-panel{border-left:0;border-top:1px solid var(--line);grid-area:auto}.moves-scroll{max-height:190px}.invite-card,.draw-offer,.game-actions{grid-column:auto}.toast{right:16px;bottom:calc(16px + env(safe-area-inset-bottom));max-width:none;left:16px}.modal-backdrop{padding:12px 12px calc(12px + env(safe-area-inset-bottom));align-items:end}.modal-card{border-radius:21px;width:100%}.join-page{padding:12px 12px calc(12px + env(safe-area-inset-bottom));align-items:end}.join-card{border-radius:22px;padding:28px 23px}}@media (width<=390px){.side-picker button{flex-direction:column;gap:2px;font-size:10px}.game-header .brand em{display:none}.board-column{padding-inline:4px}.game-sidebar{margin-inline:4px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
