.game-board-container{aspect-ratio:1;justify-content:center;align-items:center;width:100%;display:flex}.game-board{cursor:pointer;-webkit-tap-highlight-color:transparent;width:100%;height:100%;transition:transform .3s;display:block}.game-board.flipped{transform:rotate(180deg)}.square-light{fill:var(--color-square-light)}.square-dark{fill:var(--color-square-dark)}.move-hint{fill:#2c5f2d73;opacity:.55;pointer-events:none}.capture-target{fill:none;stroke:#2c5f2dbf;stroke-width:4px;opacity:.85;pointer-events:none;animation:1.4s ease-in-out infinite capture-target-pulse}@keyframes capture-target-pulse{0%,to{opacity:.55}50%{opacity:.95}}@media (prefers-reduced-motion:reduce){.capture-target{animation:none}}.square-last-move{fill:#ffd90059;pointer-events:none}.square-last-move-capture{fill:#dc323259;pointer-events:none}.square-premove{fill:#ff8a008c;pointer-events:none}.square-capture-source{fill:#27ae6073;stroke:#27ae60f2;stroke-width:4px;pointer-events:none;animation:1.4s ease-in-out infinite capture-target-pulse}.square-hint{fill:#4ade8073;pointer-events:none;animation:1.2s ease-in-out infinite hint-pulse}@keyframes hint-pulse{0%,to{opacity:1}50%{opacity:.45}}@media (hover:none) and (pointer:coarse){.game-board{cursor:default}}.board-coord{letter-spacing:.04em;-webkit-user-select:none;user-select:none;opacity:.45;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:9px;font-weight:600}.board-coord.on-light{fill:var(--color-square-dark,#b58863)}.board-coord.on-dark{fill:var(--color-square-light,#f0d9b5)}.board-corner__line{stroke:#ffdca08c;stroke-width:1.6px;stroke-linecap:round}@media (width<=480px){.board-coord,.board-corner__line{display:none}}.game-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--color-text-secondary,#636e72);letter-spacing:.02em;background:#ffffffd9;border:1px solid #0000000f;border-radius:12px;justify-content:center;align-self:stretch;align-items:center;gap:14px;padding:8px 18px;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:.85rem;font-weight:500;display:flex}.game-header__cell{align-items:center;gap:6px;display:inline-flex}.game-header__variant-icon{letter-spacing:.04em;justify-content:center;align-items:center;min-width:14px;font-size:.7rem;font-weight:700;display:inline-flex}.game-header__divider{background:#0000001f;width:1px;height:14px}.game-header__rated-dot{border-radius:50%;width:7px;height:7px;display:inline-block}.game-header__rated--on .game-header__rated-dot{background:var(--color-success,#27ae60);box-shadow:0 0 6px #27ae608c}.game-header__rated--off .game-header__rated-dot{background:#00000038}.game-header__mode{color:#8a6d1a;font-weight:700}.game-header__mode svg{color:#b8901f}@media (width<=480px){.game-header{gap:10px;padding:6px 8px;font-size:.78rem}.game-header__divider{height:12px}}.player-clock{font-variant-numeric:tabular-nums;color:var(--color-text-secondary);white-space:nowrap;background:#ffffff0f;border-radius:6px;padding:4px 10px;font-size:1.2rem;font-weight:700;transition:all .2s}.player-clock.active{color:var(--color-text);background:#2c5f2d33}.player-clock.low-time{color:var(--color-error);background:#e5393533;animation:.5s ease-in-out infinite alternate pc-pulse}@keyframes pc-pulse{0%{opacity:1}to{opacity:.7}}@media (prefers-reduced-motion:reduce){.player-clock.low-time{animation-duration:.01ms!important;animation-iteration-count:1!important}}.clock-monospace{background:var(--clock-bg,#111511);min-width:96px;height:42px;color:var(--clock-text,#5a6a5a);letter-spacing:.04em;font-variant-numeric:tabular-nums;border-radius:8px;justify-content:center;align-items:center;padding:0 14px;font-family:JetBrains Mono,Menlo,Monaco,monospace;font-size:1.65rem;font-weight:700;transition:background .25s,color .25s,box-shadow .25s;display:inline-flex;box-shadow:inset 0 1px #ffffff0a,0 1px 3px #00000040}.clock-monospace--active{background:var(--clock-active-bg,#0a1f0b);color:var(--clock-active-text,var(--color-forest-light,#a8d5a2));animation:1.6s ease-in-out infinite alternate clockGlow;box-shadow:inset 0 1px #a8d5a214,0 0 18px #2c5f2d59}.clock-monospace--low{color:var(--color-error,#e74c3c);background:#2a0f12;animation:.8s ease-in-out infinite alternate clockPulseLow}@keyframes clockGlow{0%{box-shadow:inset 0 1px #a8d5a20f,0 0 12px #2c5f2d47}to{box-shadow:inset 0 1px #a8d5a21a,0 0 22px #2c5f2d73}}@keyframes clockPulseLow{0%{opacity:1}to{opacity:.72}}.clock-monospace .player-clock,.clock-monospace .player-clock.active,.clock-monospace .player-clock.low-time{font:inherit;color:inherit;letter-spacing:inherit;background:0 0;border-radius:0;padding:0;animation:none}@media (prefers-reduced-motion:reduce){.clock-monospace--active,.clock-monospace--low{animation:none}}.captured-pieces{vertical-align:middle;flex-wrap:nowrap;align-items:center;min-width:0;padding-left:4px;display:inline-flex}.captured-pieces__piece{flex-shrink:0;width:14px;height:14px;margin-left:-6px;line-height:0;position:relative}.captured-pieces__piece:first-child{margin-left:0}.captured-pieces__svg{width:100%;height:100%;display:block;overflow:visible}.captured-pieces__more{color:var(--color-text-secondary,#636e72);margin-left:2px;font-size:.85rem;line-height:1}@media (width<=480px){.captured-pieces__piece{width:12px;height:12px;margin-left:-5px}}.player-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border:1px solid #0000000f;border-left:3px solid #0000;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;min-height:64px;padding:10px 14px;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;transition:border-left-color .25s,box-shadow .25s,background .25s;display:flex;position:relative}.player-card--active{border-left-color:var(--color-forest-dark,#2c5f2d);box-shadow:0 4px 18px #2c5f2d2e}.player-card--disconnected{border-left-color:var(--color-warning,#f39c12)}.player-card__left{align-items:center;gap:12px;min-width:0;display:flex}.player-card__meta{flex-direction:column;gap:3px;min-width:0;display:flex}.player-card__name-row{align-items:baseline;gap:8px;min-width:0;display:flex}.player-card__status-row{align-items:center;gap:8px;min-width:0;min-height:16px;display:flex}.player-card__status-row .player-card__turn-indicator,.player-card__status-row .player-card__disconnected{margin-left:auto}.player-card__flag{flex-shrink:0;font-size:1rem;line-height:1}.player-card__username{color:var(--color-text,#2d3436);text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:1rem;font-weight:600;overflow:hidden}.player-card__rating{color:var(--color-text-secondary,#636e72);font-variant-numeric:tabular-nums;font-size:.82rem}.player-card__turn-indicator{color:var(--color-forest-dark,#2c5f2d);text-transform:uppercase;letter-spacing:.06em;min-height:1em;font-size:.75rem;font-weight:600}.player-card__turn-indicator--active{animation:1.6s ease-in-out infinite alternate turnPulse}@keyframes turnPulse{0%{opacity:.7}to{opacity:1}}.player-card__disconnected{color:var(--color-warning,#f39c12);font-size:.78rem;font-weight:500}.player-card__right{flex-shrink:0}.player-card__result{letter-spacing:.02em;white-space:nowrap;border-radius:10px;align-items:center;gap:6px;padding:6px 12px;font-size:.82rem;font-weight:700;line-height:1;display:inline-flex}.player-card__result svg{flex-shrink:0;width:16px;height:16px}.player-card__result--win{color:var(--color-forest-dark,#2c5f2d);background:#2c5f2d24}.player-card__result--loss{color:var(--color-error,#c0392b);background:#e74c3c24}.player-card__result--draw{color:var(--color-text-secondary,#636e72);background:#00000012}@media (width<=480px){.player-card__result{padding:5px 10px;font-size:.78rem}.player-card{min-height:52px;padding:8px 10px}.player-card__username{max-width:110px;font-size:.92rem}}@media (prefers-reduced-motion:reduce){.player-card__turn-indicator--active{animation:none}}body.gs-ambient:before{content:"";z-index:0;pointer-events:none;opacity:.1;background-image:url("data:image/svg+xml,%3Csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='w'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.02 0.2' numOctaves='5' seed='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23w)'/%3E%3C/svg%3E");background-size:300px 300px;position:fixed;inset:0}body.gs-ambient:after{content:"";z-index:0;pointer-events:none;background:radial-gradient(#0000 40%,#3c28191f 100%);position:fixed;inset:0}.ambient-particles{z-index:0;pointer-events:none;opacity:.5;position:fixed;inset:0}.ambient-glow{z-index:0;pointer-events:none;opacity:0;transition:opacity .8s,background .8s;position:fixed;inset:0}body.your-turn .ambient-glow{opacity:1;background-color:#0000;background-image:linear-gradient(90deg,#2c5f2d0f 0%,#0000 3%),linear-gradient(270deg,#2c5f2d0f 0%,#0000 3%),linear-gradient(#2c5f2d0a 0%,#0000 2%),linear-gradient(#0000 97%,#2c5f2d0f 100%);background-position:0,100%,top,bottom;background-repeat:no-repeat;background-size:100% 100%;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box}body.low-time-glow .ambient-glow{opacity:1;background-color:#0000;background-image:linear-gradient(90deg,#e74c3c14 0%,#0000 4%),linear-gradient(270deg,#e74c3c14 0%,#0000 4%),linear-gradient(#e74c3c0f 0%,#0000 3%),linear-gradient(#0000 96%,#e74c3c14 100%);background-position:0,100%,top,bottom;background-repeat:no-repeat;background-size:100% 100%;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;animation:1.2s ease-in-out infinite alternate ambientPulse}@keyframes ambientPulse{0%{opacity:.6}to{opacity:1}}@media (width<=767px){.ambient-particles{display:none}}@media (prefers-reduced-motion:reduce){.ambient-particles{display:none}body.low-time-glow .ambient-glow{animation:none}}.game-toolbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border:1px solid #0000000d;border-radius:12px;align-items:stretch;gap:0;width:100%;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;display:flex;overflow:hidden;box-shadow:0 1px 4px #00000012,0 3px 10px #0000000a}.game-toolbar__btn{min-height:52px;font:inherit;color:var(--color-neutral-700,#4a5568);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:3px;padding:10px 8px;transition:background .25s cubic-bezier(.4,0,.2,1),color .25s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.game-toolbar__btn:not(:last-child):after{content:"";background:#0000000f;width:1px;position:absolute;top:12px;bottom:12px;right:0}.game-toolbar__btn svg{opacity:.6;transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .25s}.game-toolbar__btn span{text-transform:uppercase;letter-spacing:.4px;opacity:.55;font-size:.65rem;font-weight:600;transition:opacity .25s,color .25s}.game-toolbar__btn:hover:not(:disabled){background:#00000005}.game-toolbar__btn:hover:not(:disabled) svg{opacity:.9;transform:scale(1.12)}.game-toolbar__btn:hover:not(:disabled) span{opacity:.85}.game-toolbar__btn:active:not(:disabled){background:#0000000a}.game-toolbar__btn:active:not(:disabled) svg{transition-duration:.1s;transform:scale(.95)}.game-toolbar__btn:disabled{opacity:.45;cursor:not-allowed}.game-toolbar__btn--resign:hover:not(:disabled){color:var(--color-error,#e74c3c);background:#e74c3c0d}.game-toolbar__btn--resign:hover:not(:disabled) svg{opacity:1;transform:scale(1.12)rotate(-12deg)}.game-toolbar__btn--resign:hover:not(:disabled) span{color:var(--color-error,#e74c3c)}.game-toolbar__btn--draw:hover:not(:disabled){color:var(--color-brown-dark,#5d4037);background:#b588630f}.game-toolbar__btn--draw:hover:not(:disabled) svg{opacity:.9;transform:scale(1.15)}.game-toolbar__btn--draw:hover:not(:disabled) span{color:var(--color-brown-dark,#5d4037)}.game-toolbar__btn--focus:hover:not(:disabled){color:var(--color-forest-dark,#2c5f2d);background:#2c5f2d0a}.game-toolbar__btn--focus:hover:not(:disabled) svg{opacity:.9;transform:scale(1.15)}.game-toolbar__btn--focus:hover:not(:disabled) span{color:var(--color-forest-dark,#2c5f2d)}.game-toolbar__btn--focus-active{color:var(--color-forest-dark,#2c5f2d);background:#2c5f2d14}.game-toolbar__btn--focus-active svg{opacity:.95}.game-toolbar__btn--focus-active svg circle{fill:var(--color-success,#27ae60);stroke:var(--color-success,#27ae60)}.game-toolbar__btn--focus-active span{opacity:.9;color:var(--color-forest-dark,#2c5f2d)}.game-toolbar__btn--accept{color:var(--color-success,#27ae60)}.game-toolbar__btn--accept span,.game-toolbar__btn--decline span{opacity:.85}.game-toolbar__btn--accept:hover:not(:disabled){background:#27ae601a}.game-toolbar__btn--decline{color:var(--color-error,#e74c3c)}.game-toolbar__btn--decline:hover:not(:disabled){background:#e74c3c1a}.game-toolbar--draw-offer .game-toolbar__draw-text{color:var(--color-text-secondary,#636e72);flex:1 1 0;justify-content:center;align-items:center;font-size:.88rem;display:inline-flex}@media (width<=480px){.game-toolbar__btn{padding:8px 6px}.game-toolbar__btn span{letter-spacing:.2px;text-align:center;white-space:normal;line-height:1.15}.game-toolbar--draw-offer{flex-wrap:wrap}.game-toolbar--draw-offer .game-toolbar__draw-text{text-align:center;border-bottom:1px solid #0000000f;flex:0 0 100%;padding:8px 10px 6px;font-size:.85rem;line-height:1.25}}.ingame-settings-overlay{z-index:2500;padding:var(--spacing-md);background:#0000008c;justify-content:center;align-items:center;animation:.15s ease-out ingame-settings-fade;display:flex;position:fixed;inset:0}.ingame-settings-modal{background:var(--color-bg,#fff);border-radius:14px;flex-direction:column;width:100%;max-width:460px;max-height:88vh;display:flex;overflow:hidden;box-shadow:0 12px 40px #00000059}.ingame-settings-header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border,#00000014);justify-content:space-between;align-items:center;display:flex}.ingame-settings-header .settings-title{color:var(--color-text,#1b1f20);margin:0;font-family:Fraunces,Georgia,serif;font-size:1.15rem;font-weight:600}.ingame-settings-close{width:36px;height:36px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;transition:background .15s;display:inline-flex}.ingame-settings-close:hover{color:var(--color-text);background:#0000000f}.ingame-settings-body{padding:var(--spacing-md) var(--spacing-lg);overflow-y:auto}.ingame-settings-body .settings-subtitle:first-child{margin-top:0}@keyframes ingame-settings-fade{0%{opacity:0}to{opacity:1}}@media (width<=899px){.ingame-settings-overlay{justify-content:stretch;align-items:stretch;padding:0}.ingame-settings-modal{width:100%;max-width:none;height:100svh;max-height:none;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);border-radius:0}.ingame-settings-body{flex:1;min-height:0}}.fs-panel-overlay{z-index:1500;background:#0000008c;flex-direction:column;display:flex;position:fixed;inset:0}.fs-panel{background:var(--color-bg,#fff);width:100%;height:100svh;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex}.fs-panel-header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border,#00000014);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.fs-panel-title{color:var(--color-text,#1b1f20);margin:0;font-family:Fraunces,Georgia,serif;font-size:1.15rem;font-weight:600}.fs-panel-close{width:36px;height:36px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;transition:background .15s;display:inline-flex}.fs-panel-close:hover{color:var(--color-text);background:#0000000f}.fs-panel-close:active{background:#0000001a}.fs-panel-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.fs-panel-body .chat-panel,.fs-panel-body .chat-panel.open,.fs-panel-body .move-list{border:none;border-radius:0;flex:1;width:100%;max-width:none;min-height:0;max-height:none}.fs-panel-body .chat-header{display:none}.review-controls{align-items:center;display:flex}.review-controls-btn{min-width:var(--touch-target-min);min-height:var(--touch-target-min);color:var(--color-neutral-700,#4a5568);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0;transition:background .2s,color .2s,opacity .2s;display:inline-flex}.review-controls-btn svg{opacity:.75}.review-controls-btn:not(:disabled):hover{background:#0000000d}.review-controls-btn:not(:disabled):active{background:#00000014}.review-controls-btn:disabled{opacity:.3;cursor:default}.review-controls-live.is-active{color:var(--color-primary,#27ae60)}.review-controls-live.is-active svg{opacity:1}.review-controls-live.is-warning{border-radius:8px;animation:1.5s ease-in-out infinite review-live-blink}@keyframes review-live-blink{0%,to{opacity:1;box-shadow:0 0 #27ae6000}50%{opacity:.45;box-shadow:0 0 0 4px #27ae602e}}@media (prefers-reduced-motion:reduce){.review-controls-live.is-warning{animation:none}}.review-controls--bar{flex:auto;padding:0 2px;position:relative}.review-controls--bar .gs-mobile-bar-btn{flex:none;min-width:88px}.review-controls--bar:not(:only-child){flex:0 auto}.gs-mobile-bar .review-controls--bar .gs-mobile-bar-btn:after{content:none}.review-controls--bar:after{content:"";background:#0000000f;width:1px;position:absolute;top:12px;bottom:12px;right:0}.review-controls--bar:last-child:after{content:none}.review-controls--bar:only-child{justify-content:center}.review-controls--bar:only-child .gs-mobile-bar-btn{flex:none;min-width:72px}.review-controls--bar .review-controls-btn{min-width:40px;height:52px}.review-controls--panel{background:var(--color-surface);margin-bottom:var(--spacing-sm,8px);border-radius:8px;justify-content:center;gap:4px;padding:4px}.review-controls-counter{text-align:center;font-variant-numeric:tabular-nums;min-width:7ch;color:var(--color-text-secondary);-webkit-user-select:none;user-select:none;white-space:nowrap;flex-shrink:0;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:.8rem}:root{--gs-bg:#d8d0c2;--clock-bg:#111511;--clock-active-bg:#0a1f0b;--clock-text:#5a6a5a;--clock-active-text:var(--color-forest-light,#a8d5a2);--color-beige-cream:#f5f0e6;--color-beige-warm:#f0d9b5;--color-beige-sand:#e8d5b7;--color-forest-light:#a8d5a2;--color-forest-medium:#3d8b40;--color-brown-light:#d7c4a7;--gs-board-max:600px}body.gs-ambient{background-color:var(--color-bg);background-image:var(--app-bg-image);background-size:var(--app-bg-size);background-position:var(--app-bg-position);font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif}.game-screen{z-index:1;width:100%;height:100svh;color:var(--color-text,#2d3436);flex-direction:column;display:flex;position:relative;overflow:hidden}.gs-header-slot{z-index:2;flex-shrink:0;position:relative}.gs-grid{z-index:2;flex:1;grid-template-columns:minmax(0,1fr) 340px;gap:18px;width:100%;max-width:1200px;min-height:0;margin:0 auto;padding:16px 20px;display:grid;position:relative}.gs-board-column{min-width:0;width:min(calc(100svh - 285px), calc(100vw - 430px), var(--gs-board-max));flex-direction:column;align-items:stretch;gap:10px;margin:0 auto;display:flex}.gs-board-wrapper{background:linear-gradient(145deg,#a08060,#7a6040,#a08060);border-radius:10px;padding:5px;position:relative;box-shadow:0 8px 32px #0003,0 2px 8px #0000001f,inset 0 1px #fff3,inset 0 -1px #00000040}.gs-board-frame{background:linear-gradient(145deg,#4a3828,#3a2a1a,#4a3828);border-radius:7px;padding:2px;position:relative;box-shadow:inset 0 1px 3px #00000080,inset 0 -1px #ffffff0d}.gs-board-frame>.game-board-container{border-radius:5px;overflow:hidden}.gs-board-frame>.game-board-container>svg{width:100%;height:auto;display:block}.gs-sidebar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff8c;border:1px solid #0000000f;border-radius:14px;flex-direction:column;min-height:0;padding:12px;display:flex;overflow:hidden}.gs-actions-slot{flex-direction:column;display:flex}.gs-over .gs-grid{overflow:hidden auto}.gs-mobile-bar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border:1px solid #0000000d;border-radius:12px;align-items:stretch;gap:0;width:100%;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;display:flex;overflow:hidden;box-shadow:0 1px 4px #00000012,0 3px 10px #0000000a}.gs-mobile-bar-btn{min-height:52px;font:inherit;color:var(--color-neutral-700,#4a5568);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:3px;padding:10px 8px;transition:background .25s cubic-bezier(.4,0,.2,1),color .25s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.gs-mobile-bar-btn:not(:last-child):after{content:"";background:#0000000f;width:1px;position:absolute;top:12px;bottom:12px;right:0}.gs-mobile-bar-btn svg{opacity:.6}.gs-mobile-bar-btn span{text-transform:uppercase;letter-spacing:.4px;opacity:.55;font-size:.65rem;font-weight:600}.gs-mobile-bar-btn:active{background:#0000000a}.gs-mobile-bar-badge{background:var(--color-primary,#27ae60);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.7rem;font-weight:700;line-height:1;display:inline-flex;position:absolute;top:8px;right:calc(50% - 24px)}@media (width<=899px){.gs-grid{grid-template-columns:minmax(0,1fr);gap:12px;padding:12px 14px;overflow:hidden}.gs-board-column{width:min(100vw - 28px,100svh - 320px,600px);max-width:600px}}@media (width<=479px){.gs-grid{gap:10px;padding:8px}.gs-board-column{gap:8px}.gs-board-wrapper{border-radius:8px;padding:3px}.gs-sidebar{border-radius:10px;min-height:220px;padding:8px}}@media (prefers-reduced-motion:reduce){.gs-board-wrapper{transition:none}}.gs-sidebar,.gs-mobile-bar,.gs-header-slot,.game-header,.player-card__turn-indicator,.board-coord{transition:opacity .25s,visibility .25s}body.zen .gs-sidebar,body.zen .gs-mobile-bar{display:none}body.zen .gs-grid{max-width:var(--gs-board-max);grid-template-columns:minmax(0,1fr)}body.zen .board-coord{opacity:0}body.zen .gs-header-slot,body.zen .game-header,body.zen .game-toolbar:not(.game-toolbar--draw-offer) .game-toolbar__btn:not(.game-toolbar__btn--focus),body.zen .game-toolbar:not(.game-toolbar--draw-offer) .game-toolbar__btn:after,body.zen .player-card--has-clock .player-card__left{display:none}body.zen .player-card--has-clock{justify-content:center}.gs-match-overlay{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f140feb;justify-content:center;align-items:center;animation:.2s ease-out gs-matchFadeIn;display:flex;position:fixed;inset:0}@keyframes gs-matchFadeIn{0%{opacity:0}to{opacity:1}}.gs-match-card{background:var(--color-surface);text-align:center;border-radius:20px;width:340px;max-width:calc(100vw - 32px);padding:32px;animation:.3s cubic-bezier(.34,1.56,.64,1) gs-matchScaleIn;box-shadow:0 16px 48px #0000004d}@keyframes gs-matchScaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.gs-match-title{color:var(--color-forest-dark);margin:0 0 20px;font-family:Georgia,serif;font-size:1.6rem;font-weight:700}.gs-match-opponent{flex-direction:column;gap:4px;margin-bottom:16px;display:flex}.gs-match-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:.75rem}.gs-match-name{color:var(--color-text);font-size:1.3rem;font-weight:600}.gs-match-rating{color:var(--color-text-secondary);font-size:.9rem}.gs-match-color{background:var(--color-beige-warm);color:var(--color-text);border-radius:12px;justify-content:center;align-items:center;gap:8px;margin-bottom:20px;padding:10px 16px;font-size:.9rem;display:flex}.gs-match-color-dot{border-radius:50%;width:16px;height:16px}.gs-match-color-dot.white{background:var(--color-beige-cream);border:2px solid var(--color-brown-medium)}.gs-match-color-dot.black{background:var(--color-brown-dark);border:2px solid var(--color-beige-cream)}.gs-match-opening{background:#ffffff0d;border-radius:8px;flex-direction:column;gap:4px;margin-bottom:16px;padding:8px 12px;display:flex}.gs-match-opening-label{color:var(--color-text-secondary);text-transform:uppercase;font-size:.75rem}.gs-match-opening-moves{color:var(--color-text);font-size:.95rem;font-weight:500}.gs-match-countdown{flex-direction:column;align-items:center;gap:4px;margin-bottom:20px;display:flex}.gs-match-countdown-label{color:var(--color-text-secondary);font-size:.8rem}.gs-match-countdown-number{color:var(--color-forest-dark);font-variant-numeric:tabular-nums;font-size:2.5rem;font-weight:700;animation:1s ease-in-out infinite gs-matchPulse}@keyframes gs-matchPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.gs-match-start-btn{background:var(--color-forest-dark);color:#fff;cursor:pointer;border:none;border-radius:12px;width:100%;min-height:44px;padding:14px 24px;font-size:1rem;font-weight:600;transition:background .2s}.gs-match-start-btn:hover{background:var(--color-forest-medium)}.gs-match-start-btn:active{transform:scale(.97)}@media (width<=479px){.gs-match-card{width:calc(100vw - 32px);padding:24px}}@media (prefers-reduced-motion:reduce){.gs-match-overlay,.gs-match-card,.gs-match-countdown-number{animation-duration:.01ms!important;animation-iteration-count:1!important}}.game-over-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background-color:#1b1f207a;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.game-over-modal{text-align:center;font-feature-settings:"ss01", "ss02", "liga", "dlig", "calt";background:linear-gradient(#fffffff7,#ffffffeb);border:1px solid #ffffffb3;border-radius:20px;width:340px;max-width:90%;max-height:90svh;padding:32px 36px;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;animation:.3s ease-out slideUp;overflow-y:auto;box-shadow:inset 0 2px #ffffffe6,0 4px 14px #231e141a,0 24px 60px -12px #231e144d}.game-over-title{font-variation-settings:"opsz" 144, "SOFT" 50;letter-spacing:-.01em;margin-bottom:var(--spacing-sm);color:#1b1f20;font-family:Fraunces,Times New Roman,serif;font-size:1.7rem;font-weight:600;line-height:1.15}.game-over-message{color:#636e72;margin-bottom:var(--spacing-lg);font-size:.95rem}.game-over-buttons{gap:var(--spacing-sm);justify-content:center;display:flex}.game-over-button{background:linear-gradient(135deg, var(--color-forest-medium), var(--color-forest-dark));color:#fff;cursor:pointer;border:none;border-radius:11px;min-width:140px;min-height:44px;padding:11px 22px;font-family:inherit;font-size:.95rem;font-weight:600;transition:filter .18s,transform .1s;box-shadow:0 2px 8px #2c5f2d47}.game-over-button:hover{filter:brightness(1.06)}.game-over-button:active{transform:scale(.98)}.game-over-button--secondary{color:#1b1f20;box-shadow:none;background:0 0;border:1px solid #0000001f}.game-over-button--secondary:hover{filter:none;background:#0000000a;border-color:#0003}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.game-over-overlay,.game-over-modal{animation-duration:.01ms!important;animation-iteration-count:1!important}}.move-list{background-color:var(--color-surface);min-height:0;padding:var(--spacing-sm);border-radius:8px;flex:1;overflow-y:auto}.move-list-empty{color:var(--color-text-secondary);text-align:center;padding:var(--spacing-lg);font-size:.85rem;font-style:italic}.move-list-table{border-collapse:collapse;width:100%;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:.85rem}.move-list-row:nth-child(odd){background-color:#ffffff08}.move-list-num{color:var(--color-text-secondary);text-align:right;-webkit-user-select:none;user-select:none;width:28px;padding:3px 6px 3px 4px;font-size:.8rem}.move-list-move{color:var(--color-text);cursor:pointer;border-radius:3px;padding:3px 8px}.move-list-move:empty{cursor:default}.move-list-move:not(:empty):hover{background-color:#ffffff14}.move-list-move.current-move{background-color:rgba(var(--color-primary-rgb,39, 174, 96), .35);font-weight:600}@media (width<=900px){.move-list{max-height:200px}}@media (width<=500px){.move-list{max-height:150px}}.gs-action-icon{background:var(--color-surface);height:36px;color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;border:none;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:6px 14px;font-size:.85rem;font-weight:500;transition:all .2s;display:flex}.gs-action-icon:hover{background:#ffffff1f}.gs-action-icon.resign:hover{color:var(--color-error);background:#e74c3c33}.gs-action-icon.draw:hover:not(:disabled){color:var(--color-warning,#f39c12);background:#f39c1233}.gs-action-icon.draw.offered{opacity:.4;cursor:default;pointer-events:none}.gs-action-icon.review{min-width:36px;padding:6px 10px}.gs-action-icon.review:disabled{opacity:.3;cursor:default;pointer-events:none}@media (width<=480px){.gs-action-icon{height:44px;padding:6px 10px;font-size:.8rem}}.pz-page{color:#1b1f20;background-color:var(--color-bg);background-image:var(--app-bg-image);background-size:var(--app-bg-size);background-position:var(--app-bg-position);min-height:100dvh;padding:40px 24px 80px;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:15px;line-height:1.5;position:relative}.pz-page:before{content:"";z-index:0;pointer-events:none;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='w'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.02 0.2' numOctaves='5' seed='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23w)'/%3E%3C/svg%3E");background-size:300px 300px;position:absolute;inset:0}.pz-page:after{content:"";z-index:0;pointer-events:none;background:radial-gradient(#0000 40%,#3c28191f 100%);position:absolute;inset:0}.pz-inner{z-index:1;gap:22px;max-width:1080px;margin:0 auto;display:grid;position:relative}@keyframes pzFadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.pz-inner>*{animation:.7s cubic-bezier(.16,1,.3,1) both pzFadeUp}.pz-inner>:first-child{animation-delay:40ms}.pz-inner>:nth-child(2){animation-delay:.1s}.pz-inner>:nth-child(3){animation-delay:.18s}.pz-crumb{color:#636e72;align-items:center;gap:10px;font-size:.82rem;display:flex}.pz-crumb button{font:inherit;cursor:pointer;color:#1f4520;background:#ffffff80;border:1px solid #0000000f;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;text-decoration:none;transition:all .15s;display:inline-flex}.pz-crumb button:hover{background:#ffffffd9;transform:translate(-2px)}.pz-crumb .pz-sep{color:#8b95a0}.pz-crumb .pz-now{color:#1b1f20;font-weight:600}.pz-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(#ffffffeb,#ffffffd1);border:1px solid #fff9;border-radius:20px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffffe6,0 1px 3px #231e140f,0 8px 24px -8px #231e141a,0 24px 48px -24px #231e142e}.pz-hero{grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;padding:26px 32px;display:grid}.pz-hero:before{content:"";pointer-events:none;opacity:.7;z-index:0;background:radial-gradient(at 0 100%,#2c5f2d24,#0000 50%),radial-gradient(at 100% 0,#c9a22724,#0000 55%);position:absolute;inset:0}.pz-hero>*{z-index:1;position:relative}.pz-hero-deco{justify-self:start}.pz-hero-king{background:radial-gradient(circle at 38% 32%,#fffdf6 0%,#f1e5cb 58%,#d4c099 100%);border-radius:50%;justify-content:center;align-items:center;width:150px;height:150px;display:flex;position:relative;box-shadow:inset 0 -6px 14px #00000038,inset 0 5px 12px #ffffff80,0 16px 34px -12px #231e1473}.pz-hero-king:before{content:"";border:2px solid #b5886366;border-radius:50%;position:absolute;inset:13px}.pz-hero-king:after{content:"♛";color:#c9a227;text-shadow:0 2px 3px #00000040;font-size:4.4rem;line-height:1}.pz-hero-center{text-align:center}.pz-hero-eyebrow{letter-spacing:1.6px;text-transform:uppercase;color:#1f4520;align-items:center;gap:10px;font-size:.74rem;font-weight:600;display:inline-flex}.pz-hero-eyebrow:before{content:"";opacity:.6;background:#1f4520;width:22px;height:1px}.pz-hero-title{font-variation-settings:"opsz" 144, "SOFT" 50;letter-spacing:-.02em;color:#1b1f20;margin:8px 0 0;font-family:Fraunces,Georgia,serif;font-size:clamp(2.2rem,4.5vw,3.4rem);font-weight:700;line-height:1}.pz-hero-title .pz-accent{color:#2c5f2d;font-style:italic}.pz-hero-streak{background:linear-gradient(135deg,#c9a22729,#c9a2270a);border:1px solid #c9a2274d;border-radius:16px;justify-self:end;align-items:center;gap:14px;min-width:168px;padding:14px 22px;display:flex}.pz-streak-flame{color:#fff;background:linear-gradient(#f39c12,#c9a227);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex;box-shadow:0 3px 10px #c9a22773}.pz-streak-flame svg{width:22px;height:22px}.pz-streak-text{flex-direction:column;display:flex}.pz-streak-val{color:#1b1f20;font-family:JetBrains Mono,monospace;font-size:1.7rem;font-weight:700;line-height:1}.pz-streak-lbl{letter-spacing:1.4px;text-transform:uppercase;color:#8b6f0f;margin-top:4px;font-size:.6rem;font-weight:600}.pz-play{grid-template-columns:1fr 320px;gap:24px;padding:28px;display:grid}.pz-board-col{flex-direction:column;gap:12px;min-width:0;display:flex}.pz-board-wrap{aspect-ratio:1;border-radius:16px;position:relative;overflow:hidden;box-shadow:0 0 0 1px #00000014,0 1px 2px #0000000d,0 18px 38px -18px #231e1452}.pz-side{flex-direction:column;gap:14px;display:flex}.pz-turn-card{background:linear-gradient(135deg,#2c5f2d1f,#2c5f2d0a);border:1px solid #2c5f2d2e;border-radius:14px;padding:18px 20px;position:relative;overflow:hidden}.pz-turn-card:before{content:"";background:radial-gradient(circle,#2c5f2d2e,#0000 70%);border-radius:50%;width:80px;height:80px;position:absolute;top:-10px;right:-10px}.pz-turn-card .pz-eyebrow{letter-spacing:1.4px;text-transform:uppercase;color:#1f4520;font-size:.66rem;font-weight:600}.pz-turn-card .pz-turn-line{color:#1b1f20;letter-spacing:-.01em;margin-top:6px;font-family:Fraunces,Georgia,serif;font-size:1.4rem;font-weight:600;line-height:1.1}.pz-turn-card .pz-who{color:#2c5f2d;font-style:italic}.pz-turn-card.pz-solved{background:linear-gradient(135deg,#27ae6029,#27ae600a);border-color:#27ae604d}.pz-turn-card.pz-failed{background:linear-gradient(135deg,#e74c3c1f,#e74c3c08);border-color:#e74c3c38}.pz-turn-streak{display:none}.pz-turn-streak-val{color:#1b1f20;font-family:JetBrains Mono,monospace;font-size:1.05rem;font-weight:700;line-height:1}.pz-turn-card .pz-turn-dots{display:none}.pz-stats{grid-template-columns:1fr 1fr;gap:10px;display:grid}.pz-stat-wide{grid-column:1/-1}.pz-stat{background:#ffffffa6;border:1px solid #0000000f;border-radius:12px;padding:12px 14px}.pz-stat .pz-lbl{letter-spacing:1.4px;text-transform:uppercase;color:#636e72;font-size:.62rem;font-weight:600}.pz-stat .pz-val{color:#1b1f20;margin-top:4px;font-family:JetBrains Mono,monospace;font-size:1.25rem;font-weight:700;line-height:1}.pz-stat .pz-val.pz-up{color:#27ae60}.pz-stat .pz-sub{color:#8b95a0;margin-top:3px;font-size:.72rem}.pz-move-progress{background:#ffffff8c;border:1px solid #0000000f;border-radius:12px;padding:14px 16px}.pz-move-progress .pz-mp-lbl{letter-spacing:1.4px;text-transform:uppercase;color:#636e72;font-size:.62rem;font-weight:600}.pz-dots{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.pz-dot{background:#0000001a;border-radius:3px;width:22px;height:6px}.pz-dot.pz-done{background:#3d8b40;box-shadow:0 0 0 2px #2c5f2d26}.pz-dot.pz-now{background:#f39c12;animation:1.2s ease-in-out infinite pzPulseDot}@keyframes pzPulseDot{0%,to{opacity:1;transform:scaleY(1)}50%{opacity:.65;transform:scaleY(1.4)}}.pz-themes{background:#ffffff8c;border:1px solid #0000000f;border-radius:12px;padding:14px 16px}.pz-themes .pz-th-lbl{letter-spacing:1.4px;text-transform:uppercase;color:#636e72;font-size:.62rem;font-weight:600}.pz-th-row{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.pz-chip{color:#1f4520;letter-spacing:.2px;background:#2c5f2d1a;border:1px solid #2c5f2d29;border-radius:999px;padding:4px 10px;font-size:.74rem;font-weight:600}.pz-chip.pz-chip-hidden{color:#8b95a0;background:#0000000d;border-color:#0000000f}.pz-chip.pz-chip-hidden:before{content:"? ";opacity:.6;font-family:JetBrains Mono,monospace}.pz-actions{flex-direction:column;gap:10px;margin-top:4px;display:flex}.pz-btn{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px 18px;font-size:.92rem;font-weight:600;transition:transform .2s,box-shadow .2s,filter .2s;display:inline-flex;position:relative}.pz-btn:disabled{opacity:.5;cursor:default}.pz-btn.pz-primary{color:#fff;background:linear-gradient(#3d8b40,#2c5f2d);box-shadow:0 6px 14px -4px #2c5f2d66}.pz-btn.pz-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 22px -6px #2c5f2d80}.pz-btn.pz-ghost{color:#1b1f20;background:#ffffffb3;border-color:#00000014}.pz-btn.pz-ghost:hover:not(:disabled){background:#fff}.pz-btn.pz-share{color:#2c5f2d;background:#2c5f2d1a;border-color:#2c5f2d40;margin-top:8px}.pz-btn.pz-share:hover:not(:disabled){background:#2c5f2d29}.pz-demo-cta{background:#ffffffa6;border:1px solid #0000000f;border-radius:14px;margin-top:8px;padding:14px 16px}.pz-demo-cta.pz-demo-cta-solved{background:linear-gradient(135deg,#27ae6029,#27ae600a);border-color:#27ae604d}.pz-demo-cta-title{color:#1b1f20;letter-spacing:-.01em;font-family:Fraunces,Georgia,serif;font-size:1.05rem;font-weight:600;line-height:1.2}.pz-demo-cta-text{color:#46504f;margin:6px 0 0;font-size:.9rem;line-height:1.35}.pz-btn.pz-demo-cta-btn{width:100%;min-height:var(--touch-target-min,44px);margin-top:12px;display:flex}.pz-btn .pz-btn-help{opacity:.65;cursor:help;outline:none;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.pz-btn .pz-btn-help:hover,.pz-btn .pz-btn-help:focus-visible{opacity:1}.pz-btn-help:after{content:attr(data-tip);color:#fff;text-align:left;white-space:normal;opacity:0;visibility:hidden;pointer-events:none;z-index:20;background:#1b1f20;border-radius:8px;width:max-content;max-width:220px;padding:8px 10px;font-size:.72rem;font-weight:500;line-height:1.35;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 8px);right:-6px;transform:translateY(4px);box-shadow:0 8px 20px -6px #00000059}.pz-btn-help:hover:after,.pz-btn-help:focus-visible:after{opacity:1;visibility:visible;transform:translateY(0)}.pz-review{gap:10px;margin-top:4px;display:flex}.pz-review-btn{color:#fff;cursor:pointer;background:linear-gradient(#3d8b40,#2c5f2d);border:1px solid #0000;border-radius:12px;flex:1;justify-content:center;align-items:center;padding:12px;transition:transform .15s,box-shadow .15s;display:inline-flex;box-shadow:0 6px 14px -4px #2c5f2d66}.pz-review-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 22px -6px #2c5f2d80}.pz-review-btn:disabled{opacity:.5;cursor:default}.pz-review-btn svg{width:20px;height:20px}.pz-feedback-slot{min-height:44px;display:flex}.pz-feedback{text-align:center;pointer-events:none;border-radius:12px;flex:1;justify-content:center;align-items:center;padding:11px 18px;font-size:1rem;font-weight:700;display:flex}.pz-feedback.pz-correct{color:#fff;background:#27ae60eb;animation:.5s ease-out pzFeedbackPop}.pz-feedback.pz-incorrect{color:#fff;background:#e74c3ceb;animation:.5s ease-out pzFeedbackShake}@keyframes pzFeedbackPop{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:none}}@keyframes pzFeedbackShake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.pz-loading{color:#636e72;justify-content:center;align-items:center;min-height:300px;font-size:1rem;display:flex}.pz-page .capture-target{fill:none;stroke:#b4ffaaf2;stroke-width:4px;opacity:.95}@media (width>=881px){.pz-board-col{width:min(100%,100dvh - 460px);margin-inline:auto}}@media (width<=880px){.pz-page{padding:10px 14px 60px}.pz-hero{display:none}.pz-play{grid-template-columns:1fr;gap:12px;padding:16px}.pz-board-col{gap:8px}.pz-feedback-slot{min-height:0}.pz-side .pz-turn-card{order:0}.pz-side .pz-actions{order:1}.pz-side .pz-stats{order:2}.pz-side .pz-move-progress{order:3}.pz-side .pz-demo-cta{order:4}.pz-turn-card{justify-content:space-between;align-items:center;gap:12px;display:flex}.pz-turn-main{min-width:0}.pz-turn-streak{color:#c9a227;background:linear-gradient(135deg,#c9a22729,#c9a2270a);border:1px solid #c9a2274d;border-radius:999px;flex-shrink:0;align-items:center;gap:7px;padding:7px 13px;display:inline-flex}}@media (width<=768px){.pz-page{height:calc(100dvh - var(--bottom-nav-height,64px));min-height:0;padding:0 12px max(6px, env(safe-area-inset-bottom));background:linear-gradient(#e7e1d4,#d8d0c2);flex-direction:column;display:flex;overflow:hidden auto}.pz-page:before,.pz-page:after{display:none}.pz-inner{flex-direction:column;flex:1;gap:8px;width:100%;max-width:none;min-height:0;margin:0;padding:0;display:flex}.pz-play{min-height:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-radius:0;flex-direction:column;flex:1;gap:8px;padding:0;display:flex;overflow:visible}.pz-side{display:contents}.pz-side .pz-turn-card{flex-wrap:wrap;flex:none;order:1;margin:8px 0 0;padding:12px 16px}.pz-side .pz-turn-card .pz-eyebrow{letter-spacing:1.5px;font-size:.76rem}.pz-side .pz-turn-card .pz-turn-line{margin-top:3px;font-size:1.15rem;line-height:1.15}.pz-side .pz-turn-card .pz-turn-main{flex:0 0 100%;order:1;min-width:0}.pz-side .pz-turn-card .pz-turn-dots{order:2;margin-top:0;display:flex}.pz-side .pz-turn-card .pz-turn-streak{order:3;padding:9px 15px}.pz-side .pz-turn-streak-val{font-size:1.2rem}.pz-side .pz-move-progress{display:none}.pz-board-col{flex:none;order:2}.pz-side .pz-actions{flex-shrink:0;order:3}.pz-side .pz-stats{flex-shrink:0;order:4}.pz-side .pz-share{flex-shrink:0;order:5}.pz-side .pz-demo-cta{flex-shrink:0;order:5;margin-top:4px;padding:12px 14px}.pz-board-col{flex-direction:column;flex:none;justify-content:center;align-items:center;gap:0;min-height:0;display:flex;position:relative}.pz-board-wrap{aspect-ratio:1;border-radius:14px;width:100%;height:auto;box-shadow:0 1px 3px #231e141a}.pz-feedback-slot{pointer-events:none;justify-content:center;min-height:0;position:absolute;bottom:10px;left:0;right:0}.pz-feedback{flex:0 auto;padding:9px 18px;font-size:.95rem;box-shadow:0 8px 22px -8px #0006}.pz-actions{flex-flow:wrap;gap:10px}.pz-actions .pz-btn{border-radius:14px;flex:1 1 0;min-width:0;min-height:56px;padding:16px 18px;font-size:1.02rem}.pz-actions .pz-review{flex-basis:100%;gap:10px;margin-top:0}.pz-actions .pz-review-btn{border-radius:14px;min-height:54px;padding:14px}.pz-actions .pz-review-btn svg{width:24px;height:24px}.pz-actions .pz-btn-help:after{left:50%;right:auto;transform:translate(-50%,4px)}.pz-actions .pz-btn-help:hover:after,.pz-actions .pz-btn-help:focus-visible:after{transform:translate(-50%)}.pz-actions .pz-btn:hover,.pz-actions .pz-btn:focus-within{z-index:30}.pz-stats{gap:10px}.pz-stat{padding:9px 14px}.pz-stat .pz-lbl{font-size:.66rem}.pz-stat .pz-val{font-size:1.25rem}.pz-move-progress{padding:9px 14px}.pz-dots{margin-top:7px}.pz-dot{height:7px}}.pzi-page{padding:var(--spacing-lg) var(--spacing-md) 72px;justify-content:center;align-items:center;min-height:60vh;display:flex}.pzi-card{box-sizing:border-box;width:100%;max-width:420px;padding:var(--spacing-lg);border-radius:var(--radius-lg);background:var(--color-surface,#fff);box-shadow:var(--shadow-lg);text-align:center}.pzi-eyebrow{margin-bottom:var(--spacing-md);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary);font-size:.72rem;font-weight:700}.pzi-board-wrap{aspect-ratio:1;width:min(260px,70vw);margin:0 auto var(--spacing-sm);position:relative}.pzi-board-svg{border-radius:var(--radius-md);filter:blur(3px)saturate(.9);opacity:.85;-webkit-user-select:none;user-select:none;pointer-events:none;width:100%;height:auto;display:block}.pzi-lock{pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.pzi-lock>svg{background:var(--color-surface,#fff);color:var(--color-text-secondary);box-shadow:var(--shadow-md);box-sizing:content-box;border-radius:50%;padding:10px}.pzi-locked-caption{margin:0 0 var(--spacing-md);letter-spacing:.02em;color:var(--color-text-secondary);font-size:.78rem;font-weight:600}.pzi-tags{margin-bottom:var(--spacing-lg);flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.pzi-tag{background:var(--color-beige-warm,#0000000d);color:var(--color-text);border-radius:999px;align-items:center;gap:4px;padding:4px 9px;font-size:.78rem;font-weight:600;display:inline-flex}.pzi-tag.muted{border:1px solid var(--color-border);color:var(--color-text-secondary);background:0 0}.pzi-restriction{color:var(--color-text-secondary);margin-bottom:6px;font-size:.78rem;font-weight:600}.pzi-title{margin:0 0 var(--spacing-sm);color:var(--color-text);overflow-wrap:anywhere;font-size:1.15rem;line-height:1.3}.pzi-body{margin:0 0 var(--spacing-lg);color:var(--color-text-secondary);font-size:.9rem;line-height:1.45}.pzi-actions{flex-direction:column;gap:10px;display:flex}.pzi-cta{width:100%;min-height:var(--touch-target-min);cursor:pointer;border-radius:11px;justify-content:center;align-items:center;padding:12px 18px;font-family:DM Sans,sans-serif;font-size:.95rem;font-weight:600;display:flex}.pzi-primary{background:linear-gradient(135deg, var(--color-forest-medium,#3d8b40), var(--color-forest-dark,#2c5f2d));color:#fff;border:none;box-shadow:0 2px 8px #2c5f2d47}.pzi-primary:hover{filter:brightness(1.06)}.pzi-secondary{border:1px solid var(--color-border);color:var(--color-text);background:0 0}.pzi-ghost{color:var(--color-text-secondary);background:0 0;border:none;font-weight:500}.pzi-secondary:hover,.pzi-ghost:hover{background:#0000000a}.pzi-spinner{width:32px;height:32px;margin:0 auto var(--spacing-md);border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:1s linear infinite pzi-spin}@keyframes pzi-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.pzi-spinner{animation-duration:.01ms!important;animation-iteration-count:1!important}}.online-lobby{background:radial-gradient(800px 600px at 12% -10%,#2c5f2d1f,#0000 60%),radial-gradient(700px 500px at 95% 20%,#c9a2271f,#0000 55%),radial-gradient(600px 500px at 50% 100%,#b588631a,#0000 55%),#d8d0c2;justify-content:center;align-items:center;min-height:100vh;padding:70px 24px 60px;display:flex;position:relative}.lobby-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);text-align:center;font-feature-settings:"ss01", "ss02", "liga", "dlig", "calt";background:linear-gradient(#ffffffeb,#ffffffd1);border:1px solid #fff9;border-radius:18px;width:100%;max-width:440px;padding:36px 40px;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;box-shadow:inset 0 1px #ffffffe6,0 8px 32px #231e141a,0 2px 8px #231e140f}.lobby-card h2{font-variation-settings:"opsz" 144, "SOFT" 50;letter-spacing:-.01em;color:#1b1f20;margin-bottom:18px;font-family:Fraunces,Times New Roman,serif;font-size:1.6rem;font-weight:600;line-height:1.15}.lobby-card h3{margin-bottom:var(--spacing-sm);color:var(--color-text);font-size:1.1rem}.lobby-card p{color:var(--color-text-secondary);margin-bottom:var(--spacing-md);font-size:.9rem}.lobby-section{margin-bottom:var(--spacing-lg)}.lobby-button{cursor:pointer;border:none;border-radius:11px;min-height:44px;padding:11px 24px;font-family:inherit;font-size:.95rem;font-weight:600;transition:all .18s}.lobby-button.primary{background:linear-gradient(135deg, var(--color-forest-medium), var(--color-forest-dark));color:#fff;box-shadow:0 2px 8px #2c5f2d47}.lobby-button.primary:hover{filter:brightness(1.06)}.lobby-button.primary:disabled{background:var(--color-neutral-600);box-shadow:none;cursor:not-allowed}.lobby-button.secondary{color:#1b1f20;background:0 0;border:1px solid #0000001f}.lobby-button.secondary:hover{background:#0000000a;border-color:#0003}.lobby-divider{margin:var(--spacing-lg) 0;align-items:center;display:flex}.lobby-divider:before,.lobby-divider:after{content:"";background-color:#fff3;flex:1;height:1px}.lobby-divider span{padding:0 var(--spacing-md);color:var(--color-text-secondary);font-size:.85rem}.join-form{gap:var(--spacing-sm);display:flex}.join-form input{padding:var(--spacing-md);color:var(--color-text);text-transform:uppercase;letter-spacing:2px;text-align:center;background-color:#0003;border:1px solid #fff3;border-radius:8px;flex:1;font-size:1rem}.join-form input::placeholder{text-transform:none;letter-spacing:normal}.join-form input:focus{border-color:var(--color-primary);outline:none}.room-info{margin:var(--spacing-lg) 0}.room-code{justify-content:center;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-sm);display:flex}.room-code span{letter-spacing:3px;padding:var(--spacing-sm) var(--spacing-md);background-color:#0000004d;border-radius:6px;font-size:1.5rem;font-weight:700}.copy-button{padding:var(--spacing-sm) var(--spacing-md);color:var(--color-text);cursor:pointer;background-color:#0000;border:1px solid #fff3;border-radius:6px;font-size:.85rem}.copy-button:hover{background-color:#ffffff1a}.variant-selector{gap:var(--spacing-sm);margin-bottom:var(--spacing-md);justify-content:center;display:flex}.variant-button{padding:var(--spacing-sm) var(--spacing-md);color:var(--color-text-secondary);cursor:pointer;background-color:#0000;border:1px solid #fff3;border-radius:6px;font-size:.85rem;transition:all .2s}.variant-button:hover{background-color:#ffffff1a}.variant-button.active{background-color:var(--color-primary);border-color:var(--color-primary);color:#fff}.variant-info{color:var(--color-text);font-size:.95rem;font-weight:600}.color-info{color:var(--color-text)}.color-info strong{color:var(--color-primary)}.error-message{color:#b23b2e;padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-md);background-color:#e74c3c1a;border:1px solid #e74c3c38;border-radius:10px}.spinner{border:3px solid #1f45201f;border-top-color:var(--color-forest-dark);width:48px;height:48px;margin:var(--spacing-md) auto;border-radius:50%;animation:1.1s cubic-bezier(.5,.05,.5,.95) infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.lobby-section.matchmaking{padding:var(--spacing-lg);background:linear-gradient(135deg,#2c5f2d1a 0%,#2c5f2d0d 100%);border:1px solid #2c5f2d4d;border-radius:10px}.lobby-section.matchmaking.disabled{background:#ffffff05;border-color:#ffffff1a}.login-hint{color:var(--color-text-secondary);font-style:italic}.time-control-selector{gap:var(--spacing-sm);margin-bottom:var(--spacing-md);grid-template-columns:repeat(3,1fr);display:grid}.time-control-button{padding:var(--spacing-sm) var(--spacing-xs);color:var(--color-text-secondary);cursor:pointer;background-color:#0000;border:1px solid #fff3;border-radius:6px;font-size:.875rem;transition:all .2s}.time-control-button:hover{background-color:#ffffff1a;border-color:#ffffff4d}.time-control-button.active{background-color:var(--color-primary);border-color:var(--color-primary);color:#fff}.lobby-button.find-match{width:100%;padding:var(--spacing-md) var(--spacing-xl);font-size:1.1rem}.lobby-card.searching h2{margin-bottom:22px;font-size:1.7rem}.lobby-card.searching .search-info{flex-direction:column;align-items:center;gap:10px;margin:18px 0 24px;display:flex}.lobby-card.searching .variant-badge,.lobby-card.searching .time-control-badge{color:#1f4520;letter-spacing:.02em;text-transform:uppercase;background:#2c5f2d14;border:1px solid #2c5f2d33;border-radius:999px;margin:0;padding:5px 12px;font-size:.78rem;font-weight:600;display:inline-block}.lobby-card.searching .time-control-badge{color:#8b6f0f;background:#c9a2271a;border-color:#c9a22740}.lobby-card.searching .search-timer{color:#1f4520;letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:8px;font-family:JetBrains Mono,monospace;font-size:2.6rem;font-weight:700}.lobby-card.searching .spinner{border:3px solid #1f45201f;border-top-color:#2c5f2d;border-radius:50%;width:56px;height:56px;margin:24px auto 18px;animation:1.1s cubic-bezier(.5,.05,.5,.95) infinite spin}.lobby-card.searching .estimated-wait{color:#636e72;margin:6px 0 18px;font-size:.88rem}.lobby-card.searching .search-hint{color:#8b95a0;margin:4px 0 20px;font-size:.82rem;font-style:italic}.lobby-card.searching .abort-notice{color:#b4690e;background:#ff9f431f;border:1px solid #ff9f434d;border-radius:10px;margin:0 0 18px;padding:10px 14px;font-size:.9rem;font-weight:600;line-height:1.35}.lobby-card.searching .lobby-button.secondary{color:#1b1f20;background:0 0;border:1px solid #0000001f;border-radius:10px;padding:10px 22px;font-size:.88rem;font-weight:600;transition:all .18s}.lobby-card.searching .lobby-button.secondary:hover{background:#0000000a;border-color:#0003}@media (width<=899px){.online-lobby:has(.lobby-card.searching){z-index:200;min-height:0;padding:0;position:fixed;inset:0;overflow:hidden}.lobby-card.searching{width:100%;max-width:none;height:100%;box-shadow:none;padding:24px 20px calc(24px + env(safe-area-inset-bottom));border:none;border-radius:0;flex-direction:column;justify-content:center;align-items:center;display:flex}}.custom-time-control{margin-top:var(--spacing-md)}@media (width<=400px){.time-control-selector{grid-template-columns:repeat(2,1fr)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:.01ms!important;animation-iteration-count:1!important}}.guest-chat-composer{gap:var(--spacing-xs);padding:var(--spacing-sm);background-color:#0003;border-top:1px solid #ffffff0d;flex-direction:column;display:flex}.guest-chat-presets{gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.guest-chat-preset{color:var(--color-text);cursor:pointer;background-color:#ffffff0d;border:1px solid #ffffff1f;border-radius:14px;padding:4px 10px;font-size:.8rem;transition:background-color .15s,border-color .15s}.guest-chat-preset:hover:not(:disabled){background-color:var(--color-primary);border-color:var(--color-primary);color:#fff}.guest-chat-preset:disabled{opacity:.5;cursor:not-allowed}.guest-chat-emojis{flex-wrap:wrap;gap:2px;display:flex}.guest-chat-emoji{cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;min-width:36px;min-height:36px;padding:0;font-size:1.2rem;line-height:1;transition:background-color .15s,transform .1s;display:flex}.guest-chat-emoji:hover:not(:disabled){background-color:#ffffff1a;transform:scale(1.1)}.guest-chat-emoji:disabled{opacity:.5;cursor:not-allowed}.chat-panel{background-color:var(--color-surface);border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;transition:height .2s;display:flex;overflow:hidden}.chat-panel.open{width:100%;max-width:280px;max-height:400px}.chat-panel.closed{width:100%;max-width:280px;height:auto}.chat-header{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-primary);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;min-height:40px;display:flex}.chat-header:hover{background-color:var(--color-primary-hover)}.chat-title{color:var(--color-text);font-size:.9rem;font-weight:500}.chat-toggle{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:.8rem}.chat-badge{background-color:var(--color-primary);color:#fff;text-align:center;border-radius:10px;min-width:18px;padding:2px 6px;font-size:.7rem;font-weight:700}.chat-messages{min-height:0;padding:var(--spacing-sm);gap:var(--spacing-xs);flex-direction:column;flex:1;display:flex;overflow-y:auto}.chat-empty{color:var(--color-text-secondary);text-align:center;padding:var(--spacing-lg);font-size:.85rem;font-style:italic}.chat-message{padding:var(--spacing-xs) var(--spacing-sm);word-wrap:break-word;border-radius:8px;flex-direction:column;max-width:85%;display:flex}.chat-message.own{color:var(--color-text);background-color:#2c5f2d1f;border:1px solid #2c5f2d2e;align-self:flex-end}.chat-message.opponent{color:var(--color-text);background-color:#0000000d;border:1px solid #00000012;align-self:flex-start}.chat-message.white .chat-sender{color:#4a6572}.chat-message.black .chat-sender{color:#7a5230}.chat-message.own .chat-sender{color:var(--color-text-secondary)}.chat-message-header{align-items:center;gap:var(--spacing-xs);margin-bottom:2px;display:flex}.chat-sender{font-size:.75rem;font-weight:600}.chat-time{opacity:.6;font-size:.65rem}.chat-message-content{font-size:.875rem;line-height:1.4}.chat-guest-hint{padding:var(--spacing-xs) var(--spacing-sm);color:var(--color-text-secondary);background-color:#00000008;border-top:1px solid #00000014;font-size:.7rem;line-height:1.3}.chat-input-form{gap:var(--spacing-xs);padding:var(--spacing-sm);background-color:#0000;border-top:1px solid #00000014;display:flex}.chat-input{padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-surface);color:var(--color-text);border:1px solid #0000001f;border-radius:4px;flex:1;font-size:16px}.chat-input:focus{border-color:var(--color-primary);outline:none}.chat-input:disabled{opacity:.5;cursor:not-allowed}.chat-input::placeholder{color:var(--color-text-secondary)}.chat-send-button{padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:4px;font-size:.8rem;font-weight:500;transition:background-color .2s}.chat-send-button:hover:not(:disabled){background-color:var(--color-primary-hover)}.chat-send-button:disabled{opacity:.5;cursor:not-allowed}@media (width<=900px){.chat-panel.open{width:100%;max-width:100%}}@media (width<=500px){.chat-message{max-width:90%}}.sidebar-tabs{background-color:var(--color-surface);border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;flex:1;width:100%;max-width:280px;min-height:0;display:flex;overflow:hidden}.sidebar-tabs-bar{border-bottom:1px solid #ffffff1a;display:flex}.sidebar-tab{padding:var(--spacing-sm) var(--spacing-md);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:6px;min-height:40px;font-size:.9rem;font-weight:500;transition:color .15s,border-color .15s,background-color .15s;display:flex}.sidebar-tab:hover{color:var(--color-text);background-color:#ffffff0d}.sidebar-tab.active{color:var(--color-text);border-bottom-color:var(--color-primary)}.sidebar-tab-badge{background-color:var(--color-primary);color:#fff;text-align:center;border-radius:10px;min-width:16px;padding:1px 5px;font-size:.7rem;font-weight:700;line-height:1.3}.sidebar-tabs-content{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.sidebar-tabs-content .move-list{border:none;border-radius:0}.sidebar-tabs-content .chat-panel{border:none;border-radius:0;width:100%}.sidebar-tabs-content .chat-panel.open{flex:1;width:100%;min-height:0;max-height:none}@media (width<=900px){.sidebar-tabs{width:100%;max-width:100%}}.rematch-panel{padding:0}.session-score{display:none}.match-result{justify-content:center;align-items:baseline;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm);text-align:center;flex-wrap:wrap;display:flex}.match-result-label{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-secondary);font-size:.72rem;font-weight:800}.match-result-score{color:var(--color-text);font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:700}.score-label{color:var(--color-text-secondary);font-size:.9rem}.score-value{color:var(--color-text);font-variant-numeric:tabular-nums;font-size:1.2rem;font-weight:700}.rematch-notification{text-align:center;padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-md);color:var(--color-primary);background-color:#2c5f2d33;border:1px solid #2c5f2d66;border-radius:6px;font-weight:500;animation:2s infinite pulse-bg}@keyframes pulse-bg{0%,to{background-color:#2c5f2d33}50%{background-color:#2c5f2d4d}}.rematch-waiting{justify-content:center;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);color:var(--color-text-secondary);font-size:.9rem;display:flex}.rematch-actions{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border:1px solid #0000000d;border-radius:12px;align-items:stretch;gap:0;width:100%;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;display:flex;overflow:hidden;box-shadow:0 1px 4px #00000012,0 3px 10px #0000000a}.rematch-btn,.new-game-btn{min-height:52px;font:inherit;color:var(--color-neutral-700,#4a5568);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:3px;padding:10px 8px;transition:background .25s cubic-bezier(.4,0,.2,1),color .25s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.rematch-btn:not(:last-child):after,.new-game-btn:not(:last-child):after{content:"";background:#0000000f;width:1px;position:absolute;top:12px;bottom:12px;right:0}.rematch-btn svg,.new-game-btn svg{opacity:.6;flex-shrink:0;transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .25s}.rematch-btn span,.new-game-btn span{text-transform:uppercase;letter-spacing:.4px;opacity:.55;font-size:.65rem;font-weight:600;transition:opacity .25s,color .25s}.rematch-btn:hover:not(:disabled),.new-game-btn:hover:not(:disabled){background:#00000005}.rematch-btn:hover:not(:disabled) svg,.new-game-btn:hover:not(:disabled) svg{opacity:.9;transform:scale(1.12)}.rematch-btn:hover:not(:disabled) span,.new-game-btn:hover:not(:disabled) span{opacity:.85}.rematch-btn:active:not(:disabled),.new-game-btn:active:not(:disabled){background:#0000000a}.rematch-btn:active:not(:disabled) svg,.new-game-btn:active:not(:disabled) svg{transition-duration:.1s;transform:scale(.95)}.rematch-btn:disabled{opacity:.45;cursor:not-allowed}.rematch-btn.request:hover:not(:disabled),.rematch-btn.accept:hover:not(:disabled){color:var(--color-forest-dark,#2c5f2d);background:#2c5f2d0d}.rematch-btn.request:hover:not(:disabled) span,.rematch-btn.accept:hover:not(:disabled) span{color:var(--color-forest-dark,#2c5f2d)}.rematch-btn.decline:hover:not(:disabled){color:var(--color-error,#e74c3c);background:#e74c3c0f}.rematch-btn.decline:hover:not(:disabled) span{color:var(--color-error,#e74c3c)}.spinner-small{border:2px solid #00000026;border-top-color:var(--color-forest-dark,#2c5f2d);border-radius:50%;width:16px;height:16px;animation:1s linear infinite spin}@media (width<=899px){.rematch-notification,.rematch-waiting{margin-bottom:var(--spacing-sm)}}@media (prefers-reduced-motion:reduce){.rematch-notification,.spinner-small{animation-duration:.01ms!important;animation-iteration-count:1!important}}.return-leg-countdown{align-items:center;gap:var(--spacing-xs);width:100%;padding:var(--spacing-sm) 0 0;text-align:center;flex-direction:column;display:flex}.rlc-leg{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-secondary);font-size:.66rem;font-weight:800}.rlc-score{justify-content:center;align-items:baseline;gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.rlc-score-label{color:var(--color-text-secondary);font-size:.8rem}.rlc-score-value{color:var(--color-text);font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:700}.rlc-countdown{color:var(--color-text);font-variant-numeric:tabular-nums;margin:0;font-size:1rem;font-weight:600}.rlc-warning{color:var(--color-text-secondary);margin:0;font-size:.8rem;line-height:1.35}.rlc-rating-note{color:var(--color-text-tertiary,var(--color-text-secondary));opacity:.85;margin:0;font-size:.8rem;line-height:1.35}.rlc-ready-btn{justify-content:center;align-items:center;gap:var(--spacing-xs);width:100%;min-height:var(--touch-target-min,44px);margin-top:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);font:inherit;color:#fff;background:var(--color-primary,#2c5f2d);cursor:pointer;border:none;border-radius:8px;font-size:.95rem;font-weight:600;transition:opacity .2s,transform .1s;display:flex}.rlc-ready-btn:hover:not(:disabled){opacity:.92}.rlc-ready-btn:active:not(:disabled){transform:scale(.99)}.rlc-ready-btn:disabled{opacity:.55;cursor:default}.rlc-opponent-ready{color:var(--color-primary,#2c5f2d);margin:0;font-size:.8rem;font-weight:600}.rlc-leave-btn{width:100%;min-height:var(--touch-target-min,44px);padding:var(--spacing-xs) var(--spacing-md);font:inherit;color:var(--color-text-secondary);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;font-size:.85rem;font-weight:600;text-decoration:underline}.rlc-leave-btn:hover{color:var(--color-text)}.return-leg-pill{z-index:20;font-variant-numeric:tabular-nums;color:#fff;background:#2c5f2df0;border-radius:999px;align-items:center;gap:8px;max-width:calc(100% - 12px);padding:8px 14px;font-size:.85rem;font-weight:600;display:flex;position:absolute;bottom:8px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px -8px #14281473}.drawn-opening-banner{z-index:20;color:#8a6d1a;-webkit-backdrop-filter:blur(6px);background:radial-gradient(at 0 0,#c9a22729,#0000 60%),linear-gradient(#fffffff7,#fffcf7f2);border:1px solid #c9a2276b;border-radius:16px;align-items:center;gap:10px;width:max-content;max-width:calc(100% - 12px);padding:8px 8px 8px 12px;animation:.24s cubic-bezier(.16,1,.3,1) both dob-in;display:flex;position:absolute;top:8px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px -8px #231e1447,0 0 0 3px #c9a2271a}@keyframes dob-in{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}.dob-icon{color:#b8901f;flex:none;display:inline-flex}.dob-text{flex-direction:column;min-width:0;line-height:1.2;display:flex}.dob-label{letter-spacing:.06em;text-transform:uppercase;color:#9a7b16;font-size:.66rem;font-weight:800}.dob-moves{letter-spacing:-.01em;color:#5a4a12;white-space:normal;word-break:break-word;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;font-weight:600;line-height:1.3}.dob-close{width:var(--touch-target-min,44px);height:var(--touch-target-min,44px);color:#8a6d1a;cursor:pointer;background:0 0;border:none;border-radius:999px;flex:none;justify-content:center;align-items:center;margin:-8px -4px -8px 0;display:inline-flex}.dob-close:hover{background:#c9a22724}@media (prefers-reduced-motion:reduce){.drawn-opening-banner{animation:none}}.dob-leg{color:#8a6d1a;letter-spacing:.04em;background:#c9a2272e;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:.6rem;font-weight:800}.online-game{align-items:center;gap:var(--spacing-md);width:100%;max-width:900px;padding:0 var(--spacing-md);flex-direction:column;margin:0 auto;display:flex}.online-game-header{gap:var(--spacing-lg);flex-wrap:wrap;justify-content:center;display:flex}.room-badge,.player-badge{background-color:var(--color-surface);padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;font-size:.9rem}.room-badge span{letter-spacing:1px;font-weight:700}.player-badge span{font-weight:700}.online-turn-indicator{align-items:center;gap:var(--spacing-sm);font-size:1.1rem;display:flex}.online-turn-indicator .turn-dot{border:2px solid var(--color-text-secondary);border-radius:50%;width:16px;height:16px}.online-turn-indicator .turn-dot.white{background-color:var(--color-beige-cream)}.online-turn-indicator .turn-dot.black{background-color:var(--color-brown-dark)}.online-turn-indicator .turn-dot.waiting{animation:1s ease-in-out infinite pulse}.result-reason{color:var(--color-text-secondary);font-size:.9rem}.player-info-bar{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-surface);box-sizing:border-box;border-radius:6px;width:100%;min-height:40px;font-size:1rem;display:flex}.player-info-bar.opponent,.player-info-bar.you{border-left:4px solid var(--color-neutral-600);background-color:#636e721a}@media (width<=1000px){.online-board-wrapper{width:100%;max-width:min(100vw - 2rem,100vh - 300px)}}@media (width<=900px){.online-game{max-width:100%}.online-board-container{flex-direction:column;align-items:center}.online-game-sidebar{width:100%;max-width:480px;min-width:unset}}.online-game-actions{gap:var(--spacing-md);margin-top:var(--spacing-md);display:flex}.action-button{padding:var(--spacing-sm) var(--spacing-lg);cursor:pointer;min-height:44px;color:var(--color-text);background-color:#0000;border:1px solid #fff3;border-radius:6px;font-size:.9rem;transition:all .2s}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.1)}}@media (prefers-reduced-motion:reduce){.online-turn-indicator .turn-dot.waiting{animation-duration:.01ms!important;animation-iteration-count:1!important}}.legal-modal-overlay{z-index:1100;padding:var(--spacing-md);background-color:#000000bf;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.legal-modal{background-color:var(--color-surface);border-radius:12px;flex-direction:column;width:100%;max-width:700px;max-height:80vh;display:flex;box-shadow:0 8px 32px #0006}.legal-modal-header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid #ffffff1a;flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.legal-modal-header h3{color:var(--text-primary);margin:0;font-size:1.2rem}.legal-modal-close{color:var(--color-text-secondary);cursor:pointer;padding:var(--spacing-xs) var(--spacing-sm);background:0 0;border:none;border-radius:6px;font-size:1.5rem;line-height:1}.legal-modal-close:hover{color:var(--color-text);background:#ffffff0d}.legal-modal-body{padding:var(--spacing-lg);color:var(--text-primary);line-height:1.7;overflow-y:auto}.legal-modal-body h2{color:var(--text-primary);margin:1.5rem 0 .6rem;font-size:1.2rem;font-weight:700}.legal-modal-body h2:first-child{margin-top:0}.legal-modal-body h3{color:var(--text-primary);margin:1.2rem 0 .4rem;font-size:1.05rem;font-weight:600}.legal-modal-body p{color:var(--text-secondary);margin:0 0 .8rem;font-size:.92rem}.legal-modal-body ul,.legal-modal-body ol{color:var(--text-secondary);margin:0 0 .8rem;padding-left:1.5rem;font-size:.92rem}.legal-modal-body li{margin-bottom:.3rem}.legal-modal-body a{color:var(--color-forest-light);text-decoration:underline}.legal-modal-body a:hover{color:var(--color-forest)}@media (width<=480px){.legal-modal{border-radius:8px;max-height:90vh}.legal-modal-header{padding:var(--spacing-sm) var(--spacing-md)}.legal-modal-header h3{font-size:1.05rem}.legal-modal-body{padding:var(--spacing-md)}}.auth-modal-overlay{z-index:1000;padding:var(--spacing-md);background-color:#000000b3;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}.auth-modal{background-color:var(--color-surface);padding:var(--spacing-xl);border-radius:12px;width:100%;max-width:400px;margin:auto;position:relative;box-shadow:0 4px 20px #0000004d}.auth-modal-close{top:var(--spacing-sm);right:var(--spacing-sm);color:var(--color-text-secondary);cursor:pointer;padding:var(--spacing-sm);background:0 0;border:none;font-size:1.5rem;line-height:1;position:absolute}.auth-modal-close:hover{color:var(--color-text)}.auth-modal h2{text-align:center;margin-bottom:var(--spacing-lg);font-size:1.5rem}.auth-error{border:1px solid var(--color-error);color:var(--color-error);padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-md);text-align:center;background-color:#e74c3c1a;border-radius:6px;font-size:.9rem}.auth-resend-row{margin-top:8px}.auth-resend-link{color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;text-decoration:underline}.auth-resend-link:hover{opacity:.8}.auth-resend-link:disabled{opacity:.5;cursor:default}.auth-resend-sent{color:var(--color-success,#4caf50);font-size:.85rem}.auth-field{margin-bottom:var(--spacing-md)}.auth-field label{margin-bottom:var(--spacing-xs);color:var(--color-text-secondary);font-size:.9rem;display:block}.auth-field input{width:100%;padding:var(--spacing-md);color:var(--color-text);box-sizing:border-box;background-color:#0003;border:1px solid #fff3;border-radius:8px;min-height:44px;font-size:1rem}.auth-field input:focus{border-color:var(--color-primary);outline:none}.auth-field input::placeholder{color:var(--color-text-secondary)}.auth-field select{width:100%;padding:var(--spacing-md);color:var(--color-text);box-sizing:border-box;cursor:pointer;background-color:#0003;border:1px solid #fff3;border-radius:8px;min-height:44px;font-size:1rem}.auth-field select:focus{border-color:var(--color-primary);outline:none}.auth-field .variant-select-trigger{padding:var(--spacing-md);-webkit-backdrop-filter:none;min-height:44px;box-shadow:none;background:#0003;border:1px solid #fff3;border-radius:8px}.auth-field .variant-select-trigger:hover{background:#00000042}.auth-field .variant-select-trigger:focus-visible{border-color:var(--color-primary);outline:none}.auth-field .variant-select-value{color:var(--color-text);font-size:1rem;font-weight:400}.auth-field .variant-select-menu{border-radius:8px}.auth-field input.auth-input-error{border-color:var(--color-error)}.auth-field-error{color:var(--color-error);margin-top:4px;font-size:.78rem;line-height:1.3;display:block}.auth-password-wrapper{position:relative}.auth-password-wrapper input{width:100%;padding-right:44px}.auth-password-toggle{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.auth-password-toggle:hover{color:var(--color-text)}.auth-pw-requirements{gap:8px;margin-top:6px;display:flex}.auth-pw-requirements span{color:var(--color-text-secondary);background:#ffffff14;border-radius:4px;padding:2px 6px;font-size:.72rem;transition:background .2s,color .2s}.auth-pw-requirements span.met{color:var(--color-success,#4caf50);background:#4caf5033}.auth-field-hint{color:var(--color-text-secondary);margin-top:4px;font-size:.75rem;line-height:1.3;display:block}.auth-legal-hint{color:#b26a00;margin-top:4px;font-size:.78rem;line-height:1.3;display:block}.auth-terms-checkbox{margin:var(--spacing-sm) 0}.auth-terms-label{align-items:flex-start;gap:var(--spacing-sm);color:var(--color-text-secondary);cursor:pointer;padding:4px 0;font-size:.85rem;line-height:1.4;display:flex}.auth-terms-label input[type=checkbox]{cursor:pointer;width:18px;height:18px;accent-color:var(--color-primary);flex-shrink:0;margin-top:calc(.7em - 9px)}.auth-terms-link{min-height:0;color:var(--color-primary);cursor:pointer;font:inherit;line-height:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.auth-terms-link:hover{color:var(--color-primary-hover)}.auth-terms-checkbox--pending input[type=checkbox]{accent-color:var(--color-warning);outline:1px solid var(--color-warning);outline-offset:2px}.auth-submit{width:100%;padding:var(--spacing-md);background-color:var(--color-primary);color:#fff;cursor:pointer;min-height:44px;margin-top:var(--spacing-md);border:none;border-radius:8px;justify-content:center;align-items:center;font-size:1rem;font-weight:600;display:flex}.auth-submit:hover:not(:disabled){background-color:var(--color-primary-hover)}.auth-submit:disabled{background-color:var(--color-neutral-600);cursor:not-allowed}.auth-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:20px;height:20px;animation:1s linear infinite auth-spin}.auth-switch{text-align:center;margin-top:var(--spacing-lg);color:var(--color-text-secondary);font-size:.9rem}.auth-switch button{color:var(--color-primary);cursor:pointer;font-size:inherit;background:0 0;border:none;text-decoration:underline}.auth-switch button:hover{color:var(--color-primary-hover)}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-verification-message{text-align:center;padding:var(--spacing-md) 0}.auth-verification-icon{margin-bottom:var(--spacing-sm);font-size:3rem}.auth-verification-message h3{color:var(--color-primary);margin-bottom:var(--spacing-sm);font-size:1.1rem}.auth-verification-message p{color:var(--color-text-secondary);margin-bottom:var(--spacing-sm);font-size:.9rem;line-height:1.5}.auth-verification-hint{opacity:.7;font-size:.8rem!important}.verify-email-page{min-height:60vh;padding:var(--spacing-xl);justify-content:center;align-items:center;display:flex}.verify-email-card{background-color:var(--color-surface);padding:var(--spacing-xl) var(--spacing-xxl);text-align:center;border-radius:16px;width:100%;max-width:460px}.verify-email-card h2{margin-bottom:var(--spacing-md)}.verify-email-card p{color:var(--color-text-secondary);margin-bottom:var(--spacing-md);line-height:1.5}.verify-email-spinner{border:3px solid #ffffff26;border-top-color:var(--color-primary);width:40px;height:40px;margin:var(--spacing-lg) auto;border-radius:50%;animation:.8s linear infinite auth-spin;display:inline-block}.verify-email-success{color:var(--color-primary);font-size:1.1rem;font-weight:600}.verify-email-error{color:var(--color-error,#e74c3c)}.auth-forgot-link{text-align:right;margin-top:calc(-1 * var(--spacing-xs));margin-bottom:var(--spacing-xs)}.auth-forgot-link button{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.82rem;text-decoration:underline}.auth-forgot-link button:hover{color:var(--color-primary)}.auth-forgot-desc{color:var(--color-text-secondary);margin-bottom:var(--spacing-md);text-align:center;font-size:.9rem;line-height:1.5}@media (width<=767px){body:has(.auth-modal-overlay--fullscreen) .sidebar{display:none}.auth-modal-overlay--fullscreen{justify-content:stretch;align-items:stretch;padding:0}.auth-modal-overlay--fullscreen .auth-modal{-webkit-overflow-scrolling:touch;width:100%;max-width:none;height:100dvh;padding:max(var(--spacing-xl), env(safe-area-inset-top)) var(--spacing-lg) max(var(--spacing-xl), env(safe-area-inset-bottom));border-radius:0;margin:0;overflow-y:auto}.auth-modal-overlay--fullscreen .auth-modal-close{top:max(var(--spacing-sm), env(safe-area-inset-top));right:var(--spacing-sm)}}@media (prefers-reduced-motion:reduce){.auth-spinner,.verify-email-spinner{animation-duration:.01ms!important;animation-iteration-count:1!important}}.guest-banner{background:var(--surface-secondary,#2a2a3d);border-bottom:1px solid var(--border-color,#3a3a4d);color:var(--text-secondary,#b0b0c0);z-index:100;align-items:center;gap:12px;padding:8px 16px;font-size:.875rem;display:flex}.guest-banner-text{flex:1}.guest-banner-upgrade{background:var(--color-primary,#2c5f2d);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:4px;padding:4px 12px;font-size:.8125rem;font-weight:600}.guest-banner-upgrade:hover{background:var(--color-primary-hover,#3d8b40)}.guest-banner-close{color:var(--text-secondary,#b0b0c0);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1.25rem;line-height:1}.guest-banner-close:hover{color:var(--text-primary,#e0e0e0)}.games-history-page{padding:var(--spacing-lg);background-color:var(--color-bg);background-image:var(--app-bg-image);background-size:var(--app-bg-size);background-position:var(--app-bg-position);justify-content:center;min-height:100vh;display:flex}.games-history-page .games-card{background-color:var(--color-surface);padding:var(--spacing-xl);border-radius:12px;width:100%;max-width:600px;position:relative;box-shadow:0 4px 20px #0000004d}.games-history-page .games-card h2{margin:0 0 var(--spacing-sm) 0;color:var(--color-text);font-size:1.5rem}.games-history-page .games-back{top:var(--spacing-md);left:var(--spacing-md);color:var(--color-primary);cursor:pointer;padding:var(--spacing-xs) var(--spacing-sm);background:0 0;border:none;font-size:.9rem;position:absolute}.games-history-page .games-back:hover{text-decoration:underline}.games-history-page .games-count{color:var(--color-text-secondary);margin:0 0 var(--spacing-lg) 0;font-size:.9rem}.games-history-page .games-message{color:var(--color-text-secondary);text-align:center;padding:var(--spacing-xl) 0}.games-history-page .games-error{color:var(--color-error);text-align:center}.games-history-page .games-spinner{border:3px solid #ffffff1a;border-top-color:var(--color-primary);width:40px;height:40px;margin:var(--spacing-md) auto;border-radius:50%;animation:1s linear infinite games-spin}@keyframes games-spin{to{transform:rotate(360deg)}}.games-history-page .games-list{gap:var(--spacing-sm);flex-direction:column;max-height:500px;display:flex;overflow-y:auto}.games-history-page .game-item{gap:var(--spacing-xs);padding:var(--spacing-md);cursor:pointer;text-align:left;background-color:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;width:100%;transition:background-color .2s,border-color .2s;display:flex}.games-history-page .game-item:hover{border-color:var(--color-primary);background-color:#ffffff1a}.games-history-page .game-item-main{align-items:center;gap:var(--spacing-md);display:flex}.games-history-page .game-result{padding:var(--spacing-xs) var(--spacing-sm);text-align:center;border-radius:4px;min-width:50px;font-size:.9rem;font-weight:700}.games-history-page .result-win{color:var(--color-success);background-color:#27ae6033}.games-history-page .result-loss{color:var(--color-error);background-color:#e74c3c33}.games-history-page .result-draw{color:var(--color-warning);background-color:#f39c1233}.games-history-page .game-opponent{color:var(--color-text);font-size:1rem}.games-history-page .game-item-details{gap:var(--spacing-sm);color:var(--color-text-secondary);flex-wrap:wrap;font-size:.8rem;display:flex}.games-history-page .game-variant,.games-history-page .game-time,.games-history-page .game-moves,.games-history-page .game-date{background-color:#ffffff0d;border-radius:4px;padding:2px 8px}@media (width<=600px){.games-history-page{padding:var(--spacing-sm)}.games-history-page .games-card{padding:var(--spacing-md)}.games-history-page .game-item-main{align-items:flex-start;gap:var(--spacing-xs);flex-direction:column}}@media (prefers-reduced-motion:reduce){.games-history-page .games-spinner{animation-duration:.01ms!important;animation-iteration-count:1!important}}.tournament-lobby{max-width:700px;padding:16px;padding-bottom:calc(100px + env(safe-area-inset-bottom,0px));margin:0 auto}.lobby-header-new{background:var(--color-surface);border:1px solid var(--color-brown-light);border-radius:16px;align-items:center;gap:16px;margin-bottom:16px;padding:16px;display:flex;box-shadow:0 2px 12px #0000001a}.back-button-new{color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);background:0 0;border:none;padding:8px;font-size:1.5rem;transition:all .2s}.back-button-new:hover{background:var(--color-bg);color:var(--color-text)}.header-center{flex:1}.tournament-name-new{color:var(--color-text);margin:0 0 6px;font-size:1.3rem;font-weight:600}.header-meta{flex-wrap:wrap;gap:8px;display:flex}.tournament-format-badge{background:var(--color-format-arena);color:#fff;border-radius:4px;align-items:center;min-height:28px;padding:6px 12px;font-size:.75rem;font-weight:600;display:inline-flex}.tournament-format-badge.swiss{background:var(--color-format-swiss,#2e7d32)}.tc-badge,.duration-badge{background:var(--color-bg);color:var(--color-text-secondary);border-radius:4px;padding:3px 8px;font-size:.75rem}.timer-container{background:var(--color-error);border-radius:var(--radius-md);flex-direction:column;align-items:center;min-width:90px;padding:8px 16px;display:flex}.timer-label{color:#fffc;text-transform:uppercase;letter-spacing:.5px;font-size:.65rem}.timer-value{color:#fff;font-variant-numeric:tabular-nums;font-size:1.2rem;font-weight:700}.my-position-bar{z-index:10;background:linear-gradient(135deg, var(--color-forest-dark) 0%, var(--color-forest-medium) 100%);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:16px;padding:14px 20px;transition:box-shadow .3s;position:sticky;top:0}.my-position-bar.highlighted{animation:2s ease-out position-glow}@keyframes position-glow{0%{box-shadow:0 0 20px #ffd70099, var(--shadow-md)}50%{box-shadow:0 0 30px #ffd70066, var(--shadow-md)}to{box-shadow:var(--shadow-md)}}.position-title{color:#fffc;text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;font-size:.75rem}.position-stats{align-items:center;gap:16px;display:flex}.position-stat{flex-direction:column;align-items:center;display:flex}.position-stat.main{padding-right:16px}.position-divider{background:#ffffff4d;width:1px;height:36px}.position-rank{color:#fff;font-size:1.8rem;font-weight:700}.position-value{color:#fff;font-size:1.2rem;font-weight:600}.position-value.win-rate{color:var(--color-forest-light)}.position-label{color:#ffffffb3;text-transform:uppercase;margin-top:2px;font-size:.65rem}.pairing-status{background:var(--color-surface);text-align:center;border:1px solid var(--color-brown-light);border-radius:16px;flex-direction:column;justify-content:center;align-items:center;min-height:80px;margin-bottom:16px;padding:24px;display:flex}.searching-animation{justify-content:center;gap:8px;margin-bottom:12px;display:flex}.dot{background:var(--color-format-arena);border-radius:50%;width:10px;height:10px;animation:1.4s ease-in-out infinite both bounce}.dot:first-child{animation-delay:-.32s}.dot:nth-child(2){animation-delay:-.16s}.dot:nth-child(3){animation-delay:0s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.status-text{color:var(--color-text);margin:0;font-size:1rem}.status-text.paused{color:var(--color-text-secondary)}.lobby-error{color:var(--color-error);text-align:center;background:#e74c3c1a;border:1px solid #e74c3c4d;border-radius:12px;margin-bottom:16px;padding:12px}.lobby-tabs{background:var(--color-beige-sand);border:1px solid var(--color-brown-light);-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;border-radius:16px;gap:4px;margin-bottom:16px;padding:4px;display:flex;overflow-x:auto}.lobby-tab{color:var(--color-brown-dark);cursor:pointer;scroll-snap-align:center;white-space:nowrap;background:0 0;border:none;border-radius:12px;flex:1;padding:10px 16px;font-size:.9rem;font-weight:500;transition:all .2s}.lobby-tab:hover{color:var(--color-text);background:#ffffff80}.lobby-tab.active{background:var(--color-forest-dark);color:#fff;box-shadow:0 4px 12px #2c5f2d4d}.lobby-content{background:var(--color-surface);border:1px solid var(--color-brown-light);border-radius:16px;min-height:300px;margin-bottom:16px;padding:16px;box-shadow:0 2px 12px #0000001a}.lobby-standings{overflow-x:auto}.standings-table{border-collapse:collapse;width:100%}.standings-table th{text-align:left;border-bottom:2px solid var(--color-brown-light);color:var(--color-text-secondary);text-transform:uppercase;padding:10px 8px;font-size:.75rem;font-weight:600}.standings-table td{border-bottom:1px solid var(--color-brown-light);color:var(--color-text);padding:12px 8px;font-size:.9rem}.standings-table tr{cursor:pointer;transition:background-color .15s}.standings-table tbody tr:hover{background:var(--color-bg)}.standings-table tr.top-1{background:#ffd70014}.standings-table tr.top-2{background:#c0c0c014}.standings-table tr.top-3{background:#cd7f3214}.rank-medal{font-size:1.1rem}.player-cell{align-items:center;gap:6px;display:flex}.player-name{font-weight:500}.player-rating{color:var(--color-text-secondary);font-size:.8rem}.streak-badge{font-size:.9rem}.points{color:var(--color-forest-dark);font-weight:600}.games{color:var(--color-text-secondary)}.status-col{text-align:center;width:30px}.status-indicator{font-size:.9rem}.more-players{text-align:center;color:var(--color-text-secondary);border-top:1px solid var(--color-brown-light);margin:16px 0 0;padding-top:12px;font-size:.85rem}.lobby-games{flex-direction:column;min-height:200px;display:flex}.games-filter-bar{gap:8px;margin-bottom:12px;display:flex}.games-filter-btn{border:1px solid var(--color-brown-light);color:var(--color-text-secondary);cursor:pointer;background:0 0;border-radius:8px;padding:6px 14px;font-size:.85rem;transition:all .2s}.games-filter-btn.active{background:var(--color-forest-dark);color:#fff;border-color:var(--color-forest-dark)}.games-filter-btn:hover:not(.active){background:var(--color-beige-warm)}.games-empty{min-height:150px;color:var(--color-text-secondary);text-align:center;justify-content:center;align-items:center;display:flex}.games-list{flex-direction:column;gap:6px;display:flex}.game-entry{background:var(--color-beige-warm);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.game-players{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.game-player{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}.game-player.winner{font-weight:600}.game-player-rating{color:var(--color-text-secondary);margin-left:2px;font-size:.75rem}.game-vs{color:var(--color-text-muted);flex-shrink:0;font-size:.75rem}.game-meta{flex-shrink:0;align-items:center;gap:8px;display:flex}.game-result-badge{border-radius:4px;padding:2px 6px;font-size:.75rem;font-weight:600}.game-result-badge.white-win{background:var(--color-beige-cream);color:var(--color-brown-dark)}.game-result-badge.black-win{background:var(--color-brown-dark);color:var(--color-beige-cream)}.game-result-badge.draw-result{background:var(--color-beige-sand);color:var(--color-text-secondary)}.game-result-badge.ongoing{background:var(--color-info);color:#fff}.game-moves,.game-time-ago{color:var(--color-text-muted);font-size:.75rem}.participants-sort-bar{gap:6px;margin-bottom:12px;display:flex}.sort-btn{border:1px solid var(--color-brown-light);color:var(--color-text-secondary);cursor:pointer;background:0 0;border-radius:8px;padding:6px 12px;font-size:.8rem;transition:all .2s}.sort-btn.active{background:var(--color-forest-dark);color:#fff;border-color:var(--color-forest-dark)}.sort-btn:hover:not(.active){background:var(--color-beige-warm)}.participants-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;display:grid}.participant-card{background:var(--color-beige-warm);cursor:pointer;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;transition:all .2s;display:flex}.participant-card:hover{background:var(--color-beige-sand)}.participant-left{align-items:center;gap:8px;min-width:0;display:flex}.participant-status-dot{flex-shrink:0;font-size:.85rem}.participant-info{align-items:center;gap:6px;min-width:0;display:flex}.participant-name{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;font-weight:500;overflow:hidden}.participant-rating{color:var(--color-text-secondary);flex-shrink:0;font-size:.8rem}.participant-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.participant-record{color:var(--color-text-muted);font-size:.75rem}.participant-points{color:var(--color-forest-dark);font-size:.85rem;font-weight:600}.participant-streak{font-size:.85rem}.rules-accordion{background:var(--color-surface);border:1px solid var(--color-brown-light);border-radius:16px;margin-bottom:16px;overflow:hidden}.rules-toggle{width:100%;color:var(--color-forest-dark);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;padding:14px 16px;font-family:Georgia,serif;font-size:.95rem;font-weight:600;transition:background .2s;display:flex}.rules-toggle:hover{background:var(--color-beige-warm)}.rules-chevron{color:var(--color-text-secondary);font-size:.8rem}.rules-content{flex-direction:column;gap:10px;padding:0 16px 16px;display:flex}.rule-item{background:var(--color-beige-warm);color:var(--color-text);border-radius:12px;align-items:center;gap:10px;padding:8px 12px;font-size:.85rem;display:flex}.rule-icon{text-align:center;width:24px;font-size:1rem}.bottom-action-bar{padding:16px;padding-bottom:max(16px, env(safe-area-inset-bottom));background:var(--color-surface);border-top:1px solid var(--color-brown-light);z-index:20;gap:12px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 12px #0000001a}.action-button{cursor:pointer;border:none;border-radius:12px;flex:1;min-height:48px;padding:14px 20px;font-size:1rem;font-weight:600;transition:all .2s}.action-button.pause{background:var(--color-beige-sand);color:var(--color-brown-dark);border:1px solid var(--color-brown-light)}.action-button.pause:hover{background:var(--color-beige-warm)}.action-button.resume{background:var(--color-forest-dark);color:#fff;box-shadow:0 4px 12px #2c5f2d4d}.action-button.resume:hover{background:var(--color-forest-medium)}.action-button.leave{border:1px solid var(--color-brown-light);color:var(--color-text-secondary);background:0 0}.action-button.leave:hover{border-color:var(--color-error);color:var(--color-error)}.back-button{color:var(--color-info);cursor:pointer;background:0 0;border:none;margin-bottom:10px;padding:8px 0;font-size:1rem}@media (width<=600px){.tournament-lobby{padding:12px;padding-bottom:calc(110px + env(safe-area-inset-bottom,0px))}.lobby-header-new{flex-wrap:wrap;gap:12px}.timer-container{flex-direction:row;order:-1;justify-content:center;gap:8px;width:100%}.timer-label{margin-right:4px}.position-stats{flex-wrap:wrap;gap:12px}.position-stat.main{padding-right:12px}.lobby-tab{padding:8px 12px;font-size:.85rem}.participants-grid{grid-template-columns:1fr}.bottom-action-bar{flex-direction:column;gap:8px}.action-button{padding:12px 16px}.standings-table .buchholz,.standings-table .sb,.standings-table .status-col{display:none}.game-entry{flex-direction:column;align-items:flex-start;gap:6px}.game-meta{justify-content:flex-start;width:100%}}@media (prefers-reduced-motion:reduce){.my-position-bar.highlighted,.dot{animation-duration:.01ms!important;animation-iteration-count:1!important}}.game-end-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#f5f0e6f2;flex-direction:column;justify-content:center;align-items:center;padding:16px;animation:.3s ease-out game-end-fadeIn;display:flex;position:fixed;inset:0}@keyframes game-end-fadeIn{0%{opacity:0}to{opacity:1}}.game-end-card{flex-direction:column;gap:16px;width:360px;max-width:calc(100vw - 32px);max-height:calc(100svh - 32px);animation:.4s cubic-bezier(.34,1.56,.64,1) game-end-slideUp;display:flex;overflow-y:auto}@keyframes game-end-slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.game-end-result{background:var(--color-surface);text-align:center;border:1px solid var(--color-brown-light);border-radius:16px;padding:24px;box-shadow:0 4px 16px #0000001a}.game-end-result.win{border-left:4px solid #27ae60}.game-end-result.loss{border-left:4px solid #e74c3c}.game-end-result.draw{border-left:4px solid #636e72}.game-end-result-icon{margin-bottom:4px;font-size:2rem}.game-end-result-text{margin:0 0 8px;font-family:Georgia,serif;font-size:1.4rem;font-weight:700}.game-end-result.win .game-end-result-text{color:#27ae60}.game-end-result.loss .game-end-result-text{color:#c0392b}.game-end-result.draw .game-end-result-text{color:#636e72}.game-end-opponent{color:var(--color-text-secondary);margin:0;font-size:.9rem}@media (width<=480px){.game-end-card{width:calc(100vw - 32px)}.game-end-result{padding:20px}}@media (prefers-reduced-motion:reduce){.game-end-overlay,.game-end-card{animation-duration:.01ms!important;animation-iteration-count:1!important}}.tournament-game{flex-direction:column;align-items:center;max-width:800px;margin:0 auto;padding:20px;display:flex}.tournament-game-header{width:100%;max-width:500px;margin-bottom:16px}.tournament-info-bar{background:var(--color-surface);border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:12px;padding:8px 12px;display:flex}.tournament-name{color:var(--color-text);font-weight:500}.my-score{color:var(--color-warning);font-weight:600}.streak{margin-left:4px}.players-bar{justify-content:center;align-items:center;gap:16px;margin-bottom:12px;display:flex}.player{background:var(--color-surface);border-radius:8px;align-items:center;gap:8px;padding:8px 12px;display:flex}.player.you{background:var(--color-success)}.color-badge{border-radius:50%;width:12px;height:12px}.color-badge.white{background:var(--color-beige-cream)}.color-badge.black{background:var(--color-brown-dark);border:2px solid var(--color-beige-cream)}.player .name{color:var(--color-text);font-weight:500}.player .rating{color:var(--color-text-secondary);font-size:.85rem}.vs{color:var(--color-text-secondary);font-size:.9rem}.turn-indicator{text-align:center;background:var(--color-surface);border-radius:8px;padding:12px}.turn-text{color:var(--color-text);font-size:1.2rem}.turn-text.win{color:var(--color-success)}.turn-text.draw{color:var(--color-warning)}.turn-text.lose{color:var(--color-error)}.points-earned{background:var(--color-warning);color:var(--color-neutral-900);border-radius:4px;margin-left:12px;padding:4px 8px;font-size:1rem;font-weight:600}.game-area{flex-direction:row;justify-content:center;align-items:center;gap:16px;width:100%;display:flex}@media (width<=768px){.game-area{flex-direction:column}}.tournament-game-actions{align-items:center;gap:16px;min-height:50px;margin-top:16px;display:flex}.resign-button{background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;border:none;border-radius:8px;padding:12px 20px;font-size:1rem;transition:all .2s}.resign-button:hover{background:var(--color-error);color:#fff}.game-over-notice{color:var(--color-text-secondary);font-size:1rem;animation:1s infinite fade-pulse}@keyframes fade-pulse{0%,to{opacity:1}50%{opacity:.5}}.tge-points-container{text-align:center;margin-bottom:12px}.tge-points-big{font-size:3rem;font-weight:800;animation:.4s cubic-bezier(.34,1.56,.64,1) .2s both tge-points-pop;display:inline-block}@keyframes tge-points-pop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.tge-points-big.win{color:var(--color-success)}.tge-points-big.draw{color:var(--color-warning)}.tge-points-big.lose{color:var(--color-text-muted)}.tge-streak-bonus{color:var(--color-warning);text-align:center;margin-bottom:8px;font-size:1rem}.tge-rank{color:var(--color-text-secondary);text-align:center;margin-bottom:8px;font-size:.9rem}.tge-rating-change{justify-content:center;align-items:center;gap:6px;font-size:.95rem;animation:.4s ease-out .3s both tge-fade-in;display:flex}@keyframes tge-fade-in{0%{opacity:0}to{opacity:1}}.tge-rating-old{color:var(--color-text-secondary)}.tge-rating-arrow{color:var(--color-text-muted)}.tge-rating-new{color:var(--color-text);font-weight:600}.tge-rating-delta{font-weight:700}.tge-rating-delta.positive{color:var(--color-success)}.tge-rating-delta.negative{color:var(--color-error)}.tge-countdown{color:var(--color-text-muted);text-align:center;font-size:.85rem}.tge-continue-btn{background:var(--color-forest-dark);color:#fff;cursor:pointer;border:none;border-radius:12px;width:100%;min-height:48px;padding:14px 24px;font-size:1rem;font-weight:600;transition:background .2s}.tge-continue-btn:hover{background:var(--color-forest-medium)}@media (width<=600px){.tournament-game{padding:15px}.players-bar{flex-direction:column;gap:8px}.vs{display:none}.tournament-game-actions{flex-direction:column;gap:12px}.resign-button{width:100%;min-height:44px}}@media (prefers-reduced-motion:reduce){.game-over-notice,.tge-points-big,.tge-rating-change{animation-duration:.01ms!important;animation-iteration-count:1!important}}.arena-boost-btn{color:#f39c12;cursor:pointer;background:#f39c1226;border:2px solid #f39c12;border-radius:12px;align-items:center;gap:6px;min-width:44px;min-height:44px;padding:10px 18px;font-size:1rem;font-weight:600;transition:all .2s;animation:2s ease-in-out infinite arena-boost-pulse;display:flex}.arena-boost-btn:hover:not(:disabled){background:#f39c124d;transform:scale(1.05)}.arena-boost-btn:active:not(:disabled){transform:scale(.95)}.arena-boost-btn.activated{color:#fff;cursor:default;background:#f39c12;border-color:#f39c12;animation:.4s ease-out arena-boost-activate}.arena-boost-btn-icon{font-size:1.2rem}.arena-boost-btn-label{font-size:.9rem}@keyframes arena-boost-pulse{0%,to{box-shadow:0 0 #f39c1266}50%{box-shadow:0 0 0 6px #f39c1200}}@keyframes arena-boost-activate{0%{transform:scale(1)}30%{transform:scale(1.15)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.arena-boost-btn,.arena-boost-btn.activated{animation-duration:.01ms!important;animation-iteration-count:1!important}}.arena-game-end-points{background:var(--color-surface);border:1px solid var(--color-brown-light);border-radius:12px;padding:16px}.arena-game-end-points-title{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px;font-size:.75rem;font-weight:600}.arena-game-end-points-row{color:var(--color-text);justify-content:space-between;align-items:center;padding:4px 0;font-size:.9rem;display:flex}.arena-game-end-points-row.total{border-top:1px solid var(--color-brown-light);margin-top:8px;padding-top:8px;font-size:1rem;font-weight:700}.arena-game-end-points-value{font-variant-numeric:tabular-nums;font-weight:600}.arena-game-end-points-value.positive{color:#27ae60}.arena-game-end-points-value.streak{color:#e74c3c}.arena-game-end-points-value.boost{color:#f39c12}.arena-game-end-stats{background:var(--color-surface);border:1px solid var(--color-brown-light);text-align:center;border-radius:12px;grid-template-columns:repeat(3,1fr);gap:12px;padding:16px;display:grid}.arena-game-end-stat{flex-direction:column;align-items:center;gap:2px;display:flex}.arena-game-end-stat-value{color:var(--color-text);font-variant-numeric:tabular-nums;font-size:1.2rem;font-weight:700}.arena-game-end-stat-label{color:var(--color-text-secondary);text-transform:uppercase;font-size:.7rem}.arena-game-end-rank-delta{margin-left:2px;font-size:.85rem;font-weight:600}.arena-game-end-rank-delta.up{color:#27ae60}.arena-game-end-rank-delta.down{color:#e74c3c}.arena-game-end-countdown{text-align:center;padding:8px}.arena-game-end-countdown-text{color:var(--color-text-secondary);margin:0;font-size:.85rem}.arena-game-end-countdown-number{color:var(--color-forest-dark);font-variant-numeric:tabular-nums;font-weight:700}.arena-game-end-actions{gap:12px;display:flex}.arena-game-end-btn{cursor:pointer;border:none;border-radius:12px;flex:1;min-height:44px;padding:14px 16px;font-size:.95rem;font-weight:600;transition:all .2s}.arena-game-end-btn:active{transform:scale(.97)}.arena-game-end-btn.pause{background:var(--color-beige-sand);color:var(--color-brown-dark);border:1px solid var(--color-brown-light)}.arena-game-end-btn.pause:hover{background:var(--color-beige-warm)}.arena-game-end-btn.play{background:var(--color-forest-dark);color:#fff}.arena-game-end-btn.play:hover{background:var(--color-forest-medium)}.arena-game-end-animate{animation:.5s ease-out arena-endCountFade}@keyframes arena-endCountFade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.arena-game-end-rank-slide-up{animation:.6s ease-out arena-endRankUp}.arena-game-end-rank-slide-down{animation:.6s ease-out arena-endRankDown}@keyframes arena-endRankUp{0%{opacity:.5;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes arena-endRankDown{0%{opacity:.5;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (width<=480px){.arena-game-end-btn{min-height:48px}}@media (prefers-reduced-motion:reduce){.arena-game-end-animate,.arena-game-end-rank-slide-up,.arena-game-end-rank-slide-down{animation-duration:.01ms!important;animation-iteration-count:1!important}}.arena-game{flex-direction:column;align-items:center;max-width:800px;min-height:100dvh;margin:0 auto;padding:8px;display:flex}.arena-game-bar{background:var(--color-surface);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;width:100%;max-width:500px;margin-bottom:8px;padding:6px 12px;display:flex}.arena-game-bar.time-warning{background:#e74c3c26}.arena-game-bar.time-warning .arena-game-bar-time{color:var(--color-error);animation:1s infinite arena-time-pulse}@keyframes arena-time-pulse{0%,to{opacity:1}50%{opacity:.5}}.arena-game-bar-timer{align-items:center;gap:4px;display:flex}.arena-game-bar-icon{font-size:.85rem}.arena-game-bar-time{color:var(--color-text);font-variant-numeric:tabular-nums;font-size:.9rem;font-weight:600}.arena-game-bar-position{align-items:center;gap:8px;display:flex}.arena-game-bar-rank{color:var(--color-warning);font-size:.95rem;font-weight:700}.arena-game-bar-points{color:var(--color-text-secondary);font-size:.85rem}.arena-game-bar-streak{font-size:1rem}.arena-game-bar-delta{margin-left:2px;font-size:.75rem;font-weight:600}.arena-game-bar-delta.arena-rank-up{color:var(--color-success)}.arena-game-bar-delta.arena-rank-down{color:var(--color-error)}.arena-game-players{justify-content:center;align-items:center;gap:12px;width:100%;max-width:500px;margin-bottom:6px;display:flex}.arena-game-player{background:var(--color-surface);border-radius:8px;align-items:center;gap:6px;padding:6px 10px;font-size:.9rem;display:flex}.arena-game-player.self{background:var(--color-success)}.arena-game-player-color{border-radius:50%;flex-shrink:0;width:10px;height:10px}.arena-game-player-color.white{background:var(--color-beige-cream)}.arena-game-player-color.black{background:var(--color-brown-dark);border:2px solid var(--color-beige-cream)}.arena-game-player-name{color:var(--color-text);font-weight:500}.arena-game-player-rating,.arena-game-vs{color:var(--color-text-secondary);font-size:.8rem}.arena-game-turn{text-align:center;background:var(--color-surface);border-radius:8px;width:100%;max-width:500px;margin-bottom:8px;padding:8px}.arena-game-turn-text{color:var(--color-text);font-size:1.1rem;font-weight:500}.arena-game-turn-text.win{color:var(--color-success)}.arena-game-turn-text.draw{color:var(--color-warning)}.arena-game-turn-text.loss{color:var(--color-error)}.arena-game-board-area{flex-direction:row;flex:1;justify-content:center;align-items:center;gap:12px;width:100%;display:flex}.arena-game-actions{width:100%;max-width:500px;min-height:48px;padding-bottom:env(safe-area-inset-bottom,8px);justify-content:center;align-items:center;gap:12px;margin-top:8px;display:flex}.arena-game-resign-btn{background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;border:none;border-radius:8px;min-width:44px;min-height:44px;padding:12px 24px;font-size:1rem;transition:all .2s}.arena-game-resign-btn:hover{background:var(--color-error);color:#fff}@media (width<=768px){.arena-game-board-area{flex-direction:column}.arena-game-players{flex-direction:column;gap:4px}.arena-game-vs{display:none}.arena-game-resign-btn{width:100%}}@media (width<=400px){.arena-game{padding:4px}.arena-game-bar{padding:4px 8px;font-size:.85rem}}@media (prefers-reduced-motion:reduce){.arena-game-bar.time-warning .arena-game-bar-time{animation-duration:.01ms!important;animation-iteration-count:1!important}}.legal-page{min-height:100vh;padding:28px var(--spacing-md) 48px;background-color:var(--color-bg);background-image:var(--app-bg-image);background-size:var(--app-bg-size);background-position:var(--app-bg-position)}.legal-page>*{max-width:860px;margin-left:auto;margin-right:auto}.legal-hero-banner,.legal-content{-webkit-backdrop-filter:blur(14px);background:linear-gradient(#ffffffeb,#ffffffd1);border:1px solid #fff9;border-radius:18px;box-shadow:inset 0 1px #ffffffe6,0 8px 24px -8px #231e141a,0 24px 48px -24px #231e142e}.legal-hero-banner{color:var(--color-text,#1b1f20);align-items:center;gap:16px;min-height:110px;margin:0 auto 16px;padding:22px 26px;display:flex;position:relative;overflow:hidden}.legal-hero-banner-icon{color:var(--color-forest-deep,#1f4520);opacity:.12;pointer-events:none;line-height:1;position:absolute;top:50%;right:22px;transform:translateY(-50%)}.legal-hero-banner-content{flex:1;min-width:0}.legal-hero-banner-title{color:var(--color-text,#1b1f20);margin:0 0 4px;font-family:Fraunces,Georgia,serif;font-size:1.7rem;font-weight:600}.legal-hero-banner-subtitle{color:var(--color-text-secondary,#636e72);margin:0;font-size:.92rem;line-height:1.4}.legal-content{color:var(--color-text,#1b1f20);padding:26px 30px;line-height:1.7}.legal-content h2{color:var(--color-text,#1b1f20);margin:1.8rem 0 .6rem;font-family:Fraunces,Georgia,serif;font-size:1.3rem;font-weight:600}.legal-content h2:first-child{margin-top:0}.legal-content h3{color:var(--color-text,#1b1f20);margin:1.4rem 0 .4rem;font-size:1.02rem;font-weight:700}.legal-content p{color:var(--color-text-secondary,#636e72);margin:0 0 1rem}.legal-content ul,.legal-content ol{color:var(--color-text-secondary,#636e72);margin:0 0 1rem;padding-left:1.5rem}.legal-content li{margin-bottom:.4rem}.legal-content a{color:var(--color-forest-medium,#3d8b40);font-weight:600;text-decoration:underline}.legal-content a:hover{color:var(--color-forest-deep,#1f4520)}.legal-last-updated{color:var(--color-text-muted,#8b95a0);margin:0 auto 16px;font-size:.85rem;font-style:italic}@media (width<=480px){.legal-page{padding:18px 12px 36px}.legal-hero-banner{min-height:96px;padding:18px 16px}.legal-hero-banner-title{font-size:1.4rem}.legal-hero-banner-subtitle{font-size:.85rem}.legal-content{padding:18px}.legal-content h2{font-size:1.15rem}}.rl-page{color:#1b1f20;background-color:var(--color-bg);background-image:var(--app-bg-image);background-size:var(--app-bg-size);background-position:var(--app-bg-position);min-height:100dvh;padding:40px 24px 80px;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:15px;line-height:1.5;position:relative}.rl-inner{z-index:1;gap:22px;max-width:1080px;margin:0 auto;display:grid;position:relative}@keyframes rlFadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.rl-inner>*{animation:.7s cubic-bezier(.16,1,.3,1) both rlFadeUp}.rl-inner>:first-child{animation-delay:40ms}.rl-inner>:nth-child(2){animation-delay:.1s}.rl-inner>:nth-child(3){animation-delay:.18s}.rl-inner>:nth-child(4){animation-delay:.24s}.rl-inner>:nth-child(5){animation-delay:.3s}.rl-crumb{color:#636e72;align-items:center;gap:10px;font-size:.82rem;display:flex}.rl-crumb button{font:inherit;cursor:pointer;color:#1f4520;background:#ffffff80;border:1px solid #0000000f;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;transition:all .15s;display:inline-flex}.rl-crumb button:hover{background:#ffffffd9;transform:translate(-2px)}.rl-crumb .rl-sep{color:#8b95a0}.rl-crumb .rl-now{color:#1b1f20;font-weight:600}@media (width<=760px){.rl-crumb button{min-height:var(--touch-target-min,44px)}}.rl-eyebrow{letter-spacing:1.6px;text-transform:uppercase;color:#1f4520;align-items:center;gap:10px;font-size:.74rem;font-weight:600;display:inline-flex}.rl-eyebrow:before{content:"";opacity:.6;background:#1f4520;width:22px;height:1px}.rl-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(#ffffffeb,#ffffffd1);border:1px solid #fff9;border-radius:20px;padding:22px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffffe6,0 1px 3px #231e140f,0 8px 24px -8px #231e141a,0 24px 48px -24px #231e142e}.rl-hero{align-items:center;gap:24px;padding:26px 32px;display:grid}.rl-hero.rl-hero-3{grid-template-columns:auto 1fr auto}.rl-hero.rl-hero-2{grid-template-columns:auto 1fr}.rl-hero:before{content:"";pointer-events:none;z-index:0;opacity:.7;background:radial-gradient(at 0 100%,#2c5f2d24,#0000 50%),radial-gradient(at 100% 0,#c9a22724,#0000 55%);position:absolute;inset:0}.rl-hero>*{z-index:1;position:relative}.rl-hero-deco{justify-self:start}.rl-hero-king{background:radial-gradient(circle at 38% 32%,#fffdf6 0%,#f1e5cb 58%,#d4c099 100%);border-radius:50%;justify-content:center;align-items:center;width:130px;height:130px;display:flex;position:relative;box-shadow:inset 0 -6px 14px #00000038,inset 0 5px 12px #ffffff80,0 16px 34px -12px #231e1473}.rl-hero-king:before{content:"";border:2px solid #b5886366;border-radius:50%;position:absolute;inset:12px}.rl-hero-king:after{content:"♛";color:#c9a227;text-shadow:0 2px 3px #00000040;font-size:3.8rem;line-height:1}.rl-hero-title{font-variation-settings:"opsz" 144, "SOFT" 50;letter-spacing:-.02em;color:#1b1f20;flex-wrap:wrap;align-items:center;gap:14px;margin:10px 0 0;font-family:Fraunces,Georgia,serif;font-size:clamp(2rem,4.2vw,3.1rem);font-weight:700;line-height:1.04;display:flex}.rl-hero-title .rl-flag{font-size:.85em;line-height:1}.rl-hero-title .rl-accent{color:#2c5f2d;font-style:italic}.rl-hero-sub{color:#636e72;max-width:60ch;margin-top:10px;font-size:1rem}.rl-hero-sub b{color:#2c5f2d;font-weight:600}.rl-hero-sub i{color:#1b1f20;font-style:italic}.rl-hero-chip{background:linear-gradient(135deg,#c9a22729,#c9a2270a);border:1px solid #c9a2274d;border-radius:16px;justify-self:end;align-items:center;gap:14px;min-width:150px;padding:14px 22px;display:flex}.rl-hero-chip .rl-chip-ico{color:#fff;background:linear-gradient(#c9a227,#8b6f0f);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex;box-shadow:0 3px 10px #c9a22773}.rl-hero-chip .rl-chip-ico svg{width:22px;height:22px}.rl-hero-chip .rl-chip-txt{flex-direction:column;display:flex}.rl-hero-chip .rl-chip-v{color:#1b1f20;font-family:JetBrains Mono,monospace;font-size:1.6rem;font-weight:700;line-height:1}.rl-hero-chip .rl-chip-l{letter-spacing:1.4px;text-transform:uppercase;color:#8b6f0f;margin-top:5px;font-size:.6rem;font-weight:600}@media (width<=820px){.rl-hero.rl-hero-3,.rl-hero.rl-hero-2{text-align:center;grid-template-columns:1fr;gap:14px;padding:22px}.rl-hero-deco,.rl-hero-chip{display:none}.rl-hero-title{justify-content:center}.rl-hero-sub{margin-left:auto;margin-right:auto}.rl-eyebrow{justify-content:center}}@media (width<=480px){.rl-hero.rl-hero-3,.rl-hero.rl-hero-2{padding:20px 18px}.rl-hero-center .rl-eyebrow{display:none}.rl-hero-title{gap:10px;margin-top:0;font-size:1.6rem}.rl-hero-sub{max-width:100%;margin-top:8px;font-size:.92rem}}.rl-cta-row{flex-wrap:wrap;gap:14px;margin-top:4px;display:flex}.rl-cta{min-width:200px;font:inherit;cursor:pointer;color:#fff;border:none;border-radius:14px;flex:1;justify-content:center;align-items:center;gap:10px;padding:15px 24px;font-size:1rem;font-weight:700;transition:transform .18s,box-shadow .18s;display:inline-flex}.rl-cta svg{width:18px;height:18px}.rl-cta:hover{transform:translateY(-2px)}.rl-cta-online{background:linear-gradient(#3d8b40,#2c5f2d);box-shadow:0 6px 18px #2c5f2d47}.rl-cta-online:hover{box-shadow:0 10px 24px #2c5f2d57}.rl-cta-ai{background:linear-gradient(#c9a227,#8b6f0f);box-shadow:0 6px 18px #c9a22747}.rl-cta-ai:hover{box-shadow:0 10px 24px #c9a22757}@media (width<=820px){.rl-cta{flex-basis:100%}}.rl-row2{grid-template-columns:1.1fr .9fr;gap:22px;display:grid}@media (width<=760px){.rl-row2{grid-template-columns:1fr}}.rl-board-card{flex-direction:column;align-items:center;gap:14px;display:flex}.rl-board-card .rl-head{align-self:flex-start}.rl-board-wrap{justify-content:center;width:100%;display:flex}.rl-board-svg{border-radius:16px;width:100%;max-width:360px;height:auto;box-shadow:0 0 0 1px #00000014,0 1px 2px #0000000d,0 18px 38px -18px #231e1452}.rules-sq-dark{fill:var(--rules-sq-dark,#b58863)}.rules-sq-light{fill:var(--rules-sq-light,#f0d9b5)}.rules-piece-white{fill:var(--rules-piece-white,#f5f5f0);stroke:#c9bea8;stroke-width:.5px}.rules-piece-black{fill:var(--rules-piece-black,#2a2a2a);stroke:#111;stroke-width:.5px}.rules-piece-king-mark{fill:#c9a227}.rl-glance .rl-rows{gap:12px;margin-top:14px;display:grid}.rl-stat{background:#ffffffa6;border:1px solid #0000000f;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.rl-stat .rl-lbl{color:#636e72;align-items:center;gap:10px;font-size:.9rem;font-weight:600;display:flex}.rl-stat .rl-lbl svg{color:#3d8b40;flex:none;width:18px;height:18px}.rl-stat .rl-val{color:#2c5f2d;font-family:Fraunces,Georgia,serif;font-size:1.4rem;font-weight:600}.rl-section-head{letter-spacing:-.01em;margin:6px 0 16px;font-family:Fraunces,Georgia,serif;font-size:1.5rem;font-weight:600}.rl-section-head em{color:#2c5f2d;font-style:italic}.rl-section-head .rl-count{color:#8b95a0;font-family:JetBrains Mono,monospace;font-size:.85em;font-weight:500}.rl-theme-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;display:grid}.rl-theme{padding:20px}.rl-theme .rl-t-head{align-items:center;gap:10px;margin-bottom:12px;display:flex}.rl-theme .rl-t-ico{color:#fff;background:linear-gradient(#3d8b40,#2c5f2d);border-radius:11px;flex:none;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.rl-theme .rl-t-ico svg{width:20px;height:20px}.rl-theme .rl-t-name{font-size:1.02rem;font-weight:700}.rl-theme ul{gap:9px;margin:0;padding:0;list-style:none;display:grid}.rl-theme li{color:#1b1f20;padding-left:20px;font-size:.94rem;line-height:1.45;position:relative}.rl-theme li:before{content:"";background:#a8d5a2;border-radius:50%;width:7px;height:7px;position:absolute;top:8px;left:2px;box-shadow:0 0 0 2px #a8d5a24d}.rl-var-grid{grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:12px;display:grid}.rl-var{cursor:pointer;text-align:left;font:inherit;color:inherit;background:#ffffffb3;border:1px solid #00000014;border-radius:14px;align-items:center;gap:12px;padding:14px 16px;transition:all .18s;display:flex}.rl-var:hover{background:#ffffffeb;border-color:#3d8b40;transform:translateY(-2px);box-shadow:0 10px 22px -12px #3c281973}.rl-var .rl-vflag{flex:none;font-size:1.7rem;line-height:1}.rl-var .rl-vname{font-size:.95rem;font-weight:700}.rl-var .rl-vmeta{color:#636e72;font-family:JetBrains Mono,monospace;font-size:.76rem;font-weight:500}.rl-op-intro p{margin:0 0 10px}.rl-op-intro p:last-child{margin-bottom:0}.rl-op-source{color:#636e72;font-size:.84rem}.rl-op-legend ul{gap:9px;margin:14px 0 10px;padding:0;list-style:none;display:grid}.rl-op-legend li{align-items:baseline;gap:10px;font-size:.94rem;line-height:1.45;display:flex}.rl-forza{text-align:center;border:1px solid #0000;border-radius:999px;flex:none;min-width:48px;padding:3px 8px;font-family:JetBrains Mono,monospace;font-size:.76rem;font-weight:600}.rl-forza-0{color:#4a5560;background:#78828c1f;border-color:#78828c38}.rl-forza-1{color:#2c5f2d;background:#3d8b401f;border-color:#3d8b403d}.rl-forza-2{color:#8a5d00;background:#d69e2e29;border-color:#d69e2e4d}.rl-forza-3{color:#8a3b00;background:#d66e2e29;border-color:#d66e2e4d}.rl-forza-4{color:#8a1f1f;background:#c43e3e24;border-color:#c43e3e47}.rl-op-tables .rl-rows{margin-top:14px}.rl-op-tablerow{align-items:flex-start;gap:14px}.rl-op-tablerow .rl-lbl{flex-direction:column;align-items:flex-start;gap:2px;min-width:116px}.rl-op-tablerow .rl-val{color:#1b1f20;text-align:right;font-family:inherit;font-size:.9rem;font-weight:500;line-height:1.4}.rl-op-count{color:#636e72;font-family:JetBrains Mono,monospace;font-size:.74rem;font-weight:600}.rl-op-list{gap:14px;display:grid}.rl-op-tabs{flex-wrap:wrap;gap:8px;display:flex}.rl-op-tab{cursor:pointer;font:inherit;color:#1f4520;background:#fff9;border:1px solid #00000014;border-radius:999px;align-items:center;gap:8px;padding:9px 16px;font-size:.88rem;font-weight:600;transition:all .16s;display:inline-flex}.rl-op-tab:hover{background:#ffffffeb;border-color:#3d8b40}.rl-op-tab.active{color:#fff;background:linear-gradient(#3d8b40,#2c5f2d);border-color:#0000}.rl-op-tab.active .rl-op-count{color:#ffffffd1}.rl-op-preview{justify-items:center;gap:12px;display:grid}.rl-op-preview .rl-eyebrow{letter-spacing:.6px;font-family:JetBrains Mono,monospace}.rl-op-group{padding:0}.rl-op-group>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;font-size:.98rem;font-weight:700;list-style:none;display:flex}.rl-op-group>summary::-webkit-details-marker{display:none}.rl-op-group>summary:after{content:"▾";color:#636e72;font-size:.9rem;transition:transform .18s}.rl-op-group[open]>summary:after{transform:rotate(180deg)}.rl-op-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.rl-op-table{border-collapse:collapse;width:100%;font-size:.9rem}.rl-op-table th,.rl-op-table td{text-align:left;white-space:nowrap;padding:9px 18px}.rl-op-table th{letter-spacing:1px;text-transform:uppercase;color:#636e72;border-bottom:1px solid #00000014;font-size:.72rem;font-weight:600}.rl-op-table tbody tr{cursor:pointer;border-bottom:1px solid #0000000d}.rl-op-table tbody tr:last-child{border-bottom:none}.rl-op-table tbody tr:hover{background:#3d8b400f}.rl-op-table tbody tr.selected{background:#3d8b401f}.rl-op-id,.rl-op-moves,.rl-op-tags{font-variant-numeric:tabular-nums;font-family:JetBrains Mono,monospace}.rl-op-id{color:#8b95a0;width:1%;font-size:.82rem}.rl-op-moves{font-weight:600}.rl-op-tags{color:#636e72;letter-spacing:1px;font-size:.8rem}@media (width<=760px){.rl-op-tab{min-height:var(--touch-target-min,44px)}.rl-op-group>summary{min-height:var(--touch-target-min,44px);padding:10px 14px}.rl-op-table th,.rl-op-table td{padding:10px 14px}.rl-op-table tbody tr{height:var(--touch-target-min,44px)}.rl-op-tablerow{flex-direction:column;gap:4px}.rl-op-tablerow .rl-val{text-align:left}}.rl-op-entry{cursor:pointer;width:100%;font:inherit;color:inherit;text-align:left;align-items:center;gap:16px;transition:all .18s;display:flex}.rl-op-entry:hover{border-color:#3d8b40;transform:translateY(-2px)}.rl-op-entry-ico{color:#fff;background:linear-gradient(#3d8b40,#2c5f2d);border-radius:12px;flex:none;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.rl-op-entry-ico svg{width:22px;height:22px}.rl-op-entry-txt{gap:2px;display:grid}.rl-op-entry-title{font-size:1.02rem;font-weight:700}.rl-op-entry-desc{color:#636e72;font-size:.88rem}.rl-op-entry-arrow{color:#3d8b40;margin-left:auto;font-size:1.2rem}@media (width<=760px){.rl-op-entry{min-height:var(--touch-target-min,44px)}}.rl-op-why{color:#8b95a0;white-space:nowrap;font-size:.82rem}.rl-op-table tbody tr.rl-op-row-transposition .rl-op-moves,.rl-op-table tbody tr.rl-op-row-unlisted .rl-op-moves,.rl-op-table tbody tr.rl-op-row-material .rl-op-moves{color:#636e72;font-weight:500}.rl-op-table tbody tr.rl-op-row-material .rl-op-why{color:#8a1f1f}.rl-op-why-card p{margin:12px 0 0}.rl-op-why-card .rl-rows{margin-top:14px}.rl-op-fen{color:#636e72;word-break:break-all;text-align:center;margin:0;font-family:JetBrains Mono,monospace;font-size:.72rem}.rl-op-verdict{text-align:center;margin:0;font-size:.9rem;font-weight:600}.sidebar{width:var(--sidebar-width);background-color:var(--sidebar-bg);z-index:100;box-shadow:var(--shadow-lg);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}@media (width>=769px){.sidebar.sidebar-horizontal{width:calc(100% - 48px);max-width:1200px;height:var(--top-sidebar-height,64px);border-radius:18px;flex-direction:row;align-items:stretch;margin-top:18px;inset:0 auto auto 50%;transform:translate(-50%);box-shadow:0 1px 3px #00000014}.sidebar.sidebar-horizontal .sidebar-nav{flex-direction:row;align-items:stretch;padding:0 12px}.sidebar.sidebar-horizontal .sidebar-nav-item{flex-direction:row;gap:8px;min-height:auto;padding:0 14px}.sidebar.sidebar-horizontal .sidebar-nav-item.active{border-left:none;border-bottom:3px solid var(--color-forest-light)}.sidebar.sidebar-horizontal .sidebar-nav-icon{font-size:1.1rem}.sidebar.sidebar-horizontal .sidebar-nav-label{text-transform:none;letter-spacing:0;font-size:.8rem}.sidebar.sidebar-horizontal .sidebar-lang{flex-direction:row;gap:8px;min-height:auto;padding:0 14px}}.sidebar-nav{flex-direction:column;flex:1;padding:0;display:flex}.sidebar-nav-item{padding:var(--spacing-md) var(--spacing-sm);color:var(--sidebar-text);cursor:pointer;justify-content:center;align-items:center;gap:var(--spacing-xs);background:0 0;border:none;flex-direction:column;min-height:70px;transition:background-color .2s;display:flex;position:relative}.sidebar-nav-item:hover:not(.disabled){background-color:var(--sidebar-hover)}.sidebar-nav-item.active{background-color:var(--sidebar-active);border-left:3px solid var(--color-forest-light)}.sidebar-nav-item.disabled{opacity:.5;cursor:not-allowed}.sidebar-nav-icon{font-size:1.5rem}.sidebar-nav-label{text-transform:uppercase;letter-spacing:.5px;text-align:center;font-size:.65rem}.sidebar-lock{top:var(--spacing-xs);right:var(--spacing-xs);font-size:.6rem;position:absolute}.sidebar-footer{padding:var(--spacing-md);gap:var(--spacing-sm);border-top:1px solid #ffffff1a;flex-direction:column;display:flex}.sidebar-login-nav{margin:var(--spacing-xs) var(--spacing-xs) 0;border-radius:var(--radius-sm);background:var(--color-forest)!important;color:#fff!important}.sidebar-login-nav:hover{background:var(--color-forest-light)!important}.sidebar-lang{justify-content:center;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-md) var(--spacing-sm);min-height:70px;color:var(--sidebar-text);cursor:pointer;flex-direction:column;transition:background-color .2s;display:flex;position:relative}.sidebar-lang:hover,.sidebar-lang:focus-within{background-color:var(--sidebar-hover)}.sidebar-lang-icon{align-items:center;line-height:1;display:inline-flex}.sidebar-lang-select{opacity:0;cursor:pointer;background:0 0;border:none;width:100%;height:100%;margin:0;padding:0;font-family:inherit;position:absolute;inset:0}.sidebar-lang-select option{color:initial}.sidebar-logout-nav{margin:var(--spacing-xs) var(--spacing-xs) 0;border-radius:var(--radius-sm);opacity:.7}.sidebar-logout-nav:hover{opacity:1;background:#e74c3c4d!important}.sidebar-logout-btn{padding:var(--spacing-sm);color:var(--sidebar-text);cursor:pointer;justify-content:center;align-items:center;gap:var(--spacing-xs);border-radius:var(--radius-sm);background:0 0;border:none;flex-direction:column;transition:background-color .2s;display:flex}.sidebar-logout-btn:hover{background-color:#e74c3c4d}.sidebar-logout-btn .sidebar-nav-icon{font-size:1.2rem}.sidebar-logout-btn .sidebar-nav-label{text-transform:uppercase;font-size:.6rem}.sidebar-language{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.sidebar-lang-btn{border-radius:var(--radius-sm);cursor:pointer;opacity:.7;background:0 0;border:1px solid #0000;padding:4px;font-size:.9rem;transition:all .2s}.sidebar-lang-btn:hover{opacity:1;background-color:var(--sidebar-hover)}.sidebar-lang-btn.active{opacity:1;background-color:var(--sidebar-active);border-color:#ffffff4d}@media (width<=768px){.sidebar{width:100%;height:var(--bottom-nav-height,64px);border-top:1px solid #ffffff1a;flex-direction:row;inset:auto 0 0;box-shadow:0 -2px 10px #0003}.sidebar-nav{flex-direction:row;flex:1;justify-content:space-around;align-items:center;padding:0}.sidebar-nav-item{border-left:none;flex:1;min-height:48px;padding:8px 4px}.sidebar-nav-item.active{border-left:none;border-top:3px solid var(--color-forest-light);background-color:var(--sidebar-active)}.sidebar-nav-icon{font-size:1.3rem}.sidebar-nav-label{font-size:.7rem}.sidebar-lock{font-size:.5rem;top:2px;right:2px}.sidebar-login-nav,.sidebar-logout-nav{border-radius:0;margin:0}.sidebar-footer{display:none}.sidebar-lang{gap:var(--spacing-xs);flex:1;min-height:48px;padding:8px 4px}.sidebar-lang-icon{display:inline-flex}}.layout{background-color:var(--color-bg);min-height:100vh}.layout.with-sidebar{padding-left:var(--sidebar-width)}@media (width>=769px){.layout.with-top-sidebar{padding-top:100px}}@media (width<=768px){.layout.with-top-sidebar{padding-bottom:var(--bottom-nav-height,64px)}}.layout-content{flex-direction:column;min-height:100vh;display:flex}@media (width<=768px){.layout.with-sidebar{padding-left:0;padding-bottom:var(--bottom-nav-height,64px)}}.home-footer{z-index:1;color:var(--color-text-muted);justify-content:center;align-items:center;gap:8px;padding:16px;font-size:.8rem;display:flex;position:relative}.home-footer button{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:4px 2px;font-size:.8rem;transition:color .2s}.home-footer button:hover{color:var(--color-text)}.home-footer span{color:var(--color-text-muted);opacity:.5}.cookie-banner{bottom:0;left:var(--sidebar-width);background-color:var(--color-surface);border-top:2px solid var(--color-primary);z-index:9999;padding:var(--spacing-md) var(--spacing-lg);position:fixed;right:0;box-shadow:0 -4px 20px #00000026}.cookie-banner-content{align-items:center;gap:var(--spacing-lg);max-width:900px;margin:0 auto;display:flex}.cookie-banner-text{color:var(--color-text);flex:1;margin:0;font-size:.9rem;line-height:1.4}.cookie-banner-actions{gap:var(--spacing-sm);flex-shrink:0;display:flex}.cookie-btn{cursor:pointer;white-space:nowrap;border:none;border-radius:8px;padding:8px 16px;font-size:.85rem;font-weight:600}.cookie-btn-accept{background-color:var(--color-primary);color:#fff}.cookie-btn-accept:hover{background-color:var(--color-primary-hover)}.cookie-btn-reject{color:var(--color-text-secondary);border:1px solid var(--color-border);background-color:#0000}.cookie-btn-reject:hover{background-color:var(--color-bg)}@media (width<=600px){.cookie-banner{left:0}.cookie-banner-content{text-align:center;flex-direction:column}.cookie-banner-actions{justify-content:center;width:100%}.cookie-btn{min-height:44px;padding:10px 20px}}.animated-showcase-board{flex-direction:column;align-items:center;display:flex;position:relative}.showcase-board-svg{aspect-ratio:1;border-radius:var(--radius-lg);width:80vw;min-width:280px;max-width:700px;height:auto;box-shadow:var(--shadow-xl);border:3px solid var(--color-brown-dark);overflow:hidden}.showcase-square-light{fill:var(--color-square-light)}.showcase-square-dark{fill:var(--color-square-dark)}.showcase-piece{transition:transform .4s ease-out}.showcase-piece.animating circle,.showcase-piece.animating path,.showcase-piece.animating rect{transition:all .4s ease-out}.capture-highlight{fill:#e74c3c4d;stroke:var(--color-error);stroke-width:3px;animation:.3s ease-out pulseHighlight}.capture-highlight.fade-out{animation:.4s ease-out forwards fadeOut}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes pulseHighlight{0%{opacity:0;transform:scale(.5)}50%{opacity:1;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.captured-piece{animation:.5s ease-out forwards captureEffect}@keyframes captureEffect{0%{opacity:1;transform:scale(1)}30%{opacity:1;transform:scale(1.3)}to{opacity:0;transform:scale(0)}}.capture-flash{animation:.4s ease-out flashSquare}@keyframes flashSquare{0%{fill:var(--color-square-dark)}50%{fill:var(--color-error)}to{fill:var(--color-square-dark)}}.showcase-variant-label{margin-top:var(--spacing-md);color:var(--color-text-secondary);text-align:center;font-size:1rem;font-weight:500}@media (width<=900px){.showcase-board-svg{max-width:500px}}@media (width<=768px){.showcase-board-svg{max-width:400px}.showcase-variant-label{font-size:.9rem}}@media (width<=480px){.showcase-board-svg{max-width:320px}}@media (prefers-reduced-motion:reduce){.capture-highlight,.capture-highlight.fade-out,.captured-piece,.capture-flash{animation-duration:.01ms!important;animation-iteration-count:1!important}}.features-section{z-index:1;padding:clamp(64px,9vw,104px) 40px;position:relative}.features-container{text-align:center;max-width:1040px;margin:0 auto}.section-label{font-family:var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--color-gold);margin-bottom:14px;font-size:.74rem;font-weight:700;display:inline-block}.section-title{font-family:var(--font-display);font-optical-sizing:auto;color:var(--color-forest-dark);letter-spacing:-.02em;background:linear-gradient(135deg, var(--color-forest-dark) 0%, var(--color-emerald) 55%, var(--color-forest-dark) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0 0 14px;padding-bottom:.08em;font-size:clamp(2rem,4.4vw,3rem);font-weight:600;line-height:1.18}.section-subtitle{color:var(--color-text-secondary);max-width:580px;margin:0 auto 52px;font-size:1.06rem;font-weight:400;line-height:1.6}.features-grid{flex-wrap:wrap;justify-content:center;gap:22px;display:flex}.feature-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);text-align:center;max-width:300px;transition:transform .4s var(--ease-smooth), box-shadow .4s var(--ease-smooth), border-color .3s ease;animation:feature-rise .6s var(--ease-smooth) both;background:linear-gradient(#ffffffeb,#ffffffd1);border:1.5px solid #ffffffa6;border-radius:20px;flex:260px;padding:34px 26px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffffe6,0 2px 4px #231e140a,0 14px 34px -16px #231e142e}.feature-card:before{content:"";background:linear-gradient(90deg, var(--color-forest-dark), var(--color-gold));transform-origin:0;height:3px;transition:transform .35s var(--ease-smooth);position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.feature-card:first-child{animation-delay:50ms}.feature-card:nth-child(2){animation-delay:.12s}.feature-card:nth-child(3){animation-delay:.19s}.feature-card:nth-child(4){animation-delay:.26s}.feature-card:nth-child(5){animation-delay:.33s}@keyframes feature-rise{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}.feature-card:hover{border-color:#c9a22766;transform:translateY(-6px);box-shadow:inset 0 1px #ffffffe6,0 20px 48px -18px #231e144d}.feature-card:hover:before{transform:scaleX(1)}.feature-icon-box{width:58px;height:58px;color:var(--color-forest-dark);background:linear-gradient(135deg,#2c5f2d1a,#10b98112);border-radius:15px;justify-content:center;align-items:center;margin:0 auto 18px;display:flex;box-shadow:inset 0 1px 2px #fff9,0 4px 12px #2c5f2d14}.feature-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--color-forest-dark);margin:0 0 8px;font-size:1.22rem;font-weight:600}.feature-desc{color:var(--color-text-secondary);margin:0;font-size:.92rem;line-height:1.6}@media (width<=900px){.features-section{padding:64px 24px}}@media (width<=480px){.features-section{padding:52px 18px}.features-grid{gap:16px}.feature-card{flex-basis:100%;max-width:none;padding:26px 22px}}@media (prefers-reduced-motion:reduce){.feature-card{animation:none}.feature-card:before{transition:none}}.how-section{z-index:1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff6b;border-top:1px solid #5d40371a;border-bottom:1px solid #5d40371a;padding:clamp(64px,9vw,104px) 40px;position:relative}.how-container{text-align:center;max-width:960px;margin:0 auto}.how-steps{justify-content:center;align-items:flex-start;gap:24px;margin-top:52px;display:flex}.how-step{text-align:center;flex-direction:column;flex:1;align-items:center;max-width:280px;padding:0 16px;display:flex;position:relative}.step-circle{width:64px;height:64px;color:var(--color-gold);font-family:var(--font-display);z-index:2;background:linear-gradient(#fffffff2,#f5f0e6d9);border:1.5px solid #c9a22773;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-bottom:22px;font-size:1.9rem;font-style:italic;font-weight:500;display:flex;position:relative;box-shadow:inset 0 1px 2px #fffc,0 8px 20px -8px #c9a22766}.step-connector{z-index:1;border-top:2px dashed #b5886380;width:calc(100% - 24px);height:0;position:absolute;top:31px;left:calc(50% + 42px)}.step-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--color-forest-dark);margin:0 0 8px;font-size:1.28rem;font-weight:600}.step-desc{color:var(--color-text-secondary);margin:0;font-size:.94rem;line-height:1.6}@media (width<=768px){.how-section{padding:64px 24px}.how-steps{flex-direction:column;align-items:center;gap:36px}.how-step{max-width:420px}.step-connector{display:none}}@media (width<=480px){.how-section{padding:52px 18px}}.lp-section{z-index:1;padding:clamp(64px,9vw,104px) 40px;position:relative}.lp-container{grid-template-columns:minmax(280px,.9fr) 1fr;align-items:center;gap:clamp(36px,6vw,80px);max-width:1000px;margin:0 auto;display:grid}.lp-visual{flex-direction:column;align-items:center;gap:16px;display:flex}.lp-board-frame{background:linear-gradient(145deg, #6b4a3c, var(--color-brown-dark));cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:18px;padding:14px;position:relative;box-shadow:inset 0 1px #ffffff1f,0 28px 56px -22px #2c281e8c}.lp-board{border-radius:9px;width:320px;max-width:100%;height:auto;display:block;box-shadow:0 2px 8px #00000040}.lp-board .sq-light{fill:var(--color-beige-warm)}.lp-board .sq-dark{fill:var(--color-brown-medium)}.lp-board .piece-white{fill:#fbf6ea;stroke:#2a2a2a;stroke-width:1.5px}.lp-board .piece-black{fill:#1c2117;stroke:#5a5a5a;stroke-width:1.5px}.lp-board .piece-king-mark{fill:var(--color-gold-light);stroke:#8a6d1a;stroke-width:1px}.lp-board-caption{font-family:var(--font-body);letter-spacing:.04em;color:var(--color-text-secondary);font-size:.82rem;font-weight:600}.lp-info{text-align:left}.lp-info .section-label{align-items:center;gap:7px;display:inline-flex}.lp-info .section-title{text-align:left;margin-bottom:16px}.lp-desc{color:var(--color-text-secondary);max-width:42ch;margin:0 0 28px;font-size:1.04rem;line-height:1.6}.lp-cta{min-height:var(--touch-target-min);font-family:var(--font-body);color:#fff;cursor:pointer;background:linear-gradient(135deg, var(--color-forest-dark), var(--color-forest-medium));transition:transform .3s var(--ease-smooth), box-shadow .3s var(--ease-smooth);border:none;border-radius:13px;justify-content:center;align-items:center;gap:9px;padding:0 30px;font-size:1.05rem;font-weight:700;display:inline-flex;box-shadow:inset 0 1px #ffffff2e,0 8px 22px #2c5f2d47}.lp-cta:hover{transform:translateY(-3px);box-shadow:inset 0 1px #ffffff2e,0 14px 30px #2c5f2d5c}.lp-cta svg{transition:transform .3s var(--ease-smooth)}.lp-cta:hover svg{transform:translate(4px)}@keyframes lpCtaPulse{0%{transform:none;box-shadow:inset 0 1px #ffffff2e,0 8px 22px #2c5f2d47}15%,45%{transform:translateY(-3px)scale(1.05);box-shadow:inset 0 1px #ffffff2e,0 0 0 6px #2c5f2d38,0 16px 36px #2c5f2d6b}30%,60%,to{transform:none;box-shadow:inset 0 1px #ffffff2e,0 8px 22px #2c5f2d47}}.lp-cta--pulse{animation:lpCtaPulse 1.2s var(--ease-smooth) both}@media (prefers-reduced-motion:reduce){.lp-cta--pulse{animation:none;box-shadow:inset 0 1px #ffffff2e,0 0 0 4px #2c5f2d52,0 8px 22px #2c5f2d47}}.lp-solved{color:var(--color-forest-medium);align-items:center;gap:9px;font-size:1.02rem;font-weight:700;display:inline-flex}@media (width<=768px){.lp-section{padding:64px 24px}.lp-container{text-align:center;grid-template-columns:1fr;gap:36px}.lp-info,.lp-info .section-title,.lp-desc{text-align:center}.lp-desc{margin-left:auto;margin-right:auto}}@media (width<=480px){.lp-section{padding:52px 18px}.lp-board{width:260px}.lp-cta{width:100%}}.variants-section{z-index:1;background:radial-gradient(circle at 18% 24%, #10b9811a, transparent 46%), radial-gradient(circle at 84% 78%, #c9a2271a, transparent 46%), linear-gradient(135deg, var(--color-forest-dark) 0%, var(--color-forest-deep) 100%);color:#fff;padding:clamp(72px,10vw,116px) 40px;position:relative;overflow:hidden}.variants-section:before{content:"";pointer-events:none;opacity:.05;background-image:linear-gradient(45deg,#fff 25%,#0000 25%),linear-gradient(-45deg,#fff 25%,#0000 25%);background-position:0 0,28px 28px;background-size:56px 56px;position:absolute;inset:0}.variants-container{z-index:1;text-align:center;max-width:1180px;margin:0 auto;position:relative}.variants-section .section-label{color:var(--color-gold-light)}.variants-section .section-title{-webkit-text-fill-color:#fff;color:#fff;background:0 0}.variants-grid{grid-template-columns:repeat(2,1fr);gap:24px;margin-top:52px;display:grid}.variant-card{color:inherit;cursor:pointer;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);text-align:left;transition:transform .4s var(--ease-smooth), box-shadow .4s var(--ease-smooth), border-color .3s ease;background:linear-gradient(#ffffff1c,#ffffff0a);border:1.5px solid #ffffff29;border-radius:18px;text-decoration:none;display:block;overflow:hidden}.variant-card:hover{border-color:#ffffff52;transform:translateY(-6px);box-shadow:0 24px 52px -20px #00000073}.variant-card:focus-visible{outline:2px solid var(--color-gold-light);outline-offset:3px}.variant-preview{border-bottom:1px solid #ffffff1f;justify-content:center;align-items:center;padding:30px;display:flex}.variant-preview-intl{background:linear-gradient(135deg,#10b98129,#a8d5a21a)}.variant-preview-ita{background:linear-gradient(135deg,#c9a2272e,#f0cc5514)}.variant-preview-eng{background:linear-gradient(135deg,#60a5e629,#2563a31a)}.variant-preview-bra{background:linear-gradient(135deg,#ffcc2929,#0080371f)}.mini-board{border-radius:7px;display:grid;overflow:hidden;box-shadow:0 6px 18px #00000059}.mini-board-10{grid-template-rows:repeat(10,20px);grid-template-columns:repeat(10,20px)}.mini-board-8{grid-template-rows:repeat(8,24px);grid-template-columns:repeat(8,24px)}.mini-cell{justify-content:center;align-items:center;display:flex}.mini-cell.light{background:var(--mini-light,var(--color-beige-warm))}.mini-cell.dark{background:var(--mini-dark,var(--color-brown-medium))}.mini-piece{border-radius:50%;width:60%;height:60%}.mini-piece.white{background:radial-gradient(circle at 35% 35%, var(--mini-white,#fff), var(--mini-white-2,#ddd));box-shadow:0 1px 2px #0000004d}.mini-piece.black{background:radial-gradient(circle at 35% 35%, var(--mini-black,#4a5240), var(--mini-black-2,#1c2117));box-shadow:0 1px 2px #0006}.variant-info{padding:26px}.variant-badge{letter-spacing:.1em;text-transform:uppercase;color:#fff;background:#ffffff24;border-radius:7px;margin-bottom:12px;padding:4px 11px;font-size:.68rem;font-weight:700;display:inline-block}.variant-badge-intl{color:#d6fff0;background:#10b98140}.variant-badge-ita{color:#ffeeb8;background:#f0cc5538}.variant-badge-eng{color:#d6e9ff;background:#60a5e638}.variant-badge-bra{color:#fff3cc;background:#ffcc2933}.variant-name{font-family:var(--font-display);letter-spacing:-.01em;color:#fff;margin:0 0 8px;font-size:1.34rem;font-weight:600}.variant-desc{color:#ffffffb8;margin:0 0 16px;font-size:.9rem;line-height:1.6}.variant-specs{flex-wrap:wrap;gap:8px;display:flex}.spec-pill{color:#ffffffd1;white-space:nowrap;background:#ffffff1a;border:1px solid #ffffff1f;border-radius:20px;align-items:center;gap:5px;padding:5px 11px;font-size:.74rem;font-weight:600;display:inline-flex}.variants-more-title{font-family:var(--font-display);color:#ffffffeb;text-align:center;margin:56px 0 22px;font-size:1.2rem;font-weight:600}.variants-all-grid{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.variant-chip{min-height:38px;font-family:var(--font-body);color:#ffffffe6;white-space:nowrap;cursor:pointer;background:#ffffff14;border:1px solid #ffffff29;border-radius:20px;align-items:center;gap:6px;padding:8px 15px;font-size:.85rem;font-weight:600;transition:background .18s,border-color .18s,transform .18s,color .18s;display:inline-flex}.variant-chip:hover{border-color:var(--color-gold-light);color:#fff;background:#ffffff29;transform:translateY(-2px)}@media (width<=960px){.variants-grid{grid-template-columns:1fr}}@media (width<=768px){.variants-section{padding:64px 24px}}@media (width<=480px){.variants-section{padding:56px 18px}.mini-board-10{grid-template-rows:repeat(10,16px);grid-template-columns:repeat(10,16px)}.mini-board-8{grid-template-rows:repeat(8,20px);grid-template-columns:repeat(8,20px)}.variant-info{padding:22px}}.cta-banner{z-index:1;padding:clamp(56px,8vw,96px) 40px;position:relative}.cta-card{text-align:center;background:radial-gradient(circle at 80% 18%, #10b9812e, transparent 48%), linear-gradient(135deg, var(--color-forest-dark) 0%, var(--color-forest-deep) 72%);border-radius:28px;max-width:1080px;margin:0 auto;padding:clamp(44px,6vw,76px) 40px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff14,0 30px 70px -30px #1f4520b3}.cta-card:before{content:"";opacity:.08;pointer-events:none;background-image:linear-gradient(45deg,#fff 25%,#0000 25%),linear-gradient(-45deg,#fff 25%,#0000 25%);background-position:0 0,27px 27px;background-size:54px 54px;position:absolute;inset:0}.cta-content{z-index:1;max-width:620px;margin:0 auto;position:relative}.cta-title{font-family:var(--font-display);font-optical-sizing:auto;letter-spacing:-.02em;color:#fff;margin:0 0 14px;font-size:clamp(2rem,4.4vw,3.1rem);font-weight:600;line-height:1.06}.cta-subtitle{color:#ffffffd1;max-width:46ch;margin:0 auto 32px;font-size:1.1rem;line-height:1.6}.cta-button{min-height:var(--touch-target-min);font-family:var(--font-body);letter-spacing:.2px;color:#2a2410;cursor:pointer;background:linear-gradient(135deg, var(--color-gold-light), var(--color-gold));transition:transform .3s var(--ease-smooth), box-shadow .3s var(--ease-smooth);border:none;border-radius:13px;justify-content:center;align-items:center;padding:17px 42px;font-size:1.15rem;font-weight:700;display:inline-flex;box-shadow:inset 0 1px #ffffff4d,0 10px 26px #0000004d}.cta-button:hover{transform:translateY(-3px);box-shadow:inset 0 1px #ffffff4d,0 16px 34px #0006}@media (width<=768px){.cta-banner{padding:56px 24px}}@media (width<=480px){.cta-banner{padding:48px 18px}.cta-card{border-radius:22px;padding:40px 22px}.cta-subtitle{font-size:1rem}.cta-button{width:100%;padding:15px 32px;font-size:1.05rem}}.daily-puzzle-card .dash-panel-header h3{align-items:center;gap:var(--spacing-sm);display:flex}.daily-puzzle-solve-btn{background:var(--color-primary,#22c55e);color:#fff;cursor:pointer;letter-spacing:.02em;text-transform:uppercase;border:none;border-radius:4px;padding:3px 10px;font-size:.7rem;font-weight:600;line-height:1;transition:opacity .15s}.daily-puzzle-solve-btn:hover{opacity:.9}.daily-puzzle-solved-badge{color:var(--color-primary,#22c55e);font-size:.8rem;font-weight:600}.daily-puzzle-body{justify-content:center;align-items:center;display:flex}.daily-puzzle-board{border:2px solid var(--color-border);border-radius:var(--radius-sm);flex-shrink:0;width:180px;height:180px}.daily-puzzle-board .sq-light{fill:#f0d9b5}.daily-puzzle-board .sq-dark{fill:#b58863}.daily-puzzle-board .piece-white{fill:#f5f5f5;stroke:#2a2a2a;stroke-width:1.5px}.daily-puzzle-board .piece-black{fill:#1a1a1a;stroke:#5a5a5a;stroke-width:1.5px}.daily-puzzle-board .piece-king-mark{fill:#d4af37;stroke:#8a6d1a;stroke-width:1px}.daily-puzzle-info{gap:var(--spacing-xs);flex-direction:column;flex:1;display:flex}.daily-puzzle-side{color:var(--color-text-primary);font-size:.95rem;font-weight:600}.daily-puzzle-desc{color:var(--color-text-secondary);font-size:.85rem;line-height:1.4}.daily-puzzle-id{color:var(--color-text-secondary);opacity:.6;margin-top:auto;font-size:.75rem}@media (width<=600px){.daily-puzzle-body{flex-direction:column;align-items:stretch}.daily-puzzle-board{width:100%;max-width:240px;height:auto;margin:0 auto}}.dashboard{max-width:1000px;margin:0 auto;padding:32px 24px 60px;position:relative}.dash-hero{align-items:center;gap:40px;margin-bottom:32px;display:flex}.dash-hero-content{flex-direction:column;flex:1;gap:8px;display:flex}.dash-welcome{color:var(--color-text-secondary);font-size:.9rem;font-weight:500}.dash-username{color:var(--color-forest-dark);margin:0;font-family:Georgia,Times New Roman,serif;font-size:2.4rem;font-weight:700;line-height:1.1}.dash-cta-row{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.dash-cta{padding:12px 20px!important;font-size:.95rem!important}.dash-cta.home-cta-primary{animation:none;box-shadow:0 4px 12px #2c5f2d40}.dash-hero-board{flex-shrink:0;max-width:260px}.dash-hero-board .showcase-board-svg{width:100%;max-width:260px}.dash-hero-board .showcase-variant-label{font-size:.75rem}.dash-ratings-header{justify-content:flex-end;margin-bottom:12px;display:flex}.dash-variant-toggle{background:var(--color-bg);border-radius:8px;gap:4px;padding:3px;display:flex}.dash-variant-btn{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 14px;font-size:.8rem;font-weight:600;transition:all .15s}.dash-variant-btn.active{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 4px #00000014}.dash-rating-cards{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px;display:grid}.dash-rating-card{background:var(--color-surface);border:1px solid var(--color-border);text-align:center;border-radius:12px;padding:20px 16px}.dash-rating-header{justify-content:center;align-items:center;gap:6px;margin-bottom:8px;display:flex}.dash-rating-icon{font-size:1rem}.dash-rating-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:.8rem;font-weight:600}.dash-rating-value{color:var(--color-text);font-size:1.8rem;font-weight:800;line-height:1}.dash-panels{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.dash-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;overflow:hidden}.dash-panel-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.dash-panel-header h3{color:var(--color-text);margin:0;font-size:.95rem;font-weight:700}.dash-link{color:var(--color-forest-medium);cursor:pointer;background:0 0;border:none;padding:0;font-size:.8rem;font-weight:600;transition:color .15s}.dash-link:hover{color:var(--color-forest-dark)}.dash-panel-body{padding:8px 0}.dash-empty{text-align:center;color:var(--color-text-muted);margin:0;padding:24px 20px;font-size:.88rem}.dash-game-row{align-items:center;gap:12px;padding:10px 20px;transition:background .1s;display:flex}.dash-game-row:hover{background:#00000005}.dash-result-badge{color:#fff;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.75rem;font-weight:700;display:flex}.dash-result-win{background:#4caf50}.dash-result-loss{background:#e53935}.dash-result-draw{background:#9e9e9e}.dash-game-info{flex-direction:column;gap:2px;min-width:0;display:flex}.dash-game-opponent{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;font-weight:600;overflow:hidden}.dash-game-meta{color:var(--color-text-muted);font-size:.75rem}.dash-event-row{cursor:pointer;align-items:center;gap:12px;padding:10px 20px;transition:background .1s;display:flex}.dash-event-row:hover{background:#00000005}.dash-event-icon{flex-shrink:0;font-size:1.2rem}.dash-event-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.dash-event-name{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;font-weight:600;overflow:hidden}.dash-event-meta{color:var(--color-text-muted);font-size:.75rem}.dash-live-badge{color:#fff;letter-spacing:.5px;background:#e53935;border-radius:4px;flex-shrink:0;padding:3px 8px;font-size:.65rem;font-weight:700}.dash-join-btn{color:var(--color-forest-medium);border:1px solid var(--color-forest-medium);border-radius:6px;flex-shrink:0;padding:4px 12px;font-size:.75rem;font-weight:600}.dash-arena-panel{align-items:center;gap:var(--spacing-sm);flex-direction:column;padding:16px 20px;display:flex}.dash-arena-desc{color:var(--color-text-secondary);text-align:center;margin:0;font-size:.85rem}.dash-create-arena-btn{align-items:center;gap:6px;width:auto!important;padding:8px 20px!important;font-size:.85rem!important;display:inline-flex!important}@media (width<=900px){.dash-hero{text-align:center;flex-direction:column;gap:24px}.dash-hero-content{align-items:center}.dash-hero-board{order:-1;max-width:220px}.dash-cta-row{justify-content:center}.dash-username{font-size:2rem}}@media (width<=768px){.dashboard{padding:24px 16px 48px}.dash-rating-cards{grid-template-columns:repeat(2,1fr)}.dash-panels{grid-template-columns:1fr}}@media (width<=480px){.dash-username{font-size:1.6rem}.dash-cta-row{flex-direction:column;align-items:stretch}.dash-rating-cards{grid-template-columns:repeat(2,1fr);gap:10px}.dash-rating-value{font-size:1.4rem}.dash-rating-card{padding:14px 10px}}@media (width<=360px){.dashboard{padding:16px 12px 40px}.dash-hero-board{max-width:180px}}.home-page-new{min-height:100vh;font-family:var(--font-body);flex-direction:column;display:flex;position:relative;overflow:hidden}.home-bg-pattern{pointer-events:none;z-index:0;background-image:var(--app-bg-image);background-size:var(--app-bg-size);background-position:var(--app-bg-position);position:fixed;inset:0}.home-hero{z-index:1;flex:1;justify-content:center;align-items:center;gap:60px;min-height:min(100vh - 80px,700px);padding:40px;display:flex;position:relative}.home-hero-content{flex-direction:column;flex:1;gap:20px;max-width:500px;display:flex}.home-hero-title{font-family:var(--font-display);font-optical-sizing:auto;color:var(--color-forest-dark);letter-spacing:-.02em;background:linear-gradient(135deg, var(--color-forest-dark) 0%, var(--color-emerald) 52%, var(--color-forest-dark) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;padding-bottom:.08em;font-size:clamp(2.6rem,6vw,4rem);font-weight:600;line-height:1.12}.home-hero-accent{-webkit-text-fill-color:var(--color-gold);color:var(--color-gold);font-style:italic;font-weight:500}.home-hero-tagline{color:var(--color-text-secondary);max-width:440px;margin:0;font-size:clamp(1.05rem,1.6vw,1.2rem);font-weight:400;line-height:1.6}.home-cta-group{flex-direction:column;gap:12px;max-width:400px;margin-top:8px;display:flex}.home-cta-row{gap:12px;display:flex}.home-hero-board{flex-shrink:0;max-width:480px;position:relative}.home-hero-board:before{content:"";z-index:-1;filter:blur(28px);pointer-events:none;background:radial-gradient(circle at 50% 45%,#10b98129,#0000 62%),radial-gradient(circle at 70% 80%,#c9a2271f,#0000 60%);position:absolute;inset:-8% -8% -4%}.home-hero-board .showcase-board-svg{border-radius:14px;width:100%;min-width:0;max-width:420px;box-shadow:0 2px 6px #231e141a,0 24px 56px -18px #231e1466}.home-hero-board .showcase-variant-label{color:var(--color-text-muted);font-size:.85rem}.home-cta-primary{min-height:var(--touch-target-min);background:linear-gradient(135deg, var(--color-forest-dark) 0%, var(--color-forest-medium) 55%, var(--color-emerald) 100%);color:#fff;font-family:var(--font-body);cursor:pointer;transition:transform .35s var(--ease-smooth), box-shadow .35s var(--ease-smooth);letter-spacing:.2px;border:none;border-radius:14px;padding:19px 40px;font-size:1.3rem;font-weight:700;position:relative;box-shadow:inset 0 1px #fff3,0 8px 22px #2c5f2d4d,0 24px 48px -16px #2c5f2d61}.home-cta-primary:hover{transform:translateY(-3px);box-shadow:inset 0 1px #fff3,0 14px 30px #2c5f2d61,0 32px 60px -16px #2c5f2d73}.home-cta-primary:active{transform:translateY(-1px)}.home-cta-secondary{min-height:var(--touch-target-min);color:var(--color-text);font:inherit;cursor:pointer;background:#ffffffd9;border:1px solid #00000014;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-size:.92rem;font-weight:600;transition:transform .2s,background .2s,box-shadow .2s;display:flex;box-shadow:0 1px 2px #0000000a}.home-cta-secondary:hover{background:#fff;transform:translateY(-2px)}.home-cta-tertiary{min-height:var(--touch-target-min);color:var(--color-forest-deep);font:inherit;cursor:pointer;background:0 0;border:1px solid #2c5f2d4d;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-size:.92rem;font-weight:600;transition:transform .2s,background .2s;display:flex}.home-cta-tertiary:hover{background:#2c5f2d0f;transform:translateY(-2px)}.home-cta-icon{font-size:1.2rem}.home-cta-spinner{animation:1s linear infinite home-cta-spin}@keyframes home-cta-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.home-cta-login-hint{color:#ffffffb3;margin:0;font-size:.875rem}.home-cta-login-link{color:gold;cursor:pointer;background:0 0;border:none;padding:0;font-size:.875rem;font-weight:600;text-decoration:underline}.home-cta-login-link:hover{color:#fff}.home-hero-stats{align-items:center;gap:16px;margin-top:8px;display:flex}.home-stat{color:var(--color-text-secondary);align-items:center;gap:6px;font-size:.9rem;display:flex}.home-stat-dot{background:#4caf50;border-radius:50%;width:8px;height:8px;animation:2s infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.home-stat-separator{color:#c9a84c}.home-challenge-section{max-height:400px;overflow-y:auto}.challenge-guest-error{color:#dc3545;text-align:center;background:#dc354526;border-radius:6px;margin-bottom:8px;padding:8px 12px;font-size:.85rem}.home-challenge-section .online-players-list{box-shadow:none;background:0 0;padding:0}@media (width<=900px){.home-hero{flex-direction:column;gap:30px;min-height:auto;padding:30px 20px}.home-hero-content{text-align:center;align-items:center}.home-cta-group{width:100%}.home-hero-title{font-size:2.4rem}.home-hero-tagline{font-size:1rem}.home-hero-board{order:-1;max-width:340px}.home-hero-stats{justify-content:center}}@media (width<=480px){.home-hero{gap:24px;padding:20px 16px}.home-hero-title{font-size:2rem}.home-hero-board{max-width:190px}.home-cta-primary{padding:16px 32px;font-size:1.2rem}.home-cta-row{flex-direction:column}}@media (width<=360px){.home-hero{gap:16px;padding:16px 12px}.home-hero-title{font-size:1.7rem}.home-hero-tagline{font-size:.9rem}.home-cta-primary{padding:14px 24px;font-size:1.1rem}.home-cta-secondary,.home-cta-tertiary{padding:12px 16px;font-size:.9rem}.home-hero-board{max-width:162px}}@media (prefers-reduced-motion:reduce){.home-stat-dot,.home-cta-spinner{animation-duration:.01ms!important;animation-iteration-count:1!important}}.incoming-challenge-banner{top:max(8px, env(safe-area-inset-top));z-index:9000;pointer-events:none;justify-content:center;padding:0 8px;display:flex;position:fixed;left:0;right:0}.icb-card{pointer-events:auto;gap:var(--spacing-sm);border-radius:var(--radius-lg);border:1.5px solid var(--color-forest-medium);background:radial-gradient(ellipse at 0% 0%, #c9a22724, transparent 60%), linear-gradient(180deg, var(--color-surface), #fffffff5);width:100%;max-width:520px;box-shadow:var(--shadow-lg), 0 0 0 4px #3d8b401a;flex-direction:column;padding:12px 14px;animation:.28s cubic-bezier(.16,1,.3,1) icb-slide-in,2.2s ease-in-out .28s infinite icb-pulse;display:flex}@keyframes icb-slide-in{0%{opacity:0;transform:translateY(-18px)}to{opacity:1;transform:translateY(0)}}@keyframes icb-pulse{0%,to{box-shadow:var(--shadow-lg), 0 0 0 4px #3d8b401a}50%{box-shadow:var(--shadow-lg), 0 0 0 5px #c9a22738}}@media (prefers-reduced-motion:reduce){.icb-card{animation:.2s ease-out icb-slide-in}}.icb-icon{border-radius:var(--radius-md);color:#fff;background:linear-gradient(135deg, var(--color-forest-medium), var(--color-primary));flex:none;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.icb-text{min-width:0;color:var(--color-text);flex:auto;font-size:.95rem;line-height:1.35}.icb-text b{font-weight:700}.icb-meta{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.icb-chip{letter-spacing:.02em;color:var(--color-forest-medium);background:#3d8b401a;border:1px solid #3d8b4038;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-flex}.icb-chip svg{flex-shrink:0}.icb-chip-mode{color:#8a6d1a;background:#c9a22729;border-color:#c9a22761}.icb-timer{font-variant-numeric:tabular-nums;color:var(--color-forest-medium);border-radius:var(--radius-md);background:#3d8b401a;border:1px solid #3d8b4038;flex:none;align-self:flex-start;padding:2px 8px;font-size:.85rem;font-weight:700}.icb-actions{gap:var(--spacing-sm);display:flex}.icb-btn{min-height:var(--touch-target-min);min-width:var(--touch-target-min);border-radius:var(--radius-md);cursor:pointer;border:1px solid #0000;flex:1 1 0;justify-content:center;align-items:center;padding:0 16px;font-size:.95rem;font-weight:600;transition:filter .12s,background-color .12s;display:inline-flex}.icb-btn:disabled{opacity:.6;cursor:default}.icb-accept{color:#fff;background:linear-gradient(135deg, var(--color-forest-medium), var(--color-primary))}.icb-accept:not(:disabled):hover{filter:brightness(1.06)}.icb-decline{color:var(--color-text);border-color:var(--color-border);background:0 0}.icb-decline:not(:disabled):hover{background:#0000000a}.icb-spinner{border:2px solid #ffffff80;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite icb-spin}@keyframes icb-spin{to{transform:rotate(360deg)}}@media (width>=600px){.incoming-challenge-banner{top:max(16px, env(safe-area-inset-top))}.icb-card{flex-direction:row;align-items:center;gap:14px;padding:12px 16px}.icb-timer{align-self:center}.icb-actions,.icb-btn{flex:none}}@media (width>=769px){.incoming-challenge-banner{top:calc(var(--top-sidebar-height,64px) + 12px)}}.incoming-rematch-banner{top:max(8px, env(safe-area-inset-top));z-index:9000;pointer-events:none;justify-content:center;padding:0 8px;display:flex;position:fixed;left:0;right:0}.irb-card{pointer-events:auto;gap:var(--spacing-sm);border-radius:var(--radius-lg);border:1.5px solid var(--color-forest-medium);background:radial-gradient(ellipse at 0% 0%, #c9a22724, transparent 60%), linear-gradient(180deg, var(--color-surface), #fffffff5);width:100%;max-width:520px;box-shadow:var(--shadow-lg), 0 0 0 4px #3d8b401a;flex-direction:column;padding:12px 14px;animation:.28s cubic-bezier(.16,1,.3,1) irb-slide-in,2.2s ease-in-out .28s infinite irb-pulse;display:flex}@keyframes irb-slide-in{0%{opacity:0;transform:translateY(-18px)}to{opacity:1;transform:translateY(0)}}@keyframes irb-pulse{0%,to{box-shadow:var(--shadow-lg), 0 0 0 4px #3d8b401a}50%{box-shadow:var(--shadow-lg), 0 0 0 5px #c9a22738}}@media (prefers-reduced-motion:reduce){.irb-card{animation:.2s ease-out irb-slide-in}}.irb-icon{border-radius:var(--radius-md);color:#fff;background:linear-gradient(135deg, var(--color-forest-medium), var(--color-primary));flex:none;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.irb-text{min-width:0;color:var(--color-text);flex:auto;font-size:.95rem;line-height:1.35}.irb-text b{font-weight:700}.irb-timer{font-variant-numeric:tabular-nums;color:var(--color-forest-medium);border-radius:var(--radius-md);background:#3d8b401a;border:1px solid #3d8b4038;flex:none;align-self:flex-start;padding:2px 8px;font-size:.85rem;font-weight:700}.irb-actions{gap:var(--spacing-sm);display:flex}.irb-btn{min-height:var(--touch-target-min);min-width:var(--touch-target-min);border-radius:var(--radius-md);cursor:pointer;border:1px solid #0000;flex:1 1 0;justify-content:center;align-items:center;padding:0 16px;font-size:.95rem;font-weight:600;transition:filter .12s,background-color .12s;display:inline-flex}.irb-btn:disabled{opacity:.6;cursor:default}.irb-accept{color:#fff;background:linear-gradient(135deg, var(--color-forest-medium), var(--color-primary))}.irb-accept:not(:disabled):hover{filter:brightness(1.06)}.irb-decline{color:var(--color-text);border-color:var(--color-border);background:0 0}.irb-decline:not(:disabled):hover{background:#0000000a}.irb-spinner{border:2px solid #ffffff80;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite irb-spin}@keyframes irb-spin{to{transform:rotate(360deg)}}@media (width>=600px){.incoming-rematch-banner{top:max(16px, env(safe-area-inset-top))}.irb-card{flex-direction:row;align-items:center;gap:14px;padding:12px 16px}.irb-timer{align-self:center}.irb-actions,.irb-btn{flex:none}}@media (width>=769px){.incoming-rematch-banner{top:calc(var(--top-sidebar-height,64px) + 12px)}}.challenge-details{margin-bottom:var(--spacing-lg)}.detail-item{justify-content:space-between;gap:var(--spacing-sm);padding:var(--spacing-xs) 0;display:flex}.detail-label{color:var(--color-text-secondary);font-size:.9rem}.detail-value{color:var(--color-text);text-align:right;align-items:center;gap:6px;font-size:.9rem;font-weight:500;display:inline-flex}.detail-value svg{flex-shrink:0}.detail-value .variant-flag{flex-shrink:0;font-size:1rem;line-height:1}.challenge-modal{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);width:100%;max-width:360px;box-shadow:var(--shadow-lg), 0 4px 30px #00000026}.challenge-modal.outgoing{border:2px solid var(--color-warning)}.challenge-modal.outgoing.status-message{border-color:var(--color-border)}.challenge-header{margin-bottom:var(--spacing-lg);justify-content:space-between;align-items:center;display:flex}.challenge-header h2{color:var(--color-text);margin:0;font-size:1.2rem}.timer-badge{color:var(--color-warning);border-radius:var(--radius-lg);font-variant-numeric:tabular-nums;background-color:#f39c121f;border:1px solid #f39c1233;padding:4px 12px;font-size:.9rem;font-weight:600}.challenger-info{justify-content:center;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background-color:var(--color-beige-cream);border-radius:var(--radius-md);border:1px solid var(--color-border);display:flex}.challenger-name{color:var(--color-text);font-size:1.3rem;font-weight:600}.challenge-actions{gap:var(--spacing-sm);display:flex}.decline-btn{padding:var(--spacing-md);border-radius:var(--radius-md);color:var(--color-error);cursor:pointer;background-color:#e74c3c0f;border:1px solid #e74c3c4d;flex:1;font-size:.95rem;font-weight:600;transition:all .2s}.decline-btn:hover:not(:disabled){background-color:#e74c3c1f}.decline-btn:disabled{opacity:.5;cursor:not-allowed}.outgoing-spinner-container{margin-bottom:var(--spacing-lg);justify-content:center;display:flex}.outgoing-spinner-container .spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:32px;height:32px;animation:1s linear infinite spin}@media (prefers-reduced-motion:reduce){.outgoing-spinner-container .spinner{animation-duration:.01ms!important;animation-iteration-count:1!important}}.challenge-link-modal{background:var(--color-surface,#fff);border-radius:var(--radius-lg);padding:var(--spacing-lg);width:100%;max-width:400px;box-shadow:var(--shadow-lg), 0 4px 30px #00000026}.challenge-link-head{justify-content:space-between;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);display:flex}.challenge-link-head h2{color:var(--color-text);margin:0;font-size:1.15rem}.challenge-link-close{min-width:var(--touch-target-min);min-height:var(--touch-target-min);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.challenge-link-close:hover{background:#0000000d}.challenge-link-intro,.challenge-link-claimed,.challenge-link-note,.challenge-link-error{margin:0 0 var(--spacing-md);color:var(--color-text-secondary);font-size:.88rem;line-height:1.4}.challenge-link-claimed{color:var(--color-forest-dark,#2c5f2d);font-weight:600}.challenge-link-error{color:var(--color-error)}.challenge-link-url{margin-bottom:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-beige-cream,#00000008);color:var(--color-text);overflow-wrap:anywhere;word-break:break-all;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}.challenge-link-actions{margin-bottom:var(--spacing-md);gap:10px;display:flex}.challenge-link-share,.challenge-link-copy{min-height:var(--touch-target-min);cursor:pointer;border-radius:11px;flex:1;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-family:DM Sans,sans-serif;font-size:.88rem;font-weight:600;transition:filter .15s,background .15s;display:inline-flex}.challenge-link-share{background:linear-gradient(135deg, var(--color-forest-medium,#3d8b40), var(--color-forest-dark,#2c5f2d));color:#fff;border:none;box-shadow:0 2px 8px #2c5f2d47}.challenge-link-share:hover{filter:brightness(1.06)}.challenge-link-copy{color:var(--color-forest-dark,#2c5f2d);background:#2c5f2d0f;border:1px solid #2c5f2d59}.challenge-link-copy:hover{background:#2c5f2d1f}.challenge-link-cancel{width:100%;min-height:var(--touch-target-min);color:var(--color-error);cursor:pointer;background:#e74c3c0f;border:1px solid #e74c3c4d;border-radius:11px;padding:10px 14px;font-family:DM Sans,sans-serif;font-size:.88rem;font-weight:600}.challenge-link-cancel:hover{background:#e74c3c1f}@media (width<=360px){.challenge-link-modal{padding:var(--spacing-md)}.challenge-link-actions{flex-direction:column}}.challenge-invite-page{padding:var(--spacing-lg) var(--spacing-md);justify-content:center;align-items:center;min-height:60vh;display:flex}.challenge-invite-card{width:100%;max-width:400px;padding:var(--spacing-lg);border-radius:var(--radius-lg);background:var(--color-surface,#fff);box-shadow:var(--shadow-lg);text-align:center}.challenge-invite-title{color:var(--color-text);overflow-wrap:anywhere;margin:0 0 4px;font-size:1.2rem}.challenge-invite-rating{margin:0 0 var(--spacing-lg);color:var(--color-text-secondary);font-size:.9rem;font-weight:600}.challenge-invite-note,.challenge-invite-error{margin:0 0 var(--spacing-md);color:var(--color-text-secondary);font-size:.88rem;line-height:1.4}.challenge-invite-error{color:var(--color-error)}.challenge-invite-accept,.challenge-invite-secondary{width:100%;min-height:var(--touch-target-min);cursor:pointer;border-radius:11px;justify-content:center;align-items:center;padding:12px 18px;font-family:DM Sans,sans-serif;font-size:.95rem;font-weight:600;display:flex}.challenge-invite-accept{background:linear-gradient(135deg, var(--color-forest-medium,#3d8b40), var(--color-forest-dark,#2c5f2d));color:#fff;border:none;margin-bottom:10px;box-shadow:0 2px 8px #2c5f2d47}.challenge-invite-accept:hover:not(:disabled){filter:brightness(1.06)}.challenge-invite-accept:disabled{opacity:.6;cursor:not-allowed}.challenge-invite-secondary{border:1px solid var(--color-border);color:var(--color-text-secondary);background:0 0}.challenge-invite-secondary:hover{background:#0000000a}.challenge-invite-spinner{width:32px;height:32px;margin:0 auto var(--spacing-md);border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:1s linear infinite challenge-invite-spin}.challenge-invite-spinner.small{border-width:2px;border-color:#fff #ffffff59 #ffffff59;width:18px;height:18px;margin:0}@keyframes challenge-invite-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.challenge-invite-spinner{animation-duration:.01ms!important;animation-iteration-count:1!important}}.modal-overlay:has(.puzzle-modal){z-index:9000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000073;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal.dashboard-modal.puzzle-modal{background:var(--color-bg,#fff);border:1px solid #ffffffb3;border-radius:20px;flex-direction:column;gap:0;width:100%;max-width:420px;max-height:90vh;padding:0;display:flex;position:relative;overflow:hidden;box-shadow:0 24px 60px -12px #231e1438}@media (width<=767px){.modal-overlay:has(.puzzle-modal){padding:0}.modal.dashboard-modal.puzzle-modal{width:100%;max-width:none;height:100dvh;max-height:none;box-shadow:none;border:none;border-radius:0}.puzzle-modal .pz-side .pz-turn-card{padding-right:64px}}.puzzle-modal .pz-page{-webkit-overflow-scrolling:touch;flex:auto;width:100%;max-width:none;min-height:0;overflow-y:auto}.puzzle-modal .puzzle-modal-close{top:calc(env(safe-area-inset-top,0px) + 10px);z-index:6;cursor:pointer;width:44px;height:44px;color:var(--color-text,#2a2622);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000000f;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;right:12px}.puzzle-modal .puzzle-modal-close:hover{background:#0000001f}.page-container{padding:var(--spacing-xl);width:100%;max-width:1200px;margin:0 auto}.back-button{color:var(--color-text-secondary);cursor:pointer;padding:var(--spacing-sm);margin-bottom:var(--spacing-md);background-color:#0000;border:none;font-size:.9rem;transition:color .2s}.back-button:hover{color:var(--color-text)}.game-fullscreen{background-color:var(--color-bg);touch-action:none;overscroll-behavior:none;flex-direction:column;height:100svh;display:flex;overflow:hidden}.game-header{padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.game-back-btn{color:var(--color-text-secondary);cursor:pointer;padding:var(--spacing-sm);background:0 0;border:none;font-size:.9rem;transition:color .2s}.game-back-btn:hover{color:var(--color-text)}.game-info{align-items:center;gap:var(--spacing-lg);flex-wrap:wrap;display:flex}.game-variant{color:var(--color-text-secondary);font-size:.9rem}.game-main{padding:var(--spacing-xl);flex:1;justify-content:center;align-items:center;display:flex;overflow:auto}.game-footer{justify-content:center;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-surface);border-top:1px solid var(--color-border);display:flex}.turn-indicator{align-items:center;gap:var(--spacing-sm);color:var(--color-text);font-size:.95rem;display:flex}.turn-dot{border:2px solid var(--color-border);border-radius:50%;width:16px;height:16px}.turn-dot.white{background-color:var(--color-beige-cream)}.turn-dot.black{background-color:var(--color-brown-dark)}.turn-dot.thinking{animation:1s ease-in-out infinite pulse}.game-layout{align-items:center;gap:var(--spacing-lg);display:flex}.action-button{padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);cursor:pointer;border:1px solid var(--color-border);background-color:var(--color-surface);min-height:44px;color:var(--color-text);font-size:.9rem;transition:all .2s}.action-button:hover{background-color:var(--color-bg)}.action-button.resign{border-color:var(--color-error);color:var(--color-error)}.action-button.resign:hover{background-color:#e74c3c1a}.room-badge,.player-badge{background-color:var(--color-bg);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:.85rem}.player-badge span.white{color:var(--color-beige-cream)}.player-badge span.black{color:var(--color-neutral-600)}.result-reason{color:var(--color-text-secondary);margin-left:var(--spacing-sm);font-size:.85rem}.online-board-container{gap:var(--spacing-lg);flex-direction:row;justify-content:center;align-items:flex-start;width:100%;display:flex}.online-game-sidebar{gap:var(--spacing-md);flex-direction:column;min-width:280px;display:flex}.online-board-wrapper{gap:var(--spacing-xs);flex-direction:column;width:100%;max-width:900px;display:flex}.player-info-bar{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);box-sizing:border-box;border-radius:6px;width:100%;min-height:40px;font-size:1rem;display:flex}.player-info-bar .player-name{color:var(--color-text);font-weight:600}.player-info-bar .player-rating{color:var(--color-text-secondary);font-size:.9rem}.player-info-bar.opponent,.player-info-bar.you{border-left:4px solid var(--color-neutral-600);background-color:#636e721a}.player-info-bar.disconnected{border-left-color:var(--color-warning,#f39c12);background-color:#f39c121a}.disconnection-badge{align-items:center;gap:var(--spacing-xs);border-radius:var(--radius-sm);color:var(--color-warning,#f39c12);background-color:#f39c1233;margin-left:auto;padding:2px 8px;font-size:.8rem;font-weight:500;animation:2s ease-in-out infinite badge-pulse;display:inline-flex}@keyframes badge-pulse{0%,to{opacity:1}50%{opacity:.7}}@media (width<=1000px){.online-board-wrapper{width:100%;max-width:min(100vw - 2rem,100vh - 300px)}}@media (width<=900px){.game-layout{flex-direction:column}.online-board-container{flex-direction:column;align-items:center}.online-game-sidebar{width:100%;max-width:480px;min-width:unset}}@media (width<=600px){.game-header{padding:var(--spacing-sm)}.game-info{gap:var(--spacing-sm)}.game-main{padding:var(--spacing-md)}.game-footer{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){.turn-dot.thinking,.disconnection-badge{animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-beige-cream:#f5f0e6;--color-beige-warm:#f0d9b5;--color-beige-sand:#e8d5b7;--color-forest-dark:#2c5f2d;--color-forest-medium:#3d8b40;--color-forest-light:#a8d5a2;--color-brown-dark:#5d4037;--color-brown-medium:#b58863;--color-brown-light:#d7c4a7;--color-neutral-900:#2d3436;--color-neutral-600:#636e72;--color-neutral-200:#dfe6e9;--color-success:#27ae60;--color-warning:#f39c12;--color-error:#e74c3c;--color-info:#3498db;--color-format-arena:#1565c0;--color-format-swiss:#2e7d32;--color-format-elimination:#e65100;--color-text-muted:#9ca3af;--color-bg:var(--color-beige-cream);--color-surface:#fff;--color-text:var(--color-neutral-900);--color-text-secondary:var(--color-neutral-600);--color-primary:var(--color-forest-dark);--color-primary-hover:var(--color-forest-medium);--color-border:var(--color-brown-light);--app-bg-image:radial-gradient(ellipse 1100px 820px at 8% -16%, #2c5f2d1a, transparent 52%), radial-gradient(ellipse 950px 760px at 96% 26%, #b588631a, transparent 52%), radial-gradient(ellipse 760px 640px at 50% 118%, #c9a22714, transparent 52%), linear-gradient(45deg, #5d403707 25%, transparent 25%), linear-gradient(-45deg, #5d403707 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #5d403707 75%), linear-gradient(-45deg, transparent 75%, #5d403707 75%);--app-bg-size:100% 100%, 100% 100%, 100% 100%, 62px 62px, 62px 62px, 62px 62px, 62px 62px;--app-bg-position:0 0, 0 0, 0 0, 0 0, 0 31px, 31px -31px, -31px 0;--color-square-light:var(--color-beige-warm);--color-square-dark:var(--color-brown-medium);--color-highlight:#27ae6066;--color-selection:#f39c1280;--sidebar-width:80px;--sidebar-bg:var(--color-forest-dark);--sidebar-text:#fff;--sidebar-hover:#ffffff1a;--sidebar-active:#fff3;--bottom-nav-height:64px;--touch-target-min:44px;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px #0000001a;--shadow-lg:0 10px 15px #0000001a;--color-forest-deep:#1f4520;--color-gold:#c9a227;--color-gold-light:#f0cc55;--color-emerald:#10b981;--font-display:"Fraunces", Georgia, "Times New Roman", serif;--font-body:"DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--ease-smooth:cubic-bezier(.16, 1, .3, 1);--ease-bounce:cubic-bezier(.34, 1.56, .64, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body{overscroll-behavior:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;overflow-x:hidden}img,svg,video,canvas{max-width:100%;height:auto}body{background-color:var(--color-bg);color:var(--color-text)}#root{height:100%}@media (pointer:coarse),(width<=768px){button,[role=button],a.btn,.tab-btn,.tab-button,.arena-tab,.arena-detail-tab,.lobby-tab,.variant-tab,.time-control-tab,.sidebar-tab,.sidebar-nav-item,.chip-pill,.filter-chip,.variant-chip,.variant-button,.variant-select-trigger,.variant-select-option,.copy-button,.time-control-button,.time-control-btn,.variant-btn,.rematch-btn,.new-game-btn,.chat-toggle,.chat-send-button,.sort-btn,.games-filter-btn,.page-btn,.games-back,.arena-back-button,.arena-status-join-button,.arena-status-leave-link,.arena-option-btn,.tournament-status-join-button,.tournament-status-leave-link,.tournament-status-play-button,.create-tournament-button,.legal-modal-close,.home-modal-close,.daily-puzzle-solve-btn,.settings-lang-select,.sidebar-lang-select,.player-item,.chat-header{min-height:var(--touch-target-min)}}
