:root{--surface:#faf9f7;--surface-warm:#f5f3f0;--surface-card:#fff;--ink:#1a1a1a;--ink-light:#525252;--ink-faint:#9a9a9a;--highlight:#e07a5f;--highlight-hover:#c96a52;--highlight-soft:#e07a5f1a;--highlight-glow:#e07a5f40;--success:#059669;--success-soft:#0596691a;--marker-1:#e07a5f;--marker-2:#059669;--marker-3:#6eb5ff;--marker-4:#f59e0b;--marker-5:#8b5cf6;--marker-6:#ec4899;--border:#e8e6e3;--border-strong:#d4d1cc;--error:#dc2626;--font-display:"Plus Jakarta Sans",system-ui,sans-serif;--font-body:"Plus Jakarta Sans",system-ui,sans-serif;--font-grid:"JetBrains Mono","Courier New",monospace;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--color-background:var(--surface);--color-text:var(--ink);--color-text-muted:var(--ink-faint);--color-primary:var(--highlight);--color-secondary:var(--ink);--color-accent:var(--highlight);--surface-raised:var(--surface-warm)}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-body);background:var(--surface);color:var(--ink);-webkit-font-smoothing:antialiased;min-height:100vh;margin:0;font-size:.9375rem;line-height:1.5}#root{flex-direction:column;min-height:100vh;display:flex}.skip-to-content{background:var(--ink);color:var(--surface);padding:var(--space-sm)var(--space-md);border-radius:var(--radius-md);font:500 .875rem/1 var(--font-body);z-index:9999;text-decoration:none;transition:top .2s;position:absolute;top:-40px;left:50%;transform:translate(-50%)}.skip-to-content:focus{top:var(--space-sm);outline:2px solid var(--highlight);outline-offset:2px}.headline{font:700 2rem/1.1 var(--font-display);letter-spacing:-.02em;color:var(--ink);margin:0}.subhead{font:500 1.125rem/1.3 var(--font-body);color:var(--ink);margin:0}.body{font:400 .9375rem/1.5 var(--font-body);color:var(--ink-light)}.label{font:600 .75rem/1 var(--font-body);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint)}button{cursor:pointer;font-family:inherit}.btn{font:600 .875rem/1 var(--font-body);background:var(--surface-card);color:var(--ink);border:2px solid var(--border-strong);border-radius:var(--radius-md);cursor:pointer;padding:.875rem 1.5rem;transition:all .2s}.btn:hover{background:var(--surface);border-color:var(--ink-faint);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-primary{background:var(--highlight);color:#fff;border-color:var(--highlight)}.btn-primary:hover{background:var(--highlight-hover);border-color:var(--highlight-hover);box-shadow:0 4px 12px var(--highlight-glow)}.btn-secondary{background:var(--surface-card);color:var(--ink);border:2px solid var(--border-strong)}.btn-secondary:hover{border-color:var(--ink-faint);background:var(--surface)}.btn-accent{background:var(--ink);color:var(--surface-card);border-color:var(--ink)}.btn-accent:hover{background:var(--ink-light);border-color:var(--ink-light)}.btn-sm{border-radius:var(--radius-sm);padding:.5rem 1rem;font-size:.8125rem}.btn-lg{border-radius:var(--radius-lg);padding:1rem 2rem;font-size:1rem}.btn-ghost{color:var(--ink-light);background:0 0;border:none;font-weight:500}.btn-ghost:hover{color:var(--ink);background:var(--surface)}.btn-block{width:100%}.container{max-width:1200px;padding:0 var(--space-md);width:100%;margin:0 auto}.app-layout{padding:var(--space-sm)var(--space-md);gap:var(--space-md);flex-direction:row;flex:1;width:100%;max-width:1200px;margin:0 auto;display:flex}.game-area{flex-direction:column;flex:1;align-items:flex-start;min-width:0;display:flex}.sidebar{gap:var(--space-sm);flex-direction:column;flex-shrink:0;width:320px;display:flex;overflow:hidden}.game-board-container{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-md);width:100%;max-width:600px;position:relative;box-shadow:0 2px 20px #00000008}.game-grid{background:var(--surface);border-radius:var(--radius-lg);touch-action:none;-webkit-user-select:none;user-select:none;gap:3px;width:100%;padding:4px;display:grid;container-type:inline-size}.grid-cell{aspect-ratio:1;font:600 clamp(.65rem,4cqi,1.35rem)/1 var(--font-grid);color:var(--ink);background:var(--surface-card);border:1px solid var(--border);cursor:crosshair;touch-action:manipulation;border-radius:4px;justify-content:center;align-items:center;transition:all .12s;display:flex;position:relative}.grid-cell:hover{background:var(--highlight-soft);transform:scale(1.02)}.grid-cell.selecting{background:var(--highlight);color:#fff;border-color:var(--highlight);box-shadow:0 2px 8px var(--highlight-glow);font-weight:600}.grid-cell.tap-start{background:var(--highlight);color:#fff;border-color:var(--highlight);box-shadow:0 0 0 3px var(--highlight-glow),0 2px 12px var(--highlight-glow);font-weight:600;animation:1s ease-in-out infinite tap-pulse}@keyframes tap-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.tap-hint{background:var(--surface-raised);border-radius:var(--radius-md);color:var(--color-text-muted);justify-content:center;align-items:center;gap:.75rem;margin-top:.5rem;padding:.5rem .75rem;font-size:.85rem;display:flex}.tap-hint-selecting{color:var(--highlight);font-weight:500}.tap-hint-cancel{background:var(--border);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;border:none;padding:.25rem .5rem;font-size:.75rem}.tap-hint-cancel:hover{background:var(--border-strong)}.grid-cell.found{z-index:1;position:relative}.grid-cell.found:before{content:"";opacity:.55;z-index:-1;border-radius:2px;position:absolute;inset:-1px -3px}.grid-cell.found.marker-1:before{background:var(--marker-1)}.grid-cell.found.marker-2:before{background:var(--marker-2)}.grid-cell.found.marker-3:before{background:var(--marker-3)}.grid-cell.found.marker-4:before{background:var(--marker-4)}.grid-cell.found.marker-5:before{background:var(--marker-5)}.grid-cell.found.marker-6:before{background:var(--marker-6)}.grid-cell.hint{background:var(--marker-1);box-shadow:inset 0 0 0 3px var(--marker-1);animation:1s ease-in-out infinite hintPulse}@keyframes hintPulse{0%,to{opacity:.5}50%{opacity:.8}}.grid-cell.error{background:var(--error);color:#fff}.word-list{grid-template-columns:repeat(2,1fr);gap:.125rem .75rem;margin:0;padding:0;list-style:none;display:grid}.word-item{font:500 .8125rem/1.6 var(--font-body);color:var(--ink);align-items:center;gap:.375rem;display:flex}.word-item:before{content:"";border:2px solid var(--ink-faint);border-radius:50%;flex-shrink:0;width:8px;height:8px}.word-item.found{color:var(--success)}.word-item.found:before{background:var(--success);border-color:var(--success)}.word-item.found .word-text{text-decoration:line-through;-webkit-text-decoration-color:var(--success);text-decoration-color:var(--success);text-decoration-thickness:1.5px}.panel{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-md)}.panel-header{padding-bottom:var(--space-sm);margin-bottom:var(--space-md);border-bottom:1px solid var(--border)}.panel-title{font:700 1rem/1.2 var(--font-display);margin:0}.header{padding:.75rem var(--space-lg);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:1000;background:#faf9f7e6;justify-content:space-between;align-items:center;min-height:60px;display:flex;position:sticky;top:0}.logo{font:700 1.375rem/1 var(--font-display);color:var(--ink);letter-spacing:-.02em;align-items:baseline;gap:.25rem;text-decoration:none;display:flex}.logo-word{color:var(--ink)}.logo-accent{color:var(--highlight);font-weight:600}.header-left{align-items:center;gap:1.5rem;display:flex}.header-nav{align-items:center;gap:.25rem;display:flex}.header-nav-link{color:#fff;border-radius:var(--radius-sm);opacity:.7;padding:.35rem .75rem;font-size:.8rem;font-weight:600;text-decoration:none;transition:all .2s}.header-nav-link:hover{opacity:1;background:#ffffff1a}.header-controls{align-items:center;gap:var(--space-md);display:flex}.header-auth{margin-left:auto}.header-user{align-items:center;gap:var(--space-sm);display:flex}.header-username{font:500 .875rem/1 var(--font-body);color:var(--ink)}.score-display{text-align:right}.score-label{font:600 .625rem/1 var(--font-body);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);margin-bottom:.125rem}.score-value{font:700 1.5rem/1 var(--font-display);font-variant-numeric:tabular-nums;color:var(--ink)}.score-popup{font:700 1.25rem/1 var(--font-display);color:var(--highlight);pointer-events:none;z-index:100;animation:.8s ease-out forwards scoreFloatUp;position:absolute}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;padding:var(--space-md);background:#1a1a1a66;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-xl);flex-direction:column;width:100%;max-width:480px;max-height:90vh;animation:.2s ease-out modalIn;display:flex;overflow:hidden;box-shadow:0 8px 30px #0000001f}.modal-header{padding:var(--space-md)var(--space-lg);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.modal-title{font:700 1.5rem/1.2 var(--font-display);color:var(--ink);margin:0}.modal-close{border:1px solid var(--border);border-radius:var(--radius-sm);width:32px;height:32px;color:var(--ink-faint);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:0;font-size:1rem;transition:all .15s;display:flex}.modal-close:hover{border-color:var(--border-strong);background:var(--surface);color:var(--ink)}.modal-body{padding:var(--space-lg);flex:1;overflow-y:auto}.controls{gap:var(--space-sm);padding:var(--space-md)0;margin-top:var(--space-sm);flex-wrap:wrap;justify-content:center;align-items:center;display:flex}.controls .btn{border-radius:var(--radius-md);padding:.625rem 1rem;font-size:.8125rem}.toast{background:var(--ink);color:var(--surface-card);padding:var(--space-md)var(--space-lg);border-radius:var(--radius-md);z-index:9999;font:500 .875rem/1.4 var(--font-body);animation:.3s ease-out slideDown;position:fixed;top:80px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #00000026}@keyframes scoreFloatUp{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-30px)}}@keyframes modalIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translate(-50%,-100%)}to{opacity:1;transform:translate(-50%)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.shake-animation{animation:.4s ease-in-out shake}.accordion{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-card);flex-shrink:0;overflow:hidden}.accordion-header{width:100%;padding:var(--space-md);color:var(--ink);cursor:pointer;font:600 .875rem/1 var(--font-body);text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;transition:background .15s;display:flex}.accordion-header:hover{background:var(--surface)}.accordion-icon{color:var(--ink-faint);font-size:1rem;line-height:1}.accordion-content{padding:0 var(--space-md)var(--space-md);position:relative;overflow:hidden}.player-hub{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-md)}.player-hub-header{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.player-hub-title{font:700 .875rem/1.2 var(--font-display);color:var(--ink);text-transform:uppercase;letter-spacing:.05em;margin:0}.player-hub-streak{font:600 .75rem/1 var(--font-body);color:var(--highlight);background:var(--highlight-soft);border-radius:var(--radius-full);align-items:center;gap:.25rem;padding:.25rem .5rem;display:flex}.streak-fire{font-size:.875rem}.player-hub-stats{gap:var(--space-sm);margin-bottom:var(--space-md);display:flex}.stat-pill{text-align:center;padding:var(--space-sm);border-radius:var(--radius-md);border:1px solid var(--border);background:#fff;flex:1}.stat-pill-value{font:700 1.25rem/1.2 var(--font-display);color:var(--highlight);display:block}.stat-pill-label{font:500 .625rem/1 var(--font-body);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em;margin-top:.125rem;display:block}.player-hub-alert{font:600 .75rem/1 var(--font-body);color:var(--highlight);background:var(--highlight-soft);border-radius:var(--radius-md);margin-bottom:var(--space-md);align-items:center;gap:.375rem;padding:.5rem .75rem;display:flex}.player-hub-alert .alert-icon{font-size:.875rem}.player-hub-sections{flex-direction:column;gap:0;display:flex}.player-hub .accordion{background:0 0;border:none;border-radius:0}.player-hub .accordion+.accordion{border-top:1px solid var(--border)}.player-hub .accordion-header{padding:var(--space-sm)0;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-muted);font-size:.75rem}.player-hub .accordion-header:hover{color:var(--ink);background:0 0}.player-hub .accordion-content{padding:0 0 var(--space-sm)}@media (max-width:768px){.player-hub{padding:var(--space-sm)}.player-hub-header{margin-bottom:var(--space-sm)}.player-hub-title{font-size:.75rem}.player-hub-streak{padding:.1875rem .375rem;font-size:.6875rem}.player-hub-stats{gap:var(--space-xs);margin-bottom:var(--space-sm)}.stat-pill{padding:var(--space-xs)}.stat-pill-value{font-size:1rem}.stat-pill-label{font-size:.5625rem}.player-hub .accordion-header{padding:var(--space-xs)0;font-size:.6875rem}.player-hub .accordion-content{padding:0 0 var(--space-xs)}.app-layout{padding:var(--space-sm);gap:var(--space-md);flex-direction:column}.game-area{align-items:center;width:100%;min-height:auto}.sidebar{width:100%;min-width:100%;max-width:100%}.header{padding:var(--space-sm)var(--space-md);gap:var(--space-xs);row-gap:var(--space-sm);flex-wrap:wrap}.header-left{justify-content:space-between;width:100%}.logo{font-size:1.125rem}.header-controls{gap:var(--space-sm);flex-wrap:nowrap;justify-content:flex-start;width:100%;min-width:0}.score-display{min-width:0}.score-label{font-size:.5rem}.score-value{font-size:1.125rem}.timer{padding:.125rem .375rem;font-size:.875rem}.controls-mobile{background:var(--surface-card);padding:var(--space-sm);padding-bottom:calc(var(--space-sm) + env(safe-area-inset-bottom));justify-content:center;gap:var(--space-sm);z-index:1000;border-top:1px solid var(--border);display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 10px #0000000d}.controls-mobile .btn{border-color:var(--border-strong);color:var(--ink);background:var(--surface)}.controls-mobile .btn:hover{box-shadow:none;transform:none}.controls-mobile .btn-primary{background:var(--highlight);border-color:var(--highlight);color:#fff}.word-list{grid-template-columns:repeat(2,1fr);gap:.25rem 1rem}.word-item{padding:.25rem 0;font-size:.875rem;font-weight:600}.word-item:before{border-width:2px;width:10px;height:10px}.toast{top:auto;bottom:80px}}@media (max-width:480px){.word-list{grid-template-columns:repeat(2,1fr);gap:.125rem .5rem;font-size:.75rem}.word-item{padding:.125rem 0;font-size:.75rem}.word-item:before{width:8px;height:8px}.game-board-container{padding:var(--space-sm);max-width:100vw;overflow:hidden}.grid-cell{min-width:28px;min-height:28px;font-size:clamp(.75rem,4cqi,1.35rem)}}@media (min-width:1024px){.sidebar{top:calc(48px + var(--space-sm));scrollbar-width:thin;scrollbar-color:var(--border-strong)transparent;min-height:0;max-height:calc(100vh - 60px);position:sticky;overflow:hidden auto}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-track{background:0 0}.sidebar::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}.sidebar .accordion{flex-shrink:0}.game-board-container{max-width:min(600px,100vh - 120px)}}@media (min-width:1400px){.app-layout{gap:var(--space-lg);max-width:1400px}.game-area{flex:1}.game-board-container{align-items:flex-start;gap:var(--space-md);background:0 0;border:none;flex-direction:row;max-width:none;padding:0;display:flex}.game-grid{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-lg);flex-shrink:0;width:500px}.game-board-container>.accordion{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:280px;padding:var(--space-sm);flex:1;margin-top:0}.game-board-container>.accordion .accordion-header{padding:var(--space-sm)}.word-list{columns:1}.word-list li{padding:.4rem 0;font-size:.875rem}.sidebar{width:340px}.desktop-controls{max-width:none;margin-top:var(--space-md)}.desktop-controls .controls{justify-content:flex-start}}@media (min-width:1600px){.app-layout{max-width:1500px}.game-grid{width:550px}.game-board-container>.accordion{max-width:320px}.sidebar{width:380px}}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.form-group{margin-bottom:var(--space-lg)}.form-group.form-row{justify-content:space-between;align-items:center;display:flex}.form-label{font:600 .8125rem/1 var(--font-body);text-transform:uppercase;letter-spacing:.05em;color:var(--ink);margin-bottom:var(--space-sm);display:block}.form-row .form-label{margin-bottom:0}.form-select,.form-input{width:100%;font:400 1rem/1.4 var(--font-body);color:var(--ink);background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-md);appearance:none;padding:.75rem 1rem;transition:border-color .15s,box-shadow .15s}.form-select{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%231A1A1A' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-position:right 1rem center;background-repeat:no-repeat;padding-right:2.5rem}.form-input:focus,.form-select:focus{border-color:var(--highlight);box-shadow:0 0 0 3px var(--highlight-soft);outline:none}.form-input:disabled{background:var(--border);cursor:not-allowed;opacity:.7}.form-error{color:var(--error);margin:var(--space-sm)0 0;font-size:.8125rem}.form-actions{gap:var(--space-sm);margin-top:var(--space-lg);justify-content:flex-end;display:flex}.toggle{background:var(--border-strong);cursor:pointer;border:none;border-radius:13px;width:48px;height:26px;padding:0;transition:background .2s;position:relative}.toggle-on{background:var(--highlight)}.toggle-knob{background:#fff;border-radius:50%;width:20px;height:20px;transition:left .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000026}.toggle-on .toggle-knob{background:#fff;left:25px}.auth-form{gap:var(--space-sm);flex-direction:column;display:flex}.auth-form .form-group{margin-bottom:var(--space-md)}.auth-error{border:1px solid var(--error);border-radius:var(--radius-md);color:var(--error);padding:var(--space-sm)var(--space-md);font:500 .875rem/1.4 var(--font-body);margin-bottom:var(--space-md);background:#dc26261a}.auth-toggle{width:100%;margin-top:var(--space-md);padding:var(--space-sm);color:var(--ink-faint);font:500 .875rem/1 var(--font-body);cursor:pointer;text-align:center;background:0 0;border:none;transition:color .15s;display:block}.auth-toggle:hover{color:var(--highlight)}.help-content{color:var(--ink)}.help-section{margin-bottom:var(--space-lg)}.help-section:last-of-type{margin-bottom:var(--space-md)}.help-heading{font:700 1.125rem/1.2 var(--font-display);color:var(--highlight);margin:0 0 var(--space-sm)}.help-text{font:400 .9375rem/1.6 var(--font-body);color:var(--ink-light);margin:0}.help-list{color:var(--ink-light);margin:0;padding-left:1.25rem}.help-list li{margin-bottom:.375rem;line-height:1.5}.help-note{font:400 .875rem/1.5 var(--font-body);color:var(--ink-faint);margin:var(--space-sm)0 0;font-style:italic}.win-trophy{margin-bottom:var(--space-md);font-size:4rem;line-height:1}.stats-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-md);text-align:center}.stats-line{font:600 1.125rem/1.4 var(--font-body);color:var(--ink);margin:0}.stats-line+.stats-line{margin-top:var(--space-xs)}.link-button{width:100%;color:var(--ink-faint);font:500 .875rem/1 var(--font-body);cursor:pointer;padding:var(--space-sm);background:0 0;border:none;text-decoration:underline;transition:color .15s;display:block}.link-button:hover{color:var(--ink)}.notice{padding:var(--space-sm)var(--space-md);border:1px solid var(--border);border-radius:var(--radius-md);font-size:.875rem}.notice-warning{border-color:var(--highlight);color:var(--highlight);background:#ff6b351a}.dropdown{position:relative}.dropdown-menu{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);z-index:1000;min-width:200px;max-height:400px;position:absolute;bottom:calc(100% + 8px);left:0;overflow:hidden;box-shadow:0 4px 20px #0000001a}.dropdown-section-label{font:600 .6875rem/1 var(--font-body);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);padding:.75rem 1rem .5rem}.dropdown-item{text-align:left;cursor:pointer;width:100%;font:500 .9375rem/1.2 var(--font-body);color:var(--ink);background:0 0;border:none;justify-content:space-between;align-items:center;padding:.625rem 1rem;transition:background .15s;display:flex}.dropdown-item:hover{background:var(--highlight-soft)}.dropdown-item.active{background:var(--highlight-soft);color:var(--highlight)}.dropdown-divider{background:var(--border);height:1px;margin:.5rem 0}.timer{font:600 1.125rem/1 var(--font-grid);font-variant-numeric:tabular-nums;color:var(--ink);background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.25rem .5rem}.leaderboard-table{border-collapse:collapse;width:100%}.leaderboard-table th{font:600 .6875rem/1 var(--font-body);text-transform:uppercase;letter-spacing:.05em;color:var(--highlight);text-align:left;border-bottom:2px solid var(--border);padding:.5rem}.leaderboard-table td{border-bottom:1px solid var(--border);padding:.625rem .5rem;font-size:.9375rem}.leaderboard-table tr.highlight{background:var(--highlight-soft)}.leaderboard-table .rank{color:var(--ink-faint)}.leaderboard-table .rank-top{color:var(--highlight);font-weight:600}.leaderboard-table .player-name{color:var(--ink);font-weight:500}.leaderboard-table .difficulty{color:var(--ink-faint);font-size:.8125rem}.leaderboard-table .time{text-align:right;font-family:var(--font-grid);color:var(--ink-faint);font-size:.875rem}.leaderboard-table .score{text-align:right;font-weight:600;font-family:var(--font-grid);color:var(--ink)}.leaderboard-table .score-top{color:var(--highlight)}.leaderboard-table .date{text-align:center;color:var(--ink-faint);font-size:.8125rem}.leaderboard-table .action{text-align:center}.pagination{justify-content:center;align-items:center;gap:var(--space-md);margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--border);display:flex}.pagination-info{font:500 .875rem/1 var(--font-grid);color:var(--ink-faint)}.calendar{color:var(--ink)}.calendar-header{margin-bottom:var(--space-sm);justify-content:space-between;align-items:center;display:flex}.calendar-title{font:700 .875rem/1.2 var(--font-display);color:var(--ink);margin:0}.calendar-badge{font:600 .625rem/1 var(--font-body);background:var(--highlight-soft);color:var(--highlight);border:1px solid var(--highlight);border-radius:var(--radius-sm);padding:.125rem .375rem}.calendar-progress{margin-bottom:var(--space-sm)}.calendar-progress-labels{color:var(--ink-faint);justify-content:space-between;margin-bottom:4px;font-size:.625rem;display:flex}.calendar-progress-bar{background:var(--border);border-radius:3px;height:6px;position:relative;overflow:hidden}.calendar-progress-fill{background:var(--highlight);border-radius:3px;min-width:2px;height:100%;transition:width .5s}.calendar-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.calendar-day-label{font:600 .5rem/1 var(--font-body);color:var(--ink-faint);text-transform:uppercase;padding:2px 0}.calendar-day{aspect-ratio:1;font:500 .75rem/1 var(--font-body);color:var(--ink);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;transition:all .15s;display:flex;position:relative}.calendar-day:hover:not(.empty):not(.future){background:var(--highlight-soft)}.calendar-day.empty{cursor:default}.calendar-day.today{border-color:var(--highlight);font-weight:700}.calendar-day.completed{background:var(--highlight);color:#fff;font-weight:700}.calendar-day.completed:hover{background:#e55a2b}.calendar-day.future{opacity:.3;cursor:default}.calendar-check{font-size:.5rem;position:absolute;top:-2px;right:-2px}.sidebar-leaderboard{font-size:.8125rem}.sidebar-leaderboard-empty{text-align:center;color:var(--ink-faint);padding:var(--space-lg);font-size:.875rem}.sidebar-leaderboard table{border-collapse:collapse;width:100%}.sidebar-leaderboard th{font:600 .625rem/1 var(--font-body);text-transform:uppercase;letter-spacing:.05em;color:var(--highlight);text-align:left;border-bottom:1px solid var(--border);padding:.375rem .25rem}.sidebar-leaderboard th:nth-child(3),.sidebar-leaderboard th:nth-child(4){text-align:right}.sidebar-leaderboard td{border-bottom:1px solid var(--border);padding:.375rem .25rem}.sidebar-leaderboard tr.top-three{background:var(--highlight-soft)}.sidebar-leaderboard .rank{color:var(--ink-faint);width:24px}.sidebar-leaderboard .rank.top{color:var(--highlight);font-weight:600}.sidebar-leaderboard .player{text-overflow:ellipsis;white-space:nowrap;max-width:80px;font-weight:500;overflow:hidden}.sidebar-leaderboard .time{text-align:right;font-family:var(--font-grid);color:var(--ink-faint);font-size:.75rem}.sidebar-leaderboard .score{text-align:right;font-weight:600;font-family:var(--font-grid);font-size:.75rem}.sidebar-leaderboard .score.top{color:var(--highlight)}@media (max-width:768px){.sidebar-leaderboard{font-size:.875rem}.sidebar-leaderboard th{padding:.5rem .375rem;font-size:.6875rem}.sidebar-leaderboard td{padding:.625rem .375rem}.sidebar-leaderboard .player{max-width:120px;font-size:.875rem}.sidebar-leaderboard .time{font-size:.8125rem}.sidebar-leaderboard .score{font-size:.875rem}.sidebar-leaderboard .rank{width:28px;font-size:.875rem}.leaderboard-table th,.leaderboard-table td{padding:.5rem .25rem;font-size:.8rem}.leaderboard-table th{font-size:.6rem}.leaderboard-table .player-name{text-overflow:ellipsis;white-space:nowrap;max-width:70px;overflow:hidden}.leaderboard-table .date,.leaderboard-table th:nth-child(6),.leaderboard-table td:nth-child(6),.leaderboard-table .action,.leaderboard-table th:nth-child(7),.leaderboard-table td:nth-child(7){display:none}.leaderboard-table .time,.leaderboard-table .score{font-size:.75rem}.leaderboard-table .difficulty{font-size:.7rem}.pagination{gap:var(--space-sm)}}.desktop-controls{width:100%;max-width:600px;display:block}.mobile-controls-wrapper,.mobile-controls{display:none}@media (max-width:768px){.mobile-controls{background:var(--surface-card);padding:var(--space-sm);padding-bottom:calc(var(--space-sm) + env(safe-area-inset-bottom));z-index:1000;justify-content:space-between;align-items:center;gap:var(--space-sm);border-top:1px solid var(--border);display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 10px #0000000d}.mobile-controls-main{gap:var(--space-sm);display:flex}.mobile-controls .btn{color:var(--ink);background:var(--surface);border-color:var(--border-strong);padding:.5rem .75rem;font-size:.75rem}.fab-container{position:relative}.fab-button{background:var(--highlight);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.25rem;display:flex}.fab-menu{margin-bottom:var(--space-sm);gap:var(--space-xs);flex-direction:column;display:flex;position:absolute;bottom:100%;right:0}.fab-backdrop{z-index:999;background:#0000004d;position:fixed;inset:0}.desktop-controls{display:none}.mobile-controls-wrapper{display:block}}.text-center{text-align:center}.text-muted{color:var(--ink-faint)}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.w-full{width:100%}.achievements{gap:var(--space-md);flex-direction:column;display:flex}.stat-item{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-sm);text-align:center;flex-direction:column;gap:.25rem;display:flex}.stat-label{font:500 .75rem/1 var(--font-body);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.02em}.stat-value{font:700 1.125rem/1.2 var(--font-display);color:var(--ink)}.game-context-banner{width:100%;padding:var(--space-sm)var(--space-md);margin-bottom:var(--space-sm);background:var(--surface-card);border:1px solid var(--border);border-radius:0 var(--radius-sm)var(--radius-sm)0;border-left:4px solid var(--border-strong);justify-content:space-between;align-items:center;display:flex}.game-context-banner.challenge{border-left-color:var(--highlight);background:var(--highlight-soft)}.game-context-banner.replay{border-left-color:var(--ink-faint);opacity:.85}.game-context-banner.theme{border-left-color:var(--success)}.banner-content{flex-direction:column;gap:.125rem;display:flex}.banner-label{font:600 .6875rem/1 var(--font-body);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em}.banner-date,.banner-theme{font:700 1rem/1.2 var(--font-display);color:var(--ink)}.banner-badge{font:600 .6875rem/1 var(--font-body);color:var(--surface);background:var(--ink-faint);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.03em;padding:.25rem .5rem}@media (max-width:768px){.game-context-banner{padding:var(--space-xs)var(--space-sm)}.banner-date,.banner-theme{font-size:.875rem}}.ad-unit{background:var(--surface-warm);border:1px dashed var(--border);flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.ad-label{font:500 .625rem/1 var(--font-body);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em;position:absolute;top:4px;left:50%;transform:translate(-50%)}.ad-placeholder{font:500 .75rem/1 var(--font-body);color:var(--ink-faint)}.ad-sidebar{width:100%;max-width:336px;min-height:250px;margin:0 auto}.ad-banner{width:100%;max-width:728px;min-height:90px;margin:var(--space-md)auto}@media (max-width:768px){.ad-banner{display:none}}@media (min-width:1400px){.ad-sidebar{max-width:336px;min-height:280px}}.legal-page{background:var(--surface);min-height:100vh;padding:var(--space-lg)var(--space-md)}.legal-container{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-xl);max-width:800px;padding:var(--space-xl);margin:0 auto;box-shadow:0 2px 20px #00000008}.legal-container h1{font:700 2rem/1.2 var(--font-display);color:var(--ink);margin-bottom:var(--space-sm)}.legal-container .last-updated{font:500 .875rem/1.4 var(--font-body);color:var(--ink-faint);margin-bottom:var(--space-xl)}.legal-container section{margin-bottom:var(--space-xl)}.legal-container h2{font:700 1.25rem/1.3 var(--font-display);color:var(--ink);margin-bottom:var(--space-md);padding-bottom:var(--space-xs);border-bottom:2px solid var(--highlight)}.legal-container h3{font:600 1rem/1.4 var(--font-body);color:var(--ink);margin-top:var(--space-md);margin-bottom:var(--space-sm)}.legal-container p{font:400 1rem/1.7 var(--font-body);color:var(--ink-light);margin-bottom:var(--space-md)}.legal-container ul,.legal-container ol{margin:0 0 var(--space-md)var(--space-lg);padding:0}.legal-container li{font:400 1rem/1.7 var(--font-body);color:var(--ink-light);margin-bottom:var(--space-sm)}.legal-container a{color:var(--highlight);text-underline-offset:2px;text-decoration:underline}.legal-container a:hover{color:var(--ink)}.legal-nav{gap:var(--space-md);padding-top:var(--space-lg);border-top:1px solid var(--border);margin-top:var(--space-xl);display:flex}.legal-nav a{font:500 .875rem/1 var(--font-body);color:var(--ink-faint);text-decoration:none}.legal-nav a:hover{color:var(--highlight)}.contact-intro{font-size:1.125rem}.contact-methods{gap:var(--space-md);display:grid}.contact-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-lg)}.contact-card h2{margin-bottom:var(--space-sm);border-bottom:none;padding-bottom:0}.contact-email{font-size:1.125rem}.contact-email a{font-weight:600}.contact-note{color:var(--ink-faint);font-size:.875rem}.faq-list{margin:0}.faq-list dt{font:600 1rem/1.4 var(--font-body);color:var(--ink);margin-top:var(--space-md)}.faq-list dd{font:400 1rem/1.7 var(--font-body);color:var(--ink-light);margin:var(--space-xs)0 0 0}.site-footer{background:var(--ink);color:var(--surface);padding:var(--space-xl)var(--space-md)var(--space-lg);margin-top:auto}.footer-container{max-width:1200px;margin:0 auto}.footer-grid{gap:var(--space-lg)var(--space-md);margin-bottom:var(--space-xl);grid-template-columns:repeat(2,1fr);display:grid}.footer-section{min-width:0}.footer-heading{font:600 .875rem/1 var(--font-body);color:var(--surface);text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--space-sm)0}.footer-nav{gap:var(--space-xs);flex-direction:column;display:flex}.footer-nav a{font:400 .8125rem/1.4 var(--font-body);color:var(--ink-faint);text-decoration:none;transition:color .15s}.footer-nav a:hover{color:var(--highlight)}.footer-bottom{padding-top:var(--space-lg);text-align:center;border-top:1px solid #ffffff1a}.footer-copyright{font:400 .8125rem/1.4 var(--font-body);color:var(--ink-faint);margin:0}.footer-links{gap:var(--space-lg);flex-wrap:wrap;justify-content:center;display:flex}.footer-links a{font:500 .875rem/1 var(--font-body);color:var(--surface);opacity:.8;text-decoration:none;transition:opacity .15s}.footer-links a:hover{opacity:1;color:var(--highlight)}@media (min-width:640px){.footer-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:768px){.footer-grid{gap:var(--space-md);grid-template-columns:repeat(6,1fr)}.contact-methods{grid-template-columns:repeat(2,1fr)}}.blog-page{background:var(--surface);min-height:100vh;padding:var(--space-lg)var(--space-md)}.blog-container{max-width:900px;margin:0 auto}.blog-header{margin-bottom:var(--space-xl);text-align:center}.blog-header h1{font:700 2.5rem/1.1 var(--font-display);color:var(--ink);margin-bottom:var(--space-sm)}.blog-subtitle{font:400 1.125rem/1.5 var(--font-body);color:var(--ink-faint)}.back-link{font:500 .875rem/1 var(--font-body);color:var(--ink-faint);margin-bottom:var(--space-md);text-decoration:none;transition:color .15s;display:inline-block}.back-link:hover{color:var(--highlight)}.blog-grid{gap:var(--space-lg);display:grid}.blog-card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-lg);transition:all .2s}.blog-card:hover{border-color:var(--border-strong);box-shadow:0 4px 20px #0000000f}.blog-card-meta{gap:var(--space-sm);margin-bottom:var(--space-sm);flex-wrap:wrap;align-items:center;display:flex}.blog-category{font:600 .75rem/1 var(--font-body);color:#fff;background:var(--highlight);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.02em;padding:.25rem .625rem}.blog-date,.blog-read-time{font:400 .8125rem/1 var(--font-body);color:var(--ink-faint)}.blog-card-title-link{color:inherit;text-decoration:none}.blog-card-title{font:700 1.375rem/1.3 var(--font-display);color:var(--ink);margin-bottom:var(--space-sm);transition:color .15s}.blog-card-title-link:hover .blog-card-title{color:var(--highlight)}.blog-card-description{font:400 1rem/1.7 var(--font-body);color:var(--ink-light);margin-bottom:var(--space-md)}.blog-read-more{font:600 .875rem/1 var(--font-body);color:var(--highlight);text-decoration:none}.blog-read-more:hover{text-decoration:underline}.blog-empty{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-xl);text-align:center}.blog-empty p{color:var(--ink-faint)}.blog-cta{margin-top:var(--space-xl);text-align:center}.blog-cta p{font:400 1rem/1.5 var(--font-body);color:var(--ink-faint);margin-bottom:var(--space-md)}.blog-post{max-width:750px;margin:0 auto}.blog-post-header{margin-bottom:var(--space-xl)}.blog-post-title{font:700 2.25rem/1.2 var(--font-display);color:var(--ink);margin-bottom:var(--space-md)}.blog-post-description{font:400 1.125rem/1.6 var(--font-body);color:var(--ink-light)}.blog-post-content{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-xl)}.blog-content-h2{font:700 1.5rem/1.3 var(--font-display);color:var(--ink);margin-top:var(--space-xl);margin-bottom:var(--space-md);padding-bottom:var(--space-xs);border-bottom:2px solid var(--highlight)}.blog-content-h3{font:600 1.125rem/1.4 var(--font-body);color:var(--ink);margin-top:var(--space-lg);margin-bottom:var(--space-sm)}.blog-content-p{font:400 1rem/1.8 var(--font-body);color:var(--ink-light);margin-bottom:var(--space-md)}.blog-content-list{margin:0 0 var(--space-md)var(--space-lg);padding:0}.blog-content-list-ordered{list-style-type:decimal}.blog-content-li{font:400 1rem/1.8 var(--font-body);color:var(--ink-light);margin-bottom:var(--space-xs)}.blog-content-strong{color:var(--ink);font-weight:600}.blog-content-link{color:var(--highlight);text-underline-offset:2px;text-decoration:underline}.blog-content-link:hover{color:var(--ink)}.blog-content-quote{border-left:4px solid var(--highlight);padding-left:var(--space-md);margin:var(--space-lg)0;color:var(--ink-light);font-style:italic}.blog-post-footer{margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid var(--border)}.blog-post-footer h3{font:700 1rem/1.3 var(--font-display);color:var(--ink);margin-bottom:var(--space-md)}.blog-related-links{gap:var(--space-sm);flex-direction:column;display:flex}.blog-related-link{font:500 .9375rem/1.4 var(--font-body);color:var(--highlight);text-decoration:none}.blog-related-link:hover{text-decoration:underline}@media (max-width:768px){.blog-header h1{font-size:2rem}.blog-post-title{font-size:1.75rem}.blog-post-content{padding:var(--space-md)}}.profile-header{margin:0}.profile-title{font:700 1.75rem/1.2 var(--font-display);color:var(--ink);margin:0}.profile-username{font:500 .9375rem/1.4 var(--font-body);color:var(--ink-faint);margin:.25rem 0 0}.profile-tabs{gap:var(--space-sm);padding-bottom:var(--space-md);border-bottom:1px solid var(--border);margin-bottom:var(--space-md);display:flex}.profile-tab{align-items:center;gap:var(--space-sm);border-radius:var(--radius-md);font:600 .875rem/1 var(--font-body);color:var(--ink-faint);cursor:pointer;background:0 0;border:none;padding:.625rem 1.25rem;transition:all .15s;display:flex}.profile-tab:hover{background:var(--surface);color:var(--ink)}.profile-tab.active{background:var(--highlight-soft);color:var(--ink)}.profile-content{padding-top:var(--space-sm)}.profile-loading,.profile-error{text-align:center;padding:var(--space-xl);color:var(--ink-faint)}.profile-error{border-radius:var(--radius-lg);color:var(--error);background:#dc26261a}.profile-overview{gap:var(--space-lg);flex-direction:column;display:flex}.profile-leaderboard-stats{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-md)}.profile-email{padding-bottom:var(--space-sm);margin-bottom:var(--space-sm);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.profile-email-label{font:500 .75rem/1 var(--font-body);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.03em}.profile-email-value{font:500 .875rem/1 var(--font-body);color:var(--ink)}.leaderboard-stats-grid{gap:var(--space-sm);grid-template-columns:repeat(4,1fr);display:grid}.leaderboard-stat{text-align:center;flex-direction:column;gap:.25rem;display:flex}.leaderboard-stat-value{font:700 1.25rem/1 var(--font-display);color:var(--highlight)}.leaderboard-stat-label{font:500 .625rem/1.2 var(--font-body);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.02em}@media (max-width:600px){.leaderboard-stats-grid{grid-template-columns:repeat(2,1fr)}}.profile-streaks{gap:var(--space-md);grid-template-columns:repeat(2,1fr);display:grid}.streak-card{align-items:center;gap:var(--space-md);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-md);display:flex}.streak-icon{font-size:2rem}.streak-info{flex-direction:column;display:flex}.streak-value{font:700 1.75rem/1 var(--font-display);color:var(--ink)}.streak-label{font:500 .75rem/1.2 var(--font-body);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.03em}.profile-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-md)}.profile-section-title{font:700 .875rem/1 var(--font-display);color:var(--ink);text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--space-md)}.profile-stats-grid{gap:var(--space-sm);grid-template-columns:repeat(3,1fr);display:grid}.profile-stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md);text-align:center;flex-direction:column;gap:.25rem;display:flex}.profile-stat-label{font:500 .6875rem/1 var(--font-body);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.03em}.profile-stat-value{font:700 1.25rem/1.2 var(--font-display);color:var(--ink)}.profile-stat-subtext{font:400 .75rem/1 var(--font-body);color:var(--ink-faint)}.profile-charts-row{gap:var(--space-md);grid-template-columns:repeat(2,1fr);display:grid}.profile-chart-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-md)}.profile-chart-title{font:600 .8125rem/1 var(--font-body);color:var(--ink);margin:0 0 var(--space-md)}.activity-chart-compact{gap:var(--space-xs);flex-direction:column;display:flex}.activity-bar{border-radius:var(--radius-sm);background:var(--surface);gap:2px;height:24px;padding:3px;display:flex;overflow:hidden}.activity-bar-segment{cursor:pointer;border-radius:2px;flex:1;min-width:0;transition:transform .1s,opacity .1s}.activity-bar-segment:hover{opacity:.9;transform:scaleY(1.3)}.activity-compact-info{font:400 .6875rem/1 var(--font-body);color:var(--ink-faint);justify-content:space-between;align-items:center;display:flex}.activity-stats{color:var(--ink-light);font-size:.75rem}.activity-stats strong{color:var(--ink);font-weight:600}.trend-chart{flex-direction:column;align-items:center;display:flex}.trend-svg{width:100%;max-width:280px;height:80px}.trend-labels{margin-top:var(--space-xs);font-size:.75rem}.trend-chart-empty{justify-content:center;align-items:center;height:80px;display:flex}.difficulty-chart{gap:var(--space-sm);flex-direction:column;display:flex}.difficulty-row{align-items:center;gap:var(--space-sm);display:flex}.difficulty-label{font:600 .6875rem/1 var(--font-body);color:var(--ink);text-transform:uppercase;width:50px}.difficulty-bar-bg{background:var(--border);border-radius:6px;flex:1;height:12px;overflow:hidden}.difficulty-bar{border-radius:6px;height:100%;transition:width .5s}.difficulty-count{font:500 .75rem/1 var(--font-body);color:var(--ink-faint);text-align:right;min-width:60px}.recent-games-table{flex-direction:column;display:flex}.recent-games-header,.recent-games-row{gap:var(--space-sm);padding:var(--space-sm)0;grid-template-columns:1fr 1fr 1fr 1fr;align-items:center;display:grid}.recent-games-header{font:600 .6875rem/1 var(--font-body);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--border)}.recent-games-row{border-bottom:1px solid var(--border);font-size:.875rem}.recent-games-row:last-child{border-bottom:none}.recent-score{font:600 .875rem/1 var(--font-grid);color:var(--ink)}.difficulty-badge{font:600 .625rem/1 var(--font-body);border-radius:var(--radius-sm);text-transform:uppercase;text-align:center;padding:.25rem .5rem}.difficulty-easy{color:#059669;background:#05966926}.difficulty-medium{color:#d97706;background:#f59e0b26}.difficulty-hard{color:var(--highlight);background:#e07a5f26}.profile-achievements{gap:var(--space-md);flex-direction:column;display:flex}.achievements-summary{align-items:center;gap:var(--space-xs);padding:var(--space-md);background:var(--surface);border-radius:var(--radius-lg);flex-direction:column;display:flex}.achievements-progress-ring{align-items:baseline;gap:2px;display:flex}.achievements-count{font:700 2rem/1 var(--font-display);color:var(--highlight)}.achievements-total{font:500 1rem/1 var(--font-body);color:var(--ink-faint)}.achievements-label{font:500 .75rem/1 var(--font-body);color:var(--ink-light);text-transform:uppercase;letter-spacing:.05em}.achievements-filters{align-items:center;gap:var(--space-sm);flex-wrap:wrap;justify-content:space-between;display:flex}.category-filters{flex-wrap:wrap;gap:.375rem;display:flex}.filter-btn{font:500 .75rem/1 var(--font-body);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;color:var(--ink-light);padding:.375rem .75rem;transition:all .15s}.filter-btn:hover{border-color:var(--ink-faint);color:var(--ink)}.filter-btn.active{background:var(--highlight);border-color:var(--highlight);color:#fff}.show-locked-toggle{font:400 .75rem/1 var(--font-body);color:var(--ink-light);cursor:pointer;align-items:center;gap:.375rem;display:flex}.show-locked-toggle input{accent-color:var(--highlight)}.achievements-grid{gap:var(--space-sm);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.achievement-card{gap:var(--space-sm);padding:var(--space-sm);background:var(--tier-bg,var(--surface));border:1px solid var(--tier-border,var(--border));border-radius:var(--radius-md);transition:all .15s;display:flex;position:relative}.achievement-card:hover{transform:translateY(-1px);box-shadow:0 2px 8px #0000000f}.achievement-card.unlocked{background:var(--tier-bg);border-color:var(--tier-border)}.achievement-card.locked{opacity:.5;background:var(--surface);border-color:var(--border)}.achievement-icon{background:var(--surface-card);border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.25rem;display:flex}.achievement-card.locked .achievement-icon{filter:grayscale()}.achievement-info{flex-direction:column;flex:1;gap:.125rem;min-width:0;display:flex}.achievement-header{align-items:center;gap:var(--space-sm);display:flex}.achievement-title{font:600 .8125rem/1.2 var(--font-body);color:var(--ink)}.achievement-tier{font:600 .5625rem/1 var(--font-body);text-transform:uppercase;letter-spacing:.03em;border-radius:4px;flex-shrink:0;padding:.125rem .375rem}.achievement-tier.tier-bronze{color:#cd7f32;background:#cd7f3226}.achievement-tier.tier-silver{color:#6b7280;background:#c0c0c033}.achievement-tier.tier-gold{color:#b8860b;background:#ffd70026}.achievement-tier.tier-platinum{color:#475569;background:#94a3b826}.achievement-desc{font:400 .6875rem/1.3 var(--font-body);color:var(--ink-faint)}.achievement-progress{align-items:center;gap:var(--space-sm);margin-top:.25rem;display:flex}.progress-bar{background:var(--border);border-radius:2px;flex:1;height:4px;overflow:hidden}.progress-fill{background:var(--highlight);border-radius:2px;height:100%;transition:width .3s}.progress-text{font:500 .625rem/1 var(--font-body);color:var(--ink-faint);text-align:right;flex-shrink:0;min-width:60px}.achievement-check{color:var(--tier-text,var(--success));font-size:.875rem;position:absolute;top:.5rem;right:.5rem}.achievements-empty{text-align:center;padding:var(--space-xl);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.achievements-empty-icon{margin-bottom:var(--space-md);font-size:3rem}.achievements-empty h3{font:600 1.125rem/1.2 var(--font-display);color:var(--ink);margin:0 0 var(--space-xs)}.achievements-empty p{font:400 .9375rem/1.4 var(--font-body);color:var(--ink-faint);margin:0}@media (max-width:768px){.profile-streaks{grid-template-columns:1fr}.profile-stats-grid{grid-template-columns:repeat(2,1fr)}.profile-charts-row{grid-template-columns:1fr}.recent-games-header,.recent-games-row{grid-template-columns:1fr 1fr 1fr}.recent-games-header span:last-child,.recent-games-row span:last-child{display:none}.heatmap-weeks{min-width:600px}}.printable-landing{max-width:1200px;color:var(--ink);margin:0 auto;padding:0 1rem 3rem}.printable-hero{text-align:center;background:linear-gradient(135deg,var(--highlight-soft)0%,#e07a5f0d 100%);border-radius:var(--radius-lg);border:1px solid #e07a5f33;margin-bottom:2rem;padding:3rem 1rem}.printable-hero h1{font:700 clamp(2rem,5vw,3rem)/1.2 var(--font-display);color:var(--ink);margin-bottom:1rem}.printable-hero-subtitle{color:var(--ink-light);max-width:700px;margin:0 auto 2rem;font-size:1.1rem;line-height:1.6}.printable-hero-stats{flex-wrap:wrap;justify-content:center;gap:3rem;display:flex}.stat-item{flex-direction:column;align-items:center;display:flex}.stat-number{font:700 2.5rem/1 var(--font-display);color:var(--highlight)}.stat-label{color:var(--ink-faint);text-transform:uppercase;letter-spacing:1px;font-size:.9rem}.printable-section{margin-bottom:3rem}.section-title{font:700 1.75rem/1.2 var(--font-display);color:var(--ink);text-align:center;margin-bottom:.75rem}.section-description{text-align:center;color:var(--ink-light);max-width:600px;margin:0 auto 2rem}.quick-downloads{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.quick-download-card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;align-items:center;padding:1.5rem;text-decoration:none;transition:all .2s;display:flex}.quick-download-card:hover{border-color:var(--highlight);transform:translateY(-4px);box-shadow:0 8px 24px #0000001a}.quick-download-icon{margin-bottom:.5rem;font-size:2.5rem}.quick-download-name{color:var(--ink);margin-bottom:.25rem;font-weight:600}.quick-download-count{color:var(--highlight);font-size:.85rem}.themes-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;display:grid}.theme-card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:1.5rem;transition:all .2s}.theme-card:hover{border-color:var(--theme-color,var(--highlight));box-shadow:0 4px 20px #00000014}.theme-card-header{align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.theme-icon{font-size:2rem}.theme-name{font:600 1.25rem/1.2 var(--font-display);color:var(--ink);margin:0}.theme-description{color:var(--ink-light);margin-bottom:.75rem;font-size:.9rem;line-height:1.5}.theme-keywords{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.keyword-tag{background:var(--highlight-soft);color:var(--highlight);border-radius:4px;padding:.25rem .5rem;font-size:.75rem}.theme-actions{gap:.5rem;display:flex}.theme-count-btn{text-align:center;color:var(--ink);background:var(--surface-warm);border:1px solid var(--border);border-radius:var(--radius-sm);flex:1;padding:.5rem;font-size:.85rem;font-weight:500;text-decoration:none;transition:all .2s}.theme-count-btn:hover{background:var(--theme-color,var(--highlight));border-color:var(--theme-color,var(--highlight));color:#fff}.steps-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;display:grid}.step-card{text-align:center;padding:1.5rem}.step-number{width:48px;height:48px;font:700 1.5rem/1 var(--font-display);color:#fff;background:linear-gradient(135deg,var(--highlight)0%,var(--highlight-hover)100%);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 1rem;display:flex}.step-card h3{color:var(--ink);margin-bottom:.5rem}.step-card p{color:var(--ink-light);font-size:.9rem;line-height:1.5}.use-case-card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:1.5rem}.use-case-icon{margin-bottom:.75rem;font-size:2rem;display:block}.use-case-card h3{color:var(--ink);margin-bottom:.5rem}.faq-grid{max-width:800px;margin:0 auto}.faq-item{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:1rem;overflow:hidden}.faq-question{cursor:pointer;color:var(--ink);justify-content:space-between;align-items:center;padding:1rem 1.25rem;font-weight:500;list-style:none;display:flex}.faq-question::-webkit-details-marker{display:none}.faq-question:after{content:"+";color:var(--highlight);font-size:1.25rem}.faq-item[open] .faq-question:after{content:"−"}.faq-answer{color:var(--ink-light);margin:0;padding:0 1.25rem 1rem;line-height:1.6}.seo-content{background:var(--surface-card);border-radius:var(--radius-md);border:1px solid var(--border);padding:2rem}.seo-text p{color:var(--ink-light);margin-bottom:1rem;line-height:1.7}.seo-text p:last-child{margin-bottom:0}.printable-cta{text-align:center;background:linear-gradient(135deg,var(--success-soft)0%,#0596690d 100%);border-radius:var(--radius-lg);border:1px solid #05966933;padding:3rem 1rem}.printable-cta h2{color:var(--ink);margin-bottom:.5rem}.printable-cta p{color:var(--ink-light);margin-bottom:1.5rem}.cta-button{background:linear-gradient(135deg,var(--highlight)0%,var(--highlight-hover)100%);color:#fff;border-radius:var(--radius-sm);padding:.875rem 2rem;font-weight:600;text-decoration:none;transition:all .2s;display:inline-block}.cta-button:hover{box-shadow:0 4px 12px var(--highlight-glow);transform:translateY(-2px)}.theme-page{max-width:900px;color:var(--ink);margin:0 auto;padding:1rem 1rem 3rem}.breadcrumbs{color:var(--ink-faint);margin-bottom:1.5rem;font-size:.85rem}.breadcrumbs a{color:var(--highlight);text-decoration:none}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .separator{opacity:.5;margin:0 .5rem}.breadcrumbs .current{color:var(--ink)}.theme-header{text-align:center;background:linear-gradient(135deg,var(--highlight-soft)0%,#e07a5f0d 100%);border-radius:var(--radius-lg);border:1px solid #e07a5f33;margin-bottom:2rem;padding:2rem}.theme-header .theme-icon{margin-bottom:.5rem;font-size:3rem;display:block}.theme-header h1{font:700 clamp(1.5rem,4vw,2.25rem)/1.2 var(--font-display);color:var(--ink);margin-bottom:.5rem}.theme-subtitle{color:var(--ink-light);font-size:1.1rem}.count-selector{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.count-label{color:var(--ink-light);font-weight:500}.count-buttons{gap:.5rem;display:flex}.count-btn{border-radius:var(--radius-sm);color:var(--ink);background:var(--surface-card);border:1px solid var(--border);padding:.5rem 1rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:all .2s}.count-btn:hover{border-color:var(--highlight)}.count-btn.active{background:var(--highlight);border-color:var(--highlight);color:#fff}.theme-info{background:var(--surface-card);border-radius:var(--radius-md);border:1px solid var(--border);margin-top:3rem;padding:2rem}.theme-info h2{font:700 1.5rem/1.2 var(--font-display);color:var(--ink);margin-bottom:1rem}.theme-info>p{color:var(--ink-light);margin-bottom:1.5rem;line-height:1.7}.info-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.info-card{background:var(--surface-warm);border-radius:var(--radius-sm);padding:1rem}.info-card h3{color:var(--highlight);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem;font-size:.9rem}.info-card p{color:var(--ink);margin:0}.info-card ul{color:var(--ink-light);margin:0;padding-left:1.25rem}.info-card li{margin-bottom:.25rem}.related-themes{margin-top:3rem}.related-themes h2{font:600 1.25rem/1.2 var(--font-display);color:var(--ink);text-align:center;margin-bottom:1rem}.related-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.related-card{text-align:center;background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;align-items:center;padding:1.25rem;text-decoration:none;transition:all .2s;display:flex}.related-card:hover{border-color:var(--highlight);transform:translateY(-2px)}.related-icon{margin-bottom:.5rem;font-size:2rem}.related-name{color:var(--ink);margin-bottom:.25rem;font-weight:600}.related-desc{color:var(--ink-faint);font-size:.8rem}.internal-links{margin-top:3rem}.internal-links h2{font:600 1.25rem/1.2 var(--font-display);color:var(--ink);text-align:center;margin-bottom:1rem}.links-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;display:grid}.link-card{text-align:center;background:var(--highlight-soft);border-radius:var(--radius-md);border:1px solid #e07a5f26;flex-direction:column;align-items:center;padding:1.25rem;text-decoration:none;transition:all .2s;display:flex}.link-card:hover{background:#e07a5f26;transform:translateY(-2px)}.link-icon{margin-bottom:.5rem;font-size:1.5rem}.link-title{color:var(--ink);margin-bottom:.25rem;font-size:.9rem;font-weight:600}.link-desc{color:var(--ink-faint);font-size:.75rem}@media (max-width:640px){.printable-hero-stats{gap:1.5rem}.stat-number{font-size:2rem}.theme-actions{flex-direction:column}}.sample-vocabulary{background:var(--surface-card);border-radius:var(--radius-md);border:1px solid var(--border);margin-top:3rem;padding:2rem}.sample-vocabulary h2{font:700 1.5rem/1.2 var(--font-display);color:var(--ink);margin-bottom:1rem}.section-intro{color:var(--ink-light);margin-bottom:1.5rem;line-height:1.7}.sample-words-grid{flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem;display:flex}.sample-word{background:var(--highlight-soft);color:var(--highlight);font-family:var(--font-mono);letter-spacing:.05em;border-radius:var(--radius-sm);border:1px solid #e07a5f33;padding:.5rem 1rem;font-size:.875rem;font-weight:600;display:inline-block}.sample-note{color:var(--ink-faint);margin:0;font-size:.875rem;font-style:italic}.educational-benefits{background:var(--surface-warm);border-radius:var(--radius-md);margin-top:3rem;padding:2rem}.educational-benefits h2{font:700 1.5rem/1.2 var(--font-display);color:var(--ink);margin-bottom:1rem}.benefits-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;display:grid}.benefit-card{background:var(--surface-card);border-radius:var(--radius-sm);border:1px solid var(--border);align-items:flex-start;gap:1rem;padding:1.25rem;display:flex}.benefit-number{background:var(--highlight);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:.875rem;font-weight:700;display:flex}.benefit-card p{color:var(--ink-light);margin:0;line-height:1.6}.use-cases-section{margin-top:3rem}.use-cases-section h2{font:700 1.5rem/1.2 var(--font-display);color:var(--ink);margin-bottom:1rem}.use-cases-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;display:grid}.use-case-card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-md);border-left:4px solid var(--highlight);padding:1.5rem}.use-case-card h3{font:600 1rem/1.2 var(--font-display);color:var(--ink);margin-bottom:.5rem}.use-case-card p{color:var(--ink-light);margin:0;font-size:.875rem;line-height:1.6}.solving-tips{background:var(--surface-card);border-radius:var(--radius-md);border:1px solid var(--border);margin-top:3rem;padding:2rem}.solving-tips h2{font:700 1.5rem/1.2 var(--font-display);color:var(--ink);margin-bottom:1rem}.tips-list{margin:0;padding-left:1.5rem}.tips-list li{color:var(--ink-light);margin-bottom:.75rem;padding-left:.5rem;line-height:1.7}.tips-list li::marker{color:var(--highlight);font-weight:700}.theme-faq{margin-top:3rem}.theme-faq h2{font:700 1.5rem/1.2 var(--font-display);color:var(--ink);margin-bottom:1.5rem}.faq-list{flex-direction:column;gap:.75rem;display:flex}.theme-faq .faq-item{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.theme-faq .faq-question{font:600 1rem/1.4 var(--font-body);color:var(--ink);cursor:pointer;justify-content:space-between;align-items:center;padding:1rem 1.25rem;list-style:none;display:flex}.theme-faq .faq-question::-webkit-details-marker{display:none}.theme-faq .faq-question:after{content:"+";color:var(--highlight);font-size:1.25rem;font-weight:400;transition:transform .2s}.theme-faq details[open] .faq-question:after{content:"−"}.theme-faq .faq-answer{color:var(--ink-light);margin:0;padding:0 1.25rem 1rem;line-height:1.7}@media (max-width:640px){.sample-vocabulary,.educational-benefits,.solving-tips{padding:1.5rem}.sample-vocabulary h2,.educational-benefits h2,.use-cases-section h2,.solving-tips h2,.theme-faq h2{font-size:1.25rem}.benefits-grid,.use-cases-grid{grid-template-columns:1fr}.sample-words-grid{gap:.5rem}.sample-word{padding:.375rem .75rem;font-size:.75rem}}
