.auth-dialog{position:fixed;inset:auto;top:calc(var(--auth-viewport-top, 0px) + var(--auth-viewport-height, 100dvh) / 2);left:50%;width:min(448px,calc(100vw - 32px));height:min(728px,calc(var(--auth-viewport-height, 100dvh) - 32px));max-width:none;max-height:none;margin:0;padding:0;overflow:hidden;transform:translate(-50%,-50%);border:1px solid hsl(var(--b3));border-radius:12px;outline:none;background:hsl(var(--b1));color:hsl(var(--bc));box-shadow:0 24px 80px rgb(0 0 0/.25)}.auth-dialog[open]{display:flex;flex-direction:column}.auth-dialog::backdrop{background:rgb(15 17 21/.65);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.auth-header{position:relative;flex:0 0 auto;padding:24px 28px 16px;text-align:center}.auth-brand{--site-chrome:hsl(var(--b1));width:208px;max-width:calc(100% - 64px);margin:8px auto 16px}.auth-header h2{font-size:22px;font-weight:750;letter-spacing:-.025em;line-height:1.3}.auth-header>p{margin-top:6px;color:var(--site-muted);font-size:13px;line-height:1.6}.auth-close{position:absolute;top:10px;inset-inline-end:10px;display:grid;width:40px;height:40px;place-items:center;border-radius:8px;color:var(--site-muted)}.auth-close:hover{background:hsl(var(--bc)/.06);color:hsl(var(--bc))}.auth-tabs{display:grid;flex:0 0 auto;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-inline:28px;padding:4px;border:1px solid hsl(var(--b3));border-radius:10px;background:hsl(var(--bc)/.025)}.auth-tabs button{min-width:0;min-height:40px;padding:8px 12px;border-radius:6px;color:var(--site-muted);font-size:13px;font-weight:650;line-height:1.4}.auth-tabs button:hover{color:hsl(var(--bc))}.auth-tabs button[aria-selected=true]{background:hsl(var(--p));color:hsl(var(--pc))}.auth-account,.auth-form{display:flex;min-height:0;flex:1;flex-direction:column;padding:24px 28px 0}.auth-content{min-height:0;flex:1;padding:0 4px 4px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.auth-fieldset{min-width:0;margin:0;padding:0;border:0}.auth-fields{display:grid;gap:16px}.auth-field{display:grid;gap:7px}.auth-field label{font-size:12px;font-weight:650;line-height:1.5}.auth-field label>span{color:var(--site-muted);font-weight:400}.auth-field input{width:100%;min-width:0;min-height:46px;padding:10px 12px;border:1px solid hsl(var(--b3));border-radius:8px;background:var(--site-input);color:hsl(var(--bc));font-size:16px;line-height:1.5;scroll-margin-block:12px}.auth-field input::-moz-placeholder{color:var(--site-muted);opacity:1}.auth-field input::placeholder{color:var(--site-muted);opacity:1}.auth-field input:focus{border-color:var(--site-link);outline:2px solid hsl(var(--p)/.18);outline-offset:2px}.auth-field-help{color:var(--site-muted);font-size:11px;line-height:1.6}.auth-guest-note{display:flex;align-items:flex-start;gap:12px;margin-top:12px;padding:20px;border:1px solid hsl(var(--p)/.15);border-radius:12px;background:hsl(var(--p)/.05)}.auth-guest-note>svg{flex:0 0 auto;color:var(--site-link)}.auth-guest-note h3{font-size:14px;font-weight:700}.auth-guest-note p{margin-top:6px;color:var(--site-muted);font-size:13px;line-height:1.8}.auth-google-button{display:flex;width:100%;min-height:46px;align-items:center;justify-content:center;gap:12px;padding:10px 16px;border:1px solid hsl(var(--b3));border-radius:8px;background:var(--site-input);color:hsl(var(--bc));font-size:14px;font-weight:600;line-height:1.5}.auth-google-button:disabled{cursor:not-allowed;opacity:1}.auth-google-button svg{flex:0 0 auto}.auth-divider{display:flex;align-items:center;gap:12px;margin-block:16px;color:var(--site-muted);font-size:11px;white-space:nowrap}.auth-divider:after,.auth-divider:before{height:1px;flex:1;background:hsl(var(--b3));content:""}.auth-message{margin-top:16px;padding:12px;border:1px solid hsl(var(--er)/.3);border-radius:8px;background:hsl(var(--er)/.07);color:hsl(var(--er));font-size:13px;line-height:1.7;overflow-wrap:anywhere}.auth-actions{flex:0 0 auto;padding-block:12px 16px}.auth-submit{width:100%;min-height:46px;height:auto;padding:12px 16px;font-size:14px;line-height:1.5;text-transform:none}.auth-footnote{min-height:18px;margin-top:8px;color:var(--site-muted);font-size:11px;line-height:1.6;text-align:center}.auth-account-content>svg{display:block;margin:0 auto 12px;color:var(--site-link)}.auth-account-content h3{font-size:22px;font-weight:750;text-align:center;overflow-wrap:anywhere}.auth-account-content>p:not(.auth-message){margin-block:8px 24px;color:var(--site-muted);font-size:13px;line-height:1.7;text-align:center}.auth-account-action{display:flex;width:100%;min-height:48px;align-items:center;gap:12px;margin-top:10px;padding:12px 16px;border:1px solid hsl(var(--b3));border-radius:8px;font-size:14px;font-weight:600}.auth-account-action:hover{border-color:hsl(var(--p)/.5);background:hsl(var(--p)/.05)}.auth-dialog :is(button,a):focus-visible{outline:2px solid var(--site-link);outline-offset:3px}.auth-dialog[data-compact=true] .auth-header{padding:16px 20px 12px}.auth-dialog[data-compact=true] .auth-brand{width:160px;margin:0 auto 8px}.auth-dialog[data-compact=true] .auth-header h2{font-size:20px}.auth-dialog[data-compact=true] .auth-footnote,.auth-dialog[data-compact=true] .auth-header>p{display:none}.auth-dialog[data-compact=true] :is(.auth-form,.auth-account){padding-top:16px}.auth-dialog[data-compact=true] .auth-actions{padding-block:12px}.auth-dialog[data-short=true] .auth-header{padding-block:12px 8px}.auth-dialog[data-short=true] .auth-brand{width:144px;margin-block:0}.auth-dialog[data-short=true] .auth-header h2{display:none}.auth-dialog[data-short=true] .auth-tabs button{min-height:36px}.auth-dialog[data-short=true] :is(.auth-form,.auth-account){padding-top:12px}@media (max-width:399px){.auth-dialog{width:calc(100vw - 24px);height:min(728px,calc(var(--auth-viewport-height, 100dvh) - 24px))}.auth-header{padding-inline:20px}.auth-tabs{margin-inline:20px}.auth-account,.auth-form{padding-inline:20px}.auth-guest-note{padding:16px}}.site-main:has(.chess-workspace){display:block;min-width:0;margin:0}body:has(.chess-workspace) .site-footer{display:none}body:has(.chess-workspace) .site-header{height:56px;min-height:56px;margin:0;padding:3px 12px}body:has(.chess-workspace) .site-header .brand-badge{display:none}body:has(.chess-workspace) .site-header .brand-link img{width:100%}.chess-workspace{--chess-dark-square:#769656;--chess-light-square:#eeeed2;display:flex;width:100%;min-height:calc(100dvh - 56px);flex-direction:column;padding-bottom:calc(64px + env(safe-area-inset-bottom))}.chess-rail{display:none}.chess-arena{display:flex;flex:1;flex-direction:column;justify-content:center;width:100%;padding:8px 0 12px}.chess-board-column{width:100%;min-width:0;margin-inline:auto}.chess-board-frame{position:relative;width:100%;aspect-ratio:1;overflow:hidden;touch-action:manipulation;background:var(--chess-light-square)}.chess-player{display:flex;height:60px;min-width:0;align-items:center;gap:10px;padding:8px 12px}.chess-player-avatar{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;border:1px solid hsl(var(--b3));border-radius:8px;font-family:Georgia,serif;font-size:32px;line-height:1}.chess-player-avatar.white{background:#eeeed2;color:#111827}.chess-player-avatar.black{background:#cbd5e1;color:#111827}.chess-player.is-active .chess-player-avatar{box-shadow:0 0 0 2px hsl(var(--p)/.55)}.chess-player-identity{flex:1;min-width:0}.chess-player-name{display:block;overflow:hidden;color:hsl(var(--bc));font-size:14px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.chess-player-detail{display:flex;min-height:18px;flex-wrap:wrap;align-items:center;gap:3px 8px;color:var(--site-muted);font-size:11px}.chess-captures{font-family:Georgia,serif;font-size:15px;letter-spacing:-2px}.chess-turn-indicator{display:flex;min-width:78px;min-height:36px;flex:0 0 auto;align-items:center;justify-content:center;gap:6px;padding:8px 10px;border:1px solid hsl(var(--b3));border-radius:6px;background:hsl(var(--b2));color:var(--site-muted);font-size:12px;font-weight:600}.chess-turn-indicator.is-active{border-color:hsl(var(--p)/.35);background:hsl(var(--p)/.1);color:var(--site-link)}.chess-turn-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.chess-recent-moves{display:flex;height:32px;flex-shrink:0;align-items:center;gap:8px;padding-inline:12px;border-bottom:1px solid hsl(var(--b3));background:var(--site-chrome);color:var(--site-muted);font-size:12px}.chess-recent-moves>div{display:flex;flex:1;overflow:auto;align-items:center;gap:8px;white-space:nowrap;scrollbar-width:none}.chess-recent-moves button{min-width:28px;min-height:28px}.chess-recent-moves button:hover{color:var(--site-link)}.chess-panel{display:none;min-width:0;flex-direction:column;overflow:hidden;border:1px solid hsl(var(--b3));border-radius:12px;background:hsl(var(--b1));box-shadow:var(--site-shadow)}.chess-panel.is-mobile-open{position:fixed;z-index:35;right:8px;bottom:calc(72px + env(safe-area-inset-bottom));left:8px;display:flex;height:min(480px,calc(100dvh - 152px))}.chess-panel [hidden]{display:none!important}.chess-panel-heading{display:flex;flex-shrink:0;align-items:center;gap:4px;padding:12px}.chess-panel-heading>div{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}.chess-panel-heading strong{font-size:16px}.chess-panel-heading span{color:var(--site-muted);font-size:12px}.chess-panel-tabs{display:flex;flex-shrink:0;border-bottom:1px solid hsl(var(--b3))}.chess-panel-tabs button{min-height:46px;flex:1;border-bottom:3px solid transparent;color:var(--site-muted);font-size:14px;font-weight:600}.chess-panel-tabs button[aria-selected=true]{border-bottom-color:hsl(var(--p));background:hsl(var(--p)/.06);color:var(--site-link)}.chess-mobile-toolbar button:focus-visible,.chess-panel button:focus-visible,.chess-rail a:focus-visible,.chess-rail button:focus-visible{outline:2px solid var(--site-link);outline-offset:-3px}.chess-game-notice{max-height:150px;flex-shrink:0;overflow:auto;padding:12px;border-bottom:1px solid hsl(var(--b3));background:hsl(var(--wa)/.08);font-size:13px;line-height:1.6}.chess-game-notice a{color:var(--site-link);text-decoration:underline}.chess-moves-scroll{position:relative;min-height:0;flex:1;overflow:auto;padding-block:6px}.chess-move-row{display:grid;grid-template-columns:40px 1fr 1fr;align-items:center;gap:4px;padding:2px 12px}.chess-move-row:nth-child(2n){background:hsl(var(--b2)/.5)}.chess-move-row>span{color:var(--site-muted);font-size:12px}.chess-move-row button{min-height:36px;padding:6px 10px;border-radius:5px;font-size:14px;text-align:start}.chess-move-row button:hover{background:hsl(var(--b2))}.chess-move-row button[aria-current=step]{background:hsl(var(--p)/.15);color:var(--site-link);font-weight:700}.chess-empty-moves{display:flex;min-height:180px;height:100%;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;color:var(--site-muted);text-align:center}.chess-empty-moves strong{color:hsl(var(--bc));font-size:14px}.chess-empty-moves p{max-width:220px;font-size:13px;line-height:1.6}.chess-info-panel{min-height:0;flex:1;overflow:auto;padding:16px;font-size:14px;line-height:1.6}.chess-quick-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.chess-info-panel h3{margin-block:16px 8px;font-weight:650}.chess-game-details{display:grid;grid-template-columns:1fr auto;gap:10px;font-size:13px}.chess-game-details dt{color:var(--site-muted)}.chess-game-details dd{text-align:end}.chess-share-link{display:block;max-width:100%;overflow-wrap:anywhere;color:var(--site-link);font-size:13px;text-align:start}.chess-info-panel textarea{width:100%;min-height:150px;margin-top:8px;font-family:monospace;font-size:12px}.chess-export-tabs{display:flex;gap:4px;margin-top:20px}.chess-chat-panel{display:flex;min-height:0;flex:1;flex-direction:column}.chess-chat-messages{min-height:0;flex:1;overflow:auto;padding:16px}.chess-chat-messages li{margin-bottom:14px;overflow-wrap:anywhere;font-size:14px;line-height:1.6}.chess-chat-messages .is-server-message{padding:8px 10px;border-radius:6px;background:hsl(var(--b2));color:var(--site-muted);font-size:12px}.chess-chat-author{color:var(--site-link);font-weight:650}.chess-chat-compose{display:flex;flex-shrink:0;gap:8px;padding:12px;border-top:1px solid hsl(var(--b3))}.chess-chat-compose input{width:100%;min-width:0;flex:1;font-size:14px}.chess-chat-compose button{width:44px;min-width:44px;padding:0}.chess-replay-controls{display:none}.chess-panel-footer{display:flex;flex-shrink:0;align-items:center;gap:6px;padding:10px 12px;border-top:1px solid hsl(var(--b3));color:var(--site-muted);font-size:11px}.chess-panel-footer>span:last-child{margin-inline-start:auto}.chess-mobile-toolbar{position:fixed;z-index:40;right:0;bottom:0;left:0;display:flex;height:calc(64px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);border-top:1px solid hsl(var(--b3));background:var(--site-chrome)}.chess-mobile-toolbar button{display:flex;min-width:0;height:63px;min-height:0;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-top:2px solid transparent;color:var(--site-muted);font-size:11px}.chess-mobile-toolbar button[aria-pressed=true]{border-color:hsl(var(--p));background:hsl(var(--p)/.08);color:var(--site-link)}.chess-mobile-toolbar button:disabled{opacity:.35}.chess-waiting-overlay{position:absolute;z-index:5;inset:0;justify-content:center;background:rgb(15 17 21/.48);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.chess-waiting-card,.chess-waiting-overlay{display:flex;align-items:center;padding:24px}.chess-waiting-card{max-width:280px;flex-direction:column;gap:12px;border:1px solid hsl(var(--b3));border-radius:12px;background:hsl(var(--b1));text-align:center}.chess-waiting-card p{color:var(--site-muted);font-size:13px;line-height:1.5}@media (min-width:600px) and (max-width:1023px){.chess-board-column{width:min(100%,max(280px,calc(100dvh - 300px)))}}@media (max-height:650px) and (max-width:1023px){.chess-arena{padding-block:0}.chess-board-column{width:min(100%,max(240px,calc(100dvh - 248px)))}.chess-player{height:48px}.chess-player-avatar{width:34px;height:34px;font-size:27px}.chess-turn-indicator{min-height:32px;padding-block:5px}}@media (min-width:1024px){body:has(.chess-workspace) .site-header{display:none}.chess-workspace{display:grid;grid-template-columns:72px minmax(0,1fr);min-height:100dvh;padding:0}.chess-rail{position:sticky;top:0;display:flex;height:100dvh;flex-direction:column;align-items:stretch;gap:6px;padding:16px 10px;border-right:1px solid hsl(var(--b3));background:var(--site-chrome)}.chess-rail>a,.chess-rail>button{display:flex;min-height:48px;flex-shrink:0;align-items:center;justify-content:center;gap:12px;border-radius:8px;color:var(--site-muted);font-size:14px;text-align:start}.chess-rail>a:hover,.chess-rail>button:hover{background:hsl(var(--b2));color:hsl(var(--bc))}.chess-rail>a>span,.chess-rail>button>span{display:none}.chess-rail .chess-rail-brand{justify-content:center;margin-bottom:20px}.chess-rail .chess-rail-brand>.brand-logo{display:block;overflow:hidden;width:44px;aspect-ratio:1}.chess-rail-brand .brand-logo>img{inset:auto;top:50%;left:50%;width:calc(100% * 2170 / 640);max-width:none;height:auto;transform:translate(-19.355%,-50%)}.chess-rail-divider{height:1px;margin-block:10px;background:hsl(var(--b3))}.chess-rail-bottom{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:auto}.chess-arena{display:grid;width:100%;max-width:calc(min(900px, 100dvh - 168px) + 320px + 72px);grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:24px;margin:auto;padding:20px 24px}.chess-board-column{display:flex;flex-direction:column;gap:8px}.chess-player{height:56px;padding:0}.chess-player-avatar{width:44px;height:44px}.chess-player-name{font-size:15px}.chess-turn-indicator{min-width:100px;min-height:42px;font-size:13px}.chess-board-frame{border-radius:4px;box-shadow:0 4px 16px rgb(0 0 0/.14)}.chess-panel,.chess-panel.is-mobile-open{position:static;display:flex;height:calc(var(--measured-board) + 128px)}.chess-mobile-toolbar,.chess-panel-close,.chess-recent-moves{display:none}.chess-replay-controls{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding:8px;border-top:1px solid hsl(var(--b3))}.chess-replay-controls .btn{min-width:0;height:42px;min-height:42px;padding:0}}@media (min-width:1440px){.chess-workspace{grid-template-columns:168px minmax(0,1fr)}.chess-rail{padding-inline:12px}.chess-rail>a,.chess-rail>button{justify-content:flex-start;padding-inline:12px}.chess-rail>a>span,.chess-rail>button>span{display:inline}.chess-rail .chess-rail-brand{padding-inline:0}.chess-rail .chess-rail-brand>.brand-logo{width:100%;aspect-ratio:3/1}.chess-rail-brand .brand-logo>img{inset:0;width:100%;height:100%;transform:none}.chess-rail-bottom{flex-direction:row;justify-content:space-around}.chess-arena{max-width:calc(min(900px, 100dvh - 168px) + 340px + 72px);grid-template-columns:minmax(0,1fr) 340px}}