@import"https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;800&display=swap";[data-theme=midnight]{--bg: #0a0e27;--bg-card: #131736;--bg-cell: #0f1330;--bg-cell-shaded: #161b3d;--bg-cell-focus: #1d2552;--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-solved: #fbbf24;--border-light: #2a3160;--border-bold: #8b94c8;--btn-primary: #fbbf24;--btn-primary-hover: #f59e0b;--btn-secondary: rgba(19, 23, 54, .95);--btn-secondary-hover: rgba(30, 35, 70, .95);--btn-secondary-text: #f1f5f9;--accent: #fbbf24;--accent-soft: rgba(251, 191, 36, .15);--accent-hover: #fbbf24;--success-bg: rgba(34, 197, 94, .18);--success-text: #86efac;--error-bg: rgba(239, 68, 68, .18);--error-text: #fca5a5;--steps-bg: rgba(19, 23, 54, .95);--steps-item-bg: #131736;--steps-item-border: #2a3160;--toggle-bg: #f1f5f9;--toggle-text: #0a0e27;--glass-bg: rgba(19, 23, 54, .97);--glass-border: #2a3160;--glow: rgba(251, 191, 36, .2);--glow-soft: rgba(251, 191, 36, .08)}[data-theme=royal]{--bg: #1a0b2e;--bg-card: #2a1247;--bg-cell: #21103a;--bg-cell-shaded: #2e1850;--bg-cell-focus: #3d2266;--text-primary: #ede9fe;--text-secondary: #c4b5fd;--text-solved: #f0abfc;--border-light: #4c1d95;--border-bold: #a78bfa;--btn-primary: #a78bfa;--btn-primary-hover: #c4b5fd;--btn-secondary: rgba(42, 18, 71, .95);--btn-secondary-hover: rgba(58, 25, 99, .95);--btn-secondary-text: #ede9fe;--accent: #c084fc;--accent-soft: rgba(192, 132, 252, .15);--accent-hover: #d8b4fe;--success-bg: rgba(34, 197, 94, .18);--success-text: #86efac;--error-bg: rgba(239, 68, 68, .18);--error-text: #fca5a5;--steps-bg: rgba(42, 18, 71, .95);--steps-item-bg: #2a1247;--steps-item-border: #4c1d95;--toggle-bg: #ede9fe;--toggle-text: #1a0b2e;--glass-bg: rgba(42, 18, 71, .97);--glass-border: #4c1d95;--glow: rgba(192, 132, 252, .2);--glow-soft: rgba(192, 132, 252, .08)}[data-theme=emerald]{--bg: #022c22;--bg-card: #064e3b;--bg-cell: #053b2c;--bg-cell-shaded: #075e44;--bg-cell-focus: #047857;--text-primary: #ecfdf5;--text-secondary: #6ee7b7;--text-solved: #fcd34d;--border-light: #047857;--border-bold: #34d399;--btn-primary: #10b981;--btn-primary-hover: #34d399;--btn-secondary: rgba(6, 78, 59, .95);--btn-secondary-hover: rgba(7, 94, 70, .95);--btn-secondary-text: #ecfdf5;--accent: #34d399;--accent-soft: rgba(52, 211, 153, .15);--accent-hover: #6ee7b7;--success-bg: rgba(34, 197, 94, .25);--success-text: #bbf7d0;--error-bg: rgba(239, 68, 68, .18);--error-text: #fca5a5;--steps-bg: rgba(6, 78, 59, .95);--steps-item-bg: #064e3b;--steps-item-border: #047857;--toggle-bg: #ecfdf5;--toggle-text: #022c22;--glass-bg: rgba(6, 78, 59, .97);--glass-border: #047857;--glow: rgba(52, 211, 153, .2);--glow-soft: rgba(52, 211, 153, .08)}[data-theme=rose]{--bg: #fff1f2;--bg-card: #ffe4e6;--bg-cell: #fff5f5;--bg-cell-shaded: #fecdd3;--bg-cell-focus: #fda4af;--text-primary: #4c0519;--text-secondary: #9f1239;--text-solved: #be123c;--border-light: #fda4af;--border-bold: #e11d48;--btn-primary: #e11d48;--btn-primary-hover: #be123c;--btn-secondary: rgba(255, 228, 230, .95);--btn-secondary-hover: rgba(254, 205, 211, .95);--btn-secondary-text: #4c0519;--accent: #e11d48;--accent-soft: rgba(225, 29, 72, .12);--accent-hover: #be123c;--success-bg: rgba(34, 197, 94, .15);--success-text: #14532d;--error-bg: rgba(239, 68, 68, .18);--error-text: #7f1d1d;--steps-bg: rgba(255, 241, 242, .97);--steps-item-bg: #ffe4e6;--steps-item-border: #fda4af;--toggle-bg: #4c0519;--toggle-text: #fff1f2;--glass-bg: rgba(255, 228, 230, .97);--glass-border: #fda4af;--glow: rgba(225, 29, 72, .18);--glow-soft: rgba(225, 29, 72, .06)}:root{--bg: #F8F5F2;--bg-dark: #1F2227;--bg-card: #F3EFE9;--bg-cell: #FAFAF8;--bg-cell-shaded: #EDE9E2;--bg-cell-focus: #DFE6E9;--text-primary: #3B2A20;--text-dark: #D1D5DB;--text-secondary: #7A6558;--text-solved: #3B2A20;--border-light: #BDB5A8;--border-bold: #3B2A20;--btn-primary: #3B2A20;--btn-primary-hover: #5C4438;--btn-secondary: rgba(237, 233, 226, .95);--btn-secondary-hover: rgba(220, 215, 205, .95);--btn-secondary-text: #3B2A20;--btn-control-padding-y: .75rem;--btn-control-padding-x: 1rem;--btn-control-min-height: 44px;--btn-control-radius: 12px;--accent: #7A6558;--accent-dark: #68B89F;--success-bg: #E6EFE4;--success-text: #2A4A20;--error-bg: #F5E6E4;--error-text: #8B2318;--text: var(--text-primary);--border: var(--border-light);--primary: #6c63ff;--surface: var(--bg-card);--text-muted: var(--text-secondary);--hover: rgba(60, 42, 32, .06);--bg-primary: var(--bg);--bg-secondary: var(--bg-card);--surface-elevated: var(--bg-card);--accent-soft: rgba(122, 101, 88, .1);--accent-hover: var(--btn-primary-hover);--steps-bg: rgba(237, 233, 226, .8);--steps-item-bg: #F3EFE9;--steps-item-border: #C5BFB8;--toggle-bg: #3B2A20;--toggle-text: #F8F5F2;--btn-upload: #3B2A20;--btn-upload-hover: #5C4438;--glass-bg: rgba(243, 239, 233, .96);--glass-border: #C5BFB8;--glow: transparent;--glow-soft: transparent}[data-theme=dark]{--bg: #1C1917;--bg-card: #2C2826;--bg-cell: #201D1B;--bg-cell-shaded: #262220;--bg-cell-focus: #1E2D3A;--text-primary: #E7E5E4;--text-secondary: #A8A29E;--text-solved: var(--accent-dark);--border-light: #44403C;--border-bold: #A8A29E;--btn-primary: var(--accent-dark);--btn-primary-hover: #7CCAB2;--btn-secondary: rgba(44, 40, 38, .95);--btn-secondary-hover: rgba(58, 53, 51, .95);--btn-secondary-text: #E7E5E4;--accent: var(--accent-dark);--success-bg: rgba(6, 78, 59, .35);--success-text: #5DA88A;--error-bg: rgba(69, 20, 18, .4);--error-text: #FCA5A5;--steps-bg: rgba(44, 40, 38, .9);--steps-item-bg: #2C2826;--steps-item-border: #44403C;--toggle-bg: #E7E5E4;--toggle-text: #1C1917;--btn-upload: var(--accent-dark);--btn-upload-hover: #10B981;--glass-bg: rgba(44, 40, 38, .97);--glass-border: #44403C;--glow: transparent;--glow-soft: transparent;--hover: rgba(255, 255, 255, .06);--accent-soft: rgba(104, 184, 159, .15);--accent-hover: #7CCAB2}*,*:before,*:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}button,a,[role=button],.tab-btn{-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}button:focus:not(:focus-visible),a:focus:not(:focus-visible),[role=button]:focus:not(:focus-visible){outline:none}html{scroll-behavior:smooth;overflow-x:hidden}body{margin:0;min-width:320px;overflow-x:hidden;min-height:100vh;background-color:var(--bg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.032'/%3E%3C/svg%3E");color:var(--text-primary);font-family:Inter,system-ui,-apple-system,sans-serif;font-feature-settings:"cv02","cv03","cv04","cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .3s ease,color .3s ease;-webkit-text-size-adjust:100%}[data-theme=dark] body{background-image:linear-gradient(#1c1917e6,#1c1917e6),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E")}button,a,[role=button]{touch-action:manipulation}@keyframes cellPop{0%{transform:scale(1)}40%{transform:scale(1.07)}to{transform:scale(1)}}@keyframes cellShake{0%,to{transform:translate(0)}15%{transform:translate(-3px) rotate(-.5deg)}30%{transform:translate(3px) rotate(.5deg)}50%{transform:translate(-2px)}70%{transform:translate(2px)}85%{transform:translate(-1px)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:48px;height:48px;border:5px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.glass{background:var(--glass-bg);border:1px solid var(--glass-border)}.app-header{display:flex;align-items:center;padding:10px 16px 12px;width:100%;max-width:960px;margin:0 auto 24px;border-bottom:1px solid var(--border-light);gap:12px;box-sizing:border-box}@media(max-width:520px){.app-header{padding:4px 12px 8px;margin-bottom:16px;gap:4px}.game-page,.lobby-page,.room-page,.profile-page,.daily-page,.education-page,.home-page,.auth-page,.leaderboard-page,.tutorial-page{padding-top:4px!important}}.app-header-left{flex:0 0 auto;display:flex;align-items:center}.app-header-brand{font-size:1.05rem;font-weight:800;letter-spacing:-.02em;color:var(--text-primary);white-space:nowrap;-webkit-user-select:none;user-select:none;font-family:Playfair Display,Georgia,serif;background:none;border:none;cursor:pointer;padding:0}.app-header-brand:hover{opacity:.75}@media(max-width:480px){.app-header-brand{display:none}}.app-header-center{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:12px;overflow:hidden}.app-header-title{font-size:clamp(.85rem,3.5vw,1.3rem);font-weight:800;letter-spacing:-.02em;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-title{margin:0;padding:14px 16px 2px;font-size:clamp(1rem,3.5vw,1.3rem);font-weight:800;letter-spacing:-.02em;color:var(--text-primary);text-align:center}.app-header-right{flex:0 0 auto;flex-shrink:0;display:flex;align-items:center;justify-content:flex-end;gap:8px}.app-header-back{background:transparent;color:var(--text-secondary);border:none;padding:4px 6px;display:inline-flex;align-items:center;border-radius:8px;cursor:pointer;min-height:36px;touch-action:manipulation;transition:color .15s,background .15s}.app-header-back:hover{color:var(--text-primary);background:var(--bg-cell-shaded)}.app-header-home-btn{background:transparent;color:var(--text-secondary);border:none;padding:4px 6px;display:inline-flex;align-items:center;border-radius:8px;cursor:pointer;min-height:36px;touch-action:manipulation;transition:color .15s,background .15s;opacity:.65}.app-header-home-btn:hover{color:var(--text-primary);background:var(--bg-cell-shaded);opacity:1}.offline-badge{display:inline-flex;align-items:center;padding:4px 10px;margin-left:8px;background:var(--error-text, #ef4444);color:#fff;border-radius:999px;font-size:.78rem;font-weight:700;white-space:nowrap}.back-short{display:none}@media(max-width:480px){.back-full{display:none}.back-short{display:inline;font-size:1.1rem}}.global-ctrl-btn{background:transparent;color:var(--text-secondary);border:none;padding:0;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;font-family:inherit;cursor:pointer;min-height:44px;touch-action:manipulation;transition:color .15s}.global-ctrl-btn:hover{color:var(--text-primary)}.icon-btn{display:inline-flex;align-items:center;gap:3px;padding:4px 6px;border-radius:8px;min-height:34px;transition:background .15s,color .15s}.icon-btn:hover{background:var(--bg-cell-shaded)}.lang-code{font-size:.72rem;font-weight:800;letter-spacing:.1em}.auth-btn{flex-shrink:0!important;flex-grow:0!important;width:auto!important;max-width:140px;padding:4px 10px!important;white-space:nowrap!important;overflow:hidden}.auth-btn--logged{border-left:1px solid var(--border-light);padding-left:10px!important;margin-left:0}.auth-nick{font-size:.8rem;font-weight:700;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80px}.global-ctrl-sep{color:var(--border-light);font-size:.7rem;font-weight:400;-webkit-user-select:none;user-select:none}@media(max-width:480px){.global-ctrl-sep{display:none}.app-header-right{gap:4px;min-width:0}}:root{--board-size: min(450px, 92vw);--label-size: 20px}.sudoku-board{display:grid;grid-template-columns:repeat(9,1fr);width:var(--board-size);height:var(--board-size);border:2.5px solid var(--border-bold);border-radius:2px;overflow:hidden;box-shadow:2px 3px 10px #2d34361a}.sudoku-cell{width:100%;height:100%;border:1px solid var(--border-light);text-align:center;font-size:clamp(.85rem,calc(var(--board-size) / 18),1.4rem);font-weight:500;font-family:Inter,system-ui,sans-serif;outline:none;cursor:pointer;background-color:var(--bg-cell);color:var(--text-primary);transition:background-color .15s,box-shadow .2s;caret-color:transparent;box-sizing:border-box}.sudoku-cell-wrapper:nth-child(3n) .sudoku-cell{border-right:2.5px solid var(--border-bold)}.sudoku-cell-wrapper:nth-child(n+19):nth-child(-n+27) .sudoku-cell,.sudoku-cell-wrapper:nth-child(n+46):nth-child(-n+54) .sudoku-cell{border-bottom:2.5px solid var(--border-bold)}.sudoku-cell.shaded{background-color:var(--bg-cell-shaded)}.sudoku-cell.original{font-weight:700;color:var(--text-primary);cursor:default}.sudoku-cell.solved{color:var(--text-solved);font-weight:600;animation:cellPop .22s ease-out}.sudoku-cell:focus{background-color:var(--bg-cell-focus)!important;box-shadow:inset 0 0 0 1.5px var(--border-bold);z-index:3;position:relative}.sudoku-cell-wrapper{position:relative;width:100%;height:100%}.sudoku-cell-wrapper.uncertain .sudoku-cell{background-color:#fff8e1!important;color:#e65100;font-style:italic}[data-theme=dark] .sudoku-cell-wrapper.uncertain .sudoku-cell{background-color:#3e2c00!important;color:#ffb74d}.uncertain-badge{position:absolute;top:1px;right:2px;font-size:.6rem;font-weight:700;color:#e65100;pointer-events:none;line-height:1}[data-theme=dark] .uncertain-badge{color:#ffb74d}.sudoku-cell-wrapper.conflict .sudoku-cell{background-color:var(--error-bg)!important;color:var(--error-text);font-weight:700;animation:cellShake .35s ease-out}.conflict-badge{position:absolute;top:1px;right:2px;font-size:.6rem;font-weight:700;color:var(--error-text);pointer-events:none;line-height:1}.sudoku-cell.highlight-target{background-color:#16a34a47!important;box-shadow:inset 0 0 0 2.5px #16a34a,0 0 12px #16a34a4d;z-index:2}.sudoku-cell.highlight-related{background-color:#ea580c2e!important;box-shadow:inset 0 0 0 2px #ea580c;z-index:1}[data-theme=dark] .sudoku-cell.highlight-target{background-color:#16a34a61!important;box-shadow:inset 0 0 0 2.5px #2d8a5a,0 0 10px #2d8a5a2e}[data-theme=dark] .sudoku-cell.highlight-related{background-color:#ea580c47!important}.candidate-cell{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:1px;cursor:default}.candidates-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:100%;height:100%;gap:0}.candidate-num{display:flex;align-items:center;justify-content:center;font-size:clamp(.3rem,calc(var(--board-size) / 60),.55rem);font-weight:500;color:transparent;line-height:1;-webkit-user-select:none;user-select:none}.candidate-num.active{color:var(--text-secondary);font-weight:600}.sudoku-cell.placed-cell{background-color:#16a34a38!important;box-shadow:inset 0 0 0 2.5px #16a34a;animation:placePulse .6s ease-out}@keyframes placePulse{0%{box-shadow:inset 0 0 0 2.5px #16a34a,0 0 16px #16a34a80}to{box-shadow:inset 0 0 0 2.5px #16a34a}}[data-theme=dark] .sudoku-cell.placed-cell{background-color:#2d8a5a33!important;box-shadow:inset 0 0 0 2.5px #2d8a5a;animation:placePulseDark .6s ease-out}@keyframes placePulseDark{0%{box-shadow:inset 0 0 0 2.5px #2d8a5a,0 0 10px #2d8a5a4d}to{box-shadow:inset 0 0 0 2.5px #2d8a5a}}.sudoku-cell.eliminated-cell,.candidate-cell.eliminated-cell{background-color:#ea580c24!important;box-shadow:inset 0 0 0 2px #ea580c}.sudoku-cell.cause-cell,.candidate-cell.cause-cell{background-color:#2563eb21!important;box-shadow:inset 0 0 0 2px #2563eb}.sudoku-cell.link-cell,.candidate-cell.link-cell{background-color:#7c3aed21!important;box-shadow:inset 0 0 0 2px #7c3aed}.candidate-num.highlighted-candidate{color:#7c3aed;font-weight:900}[data-theme=dark] .sudoku-cell.placed-cell{background-color:#16a34a52!important}[data-theme=dark] .sudoku-cell.eliminated-cell,[data-theme=dark] .candidate-cell.eliminated-cell{background-color:#ea580c38!important}[data-theme=dark] .sudoku-cell.cause-cell,[data-theme=dark] .candidate-cell.cause-cell{background-color:#2563eb38!important}[data-theme=dark] .sudoku-cell.link-cell,[data-theme=dark] .candidate-cell.link-cell{background-color:#7c3aed47!important}[data-theme=dark] .candidate-num.highlighted-candidate{color:#a78bfa}.board-col-labels{display:flex;align-items:center;width:var(--board-size);margin-left:var(--label-size);margin-bottom:2px}.label-spacer{width:0}.col-label{flex:1;text-align:center;font-size:clamp(.5rem,calc(var(--board-size) / 40),.75rem);font-weight:600;color:var(--text-secondary);line-height:1.4;-webkit-user-select:none;user-select:none}.board-with-row-labels{display:flex;align-items:stretch}.board-row-labels{display:flex;flex-direction:column;width:var(--label-size)}.row-label{flex:1;display:flex;align-items:center;justify-content:center;font-size:clamp(.5rem,calc(var(--board-size) / 40),.75rem);font-weight:600;color:var(--text-secondary);-webkit-user-select:none;user-select:none}.sudoku-board-container{position:relative;width:calc(var(--board-size) + var(--label-size))}.board-with-row-labels>.sudoku-board{position:relative;width:var(--board-size);height:var(--board-size)}.sudoku-cell-input-wrapper{position:relative;width:100%;height:100%}.chain-group-a{background-color:#2563eb2e!important;box-shadow:inset 0 0 0 2.5px #2563eb!important;z-index:2}[data-theme=dark] .chain-group-a{background-color:#60a5fa38!important;box-shadow:inset 0 0 0 2.5px #60a5fa!important}.chain-group-b{background-color:#dc262629!important;box-shadow:inset 0 0 0 2.5px #dc2626!important;z-index:2}[data-theme=dark] .chain-group-b{background-color:#f8717133!important;box-shadow:inset 0 0 0 2.5px #f87171!important}.chain-eliminated{background-color:#dc262640!important;box-shadow:inset 0 0 0 2.5px #991b1b!important}[data-theme=dark] .chain-eliminated{background-color:#f8717147!important;box-shadow:inset 0 0 0 2.5px #ef4444!important}.chain-label{position:absolute;top:1px;right:2px;font-size:clamp(.3rem,calc(var(--board-size) / 60),.55rem);font-weight:800;line-height:1;pointer-events:none;text-shadow:0 0 2px rgba(255,255,255,.8);z-index:5}.chain-label-a{color:#1d4ed8}.chain-label-b{color:#b91c1c}[data-theme=dark] .chain-label-a{color:#93c5fd;text-shadow:0 0 2px rgba(0,0,0,.6)}[data-theme=dark] .chain-label-b{color:#fca5a5;text-shadow:0 0 2px rgba(0,0,0,.6)}.chain-links-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:4}.chain-link-line{stroke:#64748b73;stroke-width:2;stroke-dasharray:6 3;stroke-linecap:round}[data-theme=dark] .chain-link-line{stroke:#94a3b873}.steps-panel{width:min(440px,100%);background-color:var(--steps-bg);border-radius:12px;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.75rem;max-height:700px;transition:background-color .2s;box-sizing:border-box}.steps-title{font-size:1.1rem;font-weight:700;color:var(--text-primary);margin:0}.steps-count{font-size:.85rem;color:var(--text-secondary);margin:0}.steps-empty{font-size:.9rem;color:var(--text-secondary);margin:0;line-height:1.5}.steps-list{list-style:none;margin:0;padding:0 4px 0 0;display:flex;flex-direction:column;gap:.5rem;overflow-y:auto;max-height:clamp(200px,55vh,580px)}.steps-list::-webkit-scrollbar{width:4px}.steps-list::-webkit-scrollbar-track{background:transparent}.steps-list::-webkit-scrollbar-thumb{background-color:var(--border-light);border-radius:4px}.steps-item{display:flex;flex-direction:column;gap:.35rem;background-color:var(--steps-item-bg);border:1px solid var(--steps-item-border);border-radius:8px;padding:.7rem .85rem;transition:background-color .15s,border-color .15s,box-shadow .15s;cursor:pointer}.steps-item:hover{background-color:#2563eb0f;border-color:#2563eb38;box-shadow:0 1px 4px #2563eb14}[data-theme=dark] .steps-item:hover{background-color:#60a5fa14;border-color:#60a5fa33}.step-header{display:flex;align-items:center;gap:.5rem}.step-number{font-size:.75rem;font-weight:700;color:var(--text-secondary);min-width:20px}.step-technique{font-size:.85rem;font-weight:700;flex:1;position:relative;cursor:help}.step-technique[data-tooltip]:not([data-tooltip=""]):after{content:attr(data-tooltip);position:absolute;top:calc(100% + 6px);left:0;background:#1e293b;color:#f1f5f9;padding:8px 12px;border-radius:8px;font-size:.72rem;font-weight:400;white-space:normal;width:max-content;max-width:260px;z-index:100;line-height:1.45;box-shadow:0 4px 16px #00000040;pointer-events:none;opacity:0;transform:translateY(-4px);transition:opacity .15s,transform .15s}.step-technique[data-tooltip]:not([data-tooltip=""]):hover:after{opacity:1;transform:translateY(0)}[data-theme=dark] .step-technique[data-tooltip]:after{background:#334155;color:#e2e8f0}.step-value{font-size:1.1rem;font-weight:800;color:var(--text-solved);min-width:20px;text-align:right}.step-reason{font-size:.84rem;color:var(--text-secondary);margin:0;line-height:1.55}.step-note{font-size:.7rem;color:var(--text-secondary);margin:.25rem 0 0;padding:.3rem .5rem;background-color:#2563eb0d;border-left:2px solid rgba(37,99,235,.25);border-radius:0 4px 4px 0;line-height:1.45;opacity:.85}[data-theme=dark] .step-note{background-color:#60a5fa0f;border-left-color:#60a5fa40}.steps-item--elim{opacity:.82;border-left:3px solid #d97706;background-color:var(--steps-item-bg)}.step-badge-elim{font-size:.65rem;font-weight:700;text-transform:uppercase;color:#d97706;background-color:#d977061f;padding:1px 6px;border-radius:4px;letter-spacing:.5px}.step-difficulty{font-size:.6rem;font-weight:700;padding:1px 5px;border-radius:4px;border:1px solid;letter-spacing:.3px;white-space:nowrap}.cell-ref{display:inline;font-family:SF Mono,Cascadia Code,Consolas,monospace;font-size:.72rem;font-weight:600;color:#2563eb;background-color:#2563eb1a;padding:0 4px;border-radius:3px;cursor:help;white-space:nowrap}[data-theme=dark] .cell-ref{color:#60a5fa;background-color:#60a5fa26}.steps-item--active{border-left:3px solid #2563eb!important;background-color:#2563eb1a!important;border-color:#2563eb4d!important;box-shadow:0 2px 8px #2563eb26!important}[data-theme=dark] .steps-item--active{background-color:#60a5fa1f!important;border-color:#60a5fa4d!important;box-shadow:0 2px 8px #60a5fa26!important}.steps-item--past{opacity:.65}.steps-item--future{opacity:.35}.lang-toggle-wrap{position:relative;display:inline-flex}.lang-dropdown{position:absolute;top:calc(100% + 6px);right:0;z-index:300;background:var(--bg-card, #fff);border:1px solid var(--glass-border);border-radius:10px;box-shadow:0 4px 16px #00000021;padding:4px;display:flex;flex-direction:column;gap:2px;min-width:110px}[data-theme=dark] .lang-dropdown{box-shadow:0 4px 16px #00000073}.lang-option{padding:7px 12px;border:none;border-radius:7px;background:transparent;color:var(--text-secondary);font-size:.82rem;font-weight:500;cursor:pointer;text-align:left;white-space:nowrap;transition:background .15s}.lang-option:hover{background:var(--bg-hover, rgba(0, 0, 0, .06))}.lang-option--active{color:var(--primary, #6366f1);font-weight:700}@media(max-width:519px){.lang-dropdown{position:fixed;top:56px;right:12px;left:auto}}.app{max-width:1000px;margin:0 auto;padding:20px;min-height:100vh;display:flex;flex-direction:column;gap:1.5rem}.app .app-header{margin-bottom:0!important}.app .main-content{align-self:center}.title{font-size:2rem;font-weight:700;color:var(--text-primary);margin:0}.subtitle{font-size:1rem;color:var(--text-secondary);margin:0}.solver-theme-toggle{background:var(--glass-bg);color:var(--text-primary);border:1px solid var(--glass-border);border-radius:var(--btn-control-radius);padding:var(--btn-control-padding-y) var(--btn-control-padding-x);min-height:var(--btn-control-min-height);font-size:.85rem;font-weight:700;cursor:pointer;white-space:nowrap;transition:border-color .2s,box-shadow .2s}.solver-theme-toggle:hover{border-color:var(--btn-primary);box-shadow:0 0 12px var(--glow-soft)}.main-content{display:flex;gap:2rem;align-items:flex-start}.board-section{display:flex;flex-direction:column;align-items:center;gap:1.5rem;position:relative}.board-overlay{position:absolute;inset:0;background-color:#00000073;border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;z-index:10;color:#fff;font-weight:600;font-size:1rem}.controls{display:flex;gap:.5rem;flex-wrap:wrap}.btn{padding:6px 14px;font-size:.82rem;font-weight:600;border:none;border-radius:var(--btn-control-radius);cursor:pointer;transition:background-color .2s;min-height:34px;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--btn-primary);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--btn-primary-hover)}.btn-secondary{background-color:var(--btn-secondary);color:var(--btn-secondary-text)}.btn-secondary:hover{background-color:var(--btn-secondary-hover)}.btn-upload{background-color:var(--btn-upload);color:#fff}.btn-upload:hover:not(:disabled){background-color:var(--btn-upload-hover)}.message{font-size:.85rem;font-weight:600;padding:.4rem 1rem;border-radius:8px}.message.success{background-color:var(--success-bg);color:var(--success-text)}.message.error{background-color:var(--error-bg);color:var(--error-text)}.btn-step{background-color:var(--btn-primary);color:var(--toggle-text);border:1px solid var(--glass-border)}.btn-step:hover:not(:disabled){background-color:var(--btn-primary-hover)}.btn-export{background-color:var(--btn-secondary);color:var(--btn-secondary-text);border:1px solid var(--glass-border)}.btn-export:hover:not(:disabled){background-color:var(--btn-secondary-hover)}.step-nav{display:flex;align-items:center;gap:.75rem;background-color:var(--steps-bg);padding:.5rem 1rem;border-radius:10px;box-shadow:0 1px 4px #00000014}.step-nav-info{font-size:.9rem;font-weight:600;color:var(--text-primary);min-width:110px;text-align:center}.btn-nav{padding:.4rem .8rem;font-size:1rem;font-weight:700;border:none;border-radius:6px;cursor:pointer;background-color:var(--btn-secondary);color:var(--text-primary);transition:background-color .15s}.btn-nav:hover:not(:disabled){background-color:var(--btn-secondary-hover)}.btn-nav:disabled{opacity:.35;cursor:not-allowed}.btn-nav-end{padding:.3rem .65rem;font-size:.78rem;font-weight:600;border:none;border-radius:6px;cursor:pointer;background-color:var(--btn-primary);color:var(--toggle-text);transition:background-color .15s;white-space:nowrap}.btn-nav-end:hover{background-color:var(--btn-primary-hover)}@media(max-width:1280px){.app{padding:14px 10px 4.5rem}.title{font-size:1.5rem}.main-content{flex-direction:column;align-items:stretch}}.app-modal-overlay{position:fixed;inset:0;background:#00000073;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px;animation:appModalFadeIn .18s ease-out}@keyframes appModalFadeIn{0%{opacity:0}to{opacity:1}}.app-modal{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:20px;padding:22px 22px 18px;width:100%;max-width:380px;display:flex;flex-direction:column;gap:14px;box-shadow:0 20px 60px #00000038;animation:appModalPopIn .18s ease-out}@keyframes appModalPopIn{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}.app-modal-title{font-size:1.05rem;font-weight:800;color:var(--text-primary)}.app-modal-body{font-size:.95rem;color:var(--text-primary);line-height:1.5;word-wrap:break-word}.app-modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:4px}.app-modal-btn{padding:10px 18px;border-radius:12px;font-size:.9rem;font-weight:700;font-family:inherit;cursor:pointer;transition:opacity .15s,border-color .15s,color .15s;min-width:80px}.app-modal-btn-primary{background:var(--btn-primary);color:#fff;border:none}.app-modal-btn-primary:hover{opacity:.88}.app-modal-btn-secondary{background:transparent;color:var(--text-secondary);border:1px solid var(--glass-border)}.app-modal-btn-secondary:hover{border-color:var(--btn-primary);color:var(--text-primary)}.font-size-toggle{position:relative;display:inline-flex}.font-size-btn{color:var(--text-secondary)!important}.font-size-popover{position:absolute;top:calc(100% + 6px);right:0;z-index:300;background:var(--bg-card, #fff);border:1px solid var(--glass-border);border-radius:12px;padding:10px 12px;box-shadow:0 4px 20px #0000001f;min-width:156px;display:flex;flex-direction:column;gap:8px}[data-theme=dark] .font-size-popover{box-shadow:0 4px 20px #00000073}.fsp-row{display:flex;align-items:center;gap:8px}.fsp-label-small{font-size:.68rem;color:var(--text-secondary);font-weight:700;flex-shrink:0;line-height:1;-webkit-user-select:none;user-select:none}.fsp-label-large{font-size:1.1rem;color:var(--text-secondary);font-weight:700;flex-shrink:0;line-height:1;-webkit-user-select:none;user-select:none}.fsp-slider{flex:1;height:4px;appearance:none;-webkit-appearance:none;background:var(--border-light);border-radius:2px;outline:none;cursor:pointer}.fsp-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--btn-primary, #5c7a2e);cursor:pointer;border:2px solid var(--bg-card, #fff);box-shadow:0 1px 4px #0003}.fsp-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--btn-primary, #5c7a2e);cursor:pointer;border:2px solid var(--bg-card, #fff);box-shadow:0 1px 4px #0003}.fsp-reset{background:none;border:none;color:var(--text-secondary);font-size:.72rem;cursor:pointer;padding:0;text-align:center;font-family:inherit;transition:color .15s;line-height:1.4}.fsp-reset:hover{color:var(--text-primary)}@media(max-width:519px){.font-size-popover{position:fixed;top:58px;right:12px;left:auto;max-width:calc(100vw - 24px)}}.confetti-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:110}.achievement-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%) translateY(0);display:flex;align-items:center;gap:12px;background:var(--card-bg);border:1.5px solid var(--accent);border-radius:14px;padding:12px 20px;box-shadow:0 6px 24px #00000040;z-index:9999;min-width:220px;max-width:320px;animation:ach-slide-in .35s cubic-bezier(.34,1.56,.64,1) forwards;pointer-events:none}.achievement-toast.hiding{animation:ach-slide-out .4s ease-in forwards}@keyframes ach-slide-in{0%{opacity:0;transform:translate(-50%) translateY(40px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes ach-slide-out{0%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(40px)}}.ach-toast-icon{font-size:1.6rem;line-height:1;flex-shrink:0}.ach-toast-text{display:flex;flex-direction:column;gap:2px}.ach-toast-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--accent)}.ach-toast-name{font-size:.95rem;font-weight:700;color:var(--text-primary)}.level-badge{display:inline-flex;align-items:center;gap:8px;border:1.5px solid;border-radius:999px;font-weight:700;line-height:1;white-space:nowrap;vertical-align:middle}.level-badge--sm{padding:2px 8px 2px 4px;font-size:11px;gap:5px}.level-badge--md{padding:4px 10px 4px 4px;font-size:13px}.level-badge--lg{padding:6px 14px 6px 6px;font-size:16px;gap:10px}.level-badge-ring{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;border:2px solid;font-size:10px;font-weight:800;background:var(--bg, #fff)}.level-badge--sm .level-badge-ring{width:18px;height:18px;font-size:9px}.level-badge--lg .level-badge-ring{width:30px;height:30px;font-size:13px}.level-card{display:flex;flex-direction:column;gap:8px}.level-card-row{display:flex;align-items:center;justify-content:space-between;font-size:12px;opacity:.85}.level-progress{position:relative;height:8px;border-radius:999px;background:#94a3b833;overflow:hidden}.level-progress-fill{position:absolute;inset:0 auto 0 0;border-radius:999px;transition:width .4s ease}@keyframes level-up-pulse{0%{transform:scale(1);box-shadow:0 0 #eab308cc}50%{transform:scale(1.08);box-shadow:0 0 0 12px #eab30800}to{transform:scale(1);box-shadow:0 0 #eab30800}}.level-up-toast{position:fixed;top:80px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#f59e0b,#f97316);color:#fff;padding:14px 22px;border-radius:14px;box-shadow:0 14px 40px #f9731673;font-weight:800;font-size:16px;letter-spacing:.4px;z-index:9999;animation:level-up-pulse 1.4s ease infinite}.combo-counter{position:relative;display:inline-flex;align-items:baseline;gap:3px;padding:3px 9px;border-radius:999px;background:linear-gradient(135deg,#ff8a00,#e52e71);color:#fff;font-weight:800;letter-spacing:.6px;box-shadow:0 3px 10px #e52e7166;animation:combo-pop .32s cubic-bezier(.34,1.56,.64,1);pointer-events:none;flex-shrink:0}.combo-counter .combo-x{font-size:.85rem;opacity:.85}.combo-counter .combo-num{font-size:1.05rem;font-variant-numeric:tabular-nums}.combo-counter .combo-label{font-size:.62rem;letter-spacing:1px;margin-left:2px;opacity:.92}@keyframes combo-pop{0%{transform:scale(.7)}60%{transform:scale(1.18)}to{transform:scale(1)}}@media(max-width:480px){.combo-counter{padding:2px 7px}.combo-counter .combo-num{font-size:.95rem}.combo-counter .combo-label{font-size:.55rem}}.coach-modal-backdrop{position:fixed;inset:0;background:#0f172a8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9000;padding:16px;animation:coach-fade .18s ease-out}.coach-modal{background:var(--card-bg, #fff);color:var(--text, #0f172a);border-radius:18px;max-width:540px;width:100%;max-height:85vh;overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--border, rgba(15, 23, 42, .1));box-shadow:0 20px 60px #0f172a59;animation:coach-slide .22s cubic-bezier(.2,.9,.3,1.1)}.coach-modal-header{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border, rgba(15, 23, 42, .08));background:linear-gradient(90deg,#f59e0b1a,#f973160d)}.coach-modal-header h2{font-size:18px;margin:0;flex:1;font-weight:800}.coach-icon{font-size:24px}.coach-close{background:transparent;border:none;font-size:28px;line-height:1;color:var(--text-muted, #64748b);cursor:pointer;padding:0 4px}.coach-close:hover{color:var(--text, #0f172a)}.coach-body,.coach-locked,.coach-loading,.coach-error{padding:18px;overflow-y:auto;flex:1}.coach-locked{text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.coach-lock-icon{font-size:48px}.coach-locked h3{margin:0;font-size:20px;font-weight:800}.coach-locked p{color:var(--text-muted, #64748b);line-height:1.5;max-width:380px}.coach-cta{margin-top:8px;padding:10px 24px;border:none;border-radius:999px;background:linear-gradient(90deg,#f59e0b,#f97316);color:#fff;font-weight:800;font-size:15px;cursor:pointer;box-shadow:0 6px 16px #f59e0b59}.coach-cta:hover{transform:translateY(-1px)}.coach-loading{text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--text-muted, #64748b)}.coach-spinner{width:36px;height:36px;border:3px solid var(--border, rgba(15, 23, 42, .1));border-top-color:#f59e0b;border-radius:50%;animation:coach-spin .8s linear infinite}.coach-error{color:#dc2626;text-align:center}.coach-summary{background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);padding:12px 14px;border-radius:10px;font-size:14px;margin:0 0 16px;line-height:1.5}.coach-body h4{margin:14px 0 8px;font-size:14px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #64748b)}.coach-tech-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px}.coach-tech-list li{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--surface, #f8fafc);border:1px solid var(--border, rgba(15, 23, 42, .08));border-radius:999px;font-size:13px}.coach-tech-name{font-weight:600}.coach-tech-count{color:var(--text-muted, #64748b);font-weight:700}.coach-step-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;counter-reset:step}.coach-step-list li{display:grid;grid-template-columns:70px 110px 1fr;gap:10px;padding:8px 10px;background:var(--surface, #f8fafc);border-radius:8px;font-size:13px;align-items:center}.coach-step-cell{font-weight:800;color:#f97316;font-family:monospace}.coach-step-tech{font-weight:600;color:var(--text, #0f172a)}.coach-step-reason{color:var(--text-muted, #64748b);font-size:12px;line-height:1.4}.coach-more{text-align:center;color:var(--text-muted, #64748b);font-style:italic}@keyframes coach-fade{0%{opacity:0}to{opacity:1}}@keyframes coach-slide{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes coach-spin{to{transform:rotate(360deg)}}@media(max-width:600px){.coach-step-list li{grid-template-columns:60px 1fr;grid-template-rows:auto auto}.coach-step-tech{grid-column:2}.coach-step-reason{grid-column:1 / -1;padding-top:4px;border-top:1px solid var(--border, rgba(15, 23, 42, .08))}}.game-page{max-width:1000px;margin:0 auto;padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:flex;flex-direction:column}.game-page .game-page-body{display:flex;flex-direction:column;justify-content:flex-start}@media(max-width:519px){.game-page{padding:4px 2vw 0;overscroll-behavior:none;padding-bottom:max(env(safe-area-inset-bottom,0px),12px);min-height:100dvh;max-height:100dvh;overflow:hidden;justify-content:flex-start}.game-page .game-page-body{flex:1 1 auto;justify-content:flex-start;padding:0 2vw}.game-grid td{touch-action:none}.action-row-end{padding-bottom:max(env(safe-area-inset-bottom,0px),8px)}}.game-page .app-header{margin-bottom:0!important;padding-bottom:0!important}.header-settings-wrap{position:relative}.header-settings-btn{color:var(--text-secondary)!important}.header-settings-popup{position:absolute;top:calc(100% + 6px);right:0;background:var(--bg-card, #fff);border:1px solid var(--glass-border);border-radius:10px;box-shadow:0 4px 16px #00000021;padding:6px;z-index:100;min-width:140px;display:flex;flex-direction:column;gap:4px}@media(max-width:519px){.header-settings-popup{position:fixed;top:58px;right:12px;left:auto;max-width:calc(100vw - 24px)}}.header-settings-item{display:flex;align-items:center;gap:6px;padding:6px 10px;border:none;border-radius:8px;background:transparent;color:var(--text-secondary);font-size:.8rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s;font-family:inherit}.header-settings-item:hover{background:var(--bg-cell-shaded);color:var(--text-primary)}.header-settings-item.active{color:var(--btn-primary);font-weight:600}.game-page-body{width:fit-content;margin:8px auto 0}.board-status-bar{display:flex;align-items:center;justify-content:space-between;width:min(calc(9 * var(--cell-size, 62px) + 6px),92vw);padding:0 2px;margin-bottom:6px}.status-group{display:flex;align-items:center;gap:6px}.status-left{flex:0 0 auto}.status-center{flex:1;justify-content:center}.status-right{flex:0 0 auto}.status-sep{color:var(--border-light);font-size:.7rem;-webkit-user-select:none;user-select:none}@media(max-width:519px){.game-page-body,.board-status-bar{width:100%}.board-status-bar .timer,.board-status-bar .score-chip,.board-status-bar .mistakes-chip,.board-status-bar .diff-badge{font-size:.75rem}}.board-status-bar .timer{font-size:.85rem;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text-secondary);opacity:.7}.pause-btn{background:var(--bg-card, #fff);border:1px solid var(--glass-border);border-radius:8px;cursor:pointer;font-size:.95rem;color:var(--text-secondary);width:30px;height:30px;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;line-height:1;transition:background .15s,color .15s}.pause-btn:hover{background:var(--bg-cell-shaded);color:var(--text-primary)}.board-pause-overlay{position:absolute;inset:0;background:var(--bg, #F8F5F2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;z-index:10;border-radius:4px;cursor:pointer;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.board-pause-overlay span{font-size:3rem;line-height:1;color:var(--text-secondary);opacity:.5}.board-pause-overlay small{font-size:.8rem;color:var(--text-secondary)}.pause-newgame-btn{margin-top:18px;padding:9px 20px;background:var(--btn-primary);color:var(--toggle-text);border:none;border-radius:10px;font-weight:700;font-size:.9rem;cursor:pointer;transition:transform .1s}.pause-newgame-btn:hover{transform:translateY(-1px)}.pause-newgame-btn:active{transform:translateY(0)}.board-status-bar .diff-badge{font-size:.8rem;font-weight:500;white-space:nowrap;color:var(--text-secondary);opacity:.7}.board-status-bar .score-chip{font-size:.82rem;font-weight:600;white-space:nowrap;color:var(--accent);font-variant-numeric:tabular-nums}.board-status-bar .mistakes-chip{font-size:.82rem;font-weight:700;white-space:nowrap;color:var(--error-text);font-variant-numeric:tabular-nums}[data-theme=dark] .board-status-bar .mistakes-chip{color:#ff6b6b;text-shadow:0 0 6px rgba(255,107,107,.35)}.header-lang-btn{padding:6px 12px;border:1px solid var(--glass-border);border-radius:999px;background:var(--bg-card);color:var(--text-primary);font-size:.8rem;font-weight:700;cursor:pointer;line-height:1}.header-lang-btn:hover{background:var(--bg-cell-shaded)}.mistake-count{font-size:1rem}.difficulty-select{text-align:center;margin-top:40px;padding:0 4px}@media(max-width:519px){.difficulty-select{margin-top:16px}}.difficulty-select h2{margin-bottom:24px;font-size:1.5rem;min-height:2.2rem;display:flex;align-items:center;justify-content:center;white-space:nowrap}.difficulty-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;width:min(500px,96vw);margin:0 auto}.difficulty-btn{background:var(--bg-card);border:1px solid var(--glass-border);border-radius:12px;padding:14px 10px 11px;min-height:88px;cursor:pointer;transition:transform .14s,box-shadow .2s,border-color .2s;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:4px;color:var(--text-primary);font-family:inherit;position:relative;overflow:hidden}.difficulty-btn:before{position:absolute;bottom:-10px;right:4px;font-family:Playfair Display,Georgia,serif;font-size:4.8rem;font-weight:800;line-height:1;color:var(--text-primary);opacity:.065;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0}.diff-1:before{content:"I"}.diff-2:before{content:"II"}.diff-3:before{content:"III"}.diff-4:before{content:"IV"}.diff-5:before{content:"V"}.difficulty-btn:hover{transform:translateY(-2px);border-color:var(--btn-primary);box-shadow:0 6px 22px #0000001a,0 0 0 1px var(--btn-primary)}.difficulty-btn:active{transform:scale(.96)}.difficulty-btn:disabled{opacity:.6;cursor:default;transform:none!important;box-shadow:none!important}.difficulty-btn:nth-child(n){background:var(--bg-card);border-color:var(--glass-border)}.difficulty-btn:nth-child(n) .diff-name{color:var(--text-primary)}.diff-name{font-size:.8rem;font-weight:700;text-align:left;line-height:1.2;color:var(--text-primary);font-family:Playfair Display,Georgia,serif;position:relative;z-index:1;letter-spacing:.01em}.difficulty-select h2{margin-bottom:24px;font-size:1.5rem;min-height:2.2rem;display:flex;align-items:center;justify-content:center;white-space:nowrap;font-family:Playfair Display,Georgia,serif;gap:14px}.difficulty-select h2:before,.difficulty-select h2:after{content:"";flex:1;height:1px;background:var(--glass-border);opacity:.8}@media(max-width:420px){.difficulty-grid{grid-template-columns:repeat(3,1fr)}.difficulty-btn{min-height:72px;padding:10px 8px 9px}.diff-name{font-size:.75rem}}.loading-msg{margin-top:24px;font-size:1.1rem;color:var(--text-secondary)}.game-layout{display:flex;flex-direction:column;gap:10px;width:fit-content;margin:0 auto}@media(max-width:519px){.game-layout{width:100%;gap:6px}}.game-board{width:100%}.game-grid{border-collapse:collapse;border:3px solid #3B2A20;table-layout:fixed}.game-grid td{width:62px;height:62px;max-width:62px;aspect-ratio:1 / 1;text-align:center;vertical-align:middle;border:1px solid #d1d5db;cursor:pointer;position:relative;font-size:calc(var(--cell-font-scale, 1) * 1.6rem);transition:background .1s;overflow:hidden;box-sizing:border-box}@media(max-width:899px){.game-layout{width:100%;max-width:560px}.game-grid{width:100%}.game-grid td{width:auto;max-width:none;height:calc(min(100vw - 16px,560px) / 9);font-size:calc(var(--cell-font-scale, 1) * clamp(1.25rem,4.5vw,1.6rem))}}@media(max-width:519px){.game-grid{width:92vw}.game-grid td{aspect-ratio:1 / 1;height:calc((100vw - 8vw) / 9);font-size:calc(var(--cell-font-scale, 1) * clamp(.95rem,4.5vw,1.6rem))}.game-page-body .board-status-bar{width:100%;flex-shrink:0}.solo-numpad-mobile{flex-shrink:0}.solo-numpad-mobile .number-pad{gap:4px}.solo-numpad-mobile .num-btn{height:64px;min-height:64px;font-size:1.3rem}.game-controls{flex-shrink:0;gap:4px}.action-row .action-btn{min-height:34px;padding:2px 4px}.action-row .action-btn .btn-icon{font-size:1rem}.action-row .action-btn .btn-label{font-size:.52rem}}.game-grid tr:nth-child(3n) td{border-bottom:3px solid #3B2A20}.game-grid td:nth-child(3n){border-right:3px solid #3B2A20}.game-cell.given{font-weight:700;color:var(--text-primary);background:var(--bg-cell-shaded)}.game-cell:not(.given) .cell-value{color:var(--btn-primary);font-weight:500}.game-cell.selected{background:#dbeafe!important;outline:2px solid #2563eb;outline-offset:-2px}.game-cell.highlighted{background:#f0f4ff}.game-cell.wrong{background:#fecaca!important;animation:shake .3s}.game-cell.digit-highlight{background:#e0e7ff}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}[data-theme=dark] .game-grid{border-color:var(--border-bold)}[data-theme=dark] .game-grid tr:nth-child(3n) td{border-bottom-color:var(--border-bold)}[data-theme=dark] .game-grid td:nth-child(3n){border-right-color:var(--border-bold)}[data-theme=dark] .game-grid td{border-color:#374151;background:#1e2329}[data-theme=dark] .game-cell.given{color:#f5f5f5;font-weight:700;background:#272b31}[data-theme=dark] .game-cell:not(.given) .cell-value{color:#68b89f;font-weight:500}[data-theme=dark] .game-cell.selected{background:#1e3a5f!important;outline-color:#60a5fa}[data-theme=dark] .game-cell.highlighted{background:#1e2a3a}[data-theme=dark] .game-cell.wrong{background:#5c1a1a!important}[data-theme=dark] .game-cell.digit-highlight{background:#1e2e40}[data-theme=dark] .cell-notes .note{color:#6b7280}[data-theme=dark] .cell-notes .note.active{color:#9ca3af}.rival-hint-dot{font-size:1rem;display:flex;align-items:center;justify-content:center;width:100%;height:100%;line-height:1}.rival-hint-dot-overlay{position:absolute;bottom:1px;right:2px;width:auto!important;height:auto!important;font-size:.55rem!important;display:block!important;line-height:1}.score-flash{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:2.8rem;font-weight:900;color:var(--accent-dark);opacity:0;pointer-events:none;z-index:20;animation:scoreFlashAnim .85s ease-out forwards;white-space:nowrap}@keyframes scoreFlashAnim{0%{opacity:.65;transform:translate(-50%,-50%) scale(.8)}25%{opacity:.55;transform:translate(-50%,-65%) scale(1.15)}to{opacity:0;transform:translate(-50%,-120%) scale(1)}}.cell-notes{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:100%;height:100%;padding:2px}.cell-notes .note{font-size:.6rem;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;line-height:1}.cell-notes .note.active{color:var(--text-primary);font-weight:600}.game-board-area{display:flex;flex-direction:column;gap:16px;width:fit-content;position:relative}.game-controls{display:flex;flex-direction:column;gap:12px;width:min(calc(9 * var(--cell-size, 62px) + 6px),92vw)}@media(min-width:900px){.game-layout{flex-direction:row!important;align-items:flex-start;gap:28px;width:auto!important;max-width:1200px;margin:0 auto}.game-controls{width:260px;flex-shrink:0}}.solo-numpad-mobile{display:block}.solo-numpad-desktop{display:none}@media(min-width:900px){.solo-numpad-mobile{display:none}.solo-numpad-desktop{display:block;margin-bottom:10px}.solo-numpad-desktop .number-pad{grid-template-columns:repeat(3,1fr)!important;max-width:190px}.solo-numpad-desktop .num-btn{height:40px;min-height:40px;font-size:1.05rem}}@media(min-width:900px){:root{--cell-size: clamp(50px, 7.5vh, 80px)}.game-grid td{width:var(--cell-size);height:var(--cell-size);max-width:var(--cell-size);font-size:calc(var(--cell-font-scale, 1) * calc(var(--cell-size) * .41))}.board-status-bar,.game-page-body .board-status-bar{width:calc(9 * var(--cell-size) + 6px)}.solo-numpad-desktop .num-btn{height:clamp(40px,5vh,64px);min-height:clamp(40px,5vh,64px);font-size:clamp(1.05rem,2.2vh,1.35rem)}.action-row .action-btn{min-height:clamp(44px,5.2vh,68px)}.action-row .action-btn .btn-icon{font-size:clamp(1.15rem,2.2vh,1.5rem)}}.number-pad{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:6px;width:100%;max-width:100%;box-sizing:border-box}.num-btn{width:100%;min-width:0;height:38px;font-size:1.05rem;font-weight:600;border:1.5px solid var(--glass-border);border-radius:10px;background:var(--glass-bg);color:var(--text-primary);cursor:pointer;transition:background .1s,border-color .1s;position:relative;display:flex;align-items:center;justify-content:center;min-height:38px;touch-action:manipulation;box-sizing:border-box}[data-theme=dark] .num-btn{background:#2e2a28;border-color:#3d3733}[data-theme=dark] .num-btn:hover{background:#3a3530}[data-theme=dark] .action-btn{background:#2e2a28;border-color:#3d3733}[data-theme=dark] .action-btn:hover{background:#3a3530}@media(min-width:520px)and (max-width:899px){.num-btn{height:70px;min-height:70px;font-size:1.3rem;border-radius:12px}.number-pad{gap:6px}}@media(max-width:520px){.num-btn{height:64px;min-height:64px;font-size:1.4rem;border-radius:12px}.number-pad{gap:4px}}@media(max-width:380px){.num-btn{height:58px;min-height:58px;font-size:1.2rem}.number-pad{gap:3px}}.num-btn:hover{background:var(--bg-cell-shaded);border-color:var(--btn-primary)}.num-btn.active{background:var(--bg-cell-shaded);border-color:var(--btn-primary);outline:2px solid var(--btn-primary);outline-offset:-2px}.num-btn.completed{opacity:.3;cursor:default}.num-count{position:absolute;bottom:2px;right:3px;font-size:.62rem;color:var(--text-secondary);font-weight:600;line-height:1;background:#0000000f;padding:0 2px;border-radius:3px}[data-theme=dark] .num-count{background:#ffffff1a;color:#9ca3af}.action-buttons{display:flex;flex-direction:column;gap:6px;width:100%}.action-row{display:flex;gap:6px;width:100%}.action-row .action-btn{flex:1}.action-btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:4px 6px;border:1px solid var(--glass-border);border-radius:10px;background:var(--glass-bg);color:var(--text-secondary);cursor:pointer;font-size:.78rem;font-weight:600;font-family:inherit;letter-spacing:.01em;white-space:nowrap;min-height:42px;min-width:42px;touch-action:manipulation;transition:background .15s,border-color .15s,color .15s;line-height:1}.action-btn .btn-icon{font-size:1.1em;flex-shrink:0;opacity:.85}.action-btn .btn-label{font-size:.55rem;line-height:1;opacity:.75;max-width:52px;overflow:hidden;text-overflow:ellipsis}.action-btn:hover{background:var(--bg-cell-shaded);border-color:var(--btn-primary);color:var(--text-primary)}.action-btn:hover .btn-icon{opacity:1}.action-btn.active{background:var(--btn-primary);border-color:var(--btn-primary);color:#fff}.action-btn.active .btn-icon{opacity:1}.action-btn:disabled{opacity:.35;cursor:default}.action-btn.danger-btn{color:#e05252}.action-btn.danger-btn:hover{background:#e052521a;color:#c0392b}.action-btn.analyzed{color:var(--success-text, #2d8a5a)}@media(min-width:520px)and (max-width:899px){.action-buttons{width:100%;gap:4px}.action-row .action-btn{flex-direction:column;min-height:48px;padding:6px 4px;gap:2px}.action-row .action-btn .btn-icon{font-size:1.2em}.action-row .action-btn .btn-label{font-size:.62rem;max-width:none}}@media(min-width:900px){.action-buttons{width:max-content}.action-row{flex-direction:column;gap:5px}.action-row .action-btn{flex:unset;flex-direction:row;justify-content:flex-start;gap:8px;min-height:36px;padding:6px 12px;width:100%}.action-row .action-btn .btn-icon{font-size:1.1em}.action-row .action-btn .btn-label{font-size:.78rem;max-width:none}}.hint-btn{position:relative}.hint-badge{position:absolute;top:3px;right:4px;background:#f59e0b;color:#1c1917;font-size:.62rem;font-weight:800;border-radius:6px;padding:1px 4px;line-height:1.2;pointer-events:none}[data-theme=dark] .hint-badge{background:#fbbf24;color:#1c1917}.action-btn:disabled .hint-badge{opacity:.45}@keyframes cell-correct-flash-overlay{0%{opacity:.65}40%{opacity:.35}to{opacity:0}}@keyframes cell-correct-flash-overlay-dark{0%{opacity:.55}40%{opacity:.28}to{opacity:0}}.cell-correct-flash{position:relative}.cell-correct-flash:after{content:"";position:absolute;inset:0;background-color:#4caf50;z-index:5;pointer-events:none;border-radius:inherit;animation:cell-correct-flash-overlay 1.2s ease-out forwards}[data-theme=dark] .cell-correct-flash:after{background-color:#68b89f;animation-name:cell-correct-flash-overlay-dark}@keyframes float-up{0%{opacity:0;transform:translate(calc(-50% + var(--float-offset, 0px))) translateY(0)}12%{opacity:1;transform:translate(calc(-50% + var(--float-offset, 0px))) translateY(-10px)}65%{opacity:1;transform:translate(calc(-50% + var(--float-offset, 0px))) translateY(-20px)}to{opacity:0;transform:translate(calc(-50% + var(--float-offset, 0px))) translateY(-52px)}}.float-score{position:absolute;top:calc((var(--float-row, 4) + .5) / 9 * 100%);left:calc((var(--float-col, 4) + .5) / 9 * 100%);z-index:120;pointer-events:none;font-size:1.55rem;font-weight:800;color:#4caf50;letter-spacing:.02em;text-shadow:0 2px 10px rgba(76,175,80,.55);animation:float-up 1.4s linear forwards;will-change:transform,opacity}[data-theme=dark] .float-score{color:#68b89f;text-shadow:0 2px 10px rgba(104,184,159,.6)}@keyframes score-pulse-anim{0%{transform:scale(1);color:inherit}25%{transform:scale(1.2);color:#4caf50}60%{transform:scale(1.06);color:#4caf50}to{transform:scale(1);color:inherit}}.score-chip.score-pulse{animation:score-pulse-anim .65s cubic-bezier(.22,1,.36,1) both;display:inline-block}[data-theme=dark] .score-chip.score-pulse{animation-name:score-pulse-anim-dark}@keyframes score-pulse-anim-dark{0%{transform:scale(1);color:inherit}25%{transform:scale(1.2);color:#68b89f}60%{transform:scale(1.06);color:#68b89f}to{transform:scale(1);color:inherit}}@keyframes cell-pop{0%{transform:scale(1)}40%{transform:scale(1.22)}70%{transform:scale(.93)}to{transform:scale(1)}}@keyframes cell-headshake{0%{transform:translate(0);background-color:transparent}12%{transform:translate(-6px);background-color:#ef44448c}28%{transform:translate(6px);background-color:#ef444473}44%{transform:translate(-5px);background-color:#ef444459}60%{transform:translate(4px);background-color:#ef444433}76%{transform:translate(-2px);background-color:#ef44441a}to{transform:translate(0);background-color:transparent}}@keyframes cell-shimmer{0%{background-color:transparent}35%{background-color:#ffffff4d}to{background-color:transparent}}@keyframes cell-ripple{0%{transform:scale(1)}45%{transform:scale(1.12)}to{transform:scale(1)}}.cell-pop{animation:cell-pop .28s cubic-bezier(.34,1.56,.64,1) both}.cell-headshake{animation:cell-headshake .52s ease both;outline:2px solid rgba(239,68,68,.6);outline-offset:-2px;z-index:1}[data-theme=dark] .cell-headshake{outline-color:#ef4444d9}.cell-shimmer{animation:cell-shimmer .55s ease-out both}.cell-ripple{animation:cell-ripple .42s ease-out both;animation-delay:var(--ripple-delay, 0ms)}[data-theme=dark] .cell-shimmer{animation-name:cell-shimmer-dark}@keyframes cell-shimmer-dark{0%{background-color:transparent}35%{background-color:#68b89f38}to{background-color:transparent}}@keyframes finishReveal{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes scorePopIn{0%{transform:scale(.7);opacity:0}60%{transform:scale(1.15)}to{transform:scale(1);opacity:1}}.finish-screen{text-align:center;padding:40px;animation:finishReveal .45s cubic-bezier(.34,1.4,.64,1) both}.personal-best-banner{display:inline-flex;align-items:center;gap:10px;margin:0 auto 14px;padding:10px 22px;border-radius:999px;background:linear-gradient(135deg,#ffb700,#f50);color:#fff;font-weight:800;letter-spacing:1.2px;box-shadow:0 8px 24px #ff570073;animation:pb-pop .6s cubic-bezier(.34,1.56,.64,1) both,pb-glow 1.4s ease-in-out infinite alternate .6s;text-transform:uppercase}.personal-best-banner .pb-icon{font-size:1.4em}.personal-best-banner .pb-label{font-size:1rem}.personal-best-banner .pb-sub{font-size:.8rem;opacity:.85;padding-left:8px;border-left:1px solid rgba(255,255,255,.4)}@keyframes pb-pop{0%{opacity:0;transform:scale(.5)}60%{opacity:1;transform:scale(1.12)}to{opacity:1;transform:scale(1)}}@keyframes pb-glow{0%{filter:brightness(1)}to{filter:brightness(1.2)}}@media(max-width:480px){.personal-best-banner{padding:8px 16px;font-size:.92rem}}.score-value{animation:scorePopIn .5s .3s cubic-bezier(.34,1.56,.64,1) both}.game-over-msg{font-size:1.1rem;color:var(--text-secondary);margin-bottom:24px}.finish-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;max-width:600px;margin:0 auto 32px}.stat{display:flex;flex-direction:column;gap:4px}.stat-label{font-size:.85rem;color:var(--text-secondary)}.stat-value{font-size:1.6rem;font-weight:700}.score-stat .stat-label{font-size:1rem;font-weight:600;color:var(--accent)}.score-value{font-size:2.2rem!important;color:var(--accent)}.finish-actions{display:flex;gap:12px;justify-content:center}.finish-actions button{padding:12px 24px;border:none;border-radius:10px;font-size:1rem;cursor:pointer;background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff}.finish-actions button:last-child{background:var(--bg-cell-shaded);color:var(--text-primary)}@media(max-width:1280px){.game-page{padding:14px 10px 72px}.game-header{flex-wrap:wrap;gap:10px;align-items:flex-start}}.lobby-page{max-width:720px;margin:0 auto;padding:24px 16px;animation:fadeIn .3s ease-out}.lobby-page .page-header{display:flex;align-items:center;gap:16px;margin-bottom:28px}.lobby-page .page-header h1{font-size:clamp(1.2rem,4vw,1.6rem);font-weight:800;letter-spacing:-.02em;margin:0}.connecting-badge{font-size:.8rem;color:var(--text-secondary);background:var(--glass-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--glass-border);border-radius:12px;padding:3px 10px;margin-left:auto;white-space:nowrap}.lobby-section{margin-bottom:24px;padding:18px;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:16px}.section-label{display:block;font-weight:700;margin-bottom:10px;font-size:.95rem;color:var(--text-primary)}.nickname-input{width:100%;padding:10px 14px;border:1px solid var(--glass-border);border-radius:10px;font-size:1rem;font-family:inherit;box-sizing:border-box;background:var(--bg);color:var(--text-primary);transition:border-color .2s,box-shadow .2s}.nickname-input:focus{border-color:var(--btn-primary);box-shadow:0 0 0 3px var(--glow-soft);outline:none}.join-row{display:flex;gap:10px}.code-input{flex:1;padding:10px 14px;border:1px solid var(--glass-border);border-radius:10px;font-size:1rem;font-family:inherit;letter-spacing:3px;text-transform:uppercase;font-weight:700;text-align:center;background:var(--bg);color:var(--text-primary);transition:border-color .2s,box-shadow .2s}.code-input:focus{border-color:var(--btn-primary);box-shadow:0 0 0 3px var(--glow-soft);outline:none}.join-btn{padding:var(--btn-control-padding-y) 1.5rem;background:var(--btn-primary);color:#fff;border:none;border-radius:var(--btn-control-radius);font-weight:700;font-family:inherit;cursor:pointer;font-size:.95rem;min-height:var(--btn-control-min-height);touch-action:manipulation;transition:box-shadow .2s}.join-btn:hover{box-shadow:0 0 16px var(--glow)}.create-toggle{width:100%;padding:var(--btn-control-padding-y) var(--btn-control-padding-x);background:var(--btn-primary);color:#fff;border:none;border-radius:var(--btn-control-radius);font-weight:700;font-size:1rem;font-family:inherit;cursor:pointer;transition:box-shadow .2s,transform .1s;box-shadow:0 2px 12px var(--glow-soft)}.create-toggle:hover{box-shadow:0 4px 20px var(--glow)}.create-toggle:active{transform:scale(.98)}.create-form{margin-top:14px;padding:16px;background:var(--bg-card);border-radius:12px;border:1px solid var(--glass-border)}.form-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.form-row label{font-weight:600;color:var(--text-secondary)}.form-row select,.form-row input[type=text]{padding:8px 12px;border:1px solid var(--glass-border);border-radius:8px;font-size:.95rem;font-family:inherit;min-width:160px;background:var(--bg);color:var(--text-primary);transition:border-color .2s}.form-row input[type=text]:focus{border-color:var(--btn-primary);outline:none}.form-toggle{position:relative;display:inline-block;width:40px;height:22px;cursor:pointer;flex-shrink:0}.form-toggle input{opacity:0;width:0;height:0;position:absolute}.form-toggle-track{position:absolute;inset:0;border-radius:11px;background:var(--glass-border);transition:background .2s}.form-toggle-track:after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:var(--text-secondary);transition:transform .2s,background .2s}.form-toggle input:checked+.form-toggle-track{background:var(--btn-primary)}.form-toggle input:checked+.form-toggle-track:after{transform:translate(18px);background:#fff}.create-btn{width:100%;padding:var(--btn-control-padding-y) var(--btn-control-padding-x);background:var(--btn-primary);color:var(--toggle-text);border:none;border-radius:var(--btn-control-radius);font-weight:700;font-size:1rem;font-family:inherit;cursor:pointer;margin-top:4px;transition:box-shadow .2s,background .15s}.create-btn:hover{background:var(--btn-primary-hover)}.no-rooms{text-align:center;color:var(--text-secondary);padding:20px;font-style:italic}.rooms-list{display:flex;flex-direction:column;gap:10px}.room-card{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:var(--glass-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:14px;border:1px solid var(--glass-border);transition:border-color .2s,box-shadow .2s}.room-card:hover{border-color:var(--btn-primary);box-shadow:0 0 16px var(--glow-soft)}.room-card-playing{border-color:#6366f180;background:#6366f10a}.room-card-friend{border-color:var(--btn-primary);box-shadow:0 0 12px var(--glow-soft)}.room-name-row{display:flex;align-items:center;gap:8px}.room-friend-badge{display:inline-block;padding:2px 8px;background:var(--btn-primary);color:var(--toggle-text);border-radius:999px;font-size:.7rem;font-weight:800}.room-info{display:flex;flex-direction:column;gap:3px}.room-meta-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.room-name{font-weight:800;font-size:1rem;color:var(--text-primary)}.room-host{font-weight:700;font-size:.95rem;color:var(--text-primary)}.room-difficulty{font-size:.82rem;color:var(--btn-primary);font-weight:600}.room-players{font-size:.82rem;color:var(--text-secondary)}.room-status-playing{font-size:.72rem;font-weight:700;color:#6366f1;background:#6366f11f;border:1px solid rgba(99,102,241,.3);border-radius:8px;padding:1px 7px;white-space:nowrap}.join-room-btn{padding:var(--btn-control-padding-y) 1.25rem;background:var(--btn-primary);color:#fff;border:none;border-radius:var(--btn-control-radius);font-weight:700;font-family:inherit;cursor:pointer;font-size:.9rem;min-height:var(--btn-control-min-height);transition:box-shadow .2s}.join-room-btn:hover{box-shadow:0 0 12px var(--glow)}@media(max-width:480px){.join-row{flex-direction:column}.form-row{flex-direction:column;align-items:flex-start;gap:8px}.form-row select,.form-row input[type=text]{width:100%;min-width:0}.room-card{flex-direction:column;align-items:flex-start;gap:10px}.join-room-btn{width:100%}}.active-room-modal-overlay{position:fixed;inset:0;background:#00000073;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:200;padding:16px;animation:fadeIn .18s ease-out}.active-room-modal{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:20px;padding:24px;width:100%;max-width:360px;display:flex;flex-direction:column;gap:16px;box-shadow:0 20px 60px #0000002e}.active-room-modal-header{display:flex;align-items:center;justify-content:space-between}.active-room-modal-title{font-size:1.05rem;font-weight:800;color:var(--text-primary)}.active-room-modal-close{background:transparent;border:none;color:var(--text-secondary);font-size:1rem;cursor:pointer;padding:4px 6px;line-height:1;border-radius:6px;transition:color .15s}.active-room-modal-close:hover{color:var(--text-primary)}.active-room-modal-msg{margin:0;font-size:.9rem;color:var(--text-secondary);line-height:1.5}.active-room-code-row{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--bg-card);border:1px solid var(--glass-border);border-radius:12px}.active-room-code{font-family:monospace;font-size:1.5rem;font-weight:800;letter-spacing:5px;color:var(--btn-primary)}.active-room-name{font-size:.85rem;font-weight:600;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.active-room-actions{display:flex;gap:10px}.active-room-btn-primary{flex:1;padding:11px 16px;background:var(--btn-primary);color:#fff;border:none;border-radius:12px;font-size:.95rem;font-weight:700;font-family:inherit;cursor:pointer;transition:opacity .15s}.active-room-btn-primary:hover{opacity:.85}.active-room-btn-secondary{padding:11px 16px;background:transparent;color:var(--text-secondary);border:1px solid var(--glass-border);border-radius:12px;font-size:.9rem;font-weight:600;font-family:inherit;cursor:pointer;transition:border-color .15s,color .15s}.active-room-btn-secondary:hover{border-color:var(--btn-primary);color:var(--text-primary)}.rating-delta-toast{position:fixed;top:80px;left:50%;transform:translate(-50%) translateY(0);display:flex;flex-direction:column;align-items:center;gap:6px;background:var(--card-bg, var(--glass-bg));border-radius:16px;padding:14px 22px;box-shadow:0 8px 28px #0000004d;z-index:9998;min-width:clamp(180px,60vw,260px);animation:rdt-pop .45s cubic-bezier(.34,1.56,.64,1) forwards;pointer-events:none;border:2px solid}.rating-delta-toast.gain{border-color:#4caf50;box-shadow:0 8px 28px #4caf5059}.rating-delta-toast.loss{border-color:#e57373;box-shadow:0 8px 28px #e5737359}.rating-delta-toast.neutral{border-color:var(--text-secondary)}.rating-delta-toast.hiding{animation:rdt-fade-out .4s ease-in forwards}@keyframes rdt-pop{0%{opacity:0;transform:translate(-50%) translateY(-30px) scale(.6)}60%{opacity:1;transform:translate(-50%) translateY(0) scale(1.08)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@keyframes rdt-fade-out{0%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(-30px)}}.rdt-delta{display:flex;align-items:center;gap:8px;font-size:clamp(1.2rem,5vw,1.6rem);font-weight:800;font-variant-numeric:tabular-nums}.rating-delta-toast.gain .rdt-delta{color:#4caf50}.rating-delta-toast.loss .rdt-delta{color:#e57373}.rating-delta-toast.neutral .rdt-delta{color:var(--text-secondary)}.rdt-arrow{font-size:.9em;line-height:1}.rdt-value{letter-spacing:.02em}.rdt-progression{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--text-secondary);font-weight:600;font-variant-numeric:tabular-nums}.rdt-old{text-decoration:line-through;opacity:.7}.rdt-arrow-inline{opacity:.6}.rdt-new{color:var(--text-primary);font-weight:800;font-size:.95rem}@media(max-width:480px){.rating-delta-toast{top:64px;padding:12px 18px;min-width:70vw}}.rating-delta-toast.tier-changed{box-shadow:0 8px 32px #d4af3773,0 0 0 1px #ffffff0d;animation:rdt-pop .45s cubic-bezier(.34,1.56,.64,1) forwards,rdt-glow 1.6s ease-in-out .45s infinite alternate}@keyframes rdt-glow{0%{filter:brightness(1)}to{filter:brightness(1.18)}}.rdt-tier-banner{margin-top:6px;display:inline-flex;align-items:center;gap:8px;border:2px solid;border-radius:999px;padding:6px 14px;font-weight:800;letter-spacing:.6px;animation:rdt-tier-bounce .7s cubic-bezier(.34,1.56,.64,1) .25s both}.rdt-tier-icon{font-size:1.2em}.rdt-tier-label{font-size:.95rem;text-transform:uppercase}.rdt-tier-name{font-size:.9rem;opacity:.9}@keyframes rdt-tier-bounce{0%{opacity:0;transform:scale(.4)}60%{opacity:1;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}.room-page{max-width:720px;margin:0 auto;padding:24px 16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}@media(max-width:519px){.room-page{padding-bottom:max(env(safe-area-inset-bottom,0px),12px);overscroll-behavior:none}.mp-layout .action-row .action-btn{min-height:34px;padding:2px 4px}.mp-layout .action-row .action-btn .btn-label{font-size:.52rem}.mp-layout .action-row-end{padding-bottom:max(env(safe-area-inset-bottom,0px),8px)}}.room-code-section{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding:8px 12px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:10px;flex-wrap:nowrap}.code-label{font-weight:500;font-size:.8rem;color:var(--text-secondary);white-space:nowrap}.room-code-display{font-size:1.05rem;font-weight:800;letter-spacing:3px;color:var(--btn-primary);font-family:monospace;white-space:nowrap}.copy-btn{padding:4px 10px;background:var(--btn-primary);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:.75rem;font-weight:600;min-height:30px;transition:opacity .15s;white-space:nowrap}.copy-btn:hover{opacity:.85}.room-meta{display:flex;gap:10px;margin-bottom:18px}.meta-badge{padding:4px 12px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:20px;font-size:.85rem;color:var(--text-secondary);font-weight:500}.player-list{margin-bottom:20px}.player-list h3{margin:0 0 10px;color:var(--text-primary)}.player-item{padding:10px 14px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:8px;margin-bottom:6px;display:flex;align-items:center;justify-content:space-between;color:var(--text-primary)}.player-item.host{border-left:3px solid var(--btn-primary)}.host-tag{font-size:.75rem;background:var(--btn-primary);color:#fff;padding:2px 8px;border-radius:10px;font-weight:600}.start-btn{width:100%;padding:var(--btn-control-padding-y) var(--btn-control-padding-x);background:var(--btn-primary);color:#fff;border:none;border-radius:var(--btn-control-radius);font-size:1.1rem;font-weight:700;cursor:pointer;margin-top:8px;min-height:var(--btn-control-min-height);transition:opacity .15s}.start-btn:hover{opacity:.85}.start-btn:disabled{opacity:.5;cursor:wait}.waiting-msg{text-align:center;color:var(--text-secondary);padding:20px;font-style:italic}.player-color-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle;flex-shrink:0}.nickname-prompt{max-width:400px;margin:40px auto;padding:32px;background:var(--glass-bg);border-radius:16px;border:1px solid var(--glass-border);text-align:center}.nickname-prompt p{font-size:1.1rem;color:var(--text-primary);margin:0 0 16px;font-weight:500}.nickname-prompt .nickname-input{width:100%;padding:12px 16px;font-size:1.1rem;border:1px solid var(--glass-border);border-radius:10px;outline:none;text-align:center;margin-bottom:16px;box-sizing:border-box;background:var(--bg);color:var(--text-primary);transition:border-color .2s}.nickname-prompt .nickname-input:focus{border-color:var(--btn-primary)}.nickname-prompt .start-btn{width:100%;margin-top:0}.connecting-badge{text-align:center;color:var(--text-secondary);font-size:.9rem;padding:8px}.game-layout.mp-layout{display:flex;flex-direction:column;align-items:center;width:100%;max-width:100%;margin-top:16px}.mp-board-area{display:flex;flex-direction:column;gap:8px;position:relative}@media(max-width:899px){.mp-board-area{gap:10px}.mp-top-row,.mp-panels-row{display:flex;flex-direction:column;gap:10px}.mp-right-panel{gap:10px}}.mp-status-bar{width:min(560.4px,92vw)!important;margin-bottom:0}.mp-status-code{position:absolute;left:50%;transform:translate(-50%)}.board-status-bar.mp-status-bar{position:relative}.mp-right-panel{display:flex;flex-direction:column;gap:16px;width:100%}.mp-players-bar{width:100%}.mp-numpad-desktop{display:none}.mp-numpad-mobile{display:grid}@media(min-width:900px){.game-layout.mp-layout{display:flex;flex-direction:column;align-items:center;gap:0;width:auto;max-width:1300px;margin-left:auto;margin-right:auto}.mp-top-row{display:flex;flex-direction:column;width:fit-content;margin:0 auto;gap:16px}.mp-panels-row{display:flex;flex-direction:row;align-items:flex-start;gap:28px}.mp-board-area{flex-shrink:0}.mp-right-panel{flex:1;min-width:200px;max-width:320px;align-self:flex-start}.mp-competition-table-wrap{width:100%;max-width:749px}.mp-right-panel .game-controls{width:100%!important}.mp-numpad-mobile{display:none!important}.mp-numpad-desktop{display:block}.mp-numpad-desktop .number-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;max-width:160px}.mp-numpad-desktop .num-btn{min-height:34px;height:34px;min-width:0;font-size:.95rem;padding:4px 0}.mp-numpad-desktop .num-count{font-size:.6rem}}@media(max-width:899px){.mp-top-row{width:min(560.4px,92vw)}}.mp-competition-table-wrap{width:100%}.mp-competition-title{color:var(--text-primary);font-size:.95rem;margin:0 0 6px}.mp-competition-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.mp-competition-table{width:100%;min-width:420px;border-collapse:collapse;font-size:.9rem;table-layout:fixed}.mp-competition-table colgroup col:nth-child(1){width:38px}.mp-competition-table colgroup col:nth-child(2){width:80px}.mp-competition-table colgroup col:nth-child(3){width:50px}.mp-competition-table colgroup col:nth-child(4){width:50px}.mp-competition-table colgroup col:nth-child(5){width:50px}.mp-competition-table colgroup col:nth-child(6){width:54px}.mp-competition-table colgroup col:nth-child(7){width:66px}.mp-competition-table colgroup col:nth-child(8){width:72px}.mp-competition-table th{text-align:left;padding:6px;color:var(--text-secondary);font-weight:600;border-bottom:1px solid var(--glass-border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mp-competition-table td{padding:6px;border-bottom:1px solid var(--glass-border);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mp-players-bar{display:none;gap:8px;flex-wrap:wrap;margin-bottom:10px}@media(min-width:900px){.mp-players-bar{display:flex}}.mp-player-chip{display:flex;flex-direction:column;gap:2px;padding:4px 10px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:8px;font-size:.78rem;min-width:80px}.mp-player-chip.me{border-color:var(--btn-primary)}.mp-player-chip.finished{opacity:.6}.mp-player-chip.offline{opacity:.5;filter:grayscale(.7)}.mp-player-chip-name{font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px}.mp-player-chip-bar{height:4px;background:var(--glass-border);border-radius:2px;overflow:hidden}.mp-player-chip-fill{height:100%;border-radius:2px;transition:width .3s}.mp-score-overlay{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:1000;animation:mpScoreFade 1.8s ease-out forwards;white-space:nowrap;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:10px;padding:10px 22px;font-size:.95rem;color:var(--text-primary);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}@keyframes mpScoreFade{0%{opacity:0;transform:translate(-50%,-44%)}12%{opacity:1;transform:translate(-50%,-50%)}70%{opacity:1;transform:translate(-50%,-50%)}to{opacity:0;transform:translate(-50%,-62%)}}.mp-sidebar{display:flex;flex-direction:column;gap:8px;min-width:160px}.mp-sidebar-player{padding:8px 12px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:8px;font-size:.85rem;color:var(--text-primary)}.color-toggle-btn{background:transparent;border:1px solid var(--glass-border);border-radius:var(--btn-control-radius);color:var(--text-secondary);padding:4px 10px;font-size:.78rem;cursor:pointer;transition:border-color .15s,color .15s}.color-toggle-btn:hover{border-color:var(--btn-primary);color:var(--text-primary)}.game-info{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center}.game-info .timer{display:inline-flex;align-items:center;padding:3px 10px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:8px;font-size:.82rem;font-weight:600;white-space:nowrap;color:var(--text-primary);font-variant-numeric:tabular-nums}.game-info .diff-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:8px;font-size:.82rem;font-weight:700;white-space:nowrap;color:#fff}.mp-room-code{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 12px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:8px;white-space:nowrap}.mp-room-code-label{font-size:.68rem;color:var(--text-secondary);font-weight:500;text-transform:uppercase;letter-spacing:1px}.mp-room-code-value{font-size:.88rem;color:var(--text-primary);font-family:monospace;letter-spacing:3px;font-weight:700}.status-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;font-size:.72rem;font-weight:600;white-space:nowrap}.status-pill.playing{background:#34d39926;color:#059669}.status-pill.finished{background:#6366f126;color:#6366f1}.status-pill.failed{background:#ef444426;color:#dc2626}.status-pill.offline{background:#96969626;color:#888}.status-pill.solver-used{background:#fb923c26;color:#d97706}.solver-used-badge{display:inline-block;margin-left:6px;padding:1px 5px;border-radius:4px;font-size:.68rem;font-weight:600;background:#b4641e26;color:#c47820;vertical-align:middle}.room-name-tag{font-size:.78rem;font-weight:600;color:var(--text-secondary);padding:2px 8px;border:1px solid var(--glass-border);border-radius:10px;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}.room-header-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:10px;font-size:.75rem;font-weight:600;font-family:inherit;cursor:pointer;color:var(--text-secondary);white-space:nowrap;max-width:300px;overflow:hidden;text-overflow:ellipsis;transition:border-color .15s,color .15s}.room-header-chip:hover{border-color:var(--btn-primary);color:var(--text-primary)}.room-header-sep{opacity:.4}.copy-toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#1e1e28eb;color:#fff;padding:10px 22px;border-radius:10px;font-size:.9rem;font-weight:600;pointer-events:none;z-index:9999;animation:toast-fade 1.8s ease forwards}.mp-eliminated-toast{background:#7f1d1df2;border:1px solid rgba(239,68,68,.5);font-size:1rem;padding:14px 28px;animation:toast-fade 3.5s ease forwards}.mp-finished-toast{background:#064e3bf2;border:1px solid rgba(52,211,153,.5);font-size:1rem;padding:14px 28px;animation:toast-fade 3.5s ease forwards}@keyframes toast-fade{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}15%{opacity:1;transform:translate(-50%,-50%) scale(1)}70%{opacity:1}to{opacity:0}}.settings-btn-wrap{position:relative;display:inline-flex}.settings-popup{position:absolute;bottom:calc(100% + 6px);left:0;background:var(--bg);border:1px solid var(--glass-border);border-radius:10px;padding:8px;display:flex;flex-direction:row;flex-wrap:wrap;gap:6px;box-shadow:0 4px 16px #00000026;z-index:100}@media(min-width:900px){.settings-popup{bottom:auto;top:0;left:calc(100% + 6px);flex-direction:column}}.fail-badge{font-size:.72rem;font-weight:700;color:#dc2626;background:#ef44441f;border:1px solid rgba(239,68,68,.3);border-radius:10px;padding:2px 8px}.mp-finish-screen{max-width:520px;margin:0 auto;padding:0 16px 40px;display:flex;flex-direction:column;gap:24px;align-items:center}.mp-lb{width:100%}.mp-lb-title{font-size:1.4rem;font-weight:800;text-align:center;margin:0 0 20px;color:var(--text-primary);font-family:Playfair Display,Georgia,serif;letter-spacing:-.01em}@keyframes mp-lb-slide-in{0%{opacity:0;transform:translate(-28px)}to{opacity:1;transform:translate(0)}}.mp-lb-row{display:flex;flex-direction:column;gap:5px;padding:10px 16px 8px;border-radius:12px;margin-bottom:8px;background:var(--glass-bg);border:1px solid var(--glass-border);opacity:0;animation:mp-lb-slide-in .35s ease forwards}.mp-lb-row.first-place{padding:16px 20px 12px;border-radius:16px;margin-bottom:10px;box-shadow:0 8px 32px #f59e0b2e,0 0 0 1px #f59e0b40}.mp-lb-row.gold{border-color:#f59e0b;background:#f59e0b12}.mp-lb-row.silver{border-color:#94a3b8;background:#94a3b812}.mp-lb-row.bronze{border-color:#b45309;background:#b4530912}.mp-lb-row.is-me{outline:2px solid var(--btn-primary);outline-offset:-1px}.mp-lb-main{display:flex;align-items:center;gap:10px}.mp-lb-rank{font-weight:800;min-width:32px;color:var(--text-secondary);font-size:1rem}.first-place .mp-lb-rank{font-size:1.4rem}.mp-lb-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.mp-lb-name{flex:1;font-weight:700;color:var(--text-primary);font-size:.95rem}.first-place .mp-lb-name{font-size:1.1rem;font-family:Playfair Display,Georgia,serif}.mp-lb-score{font-weight:800;color:var(--text-primary);font-size:1rem;font-variant-numeric:tabular-nums}.first-place .mp-lb-score{font-size:1.3rem}.mp-lb-score-unit{font-size:.7em;font-weight:600;margin-left:1px;opacity:.7}.mp-lb-time{font-variant-numeric:tabular-nums;color:var(--text-secondary);font-size:.82rem;min-width:46px;text-align:right}.mp-lb-breakdown{display:flex;flex-wrap:wrap;gap:6px;padding-left:42px}.mp-bd-item{font-size:.72rem;font-weight:600;padding:1px 7px;border-radius:10px}.mp-bd-neg{background:#ef44441a;color:#dc2626}.mp-bd-pos{background:#68b89f26;color:#059669}.mp-bd-pristine{background:#f59e0b1f;color:#b45309;letter-spacing:.03em}[data-theme=dark] .mp-bd-neg{background:#ef444426;color:#f87171}[data-theme=dark] .mp-bd-pos{background:#68b89f26;color:#34d399}[data-theme=dark] .mp-bd-pristine{background:#f59e0b26;color:#fbbf24}.mp-my-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;width:100%}@media(max-width:480px){.mp-my-stats{grid-template-columns:repeat(2,1fr)}}.mp-stat{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 8px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:10px}.mp-stat span{font-size:.72rem;color:var(--text-secondary);text-align:center}.mp-stat strong{font-size:1.4rem;font-weight:800;color:var(--text-primary)}.mp-finish-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.mp-restart-area{display:flex;flex-direction:column;align-items:center;gap:8px}.mp-restart-diff-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center}.mp-restart-diff-label{font-size:.82rem;color:var(--text-secondary, var(--text-primary));opacity:.75}.mp-restart-diff-btn{padding:4px 10px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:20px;font-size:.8rem;font-weight:600;cursor:pointer;font-family:inherit;transition:border-color .15s,background .15s}.mp-restart-diff-btn.selected{background:#6c63ff26;border-color:var(--btn-primary)}.mp-restart-diff-btn:hover{border-color:var(--btn-primary)}.mp-btn-primary{padding:10px 24px;background:var(--btn-primary);color:#fff;border:none;border-radius:10px;font-size:.95rem;font-weight:700;cursor:pointer;font-family:inherit;transition:opacity .15s}.mp-btn-primary:hover{opacity:.85}.mp-btn-primary:disabled{opacity:.45;cursor:wait}.mp-btn-secondary{padding:10px 20px;background:var(--glass-bg);color:var(--text-primary);border:1px solid var(--glass-border);border-radius:10px;font-size:.9rem;font-weight:600;cursor:pointer;font-family:inherit;transition:border-color .15s}.mp-btn-secondary:hover{border-color:var(--btn-primary)}.mp-chat-wrap{width:100%;margin:16px 0 0;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px;padding:12px 14px;box-sizing:border-box}.mp-chat-messages{height:120px;overflow-y:auto;display:flex;flex-direction:column;gap:4px;padding:4px 0 6px;margin-bottom:10px;border-bottom:1px solid var(--glass-border);scroll-behavior:smooth}.mp-chat-msg{display:flex;gap:6px;font-size:.85rem;line-height:1.4;align-items:baseline}.mp-chat-msg.system .mp-chat-text{color:#22c55e;font-weight:700}.mp-chat-nick{font-weight:700;white-space:nowrap;flex-shrink:0}.mp-chat-nick:after{content:":"}.mp-chat-text{color:var(--text-primary);word-break:break-word}.mp-chat-presets{display:flex;gap:6px;flex-wrap:wrap}.mp-chat-preset-btn{padding:5px 12px;background:var(--bg);color:var(--text-primary);border:1px solid var(--glass-border);border-radius:20px;font-size:.82rem;cursor:pointer;font-family:inherit;transition:border-color .15s,background .15s;white-space:nowrap}.mp-chat-preset-btn:hover{border-color:var(--btn-primary);background:var(--glass-bg)}.countdown-overlay{position:fixed;inset:0;background:#000000bf;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:200;gap:16px}.countdown-number{font-size:clamp(100px,25vw,180px);font-weight:900;color:#fff;line-height:1;animation:countdownPulse .9s ease-out;text-shadow:0 0 60px rgba(108,99,255,.8)}.countdown-label{color:#fffc;font-size:1.1rem;margin:0;text-align:center}@keyframes countdownPulse{0%{transform:scale(1.4);opacity:0}30%{transform:scale(1);opacity:1}80%{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:.6}}.tb-wrap{margin:20px 0}.tb-scroll{overflow-x:auto}.tb-table{border-collapse:collapse;border:3px solid var(--text-primary, #1a1a2e);margin:0 auto;border-radius:4px}.tb-cell{width:42px;height:42px;border:1px solid var(--glass-border, #c0c0c0);text-align:center;vertical-align:middle;position:relative;padding:0;box-sizing:border-box}.tb-box-r{border-right:2.5px solid var(--text-primary, #3d4461)!important}.tb-box-b{border-bottom:2.5px solid var(--text-primary, #3d4461)!important}.tb-null{background:var(--bg, #f0f2f5)}.tb-given{background:var(--glass-bg, #dde2ee);color:var(--text-primary, #1a1a2e);font-weight:700}.tb-normal{background:var(--bg, #ffffff)}.tb-focus{background:#fff8dc;color:#7a5c00;outline:2px solid #e6b800;outline-offset:-2px;z-index:1}.tb-elim{background:#fff0f0;outline:2px solid #e05050;outline-offset:-2px;z-index:1}.tb-result{background:#e8f9ed;color:#1a6b35;outline:2px solid #2eb85c;outline-offset:-2px;z-index:1}[data-theme=dark] .tb-focus{background:#3d3520;color:#f5d56e;outline-color:#c99a00}[data-theme=dark] .tb-elim{background:#3d2020;outline-color:#c04040}[data-theme=dark] .tb-result{background:#1a3d25;color:#6ee69a;outline-color:#22a050}.tb-val{font-size:1.2rem;font-weight:700;display:block;line-height:1;color:inherit}.tb-given .tb-val{color:var(--text-primary, #1a1a2e)}.tb-cands{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:100%;height:100%;padding:2px;box-sizing:border-box;gap:0}.tb-cn{font-size:9px;color:var(--text-secondary, #2c3e50);font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1}.tb-co{display:flex;align-items:center;justify-content:center}.tb-cx{font-size:9px;color:#dc2626;font-weight:700;display:flex;align-items:center;justify-content:center;text-decoration:line-through;line-height:1}[data-theme=dark] .tb-cx{color:#f87171}.tb-caption{text-align:center;font-size:.88rem;color:var(--text-secondary, #374151);font-style:italic;line-height:1.5;max-width:500px;margin:12px auto 6px}.tb-legend{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:10px}.tb-leg{padding:3px 10px;border-radius:4px;font-size:.75rem;font-weight:600;border:1px solid transparent}.tb-leg-focus{background:#fff8dc;color:#7a5c00;border-color:#e6b800}.tb-leg-elim{background:#fff0f0;color:#991b1b;border-color:#e05050}.tb-leg-result{background:#e8f9ed;color:#1a6b35;border-color:#2eb85c}.tb-leg-cx{background:var(--glass-bg, white);color:#dc2626;border-color:#fca5a5;font-style:italic;text-decoration:line-through}[data-theme=dark] .tb-leg-focus{background:#3d3520;color:#f5d56e;border-color:#c99a00}[data-theme=dark] .tb-leg-elim{background:#3d2020;color:#fca5a5;border-color:#c04040}[data-theme=dark] .tb-leg-result{background:#1a3d25;color:#6ee69a;border-color:#22a050}[data-theme=dark] .tb-leg-cx{color:#f87171;border-color:#991b1b}@media(max-width:500px){.tb-cell{width:32px;height:32px}.tb-val{font-size:1rem}.tb-cn,.tb-cx{font-size:7.5px}}@media(max-width:380px){.tb-cell{width:27px;height:27px}.tb-val{font-size:.9rem}.tb-cn,.tb-cx{font-size:6.5px}}.tech-practice{margin:1.5rem 0;padding:1.25rem 1.25rem 1.5rem;border-radius:12px;background:var(--surface-elevated, var(--bg-secondary, #f7f7fb));border:1px solid var(--border, rgba(0, 0, 0, .08))}.tech-practice h2{margin:0 0 .5rem;font-size:1.15rem;font-weight:600}.tech-practice-sub{margin:0 0 1rem;color:var(--text-secondary, #666);font-size:.95rem;line-height:1.5}.tech-practice-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.tech-practice-chip{padding:.25rem .6rem;border-radius:999px;background:var(--bg-primary, #fff);border:1px solid var(--border, rgba(0, 0, 0, .1));font-size:.8rem;color:var(--text-secondary, #555)}.tech-practice-chip--mode{background:var(--accent-soft, rgba(80, 100, 220, .1));color:var(--accent, #5064dc);text-transform:uppercase;font-weight:600;letter-spacing:.05em;font-size:.7rem}.tech-practice-board{display:grid;grid-template-columns:repeat(9,1fr);max-width:360px;margin:0 auto 1rem;aspect-ratio:1 / 1;border:2px solid var(--text-primary, #222);border-radius:4px;background:var(--bg-primary, #fff)}.tp-cell{display:flex;align-items:center;justify-content:center;border-right:1px solid rgba(0,0,0,.12);border-bottom:1px solid rgba(0,0,0,.12);font-size:clamp(.85rem,3vw,1.1rem);font-weight:500;color:var(--text-primary, #222);-webkit-user-select:none;user-select:none}.tp-cell:nth-child(9n){border-right:none}.tp-cell:nth-child(n+73){border-bottom:none}.tp-br{border-right-width:2px!important;border-right-color:var(--text-primary, #222)!important}.tp-bb{border-bottom-width:2px!important;border-bottom-color:var(--text-primary, #222)!important}.tp-empty{background:#00000004}[data-theme=dark] .tech-practice-board,.dark .tech-practice-board{border-color:var(--text-primary, #ddd)}[data-theme=dark] .tp-cell,.dark .tp-cell{border-color:#ffffff26}[data-theme=dark] .tp-br,.dark .tp-br{border-right-color:var(--text-primary, #ddd)!important}[data-theme=dark] .tp-bb,.dark .tp-bb{border-bottom-color:var(--text-primary, #ddd)!important}[data-theme=dark] .tp-empty,.dark .tp-empty{background:#ffffff08}.tech-practice-actions{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center}.tech-practice-btn{padding:.65rem 1.2rem;border-radius:8px;border:1px solid var(--border, rgba(0, 0, 0, .15));background:var(--bg-primary, #fff);color:var(--text-primary, #222);font-weight:500;cursor:pointer;transition:all .15s ease;font-size:.95rem}.tech-practice-btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px #00000014}.tech-practice-btn--primary{background:var(--accent, #5064dc);color:#fff;border-color:var(--accent, #5064dc)}.tech-practice-btn--primary:hover{background:var(--accent-hover, #4054c8)}@media(max-width:480px){.tech-practice{padding:1rem}.tech-practice-board{max-width:100%}.tech-practice-actions{flex-direction:column}.tech-practice-btn{width:100%}}.education-page{max-width:960px;margin:0 auto;padding:24px 16px 60px;font-family:Segoe UI,sans-serif}.education-page .page-header{display:flex;align-items:center;gap:16px;margin-bottom:16px}.education-page .page-header h1{margin:0;font-size:1.5rem}.edu-intro{color:var(--text-secondary);margin-bottom:20px;line-height:1.6}.edu-controls{margin-bottom:14px;display:grid;gap:10px}.edu-search-row{display:flex;gap:8px}.edu-search{flex:1;padding:10px 12px;border:1px solid var(--glass-border);border-radius:10px;font-size:.9rem;background:var(--bg-card);color:var(--text-primary)}.edu-search:focus{outline:none;border-color:var(--text-secondary);box-shadow:0 0 0 2px #3c3c5a1a}.edu-clear-btn{border:1px solid var(--glass-border);background:var(--bg-card);color:var(--text-primary);border-radius:10px;padding:8px 12px;cursor:pointer;font-weight:600}.edu-checkbox-label{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;color:var(--text-primary)}.edu-empty-state{padding:14px 16px;border:1px dashed var(--glass-border);border-radius:10px;background:var(--glass-bg);color:var(--text-secondary);margin-bottom:20px}.filter-bar{display:flex;gap:7px;margin-bottom:12px;flex-wrap:wrap}.filter-btn{padding:5px 13px;border:1.5px solid var(--glass-border);border-radius:20px;background:var(--bg-card);cursor:pointer;font-weight:700;font-size:.78rem;letter-spacing:.04em;transition:all .15s;min-height:32px;color:var(--text-secondary);white-space:nowrap}.filter-btn:hover{border-color:var(--text-secondary);color:var(--text-primary)}.filter-btn.active{border-color:transparent;background:var(--btn-primary);color:#fff}.technique-count{color:var(--text-secondary);font-size:.85rem;margin-bottom:20px}.tech-group{margin-bottom:28px}.group-title{font-size:1.15rem;margin:0 0 12px;padding-bottom:6px;border-bottom:2px solid currentColor}.tech-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.tech-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:12px 12px 10px;border-radius:14px;cursor:pointer;overflow:hidden;border:1px solid var(--glass-border);background:var(--glass-bg);transition:transform .14s,box-shadow .2s,border-color .2s;min-height:80px;gap:2px}.tech-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000001f}.tech-card:active{transform:translateY(0) scale(.97)}.tech-card--temel{background:linear-gradient(145deg,#5b8c5a21,#5b8c5a0a);border-color:#5b8c5a61}.tech-card--orta{background:linear-gradient(145deg,#5a7a8f1f,#5a7a8f0a);border-color:#5a7a8f57}.tech-card--zor{background:linear-gradient(145deg,#8c7a3a21,#8c7a3a0a);border-color:#8c7a3a57}.tech-card--cok-zor{background:linear-gradient(145deg,#8c5a4421,#8c5a440a);border-color:#8c5a4457}.tech-card--asiri{background:linear-gradient(145deg,#6b4a7a21,#6b4a7a0a);border-color:#6b4a7a57}.tech-name{font-size:.88rem;font-weight:700;color:var(--text-primary);letter-spacing:-.01em;line-height:1.2}.tech-diff-dot{position:absolute;top:10px;right:10px;width:9px;height:9px;border-radius:50%;flex-shrink:0}.tech-check{position:absolute;top:8px;left:10px;color:#22c55e;font-size:.78rem;font-weight:800}.tech-card-en{font-size:.67rem;font-weight:700;letter-spacing:.06em;color:var(--text-secondary);opacity:.75}.technique-detail{margin-top:8px}.tech-meta{display:flex;gap:10px;margin-bottom:16px}.tech-badge-en{padding:4px 12px;background:var(--bg-cell-shaded);border-radius:16px;font-size:.85rem;color:var(--text-primary);font-style:italic}.tech-badge-diff{padding:4px 14px;border-radius:16px;font-size:.82rem;color:#fff;font-weight:600}.tech-summary{padding:14px 18px;background:var(--glass-bg);border-left:4px solid #6c63ff;border-radius:0 8px 8px 0;margin-bottom:24px}.tech-summary p{margin:0;font-size:1rem;color:var(--text-primary);line-height:1.5}.tech-section{margin-bottom:24px}.tech-section h2{font-size:1.1rem;margin:0 0 10px;color:var(--text-primary)}.tech-section p{margin:0 0 12px;line-height:1.7;color:var(--text-primary);font-size:.95rem}.tech-board-unavailable{padding:12px 14px;border-radius:8px;border:1px dashed var(--glass-border);background:var(--glass-bg);color:var(--text-secondary);margin-bottom:12px}.tech-example{padding:14px 18px;background:var(--bg-cell-shaded);border-radius:8px;border:1px solid var(--glass-border);font-family:Consolas,Courier New,monospace;font-size:.88rem;line-height:1.6}.tech-example p{margin:0 0 6px;font-family:inherit;color:var(--text-primary)}@media(max-width:600px){.tech-grid{grid-template-columns:repeat(2,1fr);gap:8px}.tech-card{min-height:72px;padding:10px 10px 9px}.tech-name{font-size:.8rem}}@media(min-width:601px)and (max-width:860px){.tech-grid{grid-template-columns:repeat(3,1fr);gap:10px}.tech-card{min-height:88px}}@media(min-width:861px){.tech-grid{grid-template-columns:repeat(4,1fr);gap:12px}.tech-card{min-height:110px;padding:16px 14px 13px}.tech-name{font-size:.95rem}.tech-card-en{font-size:.72rem}.tech-diff-dot{width:10px;height:10px;top:12px;right:12px}}.edu-progress-bar-wrap{display:flex;align-items:center;gap:12px;margin:0 0 20px}.edu-progress-bar{flex:1;height:8px;border-radius:4px;background:var(--glass-border);overflow:hidden}.edu-progress-fill{height:100%;border-radius:4px;background:var(--btn-primary);transition:width .4s ease}.edu-progress-label{font-size:.82rem;color:var(--text-secondary);white-space:nowrap}.tech-card--completed{border-left:3px solid #22c55e}.tech-card--viewed{opacity:.85}.tech-complete-section{text-align:center;padding-top:8px}.btn-complete{background:var(--btn-primary);color:#fff;border:none;border-radius:8px;padding:10px 24px;font-size:.95rem;font-weight:600;cursor:pointer;transition:opacity .2s}.btn-complete:hover{opacity:.88}.tech-completed-badge{display:inline-block;background:#22c55e1a;color:#16a34a;border:1px solid #22c55e55;border-radius:8px;padding:8px 20px;font-size:.95rem;font-weight:600}.tech-related{margin-top:2rem}.tech-related-hint{margin:0 0 .75rem;font-size:.95rem;color:var(--text-secondary, #666)}.tech-related-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.6rem}.tech-related-chip{display:flex;align-items:center;justify-content:space-between;padding:.7rem 1rem;background:var(--surface-elevated, var(--bg-secondary, #f3f4fa));border:1px solid var(--border, rgba(0,0,0,.08));border-radius:8px;cursor:pointer;text-align:left;font-size:.95rem;font-weight:500;color:var(--text-primary, #222);transition:all .15s}.tech-related-chip:hover{background:var(--accent, #5064dc);color:#fff;border-color:var(--accent, #5064dc);transform:translateY(-1px)}.tech-related-chip-arr{opacity:.6}.home-seo{max-width:960px;margin:2.5rem auto 3rem;padding:0 1rem;color:var(--text-primary)}.home-seo-block{margin-bottom:2.25rem;padding-bottom:1rem}.home-seo-block h2{font-size:1.4rem;font-weight:600;font-family:Playfair Display,Georgia,serif;margin:0 0 .85rem;border-bottom:2px solid var(--accent-dark, #68B89F);padding-bottom:.4rem;display:inline-block;color:var(--text-primary)}.home-seo-block p{margin:.5rem 0;line-height:1.65;font-size:1rem;font-family:inherit;color:var(--text-primary)}.home-seo-link{color:var(--accent-dark, #68B89F);font-weight:500;text-decoration:none}.home-seo-link:hover{text-decoration:underline}.home-seo-features{margin:.5rem 0 0 1.25rem;padding:0;line-height:1.65}.home-seo-features li{margin-bottom:.55rem;color:var(--text-primary)}.home-seo-tech-grid{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.home-seo-tech-chip{display:inline-block;padding:.45rem .85rem;border-radius:999px;background:var(--bg-card);border:1px solid var(--border-light);color:var(--text-primary);text-decoration:none;font-size:.92rem;font-weight:500;transition:all .15s}.home-seo-tech-chip:hover{background:var(--accent-dark, #68B89F);color:var(--toggle-text, #fff);border-color:var(--accent-dark, #68B89F);transform:translateY(-1px)}.home-seo-faq{background:var(--bg-card);border:1px solid var(--border-light);border-radius:8px;margin:.5rem 0;padding:.75rem 1rem}.home-seo-faq summary{cursor:pointer;font-weight:600;font-family:Playfair Display,Georgia,serif;list-style:none;position:relative;padding-right:1.6rem;color:var(--text-primary)}.home-seo-faq summary::-webkit-details-marker{display:none}.home-seo-faq summary:after{content:"+";position:absolute;right:0;top:0;font-size:1.3rem;font-weight:400;color:var(--accent-dark, #68B89F)}.home-seo-faq[open] summary:after{content:"−"}.home-seo-faq p{margin:.6rem 0 0;font-size:.95rem;font-family:inherit;color:var(--text-secondary)}.home-seo-faq a{color:var(--accent-dark, #68B89F)}@media(max-width:480px){.home-seo-block h2{font-size:1.2rem}}.landing-page{position:relative;min-height:100dvh;background:var(--bg, #faf7f2);display:flex;flex-direction:column;overflow-x:hidden}.landing-aurora{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}.landing-aurora-blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:.55;will-change:transform}.landing-aurora-blob--green{width:460px;height:460px;top:-120px;left:-100px;background:radial-gradient(circle,rgba(107,140,104,.55) 0%,transparent 70%)}.landing-aurora-blob--amber{width:380px;height:380px;top:80px;right:-120px;background:radial-gradient(circle,rgba(182,138,78,.45) 0%,transparent 70%)}.landing-aurora-blob--blue{width:520px;height:520px;bottom:-180px;left:30%;background:radial-gradient(circle,rgba(91,127,166,.3) 0%,transparent 70%)}[data-theme=dark] .landing-aurora-blob{opacity:.35}.landing-hero,.landing-trust,.landing-section,.landing-final{position:relative;z-index:1;width:100%;max-width:1140px;margin-left:auto;margin-right:auto;padding-left:24px;padding-right:24px}.landing-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:56px;align-items:center;padding-top:64px;padding-bottom:48px}@media(max-width:900px){.landing-hero{grid-template-columns:1fr;gap:36px;padding-top:32px;text-align:center}}.landing-hero-text{min-width:0}.landing-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:11.5px;font-weight:800;letter-spacing:.3em;color:var(--text-muted, #64748b);margin-bottom:22px;padding:6px 14px 6px 12px;border-radius:999px;background:color-mix(in srgb,var(--text, #0f172a) 5%,transparent);border:1px solid color-mix(in srgb,var(--text, #0f172a) 8%,transparent)}[data-theme=dark] .landing-eyebrow{background:#ffffff0a;border-color:#ffffff14}.landing-eyebrow-dot{width:6px;height:6px;border-radius:50%;background:#6b8c68;box-shadow:0 0 0 4px #6b8c6833;animation:landing-pulse 2.4s ease-in-out infinite}@keyframes landing-pulse{0%,to{box-shadow:0 0 0 4px #6b8c6833}50%{box-shadow:0 0 0 7px #6b8c680d}}.landing-title{font-size:clamp(34px,5.6vw,56px);line-height:1.05;font-weight:800;letter-spacing:-1.2px;margin:0 0 18px;color:var(--text, #0f172a);background:linear-gradient(135deg,var(--text, #0f172a) 0%,color-mix(in srgb,var(--text, #0f172a) 55%,#6B8C68) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.landing-sub{font-size:clamp(15.5px,1.8vw,18px);line-height:1.55;color:var(--text-muted, #64748b);margin:0 0 30px;max-width:520px}@media(max-width:900px){.landing-sub{margin-left:auto;margin-right:auto}}.landing-ctas{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:28px}@media(max-width:900px){.landing-ctas{justify-content:center}}.landing-cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:15px;font-weight:700;padding:14px 26px;border-radius:14px;cursor:pointer;border:1.5px solid transparent;letter-spacing:.1px;transition:transform .18s ease,box-shadow .2s ease,border-color .18s ease,background .18s ease;font-family:inherit}.landing-cta--primary{background:linear-gradient(135deg,#6b8c68,#5b7e58);color:#fff;box-shadow:0 1px #ffffff40 inset,0 6px 20px #6b8c6857,0 2px 6px #6b8c6829}.landing-cta--primary:hover{transform:translateY(-1px);box-shadow:0 1px #ffffff4d inset,0 12px 28px #6b8c6866,0 3px 8px #6b8c682e}.landing-cta--primary:active{transform:translateY(0)}.landing-cta--ghost{background:color-mix(in srgb,var(--text, #0f172a) 4%,transparent);color:var(--text, #0f172a);border-color:color-mix(in srgb,var(--text, #0f172a) 14%,transparent)}.landing-cta--ghost:hover{background:color-mix(in srgb,var(--text, #0f172a) 8%,transparent);border-color:color-mix(in srgb,var(--text, #0f172a) 28%,transparent)}[data-theme=dark] .landing-cta--ghost{background:#ffffff0a;border-color:#ffffff1f;color:var(--text, #f5f0eb)}[data-theme=dark] .landing-cta--ghost:hover{background:#ffffff14;border-color:#ffffff4d}.landing-features-inline{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px 20px}@media(max-width:900px){.landing-features-inline{justify-content:center}}.landing-features-inline li{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--text-muted, #64748b);font-weight:500}.landing-feat-dot{width:5px;height:5px;border-radius:50%;background:#6b8c68;display:inline-block}.landing-hero-visual{position:relative;display:flex;justify-content:center;align-items:center;perspective:1200px}.landing-board{position:relative;width:min(420px,100%);aspect-ratio:1;border-radius:22px;background:var(--bg-card, #ffffff);border:1px solid color-mix(in srgb,var(--text, #0f172a) 8%,transparent);padding:14px;color:var(--text, #0f172a);box-shadow:0 1px #fff9 inset,0 30px 70px -20px #0f172a4d,0 12px 28px -8px #0f172a2e;transform:rotateX(6deg) rotateY(-7deg) rotate(.4deg);transition:transform .6s cubic-bezier(.22,1,.36,1)}.landing-board:hover{transform:rotateX(2deg) rotateY(-2deg)}[data-theme=dark] .landing-board{background:#1d1a17;border-color:#ffffff14;box-shadow:0 1px #ffffff0d inset,0 30px 70px -20px #0009,0 12px 28px -8px #00000080}.landing-chip{position:absolute;display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;font-size:12.5px;font-weight:800;letter-spacing:.2px;background:var(--bg-card, #ffffff);color:var(--text, #0f172a);border:1px solid color-mix(in srgb,var(--text, #0f172a) 8%,transparent);box-shadow:0 10px 24px -6px #0f172a2e;animation:landing-float 4s ease-in-out infinite}[data-theme=dark] .landing-chip{background:#2a2622;border-color:#ffffff14;box-shadow:0 10px 24px -6px #00000080}.landing-chip--rank{top:-16px;left:-22px;color:#946d35;border-color:#b68a4e4d}.landing-chip--time{bottom:-18px;right:-16px;animation-delay:-2s;color:#4f6f4d;border-color:#6b8c684d}[data-theme=dark] .landing-chip--rank{color:#e0b676;border-color:#e0b6764d}[data-theme=dark] .landing-chip--time{color:#a8c2a6;border-color:#a8c2a647}.landing-chip-dot{width:7px;height:7px;border-radius:50%}.landing-chip-dot--rank{background:#b68a4e;box-shadow:0 0 0 3px #b68a4e2e}@keyframes landing-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.landing-trust{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:24px;padding-top:24px;padding-bottom:32px;margin-top:8px}.landing-trust-item{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-muted, #64748b)}.landing-trust-item strong{font-size:17px;font-weight:800;color:var(--text, #0f172a);letter-spacing:-.3px}.landing-trust-big{font-size:19px!important}.landing-trust-meta{display:flex;flex-direction:column;line-height:1.1}.landing-trust-stars{display:inline-flex;gap:1px;color:#f4b932}.landing-trust-sep{width:1px;height:22px;background:color-mix(in srgb,var(--text, #0f172a) 14%,transparent)}@media(max-width:540px){.landing-trust-sep{display:none}.landing-trust{gap:14px}}.landing-section{padding-top:56px;padding-bottom:56px}.landing-section-head{text-align:center;max-width:640px;margin:0 auto 36px}.landing-section-title{font-size:clamp(24px,3.4vw,34px);font-weight:800;letter-spacing:-.6px;margin:0 0 10px;color:var(--text, #0f172a)}.landing-section-sub{font-size:15.5px;line-height:1.55;color:var(--text-muted, #64748b);margin:0}.landing-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}@media(max-width:800px){.landing-feature-grid{grid-template-columns:1fr}}.landing-feature-card{position:relative;padding:26px 22px 22px;border-radius:22px;background:var(--bg-card, #ffffff);border:1px solid color-mix(in srgb,var(--text, #0f172a) 7%,transparent);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;overflow:hidden}.landing-feature-card:hover{transform:translateY(-3px);box-shadow:0 14px 32px -10px #0f172a24}[data-theme=dark] .landing-feature-card{background:#ffffff08;border-color:#ffffff14}[data-theme=dark] .landing-feature-card:hover{background:#ffffff0d;box-shadow:0 14px 32px -10px #00000080}.landing-feature-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;margin-bottom:16px}.landing-feature-card--green .landing-feature-icon{background:color-mix(in srgb,#6B8C68 16%,transparent);color:#4f6f4d}.landing-feature-card--amber .landing-feature-icon{background:color-mix(in srgb,#B68A4E 18%,transparent);color:#946d35}.landing-feature-card--rose .landing-feature-icon{background:color-mix(in srgb,#B6614E 18%,transparent);color:#944b3b}[data-theme=dark] .landing-feature-card--green .landing-feature-icon{color:#a8c2a6}[data-theme=dark] .landing-feature-card--amber .landing-feature-icon{color:#e0b676}[data-theme=dark] .landing-feature-card--rose .landing-feature-icon{color:#e09584}.landing-feature-card h3{font-size:17px;font-weight:800;letter-spacing:-.2px;margin:0 0 8px;color:var(--text, #0f172a)}.landing-feature-card p{font-size:14px;line-height:1.55;color:var(--text-muted, #64748b);margin:0}.landing-steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:22px;counter-reset:step}@media(max-width:800px){.landing-steps{grid-template-columns:1fr}}.landing-steps li{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:4px 4px 0}.landing-step-num{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:12px;background:linear-gradient(135deg,#6b8c68,#4f6f4d);color:#fff;font-weight:800;font-size:15px;letter-spacing:.5px;box-shadow:0 6px 16px -4px #6b8c6873}.landing-steps h4{font-size:16px;font-weight:700;margin:0 0 6px;color:var(--text, #0f172a);letter-spacing:-.2px}.landing-steps p{font-size:14px;line-height:1.55;color:var(--text-muted, #64748b);margin:0}.landing-final{padding-top:30px;padding-bottom:70px}.landing-final-card{position:relative;border-radius:28px;padding:48px 28px;text-align:center;background:radial-gradient(120% 80% at 100% 0%,rgba(182,138,78,.16),transparent 60%),radial-gradient(120% 80% at 0% 100%,rgba(107,140,104,.18),transparent 60%),var(--bg-card, #ffffff);border:1px solid color-mix(in srgb,var(--text, #0f172a) 8%,transparent);overflow:hidden;box-shadow:0 20px 50px -20px #0f172a33}[data-theme=dark] .landing-final-card{background:radial-gradient(120% 80% at 100% 0%,rgba(224,182,118,.12),transparent 60%),radial-gradient(120% 80% at 0% 100%,rgba(107,140,104,.16),transparent 60%),#ffffff08;border-color:#ffffff14;box-shadow:0 20px 50px -20px #0009}.landing-final-card h2{font-size:clamp(26px,3.6vw,36px);font-weight:800;letter-spacing:-.6px;margin:0 0 10px;color:var(--text, #0f172a)}.landing-final-card p{font-size:15.5px;color:var(--text-muted, #64748b);margin:0 auto 24px;max-width:480px}.landing-final-card .landing-ctas{justify-content:center;margin-bottom:0}.guest-lock-backdrop{position:fixed;inset:0;z-index:9200;background:#0000008c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;padding:16px;animation:guest-lock-fade .18s ease}@keyframes guest-lock-fade{0%{opacity:0}to{opacity:1}}.guest-lock-card{background:var(--bg-card, var(--surface, #ffffff));border-radius:22px;border:1.5px solid var(--border, rgba(15, 23, 42, .1));max-width:420px;width:100%;padding:28px 24px 22px;text-align:center;box-shadow:0 20px 60px #0000004d;animation:guest-lock-pop .22s cubic-bezier(.34,1.56,.64,1)}@keyframes guest-lock-pop{0%{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}.guest-lock-icon{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#b68a4e,#946d35);color:#fff;display:grid;place-items:center;margin:0 auto 14px;box-shadow:0 8px 22px #b68a4e52}.guest-lock-title{font-size:19px;font-weight:800;margin:0 0 8px;color:var(--text, #0f172a)}.guest-lock-desc{font-size:14px;line-height:1.55;color:var(--text-muted, #64748b);margin:0 0 22px}.guest-lock-actions{display:flex;gap:10px;flex-direction:column}.guest-lock-btn{font-size:14.5px;font-weight:700;padding:13px 18px;border-radius:12px;cursor:pointer;border:1.5px solid transparent;transition:transform .15s ease,box-shadow .18s ease}.guest-lock-btn--primary{background:linear-gradient(135deg,#6b8c68,#4f6f4d);color:#fff;box-shadow:0 6px 16px #6b8c684d}.guest-lock-btn--primary:hover{transform:translateY(-1px)}.guest-lock-btn--ghost{background:transparent;color:var(--text-muted, #64748b);border-color:var(--border, rgba(15, 23, 42, .1))}.guest-lock-btn--ghost:hover{border-color:var(--text-muted, #64748b)}.guest-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 14px;margin:6px auto 0;font-size:12.5px;font-weight:700;border-radius:999px;background:color-mix(in srgb,#B68A4E 14%,transparent);color:#946d35;border:1px solid color-mix(in srgb,#B68A4E 30%,transparent)}[data-theme=dark] .guest-pill{color:#d6a86a}.guest-pill-link{background:none;border:none;padding:0;font-weight:800;font-size:12.5px;color:inherit;text-decoration:underline;cursor:pointer}.guest-pill-wrap{display:flex;justify-content:center}.rival-card{display:flex;align-items:center;gap:14px;padding:14px 18px;margin:12px auto;max-width:480px;border-radius:16px;background:linear-gradient(135deg,#ef444414,#6366f114);border:1.5px solid rgba(239,68,68,.25);cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #0000000a}.rival-card:hover{transform:translateY(-2px);border-color:#ef444480;box-shadow:0 6px 18px #ef444426}.rival-icon{font-size:32px}.rival-body{flex:1;min-width:0}.rival-label{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-subtle, #6b7280);font-weight:700;margin-bottom:2px}.rival-name{font-size:16px;font-weight:800;color:var(--text, #1f2937);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rival-tier{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;border:1.5px solid;background:#ffffff80}.rival-diff{font-size:12px;color:var(--text-subtle, #6b7280);margin-top:2px}.rival-cta{flex-shrink:0;padding:8px 14px;border-radius:999px;background:linear-gradient(135deg,#ef4444,#f97316);color:#fff;font-size:13px;font-weight:700;white-space:nowrap;box-shadow:0 2px 6px #ef44444d}.rank-banner{display:flex;align-items:center;gap:12px;padding:12px 18px;margin:12px auto;max-width:480px;border-radius:14px;cursor:pointer;animation:rank-banner-pop .5s cubic-bezier(.34,1.56,.64,1);box-shadow:0 4px 16px #00000014}.rank-banner.is-up{background:linear-gradient(135deg,#10b981,#34d399);color:#fff}.rank-banner.is-down{background:linear-gradient(135deg,#6b7280,#9ca3af);color:#fff}.rank-banner-icon{font-size:28px;animation:rank-banner-bounce .8s ease-in-out infinite alternate}.rank-banner-text{display:flex;flex-direction:column;gap:2px}.rank-banner-text strong{font-size:15px;font-weight:800}.rank-banner-detail{font-size:12px;opacity:.9}@keyframes rank-banner-pop{0%{transform:translateY(-20px) scale(.9);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes rank-banner-bounce{0%{transform:translateY(0)}to{transform:translateY(-3px)}}.onboarding-banner{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:16px 18px;margin:0 auto 16px;border-radius:18px;background:linear-gradient(135deg,#ece6f7,#f1ecf8 55%,#f3ead8);color:var(--text-primary, #3B2A20);border:1px solid rgba(124,111,203,.2);box-shadow:0 4px 18px #7c6fcb1a;animation:onboardingSlide .45s cubic-bezier(.2,.8,.2,1)}@keyframes onboardingSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.onboarding-emoji{font-size:28px;flex-shrink:0}.onboarding-text{flex:1;min-width:200px}.onboarding-title{margin:0 0 4px;font-size:1.05rem;font-weight:800;letter-spacing:-.01em}.onboarding-desc{margin:0;font-size:.88rem;opacity:.92;line-height:1.4}.onboarding-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.onboarding-skip{padding:9px 14px;border:none;background:#3c2a2014;color:var(--text-primary, #3B2A20);border-radius:999px;font-weight:600;font-size:.85rem;cursor:pointer;transition:background .15s}.onboarding-skip:hover{background:#3c2a2024}.onboarding-cta{padding:10px 18px;border:none;background:#fff;color:#7c6fcb;border-radius:999px;font-weight:700;font-size:.9rem;cursor:pointer;transition:transform .15s,box-shadow .15s}.onboarding-cta:hover{transform:translateY(-1px);box-shadow:0 6px 16px #7c6fcb2e}.onboarding-close{position:absolute;top:6px;right:10px;width:26px;height:26px;border:none;background:transparent;color:#3c2a208c;font-size:22px;line-height:1;cursor:pointer;border-radius:50%;transition:background .15s}.onboarding-close:hover{background:#3c2a201a}@media(max-width:520px){.onboarding-banner{padding:14px 14px 16px}.onboarding-actions{width:100%;justify-content:stretch}.onboarding-skip,.onboarding-cta{flex:1}}[data-theme=dark] .onboarding-banner{background:linear-gradient(135deg,#1e1a2e,#1a1c2e 55%,#1e1a14);color:var(--text-primary, #e5e7eb);border-color:#7c6fcb4d;box-shadow:0 4px 18px #00000059}[data-theme=dark] .onboarding-skip{background:#ffffff14;color:var(--text-primary, #d1d5db)}[data-theme=dark] .onboarding-skip:hover{background:#ffffff24}[data-theme=dark] .onboarding-cta{background:#2d2860;color:#a5b4fc}[data-theme=dark] .onboarding-close{color:#e5e7eb8c}[data-theme=dark] .onboarding-close:hover{background:#ffffff1a}.season-end-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#000000b8;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:20px}.season-end-card{position:relative;background:var(--card-bg, #fff);border-radius:24px;padding:44px 36px 36px;max-width:420px;width:100%;text-align:center;overflow:hidden;animation:seasonPopIn .45s cubic-bezier(.34,1.56,.64,1) both;box-shadow:0 24px 60px #00000059,inset 0 0 0 1.5px #ffffff14}.season-end-card:before{content:"";position:absolute;inset:0;border-radius:24px;padding:2px;background:linear-gradient(135deg,#facc15,#a855f7,#22d3ee,#f97316);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;z-index:0}@keyframes seasonPopIn{0%{opacity:0;transform:scale(.55) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.season-end-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border:none;background:#80808026;border-radius:50%;font-size:18px;line-height:1;cursor:pointer;color:var(--text-secondary, #6b7280);display:flex;align-items:center;justify-content:center;transition:background .15s,transform .15s;z-index:2}.season-end-close:hover{background:#80808047;transform:scale(1.12)}.season-end-trophy{font-size:68px;display:block;margin:0 auto 18px;animation:trophyBounce .6s .35s cubic-bezier(.34,1.56,.64,1) both;filter:drop-shadow(0 4px 18px rgba(250,204,21,.6));position:relative;z-index:1}@keyframes trophyBounce{0%{transform:scale(.35) rotate(-12deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}.season-end-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1.2px;color:#f97316;margin-bottom:6px;animation:fadeSlideUp .4s .5s both;position:relative;z-index:1}.season-end-headline{font-size:22px;font-weight:900;color:var(--text, #1f2937);line-height:1.25;margin-bottom:12px;animation:fadeSlideUp .4s .6s both;position:relative;z-index:1}.season-end-rating{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(135deg,#facc152e,#a855f71f);border:1px solid rgba(250,204,21,.38);border-radius:999px;padding:7px 20px;font-size:19px;font-weight:800;color:var(--text, #1f2937);margin-bottom:14px;animation:fadeSlideUp .4s .7s both;position:relative;z-index:1}.season-end-rating-icon{font-size:22px}.season-end-tier{display:inline-block;padding:5px 18px;border-radius:999px;font-size:13px;font-weight:800;margin-bottom:14px;animation:fadeSlideUp .4s .75s both;position:relative;z-index:1}.season-end-tier--top10{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff}.season-end-tier--top100{background:linear-gradient(135deg,#eab308,#f97316);color:#fff}.season-end-tier--top1000{background:linear-gradient(135deg,#64748b,#94a3b8);color:#fff}.season-end-rank{font-size:13px;color:var(--text-secondary, #6b7280);margin-bottom:24px;animation:fadeSlideUp .4s .8s both;position:relative;z-index:1}.season-end-cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 24px;border:none;border-radius:14px;background:linear-gradient(135deg,#facc15,#f97316);color:#fff;font-size:16px;font-weight:800;cursor:pointer;letter-spacing:.3px;box-shadow:0 4px 18px #f9731666;transition:transform .15s,box-shadow .15s;animation:fadeSlideUp .4s .9s both;position:relative;z-index:1}.season-end-cta:hover{transform:translateY(-2px);box-shadow:0 8px 26px #f9731680}.season-end-cta:active{transform:translateY(0)}.season-end-stars{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:24px}.season-end-star{position:absolute;font-size:14px;opacity:.45;animation:starFloat 3s ease-in-out infinite}@keyframes starFloat{0%,to{transform:translateY(0) rotate(0);opacity:.35}50%{transform:translateY(-9px) rotate(18deg);opacity:.75}}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}[data-theme=dark] .season-end-card,.dark .season-end-card{background:#1e1b2e;box-shadow:0 24px 60px #000000a6,inset 0 0 0 1.5px #ffffff0f}[data-theme=dark] .season-end-headline,.dark .season-end-headline,[data-theme=dark] .season-end-rating,.dark .season-end-rating{color:#f3f4f6}@media(prefers-color-scheme:dark){.season-end-card{background:#1e1b2e;box-shadow:0 24px 60px #000000a6,inset 0 0 0 1.5px #ffffff0f}.season-end-headline,.season-end-rating{color:#f3f4f6}}.season-banner{display:flex;align-items:center;gap:14px;padding:12px 18px;margin:12px auto;max-width:480px;border-radius:14px;background:linear-gradient(135deg,#eab3081f,#6366f11f);border:1.5px solid rgba(234,179,8,.3)}.sb-icon{font-size:28px}.sb-text{flex:1;min-width:0}.sb-title{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font-size:14px;color:var(--text, #1f2937)}.sb-title strong{font-weight:800}.sb-days{font-weight:700;color:#b45309;background:#eab30826;padding:2px 8px;border-radius:999px;font-size:12px}.sb-reward{font-size:11px;color:var(--text-subtle, #6b7280);margin-top:2px}.quest-panel{max-width:480px;margin:12px auto;padding:14px 16px;border-radius:14px;background:var(--surface, #fff);border:1.5px solid var(--border, #e5e7eb);box-shadow:0 2px 8px #0000000a}.quest-panel-title{margin:0 0 12px;font-size:14px;font-weight:800;color:var(--text, #1f2937)}.quest-list{display:flex;flex-direction:column;gap:10px}.quest-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;background:#6366f10d;border:1px solid rgba(99,102,241,.12);transition:all .18s ease}.quest-item.is-completed{background:#22c55e14;border-color:#22c55e4d}.quest-icon{font-size:22px}.quest-body{flex:1;min-width:0}.quest-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:13px;color:var(--text, #1f2937)}.quest-head strong{font-weight:700}.quest-progress-text{font-size:12px;color:var(--text-subtle, #6b7280);font-weight:600}.quest-bar{height:6px;border-radius:999px;background:var(--border, #e5e7eb);margin:6px 0 4px;overflow:hidden}.quest-bar-fill{height:100%;background:linear-gradient(90deg,#6366f1,#8b5cf6);transition:width .3s ease}.is-completed .quest-bar-fill{background:linear-gradient(90deg,#22c55e,#10b981)}.quest-reward{font-size:11px;color:var(--text-subtle, #6b7280);font-weight:600}.quest-claim{flex-shrink:0;padding:6px 12px;border-radius:999px;border:none;background:linear-gradient(135deg,#22c55e,#10b981);color:#fff;font-weight:700;font-size:12px;cursor:pointer;transition:transform .15s ease}.quest-claim:hover:not(:disabled){transform:scale(1.05)}.quest-claim:disabled{background:var(--border, #e5e7eb);color:var(--text-subtle, #6b7280);cursor:default}.streak-panel{display:flex;flex-direction:column;align-items:center;gap:0;padding:8px 0}.sp-loading{display:flex;align-items:center;justify-content:center;padding:40px}.sp-spinner{width:28px;height:28px;border-radius:50%;border:3px solid rgba(249,115,22,.2);border-top-color:#f97316;animation:sp-spin .7s linear infinite}@keyframes sp-spin{to{transform:rotate(360deg)}}.sp-title{font-size:11px;font-weight:900;letter-spacing:3px;color:#9a3412;margin-bottom:16px}[data-theme=dark] .sp-title{color:#fbbf24}.sp-hero{position:relative;width:100%;height:110px;display:flex;align-items:center;justify-content:center;margin-bottom:8px}.sp-glow-ring{position:absolute;border-radius:50%;pointer-events:none}.sp-ring1{width:120px;height:120px;background:#f97316;animation:sp-ring-pulse 2.2s ease-out infinite}.sp-ring2{width:120px;height:120px;background:#fbbf24;animation:sp-ring-pulse 2.2s ease-out infinite 1.1s}@keyframes sp-ring-pulse{0%{opacity:.55;transform:scale(.7)}to{opacity:0;transform:scale(1.9)}}.sp-hero-inner{position:relative;z-index:2;display:flex;align-items:center;gap:14px}.sp-flame{font-size:72px;line-height:1;display:block;animation:sp-flame-pulse 1.8s ease-in-out infinite,sp-flame-wiggle .44s ease-in-out infinite;filter:drop-shadow(0 0 18px rgba(249,115,22,.7))}@keyframes sp-flame-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}@keyframes sp-flame-wiggle{0%,to{rotate:-4deg}50%{rotate:4deg}}.sp-number-col{display:flex;flex-direction:column;align-items:flex-start}.sp-big-number{font-size:68px;font-weight:900;letter-spacing:-3px;line-height:1;color:#f97316;text-shadow:0 4px 16px rgba(249,115,22,.55);animation:sp-number-pop .5s cubic-bezier(.34,1.7,.64,1) both}@keyframes sp-number-pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.sp-days-label{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:1.2px;color:var(--muted, #6b7280);margin-top:-2px}.sp-status{display:flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;font-size:12px;font-weight:800;border:1px solid;margin-bottom:16px}.sp-status--active{background:#22c55e2e;border-color:#22c55e66;color:#16a34a}.sp-status--risk{background:#eab30833;border-color:#eab30873;color:#a16207}.sp-week-strip{display:flex;gap:8px;align-items:center;justify-content:center;margin-bottom:18px}.sp-dot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;background:#00000012;transition:background .2s}[data-theme=dark] .sp-dot{background:#ffffff1a}.sp-dot--filled{background:#f97316;box-shadow:0 2px 8px #f973168c}.sp-dot--today{outline:2px solid #fbbf24;outline-offset:1px}.sp-trophy-card{position:relative;width:100%;border-radius:18px;overflow:hidden;background:linear-gradient(135deg,#fbbf24,#f59e0b 60%,#d97706);box-shadow:0 6px 24px #f59e0b73;animation:sp-trophy-float 2.6s ease-in-out infinite}@keyframes sp-trophy-float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.sp-trophy-shine{position:absolute;top:-20px;left:-20px;width:60px;height:130%;background:#ffffff80;transform:rotate(20deg);animation:sp-shine-sweep 3.5s ease-in-out infinite;pointer-events:none}@keyframes sp-shine-sweep{0%{opacity:0;transform:translate(-80px) rotate(20deg)}20%{opacity:.55}50%{opacity:0;transform:translate(320px) rotate(20deg)}to{opacity:0;transform:translate(320px) rotate(20deg)}}.sp-trophy-content{position:relative;display:flex;align-items:center;gap:14px;padding:14px 16px}.sp-trophy-medal{width:54px;height:54px;border-radius:50%;background:#ffffff59;border:2px solid rgba(255,255,255,.6);display:flex;align-items:center;justify-content:center;font-size:28px;flex-shrink:0}.sp-trophy-text{flex:1}.sp-trophy-label{font-size:10px;font-weight:900;letter-spacing:2px;color:#7c2d12}.sp-trophy-value-row{display:flex;align-items:baseline;gap:6px;margin-top:2px}.sp-trophy-value{font-size:32px;font-weight:900;color:#7c2d12;letter-spacing:-1px;line-height:1}.sp-trophy-unit{font-size:12px;font-weight:800;color:#9a3412;text-transform:uppercase;letter-spacing:1px}.sp-record-badge{background:#dc2626;color:#fff;font-size:10px;font-weight:900;letter-spacing:1px;padding:4px 8px;border-radius:8px;transform:rotate(8deg);box-shadow:0 2px 8px #dc26268c;flex-shrink:0}.hub-btn{position:fixed;bottom:20px;width:44px;height:44px;border-radius:50%;border:none;font-size:20px;cursor:pointer;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;box-shadow:0 6px 16px #6366f166;transition:transform .12s ease,box-shadow .15s ease;animation:hub-wiggle 4s ease-in-out infinite,hub-breathe 1.8s ease-in-out infinite;z-index:60}.hub-btn-left{left:max(16px,calc(50vw - 620px))}.hub-btn-right{right:max(16px,calc(50vw - 620px))}.hub-btn:hover{transform:scale(1.12);box-shadow:0 10px 26px #6366f199}.hub-btn:active{transform:scale(.86);transition:transform .06s ease}.hub-btn-season{background:linear-gradient(135deg,#f59e0b,#ef4444);box-shadow:0 6px 16px #f59e0b66}.hub-btn-season:hover{box-shadow:0 10px 26px #f59e0bb3}.hub-btn-streak{width:50px;height:50px;font-size:24px;background:linear-gradient(135deg,#f97316,#ef4444);box-shadow:0 8px 22px #f9731680;animation:hub-wiggle 3.8s ease-in-out infinite,hub-streak-glow 2s ease-in-out infinite,hub-breathe 1.8s ease-in-out infinite}.hub-btn-streak:hover{box-shadow:0 10px 30px #f97316cc}.hub-btn-streak-pos{position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.hub-btn-quests{width:50px;height:50px;font-size:24px;background:linear-gradient(135deg,#6366f1,#ec4899);box-shadow:0 8px 22px #ec489980;animation:hub-wiggle 3.6s ease-in-out infinite,hub-glow 2.2s ease-in-out infinite,hub-breathe 1.8s ease-in-out infinite}.hub-btn-season{animation-delay:1s,.4s}.hub-btn:before,.hub-btn:after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid currentColor;opacity:0;animation:hub-pulse 1.8s ease-out infinite;pointer-events:none}.hub-btn:after{animation-delay:.9s}.hub-btn-quests:before{animation-duration:1.6s}.hub-btn-quests:after{animation-duration:1.6s;animation-delay:.8s}@keyframes hub-streak-glow{0%,to{box-shadow:0 8px 22px #f9731680}50%{box-shadow:0 14px 40px #f97316f2,0 0 0 6px #f9731638}}@keyframes hub-wiggle{0%,82%,to{transform:rotate(0) scale(1)}85%{transform:rotate(-14deg) scale(1.04)}88%{transform:rotate(12deg) scale(1.04)}91%{transform:rotate(-10deg) scale(1.04)}94%{transform:rotate(7deg) scale(1.02)}97%{transform:rotate(-3deg) scale(1.01)}}@keyframes hub-breathe{0%,to{filter:brightness(1)}50%{filter:brightness(1.18) saturate(1.2)}}@keyframes hub-glow{0%,to{box-shadow:0 10px 28px #ec489973}50%{box-shadow:0 14px 40px #ec4899f2,0 0 0 6px #ec489938}}@keyframes hub-pulse{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(2.1)}}.hub-overlay{position:fixed;inset:0;background:#0f172a80;display:flex;align-items:center;justify-content:center;z-index:200;padding:16px;animation:hub-fade .18s ease}@keyframes hub-fade{0%{opacity:0}to{opacity:1}}.hub-popup{position:relative;background:var(--surface, #fff);border-radius:16px;padding:18px 16px 14px;max-width:520px;width:100%;max-height:85vh;overflow-y:auto;box-shadow:0 24px 60px #00000040;animation:hub-pop .45s cubic-bezier(.34,1.7,.64,1);z-index:2}@keyframes hub-pop{0%{opacity:0;transform:translate(80px,80px) scale(.2) rotate(-15deg)}60%{opacity:1;transform:translate(0) scale(1.06) rotate(2deg)}80%{transform:translate(0) scale(.98) rotate(-1deg)}to{opacity:1;transform:translate(0) scale(1) rotate(0)}}.hub-fx-layer{position:absolute;inset:0;pointer-events:none;display:flex;align-items:center;justify-content:center;z-index:1}.hub-glow-ring{position:absolute;width:220px;height:220px;border-radius:50%;opacity:0;filter:blur(2px);animation:hub-ring-expand .9s ease-out forwards}.hub-glow-ring.r1{background:radial-gradient(circle,rgba(232,160,32,.65),transparent 70%);animation-delay:0s}.hub-glow-ring.r2{background:radial-gradient(circle,rgba(245,158,11,.55),transparent 70%);animation-delay:.09s}.hub-glow-ring.r3{background:radial-gradient(circle,rgba(236,72,153,.55),transparent 70%);animation-delay:.18s}@keyframes hub-ring-expand{0%{opacity:0;transform:scale(.2)}20%{opacity:.6}to{opacity:0;transform:scale(3)}}.hub-spark{position:absolute;width:10px;height:10px;border-radius:50%;background:#fbbf24;opacity:0;animation:hub-spark-fly .9s ease-out forwards}.hub-spark.alt{background:#fff}@keyframes hub-spark-fly{0%{opacity:0;transform:translate(0) scale(.4)}40%{opacity:1}to{opacity:0;transform:translate(var(--sx),var(--sy)) scale(.2)}}.hub-close{position:absolute;top:8px;right:10px;width:32px;height:32px;border-radius:50%;border:none;background:var(--bg-cell-shaded, #f3f4f6);color:var(--text, #1f2937);font-size:22px;line-height:1;cursor:pointer;z-index:1}.hub-close:hover{background:var(--border, #e5e7eb)}@media(max-width:600px){.hub-btn{bottom:auto;top:76px;width:44px;height:44px;font-size:20px}.hub-btn-left{left:14px}.hub-btn-right{right:14px}.hub-btn-streak-pos{left:50%;top:76px;bottom:auto;transform:translate(-50%)}.hub-btn-quests,.hub-btn-streak{width:48px;height:48px;font-size:22px}}.play-menu-sheet{position:fixed;inset:0;background:#0f172a8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9000;display:flex;align-items:flex-end;justify-content:center;animation:psheet-fade .18s ease-out}@keyframes psheet-fade{0%{opacity:0}to{opacity:1}}.play-menu-card{width:100%;max-width:520px;background:var(--surface, #ffffff);color:var(--text, #0f172a);border-radius:24px 24px 0 0;padding:22px 18px 28px;box-shadow:0 -16px 48px #0000002e;animation:psheet-slide .24s cubic-bezier(.16,1,.3,1);position:relative}@keyframes psheet-slide{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media(min-width:720px){.play-menu-sheet{align-items:center}.play-menu-card{border-radius:22px;max-width:560px}}.play-menu-sheet--fun .play-menu-card{border-top:3px solid #7C6FCB;background-image:linear-gradient(180deg,rgba(124,111,203,.1) 0%,transparent 28%)}.play-menu-sheet--ranked .play-menu-card{border-top:3px solid #B68A4E;background-image:linear-gradient(180deg,rgba(182,138,78,.12) 0%,transparent 30%)}.play-menu-close{position:absolute;top:10px;right:14px;border:none;background:transparent;font-size:28px;line-height:1;color:var(--text-muted, #64748b);cursor:pointer;width:36px;height:36px;border-radius:18px}.play-menu-close:hover{background:var(--hover, rgba(15, 23, 42, .06))}.play-menu-title{margin:4px 6px 14px;font-size:20px;font-weight:700}.play-menu-list{display:flex;flex-direction:column;gap:8px}.play-menu-item{display:flex;align-items:center;gap:14px;width:100%;padding:14px;border-radius:16px;border:1.5px solid var(--border, rgba(15, 23, 42, .1));background:var(--surface, #ffffff);color:var(--text, #0f172a);cursor:pointer;text-align:left;transition:transform .12s ease,box-shadow .18s ease,border-color .18s ease;position:relative}.play-menu-item:hover{transform:translateY(-1px);border-color:var(--accent, #6366f1);box-shadow:0 6px 22px color-mix(in srgb,var(--accent) 22%,transparent)}.play-menu-item-icon{flex:0 0 44px;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.play-menu-item-icon svg{width:24px;height:24px}.play-menu-item-text{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.play-menu-item-title{font-weight:700;font-size:15px}.play-menu-item-desc{font-size:13px;color:var(--text-muted, #64748b)}.play-menu-item-arr{font-size:18px;color:var(--text-muted, #64748b);transition:transform .18s ease}.play-menu-item:hover .play-menu-item-arr{transform:translate(3px);color:var(--accent)}.play-menu-item-dot{width:10px;height:10px;border-radius:5px;background:#ef4444;box-shadow:0 0 0 3px #ef444433}.play-menu-item-new{font-size:10px;font-weight:800;letter-spacing:.5px;background:linear-gradient(135deg,#f59e0b,#ef4444);color:#fff;padding:3px 7px;border-radius:8px}.diff-sheet{position:fixed;inset:0;background:#0f172a66;backdrop-filter:blur(10px) saturate(140%);-webkit-backdrop-filter:blur(10px) saturate(140%);z-index:9100;display:flex;align-items:flex-end;justify-content:center;animation:diff-fade .18s ease-out}[data-theme=dark] .diff-sheet{background:#0000008c}@keyframes diff-fade{0%{opacity:0}to{opacity:1}}.diff-sheet-card{width:100%;max-width:540px;background:var(--surface, #ffffff);color:var(--text, #0f172a);border-radius:28px 28px 0 0;padding:22px 18px 28px;box-shadow:0 -24px 64px #00000038;animation:diff-slide .28s cubic-bezier(.16,1,.3,1);position:relative}[data-theme=dark] .diff-sheet-card{background:var(--surface, #1a1d24);box-shadow:0 -24px 64px #0000008c}@keyframes diff-slide{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media(min-width:720px){.diff-sheet{align-items:center}.diff-sheet-card{border-radius:22px;max-width:480px;box-shadow:0 24px 72px #00000040;animation:diff-pop .22s cubic-bezier(.16,1,.3,1)}@keyframes diff-pop{0%{transform:scale(.94);opacity:0}to{transform:scale(1);opacity:1}}}.diff-sheet--solo .diff-sheet-card{border-top:3px solid #6B8C68}.diff-sheet--ranked .diff-sheet-card{border-top:3px solid #B68A4E;background-image:linear-gradient(180deg,rgba(182,138,78,.08) 0%,transparent 28%)}.diff-sheet-close{position:absolute;top:12px;right:14px;border:none;background:transparent;font-size:26px;line-height:1;color:var(--text-muted, #64748b);cursor:pointer;width:36px;height:36px;border-radius:18px;transition:background .15s ease}.diff-sheet-close:hover{background:var(--hover, rgba(15, 23, 42, .06))}.diff-sheet-title{margin:4px 6px;font-size:20px;font-weight:700;letter-spacing:-.3px;display:flex;align-items:center;gap:8px}.diff-sheet-trophy{font-size:22px}.diff-sheet-sub{margin:0 6px 16px;font-size:13px;color:var(--text-muted, #64748b);line-height:1.4}.diff-sheet-list{display:flex;flex-direction:column;gap:10px}.diff-sheet-item{display:flex;align-items:center;gap:14px;width:100%;padding:14px 16px;border-radius:16px;border:1.5px solid var(--border, rgba(15, 23, 42, .1));background:var(--surface, #ffffff);color:var(--text, #0f172a);cursor:pointer;text-align:left;position:relative;transition:transform .14s ease,border-color .18s ease,box-shadow .18s ease}[data-theme=dark] .diff-sheet-item{background:var(--bg-card, #232831);border-color:#ffffff14}.diff-sheet-item:hover{transform:translateY(-1px);border-color:var(--accent, #6366f1);box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 22%,transparent)}.diff-sheet-item:active{transform:translateY(0);box-shadow:0 2px 6px color-mix(in srgb,var(--accent) 18%,transparent)}.diff-sheet-item-bars{flex:0 0 auto;display:flex;align-items:flex-end;gap:4px;height:26px;padding:0 4px}.diff-sheet-bar{display:block;width:3px;border-radius:2px;background:color-mix(in srgb,var(--text-muted, #94a3b8) 22%,transparent);transition:background .18s ease,transform .18s ease}.diff-sheet-bar--1{height:8px}.diff-sheet-bar--2{height:12px}.diff-sheet-bar--3{height:16px}.diff-sheet-bar--4{height:20px}.diff-sheet-bar--5{height:24px}.diff-sheet-bar.is-on{background:var(--accent)}.diff-sheet-item:hover .diff-sheet-bar.is-on{transform:translateY(-1px)}.diff-sheet-item-text{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.diff-sheet-item-title{font-weight:700;font-size:15px;letter-spacing:-.2px}.diff-sheet-item-meta{height:0}.diff-sheet-item-arr{font-size:18px;color:var(--text-muted, #94a3b8);font-weight:600;transition:transform .18s ease,color .18s ease}.diff-sheet-item:hover .diff-sheet-item-arr{transform:translate(4px);color:var(--accent)}.home-page{max-width:960px;margin:0 auto;padding:clamp(20px,4vw,48px) 20px 80px;animation:fadeIn .4s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.home-banner-row{display:flex;flex-direction:column;gap:8px;margin:4px 0 16px}@media(min-width:768px){.home-banner-row{flex-direction:row;flex-wrap:wrap;align-items:stretch}.home-banner-row>*{flex:1 1 calc(50% - 8px);min-width:240px;margin:0!important}}.home-resume-banner{display:flex;align-items:center;gap:10px;padding:12px 16px;margin-bottom:14px;background:#b4c4bb2e;border:1px solid rgba(140,165,152,.32);border-radius:14px;cursor:pointer;transition:background .18s ease,border-color .18s ease}.home-resume-banner:hover{background:#b4c4bb47;border-color:#8ca59885}.home-resume-play{width:30px;height:30px;border-radius:8px;background:#8ca5982e;color:#6e9682;display:flex;align-items:center;justify-content:center;flex-shrink:0}.home-resume-play svg{width:13px;height:13px}.home-resume-text{flex:1;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;min-width:0}.home-resume-text strong{color:var(--text-primary);font-size:.9rem;font-weight:600;letter-spacing:-.01em}.home-resume-text span{color:var(--text-secondary);font-size:.78rem}.home-resume-arr{color:var(--text-secondary);font-size:.95rem;flex-shrink:0}.home-hero-cards{display:grid;grid-template-columns:1fr;gap:14px;margin:4px 0 18px}@media(min-width:720px){.home-hero-cards{grid-template-columns:1fr 1fr;gap:18px}}.home-hero-card{position:relative;display:block;border-radius:22px;padding:28px 24px 26px;min-height:200px;cursor:pointer;overflow:hidden;text-align:left;transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease,border-color .2s ease;isolation:isolate}@media(min-width:720px){.home-hero-card{min-height:240px;padding:34px 28px 30px}}.home-hero-card:hover{transform:translateY(-4px)}.home-hero-card:active{transform:translateY(-1px) scale(.985);transition-duration:.1s}.home-hero-card--fun{background:radial-gradient(circle at 88% 12%,#9b8ae659,#9b8ae600 55%),linear-gradient(140deg,#ddd0f2,#ece6f7 45%,#f1ecf8);border:1px solid rgba(124,111,203,.28);box-shadow:0 6px 22px #7c6fcb2e,0 1px #fff9 inset;color:#3f2e66}.home-hero-card--fun:hover{border-color:#7c6fcb80;box-shadow:0 14px 40px #7c6fcb4d,0 1px #ffffffb3 inset}.home-hero-card--ranked{background:radial-gradient(circle at 88% 12%,#dca85c61,#dca85c00 55%),linear-gradient(140deg,#ebd9b1,#f3ead8 45%,#f8f1e1);border:1px solid rgba(182,138,78,.3);box-shadow:0 6px 22px #b68a4e33,0 1px #fff9 inset;color:#6e4f1e}.home-hero-card--ranked:hover{border-color:#b68a4e8c;box-shadow:0 14px 40px #b68a4e52,0 1px #ffffffb3 inset}[data-theme=dark] .home-hero-card--fun{background:linear-gradient(155deg,#2a2438,#2e2840 60%,#211c30);border-color:#a79ae838;color:#e2dafa;box-shadow:0 6px 20px #0000004d}[data-theme=dark] .home-hero-card--ranked{background:linear-gradient(155deg,#2e2a1f,#322d22 60%,#251f12);border-color:#dcbc8238;color:#ebd9b5;box-shadow:0 6px 20px #0000004d}.home-hero-card-bg{position:absolute;top:50%;right:-10px;transform:translateY(-50%);width:220px;height:220px;pointer-events:none;z-index:0;opacity:.1;display:grid;place-items:center}.home-hero-card--fun .home-hero-card-bg{color:#7c6fcb}.home-hero-card--ranked .home-hero-card-bg{color:#b68a4e}[data-theme=dark] .home-hero-card--fun .home-hero-card-bg{color:#a79ae8;opacity:.14}[data-theme=dark] .home-hero-card--ranked .home-hero-card-bg{color:#dcbc82;opacity:.14}.home-hero-card-bg svg{width:100%;height:100%}.home-hero-content{position:relative;z-index:1;display:flex;flex-direction:column;gap:6px}.home-hero-eyebrow{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;opacity:.55;margin-bottom:4px}.home-hero-title{font-size:clamp(24px,4vw,30px);font-weight:700;letter-spacing:-.025em;line-height:1.1}.home-hero-sub{font-size:13px;opacity:.78;margin-bottom:16px;line-height:1.45;max-width:22ch}.home-hero-cta{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:13.5px;padding:10px 16px;border-radius:999px;border:none;align-self:flex-start;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.home-hero-card--fun .home-hero-cta{background:#fff;color:#6855b5;box-shadow:0 4px 14px #6855b538}.home-hero-card--fun:hover .home-hero-cta{transform:translateY(-1px);box-shadow:0 8px 22px #6855b552;background:#faf8ff}.home-hero-card--ranked .home-hero-cta{background:#fff;color:#9a6d2c;box-shadow:0 4px 14px #9a6d2c38}.home-hero-card--ranked:hover .home-hero-cta{transform:translateY(-1px);box-shadow:0 8px 22px #9a6d2c52;background:#fffbf2}[data-theme=dark] .home-hero-card--fun .home-hero-cta{background:#2f2842;color:#c9bcf5;box-shadow:0 4px 14px #0006}[data-theme=dark] .home-hero-card--ranked .home-hero-cta{background:#3a3220;color:#ecd7a5;box-shadow:0 4px 14px #0006}.home-hero-dot{position:absolute;top:16px;right:16px;width:10px;height:10px;border-radius:50%;background:#c77b6e;box-shadow:0 0 0 3px #ffffffd9,0 0 0 6px #c77b6e2e;z-index:2;animation:home-hero-dot-pulse 2s ease-in-out infinite}[data-theme=dark] .home-hero-dot{box-shadow:0 0 0 3px #1e1e23e6,0 0 0 6px #c77b6e40}@keyframes home-hero-dot-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.15);opacity:.85}}.home-tools-section{margin-bottom:22px}.home-tools-title{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary, #64748b);margin:4px 4px 12px;opacity:.75}.home-tools-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:12px}@media(min-width:600px){.home-tools-grid{grid-template-columns:1fr 1fr}}.home-tool-card{position:relative;display:flex;align-items:center;gap:14px;width:100%;padding:18px 20px;border-radius:16px;border:1px solid rgba(91,127,166,.22);background:linear-gradient(135deg,#e5edf5,#ebf0f6);color:#2f4458;cursor:pointer;text-align:left;overflow:hidden;transition:transform .15s ease,box-shadow .22s ease,border-color .18s ease}[data-theme=dark] .home-tool-card{background:linear-gradient(135deg,#232831,#1f242c);border-color:#7e9cbf33;color:#c8d4e1}.home-tool-card:hover{transform:translateY(-2px);box-shadow:0 10px 28px #5b7fa629}.home-tool-card--academy{border-color:#c9a66b4d;background:linear-gradient(135deg,#f6efdd,#faf4e5);color:#5c4623}[data-theme=dark] .home-tool-card--academy{background:linear-gradient(135deg,#2c261c,#28221a);border-color:#c9a66b3d;color:#e5cfa0}.home-tool-card--academy:hover{border-color:#c9a66b80;box-shadow:0 10px 28px #c9a66b33}.home-tool-card--academy .home-tool-icon{background:#c9a66b29;color:#b68a4e}[data-theme=dark] .home-tool-card--academy .home-tool-icon{background:#c9a66b33;color:#e5cfa0}.home-tool-card--tutorial{border-color:#a8c2a652;background:linear-gradient(135deg,#edf4ec,#f2f7f1);color:#2f4a2d}[data-theme=dark] .home-tool-card--tutorial{background:linear-gradient(135deg,#232a23,#1f2620);border-color:#a8c2a638;color:#c5d8c2}.home-tool-card--tutorial:hover{border-color:#a8c2a68c;box-shadow:0 10px 28px #a8c2a633}.home-tool-card--tutorial .home-tool-icon{background:#a8c2a633;color:#6b8c68}[data-theme=dark] .home-tool-card--tutorial .home-tool-icon{background:#a8c2a638;color:#c5d8c2}.home-tool-card--full{width:100%}.home-tool-icon{position:relative;z-index:1;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:#5b7fa61f;color:#5b7fa6;flex-shrink:0}[data-theme=dark] .home-tool-card--solver .home-tool-icon,[data-theme=dark] .home-tool-icon{background:#7e9cbf29;color:#8fafd2}.home-tool-icon svg{width:24px;height:24px}.home-tool-text{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.home-tool-text strong{font-size:.98rem;font-weight:600;letter-spacing:-.01em}.home-tool-text span{font-size:.83rem;opacity:.72;line-height:1.35}.home-tool-arr{position:relative;z-index:1;color:currentColor;opacity:.55;font-size:1.1rem;flex-shrink:0;transition:transform .18s ease,opacity .18s ease}.home-tool-card:hover .home-tool-arr{transform:translate(3px);opacity:1}.auth-page{min-height:100vh;display:flex;flex-direction:column;padding:0 20px 20px;background:var(--bg)}.auth-page .auth-card{margin:auto}.auth-card{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:20px;padding:40px;width:100%;max-width:420px;box-shadow:0 0 48px var(--glow-soft),0 8px 32px #0000001a;animation:fadeIn .4s ease-out}.auth-card h1{font-size:clamp(1.3rem,5vw,1.8rem);font-weight:800;margin-bottom:8px;color:var(--text-primary)}.auth-subtitle{color:var(--text-secondary);margin-bottom:28px;font-size:.95rem}.auth-field{margin-bottom:18px}.auth-field label{display:block;font-size:.85rem;font-weight:600;color:var(--text-primary);margin-bottom:6px}.auth-field input{width:100%;padding:12px 14px;border:1px solid var(--glass-border);border-radius:12px;font-size:.95rem;font-family:inherit;background:var(--bg);color:var(--text-primary);transition:border-color .2s,box-shadow .2s}.auth-field input:focus{outline:none;border-color:var(--btn-primary);box-shadow:0 0 0 3px var(--glow-soft)}.auth-error{background:var(--error-bg);color:var(--error-text);padding:10px 14px;border-radius:10px;font-size:.9rem;margin-bottom:16px}.auth-success{background:#4caf501f;color:#388e3c;padding:10px 14px;border-radius:10px;font-size:.9rem;margin-bottom:16px;border:1px solid rgba(76,175,80,.3)}[data-theme=dark] .auth-success{color:#81c784;background:#4caf5014}.auth-link-subtle{background:transparent;border:none;cursor:pointer;font-size:.85rem;color:var(--text-muted, #888);text-decoration:underline;padding:0}.auth-link-subtle:hover{color:var(--primary, #6c63ff)}.auth-btn{width:100%;padding:13px;background:var(--btn-primary);color:#fff;border:none;border-radius:14px;font-size:1rem;font-weight:700;font-family:inherit;cursor:pointer;transition:box-shadow .2s,transform .1s;min-height:44px;touch-action:manipulation;box-shadow:0 2px 16px var(--glow-soft)}.auth-btn:hover:not(:disabled){box-shadow:0 4px 24px var(--glow)}.auth-btn:active:not(:disabled){transform:scale(.98)}.auth-btn:disabled{opacity:.5;cursor:not-allowed}.auth-switch{text-align:center;margin-top:20px;color:var(--text-secondary);font-size:.9rem}.auth-switch button{background:none;border:none;color:var(--btn-primary);cursor:pointer;font-weight:700;font-size:.9rem;font-family:inherit;padding:0}.auth-switch button:hover{text-decoration:underline}.auth-skip{width:100%;padding:11px;margin-top:12px;background:var(--btn-secondary);color:var(--btn-secondary-text);border:1px solid var(--glass-border);border-radius:14px;font-size:.9rem;font-family:inherit;cursor:pointer;transition:border-color .2s}.auth-skip:hover{border-color:var(--btn-primary)}.auth-social{margin-top:8px}.auth-divider{display:flex;align-items:center;gap:10px;margin:16px 0 12px;color:var(--text-secondary);font-size:.85rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--glass-border)}.auth-social-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:11px 16px;border-radius:14px;border:1px solid var(--glass-border);background:var(--bg-card);color:var(--text-primary);font-size:.95rem;font-weight:600;font-family:inherit;cursor:pointer;transition:box-shadow .15s,border-color .15s}.auth-social-btn:hover{box-shadow:0 2px 8px #0000001a;border-color:#4285f4}.auth-social-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:480px){.auth-card{padding:28px 20px}.auth-field input{font-size:1rem}}.activity-calendar{margin:24px 0 8px;position:relative}.activity-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:12px}.activity-title{font-size:.85rem;color:var(--text-secondary)}.activity-title strong{color:var(--text-primary)}.activity-modes{display:flex;gap:6px}.activity-mode-btn{font-size:.75rem;padding:3px 10px;border-radius:20px;border:1px solid var(--border-light);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s}.activity-mode-btn.active{background:var(--accent-dark, #68B89F);border-color:var(--accent-dark, #68B89F);color:#1c1917;font-weight:600}.activity-year-tabs{display:flex;gap:4px;margin-bottom:10px;flex-wrap:wrap}.activity-year-btn{background:transparent;border:1px solid var(--border-light);border-radius:6px;color:var(--text-secondary);font-size:.78rem;padding:3px 10px;cursor:pointer;transition:all .15s}.activity-year-btn:hover:not(.active){background:var(--bg-cell-shaded, #EDE9E2);color:var(--text-primary)}.activity-year-btn.active{background:var(--accent-dark, #68B89F);border-color:var(--accent-dark, #68B89F);color:#1c1917;font-weight:600}.activity-grid-wrap{overflow-x:auto;padding-bottom:4px}.activity-month-row{display:grid;gap:3px;margin-left:28px;margin-bottom:4px;min-width:0}.activity-month-label{font-size:.7rem;color:var(--text-secondary);white-space:nowrap}.activity-body{display:flex;gap:4px}.activity-day-labels{display:flex;flex-direction:column;gap:3px;padding-top:1px}.activity-day-labels span{font-size:.65rem;color:var(--text-secondary);height:13px;line-height:13px;min-width:24px}.activity-grid{display:flex;gap:3px}.activity-week{display:flex;flex-direction:column;gap:3px}.activity-cell{width:13px;height:13px;border-radius:2px;cursor:default;transition:opacity .1s}.activity-cell:hover{opacity:.8;transform:scale(1.15)}.activity-cell--empty{background:transparent;pointer-events:none}.activity-cell--l0{background:var(--bg-cell-shaded, #EDE9E2)}.activity-cell--l1{background:#a8d5c5}.activity-cell--l2{background:#6dbb9e}.activity-cell--l3{background:#3a9e7c}.activity-cell--l4{background:#1a7a5a}[data-theme=dark] .activity-cell--l0{background:#2c2826}[data-theme=dark] .activity-cell--l1{background:#1e4d3a}[data-theme=dark] .activity-cell--l2{background:#256b50}[data-theme=dark] .activity-cell--l3{background:#2e8f6b}[data-theme=dark] .activity-cell--l4{background:#3aad83}.activity-cell--future{opacity:.35;cursor:default}.activity-legend{display:flex;align-items:center;gap:4px;margin-top:8px;margin-left:28px}.activity-legend span{font-size:.7rem;color:var(--text-secondary)}.activity-tooltip{position:fixed;transform:translate(-50%) translateY(-100%);background:var(--bg-card);border:1px solid var(--border-light);border-radius:6px;padding:5px 10px;font-size:.75rem;color:var(--text-primary);pointer-events:none;white-space:nowrap;z-index:9999;box-shadow:0 2px 8px #00000026}.tier-badge{display:inline-flex;align-items:center;gap:6px;border:1.5px solid;border-radius:999px;font-weight:700;line-height:1;white-space:nowrap;vertical-align:middle}.tier-badge--sm{padding:2px 8px;font-size:11px}.tier-badge--sm .tier-badge-icon{font-size:12px}.tier-badge--md{padding:4px 10px;font-size:13px}.tier-badge--md .tier-badge-icon{font-size:14px}.tier-badge--lg{padding:8px 16px;font-size:16px;gap:8px}.tier-badge--lg .tier-badge-icon{font-size:22px}.tier-badge-icon{display:inline-flex;line-height:1}.tier-badge-name{letter-spacing:.3px}.tier-badge-next{margin-left:6px;padding-left:8px;border-left:1px solid currentColor;opacity:.75;font-weight:600;font-size:.85em}@media(max-width:480px){.tier-badge--md{padding:3px 8px;font-size:12px}.tier-badge--lg{padding:6px 12px;font-size:14px}}.premium-badge{display:inline-flex;align-items:center;justify-content:center;font-weight:800;letter-spacing:.5px;border-radius:6px;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.15);box-shadow:0 2px 6px #d977064d;vertical-align:middle;-webkit-user-select:none;user-select:none}.premium-badge--sm{font-size:10px;padding:2px 6px;line-height:1.2}.premium-badge--md{font-size:12px;padding:3px 9px;line-height:1.2}.profile-page{max-width:960px;margin:0 auto;padding:30px 20px;animation:fadeIn .3s ease-out}@media(max-width:640px){.profile-page{padding:12px}}.profile-top-actions{display:flex;align-items:center;justify-content:space-between;padding:0 16px;margin-bottom:20px}.profile-email{color:var(--text-secondary);font-size:.9rem;margin:0}.friends-nav-btn{padding:7px 16px;background:var(--btn-primary);color:var(--toggle-text);border:none;border-radius:10px;font-weight:700;font-size:.85rem;cursor:pointer}.public-profile-header{display:flex;align-items:center;gap:14px;padding:0 16px;margin-bottom:20px}@media(max-width:640px){.public-profile-header,.profile-top-actions{padding:0 4px;margin-bottom:12px}.profile-card{padding:14px;margin-bottom:14px}.stats-grid{margin-bottom:16px}.stat-card{padding:12px 8px}}.public-profile-avatar{width:52px;height:52px;border-radius:50%;background:var(--btn-primary);color:#fff;font-weight:800;font-size:1.4rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.public-profile-info{display:flex;flex-direction:column;gap:2px}.public-profile-name{font-weight:700;font-size:1.2rem;color:var(--text-primary)}.public-profile-since{font-size:.82rem;color:var(--text-secondary)}.profile-card{background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:16px;padding:20px;margin-bottom:20px}.profile-edit-row{display:flex;gap:12px;align-items:flex-end}.profile-field{flex:1}.profile-field label{display:block;font-size:.8rem;font-weight:600;color:var(--text-secondary);margin-bottom:4px}.profile-field input{width:100%;padding:10px 12px;border:1px solid var(--glass-border);border-radius:10px;font-size:.9rem;font-family:inherit;background:var(--bg);color:var(--text-primary);transition:border-color .2s,box-shadow .2s}.profile-field input:focus{outline:none;border-color:var(--btn-primary);box-shadow:0 0 0 3px var(--glow-soft)}.save-btn{padding:10px 20px;background:var(--btn-primary);color:#fff;border:none;border-radius:12px;cursor:pointer;font-size:.9rem;font-weight:600;font-family:inherit;white-space:nowrap;min-height:44px;touch-action:manipulation;transition:box-shadow .2s}.save-btn:hover{box-shadow:0 0 16px var(--glow)}.save-btn:disabled{opacity:.5}.profile-message{margin-top:8px;font-size:.85rem;color:var(--text-secondary)}.profile-tabs{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.tab-btn{flex:1 1 auto;min-width:calc(33% - 8px);padding:10px 14px;border:1.5px solid var(--border-light);border-radius:999px;background:var(--bg-card);color:var(--text-secondary);cursor:pointer;font-size:.88rem;font-weight:500;font-family:inherit;transition:all .18s;white-space:nowrap;text-align:center}.tab-btn:hover{border-color:var(--accent-dark, #68B89F);color:var(--text-primary)}.tab-btn.active{background:var(--btn-primary);border-color:var(--btn-primary);color:var(--toggle-text, #fff);font-weight:700}@media(max-width:640px){.profile-tabs{margin-bottom:14px;gap:6px}.tab-btn{min-width:calc(33% - 6px);padding:9px 8px;font-size:.78rem}}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}.stat-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--glass-border);border-radius:14px;padding:18px 14px;text-align:center}.stat-card--rating{border-color:#7c3aed44;background:linear-gradient(135deg,var(--glass-bg) 0%,#7c3aed18 100%)}.stat-card--rating .stat-value{color:#7c3aed}.stat-value{font-size:clamp(1.1rem,4vw,1.5rem);font-weight:800;color:var(--text-primary)}.stat-label{font-size:.75rem;color:var(--text-secondary);margin-top:4px}.history-list{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}.history-item{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--glass-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--glass-border);border-radius:12px}.history-diff{background:var(--btn-primary);color:#fff;padding:4px 10px;border-radius:8px;font-size:.8rem;font-weight:700;white-space:nowrap}.history-details{flex:1;display:flex;gap:16px;font-size:.85rem;color:var(--text-secondary)}.history-date{font-size:.8rem;color:var(--text-secondary);display:flex;flex-direction:column;align-items:flex-end;gap:2px}.history-mp-badge{display:inline-block;margin-left:6px;background:#6366f1;color:#fff;font-size:.65rem;font-weight:800;padding:1px 5px;border-radius:4px;vertical-align:middle}.history-failed{color:var(--error-text);font-weight:700}.history-room-name{font-size:.75rem;color:var(--text-secondary);font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}.history-item-wrap{display:flex;flex-direction:column;gap:0}.history-item-wrap .history-item{border-radius:12px}.history-item-wrap:has(.history-mp-detail) .history-item{border-radius:12px 12px 0 0;border-bottom:none}.history-mp-detail{background:var(--glass-bg);border:1px solid var(--glass-border);border-top:none;border-radius:0 0 12px 12px;padding:8px 12px;display:flex;flex-direction:column;gap:4px}.mp-result-row{display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--text-secondary)}.mp-result-place{font-weight:800;color:var(--text-primary);min-width:24px}.mp-result-name{font-weight:600;color:var(--text-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-result-score{font-weight:600;color:var(--accent);white-space:nowrap}.mp-result-stats{white-space:nowrap;font-size:.75rem}.empty-state{text-align:center;color:var(--text-secondary);padding:40px 20px;font-size:.95rem}.logout-btn{width:100%;padding:12px;background:var(--glass-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--glass-border);color:var(--error-text);border-radius:14px;cursor:pointer;font-size:.9rem;font-family:inherit;margin-top:8px;transition:border-color .2s}.logout-btn:hover{border-color:var(--error-text)}.insights-section{margin-bottom:24px}.insights-title{font-size:.95rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:0 0 12px 2px}.diff-analysis-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin-bottom:12px}.diff-analysis-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--glass-border);border-radius:14px;padding:12px 14px}.diff-analysis-name{font-size:.78rem;font-weight:800;color:var(--btn-primary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.diff-analysis-rows{display:flex;flex-direction:column;gap:4px}.diff-analysis-row{display:flex;justify-content:space-between;align-items:center;gap:6px}.da-label{font-size:.72rem;color:var(--text-secondary)}.da-value{font-size:.8rem;font-weight:700;color:var(--text-primary)}.insight-chips{display:flex;flex-wrap:wrap;gap:8px}.insight-chip{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:20px;padding:6px 14px;font-size:.82rem;color:var(--text-secondary);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.insight-chip strong{color:var(--text-primary)}@media(max-width:860px){.stats-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:640px){.stats-grid{grid-template-columns:repeat(2,1fr)}.history-details{flex-wrap:wrap;gap:6px}.profile-edit-row{flex-direction:column;align-items:stretch}.diff-analysis-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:400px){.stats-grid{grid-template-columns:1fr 1fr;gap:8px}.history-item{flex-wrap:wrap;gap:8px}}.fav-btn{background:none;border:none;font-size:1.3rem;cursor:pointer;color:var(--text-secondary);padding:4px 8px;border-radius:4px;transition:color .2s,transform .2s}.fav-btn:hover{transform:scale(1.2)}.fav-btn.fav-active{color:#f5a623}.history-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.history-score{font-weight:600;color:var(--primary)}.replay-btn{font-size:.8rem;padding:4px 10px;border-radius:6px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;transition:background .2s}.replay-btn:hover{background:var(--primary);color:#fff}.streak-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:16px 20px;margin-bottom:20px}.streak-card h3{margin:0 0 12px;font-size:1rem;color:var(--text-primary)}.streak-grid{display:flex;gap:24px}.streak-item{text-align:center}.streak-value{font-size:2rem;font-weight:700;color:var(--primary)}.streak-label{font-size:.8rem;color:var(--text-secondary)}.pb-section{display:flex;flex-direction:column;gap:10px}.pb-card{background:var(--bg-card, var(--glass-bg));border:1px solid var(--glass-border);border-radius:12px;padding:14px 16px}.pb-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.pb-diff-label{font-weight:700;font-size:.95rem;color:var(--text-primary)}.pb-games-played{font-size:.75rem;color:var(--text-secondary)}.pb-stats-row{display:flex;gap:12px}.pb-stat{flex:1;display:flex;flex-direction:column;align-items:center;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:8px;padding:8px 4px}.pb-stat-val{font-size:1.1rem;font-weight:700;color:var(--btn-primary);font-variant-numeric:tabular-nums}.pb-stat-label{font-size:.68rem;color:var(--text-secondary);margin-top:2px;text-align:center}.pb-no-games{font-size:.8rem;color:var(--text-secondary);text-align:center;margin:0;padding:8px 0}.achievements-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.achievement-card{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:12px;border:1px solid var(--border);background:var(--bg-secondary);transition:transform .2s}.achievement-card.unlocked{border-color:var(--primary);background:var(--bg-primary)}.achievement-card.locked{opacity:.5;filter:grayscale(.6)}.ach-icon{font-size:2rem;flex-shrink:0}.ach-info{flex:1;min-width:0}.ach-name{font-weight:600;font-size:.95rem;color:var(--text-primary)}.ach-desc{font-size:.8rem;color:var(--text-secondary);margin-top:2px}.ach-date{font-size:.75rem;color:var(--primary);margin-top:4px}.ach-locked-label{font-size:.75rem;color:var(--text-secondary);margin-top:4px}@media(max-width:640px){.achievements-grid{grid-template-columns:1fr}}.settings-tab{display:flex;flex-direction:column;gap:24px;margin-top:8px;max-width:560px;width:100%;margin-left:auto;margin-right:auto}.settings-section{background:var(--bg-card);border:1px solid var(--border-light);border-radius:14px;overflow:hidden}.settings-section-title{font-size:.78rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;padding:14px 18px 8px;margin:0}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:13px 18px;cursor:pointer;border-top:1px solid var(--border-light);transition:background .12s;-webkit-user-select:none;user-select:none}.settings-row:hover{background:var(--bg-cell-shaded, #EDE9E2)}.settings-row-info{display:flex;flex-direction:column;gap:2px}.settings-row-label{font-size:.9rem;color:var(--text-primary);font-weight:500}.settings-row-desc{font-size:.75rem;color:var(--text-secondary)}.settings-toggle{width:42px;height:24px;border-radius:12px;background:var(--border-light);flex-shrink:0;position:relative;transition:background .2s}.settings-toggle.on{background:var(--accent-dark, #68B89F)}.settings-toggle-thumb{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .2s;box-shadow:0 1px 3px #0003}.settings-toggle.on .settings-toggle-thumb{left:21px}.settings-field-group{display:flex;flex-direction:column;gap:8px;padding:14px 18px;border-top:1px solid var(--border-light)}.settings-label{font-size:.78rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.settings-input-row{display:flex;gap:8px}.settings-input{flex:1;padding:9px 12px;border:1px solid var(--border-light);border-radius:8px;background:var(--bg-main);color:var(--text-primary);font-size:.9rem}.settings-input:focus{outline:none;border-color:var(--accent-dark, #68B89F)}.settings-save-btn{padding:9px 16px;background:var(--btn-primary);color:var(--toggle-text);border:none;border-radius:8px;font-weight:700;font-size:.85rem;cursor:pointer;white-space:nowrap}.settings-save-btn:disabled{opacity:.5;cursor:default}.settings-msg{font-size:.82rem;color:var(--accent-dark, #68B89F);margin:0}@media(max-width:500px){.settings-input-row{flex-direction:column}.settings-save-btn{width:100%}}.settings-section--danger{border-color:var(--error-text, #b91c1c)}.settings-section--danger .settings-section-title{color:var(--error-text, #b91c1c)}.settings-danger-body{padding:0 18px 16px}.settings-danger-desc{font-size:.85rem;color:var(--text-secondary);margin:0 0 12px;line-height:1.5}.settings-danger-btn{width:100%;padding:10px;background:transparent;border:1px solid var(--error-text, #b91c1c);color:var(--error-text, #b91c1c);border-radius:8px;font-size:.88rem;font-weight:600;font-family:inherit;cursor:pointer;transition:background .15s}.settings-danger-btn:hover{background:color-mix(in srgb,var(--error-text, #b91c1c) 10%,transparent)}.settings-danger-actions{display:flex;gap:8px;margin-top:10px}.settings-danger-cancel{flex:1;padding:10px;background:var(--glass-bg);border:1px solid var(--border-light);color:var(--text-primary);border-radius:8px;font-size:.88rem;font-family:inherit;cursor:pointer;transition:border-color .15s}.settings-danger-cancel:hover{border-color:var(--accent-dark, #68B89F)}.settings-danger-confirm{flex:1;padding:10px;background:var(--error-text, #b91c1c);border:none;color:#fff;border-radius:8px;font-size:.88rem;font-weight:700;font-family:inherit;cursor:pointer;transition:opacity .15s}.settings-danger-confirm:disabled{opacity:.5;cursor:default}.settings-danger-msg{font-size:.82rem;color:var(--error-text, #b91c1c);margin:8px 0 0}.season-rewards-section{padding:8px 4px 24px}.season-rewards-title{margin:0 0 16px;font-size:1.05rem;font-weight:700;color:var(--text, #1f2937)}.season-rewards-empty{margin:24px 0;text-align:center;color:var(--muted, #6b7280);font-size:.92rem;padding:24px;border:1px dashed var(--border, #e5e7eb);border-radius:12px}.season-rewards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.season-reward-card{display:flex;align-items:center;gap:14px;padding:14px;border-radius:14px;background:var(--card-bg, #fff);border:1px solid var(--border, #e5e7eb);box-shadow:0 2px 6px #0000000a;transition:transform .12s}.season-reward-card:hover{transform:translateY(-2px)}.season-reward-top10{border-color:#6366f173}.season-reward-top100{border-color:#f59e0b73}.season-reward-top1000{border-color:#94a3b873}.season-reward-ring{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px #00000026}.season-reward-rank{font-size:.95rem;font-weight:900;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}.season-reward-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.season-reward-season{font-size:.78rem;font-weight:700;color:var(--muted, #6b7280);text-transform:uppercase;letter-spacing:.4px}.season-reward-tier{font-size:.92rem;font-weight:800;color:var(--text, #1f2937)}.season-reward-rating{font-size:.82rem;color:var(--muted, #6b7280)}.help-tab{padding:12px 0 24px;animation:fadeIn .3s ease-out}.help-subtitle{margin:0 4px 18px;color:var(--text-secondary, #64748b);font-size:.95rem}.help-grid{display:grid;grid-template-columns:1fr;gap:14px}@media(min-width:600px){.help-grid{grid-template-columns:1fr 1fr}}.help-card{position:relative;display:flex;flex-direction:column;gap:10px;padding:22px 22px 20px;border-radius:18px;border:1.5px solid var(--border, rgba(15, 23, 42, .1));background:var(--bg-card, #ffffff);overflow:hidden}.help-card--tutorial{--accent: #3b82f6}.help-card--education{--accent: #8b5cf6}.help-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 12%,transparent),transparent 65%);pointer-events:none}.help-card-icon{position:relative;width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}.help-card-title{position:relative;margin:0;font-size:1.15rem;font-weight:800;color:var(--text-primary, #0f172a)}.help-card-desc{position:relative;margin:0 0 6px;font-size:.9rem;color:var(--text-secondary, #64748b);line-height:1.4}.help-card-btn{position:relative;align-self:flex-start;padding:10px 18px;border:none;border-radius:999px;background:var(--accent);color:#fff;font-weight:700;font-size:.9rem;cursor:pointer;transition:transform .15s,box-shadow .15s}.help-card-btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 35%,transparent)}.verify-email-banner{display:flex;align-items:center;gap:10px;padding:10px 16px;margin:0 0 12px;border-radius:10px;background:color-mix(in srgb,#f59e0b 12%,transparent);border:1px solid color-mix(in srgb,#f59e0b 30%,transparent);font-size:.875rem}.verify-email-banner__icon{font-size:1rem;flex-shrink:0}.verify-email-banner__text{flex:1;color:var(--text)}.verify-email-banner__btn{flex-shrink:0;padding:5px 12px;border:none;border-radius:999px;background:#f59e0b;color:#fff;font-size:.8rem;font-weight:700;cursor:pointer;transition:opacity .15s}.verify-email-banner__btn:disabled{opacity:.6;cursor:default}.verify-email-banner__btn:not(:disabled):hover{opacity:.85}.presence-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;background:linear-gradient(135deg,#22c55e1f,#6366f11f);border:1px solid rgba(34,197,94,.25);font-size:12px;font-weight:600;color:var(--text, #1f2937);white-space:nowrap}.presence-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 8px #22c55eb3;animation:presence-pulse 1.6s ease-in-out infinite}@keyframes presence-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.65;transform:scale(.85)}}.presence-count{font-weight:700;color:#16a34a}.presence-label{color:var(--text-subtle, #6b7280);font-weight:500}.presence-sep{color:var(--text-subtle, #9ca3af)}.presence-games{font-weight:700;color:#6366f1}.lb-streak{display:inline-flex;align-items:center;margin-left:6px;padding:1px 6px;border-radius:999px;background:linear-gradient(135deg,#ff6a00,#ee0979);color:#fff;font-size:.72em;font-weight:800;letter-spacing:.3px;box-shadow:0 2px 6px #ee097959;animation:lb-streak-pulse 1.6s ease-in-out infinite alternate}@keyframes lb-streak-pulse{0%{transform:scale(1)}to{transform:scale(1.08)}}.leaderboard-page{max-width:960px;margin:0 auto;padding:0 16px 72px}.lb-hero{text-align:center;padding:20px 0 18px}.lb-hero-title{font-family:Playfair Display,Georgia,serif;font-size:1.9rem;font-weight:800;color:var(--text-primary);margin:0 0 10px;display:flex;align-items:center;justify-content:center;gap:16px}.lb-hero-title:before,.lb-hero-title:after{content:"";flex:1;height:1px;background:var(--glass-border)}.lb-season-badge{margin:0 0 6px;font-size:.82rem;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;gap:6px}.lb-season-sep{opacity:.35}.lb-my-rank{margin:0;font-size:.84rem;color:var(--btn-primary);font-weight:700}.lb-mode-tabs{display:flex;gap:4px;margin-bottom:12px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:14px;padding:4px}.lb-mode-tab{flex:1;padding:8px 10px;border:none;border-radius:10px;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:.84rem;font-family:inherit;font-weight:600;transition:background .15s,color .15s;touch-action:manipulation}.lb-mode-tab.active{background:var(--btn-primary);color:#fff}.lb-mode-tab:hover:not(.active){color:var(--text-primary)}.lb-pills{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}.lb-diff-pills{margin-bottom:20px}.lb-pill{padding:5px 14px;border-radius:20px;border:1.5px solid var(--glass-border);background:transparent;cursor:pointer;font-size:.82rem;font-weight:700;color:var(--text-secondary);font-family:inherit;transition:all .15s;touch-action:manipulation}.lb-pill:hover:not(.active){border-color:var(--text-secondary);color:var(--text-primary)}.lb-pill.active{background:var(--btn-primary);color:#fff;border-color:transparent}@keyframes lb-slide-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.lb-podium-card{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-radius:14px;margin-bottom:8px;background:var(--bg-card);border:1px solid var(--glass-border);opacity:0;animation:lb-slide-in .35s ease forwards;gap:12px}.lb-podium-card.gold{border-color:#f59e0b;background:#f59e0b0f;box-shadow:0 4px 24px #f59e0b24,0 0 0 1px #f59e0b2e}.lb-podium-card.silver{border-color:#94a3b8;background:#94a3b80d}.lb-podium-card.bronze{border-color:#b45309;background:#b453090d}.lb-pc-left{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.lb-pc-medal{font-size:1.5rem;line-height:1;flex-shrink:0}.lb-podium-card.gold .lb-pc-medal{font-size:2rem}.lb-pc-info{display:flex;flex-direction:column;gap:4px;min-width:0}.lb-pc-name{font-family:Playfair Display,Georgia,serif;font-weight:700;font-size:.95rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lb-podium-card.gold .lb-pc-name{font-size:1.1rem}.lb-pc-meta{display:flex;align-items:center;gap:5px;font-size:.76rem;color:var(--text-secondary);flex-wrap:wrap}.lb-pc-diff{font-weight:700}.lb-pc-sep{opacity:.4}.lb-pc-right{flex-shrink:0}.lb-pc-score{font-weight:800;font-size:1.1rem;color:var(--text-primary);font-variant-numeric:tabular-nums}.lb-podium-card.gold .lb-pc-score{font-size:1.4rem;color:var(--btn-primary)}.lb-pc-unit{font-size:.6em;font-weight:600;margin-left:1px;opacity:.55}.lb-rest{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:14px;overflow:hidden}.lb-rest-row{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--glass-border);font-size:.87rem;opacity:0;animation:lb-slide-in .3s ease forwards}.lb-rest-row:last-child{border-bottom:none}.lb-rest-row.is-me,.lb-podium-card.is-me{outline:2px solid var(--btn-primary);outline-offset:-2px}.lb-rest-row.is-unranked,.lb-podium-card.is-unranked{opacity:.45;filter:grayscale(.6)}.lb-rest-row.is-unranked.is-me,.lb-podium-card.is-unranked.is-me{opacity:.85;filter:none}.lb-season-badge{font-size:.82rem;color:var(--text-secondary);margin-top:4px;display:flex;align-items:center;justify-content:center;gap:6px}.lb-season-sep{opacity:.4}.lb-my-rank{margin-top:6px;font-size:.85rem;color:var(--btn-primary)}.lb-rest-rank{min-width:34px;font-weight:700;color:var(--text-secondary);font-size:.78rem}.lb-rest-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.lb-rest-name{flex:1;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lb-rest-wr{font-size:.76rem;color:var(--text-secondary);min-width:54px;text-align:right}.lb-rest-diff{font-size:.78rem;font-weight:700;min-width:54px}.lb-rest-score{font-weight:700;font-variant-numeric:tabular-nums;min-width:60px;text-align:right;color:var(--btn-primary)}.lb-rest-time{font-variant-numeric:tabular-nums;color:var(--text-secondary);font-size:.8rem;min-width:44px;text-align:right}.lb-pc-wr{font-size:.76rem;color:var(--text-secondary)}.lb-pc-peak{display:block;font-size:.7rem;color:var(--text-secondary);text-align:right;margin-top:2px}.lb-empty-state{display:flex;flex-direction:column;align-items:center;gap:12px;padding:64px 20px;color:var(--text-secondary)}.lb-empty-icon{font-size:2.8rem;opacity:.45}.lb-empty-state p{margin:0;font-size:.95rem}.lb-loading{text-align:center;color:var(--text-secondary);padding:48px 20px}@media(max-width:480px){.lb-hero-title{font-size:1.45rem}.lb-podium-card{padding:12px 14px}.lb-rest-diff,.lb-rest-time{display:none}.lb-rest-row{gap:8px}.lb-pill{padding:5px 10px;font-size:.79rem}}.lb-scope-tabs{display:flex;gap:8px;justify-content:center;margin:0 auto 18px;max-width:360px;padding:0 12px}.lb-scope-tab{flex:1;padding:10px 14px;border:1.5px solid var(--border, #e5e7eb);border-radius:999px;background:var(--surface, #fff);color:var(--text, #1f2937);font-size:14px;font-weight:600;cursor:pointer;transition:all .18s ease}.lb-scope-tab:hover{border-color:var(--primary, #6366f1);transform:translateY(-1px)}.lb-scope-tab.is-active{background:linear-gradient(135deg,#6366f1,#8b5cf6);border-color:transparent;color:#fff;box-shadow:0 4px 12px #6366f159}.tut-content{max-width:760px;margin:2.5rem auto 3rem;padding:0 1rem;line-height:1.65;color:var(--text-primary, #222)}.tut-content-section{margin-bottom:2rem}.tut-content-section h2{font-size:1.35rem;font-weight:600;margin:0 0 .75rem;border-bottom:2px solid var(--accent, #5064dc);padding-bottom:.4rem;display:inline-block}.tut-content-section p{margin:.6rem 0;font-size:1rem;color:var(--text-primary, #333)}.tut-content-section ul,.tut-content-section ol{margin:.5rem 0 .5rem 1.25rem;padding:0}.tut-content-section li{margin-bottom:.5rem}.tut-content-section a{color:var(--accent, #5064dc);text-decoration:underline;text-underline-offset:2px}.tut-content-section a:hover{text-decoration-thickness:2px}.tut-faq{background:var(--surface-elevated, var(--bg-secondary, #f7f7fb));border:1px solid var(--border, rgba(0, 0, 0, .08));border-radius:8px;margin:.5rem 0;padding:.75rem 1rem}.tut-faq summary{cursor:pointer;font-weight:600;list-style:none;position:relative;padding-right:1.5rem}.tut-faq summary::-webkit-details-marker{display:none}.tut-faq summary:after{content:"+";position:absolute;right:0;top:0;font-size:1.3rem;font-weight:400;color:var(--accent, #5064dc);transition:transform .2s}.tut-faq[open] summary:after{content:"−"}.tut-faq p{margin:.6rem 0 0;font-size:.95rem;color:var(--text-secondary, #555)}.tut-content-cta{text-align:center;background:var(--accent-soft, rgba(80, 100, 220, .08));padding:1.5rem 1rem;border-radius:12px}.tut-content-cta h2{border-bottom:none;display:block;text-align:center}.tut-content-cta-row{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-top:1rem}.tut-content-cta-btn{display:inline-block;padding:.7rem 1.3rem;border-radius:8px;background:var(--bg-primary, #fff);color:var(--text-primary, #222);text-decoration:none!important;border:1px solid var(--border, rgba(0, 0, 0, .15));font-weight:500;transition:all .15s}.tut-content-cta-btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px #00000014}.tut-content-cta-btn--primary{background:var(--accent, #5064dc);color:#fff;border-color:var(--accent, #5064dc)}.tut-content-cta-btn--primary:hover{background:var(--accent-hover, #4054c8)}@media(max-width:480px){.tut-content-section h2{font-size:1.2rem}.tut-content-cta-btn{width:100%}}.tutorial-page{max-width:720px;margin:0 auto;padding:20px 16px 60px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.tut-body{display:flex;flex-direction:column;align-items:center;gap:22px}.tut-step-dots{display:flex;gap:8px;margin-top:4px}.tut-dot{width:8px;height:8px;border-radius:50%;background:var(--glass-border);transition:background .2s}.tut-dot--active{background:var(--accent-blue, #5a7fa0);width:20px;border-radius:4px;transition:width .2s,background .2s}.tut-dot--done{background:#5b8c5a}.tut-board-wrap{overflow:auto}.tut-grid{border-collapse:collapse;border:2px solid var(--text-primary)}.tut-cell{width:42px;height:42px;text-align:center;vertical-align:middle;border:1px solid var(--glass-border);position:relative;transition:background .15s;padding:0}.tut-cell--rb{border-right:2px solid var(--text-primary)}.tut-cell--bb{border-bottom:2px solid var(--text-primary)}.tut-cell-val{font-size:1.05rem;font-weight:700;pointer-events:none;color:var(--text-primary);display:block;line-height:42px}.tut-cell--dim{background:transparent;pointer-events:none}.tut-cell--dim .tut-cell-val{display:none}.tut-cell--given{background:#5a7fa01f;pointer-events:none}.tut-cell--target{background:#5a7fa012;outline:2px solid var(--accent-blue, #5a7fa0);outline-offset:-2px;animation:tut-pulse 1.5s ease-in-out infinite;cursor:default}.tut-cell--target.tut-cell--success{background:#5b8c5a33!important;outline-color:#5b8c5a!important;animation:tut-pop .35s ease-out forwards}.tut-cell--target.tut-cell--success .tut-cell-val{color:#5b8c5a}.tut-cell--target.tut-cell--wrong{background:#b43c3226!important;outline-color:#b43c32!important;animation:tut-shake .35s ease-out}@keyframes tut-pulse{0%,to{box-shadow:0 0 #5a7fa080}50%{box-shadow:0 0 0 6px #5a7fa000}}@keyframes tut-pop{0%{transform:scale(1.18)}to{transform:scale(1)}}@keyframes tut-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.tut-info{width:100%;max-width:460px}.tut-step-title{margin:0 0 8px;font-size:1.15rem;color:var(--text-primary)}.tut-step-desc{margin:0;color:var(--text-secondary);font-size:.93rem;line-height:1.65}.tut-feedback{margin-top:12px;padding:8px 14px;border-radius:10px;font-size:.9rem;font-weight:600}.tut-feedback--correct{background:#5b8c5a26;color:#5b8c5a}.tut-feedback--wrong{background:#b43c321f;color:#b43c32}.tut-action-hint{display:flex;align-items:center;justify-content:center;gap:10px;padding:13px 20px;background:linear-gradient(135deg,#6c63ff26,#5a7fa026);border:2px solid rgba(108,99,255,.55);border-radius:12px;font-size:.95rem;font-weight:700;color:var(--text-primary);width:100%;max-width:460px;box-sizing:border-box;text-align:center;box-shadow:0 0 0 4px #6c63ff14;animation:tut-hint-pulse 2s ease-in-out infinite}.tut-action-arrow{font-size:1.3rem;flex-shrink:0;animation:tut-bounce .8s ease-in-out infinite}@keyframes tut-bounce{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(5px) rotate(5deg)}}@keyframes tut-hint-pulse{0%,to{box-shadow:0 0 0 4px #6c63ff14}50%{box-shadow:0 0 0 8px #6c63ff24}}.tut-numpad{display:grid;grid-template-columns:repeat(9,1fr);gap:6px;width:100%;max-width:460px}.tut-num{aspect-ratio:1;border:1px solid var(--glass-border);border-radius:8px;background:var(--bg-card);color:var(--text-primary);font-size:1rem;font-weight:700;cursor:pointer;transition:background .1s,opacity .1s}.tut-num:hover:not(:disabled){background:var(--glass-bg)}.tut-num:disabled{opacity:.35;cursor:default}.tut-nav{display:flex;gap:10px;width:100%;max-width:460px;justify-content:space-between;align-items:center}.tut-nav-btn{padding:10px 22px;border-radius:10px;border:none;font-size:.9rem;font-weight:600;cursor:pointer;transition:opacity .15s}.tut-nav-btn:hover{opacity:.82}.tut-nav-btn--prev{background:transparent;border:1px solid var(--glass-border);color:var(--text-secondary)}.tut-nav-btn--next{background:var(--accent-blue, #5a7fa0);color:#fff;margin-left:auto}.tut-nav-btn--finish{background:#5b8c5a;color:#fff;margin-left:auto}@media(max-width:480px){.tut-cell{width:34px;height:34px}.tut-cell-val{font-size:.85rem;line-height:34px}}.daily-page{max-width:960px;margin:0 auto;padding:0 16px 40px}@media(max-width:519px){.daily-page{padding-bottom:max(env(safe-area-inset-bottom,0px),12px);overscroll-behavior:none}.daily-page .action-row .action-btn{min-height:34px;padding:2px 4px}.daily-page .action-row .action-btn .btn-label{font-size:.52rem}.daily-page .action-row-end{padding-bottom:max(env(safe-area-inset-bottom,0px),8px)}}.daily-tabs{display:flex;justify-content:center;gap:7px;margin-bottom:24px}.daily-tab{padding:6px 18px;border-radius:20px;border:1.5px solid var(--glass-border);background:transparent;cursor:pointer;font-size:.82rem;font-weight:700;letter-spacing:.03em;transition:all .15s;color:var(--text-secondary);font-family:inherit;min-height:32px}.daily-tab:hover{border-color:var(--text-secondary);color:var(--text-primary)}.daily-tab.active{background:var(--btn-primary);color:#fff;border-color:transparent}.daily-diff-btn{flex-direction:column;gap:4px;min-height:60px}.difficulty-btn.daily-diff-btn.solved{border-color:#4caf50}.difficulty-btn.daily-diff-btn.failed{opacity:.55;cursor:not-allowed}.difficulty-btn.daily-diff-btn.in_progress{border-color:#ff9800}.daily-diff-badge{font-size:.78rem;font-weight:600;padding:2px 10px;border-radius:10px;display:inline-block}.daily-diff-badge.solved{background:#4caf50;color:#fff}.daily-diff-badge.failed{background:#e74c3c;color:#fff}.daily-diff-badge.in_progress{background:#ff9800;color:#fff}.daily-diff-badge.generating{background:var(--text-secondary, #888);color:#fff}.daily-calendar{max-width:420px;margin:0 auto 24px}.daily-cal-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.daily-cal-nav button{background:transparent;border:none;cursor:pointer;font-size:.9rem;color:var(--primary, #6c63ff);padding:4px 8px}.daily-cal-nav span{font-weight:700;font-size:1.05rem;color:var(--text-primary)}.daily-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.daily-cal-header{font-size:.75rem;text-align:center;opacity:.5;font-weight:600;padding:4px 0;color:var(--text-primary)}.daily-cal-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.85rem;border-radius:8px;cursor:pointer;transition:background .2s;position:relative;color:var(--text-primary)}.daily-cal-cell.empty{cursor:default}.daily-cal-cell.today{font-weight:700;box-shadow:inset 0 0 0 2px var(--primary, #6c63ff)}.daily-cal-cell.future{opacity:.3;cursor:default}.daily-cal-cell.solved-0{background:var(--cal-0, rgba(0,0,0,.04))}.daily-cal-cell.solved-1{background:#5b8c5a1a}.daily-cal-cell.solved-2{background:#5b8c5a2e}.daily-cal-cell.solved-3{background:#5b8c5a42}.daily-cal-cell.solved-4{background:#5b8c5a5c}.daily-cal-cell.solved-5{background:#10b98133}[data-theme=dark] .daily-cal-cell.solved-0{background:#ffffff0d}[data-theme=dark] .daily-cal-cell.solved-1{background:#4caf5026;color:var(--text-primary)}[data-theme=dark] .daily-cal-cell.solved-2{background:#4caf5040;color:var(--text-primary)}[data-theme=dark] .daily-cal-cell.solved-3{background:#4caf5066;color:var(--text-primary)}[data-theme=dark] .daily-cal-cell.solved-4{background:#4caf508c;color:#fff}[data-theme=dark] .daily-cal-cell.solved-5{background:#4caf50bf;color:#fff}.daily-cal-dots{position:absolute;bottom:2px;display:flex;gap:2px}.daily-cal-dot{width:4px;height:4px;border-radius:50%;background:var(--primary, #6c63ff)}.daily-lb{max-width:520px;margin:0 auto}.daily-lb-filters{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.daily-lb-diff-btn{padding:4px 14px;border-radius:6px;border:1px solid var(--border, #ccc);background:transparent;cursor:pointer;font-size:.85rem;color:var(--text-primary);font-family:inherit}.daily-lb-diff-btn.active{background:var(--primary, #6c63ff);color:#fff;border-color:var(--primary, #6c63ff)}.daily-lb table{width:100%;border-collapse:collapse}.daily-lb th,.daily-lb td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--border, #eee);font-size:.9rem;color:var(--text-primary)}.daily-lb th{font-weight:600;opacity:.7;font-size:.8rem}.daily-lb-empty{text-align:center;padding:24px;opacity:.6}.daily-page .game-page-body{margin-top:4px}.daily-game-info{display:flex;gap:16px;font-size:.9rem}.daily-game-info span{display:flex;align-items:center;gap:4px}.daily-hint-note{text-align:center;font-size:.78rem;opacity:.55;margin:4px 0 0}.daily-result{text-align:center;padding:32px;border-radius:16px;border:1px solid var(--border, #ddd);margin-top:24px;color:var(--text-primary);background:var(--bg-card)}.daily-result h2{font-size:1.5rem;margin-bottom:12px}.daily-result-stats{display:flex;justify-content:center;gap:24px;margin-bottom:16px}.daily-result-stat{text-align:center}.daily-result-stat .label{font-size:.8rem;opacity:.6}.daily-result-stat .value{font-size:1.3rem;font-weight:700}.daily-loading{text-align:center;padding:48px;opacity:.6}@media(max-width:520px){.daily-numpad{max-width:100%}}@media(max-width:899px){.daily-page .game-page-body,.daily-page .board-status-bar{width:100%}.daily-page .game-layout{width:100%;max-width:560px;margin:0 auto}.daily-page .game-grid{width:100%}.daily-page .game-grid td{width:auto;max-width:none;height:calc(min(100vw - 32px,560px) / 9)}}@media(max-width:519px){.daily-page .game-grid{max-width:min(calc(100vw - 32px),calc(100dvh - 200px))}.daily-page .game-grid td{height:min(calc((100vw - 32px) / 9),calc((100dvh - 200px) / 9))}.daily-page .game-page-body .board-status-bar{max-width:min(calc(100vw - 32px),calc(100dvh - 200px))}}.daily-streak-badge{display:inline-flex;align-items:center;gap:6px;margin:8px 16px 0;padding:6px 14px;background:#22c55e1a;border:1.5px solid rgba(34,197,94,.35);border-radius:20px;font-size:.85rem;font-weight:700;color:#16a34a}.daily-timeline{max-width:640px;margin:18px auto 32px;padding:0 16px}.daily-tl-row{display:flex;align-items:stretch;gap:14px;position:relative}.daily-tl-rail{width:40px;display:flex;flex-direction:column;align-items:center;flex-shrink:0;position:relative;padding-top:16px}.daily-tl-node{width:36px;height:36px;border-radius:50%;background:var(--surface, #ffffff);border:2px solid var(--accent, #6366f1);color:var(--accent, #6366f1);display:grid;place-items:center;font-weight:800;font-size:13px;z-index:2;box-shadow:0 2px 6px #0000000f;transition:transform .18s ease,box-shadow .18s ease}.daily-tl-node-dot{width:8px;height:8px;border-radius:50%;background:var(--accent, #6366f1);display:block}.daily-tl-line{width:2px;flex:1;background:var(--border, rgba(15, 23, 42, .1));margin-top:4px;margin-bottom:-8px;border-radius:1px}.daily-tl-solved .daily-tl-node{background:linear-gradient(135deg,#4ade80,#16a34a);border-color:#16a34a;color:#fff;box-shadow:0 4px 14px #16a34a4d}.daily-tl-solved .daily-tl-line{background:linear-gradient(180deg,#16a34a,var(--border, rgba(15, 23, 42, .1)))}.daily-tl-failed .daily-tl-node{background:var(--surface, #ffffff);border-color:#ef4444;color:#ef4444}.daily-tl-in_progress .daily-tl-node{background:linear-gradient(135deg,#fbbf24,#f59e0b);border-color:#f59e0b;color:#fff;box-shadow:0 4px 14px #f59e0b4d}.daily-tl-active .daily-tl-node{transform:scale(1.05);box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 18%,transparent),0 4px 14px color-mix(in srgb,var(--accent) 30%,transparent)}.daily-tl-card{flex:1;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px;margin-bottom:14px;border-radius:18px;border:1.5px solid var(--border, rgba(15, 23, 42, .1));background:var(--surface, #ffffff);color:var(--text, #0f172a);cursor:pointer;text-align:left;transition:transform .16s ease,border-color .18s ease,box-shadow .2s ease,opacity .18s ease}.daily-tl-card:hover:not(:disabled){transform:translate(2px);border-color:var(--accent);box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 18%,transparent)}.daily-tl-card:disabled{cursor:default}.daily-tl-card-main{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.daily-tl-eyebrow{font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;opacity:.85}.daily-tl-bars{display:inline-flex;align-items:flex-end;gap:4px;height:22px;margin-bottom:2px}.daily-tl-bar{display:block;width:3px;border-radius:2px;background:color-mix(in srgb,var(--text-muted, #94a3b8) 22%,transparent)}.daily-tl-bar--1{height:7px}.daily-tl-bar--2{height:11px}.daily-tl-bar--3{height:14px}.daily-tl-bar--4{height:18px}.daily-tl-bar--5{height:22px}.daily-tl-name{font-size:1.02rem;font-weight:700;letter-spacing:-.2px;color:var(--text, #0f172a)}.daily-tl-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.daily-tl-chip{display:inline-flex;align-items:center;gap:4px;font-size:.74rem;font-weight:700;padding:3px 9px;border-radius:10px;background:var(--hover, rgba(15, 23, 42, .06));color:var(--text-muted, #64748b)}.daily-tl-chip--reward{background:linear-gradient(135deg,#fbbf242e,#f59e0b1a);color:#b45309;border:1px solid rgba(245,158,11,.32)}[data-theme=dark] .daily-tl-chip--reward{color:#fbbf24;border-color:#fbbf2466}.daily-tl-chip--warn{background:#f59e0b24;color:#b45309}[data-theme=dark] .daily-tl-chip--warn{color:#fbbf24}.daily-tl-cta{flex-shrink:0;font-size:.84rem;font-weight:800;padding:9px 14px;border-radius:12px;letter-spacing:.2px;white-space:nowrap}.daily-tl-cta--active{background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 75%,#000));color:#fff;box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 30%,transparent)}.daily-tl-cta--in_progress{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff}.daily-tl-cta--pending{background:var(--hover, rgba(15, 23, 42, .06));color:var(--text-muted, #64748b);border:1px solid var(--border, rgba(15, 23, 42, .1))}.daily-tl-cta--solved{background:linear-gradient(135deg,#4ade80,#16a34a);color:#fff}.daily-tl-cta--failed{background:#ef444424;color:#b91c1c;border:1px solid rgba(239,68,68,.32)}[data-theme=dark] .daily-tl-cta--failed{color:#fca5a5}.daily-tl-card--active{transform:scale(1.01);border-color:var(--accent);box-shadow:0 6px 18px color-mix(in srgb,var(--accent) 20%,transparent)}.daily-tl-card--active .daily-tl-name{font-size:1.08rem}.daily-tl-card--solved{background:linear-gradient(135deg,#4ade801a,#16a34a0a);border-color:#16a34a4d}[data-theme=dark] .daily-tl-card--solved{background:linear-gradient(135deg,#4ade801a,#16a34a0d);border-color:#4ade8038}.daily-tl-card--failed{background:#ef44440a;border-color:#ef444438;opacity:.78}.daily-tl-card--in_progress{background:linear-gradient(135deg,#fbbf241a,#f59e0b0a);border-color:#f59e0b4d}.daily-tl-card--pending{opacity:.92}@media(max-width:480px){.daily-tl-rail{width:32px;padding-top:14px}.daily-tl-node{width:30px;height:30px;font-size:12px}.daily-tl-card{padding:12px 14px}.daily-tl-cta{padding:8px 11px;font-size:.78rem}.daily-tl-name{font-size:.96rem}}.friends-page{max-width:960px;margin:0 auto;padding:30px 20px;animation:fadeIn .3s ease-out}.friends-message{margin:12px 16px 0;padding:10px 14px;background:var(--accent);color:#fff;border-radius:10px;font-size:.9rem;font-weight:600;text-align:center}.friends-tabs{display:flex;gap:8px;padding:16px;flex-wrap:wrap}.friends-tabs .tab-btn{min-width:0;flex:1}@media(max-width:480px){.friends-tabs .tab-btn{flex:1 1 calc(50% - 4px)}}@media(max-width:380px){.friend-item{flex-wrap:wrap}.friend-actions{width:100%;justify-content:flex-end}}.friends-list{display:flex;flex-direction:column;gap:8px;padding:0 16px 16px}.friends-empty{text-align:center;color:var(--text-secondary);padding:40px 20px;font-size:.95rem}.friend-item{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px}.friend-avatar{width:38px;height:38px;border-radius:50%;background:var(--btn-primary);color:#fff;font-weight:800;font-size:1rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.friend-name{flex:1;font-weight:600;font-size:.95rem;color:var(--text-primary)}.friend-name-link{cursor:pointer;text-decoration:underline;text-decoration-color:transparent;transition:text-decoration-color .2s}.friend-name-link:hover{text-decoration-color:var(--accent)}.friend-avatar{cursor:pointer}.friend-online-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;margin-left:-6px;margin-top:14px;align-self:flex-start}.friend-online-dot.online{background:#22c55e;box-shadow:0 0 0 2px color-mix(in srgb,#22c55e 25%,transparent)}.friend-online-dot.offline{background:var(--glass-border)}.friend-actions{display:flex;gap:8px}.friend-accept-btn{padding:6px 12px;background:var(--btn-primary);color:var(--toggle-text);border:none;border-radius:8px;font-size:.82rem;font-weight:700;cursor:pointer}.friend-remove-btn{padding:6px 12px;background:transparent;color:var(--error-text);border:1px solid var(--error-text);border-radius:8px;font-size:.82rem;font-weight:600;cursor:pointer;opacity:.7}.friend-remove-btn:hover{opacity:1}.friend-add-btn{padding:6px 12px;background:var(--btn-primary);color:var(--toggle-text);border:none;border-radius:8px;font-size:.82rem;font-weight:700;cursor:pointer;white-space:nowrap}.friend-status-chip{font-size:.78rem;color:var(--text-secondary);font-style:italic;white-space:nowrap}.tab-count{display:inline-flex;align-items:center;justify-content:center;background:var(--btn-primary);color:var(--toggle-text);border-radius:999px;font-size:.7rem;font-weight:800;padding:1px 6px;margin-left:4px}.tab-count--red{background:var(--error-text)}.friends-search{padding:0 16px;display:flex;flex-direction:column;gap:12px}.friends-search-bar{display:flex;gap:8px}.friends-search-input{flex:1;padding:10px 14px;border:1px solid var(--glass-border);border-radius:10px;background:var(--glass-bg);color:var(--text-primary);font-size:.95rem;outline:none}.friends-search-input:focus{border-color:var(--accent)}.friends-search-btn{padding:10px 18px;background:var(--btn-primary);color:var(--toggle-text);border:none;border-radius:10px;font-weight:700;font-size:.9rem;cursor:pointer}.friend-history-btn{padding:5px 11px;background:transparent;border:1.5px solid var(--accent);color:var(--accent);border-radius:8px;font-size:.8rem;font-weight:600;cursor:pointer;margin-left:auto;transition:background .15s}.friend-history-btn:hover{background:var(--accent);color:#fff}.friend-history-btn:disabled{opacity:.5;cursor:default}.match-history-overlay{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.match-history-modal{background:var(--card-bg);border-radius:16px;width:100%;max-width:540px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 32px #0000004d}.match-history-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color)}.match-history-header h3{margin:0;font-size:1rem;font-weight:700}.match-history-close{background:none;border:none;font-size:1.1rem;cursor:pointer;color:var(--text-secondary);padding:4px 8px;border-radius:6px}.match-history-close:hover{background:var(--glass-bg)}.match-history-summary{display:flex;align-items:center;gap:10px;padding:12px 20px;font-size:.9rem;font-weight:600;border-bottom:1px solid var(--border-color)}.mh-wins{color:#4caf50}.mh-losses{color:#e57373}.mh-sep{color:var(--text-secondary)}.match-history-empty{padding:24px;text-align:center;color:var(--text-secondary);font-size:.9rem}.match-history-list{overflow-y:auto;padding:8px 12px 12px;display:flex;flex-direction:column;gap:4px}.mh-row{display:grid;grid-template-columns:60px 1fr 1fr 60px 80px;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;font-size:.82rem}.mh-row-head{font-weight:700;color:var(--text-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.mh-row.mh-win{background:#4caf5014}.mh-row.mh-loss{background:#e5737314}.mh-vs{color:var(--text-secondary);font-size:.75rem}.mh-result{font-weight:700;text-align:right}.mh-result.win{color:#4caf50}.mh-result.loss{color:#e57373}.mh-result.draw{color:var(--text-secondary)}.challenge-page{max-width:960px;margin:0 auto;padding:30px 20px;animation:fadeIn .3s ease-out}.challenge-content{padding:8px 0 32px}.challenge-header{text-align:center;margin-bottom:32px}.challenge-header h1{font-size:2rem;font-weight:700;margin:0 0 8px;font-family:Playfair Display,Georgia,serif}.challenge-header p{color:var(--text-muted, #666);font-size:1rem;margin:0}.challenge-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media(max-width:500px){.challenge-cards{grid-template-columns:1fr}}.challenge-card{background:var(--glass-bg, #fff);border:1px solid var(--border, #e0e0e0);border-radius:16px;padding:28px 20px 20px;text-align:center;cursor:pointer;transition:transform .15s,box-shadow .15s;display:flex;flex-direction:column;align-items:center;gap:10px}.challenge-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #0000001a}.challenge-card-icon{font-size:2.5rem;line-height:1}.challenge-card h2{font-size:1.15rem;font-weight:700;margin:0}.challenge-card p{font-size:.88rem;color:var(--text-muted, #666);margin:0;line-height:1.5}.challenge-chips{display:flex;flex-direction:column;gap:10px;max-width:480px;margin:0 auto}.challenge-chip{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:14px;cursor:pointer;border:1px solid transparent;transition:transform .14s,box-shadow .2s,border-color .2s;background:var(--bg-card)}.challenge-chip:hover{transform:translate(3px)}.challenge-chip:active{transform:scale(.97)}.cchip-icon{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.cchip-icon svg{width:22px;height:22px}.cchip-body{flex:1}.cchip-title{font-size:1rem;font-weight:700;color:var(--text-primary);font-family:Playfair Display,Georgia,serif}.cchip-arr{color:var(--text-secondary);font-size:1.1rem;flex-shrink:0}.challenge-chip--ranked{border-color:#6366f14d}.challenge-chip--ranked .cchip-icon{background:#6366f126;color:#6366f1}.challenge-chip--ranked:hover{border-color:#6366f1a6;box-shadow:0 6px 24px #6366f138,0 0 0 1px #6366f12e}[data-theme=dark] .challenge-chip--ranked{background:#6366f10d}.challenge-chip--ranked .challenge-rating{background:#6366f11a;border-radius:8px;padding:3px 10px}.challenge-chip--ranked .challenge-rating-value{color:#6366f1}.challenge-chip--friend{border-color:#22c55e4d}.challenge-chip--friend .cchip-icon{background:#22c55e26;color:#22c55e}.challenge-chip--friend:hover{border-color:#22c55ea6;box-shadow:0 6px 24px #22c55e38,0 0 0 1px #22c55e2e}[data-theme=dark] .challenge-chip--friend{background:#22c55e0d}.challenge-chip--season{border-color:#f59e0b4d}.challenge-chip--season .cchip-icon{background:#f59e0b26;color:#f59e0b}.challenge-chip--season:hover{border-color:#f59e0ba6;box-shadow:0 6px 24px #f59e0b38,0 0 0 1px #f59e0b2e}[data-theme=dark] .challenge-chip--season{background:#f59e0b0d}.challenge-rating{display:flex;align-items:center;gap:8px;background:var(--primary-light, rgba(108, 99, 255, .1));border-radius:8px;padding:4px 12px;font-size:.88rem}.challenge-rating-label{color:var(--text-muted, #666)}.challenge-rating-value{font-weight:700;color:var(--primary, #6c63ff);font-size:1.1rem}.challenge-rating--big{justify-content:center;font-size:1rem;padding:8px 20px;margin-bottom:8px}.challenge-rating--big strong{font-size:1.4rem;color:var(--primary, #6c63ff);margin-left:4px}.challenge-btn{border:none;border-radius:10px;padding:10px 22px;font-size:.95rem;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s;margin-top:auto}.challenge-btn:disabled{opacity:.4;cursor:not-allowed}.challenge-btn--ranked{background:var(--btn-primary, #6c63ff);color:#fff}.challenge-btn--friend{background:var(--btn-success, #22c55e);color:#fff}.challenge-btn--cancel{background:var(--btn-danger, #ef4444);color:#fff}.challenge-btn--large{padding:14px 40px;font-size:1.1rem;border-radius:14px}.challenge-btn:active{transform:scale(.97)}.challenge-start-area{display:flex;justify-content:center;margin-top:32px}.challenge-searching{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:32px;text-align:center}.challenge-searching h2{font-size:1.4rem;font-weight:700;margin:0}.challenge-searching p{color:var(--text-muted, #666);margin:0;font-size:.95rem}.challenge-queue-size{font-size:.85rem;color:var(--primary, #6c63ff);font-weight:600}.challenge-spinner{width:56px;height:56px;border:5px solid var(--border, #e0e0e0);border-top-color:var(--primary, #6c63ff);border-radius:50%;animation:challengeSpin .9s linear infinite}@keyframes challengeSpin{to{transform:rotate(360deg)}}.challenge-countdown-ring{width:80px;height:80px;border:5px solid var(--primary, #6c63ff);border-radius:50%;display:flex;align-items:center;justify-content:center;animation:countdownPulse 1s ease-in-out infinite}.challenge-countdown-num{font-size:2rem;font-weight:800;color:var(--primary, #6c63ff)}@keyframes countdownPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.08);opacity:.85}}.challenge-opponent-card{display:flex;align-items:center;gap:12px;background:var(--glass-bg, #f8f9fa);border:1px solid var(--border, #e0e0e0);border-radius:12px;padding:12px 20px;margin:8px 0}.challenge-opponent-avatar{width:40px;height:40px;border-radius:50%;background:var(--primary, #6c63ff);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem}.challenge-opponent-name{font-weight:600;font-size:1rem;flex:1}.challenge-opponent-rating{font-size:.85rem;color:var(--primary, #6c63ff);font-weight:700}.challenge-countdown-desc{color:var(--text-muted, #666);font-size:.9rem}.challenge-login-msg,.challenge-loading,.challenge-no-friends{text-align:center;color:var(--text-muted, #666);margin-top:32px;font-size:1rem}.challenge-friend-list{display:flex;flex-direction:column;gap:10px}.challenge-select-label{font-size:.9rem;color:var(--text-muted, #666);margin:0 0 4px}.challenge-friend-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--glass-bg, #fff);border:2px solid var(--border, #e0e0e0);border-radius:12px;cursor:pointer;transition:border-color .15s,background .15s}.challenge-friend-item.selected{border-color:var(--primary, #6c63ff);background:var(--primary-light, rgba(108, 99, 255, .07))}.challenge-friend-avatar{width:38px;height:38px;border-radius:50%;background:var(--primary, #6c63ff);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;flex-shrink:0}.challenge-friend-name{font-weight:600;font-size:1rem;flex:1}.challenge-friend-rating{font-size:.8rem;color:var(--primary, #6c63ff);font-weight:600}.challenge-friend-check{color:var(--primary, #6c63ff);font-weight:700;font-size:1.2rem}.challenge-friend-list>.challenge-btn{align-self:stretch;margin-top:8px;padding:12px;font-size:1rem}.challenge-card--season{border-color:#7c5cbf;background:linear-gradient(135deg,#7c5cbf14,#7c5cbf08)}.challenge-btn--season{background:#7c5cbf;color:#fff}.season-end-info{font-size:.85rem;color:var(--text-secondary);margin:4px 0 0}.season-my-stats{display:flex;gap:20px;padding:12px 20px;background:var(--glass-bg);border-radius:10px;margin:0 0 16px;font-size:.9rem;flex-wrap:wrap}.season-my-stats strong{color:var(--accent)}.season-empty{text-align:center;padding:40px 20px;color:var(--text-secondary)}.season-lb-table{display:flex;flex-direction:column;gap:4px}.season-lb-row{display:grid;grid-template-columns:48px 1fr 80px 60px;align-items:center;padding:10px 14px;border-radius:10px;font-size:.9rem;gap:8px}.season-lb-head{font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);padding-bottom:4px}.season-lb-row.is-me{background:rgba(var(--accent-rgb, 94,106,210),.12);border:1.5px solid var(--accent)}.season-lb-rank{font-size:1rem}.season-lb-nick{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.season-lb-rating{font-weight:700;color:var(--accent);text-align:right}.season-lb-wl{color:var(--text-secondary);text-align:right}.premium-page{max-width:960px;margin:0 auto;padding:24px 16px 80px;color:var(--text)}.premium-hero{position:relative;text-align:center;padding:36px 24px 32px;border-radius:24px;background:linear-gradient(135deg,#f59e0b,#d97706 60%,#b45309);color:#fff;box-shadow:0 18px 40px #d9770647;overflow:hidden}.premium-hero:before{content:"";position:absolute;inset:-40% -10% auto auto;width:380px;height:380px;background:radial-gradient(circle,rgba(255,255,255,.35) 0%,transparent 70%);pointer-events:none}.premium-hero-badge{display:inline-block;padding:4px 14px;border-radius:999px;background:#00000040;color:#fff;font-size:12px;font-weight:800;letter-spacing:1.5px;margin-bottom:12px}.premium-hero h1{font-size:36px;margin:0 0 8px;font-weight:800;letter-spacing:-.5px}.premium-hero-tag{margin:0;font-size:16px;opacity:.95;max-width:540px;margin-inline:auto}.premium-active-pill{display:inline-flex;align-items:center;gap:4px;margin-top:16px;padding:8px 16px;border-radius:999px;background:#ffffffeb;color:#b45309;font-weight:700;font-size:13px}.premium-active-expires{font-weight:500;opacity:.85}.premium-features{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-top:28px}.premium-feature-card{display:flex;gap:14px;align-items:flex-start;padding:16px;border-radius:16px;background:var(--bg-secondary, #fff);border:1px solid var(--border, #e5e7eb)}.premium-feature-icon{font-size:28px;flex-shrink:0}.premium-feature-card h3{margin:0 0 4px;font-size:15px;font-weight:700}.premium-feature-card p{margin:0;font-size:13px;color:var(--text-muted, #6b7280);line-height:1.45}.premium-tiers{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-top:32px}.premium-tier{position:relative;padding:24px 20px;border-radius:20px;background:var(--bg-secondary, #fff);border:2px solid var(--border, #e5e7eb);text-align:center;transition:transform .2s,border-color .2s}.premium-tier:hover{transform:translateY(-2px);border-color:#f59e0b}.premium-tier h3{margin:0 0 8px;font-size:18px;font-weight:700}.premium-tier-price{font-size:28px;font-weight:800;color:#d97706;margin-bottom:16px}.premium-tier--featured{border-color:#f59e0b;background:linear-gradient(180deg,rgba(245,158,11,.08) 0%,transparent 70%),var(--bg-secondary, #fff)}.premium-tier-badge{position:absolute;top:-12px;right:16px;padding:4px 12px;border-radius:999px;background:#f59e0b;color:#fff;font-size:11px;font-weight:800;letter-spacing:.5px}.premium-buy-btn{width:100%;padding:12px 16px;border-radius:12px;border:2px solid #d97706;background:transparent;color:#d97706;font-weight:700;font-size:15px;cursor:pointer;transition:background .2s,color .2s}.premium-buy-btn:hover:not(:disabled){background:#d97706;color:#fff}.premium-buy-btn--gold{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border-color:transparent}.premium-buy-btn--gold:hover:not(:disabled){filter:brightness(1.05)}.premium-buy-btn:disabled{opacity:.55;cursor:not-allowed}.premium-actions{margin-top:24px;text-align:center}.premium-link{background:none;border:none;color:var(--primary, #2563eb);cursor:pointer;font-size:14px;text-decoration:underline;padding:8px 12px}@media(prefers-color-scheme:dark){.premium-feature-card,.premium-tier{background:var(--bg-secondary, #1f2937)}}.wallet-page{min-height:100vh;background:var(--bg);color:var(--text)}.wallet-container{max-width:960px;margin:0 auto;padding:16px 16px 64px}.wallet-empty{text-align:center;padding:64px 24px}.wallet-empty .primary-btn{background:var(--primary);color:#fff;border:none;border-radius:12px;padding:12px 24px;margin-top:16px;cursor:pointer;font-weight:600}.wallet-hero{background:linear-gradient(135deg,#f59e0b,#fbbf24,#fcd34d);border-radius:20px;padding:32px 24px;text-align:center;color:#1a1a1a;margin-bottom:24px;box-shadow:0 8px 24px #f59e0b4d}.wallet-coin-icon{font-size:48px;margin-bottom:8px}.wallet-balance-label{font-size:14px;text-transform:uppercase;letter-spacing:1.5px;opacity:.85;font-weight:600}.wallet-balance-value{font-size:56px;font-weight:800;line-height:1;margin:8px 0 16px}.wallet-stats-row{display:flex;gap:24px;justify-content:center;flex-wrap:wrap;border-top:1px solid rgba(0,0,0,.15);padding-top:16px}.wallet-stats-row>div{display:flex;flex-direction:column;gap:4px}.wallet-stat-label{font-size:12px;text-transform:uppercase;opacity:.7;font-weight:600}.wallet-stat-value{font-size:18px;font-weight:700}.wallet-section{margin-bottom:32px}.wallet-section h2{margin:0 0 4px;font-size:20px;font-weight:700}.wallet-section-desc{color:var(--text-muted, #999);margin:0 0 16px;font-size:14px}.wallet-packs{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.wallet-pack{background:var(--card-bg, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;padding:20px 16px;text-align:center;transition:transform .15s,box-shadow .15s}.wallet-pack:hover{transform:translateY(-2px);box-shadow:0 4px 16px #f59e0b26;border-color:#f59e0b}.pack-icon{font-size:32px;margin-bottom:4px}.pack-coins{font-size:20px;font-weight:800;color:#f59e0b;margin-bottom:4px}.pack-bonus{font-size:14px;color:#16a34a;margin-left:4px}.pack-bonus-label{background:linear-gradient(90deg,#16a34a,#22c55e);color:#fff;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;display:inline-block;margin-bottom:8px}.pack-price{font-size:18px;font-weight:700;margin:4px 0 12px}.pack-buy-btn{background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#fff;border:none;border-radius:8px;padding:8px 20px;cursor:pointer;font-weight:600;width:100%;transition:filter .15s}.pack-buy-btn:hover{filter:brightness(1.05)}.wallet-empty-tx{text-align:center;color:var(--text-muted, #999);padding:24px}.wallet-tx-list{list-style:none;margin:0;padding:0;background:var(--card-bg, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;overflow:hidden}.wallet-tx-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border, #e5e7eb)}.wallet-tx-item:last-child{border-bottom:none}.tx-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px}.wallet-tx-item.earn .tx-icon{background:#22c55e26;color:#16a34a}.wallet-tx-item.spend .tx-icon{background:#ef444426;color:#dc2626}.tx-content{flex:1;min-width:0}.tx-reason{font-weight:600;font-size:14px}.tx-date{font-size:12px;color:var(--text-muted, #999)}.tx-amount{font-weight:700;font-size:16px}.tx-amount.earn{color:#16a34a}.tx-amount.spend{color:#dc2626}@media(max-width:600px){.wallet-balance-value{font-size:44px}.wallet-packs{grid-template-columns:repeat(2,1fr)}}.tournaments-page{min-height:100vh;background:var(--bg);color:var(--text)}.tournaments-container{max-width:960px;margin:0 auto;padding:24px 16px 64px}.tournaments-hero{background:linear-gradient(135deg,#f59e0b,#fbbf24,#fcd34d);border-radius:20px;padding:32px 24px;text-align:center;color:#1a1a1a;margin-bottom:24px;box-shadow:0 10px 30px #f59e0b40}.tournaments-hero-icon{font-size:48px;line-height:1;margin-bottom:8px}.tournaments-hero h1{margin:0 0 6px;font-size:28px;font-weight:800}.tournaments-hero p{margin:0;opacity:.85;font-size:15px}.tournaments-loading,.tournaments-empty{text-align:center;padding:48px 16px;color:var(--text-muted, #888)}.tournaments-empty-icon{font-size:48px;margin-bottom:12px}.tournaments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.tournament-card{position:relative;background:var(--surface, #fff);border:1px solid var(--border, #e5e5e5);border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:12px;transition:transform .2s,box-shadow .2s}.tournament-card:hover{transform:translateY(-2px);box-shadow:0 6px 18px #00000014}.tournament-card.status-running{border-color:#16a34a}.tournament-card.status-completed{opacity:.85}.tn-card-head{display:flex;justify-content:space-between;align-items:center}.tn-type{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--text-muted, #888)}.tn-status{font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;background:#0000000f}.tn-status.badge-running{background:#16a34a26;color:#16a34a}.tn-status.badge-registration{background:#f59e0b26;color:#d97706}.tn-status.badge-completed{background:#64748b26;color:#64748b}.tn-status.badge-upcoming{background:#6366f126;color:#6366f1}.tn-name{margin:0;font-size:18px;font-weight:700}.tn-desc{margin:0;color:var(--text-muted, #666);font-size:13px}.tn-meta{display:flex;flex-direction:column;gap:6px;background:#f59e0b0f;padding:12px;border-radius:10px;border:1px solid rgba(245,158,11,.18)}.tn-meta-row{display:flex;justify-content:space-between;align-items:center;font-size:13px}.tn-meta-row span{color:var(--text-muted, #666)}.tn-meta-row strong{color:var(--text)}.tn-prize{color:#f59e0b!important;font-size:15px}.tn-countdown-row strong.tn-countdown{font-family:ui-monospace,monospace;font-weight:700;color:#d97706}.tn-actions{display:flex;gap:8px;flex-wrap:wrap}.tn-actions .btn-primary{flex:1;background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#1a1a1a;border:none;border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer;font-size:14px}.tn-actions .btn-primary:disabled{opacity:.5;cursor:not-allowed}.tn-actions .btn-secondary{flex:1;background:var(--surface-alt, #f1f5f9);color:var(--text);border:1px solid var(--border, #e5e5e5);border-radius:10px;padding:10px 14px;font-weight:600;cursor:pointer;font-size:14px}.tn-actions .btn-secondary:disabled{opacity:.5;cursor:not-allowed}.tn-actions .btn-claim{flex:1;background:linear-gradient(135deg,#16a34a,#22c55e);color:#fff;border:none;border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer;font-size:14px}.tn-actions .btn-link{background:transparent;border:none;color:#6366f1;cursor:pointer;font-size:13px;padding:6px 8px;text-decoration:underline}.tn-premium-badge{position:absolute;top:12px;right:12px;background:linear-gradient(135deg,#facc15,#f59e0b);color:#1a1a1a;padding:3px 8px;font-size:10px;font-weight:800;border-radius:999px;letter-spacing:1px}.tn-modal-overlay{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:16px;z-index:100}.tn-modal{background:var(--surface, #fff);color:var(--text);border-radius:16px;padding:20px;max-width:600px;width:100%;max-height:80vh;overflow-y:auto}.tn-modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.tn-modal-head h3{margin:0;font-size:18px}.tn-modal-close{background:transparent;border:none;font-size:24px;cursor:pointer;color:var(--text-muted)}.tn-modal-empty{text-align:center;color:var(--text-muted);padding:24px}.tn-board{width:100%;border-collapse:collapse;font-size:14px}.tn-board th,.tn-board td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border, #e5e5e5)}.tn-board th{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px}.tn-board tr.top-1 td{background:#facc152e;font-weight:700}.tn-board tr.top-2 td{background:#94a3b82e;font-weight:600}.tn-board tr.top-3 td{background:#d9770624;font-weight:600}.bp-page{min-height:100vh;background:var(--bg, #f5f6fa);color:var(--text, #1a1a1a)}.bp-loading,.bp-error{padding:48px 16px;text-align:center;color:var(--text-muted, #6b7280)}.bp-hero{background:linear-gradient(135deg,#f59e0b,#ef4444,#8b5cf6);color:#fff;padding:32px 16px 28px;position:relative}.bp-hero-inner{max-width:960px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px}.bp-hero-pill{display:inline-block;background:#fff3;border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:4px 12px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px}.bp-hero-title{font-size:30px;font-weight:800;margin:0 0 6px;text-shadow:0 2px 8px rgba(0,0,0,.2)}.bp-hero-sub{font-size:14px;opacity:.92;margin:0}.bp-hero-right{display:flex;align-items:center;gap:16px;min-width:280px}.bp-tier-circle{width:92px;height:92px;border-radius:50%;background:#ffffff2e;border:3px solid rgba(255,255,255,.4);display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0}.bp-tier-label{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;opacity:.85}.bp-tier-num{font-size:32px;font-weight:800;line-height:1}.bp-tier-max{font-size:11px;opacity:.8}.bp-xp-bar-wrap{flex:1;min-width:160px}.bp-xp-bar-bg{height:10px;background:#fff3;border-radius:999px;overflow:hidden;margin-bottom:6px}.bp-xp-bar-fill{height:100%;background:linear-gradient(90deg,#fde047,#fb923c);transition:width .5s ease}.bp-xp-text{font-size:12px;font-weight:600;opacity:.9}.bp-buy-btn{display:block;margin:18px auto 0;background:#fff;color:#b45309;border:none;padding:12px 28px;border-radius:12px;font-weight:800;font-size:15px;cursor:pointer;box-shadow:0 6px 20px #0000002e;transition:transform .18s,box-shadow .18s}.bp-buy-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 28px #0000003d}.bp-buy-btn:disabled{opacity:.7;cursor:not-allowed}.bp-buy-btn-sub{background:linear-gradient(135deg,#6d28d9,#4f46e5);color:#fff;margin-top:10px}.bp-buy-btn-sub:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 28px #6d28d966}.bp-sub-badge{display:inline-block;margin-left:8px;font-size:12px;font-weight:600;background:#ffffff38;border-radius:999px;padding:2px 8px}.bp-premium-active{display:block;margin:16px auto 0;text-align:center;background:#ffffff2e;color:#fff;padding:8px 20px;border-radius:999px;font-weight:700;font-size:14px;width:fit-content}.bp-tiers-wrap{max-width:960px;margin:0 auto;padding:24px 16px 80px}.bp-tiers-header{display:grid;grid-template-columns:50px 1fr 1fr;gap:8px;margin-bottom:12px;padding:0 4px}.bp-track-label{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-align:center;padding:6px 8px;border-radius:8px}.bp-track-label--free{background:#6366f11f;color:#4f46e5;grid-column:2}.bp-track-label--premium{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;grid-column:3}.bp-tiers-list{display:flex;flex-direction:column;gap:8px}.bp-row{display:grid;grid-template-columns:50px 1fr 1fr;gap:8px;align-items:stretch;background:var(--card-bg, #fff);border:1px solid var(--border, #e5e7eb);border-radius:12px;padding:6px;transition:background .2s}.bp-row--reached{background:linear-gradient(90deg,#f59e0b0f,#8b5cf60f)}.bp-tier-num-cell{display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:800;color:var(--text-muted, #6b7280)}.bp-row--reached .bp-tier-num-cell{color:#f59e0b}.bp-cell{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:var(--card-bg, #f9fafb);border:1px solid var(--border, #e5e7eb);position:relative;min-height:56px}.bp-cell--free{border-left:3px solid #6366f1}.bp-cell--premium{border-left:3px solid #f59e0b;background:linear-gradient(90deg,rgba(245,158,11,.06),transparent)}.bp-cell--ready{border-color:#10b981;box-shadow:0 0 0 2px #10b98126}.bp-cell--claimed{opacity:.65}.bp-cell--locked{opacity:.55}.bp-cell--empty{justify-content:center;color:var(--text-muted, #9ca3af);font-weight:600}.bp-cell-icon{font-size:22px;flex-shrink:0}.bp-cell-label{flex:1;font-weight:600;font-size:14px}.bp-cell-status{font-size:18px;font-weight:800;color:#10b981}.bp-cell-status--lock{color:var(--text-muted, #9ca3af)}.bp-cell-claim{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;padding:6px 14px;border-radius:8px;font-weight:700;font-size:13px;cursor:pointer;transition:transform .15s}.bp-cell-claim:hover:not(:disabled){transform:scale(1.05)}.bp-cell-claim:disabled{opacity:.7;cursor:not-allowed}.bp-toast{position:fixed;bottom:32px;left:50%;transform:translate(-50%);background:#111827f0;color:#fff;padding:12px 20px;border-radius:10px;font-weight:600;z-index:1000;box-shadow:0 8px 24px #0000004d}:global([data-theme=dark]) .bp-page,[data-theme=dark] .bp-page{background:#0f1419;color:#e5e7eb}[data-theme=dark] .bp-row{background:#1a1f2e;border-color:#2d3548}[data-theme=dark] .bp-cell{background:#1f2433;border-color:#2d3548}[data-theme=dark] .bp-cell--premium{background:linear-gradient(90deg,rgba(245,158,11,.1),transparent)}[data-theme=dark] .bp-track-label--free{background:#6366f133;color:#a5b4fc}@media(max-width:600px){.bp-hero-title{font-size:24px}.bp-tier-circle{width:76px;height:76px}.bp-tier-num{font-size:26px}.bp-tiers-header,.bp-row{grid-template-columns:36px 1fr 1fr}.bp-cell{padding:8px;min-height:48px}.bp-cell-label{font-size:12px}.bp-cell-icon{font-size:18px}}.ref-root{min-height:100vh;padding:8px 16px 60px;background:var(--bg, #f8fafc);color:var(--text, #0f172a)}.ref-container{max-width:720px;margin:0 auto}.ref-hero{margin:8px 0 16px;padding:28px 24px;border-radius:18px;text-align:center;background:linear-gradient(135deg,#10b981,#06b6d4 60%,#6366f1);color:#fff;box-shadow:0 8px 30px #10b98140}.ref-hero-title{margin:0 0 6px;font-size:28px;font-weight:800}.ref-hero-sub{margin:0;opacity:.92;font-size:14px}.ref-code-card{margin:0 0 16px;padding:24px;border-radius:16px;background:var(--card-bg, #ffffff);border:1px solid var(--border, #e2e8f0);text-align:center;box-shadow:0 2px 12px #0000000a}.ref-code-label{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted, #64748b);margin-bottom:10px}.ref-code-value{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:36px;font-weight:800;letter-spacing:.18em;color:#10b981;padding:14px 0;border-top:1px dashed var(--border, #e2e8f0);border-bottom:1px dashed var(--border, #e2e8f0);margin-bottom:16px}.ref-code-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.ref-btn{border:none;cursor:pointer;padding:11px 20px;border-radius:10px;font-size:14px;font-weight:700;transition:transform .1s,opacity .15s}.ref-btn:hover{opacity:.9}.ref-btn:active{transform:scale(.97)}.ref-btn:disabled{opacity:.5;cursor:not-allowed}.ref-btn--primary{background:linear-gradient(90deg,#10b981,#06b6d4);color:#fff}.ref-btn--ghost{background:var(--card-bg, #fff);border:1px solid var(--border, #e2e8f0);color:var(--text, #0f172a)}.ref-stats{margin:0 0 16px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.ref-stat{background:var(--card-bg, #fff);border:1px solid var(--border, #e2e8f0);border-radius:12px;padding:16px 8px;text-align:center}.ref-stat-num{font-size:22px;font-weight:800;color:#10b981}.ref-stat-lbl{font-size:12px;color:var(--text-muted, #64748b);margin-top:4px}.ref-section{margin:0 0 16px;padding:20px;border-radius:14px;background:var(--card-bg, #fff);border:1px solid var(--border, #e2e8f0)}.ref-section h2{margin:0 0 12px;font-size:17px;font-weight:700}.ref-steps{margin:0;padding-left:20px;line-height:1.7;font-size:14px}.ref-steps li{margin-bottom:4px}.ref-redeem-card{border:2px solid #10b981;background:linear-gradient(180deg,rgba(16,185,129,.06),transparent)}.ref-redeem-desc{font-size:14px;color:var(--text-muted, #64748b);margin:0 0 12px}.ref-redeem-row{display:flex;gap:8px}.ref-input{flex:1;padding:12px 14px;border-radius:10px;border:1px solid var(--border, #e2e8f0);background:var(--bg, #fff);color:var(--text, #0f172a);font-family:ui-monospace,monospace;letter-spacing:.12em;font-size:16px;text-transform:uppercase}.ref-error{margin-top:10px;color:#ef4444;font-size:13px}.ref-info-pill{margin:0 0 16px;padding:12px 16px;border-radius:10px;background:#10b98114;color:#047857;font-size:14px;text-align:center}.ref-list{display:flex;flex-direction:column;gap:8px}.ref-list-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:var(--bg-soft, #f1f5f9)}.ref-list-name{flex:1;font-weight:600}.ref-list-status{font-size:12px;padding:4px 10px;border-radius:999px;font-weight:700}.ref-list-status--pending{background:#f59e0b26;color:#b45309}.ref-list-status--active{background:#10b98126;color:#047857}.ref-list-status--expired{background:#64748b26;color:#475569}.ref-list-coins{font-weight:700;color:#d97706;min-width:70px;text-align:right}.ref-empty-list{padding:14px;text-align:center;color:var(--text-muted, #64748b);font-size:14px}.ref-empty{text-align:center;padding:60px 20px}.ref-loading{text-align:center;padding:30px;font-size:28px;color:var(--text-muted, #64748b)}.ref-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);padding:12px 20px;border-radius:999px;background:#0f172a;color:#fff;font-size:14px;font-weight:600;box-shadow:0 8px 24px #0003;z-index:1000}[data-theme=dark] .ref-code-card,[data-theme=dark] .ref-stat,[data-theme=dark] .ref-section{background:#1e293b;border-color:#334155}[data-theme=dark] .ref-input{background:#0f172a;border-color:#334155;color:#e2e8f0}[data-theme=dark] .ref-list-item{background:#0f172a}[data-theme=dark] .ref-info-pill{background:#10b9811f;color:#34d399}@media(max-width:480px){.ref-hero-title{font-size:22px}.ref-code-value{font-size:28px;letter-spacing:.14em}.ref-stats{grid-template-columns:repeat(3,1fr)}.ref-stat-num{font-size:18px}}.tn-play-container{max-width:540px;margin:0 auto;padding:24px 12px 64px;display:flex;flex-direction:column;gap:16px}.tn-play-header{background:var(--surface, #fff);border:1px solid var(--border, #e5e5e5);border-radius:14px;padding:12px 16px;display:flex;justify-content:space-between;align-items:center}.tn-play-label{font-size:11px;text-transform:uppercase;letter-spacing:1.2px;color:var(--text-muted)}.tn-play-name{font-size:18px;font-weight:700}.tn-play-stats{display:flex;gap:16px}.tn-stat{text-align:right}.tn-stat-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px}.tn-stat-value{font-family:ui-monospace,monospace;font-size:18px;font-weight:700}.tn-stat-value.mistakes{color:#dc2626}.tn-board-wrap,.tn-play-numpad,.tn-play-actions{display:flex;justify-content:center}.tn-play-actions .btn-secondary{background:var(--surface-alt, #f1f5f9);border:1px solid var(--border);color:var(--text);padding:10px 16px;border-radius:10px;cursor:pointer}.tn-play-finish{background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#1a1a1a;border-radius:18px;padding:32px 20px;text-align:center}.tn-finish-icon{font-size:48px;margin-bottom:8px}.tn-finish-score{font-size:32px;font-weight:800;margin:12px 0 4px}.tn-finish-meta{font-size:14px;opacity:.85;margin-bottom:16px}.tn-play-finish .btn-primary{background:#1a1a1a;color:#fbbf24;border:none;border-radius:10px;padding:10px 20px;font-weight:700;cursor:pointer}.privacy-page{min-height:100vh;background:var(--bg);color:var(--text-primary)}.privacy-inner{max-width:960px;margin:0 auto;padding:clamp(20px,4vw,48px) 20px 0}.privacy-content{max-width:720px;margin:2rem auto 4rem;padding:0 1rem;line-height:1.7}.privacy-content h1{font-family:Playfair Display,serif;font-size:2rem;margin:0 0 .5rem;color:var(--text-primary)}.privacy-meta{color:var(--text-secondary);font-size:.9rem;margin:0 0 2rem}.privacy-content section{margin-bottom:1.75rem}.privacy-content h2{font-size:1.2rem;font-weight:600;margin:0 0 .6rem;color:var(--text-primary);border-bottom:1px solid var(--border-light);padding-bottom:.3rem}.privacy-content p{margin:.5rem 0;color:var(--text-primary)}.privacy-content ul{margin:.5rem 0 .5rem 1.25rem;padding:0;color:var(--text-primary)}.privacy-content li{margin-bottom:.4rem}.privacy-content a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}@media(max-width:480px){.privacy-content h1{font-size:1.6rem}.privacy-content h2{font-size:1.1rem}}.hub-page{max-width:720px;margin:0 auto;padding:clamp(20px,4vw,48px) 20px;min-height:100vh;min-height:100dvh;animation:fadeIn .4s ease-out}.hub-subtitle{margin:-10px 4px 18px;color:var(--text-secondary, #64748b);font-size:.95rem}.hub-grid{display:grid;grid-template-columns:1fr;gap:12px}@media(min-width:600px){.hub-grid{grid-template-columns:1fr 1fr;gap:14px}}.hub-tile{display:flex;align-items:center;gap:14px;text-align:left;width:100%;padding:18px;border-radius:18px;border:1.5px solid var(--border, rgba(15, 23, 42, .1));background:var(--bg-card, #ffffff);color:var(--text-primary, #0f172a);cursor:pointer;transition:transform .15s ease,border-color .18s ease,box-shadow .2s ease;position:relative;overflow:hidden;--accent: #6366f1}.hub-tile:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 14%,transparent) 0%,transparent 60%);pointer-events:none;opacity:0;transition:opacity .18s ease}.hub-tile:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 55%,transparent);box-shadow:0 10px 28px color-mix(in srgb,var(--accent) 18%,transparent)}.hub-tile:hover:after{opacity:1}.hub-tile-icon{position:relative;z-index:1;width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);flex-shrink:0}.hub-tile-icon svg{width:26px;height:26px}.hub-tile-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;position:relative;z-index:1}.hub-tile-title{font-weight:700;font-size:1.05rem}.hub-tile-desc{font-size:.85rem;color:var(--text-secondary, #64748b);line-height:1.35}.hub-tile-arr{position:relative;z-index:1;font-size:1.2rem;color:var(--text-secondary, #64748b);transition:transform .18s ease,color .18s ease;flex-shrink:0}.hub-tile:hover .hub-tile-arr{transform:translate(3px);color:var(--accent)}.ocr-admin-login{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:1rem;background:var(--bg, #111);color:var(--text, #eee)}.ocr-admin-login h1{font-size:1.8rem}.ocr-admin-login form{display:flex;gap:.5rem}.ocr-admin-login input{padding:.5rem 1rem;border-radius:8px;border:1px solid #444;background:#222;color:#fff;font-size:1rem;width:260px}.ocr-admin-login button{padding:.5rem 1.2rem;background:#3b82f6;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:1rem}.ocr-admin{max-width:1200px;margin:0 auto;padding:1.5rem;color:var(--text, #eee);background:var(--bg, #111);min-height:100vh}.ocr-admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.ocr-admin-header h1{font-size:1.6rem}.btn-logout{padding:.4rem 1rem;background:transparent;border:1px solid #555;border-radius:6px;color:#aaa;cursor:pointer}.ocr-finetune-panel{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;background:#1a1a2e;border:1px solid #334;border-radius:12px;padding:1rem 1.5rem;margin-bottom:1.5rem}.ft-info{display:flex;flex-direction:column;gap:.3rem;flex:1;font-size:.9rem}.ft-ok{color:#4ade80}.ft-fail{color:#f87171}.ft-warn{color:#facc15;font-size:.8rem}.btn-finetune{padding:.6rem 1.4rem;background:linear-gradient(135deg,#7c3aed,#4f46e5);color:#fff;border:none;border-radius:10px;cursor:pointer;font-weight:600;font-size:.95rem;white-space:nowrap}.btn-finetune:disabled{opacity:.45;cursor:not-allowed}.ocr-tabs{display:flex;gap:.5rem;margin-bottom:1rem;align-items:center}.ocr-tab{padding:.4rem 1rem;border-radius:8px;border:1px solid #444;background:transparent;color:#aaa;cursor:pointer;font-size:.9rem;transition:background .15s}.ocr-tab.active{background:#3b82f6;border-color:#3b82f6;color:#fff}.btn-refresh{margin-left:auto;background:transparent;border:1px solid #444;border-radius:8px;color:#aaa;cursor:pointer;padding:.35rem .7rem;font-size:.9rem}.ocr-error{color:#f87171}.ocr-loading{color:#94a3b8}.ocr-empty{color:#64748b;text-align:center;margin-top:3rem;font-size:1rem}.ocr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.ocr-card{background:#1e1e2e;border:1px solid #333;border-radius:12px;padding:1rem;display:flex;flex-direction:column;gap:.6rem;transition:border-color .15s}.ocr-card.changed{border-color:#f59e0b}.ocr-img-wrap{display:flex;align-items:center;justify-content:center;background:#0d0d0d;border-radius:8px;padding:.5rem;min-height:80px}.ocr-img-wrap img{width:56px;height:56px;image-rendering:pixelated;filter:invert(1);border-radius:4px}.no-img{color:#555;font-size:.75rem}.ocr-meta{display:flex;flex-direction:column;gap:.25rem;font-size:.82rem;color:#94a3b8}.pos{font-size:.78rem;color:#64748b}.ocr-pred strong,.user-val strong{color:#e2e8f0}.user-val.diff strong{color:#fbbf24}.label-info{color:#4ade80}.ocr-actions{display:flex;flex-direction:column;gap:.4rem;margin-top:.2rem}.label-input{padding:.35rem .6rem;border-radius:6px;border:1px solid #444;background:#111;color:#fff;font-size:.9rem;width:100%;box-sizing:border-box}.btn-approve,.btn-reject{border:none;border-radius:6px;padding:.35rem .7rem;font-size:.85rem;cursor:pointer;font-weight:600}.btn-approve{background:#16a34a;color:#fff}.btn-reject{background:#dc2626;color:#fff}.ocr-toast{position:fixed;bottom:1.5rem;right:1.5rem;background:#1e293b;border:1px solid #3b82f6;color:#e2e8f0;padding:.7rem 1.2rem;border-radius:10px;z-index:9999;font-size:.9rem;animation:fadeInUp .2s ease}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.admin-main-tabs{display:flex;gap:.5rem}.admin-main-tab{padding:.4rem 1.2rem;border-radius:8px;border:1px solid #555;background:transparent;color:#aaa;cursor:pointer;font-size:.9rem;font-weight:600;transition:background .15s,color .15s}.admin-main-tab.active{background:#6366f1;border-color:#6366f1;color:#fff}.btn-theme-toggle{background:transparent;border:1px solid #555;border-radius:8px;cursor:pointer;padding:.35rem .6rem;font-size:1rem;line-height:1}.ocr-admin.theme-light{background:#f8fafc;color:#1e293b;min-height:100vh}.ocr-admin.theme-light .ocr-admin-header{background:#fff;border-bottom:1px solid #e2e8f0;padding:.8rem 1.5rem;margin-bottom:1.5rem;border-radius:12px}.ocr-admin.theme-light .admin-main-tab{border-color:#cbd5e1;color:#64748b}.ocr-admin.theme-light .admin-main-tab.active{background:#6366f1;border-color:#6366f1;color:#fff}.ocr-admin.theme-light .btn-logout,.ocr-admin.theme-light .btn-theme-toggle{border-color:#cbd5e1;color:#64748b}.ocr-admin.theme-light .ocr-finetune-panel{background:#fff;border-color:#e2e8f0}.ocr-admin.theme-light .ocr-tabs .ocr-tab{border-color:#cbd5e1;color:#64748b;background:#fff}.ocr-admin.theme-light .ocr-tabs .ocr-tab.active{background:#3b82f6;border-color:#3b82f6;color:#fff}.ocr-admin.theme-light .ocr-card{background:#fff;border-color:#e2e8f0;box-shadow:0 1px 3px #00000014}.ocr-admin.theme-light .ocr-card.changed{border-color:#f59e0b}.ocr-admin.theme-light .ocr-img-wrap{background:#f1f5f9}.ocr-admin.theme-light .ocr-img-wrap img{filter:none}.ocr-admin.theme-light .ocr-meta{color:#475569}.ocr-admin.theme-light .ocr-pred strong,.ocr-admin.theme-light .user-val strong{color:#1e293b}.ocr-admin.theme-light .label-input{background:#f8fafc;border-color:#cbd5e1;color:#1e293b}.ocr-admin.theme-light .activity-panel .activity-controls{background:#fff;border-color:#e2e8f0}.ocr-admin.theme-light .activity-controls label{color:#475569}.ocr-admin.theme-light .activity-controls select{background:#f8fafc;border-color:#cbd5e1;color:#1e293b}.ocr-admin.theme-light .activity-table th{background:#f1f5f9;color:#64748b;border-bottom-color:#e2e8f0}.ocr-admin.theme-light .activity-table td{color:#334155;border-bottom-color:#f1f5f9}.ocr-admin.theme-light .activity-table .row-win{background:#16a34a0d}.ocr-admin.theme-light .activity-table .row-loss{background:#ef444405}.ocr-admin.theme-light .activity-table .row-win:hover,.ocr-admin.theme-light .activity-table .row-loss:hover{background:#f1f5f9}.ocr-admin.theme-light .td-time{color:#94a3b8}.ocr-admin.theme-light .td-nick{color:#1e293b}.ocr-admin.theme-light .day-summary-section h2,.ocr-admin.theme-light .recent-games-section h2{color:#3730a3}.ocr-admin.theme-light .ocr-toast{background:#fff;border-color:#6366f1;color:#1e293b;box-shadow:0 4px 12px #0000001a}.ocr-admin.theme-light .btn-refresh{border-color:#cbd5e1;color:#64748b;background:#fff}.ocr-admin.theme-light .ocr-empty,.ocr-admin.theme-light .ocr-loading{color:#94a3b8}.activity-panel{display:flex;flex-direction:column;gap:1.5rem}.activity-controls{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;background:#1a1a2e;border:1px solid #334;border-radius:12px;padding:.8rem 1.2rem}.activity-controls label{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:#94a3b8}.activity-controls select{background:#111;border:1px solid #444;border-radius:6px;color:#e2e8f0;padding:.3rem .6rem;font-size:.9rem}.day-summary-section h2,.recent-games-section h2{font-size:1.1rem;margin-bottom:.7rem;color:#c7d2fe}.activity-table{width:100%;border-collapse:collapse;font-size:.85rem;color:#cbd5e1}.activity-table th{background:#1e293b;color:#94a3b8;padding:.5rem .8rem;text-align:left;font-weight:600;border-bottom:1px solid #334}.activity-table td{padding:.4rem .8rem;border-bottom:1px solid #1e293b}.activity-table .row-win{background:#22c55e0d}.activity-table .row-loss{background:#ef444408}.activity-table .row-win:hover,.activity-table .row-loss:hover{background:#1e293b}.td-time{color:#64748b;font-size:.78rem;white-space:nowrap}.td-nick{font-weight:600;color:#e2e8f0}.mode-badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;white-space:nowrap}.mode-solo{background:#1e40af;color:#bfdbfe}.mode-multiplayer{background:#7c3aed;color:#ddd6fe}.mode-ranked{background:#b45309;color:#fde68a}.mode-daily{background:#065f46;color:#a7f3d0}.dashboard-panel{display:flex;flex-direction:column;gap:1.5rem}.dash-live-bar{display:flex;align-items:center;gap:.6rem;background:#1a1a2e;border:1px solid #334;border-radius:12px;padding:.75rem 1.2rem;font-size:.9rem;color:#94a3b8}.live-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.live-dot.online{background:#4ade80;box-shadow:0 0 6px #4ade80}.live-dot.offline{background:#64748b}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}@media(max-width:900px){.stat-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.stat-grid{grid-template-columns:1fr}}.stat-card{border-radius:12px;padding:1rem 1.2rem;border:1px solid transparent}.stat-card .stat-label{font-size:.8rem;color:#94a3b8;margin-bottom:.3rem}.stat-card .stat-value{font-size:1.8rem;font-weight:700;line-height:1.1}.stat-card .stat-sub{font-size:.76rem;color:#94a3b8;margin-top:.3rem}.stat-blue{background:#0f172a;border-color:#1e40af}.stat-blue .stat-value{color:#60a5fa}.stat-green{background:#052e16;border-color:#166534}.stat-green .stat-value{color:#4ade80}.stat-amber{background:#1c1100;border-color:#92400e}.stat-amber .stat-value{color:#fbbf24}.stat-purple{background:#1a0533;border-color:#6b21a8}.stat-purple .stat-value{color:#c084fc}.stat-coin{background:#1c1500;border-color:#78350f}.stat-coin .stat-value{color:#f59e0b}.stat-anon{background:#0f1520;border-color:#1e3a5f}.stat-anon .stat-value{color:#7dd3fc}.dash-section{background:#1a1a2e;border:1px solid #334;border-radius:12px;padding:1rem 1.2rem}.dash-section h2{font-size:1rem;color:#c7d2fe;margin-bottom:.8rem}.mode-breakdown{display:flex;gap:1.5rem;flex-wrap:wrap;align-items:center}.mode-bar-item{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.dash-bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:760px){.dash-bottom-grid{grid-template-columns:1fr}}.recent-list{display:flex;flex-direction:column;gap:.6rem}.recent-row{display:flex;flex-direction:column;gap:.1rem;padding:.5rem 0;border-bottom:1px solid #1e293b}.recent-nick{font-weight:600;color:#e2e8f0;display:flex;gap:.5rem;align-items:center}.recent-email{font-size:.8rem;color:#64748b}.recent-time{font-size:.75rem;color:#475569}.users-panel{display:flex;flex-direction:column;gap:1rem}.users-search{padding:.35rem .8rem;border-radius:8px;border:1px solid #444;background:#111;color:#e2e8f0;font-size:.9rem;width:220px;flex-shrink:0}.users-search::placeholder{color:#475569}.users-table .td-email{font-size:.8rem;color:#94a3b8;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.users-table .row-deleted{opacity:.5}.badge-premium{display:inline-block;padding:.1rem .45rem;border-radius:999px;background:linear-gradient(135deg,#f59e0b,#d97706);color:#1c1400;font-size:.7rem;font-weight:700;white-space:nowrap}.badge-free{display:inline-block;padding:.1rem .45rem;border-radius:999px;background:#1e293b;color:#64748b;font-size:.7rem;font-weight:600}.badge-deleted{display:inline-block;padding:.1rem .45rem;border-radius:999px;background:#450a0a;color:#f87171;font-size:.7rem;font-weight:600}.pagination{display:flex;align-items:center;gap:1rem;justify-content:center;padding:.5rem 0;color:#94a3b8;font-size:.9rem}.pagination button{padding:.35rem .9rem;background:transparent;border:1px solid #444;border-radius:8px;color:#94a3b8;cursor:pointer;font-size:.9rem}.pagination button:disabled{opacity:.35;cursor:not-allowed}.pagination button:not(:disabled):hover{border-color:#6366f1;color:#a5b4fc}.ocr-admin.theme-light .dash-live-bar{background:#fff;border-color:#e2e8f0;color:#475569}.ocr-admin.theme-light .stat-blue{background:#eff6ff;border-color:#bfdbfe}.ocr-admin.theme-light .stat-blue .stat-value{color:#2563eb}.ocr-admin.theme-light .stat-green{background:#f0fdf4;border-color:#bbf7d0}.ocr-admin.theme-light .stat-green .stat-value{color:#16a34a}.ocr-admin.theme-light .stat-amber{background:#fffbeb;border-color:#fde68a}.ocr-admin.theme-light .stat-amber .stat-value{color:#d97706}.ocr-admin.theme-light .stat-purple{background:#faf5ff;border-color:#e9d5ff}.ocr-admin.theme-light .stat-purple .stat-value{color:#9333ea}.ocr-admin.theme-light .stat-coin{background:#fffbeb;border-color:#fcd34d}.ocr-admin.theme-light .stat-coin .stat-value{color:#b45309}.ocr-admin.theme-light .stat-anon{background:#f0f9ff;border-color:#bae6fd}.ocr-admin.theme-light .stat-anon .stat-value{color:#0369a1}.ocr-admin.theme-light .stat-card .stat-label,.ocr-admin.theme-light .stat-card .stat-sub{color:#64748b}.ocr-admin.theme-light .dash-section{background:#fff;border-color:#e2e8f0}.ocr-admin.theme-light .dash-section h2{color:#3730a3}.ocr-admin.theme-light .recent-row{border-bottom-color:#f1f5f9}.ocr-admin.theme-light .recent-nick{color:#1e293b}.ocr-admin.theme-light .recent-email,.ocr-admin.theme-light .recent-time{color:#94a3b8}.ocr-admin.theme-light .users-search{background:#f8fafc;border-color:#cbd5e1;color:#1e293b}.ocr-admin.theme-light .users-table .td-email{color:#64748b}.ocr-admin.theme-light .badge-free{background:#f1f5f9;color:#64748b}.ocr-admin.theme-light .pagination button{border-color:#cbd5e1;color:#64748b;background:#fff}.ocr-admin.theme-light .live-dot.online{box-shadow:0 0 6px #16a34a}.site-footer{border-top:1px solid var(--border-light);background:var(--bg-card);padding:1.25rem 1rem;margin-top:2rem;color:var(--text-secondary);font-size:.9rem}.site-footer-inner{max-width:980px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem}.site-footer-links{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.site-footer-links a{color:var(--text-secondary);text-decoration:none;transition:color .15s}.site-footer-links a:hover{color:var(--accent);text-decoration:underline}.site-footer-sep{color:var(--border-light)}.site-footer-meta{color:var(--text-secondary);font-size:.85rem}@media(max-width:480px){.site-footer-inner{justify-content:center;text-align:center}}
