:root{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color-scheme:light;--bg: #f7efe3;--bg-soft: #efe4d6;--surface: rgba(255, 248, 240, .9);--surface-strong: #fff8f0;--surface-alt: rgba(247, 239, 227, .92);--text: #1e1611;--muted: #553a22;--muted-soft: rgba(85, 58, 34, .78);--border: rgba(85, 58, 34, .18);--border-strong: rgba(85, 58, 34, .28);--accent: #1e1611;--accent-soft: rgba(85, 58, 34, .08);--success: #355c3f;--success-bg: rgba(106, 153, 120, .14);--success-border: rgba(53, 92, 63, .22);--danger: #8c3b32;--danger-bg: rgba(140, 59, 50, .12);--danger-border: rgba(140, 59, 50, .2);--shadow: 0 20px 45px rgba(20, 14, 10, .14);--shadow-soft: 0 10px 24px rgba(20, 14, 10, .08);--radius: 18px;--radius-sm: 12px;--page-width: 72rem;--content-width: 56rem;--page-gutter: 1rem;--page-gutter-mobile: .875rem;--logo-filter: drop-shadow(0 0 .65rem rgba(255, 255, 255, .42));--logo-opacity: .92;--toggle-bg: rgba(255, 252, 247, .95)}:root[data-theme=dark]{color-scheme:dark;--bg: #100d0a;--bg-soft: #16110d;--surface: rgba(28, 23, 18, .9);--surface-strong: #1c1712;--surface-alt: rgba(28, 23, 18, .94);--text: #f4ede4;--muted: rgba(244, 237, 228, .88);--muted-soft: rgba(244, 237, 228, .74);--border: rgba(244, 237, 228, .16);--border-strong: rgba(244, 237, 228, .26);--accent: #f4ede4;--accent-soft: rgba(244, 237, 228, .08);--success: #b7ddc0;--success-bg: rgba(106, 153, 120, .18);--success-border: rgba(183, 221, 192, .24);--danger: #efc2b8;--danger-bg: rgba(140, 59, 50, .22);--danger-border: rgba(239, 194, 184, .2);--shadow: 0 24px 55px rgba(0, 0, 0, .38);--shadow-soft: 0 10px 24px rgba(0, 0, 0, .28);--logo-filter: drop-shadow(0 0 .75rem rgba(0, 0, 0, .45)) brightness(.92) contrast(1.08);--logo-opacity: .88;--toggle-bg: #1c1712}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;font-family:inherit;line-height:1.55;background:linear-gradient(180deg,var(--bg) 0%,var(--bg-soft) 100%);color:var(--text);transition:background-color .18s ease,color .18s ease}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(180deg,#fffcf742,#0000000d)}:root[data-theme=dark] body:before{background:linear-gradient(180deg,#07060538,#0000002e)}button,input,select,textarea{font:inherit}a{color:inherit}p,li,small,span,label{color:var(--muted)}strong,h1,h2,h3,dt,dd,th,td,code,a,button,legend{color:var(--text)}code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;background:color-mix(in srgb,var(--surface-alt) 88%,transparent);padding:.12rem .35rem;border-radius:.45rem}h1,h2,h3{line-height:1.1;margin:0 0 .75rem}h1{font-size:clamp(2.2rem,5vw,3.8rem);letter-spacing:-.04em}h2{font-size:clamp(1.35rem,3vw,2rem);letter-spacing:-.03em}h3{font-size:1.02rem}p{margin:.5rem 0 0}ul,ol{margin:1rem 0 0;padding-left:1.25rem}input,select,textarea{width:100%;padding:.72rem .85rem;border:1px solid var(--border-strong);border-radius:.85rem;background:var(--surface-strong);color:var(--text);box-shadow:inset 0 1px #ffffff14}input::placeholder,textarea::placeholder{color:var(--muted-soft)}button,.button-link{display:inline-flex;align-items:center;justify-content:center;min-height:2.8rem;padding:.72rem 1rem;border-radius:.85rem;border:1px solid var(--border-strong);background:var(--surface-strong);text-decoration:none;font-weight:600;cursor:pointer;transition:box-shadow .16s ease,background-color .16s ease,border-color .16s ease}button:hover:not(:disabled),button:focus-visible,.button-link:hover,.button-link:focus-visible{box-shadow:var(--shadow-soft)}button:disabled,.button-link:disabled{opacity:.7;cursor:not-allowed;box-shadow:none}button[type=submit],.button-link--primary,.button-link--dark{background:var(--accent);border-color:var(--accent);color:#fff}button[type=submit]:hover:not(:disabled),button[type=submit]:focus-visible,.button-link--primary:hover,.button-link--primary:focus-visible,.button-link--dark:hover,.button-link--dark:focus-visible{background:#2f241c;border-color:#2f241c;color:#fff}:root[data-theme=dark] button[type=submit],:root[data-theme=dark] .button-link--primary,:root[data-theme=dark] .button-link--dark{color:#100d0a}:root[data-theme=dark] button[type=submit]:hover:not(:disabled),:root[data-theme=dark] button[type=submit]:focus-visible,:root[data-theme=dark] .button-link--primary:hover,:root[data-theme=dark] .button-link--primary:focus-visible,:root[data-theme=dark] .button-link--dark:hover,:root[data-theme=dark] .button-link--dark:focus-visible{background:#e6dacd;border-color:#e6dacd;color:#100d0a}button.secondary,.button-link--secondary{background:#fffffff5}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--text);outline-offset:2px}@media(max-width:700px){body{font-size:15px}h1{font-size:clamp(2rem,9vw,3rem)}}.lobby-page{max-width:var(--page-width)}.lobby-page__header{display:grid;gap:.35rem}.lobby-page__title-block{display:flex;align-items:baseline;gap:.65rem;min-width:0}.lobby-page__quick-actions{margin:.2rem 0 1rem}.lobby-page__footer-version{margin:2.75rem 0;text-align:center;color:var(--muted-soft);font-size:.76rem}.lobby-card h2{margin-top:0;margin-bottom:.35rem}.lobby-create-form,.lobby-join-form{display:grid;gap:.75rem;margin-top:.9rem}.lobby-join-form{grid-template-columns:minmax(0,1fr) auto;align-items:end}.lobby-join-form label{grid-column:1 / -1}.lobby-join-form label,.lobby-bot-picker label,.lobby-create-field label{font-weight:600}.lobby-join-form input{min-width:10rem;width:100%;text-transform:uppercase}.lobby-create-grid{display:grid;gap:.75rem}.lobby-create-field{display:grid;gap:.45rem;width:100%}.lobby-create-field__label{font-weight:600}.lobby-opponent-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;width:100%}.lobby-opponent-option{display:grid;gap:.8rem;min-height:0;padding:.8rem .9rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-strong)}.lobby-opponent-option.is-selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface-strong));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 28%,transparent)}.lobby-opponent-option__radio{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.7rem}.lobby-opponent-option input{margin:.15rem 0 0}.lobby-opponent-copy{display:grid;gap:.2rem}.lobby-opponent-title{font-weight:700;line-height:1.2}.lobby-opponent-description{color:var(--muted-soft);font-size:.92rem;line-height:1.35}.lobby-bot-picker{display:grid;gap:.45rem;padding-top:.15rem}.lobby-bot-picker select{max-width:22rem}.lobby-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-top:1rem}.lobby-stats-tile{display:grid;gap:.3rem;padding:.9rem 1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-strong)}.lobby-stats-tile strong{font-size:1.35rem;line-height:1}.lobby-stats-tile span{color:var(--muted-soft);font-size:.92rem;line-height:1.3}.lobby-list{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:.75rem}.lobby-list li{display:flex;justify-content:space-between;gap:.75rem;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.85rem .95rem;align-items:center;background:color-mix(in srgb,var(--surface-strong) 92%,var(--surface) 8%)}.lobby-list__actions{display:flex;gap:.55rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}.lobby-list button{margin-top:0}.lobby-meta{color:var(--muted-soft);font-size:.92rem}.lobby-created-game code{font-size:1.1rem}@media(max-width:700px){.lobby-join-form{grid-template-columns:1fr}.lobby-stats-grid{grid-template-columns:1fr 1fr}.lobby-list li{align-items:flex-start;flex-direction:column}.lobby-list__actions{justify-content:flex-start}.lobby-opponent-options{grid-template-columns:1fr}.lobby-bot-picker select{max-width:100%}}.chess-board{position:relative;width:min(100%,38rem);margin-inline:auto}.board-grid{position:relative;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));width:100%;aspect-ratio:1 / 1;padding:0;gap:0;border:1px solid rgba(15,23,42,.18);border-radius:1.1rem;overflow:hidden;background:#7b5a3d;box-shadow:0 20px 42px #0f172a2e,inset 0 1px #ffffff52,inset 0 0 0 1px #ffffff14}.board-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.board-overlay__arrow{stroke-width:10;stroke-linecap:round;opacity:.62}.board-overlay__arrow--illegal{stroke:#dc2626e6}.board-overlay__arrow--success{stroke:#22c55ee0}.board-overlay__marker--illegal{fill:#dc2626e6}.board-overlay__marker--success{fill:#22c55ee0}.board-overlay__badge{opacity:.92}.board-overlay__badge--illegal{fill:#dc2626d1;stroke:#fff5f5eb;stroke-width:2}.board-overlay__badge--success{fill:#22c55ecc;stroke:#f0fdf4eb;stroke-width:2}.board-overlay__badge-label{fill:#fff;font-size:20px;font-weight:800}.square{--square-hover-overlay: transparent;--square-capture-overlay: transparent;--square-ring-highlight: inset 0 0 0 0 rgba(0, 0, 0, 0);--square-ring-last-move: inset 0 0 0 0 rgba(0, 0, 0, 0);--square-ring-capture: inset 0 0 0 0 rgba(0, 0, 0, 0);--square-ring-illegal: inset 0 0 0 0 rgba(0, 0, 0, 0);--square-ring-suggested: inset 0 0 0 0 rgba(0, 0, 0, 0);position:relative;display:flex;align-items:center;justify-content:center;appearance:none;-webkit-appearance:none;border:none;border-radius:0;margin:0;padding:0;min-width:0;min-height:0;width:100%;aspect-ratio:1 / 1;background:transparent;outline:none;outline-offset:0;cursor:pointer;transition:filter .12s ease}.square:before{content:"";position:absolute;inset:.18rem;border-radius:.18rem;background:linear-gradient(0deg,var(--square-hover-overlay),var(--square-hover-overlay)),linear-gradient(0deg,var(--square-capture-overlay),var(--square-capture-overlay));opacity:1;pointer-events:none;z-index:0;transition:background .12s ease}.square:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:4;box-shadow:var(--square-ring-highlight),var(--square-ring-last-move),var(--square-ring-capture),var(--square-ring-illegal),var(--square-ring-suggested);transition:box-shadow .12s ease}.board-grid .square:hover:not(:disabled),.board-grid .square:focus-visible:not(:disabled),.board-grid .square:active:not(:disabled){border-color:transparent;transform:none;outline:none;filter:none}.board-grid .square:hover:not(:disabled):before,.board-grid .square:focus-visible:not(:disabled):before,.board-grid .square:active:not(:disabled):before{opacity:1}.board-grid .square:hover:not(:disabled) .piece__image,.board-grid .square:focus-visible:not(:disabled) .piece__image{filter:brightness(1.06) saturate(1.06)}.square.light{background:linear-gradient(180deg,#f3e7d4,#e7d6bb)}.square.dark{background:linear-gradient(180deg,#b3875f,#936942)}.board-grid .square.light:hover:not(:disabled),.board-grid .square.light:focus-visible:not(:disabled),.board-grid .square.light:active:not(:disabled){--square-hover-overlay: rgba(106, 69, 29, .1)}.board-grid .square.dark:hover:not(:disabled),.board-grid .square.dark:focus-visible:not(:disabled),.board-grid .square.dark:active:not(:disabled){--square-hover-overlay: rgba(255, 248, 235, .13)}.square:disabled{cursor:not-allowed}.square--highlighted{--square-ring-highlight: inset 0 0 0 .24rem rgba(255, 205, 0, .96)}.square--last-move{--square-ring-last-move: inset 0 0 0 .22rem rgba(45, 212, 191, .92)}.square--illegal{--square-ring-illegal: inset 0 0 0 .22rem rgba(220, 38, 38, .95)}.square--capture{--square-capture-overlay: rgba(185, 28, 28, .34);--square-ring-capture: inset 0 0 0 .18rem rgba(185, 28, 28, .74)}.square--suggested{--square-ring-suggested: inset 0 0 0 .16rem rgba(34, 197, 94, .78)}.square--phantom .phantom-piece-on-board:after{content:"";position:absolute;inset:14%;border-radius:1rem;background:#569cff14;box-shadow:inset 0 0 0 1px #569cff2e;pointer-events:none}.square__move-dot{position:absolute;z-index:1;width:18%;height:18%;min-width:.72rem;min-height:.72rem;border-radius:999px;background:#1e16113d;box-shadow:0 0 0 1px #ffffff3d;pointer-events:none}.square--suggested .square__move-dot{opacity:1}:root[data-theme=dark] .square__move-dot{background:#f4ede43d;box-shadow:0 0 0 1px #100d0a52}.phantom-piece-on-board{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:min(76%,3.55rem);height:min(76%,3.55rem);opacity:.62;filter:saturate(.68) contrast(.92);pointer-events:none}.phantom-piece-on-board__image{display:block;width:100%;height:100%;object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.piece{position:relative;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:min(82%,3.9rem);height:min(82%,3.9rem);padding:.08rem;transform:none;filter:none}.piece__image{display:block;width:100%;height:100%;object-fit:contain;filter:none;transition:filter .12s ease;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.coord{position:absolute;font-size:clamp(.44rem,1.25vw,.64rem);font-weight:800;letter-spacing:.02em;opacity:.82;pointer-events:none}.coord.file{right:.22rem;bottom:.14rem}.coord.rank{left:.22rem;top:.14rem}.square.light .coord{color:#583b1bd1}.square.dark .coord{color:#fff4e0d6}@media(max-width:640px){.chess-board{width:min(100%,30rem)}.board-grid{border-radius:.95rem;box-shadow:0 16px 30px #0f172a29,inset 0 1px #ffffff47,inset 0 0 0 1px #ffffff0f}.piece{width:min(86%,4rem);height:min(86%,4rem);padding:.04rem}}.promotion-modal__backdrop{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;background:#0f172aa6}.promotion-modal{width:min(90vw,24rem);background:#fffffff7;border-radius:var(--radius);padding:1.15rem;border:1px solid var(--border);box-shadow:0 18px 50px #0f172a47}.promotion-modal h2{margin-top:0}.promotion-modal__choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:1rem 0}.promotion-modal__choices button{padding:.7rem .6rem}.promotion-modal__cancel{width:100%}.game-page{max-width:var(--page-width);overflow-anchor:none}.game-page__header{display:grid;gap:.2rem;justify-content:flex-start}.game-page__signed-in{margin:0;color:var(--muted-soft);font-size:.95rem}.game-page__title-block{display:flex;align-items:baseline;gap:.65rem;min-width:0}.game-page__meta--below-board{margin-top:0;padding-inline:.15rem}.game-page__meta{color:var(--muted-soft);font-size:.76rem}.game-complete-summary{margin-top:1rem;display:grid;gap:1rem}.game-complete-summary+.game-layout{margin-top:.85rem}.game-complete-summary--won{border-color:color-mix(in srgb,var(--success-border) 70%,var(--success));background:color-mix(in srgb,var(--surface) 90%,var(--success-bg) 10%)}.game-complete-summary--lost{border-color:color-mix(in srgb,var(--danger-border) 70%,var(--danger));background:color-mix(in srgb,var(--surface) 90%,var(--danger-bg) 10%)}.game-complete-summary--draw{border-color:color-mix(in srgb,var(--border) 65%,var(--accent));background:color-mix(in srgb,var(--surface) 94%,var(--surface-strong) 6%)}.game-complete-summary__topline{font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-soft)}.game-complete-summary__hero{display:flex;align-items:center;justify-content:space-between;gap:1rem}.game-complete-summary__copy{display:grid;gap:.35rem}.game-complete-summary__copy h2,.game-complete-summary__player-card h3{margin:0}.game-complete-summary__copy p{margin:0;color:var(--muted)}.game-complete-summary__review-button{min-width:12rem;padding-inline:1.25rem;font-size:1rem;flex:0 0 auto}.game-complete-summary__meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.game-complete-summary__meta div{display:grid;gap:.22rem;padding:.85rem .95rem;border-radius:.95rem;border:1px solid var(--border);background:color-mix(in srgb,var(--surface-strong) 94%,transparent)}.game-complete-summary__meta span{color:var(--muted-soft);font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.game-complete-summary__meta strong{color:var(--text);font-size:.95rem}.game-complete-summary__ratings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.game-complete-summary__player-card{display:grid;gap:.75rem;padding:1rem;border:1px solid var(--border);border-radius:1rem;background:color-mix(in srgb,var(--surface-strong) 96%,transparent)}.game-complete-summary__player-link{color:var(--text);text-decoration:underline;text-decoration-thickness:.08em;text-underline-offset:.14em}.game-complete-summary__player-link:hover,.game-complete-summary__player-link:focus-visible{color:var(--accent)}.game-complete-summary__rating-list{margin:0;padding:0;list-style:none;display:grid;gap:.55rem}.game-complete-summary__rating-list li{display:grid;gap:.18rem}.game-complete-summary__rating-list span{color:var(--muted-soft);font-size:.8rem}.game-complete-summary__rating-list strong{color:var(--text);font-size:.96rem}.game-layout{display:grid;gap:.85rem;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"board referee" "status status";align-items:start}.game-card--board{grid-area:board;position:relative;display:grid;align-content:start;gap:.8rem;padding:1rem 1.05rem}.game-card--referee{grid-area:referee;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:.75rem;min-height:0;padding:1rem 1.05rem;overflow:hidden}.game-board-shell{position:relative;border-radius:1.45rem;padding:.3rem;isolation:isolate;transition:background .18s ease,box-shadow .18s ease}.game-board-shell:before{content:"";position:absolute;inset:0;border-radius:inherit;border:1px solid transparent;opacity:0;pointer-events:none;transition:border-color .18s ease,box-shadow .18s ease,opacity .18s ease}.game-board-shell--your-turn{background:radial-gradient(circle at top,color-mix(in srgb,var(--success) 16%,transparent),transparent 68%),color-mix(in srgb,var(--success-bg) 72%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--success) 20%,transparent),0 0 0 .38rem color-mix(in srgb,var(--success) 12%,transparent)}.game-board-shell--your-turn:before{opacity:1;border-color:color-mix(in srgb,var(--success-border) 58%,var(--success));box-shadow:0 0 0 .16rem color-mix(in srgb,var(--success-bg) 82%,transparent),0 0 1.5rem color-mix(in srgb,var(--success) 18%,transparent);animation:game-board-your-turn-pulse 1.75s ease-in-out infinite}.game-clocks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));justify-self:center;gap:.75rem;width:min(100%,38rem);margin-top:-.15rem}.game-clock{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:.9rem;background:var(--surface-strong)}.game-clock--active{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));box-shadow:0 0 0 .18rem color-mix(in srgb,var(--accent) 18%,transparent)}.game-clock__label{color:var(--muted-soft);font-size:.88rem}.game-clock__time{font-size:clamp(1rem,1.6vw,1.25rem);line-height:1}.game-board-meta{display:grid;gap:.45rem;margin-top:.2rem;justify-items:center;text-align:center}.game-piece-status{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;width:min(100%,34rem);padding:0;border:0;background:transparent;text-align:left}.game-piece-status__side{display:grid;align-content:center;gap:.28rem;min-height:5.4rem;padding:.72rem .78rem;border:1px solid var(--border);border-radius:.9rem;background:var(--surface-strong)}.game-piece-status__owner{color:var(--muted-soft);font-size:.82rem;font-weight:800;letter-spacing:.01em;line-height:1}.game-piece-status__line{margin:0;color:var(--text);font-size:clamp(.78rem,1.35vw,.94rem);line-height:1.2}.game-piece-status__label{font-weight:700}.game-piece-status__value{font-weight:800}.game-board-meta .game-page__meta{max-width:34rem}.game-opening-callout{justify-self:center;width:min(100%,34rem);padding:.9rem 1rem;border:1px solid color-mix(in srgb,var(--border) 65%,var(--accent));border-radius:1rem;background:color-mix(in srgb,var(--surface-strong) 78%,var(--accent) 22%);display:grid;gap:.22rem;text-align:center;cursor:pointer;box-shadow:none}.game-opening-callout__eyebrow{display:block;font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb,var(--text) 72%,var(--accent))}.game-opening-callout__body{display:block;font-size:.94rem;line-height:1.35;color:var(--text)}.game-sound-toggle{padding:.38rem .7rem;border-radius:999px;font-size:.78rem;line-height:1.1;box-shadow:none}.game-sound-toggle[aria-pressed=true]{background:color-mix(in srgb,var(--surface-strong) 88%,var(--surface));color:var(--muted-soft)}.phantom-menu{position:absolute;z-index:12;width:min(10.25rem,calc(100vw - 1rem));min-width:9.5rem;padding:.42rem;border-radius:.72rem;border:1px solid color-mix(in srgb,var(--border) 88%,#fff);background:color-mix(in srgb,var(--surface) 96%,#fff);box-shadow:0 10px 22px #0f172a29}.phantom-menu--sheet{position:fixed;left:.5rem;right:.5rem;bottom:.5rem;top:auto;width:auto;transform:none}.phantom-menu__header{display:flex;align-items:center;justify-content:space-between;gap:.3rem;margin-bottom:.35rem}.phantom-menu__intro{display:flex;align-items:baseline;gap:.35rem;min-width:0}.phantom-menu__intro strong{font-size:.84rem;line-height:1.2}.phantom-menu__intro span{color:var(--muted-soft);font-size:.76rem;line-height:1.2}.phantom-menu__close,.phantom-menu__secondary{padding:.2rem .38rem}.phantom-menu__close{min-width:1.7rem;min-height:1.7rem;border-radius:999px;font-size:.95rem;line-height:1}.phantom-menu__piece-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.32rem}.phantom-menu__piece-button{position:relative;display:grid;place-items:center;width:100%;min-height:2.55rem;padding:.28rem;border-radius:.65rem}.phantom-menu__piece-symbol{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.phantom-menu__piece-symbol img{display:block;width:100%;height:100%;object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 1px 0 rgba(255,255,255,.12))}.phantom-menu__piece-button small{position:absolute;right:.22rem;bottom:.16rem;color:var(--muted-soft);font-size:.58rem;line-height:1}.phantom-menu__footer{display:flex;justify-content:space-between;gap:.3rem;margin-top:.35rem}.phantom-menu__footer .phantom-menu__secondary{font-size:.68rem}.phantom-menu__danger{color:#b91c1c}.game-log-list{margin:.9rem 0 0;padding-left:1.2rem}.game-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1rem}@media(max-width:1120px){.game-layout{grid-template-columns:1fr}}@media(max-width:760px){.game-clocks{grid-template-columns:repeat(2,minmax(0,1fr))}.game-piece-status{grid-template-columns:1fr 1fr;gap:.5rem}.game-piece-status__side{min-height:4.9rem;padding:.62rem}.phantom-menu__piece-grid{grid-template-columns:1fr 1fr}}.game-drag-preview{position:fixed;z-index:20;width:min(10vw,4.25rem);height:min(10vw,4.25rem);transform:translate(-50%,-50%);pointer-events:none;opacity:.92}.game-drag-preview img{display:block;width:100%;height:100%;object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.game-status-grid{grid-area:status;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem}.game-actions{margin-top:0}.game-referee-latest{display:grid;gap:.22rem;padding:.72rem .8rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-strong)}.game-referee-latest__label{font-size:.76rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-soft)}.game-referee-latest__value{margin:0;color:var(--text);font-size:.94rem;line-height:1.35}.game-referee-latest__value--timeline{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .3rem}.game-referee-latest__timeline-piece{display:inline-flex;align-items:center;gap:.3rem}.game-referee-latest__segment{display:inline-flex;align-items:center;gap:.45rem;min-width:0}.game-referee-latest__actor{display:inline-flex;align-items:center;justify-content:center;padding:.16rem .5rem;border-radius:999px;font-size:.74rem;font-weight:800;letter-spacing:.02em;border:1px solid color-mix(in srgb,var(--border) 88%,var(--surface))}.game-referee-latest__actor--white{background:color-mix(in srgb,var(--surface) 74%,white 26%);color:color-mix(in srgb,var(--text) 88%,black 12%)}.game-referee-latest__actor--black{background:color-mix(in srgb,var(--text) 88%,black 12%);color:color-mix(in srgb,var(--surface) 88%,white 12%)}.game-referee-latest__segment-text{font-weight:600}.game-referee-latest__separator{color:var(--muted-soft);font-weight:700}.game-referee-log{display:grid;grid-template-rows:auto minmax(0,1fr);gap:.75rem;min-height:0;overflow:hidden;padding-top:.8rem;border-top:1px solid color-mix(in srgb,var(--border) 88%,var(--surface))}.game-referee-log__header h3{margin:0}.game-referee-log__scroll{max-height:none;min-height:0;height:100%;overflow-y:auto;padding-right:.2rem;display:grid;gap:.75rem;align-content:start;scroll-behavior:auto;overflow-anchor:auto}.game-referee-turn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-strong);padding:.85rem;display:grid;gap:.65rem}.game-referee-turn__title{font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-soft)}.game-referee-turn__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;align-items:stretch}.game-referee-column{display:grid;grid-template-rows:auto 1fr;gap:.45rem}.game-referee-column__label{font-weight:700;align-self:start}.game-referee-column__list{margin:0;padding:0;list-style:none;display:grid;gap:.45rem;align-self:end}.game-referee-entry{display:flex;align-items:flex-start;gap:.55rem;color:var(--text);font-size:.92rem;line-height:1.35}.game-referee-entry__badge{flex:0 0 auto;width:1.35rem;height:1.35rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.74rem;font-weight:800;color:var(--text);background:color-mix(in srgb,var(--surface-strong) 88%,var(--accent) 12%);border:1px solid var(--border-strong)}.game-referee-entry__text{min-width:0}.game-referee-column__empty{margin:0;color:var(--muted-soft);align-self:end}.game-danger-button{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger);margin-top:0}.game-danger-button:hover:not(:disabled),.game-danger-button:focus-visible{background:color-mix(in srgb,var(--danger-bg) 72%,var(--danger));border-color:color-mix(in srgb,var(--danger-border) 55%,var(--danger));color:#fff;box-shadow:none}.game-status-card{display:grid;align-content:start;gap:.7rem;padding:.95rem 1rem}.game-status-card__title{margin:0}.game-status-card__list{margin:0;padding:0;list-style:none;display:grid;gap:.5rem}.game-status-card__list li{color:var(--text);line-height:1.35}.game-status-card__list strong{font-weight:700}.game-status-card__link{color:inherit;text-decoration:underline;text-underline-offset:.12em}.game-status-card__link:hover,.game-status-card__link:focus-visible{color:var(--accent)}.game-status-card__turn--active{color:#047857;font-weight:600}.game-status-card__actions{display:grid;gap:.65rem;align-content:start}.game-status-card__actions button{width:100%;min-height:2.55rem;padding:.65rem .95rem;border-radius:.9rem;justify-self:stretch;justify-content:center;font-size:.9rem;line-height:1.2}.game-status-card__actions .game-sound-toggle,.game-status-card__actions .game-danger-button{justify-self:stretch}.game-status-card__actions .game-sound-toggle{background:var(--surface-strong);border-color:var(--border);color:var(--text)}.game-status-card__actions .game-sound-toggle:hover:not(:disabled),.game-status-card__actions .game-sound-toggle:focus-visible{background:color-mix(in srgb,var(--surface-strong) 70%,var(--accent) 30%);border-color:color-mix(in srgb,var(--border) 55%,var(--accent));color:var(--text);box-shadow:none}.game-status-card__actions .game-sound-toggle[aria-pressed=true]{background:color-mix(in srgb,var(--surface-strong) 84%,var(--surface));border-color:color-mix(in srgb,var(--border) 88%,var(--surface));color:var(--muted-soft)}@keyframes game-board-your-turn-pulse{0%,to{box-shadow:0 0 0 .16rem color-mix(in srgb,var(--success-bg) 82%,transparent),0 0 1.35rem color-mix(in srgb,var(--success) 14%,transparent)}50%{box-shadow:0 0 0 .24rem color-mix(in srgb,var(--success-bg) 92%,transparent),0 0 1.9rem color-mix(in srgb,var(--success) 22%,transparent)}}@media(prefers-reduced-motion:reduce){.game-board-shell,.game-board-shell:before{transition:none}.game-board-shell--your-turn:before{animation:none}}@media(max-width:760px){.game-complete-summary__hero,.game-complete-summary__ratings{grid-template-columns:1fr;display:grid}.game-complete-summary__review-button{width:100%}.game-complete-summary__meta{grid-template-columns:repeat(2,minmax(0,1fr))}.game-layout{grid-template-columns:1fr;grid-template-areas:"board" "referee" "status"}.game-status-grid,.game-referee-turn__grid{grid-template-columns:1fr}}@media(max-width:1120px)and (min-width:761px){.game-complete-summary__meta,.game-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.review-page{max-width:var(--page-width)}.review-page__header{margin-bottom:1rem;display:grid;gap:.2rem;justify-content:flex-start}.review-page__signed-in{margin:0;color:var(--muted-soft);font-size:.95rem}.review-page__layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:1rem}.review-page__controls{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1rem;flex-wrap:wrap}.review-page__ply{color:var(--muted-soft);margin-inline:.25rem}.review-page__top-toggle{margin-bottom:1rem}.review-page__toggle-group{margin-bottom:0}.review-page__board-footer{margin-top:1rem}.review-page__move-rows{margin:0;padding-left:0;list-style:none;display:grid;gap:.9rem;max-height:44rem;overflow-y:auto}.review-page__move-row{display:grid;grid-template-columns:minmax(0,1fr);gap:.45rem;align-items:start}.review-page__row-header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.8rem;padding:0 .2rem .15rem;border-bottom:1px solid var(--border)}.review-page__move-number{min-width:1.75rem;display:inline-flex;align-items:center;justify-content:center;font-weight:800;color:var(--text);font-size:.82rem;line-height:1}.review-page__ply-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.review-page__row-time{font-size:.8rem;color:var(--muted-soft)}.review-page__row-time--white{text-align:left}.review-page__row-time--black{text-align:right}.review-page__ply-card{width:100%;min-height:100%;text-align:left;display:grid;gap:.55rem;align-content:start;border:3.5px solid var(--border-strong);border-radius:1rem;background:color-mix(in srgb,var(--surface) 94%,transparent);padding:.95rem 1rem;box-shadow:none}.review-page__ply-card:hover,.review-page__ply-card:focus-visible{box-shadow:var(--shadow-soft)}.review-page__ply-card.is-active{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));background:var(--surface-strong)}.review-page__ply-card--empty{min-height:7rem;border:1px dashed var(--border);border-radius:1rem;background:transparent}.review-page__ply-color{font-size:.82rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-soft)}.review-page__announcement-list{margin:0;padding:0;list-style:none;display:grid;gap:.45rem}.review-page__announcement-item{display:flex;align-items:flex-start;gap:.55rem;color:var(--muted);font-size:.92rem;line-height:1.35}.review-page__announcement-badge{flex:0 0 auto;width:1.35rem;height:1.35rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.74rem;font-weight:800;color:var(--text);background:color-mix(in srgb,var(--surface-strong) 88%,var(--accent) 12%);border:1px solid var(--border-strong)}.review-page__result{margin-top:1rem;color:var(--muted)}.review-page .square--capture{--square-capture-overlay: rgba(185, 28, 28, .46);--square-ring-capture: inset 0 0 0 .24rem rgba(185, 28, 28, .84)}.review-page__stats{margin-top:1.25rem}.review-page__stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.review-page__stats-card{border:1px solid var(--border);border-radius:1rem;background:color-mix(in srgb,var(--surface) 94%,transparent);padding:1rem}.review-page__stats-card h3,.review-page__stats-card h4{margin:0}.review-page__stats-card h3{margin-bottom:.85rem}.review-page__player-link{color:var(--text);text-decoration:underline;text-decoration-thickness:.08em;text-underline-offset:.14em}.review-page__player-link:hover,.review-page__player-link:focus-visible{text-decoration:underline}.review-page__rating-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.review-page__rating-columns h4{margin-bottom:.55rem;color:var(--muted-soft)}.review-page__rating-list{margin:0;padding:0;list-style:none;display:grid;gap:.45rem}.review-page__rating-list li{display:flex;justify-content:space-between;gap:.8rem;color:var(--muted)}.review-page__rating-list strong{color:var(--text)}@media(max-width:768px){.review-page__layout,.review-page__move-row,.review-page__ply-grid,.review-page__stats-grid,.review-page__rating-columns{grid-template-columns:1fr}}.profile-page{max-width:var(--content-width)}.profile-card--bot-note{margin-top:1rem}.profile-card--bot-note h2{margin-top:0}.profile-card--bot-note p:last-child{margin-bottom:0}.profile-stats-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr))}.profile-stats-grid>div{padding:.9rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:color-mix(in srgb,var(--surface-alt) 86%,transparent)}.profile-stats-grid dt{color:var(--muted-soft);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.profile-stats-grid dd{margin:.3rem 0 0;font-weight:700;font-size:1.35rem;letter-spacing:-.03em}.profile-recent-list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.profile-recent-list li{display:flex;justify-content:space-between;gap:.75rem;align-items:center;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.7rem .8rem;background:color-mix(in srgb,var(--surface-alt) 86%,transparent)}.profile-recent-list li span{color:var(--text)}.profile-all-games-link{display:inline-block;margin-top:.9rem;font-weight:600}@media(max-width:700px){.profile-recent-list li{flex-direction:column;align-items:flex-start}}.history-page{max-width:var(--page-width)}.history-page__back-link-wrap{margin:0 0 1rem}.history-page__back-link{color:var(--text);text-decoration:underline;text-decoration-thickness:.08em;text-underline-offset:.14em}.history-table-wrap{overflow-x:auto;margin-top:1rem;border-radius:var(--radius)}.history-table{width:100%;border-collapse:collapse;overflow:hidden}.history-table th,.history-table td{text-align:left;padding:.8rem;border-bottom:1px solid var(--border)}.history-table thead th{background:color-mix(in srgb,var(--surface-strong) 94%,var(--surface) 6%);color:var(--text)}.history-opponent-link{color:var(--text);text-decoration:underline;text-decoration-thickness:.08em;text-underline-offset:.14em}.leaderboard-page{max-width:var(--page-width)}.leaderboard-table-wrap{overflow-x:auto;margin-top:1rem;border-radius:var(--radius)}.leaderboard-table{width:100%;border-collapse:collapse;overflow:hidden}.leaderboard-table th,.leaderboard-table td{text-align:left;padding:.8rem;border-bottom:1px solid var(--border)}.leaderboard-table thead th{background:color-mix(in srgb,var(--surface-strong) 94%,var(--surface) 6%);color:var(--text)}.settings-page{max-width:38rem}.settings-form select{background:#fff}.settings-toggle{display:flex;align-items:center;gap:.65rem;padding:.8rem .9rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:#f8fafcb8}.settings-toggle input{width:auto}.app-layout{min-height:100vh;display:flex;flex-direction:column}.app-layout>main{flex:1 0 auto}.app-footer{border-top:1px solid var(--border);background:color-mix(in srgb,var(--bg) 92%,transparent)}.app-footer__inner{width:min(calc(100% - (var(--page-gutter) * 2)),var(--page-width));margin:0 auto;padding:1.5rem 0 2rem}.app-footer__meta{display:grid;gap:.35rem;margin-bottom:1.2rem}.app-footer__brand{font-weight:700;text-decoration:none}.app-footer__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1.25rem}.app-footer__group h2{font-size:.95rem;margin-bottom:.55rem}.app-footer__group ul{list-style:none;padding:0;margin:0;display:grid;gap:.4rem}.app-footer__group a{text-decoration:none;color:var(--muted)}.app-footer__group a:hover,.app-footer__group a:focus-visible{color:var(--text)}.app-header{position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:color-mix(in srgb,var(--bg) 88%,transparent);border-bottom:1px solid var(--border)}.app-header__inner{width:min(calc(100% - (var(--page-gutter) * 2)),var(--page-width));margin:0 auto;padding:.65rem 0;display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.app-header__brand-group{display:inline-flex;align-items:center;gap:.7rem;flex-wrap:wrap}.app-header__brand{font-weight:700;font-size:1.05rem;letter-spacing:-.03em;text-decoration:none}button.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;min-height:2.75rem;height:2.75rem;padding:0;border-radius:999px;border:1px solid var(--border);background:var(--toggle-bg);cursor:default;color:inherit;flex:0 0 auto;appearance:none;-webkit-appearance:none;transition:none;transform:none;outline:none;box-shadow:none}button.theme-toggle:hover:not(:disabled),button.theme-toggle:focus-visible,button.theme-toggle:active{background:var(--toggle-bg);border-color:var(--border);transform:none;outline:none;box-shadow:none}.theme-toggle__logo{width:1.7rem;height:1.7rem;display:block;opacity:var(--logo-opacity);filter:var(--logo-filter)}.app-header__nav{display:flex;align-items:center;justify-content:flex-end;gap:.35rem;flex-wrap:nowrap}.app-header__nav a,.header-profile-menu__trigger,.header-profile-menu__item{padding:.55rem .8rem;border-radius:999px;text-decoration:none;color:var(--muted);border:1px solid transparent;background:transparent;margin-top:0;min-height:auto}.app-header__nav a:hover,.app-header__nav a:focus-visible,.header-profile-menu__trigger:hover,.header-profile-menu__trigger:focus-visible,.header-profile-menu__item:hover:not(:disabled),.header-profile-menu__item:focus-visible{color:var(--text);background:var(--accent-soft);box-shadow:none;transform:none}.app-header__nav a[aria-current=page],.header-profile-menu__item[aria-current=page]{background:var(--surface-strong);border-color:var(--border);color:var(--text)}.header-profile-menu{position:relative}.header-profile-menu__trigger{display:inline-flex;align-items:center;gap:.35rem;list-style:none;cursor:pointer}.header-profile-menu__trigger::-webkit-details-marker{display:none}.header-profile-menu__trigger:after{content:"";width:.42rem;height:.42rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-.08rem) rotate(45deg);opacity:.75}.header-profile-menu[open] .header-profile-menu__trigger{background:var(--surface-strong);border-color:var(--border);color:var(--text)}.header-profile-menu[open] .header-profile-menu__trigger:after{transform:translateY(.08rem) rotate(225deg)}.header-profile-menu__panel{position:absolute;right:0;top:calc(100% + .45rem);min-width:9rem;padding:.35rem;display:grid;gap:.15rem;border:1px solid var(--border);border-radius:1rem;background:var(--surface);box-shadow:var(--shadow-soft);z-index:20}.header-profile-menu__panel .header-profile-menu__item{width:100%;justify-content:flex-start;text-align:left}.header-profile-menu__item--button{font:inherit}.page-shell{width:min(calc(100% - (var(--page-gutter) * 2)),var(--page-width));margin:0 auto;padding:2.5rem 0 0;position:relative}.page-version{margin:2.75rem 0;text-align:center;color:var(--muted-soft);font-size:.76rem}.page-shell>:first-child{margin-top:0}.page-shell>h1+p{font-size:1.05rem;max-width:42rem}.home-stats-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr))}.stats-group-grid{display:grid;gap:1rem}.stats-group-card{border:1px solid var(--border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface-strong) 94%,var(--surface) 6%);padding:1rem;display:grid;gap:.85rem}.stats-group-card>h3{margin:0;font-size:.95rem;letter-spacing:-.02em}.stats-group-card .home-stats-grid,.stats-group-card .profile-stats-grid{margin:0}.home-stats-grid>div{padding:.9rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:color-mix(in srgb,var(--surface-alt) 86%,transparent)}.home-stats-grid dt{color:var(--muted-soft);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.home-stats-grid dd{margin:.3rem 0 0;font-weight:700;font-size:1.35rem;letter-spacing:-.03em}.elo-chart{display:grid;gap:.75rem}.elo-chart__toolbar{display:flex;align-items:center;justify-content:flex-start;gap:.7rem;margin:.55rem 0 0;flex-wrap:wrap}.elo-chart__track-toggle{display:inline-flex;align-items:center;gap:.3rem;margin:0 0 1.15rem;padding:.25rem;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--surface-strong) 92%,var(--surface) 8%);box-shadow:var(--shadow-soft)}.elo-chart__mode-toggle{margin:.2rem 0 0}.elo-chart__track-pill{min-height:auto;margin:0;padding:.45rem .8rem;border-radius:999px;border:0;background:transparent;color:var(--muted-soft);font-weight:700;font-size:.84rem;box-shadow:none;transform:none}.elo-chart__track-pill:hover,.elo-chart__track-pill:focus-visible{background:var(--accent-soft);color:var(--text);transform:none;box-shadow:none}.elo-chart__track-pill.is-active{background:var(--surface-strong);color:var(--text);border:1px solid var(--border)}.elo-chart__plot{position:relative}.elo-chart__plot svg{width:100%;height:auto;display:block;border-radius:var(--radius-sm);background:linear-gradient(180deg,rgba(177,138,83,.08),rgba(177,138,83,.025) 36%,transparent 100%),color-mix(in srgb,var(--surface-alt) 90%,transparent);border:1px solid var(--border);padding:.35rem}.elo-chart__grid{stroke:#94a3b833;stroke-width:1;stroke-dasharray:3 6}.elo-chart__tick-label{fill:color-mix(in srgb,var(--muted-soft) 88%,transparent);font-size:7px;text-anchor:end}.elo-chart__area-stop{stop-color:color-mix(in srgb,var(--accent) 72%,transparent)}.elo-chart__area-stop--top{stop-opacity:.14}.elo-chart__area-stop--bottom{stop-opacity:0}.elo-chart__area{pointer-events:none}.elo-chart__line{stroke:var(--accent);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 3px rgba(177,138,83,.1))}.elo-chart__focus-line{stroke:#b18a533d;stroke-width:1;stroke-dasharray:3 6}.elo-chart__tooltip{position:absolute;display:grid;gap:.16rem;min-width:9rem;padding:.65rem .72rem;border-radius:.9rem;border:1px solid var(--border-strong);background:color-mix(in srgb,var(--surface-strong) 96%,var(--bg) 4%);color:var(--text);box-shadow:var(--shadow-soft);transform:translate(-50%,calc(-100% - .85rem));pointer-events:none}.elo-chart__tooltip strong{font-size:.88rem;color:var(--text)}.elo-chart__tooltip span{font-size:.82rem;color:var(--muted)}.elo-chart__axis{display:flex;justify-content:space-between;gap:.75rem;color:var(--muted-soft);font-size:.8rem;font-weight:600}.elo-chart__summary{display:flex;justify-content:space-between;gap:.75rem;color:var(--muted-soft);font-size:.88rem}@media(max-width:700px){.elo-chart__toolbar{gap:.5rem}.elo-chart__tooltip{min-width:8.25rem;transform:translate(-50%,calc(-100% - .7rem))}}.inline-links{display:flex;gap:.75rem;margin-top:1.35rem;flex-wrap:wrap}.inline-links a{display:inline-flex;align-items:center;justify-content:center;min-height:2.8rem;padding:.72rem 1rem;border-radius:.85rem;border:1px solid var(--border-strong);background:var(--surface-strong);text-decoration:none;font-weight:600}.inline-links a:first-child{background:var(--accent);border-color:var(--accent);color:#fff}.inline-links a:first-child:hover,.inline-links a:first-child:focus-visible{background:#2f241c;border-color:#2f241c}:root[data-theme=dark] .inline-links a:first-child{color:#100d0a}:root[data-theme=dark] .inline-links a:first-child:hover,:root[data-theme=dark] .inline-links a:first-child:focus-visible{background:#e6dacd;border-color:#e6dacd;color:#100d0a}.home-card,.rules-card,.lobby-card,.game-card,.profile-card,.review-page__board-column,.review-page__log-column,.leaderboard-table,.history-table,.settings-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.home-card,.rules-card,.lobby-card,.game-card,.profile-card,.review-page__board-column,.review-page__log-column{padding:1.2rem 1.25rem}.home-card,.rules-card,.lobby-card,.profile-card{margin-top:1rem}.home-recent-games-footer{justify-self:start;margin-top:.5rem}.home-all-games-link{display:inline-flex;font-weight:600;text-underline-offset:.14em}.status-pill{display:inline-flex;margin-left:.5rem;font-size:.75rem;line-height:1;padding:.24rem .5rem;border-radius:999px;color:var(--success);background:var(--success-bg);border:1px solid var(--success-border)}.auth-form,.settings-form{display:grid;gap:.75rem;margin-top:1rem}.auth-form{padding:1.2rem 1.25rem}.auth-form button,.guest-login-button,.page-shell>button,.header-logout-button{width:fit-content}.guest-login-panel{display:grid;gap:.7rem;margin-top:1rem;padding:1rem 1.1rem;border:1px solid color-mix(in srgb,var(--border) 82%,var(--accent));border-radius:var(--radius-sm);background:color-mix(in srgb,var(--surface-strong) 88%,var(--surface) 12%)}.guest-login-panel p{margin:0!important;color:var(--muted-soft)}.auth-legal-notice{max-width:42rem;margin-top:1rem!important;color:var(--muted-soft);font-size:.95rem}.auth-legal-notice a{font-weight:600;text-underline-offset:.14em}.auth-error{color:var(--danger)!important;margin:.25rem 0!important;padding:.8rem .9rem;background:var(--danger-bg);border:1px solid var(--danger-border);border-radius:.85rem}.surface-note,.page-note,.game-page__notice,.review-page__notice,.settings-success,.lobby-hint{margin-top:.85rem;padding:.8rem .9rem;border-radius:.85rem;border:1px solid var(--border);background:var(--surface);color:var(--muted)}.settings-success{color:var(--success);border-color:var(--success-border);background:var(--success-bg)}.pagination-controls{display:flex;gap:.75rem;align-items:center;margin-top:1rem;flex-wrap:wrap}.pagination-controls span{color:var(--muted-soft)}.bots-report-table__group,.bots-report-table__subhead,.bots-report-table__cell--separator{position:relative}.bots-report-table__group--separator,.bots-report-table__subhead--separator,.bots-report-table__cell--separator{border-left:3px solid var(--border)}@media(max-width:900px){.page-shell,.app-header__inner,.app-footer__inner{width:min(calc(100% - (var(--page-gutter-mobile) * 2)),var(--page-width))}}
