.piece{cursor:pointer;transition:transform .15s ease-out}.piece:hover .piece-circle{filter:brightness(1.1)}.piece-circle{transition:filter .15s ease-out}.piece-selected{filter:drop-shadow(0 0 6px rgba(39,174,96,.8)) drop-shadow(0 0 14px rgba(39,174,96,.4));animation:neon-glow 1.5s ease-in-out infinite}@keyframes neon-glow{0%,to{filter:drop-shadow(0 0 6px rgba(39,174,96,.8)) drop-shadow(0 0 14px rgba(39,174,96,.4))}50%{filter:drop-shadow(0 0 10px rgba(39,174,96,1)) drop-shadow(0 0 22px rgba(39,174,96,.6))}}.piece-crown{pointer-events:none}.piece-ghost{opacity:.5}.piece-captured{opacity:.3;transition:opacity .18s ease-out}.piece.dragging{cursor:grabbing;filter:drop-shadow(0 4px 8px rgba(0,0,0,.4))}.piece.dragging .piece-circle{filter:brightness(1.1)}@media (hover: none) and (pointer: coarse){.piece{cursor:default}.piece:active .piece-circle{filter:brightness(1.15)}}@media (prefers-reduced-motion: reduce){.piece-selected{animation-duration:.01ms!important;animation-iteration-count:1!important}}.game-board-container{display:flex;justify-content:center;align-items:center;width:100%;aspect-ratio:1}.game-board{width:100%;height:100%;cursor:pointer;display:block;transition:transform .3s ease;-webkit-tap-highlight-color:transparent}.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:4;opacity:.85;pointer-events:none;animation:capture-target-pulse 1.4s ease-in-out infinite}@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:4;pointer-events:none;animation:capture-target-pulse 1.4s ease-in-out infinite}.square-hint{fill:#4ade8073;pointer-events:none;animation:hint-pulse 1.2s ease-in-out infinite}@keyframes hint-pulse{0%,to{opacity:1}50%{opacity:.45}}@media (hover: none) and (pointer: coarse){.game-board{cursor:default}}.board-coord{font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:9px;font-weight:600;letter-spacing:.04em;-webkit-user-select:none;user-select:none;opacity:.45}.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.6;stroke-linecap:round}@media (max-width: 480px){.board-coord,.board-corner__line{display:none}}.game-header{display:flex;align-items:center;justify-content:center;gap:14px;padding:8px 18px;background:#ffffffd9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;border:1px solid rgba(0,0,0,.06);font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:.85rem;font-weight:500;color:var(--color-text-secondary, #636E72);letter-spacing:.02em;align-self:stretch}.game-header__cell{display:inline-flex;align-items:center;gap:6px}.game-header__variant-icon{display:inline-flex;align-items:center;justify-content:center;min-width:14px;font-size:.7rem;font-weight:700;letter-spacing:.04em}.game-header__divider{width:1px;height:14px;background:#0000001f}.game-header__rated-dot{width:7px;height:7px;border-radius:50%;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{font-weight:700;color:#8a6d1a}.game-header__mode svg{color:#b8901f}@media (max-width: 480px){.game-header{font-size:.78rem;gap:10px;padding:6px 8px}.game-header__divider{height:12px}}.user-avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:10px;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-weight:700;color:#fff;text-transform:uppercase;flex-shrink:0;box-shadow:0 2px 6px #0000002e}.user-avatar--sm{width:32px;height:32px;border-radius:8px;font-size:.95rem}.user-avatar--md{font-size:1.15rem}.user-avatar--opponent{background:linear-gradient(135deg,#8B6F5C 0%,var(--color-brown-dark, #5D4037) 100%)}.user-avatar--self{background:linear-gradient(135deg,var(--color-forest-medium, #3D8B40) 0%,var(--color-forest-dark, #2C5F2D) 100%)}.user-avatar-piece-indicator{position:absolute;right:-5px;bottom:-5px;width:16px;height:16px;border-radius:50%;border:2px solid var(--gs-bg, #D8D0C2);box-shadow:0 1px 2px #00000040}.piece-indicator--shape-square{border-radius:3px}.piece-indicator--shape-rhombus{width:12px;height:12px;right:-3px;bottom:-3px;border-radius:2px;transform:rotate(45deg)}.piece-indicator--white{background:radial-gradient(circle at 35% 30%,#fff,#e5d8c0 70%,#d5c5a5)}.piece-indicator--black{background:radial-gradient(circle at 35% 30%,#a08870,#5d4037 70%,#4a3228)}.player-clock{font-size:1.2rem;font-weight:700;font-variant-numeric:tabular-nums;padding:4px 10px;border-radius:6px;background:#ffffff0f;color:var(--color-text-secondary);white-space:nowrap;transition:all .2s ease}.player-clock.active{background:#2c5f2d33;color:var(--color-text)}.player-clock.low-time{background:#e5393533;color:var(--color-error);animation:pc-pulse .5s ease-in-out infinite alternate}@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{display:inline-flex;align-items:center;justify-content:center;min-width:96px;height:42px;padding:0 14px;background:var(--clock-bg, #111511);color:var(--clock-text, #5A6A5A);border-radius:8px;font-family:JetBrains Mono,Menlo,Monaco,monospace;font-weight:700;font-size:1.65rem;letter-spacing:.04em;font-variant-numeric:tabular-nums;transition:background .25s ease,color .25s ease,box-shadow .25s ease;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));box-shadow:inset 0 1px #a8d5a214,0 0 18px #2c5f2d59;animation:clockGlow 1.6s ease-in-out infinite alternate}.clock-monospace--low{background:#2a0f12;color:var(--color-error, #E74C3C);animation:clockPulseLow .8s ease-in-out infinite alternate}@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{background:transparent;padding:0;font:inherit;color:inherit;letter-spacing:inherit;border-radius:0;animation:none}@media (prefers-reduced-motion: reduce){.clock-monospace--active,.clock-monospace--low{animation:none}}.captured-pieces{display:inline-flex;align-items:center;flex-wrap:nowrap;min-width:0;vertical-align:middle;padding-left:4px}.captured-pieces__piece{position:relative;width:14px;height:14px;margin-left:-6px;flex-shrink:0;line-height:0}.captured-pieces__piece:first-child{margin-left:0}.captured-pieces__svg{display:block;width:100%;height:100%;overflow:visible}.captured-pieces__more{margin-left:2px;font-size:.85rem;line-height:1;color:var(--color-text-secondary, #636E72)}@media (max-width: 480px){.captured-pieces__piece{width:12px;height:12px;margin-left:-5px}}.player-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;min-height:64px;background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;border:1px solid rgba(0,0,0,.06);border-left:3px solid transparent;transition:border-left-color .25s ease,box-shadow .25s ease,background .25s ease;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;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{display:flex;align-items:center;gap:12px;min-width:0}.player-card__meta{display:flex;flex-direction:column;gap:3px;min-width:0}.player-card__name-row{display:flex;align-items:baseline;gap:8px;min-width:0}.player-card__status-row{display:flex;align-items:center;gap:8px;min-width:0;min-height:16px}.player-card__status-row .player-card__turn-indicator,.player-card__status-row .player-card__disconnected{margin-left:auto}.player-card__flag{font-size:1rem;line-height:1;flex-shrink:0}.player-card__username{font-weight:600;font-size:1rem;color:var(--color-text, #2D3436);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.player-card__rating{font-size:.82rem;color:var(--color-text-secondary, #636E72);font-variant-numeric:tabular-nums}.player-card__turn-indicator{font-size:.75rem;font-weight:600;color:var(--color-forest-dark, #2C5F2D);text-transform:uppercase;letter-spacing:.06em;min-height:1em}.player-card__turn-indicator--active{animation:turnPulse 1.6s ease-in-out infinite alternate}@keyframes turnPulse{0%{opacity:.7}to{opacity:1}}.player-card__disconnected{font-size:.78rem;color:var(--color-warning, #F39C12);font-weight:500}.player-card__right{flex-shrink:0}.player-card__result{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:10px;font-weight:700;font-size:.82rem;letter-spacing:.02em;white-space:nowrap;line-height:1}.player-card__result svg{width:16px;height:16px;flex-shrink:0}.player-card__result--win{background:#2c5f2d24;color:var(--color-forest-dark, #2C5F2D)}.player-card__result--loss{background:#e74c3c24;color:var(--color-error, #C0392B)}.player-card__result--draw{background:#00000012;color:var(--color-text-secondary, #636E72)}@media (max-width: 480px){.player-card__result{padding:5px 10px;font-size:.78rem}}@media (max-width: 480px){.player-card{min-height:52px;padding:8px 10px}.player-card__username{font-size:.92rem;max-width:110px}}@media (prefers-reduced-motion: reduce){.player-card__turn-indicator--active{animation:none}}body.gs-ambient:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;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}body.gs-ambient:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,transparent 40%,rgba(60,40,25,.12) 100%)}.ambient-particles{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;opacity:.5}.ambient-glow{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;transition:opacity .8s ease,background .8s ease;opacity:0}body.your-turn .ambient-glow{opacity:1;background:linear-gradient(to right,rgba(44,95,45,.06) 0%,transparent 3%) left,linear-gradient(to left,rgba(44,95,45,.06) 0%,transparent 3%) right,linear-gradient(to bottom,rgba(44,95,45,.04) 0%,transparent 2%) top,linear-gradient(to top,rgba(44,95,45,.06) 0%,transparent 3%) bottom;background-repeat:no-repeat;background-size:100% 100%}body.low-time-glow .ambient-glow{opacity:1;background:linear-gradient(to right,rgba(231,76,60,.08) 0%,transparent 4%) left,linear-gradient(to left,rgba(231,76,60,.08) 0%,transparent 4%) right,linear-gradient(to bottom,rgba(231,76,60,.06) 0%,transparent 3%) top,linear-gradient(to top,rgba(231,76,60,.08) 0%,transparent 4%) bottom;background-repeat:no-repeat;background-size:100% 100%;animation:ambientPulse 1.2s ease-in-out infinite alternate}@keyframes ambientPulse{0%{opacity:.6}to{opacity:1}}@media (max-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{display:flex;align-items:stretch;gap:0;width:100%;background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;border:1px solid rgba(0,0,0,.05);box-shadow:0 1px 4px #00000012,0 3px 10px #0000000a;overflow:hidden;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif}.game-toolbar__btn{position:relative;flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:52px;padding:10px 8px;font:inherit;border:none;background:transparent;color:var(--color-neutral-700, #4A5568);cursor:pointer;transition:background .25s cubic-bezier(.4,0,.2,1),color .25s cubic-bezier(.4,0,.2,1)}.game-toolbar__btn:not(:last-child):after{content:"";position:absolute;right:0;top:12px;bottom:12px;width:1px;background:#0000000f}.game-toolbar__btn svg{opacity:.6;transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .25s ease}.game-toolbar__btn span{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.4px;opacity:.55;transition:opacity .25s ease,color .25s ease}.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{transform:scale(.95);transition-duration:.1s}.game-toolbar__btn:disabled{opacity:.45;cursor:not-allowed}.game-toolbar__btn--resign:hover:not(:disabled){background:#e74c3c0d;color:var(--color-error, #E74C3C)}.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){background:#b588630f;color:var(--color-brown-dark, #5D4037)}.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){background:#2c5f2d0a;color:var(--color-forest-dark, #2C5F2D)}.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{background:#2c5f2d14;color:var(--color-forest-dark, #2C5F2D)}.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{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;font-size:.88rem;color:var(--color-text-secondary, #636E72)}@media (max-width: 480px){.game-toolbar__btn{padding:8px 6px}.game-toolbar__btn span{letter-spacing:.2px;line-height:1.15;text-align:center;white-space:normal}.game-toolbar--draw-offer .game-toolbar__draw-text{display:none}}.preferences-preview{display:flex;justify-content:center;padding:14px 0 6px;margin-bottom:6px}.preferences-preview svg{border-radius:12px;border:1px solid rgba(255,255,255,.6);box-shadow:0 1px #ffffffe6 inset,0 2px 6px #231e141a,0 12px 28px -12px #231e1438}.settings-subtitle{font-size:.7rem;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--color-text-secondary, #636E72);margin:16px 0 8px}.settings-item{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;background:#fff9;border:1px solid rgba(0,0,0,.05);border-radius:10px;font-size:.92rem;color:var(--color-text, #1B1F20);cursor:default;transition:background .15s ease,transform .15s ease,box-shadow .15s ease;margin-bottom:8px}.settings-item:hover:not(:disabled){background:#fff;transform:translateY(-1px);box-shadow:0 2px 8px #0000000d}.settings-item:disabled{opacity:.6;cursor:not-allowed}.settings-item-icon{width:32px;height:32px;border-radius:8px;background:#2c5f2d1a;color:var(--color-forest-deep, #1F4520);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.settings-item-label{flex:1;text-align:left;font-weight:600;min-width:0;white-space:normal;overflow-wrap:anywhere;line-height:1.3}.settings-item-badge{font-size:.7rem;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--color-gold-deep, #8B6F0F);background:#c9a22724;padding:2px 8px;border-radius:6px;flex-shrink:0}.settings-item-danger{color:var(--color-error, #E74C3C)}.settings-item-danger:hover:not(:disabled){background:#e74c3c0a;border-color:#e74c3c33}.settings-item-danger .settings-item-icon{background:#e74c3c1a;color:var(--color-error, #E74C3C)}.settings-lang-select{flex:0 1 auto;min-width:0;max-width:55%;padding:6px 10px;border-radius:8px;border:1px solid rgba(0,0,0,.1);background:#fff;color:var(--color-text, #1B1F20);font-family:inherit;font-size:.875rem;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-lang-select:focus{outline:none;border-color:var(--color-forest-medium, #3D8B40)}.settings-toggle{position:relative;display:inline-block;width:44px;height:24px;margin-left:auto;flex-shrink:0}.settings-toggle input{opacity:0;width:0;height:0}.settings-toggle-slider{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background-color:#0000002e;border-radius:24px;transition:background-color .25s ease}.settings-toggle-slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;border-radius:50%;box-shadow:0 1px 2px #0003;transition:transform .25s ease}.settings-toggle input:checked+.settings-toggle-slider{background:linear-gradient(135deg,var(--color-forest-medium, #3D8B40),var(--color-forest-dark, #2C5F2D))}.settings-toggle input:checked+.settings-toggle-slider:before{transform:translate(20px)}@media (prefers-reduced-motion: reduce){.settings-item,.settings-toggle-slider,.settings-toggle-slider:before{transition:none}}.ingame-settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2500;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:var(--spacing-md);animation:ingame-settings-fade .15s ease-out}.ingame-settings-modal{background:var(--color-bg, #fff);border-radius:14px;width:100%;max-width:460px;max-height:88vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 12px 40px #00000059}.ingame-settings-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .08))}.ingame-settings-header .settings-title{margin:0;font-family:Fraunces,Georgia,serif;font-size:1.15rem;font-weight:600;color:var(--color-text, #1B1F20)}.ingame-settings-close{background:transparent;border:none;width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-secondary);cursor:pointer;transition:background .15s}.ingame-settings-close:hover{background:#0000000f;color:var(--color-text)}.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 (max-width: 899px){.ingame-settings-overlay{padding:0;align-items:stretch;justify-content:stretch}.ingame-settings-modal{width:100%;height:100svh;max-width:none;max-height:none;border-radius:0;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.ingame-settings-body{flex:1;min-height:0}}.fs-panel-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1500;background:#0000008c;display:flex;flex-direction:column}.fs-panel{display:flex;flex-direction:column;width:100%;height:100svh;background:var(--color-bg, #fff);padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.fs-panel-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .08))}.fs-panel-title{margin:0;font-family:Fraunces,Georgia,serif;font-size:1.15rem;font-weight:600;color:var(--color-text, #1B1F20)}.fs-panel-close{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;border-radius:50%;transition:background .15s}.fs-panel-close:hover{background:#0000000f;color:var(--color-text)}.fs-panel-close:active{background:#0000001a}.fs-panel-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.fs-panel-body .chat-panel,.fs-panel-body .chat-panel.open,.fs-panel-body .move-list{flex:1;min-height:0;width:100%;max-width:none;max-height:none;border:none;border-radius:0}.fs-panel-body .chat-header{display:none}.review-controls{display:flex;align-items:center}.review-controls-btn{display:inline-flex;align-items:center;justify-content:center;min-width:var(--touch-target-min);min-height:var(--touch-target-min);padding:0;border:none;background:transparent;color:var(--color-neutral-700, #4a5568);cursor:pointer;border-radius:8px;transition:background .2s ease,color .2s ease,opacity .2s ease}.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{animation:review-live-blink 1.5s ease-in-out infinite;border-radius:8px}@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:1 1 auto;padding:0 2px;position:relative}.review-controls--bar .gs-mobile-bar-btn{flex:0 0 auto;min-width:88px}.review-controls--bar:not(:only-child){flex:0 1 auto}.gs-mobile-bar .review-controls--bar .gs-mobile-bar-btn:after{content:none}.review-controls--bar:after{content:"";position:absolute;right:0;top:12px;bottom:12px;width:1px;background:#0000000f}.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:0 0 auto;min-width:72px}.review-controls--bar .review-controls-btn{min-width:40px;height:52px}.review-controls--panel{justify-content:center;gap:4px;padding:4px;background:var(--color-surface);border-radius:8px;margin-bottom:var(--spacing-sm, 8px)}.review-controls-counter{min-width:7ch;text-align:center;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-variant-numeric:tabular-nums;font-size:.8rem;color:var(--color-text-secondary);-webkit-user-select:none;user-select:none;flex-shrink:0;white-space:nowrap}: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{position:relative;z-index:1;display:flex;flex-direction:column;width:100%;height:100svh;overflow:hidden;color:var(--color-text, #2D3436)}.gs-header-slot{flex-shrink:0;position:relative;z-index:2}.gs-grid{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;max-width:1200px;width:100%;margin:0 auto;padding:16px 20px;flex:1;min-height:0}.gs-board-column{display:flex;flex-direction:column;gap:10px;min-width:0;width:min(calc(100svh - 285px),calc(100vw - 430px),var(--gs-board-max));margin:0 auto;align-items:stretch}.gs-board-wrapper{position:relative;padding:5px;border-radius:10px;background:linear-gradient(145deg,#a08060,#7a6040,#a08060);box-shadow:0 8px 32px #0003,0 2px 8px #0000001f,inset 0 1px #fff3,inset 0 -1px #00000040}.gs-board-frame{position:relative;border-radius:7px;padding:2px;background:linear-gradient(145deg,#4a3828,#3a2a1a,#4a3828);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{display:block;width:100%;height:auto}.gs-sidebar{display:flex;flex-direction:column;min-height:0;background:#ffffff8c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:14px;border:1px solid rgba(0,0,0,.06);padding:12px;overflow:hidden}.gs-actions-slot{display:flex;flex-direction:column}.gs-over .gs-grid{overflow-x:hidden;overflow-y:auto}.gs-mobile-bar{display:flex;align-items:stretch;gap:0;width:100%;background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;border:1px solid rgba(0,0,0,.05);box-shadow:0 1px 4px #00000012,0 3px 10px #0000000a;overflow:hidden;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif}.gs-mobile-bar-btn{position:relative;flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:52px;padding:10px 8px;font:inherit;border:none;background:transparent;color:var(--color-neutral-700, #4A5568);cursor:pointer;transition:background .25s cubic-bezier(.4,0,.2,1),color .25s cubic-bezier(.4,0,.2,1)}.gs-mobile-bar-btn:not(:last-child):after{content:"";position:absolute;right:0;top:12px;bottom:12px;width:1px;background:#0000000f}.gs-mobile-bar-btn svg{opacity:.6}.gs-mobile-bar-btn span{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.4px;opacity:.55}.gs-mobile-bar-btn:active{background:#0000000a}.gs-mobile-bar-badge{position:absolute;top:8px;right:calc(50% - 24px);display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--color-primary, #27AE60);color:#fff;font-size:.7rem;font-weight:700;line-height:1}@media (max-width: 899px){.gs-grid{grid-template-columns:minmax(0,1fr);padding:12px 14px;gap:12px;overflow:hidden}.gs-board-column{width:min(calc(100vw - 28px),calc(100svh - 320px),600px);max-width:600px}}@media (max-width: 479px){.gs-grid{padding:8px;gap:10px}.gs-board-column{gap:8px}.gs-board-wrapper{padding:3px;border-radius:8px}.gs-sidebar{padding:8px;border-radius:10px;min-height:220px}}@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 ease,visibility .25s ease}body.zen .gs-sidebar,body.zen .gs-mobile-bar{display:none}body.zen .gs-grid{grid-template-columns:minmax(0,1fr);max-width:var(--gs-board-max)}body.zen .board-coord{opacity:0}body.zen .gs-header-slot,body.zen .game-header{display:none}body.zen .game-toolbar:not(.game-toolbar--draw-offer) .game-toolbar__btn:not(.game-toolbar__btn--focus){display:none}body.zen .game-toolbar:not(.game-toolbar--draw-offer) .game-toolbar__btn:after{display:none}body.zen .player-card--has-clock .player-card__left{display:none}body.zen .player-card--has-clock{justify-content:center}.gs-match-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#0f140feb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:gs-matchFadeIn .2s ease-out}@keyframes gs-matchFadeIn{0%{opacity:0}to{opacity:1}}.gs-match-card{background:var(--color-surface);border-radius:20px;padding:32px;width:340px;max-width:calc(100vw - 32px);text-align:center;box-shadow:0 16px 48px #0000004d;animation:gs-matchScaleIn .3s cubic-bezier(.34,1.56,.64,1)}@keyframes gs-matchScaleIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.gs-match-title{font-size:1.6rem;font-weight:700;color:var(--color-forest-dark);margin:0 0 20px;font-family:Georgia,serif}.gs-match-opponent{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}.gs-match-label{font-size:.75rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.gs-match-name{font-size:1.3rem;font-weight:600;color:var(--color-text)}.gs-match-rating{font-size:.9rem;color:var(--color-text-secondary)}.gs-match-color{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;background:var(--color-beige-warm);border-radius:12px;margin-bottom:20px;font-size:.9rem;color:var(--color-text)}.gs-match-color-dot{width:16px;height:16px;border-radius:50%}.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{display:flex;flex-direction:column;gap:4px;margin-bottom:16px;padding:8px 12px;background:#ffffff0d;border-radius:8px}.gs-match-opening-label{font-size:.75rem;color:var(--color-text-secondary);text-transform:uppercase}.gs-match-opening-moves{font-size:.95rem;color:var(--color-text);font-weight:500}.gs-match-countdown{display:flex;flex-direction:column;align-items:center;gap:4px;margin-bottom:20px}.gs-match-countdown-label{font-size:.8rem;color:var(--color-text-secondary)}.gs-match-countdown-number{font-size:2.5rem;font-weight:700;color:var(--color-forest-dark);font-variant-numeric:tabular-nums;animation:gs-matchPulse 1s ease-in-out infinite}@keyframes gs-matchPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.gs-match-start-btn{width:100%;padding:14px 24px;background:var(--color-forest-dark);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s;min-height:44px}.gs-match-start-btn:hover{background:var(--color-forest-medium)}.gs-match-start-btn:active{transform:scale(.97)}@media (max-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{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#1b1f207a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .2s ease-out}.game-over-modal{background:linear-gradient(180deg,#fffffff7,#ffffffeb);border:1px solid rgba(255,255,255,.7);border-radius:20px;padding:32px 36px;text-align:center;max-width:90%;width:340px;max-height:90svh;overflow-y:auto;box-shadow:0 2px #ffffffe6 inset,0 4px 14px #231e141a,0 24px 60px -12px #231e144d;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-feature-settings:"ss01","ss02","liga","dlig","calt";animation:slideUp .3s ease-out}.game-over-title{font-family:Fraunces,Times New Roman,serif;font-variation-settings:"opsz" 144,"SOFT" 50;font-weight:600;font-size:1.7rem;line-height:1.15;letter-spacing:-.01em;margin-bottom:var(--spacing-sm);color:#1b1f20}.game-over-message{font-size:.95rem;color:#636e72;margin-bottom:var(--spacing-lg)}.game-over-buttons{display:flex;gap:var(--spacing-sm);justify-content:center}.game-over-button{background:linear-gradient(135deg,var(--color-forest-medium),var(--color-forest-dark));color:#fff;border:none;border-radius:11px;padding:11px 22px;font-size:.95rem;font-weight:600;font-family:inherit;cursor:pointer;transition:filter .18s ease,transform .1s ease;box-shadow:0 2px 8px #2c5f2d47;min-width:140px;min-height:44px}.game-over-button:hover{filter:brightness(1.06)}.game-over-button:active{transform:scale(.98)}.game-over-button--secondary{background:transparent;color:#1b1f20;border:1px solid rgba(0,0,0,.12);box-shadow:none}.game-over-button--secondary:hover{background:#0000000a;border-color:#0003;filter:none}@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);border-radius:8px;overflow-y:auto;flex:1;min-height:0;padding:var(--spacing-sm)}.move-list-empty{color:var(--color-text-secondary);text-align:center;padding:var(--spacing-lg);font-size:.85rem;font-style:italic}.move-list-table{width:100%;border-collapse:collapse;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);padding:3px 6px 3px 4px;text-align:right;width:28px;font-size:.8rem;-webkit-user-select:none;user-select:none}.move-list-move{padding:3px 8px;color:var(--color-text);cursor:pointer;border-radius:3px}.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 (max-width: 900px){.move-list{max-height:200px}}@media (max-width: 500px){.move-list{max-height:150px}}.gs-action-icon{padding:6px 14px;height:36px;display:flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:8px;background:var(--color-surface);color:var(--color-text-secondary);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.gs-action-icon:hover{background:#ffffff1f}.gs-action-icon.resign:hover{background:#e74c3c33;color:var(--color-error)}.gs-action-icon.draw:hover:not(:disabled){background:#f39c1233;color:var(--color-warning, #f39c12)}.gs-action-icon.draw.offered{opacity:.4;cursor:default;pointer-events:none}.gs-action-icon.review{padding:6px 10px;min-width:36px}.gs-action-icon.review:disabled{opacity:.3;cursor:default;pointer-events:none}@media (max-width: 480px){.gs-action-icon{padding:6px 10px;height:44px;font-size:.8rem}}.pz-page{position:relative;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;color:#1b1f20;font-size:15px;line-height:1.5;padding:40px 24px 80px;min-height:100dvh;background-color:var(--color-bg);background-image:var(--app-bg-image);background-size:var(--app-bg-size);background-position:var(--app-bg-position)}.pz-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;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}.pz-page:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,transparent 40%,rgba(60,40,25,.12) 100%)}.pz-inner{position:relative;z-index:1;max-width:1080px;margin:0 auto;display:grid;gap:22px}@keyframes pzFadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.pz-inner>*{animation:pzFadeUp .7s cubic-bezier(.16,1,.3,1) both}.pz-inner>:nth-child(1){animation-delay:.04s}.pz-inner>:nth-child(2){animation-delay:.1s}.pz-inner>:nth-child(3){animation-delay:.18s}.pz-crumb{display:flex;align-items:center;gap:10px;font-size:.82rem;color:#636e72}.pz-crumb button{font:inherit;cursor:pointer;color:#1f4520;text-decoration:none;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#ffffff80;border:1px solid rgba(0,0,0,.06);transition:all .15s ease}.pz-crumb button:hover{background:#ffffffd9;transform:translate(-2px)}.pz-crumb .pz-sep{color:#8b95a0}.pz-crumb .pz-now{font-weight:600;color:#1b1f20}.pz-card{position:relative;background:linear-gradient(180deg,#ffffffeb,#ffffffd1);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.6);border-radius:20px;box-shadow:0 1px #ffffffe6 inset,0 1px 3px #231e140f,0 8px 24px -8px #231e141a,0 24px 48px -24px #231e142e;overflow:hidden}.pz-hero{display:grid;grid-template-columns:1fr auto 1fr;gap:24px;padding:26px 32px;align-items:center}.pz-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at 0% 100%,rgba(44,95,45,.14),transparent 50%),radial-gradient(ellipse at 100% 0%,rgba(201,162,39,.14),transparent 55%);opacity:.7;z-index:0}.pz-hero>*{position:relative;z-index:1}.pz-hero-deco{justify-self:start}.pz-hero-king{width:150px;height:150px;border-radius:50%;position:relative;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 38% 32%,#fffdf6,#f1e5cb 58%,#d4c099);box-shadow:inset 0 -6px 14px #00000038,inset 0 5px 12px #ffffff80,0 16px 34px -12px #231e1473}.pz-hero-king:before{content:"";position:absolute;top:13px;right:13px;bottom:13px;left:13px;border-radius:50%;border:2px solid rgba(181,136,99,.4)}.pz-hero-king:after{content:"♛";font-size:4.4rem;line-height:1;color:#c9a227;text-shadow:0 2px 3px rgba(0,0,0,.25)}.pz-hero-center{text-align:center}.pz-hero-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.74rem;font-weight:600;letter-spacing:1.6px;text-transform:uppercase;color:#1f4520}.pz-hero-eyebrow:before{content:"";width:22px;height:1px;background:#1f4520;opacity:.6}.pz-hero-title{font-family:Fraunces,Georgia,serif;font-size:clamp(2.2rem,4.5vw,3.4rem);font-weight:700;font-variation-settings:"opsz" 144,"SOFT" 50;letter-spacing:-.02em;line-height:1;color:#1b1f20;margin:8px 0 0}.pz-hero-title .pz-accent{font-style:italic;color:#2c5f2d}.pz-hero-streak{justify-self:end;display:flex;align-items:center;gap:14px;padding:14px 22px;border-radius:16px;min-width:168px;background:linear-gradient(135deg,#c9a22729,#c9a2270a);border:1px solid rgba(201,162,39,.3)}.pz-streak-flame{width:42px;height:42px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:50%;background:linear-gradient(180deg,#f39c12,#c9a227);color:#fff;box-shadow:0 3px 10px #c9a22773}.pz-streak-flame svg{width:22px;height:22px}.pz-streak-text{display:flex;flex-direction:column}.pz-streak-val{font-family:JetBrains Mono,monospace;font-size:1.7rem;font-weight:700;color:#1b1f20;line-height:1}.pz-streak-lbl{margin-top:4px;font-size:.6rem;letter-spacing:1.4px;text-transform:uppercase;color:#8b6f0f;font-weight:600}.pz-play{display:grid;grid-template-columns:1fr 320px;gap:24px;padding:28px}.pz-board-col{display:flex;flex-direction:column;gap:12px;min-width:0}.pz-board-wrap{aspect-ratio:1;position:relative;border-radius:16px;overflow:hidden;box-shadow:0 0 0 1px #00000014,0 1px 2px #0000000d,0 18px 38px -18px #231e1452}.pz-side{display:flex;flex-direction:column;gap:14px}.pz-turn-card{padding:18px 20px;border-radius:14px;background:linear-gradient(135deg,#2c5f2d1f,#2c5f2d0a);border:1px solid rgba(44,95,45,.18);position:relative;overflow:hidden}.pz-turn-card:before{content:"";position:absolute;right:-10px;top:-10px;width:80px;height:80px;border-radius:50%;background:radial-gradient(circle,rgba(44,95,45,.18),transparent 70%)}.pz-turn-card .pz-eyebrow{font-size:.66rem;letter-spacing:1.4px;text-transform:uppercase;color:#1f4520;font-weight:600}.pz-turn-card .pz-turn-line{margin-top:6px;font-family:Fraunces,Georgia,serif;font-size:1.4rem;font-weight:600;color:#1b1f20;letter-spacing:-.01em;line-height:1.1}.pz-turn-card .pz-who{font-style:italic;color:#2c5f2d}.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{font-family:JetBrains Mono,monospace;font-weight:700;font-size:1.05rem;color:#1b1f20;line-height:1}.pz-turn-card .pz-turn-dots{display:none}.pz-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pz-stat{padding:12px 14px;border-radius:12px;background:#ffffffa6;border:1px solid rgba(0,0,0,.06)}.pz-stat .pz-lbl{font-size:.62rem;letter-spacing:1.4px;text-transform:uppercase;color:#636e72;font-weight:600}.pz-stat .pz-val{font-family:JetBrains Mono,monospace;font-size:1.25rem;font-weight:700;color:#1b1f20;margin-top:4px;line-height:1}.pz-stat .pz-val.pz-up{color:#27ae60}.pz-stat .pz-sub{margin-top:3px;font-size:.72rem;color:#8b95a0}.pz-move-progress{padding:14px 16px;border-radius:12px;background:#ffffff8c;border:1px solid rgba(0,0,0,.06)}.pz-move-progress .pz-mp-lbl{font-size:.62rem;letter-spacing:1.4px;text-transform:uppercase;color:#636e72;font-weight:600}.pz-dots{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.pz-dot{width:22px;height:6px;border-radius:3px;background:#0000001a}.pz-dot.pz-done{background:#3d8b40;box-shadow:0 0 0 2px #2c5f2d26}.pz-dot.pz-now{background:#f39c12;animation:pzPulseDot 1.2s ease-in-out infinite}@keyframes pzPulseDot{0%,to{opacity:1;transform:scaleY(1)}50%{opacity:.65;transform:scaleY(1.4)}}.pz-themes{padding:14px 16px;border-radius:12px;background:#ffffff8c;border:1px solid rgba(0,0,0,.06)}.pz-themes .pz-th-lbl{font-size:.62rem;letter-spacing:1.4px;text-transform:uppercase;color:#636e72;font-weight:600}.pz-th-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.pz-chip{padding:4px 10px;border-radius:999px;background:#2c5f2d1a;color:#1f4520;border:1px solid rgba(44,95,45,.16);font-size:.74rem;font-weight:600;letter-spacing:.2px}.pz-chip.pz-chip-hidden{background:#0000000d;color:#8b95a0;border-color:#0000000f}.pz-chip.pz-chip-hidden:before{content:"? ";font-family:JetBrains Mono,monospace;opacity:.6}.pz-actions{display:flex;flex-direction:column;gap:10px;margin-top:4px}.pz-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 18px;border-radius:12px;font:inherit;font-weight:600;font-size:.92rem;cursor:pointer;border:1px solid transparent;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}.pz-btn:disabled{opacity:.5;cursor:default}.pz-btn.pz-primary{background:linear-gradient(180deg,#3d8b40,#2c5f2d);color:#fff;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{background:#ffffffb3;color:#1b1f20;border-color:#00000014}.pz-btn.pz-ghost:hover:not(:disabled){background:#fff}.pz-btn.pz-share{margin-top:8px;background:#2c5f2d1a;color:#2c5f2d;border-color:#2c5f2d40}.pz-btn.pz-share:hover:not(:disabled){background:#2c5f2d29}.pz-btn .pz-btn-help{position:absolute;right:12px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;opacity:.65;cursor:help;outline:none}.pz-btn .pz-btn-help:hover,.pz-btn .pz-btn-help:focus-visible{opacity:1}.pz-btn-help:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);right:-6px;width:max-content;max-width:220px;background:#1b1f20;color:#fff;font-size:.72rem;font-weight:500;line-height:1.35;text-align:left;white-space:normal;padding:8px 10px;border-radius:8px;box-shadow:0 8px 20px -6px #00000059;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .15s ease,transform .15s ease;pointer-events:none;z-index:20}.pz-btn-help:hover:after,.pz-btn-help:focus-visible:after{opacity:1;visibility:visible;transform:translateY(0)}.pz-review{display:flex;gap:10px;margin-top:4px}.pz-review-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;padding:12px;border-radius:12px;background:linear-gradient(180deg,#3d8b40,#2c5f2d);color:#fff;border:1px solid transparent;box-shadow:0 6px 14px -4px #2c5f2d66;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.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{flex:1;display:flex;align-items:center;justify-content:center;padding:11px 18px;border-radius:12px;font-size:1rem;font-weight:700;text-align:center;pointer-events:none}.pz-feedback.pz-correct{background:#27ae60eb;color:#fff;animation:pzFeedbackPop .5s ease-out}.pz-feedback.pz-incorrect{background:#e74c3ceb;color:#fff;animation:pzFeedbackShake .5s ease-out}@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{display:flex;align-items:center;justify-content:center;min-height:300px;font-size:1rem;color:#636e72}.pz-page .capture-target{fill:none;stroke:#b4ffaaf2;stroke-width:4;opacity:.95}@media (min-width: 881px){.pz-board-col{width:min(100%,calc(100dvh - 460px));margin-inline:auto}}@media (max-width: 880px){.pz-page{padding:10px 14px 60px}.pz-hero{display:none}.pz-play{grid-template-columns:1fr;padding:16px;gap:12px}.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-turn-card{display:flex;align-items:center;justify-content:space-between;gap:12px}.pz-turn-main{min-width:0}.pz-turn-streak{display:inline-flex;align-items:center;gap:7px;flex-shrink:0;padding:7px 13px;border-radius:999px;background:linear-gradient(135deg,#c9a22729,#c9a2270a);border:1px solid rgba(201,162,39,.3);color:#c9a227}}@media (max-width: 768px){.pz-page{height:calc(100dvh - var(--bottom-nav-height, 64px));min-height:0;overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;padding:0 12px max(6px,env(safe-area-inset-bottom));background:linear-gradient(180deg,#e7e1d4,#d8d0c2)}.pz-page:before,.pz-page:after{display:none}.pz-inner{display:flex;flex-direction:column;flex:1;min-height:0;gap:8px;padding:0;margin:0;max-width:none;width:100%}.pz-play{display:flex;flex-direction:column;flex:1;min-height:0;gap:8px;padding:0;background:none;border:0;border-radius:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;overflow:visible}.pz-side{display:contents}.pz-side .pz-turn-card{order:1;flex:0 0 auto;margin:8px 0 0;padding:12px 16px;flex-wrap:wrap}.pz-side .pz-turn-card .pz-eyebrow{font-size:.76rem;letter-spacing:1.5px}.pz-side .pz-turn-card .pz-turn-line{font-size:1.15rem;margin-top:3px;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{display:flex;order:2;margin-top:0}.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{order:2;flex:0 0 auto}.pz-side .pz-actions{order:3;flex-shrink:0}.pz-side .pz-stats{order:4;flex-shrink:0}.pz-side .pz-share{order:5;flex-shrink:0}.pz-board-col{flex:0 0 auto;min-height:0;position:relative;display:flex;flex-direction:column;gap:0;justify-content:center;align-items:center}.pz-board-wrap{width:100%;height:auto;aspect-ratio:1;border-radius:14px;box-shadow:0 1px 3px #231e141a}.pz-feedback-slot{position:absolute;left:0;right:0;bottom:10px;min-height:0;justify-content:center;pointer-events:none}.pz-feedback{flex:0 1 auto;padding:9px 18px;font-size:.95rem;box-shadow:0 8px 22px -8px #0006}.pz-actions{flex-direction:row;flex-wrap:wrap;gap:10px}.pz-actions .pz-btn{flex:1 1 0;min-width:0;min-height:56px;padding:16px 18px;font-size:1.02rem;border-radius:14px}.pz-actions .pz-review{flex-basis:100%;margin-top:0;gap:10px}.pz-actions .pz-review-btn{min-height:54px;padding:14px;border-radius:14px}.pz-actions .pz-review-btn svg{width:24px;height:24px}.pz-actions .pz-btn-help:after{right:auto;left:50%;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}}.online-lobby{position:relative;display:flex;justify-content:center;align-items:center;min-height:100vh;padding:70px 24px 60px;background:radial-gradient(ellipse 800px 600px at 12% -10%,rgba(44,95,45,.12),transparent 60%),radial-gradient(ellipse 700px 500px at 95% 20%,rgba(201,162,39,.12),transparent 55%),radial-gradient(ellipse 600px 500px at 50% 100%,rgba(181,136,99,.1),transparent 55%),#d8d0c2}.lobby-card{background:linear-gradient(180deg,#ffffffeb,#ffffffd1);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.6);border-radius:18px;box-shadow:0 1px #ffffffe6 inset,0 8px 32px #231e141a,0 2px 8px #231e140f;padding:36px 40px;max-width:440px;width:100%;text-align:center;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-feature-settings:"ss01","ss02","liga","dlig","calt"}.lobby-card h2{font-family:Fraunces,Times New Roman,serif;font-variation-settings:"opsz" 144,"SOFT" 50;font-weight:600;font-size:1.6rem;line-height:1.15;letter-spacing:-.01em;color:#1b1f20;margin-bottom:18px}.lobby-card h3{margin-bottom:var(--spacing-sm);font-size:1.1rem;color:var(--color-text)}.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{padding:11px 24px;border-radius:11px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .18s ease;min-height:44px;border:none;font-family:inherit}.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{background:transparent;color:#1b1f20;border:1px solid rgba(0,0,0,.12)}.lobby-button.secondary:hover{background:#0000000a;border-color:#0003}.lobby-divider{display:flex;align-items:center;margin:var(--spacing-lg) 0}.lobby-divider:before,.lobby-divider:after{content:"";flex:1;height:1px;background-color:#fff3}.lobby-divider span{padding:0 var(--spacing-md);color:var(--color-text-secondary);font-size:.85rem}.join-form{display:flex;gap:var(--spacing-sm)}.join-form input{flex:1;padding:var(--spacing-md);border-radius:8px;border:1px solid rgba(255,255,255,.2);background-color:#0003;color:var(--color-text);font-size:1rem;text-transform:uppercase;letter-spacing:2px;text-align:center}.join-form input::placeholder{text-transform:none;letter-spacing:normal}.join-form input:focus{outline:none;border-color:var(--color-primary)}.room-info{margin:var(--spacing-lg) 0}.room-code{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.room-code span{font-size:1.5rem;font-weight:700;letter-spacing:3px;background-color:#0000004d;padding:var(--spacing-sm) var(--spacing-md);border-radius:6px}.copy-button{padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;border:1px solid rgba(255,255,255,.2);background-color:transparent;color:var(--color-text);cursor:pointer;font-size:.85rem}.copy-button:hover{background-color:#ffffff1a}.variant-selector{display:flex;gap:var(--spacing-sm);justify-content:center;margin-bottom:var(--spacing-md)}.variant-button{padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;border:1px solid rgba(255,255,255,.2);background-color:transparent;color:var(--color-text-secondary);cursor:pointer;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-weight:600;font-size:.95rem}.color-info{color:var(--color-text)}.color-info strong{color:var(--color-primary)}.error-message{color:#b23b2e;background-color:#e74c3c1a;border:1px solid rgba(231,76,60,.22);padding:var(--spacing-sm) var(--spacing-md);border-radius:10px;margin-bottom:var(--spacing-md)}.spinner{width:48px;height:48px;border:3px solid rgba(31,69,32,.12);border-top-color:var(--color-forest-dark);border-radius:50%;animation:spin 1.1s cubic-bezier(.5,.05,.5,.95) infinite;margin:var(--spacing-md) auto}.lobby-section.matchmaking{background:linear-gradient(135deg,#2c5f2d1a,#2c5f2d0d);border:1px solid rgba(44,95,45,.3);border-radius:10px;padding:var(--spacing-lg)}.lobby-section.matchmaking.disabled{background:#ffffff05;border-color:#ffffff1a}.login-hint{color:var(--color-text-secondary);font-style:italic}.time-control-selector{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.time-control-button{padding:var(--spacing-sm) var(--spacing-xs);border-radius:6px;border:1px solid rgba(255,255,255,.2);background-color:transparent;color:var(--color-text-secondary);cursor:pointer;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%;font-size:1.1rem;padding:var(--spacing-md) var(--spacing-xl)}.lobby-card.searching h2{font-size:1.7rem;margin-bottom:22px}.lobby-card.searching .search-info{display:flex;flex-direction:column;align-items:center;gap:10px;margin:18px 0 24px}.lobby-card.searching .variant-badge,.lobby-card.searching .time-control-badge{display:inline-block;background:#2c5f2d14;color:#1f4520;border:1px solid rgba(44,95,45,.2);padding:5px 12px;border-radius:999px;font-size:.78rem;font-weight:600;letter-spacing:.02em;margin:0;text-transform:uppercase}.lobby-card.searching .time-control-badge{background:#c9a2271a;color:#8b6f0f;border-color:#c9a22740}.lobby-card.searching .search-timer{font-family:JetBrains Mono,monospace;font-size:2.6rem;font-weight:700;color:#1f4520;letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:8px}.lobby-card.searching .spinner{width:56px;height:56px;border:3px solid rgba(31,69,32,.12);border-top-color:#2c5f2d;border-radius:50%;margin:24px auto 18px;animation:spin 1.1s cubic-bezier(.5,.05,.5,.95) infinite}.lobby-card.searching .estimated-wait{color:#636e72;font-size:.88rem;margin:6px 0 18px}.lobby-card.searching .search-hint{color:#8b95a0;font-size:.82rem;font-style:italic;margin:4px 0 20px}.lobby-card.searching .abort-notice{background:#ff9f431f;color:#b4690e;border:1px solid rgba(255,159,67,.3);border-radius:10px;padding:10px 14px;margin:0 0 18px;font-size:.9rem;line-height:1.35;font-weight:600}.lobby-card.searching .lobby-button.secondary{background:transparent;color:#1b1f20;border:1px solid rgba(0,0,0,.12);padding:10px 22px;border-radius:10px;font-weight:600;font-size:.88rem;transition:all .18s ease}.lobby-card.searching .lobby-button.secondary:hover{background:#0000000a;border-color:#0003}@media (max-width: 899px){.online-lobby:has(.lobby-card.searching){position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;min-height:0;padding:0;overflow:hidden}.lobby-card.searching{width:100%;height:100%;max-width:none;border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 20px calc(24px + env(safe-area-inset-bottom))}}.custom-time-control{margin-top:var(--spacing-md)}@media (max-width: 400px){.time-control-selector{grid-template-columns:repeat(2,1fr)}}.guest-chat-composer{display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-sm);background-color:#0003;border-top:1px solid rgba(255,255,255,.05)}.guest-chat-presets{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.guest-chat-preset{padding:4px 10px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background-color:#ffffff0d;color:var(--color-text);font-size:.8rem;cursor:pointer;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{display:flex;flex-wrap:wrap;gap:2px}.guest-chat-emoji{display:flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;padding:0;border:none;border-radius:8px;background:none;font-size:1.2rem;line-height:1;cursor:pointer;transition:background-color .15s,transform .1s}.guest-chat-emoji:hover:not(:disabled){background-color:#ffffff1a;transform:scale(1.1)}.guest-chat-emoji:disabled{opacity:.5;cursor:not-allowed}.chat-panel{display:flex;flex-direction:column;background-color:var(--color-surface);border:1px solid rgba(255,255,255,.1);border-radius:8px;overflow:hidden;transition:height .2s ease}.chat-panel.open{width:100%;max-width:280px;max-height:400px}.chat-panel.closed{width:100%;max-width:280px;height:auto}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-primary);cursor:pointer;-webkit-user-select:none;user-select:none;min-height:40px}.chat-header:hover{background-color:var(--color-primary-hover)}.chat-title{font-weight:500;font-size:.9rem;color:var(--color-text)}.chat-toggle{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:.8rem;padding:2px 6px}.chat-badge{background-color:var(--color-primary);color:#fff;font-size:.7rem;font-weight:700;padding:2px 6px;border-radius:10px;min-width:18px;text-align:center}.chat-messages{flex:1;min-height:0;overflow-y:auto;padding:var(--spacing-sm);display:flex;flex-direction:column;gap:var(--spacing-xs)}.chat-empty{color:var(--color-text-secondary);text-align:center;padding:var(--spacing-lg);font-size:.85rem;font-style:italic}.chat-message{display:flex;flex-direction:column;padding:var(--spacing-xs) var(--spacing-sm);border-radius:8px;max-width:85%;word-wrap:break-word}.chat-message.own{align-self:flex-end;background-color:#2c5f2d1f;border:1px solid rgba(44,95,45,.18);color:var(--color-text)}.chat-message.opponent{align-self:flex-start;background-color:#0000000d;border:1px solid rgba(0,0,0,.07);color:var(--color-text)}.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{display:flex;align-items:center;gap:var(--spacing-xs);margin-bottom:2px}.chat-sender{font-size:.75rem;font-weight:600}.chat-time{font-size:.65rem;opacity:.6}.chat-message-content{font-size:.875rem;line-height:1.4}.chat-guest-hint{padding:var(--spacing-xs) var(--spacing-sm);font-size:.7rem;line-height:1.3;color:var(--color-text-secondary);background-color:#00000008;border-top:1px solid rgba(0,0,0,.08)}.chat-input-form{display:flex;gap:var(--spacing-xs);padding:var(--spacing-sm);background-color:transparent;border-top:1px solid rgba(0,0,0,.08)}.chat-input{flex:1;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid rgba(0,0,0,.12);border-radius:4px;background-color:var(--color-surface);color:var(--color-text);font-size:16px}.chat-input:focus{outline:none;border-color:var(--color-primary)}.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);border:none;border-radius:4px;color:#fff;font-size:.8rem;font-weight:500;cursor:pointer;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 (max-width: 900px){.chat-panel.open{width:100%;max-width:100%}}@media (max-width: 500px){.chat-message{max-width:90%}}.sidebar-tabs{display:flex;flex-direction:column;background-color:var(--color-surface);border:1px solid rgba(255,255,255,.1);border-radius:8px;overflow:hidden;width:100%;max-width:280px;flex:1;min-height:0}.sidebar-tabs-bar{display:flex;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:var(--spacing-sm) var(--spacing-md);background:none;border:none;border-bottom:2px solid transparent;color:var(--color-text-secondary);font-size:.9rem;font-weight:500;cursor:pointer;transition:color .15s,border-color .15s,background-color .15s;min-height:40px}.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;font-size:.7rem;font-weight:700;padding:1px 5px;border-radius:10px;min-width:16px;text-align:center;line-height:1.3}.sidebar-tabs-content{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.sidebar-tabs-content .move-list{border-radius:0;border:none}.sidebar-tabs-content .chat-panel{border-radius:0;border:none;width:100%}.sidebar-tabs-content .chat-panel.open{width:100%;flex:1;min-height:0;max-height:none}@media (max-width: 900px){.sidebar-tabs{width:100%;max-width:100%}}.rematch-panel{padding:0}.session-score{display:none}.score-label{color:var(--color-text-secondary);font-size:.9rem}.score-value{font-size:1.2rem;font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums}.rematch-notification{text-align:center;padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-md);background-color:#2c5f2d33;border:1px solid rgba(44,95,45,.4);border-radius:6px;color:var(--color-primary);font-weight:500;animation:pulse-bg 2s infinite}@keyframes pulse-bg{0%,to{background-color:#2c5f2d33}50%{background-color:#2c5f2d4d}}.rematch-waiting{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);color:var(--color-text-secondary);font-size:.9rem}.rematch-actions{display:flex;align-items:stretch;gap:0;width:100%;background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;border:1px solid rgba(0,0,0,.05);box-shadow:0 1px 4px #00000012,0 3px 10px #0000000a;overflow:hidden;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif}.rematch-btn,.new-game-btn{position:relative;flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:52px;padding:10px 8px;font:inherit;border:none;background:transparent;color:var(--color-neutral-700, #4A5568);cursor:pointer;transition:background .25s cubic-bezier(.4,0,.2,1),color .25s cubic-bezier(.4,0,.2,1)}.rematch-btn:not(:last-child):after,.new-game-btn:not(:last-child):after{content:"";position:absolute;right:0;top:12px;bottom:12px;width:1px;background:#0000000f}.rematch-btn svg,.new-game-btn svg{flex-shrink:0;opacity:.6;transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .25s ease}.rematch-btn span,.new-game-btn span{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.4px;opacity:.55;transition:opacity .25s ease,color .25s ease}.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{transform:scale(.95);transition-duration:.1s}.rematch-btn:disabled{opacity:.45;cursor:not-allowed}.rematch-btn.request:hover:not(:disabled),.rematch-btn.accept:hover:not(:disabled){background:#2c5f2d0d;color:var(--color-forest-dark, #2C5F2D)}.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){background:#e74c3c0f;color:var(--color-error, #E74C3C)}.rematch-btn.decline:hover:not(:disabled) span{color:var(--color-error, #E74C3C)}.spinner-small{width:16px;height:16px;border:2px solid rgba(0,0,0,.15);border-top-color:var(--color-forest-dark, #2C5F2D);border-radius:50%;animation:spin 1s linear infinite}@media (max-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}}.drawn-opening-banner{position:absolute;top:8px;left:50%;transform:translate(-50%);z-index:20;display:flex;align-items:center;gap:10px;width:max-content;max-width:calc(100% - 12px);padding:8px 8px 8px 12px;border-radius:16px;color:#8a6d1a;background:radial-gradient(ellipse at 0% 0%,rgba(201,162,39,.16),transparent 60%),linear-gradient(180deg,#fffffff7,#fffcf7f2);border:1px solid rgba(201,162,39,.42);box-shadow:0 8px 24px -8px #231e1447,0 0 0 3px #c9a2271a;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:dob-in .24s cubic-bezier(.16,1,.3,1) both}@keyframes dob-in{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}.dob-icon{display:inline-flex;flex:0 0 auto;color:#b8901f}.dob-text{display:flex;flex-direction:column;min-width:0;line-height:1.2}.dob-label{font-size:.66rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#9a7b16}.dob-moves{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;font-weight:600;letter-spacing:-.01em;color:#5a4a12;white-space:normal;word-break:break-word;line-height:1.3}.dob-close{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:var(--touch-target-min, 44px);height:var(--touch-target-min, 44px);margin:-8px -4px -8px 0;border:none;background:transparent;color:#8a6d1a;cursor:pointer;border-radius:999px}.dob-close:hover{background:#c9a22724}@media (prefers-reduced-motion: reduce){.drawn-opening-banner{animation:none}}.online-game{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);width:100%;max-width:900px;margin:0 auto;padding:0 var(--spacing-md)}.online-game-header{display:flex;gap:var(--spacing-lg);justify-content:center;flex-wrap:wrap}.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{font-weight:700;letter-spacing:1px}.player-badge span{font-weight:700}.player-badge span.black{color:var(--color-brown-medium)}.online-turn-indicator{display:flex;align-items:center;gap:var(--spacing-sm);font-size:1.1rem}.online-turn-indicator .turn-dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--color-text-secondary)}.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:pulse 1s ease-in-out infinite}.result-reason{color:var(--color-text-secondary);font-size:.9rem}.online-board-container{display:flex;flex-direction:row;gap:var(--spacing-md);align-items:flex-start;justify-content:center;width:100%}.player-info-bar{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-surface);border-radius:6px;font-size:1rem;width:100%;box-sizing:border-box;min-height:40px}@media (max-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{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-md)}.action-button{padding:var(--spacing-sm) var(--spacing-lg);border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .2s;min-height:44px;border:1px solid rgba(255,255,255,.2);background-color:transparent;color:var(--color-text)}.action-button:hover{background-color:#ffffff1a}@media (prefers-reduced-motion: reduce){.online-turn-indicator .turn-dot.waiting{animation-duration:.01ms!important;animation-iteration-count:1!important}}.legal-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1100;padding:var(--spacing-md)}.legal-modal{background-color:var(--color-surface);border-radius:12px;max-width:700px;width:100%;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #0006}.legal-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0}.legal-modal-header h3{margin:0;font-size:1.2rem;color:var(--text-primary)}.legal-modal-close{background:none;border:none;color:var(--color-text-secondary);font-size:1.5rem;cursor:pointer;padding:var(--spacing-xs) var(--spacing-sm);line-height:1;border-radius:6px}.legal-modal-close:hover{color:var(--color-text);background:#ffffff0d}.legal-modal-body{overflow-y:auto;padding:var(--spacing-lg);line-height:1.7;color:var(--text-primary)}.legal-modal-body h2{font-size:1.2rem;font-weight:700;margin:1.5rem 0 .6rem;color:var(--text-primary)}.legal-modal-body h2:first-child{margin-top:0}.legal-modal-body h3{font-size:1.05rem;font-weight:600;margin:1.2rem 0 .4rem;color:var(--text-primary)}.legal-modal-body p{margin:0 0 .8rem;color:var(--text-secondary);font-size:.92rem}.legal-modal-body ul,.legal-modal-body ol{margin:0 0 .8rem;padding-left:1.5rem;color:var(--text-secondary);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 (max-width: 480px){.legal-modal{max-height:90vh;border-radius:8px}.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{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-md)}.auth-modal{background-color:var(--color-surface);border-radius:12px;padding:var(--spacing-xl);max-width:400px;width:100%;position:relative;box-shadow:0 4px 20px #0000004d}.auth-modal-close{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);background:none;border:none;color:var(--color-text-secondary);font-size:1.5rem;cursor:pointer;padding:var(--spacing-sm);line-height:1}.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{background-color:#e74c3c1a;border:1px solid var(--color-error);color:var(--color-error);padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;margin-bottom:var(--spacing-md);font-size:.9rem;text-align:center}.auth-resend-row{margin-top:8px}.auth-resend-link{background:none;border:none;color:var(--color-primary);cursor:pointer;text-decoration:underline;font-size:.85rem;padding:0}.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{display:block;margin-bottom:var(--spacing-xs);font-size:.9rem;color:var(--color-text-secondary)}.auth-field input{width:100%;padding:var(--spacing-md);border-radius:8px;border:1px solid rgba(255,255,255,.2);background-color:#0003;color:var(--color-text);font-size:1rem;min-height:44px;box-sizing:border-box}.auth-field input:focus{outline:none;border-color:var(--color-primary)}.auth-field input::placeholder{color:var(--color-text-secondary)}.auth-field select{width:100%;padding:var(--spacing-md);border-radius:8px;border:1px solid rgba(255,255,255,.2);background-color:#0003;color:var(--color-text);font-size:1rem;min-height:44px;box-sizing:border-box;cursor:pointer}.auth-field select:focus{outline:none;border-color:var(--color-primary)}.auth-field input.auth-input-error{border-color:var(--color-error)}.auth-field-error{display:block;color:var(--color-error);font-size:.78rem;margin-top:4px;line-height:1.3}.auth-password-wrapper{position:relative}.auth-password-wrapper input{width:100%;padding-right:44px}.auth-password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px}.auth-password-toggle:hover{color:var(--color-text)}.auth-pw-requirements{display:flex;gap:8px;margin-top:6px}.auth-pw-requirements span{font-size:.72rem;padding:2px 6px;border-radius:4px;background:#ffffff14;color:var(--color-text-secondary);transition:background .2s,color .2s}.auth-pw-requirements span.met{background:#4caf5033;color:var(--color-success, #4CAF50)}.auth-terms-checkbox{margin:var(--spacing-sm) 0}.auth-terms-label{display:flex;align-items:flex-start;gap:var(--spacing-sm);font-size:.85rem;color:var(--color-text-secondary);cursor:pointer;line-height:1.4;padding:4px 0}.auth-terms-label input[type=checkbox]{width:18px;height:18px;margin-top:calc((1.4em - 18px)/2);flex-shrink:0;cursor:pointer;accent-color:var(--color-primary)}.auth-terms-link{min-height:0;background:none;border:none;color:var(--color-primary);text-decoration:underline;cursor:pointer;font:inherit;line-height:inherit;padding:0}.auth-terms-link:hover{color:var(--color-primary-hover)}.auth-submit{width:100%;padding:var(--spacing-md);border-radius:8px;border:none;background-color:var(--color-primary);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;min-height:44px;margin-top:var(--spacing-md);display:flex;align-items:center;justify-content:center}.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{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:auth-spin 1s linear infinite}.auth-switch{text-align:center;margin-top:var(--spacing-lg);color:var(--color-text-secondary);font-size:.9rem}.auth-switch button{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:inherit;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{font-size:3rem;margin-bottom:var(--spacing-sm)}.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);font-size:.9rem;line-height:1.5;margin-bottom:var(--spacing-sm)}.auth-verification-hint{font-size:.8rem!important;opacity:.7}.verify-email-page{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:var(--spacing-xl)}.verify-email-card{background-color:var(--color-surface);border-radius:16px;padding:var(--spacing-xl) var(--spacing-xxl);max-width:460px;width:100%;text-align:center}.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{display:inline-block;width:40px;height:40px;border:3px solid rgba(255,255,255,.15);border-top-color:var(--color-primary);border-radius:50%;animation:auth-spin .8s linear infinite;margin:var(--spacing-lg) auto}.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{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:.82rem;text-decoration:underline;padding:0}.auth-forgot-link button:hover{color:var(--color-primary)}.auth-forgot-desc{color:var(--color-text-secondary);font-size:.9rem;line-height:1.5;margin-bottom:var(--spacing-md);text-align:center}@media (max-width: 767px){body:has(.auth-modal-overlay--fullscreen) .sidebar{display:none}.auth-modal-overlay--fullscreen{padding:0;align-items:stretch;justify-content:stretch}.auth-modal-overlay--fullscreen .auth-modal{width:100%;max-width:none;height:100vh;height:100dvh;border-radius:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:max(var(--spacing-xl),env(safe-area-inset-top)) var(--spacing-lg) max(var(--spacing-xl),env(safe-area-inset-bottom))}.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{display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--surface-secondary, #2a2a3d);border-bottom:1px solid var(--border-color, #3a3a4d);font-size:.875rem;color:var(--text-secondary, #b0b0c0);z-index:100}.guest-banner-text{flex:1}.guest-banner-upgrade{padding:4px 12px;border-radius:4px;border:none;background:var(--color-primary, #2C5F2D);color:#fff;font-size:.8125rem;font-weight:600;cursor:pointer;white-space:nowrap}.guest-banner-upgrade:hover{background:var(--color-primary-hover, #3D8B40)}.guest-banner-close{background:none;border:none;color:var(--text-secondary, #b0b0c0);font-size:1.25rem;cursor:pointer;padding:0 4px;line-height:1}.guest-banner-close:hover{color:var(--text-primary, #e0e0e0)}.game-replay{--gr-forest: #2C5F2D;--gr-forest-d: #1F4520;--gr-gold: #C9A227;--gr-text: #1B1F20;--gr-text2: #636E72;--gr-muted: #8B95A0;min-height:100vh;padding:28px 24px 48px;background-color:var(--color-bg);background-image:var(--app-bg-image);background-size:var(--app-bg-size);background-position:var(--app-bg-position)}.game-replay>*{max-width:680px;margin-left:auto;margin-right:auto}.game-replay .card{background:linear-gradient(180deg,#ffffffeb,#ffffffd1);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.6);border-radius:18px;box-shadow:0 1px #ffffffe6 inset,0 8px 24px -8px #231e141a,0 24px 48px -24px #231e142e}.game-replay .rv-head{margin-bottom:14px}.game-replay .rv-head--wide{padding:16px 22px;display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:center}.game-replay .rv-head--wide .rv-player{display:flex;align-items:center;gap:11px;min-width:0}.game-replay .rv-head--wide .rv-player.black{flex-direction:row-reverse;text-align:right}.game-replay .rv-head--wide .rv-avatar{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-family:Fraunces,Georgia,serif;font-weight:700;font-size:1.1rem;color:#fff;flex-shrink:0}.game-replay .rv-head--wide .rv-avatar.w{background:linear-gradient(135deg,#b9a98a,#8a795a)}.game-replay .rv-head--wide .rv-avatar.b{background:linear-gradient(135deg,#5a4234,#241008)}.game-replay .rv-head--wide .rv-pinfo{display:flex;flex-direction:column;gap:1px;min-width:0}.game-replay .rv-head--wide .rv-pinfo-r{align-items:flex-end}.game-replay .rv-head--wide .rv-pname{font-family:Fraunces,Georgia,serif;font-size:1.05rem;font-weight:600;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.game-replay .rv-head--wide .rv-prating{font-family:JetBrains Mono,monospace;font-size:.8rem;color:var(--gr-text2)}.game-replay .rv-head--wide .rv-center{display:flex;flex-direction:column;align-items:center;gap:4px}.game-replay .rv-head--compact{display:none;padding:14px 20px;flex-direction:column;align-items:center;gap:8px}.game-replay .rv-head--compact .rv-players{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-width:0}.game-replay .rv-head--compact .rv-side{display:inline-flex;align-items:center;gap:6px;flex:0 1 auto;min-width:0}.game-replay .rv-head--compact .rv-disc{width:13px;height:13px;border-radius:50%;flex-shrink:0}.game-replay .rv-head--compact .rv-disc-w{background:radial-gradient(circle at 35% 30%,#fff,#e6dcc6);border:1px solid rgba(0,0,0,.28)}.game-replay .rv-head--compact .rv-disc-b{background:radial-gradient(circle at 35% 30%,#52463a,#241008);border:1px solid rgba(0,0,0,.4)}.game-replay .rv-head--compact .rv-pname{min-width:0;font-family:Fraunces,Georgia,serif;font-size:1.1rem;font-weight:600;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-replay .rv-head--compact .rv-vs{flex:0 0 auto;font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--gr-muted)}.game-replay .rv-head--compact .rv-center{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.game-replay .rv-result-badge{flex:0 0 auto;font-family:JetBrains Mono,monospace;font-weight:700;font-size:1.05rem;padding:4px 13px;border-radius:9px;background:linear-gradient(135deg,#2ebf6f,#27ae60);color:#fff;box-shadow:0 2px 6px #27ae604d;white-space:nowrap}.game-replay .rv-result-badge.draw{background:linear-gradient(135deg,#b0babe,#8b95a0);box-shadow:0 2px 6px #8b95a04d}.game-replay .rv-result-sub{font-size:.74rem;color:var(--gr-text2);text-align:center}.game-replay .rv-tags{display:flex;gap:7px;justify-content:center;flex-wrap:wrap;margin-top:2px}.game-replay .rv-tag{display:inline-flex;align-items:center;gap:4px;font-size:.68rem;font-weight:700;padding:3px 9px;border-radius:999px;background:#ffffffb3;border:1px solid rgba(0,0,0,.06);color:var(--gr-text2);text-transform:capitalize}.game-replay .rv-tag .variant-flag{font-size:.85rem;line-height:1}.game-replay .rv-tag svg{display:block}.game-replay .rv-tag-mode--breakthrough,.game-replay .rv-tag-mode--antidraughts{color:#8a6d1a;background:#c9a22729;border-color:#c9a2274d}.game-replay .rv-board-card{padding:20px}.game-replay .rv-board-wrap{display:flex;justify-content:center}.game-replay .replay-board{width:100%;max-width:520px;height:auto;border-radius:12px;box-shadow:0 3px 14px #0003}.game-replay .square-dark{fill:var(--color-square-dark, #B58863)}.game-replay .square-light{fill:var(--color-square-light, #F0D9B5)}.game-replay .last-move-highlight{fill:#ffd90059;pointer-events:none}.game-replay .replay-controls{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:18px}.game-replay .rv-ctrl{width:44px;height:44px;border-radius:12px;border:1px solid rgba(0,0,0,.08);background:#ffffffd1;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--gr-text);transition:background .15s ease}.game-replay .rv-ctrl:hover:not(:disabled){background:#fff}.game-replay .rv-ctrl:disabled{opacity:.4;cursor:not-allowed}.game-replay .replay-move-counter{font-family:JetBrains Mono,monospace;font-variant-numeric:tabular-nums;font-weight:700;font-size:.95rem;margin:0 12px;width:9ch;flex-shrink:0;white-space:nowrap;text-align:center;color:var(--gr-text)}.game-replay .replay-slider{max-width:520px;margin:16px auto 0}.game-replay .replay-slider input[type=range]{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:6px;border-radius:999px;background:#00000014;cursor:pointer}.game-replay .replay-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:15px;height:15px;border-radius:50%;background:#fff;border:2px solid var(--gr-forest);box-shadow:0 1px 3px #00000040}.game-replay .replay-slider input[type=range]::-moz-range-thumb{width:15px;height:15px;border-radius:50%;background:#fff;border:2px solid var(--gr-forest);box-shadow:0 1px 3px #00000040}.game-replay .rv-pdn-row{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:16px}.game-replay .pdn-download-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--touch-target-min, 44px);padding:10px 18px;border-radius:11px;border:1px solid rgba(0,0,0,.08);background:#fffc;cursor:pointer;font:inherit;font-weight:600;font-size:.88rem;color:var(--gr-text);transition:background .15s ease}.game-replay .pdn-download-btn:hover{background:#fff}@media (max-width: 600px){.game-replay{padding:18px 12px 36px}.game-replay .rv-head--wide{display:none}.game-replay .rv-head--compact{display:flex;padding:10px 12px;gap:6px}.game-replay .rv-head--compact .rv-players{gap:6px}.game-replay .rv-head--compact .rv-side{gap:5px}.game-replay .rv-head--compact .rv-pname{font-size:.98rem}.game-replay .rv-head--compact .rv-vs{font-size:.74rem}.game-replay .rv-result-badge{font-size:.9rem;padding:3px 10px}.game-replay .rv-result-sub{font-size:.66rem}.game-replay .rv-tags{gap:5px}.game-replay .rv-tag{font-size:.62rem;padding:2px 7px}.game-replay .rv-ctrl{width:40px;height:40px}.game-replay{width:100%}.game-replay .replay-controls{gap:8px}.game-replay .replay-move-counter{font-size:.88rem;margin:0 4px}}.games-history-page{display:flex;justify-content:center;padding:var(--spacing-lg);min-height:100vh;background-color:var(--color-bg);background-image:var(--app-bg-image);background-size:var(--app-bg-size);background-position:var(--app-bg-position)}.games-history-page .games-card{background-color:var(--color-surface);border-radius:12px;padding:var(--spacing-xl);max-width:600px;width:100%;box-shadow:0 4px 20px #0000004d;position:relative}.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{position:absolute;top:var(--spacing-md);left:var(--spacing-md);background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:.9rem;padding:var(--spacing-xs) var(--spacing-sm)}.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{width:40px;height:40px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--color-primary);border-radius:50%;animation:games-spin 1s linear infinite;margin:var(--spacing-md) auto}@keyframes games-spin{to{transform:rotate(360deg)}}.games-history-page .games-list{display:flex;flex-direction:column;gap:var(--spacing-sm);max-height:500px;overflow-y:auto}.games-history-page .game-item{display:flex;flex-direction:column;gap:var(--spacing-xs);background-color:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:var(--spacing-md);cursor:pointer;transition:background-color .2s,border-color .2s;text-align:left;width:100%}.games-history-page .game-item:hover{background-color:#ffffff1a;border-color:var(--color-primary)}.games-history-page .game-item-main{display:flex;align-items:center;gap:var(--spacing-md)}.games-history-page .game-result{font-weight:700;font-size:.9rem;padding:var(--spacing-xs) var(--spacing-sm);border-radius:4px;min-width:50px;text-align:center}.games-history-page .result-win{background-color:#27ae6033;color:var(--color-success)}.games-history-page .result-loss{background-color:#e74c3c33;color:var(--color-error)}.games-history-page .result-draw{background-color:#f39c1233;color:var(--color-warning)}.games-history-page .game-opponent{color:var(--color-text);font-size:1rem}.games-history-page .game-item-details{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);font-size:.8rem;color:var(--color-text-secondary)}.games-history-page .game-variant,.games-history-page .game-time,.games-history-page .game-moves,.games-history-page .game-date{background-color:#ffffff0d;padding:2px 8px;border-radius:4px}@media (max-width: 600px){.games-history-page{padding:var(--spacing-sm)}.games-history-page .games-card{padding:var(--spacing-md)}.games-history-page .game-item-main{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs)}}@media (prefers-reduced-motion: reduce){.games-history-page .games-spinner{animation-duration:.01ms!important;animation-iteration-count:1!important}}.tournament-lobby{max-width:700px;margin:0 auto;padding:16px;padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}.lobby-header-new{display:flex;align-items:center;gap:16px;background:var(--color-surface);border-radius:16px;padding:16px;margin-bottom:16px;box-shadow:0 2px 12px #0000001a;border:1px solid var(--color-brown-light)}.back-button-new{background:none;border:none;color:var(--color-text-secondary);font-size:1.5rem;cursor:pointer;padding:8px;border-radius:var(--radius-md);transition:all .2s}.back-button-new:hover{background:var(--color-bg);color:var(--color-text)}.header-center{flex:1}.tournament-name-new{font-size:1.3rem;font-weight:600;margin:0 0 6px;color:var(--color-text)}.header-meta{display:flex;gap:8px;flex-wrap:wrap}.tournament-format-badge{padding:6px 12px;background:var(--color-format-arena);color:#fff;border-radius:4px;font-size:.75rem;font-weight:600;min-height:28px;display:inline-flex;align-items:center}.tournament-format-badge.swiss{background:var(--color-format-swiss, #2E7D32)}.tc-badge,.duration-badge{padding:3px 8px;background:var(--color-bg);color:var(--color-text-secondary);border-radius:4px;font-size:.75rem}.timer-container{display:flex;flex-direction:column;align-items:center;padding:8px 16px;background:var(--color-error);border-radius:var(--radius-md);min-width:90px}.timer-label{font-size:.65rem;color:#fffc;text-transform:uppercase;letter-spacing:.5px}.timer-value{font-size:1.2rem;font-weight:700;color:#fff;font-variant-numeric:tabular-nums}.my-position-bar{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:linear-gradient(135deg,var(--color-forest-dark) 0%,var(--color-forest-medium) 100%);border-radius:var(--radius-lg);padding:14px 20px;margin-bottom:16px;box-shadow:var(--shadow-md);transition:box-shadow .3s}.my-position-bar.highlighted{animation:position-glow 2s ease-out}@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{font-size:.75rem;color:#fffc;text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.position-stats{display:flex;align-items:center;gap:16px}.position-stat{display:flex;flex-direction:column;align-items:center}.position-stat.main{padding-right:16px}.position-divider{width:1px;height:36px;background:#ffffff4d}.position-rank{font-size:1.8rem;font-weight:700;color:#fff}.position-value{font-size:1.2rem;font-weight:600;color:#fff}.position-value.win-rate{color:var(--color-forest-light)}.position-label{font-size:.65rem;color:#ffffffb3;text-transform:uppercase;margin-top:2px}.pairing-status{background:var(--color-surface);border-radius:16px;padding:24px;text-align:center;margin-bottom:16px;min-height:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--color-brown-light)}.searching-animation{display:flex;justify-content:center;gap:8px;margin-bottom:12px}.dot{width:10px;height:10px;background:var(--color-format-arena);border-radius:50%;animation:bounce 1.4s infinite ease-in-out both}.dot:nth-child(1){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);font-size:1rem;margin:0}.status-text.paused{color:var(--color-text-secondary)}.lobby-error{background:#e74c3c1a;color:var(--color-error);padding:12px;border-radius:12px;text-align:center;margin-bottom:16px;border:1px solid rgba(231,76,60,.3)}.lobby-tabs{display:flex;gap:4px;background:var(--color-beige-sand);border-radius:16px;padding:4px;margin-bottom:16px;border:1px solid var(--color-brown-light);overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}.lobby-tab{flex:1;padding:10px 16px;background:transparent;border:none;border-radius:12px;color:var(--color-brown-dark);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s;scroll-snap-align:center;white-space:nowrap}.lobby-tab:hover{background:#ffffff80;color:var(--color-text)}.lobby-tab.active{background:var(--color-forest-dark);color:#fff;box-shadow:0 4px 12px #2c5f2d4d}.lobby-content{background:var(--color-surface);border-radius:16px;padding:16px;margin-bottom:16px;min-height:300px;border:1px solid var(--color-brown-light);box-shadow:0 2px 12px #0000001a}.lobby-standings{overflow-x:auto}.standings-table{width:100%;border-collapse:collapse}.standings-table th{text-align:left;padding:10px 8px;border-bottom:2px solid var(--color-brown-light);color:var(--color-text-secondary);font-size:.75rem;text-transform:uppercase;font-weight:600}.standings-table td{padding:12px 8px;border-bottom:1px solid var(--color-brown-light);color:var(--color-text);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{display:flex;align-items:center;gap:6px}.player-name{font-weight:500}.player-rating{color:var(--color-text-secondary);font-size:.8rem}.streak-badge{font-size:.9rem}.points{font-weight:600;color:var(--color-forest-dark)}.games{color:var(--color-text-secondary)}.status-col{width:30px;text-align:center}.status-indicator{font-size:.9rem}.more-players{text-align:center;color:var(--color-text-secondary);font-size:.85rem;margin:16px 0 0;padding-top:12px;border-top:1px solid var(--color-brown-light)}.lobby-games{display:flex;flex-direction:column;min-height:200px}.games-filter-bar{display:flex;gap:8px;margin-bottom:12px}.games-filter-btn{padding:6px 14px;background:transparent;border:1px solid var(--color-brown-light);border-radius:8px;color:var(--color-text-secondary);font-size:.85rem;cursor:pointer;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{display:flex;align-items:center;justify-content:center;min-height:150px;color:var(--color-text-secondary);text-align:center}.games-list{display:flex;flex-direction:column;gap:6px}.game-entry{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--color-beige-warm);border-radius:10px;gap:12px}.game-players{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.game-player{font-size:.85rem;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-player.winner{font-weight:600}.game-player-rating{color:var(--color-text-secondary);font-size:.75rem;margin-left:2px}.game-vs{color:var(--color-text-muted);font-size:.75rem;flex-shrink:0}.game-meta{display:flex;align-items:center;gap:8px;flex-shrink:0}.game-result-badge{padding:2px 6px;border-radius:4px;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{font-size:.75rem;color:var(--color-text-muted)}.participants-sort-bar{display:flex;gap:6px;margin-bottom:12px}.sort-btn{padding:6px 12px;background:transparent;border:1px solid var(--color-brown-light);border-radius:8px;color:var(--color-text-secondary);font-size:.8rem;cursor:pointer;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{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}.participant-card{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;background:var(--color-beige-warm);border-radius:12px;cursor:pointer;transition:all .2s}.participant-card:hover{background:var(--color-beige-sand)}.participant-left{display:flex;align-items:center;gap:8px;min-width:0}.participant-status-dot{font-size:.85rem;flex-shrink:0}.participant-info{display:flex;align-items:center;gap:6px;min-width:0}.participant-name{font-weight:500;color:var(--color-text);font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.participant-rating{color:var(--color-text-secondary);font-size:.8rem;flex-shrink:0}.participant-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.participant-record{font-size:.75rem;color:var(--color-text-muted)}.participant-points{font-size:.85rem;font-weight:600;color:var(--color-forest-dark)}.participant-streak{font-size:.85rem}.rules-accordion{background:var(--color-surface);border-radius:16px;margin-bottom:16px;overflow:hidden;border:1px solid var(--color-brown-light)}.rules-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:transparent;border:none;color:var(--color-forest-dark);font-size:.95rem;font-weight:600;cursor:pointer;transition:background .2s;font-family:Georgia,serif}.rules-toggle:hover{background:var(--color-beige-warm)}.rules-chevron{color:var(--color-text-secondary);font-size:.8rem}.rules-content{padding:0 16px 16px;display:flex;flex-direction:column;gap:10px}.rule-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--color-beige-warm);border-radius:12px;font-size:.85rem;color:var(--color-text)}.rule-icon{font-size:1rem;width:24px;text-align:center}.bottom-action-bar{position:fixed;bottom:0;left:0;right:0;display:flex;gap:12px;padding:16px;padding-bottom:max(16px,env(safe-area-inset-bottom));background:var(--color-surface);border-top:1px solid var(--color-brown-light);box-shadow:0 -4px 12px #0000001a;z-index:20}.action-button{flex:1;padding:14px 20px;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;min-height:48px}.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{background:transparent;border:1px solid var(--color-brown-light);color:var(--color-text-secondary)}.action-button.leave:hover{border-color:var(--color-error);color:var(--color-error)}.back-button{background:none;border:none;color:var(--color-info);font-size:1rem;cursor:pointer;padding:8px 0;margin-bottom:10px}.back-button:hover{color:var(--color-primary)}@media (max-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{width:100%;flex-direction:row;justify-content:center;gap:8px;order:-1}.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{width:100%;justify-content:flex-start}}@media (prefers-reduced-motion: reduce){.my-position-bar.highlighted,.dot{animation-duration:.01ms!important;animation-iteration-count:1!important}}.game-end-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f5f0e6f2;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:game-end-fadeIn .3s ease-out;padding:16px}@keyframes game-end-fadeIn{0%{opacity:0}to{opacity:1}}.game-end-card{width:360px;max-width:calc(100vw - 32px);max-height:calc(100svh - 32px);overflow-y:auto;display:flex;flex-direction:column;gap:16px;animation:game-end-slideUp .4s cubic-bezier(.34,1.56,.64,1)}@keyframes game-end-slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.game-end-result{background:var(--color-surface);border-radius:16px;padding:24px;text-align:center;border:1px solid var(--color-brown-light);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{font-size:2rem;margin-bottom:4px}.game-end-result-text{font-size:1.4rem;font-weight:700;margin:0 0 8px;font-family:Georgia,serif}.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{font-size:.9rem;color:var(--color-text-secondary);margin:0}@media (max-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{display:flex;flex-direction:column;align-items:center;padding:20px;max-width:800px;margin:0 auto}.tournament-game-header{width:100%;max-width:500px;margin-bottom:16px}.tournament-info-bar{display:flex;justify-content:space-between;align-items:center;background:var(--color-surface);padding:8px 12px;border-radius:8px;margin-bottom:12px}.tournament-name{color:var(--color-text);font-weight:500}.my-score{color:var(--color-warning);font-weight:600}.streak{margin-left:4px}.players-bar{display:flex;justify-content:center;align-items:center;gap:16px;margin-bottom:12px}.player{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--color-surface);border-radius:8px}.player.you{background:var(--color-success)}.color-badge{width:12px;height:12px;border-radius:50%}.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;padding:12px;background:var(--color-surface);border-radius:8px}.turn-text{font-size:1.2rem;color:var(--color-text)}.turn-text.win{color:var(--color-success)}.turn-text.draw{color:var(--color-warning)}.turn-text.lose{color:var(--color-error)}.points-earned{margin-left:12px;padding:4px 8px;background:var(--color-warning);color:var(--color-neutral-900);border-radius:4px;font-weight:600;font-size:1rem}.game-area{width:100%;display:flex;flex-direction:row;gap:16px;align-items:center;justify-content:center}@media (max-width: 768px){.game-area{flex-direction:column}}.tournament-game-actions{display:flex;gap:16px;align-items:center;margin-top:16px;min-height:50px}.resign-button{padding:12px 20px;background:var(--color-surface);color:var(--color-text-secondary);border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .2s}.resign-button:hover{background:var(--color-error);color:#fff}.game-over-notice{color:var(--color-text-secondary);font-size:1rem;animation:fade-pulse 1s infinite}@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;display:inline-block;animation:tge-points-pop .4s cubic-bezier(.34,1.56,.64,1) .2s both}@keyframes tge-points-pop{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity: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{font-size:1rem;color:var(--color-warning);margin-bottom:8px;text-align:center}.tge-rank{font-size:.9rem;color:var(--color-text-secondary);margin-bottom:8px;text-align:center}.tge-rating-change{display:flex;align-items:center;justify-content:center;gap:6px;font-size:.95rem;animation:tge-fade-in .4s ease-out .3s both}@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{font-size:.85rem;color:var(--color-text-muted);text-align:center}.tge-continue-btn{width:100%;padding:14px 24px;background:var(--color-forest-dark);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s;min-height:48px}.tge-continue-btn:hover{background:var(--color-forest-medium)}@media (max-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{display:flex;align-items:center;gap:6px;padding:10px 18px;background:#f39c1226;border:2px solid #F39C12;border-radius:12px;color:#f39c12;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;min-height:44px;min-width:44px;animation:arena-boost-pulse 2s ease-in-out infinite}.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{background:#f39c12;color:#fff;border-color:#f39c12;cursor:default;animation:arena-boost-activate .4s ease-out}.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-radius:12px;padding:16px;border:1px solid var(--color-brown-light)}.arena-game-end-points-title{font-size:.75rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px}.arena-game-end-points-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:.9rem;color:var(--color-text)}.arena-game-end-points-row.total{border-top:1px solid var(--color-brown-light);margin-top:8px;padding-top:8px;font-weight:700;font-size:1rem}.arena-game-end-points-value{font-weight:600;font-variant-numeric:tabular-nums}.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-radius:12px;padding:16px;border:1px solid var(--color-brown-light);display:grid;grid-template-columns:repeat(3,1fr);gap:12px;text-align:center}.arena-game-end-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.arena-game-end-stat-value{font-size:1.2rem;font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums}.arena-game-end-stat-label{font-size:.7rem;color:var(--color-text-secondary);text-transform:uppercase}.arena-game-end-rank-delta{font-size:.85rem;font-weight:600;margin-left:2px}.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{font-size:.85rem;color:var(--color-text-secondary);margin:0}.arena-game-end-countdown-number{font-weight:700;color:var(--color-forest-dark);font-variant-numeric:tabular-nums}.arena-game-end-actions{display:flex;gap:12px}.arena-game-end-btn{flex:1;padding:14px 16px;border-radius:12px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s;min-height:44px;border:none}.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:arena-endCountFade .5s ease-out}@keyframes arena-endCountFade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.arena-game-end-rank-slide-up{animation:arena-endRankUp .6s ease-out}.arena-game-end-rank-slide-down{animation:arena-endRankDown .6s ease-out}@keyframes arena-endRankUp{0%{transform:translateY(8px);opacity:.5}to{transform:translateY(0);opacity:1}}@keyframes arena-endRankDown{0%{transform:translateY(-8px);opacity:.5}to{transform:translateY(0);opacity:1}}@media (max-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{display:flex;flex-direction:column;align-items:center;padding:8px;max-width:800px;margin:0 auto;min-height:100dvh}.arena-game-bar{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:500px;padding:6px 12px;background:var(--color-surface);border-radius:8px;margin-bottom:8px;gap:12px}.arena-game-bar.time-warning{background:#e74c3c26}.arena-game-bar.time-warning .arena-game-bar-time{color:var(--color-error);animation:arena-time-pulse 1s infinite}@keyframes arena-time-pulse{0%,to{opacity:1}50%{opacity:.5}}.arena-game-bar-timer{display:flex;align-items:center;gap:4px}.arena-game-bar-icon{font-size:.85rem}.arena-game-bar-time{font-size:.9rem;font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums}.arena-game-bar-position{display:flex;align-items:center;gap:8px}.arena-game-bar-rank{font-weight:700;color:var(--color-warning);font-size:.95rem}.arena-game-bar-points{font-size:.85rem;color:var(--color-text-secondary)}.arena-game-bar-streak{font-size:1rem}.arena-game-bar-delta{font-size:.75rem;font-weight:600;margin-left:2px}.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{display:flex;justify-content:center;align-items:center;gap:12px;width:100%;max-width:500px;margin-bottom:6px}.arena-game-player{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--color-surface);border-radius:8px;font-size:.9rem}.arena-game-player.self{background:var(--color-success)}.arena-game-player-color{width:10px;height:10px;border-radius:50%;flex-shrink:0}.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;padding:8px;width:100%;max-width:500px;background:var(--color-surface);border-radius:8px;margin-bottom:8px}.arena-game-turn-text{font-size:1.1rem;font-weight:500;color:var(--color-text)}.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{width:100%;display:flex;flex-direction:row;gap:12px;align-items:center;justify-content:center;flex:1}.arena-game-actions{display:flex;gap:12px;align-items:center;justify-content:center;width:100%;max-width:500px;margin-top:8px;min-height:48px;padding-bottom:env(safe-area-inset-bottom,8px)}.arena-game-resign-btn{padding:12px 24px;background:var(--color-surface);color:var(--color-text-secondary);border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .2s;min-height:44px;min-width:44px}.arena-game-resign-btn:hover{background:var(--color-error);color:#fff}@media (max-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 (max-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}}:root{--arena-boost-color: #F39C12;--arena-boost-bg: rgba(243, 156, 18, .15);--arena-boost-border: rgba(243, 156, 18, .25);--arena-streak-color: #E74C3C;--arena-win-color: #27AE60;--arena-loss-color: #E74C3C;--arena-draw-color: #636E72;--arena-variant-international: #2C5F2D;--arena-variant-italian: #E74C3C;--arena-variant-english: #2563EB;--arena-variant-brazilian: #008037;--arena-medal-gold: #FFD700;--arena-medal-silver: #C0C0C0;--arena-medal-bronze: #CD7F32;--arena-max-width: 900px;--arena-detail-max-width: 700px;--arena-card-radius: 16px;--arena-overlay-z: 100}@keyframes arena-rank-slide-up{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes arena-rank-slide-down{0%{transform:translateY(-12px);opacity:0}to{transform:translateY(0);opacity:1}}.arena-animate-rank-up{animation:arena-rank-slide-up .5s ease-out}.arena-animate-rank-down{animation:arena-rank-slide-down .5s ease-out}@keyframes arena-count-up{0%{opacity:0;transform:translateY(8px) scale(.8)}60%{opacity:1;transform:translateY(-2px) scale(1.05)}to{opacity:1;transform:translateY(0) scale(1)}}.arena-animate-count{animation:arena-count-up .5s ease-out}.arena-animate-count-delay-1{animation-delay:.1s;animation-fill-mode:both}.arena-animate-count-delay-2{animation-delay:.2s;animation-fill-mode:both}.arena-animate-count-delay-3{animation-delay:.3s;animation-fill-mode:both}.arena-animate-count-delay-4{animation-delay:.4s;animation-fill-mode:both}@keyframes arena-streak-grow{0%{transform:scale(.5);opacity:0}50%{transform:scale(1.3)}to{transform:scale(1);opacity:1}}@keyframes arena-streak-shrink{0%{transform:scale(1);opacity:1}to{transform:scale(0);opacity:0}}@keyframes arena-streak-flicker{0%,to{transform:scale(1) rotate(0)}25%{transform:scale(1.05) rotate(-3deg)}50%{transform:scale(.95) rotate(2deg)}75%{transform:scale(1.08) rotate(-1deg)}}.arena-animate-streak-grow{animation:arena-streak-grow .3s ease-out}.arena-animate-streak-shrink{animation:arena-streak-shrink .3s ease-in forwards}.arena-animate-streak-active{display:inline-block;animation:arena-streak-flicker 1.5s ease-in-out infinite}@keyframes arena-match-found-pulse{0%{transform:scale(.9);opacity:0;box-shadow:0 0 #2c5f2d66}50%{transform:scale(1.02);box-shadow:0 0 0 15px #2c5f2d00}to{transform:scale(1);opacity:1;box-shadow:0 16px 48px #0000004d}}.arena-animate-match-found{animation:arena-match-found-pulse .4s cubic-bezier(.34,1.56,.64,1)}@keyframes arena-podium-enter{0%{transform:translateY(40px) scale(.8);opacity:0}60%{transform:translateY(-5px) scale(1.02)}to{transform:translateY(0) scale(1);opacity:1}}.arena-animate-podium-1st{animation:arena-podium-enter .7s cubic-bezier(.34,1.56,.64,1) .6s both}.arena-animate-podium-2nd{animation:arena-podium-enter .6s cubic-bezier(.34,1.56,.64,1) .8s both}.arena-animate-podium-3rd{animation:arena-podium-enter .6s cubic-bezier(.34,1.56,.64,1) 1s both}@keyframes arena-live-pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes arena-fade-in{0%{opacity:0}to{opacity:1}}@keyframes arena-slide-up{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}.arena-card[data-variant=international]{border-left:4px solid var(--arena-variant-international)}.arena-card[data-variant=italian]{border-left:4px solid var(--arena-variant-italian)}.arena-card[data-variant=english]{border-left:4px solid var(--arena-variant-english)}.arena-card[data-variant=brazilian]{border-left:4px solid var(--arena-variant-brazilian)}.arena-tabular-nums{font-variant-numeric:tabular-nums}@media (pointer: coarse){.arena-action-button,.arena-tab,.arena-detail-tab,.arena-games-filter,.arena-searching-pause-btn,.arena-match-start-btn,.arena-game-end-btn,.arena-game-resign-btn,.arena-boost-btn{min-height:44px}}@supports (padding-bottom: env(safe-area-inset-bottom)){.arena-bottom-action-bar{padding-bottom:max(16px,env(safe-area-inset-bottom))}.arena-game-actions{padding-bottom:env(safe-area-inset-bottom,8px)}}@media (prefers-reduced-motion: reduce){.arena-animate-rank-up,.arena-animate-rank-down,.arena-animate-count,.arena-animate-streak-grow,.arena-animate-streak-shrink,.arena-animate-streak-active,.arena-animate-match-found,.arena-animate-podium-1st,.arena-animate-podium-2nd,.arena-animate-podium-3rd,.arena-boost-btn,.arena-match-countdown-number,.arena-podium-entry,.arena-final-trophy,.arena-final-rank-value,.arena-final-hero{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{background:linear-gradient(180deg,#ffffffeb,#ffffffd1);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.6);border-radius:18px;box-shadow:0 1px #ffffffe6 inset,0 8px 24px -8px #231e141a,0 24px 48px -24px #231e142e}.legal-hero-banner{position:relative;overflow:hidden;color:var(--color-text, #1B1F20);padding:22px 26px;margin:0 auto 16px;display:flex;align-items:center;gap:16px;min-height:110px}.legal-hero-banner-icon{position:absolute;top:50%;right:22px;transform:translateY(-50%);color:var(--color-forest-deep, #1F4520);opacity:.12;pointer-events:none;line-height:1}.legal-hero-banner-content{flex:1;min-width:0}.legal-hero-banner-title{font-family:Fraunces,Georgia,serif;font-size:1.7rem;font-weight:600;margin:0 0 4px;color:var(--color-text, #1B1F20)}.legal-hero-banner-subtitle{font-size:.92rem;margin:0;color:var(--color-text-secondary, #636E72);line-height:1.4}.legal-content{padding:26px 30px;line-height:1.7;color:var(--color-text, #1B1F20)}.legal-content h2{font-family:Fraunces,Georgia,serif;font-size:1.3rem;font-weight:600;margin:1.8rem 0 .6rem;color:var(--color-text, #1B1F20)}.legal-content h2:first-child{margin-top:0}.legal-content h3{font-size:1.02rem;font-weight:700;margin:1.4rem 0 .4rem;color:var(--color-text, #1B1F20)}.legal-content p{margin:0 0 1rem;color:var(--color-text-secondary, #636E72)}.legal-content ul,.legal-content ol{margin:0 0 1rem;padding-left:1.5rem;color:var(--color-text-secondary, #636E72)}.legal-content li{margin-bottom:.4rem}.legal-content a{color:var(--color-forest-medium, #3D8B40);text-decoration:underline;font-weight:600}.legal-content a:hover{color:var(--color-forest-deep, #1F4520)}.legal-last-updated{font-size:.85rem;color:var(--color-text-muted, #8B95A0);margin:0 auto 16px;font-style:italic}@media (max-width: 480px){.legal-page{padding:18px 12px 36px}.legal-hero-banner{padding:18px 16px;min-height:96px}.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{position:relative;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;color:#1b1f20;font-size:15px;line-height:1.5;padding:40px 24px 80px;min-height:100dvh;background-color:var(--color-bg);background-image:var(--app-bg-image);background-size:var(--app-bg-size);background-position:var(--app-bg-position)}.rl-inner{position:relative;z-index:1;max-width:1080px;margin:0 auto;display:grid;gap:22px}@keyframes rlFadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.rl-inner>*{animation:rlFadeUp .7s cubic-bezier(.16,1,.3,1) both}.rl-inner>:nth-child(1){animation-delay:.04s}.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{display:flex;align-items:center;gap:10px;font-size:.82rem;color:#636e72}.rl-crumb button{font:inherit;cursor:pointer;color:#1f4520;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#ffffff80;border:1px solid rgba(0,0,0,.06);transition:all .15s ease}.rl-crumb button:hover{background:#ffffffd9;transform:translate(-2px)}.rl-crumb .rl-sep{color:#8b95a0}.rl-crumb .rl-now{font-weight:600;color:#1b1f20}@media (max-width: 760px){.rl-crumb button{min-height:var(--touch-target-min, 44px)}}.rl-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.74rem;font-weight:600;letter-spacing:1.6px;text-transform:uppercase;color:#1f4520}.rl-eyebrow:before{content:"";width:22px;height:1px;background:#1f4520;opacity:.6}.rl-card{position:relative;background:linear-gradient(180deg,#ffffffeb,#ffffffd1);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.6);border-radius:20px;box-shadow:0 1px #ffffffe6 inset,0 1px 3px #231e140f,0 8px 24px -8px #231e141a,0 24px 48px -24px #231e142e;overflow:hidden;padding:22px}.rl-hero{display:grid;gap:24px;padding:26px 32px;align-items:center}.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:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse at 0% 100%,rgba(44,95,45,.14),transparent 50%),radial-gradient(ellipse at 100% 0%,rgba(201,162,39,.14),transparent 55%);opacity:.7}.rl-hero>*{position:relative;z-index:1}.rl-hero-deco{justify-self:start}.rl-hero-king{width:130px;height:130px;border-radius:50%;position:relative;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 38% 32%,#fffdf6,#f1e5cb 58%,#d4c099);box-shadow:inset 0 -6px 14px #00000038,inset 0 5px 12px #ffffff80,0 16px 34px -12px #231e1473}.rl-hero-king:before{content:"";position:absolute;top:12px;right:12px;bottom:12px;left:12px;border-radius:50%;border:2px solid rgba(181,136,99,.4)}.rl-hero-king:after{content:"♛";font-size:3.8rem;line-height:1;color:#c9a227;text-shadow:0 2px 3px rgba(0,0,0,.25)}.rl-hero-title{font-family:Fraunces,Georgia,serif;font-size:clamp(2rem,4.2vw,3.1rem);font-weight:700;font-variation-settings:"opsz" 144,"SOFT" 50;letter-spacing:-.02em;line-height:1.04;color:#1b1f20;margin:10px 0 0;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.rl-hero-title .rl-flag{font-size:.85em;line-height:1}.rl-hero-title .rl-accent{font-style:italic;color:#2c5f2d}.rl-hero-sub{margin-top:10px;max-width:60ch;color:#636e72;font-size:1rem}.rl-hero-sub b{font-weight:600;color:#2c5f2d}.rl-hero-sub i{font-style:italic;color:#1b1f20}.rl-hero-chip{justify-self:end;display:flex;align-items:center;gap:14px;padding:14px 22px;border-radius:16px;min-width:150px;background:linear-gradient(135deg,#c9a22729,#c9a2270a);border:1px solid rgba(201,162,39,.3)}.rl-hero-chip .rl-chip-ico{width:42px;height:42px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:50%;background:linear-gradient(180deg,#c9a227,#8b6f0f);color:#fff;box-shadow:0 3px 10px #c9a22773}.rl-hero-chip .rl-chip-ico svg{width:22px;height:22px}.rl-hero-chip .rl-chip-txt{display:flex;flex-direction:column}.rl-hero-chip .rl-chip-v{font-family:JetBrains Mono,monospace;font-size:1.6rem;font-weight:700;color:#1b1f20;line-height:1}.rl-hero-chip .rl-chip-l{margin-top:5px;font-size:.6rem;letter-spacing:1.4px;text-transform:uppercase;color:#8b6f0f;font-weight:600}@media (max-width: 820px){.rl-hero.rl-hero-3,.rl-hero.rl-hero-2{grid-template-columns:1fr;text-align:center;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 (max-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{font-size:1.6rem;margin-top:0;gap:10px}.rl-hero-sub{font-size:.92rem;max-width:100%;margin-top:8px}}.rl-cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:4px}.rl-cta{flex:1;min-width:200px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font:inherit;font-weight:700;font-size:1rem;cursor:pointer;padding:15px 24px;border-radius:14px;border:none;color:#fff;transition:transform .18s ease,box-shadow .18s ease}.rl-cta svg{width:18px;height:18px}.rl-cta:hover{transform:translateY(-2px)}.rl-cta-online{background:linear-gradient(180deg,#3d8b40,#2c5f2d);box-shadow:0 6px 18px #2c5f2d47}.rl-cta-online:hover{box-shadow:0 10px 24px #2c5f2d57}.rl-cta-ai{background:linear-gradient(180deg,#c9a227,#8b6f0f);box-shadow:0 6px 18px #c9a22747}.rl-cta-ai:hover{box-shadow:0 10px 24px #c9a22757}@media (max-width: 820px){.rl-cta{flex-basis:100%}}.rl-row2{display:grid;grid-template-columns:1.1fr .9fr;gap:22px}@media (max-width: 760px){.rl-row2{grid-template-columns:1fr}}.rl-board-card{display:flex;flex-direction:column;gap:14px;align-items:center}.rl-board-card .rl-head{align-self:flex-start}.rl-board-wrap{display:flex;justify-content:center;width:100%}.rl-board-svg{width:100%;max-width:360px;height:auto;border-radius:16px;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:.5}.rules-piece-black{fill:var(--rules-piece-black, #2A2A2A);stroke:#111;stroke-width:.5}.rules-piece-king-mark{fill:#c9a227}.rl-glance .rl-rows{display:grid;gap:12px;margin-top:14px}.rl-stat{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:12px;background:#ffffffa6;border:1px solid rgba(0,0,0,.06)}.rl-stat .rl-lbl{display:flex;align-items:center;gap:10px;color:#636e72;font-weight:600;font-size:.9rem}.rl-stat .rl-lbl svg{width:18px;height:18px;color:#3d8b40;flex:none}.rl-stat .rl-val{font-family:Fraunces,Georgia,serif;font-weight:600;font-size:1.4rem;color:#2c5f2d}.rl-section-head{font-family:Fraunces,Georgia,serif;font-weight:600;font-size:1.5rem;margin:6px 0 16px;letter-spacing:-.01em}.rl-section-head em{font-style:italic;color:#2c5f2d}.rl-section-head .rl-count{color:#8b95a0;font-weight:500;font-size:.85em;font-family:JetBrains Mono,monospace}.rl-theme-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}.rl-theme{padding:20px}.rl-theme .rl-t-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.rl-theme .rl-t-ico{width:38px;height:38px;border-radius:11px;flex:none;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#3d8b40,#2c5f2d);color:#fff}.rl-theme .rl-t-ico svg{width:20px;height:20px}.rl-theme .rl-t-name{font-weight:700;font-size:1.02rem}.rl-theme ul{list-style:none;display:grid;gap:9px;padding:0;margin:0}.rl-theme li{position:relative;padding-left:20px;color:#1b1f20;line-height:1.45;font-size:.94rem}.rl-theme li:before{content:"";position:absolute;left:2px;top:8px;width:7px;height:7px;border-radius:50%;background:#a8d5a2;box-shadow:0 0 0 2px #a8d5a24d}.rl-var-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:12px}.rl-var{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:14px;background:#ffffffb3;border:1px solid rgba(0,0,0,.08);cursor:pointer;transition:.18s;text-align:left;font:inherit;color:inherit}.rl-var:hover{border-color:#3d8b40;transform:translateY(-2px);background:#ffffffeb;box-shadow:0 10px 22px -12px #3c281973}.rl-var .rl-vflag{font-size:1.7rem;line-height:1;flex:none}.rl-var .rl-vname{font-weight:700;font-size:.95rem}.rl-var .rl-vmeta{font-size:.76rem;color:#636e72;font-weight:500;font-family:JetBrains Mono,monospace}.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-width);background-color:var(--sidebar-bg);display:flex;flex-direction:column;z-index:100;box-shadow:var(--shadow-lg)}@media (min-width: 769px){.sidebar.sidebar-horizontal{top:0;left:50%;transform:translate(-50%);right:auto;bottom:auto;width:calc(100% - 48px);max-width:1200px;height:var(--top-sidebar-height, 64px);flex-direction:row;align-items:stretch;box-shadow:0 1px 3px #00000014;margin-top:18px;border-radius:18px}.sidebar.sidebar-horizontal .sidebar-nav{flex-direction:row;padding:0 12px;align-items:stretch}.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{font-size:.8rem;text-transform:none;letter-spacing:0}.sidebar.sidebar-horizontal .sidebar-lang{flex-direction:row;gap:8px;min-height:auto;padding:0 14px}}.sidebar-nav{flex:1;display:flex;flex-direction:column;padding:0}.sidebar-nav-item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-md) var(--spacing-sm);background:none;border:none;color:var(--sidebar-text);cursor:pointer;transition:background-color .2s;gap:var(--spacing-xs);min-height:70px}.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{font-size:.65rem;text-transform:uppercase;letter-spacing:.5px;text-align:center}.sidebar-lock{position:absolute;top:var(--spacing-xs);right:var(--spacing-xs);font-size:.6rem}.sidebar-footer{padding:var(--spacing-md);border-top:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:var(--spacing-sm)}.sidebar-login-nav{background:var(--color-forest)!important;color:#fff!important;margin:var(--spacing-xs) var(--spacing-xs) 0;border-radius:var(--radius-sm)}.sidebar-login-nav:hover{background:var(--color-forest-light)!important}.sidebar-lang{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-md) var(--spacing-sm);min-height:70px;color:var(--sidebar-text);cursor:pointer;transition:background-color .2s}.sidebar-lang:hover,.sidebar-lang:focus-within{background-color:var(--sidebar-hover)}.sidebar-lang-icon{display:inline-flex;align-items:center;line-height:1}.sidebar-lang-select{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;padding:0;border:none;background:transparent;opacity:0;font-family:inherit;cursor:pointer}.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{background:#e74c3c4d!important;opacity:1}.sidebar-logout-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-sm);background:none;border:none;color:var(--sidebar-text);cursor:pointer;transition:background-color .2s;gap:var(--spacing-xs);border-radius:var(--radius-sm)}.sidebar-logout-btn:hover{background-color:#e74c3c4d}.sidebar-logout-btn .sidebar-nav-icon{font-size:1.2rem}.sidebar-logout-btn .sidebar-nav-label{font-size:.6rem;text-transform:uppercase}.sidebar-language{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}.sidebar-lang-btn{background:none;border:1px solid transparent;border-radius:var(--radius-sm);padding:4px;font-size:.9rem;cursor:pointer;transition:all .2s;opacity:.7}.sidebar-lang-btn:hover{opacity:1;background-color:var(--sidebar-hover)}.sidebar-lang-btn.active{opacity:1;border-color:#ffffff4d;background-color:var(--sidebar-active)}@media (max-width: 768px){.sidebar{top:auto;bottom:0;left:0;right:0;width:100%;height:var(--bottom-nav-height, 64px);flex-direction:row;border-top:1px solid rgba(255,255,255,.1);box-shadow:0 -2px 10px #0003}.sidebar-nav{flex:1;flex-direction:row;justify-content:space-around;align-items:center;padding:0}.sidebar-nav-item{flex:1;min-height:48px;padding:8px 4px;border-left:none}.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{top:2px;right:2px;font-size:.5rem}.sidebar-login-nav,.sidebar-logout-nav{margin:0;border-radius:0}.sidebar-footer{display:none}.sidebar-lang{flex:1;min-height:48px;padding:8px 4px;gap:var(--spacing-xs)}.sidebar-lang-icon{display:inline-flex}}.layout{min-height:100vh;background-color:var(--color-bg)}.layout.with-sidebar{padding-left:var(--sidebar-width)}@media (min-width: 769px){.layout.with-top-sidebar{padding-top:100px}}@media (max-width: 768px){.layout.with-top-sidebar{padding-bottom:var(--bottom-nav-height, 64px)}}.layout-content{min-height:100vh;display:flex;flex-direction:column}@media (max-width: 768px){.layout.with-sidebar{padding-left:0;padding-bottom:var(--bottom-nav-height, 64px)}}.home-footer{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:16px;color:var(--color-text-muted);font-size:.8rem}.home-footer button{background:none;border:none;color:var(--color-text-secondary);font-size:.8rem;cursor:pointer;padding:4px 2px;transition:color .2s}.home-footer button:hover{color:var(--color-text)}.home-footer span{color:var(--color-text-muted);opacity:.5}.update-prompt-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:3000;padding:var(--spacing-md)}.update-prompt{width:100%;max-width:360px;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:16px;padding:var(--spacing-xl) var(--spacing-lg) var(--spacing-lg);text-align:center;box-shadow:0 12px 40px #00000059}.update-prompt-icon{font-size:2.25rem;line-height:1;margin-bottom:var(--spacing-sm)}.update-prompt-title{margin:0 0 var(--spacing-sm);font-size:1.3rem;font-weight:700}.update-prompt-message{margin:0 0 var(--spacing-lg);color:var(--color-text-secondary);font-size:.95rem;line-height:1.5}.update-prompt-actions{display:flex;flex-direction:column;gap:var(--spacing-sm)}.update-prompt-update,.update-prompt-later{width:100%;min-height:var(--touch-target-min);border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:filter .15s,background-color .15s}.update-prompt-update{border:none;background:var(--color-primary);color:#fff}.update-prompt-update:hover{filter:brightness(1.08)}.update-prompt-later{border:1px solid var(--color-border);background:transparent;color:var(--color-text-secondary)}.update-prompt-later:hover{background:#0000000a}.cookie-banner{position:fixed;bottom:0;left:var(--sidebar-width);right:0;background-color:var(--color-surface);border-top:2px solid var(--color-primary);box-shadow:0 -4px 20px #00000026;z-index:9999;padding:var(--spacing-md) var(--spacing-lg)}.cookie-banner-content{max-width:900px;margin:0 auto;display:flex;align-items:center;gap:var(--spacing-lg)}.cookie-banner-text{flex:1;margin:0;font-size:.9rem;color:var(--color-text);line-height:1.4}.cookie-banner-actions{display:flex;gap:var(--spacing-sm);flex-shrink:0}.cookie-btn{padding:8px 16px;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;border:none;white-space:nowrap}.cookie-btn-accept{background-color:var(--color-primary);color:#fff}.cookie-btn-accept:hover{background-color:var(--color-primary-hover)}.cookie-btn-reject{background-color:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.cookie-btn-reject:hover{background-color:var(--color-bg)}@media (max-width: 600px){.cookie-banner{left:0}.cookie-banner-content{flex-direction:column;text-align:center}.cookie-banner-actions{width:100%;justify-content:center}.cookie-btn{min-height:44px;padding:10px 20px}}.animated-showcase-board{position:relative;display:flex;flex-direction:column;align-items:center}.showcase-board-svg{width:80vw;max-width:700px;min-width:280px;height:auto;aspect-ratio:1;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);overflow:hidden;border:3px solid var(--color-brown-dark)}.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:3;animation:pulseHighlight .3s ease-out}.capture-highlight.fade-out{animation:fadeOut .4s ease-out forwards}@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:captureEffect .5s ease-out forwards}@keyframes captureEffect{0%{opacity:1;transform:scale(1)}30%{opacity:1;transform:scale(1.3)}to{opacity:0;transform:scale(0)}}.capture-flash{animation:flashSquare .4s ease-out}@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);font-size:1rem;font-weight:500;color:var(--color-text-secondary);text-align:center}@media (max-width: 900px){.showcase-board-svg{max-width:500px}}@media (max-width: 768px){.showcase-board-svg{max-width:400px}.showcase-variant-label{font-size:.9rem}}@media (max-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{position:relative;z-index:1;padding:clamp(64px,9vw,104px) 40px}.features-container{max-width:1040px;margin:0 auto;text-align:center}.section-label{display:inline-block;font-family:var(--font-body);font-size:.74rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--color-gold);margin-bottom:14px}.section-title{font-family:var(--font-display);font-optical-sizing:auto;font-size:clamp(2rem,4.4vw,3rem);font-weight:600;color:var(--color-forest-dark);margin:0 0 14px;line-height:1.18;padding-bottom:.08em;letter-spacing:-.02em;background:linear-gradient(135deg,var(--color-forest-dark) 0%,var(--color-emerald) 55%,var(--color-forest-dark) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.section-subtitle{font-size:1.06rem;color:var(--color-text-secondary);max-width:580px;margin:0 auto 52px;line-height:1.6;font-weight:400}.features-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:22px}.feature-card{flex:1 1 260px;max-width:300px;position:relative;overflow:hidden;background:linear-gradient(180deg,#ffffffeb,#ffffffd1);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1.5px solid rgba(255,255,255,.65);border-radius:20px;padding:34px 26px;text-align:center;box-shadow:0 1px #ffffffe6 inset,0 2px 4px #231e140a,0 14px 34px -16px #231e142e;transition:transform .4s var(--ease-smooth),box-shadow .4s var(--ease-smooth),border-color .3s ease;animation:feature-rise .6s var(--ease-smooth) both}.feature-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-forest-dark),var(--color-gold));transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease-smooth)}.feature-card:nth-child(1){animation-delay:.05s}.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{transform:translateY(-6px);border-color:#c9a22766;box-shadow:0 1px #ffffffe6 inset,0 20px 48px -18px #231e144d}.feature-card:hover:before{transform:scaleX(1)}.feature-icon-box{width:58px;height:58px;border-radius:15px;background:linear-gradient(135deg,#2c5f2d1a,#10b98112);color:var(--color-forest-dark);display:flex;align-items:center;justify-content:center;margin:0 auto 18px;box-shadow:inset 0 1px 2px #fff9,0 4px 12px #2c5f2d14}.feature-title{font-family:var(--font-display);font-size:1.22rem;font-weight:600;letter-spacing:-.01em;color:var(--color-forest-dark);margin:0 0 8px}.feature-desc{font-size:.92rem;color:var(--color-text-secondary);line-height:1.6;margin:0}@media (max-width: 900px){.features-section{padding:64px 24px}}@media (max-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{position:relative;z-index:1;padding:clamp(64px,9vw,104px) 40px;background:#ffffff6b;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-top:1px solid rgba(93,64,55,.1);border-bottom:1px solid rgba(93,64,55,.1)}.how-container{max-width:960px;margin:0 auto;text-align:center}.how-steps{display:flex;align-items:flex-start;justify-content:center;gap:24px;margin-top:52px}.how-step{position:relative;flex:1;max-width:280px;padding:0 16px;display:flex;flex-direction:column;align-items:center;text-align:center}.step-circle{width:64px;height:64px;border-radius:50%;background:linear-gradient(180deg,#fffffff2,#f5f0e6d9);border:1.5px solid rgba(201,162,39,.45);color:var(--color-gold);font-family:var(--font-display);font-style:italic;font-size:1.9rem;font-weight:500;display:flex;align-items:center;justify-content:center;margin-bottom:22px;flex-shrink:0;position:relative;z-index:2;box-shadow:inset 0 1px 2px #fffc,0 8px 20px -8px #c9a22766}.step-connector{position:absolute;top:31px;left:calc(50% + 42px);width:calc(100% - 24px);height:0;border-top:2px dashed rgba(181,136,99,.5);z-index:1}.step-title{font-family:var(--font-display);font-size:1.28rem;font-weight:600;letter-spacing:-.01em;color:var(--color-forest-dark);margin:0 0 8px}.step-desc{font-size:.94rem;color:var(--color-text-secondary);line-height:1.6;margin:0}@media (max-width: 768px){.how-section{padding:64px 24px}.how-steps{flex-direction:column;gap:36px;align-items:center}.how-step{max-width:420px}.step-connector{display:none}}@media (max-width: 480px){.how-section{padding:52px 18px}}.lp-section{position:relative;z-index:1;padding:clamp(64px,9vw,104px) 40px}.lp-container{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:minmax(280px,.9fr) 1fr;gap:clamp(36px,6vw,80px);align-items:center}.lp-visual{display:flex;flex-direction:column;align-items:center;gap:16px}.lp-board-frame{position:relative;padding:14px;border-radius:18px;background:linear-gradient(145deg,#6b4a3c,var(--color-brown-dark));box-shadow:0 1px #ffffff1f inset,0 28px 56px -22px #2c281e8c;cursor:pointer;-webkit-tap-highlight-color:transparent}.lp-board{display:block;width:320px;max-width:100%;height:auto;border-radius:9px;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.5}.lp-board .piece-black{fill:#1c2117;stroke:#5a5a5a;stroke-width:1.5}.lp-board .piece-king-mark{fill:var(--color-gold-light);stroke:#8a6d1a;stroke-width:1}.lp-board-caption{font-family:var(--font-body);font-size:.82rem;font-weight:600;letter-spacing:.04em;color:var(--color-text-secondary)}.lp-info{text-align:left}.lp-info .section-label{display:inline-flex;align-items:center;gap:7px}.lp-info .section-title{text-align:left;margin-bottom:16px}.lp-desc{font-size:1.04rem;color:var(--color-text-secondary);line-height:1.6;margin:0 0 28px;max-width:42ch}.lp-cta{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:var(--touch-target-min);padding:0 30px;font-family:var(--font-body);font-size:1.05rem;font-weight:700;color:#fff;border:none;border-radius:13px;cursor:pointer;background:linear-gradient(135deg,var(--color-forest-dark),var(--color-forest-medium));box-shadow:0 1px #ffffff2e inset,0 8px 22px #2c5f2d47;transition:transform .3s var(--ease-smooth),box-shadow .3s var(--ease-smooth)}.lp-cta:hover{transform:translateY(-3px);box-shadow:0 1px #ffffff2e inset,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:0 1px #ffffff2e inset,0 8px 22px #2c5f2d47}15%,45%{transform:translateY(-3px) scale(1.05);box-shadow:0 1px #ffffff2e inset,0 0 0 6px #2c5f2d38,0 16px 36px #2c5f2d6b}30%,60%,to{transform:none;box-shadow:0 1px #ffffff2e inset,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:0 1px #ffffff2e inset,0 0 0 4px #2c5f2d52,0 8px 22px #2c5f2d47}}.lp-solved{display:inline-flex;align-items:center;gap:9px;font-size:1.02rem;font-weight:700;color:var(--color-forest-medium)}@media (max-width: 768px){.lp-section{padding:64px 24px}.lp-container{grid-template-columns:1fr;gap:36px;text-align:center}.lp-info,.lp-info .section-title,.lp-desc{text-align:center}.lp-desc{margin-left:auto;margin-right:auto}}@media (max-width: 480px){.lp-section{padding:52px 18px}.lp-board{width:260px}.lp-cta{width:100%}}.variants-section{position:relative;z-index:1;padding:clamp(72px,10vw,116px) 40px;overflow:hidden;background:radial-gradient(circle at 18% 24%,rgba(16,185,129,.1),transparent 46%),radial-gradient(circle at 84% 78%,rgba(201,162,39,.1),transparent 46%),linear-gradient(135deg,var(--color-forest-dark) 0%,var(--color-forest-deep) 100%);color:#fff}.variants-section:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.05;background-image:linear-gradient(45deg,#fff 25%,transparent 25%),linear-gradient(-45deg,#fff 25%,transparent 25%);background-size:56px 56px;background-position:0 0,28px 28px}.variants-container{position:relative;z-index:1;max-width:1180px;margin:0 auto;text-align:center}.variants-section .section-label{color:var(--color-gold-light)}.variants-section .section-title{background:none;-webkit-text-fill-color:#fff;color:#fff}.variants-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:52px}.variant-card{display:block;text-decoration:none;color:inherit;cursor:pointer;background:linear-gradient(180deg,#ffffff1c,#ffffff0a);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1.5px solid rgba(255,255,255,.16);border-radius:18px;overflow:hidden;text-align:left;transition:transform .4s var(--ease-smooth),box-shadow .4s var(--ease-smooth),border-color .3s ease}.variant-card:hover{transform:translateY(-6px);border-color:#ffffff52;box-shadow:0 24px 52px -20px #00000073}.variant-card:focus-visible{outline:2px solid var(--color-gold-light);outline-offset:3px}.variant-preview{display:flex;align-items:center;justify-content:center;padding:30px;border-bottom:1px solid rgba(255,255,255,.12)}.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{display:grid;border-radius:7px;overflow:hidden;box-shadow:0 6px 18px #00000059}.mini-board-10{grid-template-columns:repeat(10,20px);grid-template-rows:repeat(10,20px)}.mini-board-8{grid-template-columns:repeat(8,24px);grid-template-rows:repeat(8,24px)}.mini-cell{display:flex;align-items:center;justify-content:center}.mini-cell.light{background:var(--mini-light, var(--color-beige-warm))}.mini-cell.dark{background:var(--mini-dark, var(--color-brown-medium))}.mini-piece{width:60%;height:60%;border-radius:50%}.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{display:inline-block;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 11px;border-radius:7px;margin-bottom:12px;background:#ffffff24;color:#fff}.variant-badge-intl{background:#10b98140;color:#d6fff0}.variant-badge-ita{background:#f0cc5538;color:#ffeeb8}.variant-badge-eng{background:#60a5e638;color:#d6e9ff}.variant-badge-bra{background:#ffcc2933;color:#fff3cc}.variant-name{font-family:var(--font-display);font-size:1.34rem;font-weight:600;letter-spacing:-.01em;color:#fff;margin:0 0 8px}.variant-desc{font-size:.9rem;color:#ffffffb8;line-height:1.6;margin:0 0 16px}.variant-specs{display:flex;flex-wrap:wrap;gap:8px}.spec-pill{display:inline-flex;align-items:center;gap:5px;font-size:.74rem;font-weight:600;color:#ffffffd1;background:#ffffff1a;border:1px solid rgba(255,255,255,.12);padding:5px 11px;border-radius:20px;white-space:nowrap}.variants-more-title{font-family:var(--font-display);font-size:1.2rem;font-weight:600;color:#ffffffeb;text-align:center;margin:56px 0 22px}.variants-all-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.variant-chip{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:8px 15px;font-family:var(--font-body);font-size:.85rem;font-weight:600;color:#ffffffe6;background:#ffffff14;border:1px solid rgba(255,255,255,.16);border-radius:20px;white-space:nowrap;cursor:pointer;transition:background .18s,border-color .18s,transform .18s,color .18s}.variant-chip:hover{background:#ffffff29;border-color:var(--color-gold-light);color:#fff;transform:translateY(-2px)}@media (max-width: 960px){.variants-grid{grid-template-columns:1fr}}@media (max-width: 768px){.variants-section{padding:64px 24px}}@media (max-width: 480px){.variants-section{padding:56px 18px}.mini-board-10{grid-template-columns:repeat(10,16px);grid-template-rows:repeat(10,16px)}.mini-board-8{grid-template-columns:repeat(8,20px);grid-template-rows:repeat(8,20px)}.variant-info{padding:22px}}.cta-banner{position:relative;z-index:1;padding:clamp(56px,8vw,96px) 40px}.cta-card{position:relative;overflow:hidden;max-width:1080px;margin:0 auto;padding:clamp(44px,6vw,76px) 40px;border-radius:28px;text-align:center;background:radial-gradient(circle at 80% 18%,rgba(16,185,129,.18),transparent 48%),linear-gradient(135deg,var(--color-forest-dark) 0%,var(--color-forest-deep) 72%);box-shadow:0 1px #ffffff14 inset,0 30px 70px -30px #1f4520b3}.cta-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.08;pointer-events:none;background-image:linear-gradient(45deg,#fff 25%,transparent 25%),linear-gradient(-45deg,#fff 25%,transparent 25%);background-size:54px 54px;background-position:0 0,27px 27px}.cta-content{position:relative;z-index:1;max-width:620px;margin:0 auto}.cta-title{font-family:var(--font-display);font-optical-sizing:auto;font-size:clamp(2rem,4.4vw,3.1rem);font-weight:600;letter-spacing:-.02em;line-height:1.06;color:#fff;margin:0 0 14px}.cta-subtitle{font-size:1.1rem;color:#ffffffd1;margin:0 auto 32px;max-width:46ch;line-height:1.6}.cta-button{display:inline-flex;align-items:center;justify-content:center;min-height:var(--touch-target-min);padding:17px 42px;border:none;border-radius:13px;font-family:var(--font-body);font-size:1.15rem;font-weight:700;letter-spacing:.2px;color:#2a2410;cursor:pointer;background:linear-gradient(135deg,var(--color-gold-light),var(--color-gold));box-shadow:0 1px #ffffff4d inset,0 10px 26px #0000004d;transition:transform .3s var(--ease-smooth),box-shadow .3s var(--ease-smooth)}.cta-button:hover{transform:translateY(-3px);box-shadow:0 1px #ffffff4d inset,0 16px 34px #0006}@media (max-width: 768px){.cta-banner{padding:56px 24px}}@media (max-width: 480px){.cta-banner{padding:48px 18px}.cta-card{padding:40px 22px;border-radius:22px}.cta-subtitle{font-size:1rem}.cta-button{width:100%;padding:15px 32px;font-size:1.05rem}}.daily-puzzle-card .dash-panel-header h3{display:flex;align-items:center;gap:var(--spacing-sm)}.daily-puzzle-solve-btn{padding:3px 10px;border-radius:4px;border:none;background:var(--color-primary, #22c55e);color:#fff;font-size:.7rem;font-weight:600;cursor:pointer;transition:opacity .15s;line-height:1;letter-spacing:.02em;text-transform:uppercase}.daily-puzzle-solve-btn:hover{opacity:.9}.daily-puzzle-solved-badge{font-size:.8rem;font-weight:600;color:var(--color-primary, #22c55e)}.daily-puzzle-body{display:flex;justify-content:center;align-items:center}.daily-puzzle-board{width:180px;height:180px;flex-shrink:0;border:2px solid var(--color-border);border-radius:var(--radius-sm)}.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.5}.daily-puzzle-board .piece-black{fill:#1a1a1a;stroke:#5a5a5a;stroke-width:1.5}.daily-puzzle-board .piece-king-mark{fill:#d4af37;stroke:#8a6d1a;stroke-width:1}.daily-puzzle-info{flex:1;display:flex;flex-direction:column;gap:var(--spacing-xs)}.daily-puzzle-side{font-weight:600;color:var(--color-text-primary);font-size:.95rem}.daily-puzzle-desc{color:var(--color-text-secondary);font-size:.85rem;line-height:1.4}.daily-puzzle-id{margin-top:auto;font-size:.75rem;color:var(--color-text-secondary);opacity:.6}@media (max-width: 600px){.daily-puzzle-body{flex-direction:column;align-items:stretch}.daily-puzzle-board{width:100%;height:auto;max-width:240px;margin:0 auto}}.dashboard{position:relative;max-width:1000px;margin:0 auto;padding:32px 24px 60px}.dash-hero{display:flex;align-items:center;gap:40px;margin-bottom:32px}.dash-hero-content{flex:1;display:flex;flex-direction:column;gap:8px}.dash-welcome{font-size:.9rem;color:var(--color-text-secondary);font-weight:500}.dash-username{font-family:Georgia,Times New Roman,serif;font-size:2.4rem;font-weight:700;color:var(--color-forest-dark);margin:0;line-height:1.1}.dash-cta-row{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}.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{display:flex;justify-content:flex-end;margin-bottom:12px}.dash-variant-toggle{display:flex;gap:4px;background:var(--color-bg);border-radius:8px;padding:3px}.dash-variant-btn{padding:6px 14px;border:none;border-radius:6px;background:transparent;color:var(--color-text-secondary);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s}.dash-variant-btn.active{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 4px #00000014}.dash-rating-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}.dash-rating-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:20px 16px;text-align:center}.dash-rating-header{display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:8px}.dash-rating-icon{font-size:1rem}.dash-rating-label{font-size:.8rem;color:var(--color-text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.dash-rating-value{font-size:1.8rem;font-weight:800;color:var(--color-text);line-height:1}.dash-panels{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.dash-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;overflow:hidden}.dash-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border)}.dash-panel-header h3{font-size:.95rem;font-weight:700;color:var(--color-text);margin:0}.dash-link{background:none;border:none;color:var(--color-forest-medium);font-size:.8rem;font-weight:600;cursor:pointer;padding:0;transition:color .15s}.dash-link:hover{color:var(--color-forest-dark)}.dash-panel-body{padding:8px 0}.dash-empty{padding:24px 20px;text-align:center;color:var(--color-text-muted);font-size:.88rem;margin:0}.dash-game-row{display:flex;align-items:center;gap:12px;padding:10px 20px;transition:background .1s}.dash-game-row:hover{background:#00000005}.dash-result-badge{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#fff;flex-shrink:0}.dash-result-win{background:#4caf50}.dash-result-loss{background:#e53935}.dash-result-draw{background:#9e9e9e}.dash-game-info{display:flex;flex-direction:column;gap:2px;min-width:0}.dash-game-opponent{font-size:.88rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-game-meta{font-size:.75rem;color:var(--color-text-muted)}.dash-event-row{display:flex;align-items:center;gap:12px;padding:10px 20px;cursor:pointer;transition:background .1s}.dash-event-row:hover{background:#00000005}.dash-event-icon{font-size:1.2rem;flex-shrink:0}.dash-event-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.dash-event-name{font-size:.88rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-event-meta{font-size:.75rem;color:var(--color-text-muted)}.dash-live-badge{font-size:.65rem;font-weight:700;color:#fff;background:#e53935;padding:3px 8px;border-radius:4px;letter-spacing:.5px;flex-shrink:0}.dash-join-btn{font-size:.75rem;font-weight:600;color:var(--color-forest-medium);padding:4px 12px;border:1px solid var(--color-forest-medium);border-radius:6px;flex-shrink:0}.dash-arena-panel{padding:16px 20px;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm)}.dash-arena-desc{margin:0;color:var(--color-text-secondary);font-size:.85rem;text-align:center}.dash-create-arena-btn{font-size:.85rem!important;padding:8px 20px!important;display:inline-flex!important;align-items:center;gap:6px;width:auto!important}@media (max-width: 900px){.dash-hero{flex-direction:column;text-align:center;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 (max-width: 768px){.dashboard{padding:24px 16px 48px}.dash-rating-cards{grid-template-columns:repeat(2,1fr)}.dash-panels{grid-template-columns:1fr}}@media (max-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 (max-width: 360px){.dashboard{padding:16px 12px 40px}.dash-hero-board{max-width:180px}}.dash .modal-overlay,.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9000;padding:16px}.dash .modal,.modal.dashboard-modal,.dashboard-modal{background:linear-gradient(180deg,#fffffff7,#ffffffeb);border-radius:20px;padding:28px;width:100%;max-width:420px;box-shadow:0 2px #ffffffe6 inset,0 4px 14px #231e141a,0 24px 60px -12px #231e1438;border:1px solid rgba(255,255,255,.7);display:flex;flex-direction:column;gap:20px;max-height:90vh;overflow-y:auto}.dash .modal-section.variant-scroll,.dashboard-modal .modal-section.variant-scroll{max-height:38vh;overflow-y:auto}.dash .modal h2,.dashboard-modal h2{font-family:Fraunces,Georgia,serif;font-size:1.4rem;font-weight:600;letter-spacing:-.01em;color:var(--color-text);margin:0}.dash .modal-field,.dashboard-modal .modal-field{display:flex;flex-direction:column;gap:9px}.dash .modal-label,.dashboard-modal .modal-label{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.dash .modal-section,.dashboard-modal .modal-section{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.dash .modal-section button,.dashboard-modal .modal-section button{display:flex;align-items:center;justify-content:center;text-align:center;min-height:44px;padding:8px 12px;font-size:.88rem;font-weight:600;border-radius:10px;border:1px solid rgba(0,0,0,.1);background:#0000000a;color:var(--color-text);cursor:pointer;font-family:inherit;transition:all .15s ease}.dash .modal-section button:hover,.dashboard-modal .modal-section button:hover{background:#00000014}.dash .modal-section button.selected,.dashboard-modal .modal-section .selected{background:linear-gradient(135deg,var(--color-forest-medium),var(--color-forest-dark));color:#fff;border-color:transparent;box-shadow:0 2px 8px #2c5f2d47}.dash .modal-actions,.dashboard-modal .modal-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:4px;border-top:1px solid rgba(0,0,0,.07)}.dash .modal-actions button,.dashboard-modal .modal-actions button{padding:10px 20px;font-size:.9rem;font-weight:600;border-radius:11px;border:1px solid rgba(0,0,0,.1);background:#0000000a;color:var(--color-text);cursor:pointer;font-family:inherit;transition:all .15s ease}.dash .modal-actions button:hover,.dashboard-modal .modal-actions button:hover{background:#00000014}.dash .modal-actions button.primary,.dashboard-modal .modal-actions button.primary{background:linear-gradient(135deg,var(--color-forest-medium),var(--color-forest-dark));color:#fff;border-color:transparent;box-shadow:0 2px 8px #2c5f2d47}.dash .modal-actions button.primary:hover,.dashboard-modal .modal-actions button.primary:hover{filter:brightness(1.06)}.play-online-modal .play-online-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.play-online-modal .play-online-close{display:none;width:40px;height:40px;align-items:center;justify-content:center;border:none;border-radius:12px;background:#0000000d;color:var(--color-text-muted);cursor:pointer}.play-online-modal .play-online-close:hover{background:#00000017}.play-online-modal .play-online-body{display:flex;flex-direction:column;gap:20px}.play-online-modal .variant-popular{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.play-online-modal .variant-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:54px;padding:8px 12px;border-radius:12px;border:1px solid rgba(0,0,0,.1);background:#0000000a;color:var(--color-text);cursor:pointer;font-family:inherit;transition:all .15s ease}.play-online-modal .variant-card:hover{background:#00000014}.play-online-modal .variant-card.selected{background:linear-gradient(135deg,var(--color-forest-medium),var(--color-forest-dark));color:#fff;border-color:transparent;box-shadow:0 2px 8px #2c5f2d47}.play-online-modal .variant-card-name{font-size:.92rem;font-weight:600}.play-online-modal .variant-more-toggle{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:46px;margin-top:12px;padding:10px 12px;border:1px dashed rgba(0,0,0,.16);border-radius:12px;background:transparent;color:var(--color-forest-dark);font-family:inherit;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s ease}.play-online-modal .variant-more-toggle:hover{background:#00000008}.play-online-modal .variant-more-chevron{transition:transform .2s ease}.play-online-modal .variant-more-toggle.open .variant-more-chevron{transform:rotate(180deg)}.play-online-modal .variant-others{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:12px}.play-online-modal .variant-others button{display:flex;align-items:center;justify-content:center;text-align:center;min-height:44px;padding:8px 12px;font-size:.88rem;font-weight:600;border-radius:10px;border:1px solid rgba(0,0,0,.1);background:#0000000a;color:var(--color-text);cursor:pointer;font-family:inherit;transition:all .15s ease}.play-online-modal .variant-others button:hover{background:#00000014}.play-online-modal .variant-others button.selected{background:linear-gradient(135deg,var(--color-forest-medium),var(--color-forest-dark));color:#fff;border-color:transparent;box-shadow:0 2px 8px #2c5f2d47}@media (max-width: 767px){.modal-overlay:has(.play-online-modal){padding:0}body:has(.play-online-modal) .sidebar{display:none}.dashboard-modal.play-online-modal{width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;border:none;border-radius:0;box-shadow:none;padding:0;gap:0}.play-online-modal .play-online-head{position:sticky;top:0;z-index:2;padding:16px 18px 14px;background:var(--color-bg, #fff);border-bottom:1px solid rgba(0,0,0,.08)}.play-online-modal .play-online-close{display:flex}.play-online-modal .play-online-body{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:18px}.play-online-modal .modal-actions{position:sticky;bottom:0;z-index:2;margin-top:auto;padding:14px 18px calc(14px + env(safe-area-inset-bottom));background:var(--color-bg, #fff);border-top:1px solid rgba(0,0,0,.08);box-shadow:0 -6px 18px -10px #00000026}}@media (max-width: 1023px){.dash{padding:18px}.dash .hero{grid-template-columns:1fr;flex-direction:column}.dash .bento{grid-template-columns:1fr 1fr;gap:14px}.dash .bento .daily-card.is-complete{order:1}.dash .lower-row{grid-template-columns:1fr;gap:14px}}@media (max-width: 767px){.dash-bg-wrap{padding-top:10px}.dash{padding:12px;gap:12px}.dash .hero{min-height:0}.dash .hero-content{padding:18px}.dash .hero-name{font-size:1.8rem}.dash .hero-rating-num{font-size:2.6rem}.dash .hero-ctas{flex-direction:column;gap:8px}.dash .cta{width:100%;min-height:44px;justify-content:center}.dash .variant-tag{width:100%;text-align:center;min-height:44px}.dash .hero-spark{display:none}.dash .bento{grid-template-columns:1fr}.dash .bento .daily-card.is-complete{order:1}.dash .streak-card,.dash .daily-card{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"icon eyebrow" "icon body";align-items:center;column-gap:16px;row-gap:2px;padding:16px 18px}.dash .streak-eyebrow,.dash .daily-eyebrow{grid-area:eyebrow;align-self:end;margin:0}.dash .streak-flame{grid-area:icon;margin:0}.dash .streak-flame svg{width:42px;height:42px}.dash .streak-body{grid-area:body;min-width:0}.dash .streak-num{font-size:2.2rem}.dash .daily-progress-ring,.dash .daily-target-icon{grid-area:icon;margin:0;width:76px;height:76px}.dash .daily-meta{grid-area:body;align-self:start}.dash .daily-progress-center{padding:0 6px}.dash .daily-progress-num{font-size:1.15rem;white-space:nowrap}.dash .daily-progress-num span{font-size:.78rem}.dash .daily-progress-label{font-size:.6rem;letter-spacing:.4px;margin-top:1px}.dash .daily-settings-menu{top:0;min-width:0;max-width:calc(100vw - 28px);padding:8px}.dash .daily-settings-heading{margin-bottom:6px}.dash .daily-settings-options{gap:5px}.dash .daily-settings-option{min-width:38px;padding:0 4px}.dash .puzzle-card{grid-template-columns:104px minmax(0,1fr)}.dash .puzzle-board-wrap{padding:12px}.dash .puzzle-board{width:80px;height:80px}.dash .puzzle-board-wrap svg{width:80px;height:80px}.dash .puzzle-content{padding:14px 16px;gap:4px}.dash .puzzle-title{white-space:normal;font-size:1.1rem}.dash .activity-bloom{max-width:280px}.dash .activity-bloom .activity-cell{pointer-events:none}.dash .games-card,.dash .tourn-card{padding:14px}.dash .modal,.dashboard-modal{width:calc(100% - 24px);max-width:none}.dash .modal-section button,.dashboard-modal .modal-section button{min-height:44px}.dash .modal-actions button,.dashboard-modal .modal-actions button{min-height:44px;flex:1}}@media (max-width: 480px){.dash .puzzle-card{grid-template-columns:92px minmax(0,1fr)}.dash .puzzle-board{width:68px;height:68px}.dash .puzzle-board-wrap svg{width:68px;height:68px}.dash .puzzle-title{font-size:1.05rem}.dash .modal-section{grid-template-columns:1fr}.dash .hero-rating{min-width:0}.dash .hero-tc-btn{flex-direction:column;gap:2px;padding:6px 4px;min-height:44px}}.play-online-modal .play-online-close{display:flex}.play-online-modal .modal-actions{justify-content:stretch}.play-online-modal .modal-actions .primary{flex:1}@media (max-width: 767px){.dash .modal.dashboard-modal.play-online-modal,.modal.dashboard-modal.play-online-modal{width:100%;max-width:none}.play-online-modal .modal-section.variant-scroll{max-height:none}.play-now-modal .play-online-body{overflow:hidden}.play-now-modal .field-variant,.play-now-modal .field-variant .variant-scroll{flex:1 1 auto;min-height:0}.play-now-modal .field-time{flex:0 0 auto}}.dash .modal-overlay:has(.play-online-modal){background:#0000008c;-webkit-backdrop-filter:none;backdrop-filter:none}.modal.dashboard-modal.play-online-modal{background:var(--color-bg, #fff)}.play-online-modal .play-online-head{border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .08))}.play-online-modal .play-online-head h2{font-family:Fraunces,Georgia,serif;font-size:1.15rem;font-weight:600}.play-online-modal .play-online-close{width:36px;height:36px;border-radius:50%;background:transparent;color:var(--color-text-secondary)}.play-online-modal .play-online-close:hover{background:#0000000f}@media (min-width: 768px){.modal.dashboard-modal.play-online-modal{border-radius:14px;box-shadow:0 12px 40px #00000059}}.variant-select{position:relative}.variant-select-trigger{display:flex;align-items:center;gap:10px;width:100%;padding:11px 14px;background:#fff9;border:1px solid rgba(255,255,255,.6);border-radius:14px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 1px 3px #0000000d;cursor:pointer;font-family:inherit;transition:background .15s ease,box-shadow .15s ease}.variant-select-trigger:hover{background:#ffffffc7}.variant-select-value{flex:1;min-width:0;text-align:left;font-size:.95rem;font-weight:600;color:var(--color-text, #1B1F20);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.variant-select-chevron{color:var(--color-text-muted, #8B95A0);flex-shrink:0;transition:transform .2s ease}.variant-select-chevron.open{transform:rotate(180deg)}.variant-dot-mini{width:8px;height:8px;border-radius:50%;background:var(--variant-international, #2C5F2D);box-shadow:0 0 0 2px #fff9;flex-shrink:0}.variant-select-trigger .variant-flag,.variant-select-option .variant-flag{font-size:1.05rem;line-height:1;flex-shrink:0}.variant-select-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:30;max-height:320px;overflow-y:auto;padding:6px;background:linear-gradient(180deg,#fffffff5,#ffffffe6);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.7);border-radius:14px;box-shadow:0 1px #ffffffe6 inset,0 12px 28px -8px #231e142e,0 28px 56px -24px #231e1447;outline:none;animation:variant-menu-in .14s cubic-bezier(.16,1,.3,1) both}@keyframes variant-menu-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.variant-select-menu.up{top:auto;bottom:calc(100% + 6px);animation-name:variant-menu-in-up}@keyframes variant-menu-in-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.variant-select-option{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border:none;border-radius:9px;background:transparent;cursor:pointer;font-family:inherit;font-size:.92rem;font-weight:600;color:var(--color-text-secondary, #636E72);text-align:left}.variant-select-option.active{background:#2c5f2d14;color:var(--color-text, #1B1F20)}.variant-select-option.selected{color:var(--color-text, #1B1F20)}.variant-select-option-label{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.variant-select-check{color:var(--color-forest-medium, #3D8B40);flex-shrink:0}.variant-select-divider{height:1px;margin:6px 8px;background:#00000014}@media (prefers-reduced-motion: reduce){.variant-select-menu{animation:none}.variant-select-chevron{transition:none}}.online-players-list{padding:0}.players-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-sm);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border)}.players-header h3{margin:0;font-size:.95rem;color:var(--color-text)}.player-count{background-color:var(--color-primary);color:#fff;padding:2px 10px;border-radius:var(--radius-lg);font-size:.8rem;font-weight:600}.players-list{list-style:none;padding:0;margin:0;max-height:180px;overflow-y:auto}.player-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-sm);border-bottom:1px solid var(--color-neutral-200);cursor:pointer;border-radius:var(--radius-sm);transition:background-color .15s}.player-item:last-child{border-bottom:none}.player-item:hover{background-color:var(--color-beige-cream)}.player-item.selected{background-color:#2c5f2d14;border-color:var(--color-primary)}.player-info{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.player-name{font-weight:600;color:var(--color-text);font-size:.9rem}.player-rating{font-size:.875rem;padding:2px 8px;border-radius:var(--radius-sm);font-weight:500}.player-rating.novice{background-color:#9696961f;color:var(--color-neutral-600)}.player-rating.intermediate{background-color:#4caf501f;color:var(--color-forest-medium)}.player-rating.advanced{background-color:#2196f31f;color:var(--color-info)}.player-rating.expert{background-color:#9c27b01f;color:#9c27b0}.player-rating.master{background-color:#ff98001f;color:var(--color-warning)}.player-rating.grandmaster{background-color:#f443361f;color:var(--color-error)}.player-rating.legend{background-color:#ffd70026;color:#b8960c}.status-badge{font-size:.7rem;padding:2px 8px;border-radius:10px;font-weight:500}.status-badge.available{background-color:#27ae601f;color:var(--color-success)}.status-badge.playing{background-color:#f39c121f;color:var(--color-warning)}.status-badge.away{background-color:#9e9e9e1f;color:var(--color-neutral-600)}.player-busy{font-size:.75rem;color:var(--color-text-secondary);font-style:italic}.player-selected-badge{color:var(--color-primary);font-size:1.1rem;font-weight:700}.login-required,.no-players{text-align:center;color:var(--color-text-secondary);padding:var(--spacing-md);font-size:.9rem}.error-message{color:var(--color-error);background-color:#e74c3c14;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);text-align:center}.spinner{width:24px;height:24px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;margin:var(--spacing-md) auto}.players-list::-webkit-scrollbar{width:5px}.players-list::-webkit-scrollbar-track{background:var(--color-neutral-200);border-radius:3px}.players-list::-webkit-scrollbar-thumb{background:var(--color-brown-light);border-radius:3px}.players-list::-webkit-scrollbar-thumb:hover{background:var(--color-brown-medium)}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:.01ms!important;animation-iteration-count:1!important}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#140f088c;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;justify-content:center;align-items:center;z-index:10000;padding:var(--spacing-md)}.send-challenge-modal{background:radial-gradient(ellipse at 0% 0%,rgba(201,162,39,.06),transparent 55%),linear-gradient(180deg,#fffffff7,#fffcf7eb);border:1px solid rgba(0,0,0,.08);border-radius:16px;padding:26px 28px 22px;max-width:440px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 12px 32px #231e142e,0 32px 64px #231e141a,inset 0 1px #ffffffe6}.send-challenge-modal h2{margin:0 0 18px;font-family:Fraunces,Georgia,serif;font-size:1.5rem;font-weight:600;letter-spacing:-.01em;text-align:center;color:#1b1f20}.challenge-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.challenge-head h2{margin:0;text-align:left}.challenge-close{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:40px;height:40px;border:none;border-radius:12px;background:#0000000d;color:#636e72;cursor:pointer}.challenge-close:hover{background:#00000017}.challenge-body{display:flex;flex-direction:column;gap:18px;margin-top:16px}.challenge-players-section{margin-bottom:16px;border:1px solid rgba(0,0,0,.06);border-radius:12px;padding:6px;background:#ffffff80;box-shadow:inset 0 1px 2px #00000008}.players-bar{display:none;justify-content:flex-end}.players-expand-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:8px;background:#0000000d;color:#636e72;cursor:pointer}.players-expand-btn:hover{background:#00000017}.challenge-settings{display:flex;flex-direction:column;gap:12px}.challenge-setting{display:flex;flex-direction:column;gap:7px}.challenge-setting-label{font-size:.7rem;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:#636e72}.modal-actions{display:flex;gap:10px;justify-content:stretch;margin-top:4px}.modal-actions .send-btn{flex:1}.cancel-btn{padding:10px 18px;border-radius:999px;border:1px solid rgba(0,0,0,.12);background:transparent;color:#636e72;cursor:pointer;font-family:DM Sans,sans-serif;font-size:.88rem;font-weight:500;transition:background .15s ease,color .15s ease,border-color .15s ease}.cancel-btn:hover:not(:disabled){background:#0000000a;color:#1b1f20;border-color:#0003}.cancel-btn:disabled{opacity:.5;cursor:not-allowed}.send-btn{padding:10px 22px;border-radius:999px;border:none;background:linear-gradient(180deg,#3d8b40,#2c5f2d);color:#fff;cursor:pointer;font-family:DM Sans,sans-serif;font-size:.88rem;font-weight:600;letter-spacing:.2px;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease;min-width:110px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #2c5f2d47,inset 0 1px #ffffff2e}.send-btn:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-1px);box-shadow:0 6px 16px #2c5f2d57,0 0 0 3px #c9a2272e,inset 0 1px #ffffff2e}.send-btn:disabled{opacity:.55;cursor:not-allowed;filter:none;transform:none}.send-challenge-modal .modal-actions .send-btn{border:none;border-radius:11px;background:linear-gradient(135deg,var(--color-forest-medium, #3D8B40),var(--color-forest-dark, #2C5F2D));color:#fff;box-shadow:0 2px 8px #2c5f2d47}.send-challenge-modal .modal-actions .send-btn:hover:not(:disabled){filter:brightness(1.06)}.spinner-small{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:send-challenge-spin 1s linear infinite}@keyframes send-challenge-spin{to{transform:rotate(360deg)}}@media (max-width: 480px){.modal-actions{flex-direction:column}.cancel-btn,.send-btn{width:100%}}@media (max-width: 460px){.send-challenge-modal{padding:22px 20px 18px;max-width:380px}}@media (prefers-reduced-motion: reduce){.spinner-small{animation-duration:.01ms!important;animation-iteration-count:1!important}.send-btn,.cancel-btn{transition:none}}@media (max-width: 767px){.dash .modal-overlay:has(.send-challenge-modal),.modal-overlay:has(.send-challenge-modal){padding:0;align-items:stretch;justify-content:stretch}body:has(.send-challenge-modal) .sidebar{display:none}.send-challenge-modal{width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;border:none;border-radius:0;padding:0;overflow:hidden;display:flex;flex-direction:column}.send-challenge-modal .challenge-head{flex:0 0 auto;padding:16px 18px 14px;background:#fffcf7;border-bottom:1px solid rgba(0,0,0,.08)}.send-challenge-modal .challenge-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:14px;margin-top:0;padding:18px;overflow-y:auto;-webkit-overflow-scrolling:touch}.send-challenge-modal .challenge-players-section{flex:0 0 auto;min-height:120px;max-height:40vh;margin-bottom:0;display:flex;flex-direction:column;overflow:hidden}.send-challenge-modal .players-bar{display:flex;flex:0 0 auto;padding-bottom:4px}.send-challenge-modal .players-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.send-challenge-modal .challenge-settings{flex:0 0 auto}.send-challenge-modal .challenge-players-section.expanded{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5;margin:0;border:none;border-radius:0;padding:14px 18px calc(14px + env(safe-area-inset-bottom));background:#fffcf7}.send-challenge-modal .modal-actions{flex:0 0 auto;margin-top:0;padding:14px 18px calc(14px + env(safe-area-inset-bottom));background:var(--color-bg, #fff);border-top:1px solid rgba(0,0,0,.08)}.send-challenge-modal .challenge-head,.send-challenge-modal .challenge-players-section.expanded{background:var(--color-bg, #fff)}}.modal-overlay:has(.send-challenge-modal){background:#0000008c;backdrop-filter:none;-webkit-backdrop-filter:none}.send-challenge-modal{background:var(--color-bg, #fff)}.send-challenge-modal .challenge-head{border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .08))}.send-challenge-modal .challenge-head h2{font-family:Fraunces,Georgia,serif;font-size:1.15rem;font-weight:600}.send-challenge-modal .challenge-close{width:36px;height:36px;border-radius:50%;background:transparent;color:var(--color-text-secondary, #636E72)}.send-challenge-modal .challenge-close:hover{background:#0000000f}@media (min-width: 768px){.send-challenge-modal{border-radius:14px;box-shadow:0 12px 40px #00000059}}.home-page-new{position:relative;display:flex;flex-direction:column;min-height:100vh;overflow:hidden;font-family:var(--font-body)}.home-bg-pattern{position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:0;background-image:var(--app-bg-image);background-size:var(--app-bg-size);background-position:var(--app-bg-position)}.home-hero{position:relative;z-index:1;flex:1;display:flex;align-items:center;justify-content:center;padding:40px;gap:60px;min-height:min(calc(100vh - 80px),700px)}.home-hero-content{flex:1;max-width:500px;display:flex;flex-direction:column;gap:20px}.home-hero-title{font-family:var(--font-display);font-optical-sizing:auto;font-size:clamp(2.6rem,6vw,4rem);font-weight:600;color:var(--color-forest-dark);line-height:1.12;padding-bottom:.08em;letter-spacing:-.02em;margin:0;background:linear-gradient(135deg,var(--color-forest-dark) 0%,var(--color-emerald) 52%,var(--color-forest-dark) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.home-hero-accent{font-style:italic;font-weight:500;-webkit-text-fill-color:var(--color-gold);color:var(--color-gold)}.home-hero-tagline{font-size:clamp(1.05rem,1.6vw,1.2rem);color:var(--color-text-secondary);line-height:1.6;max-width:440px;margin:0;font-weight:400}.home-cta-group{display:flex;flex-direction:column;gap:12px;margin-top:8px;max-width:400px}.home-cta-row{display:flex;gap:12px}.home-hero-board{position:relative;flex-shrink:0;max-width:480px}.home-hero-board:before{content:"";position:absolute;top:-8%;right:-8%;bottom:-4%;left:-8%;z-index:-1;background:radial-gradient(circle at 50% 45%,rgba(16,185,129,.16),transparent 62%),radial-gradient(circle at 70% 80%,rgba(201,162,39,.12),transparent 60%);filter:blur(28px);pointer-events:none}.home-hero-board .showcase-board-svg{width:100%;min-width:0;max-width:420px;border-radius:14px;box-shadow:0 2px 6px #231e141a,0 24px 56px -18px #231e1466}.home-hero-board .showcase-variant-label{font-size:.85rem;color:var(--color-text-muted)}.home-cta-primary{position:relative;padding:19px 40px;min-height:var(--touch-target-min);background:linear-gradient(135deg,var(--color-forest-dark) 0%,var(--color-forest-medium) 55%,var(--color-emerald) 100%);border:none;border-radius:14px;color:#fff;font-family:var(--font-body);font-size:1.3rem;font-weight:700;cursor:pointer;transition:transform .35s var(--ease-smooth),box-shadow .35s var(--ease-smooth);box-shadow:0 1px #fff3 inset,0 8px 22px #2c5f2d4d,0 24px 48px -16px #2c5f2d61;letter-spacing:.2px}.home-cta-primary:hover{transform:translateY(-3px);box-shadow:0 1px #fff3 inset,0 14px 30px #2c5f2d61,0 32px 60px -16px #2c5f2d73}.home-cta-primary:active{transform:translateY(-1px)}.home-cta-secondary{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;min-height:var(--touch-target-min);background:#ffffffd9;border:1px solid rgba(0,0,0,.08);border-radius:12px;color:var(--color-text);font-family:var(--font-body);font-size:.92rem;font-weight:600;cursor:pointer;box-shadow:0 1px 2px #0000000a;transition:transform .2s ease,background .2s ease,box-shadow .2s ease}.home-cta-secondary:hover{background:#fff;transform:translateY(-2px)}.home-cta-tertiary{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;min-height:var(--touch-target-min);background:#ffffffd9;border:1px solid rgba(44,95,45,.3);border-radius:12px;color:var(--color-forest-deep);font-family:var(--font-body);font-size:.92rem;font-weight:600;cursor:pointer;box-shadow:0 1px 2px #0000000a;transition:transform .2s ease,background .2s ease,box-shadow .2s ease}.home-cta-tertiary:hover{background:#fff;transform:translateY(-2px)}.home-cta-icon{font-size:1.2rem}.home-cta-spinner{animation:home-cta-spin 1s linear infinite}@keyframes home-cta-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.home-cta-login-hint{font-size:.875rem;color:#ffffffb3;margin:0}.home-cta-login-link{background:none;border:none;color:gold;font-size:.875rem;cursor:pointer;padding:0;text-decoration:underline;font-weight:600}.home-cta-login-link:hover{color:#fff}.home-hero-stats{display:flex;align-items:center;gap:16px;margin-top:8px}.home-stat{display:flex;align-items:center;gap:6px;color:var(--color-text-secondary);font-size:.9rem}.home-stat-dot{width:8px;height:8px;background:#4caf50;border-radius:50%;animation:pulse-dot 2s infinite}@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{background:#dc354526;color:#dc3545;padding:8px 12px;border-radius:6px;font-size:.85rem;text-align:center;margin-bottom:8px}.home-challenge-section .online-players-list{background:transparent;padding:0;box-shadow:none}@media (max-width: 900px){.home-hero{flex-direction:column;padding:30px 20px;gap:30px;min-height:auto}.home-hero-content{align-items:center;text-align:center}.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 (max-width: 480px){.home-hero{padding:20px 16px;gap:24px}.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 (max-width: 360px){.home-hero{padding:16px 12px;gap:16px}.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{position:fixed;top:max(8px,env(safe-area-inset-top));left:0;right:0;z-index:9000;display:flex;justify-content:center;padding:0 8px;pointer-events:none}.icb-card{pointer-events:auto;width:100%;max-width:520px;display:flex;flex-direction:column;gap:var(--spacing-sm);padding:12px 14px;border-radius:var(--radius-lg);border:1.5px solid var(--color-forest-medium);background:radial-gradient(ellipse at 0% 0%,rgba(201,162,39,.14),transparent 60%),linear-gradient(180deg,var(--color-surface),rgba(255,255,255,.96));box-shadow:var(--shadow-lg),0 0 0 4px #3d8b401a;animation:icb-slide-in .28s cubic-bezier(.16,1,.3,1),icb-pulse 2.2s ease-in-out .28s infinite}@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:icb-slide-in .2s ease-out}}.icb-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);color:#fff;background:linear-gradient(135deg,var(--color-forest-medium),var(--color-primary))}.icb-text{flex:1 1 auto;min-width:0;font-size:.95rem;line-height:1.35;color:var(--color-text)}.icb-text b{font-weight:700}.icb-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.icb-chip{font-size:.72rem;font-weight:700;letter-spacing:.02em;padding:2px 8px;border-radius:999px;color:var(--color-forest-medium);background:#3d8b401a;border:1px solid rgba(61,139,64,.22)}.icb-chip-mode{color:#8a6d1a;background:#c9a22729;border-color:#c9a22761}.icb-timer{flex:0 0 auto;align-self:flex-start;font-variant-numeric:tabular-nums;font-weight:700;font-size:.85rem;color:var(--color-forest-medium);background:#3d8b401a;border:1px solid rgba(61,139,64,.22);border-radius:var(--radius-md);padding:2px 8px}.icb-actions{display:flex;gap:var(--spacing-sm)}.icb-btn{flex:1 1 0;min-height:var(--touch-target-min);min-width:var(--touch-target-min);display:inline-flex;align-items:center;justify-content:center;padding:0 16px;border-radius:var(--radius-md);font-size:.95rem;font-weight:600;cursor:pointer;border:1px solid transparent;transition:filter .12s ease,background-color .12s ease}.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);background:transparent;border-color:var(--color-border)}.icb-decline:not(:disabled):hover{background:#0000000a}.icb-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;animation:icb-spin .7s linear infinite}@keyframes icb-spin{to{transform:rotate(360deg)}}@media (min-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:0 0 auto}}@media (min-width: 769px){.incoming-challenge-banner{top:calc(var(--top-sidebar-height, 64px) + 12px)}}.incoming-rematch-banner{position:fixed;top:max(8px,env(safe-area-inset-top));left:0;right:0;z-index:9000;display:flex;justify-content:center;padding:0 8px;pointer-events:none}.irb-card{pointer-events:auto;width:100%;max-width:520px;display:flex;flex-direction:column;gap:var(--spacing-sm);padding:12px 14px;border-radius:var(--radius-lg);border:1.5px solid var(--color-forest-medium);background:radial-gradient(ellipse at 0% 0%,rgba(201,162,39,.14),transparent 60%),linear-gradient(180deg,var(--color-surface),rgba(255,255,255,.96));box-shadow:var(--shadow-lg),0 0 0 4px #3d8b401a;animation:irb-slide-in .28s cubic-bezier(.16,1,.3,1),irb-pulse 2.2s ease-in-out .28s infinite}@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:irb-slide-in .2s ease-out}}.irb-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);color:#fff;background:linear-gradient(135deg,var(--color-forest-medium),var(--color-primary))}.irb-text{flex:1 1 auto;min-width:0;font-size:.95rem;line-height:1.35;color:var(--color-text)}.irb-text b{font-weight:700}.irb-timer{flex:0 0 auto;align-self:flex-start;font-variant-numeric:tabular-nums;font-weight:700;font-size:.85rem;color:var(--color-forest-medium);background:#3d8b401a;border:1px solid rgba(61,139,64,.22);border-radius:var(--radius-md);padding:2px 8px}.irb-actions{display:flex;gap:var(--spacing-sm)}.irb-btn{flex:1 1 0;min-height:var(--touch-target-min);min-width:var(--touch-target-min);display:inline-flex;align-items:center;justify-content:center;padding:0 16px;border-radius:var(--radius-md);font-size:.95rem;font-weight:600;cursor:pointer;border:1px solid transparent;transition:filter .12s ease,background-color .12s ease}.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);background:transparent;border-color:var(--color-border)}.irb-decline:not(:disabled):hover{background:#0000000a}.irb-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;animation:irb-spin .7s linear infinite}@keyframes irb-spin{to{transform:rotate(360deg)}}@media (min-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:0 0 auto}}@media (min-width: 769px){.incoming-rematch-banner{top:calc(var(--top-sidebar-height, 64px) + 12px)}}.challenge-modal{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);max-width:360px;width:100%;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{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg)}.challenge-header h2{margin:0;font-size:1.2rem;color:var(--color-text)}.timer-badge{background-color:#f39c121f;color:var(--color-warning);padding:4px 12px;border-radius:var(--radius-lg);font-weight:600;font-size:.9rem;font-variant-numeric:tabular-nums;border:1px solid rgba(243,156,18,.2)}.challenger-info{display:flex;align-items:center;justify-content: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)}.challenger-name{font-size:1.3rem;font-weight:600;color:var(--color-text)}.challenge-details{margin-bottom:var(--spacing-lg)}.detail-item{display:flex;justify-content:space-between;padding:var(--spacing-xs) 0}.detail-label{color:var(--color-text-secondary);font-size:.9rem}.detail-value{color:var(--color-text);font-weight:500;font-size:.9rem}.challenge-actions{display:flex;gap:var(--spacing-sm)}.decline-btn{flex:1;padding:var(--spacing-md);border-radius:var(--radius-md);border:1px solid rgba(231,76,60,.3);background-color:#e74c3c0f;color:var(--color-error);cursor:pointer;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{display:flex;justify-content:center;margin-bottom:var(--spacing-lg)}.outgoing-spinner-container .spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.outgoing-spinner-container .spinner{animation-duration:.01ms!important;animation-iteration-count:1!important}}.modal-overlay:has(.puzzle-modal){position:fixed;top:0;right:0;bottom:0;left:0;z-index:9000;display:flex;align-items:center;justify-content:center;background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:16px}.modal.dashboard-modal.puzzle-modal{display:flex;flex-direction:column;position:relative;overflow:hidden;background:var(--color-bg, #fff);width:100%;max-width:420px;max-height:90vh;border:1px solid rgba(255,255,255,.7);border-radius:20px;box-shadow:0 24px 60px -12px #231e1438;padding:0;gap:0}@media (max-width: 767px){.modal-overlay:has(.puzzle-modal){padding:0}.modal.dashboard-modal.puzzle-modal{width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;border:none;border-radius:0;box-shadow:none}.puzzle-modal .pz-side .pz-turn-card{padding-right:64px}}.puzzle-modal .pz-page{flex:1 1 auto;min-height:0;width:100%;max-width:none;overflow-y:auto;-webkit-overflow-scrolling:touch}.puzzle-modal .puzzle-modal-close{display:flex;align-items:center;justify-content:center;position:absolute;top:calc(env(safe-area-inset-top,0px) + 10px);right:12px;z-index:6;width:44px;height:44px;border:none;border-radius:50%;cursor:pointer;background:#0000000f;color:var(--color-text, #2a2622);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.puzzle-modal .puzzle-modal-close:hover{background:#0000001f}.page-container{padding:var(--spacing-xl);max-width:1200px;margin:0 auto;width:100%}.back-button{background-color:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:.9rem;padding:var(--spacing-sm);margin-bottom:var(--spacing-md);transition:color .2s}.back-button:hover{color:var(--color-text)}.game-fullscreen{display:flex;flex-direction:column;height:100svh;overflow:hidden;background-color:var(--color-bg);touch-action:none;overscroll-behavior:none}.game-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-surface);border-bottom:1px solid var(--color-border);gap:var(--spacing-md);flex-wrap:wrap}.game-back-btn{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:.9rem;padding:var(--spacing-sm);transition:color .2s}.game-back-btn:hover{color:var(--color-text)}.game-info{display:flex;align-items:center;gap:var(--spacing-lg);flex-wrap:wrap}.game-variant{font-size:.9rem;color:var(--color-text-secondary)}.game-main{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);overflow:auto}.game-footer{display:flex;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-surface);border-top:1px solid var(--color-border)}.turn-indicator{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.95rem;color:var(--color-text)}.turn-dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--color-border)}.turn-dot.white{background-color:var(--color-beige-cream)}.turn-dot.black{background-color:var(--color-brown-dark)}.turn-dot.thinking{animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.1)}}.game-layout{display:flex;align-items:center;gap:var(--spacing-lg)}.action-button{padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-size:.9rem;cursor:pointer;transition:all .2s;min-height:44px;border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text)}.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);font-size:.85rem;color:var(--color-text-secondary)}.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);font-size:.85rem;margin-left:var(--spacing-sm)}.online-board-container{display:flex;flex-direction:row;gap:var(--spacing-lg);align-items:flex-start;justify-content:center;width:100%}.online-game-sidebar{display:flex;flex-direction:column;gap:var(--spacing-md);min-width:280px}.online-board-wrapper{display:flex;flex-direction:column;gap:var(--spacing-xs);width:100%;max-width:900px}.player-info-bar{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;font-size:1rem;width:100%;box-sizing:border-box;min-height:40px}.player-info-bar .player-name{font-weight:600;color:var(--color-text)}.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{display:inline-flex;align-items:center;gap:var(--spacing-xs);margin-left:auto;padding:2px 8px;border-radius:var(--radius-sm);background-color:#f39c1233;color:var(--color-warning, #f39c12);font-size:.8rem;font-weight:500;animation:badge-pulse 2s ease-in-out infinite}@keyframes badge-pulse{0%,to{opacity:1}50%{opacity:.7}}@media (max-width: 1000px){.online-board-wrapper{width:100%;max-width:min(calc(100vw - 2rem),calc(100vh - 300px))}}@media (max-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 (max-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{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: #FFFFFF;--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%, rgba(44, 95, 45, .1), transparent 52%), radial-gradient(ellipse 950px 760px at 96% 26%, rgba(181, 136, 99, .1), transparent 52%), radial-gradient(ellipse 760px 640px at 50% 118%, rgba(201, 162, 39, .08), transparent 52%), linear-gradient(45deg, rgba(93, 64, 55, .028) 25%, transparent 25%), linear-gradient(-45deg, rgba(93, 64, 55, .028) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, rgba(93, 64, 55, .028) 75%), linear-gradient(-45deg, transparent 75%, rgba(93, 64, 55, .028) 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: rgba(39, 174, 96, .4);--color-selection: rgba(243, 156, 18, .5);--sidebar-width: 80px;--sidebar-bg: var(--color-forest-dark);--sidebar-text: #FFFFFF;--sidebar-hover: rgba(255, 255, 255, .1);--sidebar-active: rgba(255, 255, 255, .2);--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 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--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{height:100%;overscroll-behavior:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{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),(max-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)}}
