@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600&family=DM+Sans:wght@500;600;700&family=IBM+Plex+Mono:ital,wght@0,500;0,600;1,500&display=swap";:root{--ink:#101713;--forest:#101a16;--forest-deep:#0b120f;--forest-soft:#19251f;--cream:#eee8da;--paper:#f3ede1;--sage:#879087;--sage-bright:#b9c0b4;--line:#cfad6c3d;--line-soft:#d7ded41f;--gold:#cfad6c;--gold-soft:#dbc893;--check:#c9513c;--green:#80bd91;--board-light:#d8cfb2;--board-dark:#384c42;--black:#080d0b;--acid:#cfad6c}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--forest);min-height:100%}body{min-height:100vh;color:var(--cream);background:var(--forest);margin:0;font-family:DM Sans,sans-serif}button,input,textarea{font:inherit}button{color:inherit}:is(button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible){outline:2px solid var(--gold);outline-offset:4px}button:disabled{cursor:not-allowed}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pulse-dot{background:var(--green);border-radius:50%;width:8px;height:8px}.eyebrow{color:var(--gold);letter-spacing:.25em;text-transform:uppercase;margin:0 0 22px;font:600 11px IBM Plex Mono,monospace}.error-note{color:#e78978;font-size:13px}.brand{min-height:44px;color:var(--cream);align-items:center;gap:11px;text-decoration:none;display:inline-flex}.brand>span:last-child{letter-spacing:normal;font:400 34px/1.05 Cormorant Garamond,Georgia,serif}.brand-mark{width:39px;height:57px;color:var(--gold);flex:none;place-items:center;display:grid}.quiet-knight-glyph{font:44px/1 Georgia,Times New Roman,serif;display:block;transform:translateY(-1px)}.loading-knight .quiet-knight-glyph{font-size:70px}.landing-shell{background:var(--forest);min-height:100vh;overflow-x:hidden}.topbar{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:28px;height:98px;padding:0 clamp(30px,5.5vw,92px);display:flex}.landing-nav-links{align-items:center;gap:clamp(24px,3.5vw,54px);margin-left:auto;display:flex}.landing-nav-links a{min-height:44px;color:var(--sage);align-items:center;font:italic 20px Cormorant Garamond,Georgia,serif;text-decoration:none;transition:color .18s;display:inline-flex}.landing-nav-links a:hover{color:var(--cream)}.landing-nav-links button{border:1px solid var(--gold);background:var(--gold);min-height:48px;color:var(--ink);cursor:pointer;padding:0 28px;font-weight:700}.landing-nav-links button:hover{background:var(--gold-soft)}.privacy-chip{color:var(--sage);letter-spacing:.2em;text-transform:uppercase;font:600 10px IBM Plex Mono,monospace;display:none}.hero{grid-template-columns:minmax(0,.95fr) minmax(430px,.72fr);align-items:center;gap:clamp(70px,8vw,150px);width:min(1760px,100%);min-height:760px;margin:0 auto;padding:92px clamp(48px,6vw,112px) 86px;display:grid;position:relative}.hero:before{content:"♞";color:#cfad6c09;pointer-events:none;font:590px/1 Georgia,serif;position:absolute;top:52px;left:38%;transform:rotate(-4deg)}.hero-copy{z-index:1;min-width:0;position:relative}.hero-copy h1{max-width:820px;color:var(--cream);letter-spacing:-.045em;margin:0;font:400 clamp(78px,8vw,150px)/.86 Cormorant Garamond,Georgia,serif}.hero-copy h1 em{color:var(--gold);font-weight:400}.hero-text{max-width:820px;color:var(--sage-bright);margin:38px 0 42px;font:30px/1.5 Cormorant Garamond,Georgia,serif}.hero-actions{align-items:center;gap:36px;display:flex}.primary-button{border:1px solid var(--gold);background:var(--gold);min-width:280px;min-height:70px;color:var(--ink);cursor:pointer;justify-content:space-between;align-items:center;gap:28px;padding:0 27px;font-weight:700;transition:background .18s,color .18s;display:inline-flex}.primary-button:hover{background:var(--cream);border-color:var(--cream)}.primary-button:disabled{opacity:.58;cursor:wait}.hero-actions a{min-height:44px;color:var(--sage);text-underline-offset:7px;align-items:center;font:italic 22px Cormorant Garamond,Georgia,serif;display:inline-flex}.hero-actions a:hover{color:var(--cream)}.trust-row{color:#748078;letter-spacing:.18em;text-transform:uppercase;flex-wrap:wrap;gap:0;margin-top:58px;font:600 10px IBM Plex Mono,monospace;display:flex}.trust-row span{align-items:center;display:inline-flex}.trust-row span:not(:last-child):after{content:"·";color:var(--gold);margin:0 28px}.hero-board{z-index:1;min-width:0;position:relative}.board-card{background:#080d0b3d;border:1px solid #cfad6c61;width:min(100%,630px);margin:0 auto;padding:28px}.board-preview-meta{color:#748078;letter-spacing:.18em;justify-content:space-between;align-items:flex-start;gap:20px;min-height:48px;font:600 10px IBM Plex Mono,monospace;display:flex}.board-preview-meta b{color:var(--gold)}.decorative-board{aspect-ratio:1;grid-template-rows:repeat(8,minmax(0,1fr));grid-template-columns:repeat(8,minmax(0,1fr));display:grid;overflow:hidden}.decorative-board span{background:var(--board-light);color:#131b17;text-shadow:0 1px #ffffff47;place-items:center;min-width:0;min-height:0;font:clamp(28px,3.2vw,51px)/1 Georgia,serif;display:grid}.decorative-board span.dark{background:var(--board-dark)}.board-caption{color:#717a72;text-align:center;margin:22px 0 0;font:italic 19px Cormorant Garamond,Georgia,serif}.saved-games-section{border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);background:var(--forest-deep);padding:56px clamp(30px,6vw,100px) 62px}.saved-games-heading,.saved-games-grid,.saved-games-feedback{width:min(1700px,100%);margin-left:auto;margin-right:auto}.saved-games-heading{justify-content:space-between;align-items:end;gap:24px;margin-bottom:24px;display:flex}.saved-games-heading .eyebrow{margin-bottom:7px}.saved-games-heading h2{margin:0;font:48px/1 Cormorant Garamond,Georgia,serif}.saved-games-heading>p{max-width:430px;color:var(--sage);text-align:right;margin:0;font:16px/1.5 Cormorant Garamond,Georgia,serif}.saved-games-grid{grid-template-columns:repeat(auto-fill,minmax(280px,370px));gap:16px;display:grid}.saved-game-card{border:1px solid var(--line);background:#101a16ad;min-width:0;padding:22px;position:relative}.saved-game-topline{justify-content:space-between;align-items:center;gap:8px;min-height:42px;display:flex}.saved-game-status{color:var(--sage);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:8px;font:600 9px IBM Plex Mono,monospace;display:inline-flex}.saved-game-status:before{content:"";background:#78837b;border-radius:50%;width:7px;height:7px}.saved-game-status.active:before{background:var(--green)}.saved-game-status.finished:before{background:var(--gold)}.forget-game-button{width:44px;height:44px;color:var(--sage);cursor:pointer;background:0 0;border:0;font-size:19px}.forget-game-button:hover{color:#e78978}.saved-game-code{color:#727d75;letter-spacing:.15em;margin-bottom:7px;font:600 9px IBM Plex Mono,monospace;display:block}.saved-game-card h3{margin:0;font:30px/1.05 Cormorant Garamond,Georgia,serif}.saved-game-state{color:var(--gold);letter-spacing:.12em;text-transform:uppercase;margin:8px 0 0;font:600 9px IBM Plex Mono,monospace}.saved-game-meta{min-height:42px;color:var(--sage);margin:13px 0 18px;font-size:11px;line-height:1.6}.saved-game-meta span{color:var(--gold);margin:0 6px}.saved-game-actions{grid-template-columns:1fr 1fr;gap:9px;display:grid}.saved-game-actions button{border:1px solid var(--line);min-height:46px;color:var(--cream);cursor:pointer;text-transform:uppercase;background:0 0;padding:9px 12px;font:600 9px IBM Plex Mono,monospace}.saved-game-actions button:first-child{border-color:var(--gold);background:var(--gold);color:var(--ink)}.saved-game-actions button:hover{border-color:var(--cream)}.saved-games-feedback{min-height:20px;color:var(--sage);margin-top:12px;font-size:10px}.how-it-works{border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);grid-template-columns:repeat(3,1fr);display:grid}.how-it-works article{min-height:310px;padding:74px clamp(36px,5vw,96px)}.how-it-works article:not(:last-child){border-right:1px solid var(--line-soft)}.how-it-works b{color:#cfad6c61;margin-bottom:34px;font:italic 52px/1 Cormorant Garamond,Georgia,serif;display:block}.how-it-works h3{margin:0 0 17px;font:36px/1.05 Cormorant Garamond,Georgia,serif}.how-it-works p{max-width:430px;color:var(--sage);margin:0;font:21px/1.55 Cormorant Garamond,Georgia,serif}.missive-section{background:var(--forest-deep);padding:90px clamp(30px,6vw,100px)}.missive-card{background:#0d1512;border:1px solid #cfad6c66;grid-template-columns:minmax(0,.92fr) minmax(420px,.8fr);align-items:center;gap:clamp(60px,8vw,150px);width:min(1600px,100%);margin:0 auto;padding:clamp(48px,6vw,92px);display:grid}.missive-card h2{margin:0 0 28px;font:italic clamp(52px,5vw,78px)/.95 Cormorant Garamond,Georgia,serif}.missive-card>div>p:last-child{max-width:720px;color:var(--sage-bright);margin:0;font:25px/1.55 Cormorant Garamond,Georgia,serif}.missive-card form>div{grid-template-columns:minmax(0,1fr) auto;display:grid}.missive-card input{border:1px solid var(--line-soft);background:var(--forest-deep);min-width:0;min-height:72px;color:var(--cream);border-right:0;padding:0 24px;font:italic 20px Cormorant Garamond,Georgia,serif}.missive-card input::placeholder{color:#68736c}.missive-card button{border:1px solid var(--gold);background:var(--gold);min-height:72px;color:var(--ink);cursor:pointer;padding:0 30px;font-weight:700}.missive-card button:hover{background:var(--cream);border-color:var(--cream)}.missive-card form small{color:#6f7972;letter-spacing:.1em;margin-top:20px;font:500 10px/1.7 IBM Plex Mono,monospace;display:block}.missive-card form>p{color:#6f7972;letter-spacing:.1em;min-height:24px;margin:10px 0 0;font:500 10px/1.7 IBM Plex Mono,monospace}.mobile-label{display:none}.site-footer{border-top:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:30px;min-height:120px;padding:0 clamp(30px,5vw,92px);display:flex}.studio-signature{color:#6f7a72;align-items:center;gap:10px;min-height:44px;font:italic 18px Cormorant Garamond,Georgia,serif;text-decoration:none;display:inline-flex}.studio-signature:hover{color:var(--cream)}.site-footer nav{color:#6f7a72;letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:34px;font:600 9px IBM Plex Mono,monospace;display:flex}.site-footer nav a{color:inherit;text-decoration:none}.site-footer nav a:hover{color:var(--cream)}.loading-screen{background:var(--forest);min-height:100vh;color:var(--cream);text-align:center;place-content:center;justify-items:center;padding:30px;display:grid}.loading-knight{width:72px;height:72px;color:var(--gold)}.loading-screen h1{margin:22px 0 8px;font:46px Cormorant Garamond,Georgia,serif}.loading-screen p{color:var(--sage)}.secondary-button{border:1px solid var(--gold);min-height:46px;color:var(--gold);cursor:pointer;background:0 0;margin-top:20px;padding:0 20px}.game-shell{background:var(--forest-deep);min-height:100vh;color:var(--cream);overflow-x:hidden}.game-nav{border-bottom:1px solid var(--line-soft);background:var(--forest);justify-content:space-between;align-items:center;gap:24px;height:92px;padding:0 clamp(24px,3.5vw,68px);display:flex}.brand-button{cursor:pointer;background:0 0;border:0;min-width:44px;min-height:44px;padding:0}.game-nav-actions{align-items:center;gap:clamp(18px,2.6vw,42px);display:flex}.game-id,.saved-indicator{color:#748078;letter-spacing:.16em;text-transform:uppercase;font:600 10px IBM Plex Mono,monospace}.saved-indicator{color:var(--green);align-items:center;gap:10px;display:inline-flex}.nav-invite-button{min-height:46px;color:var(--gold);cursor:pointer;letter-spacing:.16em;background:0 0;border:1px solid #cfad6c7a;padding:0 24px;font:600 10px IBM Plex Mono,monospace}.nav-invite-button:hover{border-color:var(--gold);background:var(--gold);color:var(--ink)}.icon-button{border:1px solid var(--line-soft);width:44px;height:44px;color:var(--sage);cursor:pointer;background:0 0;border-radius:50%;font-size:19px}.icon-button:hover{border-color:var(--gold);color:var(--gold)}.game-layout{grid-template-columns:minmax(520px,49%) minmax(430px,1fr);min-height:calc(100vh - 92px);display:grid}.board-column{flex-direction:column;justify-content:flex-start;min-width:0;padding:110px clamp(34px,4vw,78px) 46px;display:flex}.player-bar{align-items:center;gap:16px;min-height:74px;padding:5px 0;display:flex}.player-avatar{width:48px;height:48px;color:var(--cream);background:#263a31;border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:700;display:grid}.player-avatar.you{background:var(--gold);color:var(--ink)}.player-bar>div{gap:3px;display:grid}.player-bar b{font:28px/1 Cormorant Garamond,Georgia,serif}.player-bar small{color:#738078;letter-spacing:.18em;font:600 9px IBM Plex Mono,monospace}.player-name-button{min-width:44px;min-height:44px;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;justify-self:start;align-items:center;gap:9px;padding:0;display:inline-flex}.player-name-button>span{color:#738078;opacity:0;font-size:13px;transition:opacity .16s,transform .16s;transform:translate(-3px)}:is(.player-name-button:hover>span,.player-name-button:focus-visible>span){opacity:1;transform:translate(0)}.player-name-button:hover b{color:var(--gold)}.player-name-form{align-items:center;gap:8px;display:flex}.player-name-form input{border:1px solid var(--gold);width:min(240px,30vw);min-height:44px;color:var(--cream);background:#ffffff0d;padding:4px 9px;font:26px/1 Cormorant Garamond,Georgia,serif}.player-name-form button{min-height:44px;color:var(--gold);cursor:pointer;letter-spacing:.12em;text-transform:uppercase;background:0 0;border:1px solid #cfad6c8c;padding:0 11px;font:600 8px IBM Plex Mono,monospace}.player-name-form button:disabled{cursor:default;opacity:.5}.active-player small{color:var(--gold)}.turn-indicator{color:var(--gold);letter-spacing:.15em;align-items:center;gap:9px;margin-left:auto;font:600 9px IBM Plex Mono,monospace;display:inline-flex}.turn-indicator:before{content:"";background:var(--green);border-radius:50%;width:7px;height:7px}.board-stage{width:100%;position:relative}.chessboard{aspect-ratio:1;background:var(--board-light);grid-template-rows:repeat(8,minmax(0,1fr));grid-template-columns:repeat(8,minmax(0,1fr));width:100%;display:grid;overflow:hidden}.board-alert{z-index:8;color:var(--gold);letter-spacing:.16em;text-transform:uppercase;pointer-events:none;padding:7px 10px;font:600 9px IBM Plex Mono,monospace;position:absolute;top:-31px;right:0}.state-your-turn .chessboard{box-shadow:0 0 0 3px #cfad6ccc}.state-own-check .chessboard,.state-opponent-check .chessboard{box-shadow:0 0 0 4px var(--check)}.state-own-check .board-alert,.state-opponent-check .board-alert{color:#ef8e7a}.square{cursor:pointer;border:0;place-items:center;min-width:0;min-height:0;padding:0;display:grid;position:relative;overflow:hidden}.square:focus-visible{z-index:5;outline-color:var(--gold);outline-offset:-4px}.light-square{background:var(--board-light)}.dark-square{background:var(--board-dark)}.square.last-move:before{content:"";background:#d0b1648a;position:absolute;inset:0}.square.selected-square:before{content:"";background:#debe6db8;position:absolute;inset:0;box-shadow:inset 0 0 0 3px #503a0f47}.square.king-in-check:after{content:"";z-index:1;background:#c9513cb3;border:clamp(3px,.5vw,7px) solid #f4d8d1;animation:1.05s ease-in-out infinite king-pressure;position:absolute;inset:7%;box-shadow:0 0 22px #c9513cdb}@keyframes king-pressure{0%,to{opacity:.76;transform:scale(.92)}50%{opacity:1;transform:scale(1.02)}}.piece{z-index:2;-webkit-user-select:none;user-select:none;font:clamp(34px,5.5vw,72px)/1 Georgia,serif;position:relative;transform:translateY(-1px)}.piece-w{color:#fff9eb;text-shadow:0 2px 2px #0c120fb8}.piece-b{color:#121a16;text-shadow:0 1px #ffffff2e}.move-dot{z-index:3;aspect-ratio:1;background:#0f1c1666;border-radius:50%;width:17%;position:absolute}.capture-ring{z-index:3;border:clamp(3px,.5vw,6px) solid #0f1c1666;border-radius:50%;position:absolute;inset:8%}.rank-label,.file-label{z-index:4;color:#111b166b;pointer-events:none;font:600 clamp(7px,.8vw,10px) IBM Plex Mono,monospace;position:absolute}.rank-label{top:5px;left:6px}.file-label{bottom:4px;right:6px}.dark-square .rank-label,.dark-square .file-label{color:#eee8da73}.game-panel{border-left:1px solid var(--line-soft);background:#0d1512;flex-direction:column;min-width:0;display:flex}.status-card{border-bottom:1px solid var(--line-soft);background:0 0;order:3;min-height:136px;padding:28px 38px 26px;position:relative}.status-card .eyebrow{margin-bottom:10px}.status-card h1{max-width:640px;margin:0 0 7px;font:38px/.95 Cormorant Garamond,Georgia,serif}.status-card>p:last-of-type{max-width:650px;color:var(--sage);margin:0;font:17px/1.45 Cormorant Garamond,Georgia,serif}.status-stamp{color:#6e7971;letter-spacing:.16em;text-transform:uppercase;font:600 9px IBM Plex Mono,monospace;position:absolute;top:32px;right:38px}.status-card.state-your-turn{box-shadow:inset 4px 0 0 var(--gold)}.status-card.state-your-turn .eyebrow,.status-card.state-your-turn .status-stamp{color:var(--gold)}.status-card.state-own-check,.status-card.state-opponent-check{box-shadow:inset 4px 0 0 var(--check)}.status-card.state-own-check .eyebrow,.status-card.state-opponent-check .eyebrow,.status-card.state-own-check .status-stamp,.status-card.state-opponent-check .status-stamp{color:#ef8e7a}.status-card.state-won{background:var(--gold);color:var(--ink)}.status-card.state-won .eyebrow,.status-card.state-won>p:last-of-type,.status-card.state-won .status-stamp{color:#455148}.status-card.state-lost{background:#431d17}.status-card.state-draw{background:#242d28}.game-preferences{border-bottom:1px solid var(--line-soft);order:4;padding:12px 38px 16px}.preferences-heading{color:#6f7972;letter-spacing:.14em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:12px;min-height:32px;font:600 8px IBM Plex Mono,monospace;display:flex}.sound-toggle{color:#6f7972;cursor:pointer;text-transform:uppercase;background:0 0;border:0;min-height:44px;padding:0;font:600 8px IBM Plex Mono,monospace}.sound-toggle:hover,.sound-toggle[aria-pressed=true]{color:var(--gold)}.sound-toggle span{margin-right:6px;font-size:14px}.attitude-options{gap:8px;display:flex}.attitude-options button{border:1px solid var(--line-soft);color:#77827a;cursor:pointer;background:0 0;min-height:44px;padding:0 15px;font-size:9px}.attitude-options button:hover,.attitude-options button[aria-pressed=true]{border-color:var(--gold);color:var(--gold)}.invite-card,.waiting-card{border-bottom:1px solid var(--line-soft);background:0 0;order:5;grid-template-columns:34px 1fr;gap:14px;margin:0;padding:21px 38px;display:grid}.invite-icon,.waiting-card>span{border:1px solid var(--line);width:32px;height:32px;color:var(--gold);border-radius:50%;place-items:center;font-size:18px;display:grid}.invite-card b,.waiting-card b{font:20px Cormorant Garamond,Georgia,serif}.invite-card p,.waiting-card p{color:var(--sage);margin:5px 0 0;font:15px/1.45 Cormorant Garamond,Georgia,serif}.private-link-actions{grid-column:1/-1;grid-template-columns:1fr 1fr;gap:9px;display:grid}.private-link-actions button{border:1px solid var(--line);min-height:52px;color:var(--cream);cursor:pointer;text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:12px;padding:9px 12px;display:flex}.private-link-actions button:last-child{border-color:var(--gold);background:var(--gold);color:var(--ink)}.private-link-actions button>span:first-child{gap:2px;display:grid}.private-link-actions button small{letter-spacing:.14em;opacity:.65;font:600 7px IBM Plex Mono,monospace}.postgame-card{border-bottom:1px solid var(--line-soft);background:var(--gold);color:var(--ink);order:3;margin:0;padding:24px 38px}.postgame-card.postgame-lost{color:var(--cream);background:#431d17}.postgame-card.postgame-draw{color:var(--cream);background:#242d28}.postgame-kicker{letter-spacing:.12em;text-transform:uppercase;margin:0 0 8px;font:600 8px IBM Plex Mono,monospace}.postgame-card h2{margin:0 0 15px;font:28px/1.05 Cormorant Garamond,Georgia,serif}.postgame-recap{border-top:1px solid;border-bottom:1px solid;grid-template-columns:.7fr 1.15fr .75fr;gap:10px;padding:11px 0;font:500 10px IBM Plex Mono,monospace;display:grid}.postgame-recap small{opacity:.55;margin-bottom:4px;font-size:7px;display:block}.postgame-actions{grid-template-columns:1.2fr 1fr 1fr;gap:7px;margin-top:13px;display:grid}.postgame-actions button{cursor:pointer;background:0 0;border:1px solid;min-height:44px;padding:8px;font-size:8px;font-weight:700}.postgame-actions .rematch-button{background:var(--ink);color:var(--cream)}.postgame-feedback{opacity:.62;min-height:22px;margin:10px 0 -5px;font-size:8px}.moves-card{border-bottom:1px solid var(--line-soft);background:0 0;order:1;min-height:154px;margin:0}.board-moves-card{order:initial;border:1px solid var(--line-soft);background:#0d15127a;min-height:0;margin-top:14px}.board-moves-card .panel-heading{min-height:52px;padding:0 20px}.board-moves-card .moves-list{max-height:150px;padding:12px 20px}.board-moves-card .move-row{grid-template-columns:36px 1fr 1fr;padding:5px 0}.panel-heading{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;min-height:62px;padding:0 38px;display:flex}.panel-heading b{color:var(--gold);letter-spacing:.18em;text-transform:uppercase;font:600 10px IBM Plex Mono,monospace}.panel-heading span{color:#6f7972;font:500 9px IBM Plex Mono,monospace}.moves-list{max-height:158px;padding:20px 38px;overflow:auto}.move-row{color:var(--sage-bright);grid-template-columns:42px 1fr 1fr;padding:7px 0;font:500 14px IBM Plex Mono,monospace;display:grid}.move-row small{color:#68736c}.empty-moves{color:var(--sage);margin:18px 0;font:italic 18px Cormorant Garamond,Georgia,serif}.chat-card{background:0 0;flex-direction:column;flex:none;order:2;min-height:max(320px,50vh - 151px);display:flex}.chat-list{scroll-behavior:smooth;flex:1;min-height:110px;padding:20px 38px 12px;overflow-y:auto}.chat-message{grid-template-columns:42px minmax(0,1fr);place-items:start;gap:12px;margin:0 0 20px;display:grid}.chat-message:before{content:"OP";width:34px;height:34px;color:var(--cream);background:#263a31;border-radius:50%;place-items:center;font-size:9px;font-weight:700;display:grid}.chat-message>span{color:#5f6962;text-transform:uppercase;grid-area:2/2;margin-top:-7px;font:500 8px IBM Plex Mono,monospace}.chat-message p{background:var(--forest-soft);max-width:86%;color:var(--cream);overflow-wrap:anywhere;white-space:pre-wrap;grid-column:2;margin:0;padding:13px 17px;font:20px/1.3 Cormorant Garamond,Georgia,serif}.chat-message.own-message{grid-template-columns:minmax(0,1fr) 42px;justify-items:end}.chat-message.own-message:before{content:"YOU";background:var(--gold);color:var(--ink);grid-column:2}.chat-message.own-message p{background:#26332d;grid-area:1/1}.chat-message.own-message>span{grid-area:2/1}.empty-chat{color:#69746c;text-align:center;flex:1;place-content:center;justify-items:center;gap:7px;min-height:100px;display:grid}.empty-chat span{color:var(--gold);font-size:16px}.empty-chat p{max-width:250px;margin:0;font:italic 18px/1.35 Cormorant Garamond,Georgia,serif}.chat-quick-replies{flex-wrap:wrap;gap:10px;padding:8px 38px 14px;display:flex}.chat-quick-replies button{min-height:44px;color:var(--gold);cursor:pointer;background:0 0;border:1px solid #cfad6c73;border-radius:999px;padding:0 19px;font:italic 16px Cormorant Garamond,Georgia,serif}.chat-quick-replies button:hover{border-color:var(--gold);background:var(--gold);color:var(--ink)}.chat-form{grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:0 38px 18px;display:grid}.chat-form textarea{border:1px solid var(--line-soft);resize:vertical;background:var(--forest-deep);min-height:62px;max-height:130px;color:var(--cream);padding:17px 18px;font:italic 18px/1.35 Cormorant Garamond,Georgia,serif}.chat-form textarea::placeholder{color:#68736c}.chat-form button{border:1px solid var(--gold);background:var(--gold);min-width:100px;min-height:62px;color:var(--ink);cursor:pointer;padding:0 20px;font-weight:700}.chat-form button:hover{background:var(--cream);border-color:var(--cream)}.chat-form button:disabled{opacity:.45}.chat-feedback{color:#657068;justify-content:space-between;gap:8px;min-height:20px;padding:0 38px 10px;font-size:8px;display:flex}.chat-error{color:#e78978}.panel-actions{order:7;justify-content:space-between;padding:0 38px 16px;display:flex}.panel-actions button{border:1px solid var(--line-soft);color:#737e76;cursor:pointer;text-transform:uppercase;background:0 0;min-height:44px;padding:0 12px;font:600 8px IBM Plex Mono,monospace}.panel-actions button:hover{border-color:var(--gold);color:var(--gold)}.panel-actions .resign-button{color:#d57a68}.panel-error{border:1px solid #c9513c59;order:8;margin:0 38px 12px;padding:10px}.secure-note{color:#59645d;order:9;margin:0;padding:0 38px 10px;font-size:8px;line-height:1.5}.game-signature{color:#5d6861;letter-spacing:.08em;text-transform:uppercase;order:10;align-items:center;gap:6px;min-height:44px;margin:0 38px 10px;font:600 8px IBM Plex Mono,monospace;text-decoration:none;display:inline-flex}.game-signature:hover{color:var(--gold)}.winner-confetti{z-index:30;pointer-events:none;width:50%;height:300px;animation:3s ease-out both winner-burst;position:absolute;top:31px;right:0;overflow:hidden}.winner-confetti i{--x:50%;--y:20%;--rotate:20deg;--shard:var(--gold);top:var(--y);left:var(--x);background:var(--shard);width:9px;height:22px;transform:rotate(var(--rotate));position:absolute}.winner-confetti i:nth-child(3n){width:17px;height:9px}.winner-confetti i:nth-child(4n){width:7px;height:28px}@keyframes winner-burst{0%{opacity:0;transform:scale(.78)}16%{opacity:1;transform:scale(1)}72%{opacity:.9;transform:scale(1.03)}to{opacity:0;transform:scale(1.06)}}.modal-backdrop{z-index:20;background:#040806cc;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.promotion-card{border:1px solid var(--line);background:var(--forest);text-align:center;width:min(420px,100%);padding:32px}.promotion-card h2{margin:0 0 22px;font:38px Cormorant Garamond,Georgia,serif}.promotion-card>div{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.promotion-card>div button{aspect-ratio:1;border:1px solid var(--line);background:var(--board-light);color:var(--ink);cursor:pointer;font:48px Georgia,serif}.promotion-card>div button:hover{background:var(--gold)}.cancel-link{min-height:44px;color:var(--sage);cursor:pointer;background:0 0;border:0;margin-top:18px}@media (max-width:1180px){.hero{grid-template-columns:minmax(0,.9fr) minmax(390px,.7fr);gap:50px}.hero-copy h1{font-size:clamp(72px,8.5vw,112px)}.hero-text{font-size:25px}.game-layout{grid-template-columns:minmax(460px,52%) minmax(390px,1fr)}.board-column{padding-left:30px;padding-right:30px}.status-card,.game-preferences,.panel-heading,.moves-list,.chat-list,.chat-quick-replies,.chat-form,.chat-feedback,.panel-actions,.secure-note{padding-left:28px;padding-right:28px}}@media (max-width:900px){.landing-nav-links{display:none}.privacy-chip{display:block}.hero{grid-template-columns:1fr;gap:64px;min-height:auto;padding-top:72px}.hero-copy{text-align:left}.hero-copy h1{max-width:720px}.hero-text{max-width:680px}.hero-board{width:min(620px,100%)}.how-it-works{grid-template-columns:1fr}.how-it-works article{min-height:auto}.how-it-works article:not(:last-child){border-right:0;border-bottom:1px solid var(--line-soft)}.missive-card{grid-template-columns:1fr}.game-layout{min-height:auto;display:block}.board-column{width:min(780px,100%);margin:0 auto;padding:22px 0 30px}.player-bar{padding-left:18px;padding-right:18px}.chessboard{width:100%}.game-panel{border-left:0;border-top:1px solid var(--line-soft)}.chat-card{order:1}.status-card{order:2}.game-preferences{order:3}.invite-card,.waiting-card{order:4}.board-moves-card{margin:8px 18px 0}.status-card{min-height:120px}.chat-card{min-height:320px}.winner-confetti{width:100%}}@media (max-width:580px){.topbar{height:88px;padding:0 24px}.brand>span:last-child{font-size:29px}.brand-mark{width:38px;height:51px}.privacy-chip{text-align:right;max-width:120px}.hero{gap:46px;padding:72px 24px 60px}.hero:before{font-size:360px;top:90px;left:35%}.hero-copy h1{font-size:clamp(70px,21vw,96px)}.hero-text{margin:34px 0;font-size:25px;line-height:1.45}.hero-actions{gap:18px;display:grid}.primary-button{width:100%;min-width:0}.hero-actions a{justify-content:center}.trust-row{justify-content:center;margin-top:42px}.trust-row .desktop-trust{display:none}.trust-row span:not(:last-child):after{margin:0 12px}.board-card{padding:16px}.board-preview-meta{min-height:38px;font-size:7px}.decorative-board span{font-size:clamp(25px,11vw,46px)}.board-caption{font-size:16px}.saved-games-section{padding:42px 20px}.saved-games-heading{gap:12px;display:grid}.saved-games-heading>p{text-align:left}.saved-games-grid{grid-template-columns:1fr}.how-it-works article{padding:52px 28px}.how-it-works b{margin-bottom:22px}.how-it-works h3{font-size:32px}.missive-section{padding:54px 20px}.missive-card{gap:44px;padding:38px 24px}.missive-card h2{font-size:52px}.missive-card>div>p:last-child{font-size:21px}.missive-card form>div{grid-template-columns:1fr;gap:10px}.missive-card input{border-right:1px solid var(--line-soft)}.missive-card .desktop-label{display:none}.missive-card .mobile-label{display:inline}.site-footer{justify-content:stretch;min-height:150px;padding:28px 24px;display:grid}.site-footer nav{display:none}.game-nav{height:76px;padding:0 18px}.game-nav .brand>span:last-child{font-size:25px;display:inline}.game-id,.nav-invite-button,.icon-button{display:none}.game-nav-actions{gap:0}.saved-indicator{font-size:8px}.board-column{padding-top:14px;padding-bottom:22px}.player-bar{gap:11px;min-height:62px;padding-left:14px;padding-right:14px}.player-avatar{width:40px;height:40px;font-size:9px}.player-bar b{font-size:23px}.player-bar small{font-size:7px}.player-name-button>span{opacity:1}.player-name-form input{width:min(180px,44vw);min-height:44px;font-size:22px}.player-name-form button{min-height:44px;padding:0 8px}.turn-indicator{font-size:7px}.board-alert{font-size:7px;top:-23px;right:8px}.piece{font-size:clamp(31px,12vw,58px)}.status-card{min-height:0;padding:24px 20px}.status-card h1{font-size:32px}.status-card>p:last-of-type{font-size:15px}.status-stamp{font-size:7px;top:26px;right:20px}.game-preferences{padding:12px 20px 15px}.attitude-options{grid-template-columns:repeat(3,1fr);display:grid}.attitude-options button{padding:0 5px}.invite-card,.waiting-card{padding:20px}.private-link-actions{grid-template-columns:1fr}.board-moves-card{margin:8px 14px 0}.panel-heading{min-height:58px;padding-left:20px;padding-right:20px}.moves-list{padding:16px 20px}.chat-card{border:1px solid #cfad6c38;border-bottom:0;border-radius:30px 30px 0 0;order:1;min-height:320px;margin-top:12px;overflow:hidden}.chat-list{min-height:110px;max-height:220px;padding:16px 20px 8px}.empty-chat{min-height:100px}.chat-message p{max-width:100%;font-size:18px}.chat-quick-replies{flex-wrap:nowrap;gap:8px;padding:8px 20px 14px;overflow-x:auto}.chat-quick-replies button{flex:none;min-height:44px;padding:0 16px}.chat-form{padding:0 20px 16px}.chat-form textarea,.chat-form button{min-height:52px}.chat-form button{min-width:82px}.chat-feedback{padding:0 20px 8px}.panel-actions{padding:0 20px 16px}.secure-note,.game-signature{display:none}.postgame-card{padding:24px 20px}.postgame-actions{grid-template-columns:1fr 1fr}.postgame-actions .rematch-button{grid-column:1/-1}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.winner-confetti{display:none}}
