: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}.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}}
