@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--ease-out:cubic-bezier(0,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-nunito),"Nunito",system-ui,-apple-system,sans-serif;--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.top-3{top:calc(var(--spacing)*3)}.top-20{top:calc(var(--spacing)*20)}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.shrink{flex-shrink:1}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}:root,[data-theme=classic]{--bg-page:#fffbeb;--bg-grid:#92400e;--bg-score:#78350f;--bg-card:#fffbebcc;--bg-card-border:#fbbf2433;--bg-segmented:#78350f;--bg-button:#b45309;--bg-button-hover:#92400e;--button-shadow:#92400e4d;--text-primary:#78350f;--text-secondary:#92400e;--text-label:#fde68a;--text-body:#451a03;--text-on-accent:#fff;--color-danger:#dc2626;--color-success:#15803d;--color-connected:#047857;--accent:#d97706;--accent-light:#f59e0b;--accent-glow:#f59e0b40;--overlay-win:#edc22e8c;--overlay-lose:#fffbebc7;--overlay-neutral:#fffbeba8;--modal-backdrop:#451a0380;--modal-bg:#fffbeb;--desktop-sidebar-width:296px;--desktop-shell-gutter:24px;--desktop-shell-edge:24px;--title-gradient:linear-gradient(90deg,#78350f 0%,#b45309 30%,#f59e0b 65%,#ea580c 60%,#f59e0b 100%);--title-glow:#f59e0b66;--segmented-text:#fde68a99;--segmented-text-hover:#fde68ae6;--board-shadow-a:#78350f26;--board-shadow-b:#f59e0b40;--accent-border-light:#d977064d;--accent-border-medium:#d9770633;--accent-bg-subtle:#fbbf2414;--accent-bg-light:#fbbf2426;--accent-bg-hover:#fbbf241a;--otp-border:#fde68a;--otp-bg:#fef9e7;--otp-filled-bg:#fef3c7}[data-theme=ocean]{--bg-page:#f0f9ff;--bg-grid:#164e63;--bg-score:#155e75;--bg-card:#f0f9ffd9;--bg-card-border:#0ea5e933;--bg-segmented:#155e75;--bg-button:#0e7490;--bg-button-hover:#155e75;--button-shadow:#0e749040;--text-primary:#164e63;--text-secondary:#0e7490;--text-label:#a5f3fc;--text-body:#083344;--text-on-accent:#fff;--color-danger:#dc2626;--color-success:#15803d;--color-connected:#047857;--accent:#0891b2;--accent-light:#22d3ee;--accent-glow:#22d3ee40;--overlay-win:#22d3ee73;--overlay-lose:#f0f9ffc7;--overlay-neutral:#f0f9ffa8;--modal-backdrop:#08334480;--modal-bg:#f0f9ff;--title-gradient:linear-gradient(90deg,#06b6d4 0%,#0284c7 40%,#22d3ee 50%,#0284c7 60%,#06b6d4 100%);--title-glow:#06b6d466;--segmented-text:#a5f3fc99;--segmented-text-hover:#a5f3fce6;--board-shadow-a:#164e6326;--board-shadow-b:#06b6d440;--accent-border-light:#0891b24d;--accent-border-medium:#0891b233;--accent-bg-subtle:#0ea5e914;--accent-bg-light:#0ea5e926;--accent-bg-hover:#0ea5e91a;--otp-border:#a5f3fc;--otp-bg:#ecfeff;--otp-filled-bg:#cffafe}[data-theme=forest]{--bg-page:#f0fdf4;--bg-grid:#14532d;--bg-score:#166534;--bg-card:#f0fdf4d9;--bg-card-border:#22c55e33;--bg-segmented:#166534;--bg-button:#15803d;--bg-button-hover:#166534;--button-shadow:#15803d40;--text-primary:#14532d;--text-secondary:#166534;--text-label:#bbf7d0;--text-body:#052e16;--text-on-accent:#fff;--color-danger:#dc2626;--color-success:#15803d;--color-connected:#047857;--accent:#16a34a;--accent-light:#4ade80;--accent-glow:#4ade8040;--overlay-win:#4ade8073;--overlay-lose:#f0fdf4c7;--overlay-neutral:#f0fdf4a8;--modal-backdrop:#052e1680;--modal-bg:#f0fdf4;--title-gradient:linear-gradient(90deg,#22c55e 0%,#15803d 40%,#4ade80 50%,#15803d 60%,#22c55e 100%);--title-glow:#22c55e66;--segmented-text:#bbf7d099;--segmented-text-hover:#bbf7d0e6;--board-shadow-a:#14532d26;--board-shadow-b:#22c55e40;--accent-border-light:#16a34a4d;--accent-border-medium:#16a34a33;--accent-bg-subtle:#22c55e14;--accent-bg-light:#22c55e26;--accent-bg-hover:#22c55e1a;--otp-border:#bbf7d0;--otp-bg:#f0fdf4;--otp-filled-bg:#dcfce7}[data-theme=midnight]{--bg-page:#0f172a;--bg-grid:#1e293b;--bg-score:#1e293b;--bg-card:#1e293bcc;--bg-card-border:#8b5cf659;--bg-segmented:#1e293b;--bg-button:#7c3aed;--bg-button-hover:#6d28d9;--button-shadow:#7c3aed4d;--text-primary:#e2e8f0;--text-secondary:#94a3b8;--text-label:#c4b5fd;--text-body:#e2e8f0;--accent:#8b5cf6;--accent-light:#a78bfa;--text-on-accent:#fff;--color-danger:#f87171;--color-success:#4ade80;--color-connected:#34d399;--accent-glow:#8b5cf626;--overlay-win:#8b5cf673;--overlay-lose:#0f172ac7;--overlay-neutral:#0f172aad;--modal-backdrop:#0009;--modal-bg:#1e293b;--title-gradient:linear-gradient(90deg,#a78bfa 0%,#8b5cf6 40%,#c4b5fd 50%,#8b5cf6 60%,#a78bfa 100%);--title-glow:#a78bfa4d;--segmented-text:#c4b5fd99;--segmented-text-hover:#c4b5fde6;--board-shadow-a:#0000004d;--board-shadow-b:#8b5cf640;--accent-border-light:#8b5cf673;--accent-border-medium:#8b5cf659;--accent-bg-subtle:#8b5cf61a;--accent-bg-light:#8b5cf62e;--accent-bg-hover:#8b5cf61f;--otp-border:#c4b5fd;--otp-bg:#1e293b;--otp-filled-bg:#312e81}[data-theme=midnight] .score-box,[data-theme=midnight] .grid-size-control,[data-theme=midnight] .how-to-play-toggle,[data-theme=midnight] .lb-card,[data-theme=midnight] .lb-row,[data-theme=midnight] .modal-card{border:1px solid #8b5cf640}[data-theme=midnight] .mobile-menu-divider{border-color:#8b5cf633}[data-theme=midnight] .brand-logo{background:#fffff3;border:1px solid #8b5cf64d;border-radius:18px;padding:10px 16px}.ui-btn{cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-width:44px;height:44px;padding:0 20px;font-family:inherit;font-size:15px;font-weight:700;transition:background .15s,transform .1s,box-shadow .15s;display:inline-flex}.ui-btn:disabled{opacity:.5;cursor:default;pointer-events:none}.ui-btn-primary{background:linear-gradient(135deg,var(--bg-button),var(--bg-button-hover));color:var(--text-on-accent);box-shadow:0 3px 10px var(--button-shadow)}.ui-btn-primary:hover{background:var(--bg-button-hover);box-shadow:0 5px 16px var(--button-shadow);transform:translateY(-1px)}.ui-btn-primary:active{box-shadow:0 2px 6px var(--button-shadow);transform:translateY(0)}.ui-btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1.5px solid var(--bg-card-border)}.ui-btn-secondary:hover{background:var(--bg-button-hover);color:var(--text-on-accent);border-color:#0000;transform:translateY(-1px)}.ui-btn-secondary:active{transform:translateY(0)}.ui-btn-danger{color:var(--text-on-accent);background:#dc2626;box-shadow:0 3px 10px #dc262640}.ui-btn-danger:hover{background:#b91c1c;transform:translateY(-1px)}.ui-btn-danger:active{transform:translateY(0)}.ui-btn-ghost{color:var(--text-secondary);background:0 0}.ui-btn-ghost:hover{background:var(--bg-card);color:var(--text-primary)}.ui-btn-full{width:100%}*,:before,:after{box-sizing:border-box}body{background:var(--bg-page);min-height:100vh;font-family:var(--font-nunito),"Nunito","Clear Sans","Helvetica Neue",Arial,sans-serif;color:var(--text-body);-webkit-font-smoothing:antialiased;overscroll-behavior:none;margin:0;padding:0;transition:background .3s,color .3s}.page-layout{min-height:100dvh}.container{width:100%;max-width:480px;margin:0 auto;padding:0}.container-wide{max-width:640px}.desktop-sidebar{display:none}@media (min-width:1080px){.desktop-sidebar{top:var(--desktop-shell-edge);bottom:var(--desktop-shell-edge);width:var(--desktop-sidebar-width);background:var(--bg-page);box-sizing:border-box;z-index:50;flex-direction:column;display:flex;position:fixed;overflow:hidden}.desktop-sidebar-left{left:var(--desktop-shell-edge)}.desktop-sidebar-right{right:var(--desktop-shell-edge)}.sidebar-header{border-bottom:1px solid var(--accent-border-medium);flex-shrink:0;justify-content:center;align-items:center;padding:16px 20px 12px;display:flex}.sidebar-header-title{font-family:var(--font-fredoka),"Fredoka",sans-serif;color:var(--text-primary);letter-spacing:.02em;font-size:1.2rem;font-weight:700}.desktop-sidebar-inner{-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;flex:1;padding:0 20px 32px;overflow-y:auto}.desktop-sidebar-inner::-webkit-scrollbar{display:none}.page-layout{padding-left:calc(var(--desktop-sidebar-width) + var(--desktop-shell-gutter) + var(--desktop-shell-edge));padding-right:calc(var(--desktop-sidebar-width) + var(--desktop-shell-gutter) + var(--desktop-shell-edge))}.container{flex:0 auto}}.sidebar-auth{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 12px 16px;display:flex}.sidebar-user{flex:120px;align-items:center;gap:10px;min-width:0;max-width:100%;display:flex}.sidebar-avatar{background:var(--accent);width:36px;height:36px;color:var(--text-on-accent);font-family:var(--font-fredoka),"Fredoka",sans-serif;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;font-weight:700;display:flex}.sidebar-username{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:700;overflow:hidden}.sidebar-signout{background:var(--accent-bg-subtle);border:1px solid var(--accent-border-medium);color:var(--text-secondary);cursor:pointer;box-sizing:border-box;text-align:center;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;width:auto;padding:7px 14px;font-family:inherit;font-size:13px;font-weight:700;transition:background .15s;display:inline-flex}.sidebar-signout:hover{background:var(--accent-bg-light)}.sidebar-signin{background:var(--bg-button);width:100%;color:var(--text-on-accent);cursor:pointer;border:none;border-radius:10px;padding:12px;font-family:inherit;font-size:15px;font-weight:700;transition:background .15s}.sidebar-signin:hover{background:var(--bg-button-hover)}.sidebar-divider{background:var(--accent-border-medium);height:1px;margin:0 12px}.sidebar-section{padding:16px 12px 8px}.desktop-sidebar-left .leaderboard-section{margin-top:0}.sidebar-section-title{font-family:var(--font-fredoka),"Fredoka",sans-serif;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;margin:0 0 12px;font-size:1rem;font-weight:700}[data-theme=midnight] .sidebar-divider{background:#8b5cf633}.title-section{text-align:center;justify-content:center;padding:12px 0 6px;display:flex}.brand-logo{object-fit:contain;width:auto;height:120px}.below-board-controls{justify-content:center;align-items:center;gap:12px;margin-top:12px;display:flex}.below-board-controls-spaced{margin-bottom:20px}.grid-size-control-loose{gap:8px}.user-bar{justify-content:center;align-items:center;gap:10px;margin-bottom:8px;display:flex}.user-bar-name{color:var(--text-primary);font-size:13px;font-weight:700}.user-bar-signout{color:var(--text-secondary);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:2px 4px;font-family:inherit;font-size:12px;font-weight:600;text-decoration:underline;transition:color .15s}.user-bar-signout:hover{color:var(--color-danger)}.game-title{font-family:var(--font-fredoka),"Fredoka",sans-serif;background:var(--title-gradient);-webkit-text-fill-color:transparent;color:var(--accent-light);filter:drop-shadow(0 2px 8px var(--title-glow));background-position:-200%;background-size:200%;-webkit-background-clip:text;background-clip:text;margin:0;font-size:4.5rem;font-weight:700;line-height:1;animation:3s ease-in-out .5s titleShimmer}@keyframes titleShimmer{0%{background-position:-200%}to{background-position:200%}}.game-intro{color:var(--text-secondary);margin:4px 0 0;font-size:15px;line-height:1.65}.game-intro strong{color:var(--text-primary);font-weight:800}.header-new-game-btn{background:var(--bg-button);height:40px;color:var(--text-on-accent);cursor:pointer;box-shadow:0 2px 6px var(--button-shadow);white-space:nowrap;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0 20px;font-family:inherit;font-size:13px;font-weight:700;transition:background .15s,transform .1s,box-shadow .15s;display:inline-flex}.header-new-game-btn:hover{background:var(--bg-button-hover);box-shadow:0 4px 12px var(--button-shadow);transform:translateY(-1px)}.header-new-game-btn:active{box-shadow:0 1px 2px var(--button-shadow);transform:translateY(0)}.top-section{display:none}.board-section{touch-action:none;flex-direction:column;align-items:center;display:flex;position:relative}.score-row{justify-content:center;gap:6px;width:100%;margin-bottom:10px;display:flex}.score-box{text-align:center;color:var(--text-on-accent);background:var(--bg-score);min-width:80px;box-shadow:0 2px 8px var(--button-shadow),inset 0 1px 0 #ffffff1a;border-radius:12px;padding:10px 24px 8px;position:relative}.score-box span{text-transform:uppercase;letter-spacing:.08em;color:var(--text-label);font-size:11px;font-weight:700;display:block}.score-box strong{font-variant-numeric:tabular-nums;color:var(--text-on-accent);font-size:28px;font-weight:800;display:block}.game-container{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;position:relative}.board-shake{animation:.3s boardShake}@keyframes boardShake{0%,to{transform:translate(0)}15%{transform:translate(-3px,1px)}30%{transform:translate(2px,-2px)}45%{transform:translate(-2px,2px)}60%{transform:translate(3px,-1px)}75%{transform:translate(-1px,1px)}}.game-canvas{touch-action:none;-webkit-user-select:none;user-select:none;box-shadow:0 4px 6px -1px #0000001a,0 10px 25px -5px var(--board-shadow-a);border-radius:16px;animation:4s ease-in-out boardGlow;display:block}.game-canvas-hidden{visibility:hidden;position:absolute}.game-skeleton{aspect-ratio:1;background:var(--bg-grid,#bbada0);border-radius:16px;width:min(100vw - 32px,100dvh - 300px,460px);animation:1.5s ease-in-out infinite skeletonPulse}.swipe-hint-overlay{background:var(--overlay-neutral);-webkit-backdrop-filter:blur(3px);z-index:25;cursor:pointer;border-radius:16px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.swipe-hint-content{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:16px 18px;display:flex}.swipe-hint-hand{justify-content:center;align-items:center;width:56px;height:56px;animation:1.6s ease-in-out infinite swipeHintFloat;display:flex}.swipe-hint-emoji{filter:drop-shadow(0 2px 8px #00000026);font-size:34px;line-height:1;display:block}.swipe-hint-text{color:var(--text-primary);white-space:nowrap;margin:0;font-size:18px;font-weight:700;line-height:1.25}@keyframes swipeHintFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes skeletonPulse{0%,to{opacity:.6}50%{opacity:.3}}@keyframes boardGlow{0%,to{box-shadow:0 4px 6px -1px #0000001a,0 10px 25px -5px var(--board-shadow-a)}50%{box-shadow:0 4px 6px -1px #0000001a,0 10px 30px -5px var(--board-shadow-b)}}.button-row{display:none}.game-btn{background:var(--bg-button);min-width:44px;height:44px;color:var(--text-on-accent);cursor:pointer;text-align:center;box-shadow:0 2px 4px var(--button-shadow);border:none;border-radius:8px;padding:0 20px;font-size:14px;font-weight:700;line-height:44px;transition:background .15s,transform .1s,box-shadow .15s;display:inline-block}.game-btn:hover{background:var(--bg-button-hover);box-shadow:0 4px 12px var(--button-shadow);transform:translateY(-1px)}.game-btn:active{box-shadow:0 1px 2px var(--button-shadow);transform:translateY(0)}.size-btn{background:var(--accent-light);min-width:44px;height:44px;color:var(--text-primary);cursor:pointer;box-shadow:0 2px 4px var(--accent-glow);border:none;border-radius:8px;padding:0 16px;font-size:14px;font-weight:700;transition:background .15s,transform .1s,box-shadow .15s;display:inline-block}.size-btn:hover{background:var(--accent);box-shadow:0 4px 12px var(--accent-glow);transform:translateY(-1px)}.size-btn:active{box-shadow:0 1px 2px var(--accent-glow);transform:translateY(0)}.game-hint{color:var(--text-secondary);text-align:center;margin:12px 0 0;font-size:14px;line-height:1.65}.game-hint strong{color:var(--text-primary);font-weight:700}.mobile-hint{display:none}.desktop-hint{display:block}.overlay{z-index:10;pointer-events:none;-webkit-backdrop-filter:blur(2px);border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:14px;animation:.8s .4s both fadeIn;display:none;position:absolute;inset:0}.overlay.show{pointer-events:auto;display:flex}.overlay.win{background:var(--overlay-win)}.overlay.lose{background:var(--overlay-lose)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.overlay h2{color:var(--text-primary);text-shadow:0 2px 4px #0000001a;margin:0;font-size:3rem;font-weight:800}.overlay-buttons{gap:10px;display:flex}.overlay button{background:var(--bg-button);min-width:44px;height:44px;color:var(--text-on-accent);cursor:pointer;box-shadow:0 2px 8px var(--button-shadow);border:none;border-radius:8px;margin:0;padding:0 20px;font-size:14px;font-weight:700;transition:background .15s,transform .1s,box-shadow .15s;display:inline-block}.overlay button:hover{background:var(--bg-button-hover);box-shadow:0 4px 12px var(--button-shadow);transform:translateY(-1px)}.overlay button:active{box-shadow:0 1px 2px var(--button-shadow);transform:translateY(0)}.overlay button.secondary{background:var(--bg-card);color:var(--text-primary);border:1.5px solid var(--accent-border-light);box-shadow:0 2px 8px #00000014}.overlay button.secondary:hover{background:var(--bg-card);border-color:var(--accent)}.bottom-section{margin-top:24px;padding-bottom:30px}.how-to-play{background:var(--bg-card);border:1px solid var(--bg-card-border);border-radius:12px;margin-top:0;transition:box-shadow .2s;overflow:hidden;box-shadow:0 1px 3px #0000000f,0 4px 12px #0000000a}.how-to-play:hover{box-shadow:0 2px 4px #0000000f,0 6px 16px #0000000f}.how-to-play-toggle{width:100%;min-height:44px;color:var(--text-primary);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;padding:14px 18px;font-size:14px;font-weight:700;list-style:none;transition:background .15s;display:flex}.how-to-play-toggle::-webkit-details-marker{display:none}.how-to-play-toggle:hover{background:var(--accent-bg-hover)}.toggle-icon{color:var(--accent);transition:transform .25s}.how-to-play[open] .toggle-icon{transform:rotate(180deg)}.controls-mobile{display:none}@media (pointer:coarse) and (max-width:600px){.controls-desktop{display:none}.controls-mobile{display:inline}}.how-to-play-content{flex-direction:column;gap:14px;padding:14px 18px 18px;display:flex}.play-instructions{flex-direction:column;gap:12px;display:flex}.instruction-item{align-items:flex-start;gap:12px;display:flex}.instruction-icon{background:linear-gradient(135deg,var(--bg-button),var(--bg-button-hover));width:38px;height:38px;color:var(--text-on-accent);box-shadow:0 2px 6px var(--accent-glow);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.instruction-item strong{color:var(--text-primary);margin-bottom:2px;font-size:13px;display:block}.instruction-item p{color:var(--text-secondary);margin:0;font-size:12px;line-height:1.5}.controls-guide{border-top:1px solid var(--accent-border-medium);padding-top:12px}.controls-guide h4{color:var(--accent);text-transform:uppercase;letter-spacing:.06em;margin:0 0 8px;font-size:11px;font-weight:700}.controls-grid{gap:14px;display:flex}.control-item{color:var(--text-primary);align-items:center;gap:6px;font-size:12px;display:flex}.control-badge{text-transform:uppercase;background:linear-gradient(135deg,var(--bg-button),var(--bg-button-hover));color:var(--text-on-accent);box-shadow:0 1px 3px var(--accent-glow);border-radius:4px;padding:3px 10px;font-size:10px;font-weight:700;display:inline-block}.leaderboard-section{background:var(--bg-card);border:1px solid var(--bg-card-border);border-radius:12px;margin-top:14px;padding:18px;transition:box-shadow .2s;box-shadow:0 1px 3px #0000000f,0 4px 12px #0000000a}.leaderboard-section:hover{box-shadow:0 2px 4px #0000000f,0 6px 16px #0000000f}.section-title{color:var(--text-primary);margin:0 0 12px;font-size:15px;font-weight:800}.lb-container{width:100%}.lb-tabs{background:var(--accent-bg-subtle);border-radius:8px;gap:4px;margin-bottom:12px;padding:3px;display:flex}.lb-tab{cursor:pointer;min-height:44px;color:var(--text-secondary);background:0 0;border:none;border-radius:6px;flex:1;padding:8px 16px;font-size:13px;font-weight:700;transition:background .2s,color .2s,box-shadow .2s}.lb-tab:hover{background:var(--accent-bg-light);color:var(--text-primary)}.lb-tab-active{background:var(--accent);color:var(--text-on-accent);box-shadow:0 2px 6px var(--accent-glow)}.lb-tab-active:hover{background:var(--accent);color:var(--text-on-accent)}.lb-empty{text-align:center;color:var(--text-secondary);padding:16px 0;font-size:13px}.lb-error{flex-direction:column;align-items:center;gap:10px;padding:20px 0;display:flex}.lb-error-message{color:var(--text-secondary);text-align:center;margin:0;font-size:13px}.lb-retry-btn{border:1.5px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:6px;padding:6px 18px;font-size:12px;font-weight:600;transition:background .15s,color .15s}.lb-retry-btn:hover{background:var(--accent);color:var(--text-on-accent)}.lb-list{scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;gap:5px;max-height:280px;display:flex;overflow-y:auto}.lb-list::-webkit-scrollbar{display:none}.lb-row{background:var(--accent-bg-subtle);border-radius:8px;align-items:center;gap:10px;min-height:42px;padding:9px 14px;font-size:13px;transition:background .15s;display:flex}.lb-row:hover{background:var(--accent-bg-light)}.lb-row-top{background:var(--accent-bg-light);font-weight:600}.lb-row-top:hover{background:var(--accent-bg-light)}.lb-rank{text-align:center;width:26px;color:var(--accent);font-weight:800}.lb-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.lb-grid{color:var(--text-secondary);opacity:.7;font-size:11px}.lb-score{color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:800}.lb-row-ghost{background:var(--accent-bg-light);border:1.5px dashed var(--accent-light);position:relative}.lb-row-ghost:hover{background:var(--accent-bg-light)}.lb-rank-ghost{color:var(--accent-light)}.lb-name-ghost{color:var(--text-primary);font-weight:700}.lb-ghost-cta{color:var(--text-secondary);white-space:nowrap;opacity:.8;font-size:10px;font-weight:700}.lb-score-ghost{color:var(--text-primary)}.lb-empty-state{text-align:center;padding:24px 12px}.lb-empty-icon{color:var(--accent);margin-bottom:10px}.lb-empty-icon svg{animation:3s ease-in-out infinite starFloat;display:inline-block}@keyframes starFloat{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-4px)rotate(8deg)}}.lb-empty-title{color:var(--text-primary);margin:0 0 4px;font-size:14px;font-weight:700}.lb-empty-subtitle{color:var(--text-secondary);margin:0;font-size:12px;line-height:1.5}.lb-local-bests{padding:4px 0}.lb-local-title{color:var(--accent);text-transform:uppercase;letter-spacing:.06em;margin:0 0 8px;font-size:12px;font-weight:700}.modal-backdrop{background:var(--modal-backdrop);z-index:100;-webkit-backdrop-filter:blur(4px);justify-content:center;align-items:center;animation:.3s both fadeIn;display:flex;position:fixed;inset:0}@media (min-width:1080px){.modal-backdrop{padding-left:calc(var(--desktop-sidebar-width) + var(--desktop-shell-gutter) + var(--desktop-shell-edge));padding-right:calc(var(--desktop-sidebar-width) + var(--desktop-shell-gutter) + var(--desktop-shell-edge))}}.modal-card{background:var(--modal-bg);text-align:center;width:90%;max-width:380px;box-shadow:0 12px 40px #00000040,0 0 0 1px var(--accent-border-medium);border-radius:16px;padding:0 24px 24px;animation:.35s both modalSlideUp;overflow:hidden}.mp-result-card-inner{width:min(440px,100%);max-width:440px}.mp-result-banner{margin:0 -24px 18px;padding:24px 24px 18px}.mp-result-win{background:linear-gradient(180deg,var(--accent-bg-light)0%,transparent 100%)}.mp-result-lose{background:linear-gradient(180deg,var(--accent-bg-subtle)0%,transparent 100%)}.mp-result-tie{background:linear-gradient(180deg,var(--bg-card)0%,transparent 100%)}.mp-result-forfeit{box-shadow:inset 0 -1px #ffffff14}.mp-result-title{color:var(--text-primary);margin:0;font-size:1.9rem;font-weight:800;line-height:1.15}.mp-result-subtitle{max-width:28ch;color:var(--text-secondary);margin:8px auto 0;font-size:.98rem;font-weight:600;line-height:1.45}.mp-result-forfeit-text{color:var(--text-primary)}.mp-result-scores{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:12px;display:grid}.mp-score-column{border:1px solid var(--bg-card-border);background:var(--bg-card);border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-width:0;padding:14px 12px;display:flex}.mp-score-winner{border-color:var(--accent-border-light);background:var(--accent-bg-subtle);box-shadow:inset 0 0 0 1px #ffffff0d}.mp-score-name{max-width:100%;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:700;overflow:hidden}.mp-score-value{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:1.85rem;font-weight:800;line-height:1}.mp-score-badge{background:var(--accent);color:var(--text-on-accent);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;justify-content:center;align-items:center;padding:4px 10px;font-size:.72rem;font-weight:800;display:inline-flex}.mp-score-vs{color:var(--text-secondary);letter-spacing:.18em;text-transform:uppercase;align-self:center;font-size:.78rem;font-weight:800}.mp-result-meta-stack{flex-direction:column;gap:12px;margin-top:16px;display:flex}.mp-elo-section{border:1px solid var(--accent-border-light);background:var(--accent-bg-subtle);border-radius:14px;flex-direction:column;align-items:center;gap:10px;padding:14px 16px;display:flex}.mp-elo-change{letter-spacing:.01em;font-size:1.05rem;font-weight:800}.mp-elo-change-positive{color:var(--color-success)}.mp-elo-change-negative{color:var(--color-danger)}.mp-elo-change-neutral{color:var(--text-primary)}.mp-elo-rank-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.mp-elo-rating{color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:.92rem;font-weight:700}.mp-friendly-label{border:1px dashed var(--bg-card-border);background:var(--bg-card);color:var(--text-secondary);border-radius:12px;margin:0;padding:12px 14px;font-size:.94rem;font-weight:600;line-height:1.5}.mp-rematch-hint{background:var(--accent-bg-subtle);color:var(--text-secondary);border-radius:12px;margin:0;padding:10px 12px;font-size:.9rem;font-weight:700;line-height:1.45}.mp-result-actions-stack{flex-direction:column;gap:12px;margin-top:18px;display:flex}.mp-result-actions-stack>.ui-btn-primary{min-height:48px}.mp-result-share-block{flex-direction:column;gap:10px;display:flex}.mp-result-actions-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.mp-result-actions-row>*{width:100%;min-width:0}.mp-result-actions-row>.ui-btn-secondary{background:var(--bg-button);color:var(--text-on-accent);border-color:#0000}.mp-result-actions-row>.ui-btn-secondary:hover{background:var(--bg-button-hover);color:var(--text-on-accent)}.mp-result-actions-row-single{grid-template-columns:minmax(0,1fr)}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(24px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-result-banner{margin:0 -24px 4px;padding:20px 24px 12px}.modal-result-win{background:linear-gradient(180deg,var(--accent-bg-light)0%,transparent 100%)}.modal-result-lose{background:linear-gradient(180deg,var(--accent-bg-subtle)0%,transparent 100%)}.modal-result-quip{color:var(--text-secondary);margin:6px 0 0;font-size:14px;font-weight:600;line-height:1.4}.modal-result{color:var(--text-primary);margin:0;font-size:2rem;font-weight:800;line-height:1.2}.modal-result-win .modal-result{color:var(--accent)}.modal-score{color:var(--text-primary);font-variant-numeric:tabular-nums;margin:4px 0 8px;font-size:3.5rem;font-weight:800;line-height:1.1}.modal-meta{justify-content:center;align-items:center;gap:8px;margin-bottom:8px;display:flex}.modal-badge{text-transform:uppercase;letter-spacing:.04em;background:var(--bg-score);color:var(--text-label);box-shadow:0 1px 3px var(--button-shadow);border-radius:20px;padding:4px 14px;font-size:11px;font-weight:700;display:inline-block}.modal-new-best{text-transform:uppercase;letter-spacing:.04em;background:linear-gradient(135deg,var(--bg-button),var(--bg-button-hover));color:var(--text-on-accent);box-shadow:0 2px 6px var(--accent-glow);border-radius:20px;padding:4px 14px;font-size:11px;font-weight:700;animation:.6s newBestPulse;display:inline-block}@keyframes newBestPulse{0%{opacity:0;transform:scale(.8)}50%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.modal-best{color:var(--text-secondary);margin:0 0 4px;font-size:13px;line-height:1.5}.modal-milestone{color:var(--text-secondary);margin:0 0 4px;font-size:12px;line-height:1.5}.modal-rank-context{background:var(--accent-bg-subtle);border:1.5px solid var(--accent-border-light);box-shadow:0 2px 8px var(--accent-glow);border-radius:10px;margin:8px 0 4px;padding:12px;animation:.4s .3s both rankSlideIn}.modal-rank-header{justify-content:center;align-items:center;gap:8px;margin-bottom:8px;display:flex}@keyframes rankSlideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.modal-rank-icon{color:var(--accent-light);flex-shrink:0;align-items:center;display:flex}.modal-rank-text{color:var(--text-primary);font-size:13px;line-height:1.4}.modal-rank-text strong{color:var(--accent);font-weight:800}.modal-rank-list{flex-direction:column;gap:4px;margin-top:8px;display:flex}.modal-rank-row{border-radius:6px;align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:flex}.modal-rank-row-other{background:var(--accent-bg-subtle);opacity:.7}.modal-rank-row-you{background:var(--accent-bg-light);border:1.5px solid var(--accent-border-light);font-weight:700}.modal-rank-pos{min-width:32px;color:var(--text-secondary);font-weight:600}.modal-rank-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.modal-rank-score{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:700}.modal-success{color:var(--color-success);margin:0;font-size:13px;font-weight:600}.modal-input{border:2px solid var(--accent-border-light);background:var(--modal-bg);width:100%;height:44px;color:var(--text-primary);outline-offset:2px;border-radius:8px;outline:2px solid #0000;padding:0 14px;font-family:inherit;font-size:14px;transition:border-color .2s,box-shadow .2s}.modal-input::placeholder{color:var(--text-secondary);opacity:.5}.modal-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.otp-boxes{justify-content:center;gap:clamp(6px,2vw,10px);max-width:100%;margin:10px 0;display:flex}.otp-box{border:2px solid var(--otp-border);background:var(--otp-bg);width:clamp(38px,12vw,50px);height:clamp(46px,14vw,58px);color:var(--text-primary);text-align:center;outline-offset:2px;caret-color:var(--accent);box-shadow:0 2px 6px var(--button-shadow);border-radius:12px;outline:2px solid #0000;font-family:inherit;font-size:clamp(20px,7vw,28px);font-weight:800;transition:border-color .15s,box-shadow .15s,background .15s}.otp-box::placeholder{color:var(--text-secondary);opacity:.12}.otp-box:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow),0 2px 6px var(--button-shadow);background:var(--modal-bg)}.otp-box-filled{border-color:var(--accent);background:var(--otp-filled-bg)}.sidebar-auth .otp-boxes{gap:6px}.sidebar-auth .otp-box{border-radius:8px;width:38px;height:46px;font-size:22px}.otp-boxes-compact{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;width:100%;display:grid}.otp-boxes-compact .otp-box{aspect-ratio:1/1.08;width:100%;min-width:0;height:auto;font-size:clamp(18px,5vw,24px)}.modal-confirm-body{text-align:center;padding:4px 0}.modal-confirm-title{color:var(--text-primary);margin:0 0 8px;font-size:1.4rem;font-weight:800;line-height:1.2}.modal-confirm-desc{color:var(--text-secondary);margin:0 0 8px;font-size:.95rem;line-height:1.5}.modal-confirm-actions{justify-content:center;gap:12px;margin-top:20px;display:flex}.modal-room-code{margin:0 0 4px;font-family:monospace;font-size:1.1rem;font-weight:600}.modal-primary-actions{gap:8px;margin-top:16px;display:flex}.modal-primary-actions>*{flex:1}.modal-btn-play-again{background:linear-gradient(135deg,var(--bg-button),var(--bg-button-hover));min-width:44px;height:52px;color:var(--text-on-accent);cursor:pointer;width:100%;box-shadow:0 3px 10px var(--button-shadow);border:none;border-radius:10px;justify-content:center;align-items:center;padding:0 28px;font-family:inherit;font-size:16px;font-weight:700;transition:background .15s,transform .1s,box-shadow .15s;display:inline-flex}.modal-btn-play-again:hover{background:var(--bg-button-hover);box-shadow:0 5px 16px var(--button-shadow);transform:translateY(-1px)}.modal-btn-play-again:active{box-shadow:0 2px 6px var(--button-shadow);transform:translateY(0)}.modal-btn-share{border:1px solid var(--bg-card-border);width:100%;height:44px;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:10px;justify-content:center;align-items:center;gap:8px;margin-top:12px;padding:0 20px;font-family:inherit;font-size:14px;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.modal-btn-share:hover{background:var(--bg-card);border-color:var(--accent);color:var(--accent)}.modal-btn-share-copied{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.modal-btn-primary{background:var(--bg-button);min-width:44px;height:44px;color:var(--text-on-accent);cursor:pointer;width:100%;box-shadow:0 2px 6px var(--button-shadow);border:none;border-radius:8px;justify-content:center;align-items:center;padding:0 24px;font-family:inherit;font-size:14px;font-weight:700;transition:background .15s,transform .1s,box-shadow .15s;display:inline-flex}.modal-btn-primary:hover{background:var(--bg-button-hover);box-shadow:0 4px 12px var(--button-shadow);transform:translateY(-1px)}.modal-btn-primary:active{transform:translateY(0)}.modal-btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.modal-btn-secondary{border:2px solid var(--accent-border-light);min-width:44px;height:44px;color:var(--text-primary);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;width:100%;padding:0 24px;font-family:inherit;font-size:14px;font-weight:700;transition:background .15s,border-color .15s,transform .1s;display:inline-flex}.modal-btn-secondary:hover{background:var(--accent-bg-hover);border-color:var(--accent);transform:translateY(-1px)}.modal-btn-secondary:active{transform:translateY(0)}.modal-btn-leaderboard{border:1.5px solid var(--accent-border-light);background:var(--accent-bg-subtle);min-width:44px;height:44px;color:var(--text-primary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:6px;width:100%;padding:0 20px;font-family:inherit;font-size:13px;font-weight:700;transition:background .15s,border-color .15s,transform .1s;display:inline-flex}.modal-btn-leaderboard:hover{background:var(--accent-bg-light);border-color:var(--accent);transform:translateY(-1px)}.modal-btn-leaderboard:active{transform:translateY(0)}.modal-btn-icon{color:var(--accent-light);flex-shrink:0}.modal-link{color:var(--text-secondary);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;margin-top:10px;padding:4px 0;font-family:inherit;font-size:13px;font-weight:600;text-decoration:underline;transition:color .15s;display:inline-block}.modal-link:hover{color:var(--accent)}.modal-email-section{flex-direction:column;gap:10px;margin-top:12px;display:flex}.modal-actions{gap:8px;margin-top:14px;display:flex}.modal-actions>*{flex:1}.modal-divider{color:var(--text-secondary);text-transform:lowercase;align-items:center;gap:12px;margin:14px 0;font-size:12px;font-weight:600;display:flex}.modal-divider:before,.modal-divider:after{content:"";background:var(--accent-border-medium);flex:1;height:1px}.auth-section{background:var(--bg-card);border:1px solid var(--bg-card-border);border-radius:12px;margin-top:20px;padding:16px 18px;box-shadow:0 1px 3px #0000000f,0 4px 12px #0000000a}.login-prompt{background:linear-gradient(135deg,var(--bg-button),var(--bg-button-hover));color:var(--text-on-accent);text-align:center;box-shadow:0 2px 6px var(--accent-glow);border-radius:8px;margin-top:8px;padding:10px 14px;font-size:13px;font-weight:700;animation:2s infinite pulse}@keyframes pulse{50%{opacity:.5}}.grid-size-control{background:var(--bg-segmented);width:fit-content;box-shadow:0 2px 6px var(--button-shadow),inset 0 1px 0 #ffffff14;border-radius:10px;justify-content:center;align-items:center;gap:0;margin:0;padding:3px;display:flex}.grid-size-option{min-width:60px;height:36px;color:var(--segmented-text);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0 18px;font-family:inherit;font-size:13px;font-weight:700;line-height:1;transition:background .2s,color .2s,box-shadow .2s;display:inline-flex}.grid-size-option:hover:not(.grid-size-active){color:var(--segmented-text-hover);background:#ffffff0f}.grid-size-active{background:var(--accent);color:var(--text-on-accent);box-shadow:0 2px 6px var(--accent-glow)}.confetti-container{pointer-events:none;z-index:200;width:100vw;height:100vh;position:fixed;top:0;left:0;overflow:hidden}.confetti-piece{opacity:1;border-radius:2px;animation:linear forwards confettiFall;position:absolute;top:-20px}@keyframes confettiFall{0%{opacity:1;transform:translateY(0)translate(0)rotate(0)}25%{opacity:1}to{transform:translateY(105vh)translateX(var(--confetti-drift,0px))rotate(720deg);opacity:0}}.sidebar-toggle{color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;margin-top:10px;font-size:.85rem;font-weight:600;display:flex}.sidebar-toggle input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent,#f59e0b);cursor:pointer}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.confetti-piece,.confetti-container{animation:none!important;display:none!important}.swipe-hint-hand,.swipe-arrow{animation:none!important}*{transition-duration:.01ms!important;animation-duration:.01ms!important}.modal-backdrop,.overlay,.swipe-hint-overlay{-webkit-backdrop-filter:none!important}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:focus-visible,.ui-btn:focus-visible,.game-btn:focus-visible,.grid-size-option:focus-visible,.modal-btn-play-again:focus-visible,.mp-result-btn-primary:focus-visible,.mp-result-btn-secondary:focus-visible,.mp-find-btn:focus-visible,.mp-friend-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:0 0 0 4px var(--accent-glow)}@supports (padding:env(safe-area-inset-left)){@media (max-width:1079px){.page-layout{padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom)}}}.loader{border:3px solid var(--accent-bg-light);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.6s linear infinite loaderSpin}.loader-center{margin:20px auto}@keyframes loaderSpin{to{transform:rotate(360deg)}}.auth-success{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;padding:16px;display:flex}.auth-success h1{font-family:var(--font-fredoka),"Fredoka",sans-serif;color:var(--text-primary);margin:0;font-size:2.5rem;font-weight:800}.auth-success p{color:var(--text-secondary);margin:0}.auth-success-link{background:var(--bg-button);height:44px;color:var(--text-on-accent);border-radius:10px;justify-content:center;align-items:center;padding:0 20px;font-family:inherit;font-size:15px;font-weight:700;text-decoration:none;transition:background .15s;display:inline-flex}.auth-success-link:hover{background:var(--bg-button-hover)}.landscape-blocker{display:none}@media screen and (max-width:900px) and (orientation:landscape){.landscape-blocker{z-index:10000;background:var(--bg-page,#fef3c7);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex;position:fixed;inset:0}.landscape-blocker-icon{font-size:48px;animation:1.5s ease-in-out infinite rotateHint}.landscape-blocker-text{color:var(--text-primary);font-size:1.1rem;font-weight:700}@keyframes rotateHint{0%,to{transform:rotate(0)}50%{transform:rotate(90deg)}}}@media screen and (max-width:520px){body{margin:0;padding:0 16px}.container{width:100%}.brand-logo{height:72px}.title-section{padding:12px 0 6px}.game-title{font-size:3.2rem}.game-intro{font-size:12px}.below-board-controls{gap:10px;margin-top:10px}.header-new-game-btn{height:44px;padding:0 14px;font-size:12px}.score-row{margin-bottom:8px}.score-box{border-radius:10px;min-width:60px;padding:6px 14px 5px}.score-box span{font-size:9px}.score-box strong{font-size:20px}.game-btn,.size-btn{min-width:44px;height:44px;padding:0 14px;font-size:12px;line-height:44px}.grid-size-control{margin:0}.grid-size-option{min-width:50px;height:44px;padding:0 14px;font-size:12px}.mobile-hint{display:block}.desktop-hint{display:none}.game-hint{margin-top:8px;font-size:12px}.bottom-section{margin-top:14px}.auth-section,.how-to-play,.leaderboard-section{margin-top:12px}.overlay h2{font-size:2rem}.overlay button{min-width:44px;height:44px;padding:0 14px;font-size:12px;line-height:44px}.modal-card{max-width:340px;padding:0 18px 20px}.mp-result-card-inner{max-width:360px}.modal-result-banner{margin:0 -18px;padding:18px 18px 10px}.mp-result-banner{margin:0 -18px 16px;padding:20px 18px 16px}.mp-result-title{font-size:1.65rem}.mp-score-value{font-size:1.6rem}.mp-result-scores{gap:10px}.mp-result-actions-row{grid-template-columns:minmax(0,1fr)}.modal-result{font-size:1.6rem}.modal-score{font-size:2.8rem}.modal-btn-play-again{height:48px;font-size:15px}.modal-rank-context{padding:8px}.modal-rank-text{font-size:12px}.modal-rank-row{padding:5px 8px;font-size:11px}.lb-tab{min-height:44px}}@media screen and (max-width:360px){body{padding:0 10px}.brand-logo{height:60px}.title-section{padding:8px 0 4px}.game-title{font-size:2.6rem}.game-intro{font-size:11px}.below-board-controls{gap:8px;margin-top:8px}.header-new-game-btn{border-radius:6px;height:44px;padding:0 12px;font-size:11px}.score-box{border-radius:8px;min-width:52px;padding:5px 10px 4px}.score-box span{font-size:8px}.score-box strong{font-size:17px}.grid-size-control{border-radius:8px;margin:0;padding:2px}.grid-size-option{border-radius:6px;min-width:44px;height:44px;padding:0 12px;font-size:11px}.modal-card{max-width:310px;padding:0 14px 16px}.mp-result-card-inner{max-width:310px}.modal-result-banner{margin:0 -14px;padding:14px 14px 8px}.mp-result-banner{margin:0 -14px 14px;padding:16px 14px 14px}.mp-result-title{font-size:1.45rem}.mp-result-subtitle,.mp-friendly-label,.mp-rematch-hint,.mp-elo-rating{font-size:.86rem}.mp-score-column{padding:12px 10px}.mp-score-value{font-size:1.35rem}.mp-result-scores{grid-template-columns:minmax(0,1fr);gap:8px}.mp-score-vs{justify-self:center}.modal-result{font-size:1.4rem}.modal-score{font-size:2.2rem}.modal-btn-play-again,.modal-btn-primary,.modal-btn-secondary{height:44px;font-size:14px}.modal-btn-leaderboard{height:44px;font-size:12px}.modal-rank-context{padding:6px}.modal-rank-header{gap:4px;margin-bottom:6px}.modal-rank-text{font-size:11px}.modal-rank-row{gap:4px;padding:4px 6px;font-size:10px}.modal-rank-pos{min-width:28px}.lb-ghost-cta{font-size:9px}}@media screen and (min-width:521px) and (max-width:1079px){body{padding:0 24px}.container{max-width:520px}.container-wide{max-width:680px}.brand-logo{height:100px}.title-section{padding:20px 0 10px}.modal-card{width:92%;max-width:420px}.mp-lobby{max-width:480px;padding:40px 28px 28px}}.modal-btn-google{border:1.5px solid var(--bg-card-border);color:#3c4043;cursor:pointer;background:#fff;border-radius:10px;justify-content:center;align-items:center;gap:10px;width:100%;min-width:44px;height:44px;padding:0 20px;font-family:inherit;font-size:14px;font-weight:600;transition:background .15s,border-color .15s,box-shadow .15s,transform .1s;display:inline-flex;box-shadow:0 1px 3px #0000000f}.modal-btn-google:hover{background:var(--accent-bg-subtle);border-color:var(--accent-border-light);transform:translateY(-1px);box-shadow:0 3px 10px #00000014}.modal-btn-google:active{background:var(--accent-bg-light);transform:translateY(0);box-shadow:0 1px 3px #0000000f}.modal-btn-google-icon{flex-shrink:0}.theme-switcher{justify-content:center;align-items:center;gap:8px;margin:0;display:flex}.theme-option{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:6px;transition:border-color .2s,transform .1s;display:flex}.theme-option:hover{border-color:var(--accent-border-light);transform:translateY(-1px)}.theme-option-active{border-color:var(--accent);box-shadow:0 2px 8px var(--accent-glow)}.theme-preview{border-radius:8px;grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:3px;width:44px;height:44px;padding:4px;display:grid;box-shadow:0 1px 4px #00000026}.theme-preview-tile{border-radius:3px}.theme-label{color:var(--text-secondary);letter-spacing:.02em;font-size:10px;font-weight:700}.theme-option-active .theme-label{color:var(--accent)}.sidebar-section .theme-switcher,.mobile-menu-section .theme-switcher{justify-content:flex-start}.sidebar-section .theme-switcher{flex-wrap:wrap;gap:6px}.sidebar-section .theme-option{padding:4px}.sidebar-section .theme-preview{width:36px;height:36px}.sidebar-section .theme-label{font-size:9px}.mobile-menu-trigger{display:none}@media (max-width:1079px){.mobile-menu-trigger{z-index:900;background:var(--bg-score);cursor:pointer;width:52px;height:52px;box-shadow:0 4px 16px var(--button-shadow);border:none;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:5px;transition:background .15s,transform .15s;display:flex;position:fixed;bottom:24px;right:20px}.mobile-menu-trigger:active{background:var(--bg-button-hover);transform:scale(.93)}.mobile-menu-trigger span{background:var(--text-label);border-radius:2px;width:22px;height:2.5px;display:block}}.mobile-menu-backdrop{display:none}@media (max-width:1079px){.mobile-menu-backdrop{background:var(--modal-backdrop);z-index:1000;animation:.2s backdropFadeIn;display:block;position:fixed;inset:0}}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}.mobile-menu-drawer{display:none}@media (max-width:1079px){.mobile-menu-drawer{z-index:1001;background:var(--bg-page);max-height:88dvh;box-shadow:0 -4px 32px var(--button-shadow);border-radius:20px 20px 0 0;flex-direction:column;transition:transform .3s cubic-bezier(.32,.72,0,1);display:flex;position:fixed;bottom:0;left:0;right:0;overflow:hidden;transform:translateY(100%)}.mobile-menu-drawer.open{transform:translateY(0)}}.mobile-menu-header{border-bottom:1px solid var(--accent-border-medium);flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 20px 14px;display:flex}.mobile-menu-title{font-family:var(--font-fredoka),"Fredoka",sans-serif;color:var(--text-primary);letter-spacing:.02em;font-size:1.2rem;font-weight:700}.mobile-menu-close{background:var(--accent-bg-subtle);cursor:pointer;width:32px;height:32px;color:var(--text-secondary);border:none;border-radius:8px;justify-content:center;align-items:center;transition:background .15s;display:flex}.mobile-menu-close:active{background:var(--accent-bg-light)}.mobile-menu-body{-webkit-overflow-scrolling:touch;flex:1;padding:0 0 32px;overflow-y:auto}.mobile-menu-auth{justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.mobile-menu-user{align-items:center;gap:10px;min-width:0;display:flex}.mobile-menu-avatar{background:var(--accent);width:36px;height:36px;color:var(--text-on-accent);font-family:var(--font-fredoka),"Fredoka",sans-serif;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;font-weight:700;display:flex}.mobile-menu-username{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:700;overflow:hidden}.mobile-menu-signout{background:var(--accent-bg-subtle);border:1px solid var(--accent-border-medium);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:7px 14px;font-family:inherit;font-size:13px;font-weight:700;transition:background .15s;display:inline-flex}.mobile-menu-signout:hover{background:var(--accent-bg-light)}.mobile-menu-signin{background:var(--bg-button);width:100%;color:var(--text-on-accent);cursor:pointer;border:none;border-radius:10px;padding:12px;font-family:inherit;font-size:15px;font-weight:700}.mobile-menu-signin:active{background:var(--bg-button-hover)}.mobile-menu-signin-form{flex-direction:column;gap:10px;width:100%;display:flex}.mobile-menu-signin-label{color:var(--text-secondary);margin:0;font-size:13px}.mobile-menu-signin-input{border:2px solid var(--accent-border-medium);background:var(--bg-page);width:100%;color:var(--text-body);outline-offset:2px;box-sizing:border-box;border-radius:10px;outline:2px solid #0000;padding:10px 12px;font-size:15px}.mobile-menu-signin-input:focus{border-color:var(--accent)}.mobile-menu-otp-input{letter-spacing:.3em;text-align:center;font-size:20px}.mobile-menu-signin-error{color:var(--color-danger);margin:0;font-size:12px}.mobile-menu-signin-actions{gap:8px;display:flex}.mobile-menu-signin-back{background:var(--accent-bg-light);color:var(--text-secondary);cursor:pointer;border:none;border-radius:10px;flex:none;padding:10px 14px;font-size:14px;font-weight:600}.mobile-menu-signin-submit{background:var(--bg-button);color:var(--text-on-accent);cursor:pointer;border:none;border-radius:10px;flex:1;padding:10px;font-size:15px;font-weight:700}.mobile-menu-signin-submit:disabled{opacity:.5;cursor:default}.mobile-menu-signin-submit:active:not(:disabled){background:var(--bg-button-hover)}.mobile-menu-divider{background:var(--accent-border-medium);height:1px;margin:0 20px}.mobile-menu-section{padding:16px 20px 4px}.mobile-menu-section-title{font-family:var(--font-fredoka),"Fredoka",sans-serif;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;margin:0 0 12px;font-size:1rem;font-weight:700}.install-banner{z-index:800;background:var(--modal-bg,#fffbeb);border:1px solid var(--accent-border-medium);border-radius:14px;width:calc(100% - 32px);max-width:400px;padding:14px 20px;animation:.4s ease-out installSlideUp;position:fixed;bottom:80px;left:50%;transform:translate(-50%);box-shadow:0 4px 24px #00000026}@media (min-width:1080px){.install-banner{left:calc(var(--desktop-sidebar-width) + var(--desktop-shell-gutter) + var(--desktop-shell-edge) + ( 100% - ( (var(--desktop-sidebar-width)*2) + (var(--desktop-shell-gutter)*2) + (var(--desktop-shell-edge)*2)))/2)}}.install-banner-content{align-items:center;gap:12px;display:flex}.install-banner-icon{border-radius:10px;flex-shrink:0;width:44px;height:44px}.install-banner-text{flex:1;min-width:0}.install-banner-text strong{color:var(--text-primary);font-size:.95rem;font-weight:700;display:block}.install-banner-text span{color:var(--text-secondary);font-size:.82rem}.install-banner-share{font-size:1.1em}.install-banner-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.install-banner-btn{background:linear-gradient(135deg,var(--bg-button),var(--bg-button-hover));color:var(--text-on-accent);cursor:pointer;border:none;border-radius:8px;padding:8px 20px;font-family:inherit;font-size:.9rem;font-weight:700;transition:transform .1s}.install-banner-btn:active{transform:scale(.96)}.install-banner-close{width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.1rem;transition:background .15s;display:flex}.install-banner-close:hover{background:var(--accent-bg-subtle)}@keyframes installSlideUp{0%{opacity:0;transform:translate(-50%)translateY(40px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.stats-page{background:var(--bg-page);min-height:100dvh;padding:20px 16px 40px}.stats-shell{flex-direction:column;gap:0;max-width:1080px;margin:0 auto;display:flex}.stats-hero{flex-direction:column;gap:14px;padding:0 0 18px;display:flex}.stats-hero-identity{align-items:flex-start;gap:14px;min-width:0;display:flex}.stats-hero-avatar{background:linear-gradient(135deg,var(--bg-button),var(--bg-button-hover));width:68px;height:68px;color:var(--text-on-accent);font-family:var(--font-fredoka),"Fredoka",sans-serif;box-shadow:0 8px 20px var(--button-shadow);border-radius:20px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.75rem;font-weight:700;display:flex}.stats-eyebrow,.stats-card-label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);margin:0;font-size:.78rem;font-weight:800}.stats-title{font-family:var(--font-fredoka),"Fredoka",sans-serif;color:var(--text-primary);margin:6px 0 8px;font-size:clamp(1.85rem,3vw,3rem);line-height:1}.stats-subtitle{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:10px;min-width:0;margin:0;font-size:.98rem;font-weight:600;display:flex}.stats-subtitle-dot{background:var(--accent);border-radius:999px;flex-shrink:0;width:6px;height:6px}.stats-hero-actions{justify-content:flex-start;display:flex}.stats-secondary-link{border:1px solid var(--accent-border-medium);min-height:38px;color:var(--text-secondary);background:0 0;border-radius:8px;justify-content:center;align-items:center;padding:0 14px;font-size:.92rem;font-weight:700;text-decoration:none;display:inline-flex}.stats-secondary-link:hover{background:var(--accent-bg-subtle);color:var(--text-primary)}.stats-rank-panel,.stats-kpi-grid,.stats-main-grid{border-top:1px solid var(--accent-border-medium);gap:0;margin-top:20px;padding-top:20px;display:grid}.stats-rank-card{border-bottom:1px solid var(--accent-border-medium);border-radius:0;padding:0 0 18px}.stats-rank-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.stats-rank-badge{font-family:var(--font-fredoka),"Fredoka",sans-serif;margin-top:4px;font-size:1.25rem;font-weight:700}.stats-rank-score{font-family:var(--font-fredoka),"Fredoka",sans-serif;color:var(--text-primary);font-size:2.2rem;font-weight:700;line-height:1}.stats-rank-meta,.stats-card-copy,.stats-panel-copy,.stats-goal-copy,.stats-empty-copy,.stats-activity-time{color:var(--text-secondary);margin:0;font-size:.95rem;line-height:1.6}.stats-hero-grid,.stats-kpi-grid,.stats-split-grid{gap:0;display:grid}.stats-highlight-card,.stats-kpi-card,.stats-panel,.stats-best-day-card{border-radius:0;padding:16px 0}.stats-highlight-value,.stats-kpi-value,.stats-goal-value,.stats-best-day-title,.stats-split-item strong{color:var(--text-primary);font-family:var(--font-fredoka),"Fredoka",sans-serif;margin-top:6px;font-weight:700;line-height:1;display:block}.stats-highlight-value{font-size:1.6rem}.stats-highlight-text{font-size:1.05rem;line-height:1.2}.stats-kpi-value{font-size:1.7rem}.stats-panel-wide{grid-column:span 1}.stats-panel-header{flex-direction:column;gap:6px;margin-bottom:12px;display:flex}.stats-panel-title{font-family:var(--font-fredoka),"Fredoka",sans-serif;color:var(--text-primary);margin:2px 0 0;font-size:1.15rem;line-height:1.15}.stats-panel-meta{color:var(--text-secondary);font-size:.9rem;font-weight:700}.stats-chart-card{border:1px solid var(--accent-border-medium);background:var(--accent-bg-subtle);border-radius:12px;margin-top:10px;padding:14px}@supports (color:color-mix(in lab, red, red)){.stats-chart-card{background:color-mix(in srgb,var(--accent-bg-subtle)55%,transparent 45%)}}.stats-chart-card{color:var(--accent)}.stats-chart{width:100%;height:150px;display:block;overflow:visible}.stats-chart-labels{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;gap:12px;margin-top:10px;font-size:.82rem;font-weight:700;display:flex}.stats-goal-list,.stats-activity-list{flex-direction:column;gap:0;display:flex}.stats-goal-item,.stats-activity-item,.stats-split-item{border:none;border-bottom:1px solid var(--accent-border-medium);background:0 0;border-radius:0;padding:12px 0}.stats-goal-title,.stats-split-item span,.stats-activity-title{color:var(--text-primary);font-weight:700}.stats-goal-value{font-size:1.45rem}.stats-split-item strong{font-size:1.25rem}.stats-split-item-win{border-left:3px solid #16a34a8c;padding-left:12px}.stats-split-item-loss{border-left:3px solid #dc262680;padding-left:12px}.stats-activity-layout{gap:4px;display:grid}.stats-best-day-title{font-size:1.2rem;line-height:1.15}.stats-activity-item{justify-content:space-between;align-items:center;gap:14px;display:flex}.stats-highlight-card:last-child,.stats-kpi-card:last-child,.stats-goal-item:last-child,.stats-activity-item:last-child,.stats-split-item:last-child{border-bottom:none}.stats-highlight-card,.stats-kpi-card{border-bottom:1px solid var(--accent-border-medium)}.stats-panel{border-top:1px solid var(--accent-border-medium);margin-top:18px;padding-top:18px}.stats-panel:first-child{border-top:none;margin-top:0;padding-top:0}.stats-activity-title{margin:0 0 4px;font-size:.98rem}.stats-activity-badge{background:var(--accent-bg-subtle);color:var(--accent);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:6px 10px;font-size:.78rem;font-weight:800;display:inline-flex}.stats-empty-state{flex-direction:column;justify-content:center;gap:6px;min-height:120px;display:flex}.stats-empty-state-inline{min-height:0;padding:12px 0 0}.stats-empty-title{color:var(--text-primary);font-family:var(--font-fredoka),"Fredoka",sans-serif;margin:0;font-size:1.15rem}@media (min-width:720px){.stats-page{padding:24px 24px 52px}.stats-hero-grid,.stats-kpi-grid,.stats-split-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}.stats-activity-layout,.stats-rank-panel{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);column-gap:28px}.stats-highlight-card:nth-last-child(-n+2),.stats-kpi-card:nth-last-child(-n+2),.stats-split-item:nth-last-child(-n+2){border-bottom:none}}@media (min-width:1024px){.stats-page{padding:28px 32px 64px}.stats-hero{flex-direction:row;justify-content:space-between;align-items:flex-start}.stats-kpi-grid,.stats-hero-grid{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:24px}.stats-main-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}.stats-panel-wide{grid-column:span 2}.stats-panel-header{flex-direction:row;justify-content:space-between;align-items:flex-start}.stats-highlight-card,.stats-kpi-card{border-bottom:none}}@media (max-width:719px){.stats-hero-identity{align-items:center;gap:16px}.stats-hero-avatar{border-radius:20px;width:72px;height:72px;font-size:1.8rem}.stats-hero{padding-bottom:16px}.stats-title{font-size:1.9rem}.stats-subtitle{gap:8px;font-size:.9rem}.stats-rank-panel,.stats-main-grid,.stats-kpi-grid{margin-top:16px;padding-top:16px}.stats-rank-row,.stats-activity-item{flex-direction:column;align-items:flex-start}.stats-panel-meta{display:block}}.sidebar-auth-actions{flex-flow:wrap;flex:auto;justify-content:flex-end;align-items:center;gap:8px;width:auto;max-width:100%;display:flex}.sidebar-profile-link{border:1px solid var(--accent-border-medium);color:var(--text-secondary);box-sizing:border-box;text-align:center;white-space:nowrap;background:0 0;border-radius:8px;width:auto;padding:7px 14px;font-family:inherit;font-size:13px;font-weight:700;text-decoration:none;transition:background .15s,color .15s;display:block}.sidebar-profile-link:hover{background:var(--accent-bg-subtle);color:var(--text-primary)}.mobile-menu-auth-actions{flex-flow:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;display:flex}.mobile-menu-profile-link{border:1px solid var(--accent-border-medium);color:var(--text-secondary);white-space:nowrap;background:0 0;border-radius:8px;justify-content:center;align-items:center;padding:7px 14px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.mobile-menu-profile-link:active,.mobile-menu-profile-link:hover{background:var(--accent-bg-light)}.multiplayer-boards-container{width:100%;margin-top:20px}.boards-split{flex-direction:column;align-items:center;gap:18px;width:100%;display:flex}.mp-board-slot{flex-direction:column;align-items:center;width:100%;transition:opacity .25s;display:flex;position:relative}.mp-board-label{color:var(--text-primary);font-family:var(--font-racing-sans-one),var(--font-fredoka),sans-serif;letter-spacing:.04em;text-transform:uppercase;font-size:.98rem;font-weight:400;line-height:1}.mp-side-stage{flex-direction:column;flex:0 0 118px;justify-content:flex-start;align-items:center;gap:8px;width:118px;transition:opacity .3s;display:flex}.mp-side-stage.dimmed{opacity:.55}.mp-versus-text{color:var(--accent);font-family:var(--font-racing-sans-one),var(--font-fredoka),sans-serif;letter-spacing:.03em;text-shadow:0 8px 18px #f59e0b38;font-size:clamp(1.9rem,5vw,2.5rem);line-height:1}.mp-opponent-side-card{width:100%;box-shadow:none;cursor:pointer;background:0 0;border:none;border-radius:0;flex-direction:column;align-items:center;gap:8px;padding:0;transition:transform .2s;display:flex}.mp-opponent-side-card:hover,.mp-opponent-side-card:focus-visible{transform:translateY(-1px)}.mp-opponent-side-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mp-opponent-side-card .opponent-game-container{border-radius:8px;width:100%}.mp-opponent-side-name{text-overflow:ellipsis;white-space:nowrap;width:100%;color:var(--text-primary);font-family:var(--font-racing-sans-one),var(--font-fredoka),sans-serif;letter-spacing:.03em;text-align:center;font-size:.92rem;line-height:1;overflow:hidden}@media (max-width:900px){.multiplayer-boards-container{margin-top:12px}.mp-opponent-desktop{display:none!important}}@media (min-width:901px){.boards-split{flex-direction:row;justify-content:center;align-items:flex-start;gap:24px}.mp-board-slot{flex:0 auto}.mp-opponent-desktop{display:flex}.mp-opponent-mobile-card{display:none}}.mp-lobby{text-align:center;flex-direction:column;align-items:center;width:100%;max-width:460px;margin:0 auto;padding:48px 24px 32px;display:flex}.mp-auth-gate{max-width:520px;padding-top:28px}.mp-auth-card{border:1px solid var(--accent-border-light);background:linear-gradient(180deg,var(--accent-bg-subtle)0%,var(--bg-card)100%);width:min(100%,360px);box-shadow:0 18px 40px var(--board-shadow-a),inset 0 1px 0 #ffffff80;border-radius:24px;flex-direction:column;align-items:center;padding:24px 22px 22px;display:flex}.mp-auth-eyebrow{background:var(--accent-bg-light);color:var(--accent);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;justify-content:center;align-items:center;margin-bottom:12px;padding:6px 12px;font-size:.72rem;font-weight:800;display:inline-flex}.mp-auth-copy{max-width:28ch;margin-left:auto;margin-right:auto}.mp-auth-actions{max-width:none;margin-top:22px}.mp-auth-inline-signin{width:100%}.mp-auth-card .modal-btn-leaderboard,.mp-auth-card .mp-friend-btn{border-radius:14px;min-height:52px}.mp-lobby-title{font-family:var(--font-fredoka),"Fredoka",sans-serif;color:var(--text-primary);margin:0;font-size:2.1rem;font-weight:700}.mp-lobby-subtitle{max-width:34ch;color:var(--text-secondary);margin:10px 0 0;font-size:.98rem;line-height:1.6}.mp-lobby-buttons{flex-direction:column;gap:10px;width:100%;max-width:300px;margin-top:20px;display:flex}.mp-find-btn{background:linear-gradient(135deg,var(--bg-button),var(--bg-button-hover));width:100%;height:52px;color:var(--text-on-accent);cursor:pointer;box-shadow:0 3px 10px var(--button-shadow);border:none;border-radius:12px;justify-content:center;align-items:center;padding:0 28px;font-family:inherit;font-size:16px;font-weight:700;transition:transform .1s,box-shadow .15s,background .15s;display:inline-flex}.mp-find-btn:hover{background:var(--bg-button-hover);box-shadow:0 5px 18px var(--accent-border-light);transform:translateY(-1px)}.mp-find-btn:active{box-shadow:0 2px 6px var(--accent-border-light);transform:translateY(0)}.mp-friend-btn{border:2px solid var(--accent);width:100%;height:52px;color:var(--accent);cursor:pointer;background:0 0;border-radius:14px;justify-content:center;align-items:center;gap:8px;font-family:inherit;font-size:16px;font-weight:700;transition:transform .1s,box-shadow .15s,background .15s,color .15s;display:inline-flex}.mp-friend-btn:hover{background:var(--accent);color:var(--text-on-accent);box-shadow:0 5px 18px var(--accent-border-light);transform:translateY(-1px)}.mp-friend-btn:active{box-shadow:0 2px 6px var(--accent-border-light);transform:translateY(0)}.mp-back-btn{color:var(--text-secondary);font-family:var(--font-fredoka),"Fredoka",sans-serif;cursor:pointer;text-underline-offset:3px;background:0 0;border:none;margin-top:16px;font-size:14px;font-weight:600;text-decoration:underline;transition:color .15s;display:inline-block}.mp-back-btn:hover{color:var(--text-primary)}.mp-invite-url-display{background:var(--bg-card);border:1.5px solid var(--bg-card-border);text-align:center;word-break:break-all;cursor:pointer;border-radius:12px;width:100%;margin-top:12px;padding:12px 16px;transition:border-color .15s,background .15s}.mp-invite-url-display:hover{border-color:var(--accent)}.mp-invite-url{color:var(--text-secondary);-webkit-user-select:all;user-select:all;font-family:SF Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:.85rem}.mp-stats-card{background:var(--bg-card);border:1px solid var(--accent-border-medium);text-align:left;border-radius:22px;flex-direction:column;gap:16px;width:100%;margin-top:22px;padding:22px;display:flex;box-shadow:0 12px 32px #0f172a14,0 2px 8px #0f172a0f}.mp-stats-card-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.mp-stats-card-identity{flex-direction:column;gap:6px;min-width:0;display:flex}.mp-stats-card-caption{color:var(--text-secondary);letter-spacing:.1em;text-transform:uppercase;font-size:.78rem;font-weight:800}.mp-stats-card-name{color:var(--text-primary);font-size:clamp(1.4rem,4vw,1.9rem);font-weight:800;line-height:1}.mp-stats-elo-hero{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:6px;display:flex}.mp-stats-elo-number{color:var(--accent);font-family:var(--font-fredoka),"Fredoka",sans-serif;font-variant-numeric:tabular-nums;font-size:clamp(2rem,5vw,2.8rem);font-weight:700;line-height:.95}.mp-stats-pills{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.mp-stats-pill{border:1px solid var(--bg-card-border);background:var(--bg-card);border-radius:16px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.mp-stats-pill-win{background:#22c55e14;border-color:#22c55e33}.mp-stats-pill-loss{background:#ef444414;border-color:#ef44442e}.mp-stats-pill-label{color:var(--text-secondary);letter-spacing:.08em;text-transform:uppercase;font-size:.74rem;font-weight:800}.mp-stats-pill-value{color:var(--text-primary);font-family:var(--font-fredoka),"Fredoka",sans-serif;font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:700;line-height:1}.mp-stats-bottom{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.mp-stats-bottom-item{background:var(--accent-bg-light);border:1px solid var(--bg-card-border);border-radius:18px;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.mp-stats-bottom-label{color:var(--text-secondary);letter-spacing:.08em;text-transform:uppercase;font-size:.76rem;font-weight:800}.mp-stats-bottom-value{color:var(--text-primary);font-family:var(--font-fredoka),"Fredoka",sans-serif;font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:700;line-height:1}.mp-searching{text-align:center;flex-direction:column;align-items:center;margin-top:80px;padding:48px 24px;display:flex}.mp-searching-title{color:var(--text-secondary);margin:0 0 8px;font-size:20px;font-weight:800}.mp-searching-rank{align-items:center;display:inline-flex}.mp-search-timer{text-align:center;margin:16px 0}.mp-search-timer-text{color:var(--text-secondary);margin:0;font-size:15px}.mp-search-timer-count{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:700}.mp-matchmaking-option{width:min(100%,360px);color:var(--text-secondary);text-align:left;align-items:flex-start;gap:10px;margin-top:14px;font-size:.95rem;line-height:1.45;display:flex}.mp-matchmaking-option input{width:18px;height:18px;accent-color:var(--accent);flex-shrink:0;margin:2px 0 0}.mp-matchmaking-option span{color:var(--text-primary);font-weight:700}.mp-matchmaking-option-searching{justify-content:center;margin-top:0;margin-bottom:18px}.mp-hud{background:var(--bg-card);border:1px solid var(--accent-border-medium);border-radius:20px;flex-direction:row;align-items:center;gap:12px;width:100%;max-width:760px;margin:0 auto 14px;padding:16px 18px;display:flex;box-shadow:0 10px 28px #0f172a14,0 2px 8px #0f172a0d}.mp-hud-player{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.mp-hud-opponent{text-align:right;flex-direction:column;flex:1;align-items:flex-end;gap:6px;min-width:0;display:flex}.mp-hud-opponent-meta{justify-content:flex-end;align-items:center;gap:8px;width:100%;display:flex}.mp-hud-name{text-overflow:ellipsis;white-space:nowrap;max-width:150px;color:var(--text-primary);text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:800;overflow:hidden}.mp-hud-opponent-name{flex-shrink:1;max-width:none}.mp-hud-score{font-family:var(--font-fredoka),"Fredoka",sans-serif;color:var(--accent);font-variant-numeric:tabular-nums;font-size:1.7rem;font-weight:700;line-height:1}.mp-hud-status{align-items:center;gap:4px;font-size:.68rem;font-weight:700;display:flex}.mp-hud-status.connected{color:var(--color-connected)}.mp-hud-status.disconnected{color:var(--color-danger)}.mp-hud-status.connecting{color:var(--accent)}.mp-hud-timer{text-align:center;flex-shrink:0;min-width:116px;padding:0 12px}.mp-hud-timer-display{font-family:var(--font-fredoka),"Fredoka",sans-serif;font-variant-numeric:tabular-nums;color:var(--text-primary);font-size:2.4rem;font-weight:700;line-height:1;transition:color .3s}.mp-hud-timer-display.warning,.mp-hud-timer-display.critical{color:var(--color-danger)}.mp-hud-timer-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.12em;margin-top:2px;font-size:.62rem;font-weight:700}.mp-move-window{flex-direction:column;align-items:center;gap:10px;width:100%;max-width:760px;margin:-4px auto 0;display:flex}.mp-move-window-track{background:var(--accent-bg-light);border:1px solid var(--accent-border-medium);border-radius:999px;width:100%;height:20px;padding:3px;overflow:hidden}.mp-move-window-bar{background:linear-gradient(90deg,var(--bg-button)0%,var(--accent)100%);transform-origin:0;border-radius:999px;width:100%;height:100%;animation-name:mpMoveWindowDrain;animation-timing-function:linear;animation-fill-mode:forwards}.mp-move-window-label{color:var(--text-secondary);text-align:center;font-size:.95rem;font-weight:700}@keyframes mpMoveWindowDrain{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.mp-status-bar{text-align:center;background:var(--accent-bg-light);width:100%;max-width:760px;color:var(--text-secondary);border:1px solid var(--accent-border-medium);border-radius:14px;padding:12px 18px;font-size:14px;font-weight:700;animation:.4s both fadeIn}.multiplayer-boards-container{flex-direction:column;gap:16px;width:100%;margin-top:16px;padding-top:12px;display:flex}.mp-boards-wrapper{flex-direction:column;align-items:center;gap:16px;width:100%;display:flex}.boards-split{flex-wrap:nowrap;justify-content:center;align-items:stretch;gap:14px;width:100%;max-width:760px;display:flex}.mp-board-stage{flex-direction:column;flex:1 1 0;align-items:center;gap:10px;min-width:0;max-width:100%;display:flex}.mp-local-board-slot,.mp-local-board-slot .board-section{width:100%}.mp-local-board-slot .game-container{justify-content:center;display:flex}.board-section-mini{width:100%;max-width:96px}.board-section-mini .game-container{justify-content:center;display:flex}.board-section-mini .game-canvas,.board-section-mini .game-skeleton{box-shadow:none;border-radius:8px}.board-section-mini .overlay h2{font-size:1rem}.mp-board-slot{touch-action:none;flex-direction:column;align-items:center;width:100%;max-width:100%;transition:opacity .3s;display:flex;position:relative}.mp-board-slot.dimmed{opacity:.55}.mp-opponent-desktop{display:none}.opponent-game-container{border-radius:16px;position:relative;overflow:hidden}.offline-overlay{background:var(--overlay-neutral);-webkit-backdrop-filter:blur(4px);color:var(--text-secondary);z-index:20;justify-content:center;align-items:center;font-size:18px;font-weight:700;display:flex;position:absolute;inset:0}.mp-leave-bottom-btn{border:1.5px solid var(--accent-border-medium);width:100%;max-width:400px;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:10px;margin:0 auto;padding:12px;font-family:inherit;font-size:14px;font-weight:700;transition:background .15s,border-color .15s,color .15s;display:block}.mp-leave-bottom-btn:hover{color:var(--color-danger);background:#dc26260f;border-color:#dc26264d}.mini-grid{aspect-ratio:1;border-radius:10px;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;width:100%;padding:6px;display:grid}.mini-tile{border-radius:6px;min-width:0;min-height:0}.mp-opponent-mobile-card{border:1px solid var(--accent-border-medium);background:var(--bg-card);cursor:pointer;border-radius:16px;flex-direction:column;gap:12px;width:100%;max-width:400px;padding:14px;display:flex;box-shadow:0 1px 3px #0000000f,0 4px 12px #0000000a}.mp-opponent-mobile-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.mp-opponent-mobile-meta{flex-direction:column;gap:4px;min-width:0;display:flex}.mp-opponent-mobile-name{color:var(--text-primary);font-size:.98rem;font-weight:800}.mp-opponent-mobile-score{color:var(--accent);font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:800}.mp-opponent-mobile-status{letter-spacing:.06em;text-transform:uppercase;background:var(--accent-bg-subtle);color:var(--text-secondary);border-radius:999px;flex-shrink:0;padding:6px 10px;font-size:.72rem;font-weight:800}.mp-opponent-mobile-status.connected{color:var(--color-connected)}.mp-opponent-mobile-status.offline{color:var(--color-danger)}.mp-opponent-mobile-preview{flex-direction:column;gap:8px;display:flex}.mp-mini-preview-inner{width:120px;transition:opacity .25s;position:relative}.mp-mini-preview-inner.dimmed{opacity:.55}.mp-mini-preview-offline{background:var(--overlay-neutral);opacity:.7;border-radius:10px;position:absolute;inset:0}.mp-opponent-mobile-cta{color:var(--text-secondary);font-size:.82rem;font-weight:700}.mp-opponent-expanded-backdrop{-webkit-backdrop-filter:blur(4px);z-index:1000;background:#000000b3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.mp-opponent-expanded-modal{background:var(--bg-card);border-radius:20px;width:min(100%,420px);padding:16px;box-shadow:0 20px 60px #0000004d}.mp-opponent-expanded-header{border-bottom:1px solid var(--bg-card-border);justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding-bottom:12px;display:flex}.mp-opponent-expanded-name{color:var(--text-primary);font-size:1.05rem;font-weight:800}.mp-opponent-expanded-score{color:var(--accent);font-variant-numeric:tabular-nums;font-size:1.2rem;font-weight:800}.mp-opponent-expanded-close{background:var(--bg-page);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;border:none;border-radius:999px;font-size:24px;line-height:1}.mp-opponent-expanded-board{border-radius:12px;position:relative;overflow:hidden}.mp-opponent-expanded-board.dimmed{opacity:.55}.expanded-grid{aspect-ratio:1;border-radius:12px;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:12px;display:grid}.expanded-tile{aspect-ratio:1;border-radius:10px;justify-content:center;align-items:center;font-weight:800;display:flex}.expanded-offline-overlay{-webkit-backdrop-filter:blur(4px);color:var(--text-on-accent);z-index:10;background:#00000073;justify-content:center;align-items:center;font-size:.95rem;font-weight:700;display:flex;position:absolute;inset:0}@media (max-width:900px){.multiplayer-boards-container{gap:12px;margin-top:10px;padding-top:16px}.boards-split{grid-template-columns:minmax(0,1fr) 96px;align-items:flex-start;gap:8px;display:grid}.mp-board-stage{width:100%}.mp-side-stage{flex-basis:auto;justify-self:end;gap:7px;width:96px}.mp-opponent-side-card{gap:6px}.mp-opponent-side-name{font-size:.82rem}.board-section-mini{max-width:88px}.mp-opponent-desktop{display:none!important}}@media (min-width:901px){.boards-split{justify-content:center;align-items:flex-start;gap:24px}.mp-opponent-desktop{display:flex}.mp-opponent-mobile-card{display:none}}@media screen and (max-width:520px){.otp-boxes-compact{gap:6px}.otp-boxes-compact .otp-box{border-radius:10px;font-size:1.15rem}.mp-stats-card{padding:18px}.mp-stats-card-header,.mp-stats-bottom{grid-template-columns:1fr}.mp-stats-card-header{flex-direction:column;align-items:flex-start}.mp-stats-elo-hero{align-items:flex-start}.mp-stats-pills{grid-template-columns:1fr}.mp-lobby{padding:32px 16px}.mp-lobby-title{font-size:1.8rem}.mp-find-btn,.mp-friend-btn{height:50px;font-size:15px}.mp-auth-card{border-radius:20px;width:min(100%,340px);padding:22px 18px 20px}.mp-auth-card .modal-btn-leaderboard,.mp-auth-card .mp-friend-btn{min-height:50px}.mp-invite-url{font-size:.8rem}.mp-hud{border-radius:12px;gap:6px;margin-bottom:12px;padding:12px}.mp-hud-name{max-width:82px;font-size:.68rem}.mp-hud-score{font-size:1.2rem}.mp-hud-timer{min-width:76px;padding:0 6px}.mp-hud-timer-display{font-size:1.8rem}.mp-move-window-track{height:16px}.mp-move-window-label{font-size:.88rem}.boards-split{grid-template-columns:minmax(0,1fr) 88px;gap:8px}.mp-side-stage{flex-basis:auto;gap:6px;width:88px}.mp-versus-text{font-size:1.7rem}.board-section-mini{max-width:84px}.mp-opponent-side-card{gap:5px}.mp-opponent-side-name{font-size:.74rem}.mp-board-label{font-size:.84rem}}.content-page{background:var(--bg-page);min-height:100dvh;color:var(--text-body);padding:0 16px 64px}.content-container{max-width:720px;margin:0 auto;padding-top:40px}.content-container-narrow{max-width:640px}.content-back-link{color:var(--accent);align-items:center;gap:4px;margin-bottom:32px;font-size:.9rem;font-weight:600;text-decoration:none;transition:opacity .15s;display:inline-flex}.content-back-link:hover{opacity:.75}.content-title{font-family:var(--font-fredoka),"Fredoka",sans-serif;color:var(--text-primary);margin:0 0 16px;font-size:2.4rem;font-weight:700;line-height:1.2}.content-intro{color:var(--text-secondary);margin:0 0 32px;font-size:1.1rem;line-height:1.7}.content-section{margin-bottom:36px}.content-heading{font-family:var(--font-fredoka),"Fredoka",sans-serif;color:var(--text-primary);margin:0 0 12px;font-size:1.4rem;font-weight:700}.content-subheading{color:var(--text-primary);margin:24px 0 8px;font-size:1.1rem;font-weight:700}.content-section p{margin:0 0 14px;font-size:1rem;line-height:1.75}.content-list{margin:0 0 14px;padding-left:20px;line-height:1.75;list-style:outside}.content-list li{margin-bottom:8px}.content-list-numbered{list-style:decimal}.content-grid-2col{grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:14px;display:grid}.content-card{background:var(--bg-card);border:1px solid var(--bg-card-border);border-radius:16px;padding:18px 20px}.content-card-title{color:var(--text-primary);margin:0 0 10px;font-size:1rem;font-weight:700}.content-card .content-list{margin-bottom:0}.content-tip{border-left:4px solid var(--accent);background:var(--bg-card)}.content-inline-link{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.content-inline-link:hover{opacity:.8}.content-cta{text-align:center;background:var(--bg-card);border:1px solid var(--bg-card-border);border-radius:20px;padding:32px 24px}.content-cta-buttons{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:16px;display:flex}.content-btn-primary,.content-btn-secondary{border-radius:12px;justify-content:center;align-items:center;padding:12px 28px;font-size:.95rem;font-weight:700;text-decoration:none;transition:transform .15s,box-shadow .15s,background .15s;display:inline-flex}.content-btn-primary{background:linear-gradient(135deg,var(--bg-button),var(--bg-button-hover));color:var(--text-on-accent);box-shadow:0 3px 10px var(--button-shadow)}.content-btn-primary:hover{box-shadow:0 5px 16px var(--button-shadow);transform:translateY(-1px)}.content-btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1.5px solid var(--bg-card-border)}.content-btn-secondary:hover{background:var(--bg-button);color:var(--text-on-accent);border-color:#0000;transform:translateY(-1px)}.blog-post-list{flex-direction:column;gap:20px;display:flex}.blog-post-card{background:var(--bg-card);border:1px solid var(--bg-card-border);border-radius:18px;padding:24px;text-decoration:none;transition:transform .15s,box-shadow .15s;display:block}.blog-post-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #78350f1a}.blog-post-tag{background:var(--accent-bg-light,#f59e0b1f);color:var(--accent);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;margin-bottom:10px;padding:4px 10px;font-size:.75rem;font-weight:700;display:inline-block}.blog-post-title{font-family:var(--font-fredoka),"Fredoka",sans-serif;color:var(--text-primary);margin:0 0 8px;font-size:1.3rem;font-weight:700;line-height:1.3}.blog-post-description{color:var(--text-secondary);margin:0 0 10px;font-size:.95rem;line-height:1.6}.blog-post-date{color:var(--text-secondary);opacity:.7;font-size:.82rem}.blog-article-header{margin-bottom:32px}.blog-article-date{color:var(--text-secondary);opacity:.7;margin-top:8px;font-size:.88rem;display:block}.blog-tile-diagram{color:var(--text-primary);white-space:pre;margin:0;font-family:monospace;font-size:.95rem;line-height:1.6}.site-footer{background:var(--bg-page);border-top:1px solid var(--bg-card-border);text-align:center;margin-top:48px;padding:40px 16px}@media (min-width:1080px){.site-footer{padding-left:calc(var(--desktop-sidebar-width) + var(--desktop-shell-gutter) + var(--desktop-shell-edge));padding-right:calc(var(--desktop-sidebar-width) + var(--desktop-shell-gutter) + var(--desktop-shell-edge))}}.site-footer-inner{max-width:640px;margin:0 auto}.site-footer-about{max-width:520px;color:var(--text-secondary);opacity:.85;margin:0 auto 20px;font-size:.85rem;line-height:1.7}.site-footer-about p{margin:0 0 8px}.site-footer-about p:last-child{margin-bottom:0}.site-footer-about a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.site-footer-about a:hover{opacity:.8}.site-footer-links{flex-wrap:wrap;justify-content:center;gap:8px 24px;margin:0;padding:0;list-style:none;display:flex}.site-footer-links a{color:var(--text-secondary);font-size:.88rem;font-weight:600;text-decoration:none;transition:color .15s}.site-footer-links a:hover{color:var(--accent)}.site-footer-copy{color:var(--text-secondary);opacity:.6;margin:16px 0 0;font-size:.78rem}@media (max-width:640px){.content-title{font-size:1.8rem}.content-intro{font-size:1rem}.content-heading{font-size:1.2rem}.content-grid-2col{grid-template-columns:1fr}.content-cta-buttons{flex-direction:column;align-items:center}.content-btn-primary,.content-btn-secondary{width:100%}}.not-found-page{flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:24px 0;display:flex}.not-found-content{text-align:center;max-width:420px}.not-found-tiles{justify-content:center;gap:12px;margin-bottom:24px;display:flex}.not-found-tiles span{width:72px;height:72px;font-family:var(--font-fredoka),"Fredoka",sans-serif;box-shadow:0 4px 6px -1px #0000001a,0 10px 25px -5px var(--board-shadow-a);border-radius:8px;justify-content:center;align-items:center;font-size:36px;font-weight:700;display:flex}.tile-4{color:#776e65;background:#ede0c8}.tile-0{color:#776e65;opacity:.6;background:#eee4da}[data-theme=ocean] .tile-4{color:#1d3557;background:#a8dadc}[data-theme=ocean] .tile-0{color:#457b9d;opacity:.7;background:#f1faee}[data-theme=forest] .tile-4{color:#1b5e20;background:#c8e6c9}[data-theme=forest] .tile-0{color:#2e7d32;opacity:.7;background:#e8f5e9}[data-theme=midnight] .tile-4{color:#fff;background:#7c3aed}[data-theme=midnight] .tile-0{color:#a78bfa;opacity:.7;background:#4c1d95}.not-found-title{font-family:var(--font-fredoka),"Fredoka",sans-serif;color:var(--text-primary);margin:0 0 12px;font-size:2.25rem;font-weight:700;line-height:1.2}.not-found-subtitle{color:var(--text-secondary);margin:0 0 32px;font-size:1.1rem;line-height:1.5}.not-found-actions{flex-direction:column;align-items:center;gap:12px;display:flex}.not-found-actions .ui-btn{width:100%;max-width:280px;height:48px}@media (min-width:480px){.not-found-actions{flex-direction:row;justify-content:center}.not-found-actions .ui-btn{width:auto;min-width:140px}}@media (min-width:640px){.not-found-tiles span{border-radius:10px;width:88px;height:88px;font-size:44px}.not-found-title{font-size:2.75rem}.not-found-subtitle{font-size:1.2rem}}.username-prompt-desc{color:var(--text-secondary);margin:0 0 16px;font-size:14px;line-height:1.5}.sp-board-wrapper{touch-action:none;justify-content:center;display:flex;position:relative}.emoji-particle-canvas{z-index:99999;pointer-events:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0}.mp-inline-signin-wrapper{width:100%;max-width:300px;margin-top:16px}.mp-stats-card--loading{margin-top:20px}.mp-stats-loading-text{color:var(--text-secondary);text-align:center;margin:0;font-size:13px}.invite-error-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;padding:20px;display:flex}.invite-error-title{margin:0;font-size:1.5rem}.invite-error-desc{color:var(--text-secondary);margin:0}.invite-error-cta{background:var(--accent);color:#fff;border-radius:12px;margin-top:12px;padding:10px 24px;font-weight:600;text-decoration:none}.leaderboard-stats-strip{border:1px solid var(--bg-card-border);background:var(--bg-card);border-radius:12px;justify-content:center;align-items:center;gap:32px;margin-bottom:24px;padding:20px 24px;display:flex}.leaderboard-stat{flex-direction:column;align-items:center;gap:4px;min-width:0;display:flex}.leaderboard-stat-value{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:28px;font-weight:800;line-height:1}.leaderboard-stat-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);font-size:12px;font-weight:600}.leaderboard-stat-divider{background:var(--bg-card-border);align-self:stretch;width:1px}@media (max-width:480px){.leaderboard-stats-strip{gap:20px;padding:16px 20px}.leaderboard-stat-value{font-size:22px}}.leaderboard-table-wrapper{-webkit-overflow-scrolling:touch;border:1px solid var(--bg-card-border);border-radius:12px;overflow-x:auto}.leaderboard-table{border-collapse:collapse;background:var(--bg-card);width:100%;font-size:.95rem}.leaderboard-table thead{background:var(--bg-card);border-bottom:2px solid var(--bg-card-border)}.leaderboard-table th{color:var(--text-primary);text-align:left;white-space:nowrap;padding:12px 16px;font-weight:700}.leaderboard-table td{color:var(--text-body);white-space:nowrap;padding:10px 16px}.leaderboard-table tbody tr{border-bottom:1px solid var(--bg-card-border)}.leaderboard-table tbody tr:last-child{border-bottom:none}.leaderboard-table tbody tr:nth-child(2n){background:var(--bg-page)}.leaderboard-col-rank{width:48px;color:var(--text-secondary);font-weight:700;text-align:center!important}.leaderboard-col-username{min-width:120px}.leaderboard-col-score{font-variant-numeric:tabular-nums;font-weight:700;text-align:right!important}.leaderboard-col-date{color:var(--text-secondary);text-align:right!important}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
