/* Chesser's shared interface: calm surfaces, clear hierarchy, generous touch targets. */
:root{--r:20px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}
body{background:var(--bg);-webkit-font-smoothing:antialiased}
button,input,select,textarea{-webkit-tap-highlight-color:transparent}
button{touch-action:manipulation}button:disabled{cursor:not-allowed}
a{text-underline-offset:3px}h1,h2,h3{font-weight:700}h1{font-size:clamp(1.8rem,3.3vw,2.6rem);letter-spacing:-.055em;line-height:1.12}h2{letter-spacing:-.03em}
.ui-icon{display:block;width:20px;height:20px;flex:none}.btn .ui-icon{width:17px;height:17px;display:inline-block;vertical-align:middle;margin-left:9px}
.skip-link{position:fixed;left:16px;top:-100px;z-index:300;background:var(--button);color:var(--button-text);padding:13px;border-radius:10px}.skip-link:focus{top:16px}
.shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100dvh}
.sidebar{display:flex;flex-direction:column;gap:23px;position:sticky;top:0;height:100dvh;padding:28px 17px 18px;background:var(--sidebar);border-right:1px solid var(--border)}
.brand-home,.auth-brand,.guest-brand,.mobile-brand{display:flex;align-items:center;gap:11px;color:var(--white);text-decoration:none;background:transparent;border:0;text-align:left;padding:0}
.brand-home{padding:0 9px;min-height:52px}.brand-mark{display:grid;place-items:center;width:44px;height:47px;border:1px solid var(--border);border-radius:13px;background:var(--panel3);flex:none;overflow:hidden}.brand-mark>.chess-piece{height:38px;width:38px;filter:none}
.brand-word{font-size:1.65rem;font-weight:800;letter-spacing:-.065em;line-height:1}.brand-word>span{display:block;font-size:.49rem;letter-spacing:.17em;font-weight:600;color:var(--muted);margin-top:8px}
.desktop-navigation{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent;padding-right:2px}
.nav-section+.nav-section{margin-top:21px}.nav-label{font-size:.61rem;font-weight:700;letter-spacing:.13em;color:var(--muted);padding:0 13px;margin:0 0 9px;text-transform:uppercase}
.sidebar .nav{display:grid;gap:3px;overflow:visible}.nav .nav-item,.explore-links .nav-item{border:1px solid transparent;border-radius:10px;min-height:38px;padding:9px 12px;display:flex;align-items:center;gap:12px;font-size:.79rem;color:var(--muted);text-align:left;background:transparent;line-height:1.3;font-weight:500;white-space:normal}
.nav-item .ui-icon{width:18px;height:18px;opacity:.9}.nav .nav-item:hover,.explore-links .nav-item:hover{background:var(--panel2);color:var(--white)}
.nav .nav-item.active{color:var(--mint);background:var(--nav-active);border-color:color-mix(in srgb,var(--mint) 14%,transparent);font-weight:650;padding:9px 12px}.nav-active-dot{width:5px;height:5px;background:var(--mint);border-radius:50%;margin-left:auto;flex:none}.nav-item .unread-badge{margin-left:auto;min-height:18px;min-width:18px;font-size:.6rem}
.side-bottom{margin:0;padding:14px 10px;display:flex;align-items:center;gap:12px;background:transparent;border:0;border-top:1px solid var(--border);border-radius:0}.side-bottom b{font-size:.73rem;font-weight:600;color:var(--white)}.side-bottom p{color:var(--muted);font-size:.66rem;margin-top:5px}.season-icon{color:var(--gold)}
.sidebar-member{border-top:1px solid var(--border);padding:15px 7px 0;display:flex;align-items:center;gap:10px}.member-monogram{width:33px;height:33px;display:grid;place-items:center;flex:none;border-radius:50%;background:var(--panel3);color:var(--mint);font-size:.82rem;font-weight:700}.sidebar-member div{display:grid;gap:4px;min-width:0}.sidebar-member strong{font-size:.74rem;overflow:hidden;text-overflow:ellipsis}.sidebar-member div>span{color:var(--muted);font-size:.63rem}
.main{padding:0 clamp(20px,3.4vw,50px) 22px;max-width:1550px;min-width:0;margin:auto;width:100%;align-self:start}.app-top{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 28px;border-bottom:1px solid var(--border)}.desktop-context{display:flex;align-items:center;gap:12px;font-size:.78rem}.desktop-context>span{color:var(--muted);font-size:.59rem;letter-spacing:.13em;padding-right:13px;border-right:1px solid var(--border)}.desktop-context b{font-weight:550}.top-right{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.top-right select{max-width:140px;font-size:.72rem}.top-right .local-warning{font-size:.6rem;padding:6px 8px}
.icon-button{width:38px;height:38px;padding:9px;display:grid;place-items:center;border:1px solid var(--border);border-radius:50%;background:transparent;color:var(--muted);position:relative}.icon-button:hover{background:var(--panel3);color:var(--white)}.icon-button .ui-icon{width:18px;height:18px}.icon-button .unread-badge{position:absolute;right:-4px;top:-4px;min-height:18px;min-width:18px;font-size:.57rem}.signout-button{font-size:.7rem!important;margin-right:8px}.mobile-brand,.mobile-navigation{display:none}
.page-content{min-width:0}.eyebrow,.caps{font-size:.61rem;font-weight:650;letter-spacing:.15em;line-height:1.5;color:var(--mint)}.page-head{margin:0 0 28px;align-items:center;gap:20px}.page-head p{font-size:.88rem;max-width:70ch;line-height:1.65;margin-top:11px}.page-head .actions{flex-wrap:wrap}.section-heading{margin:28px 0 20px}.section-heading h2{font-size:1.3rem}
.card,.metric,.login-card{border:1px solid var(--border);background:var(--panel);border-radius:var(--r);box-shadow:none}.card{padding:24px}.card-head{gap:18px;margin-bottom:23px}.card-head h2{font-size:1rem;font-weight:650;line-height:1.35}.card-head p{line-height:1.65;font-size:.77rem;max-width:65ch}.card-head>.pill{flex:none}.grid{gap:20px}.main-grid{grid-template-columns:minmax(0,1.45fr) minmax(280px,1fr)}
.hero{position:relative;overflow:hidden;min-height:300px;padding:34px 38px;display:grid;grid-template-columns:1.2fr 1fr;gap:20px;background:linear-gradient(120deg,var(--panel3),var(--panel));border:1px solid var(--border);box-shadow:none;border-radius:24px}.hero h1{font-size:clamp(2rem,3.8vw,3.2rem);font-weight:750;line-height:1.04;letter-spacing:-.065em;margin:14px 0 15px;max-width:11ch}.hero p{font-size:.85rem;line-height:1.75;color:var(--muted);max-width:40ch}.hero .button-row{margin-top:24px}.hero-art{position:relative;display:flex;align-items:center;justify-content:center;isolation:isolate;min-height:230px}.hero-art>.chess-piece{width:190px;height:220px;max-width:90%;filter:drop-shadow(8px 16px 6px #0003);transform:rotate(-9deg);z-index:1}.hero-art-board{position:absolute;width:300px;height:190px;max-width:100%;background:repeating-conic-gradient(color-mix(in srgb,var(--mint) 10%,transparent) 0% 25%,transparent 0% 50%) 50%/50px 50px;transform:perspective(450px) rotateX(45deg) rotateZ(-25deg);border:1px solid color-mix(in srgb,var(--mint) 12%,transparent);border-radius:14px}.hero-art-label{position:absolute;bottom:0;font-size:.52rem;letter-spacing:.25em;color:var(--muted)}
.metric{padding:22px;min-height:135px}.metric::after{display:none}.metric .name{font-size:.72rem;color:var(--muted);font-weight:500}.metric .value{font-size:2.05rem;font-weight:650;margin:13px 0 8px;letter-spacing:-.065em}.metric .detail{font-size:.67rem;color:var(--muted)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:0;border:1px solid var(--button-border);border-radius:11px;min-height:44px;padding:12px 18px;font-size:.77rem;font-weight:650;line-height:1.3;box-shadow:none;transition:background .15s,transform .15s}.btn:hover{filter:none;transform:translateY(-1px);background:color-mix(in srgb,var(--button) 90%,var(--white))}.btn:active{transform:translateY(0)}.btn.ghost{background:transparent;border-color:var(--border);color:var(--white)}.btn.ghost:hover{background:var(--panel3)}.btn.small{min-height:38px;padding:9px 13px;font-size:.72rem}.btn.link{min-height:30px;padding:3px 0;border:0;background:none;color:var(--mint);text-align:left;white-space:normal;justify-content:flex-start}.btn.danger{background:var(--danger-bg);border-color:var(--danger-border);color:var(--red)}.btn:disabled{transform:none;opacity:.5}.button-row{gap:9px}
input,select,textarea{background:var(--panel2);border:1px solid var(--border);border-radius:10px;color:var(--white);min-height:46px;padding:12px 14px;font-size:.83rem}input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--muted) 65%,transparent)}label{font-size:.74rem;font-weight:550;gap:9px}input:focus,select:focus,textarea:focus{outline:0;border-color:var(--mint);box-shadow:0 0 0 3px var(--ring)}input[type=checkbox]{width:18px;height:18px;min-height:18px;accent-color:var(--button)}.choice{background:var(--panel2);border:1px solid var(--border);border-radius:10px;padding:12px;line-height:1.4}
.pill{padding:6px 10px;font-size:.65rem;font-weight:600;border:1px solid transparent;line-height:1.3;white-space:nowrap}.pill.gray{color:var(--muted)}.rank{background:var(--panel2);color:var(--muted);border-radius:8px;font-size:.76rem;min-width:28px;height:29px}.rank.top{color:var(--gold)}.avatar{border-radius:50%;width:33px;height:33px;font-size:.75rem;background:var(--panel3);border:1px solid var(--border);color:var(--mint)}.avatar.big{border-radius:18px}.table-wrap{margin:0 -8px}table{font-size:.78rem}th{font-size:.61rem;font-weight:550;letter-spacing:.09em;padding:12px;color:var(--muted);background:transparent}td{padding:15px 12px;border-bottom-color:color-mix(in srgb,var(--border) 65%,transparent)}.table-wrap .btn.link{gap:0;font-size:.77rem}.line{padding:15px 0;border-color:var(--border);gap:16px}.line b{font-size:.8rem;font-weight:600}.line .small{font-size:.74rem;line-height:1.65}.empty{min-height:175px;padding:28px;color:var(--muted);gap:15px}.empty .symbol{font-size:2.1rem;opacity:.65}.empty b{font-weight:550;font-size:.85rem}.empty p{line-height:1.7;font-size:.76rem}
.muted-note{padding:16px 18px;font-size:.77rem;line-height:1.75;background:var(--panel2);border:1px solid var(--border);border-left:3px solid var(--gold);border-radius:12px}.notice{padding:15px 18px;border:1px solid var(--mint);border-radius:12px;background:var(--panel3);font-size:.8rem;line-height:1.65;margin-bottom:20px}.details,.tourney,.bracket-box{border-radius:12px;background:var(--panel2);border-color:var(--border)}.details summary{font-size:.8rem}.mode-tabs{padding:4px;border:1px solid var(--border);border-radius:11px;background:var(--panel2);gap:3px}.mode-tabs button{border:0;background:transparent;padding:7px 11px;font-size:.69rem}.mode-tabs button.selected{background:var(--panel3);color:var(--white);box-shadow:0 1px 4px #0001}.big-number{font-weight:650;font-size:2.3rem;letter-spacing:-.07em}.profile h2{font-size:1.65rem}.badgegrid{gap:9px}.award{border:1px solid color-mix(in srgb,var(--gold) 25%,transparent);font-size:.7rem;border-radius:9px;padding:9px 11px}.stat-row{gap:18px}.stat-row span{font-size:.75rem}.chart{margin-top:14px}.explore-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.explore-links{display:grid;gap:7px;margin-top:19px}.explore-links .nav-item{min-height:48px;font-size:.83rem}
.arena-create{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;align-items:start}.arena-create>button{align-self:end;min-height:46px}.game-layout{grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:24px}.game-board-card{padding:20px;gap:13px}.game-side{padding:24px;top:20px}.game-side .card-head{flex-wrap:wrap}.chessboard{border:1px solid var(--border);border-radius:8px;box-shadow:0 12px 30px #0002;overflow:hidden}.sq.light{background:var(--board-light)}.sq.dark{background:var(--board-dark)}.sq:not(:disabled):hover{filter:brightness(1.05)}.chess-piece{width:88%;height:88%;filter:drop-shadow(0 1px 1px #0003);font-size:initial}.chess-piece.white{--piece-fill:var(--white-piece-fill,#fff6e2);--piece-outline:var(--white-piece-outline,#34413d)}.chess-piece.black{--piece-fill:var(--black-piece-fill,#263735);--piece-outline:var(--black-piece-outline,#f1e7cf)}.clock-panel{border-radius:12px;padding:14px 16px;background:var(--panel2);border:1px solid var(--border);font-size:.75rem;max-width:650px}.clock-panel strong{font-size:1.7rem;font-weight:650;letter-spacing:-.025em;color:var(--white)}.clock-panel.active{background:var(--panel3);border-color:var(--mint);box-shadow:none}.clock-panel.active strong{color:var(--mint)}.moves-list{font-size:.78rem;line-height:2.2;background:var(--panel2);border-color:var(--border);padding:12px;border-radius:11px}.move-step{font-size:.76rem;padding:4px 8px;min-height:34px}.replay-controls{background:var(--panel2);padding:16px;border-radius:12px}.replay-transport .btn{min-height:42px}.premove-status{font-size:.74rem;background:var(--panel2);border-radius:12px}.game-row{gap:18px}.game-row .pill{min-width:auto}.game-row>div:first-child{gap:10px}.game-row>div:first-child>.small{font-size:.71rem}.private-notes h3{font-size:.95rem}.private-notes>p{font-size:.72rem;margin-top:8px}.scheduled-note{font-size:.75rem}
.practice-stats{gap:15px;margin:25px 0}.practice-stats>div{background:var(--panel);border-radius:16px;padding:20px 22px;gap:10px}.practice-stats strong{font-size:1.9rem;font-weight:650;letter-spacing:-.06em}.practice-stats>div>span{font-size:.7rem}.practice-layout{grid-template-columns:minmax(0,1.5fr) minmax(270px,.9fr);gap:24px}.practice-board-card{padding:22px;gap:20px}.practice-board-card .chessboard{max-width:640px}.practice-side .stack{gap:20px}.practice-side .card{padding:23px}.practice-tip h3{letter-spacing:-.035em;font-size:1.25rem}.practice-tip p{font-size:.78rem;line-height:1.85}.puzzle-feedback{background:var(--panel2);border:1px solid var(--border);font-size:.8rem;padding:15px 17px;min-height:68px;border-radius:12px}.puzzle-feedback.solved{background:var(--panel3)}.puzzle-goal{margin:23px 0}.practice-note{font-size:.73rem;line-height:1.8}.guest-practice{max-width:1320px;padding:26px clamp(18px,4vw,50px) 60px}.guest-practice-header{margin-bottom:43px}.guest-practice .auth-theme-button{position:static;box-shadow:none;max-width:none}.guest-practice .brand-mark{width:38px;height:40px}.guest-practice .brand-word{font-size:1.6rem}.guest-practice .brand-word>span{font-size:.46rem}.guest-practice-header .button-row{gap:8px}.guest-practice .game-layout{grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr)}
.notification-inbox{padding:0 25px}.notification-row{gap:18px;padding:24px 0}.notification-row h2{font-size:.84rem}.notification-row p{font-size:.76rem;line-height:1.8}.notification-row time{font-size:.66rem}.notification-dot{width:6px;height:6px}.notification-help{font-size:.78rem}.personal-card{margin-bottom:22px}.avatar-choices{gap:10px}.avatar-choice{background:var(--panel2);font-size:.7rem;padding:16px 7px;border-radius:13px}.avatar-choice .avatar{border-radius:14px}.chat-card{max-width:100%}.chat-messages{padding:8px;max-height:50vh;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.chat-message{padding:19px 16px;margin-bottom:10px;border:1px solid transparent;border-radius:15px;background:var(--panel2)}.chat-message.own{background:var(--panel3);border:1px solid color-mix(in srgb,var(--mint) 14%,transparent)}.chat-byline{gap:9px}.chat-byline b{font-size:.75rem;font-weight:600}.chat-byline time{font-size:.64rem}.chat-byline .avatar{width:26px;height:26px;margin:0}.chat-message p{font-size:.82rem;line-height:1.8;margin-top:11px}.chat-compose{padding:23px 6px 3px}.chat-compose label{font-size:.76rem}.chat-compose textarea{border-radius:13px;font-size:.82rem}.chat-compose .tiny{font-size:.66rem}
.achievement-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.achievement{padding:22px 18px;border:1px solid var(--border);background:var(--panel2);border-radius:16px;gap:16px}.achievement h3{font-size:.86rem;letter-spacing:-.02em;line-height:1.4}.achievement p{font-size:.73rem;line-height:1.75;margin:9px 0 12px}.achievement .tiny{font-size:.63rem}.achievement-icon{font-size:1.65rem;min-width:35px}.achievement.earned{background:color-mix(in srgb,var(--gold) 5%,var(--panel));border-color:color-mix(in srgb,var(--gold) 30%,var(--border))}.achievement.locked .achievement-icon{opacity:.4}.practice-awards{margin-top:24px}.feature-settings{margin:23px 0}.feature-settings>.small{font-size:.75rem}.push-preferences{background:var(--panel2);gap:12px;padding:18px;border-color:var(--border)}.push-preferences .choice{background:transparent;border:0;padding:8px 0}.push-preferences legend{font-size:.7rem}.install-icon{border-radius:15px;filter:saturate(.8)}.install-copy{font-size:.76rem;line-height:1.8}
/* A proper appearance workbench, with the selected board always in sight. */
.appearance-card{padding:28px}.appearance-heading h2{font-size:1.6rem;letter-spacing:-.045em;line-height:1.2}.appearance-heading p{margin-top:10px}.appearance-studio{display:grid;grid-template-columns:minmax(220px,.9fr) minmax(0,1.45fr);gap:32px;align-items:start}.studio-preview{position:sticky;top:24px;padding:18px;background:var(--panel2);border:1px solid var(--border);border-radius:16px}.studio-preview-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 0 16px;font-size:.54rem;font-weight:650;letter-spacing:.12em;color:var(--muted)}.studio-live-dot{display:flex;gap:5px;align-items:center;letter-spacing:0;text-transform:none;font-size:.6rem}.studio-live-dot:before{content:'';height:5px;width:5px;background:var(--mint);border-radius:50%}.appearance-board{border:1px solid var(--border);border-radius:7px;box-shadow:0 8px 22px #0001;width:100%;aspect-ratio:1}.studio-summary{display:grid;gap:6px;margin:18px 0 12px}.studio-summary>strong{font-size:1rem;font-weight:650;letter-spacing:-.025em}.studio-summary>span{font-size:.68rem;color:var(--muted);line-height:1.7}.studio-status{font-size:.68rem;line-height:1.7;color:var(--mint);min-height:38px;margin-bottom:10px}.studio-preview .btn.link{font-size:.65rem;color:var(--muted)}.studio-tabs{display:flex;gap:3px;border-bottom:1px solid var(--border);margin-bottom:22px;padding-bottom:8px;overflow-x:auto}.studio-tabs>button{flex:1;white-space:nowrap;background:transparent;color:var(--muted);border:1px solid transparent;border-radius:8px;font-size:.67rem;min-height:39px;padding:9px 8px;font-weight:550}.studio-tabs>button[aria-selected=true]{background:var(--panel3);color:var(--white);border-color:var(--border)}.studio-panel-heading{margin-bottom:20px}.studio-panel-heading h3{font-size:1.03rem;letter-spacing:-.025em}.studio-panel-heading p{font-size:.72rem;color:var(--muted);line-height:1.65;margin-top:7px}.studio-panel[hidden]{display:none!important}.theme-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.theme-choice{border-radius:12px;padding:6px;background:var(--panel2);box-shadow:none}.theme-preview{display:grid;grid-template-columns:20px minmax(0,1fr);gap:12px;min-height:85px;height:85px;padding:12px;border-radius:7px}.theme-preview-chrome{gap:7px;padding-top:2px}.theme-preview-chrome i:first-child{height:5px;margin-bottom:3px}.theme-preview-chrome i{height:3px}.mini-interface{display:grid;grid-template-columns:1fr 1fr;gap:7px;align-content:start;padding-top:3px}.mini-interface>i{height:5px;width:70%;background:var(--white);opacity:.8;border-radius:2px;grid-column:1/-1}.mini-interface>span{height:15px;grid-column:1/-1;background:var(--panel3);border-radius:3px}.mini-interface>b{height:22px;background:var(--panel);border:1px solid var(--border);border-radius:3px}.theme-choice-info{gap:5px;padding:10px 6px 8px}.theme-choice-info strong{font-size:.76rem}.theme-choice-info>span:not(.theme-selected){font-size:.62rem;line-height:1.5}.theme-selected{width:17px;height:17px;top:8px;right:4px;font-size:.63rem}.theme-choice[aria-pressed=true],.piece-style-choice[aria-pressed=true],.board-palette-choice[aria-pressed=true],.piece-palette-choice[aria-pressed=true]{border-color:var(--mint);box-shadow:0 0 0 1px var(--mint);background:var(--panel3)}.piece-style-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.piece-style-choice,.piece-palette-choice,.board-palette-choice{padding:14px 8px;border:1px solid var(--border);border-radius:12px;background:var(--panel2);color:var(--white);display:grid;justify-items:center;gap:8px;text-align:center;min-width:0}.piece-style-preview{height:61px;max-width:128px;gap:0}.piece-style-preview .chess-piece{width:57px;height:57px;filter:drop-shadow(0 1px 1px #0002)}.piece-style-choice>strong{font-size:.73rem;font-weight:600}.piece-style-choice>span:last-child{font-size:.6rem;line-height:1.5}.board-palette-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.board-palette-choice{padding:12px 8px;gap:10px}.board-palette-choice>strong,.piece-palette-choice>strong{font-size:.68rem;font-weight:550}.board-swatch{display:grid;grid-template-columns:repeat(4,1fr);width:100%;max-width:95px;border-radius:5px;overflow:hidden;border:1px solid #0002}.board-swatch>i{display:block;aspect-ratio:1;background:var(--swatch-light)}.board-swatch>i:nth-child(2),.board-swatch>i:nth-child(4),.board-swatch>i:nth-child(5),.board-swatch>i:nth-child(7){background:var(--swatch-dark)}.piece-palette-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.piece-palette-choice{padding:19px 10px}.studio-footnote{font-size:.63rem;line-height:1.8;color:var(--muted);margin-top:23px}.appearance-dialog{width:min(96vw,1120px);max-height:92dvh;background:var(--bg);border:1px solid var(--border);padding:28px;border-radius:24px;box-shadow:0 30px 100px #0005}.appearance-dialog-head{margin-bottom:26px;align-items:center}.appearance-dialog-head h2{font-size:1.3rem;letter-spacing:-.04em}.appearance-dialog .appearance-heading h2{font-size:1.4rem}.appearance-dialog .studio-preview{top:10px}.appearance-dialog::backdrop,.install-dialog::backdrop{background:#0008;backdrop-filter:blur(8px)}
/* A shared welcome layout for sign in, registration, recovery, and joining. */
.auth-scene{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);background:var(--bg)}.auth-story{position:relative;overflow:hidden;min-height:820px;display:flex;flex-direction:column;padding:45px clamp(30px,5vw,80px) 28px;background:var(--sidebar);border-right:1px solid var(--border)}.auth-brand{align-self:start}.auth-brand .brand-mark{height:43px;width:41px}.auth-brand .brand-word{font-size:1.8rem}.auth-story-copy{margin-top:66px;position:relative;z-index:2}.auth-story-copy .eyebrow{font-size:.6rem}.auth-story-copy h1{font-size:clamp(2.7rem,4.6vw,4.4rem);line-height:1.02;letter-spacing:-.07em;margin:18px 0 23px;font-weight:700}.auth-story-copy>p{font-size:.86rem;line-height:1.9;max-width:42ch;color:var(--muted)}.auth-features{display:flex;flex-wrap:wrap;gap:20px;margin-top:27px}.auth-features>span{font-size:.65rem;display:flex;align-items:center;gap:7px;color:var(--muted)}.auth-features .ui-icon{width:15px;height:15px;color:var(--mint)}.auth-art{position:relative;flex:1;min-height:275px;display:grid;place-items:center;margin-top:24px;isolation:isolate}.auth-art-grid{position:absolute;width:390px;max-width:100%;height:210px;background:repeating-conic-gradient(color-mix(in srgb,var(--mint) 11%,transparent) 0% 25%,transparent 0% 50%) 50%/56px 56px;transform:perspective(600px) rotateX(48deg) rotateZ(-22deg);border:1px solid color-mix(in srgb,var(--mint) 12%,transparent);border-radius:15px}.auth-art-halo{position:absolute;width:260px;height:260px;border:1px solid color-mix(in srgb,var(--mint) 13%,transparent);border-radius:50%;top:-3px}.auth-art-halo:before{content:'';position:absolute;inset:18px;border:1px solid color-mix(in srgb,var(--mint) 8%,transparent);border-radius:50%}.auth-art-knight{height:270px;width:240px;transform:rotate(-10deg) translateY(-10px);z-index:1}.auth-art-knight .chess-piece{width:100%;height:100%;filter:drop-shadow(12px 20px 8px #0004)}.auth-art-caption{position:absolute;bottom:10px;font-size:.52rem;letter-spacing:.22em;color:var(--muted)}.auth-story-bottom{display:flex;justify-content:space-between;gap:20px;margin-top:35px;font-size:.56rem;color:var(--muted);line-height:1.6}.auth-story-bottom>span:last-child{font-size:.49rem;letter-spacing:.14em;white-space:nowrap}.auth-form-side{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:90px 40px 35px;min-width:0}.login-card{width:100%;max-width:400px;min-width:0;border:0;background:transparent;box-shadow:none;padding:0}.login-card .eyebrow{font-size:.59rem;margin-bottom:11px}.login-card h1{font-size:2.4rem;letter-spacing:-.06em;line-height:1.1}.login-card>p{color:var(--muted);font-size:.8rem;line-height:1.8;margin:17px 0 26px}.login-card form{display:grid;gap:20px}.login-card form>.btn{width:100%;min-height:49px;margin-top:3px}.login-card input{min-height:49px;background:var(--panel)}.login-card label{font-size:.73rem}.auth-card-intro{display:none}.auth-links{margin-top:18px;gap:10px}.auth-links .btn.link{font-size:.65rem}.auth-practice-links{margin-top:28px;padding-top:25px;border-top:1px solid var(--border);gap:10px}.login-card .auth-practice-links .btn{font-size:.69rem;flex:1;line-height:1.4;min-height:45px;background:var(--panel)}.login-card>.small{font-size:.65rem;line-height:1.8!important;margin-top:20px!important}.auth-footer{font-size:.61rem;color:var(--muted);margin-top:45px;text-align:center}.auth-mobile-brand{display:none}.auth-theme-button,.auth-install-button{position:fixed;top:22px;box-shadow:none;background:var(--panel)}.auth-theme-button{right:22px}.auth-install-button{left:auto;right:250px;font-size:.69rem}.theme-button-dot{height:7px;width:7px}.install-dialog{border-radius:20px;padding:25px}.auth-scene .appearance-dialog{background:var(--bg)}
footer{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;color:var(--muted);font-size:.6rem;font-weight:500;letter-spacing:0;text-transform:none;border-top:1px solid var(--border);margin-top:40px;padding:23px 0 4px}.footer-dot{padding:0 4px}
@media(min-width:1600px){.hero{min-height:330px}.hero-art>.chess-piece{height:245px;width:215px}.appearance-studio{grid-template-columns:minmax(280px,.85fr) minmax(0,1.5fr)}.theme-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1180px){.shell{grid-template-columns:208px minmax(0,1fr)}.sidebar{padding:23px 12px 16px;gap:20px}.main{padding-left:25px;padding-right:25px}.brand-word{font-size:1.5rem}.brand-mark{width:38px;height:42px}.brand-mark .chess-piece{width:33px;height:35px}.main-grid{grid-template-columns:minmax(0,1fr)}.hero{padding:30px;grid-template-columns:1.25fr .8fr}.hero-art>.chess-piece{width:150px;height:185px}.hero-art-board{width:210px;height:160px}.hero-art-label{font-size:.43rem}.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.appearance-studio{grid-template-columns:minmax(200px,.85fr) minmax(0,1fr);gap:22px}.studio-tabs>button{font-size:.6rem;padding:8px 5px}.piece-style-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.game-layout,.guest-practice .game-layout{grid-template-columns:minmax(0,1fr)}.game-side{position:static}.practice-layout{grid-template-columns:minmax(0,1fr) minmax(230px,.7fr)}.explore-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.auth-story{padding:36px;min-height:760px}.auth-story-copy{margin-top:62px}.auth-story-copy h1{font-size:3.1rem}.auth-features{gap:15px}.auth-form-side{padding:85px 30px 35px}.auth-scene{grid-template-columns:minmax(0,1fr) minmax(340px,1fr)}.auth-art-knight{width:190px;height:230px}.auth-story-bottom{flex-direction:column;gap:8px}.auth-story-copy>p{font-size:.78rem}.auth-install-button{right:230px}.practice-layout{grid-template-columns:minmax(0,1fr)}.practice-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.practice-side .install-card{grid-column:1/-1}.game-board-card{padding:17px}}
@media(max-width:800px){.shell{display:block;min-height:100dvh}.sidebar{display:none}.main{padding:0 20px calc(105px + env(safe-area-inset-bottom));max-width:100%;margin:0}.app-top{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(12px);min-height:78px;margin-bottom:27px;border-bottom:1px solid var(--border)}.desktop-context{display:none}.mobile-brand{display:flex}.mobile-brand .brand-word{font-size:1.45rem}.mobile-brand .brand-word>span{display:none}.mobile-brand .brand-mark{width:32px;height:35px;border-radius:10px}.mobile-brand .brand-mark .chess-piece{width:29px;height:31px}.top-right{gap:7px;justify-content:flex-end}.top-right .signout-button{font-size:.61rem!important;margin:0 5px 0 0}.icon-button{width:34px;height:34px;padding:8px}.icon-button .ui-icon{width:16px;height:16px}.appearance-shortcut{display:none}.mobile-navigation{position:fixed;left:0;right:0;bottom:0;z-index:100;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--sidebar) 96%,transparent);backdrop-filter:blur(15px);border-top:1px solid var(--border)}.mobile-navigation>button{position:relative;min-height:50px;padding:7px 3px;display:grid;justify-items:center;gap:5px;background:transparent;border:1px solid transparent;border-radius:13px;color:var(--muted);font-size:.6rem;font-weight:500}.mobile-navigation>button .ui-icon{width:21px;height:21px}.mobile-navigation>button.active{background:var(--panel3);color:var(--mint);border-color:color-mix(in srgb,var(--mint) 13%,transparent)}.mobile-unread-dot{width:5px;height:5px;border-radius:50%;position:absolute;background:var(--mint);top:6px;right:25%}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.metric{padding:18px;min-height:123px}.metric .value{font-size:1.8rem}.metric .name{font-size:.64rem}.metric .detail{font-size:.6rem}.hero{grid-template-columns:1.2fr .8fr}.hero h1{font-size:2.8rem}.hero-art>.chess-piece{height:210px;width:180px}.page-head h1{font-size:2rem}.appearance-studio{grid-template-columns:minmax(200px,.8fr) minmax(0,1.2fr)}.studio-preview{top:98px}.appearance-dialog .studio-preview{top:0}.top-right .local-warning{display:none}.top-right select{max-width:100px;min-height:34px;padding:6px;font-size:.64rem}.appearance-dialog{padding:22px}.explore-grid{grid-template-columns:1fr 1fr}.game-layout{gap:20px}footer{margin-top:34px}}
@media(max-width:650px){.auth-scene{display:block}.auth-story{display:none}.auth-form-side{padding:98px 25px 30px;min-height:100dvh;justify-content:center}.auth-mobile-brand{display:flex;align-items:center;gap:10px;align-self:start;margin:10px 0 36px}.auth-mobile-brand .brand-word{font-size:1.7rem}.auth-mobile-brand .brand-mark{width:40px;height:44px}.auth-mobile-brand .brand-word>span{font-size:.47rem}.login-card{max-width:420px}.login-card h1{font-size:2.4rem}.login-card>p{font-size:.8rem;max-width:44ch}.auth-footer{margin-top:30px}.auth-theme-button{top:18px;right:18px;font-size:.64rem!important;max-width:55vw}.auth-install-button{top:18px;left:18px;right:auto;font-size:.62rem!important;max-width:44vw}.appearance-dialog{width:96vw;border-radius:20px;padding:18px;max-height:94dvh}.appearance-dialog-head{margin-bottom:20px}.appearance-dialog-head h2{font-size:1.18rem}.appearance-heading h2,.appearance-dialog .appearance-heading h2{font-size:1.4rem;max-width:18ch}.appearance-heading>.pill{display:none}.appearance-studio{grid-template-columns:1fr;gap:24px}.studio-preview{position:static;padding:16px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:10px 18px;align-items:start}.studio-preview-top{grid-column:1/-1;margin:0 0 5px}.studio-preview .appearance-board{grid-column:1;grid-row:2/5}.studio-summary{grid-column:2;grid-row:2;margin:8px 0 0}.studio-status{grid-column:2;grid-row:3;margin:0;min-height:0;font-size:.62rem}.studio-preview>.btn{grid-column:2;grid-row:4;align-self:end;font-size:.59rem}.studio-summary>strong{font-size:.95rem}.studio-summary>span{font-size:.61rem}.studio-tabs{gap:4px;position:sticky;top:-1px;z-index:3;background:var(--panel);padding:8px 0 10px}.appearance-dialog .studio-tabs{background:var(--bg)}.studio-tabs>button{font-size:.65rem;min-height:42px;padding:10px 6px}.studio-panel-heading{margin:0 0 16px}.theme-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.theme-preview{height:87px;min-height:87px;padding:12px;grid-template-columns:19px minmax(0,1fr)}.theme-choice-info strong{font-size:.76rem}.theme-choice-info>span:not(.theme-selected){font-size:.6rem}.piece-style-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.piece-style-preview{height:55px}.piece-style-preview .chess-piece{height:50px;width:50px}.piece-style-choice{padding:13px 5px}.piece-style-choice>strong{font-size:.7rem}.piece-style-choice>span:last-child{font-size:.56rem}.board-palette-grid{gap:11px}.board-palette-choice{padding:11px 7px}.studio-footnote{font-size:.62rem}.appearance-card{padding:20px}.practice-side{grid-template-columns:1fr}.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.achievement-grid{grid-template-columns:1fr 1fr}.hero{padding:27px 24px;grid-template-columns:1.3fr .7fr;min-height:285px}.hero h1{font-size:2.55rem}.hero-art{min-height:190px}.hero-art>.chess-piece{height:160px;width:145px}.hero-art-board{width:175px;height:145px;max-width:145%;background-size:38px 38px}.hero-art-label{font-size:.38rem;letter-spacing:.15em;bottom:16px}.hero .button-row{gap:8px}.hero .btn{padding:11px 13px;font-size:.71rem}.hero .button-row .btn .ui-icon{display:none}.hero p{font-size:.79rem}.hero .eyebrow{font-size:.54rem}.guest-practice{padding:22px 18px 45px}.guest-practice-header{gap:20px;margin-bottom:29px}.guest-practice-header .button-row{width:100%;flex-wrap:wrap}.guest-practice-header .button-row .btn{flex:1;min-height:40px;font-size:.62rem;padding:9px}.guest-practice .auth-theme-button{max-width:none}.guest-practice .brand-word{font-size:1.55rem}.practice-stats{gap:9px;margin:22px 0}.practice-stats>div{padding:15px 12px;gap:8px}.practice-stats strong{font-size:1.5rem}.practice-stats strong span{font-size:.65rem}.practice-stats>div>span{font-size:.61rem}.practice-board-card{padding:14px;gap:16px}.practice-layout{gap:19px}.practice-side .card{padding:22px}.game-board-card{padding:13px}.game-side{padding:21px}.clock-panel{padding:12px;font-size:.69rem}.clock-panel strong{font-size:1.45rem}.clock-panel>div{max-width:70%;line-height:1.6}.game-board-card>.button-row .btn{min-height:40px;font-size:.66rem}.page-head{align-items:flex-start;flex-direction:column;gap:17px;margin-bottom:24px}.page-head p{font-size:.8rem;line-height:1.75}.page-head h1{font-size:2rem}.card{padding:20px}.card-head{gap:12px;flex-wrap:wrap}.card-head p{font-size:.74rem}.card-head h2{font-size:.95rem}.table-wrap{margin:0 -5px}.table-wrap th{font-size:.58rem}.table-wrap td{font-size:.74rem}.chat-messages{max-height:47vh;padding:0}.chat-message{padding:16px 12px}.chat-byline time{margin-left:auto;width:auto;font-size:.58rem}.chat-message p{font-size:.8rem}.chat-compose{padding:20px 0 0}.chat-compose .tiny{font-size:.63rem;line-height:1.7}.chat-compose textarea{margin:12px 0 15px}.push-preferences{grid-template-columns:1fr;gap:4px;padding:10px 15px}.personal-card{padding:20px}.avatar-choices{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.notification-inbox{padding:0 19px}.notification-row{padding:22px 0}.achievement{padding:18px 14px;gap:11px}.achievement-grid{gap:11px}.achievement-icon{min-width:25px;width:25px;font-size:1.4rem}.achievement h3{font-size:.77rem}.achievement p{font-size:.68rem}.achievement .tiny{font-size:.59rem}.explore-grid{grid-template-columns:1fr;gap:17px}.explore-links{grid-template-columns:1fr 1fr;gap:10px}.explore-links .nav-item{font-size:.72rem;min-height:51px;gap:10px;background:var(--panel2);border-color:var(--border)}.explore-links .ui-icon{width:17px;height:17px}.form-grid,.match-form{grid-template-columns:1fr}.match-form .long,.match-form .full{grid-column:auto}.arena-create{grid-template-columns:1fr}.line{gap:12px}.profile h2{font-size:1.4rem}.big-number{font-size:2rem}footer{font-size:.55rem;gap:10px}}
@media(max-width:400px){.main{padding-left:15px;padding-right:15px}.app-top{gap:8px}.top-right{gap:5px}.signout-button{display:none!important}.mobile-brand{gap:7px}.mobile-brand .brand-word{font-size:1.35rem}.hero{grid-template-columns:minmax(0,1fr);padding:27px;min-height:310px}.hero-copy{position:relative;z-index:2}.hero h1{font-size:2.6rem;max-width:10ch}.hero-art{position:absolute;right:-5px;top:40px;width:125px;opacity:.24;min-height:190px}.hero-art>.chess-piece{height:175px;width:150px}.hero-art-label{display:none}.hero p{max-width:26ch}.hero .button-row{margin-top:24px}.hero .btn{padding:12px 14px;font-size:.7rem}.achievement-grid{grid-template-columns:1fr}.achievement{padding:20px;gap:18px}.achievement h3{font-size:.85rem}.achievement p{font-size:.73rem}.studio-preview{gap:10px 13px;padding:12px}.studio-tabs>button{font-size:.59rem;padding:9px 5px}.piece-style-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.board-palette-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.board-palette-choice>strong{font-size:.59rem}.appearance-card{padding:17px}.appearance-dialog{padding:16px}.piece-style-choice>span:last-child{font-size:.59rem}.theme-choice-info>span:not(.theme-selected){font-size:.57rem}.game-board-card{padding:10px}.guest-practice-header .button-row .btn{font-size:.56rem;padding:8px 7px}.auth-theme-button{font-size:.57rem!important}.auth-install-button{font-size:.56rem!important}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.btn:hover{transform:none}}
.training-toolbar{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:25px 0}.training-filters{display:grid;grid-template-columns:1fr 1fr;gap:15px;width:min(100%,540px)}.training-toolbar>.btn{gap:9px}.training-toolbar .ui-icon{margin:0;width:17px;height:17px}.puzzle-context{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:12px 0;color:var(--muted);font-size:.71rem;border-top:1px solid var(--border)}.puzzle-context>span:first-child{display:flex;align-items:center;gap:8px}.puzzle-context .ui-icon{height:16px;width:16px}.puzzle-context b{color:var(--white);font-weight:600}.tactic-progress{display:flex;align-items:center;gap:7px;padding:2px 0}.tactic-progress>span{height:24px;width:24px;display:grid;place-items:center;border:1px solid var(--border);border-radius:50%;font-size:.63rem;color:var(--muted)}.tactic-progress>span.done{background:var(--mint);color:var(--button-text);border-color:var(--mint)}.tactic-progress small{margin-left:auto;font-size:.66rem;color:var(--muted)}.puzzle-move-trail{display:flex;gap:7px;flex-wrap:wrap;padding:3px 0}.puzzle-move-trail>span{display:flex;align-items:center;gap:7px;border:1px solid var(--border);background:var(--panel2);padding:8px 11px;border-radius:8px;font-size:.74rem;font-weight:600}.puzzle-move-trail small{font-size:.55rem;color:var(--muted);font-weight:500}.puzzle-move-trail>span.your-move{border-color:color-mix(in srgb,var(--mint) 25%,var(--border))}.training-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%}.training-actions .btn{white-space:normal;font-size:.68rem;padding:10px}.training-actions .ui-icon{width:14px;height:14px;margin-left:5px}.training-coach h2{font-size:1.45rem;line-height:1.2;letter-spacing:-.04em;margin:13px 0}.training-coach>p{color:var(--muted);font-size:.78rem;line-height:1.85;margin-bottom:20px}.coach-detail{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:16px 0;border-top:1px solid var(--border);font-size:.73rem}.coach-detail>span{color:var(--muted)}.coach-detail>strong{font-weight:550;text-align:right}.coach-tip,.tactic-explanation{border-top:1px solid var(--border);padding-top:23px;margin-top:7px}.coach-tip>b{font-weight:600;font-size:.81rem}.coach-tip p,.tactic-explanation p{margin-top:12px;line-height:1.85;color:var(--muted);font-size:.76rem}.tactic-explanation h3{margin-top:12px;font-size:1.05rem;letter-spacing:-.03em}.puzzle-source-link{display:inline-block;margin-top:22px;font-size:.68rem}.solution-review{border-top:1px solid var(--border);padding-top:20px;display:grid;gap:17px;width:100%}.solution-review>div:first-child{display:grid;gap:8px}.solution-review b{font-size:.78rem;font-weight:600}.solution-review span{font-size:.7rem;color:var(--muted);line-height:1.6}.achievement-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:25px}.achievement{position:relative}.achievement-icon .ui-icon{width:27px;height:27px;margin:4px auto}.badge-earned-check{position:absolute;right:11px;top:11px;width:18px;height:18px;font-size:.6rem;background:var(--warn-bg);color:var(--gold);border-radius:50%;display:grid;place-items:center}.badge-progress{height:5px;background:var(--panel3);border-radius:5px;overflow:hidden;margin-bottom:10px}.badge-progress>span{height:100%;display:block;background:var(--mint);border-radius:5px}.voice-panel{padding:20px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:24px 0}.voice-panel-heading{display:flex;align-items:center;gap:12px}.voice-panel-heading h3{font-size:.88rem;font-weight:600}.voice-panel-heading p{font-size:.65rem;color:var(--muted);margin-top:6px;line-height:1.6}.voice-icon{width:36px;height:36px;border:1px solid var(--border);border-radius:11px;display:grid;place-items:center;background:var(--panel2);color:var(--muted);flex:none}.voice-icon.active{color:var(--mint);background:var(--panel3);border-color:var(--mint)}.voice-icon .ui-icon{width:18px;height:18px}.voice-live-indicator{width:6px;height:6px;border-radius:50%;background:var(--mint);margin-left:auto;flex:none}.voice-help{font-size:.71rem;color:var(--muted);line-height:1.8;margin:17px 0}.voice-privacy{font-size:.61rem;color:var(--muted);display:block;margin-top:15px}.explore-account{margin-top:23px}.explore-account .btn{width:100%}
@media(max-width:650px){.training-toolbar{flex-direction:column;align-items:stretch;gap:15px}.training-filters{width:100%;gap:12px}.training-toolbar>.btn{align-self:start;font-size:.71rem}.training-actions{grid-template-columns:1fr 1fr;gap:9px}.training-actions .btn{min-height:42px;font-size:.68rem}.puzzle-context{font-size:.65rem}.tactic-progress small{font-size:.6rem}.tactic-progress>span{height:22px;width:22px}.puzzle-move-trail>span{padding:7px 9px;font-size:.69rem}.achievement-toolbar .mode-tabs button{font-size:.63rem;padding:8px}.achievement-toolbar>.pill{font-size:.61rem}.voice-help{font-size:.69rem}.training-coach h2{font-size:1.4rem}.practice-stats>div>span{line-height:1.5}}

.sq.light .sq-rank,.sq.light .sq-file{color:var(--board-label-light,#172620)}.sq.dark .sq-rank,.sq.dark .sq-file{color:var(--board-label-dark,#f8faef)}.sq.picked .sq-rank,.sq.picked .sq-file{color:#172620}
