:root{--color-primary:#175579;--color-primary-dark:#102c3d;--color-secondary:#386f91;--color-accent:#955800;--color-gold:#f3b62e;--color-red:#c8432e;--color-background:#f4f7f8;--color-surface:#fff;--color-text:#142d3b;--color-muted:#5a6e79;--color-border:#cfdae0;--color-neutral-50:#f8fafb;--color-neutral-100:#eef3f5;--color-neutral-700:#405967;--color-success:#166b4e;--color-warning:#955800;--color-danger:#ad3528;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--text-caption:.75rem;--text-label:.82rem;--text-body:1rem;--text-h3:1.2rem;--text-h2:1.55rem;--shadow-soft:0 12px 36px #102c3d17}.notice-error{border-radius:var(--radius-md);color:#84271e;background:#fff1ee;border:1px solid #e5a49c;padding:.8rem 1rem;font-weight:700}.environment-banner{z-index:1000;color:#684600;text-align:center;letter-spacing:.04em;background:#fff2cc;border-bottom:2px solid #d89b00;padding:.5rem 1rem;font-size:.82rem;font-weight:900;position:relative}.content-page,.game-shell{width:min(1120px,100% - 2rem);margin:0 auto;padding:2.5rem 0 4rem}.content-page{max-width:820px}.content-page .lead{font-size:1.15rem;line-height:1.7}.content-page section{margin:2rem 0}.content-page li{margin:.6rem 0;line-height:1.55}.fair-play-page h2{color:var(--color-primary-dark)}.fair-play-ack-card{background:var(--color-surface);border:1px solid var(--color-border);border-top:6px solid var(--color-accent);border-radius:20px;max-width:620px;margin:2rem auto;padding:clamp(1.25rem,4vw,2.25rem);box-shadow:0 14px 34px #0e275714}.fair-play-ack-card p{line-height:1.6}.fair-play-note{color:var(--color-muted);font-size:.94rem}.fair-play-checkbox{background:#f3f7ff;border-radius:12px;align-items:flex-start;gap:.8rem;margin:1.25rem 0;padding:1rem;font-weight:700;display:flex}.fair-play-checkbox input{flex:none;width:1.35rem;height:1.35rem}.fair-play-ack-card form{display:grid}.fair-play-ack-card .button{width:100%}.game-shell{width:min(1220px,100% - 1.5rem);padding:.75rem 0 2rem}.game-board-header{align-items:center;min-height:42px;margin:0 0 .35rem;display:flex}.game-board-header h1{letter-spacing:-.03em;max-width:none;margin:0;font-size:clamp(1.35rem,3vw,2rem);line-height:1.05}.game-sidebar-top{justify-content:space-between;align-items:center;gap:.65rem;display:flex}.game-sidebar-top .section-kicker{margin:0}.connection-badge{white-space:nowrap;border-radius:999px;align-items:center;min-height:40px;padding:.5rem .8rem;font-size:.84rem;font-weight:800;display:inline-flex}.connection-badge--online{color:#126b3b;background:#ddf8e8}.connection-badge--connecting{color:#7c5200;background:#fff1cc}.connection-badge--offline{color:#a12626;background:#ffe4e4}.game-header-actions{align-items:center;gap:.5rem;display:flex}.settings-gear{border:1px solid var(--color-border);width:42px;height:42px;color:var(--color-primary-dark);cursor:pointer;background:#fff;border-radius:11px;flex:none;place-items:center;font-size:1.4rem;display:grid}.settings-gear:focus-visible,.board-square:focus-visible{outline:3px solid var(--color-accent);outline-offset:-3px}.game-settings{border:1px solid var(--color-border);background:#f8fbff;border-radius:13px;gap:.7rem;margin:0;padding:.85rem;display:grid}.game-settings h2{margin:0;font-size:1.05rem}.game-settings label{gap:.3rem;font-size:.82rem;font-weight:800;display:grid}.game-settings select,.game-settings input[type=range]{width:100%;min-height:38px;accent-color:var(--color-primary)}.game-settings select{border:1px solid var(--color-border);background:#fff;border-radius:7px;padding:.3rem .5rem}.game-settings .settings-toggle{align-items:center;gap:.4rem;min-height:38px;display:flex}.game-settings .settings-toggle input{width:19px;height:19px}.settings-sound-test{width:100%;min-height:42px}.premove-banner,.draw-declined,.draw-pending{border-radius:10px;padding:.8rem 1rem;font-size:.9rem;font-weight:800}.premove-banner{color:#3e266d;background:#eee8ff;justify-content:space-between;gap:1rem;display:flex}.premove-banner button{color:#3e266d;cursor:pointer;background:0 0;border:0;font-weight:800;text-decoration:underline}.draw-declined{color:#8f1710;background:#fff0ee;border:2px solid #d92d20;box-shadow:0 7px 18px #b4231824}.draw-pending{color:#063d91;background:#e8f0ff}.draw-offer{background:#fff8e8;border:2px solid #d6a43c;border-radius:11px;padding:1rem}.draw-offer strong{color:#603e00}.game-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:0;display:grid}.game-facts>div{border:1px solid var(--color-border);background:#fff;border-radius:10px;padding:.55rem .75rem}.game-facts dt{color:var(--color-muted);font-size:.72rem;font-weight:750}.game-facts dd{color:var(--color-primary-dark);margin:.12rem 0 0;font-size:.9rem;font-weight:850}.game-status{background:var(--color-primary-dark);color:#fff;border-radius:12px;gap:.2rem;margin:0;padding:.72rem 1rem;display:grid}.game-status strong{font-size:.95rem}.game-status span{opacity:.86;font-size:.84rem}.game-error{color:#8b1d1d;background:#ffe6e6;border-radius:10px;margin:0;padding:.75rem 1rem;font-weight:700}.game-layout{grid-template-columns:minmax(360px,min(650px,100dvh - 250px)) minmax(300px,380px);justify-content:center;align-items:start;gap:1rem;display:grid}.board-column{width:100%;min-width:0}.board-wrap{width:100%;position:relative}.chess-board{aspect-ratio:1;border:4px solid var(--color-primary-dark);background:var(--color-primary-dark);touch-action:manipulation;border-radius:7px;grid-template-rows:repeat(8,minmax(0,1fr));grid-template-columns:repeat(8,minmax(0,1fr));width:100%;display:grid;overflow:hidden;container-type:inline-size}.board-square{cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;border-radius:0;place-items:center;min-width:0;min-height:0;padding:0;display:grid;position:relative;overflow:hidden}.board-square--light{background:#e8edf4}.board-square--dark{background:#6788b2}.chess-piece{text-shadow:0 1px 1px #ffffff59;place-items:center;width:84%;height:84%;font-family:Segoe UI Symbol,"Noto Sans Symbols 2",sans-serif;font-size:clamp(1.45rem,9cqi,4.65rem);line-height:1;transition:transform .12s;display:grid}.board-square:active .chess-piece{transform:scale(.94)}.board-square:before,.board-square:after{z-index:3;pointer-events:none;font-size:clamp(.5rem,1.65cqi,.72rem);font-weight:900;line-height:1;position:absolute}.board-square:before{content:attr(data-rank);top:3px;left:3px}.board-square:after{content:attr(data-file);bottom:3px;right:3px}.board-square--light:before,.board-square--light:after{color:#315b8e}.board-square--dark:before,.board-square--dark:after{color:#f2f6fb}.board-square--last{background-image:linear-gradient(#f7c54857,#f7c54857)}.board-square--legal{box-shadow:inset 0 0 0 clamp(3px,1cqi,7px) #147a50b3}.board-square--selected{box-shadow:inset 0 0 0 clamp(4px,1.2cqi,8px) var(--color-accent);z-index:2}.board-square--check{background-image:radial-gradient(circle,#b4231875,#0000 68%);box-shadow:inset 0 0 0 clamp(4px,1.2cqi,8px) #b42318}.board-theme--classic_wood{--board-light:#e7cda4;--board-dark:#916849;--coord-light:#4e3828;--coord-dark:#fff2dc}.board-theme--tournament_blue{--board-light:#e8edf4;--board-dark:#6788b2;--coord-light:#315b8e;--coord-dark:#f2f6fb}.board-theme--green_classic{--board-light:#e6edda;--board-dark:#78966c;--coord-light:#36593d;--coord-dark:#f5ffed}.board-theme--high_contrast{--board-light:#f8f8f4;--board-dark:#3c4453;--coord-light:#151923;--coord-dark:#fff}.chess-board .board-square--light{background-color:var(--board-light)}.chess-board .board-square--dark{background-color:var(--board-dark)}.chess-board .board-square--light:before,.chess-board .board-square--light:after{color:var(--coord-light)}.chess-board .board-square--dark:before,.chess-board .board-square--dark:after{color:var(--coord-dark)}.chess-board .board-square--last{background-image:linear-gradient(#ffcf4b6b,#ffcf4b6b)}.chess-board .board-square--legal{box-shadow:inset 0 0 0 clamp(3px,1cqi,7px) #1e9468}.chess-board .board-square--selected{box-shadow:inset 0 0 0 clamp(4px,1.2cqi,8px) #db1237}.chess-board .board-square--check{background-image:radial-gradient(circle,#d2111180,#0000 70%);box-shadow:inset 0 0 0 clamp(4px,1.2cqi,8px) #d21111}.chess-board .board-square--premove{background-image:linear-gradient(#7445c773,#7445c773);box-shadow:inset 0 0 0 clamp(3px,1cqi,7px) #6529be}.chess-board .board-square--drag-origin .chess-piece{opacity:.28}.drag-ghost{z-index:100;pointer-events:none;filter:drop-shadow(0 4px 5px #0006);font-family:Segoe UI Symbol,sans-serif;font-size:clamp(3rem,6vw,5rem);line-height:1;position:fixed;transform:translate(-50%,-50%)}.piece-set--modern .chess-piece--white,.drag-ghost--white.piece-set--modern{color:#fff;-webkit-text-stroke:1.6px #1b2639;text-shadow:0 2px 2px #00000052}.piece-set--modern .chess-piece--black,.drag-ghost--black.piece-set--modern{color:#15243b;-webkit-text-stroke:1px #fff;text-shadow:0 2px 2px #00000042}.piece-set--modern .chess-piece{font-family:Georgia,Segoe UI Symbol,serif;font-weight:900;transform:scale(.88)}.piece-set--reference_classic .chess-piece--white,.drag-ghost--white.piece-set--reference_classic{color:#fff5dd;-webkit-text-stroke:1px #4d321f;text-shadow:0 2px 2px #2b180c6b}.piece-set--reference_classic .chess-piece--black,.drag-ghost--black.piece-set--reference_classic{color:#241b16;-webkit-text-stroke:1px #f0cf9f;text-shadow:0 2px 2px #ffecca3d}.piece-set--classic .chess-piece{filter:drop-shadow(0 1px 1px #0006)}.piece-set--reference_classic .chess-piece{font-family:Segoe UI Symbol,"Noto Sans Symbols 2",serif;font-weight:800;transform:scale(.94)}.board-theme--classic_wood_reference{--board-light:#d4b88a;--board-dark:#805a3e;--coord-light:#553b25;--coord-dark:#f8eddb;border-color:#4d4036;box-shadow:0 5px 13px #2e1e1345}.board-theme--classic_wood_reference .board-square--light{background-image:repeating-linear-gradient(91deg,#0000 0 3px,#fff6de16 4px 5px,#0000 7px 12px,#5d3e230e 13px 14px),linear-gradient(115deg,#fff8dd1f,#0000 45%,#51311814)}.board-theme--classic_wood_reference .board-square--dark{background-image:repeating-linear-gradient(92deg,#0000 0 4px,#20110916 5px 6px,#0000 9px 15px,#f9d2a00e 16px 17px),linear-gradient(115deg,#ffe2b014,#0000 50%,#28170f1c)}.piece-set--reference_classic .chess-piece{width:94%;height:94%;transform:none}.reference-piece{filter:drop-shadow(1px 2px 1px #14100c73);width:100%;height:100%;display:block;overflow:visible}.reference-piece--white{fill:#faf9f4;stroke:#171a1c;stroke-width:1.75px}.reference-piece--black{fill:#202124;stroke:#f6f0e5;stroke-width:1.65px}.reference-piece .piece-detail{fill:none;stroke-width:1.25px}.reference-piece--white .piece-detail{stroke:#3f4141}.reference-piece--black .piece-detail{stroke:#f7f0e0}.reference-piece--white .piece-eye{fill:#1a1c1d;stroke:none}.reference-piece--black .piece-eye{fill:#f6f0e5;stroke:none}.drag-ghost:has(.reference-piece){width:64px;height:64px;display:block}.drag-ghost .reference-piece{width:100%;height:100%}.connection-overlay{z-index:8;color:#fff;text-align:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#021b43c7;flex-direction:column;justify-content:center;align-items:center;gap:.45rem;padding:1rem;display:flex;position:absolute;inset:4px}.connection-overlay small{color:#ffffffd1;max-width:27ch}.connection-spinner{border:3px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:28px;height:28px;animation:.9s linear infinite connection-spin}@keyframes connection-spin{to{transform:rotate(360deg)}}.clock-card{border:1px solid var(--color-border);background:#fff;justify-content:space-between;align-items:center;min-height:54px;padding:.55rem .85rem;transition:background-color .18s,border-color .18s;display:flex}.clock-card:first-child{border-radius:12px 12px 0 0}.clock-card:last-child{border-radius:0 0 12px 12px}.clock-card span{min-width:0;color:var(--color-muted);gap:.08rem;font-size:.78rem;display:grid}.clock-card span b{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;overflow:hidden}.clock-card strong{color:#435168;font-variant-numeric:tabular-nums;letter-spacing:.02em;font-size:clamp(1.55rem,4vw,2rem)}.clock-card--active{border-color:var(--color-primary);background:#e8f0ff}.clock-card--active strong{color:var(--color-primary-dark)}.clock-card--warning{background:#fff2e5;border-color:#d56a19}.clock-card--warning strong{color:#9a3d00}.game-sidebar{border:1px solid var(--color-border);background:#fff;border-radius:14px;gap:.85rem;max-height:calc(100dvh - 125px);padding:1rem;display:grid;overflow:auto}.move-list{grid-template-columns:repeat(2,1fr);gap:.32rem .7rem;max-height:180px;margin:0;padding-left:1.7rem;display:grid;overflow:auto}.move-list li{font-variant-numeric:tabular-nums;min-height:1.4rem;padding-left:.15rem}.moves-empty{color:var(--color-muted);font-size:.9rem}.game-controls,.draw-offer{gap:.65rem;display:grid}.game-controls .button,.draw-offer .button{width:100%;min-height:48px}.button--danger{color:#fff;background:#b9242f;border-color:#b9242f}.game-result-card{border-left:5px solid var(--color-success);background:#effaf5;border-radius:12px;padding:1rem}.game-result-card h2{color:var(--color-primary-dark);margin-bottom:.4rem;font-size:1.25rem}.game-result-card>strong{margin:.35rem 0;font-size:2rem;display:block}.game-result-card p:last-child{margin-bottom:0}.match-complete-label{text-align:center;color:var(--color-success);padding:.75rem}.game-pgn pre{white-space:pre-wrap;max-width:100%;font-size:.76rem;overflow:auto}.promotion-dialog{z-index:50;background:#041027b8;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.promotion-dialog>div{background:#fff;border-radius:18px;flex-wrap:wrap;gap:.7rem;width:min(100%,420px);padding:1.3rem;display:flex}.promotion-dialog h2{width:100%;max-width:none}.promotion-dialog button:not(.button){border:1px solid var(--color-border);background:#f1f5fb;border-radius:12px;width:72px;height:72px;font-size:2.6rem}.promotion-dialog .button{min-height:48px}.game-room-launch{border:1px solid var(--color-border);background:#f8fbff;border-radius:16px;margin:1rem 0;padding:1rem}.game-room-launch h3{margin:.2rem 0}.game-launch-list{gap:.7rem;margin:1rem 0;display:grid}.game-launch-list>div{background:#fff;border-radius:12px;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem;display:flex}.game-launch-list>div>div{gap:.15rem;display:grid}.game-launch-list span{color:var(--color-muted);font-size:.86rem}.text-link{color:var(--color-primary);font-weight:700}@media (max-width:980px){.game-shell{width:min(100% - 1rem,760px);padding-top:1rem}.game-layout{grid-template-columns:1fr}.board-column{width:min(100%,680px);margin:0 auto}.game-sidebar{order:2;max-height:none}.move-list{max-height:220px}}@media (max-width:620px){.site-header nav a[href=\/participants],.site-header nav a[href=\/fair-play]{display:none}.game-shell{width:calc(100% - .75rem);padding-top:.6rem}.game-board-header{min-height:36px;margin-bottom:.3rem}.game-board-header h1{font-size:1.3rem}.game-sidebar-top{align-items:flex-start}.connection-badge{min-height:36px;padding:.4rem .65rem;font-size:.76rem}.game-facts{gap:.35rem}.game-facts>div{padding:.45rem .6rem}.game-status{padding:.65rem .75rem}.chess-board{border-width:3px}.connection-overlay{inset:3px}.clock-card{min-height:50px;padding:.45rem .7rem}.clock-card strong{font-size:1.5rem}.game-sidebar{padding:.85rem}.promotion-dialog>div{justify-content:center}.game-launch-list>div{flex-direction:column;align-items:flex-start}.game-launch-list .button{width:100%}}@media (orientation:landscape) and (max-height:600px) and (min-width:700px){.site-header{display:none}.game-shell{width:calc(100% - .75rem);padding:.25rem 0}.game-board-header{min-height:32px}.game-board-header h1{font-size:1.2rem}.game-facts{display:none}.game-layout{grid-template-columns:minmax(260px,calc(100dvh - 105px)) minmax(260px,1fr);gap:.6rem}.clock-card{min-height:36px;padding:.2rem .6rem}.clock-card strong{font-size:1.3rem}.game-sidebar{max-height:calc(100dvh - 12px);padding:.7rem}}.game-identity{min-width:0}.game-identity h1{color:var(--color-primary-dark);margin:.15rem 0;font-size:clamp(1.15rem,2vw,1.5rem);line-height:1.1}.game-identity>span{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.83rem;font-weight:700;display:block;overflow:hidden}.game-sidebar-top{align-items:flex-start}.game-sidebar-top .section-kicker{font-size:.69rem}@media (max-width:620px){body:has(.game-shell) .environment-banner{display:none}body:has(.game-shell) .site-header{background:0 0;width:calc(100% - 12px);min-height:36px;padding:4px 0;position:static}body:has(.game-shell) .site-header nav{display:none}body:has(.game-shell) .site-header__brand{white-space:nowrap;align-items:center;gap:3px;font-size:.76rem;display:flex}body:has(.game-shell) .site-header__brand span{margin-left:0;font-size:.64rem}.game-shell{width:calc(100% - 8px);padding:0 0 1rem;position:relative}.game-layout{flex-direction:column;gap:0;display:flex}.board-column,.game-sidebar{display:contents}.game-sidebar-top{order:0;align-items:center;width:100%;min-height:34px;padding:0 2px 3px}.game-identity .section-kicker,.game-identity>span,.connection-badge{display:none}.game-identity h1{margin:0;font-size:1rem;line-height:1.1}.game-header-actions{gap:0}.settings-gear{border-radius:7px;width:32px;height:32px;font-size:1.15rem}.clock-card{width:100%;min-height:38px;padding:2px 8px;border-radius:5px!important}.clock-card--opponent{order:1}.clock-card--self{order:3}.clock-card span{gap:0;font-size:.69rem;line-height:1.05}.clock-card span b{font-size:.72rem}.clock-card strong{font-size:1.35rem}.board-wrap{order:2;width:100%}.chess-board{border-width:2px;border-radius:3px}.connection-overlay{inset:2px}.game-status{border-radius:5px;order:4;justify-content:space-between;align-items:center;gap:5px;width:100%;min-height:35px;padding:5px 9px;display:flex}.game-status strong{font-size:.83rem}.game-status span{text-align:right;font-size:.7rem;line-height:1.12}.game-controls{order:6;gap:6px;width:100%;margin-top:4px;display:flex}.game-controls .button{min-height:36px;padding:5px 8px;font-size:.78rem}.game-settings{z-index:15;width:min(330px,100vw - 12px);max-height:calc(100dvh - 48px);position:absolute;top:35px;right:0;overflow:auto;box-shadow:0 14px 35px #021b433d}.game-facts{order:8;margin-top:12px}.draw-declined,.draw-pending,.draw-offer,.premove-banner,.game-error{order:5;width:100%;margin:4px 0 0;padding:5px 8px;font-size:.76rem;line-height:1.15}.draw-offer{align-items:center;gap:5px;display:flex}.draw-offer strong{flex:1;font-size:.74rem}.draw-offer .button{width:auto;min-height:32px;padding:3px 7px;font-size:.72rem}.game-sidebar>div:not(.game-sidebar-top):not(.game-settings):not(.game-facts):not(.game-status):not(.game-controls):not(.draw-declined):not(.draw-pending):not(.draw-offer):not(.premove-banner),.game-sidebar>.game-result-card,.game-sidebar>.game-pgn{order:9;width:100%;margin-top:10px}.move-list{max-height:140px}}*{box-sizing:border-box}html{background:var(--color-background)}body{color:var(--color-text);background:radial-gradient(circle at 88% 4%, #063d911f, transparent 32rem), var(--color-background);margin:0;font-family:Inter,Segoe UI,Arial,sans-serif}a{color:var(--color-primary)}.site-header{z-index:10;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f3f6faf0;justify-content:space-between;align-items:center;gap:24px;width:min(1180px,100% - 32px);min-height:72px;margin:0 auto;padding:10px 0;display:flex;position:sticky;top:0}.site-header__brand{color:var(--color-primary-dark);font-weight:900;text-decoration:none}.site-header__brand span{color:var(--color-accent);letter-spacing:.06em;text-transform:uppercase;margin-left:6px;font-size:.78rem}.site-header nav{align-items:center;gap:18px;display:flex}.site-header nav a{font-weight:750;text-decoration:none}.site-header nav a:not(.nav-cta):hover{text-underline-offset:5px;text-decoration:underline}.nav-cta{color:#fff;background:var(--color-primary);border-radius:10px;padding:10px 14px}.shell{width:min(1180px,100% - 32px);margin:0 auto;padding:32px 0 56px}.hero{background:var(--color-surface);min-height:560px;box-shadow:var(--shadow-soft);border:1px solid #063d911f;border-radius:32px;grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);align-items:center;gap:clamp(32px,6vw,80px);padding:clamp(32px,6vw,72px);display:grid;overflow:hidden}.eyebrow,.section-kicker{color:var(--color-accent);letter-spacing:.13em;text-transform:uppercase;margin:0 0 12px;font-size:.82rem;font-weight:800}h1,h2,p{margin-top:0}h1{max-width:12ch;color:var(--color-primary-dark);letter-spacing:-.055em;margin-bottom:12px;font-size:clamp(2.6rem,7vw,5.8rem);line-height:.94}.season{color:#fff;background:var(--color-accent);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;margin-bottom:28px;padding:9px 14px;font-weight:850;display:inline-flex}.lead{color:var(--color-muted);margin-bottom:28px;font-size:clamp(1.15rem,2vw,1.4rem)}.status{color:#0d5c3b;background:#effaf5;border:1px solid #147a5042;border-radius:12px;align-items:center;gap:10px;min-height:44px;padding:10px 14px;font-weight:700;display:inline-flex}.status__dot{background:var(--color-success);border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 5px #147a5021}.hero__actions{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}.button{min-height:46px;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:11px;justify-content:center;align-items:center;padding:11px 18px;font-weight:800;text-decoration:none;display:inline-flex}.button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #e3002b47}.button:disabled{cursor:wait;opacity:.62}.button--primary{color:#fff;background:var(--color-primary)}.button--primary:hover{background:var(--color-primary-dark)}.button--small{min-height:40px;padding:8px 12px;font-size:.86rem}.button--danger{color:#fff;background:var(--color-danger)}.hero__brand{background:linear-gradient(135deg, #ffffff0d, transparent), var(--color-primary-dark);border-radius:28px;justify-content:center;align-items:center;min-height:360px;padding:clamp(20px,4vw,48px);display:flex}.hero__brand img{object-fit:contain;width:100%;height:auto}.hero__brand--text{color:#fff;letter-spacing:-.055em;text-align:center;font-size:clamp(2.8rem,7vw,6rem);font-weight:900;line-height:.95}.readiness{border:1px solid var(--color-border);background:var(--color-surface);border-radius:24px;grid-template-columns:1.15fr .85fr;gap:32px;margin-top:28px;padding:clamp(28px,5vw,52px);display:grid}.readiness h2{color:var(--color-primary-dark);letter-spacing:-.03em;margin-bottom:14px;font-size:clamp(1.7rem,4vw,2.5rem)}.readiness p:not(.section-kicker){max-width:65ch;color:var(--color-muted);margin-bottom:0;line-height:1.7}.readiness ul{gap:12px;margin:0;padding:0;list-style:none;display:grid}.readiness li{border:1px solid var(--color-border);border-radius:14px;padding:15px 16px 15px 46px;font-weight:700;position:relative}.readiness li:before{content:"✓";color:var(--color-success);font-weight:900;position:absolute;top:13px;left:16px}.page-shell{width:min(1120px,100% - 32px);margin:0 auto;padding:52px 0 72px}.page-shell--narrow{width:min(680px,100% - 32px)}.page-shell--admin{width:min(1380px,100% - 32px)}.admin-top-nav{z-index:20;border-bottom:1px solid var(--color-border);background:#f4f7fbf5;flex-wrap:wrap;gap:8px;width:min(1380px,100% - 32px);margin:0 auto;padding:12px 0;display:flex;position:sticky;top:0}.admin-top-nav a{color:var(--color-primary-dark);border-radius:10px;padding:9px 12px;font-weight:800;text-decoration:none}.admin-top-nav a:hover,.admin-top-nav a:focus-visible{color:#fff;background:var(--color-primary)}.page-heading{max-width:760px;margin-bottom:32px}.page-heading h1,.success-card h1{max-width:none;margin-bottom:16px;font-size:clamp(2.2rem,6vw,4.6rem)}.page-heading>p:not(.section-kicker){color:var(--color-muted);font-size:1.1rem;line-height:1.65}.form-card,.success-card{border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-soft);border-radius:24px;padding:clamp(24px,5vw,46px)}.form-card--compact{gap:22px;display:grid}.form-card fieldset{border:0;margin:0 0 32px;padding:0}.form-card legend{color:var(--color-primary-dark);margin-bottom:20px;font-size:1.25rem;font-weight:900}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.form-grid__wide{grid-column:1/-1}.phone-input{grid-column:1/-1;grid-template-columns:minmax(130px,1fr) minmax(0,1.4fr);gap:10px;display:grid}.phone-input__number{align-items:center;gap:8px;min-width:0;display:flex}.phone-input__number>span{color:var(--color-muted);flex:none}.phone-input__number input{min-width:0}.password-input{align-items:center;gap:8px;min-width:0;display:flex}.password-input input{min-width:0}.password-input button{border:1px solid var(--color-border);min-height:44px;color:var(--color-primary-dark);background:var(--color-surface);cursor:pointer;border-radius:10px}@media (max-width:440px){.phone-input{grid-template-columns:1fr}}.form-card label,.inline-action{color:var(--color-text);gap:8px;font-weight:750;display:grid}input,select,textarea{width:100%;min-height:46px;color:var(--color-text);font:inherit;background:#fff;border:1px solid #b8c5d5;border-radius:10px;padding:10px 12px}textarea{resize:vertical;min-height:96px}.consent-row{grid-template-columns:auto 1fr;align-items:flex-start;margin-bottom:20px;display:flex!important}.consent-row input{width:20px;min-height:20px;margin-top:2px}.field-error,.form-error{color:var(--color-danger);font-size:.9rem;font-weight:700}.registration-entry-actions,.join-flow{gap:14px;display:grid}.registration-entry-actions{grid-template-columns:max-content max-content;align-items:center;margin-top:22px}.registration-entry-actions p{grid-column:1/-1;margin:0}.join-player-list{gap:10px;display:grid}.join-player-option{border:1px solid var(--color-border);border-radius:14px;align-items:flex-start;padding:14px;grid-template-columns:none!important;display:flex!important}.join-player-option input{width:20px;min-height:20px}.join-player-option span,.join-player-option small{display:block}.tournament-dashboard,.tournament-card-grid{gap:18px;display:grid}.tournament-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tournament-card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:20px;gap:14px;padding:22px;display:grid}.tournament-card header{justify-content:space-between;gap:14px;display:flex}.tournament-card h3,.tournament-card p{margin:0}.tournament-card__action{color:var(--color-primary-dark);background:#eef4fb;border-radius:12px;padding:12px 14px}.form-error{background:#fff4f2;border:1px solid #b423183d;border-radius:10px;padding:12px 14px}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.category-card{border:1px solid var(--color-border);border-left:5px solid var(--color-accent);background:var(--color-surface);border-radius:18px;padding:28px}.category-card span{color:var(--color-accent);letter-spacing:.09em;text-transform:uppercase;font-size:.78rem;font-weight:850}.category-card h2{margin:14px 0 8px}.category-card p{color:var(--color-muted);margin:0}.table-wrap{border:1px solid var(--color-border);background:var(--color-surface);border-radius:18px;overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top;padding:15px 16px}th{color:var(--color-primary-dark);letter-spacing:.05em;text-transform:uppercase;background:#f7f9fc;font-size:.8rem}tbody tr:last-child td{border-bottom:0}td small{color:var(--color-muted);margin-top:6px;line-height:1.5;display:block}.badge{white-space:nowrap;border-radius:999px;padding:6px 9px;font-size:.8rem;font-weight:850;display:inline-flex}.badge--paid{color:#0d5c3b;background:#e8f7ef}.badge--unpaid{color:#8a4d00;background:#fff3d8}.badge--neutral{color:#4a5668;background:#edf1f5}.inline-action{min-width:220px}.empty-state{color:var(--color-muted);text-align:center;background:var(--color-surface);border:1px dashed #aebccc;border-radius:18px;padding:42px}.registration-code{overflow-wrap:anywhere;color:var(--color-muted);font-size:.9rem}.admin-section,.round-card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:18px;padding:24px}.admin-section{margin-bottom:24px}.admin-actions-grid{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.round-list{gap:20px;display:grid}.round-card>header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.round-card .table-wrap{margin-top:18px}.round-card details{max-width:420px}.round-card summary{cursor:pointer;color:var(--color-primary);font-weight:800}.cabinet-shell,.standings-shell{gap:22px;width:min(1120px,100% - 32px);margin:0 auto;padding:42px 0 72px;display:grid}.cabinet-hero{color:#fff;background:var(--color-primary-dark);border-radius:22px;justify-content:space-between;align-items:center;gap:20px;padding:22px 26px;display:flex}.cabinet-hero__identity{align-items:center;gap:18px;display:flex}.cabinet-hero img{object-fit:contain;width:82px;height:82px}.cabinet-hero h1,.cabinet-hero p{margin:0}.cabinet-hero p{color:#ffffffc7;margin-top:5px}.cabinet-header{border:1px solid var(--color-border);background:#fff;border-radius:14px;justify-content:space-between;align-items:center;gap:12px 24px;min-height:62px;padding:10px 18px;display:flex}.cabinet-header h1{min-width:0;max-width:none;color:var(--color-primary-dark);flex:1;margin:0;font-size:clamp(1.05rem,1.6vw,1.35rem);line-height:1.3}.cabinet-header h1 span{font-weight:650}.cabinet-header form{flex:none}.cabinet-next-action{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;display:flex}.cabinet-next-action p{margin:0;font-size:1.05rem;font-weight:700}.current-match-card__round{color:var(--color-muted);margin:5px 0 0}.player-switcher{flex-wrap:wrap;gap:9px;display:flex}.player-chip{border:1px solid var(--color-border);color:var(--color-primary-dark);background:#fff;border-radius:999px;padding:9px 14px;font-weight:800;text-decoration:none}.player-chip--active{color:#fff;border-color:var(--color-accent);background:var(--color-accent)}.cabinet-notice{border-left:4px solid var(--color-success);background:#effaf5;border-radius:10px;margin:0;padding:12px 16px;font-weight:750}.player-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.player-summary>div{border:1px solid var(--color-border);background:#fff;border-radius:16px;padding:18px}.player-summary span,.match-facts dt{color:var(--color-muted);font-size:.82rem;font-weight:700;display:block}.match-facts dd{color:var(--color-primary-dark);margin:5px 0 0;font-size:1.1rem;font-weight:850}.player-summary strong{color:var(--color-primary-dark);margin-top:5px;font-size:1.2rem;display:block}.current-match-card{border:1px solid var(--color-border);border-top:7px solid var(--color-accent);background:#fff;border-radius:24px;padding:clamp(22px,5vw,42px);box-shadow:0 18px 45px #0b2d5217}.current-match-card__top,.history-list li,.result-actions{justify-content:space-between;align-items:center;gap:14px;display:flex}.current-match-card h2,.current-match-card h3{color:var(--color-primary-dark);margin:0}.match-status{color:var(--color-primary-dark);background:#e9f1fa;border-radius:999px;padding:7px 11px;font-size:.78rem;font-weight:850;display:inline-flex}.match-status--disputed{color:#8f1c14;background:#fff0ed}.match-status--completed,.match-status--result_confirmed,.match-status--technical_result{color:#0d5c3b;background:#e7f7ef}.opponent-block{color:#fff;background:var(--color-primary);border-radius:18px;margin:24px 0 18px;padding:22px}.opponent-block span,.opponent-block strong{color:inherit;margin:0}.opponent-block strong{margin-top:5px;font-size:clamp(1.45rem,4vw,2rem);display:block}.opponent-block a{color:#fff;margin-top:9px;font-weight:800;display:inline-block}.match-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0;display:grid}.match-facts>div{background:var(--color-background);border-radius:12px;padding:14px}.result-form,.confirmation-panel,.dispute-form{border-top:1px solid var(--color-border);gap:16px;margin-top:22px;padding-top:22px;display:grid}.result-form label,.dispute-form label{gap:8px;font-weight:750;display:grid}.game-result-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.result-preview{color:var(--color-primary-dark);margin:0;font-size:1.12rem;font-weight:850}.history-list,.standings-list{gap:12px;display:grid}.history-list{margin:0;padding:0;list-style:none}.history-list li{border:1px solid var(--color-border);background:#fff;border-radius:14px;padding:17px 18px}.history-list li small{margin:7px 0 0}.standings-row{border:1px solid var(--color-border);background:#fff;border-radius:14px;grid-template-columns:62px minmax(190px,1fr) repeat(4,minmax(80px,.4fr));align-items:center;gap:12px;padding:17px 18px;display:grid;position:relative}.standings-row--top{border-left:5px solid var(--color-success)}.standings-row--head{color:var(--color-muted);text-transform:uppercase;background:0 0;font-size:.78rem;font-weight:850}.standings-row small{color:var(--color-muted);display:block}.qualification-line{color:#fff;background:var(--color-accent);padding:3px 8px;font-size:.68rem;font-weight:850;position:absolute;top:-13px;right:0}.cabinet-actions,.button-row{flex-wrap:wrap;gap:12px;display:flex}.registration-link-actions{margin-top:18px}.registration-link-actions .notice-warning{color:var(--color-warning);margin:10px 0 0;font-weight:700}.registration-link-actions .form-note{min-height:1.4em;color:var(--color-success);margin:8px 0 0;font-weight:700}.match-scheduling{border:1px solid #063d912e;border-left:5px solid var(--color-primary);background:#f7faff;border-radius:16px;gap:14px;margin:22px 0;padding:22px;display:grid}.match-scheduling p,.match-scheduling h3{margin:0}.scheduled-time{gap:3px;display:grid}.scheduled-time strong{color:var(--color-primary-dark);font-size:clamp(1.25rem,4vw,1.75rem)}.scheduled-time span,.match-scheduling small,.field-hint{color:var(--color-muted)}.scheduling-form,.proposal-response{gap:14px;display:grid}.slot-grid{border:0;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:10px;margin:0;padding:0;display:grid}.slot-grid legend{grid-column:1/-1;margin-bottom:4px;font-weight:800}.slot-choice,.official-time-choice{cursor:pointer;background:#fff;border:1px solid #063d9133;border-radius:12px;align-items:center;gap:9px;padding:11px 12px;font-weight:750;display:flex}:is(.slot-choice:has(input:checked),.official-time-choice:has(input:checked)){border-color:var(--color-primary);color:var(--color-primary-dark);background:#063d9114}.official-time-choice{border-left:4px solid var(--color-accent);grid-column:1/-1}.regulations-content{max-width:880px;margin-inline:auto}.regulations-content h1,.regulations-content h2{color:var(--color-primary-dark)}.regulations-content h2{margin-top:30px}.regulations-content li+li{margin-top:8px}.schedule-picker,.round-window-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.schedule-picker label,.round-window-form label,.scheduling-admin-card label{gap:7px;font-weight:750;display:grid}.admin-filter{gap:9px;padding:3px 0 16px;display:flex;overflow-x:auto}.round-window-form{background:var(--color-background);border-radius:14px;margin:20px 0;padding:18px}.scheduling-admin-list{gap:14px;display:grid}.scheduling-admin-card{border:1px solid var(--color-border);background:#fff;border-radius:14px;gap:14px;padding:18px;display:grid}.scheduling-admin-card>div{justify-content:space-between;gap:12px;display:flex}.scheduling-admin-card dl{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;display:grid}.scheduling-admin-card dt{color:var(--color-muted);font-size:.78rem;font-weight:750}.scheduling-admin-card dd{margin:4px 0 0;font-weight:800}@media (max-width:820px){.site-header{align-items:flex-start;width:min(100% - 20px,680px);position:static}.site-header__brand span{margin:3px 0 0;display:block}.site-header nav{gap:10px;font-size:.86rem}.site-header nav a:not(.nav-cta){display:none}.shell{width:min(100% - 20px,680px);padding-top:10px}.hero,.readiness{grid-template-columns:1fr}.hero{border-radius:22px;min-height:auto;padding:30px 22px 22px}.hero__brand{border-radius:18px;order:-1;min-height:230px;padding:26px 18px}.readiness{padding:28px 22px}.page-shell,.page-shell--narrow,.page-shell--admin,.cabinet-shell,.standings-shell{width:min(100% - 20px,680px);padding-top:34px}.form-grid,.category-grid,.tournament-card-grid,.game-result-grid,.schedule-picker,.round-window-form,.scheduling-admin-card dl{grid-template-columns:1fr}.admin-top-nav{flex-wrap:nowrap;width:min(100% - 20px,680px);position:static;overflow-x:auto}.cabinet-hero,.cabinet-hero__identity,.current-match-card__top,.result-actions{flex-direction:column;align-items:stretch}.cabinet-hero img{width:66px;height:66px}.cabinet-header{flex-wrap:wrap}.player-summary,.match-facts{grid-template-columns:1fr}.player-switcher{flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.player-chip{flex:none}.standings-row{grid-template-columns:38px 1fr}.standings-row>span:not(:first-child),.standings-row>strong:not(:first-child){grid-column:2}.standings-row--head{display:none}.form-grid__wide{grid-column:auto}th,td{padding:13px 12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important}}.admin-meta-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.75rem;margin:1rem 0;display:grid}.admin-meta-grid div{border:1px solid var(--color-border);background:var(--color-background);border-radius:.75rem;padding:.75rem}.admin-meta-grid dt{color:var(--color-muted);font-size:.78rem}.admin-meta-grid dd{overflow-wrap:anywhere;margin:.25rem 0 0}.game-review-shell{width:min(1280px,100% - 1.5rem);padding:1.25rem 0 2rem}.review-heading{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.review-heading h1{margin:.1rem 0 .35rem}.review-heading p:last-child{color:var(--color-muted);margin:.2rem 0}.review-layout{grid-template-columns:minmax(300px,470px) minmax(0,1fr);align-items:start;gap:1.1rem;display:grid}.review-board-panel,.review-panel,.review-side,.review-state{border:1px solid var(--color-border);background:#fff;border-radius:16px;padding:1rem}.review-board-panel{position:sticky;top:1rem}.review-board-caption{min-height:2rem;color:var(--color-primary-dark);justify-content:space-between;gap:.7rem;font-weight:800;display:flex}.review-board{aspect-ratio:1;border:3px solid #51321c;border-radius:5px;grid-template-columns:repeat(8,1fr);width:100%;display:grid;overflow:hidden;container-type:inline-size}.review-square{place-items:center;min-width:0;min-height:0;display:grid}.review-square--light{background:#efd5a3}.review-square--dark{background:#8b5739}.review-square--last{box-shadow:inset 0 0 0 100px #ffd8523d}.review-square .chess-piece{place-items:center;width:92%;height:92%;display:grid}.review-square .reference-piece{width:100%;height:100%}.review-replay{grid-template-columns:repeat(4,1fr);gap:.5rem;margin-top:.55rem;display:grid}.review-replay button{border:1px solid var(--color-border);color:var(--color-primary-dark);cursor:pointer;background:#f5f8fc;border-radius:10px;min-height:46px;font-size:1.4rem}.review-replay button:hover,.review-replay button:focus-visible{outline:2px solid var(--color-primary);background:#e6efff}.review-main{gap:1rem;min-width:0;display:grid}.review-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.review-side{grid-template-columns:1fr auto;gap:.2rem .5rem;display:grid}.review-side h2{margin:.1rem 0;font-size:1.1rem}.review-side p{grid-column:1/-1;margin:.15rem 0;font-size:.87rem}.review-accuracy{color:var(--color-primary-dark);font-size:1.8rem}.review-counts{flex-wrap:wrap;grid-column:1/-1;gap:.25rem;display:flex}.quality{white-space:nowrap;color:#173866;background:#edf2fa;border-radius:7px;align-items:center;gap:.2rem;padding:.14rem .4rem;font-size:.75rem;font-weight:800;display:inline-flex}.quality--diamond{color:#006d77;background:#dff4f4}.quality--best{color:#11633a;background:#e3f3e8}.quality--strong{color:#1a5599;background:#e8f0ff}.quality--good{color:#33644a;background:#edf3ef}.quality--inaccuracy{color:#745000;background:#fff4d5}.quality--mistake{color:#9b400b;background:#ffe9d5}.quality--blunder{color:#a41e32;background:#ffe3e5}.quality--unanalyzed{color:#596373;background:#eceff3}.review-panel h2{margin:0 0 .65rem;font-size:1.18rem}.review-panel-heading{justify-content:space-between;gap:.5rem;display:flex}.review-graph{touch-action:manipulation;width:100%;height:auto;min-height:145px;display:block}.review-graph circle{cursor:pointer}.review-graph circle:focus-visible{outline:3px solid var(--color-accent)}.review-graph text{fill:#53627a;font-size:13px;font-weight:700}.review-hint,.review-disclaimer{color:var(--color-muted);font-size:.83rem}.review-moves{grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;max-height:240px;display:grid;overflow:auto}.review-move{border:1px solid var(--color-border);text-align:left;cursor:pointer;background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:.35rem;min-width:0;padding:.35rem .5rem;display:flex}.review-move--selected{border-color:var(--color-primary);background:#eef4ff}.review-move .quality{text-overflow:ellipsis;max-width:55%;overflow:hidden}.review-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;display:grid}.review-detail-grid>div{background:#f3f6fb;border-radius:9px;gap:.15rem;padding:.6rem;display:grid}.review-detail-grid span{color:var(--color-muted);font-size:.75rem}.review-detail-grid strong{color:var(--color-primary-dark);font-size:1.15rem}.review-alternatives{color:var(--color-muted);font-size:.85rem}.review-state{gap:.65rem;max-width:650px;display:grid}.review-state .button{width:max-content}.review-spinner{border:3px solid #dce6f5;border-top-color:var(--color-primary);border-radius:50%;width:26px;height:26px;animation:.8s linear infinite review-spin}@keyframes review-spin{to{transform:rotate(360deg)}}@media (max-width:900px){.review-layout{grid-template-columns:minmax(0,1fr)}.review-board-panel{width:min(100%,570px);margin:0 auto;position:static}.review-main{width:100%}}@media (max-width:620px){.game-review-shell{width:calc(100% - .75rem);padding:.6rem 0 1.5rem}.review-heading{align-items:center}.review-heading h1{font-size:1.5rem}.review-heading>.button{padding:.5rem;font-size:.78rem}.review-board-panel{padding:.55rem}.review-board-caption{font-size:.83rem}.review-panel,.review-side{padding:.7rem}.review-summary{gap:.4rem}.review-side{grid-template-columns:1fr}.review-accuracy{font-size:1.45rem}.review-counts .quality{font-size:.68rem}.review-moves{grid-template-columns:1fr;max-height:300px}.review-detail-grid strong{font-size:.95rem}.review-graph{min-height:105px}}.board-wrap,.review-board-panel{min-width:0;min-height:0}.chess-board,.review-board{box-sizing:border-box;aspect-ratio:1;grid-template-rows:repeat(8,minmax(0,1fr));grid-template-columns:repeat(8,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);width:100%;min-width:0;height:auto;min-height:0;display:grid}.board-square,.review-square{box-sizing:border-box;min-width:0;min-height:0;overflow:hidden}.board-square .chess-piece,.review-square .chess-piece{box-sizing:border-box;place-self:center;min-width:0;max-width:100%;min-height:0;max-height:100%}.review-square .chess-piece{width:88%;height:88%}.reference-piece,.staunton-piece{max-width:100%;max-height:100%;display:block;overflow:hidden}.piece-set--staunton .chess-piece{filter:drop-shadow(0 1px 1px #18141061);width:88%;height:88%;transform:none}.staunton-piece{filter:drop-shadow(1px 1px 1px #1713115c);width:100%;height:100%}.staunton-piece--white{fill:#faf8ef;stroke:#24211e;stroke-width:1.7px}.staunton-piece--black{fill:#202226;stroke:#f8f1df;stroke-width:1.45px}.staunton-piece .staunton-detail{fill:none;stroke-width:1.2px}.staunton-piece--white .staunton-detail{stroke:#5a5147}.staunton-piece--black .staunton-detail{stroke:#e5d9c5}.staunton-piece--white .staunton-eye{fill:#24211e;stroke:none}.staunton-piece--black .staunton-eye{fill:#f8f1df;stroke:none}.drag-ghost:has(.staunton-piece){width:64px;height:64px;display:block}.board-theme--classic_wood_staunton{--board-light:#e6c99a;--board-dark:#906847;--coord-light:#583d29;--coord-dark:#fff3dc;border-color:#60442f}.board-theme--classic_wood_staunton .board-square--light{background-image:linear-gradient(115deg,#ffffff1c,#0000 60%)}.board-theme--classic_wood_staunton .board-square--dark{background-image:linear-gradient(115deg,#311b0f0f,#0000 65%)}.review-square{position:relative}.review-square:before,.review-square:after{z-index:2;pointer-events:none;font-size:clamp(.45rem,1.7cqi,.68rem);font-weight:900;line-height:1;position:absolute}.review-square:before{content:attr(data-rank);top:2px;left:2px}.review-square:after{content:attr(data-file);bottom:2px;right:2px}.review-square--light:before,.review-square--light:after{color:#68492f}.review-square--dark:before,.review-square--dark:after{color:#fff0d2}.tournament-catalog__section h2{color:var(--color-primary-dark);font-size:clamp(1.5rem,3vw,2rem)}.tournament-catalog__empty{border:1px dashed var(--color-border);color:var(--color-muted);background:#fff;border-radius:14px;padding:1rem 1.25rem}.tournament-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));align-items:stretch;gap:1rem;display:grid}.tournament-card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:18px;flex-direction:column;min-width:0;padding:1.35rem;display:flex;box-shadow:0 8px 26px #021b430f}.tournament-card__top{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.tournament-card__top .section-kicker{margin:0}.tournament-card__top .badge{flex:none}.tournament-card h3{color:var(--color-primary-dark);overflow-wrap:anywhere;margin:.9rem 0 1rem;font-size:1.45rem;line-height:1.16}.tournament-card__facts,.tournament-detail__facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin:0;display:grid}.tournament-card__facts>div,.tournament-detail__facts>div{background:#f3f7fc;border-radius:10px;min-width:0;padding:.65rem .75rem}.tournament-card__facts dt,.tournament-detail__facts dt{color:var(--color-muted);font-size:.76rem;font-weight:750}.tournament-card__facts dd,.tournament-detail__facts dd{overflow-wrap:anywhere;margin:.12rem 0 0;font-weight:850}.tournament-card__groups{color:var(--color-muted);margin:1rem 0 .55rem;line-height:1.5}.tournament-card__groups strong{color:var(--color-text)}.tournament-card__join{color:var(--color-primary-dark);margin:auto 0 1rem;padding-top:.7rem;font-weight:800}.tournament-card .button-row{margin:0}.tournament-card .button-row .button{text-align:center;flex:1;min-width:0}.tournament-detail__groups{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:.75rem;display:grid}.tournament-detail__groups .category-card{margin:0}.tournament-detail__links{flex-wrap:wrap;gap:.75rem;margin:1.5rem 0;display:flex}.tournament-detail__links a{border:1px solid var(--color-border);background:#fff;border-radius:10px;align-items:center;min-height:44px;padding:.7rem 1rem;font-weight:800;text-decoration:none;display:inline-flex}.home-section-heading{justify-content:space-between;align-items:end;gap:1rem;display:flex}.home-section-heading h2{margin:0}.tournament-catalog__footer{margin:2rem 0}@media (max-width:820px){.site-header nav a:not(.nav-cta){display:inline-flex}.site-header nav{flex-wrap:wrap;justify-content:flex-end}.tournament-grid{grid-template-columns:1fr}}@media (max-width:600px){.site-header{flex-wrap:wrap;gap:8px;min-height:0}.site-header nav{justify-content:space-between;gap:6px;width:100%;font-size:.84rem}.site-header nav a{align-items:center;min-height:40px;display:inline-flex}.site-header__brand{font-size:.98rem}.tournament-card{padding:1rem}.tournament-card__facts,.tournament-detail__facts{grid-template-columns:1fr 1fr}.tournament-card .button-row{flex-wrap:wrap}.home-section-heading{flex-direction:column;align-items:flex-start}.home-section-heading .button{min-height:42px}}@media (max-width:380px){.tournament-card__facts,.tournament-detail__facts{grid-template-columns:1fr}}.standings-row__mobile-meta,.nav-cta__mobile{display:none}@media (max-width:600px){.environment-banner{letter-spacing:.02em;padding:.22rem .5rem;font-size:.62rem;line-height:1.25}.site-header{z-index:30;flex-wrap:nowrap;align-items:center;gap:6px;width:calc(100% - 20px);min-height:0;padding:5px 0;position:sticky;top:0}.site-header__brand{flex:none;font-size:.83rem;line-height:1.1}:is(.site-header nav,.site-header:has(.nav-cta) nav){flex-wrap:nowrap;flex:1;justify-content:flex-end;gap:5px;width:auto;font-size:.75rem}.site-header nav a{min-height:38px}.site-header .nav-cta{padding:7px 8px}.nav-cta__desktop{display:none}.nav-cta__mobile{display:inline}.shell{padding:8px 0 32px}.hero{border-radius:18px;min-height:0;padding:20px 18px;display:block}.hero__brand{display:none}.hero h1{max-width:none;margin:0 0 6px;font-size:clamp(2.15rem,10vw,2.65rem);line-height:1.02}.hero .eyebrow{margin-bottom:8px}.hero .lead{margin-bottom:14px;font-size:1rem;line-height:1.35}.hero__actions{gap:8px;margin-top:10px}.hero__actions .button{min-height:44px;padding:9px 8px;font-size:.78rem}.readiness{border-radius:16px;gap:14px;margin-top:16px;padding:18px}.readiness h2{font-size:1.32rem;line-height:1.18}.readiness li{padding:10px 12px 10px 36px;font-size:.86rem}.readiness li:before{top:9px;left:12px}.page-shell,.page-shell--narrow,.cabinet-shell,.standings-shell{padding-top:12px;padding-bottom:36px}.page-heading{margin-bottom:16px}.page-heading .section-kicker,.section-kicker,.eyebrow{letter-spacing:.09em;margin-bottom:5px;font-size:.65rem;line-height:1.2}.page-heading h1{letter-spacing:-.04em;margin-bottom:7px;font-size:clamp(1.85rem,7vw,2.25rem);line-height:1.08}.page-heading>p:not(.section-kicker){margin-bottom:10px;font-size:.88rem;line-height:1.4}.page-heading>a:not(.button){font-size:.8rem}.tournament-catalog__section{margin:18px 0}.tournament-catalog__section h2,.home-section-heading h2{margin-bottom:8px;font-size:1.28rem}.tournament-card{border-radius:15px;gap:9px;padding:14px}.tournament-card h3{margin:3px 0;font-size:1.18rem}.tournament-card__facts,.tournament-detail__facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.tournament-card__facts>div,.tournament-detail__facts>div{padding:7px 9px}.tournament-card__facts dt,.tournament-detail__facts dt{font-size:.68rem}.tournament-card__facts dd,.tournament-detail__facts dd{font-size:.85rem}.tournament-card__groups{margin:4px 0;font-size:.83rem;line-height:1.3}.tournament-card__join{margin:0;padding-top:0;font-size:.84rem}.home-section-heading{gap:5px}.home-section-heading .button{min-height:38px;padding:7px 10px;font-size:.8rem}.tournament-detail__links{gap:6px;margin:12px 0}.tournament-detail__links a{padding:7px 10px;font-size:.8rem}.tournament-detail .admin-section{padding:16px}.cabinet-shell{gap:9px}.cabinet-header{flex-wrap:nowrap;gap:8px;min-height:0;padding:9px 11px}.cabinet-header h1{font-size:1rem;line-height:1.15}.cabinet-header h1 span{color:var(--color-muted);margin-top:2px;font-size:.73rem;font-weight:650;line-height:1.22;display:block}.cabinet-header .button{min-height:36px;padding:6px 9px;font-size:.76rem}.cabinet-actions{gap:6px}.cabinet-actions .button{min-height:38px;padding:7px 10px;font-size:.78rem}.player-switcher{gap:6px;padding:0}.player-chip{padding:7px 10px;font-size:.78rem}.player-summary{grid-template-columns:minmax(0,1.6fr) minmax(0,.7fr) minmax(0,.7fr);gap:5px}.player-summary>div{border-radius:10px;min-width:0;padding:8px}.player-summary span,.match-facts dt{font-size:.67rem}.player-summary strong{overflow-wrap:anywhere;margin-top:2px;font-size:.92rem;line-height:1.18}.player-summary small{margin-top:2px;font-size:.65rem;line-height:1.15;display:block}.current-match-card{box-shadow:none;border-top-width:4px;border-radius:15px;padding:14px}.current-match-card__top{gap:6px}.current-match-card h2{font-size:1.15rem}.current-match-card__round{margin:1px 0 0;font-size:.76rem}.match-status{padding:4px 7px;font-size:.68rem}.cabinet-next-action{gap:7px;margin-top:9px}.cabinet-next-action p{font-size:.9rem;line-height:1.3}.cabinet-next-action .button{min-height:40px}.opponent-block{border-radius:10px;margin:12px 0 9px;padding:11px 12px}.opponent-block strong{margin-top:2px;font-size:1.15rem}.opponent-block a{margin-top:4px;font-size:.8rem}.match-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:9px 0}.match-facts>div{padding:8px}.match-facts dd{margin-top:2px;font-size:.9rem}.match-scheduling{gap:9px;margin:11px 0;padding:12px}.game-room-launch{margin:10px 0;padding:12px}.game-launch-list{gap:6px;margin:8px 0}.game-launch-list>div{gap:8px;padding:8px}.history-section{gap:8px}.history-list{gap:6px}.history-list li{gap:5px;padding:10px 12px;font-size:.82rem}.standings-list{gap:5px}.standings-row{border-radius:10px;grid-template-rows:auto auto;grid-template-columns:30px minmax(0,1fr) 40px;gap:2px 6px;padding:8px 10px;font-size:.86rem;line-height:1.2}.standings-row>.standings-row__place{color:var(--color-primary-dark);grid-area:1/1/3;align-self:center;font-size:1rem}.standings-row>.standings-row__name{overflow-wrap:anywhere;grid-area:1/2;min-width:0;font-weight:800}.standings-row>.standings-row__points{text-align:right;color:var(--color-primary-dark);grid-area:1/3;font-size:1rem}.standings-row>.standings-row__wins,.standings-row>.standings-row__buchholz,.standings-row>.standings-row__status{display:none}.standings-row>.standings-row__mobile-meta{color:var(--color-muted);grid-area:2/2/auto/4;font-size:.7rem;line-height:1.2;display:block}.qualification-line{font-size:.57rem;top:-8px}.public-participants-table,.public-participants-table tbody{width:100%;display:block}.public-participants-table thead{display:none}.public-participants-table tr{border:1px solid var(--color-border);background:#fff;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;margin-bottom:6px;padding:9px 11px;display:grid}.public-participants-table td{overflow-wrap:anywhere;border:0;min-width:0;padding:0;font-size:.78rem;display:block}.public-participants-table td:first-child{grid-column:1/3;font-size:.9rem}.public-participants-table td:nth-child(2){color:var(--color-muted)}.public-participants-table td:nth-child(3){text-align:right}.public-pairings-table,.public-pairings-table tbody{width:100%;display:block}.public-pairings-table thead{display:none}.public-pairings-table tr{border:1px solid var(--color-border);background:#fff;border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 8px;margin-bottom:6px;padding:9px 11px;display:grid}.public-pairings-table td{overflow-wrap:anywhere;border:0;min-width:0;padding:0;font-size:.78rem;display:block}.public-pairings-table td:first-child,.public-pairings-table td:nth-child(2){font-size:.86rem;font-weight:750}.public-pairings-table td:nth-child(2){text-align:right}.public-pairings-table td:last-child{color:var(--color-muted);grid-column:1/3}.game-review-shell{padding-top:8px}.review-heading{gap:6px;margin-bottom:8px}.review-heading h1{font-size:1.32rem}.review-board-panel{padding:6px}.review-main{gap:9px}.review-panel,.review-side{padding:10px}body:has(.game-shell) .site-header{position:static}.chess-board .board-square{touch-action:none;-webkit-user-select:none;user-select:none}}body{background:linear-gradient(180deg,#f7fafb 0,#f1f5f6 42rem,var(--color-background) 100%)}.site-header{border-bottom:1px solid var(--color-border);background:#f7fafbf5}.site-header__brand{letter-spacing:-.035em;font-weight:950}.nav-cta,.button--primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.nav-cta:hover,.button--primary:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark);color:#fff}.button--secondary{color:var(--color-primary-dark);border-color:var(--color-border);background:#fff}.button--secondary:hover{background:var(--color-neutral-100);border-color:var(--color-secondary)}.button--danger{background:var(--color-danger);border-color:var(--color-danger)}.button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid var(--color-gold);outline-offset:2px}.eyebrow,.section-kicker{color:var(--color-accent);letter-spacing:.09em}.badge,.match-status{font-size:var(--text-caption);font-weight:800}.badge--neutral{background:var(--color-neutral-100);color:var(--color-neutral-700)}.form-card,.success-card,.admin-section,.round-card,.current-match-card,.tournament-card,.review-panel,.review-side,.review-board-panel{box-shadow:0 4px 16px #102c3d0a}.form-card{border-radius:var(--radius-lg);padding:clamp(18px,3vw,30px)}.form-grid{gap:var(--space-4)}.form-card fieldset{margin-bottom:var(--space-6)}.page-shell{padding-top:26px}.page-heading{margin-bottom:20px}.page-heading h1{margin-bottom:8px;font-size:clamp(2rem,5vw,3.3rem);line-height:1.02}.page-heading>p:not(.section-kicker){margin-bottom:12px;font-size:.96rem;line-height:1.45}.shell--home{width:min(1100px,100% - 32px);padding-top:26px}.shell--home .hero{border-radius:var(--radius-lg);min-height:350px;box-shadow:var(--shadow-soft);background:linear-gradient(112deg,#102c3d 0%,#174963 64%,#235e7c 100%);border:1px solid #2c5e78;align-items:center;padding:clamp(28px,5vw,54px);display:flex}.shell--home .hero__content{max-width:760px}.shell--home .hero .eyebrow{color:#ffd16c}.shell--home .hero h1{color:#fff;max-width:none;margin-bottom:10px;font-size:clamp(2.8rem,6vw,4.8rem);line-height:1.01}.shell--home .hero .lead{color:#e5eff3;margin-bottom:14px;font-size:clamp(1rem,1.5vw,1.25rem);line-height:1.4}.shell--home .hero__actions{margin-top:20px}.shell--home .hero .button--primary{background:var(--color-gold);border-color:var(--color-gold);color:var(--color-primary-dark)}.shell--home .hero .button--primary:hover{background:#ffca52;border-color:#ffca52}.shell--home .hero .button--secondary{color:#fff;background:#ffffff14;border-color:#91aebb}.shell--home .hero .button--secondary:hover{background:#ffffff2e}.tournament-catalog__section{margin:18px 0}.tournament-card{border-radius:var(--radius-md);gap:8px;padding:18px}.tournament-card h3{font-size:var(--text-h3);margin:4px 0 8px;line-height:1.16}.tournament-card__facts,.tournament-detail__facts{gap:6px}.tournament-card__facts>div,.tournament-detail__facts>div{background:var(--color-neutral-50);padding:8px 10px}.tournament-card__facts dt,.tournament-detail__facts dt{font-size:var(--text-caption)}.tournament-card__facts dd,.tournament-detail__facts dd{font-size:.91rem}.tournament-card__groups{margin:3px 0;font-size:.87rem;line-height:1.35}.tournament-card__join{margin:0 0 4px;padding-top:0;font-size:.84rem}.tournament-card .button-row .button{min-height:42px;padding:8px 10px}.cabinet-shell{gap:12px;padding-top:16px}.cabinet-header{min-height:56px;padding:10px 14px}.cabinet-header h1{font-size:clamp(1.05rem,1.8vw,1.3rem)}.cabinet-actions{gap:8px}.current-match-card{border-top-color:var(--color-gold)}.current-match-card h2{font-size:var(--text-h3)}.cabinet-next-action p{color:var(--color-primary-dark);font-size:1rem;font-weight:800}.tournament-card--action{border-left:4px solid var(--color-gold)}.history-list{gap:8px}.history-list li{padding:10px 14px}.game-presence{color:var(--color-muted);white-space:nowrap;align-items:center;gap:7px;font-size:.7rem;font-weight:800;display:none}.game-presence span+span:before{content:"·";color:var(--color-gold);margin-right:7px}.game-shell .game-sidebar{border-radius:var(--radius-md)}.game-shell .game-controls .button{min-height:44px}.game-review-shell .review-board-panel{border-top:3px solid var(--color-gold)}.page-shell--admin{padding-top:18px}.page-shell--admin .page-heading{max-width:none;margin-bottom:14px}.page-shell--admin .page-heading h1{font-size:clamp(1.9rem,3.4vw,2.8rem)}.page-shell--admin .page-heading>p:not(.section-kicker){font-size:.9rem;line-height:1.35}.admin-top-nav{background:0 0;gap:3px;padding:6px 0;position:static}.admin-top-nav a{padding:7px 9px;font-size:.82rem}.page-shell--admin .admin-section,.page-shell--admin .round-card{border-radius:var(--radius-md);padding:16px}.page-shell--admin .round-list{gap:10px}.page-shell--admin .round-card h2,.page-shell--admin .admin-section h2{font-size:var(--text-h2);line-height:1.18}.page-shell--admin .admin-meta-grid{gap:8px}.page-shell--admin .admin-meta-grid div{padding:9px 11px}.page-shell--admin #create-tournament{margin-bottom:12px}.page-shell--admin #create-tournament summary{color:var(--color-primary-dark);cursor:pointer;font-weight:850}.page-shell--admin #create-tournament .form-card{box-shadow:none;margin-top:12px}.page-shell--admin nav.admin-filter{gap:6px;margin-bottom:12px}.page-shell--admin nav.admin-filter .player-chip{padding:8px 10px;font-size:.8rem}.page-shell--admin th,.page-shell--admin td{padding:8px 10px}@media (max-width:600px){.site-header{background:#f7fafbf7}.shell--home{width:calc(100% - 20px);padding:10px 0 32px}.shell--home .hero{border-radius:16px;min-height:0;padding:22px 18px 20px;display:block}.shell--home .hero h1{font-size:clamp(2rem,10vw,2.55rem);line-height:1.02}.shell--home .hero .lead{margin-bottom:12px;font-size:.94rem}.shell--home .hero__actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:15px;display:grid}.shell--home .hero__actions .button{width:100%;min-height:44px;padding:8px 6px;font-size:.82rem}.shell--home .hero__actions .button:first-child{grid-column:1/-1}.page-shell{padding-top:12px}.tournament-card{gap:7px;padding:13px}.tournament-card__facts{grid-template-columns:repeat(2,minmax(0,1fr))}.tournament-card__facts>div{padding:6px 8px}.tournament-card__facts dd{font-size:.82rem}.cabinet-shell{padding-top:10px}.cabinet-next-action .button{min-height:44px}.game-presence{display:flex}.game-sidebar-top{gap:4px;min-height:40px}.game-identity h1{text-overflow:ellipsis;white-space:nowrap;max-width:25ch;font-size:.91rem;overflow:hidden}.game-header-actions{gap:6px}.game-settings{top:42px}.game-controls .button{min-height:44px}.page-shell--admin .page-heading{margin-bottom:10px}.page-shell--admin .page-heading h1{font-size:1.75rem}.page-shell--admin .admin-section,.page-shell--admin .round-card{padding:12px}.page-shell--admin nav.admin-filter{scrollbar-width:thin;flex-wrap:nowrap;overflow-x:auto}.page-shell--admin nav.admin-filter .player-chip{flex:none;min-height:40px}.admin-top-nav{scrollbar-width:thin;flex-wrap:nowrap;overflow-x:auto}.admin-top-nav a{flex:none;align-items:center;min-height:40px;display:inline-flex}.review-heading h1{font-size:1.27rem}.review-summary{gap:6px}}.cburnett-piece{object-fit:contain;filter:none;width:100%;height:100%;box-shadow:none;outline:0;display:block}.chess-piece:has(.cburnett-piece){width:92%;height:92%;text-shadow:none}.review-square .chess-piece:has(.cburnett-piece){width:92%;height:92%}.drag-ghost:has(.cburnett-piece){filter:none;width:clamp(42px,7vw,78px);height:clamp(42px,7vw,78px)}.promotion-dialog button:not(.button) .cburnett-piece{width:100%;height:100%}.standings-row--own{box-shadow:inset 4px 0 var(--color-primary);background:#e9f2f7}.standings-row__name .badge{margin-left:.4rem}.site-header nav form{margin:0}.site-header nav form .button{padding:.4rem .6rem}.luna-shell{color:#eef6ff;background:radial-gradient(circle at 50% 8%,#457bad52,#0000 36%),linear-gradient(#10172b 0%,#060912 68%,#02040a 100%);place-items:center;min-height:100dvh;padding:18px;display:grid}.luna-card{text-align:center;background:linear-gradient(155deg,#16223bf5,#050a16fa);border:1px solid #77d5ff4d;border-radius:24px;width:min(100%,430px);padding:24px;box-shadow:0 26px 80px #0000008c,inset 0 1px #ffffff14}.luna-card h1{color:#fff;margin:.35rem 0 .5rem;font-size:clamp(1.8rem,8vw,2.7rem);line-height:1.02}.luna-card h2{color:#fff}.luna-kicker{color:#8fe7ff;letter-spacing:.16em;margin:0;font-size:.72rem;font-weight:900}.luna-subtitle{color:#aebbd0}.luna-choice-grid{grid-template-columns:1fr 1fr;gap:12px;margin:24px 0;display:grid}.luna-choice,.luna-levels button{color:#eef8ff;cursor:pointer;background:#091327d1;border:1px solid #7edbff40;border-radius:18px;place-items:center;gap:6px;min-height:150px;padding:14px;display:grid}.luna-choice:hover,.luna-levels button:hover{background:#163754e6;border-color:#8fe7ff}.luna-choice>span{color:#f3cf77;font-size:2.4rem}.luna-choice strong{font-size:1rem}.luna-choice small,.luna-levels small{color:#9eafc8}.luna-button{color:#eaf8ff;cursor:pointer;background:0 0;border:1px solid #84daff59;border-radius:999px;justify-content:center;align-items:center;min-height:46px;margin:6px;padding:10px 16px;font-weight:900;text-decoration:none;display:inline-flex}.luna-button--primary{color:#11182a;background:linear-gradient(135deg,#e1bd60,#fff0ad);border-color:#f4d478}.luna-levels{grid-template-columns:repeat(5,1fr);gap:6px;margin:18px 0;display:grid}.luna-levels button{min-height:104px;padding:8px 4px}.luna-levels b{color:#11182a;background:#d7b85f;border-radius:50%;place-items:center;width:30px;height:30px;display:grid}.luna-levels span{font-size:.7rem;font-weight:900}.luna-levels small{font-size:.65rem}.luna-waiting{place-items:center;gap:8px;display:grid}.luna-orbit{border:3px solid #76dfff2e;border-top-color:#8fe7ff;border-radius:50%;width:74px;height:74px;margin:18px;animation:1.1s linear infinite luna-spin}.luna-waiting>strong{color:#f3cf77;font-size:2rem}@keyframes luna-spin{to{transform:rotate(360deg)}}.board-theme--luna-prima{background:#091226;border-color:#4d7898;box-shadow:0 0 0 1px #79deff38,0 22px 64px #00000075}.board-theme--luna-prima .board-square--light{background:linear-gradient(145deg,#bccbd1,#829aa7)}.board-theme--luna-prima .board-square--dark{background:linear-gradient(145deg,#193950,#10283d)}.board-theme--luna-prima .board-square--selected{box-shadow:inset 0 0 0 5px #f0c85f}.board-theme--luna-prima .board-square--legal:after{background:#83edff;box-shadow:0 0 12px #4ddfff}.board-theme--luna-prima .board-square--last{box-shadow:inset 0 0 0 4px #f7d673b8}.board-theme--luna-prima .board-square--check{background:#a82f4d}.luna-piece{filter:drop-shadow(0 3px 2px #00000073);width:96%;height:96%;display:block}.chess-piece:has(.luna-piece){width:95%;height:95%}@media (max-width:600px){:is(body:has(.luna-shell),body:has(.board-theme--luna-prima)){background:#050914}.luna-shell{padding:10px}.luna-card{border-radius:20px;padding:20px 14px}.luna-choice{min-height:132px}.luna-levels{grid-template-columns:repeat(3,1fr)}body:has(.board-theme--luna-prima) .site-header{display:none}body:has(.board-theme--luna-prima) .game-shell{width:100%;padding:0 0 18px}body:has(.board-theme--luna-prima) .game-layout{gap:6px}body:has(.board-theme--luna-prima) .game-sidebar{color:#eaf5ff;background:#0b1425;border-color:#75dcff33}body:has(.board-theme--luna-prima) .clock-card{color:#f4f8ff;background:#111e32;border-color:#75dcff40}}.notification-opt-in,.notification-item,.public-pairing-row,.spectator-clock{border:1px solid var(--color-border);background:#fff;border-radius:14px;justify-content:space-between;align-items:center;gap:1rem;min-width:0;padding:1rem;display:flex}.notification-opt-in{background:#f5f9ff;margin:1rem 0}.notification-opt-in p,.notification-item p{margin:.25rem 0}.notification-list,.public-pairings-list{gap:.6rem;display:grid}.notification-item--unread{border-left:5px solid var(--color-primary)}.notification-item h2{margin:.2rem 0;font-size:1.05rem}.notification-item>div,.public-pairing-row>div{min-width:0}.public-pairing-row span,.public-pairing-row small{overflow-wrap:anywhere;display:block}.public-pairing-row strong{white-space:nowrap}.public-pairing-row{align-items:flex-start}.spectator-page{max-width:760px}.spectator-game{max-width:620px;margin:1rem auto}.spectator-game h2{font-size:1.2rem}.spectator-board{width:100%;max-width:620px}.spectator-board .board-square{cursor:default}.spectator-clock{border-radius:0;padding:.55rem .8rem}.spectator-results{margin:1rem 0}@media (max-width:620px){.notification-opt-in,.notification-item{flex-direction:column;align-items:flex-start}.public-pairing-row{gap:.5rem;padding:.75rem}.public-pairing-row .button{flex:none}.spectator-page{padding-inline:.5rem}.spectator-board{border-width:3px}}body:has(.luna-room-shell){background:#020710;overflow:hidden}:is(body:has(.luna-room-shell) .site-header,body:has(.luna-room-shell) .environment-banner){display:none}.luna-room-shell{color:#eef6ff;height:100svh;min-height:100svh;font-family:var(--font-sans);letter-spacing:.02em;background:#020710;overflow:hidden}.luna-room-app{isolation:isolate;width:min(100%,560px);height:100svh;padding:env(safe-area-inset-top) 8px max(4px,env(safe-area-inset-bottom));background:linear-gradient(#010812b3,#01060ef0),url(/luna-prima/game-room-bg.png) 50%/cover no-repeat;flex-direction:column;margin:0 auto;display:flex;position:relative;overflow:hidden;box-shadow:0 0 70px #000}.luna-room-app:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(90deg,#67caff14,#0000 9% 91%,#67caff14),radial-gradient(circle at 50% 22%,#0000,#00000061 68%);position:absolute;inset:0}.luna-room-header{text-align:center;text-transform:uppercase;flex:0 0 88px}.luna-brand-row{border-bottom:1px solid #bee0f22e;grid-template-columns:44px 1fr 44px;align-items:center;height:38px;display:grid}.luna-brand-row>a,.luna-brand-row>button{color:#eef6ff;cursor:pointer;background:0 0;border:0;place-items:center;width:36px;height:34px;padding:0;font-size:2rem;text-decoration:none;display:grid}.luna-brand-row>strong{letter-spacing:.27em;font-size:.78rem;font-weight:700}.luna-brand-row>strong span{margin-right:.45rem;font-size:1.05rem}.luna-brand-row>button{justify-self:end;gap:4px}.luna-brand-row>button i{background:#e8f3f8;width:22px;height:1px;display:block}.luna-room-header>p{color:#b8cfda;letter-spacing:.58em;margin:5px 0 0;font-size:.54rem;font-weight:800}.luna-room-header>h1{color:#fff;letter-spacing:.04em;text-shadow:0 0 13px #aae2ff8c;margin:-1px 0;font-size:clamp(1.65rem,8.6vw,2.75rem);font-weight:950;line-height:1}.luna-room-header>span{color:#e9eef1;letter-spacing:.5em;margin-top:2px;font-size:.49rem;font-weight:800;display:block}.luna-player-card{clip-path:polygon(12px 0,calc(100% - 12px) 0,100% 12px,100% calc(100% - 12px),calc(100% - 12px) 100%,12px 100%,0 calc(100% - 12px),0 12px);background:linear-gradient(100deg,#08111bf7,#0e1822e0);border:1px solid #dfbb69b8;flex:0 0 68px;grid-template-columns:54px minmax(0,1fr) 104px;align-items:center;gap:7px;margin:1px 3px 5px;padding:6px 17px 6px 8px;display:grid;position:relative;box-shadow:inset 0 0 17px #dfbb691a,0 4px 16px #00000080}.luna-player-card--self{border-color:#81d6ffd1;box-shadow:inset 0 0 17px #4cc1ff24,0 0 12px #279be02e}.luna-player-card.is-active{filter:brightness(1.12)}.luna-player-card.is-low-time .luna-clock{color:#fff;background:#681420;border-color:#ff5a64;animation:.8s ease-in-out infinite alternate luna-low-time;box-shadow:0 0 16px #ff2c3e94}@keyframes luna-low-time{0%{background:#4b1019;box-shadow:0 0 7px #ff2c3e59}to{background:#a71928;box-shadow:0 0 22px #ff2c3ed1}}.luna-player-avatar{color:#e4bd66;background:radial-gradient(circle,#223341,#07111c 68%);border:1px solid;border-radius:50%;place-items:center;width:48px;height:48px;display:grid;box-shadow:0 0 9px}.luna-player-card--self .luna-player-avatar{color:#8edcff}.luna-player-avatar span{text-shadow:0 0 8px;font-size:1.35rem}.luna-player-copy{min-width:0;line-height:1.1}.luna-player-copy strong,.luna-player-copy span,.luna-player-copy small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.luna-player-copy strong{color:#fff;font-size:.88rem}.luna-player-copy span{color:#e8c16d;letter-spacing:.22em;margin-top:5px;font-size:.49rem;font-weight:900}.luna-player-card--self .luna-player-copy span{color:#8ddcff}.luna-player-copy small{color:#aab9c4;margin-top:4px;font-size:.48rem}.luna-clock{clip-path:polygon(9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 9px);background:#01080fad;border:1px solid #d9b66766;align-self:stretch;place-items:center;padding:5px;display:grid}.luna-player-card--self .luna-clock{border-color:#7fd2ff5c}.luna-clock>strong{letter-spacing:.08em;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.34rem;font-weight:600}.luna-clock>span{letter-spacing:.17em;font-size:.43rem;font-weight:800}.luna-clock i,.luna-status-panel i{background:#6dff88;border-radius:50%;width:7px;height:7px;margin-right:5px;display:inline-block;box-shadow:0 0 8px #58ff78}.luna-card-menu{color:#fff;cursor:pointer;background:0 0;border:0;padding:0;font-size:1.15rem;line-height:1;position:absolute;top:3px;right:3px}.luna-board-frame{aspect-ratio:1;clip-path:polygon(12px 0,calc(100% - 12px) 0,100% 12px,100% calc(100% - 12px),calc(100% - 12px) 100%,12px 100%,0 calc(100% - 12px),0 12px);background:linear-gradient(145deg,#203646,#07131e);border:1px solid #a2dcf9bd;flex:none;align-self:center;width:min(100% - 4px,100svh - 434px);margin:0 0 3px;padding:5px;box-shadow:0 0 0 2px #95d3f41f,0 0 18px #50beff33}.luna-board-frame .board-wrap,.luna-board-frame .chess-board{width:100%;height:100%}.luna-board-frame .chess-board{border:0;box-shadow:inset 0 0 0 1px #ffffff38}.luna-board-frame .board-square{touch-action:none}.luna-board-frame .board-square--light{background:linear-gradient(145deg,#c8cdd0,#929b9f)}.luna-board-frame .board-square--dark{background:linear-gradient(145deg,#26323a,#111a21)}.luna-board-frame .board-square--selected{box-shadow:inset 0 0 0 2px #7fe3ff,0 0 14px #4acbff}.luna-board-frame .board-square--last{box-shadow:inset 0 0 0 2px #6fd3ffd1}.luna-board-frame .chess-piece:has(.luna-piece){width:100%;height:100%}.luna-board-frame .luna-piece{object-fit:contain;width:100%;height:100%;transform:scale(1.01)}.luna-board-frame .luna-piece--white{filter:drop-shadow(0 2px 1px #000000b8)}.luna-board-frame .luna-piece--black{filter:drop-shadow(1px 0 #d8f3ff)drop-shadow(-1px 0 #d8f3ff)drop-shadow(0 1px #d8f3ff)drop-shadow(0 -1px #d8f3ff)drop-shadow(0 2px 1px #000)}.luna-board-meta{color:#b9d2de;flex:0 0 27px;grid-template-columns:minmax(0,1fr) minmax(86px,.75fr);align-items:center;gap:6px;margin:0 3px 3px;display:grid}.luna-replay-controls{background:#020a12cc;border:1px solid #7fc9eb47;grid-template-columns:28px 28px minmax(0,1fr) 28px 28px;align-items:center;height:25px;display:grid}.luna-replay-controls button{color:#dff5ff;cursor:pointer;background:0 0;border:0;border-right:1px solid #7fc9eb2e;height:23px;padding:0;font-size:1rem}.luna-replay-controls button:nth-last-child(-n+2){border-left:1px solid #7fc9eb2e;border-right:0}.luna-replay-controls button:disabled{color:#425764;cursor:default}.luna-replay-controls span{letter-spacing:.1em;text-align:center;white-space:nowrap;font-size:.42rem;font-weight:900;overflow:hidden}.luna-material{background:#020a12cc;border:1px solid #7fc9eb38;grid-template-columns:1fr auto 1fr;align-items:center;min-width:0;height:25px;padding:1px 5px;display:grid}.luna-material>span{align-items:center;min-width:0;display:flex}.luna-material>span:last-child{justify-content:flex-end}.luna-material i{width:12px;height:18px;margin-right:-3px;display:block}.luna-material i .luna-piece{object-fit:contain;width:100%;height:100%;transform:none}.luna-material b{color:#9db0ba;text-align:center;min-width:18px;font:700 .56rem ui-monospace,monospace}.luna-material.is-ahead b{color:#7ee8ff}.luna-material.is-behind b{color:#ff8f98}.luna-match-grid{flex:0 0 75px;grid-template-columns:1fr 1.15fr;gap:5px;min-height:0;margin:0 3px 5px;display:grid}.luna-moves-panel,.luna-status-panel{clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);background:#020a12d6;border:1px solid #8bc2dc61;min-width:0;padding:6px 9px;overflow:hidden}.luna-match-grid p{color:#d7e8f0;letter-spacing:.24em;margin:0 0 4px;font-size:.48rem;font-weight:900}.luna-moves-panel ol{grid-template-rows:repeat(5,1fr);grid-auto-flow:column;gap:1px 6px;margin:0;padding:0;font-family:ui-monospace,monospace;font-size:.52rem;list-style:none;display:grid}.luna-moves-panel li{gap:5px;display:flex}.luna-moves-panel li span{color:#718997}.luna-moves-panel>span{color:#7f919b;font-size:.52rem}.luna-status-panel{color:#9cadb7;grid-template-columns:1fr 1fr;gap:2px 7px;font-size:.48rem;display:grid}.luna-status-panel p{grid-column:1/-1}.luna-status-panel strong,.luna-status-panel span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.luna-status-panel strong{color:#d9e4e9;grid-column:1/-1;font-weight:500}.luna-reward-strip{clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);background:#030c15e0;border:1px solid #84bfdc7a;flex:0 0 42px;grid-template-columns:32px minmax(0,1fr) auto 14px;align-items:center;gap:7px;margin:0 3px 5px;padding:4px 9px;display:grid}.luna-reward-strip>div{color:#dbe9ef;font-size:1.35rem}.luna-reward-strip p{margin:0}.luna-reward-strip p span,.luna-reward-strip p strong{display:block}.luna-reward-strip p span{letter-spacing:.18em;font-size:.43rem}.luna-reward-strip p strong{color:#a8dcff;font-size:.62rem}.luna-reward-strip small{color:#8a9aa4;letter-spacing:.1em;font-size:.4rem;line-height:1.35}.luna-reward-strip b{font-size:1.4rem}.luna-room-actions{flex:0 0 46px;grid-template-columns:repeat(4,1fr);gap:5px;margin:0 3px;display:grid}.luna-room-actions button,.luna-room-actions a{color:#e9f3f7;min-width:0;font:inherit;clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px);cursor:pointer;background:#040d17e6;border:1px solid #8dbad080;justify-content:center;align-items:center;gap:5px;padding:4px;font-size:.56rem;font-weight:800;text-decoration:none;display:flex}.luna-room-actions span{font-size:.85rem}.luna-room-actions .is-primary{background:linear-gradient(145deg,#1f4e77f2,#08192bf2);border-color:#86d8ff;box-shadow:inset 0 0 12px #6fd0ff38}.luna-room-actions button:disabled{opacity:.45;cursor:not-allowed}.luna-room-footer{color:#627784;letter-spacing:.22em;white-space:nowrap;flex:1;justify-content:center;align-items:center;gap:8px;min-height:11px;font-size:.36rem;display:flex}.luna-room-footer span{background:#4f6572;width:26px;height:1px}.luna-inline-alert{z-index:8;color:#fff;text-align:center;background:#040b12f7;border:1px solid #dbb85f;margin:0;padding:7px 9px;font-size:.65rem;position:absolute;bottom:55px;left:16px;right:16px;box-shadow:0 10px 25px #000}.luna-inline-alert button{color:#111;background:#d8b65c;border:0;margin-left:7px;font-weight:800}.luna-settings{z-index:12;color:#eaf5fb;background:#071421;border-color:#73cefb73;width:min(310px,100% - 18px);top:40px;left:auto;right:9px;box-shadow:0 15px 38px #000}.luna-settings h2{color:#fff}.luna-bot-offer{background:#091628b8;border:1px solid #8fe7ff47;border-radius:16px;max-width:350px;padding:12px}.luna-bot-offer p{margin:0 0 7px;line-height:1.45}.luna-bot-offer small{color:#91a7bd;display:block}.luna-match-grid{position:relative}.luna-moves-panel{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#69bee8 transparent;overflow-y:auto}.luna-moves-panel p{z-index:1;background:#020a12;padding-top:1px;position:sticky;top:-6px}.luna-moves-panel ol{grid-template-rows:none;grid-auto-flow:row;gap:2px;padding:0 2px 2px 0;display:grid}.luna-moves-panel li{grid-template-columns:20px 1fr 1fr;gap:4px;display:grid}.luna-moves-panel li b{color:#d9e8ee;text-overflow:ellipsis;font-weight:500;overflow:hidden}.luna-match-grid.is-expanded .luna-moves-panel{z-index:14;left:50%;bottom:max(58px,env(safe-area-inset-bottom));clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);background:#020a12fa;border-color:#79d6ff;width:min(100% - 22px,538px);height:min(48svh,420px);padding:14px 16px;position:fixed;transform:translate(-50%);box-shadow:0 0 0 999px #00040a94,0 0 32px #4ec2ff4d}.luna-match-grid.is-expanded .luna-moves-panel p{background:#020a12;padding:4px 0;top:-14px}.luna-match-grid.is-expanded .luna-moves-panel ol{gap:7px;font-size:.76rem}.luna-match-grid.is-expanded .luna-moves-panel li{grid-template-columns:30px 1fr 1fr}.luna-result-overlay{z-index:20;text-align:center;background:radial-gradient(circle at 50% 38%,#254e70db,#01070ef5 48%,#01050a 78%);place-content:center;justify-items:center;padding:24px;animation:.32s ease-out luna-result-in;display:grid;position:absolute;inset:0}.luna-result-overlay.is-victory{background:radial-gradient(circle at 50% 38%,#74561ed4,#040d16f5 50%,#01050a 80%)}.luna-result-emblem{color:#a9e8ff;border:1px solid #8edfff;border-radius:50%;place-items:center;width:88px;height:88px;margin-bottom:12px;font-size:3rem;display:grid;box-shadow:0 0 36px #4ac7ff73,inset 0 0 22px #4ac7ff2e}.luna-result-overlay.is-victory .luna-result-emblem{color:#ffe39a;border-color:#f2cd75;box-shadow:0 0 42px #ecbb497a,inset 0 0 24px #ecbb4933}.luna-result-overlay>p{color:#b7d8e8;letter-spacing:.42em;margin:0;font-size:.65rem;font-weight:900}.luna-result-overlay>h2{color:#fff;text-shadow:0 0 20px #97dcff8a;max-width:420px;margin:10px 0 6px;font-size:clamp(1.8rem,9vw,3.2rem);line-height:1}.luna-result-overlay>strong{color:#f5d681;font:700 2rem ui-monospace,monospace}.luna-result-overlay>span{color:#c1d0d8;text-transform:uppercase;letter-spacing:.18em;margin:5px 0 18px}.luna-result-overlay>div:last-child{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}@keyframes luna-result-in{0%{opacity:0;transform:scale(1.03)}to{opacity:1;transform:scale(1)}}@media (max-height:700px){.luna-room-header{flex-basis:70px}.luna-room-header>h1{font-size:1.55rem}.luna-room-header>p{margin-top:2px}.luna-player-card{flex-basis:58px;grid-template-columns:45px minmax(0,1fr) 88px}.luna-player-avatar{width:40px;height:40px}.luna-clock>strong{font-size:1.05rem}.luna-board-frame{width:min(100% - 4px,100svh - 416px)}.luna-match-grid{flex-basis:65px}.luna-reward-strip{flex-basis:37px}.luna-room-actions{flex-basis:42px}}:is(body:has(.luna-matchmaker-shell) .site-header,body:has(.luna-matchmaker-shell) .environment-banner){display:none}.luna-matchmaker-shell{background:radial-gradient(circle at 50% 13%,#55a7df3d,#0000 32%),linear-gradient(#091424,#02060e 72%)}.luna-matchmaker{clip-path:polygon(15px 0,calc(100% - 15px) 0,100% 15px,100% calc(100% - 15px),calc(100% - 15px) 100%,15px 100%,0 calc(100% - 15px),0 15px);border-radius:0}.luna-matchmaker .luna-waiting h2{color:#f6fbff;letter-spacing:.08em;text-transform:uppercase;margin:.1rem 0;font-size:1.15rem}.luna-matchmaker .luna-waiting>strong{letter-spacing:.12em;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:500}.luna-settings{clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);border-radius:0}@media (max-width:600px){.luna-room-app{padding-left:3px;padding-right:3px}.luna-board-frame{width:calc(100vw - 6px);max-width:100%;margin-bottom:3px;padding:3px}.luna-board-frame .luna-piece{transform:scale(.91)}.luna-match-grid{flex:0 0 0;height:0;margin:0;display:block;overflow:visible}.luna-match-grid:not(.is-expanded) .luna-moves-panel,.luna-match-grid .luna-status-panel,.luna-reward-strip{display:none}.luna-room-actions{flex-basis:48px;margin-top:2px}.luna-room-footer{display:none}.luna-match-grid.is-expanded .luna-moves-panel{display:block}}@media (max-width:600px) and (min-height:701px){.luna-board-frame{width:min(100vw - 6px,100svh - 349px)}}@media (max-width:600px) and (max-height:700px){.luna-board-frame{width:min(100vw - 6px,100svh - 305px)}}
