@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap";:root{font-family:DM Sans,Avenir Next,sans-serif;color:#25291f;background:#f5f4ee;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #25291f;--muted: #77796f;--line: #deddd3;--paper: #fbfaf6;--warm: #d8945b;--red: #b84f35;--green: #78846b;--mono: "DM Mono", monospace}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(184,79,53,.26);outline-offset:2px}.page-shell{max-width:1240px;min-height:100vh;padding:0 46px;margin:0 auto}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font:800 12px Manrope,sans-serif;letter-spacing:.17em;text-decoration:none}.brand-mark{font:700 20px Manrope,sans-serif;letter-spacing:-.12em;color:var(--red)}.brand-button{background:transparent;border:0;padding:0;cursor:pointer}.top-note,.section-index,.eyebrow{font:500 10px var(--mono);letter-spacing:.13em;color:var(--muted)}.top-note{letter-spacing:.16em}.hero{min-height:438px;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:50px;padding:64px 0 58px}.hero-copy{max-width:555px}.eyebrow{display:inline-flex;align-items:center;gap:8px}.live-dot,.connection-pill i,.match-live-label i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#8f9b76}h1,h2,h3,p{margin-top:0}.hero h1{margin:20px 0 19px;font:700 clamp(48px,6vw,76px)/.99 Manrope,sans-serif;letter-spacing:-.075em}.hero h1 em{font-family:Georgia,serif;font-weight:400;color:var(--red)}.hero-copy>p{max-width:420px;color:#66685f;font-size:15px;line-height:1.75}.hero-stats{display:flex;gap:27px;margin-top:32px;color:var(--muted);font-size:11px}.hero-stats span{display:flex;align-items:baseline;gap:7px}.hero-stats strong{color:var(--ink);font:700 17px Manrope,sans-serif}.hero-art{height:292px;position:relative;overflow:hidden;background:#ebe9dd;border-radius:3px;transform:rotate(1deg);box-shadow:13px 15px #e0ded2}.art-grid{position:absolute;inset:-35px;background-image:linear-gradient(to right,rgba(73,72,57,.16) 1px,transparent 1px),linear-gradient(to bottom,rgba(73,72,57,.16) 1px,transparent 1px);background-size:39px 39px;transform:rotate(-8deg) scale(1.08)}.art-stone{position:absolute;z-index:1;display:grid;place-items:center;width:53px;height:53px;border-radius:50%;background:#faf9f3;box-shadow:1px 3px 7px #b5b29f;font:500 42px/1 Manrope}.art-stone--x{left:30%;top:27%;color:var(--red);transform:rotate(-6deg)}.art-stone--o{left:51%;top:46%;color:#3e5c63}.art-stone--x2{left:71%;top:23%;color:var(--red);transform:rotate(4deg)}.art-stone--o2{left:26%;top:67%;color:#3e5c63}.art-caption{position:absolute;right:18px;bottom:17px;color:#767466;font:9px var(--mono);letter-spacing:.14em}.play-area{padding:39px 0 42px;border-top:1px solid var(--line)}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:24px}.section-heading h2,.lobby-title h2{margin:7px 0 0;font:700 26px Manrope,sans-serif;letter-spacing:-.05em}.section-index{padding-bottom:4px}.field-label{display:block;margin-bottom:8px;color:#55574e;font:600 11px Manrope,sans-serif}.input,.select{width:100%;height:46px;border:1px solid #dcdacf;border-radius:3px;background:#fbfaf6;padding:0 14px;color:var(--ink);outline:none;transition:border-color .15s,box-shadow .15s}.input:focus,.select:focus{border-color:#a9a58f;box-shadow:0 0 0 3px #78846b1a}.input::placeholder{color:#aaa99f}.name-input{max-width:340px;margin-bottom:24px}.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.mode-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;min-height:272px;padding:23px 24px 21px;border:1px solid var(--line);background:#fbfaf68c;cursor:pointer;transition:border-color .15s,transform .15s,background .15s}.mode-card:hover{transform:translateY(-2px);border-color:#bcb8a8}.mode-card--selected{background:var(--paper);border-color:#bcb8a8}.mode-card h3{margin:7px 0 5px;font:700 23px Manrope;letter-spacing:-.04em}.mode-card p{max-width:320px;min-height:37px;margin:0 0 15px;color:var(--muted);font-size:12px;line-height:1.55}.mode-icon{height:42px;margin-bottom:10px;color:var(--red);font:700 32px Manrope;letter-spacing:-.14em}.mode-icon span{margin-left:3px;color:#3e5c63}.mode-icon--tournament{color:var(--green);font-size:34px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:43px;border:1px solid transparent;border-radius:3px;padding:0 15px;cursor:pointer;font:600 12px Manrope,sans-serif;transition:background .15s,transform .15s,opacity .15s}.button:hover:not(:disabled){transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.48}.button--dark{margin-top:auto;color:#fff;background:#32372d}.button--dark:hover:not(:disabled){background:#20251d}.button--warm{margin-top:auto;color:#fff;background:#ba7950}.button--warm:hover:not(:disabled){background:#a96742}.button--outline{color:var(--ink);background:transparent;border-color:#c8c5b8}.button--outline:hover:not(:disabled){background:#f1efe6}.button--small{min-height:34px;gap:9px;font-size:10px}.button--wide{width:100%;margin-top:22px}.select{max-width:145px;height:36px;margin-bottom:12px;font-size:12px;cursor:pointer}.settings-row{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:23px;padding:15px 0 17px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.settings-row .field-label{margin-bottom:4px}.field-help{color:#929187;font-size:11px}.time-options{display:flex;gap:5px;padding:4px;border:1px solid var(--line);border-radius:4px;background:#efeee7}.time-option{border:0;border-radius:2px;padding:8px 11px;color:#6d6e65;background:transparent;cursor:pointer;font:500 10px Manrope}.time-option--active{color:var(--ink);background:var(--paper);box-shadow:0 1px 3px #d9d7cd}.join-panel{display:grid;grid-template-columns:.75fr 1.25fr;gap:25px;align-items:center;margin-top:24px;padding:19px 21px;background:#eeede5}.join-copy h3{margin:7px 0 4px;font:700 17px Manrope;letter-spacing:-.03em}.join-copy p{margin:0;color:var(--muted);font-size:11px}.join-form{display:grid;grid-template-columns:.8fr 1fr auto;gap:7px}.join-form .input{height:40px;font-size:11px}.code-input{font:500 12px var(--mono)!important;letter-spacing:.14em}.join-form .button{min-height:40px}.privacy-line{margin:9px 0 0;color:#96948a;font-size:10px;text-align:right}.footer{min-height:62px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);color:#99978d;font:9px var(--mono);letter-spacing:.1em}.toast{margin-top:13px;padding:11px 13px;border:1px solid #d8d4c4;background:#fffdf5;color:#5c594c;font-size:12px}.toast--error{border-color:#e5c1b9;background:#fff6f3;color:#9c3f2b}.room-page{display:flex;flex-direction:column}.room-top-meta{display:flex;align-items:center;gap:15px}.connection-pill{display:inline-flex;align-items:center;gap:7px;color:#66685f;font-size:10px}.connection-pill--connecting i{background:#c39a5c}.connection-pill--offline i{background:#bc503b}.room-heading{display:flex;align-items:end;justify-content:space-between;padding:34px 0 27px}.room-heading h1{margin:7px 0 0;font:700 31px Manrope;letter-spacing:-.06em}.room-code-lockup{display:flex;flex-direction:column;align-items:end;gap:4px;color:var(--muted);font:9px var(--mono);letter-spacing:.13em}.room-code-lockup strong{color:var(--ink);font-size:16px;letter-spacing:.18em}.lobby-card{width:min(100%,580px);margin:12px auto 60px;padding:28px;border:1px solid var(--line);background:var(--paper)}.lobby-title{display:flex;align-items:center;justify-content:space-between}.member-count{color:var(--ink);font:700 28px Manrope}.member-count span{color:#96948a;font-size:15px;font-weight:500}.lobby-invite{margin:9px 0 17px;color:var(--muted);font-size:12px}.member-list{border-top:1px solid var(--line)}.member-row{min-height:51px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #ebe9e0}.member-avatar{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#efede4;color:var(--red);font:600 22px Manrope}.member-row:nth-child(2n) .member-avatar{color:#3e5c63}.member-name{flex:1;font-size:12px}.member-name small{color:#96948a}.host-tag{color:#8d8b7e;font:9px var(--mono);letter-spacing:.08em}.member-row--empty{color:#aaa99f}.member-row--empty .member-avatar{color:#bdbbb0}.waiting-note{margin-top:20px;color:#79776d;font-size:11px;text-align:center}.recovery-share{display:block;margin:13px auto 0;padding:4px;border:0;color:#74766a;background:transparent;cursor:pointer;font-size:10px;text-decoration:underline;text-underline-offset:3px}.match-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;align-items:start;gap:28px;padding-bottom:36px}.match-main{min-width:0}.players-strip{display:flex;align-items:center;justify-content:center;gap:22px;margin:0 0 15px}.player-chip{min-width:180px;display:flex;align-items:center;gap:11px;padding:10px 13px;border:1px solid transparent}.player-chip--turn{border-color:#d4d1c3;background:var(--paper)}.player-symbol{display:grid;place-items:center;width:34px;height:34px;font:500 30px Manrope}.player-symbol--x{color:var(--red)}.player-symbol--o{color:#3e5c63}.player-chip span:last-child{display:flex;flex-direction:column;gap:2px}.player-chip small{color:#929187;font:9px var(--mono)}.player-chip strong{font:600 12px Manrope}.versus{color:#a5a398;font:9px var(--mono)}.game-panel{border:1px solid #dcdacf;background:var(--paper)}.turn-bar{display:flex;align-items:center;justify-content:space-between;min-height:59px;padding:9px 15px;border-bottom:1px solid #e8e6dc}.turn-bar>div:first-child{display:flex;align-items:center;gap:12px}.turn-bar strong{font:600 12px Manrope}.clock{min-width:73px;color:#484c40;font:500 18px var(--mono);text-align:right}.clock--urgent{color:var(--red)}.board-wrap{position:relative;height:min(58vw,590px);min-height:350px;overflow:hidden;background:#f7f4ea}.board-canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}.board-wrap--spectator .board-canvas{cursor:grab}.board-wrap--spectator .board-canvas:active{cursor:grabbing}.board-hint{position:absolute;bottom:12px;left:50%;padding:7px 11px;transform:translate(-50%);border:1px solid rgba(215,212,200,.8);border-radius:20px;background:#fbfaf6d9;color:#77766d;font-size:9px;white-space:nowrap;pointer-events:none}.spectator-stamp{position:absolute;top:12px;right:12px;padding:7px 10px;border:1px solid #d7d1bf;background:#fbfaf6e6;color:#66685f;font:9px var(--mono);letter-spacing:.12em;pointer-events:none}.board-caption{display:flex;justify-content:space-between;padding:10px 14px;color:#929187;font-size:9px}.result-banner{margin-top:12px;padding:13px 15px;background:#ebece3;color:#49533e;font-size:12px}.spectating-banner{display:flex;align-items:center;gap:9px;margin:0 0 11px;padding:10px 12px;background:#e9eee9;color:#4e645e;font-size:10px}.spectating-banner button{margin-left:auto;border:0;background:transparent;color:#344e48;cursor:pointer;font:600 10px Manrope;text-decoration:underline}.waiting-match{min-height:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:36px;border:1px solid var(--line);background:var(--paper);text-align:center}.waiting-orbit{margin-bottom:15px;color:#9b9a88;font:56px Georgia}.waiting-match h2{margin:9px 0 7px;font:700 23px Manrope;letter-spacing:-.04em}.waiting-match p{max-width:300px;margin:0;color:var(--muted);font-size:12px;line-height:1.6}.tournament-sidebar{padding:17px 16px;border:1px solid var(--line);background:var(--paper)}.sidebar-title{display:flex;justify-content:space-between;align-items:center;padding-bottom:12px;border-bottom:1px solid var(--line)}.sidebar-title>span:last-child{color:var(--muted);font-size:10px}.bracket-round{padding:13px 0 2px}.bracket-round h3{margin:0 0 8px;color:#75746b;font:600 10px var(--mono);letter-spacing:.08em;text-transform:uppercase}.bracket-match{margin-bottom:9px;padding:8px;border:1px solid #e4e2d8;background:#fbfaf6}.bracket-match--live{border-color:#d4b99f}.bracket-player{display:flex;justify-content:space-between;gap:6px;min-height:25px;align-items:center;border-bottom:1px solid #eeece3;color:#696a61;font-size:10px}.bracket-player:last-of-type{border-bottom:0}.bracket-player--winner{color:#3e5543;font-weight:700}.bracket-player--bye{color:#aaa89c}.match-live-label{display:flex;align-items:center;gap:6px;margin-top:7px;color:#9a6945;font:8px var(--mono);letter-spacing:.08em}.match-live-label i{width:5px;height:5px;background:#bd7950}.watch-button{width:100%;display:flex;justify-content:space-between;margin-top:8px;padding:7px 0 1px;border:0;border-top:1px solid #eeeae0;background:transparent;color:#596b60;cursor:pointer;font:600 10px Manrope}.watch-button:hover{color:var(--red)}.sidebar-note{color:#96948a;font-size:10px;line-height:1.5}.spectator-policy{display:flex;gap:8px;margin-top:13px;padding:10px;background:#f0efe8;color:#727268}.spectator-policy>span{color:#617069}.spectator-policy p{margin:0;font-size:9px;line-height:1.5}.room-footer{margin-top:auto}.room-footer button{border:0;background:transparent;color:#8a887e;cursor:pointer;font:9px var(--mono);letter-spacing:.08em}.toast--floating{position:fixed;right:22px;bottom:22px;z-index:5;max-width:min(400px,calc(100vw - 44px));box-shadow:0 8px 30px #2d2b2321}@media(max-width:820px){.page-shell{padding:0 24px}.hero{gap:26px;min-height:390px}.hero-art{height:245px}.match-layout{grid-template-columns:minmax(0,1fr) 245px;gap:15px}.player-chip{min-width:140px}.room-top-meta{gap:9px}}@media(max-width:650px){.page-shell{padding:0 17px}.topbar{height:63px}.top-note{font-size:8px}.hero{display:flex;min-height:unset;flex-direction:column;align-items:stretch;gap:27px;padding:43px 0 37px}.hero h1{font-size:clamp(51px,14vw,68px)}.hero-art{height:204px;margin:0 7px 4px}.hero-stats{gap:17px}.hero-stats span{gap:5px;font-size:9px}.mode-grid{grid-template-columns:1fr}.mode-card{min-height:250px}.settings-row{align-items:flex-start;flex-direction:column}.time-options{width:100%;justify-content:space-between}.time-option{flex:1;padding:8px 4px}.join-panel{grid-template-columns:1fr;gap:13px;padding:17px}.join-form{grid-template-columns:1fr 1fr}.join-form .button{grid-column:1 / -1}.privacy-line{text-align:left;line-height:1.5}.footer{min-height:54px}.room-heading{align-items:flex-start;padding:25px 0 19px}.room-heading h1{font-size:25px}.room-top-meta{flex-direction:column;align-items:flex-end}.connection-pill{font-size:9px}.button--small{padding:0 8px}.lobby-card{margin:8px auto 35px;padding:20px 16px}.match-layout{grid-template-columns:1fr}.tournament-sidebar{order:2}.players-strip{gap:5px}.player-chip{min-width:0;flex:1;gap:7px;padding:7px 5px}.player-chip strong{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-symbol{width:26px;font-size:25px}.board-wrap{min-height:340px;height:72vw}.board-hint{max-width:calc(100% - 16px);overflow:hidden;font-size:8px}.board-caption{gap:9px;font-size:8px}.room-code-lockup strong{font-size:13px}}
