@import "https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,400;12..96,500;12..96,600;12..96,700;12..96,800&family=IBM+Plex+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400;1,500&family=JetBrains+Mono:wght@400;500;600&display=swap";*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:focus-visible{outline:3px solid var(--color-correct,#538d4e);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:root{--color-correct:#3ec97b;--color-present:#e6c04a;--color-absent:#3e4049;--color-tile-bg:#0d0d14;--color-tile-text:#f0f0ec;--color-tile-revealed:#fff;--color-border-empty:#ffffff2e;--color-border-filled:#e8e8e4;--color-key-bg:#1c1c26;--color-key-text:#f0f0ec;--radius-xs:3px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--tile-radius:10px;--key-radius:8px;--shadow-sm:0 1px 3px #0006, 0 1px 2px #0000004d;--shadow-md:0 4px 12px #00000080, 0 2px 4px #0000004d;--shadow-lg:0 8px 24px #0009, 0 4px 8px #0006;--opacity-muted:.55;--opacity-dim:.65;--transition-fast:.12s ease;--transition-base:.2s ease;--color-surface:#14141e;--color-surface-2:#1a1a26;--color-gold-accent:#d8a64d;--color-streak-accent:#ff6b35;--color-weekly-accent:#f5c518;--header-bg:#0d0d14eb;--header-border:#ffffff1a}:root[data-theme=light]{--color-correct:#1e9e56;--color-present:#b8900a;--color-absent:#c8ccd4;--color-tile-bg:#f5f5f0;--color-tile-text:#0d0d14;--color-tile-revealed:#fff;--color-border-empty:#0d0d142e;--color-border-filled:#0d0d14;--color-key-bg:#e8e8e2;--color-key-text:#0d0d14;--color-surface:#efefea;--color-surface-2:#e4e4de;--header-bg:#efefeaf0;--header-border:#0d0d141f}:root[data-contrast=high]{--color-correct:#f5793a;--color-present:#85c0f9}body{background:var(--color-tile-bg);color:var(--color-tile-text);font-family:IBM Plex Sans,system-ui,sans-serif;transition:background-color .22s,color .22s}.app,.app-shell{background:var(--color-tile-bg);min-height:100svh;color:var(--color-tile-text);flex-direction:column;align-items:center;font-family:IBM Plex Sans,system-ui,sans-serif;transition:background-color .22s,color .22s,border-color .22s;display:flex}.app-loading{background:var(--color-tile-bg);min-height:100svh;color:var(--color-tile-text);justify-content:center;align-items:center;font-size:2rem;display:flex}.app-main{flex-direction:column;flex:1;align-items:center;width:100%;display:flex}.app-header{border-bottom:1px solid var(--header-border);background:var(--header-bg);-webkit-backdrop-filter:blur(12px);z-index:50;width:100%;max-width:none;position:sticky;top:0;box-shadow:0 1px #3ec97b1f,0 4px 16px #0000004d}.header-inner{align-items:center;gap:12px;max-width:960px;margin:0 auto;padding:10px 20px;display:flex}.brand{letter-spacing:-.04em;text-transform:uppercase;color:var(--color-tile-text);background:linear-gradient(135deg, var(--color-tile-text) 60%, var(--color-correct));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;flex-shrink:0;font-family:Bricolage Grotesque,sans-serif;font-size:1.5rem;font-weight:800;text-decoration:none}.header-nav-wrap{flex:1;min-width:0;margin-left:8px;position:relative;overflow:hidden}.header-nav{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:4px;padding-right:36px;display:flex;overflow-x:auto}.header-nav::-webkit-scrollbar{display:none}.header-nav a{border-radius:var(--radius-lg);color:var(--color-tile-text);opacity:.5;white-space:nowrap;border:1px solid #0000;padding:5px 11px;font-family:JetBrains Mono,monospace;font-size:.82rem;font-weight:500;text-decoration:none;transition:opacity .18s,background-color .18s,color .18s}.header-nav a:hover{opacity:.85;background:#ffffff0f}.header-nav a.active{opacity:1;color:var(--color-correct);background:#3ec97b1f;border-color:#3ec97b47;font-weight:700}.header-actions{align-items:center;gap:6px;display:flex}.icon-btn{cursor:pointer;color:var(--color-tile-text);background:0 0;border:1px solid #0000;border-radius:4px;padding:4px 6px;font-size:1.1rem;line-height:1;transition:background-color .2s,border-color .2s}.icon-btn:hover{background:var(--color-key-bg);border-color:var(--color-border-empty)}.username{opacity:.7;text-overflow:ellipsis;white-space:nowrap;max-width:90px;font-family:JetBrains Mono,monospace;font-size:.85rem;overflow:hidden}@media (width<=720px){.header-inner{gap:8px;padding:10px 12px}.header-actions{gap:2px}.username{display:none}}@media (width<=480px){.header-inner{flex-wrap:wrap;gap:6px;padding:8px}.brand{font-size:1.15rem}.header-nav-wrap{margin-left:0}.header-nav{gap:0}.header-nav a{padding:4px 5px;font-size:.72rem}.header-actions{gap:2px}.header-actions .username{display:none}.icon-btn{padding:2px 4px;font-size:.85rem}.username{max-width:64px;font-size:.78rem}}header{border-bottom:2px dashed var(--color-border-empty);text-align:center;width:100%;max-width:500px;padding:16px 0 8px}header h1{letter-spacing:-.03em;text-transform:uppercase;color:var(--color-tile-text);margin:0;font-family:Bricolage Grotesque,sans-serif;font-size:2.2rem;font-weight:800}.subtitle{opacity:.55;letter-spacing:.5px;margin:4px 0 0;font-family:JetBrains Mono,monospace;font-size:.75rem}.game-subtitle{opacity:.65;text-align:center;margin-top:12px;padding:0 12px;font-family:JetBrains Mono,monospace;font-size:.82rem}.results-bar{flex-wrap:wrap;justify-content:center;gap:8px;margin:16px 0 4px;display:flex}.load-error{text-align:center;padding:40px 16px}.load-error p{opacity:.8;margin-bottom:14px}.archive-picker{text-align:center;max-width:420px;padding:24px 16px}.archive-picker p{opacity:.7;margin:8px 0 18px;font-size:.9rem}.archive-row{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.archive-row input{border:2px solid var(--color-border-empty);background:var(--color-tile-bg);color:var(--color-tile-text);border-radius:8px;padding:10px 12px;font-size:1rem}.definition-link{color:var(--color-correct);margin:4px 0;font-size:.85rem;text-decoration:none;display:inline-block}.definition-link:hover{text-decoration:underline}.toast-container{z-index:1000;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;top:80px;left:50%;transform:translate(-50%)}.toast-item{background:var(--color-tile-text);color:var(--color-tile-bg);letter-spacing:1px;border:2px solid var(--color-border-filled);text-align:center;border-radius:6px;max-width:min(90vw,360px);padding:10px 20px;font-size:.9rem;font-weight:700;animation:.2s cubic-bezier(.16,1,.3,1) forwards toast-slide-in;box-shadow:0 6px 24px #0006,0 2px 8px #0003}@media (width<=480px){.toast-container{top:96px}}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(-12px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.toast-item--achievement{border-color:var(--color-gold-accent);background:linear-gradient(135deg, #d4af372e, var(--color-tile-text));letter-spacing:.5px}.practice-tier-bar{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:8px auto 2px;display:flex}.practice-tier-label{opacity:.7;white-space:nowrap;font-size:.8rem;font-weight:600}.practice-tier-btn{border:2px solid var(--color-border-filled);background:var(--color-key-bg);color:var(--color-tile-text);cursor:pointer;border-radius:4px;padding:4px 12px;font-family:JetBrains Mono,monospace;font-size:.78rem;font-weight:700;transition:background .15s,color .15s,transform .1s,box-shadow .1s}.practice-tier-btn.active{background:var(--color-border-filled);color:var(--color-tile-bg)}.practice-tier-btn.apply{background:var(--color-correct);border-color:var(--color-correct);color:#fff}.practice-tier-btn:hover:not(.active):not(.apply){opacity:.75}.practice-tier-btn:active{transform:scale(.96)}.practice-tier-btn:focus-visible{outline:2px solid var(--color-correct);outline-offset:2px}.practice-timer{background:var(--color-key-bg);border:2px solid var(--color-border-filled);width:fit-content;box-shadow:2px 2px 0 var(--color-border-filled);border-radius:4px;justify-content:center;align-items:center;gap:6px;margin:10px auto -5px;padding:6px 16px;font-family:JetBrains Mono,monospace;font-size:1.25rem;font-weight:800;display:flex}.community-dist{border-top:1.5px solid var(--color-border-filled);margin:12px 0;padding:10px 0 4px}.community-dist-header{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.community-dist-title{text-transform:uppercase;letter-spacing:.5px;opacity:.8;font-size:.78rem;font-weight:700}.community-dist-count{opacity:.6;font-family:JetBrains Mono,monospace;font-size:.72rem}.community-dist-svg{width:100%;overflow:visible}.dist-svg-bar.community{fill:var(--color-present);opacity:.7}.word-rating{border-top:1.5px solid var(--color-border-filled);flex-direction:column;align-items:center;gap:6px;margin:10px 0 2px;padding-top:12px;display:flex}.word-rating-label{text-transform:uppercase;letter-spacing:.5px;opacity:.8;font-size:.78rem;font-weight:700}.word-rating-stars{gap:4px;display:flex}.rating-star{cursor:pointer;color:var(--color-border-filled);background:0 0;border:none;padding:2px;font-size:1.5rem;line-height:1;transition:color .12s,transform .1s}.rating-star.filled{color:var(--color-gold-accent)}.rating-star:hover{color:var(--color-gold-accent);transform:scale(1.2)}.word-rating-community{opacity:.65;font-family:JetBrains Mono,monospace;font-size:.72rem}.stats-community-avg{opacity:.7;text-align:center;margin:-4px 0 8px;font-family:JetBrains Mono,monospace;font-size:.78rem}.daily-countdown-bar{text-align:center;opacity:.55;margin:14px auto 0;font-size:.78rem}.daily-countdown-bar .countdown-label{letter-spacing:.5px;font-size:.7rem}.daily-countdown-bar .countdown-clock{font-size:1rem;font-weight:700}.streak-banner{text-align:center;background:linear-gradient(90deg, var(--color-streak-accent) 0%, #f7c59f 100%);color:#0b0b0f;border:2px solid var(--color-streak-accent);border-radius:4px;width:fit-content;margin:4px auto 6px;padding:6px 16px;font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:700;animation:2s ease-in-out infinite banner-pulse}@keyframes banner-pulse{0%,to{opacity:1}50%{opacity:.85}}:root[data-contrast=high] .streak-banner{background:linear-gradient(90deg, var(--color-correct) 0%, var(--color-present) 100%);border-color:var(--color-correct)}.hint-btn{border:1.5px dashed var(--color-border-filled);color:var(--color-tile-text);cursor:pointer;opacity:.75;background:0 0;border-radius:4px;margin:8px auto 0;padding:5px 14px;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:600;transition:opacity .15s;display:block}.hint-btn:hover{opacity:1}.hint-btn:focus-visible{outline:2px solid var(--color-correct);outline-offset:2px;opacity:1;border-style:solid}.hint-display{text-align:center;color:var(--color-correct);border:1.5px solid var(--color-correct);border-radius:4px;width:fit-content;margin:6px auto 0;padding:4px 12px;font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:700}.year-heatmap-container{margin-bottom:20px}.month-heatmap{margin-bottom:14px}.month-heatmap-label{opacity:.6;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-family:JetBrains Mono,monospace;font-size:.72rem;font-weight:700}.mini-heatmap-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.mini-heat-cell{aspect-ratio:1;background:var(--color-key-bg);opacity:.4;border-radius:2px}.mini-heat-cell.won{background:var(--color-correct);opacity:1}.mini-heat-cell.lost{opacity:.8;background:#e05252}.mini-heat-cell.future{background:var(--color-key-bg);opacity:.15}.mini-heat-cell.pad{background:0 0}.show-more-btn{border:1.5px solid var(--color-border-filled);width:100%;color:var(--color-tile-text);cursor:pointer;opacity:.7;background:0 0;border-radius:4px;margin-top:6px;padding:6px;font-family:JetBrains Mono,monospace;font-size:.75rem}.show-more-btn:hover{opacity:1}.show-more-btn:focus-visible{outline:2px solid var(--color-correct);outline-offset:2px;opacity:1}.opening-analysis{margin-bottom:20px}.opening-list{flex-direction:column;gap:6px;display:flex}.opening-row{border:1.5px solid var(--color-border-filled);background:var(--color-tile-bg);border-radius:4px;justify-content:space-between;align-items:center;padding:6px 10px;display:flex}.opening-word{letter-spacing:.1em;font-family:JetBrains Mono,monospace;font-size:.95rem;font-weight:800}.opening-stats{opacity:.65;font-family:JetBrains Mono,monospace;font-size:.72rem}.admin-section{border-top:2px solid var(--color-border-filled);margin-top:40px;padding-top:24px}.admin-section-title{margin-bottom:6px;font-family:Bricolage Grotesque,sans-serif;font-size:1.2rem;font-weight:800}.schedule-form{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.schedule-form input{border:2px solid var(--color-border-filled);background:var(--color-tile-bg);min-width:120px;color:var(--color-tile-text);border-radius:4px;flex:1;padding:6px 10px;font-family:JetBrains Mono,monospace;font-size:.85rem}.schedule-form input:focus{border-color:var(--color-correct);outline:none}.schedule-table td{padding:8px 10px}.weekly-banner{text-align:center;background:linear-gradient(90deg, var(--color-weekly-accent) 0%, #ffdf80 100%);color:#1a1a1a;border:2px solid var(--color-weekly-accent);border-radius:4px;width:fit-content;margin:4px auto 8px;padding:7px 16px;font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:700}:root[data-contrast=high] .weekly-banner{background:linear-gradient(90deg, var(--color-correct) 0%, var(--color-present) 100%);border-color:var(--color-correct)}.weekly-unavailable{text-align:center;padding:40px 20px}.weekly-unavailable-text{opacity:.7;margin:12px 0 6px}.weekly-unavailable-hint{opacity:.5;font-size:.85rem}.weekly-bonus-indicator{text-align:center;color:var(--color-weekly-accent);margin:8px 0;font-size:.9rem;font-weight:600}.lb-my-rank{text-align:center;opacity:.75;margin:12px 0;font-family:JetBrains Mono,monospace;font-size:.85rem}.lb-my-rank strong{opacity:1;color:var(--color-correct)}.profile-rank-badge{text-align:center;background:var(--color-key-bg);border-radius:4px;width:fit-content;margin:0 auto 16px;padding:6px 16px;font-family:JetBrains Mono,monospace;font-size:.85rem}.profile-rank-badge strong{color:var(--color-correct)}.lb-suspicious{cursor:default;margin-left:5px;font-size:.85em}.flagged-row td{background:#ffc8000d}.flag-count-badge{color:#ff6b6b;background:#ff505033;border-radius:4px;padding:1px 6px;font-size:.8rem;font-weight:700;display:inline-block}.skip-link{background:var(--color-correct);color:#fff;z-index:9999;border-radius:4px;padding:8px 16px;font-weight:700;transition:top .15s;position:absolute;top:-100px;left:8px}.skip-link:focus{top:8px}.header-nav-wrap:after{content:"";background:linear-gradient(to right, transparent, var(--color-tile-bg));pointer-events:none;width:32px;position:absolute;top:0;bottom:0;right:0}@keyframes skeleton-pulse{0%,to{opacity:.35}50%{opacity:.7}}.lb-skeleton{flex-direction:column;gap:8px;padding:8px 0;display:flex}.lb-skeleton-row{border-radius:var(--radius-sm);background:var(--color-key-bg);height:38px;animation:1.4s ease-in-out infinite skeleton-pulse}.stats-skeleton{padding:8px 0}.stats-skeleton-numbers{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.skeleton-stat{border-radius:var(--radius-sm);background:var(--color-key-bg);flex:60px;height:56px;animation:1.4s ease-in-out infinite skeleton-pulse}.stats-skeleton-dist{flex-direction:column;gap:6px;display:flex}.skeleton-bar{border-radius:var(--radius-xs);background:var(--color-key-bg);height:19px;animation:1.4s ease-in-out infinite skeleton-pulse}.streak-freeze-badge{text-align:center;opacity:.85;margin:4px auto;padding:8px 16px;font-size:.85rem}.freeze-hint{opacity:.55;margin-top:2px;font-size:.72rem;display:block}.challenge-results-section{text-align:center;max-width:500px;margin:0 auto;padding:0 8px 32px}.challenge-results{text-align:left;margin-top:8px}.challenge-results-title{text-align:center;margin:12px 0 8px;font-size:1rem;font-weight:700}.settings-tabs{border-bottom:2px solid var(--color-border-empty);margin-bottom:0;padding-bottom:0}.settings-tab-panel{padding-top:8px}@media (prefers-reduced-motion:reduce){.lb-skeleton-row,.skeleton-stat,.skeleton-bar{opacity:.5;animation:none}}.auth{justify-content:center;align-items:center;min-height:100svh;padding:20px;display:flex}.auth-card{text-align:center;width:100%;max-width:360px}.auth-card h1{letter-spacing:-.03em;text-transform:uppercase;margin:0;font-family:Bricolage Grotesque,sans-serif;font-size:2.6rem;font-weight:800}.auth-tagline{opacity:.55;margin:4px 0 28px;font-family:JetBrains Mono,monospace;font-size:.85rem}.auth-tabs{background:var(--color-key-bg);border:1px solid var(--color-border-empty);border-radius:4px;gap:4px;margin-bottom:20px;padding:4px;display:flex}.auth-tabs button{color:var(--color-key-text);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;opacity:.6;background:0 0;border:none;border-radius:2px;flex:1;padding:10px;font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:700;transition:opacity .2s,background-color .2s}.auth-tabs button.active{background:var(--color-tile-bg);border:1px solid var(--color-border-empty);opacity:1}.auth form{flex-direction:column;gap:10px;display:flex}.auth input{border:2px solid var(--color-border-empty);background:var(--color-tile-bg);color:var(--color-tile-text);border-radius:2px;padding:13px 14px;font-family:JetBrains Mono,monospace;font-size:.95rem;transition:border-color .2s}.auth input:focus{border-color:var(--color-correct);outline:none}.auth-error{color:#e06a6a;background:#dc505026;border:1px solid #dc50504d;border-radius:2px;padding:10px;font-family:IBM Plex Sans,sans-serif;font-size:.85rem}.auth-submit{border:1px solid var(--color-border-empty);background:var(--color-correct);color:#fff;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;box-shadow:0 3px 0 var(--color-border-empty);border-radius:2px;margin-top:6px;padding:13px;font-family:JetBrains Mono,monospace;font-size:.95rem;font-weight:700;transition:background-color .2s,transform 80ms,box-shadow 80ms;transform:translateY(0)}.auth-submit:disabled{opacity:.6;cursor:default}.auth-submit:not(:disabled):hover{filter:brightness(1.1)}.auth-submit:not(:disabled):active{box-shadow:none;transform:translateY(3px)}.auth-hint{opacity:.5;margin-top:16px;font-family:JetBrains Mono,monospace;font-size:.78rem}.board{--tile-size:min(62px, calc((92vw - 4 * var(--tile-gap)) / 5), 14vh);--tile-gap:6px;gap:var(--tile-gap);flex-direction:column;margin:20px auto;display:flex}.row{gap:var(--tile-gap);display:flex}.row.shake{animation:.5s ease-in-out shake}.tile{width:var(--tile-size);height:var(--tile-size);border:2px solid var(--color-border-empty);border-radius:var(--tile-radius,10px);font-size:calc(var(--tile-size) * .48);color:var(--color-tile-text);background:var(--color-tile-bg);-webkit-user-select:none;user-select:none;backface-visibility:hidden;will-change:transform;justify-content:center;align-items:center;font-family:JetBrains Mono,monospace;font-weight:700;transition:background-color .22s,border-color .22s,color .22s,box-shadow .22s;display:flex;box-shadow:inset 0 1px #ffffff0a}.tile[data-state=active],.tile[data-state=empty]{border-color:var(--color-border-empty)}.tile.filled[data-state=active]{border-color:#ffffff8c;animation:.1s ease-in-out pop;box-shadow:inset 0 1px #ffffff14,0 0 0 1px #ffffff14}.tile[data-state=correct]{background:var(--color-correct);border-color:var(--color-correct);color:#fff;box-shadow:0 2px 8px #3ec97b59}.tile[data-state=present]{background:var(--color-present);border-color:var(--color-present);color:#fff;box-shadow:0 2px 8px #e6c04a4d}.tile[data-state=absent]{background:var(--color-absent);border-color:var(--color-absent);color:#ffffffbf;box-shadow:none}.tile.reveal{animation:.5s forwards flip;animation-delay:var(--reveal-delay,0s);background:var(--color-tile-bg);border-color:var(--color-border-empty);color:var(--color-tile-text)}.tile.reveal[data-state=correct]{animation-name:flip-correct}.tile.reveal[data-state=present]{animation-name:flip-present}.tile.reveal[data-state=absent]{animation-name:flip-absent}@keyframes flip-correct{0%{background:var(--color-tile-bg);border-color:var(--color-border-empty);color:var(--color-tile-text);transform:rotateX(0)}49%{background:var(--color-tile-bg);transform:rotateX(-90deg)}50%{background:var(--color-correct);border-color:var(--color-correct);color:var(--color-tile-revealed,#fff);transform:rotateX(-90deg)}to{background:var(--color-correct);border-color:var(--color-correct);color:var(--color-tile-revealed,#fff);transform:rotateX(0)}}@keyframes flip-present{0%{background:var(--color-tile-bg);border-color:var(--color-border-empty);color:var(--color-tile-text);transform:rotateX(0)}49%{background:var(--color-tile-bg);transform:rotateX(-90deg)}50%{background:var(--color-present);border-color:var(--color-present);color:var(--color-tile-revealed,#fff);transform:rotateX(-90deg)}to{background:var(--color-present);border-color:var(--color-present);color:var(--color-tile-revealed,#fff);transform:rotateX(0)}}@keyframes flip-absent{0%{background:var(--color-tile-bg);border-color:var(--color-border-empty);color:var(--color-tile-text);transform:rotateX(0)}49%{background:var(--color-tile-bg);transform:rotateX(-90deg)}50%{background:var(--color-absent);border-color:var(--color-absent);color:var(--color-tile-revealed,#fff);transform:rotateX(-90deg)}to{background:var(--color-absent);border-color:var(--color-absent);color:var(--color-tile-revealed,#fff);transform:rotateX(0)}}@media (height<=500px){.board{--tile-size:min(44px, calc((92vw - 4 * var(--tile-gap)) / 5), 8vh);--tile-gap:4px;margin:8px auto}}@keyframes pop{0%{transform:scale(1)}50%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}15%{transform:translate(-6px)}30%{transform:translate(6px)}45%{transform:translate(-6px)}60%{transform:translate(6px)}75%{transform:translate(-4px)}90%{transform:translate(4px)}}@media (prefers-reduced-motion:reduce){.tile{transition:none!important}.tile.pop,.tile.shake{animation:none!important}.toast-item{opacity:1;animation:none!important}}.keyboard{box-sizing:border-box;flex-direction:column;gap:8px;width:100%;max-width:500px;margin:0 auto;padding:0 6px;display:flex}.keyboard-row{justify-content:center;gap:4px;display:flex}.key{border-radius:var(--key-radius,8px);background:var(--color-key-bg);min-width:0;height:58px;color:var(--color-key-text);cursor:pointer;text-transform:uppercase;touch-action:manipulation;border:1px solid #ffffff17;flex:1 1 0;max-width:46px;padding:0 2px;font-family:JetBrains Mono,monospace;font-size:clamp(.7rem,2.6vw,.85rem);font-weight:700;transition:background-color .18s,border-color .18s,color .18s,transform 70ms,box-shadow 70ms;transform:translateY(0);box-shadow:0 3px #00000059,inset 0 1px #ffffff0f}.key.wide{flex:1.5 1 0;max-width:66px;font-size:clamp(.6rem,2.2vw,.75rem)}@media (height<=720px){.key{height:48px}}@media (height<=500px){.key{height:40px}}.key:disabled{opacity:.45;cursor:not-allowed}.key:hover{filter:brightness(1.1)}.key:active,.key.pressed{box-shadow:none;filter:brightness(.95);transform:translateY(3px)}.key:focus-visible{outline:2px solid var(--color-correct);outline-offset:1px;z-index:1;position:relative}.key.correct{background:var(--color-correct);color:#fff;border-color:var(--color-correct);animation:.3s ease-out key-reveal;box-shadow:0 2px 6px #3ec97b66,inset 0 1px #ffffff26}.key.present{background:var(--color-present);color:#fff;border-color:var(--color-present);animation:.3s ease-out key-reveal;box-shadow:0 2px 6px #e6c04a59,inset 0 1px #ffffff26}.key.absent{background:var(--color-absent);color:#fff9;border-color:var(--color-absent);animation:.3s ease-out key-reveal;box-shadow:0 2px #0000004d,inset 0 1px #ffffff0a}.key.umlaut{border-color:var(--color-border-filled);opacity:.9}@keyframes key-reveal{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.stats{width:100%}.stats-loading{opacity:.5;padding:30px;font-size:1.5rem}.stats-numbers{flex-wrap:wrap;justify-content:center;gap:14px;margin-bottom:20px;display:flex}.stat{text-align:center}.stat-value{font-family:JetBrains Mono,monospace;font-size:1.7rem;font-weight:700;line-height:1}.stat-label{opacity:.6;text-transform:uppercase;letter-spacing:.5px;margin-top:4px;font-size:.65rem}.stats-heading{letter-spacing:-.01em;text-transform:uppercase;opacity:.8;text-align:center;margin:0 0 12px;font-family:Bricolage Grotesque,sans-serif;font-size:.95rem;font-weight:800}.stats-dist-svg{width:100%;max-width:280px;margin:0 auto;display:block}.dist-svg-label{fill:var(--color-tile-text);dominant-baseline:middle;font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:700}.dist-svg-bar{fill:var(--color-absent);transition:width .8s cubic-bezier(.16,1,.3,1)}.dist-svg-bar.highlight{fill:var(--color-correct)}.dist-svg-count{fill:#fff;dominant-baseline:middle;pointer-events:none;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:700;transition:x .8s cubic-bezier(.16,1,.3,1)}.stats-achievements{flex-direction:column;gap:10px;max-width:min(100%,320px);margin-top:16px;margin-left:auto;margin-right:auto;display:flex}.stats-achievements-compact{width:100%;margin-top:8px}.achievements-unlocked-list{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}.achievements-locked-grid{grid-template-columns:1fr 1fr;gap:5px;display:grid}.achievement-mini{border-radius:var(--radius-sm,6px);background:var(--color-key-bg);border:1px dashed var(--color-border-empty);opacity:.5;text-align:center;flex-direction:column;align-items:center;gap:3px;padding:6px 8px;display:flex}.achievement-mini-icon{font-size:.95rem;line-height:1}.achievement-mini-title{text-transform:uppercase;letter-spacing:-.01em;font-family:Bricolage Grotesque,sans-serif;font-size:.62rem;font-weight:700;line-height:1.2}.achievement-mini-bar{background:var(--color-border-empty);border-radius:2px;width:100%;height:3px;margin-top:2px;overflow:hidden}.achievement-mini-fill{background:var(--color-correct);border-radius:2px;min-width:2px;height:100%}.achievements-profile-link{text-align:center;opacity:.55;color:var(--color-correct);margin-top:10px;font-size:.75rem;text-decoration:none;display:block}.achievements-profile-link:hover{opacity:.85;text-decoration:underline}.achievement-badge{text-align:left;border-radius:6px;align-items:center;gap:14px;padding:10px 14px;transition:all .2s;display:flex}.achievement-badge.locked{background:var(--color-key-bg);border:2px dashed var(--color-border-empty);opacity:.45}.achievement-badge.unlocked{background:var(--color-tile-bg);border:2px solid var(--color-border-filled);box-shadow:2px 2px 0 var(--color-border-filled)}.achievement-icon{justify-content:center;align-items:center;width:24px;height:24px;font-size:1.4rem;line-height:1;display:flex}.achievement-badge.unlocked .achievement-icon{color:var(--color-correct)}.achievement-badge.locked .achievement-icon{color:var(--color-border-filled);opacity:.5}.achievement-info{flex-direction:column;gap:2px;display:flex}.achievement-title{text-transform:uppercase;letter-spacing:-.01em;font-family:Bricolage Grotesque,sans-serif;font-size:.88rem;font-weight:800}.achievement-desc{opacity:.75;font-size:.72rem;line-height:1.3}.achievement-progress{opacity:.5;margin-top:3px;font-family:JetBrains Mono,monospace;font-size:.68rem}.modal-overlay{-webkit-backdrop-filter:blur(4px);z-index:100;background:#000000a6;justify-content:center;align-items:center;animation:.18s fadein;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface,#14141e);text-align:center;border:1px solid #ffffff1a;border-radius:20px;min-width:300px;max-width:min(420px,92vw);max-height:90svh;padding:28px 32px;font-family:IBM Plex Sans,system-ui,sans-serif;animation:.22s cubic-bezier(.16,1,.3,1) slidein;position:relative;overflow-y:auto;box-shadow:0 24px 64px #000000b3,0 4px 16px #0006}.modal-close{cursor:pointer;color:var(--color-key-text);opacity:.6;background:0 0;border:none;padding:8px 12px;font-size:1.1rem;position:absolute;top:12px;right:14px}.modal-close:hover{opacity:1}.modal-close:focus-visible{opacity:1;outline:2px solid var(--color-correct);border-radius:4px}.modal-icon{margin-bottom:8px;font-size:2.5rem}.modal h2{letter-spacing:-.02em;margin:0 0 12px;font-family:Bricolage Grotesque,sans-serif;font-size:1.8rem;font-weight:800}.modal p{color:var(--color-key-text);opacity:.85;margin:0 0 10px}.answer{color:var(--color-correct);letter-spacing:2px;font-family:JetBrains Mono,monospace}.next-word{font-size:.85rem;opacity:.6!important}.modal-countdown-label{opacity:.55;text-transform:uppercase;letter-spacing:.5px;margin:16px 0 0;font-family:JetBrains Mono,monospace;font-size:.75rem}.countdown{flex-direction:column;align-items:center;gap:2px;margin-top:4px;display:flex}.countdown-label{text-transform:uppercase;letter-spacing:.5px;opacity:.55;white-space:nowrap;font-family:JetBrains Mono,monospace;font-size:.7rem}.countdown-clock{font-variant-numeric:tabular-nums;letter-spacing:1px;font-family:JetBrains Mono,monospace;font-size:1.5rem;font-weight:700}.modal-btn{background:var(--color-correct);color:#fff;border:1px solid var(--color-border-empty);border-radius:var(--radius-sm,6px);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;box-shadow:0 3px 0 var(--color-border-empty);margin-top:16px;padding:10px 28px;font-family:JetBrains Mono,monospace;font-size:.9rem;font-weight:700;transition:background-color .2s,transform 80ms,box-shadow 80ms;transform:translateY(0)}.modal-btn:hover{filter:brightness(1.1)}.modal-btn:active{box-shadow:none;transform:translateY(3px)}.modal-btn:focus-visible{outline-offset:2px;outline:2px solid #fff9}.modal-btn.ghost:focus-visible{outline:2px solid var(--color-correct)}.modal-btn.ghost{border:2px solid var(--color-border-filled);color:var(--color-tile-text);box-shadow:none;background:0 0}.modal-btn.ghost:active{transform:none}.share-btn{background:var(--color-correct)}.definition-panel{border:2px dashed var(--color-border-empty);background:var(--color-key-bg);text-align:center;border-radius:4px;max-width:min(100%,320px);margin:16px auto;padding:14px}.definition-label{color:var(--color-key-text);opacity:.7;margin-bottom:10px;font-size:.8rem;display:block}.definition-links{justify-content:center;gap:10px;display:flex}.definition-link{border:1px solid var(--color-border-empty);border-radius:var(--radius-sm,6px);background:var(--color-tile-bg);color:var(--color-tile-text);box-shadow:0 2px 0 var(--color-border-empty);align-items:center;padding:8px 14px;font-family:JetBrains Mono,monospace;font-size:.82rem;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.definition-link:hover{border-color:var(--color-correct);color:var(--color-correct);box-shadow:0 3px 0 var(--color-border-empty);background:#4da36e14;transform:translateY(-1px)}.definition-link:active{box-shadow:none;transform:translateY(1px)}@keyframes fadein{0%{opacity:0}to{opacity:1}}@keyframes slidein{0%{opacity:0;transform:translateY(-14px)scale(.98)}to{opacity:1;transform:none}}@keyframes fadeout{0%{opacity:1}to{opacity:0}}@keyframes slideout{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(-10px)scale(.97)}}.modal-overlay.closing{animation:.18s forwards fadeout}.modal-overlay.closing .modal{animation:.15s forwards slideout}.practice-speedrun-stats{background:var(--color-key-bg);border:1px solid var(--color-border-empty);border-radius:4px;justify-content:center;gap:16px;width:fit-content;margin:12px auto;padding:8px 12px;font-family:JetBrains Mono,monospace;font-size:.85rem;display:flex}.calendar-container{border:2px solid var(--color-border-filled);background:var(--color-tile-bg);max-width:380px;box-shadow:4px 4px 0 var(--color-border-filled);border-radius:4px;margin:20px auto;padding:16px}.calendar-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.calendar-header h3{text-transform:uppercase;letter-spacing:-.01em;margin:0;font-family:Bricolage Grotesque,sans-serif;font-size:1.1rem;font-weight:800}.calendar-nav-btn{background:var(--color-key-bg);color:var(--color-key-text);border:2px solid var(--color-border-filled);cursor:pointer;box-shadow:2px 2px 0 var(--color-border-filled);border-radius:2px;padding:4px 10px;font-weight:700;transition:all .1s}.calendar-nav-btn:hover:not(:disabled){box-shadow:3px 3px 0 var(--color-border-filled);filter:brightness(1.05);transform:translate(-1px,-1px)}.calendar-nav-btn:active:not(:disabled){box-shadow:1px 1px 0 var(--color-border-filled);transform:translate(1px,1px)}.calendar-nav-btn:disabled{opacity:.3;cursor:not-allowed;box-shadow:none}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.calendar-weekday{text-transform:uppercase;text-align:center;opacity:.6;border-bottom:1px solid var(--color-border-empty);padding-bottom:4px;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:800}.calendar-cell{aspect-ratio:1;border-radius:2px;flex-direction:column;justify-content:center;align-items:center;font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:700;display:flex;position:relative}.calendar-cell.pad{pointer-events:none;background:0 0}.calendar-cell.future{opacity:.35;border:1px dashed var(--color-border-empty);cursor:not-allowed;background:0 0}.calendar-btn-cell{aspect-ratio:1;background:var(--color-key-bg);width:100%;height:100%;color:var(--color-key-text);border:2px solid var(--color-border-filled);cursor:pointer;border-radius:2px;flex-direction:column;justify-content:center;align-items:center;padding:0;font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:700;transition:all .1s;display:flex}.calendar-btn-cell:hover{background:var(--color-tile-bg);border-color:var(--color-border-filled);box-shadow:2px 2px 0 var(--color-border-filled);transform:translate(-1px,-1px)}.calendar-btn-cell:active{box-shadow:none;transform:translate(1px,1px)}.calendar-btn-cell.won{background:var(--color-correct);border-color:var(--color-correct);color:#fff}.calendar-btn-cell.won:hover{filter:brightness(1.08);box-shadow:2px 2px 0 var(--color-border-filled)}.calendar-btn-cell.lost{background:var(--color-absent);border-color:var(--color-absent);color:#fff}.calendar-btn-cell.lost:hover{filter:brightness(1.08);box-shadow:2px 2px 0 var(--color-border-filled)}.cell-guesses{opacity:.9;margin-top:1px;font-size:.55rem;font-weight:800}.leaderboard{width:100%;max-width:460px;padding:20px 16px}.lb-title{text-align:center;margin:8px 0 20px;font-size:1.5rem}.lb-tabs{background:var(--color-key-bg);border-radius:8px;gap:4px;max-width:360px;margin:0 auto 20px;padding:4px;display:flex}.lb-tabs button{color:var(--color-key-text);cursor:pointer;opacity:.6;background:0 0;border:none;border-radius:6px;flex:1;padding:9px;font-size:.9rem;font-weight:700;transition:opacity .15s,background-color .15s}.lb-tabs button.active{background:var(--color-tile-bg);opacity:1}.lb-tabs button:not(.active):hover{opacity:.85;background:#ffffff0d}.lb-tabs button:focus-visible{outline:2px solid var(--color-correct);outline-offset:-2px;border-radius:6px}.lb-table{border-collapse:collapse;width:100%;font-size:.92rem}.lb-table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;opacity:.5;border-bottom:1px solid var(--color-border-empty);padding:6px 10px;font-size:.7rem}.lb-table td{border-bottom:1px solid var(--color-border-empty);padding:10px}.lb-table th:first-child,.lb-table td:first-child{opacity:.7;width:28px}.lb-table tr.me{background:#538d4e2e;font-weight:700}.lb-fail{color:#e06a6a;font-weight:700}.lb-dim{opacity:.45}.lb-empty,.lb-error{text-align:center;opacity:.6;padding:30px 10px}.lb-error{color:#e06a6a}.lb-user-btn{color:var(--color-tile-text);font-family:inherit;font-size:inherit;font-weight:inherit;cursor:pointer;text-underline-offset:3px;background:0 0;border:none;margin:0;padding:0;-webkit-text-decoration:underline dashed;text-decoration:underline dashed;transition:color .15s}.lb-user-btn:hover{color:var(--color-correct);text-decoration-style:solid}.lb-loading{color:var(--color-tile-text);opacity:.85;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:40px 10px;font-family:JetBrains Mono,monospace;font-size:.85rem;display:flex}.lb-spinner{border:3px solid var(--color-border-empty);border-top-color:var(--color-correct);border-radius:50%;width:28px;height:28px;animation:.9s cubic-bezier(.4,0,.6,1) infinite lb-spin}@keyframes lb-spin{to{transform:rotate(360deg)}}.lb-table-wrapper{-webkit-overflow-scrolling:touch;background:linear-gradient(to right, var(--color-tile-bg) 30%, transparent), linear-gradient(to right, transparent, var(--color-tile-bg) 70%) 100% 0, linear-gradient(to right, #00000014, transparent) 0 0, linear-gradient(to left, #00000014, transparent) 100% 0;background-repeat:no-repeat;background-size:40px 100%,40px 100%,14px 100%,14px 100%;background-attachment:local,local,scroll,scroll;width:100%;overflow-x:auto}.lb-search{border:1.5px solid var(--color-border-empty);background:var(--color-tile-bg);width:100%;color:var(--color-tile-text);box-sizing:border-box;border-radius:6px;margin-bottom:10px;padding:8px 12px;font-family:JetBrains Mono,monospace;font-size:.85rem;transition:border-color .15s;display:block}.lb-search:focus{border-color:var(--color-correct);outline:none}.lb-search::placeholder{opacity:.45}.lb-my-rank{text-align:center;opacity:.75;padding:16px 0 0;font-size:.88rem}.lb-refresh-btn{border:1px solid var(--color-border-empty);color:var(--color-tile-text);cursor:pointer;opacity:.7;background:0 0;border-radius:4px;margin:0 0 12px auto;padding:4px 10px;font-family:JetBrains Mono,monospace;font-size:.75rem;display:block}.lb-refresh-btn:hover{opacity:1}.lb-refresh-btn{transition:opacity .15s,border-color .15s}.lb-refresh-btn:focus-visible{outline:2px solid var(--color-correct);outline-offset:2px}.lb-error-block{text-align:center}.lb-retry-btn{border:1px solid var(--color-border-empty);color:var(--color-tile-text);cursor:pointer;background:0 0;border-radius:4px;margin-top:4px;padding:6px 16px;font-family:inherit;font-size:.85rem;transition:opacity .15s,border-color .15s,color .15s}.lb-retry-btn:hover{opacity:1;border-color:var(--color-correct);color:var(--color-correct)}.lb-retry-btn:focus-visible{outline:2px solid var(--color-correct);outline-offset:2px}.lb-podium{justify-content:center;align-items:flex-end;gap:8px;margin-bottom:24px;display:flex}.lb-podium-slot{border:1px solid var(--color-border-empty);text-align:center;border-radius:8px;flex-direction:column;flex:1;align-items:center;max-width:120px;padding:12px 8px 10px;display:flex}.lb-podium-gold{background:#d4af3714;border-color:#d4af37;padding-top:20px}.lb-podium-silver{background:#9e9e9e0f;border-color:#9e9e9e}.lb-podium-bronze{background:#cd7f320f;border-color:#cd7f32}.lb-podium-slot.me{outline:2px solid var(--color-correct);outline-offset:2px}.lb-podium-medal{font-size:1.5rem}.lb-podium-name{word-break:break-word;margin-top:6px;font-size:.78rem;font-weight:700;line-height:1.2}.lb-podium-stat{opacity:.65;margin-top:3px;font-family:JetBrains Mono,monospace;font-size:.72rem}@media (width<=420px){.lb-podium{display:none}}.lb-cards-list{display:none}@media (width<=420px){.lb-table{display:none}.lb-cards-list{flex-direction:column;gap:8px;display:flex}.lb-card{border:1px solid var(--color-border-empty);background:var(--color-tile-bg);border-radius:6px;align-items:center;gap:10px;padding:10px 12px;display:flex}.lb-card.me{background:#538d4e2e;font-weight:700}.lb-card-rank{opacity:.6;flex-shrink:0;width:28px;font-family:JetBrains Mono,monospace;font-size:.78rem}.lb-card-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.lb-card-sub{opacity:.6;font-family:JetBrains Mono,monospace;font-size:.72rem}.lb-card-stat{flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:700}}.profile-container{width:100%;max-width:480px;margin:0 auto;padding:24px 16px}.profile-card{border:2px solid var(--color-border-filled);background:var(--color-tile-bg);box-shadow:4px 4px 0 var(--color-border-filled);border-radius:8px;align-items:center;gap:20px;margin-bottom:28px;padding:20px;display:flex}.profile-avatar{color:#fff;border:2px solid var(--color-border-filled);width:64px;height:64px;box-shadow:2px 2px 0 var(--color-border-filled);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-family:Bricolage Grotesque,sans-serif;font-size:1.6rem;font-weight:800;display:flex}.profile-info{flex-direction:column;gap:2px;display:flex}.profile-name{color:var(--color-tile-text);letter-spacing:-.02em;margin:0;font-family:Bricolage Grotesque,sans-serif;font-size:1.4rem;font-weight:800}.profile-username{opacity:.65;margin:0;font-family:JetBrains Mono,monospace;font-size:.82rem}.profile-section-title{text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--color-border-filled);color:var(--color-tile-text);margin:28px 0 16px;padding-bottom:6px;font-family:Bricolage Grotesque,sans-serif;font-size:1rem;font-weight:800}.profile-history-list{flex-direction:column;gap:12px;display:flex}.profile-history-item{border:2px solid var(--color-border-filled);background:var(--color-tile-bg);box-shadow:2px 2px 0 var(--color-border-filled);border-radius:6px;transition:transform .15s,box-shadow .15s,border-color .15s;overflow:hidden}.profile-history-item:hover{box-shadow:3px 3px 0 var(--color-border-filled);transform:translateY(-1px)}.profile-history-header{cursor:pointer;text-align:left;width:100%;color:var(--color-tile-text);background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;font-family:inherit;display:flex}.profile-history-header:focus-visible{outline:2px solid var(--color-correct);outline-offset:-2px;border-radius:6px}.history-meta{flex-direction:column;gap:2px;display:flex}.history-title{font-size:.95rem;font-weight:700}.history-subtitle{opacity:.6;text-transform:uppercase;font-family:JetBrains Mono,monospace;font-size:.72rem}.history-result{align-items:center;gap:12px;font-family:JetBrains Mono,monospace;font-size:.85rem;display:flex}.history-badge{border:1px solid var(--color-border-filled);border-radius:4px;padding:3px 8px;font-size:.75rem;font-weight:800}.history-badge.won{color:var(--color-correct);background:#538d4e26}.history-badge.lost{color:#e06a6a;background:#dc50501a}.history-indicator{opacity:.6;font-size:.8rem;transition:transform .2s}.profile-history-item.open .history-indicator{transform:rotate(90deg)}.profile-history-details{border-top:1px dashed var(--color-border-empty);background:var(--color-key-bg);justify-content:space-between;align-items:center;gap:20px;padding:16px;animation:.15s ease-out slide-down;display:flex}@keyframes slide-down{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.mini-grid{background:var(--color-tile-bg);border:1px solid var(--color-border-empty);border-radius:4px;flex-direction:column;gap:3px;padding:4px;display:flex}.mini-row{gap:3px;display:flex}.mini-tile{border-radius:1px;width:14px;height:14px}.mini-tile.correct{background:var(--color-correct)}.mini-tile.present{background:var(--color-present)}.mini-tile.absent{background:var(--color-absent)}.details-summary{text-align:right;flex-direction:column;gap:4px;font-size:.8rem;display:flex}.details-summary div{font-family:JetBrains Mono,monospace}.profile-history-empty{text-align:center;border:2px dashed var(--color-border-empty);opacity:.55;border-radius:6px;padding:36px 12px;font-size:.9rem}.profile-insights-container{flex-wrap:wrap;gap:16px;margin-top:16px;margin-bottom:24px;display:flex}.profile-stats-extra{flex-direction:column;flex:160px;gap:12px;display:flex}.stat-card{background:var(--color-key-bg);border:2px solid var(--color-border-filled);text-align:center;box-shadow:2px 2px 0 var(--color-border-filled);border-radius:4px;padding:14px}.stat-card-value{color:var(--color-tile-text);font-family:JetBrains Mono,monospace;font-size:1.8rem;font-weight:800;line-height:1.1}.stat-card-label{opacity:.65;text-transform:uppercase;letter-spacing:.5px;margin-top:6px;font-size:.68rem;font-weight:700}.profile-heatmap-container{background:var(--color-tile-bg);border:2px solid var(--color-border-filled);box-shadow:3px 3px 0 var(--color-border-filled);border-radius:4px;flex:2 240px;padding:16px}.heatmap-title{text-transform:uppercase;opacity:.8;letter-spacing:-.01em;margin:0 0 12px;font-family:Bricolage Grotesque,sans-serif;font-size:.9rem;font-weight:800}.heatmap-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.heatmap-weekday{opacity:.5;text-align:center;text-transform:uppercase;font-family:JetBrains Mono,monospace;font-size:.65rem;font-weight:700}.heatmap-cell{aspect-ratio:1;border:1px solid var(--color-border-empty);color:var(--color-key-text);border-radius:2px;justify-content:center;align-items:center;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:700;display:flex}.heatmap-cell.pad{border-color:#0000}.heatmap-cell.empty{background:var(--color-key-bg);opacity:.45}.heatmap-cell.won{background:var(--color-correct);color:#fff;border-color:var(--color-correct)}.heatmap-cell.lost{background:var(--color-absent);color:#fff;border-color:var(--color-absent)}.heatmap-cell.future{opacity:.15;background:0 0;border-style:dashed}.profile-mode-filter{margin-bottom:16px}.profile-history-details{animation:.2s ease-out slide-expand}@keyframes slide-expand{0%{opacity:0;max-height:0}to{opacity:1;max-height:300px}}.profile-filter-label{text-transform:uppercase;letter-spacing:.5px;opacity:.55;margin:0 0 6px;font-size:.72rem;font-weight:700}.heatmap-subtitle{opacity:.6;margin:-8px 0 10px;font-size:.78rem}.profile-share-btn{border:2px dashed var(--color-border-empty);width:100%;color:var(--color-tile-text);cursor:pointer;opacity:.75;background:0 0;border-radius:6px;margin:12px 0 0;padding:10px;font-family:inherit;font-size:.88rem;font-weight:600;transition:opacity .15s,border-color .15s;display:block}.profile-share-btn:hover{opacity:1;border-color:var(--color-correct)}.profile-share-btn:focus-visible{outline:2px solid var(--color-correct);outline-offset:2px;opacity:1}.back-to-top{border:2px solid var(--color-border-filled);background:var(--color-tile-bg);width:40px;height:40px;color:var(--color-tile-text);cursor:pointer;box-shadow:2px 2px 0 var(--color-border-filled);z-index:95;opacity:.85;border-radius:50%;font-size:1.1rem;font-weight:700;position:fixed;bottom:24px;right:16px}.back-to-top:hover{opacity:1}.back-to-top:focus-visible{outline:2px solid var(--color-correct);opacity:1}.modal.settings{text-align:left;max-width:min(380px,92vw)}.modal.settings h2{text-align:center;margin-bottom:20px}.settings-section{border-top:1px solid var(--color-border-empty);flex-direction:column;gap:8px;padding:16px 0;display:flex}.settings-section>label{text-transform:uppercase;letter-spacing:.5px;opacity:.6;font-size:.75rem;font-weight:700}.settings-row{gap:8px;display:flex}.settings-row input{flex:1}.settings-section input{border:2px solid var(--color-border-empty);background:var(--color-tile-bg);color:var(--color-tile-text);border-radius:6px;padding:11px 12px;font-size:.95rem}.settings-section input:focus{border-color:var(--color-correct);outline:none}.settings-section button[type=submit]{background:var(--color-correct);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:6px;padding:11px 16px;font-weight:700}.settings-section button[type=submit]:disabled{opacity:.6;cursor:default}.settings-section button[type=submit]:not(:disabled):hover{filter:brightness(1.1)}.settings-sub{opacity:.55;margin:0;font-size:.78rem}.settings-msg{border-radius:6px;padding:7px 10px;font-size:.82rem}.settings-msg.ok{color:var(--color-correct);background:#538d4e2e}.settings-msg.err{color:#e06a6a;background:#dc505026}.settings-toggle{cursor:pointer;width:100%;color:var(--color-tile-text);text-align:left;background:0 0;border:none;align-items:center;gap:12px;padding:6px 0;display:flex}.settings-toggle:focus-visible{outline:2px solid var(--color-correct);outline-offset:2px;border-radius:4px}.settings-toggle-text{flex:1}.settings-toggle-title{font-size:.95rem;font-weight:600;display:block}.settings-toggle-desc{opacity:.6;font-size:.78rem;display:block}.switch{background:var(--color-border-filled);border-radius:12px;flex-shrink:0;width:44px;height:24px;transition:background .2s;position:relative}.switch.on{background:var(--color-correct)}.switch .knob{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .2s;position:absolute;top:2px;left:2px}.switch.on .knob{transform:translate(20px)}.settings-section textarea{border:2px solid var(--color-border-empty);background:var(--color-tile-bg);color:var(--color-tile-text);resize:vertical;border-radius:6px;min-height:80px;padding:11px 12px;font-family:inherit;font-size:.95rem;transition:border-color .2s}.settings-section textarea:focus{border-color:var(--color-correct);outline:none}.settings-volume-row{flex-direction:column;gap:6px;margin-top:6px;padding:4px 0;display:flex}.settings-volume-row label{opacity:.85;font-family:JetBrains Mono,monospace;font-size:.8rem}.settings-volume-row input[type=range]{appearance:none;background:var(--color-key-bg);cursor:pointer;border:none;border-radius:3px;outline:none;width:100%;height:6px;padding:0}.settings-volume-row input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--color-correct);border:2px solid var(--color-border-filled);cursor:pointer;border-radius:50%;width:16px;height:16px;transition:transform .1s}.settings-volume-row input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}.settings-volume-row input[type=range]::-moz-range-thumb{background:var(--color-correct);border:2px solid var(--color-border-filled);cursor:pointer;border-radius:50%;width:16px;height:16px;transition:transform .1s}.settings-volume-row input[type=range]::-moz-range-thumb:hover{transform:scale(1.15)}.settings-theme-row{gap:6px;display:flex}.settings-theme-btn{border:2px solid var(--color-border-empty);background:var(--color-tile-bg);color:var(--color-tile-text);cursor:pointer;opacity:.65;border-radius:8px;flex-direction:column;flex:1;align-items:center;gap:4px;padding:10px 6px;font-family:inherit;font-size:.78rem;font-weight:600;transition:opacity .15s,border-color .15s,background-color .15s,transform .1s;display:flex}.settings-theme-btn.active{border-color:var(--color-correct);opacity:1;background:#538d4e1f}.settings-theme-btn:not(.active):hover{opacity:.9}.settings-theme-btn:focus-visible{outline:2px solid var(--color-correct);outline-offset:2px}.settings-theme-btn:active{transform:scale(.97)}.modal.htp{text-align:left;max-width:min(400px,92vw)}.modal.htp h2{text-align:center}.htp-intro,.htp-footer{opacity:.85;font-size:.9rem;line-height:1.45}.htp-footer{opacity:.6;border-top:1px solid var(--color-border-empty);margin-top:6px;padding-top:14px;font-size:.82rem}.htp-example{margin:14px 0}.htp-example p{opacity:.8;margin:6px 0 0;font-size:.85rem}.htp-tiles{gap:4px;display:flex}.htp-tile{border:2px solid var(--color-border-empty);border-radius:var(--tile-radius,10px);text-transform:uppercase;justify-content:center;align-items:center;width:34px;height:34px;font-family:JetBrains Mono,monospace;font-size:1.1rem;font-weight:700;display:flex}.htp-tile.correct{background:var(--color-correct);border-color:var(--color-correct);color:#fff}.htp-tile.present{background:var(--color-present);border-color:var(--color-present);color:#fff}.htp-tile.absent{background:var(--color-absent);border-color:var(--color-absent);color:#fff}.htp-legend{opacity:.8;flex-wrap:wrap;gap:14px;margin:16px 0;font-size:.8rem;display:flex}.htp-legend span{align-items:center;gap:5px;display:inline-flex}.htp-dot{border-radius:2px;width:12px;height:12px;display:inline-block}.htp-dot.correct{background:var(--color-correct)}.htp-dot.present{background:var(--color-present)}.htp-dot.absent{background:var(--color-absent)}.modal.htp .modal-btn{margin:8px auto 0;display:block}.htp-points{border-top:1px solid var(--color-border-empty);margin-top:6px;padding-top:14px}.htp-points-title{margin:0 0 10px;font-size:.9rem;font-weight:700}.htp-points-grid{flex-direction:column;gap:5px;display:flex}.htp-points-row{align-items:center;gap:8px;font-size:.8rem;display:flex}.htp-points-guesses{opacity:.7;min-width:28px;font-family:JetBrains Mono,monospace;font-weight:700}.htp-points-bar-wrap{background:var(--color-key-bg);border-radius:5px;flex:1;height:10px;overflow:hidden}.htp-points-bar{background:var(--color-correct);border-radius:5px;min-width:4px;height:100%;display:block}.htp-points-val{text-align:right;min-width:44px;color:var(--color-correct);font-family:JetBrains Mono,monospace;font-size:.78rem;font-weight:700}.htp-points-note{opacity:.65;margin:10px 0 0;font-size:.78rem;line-height:1.5}.feedback-widget{z-index:90;pointer-events:auto;position:fixed;top:55%;right:0;transform:translateY(-50%)}.feedback-tab{background:var(--color-tile-bg);color:var(--color-tile-text);border:2px solid var(--color-border-filled);cursor:pointer;white-space:nowrap;border-right:none;border-radius:8px 0 0 8px;align-items:center;gap:6px;padding:12px 14px;font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:700;transition:padding-right .2s cubic-bezier(.16,1,.3,1),background-color .2s;display:flex;box-shadow:-3px 3px 12px #00000026}.feedback-tab:hover{background:var(--color-key-bg);padding-right:18px}.feedback-panel{background:var(--color-tile-bg);width:290px;color:var(--color-tile-text);border:2px solid var(--color-border-filled);border-radius:12px;flex-direction:column;gap:12px;padding:20px;animation:.25s cubic-bezier(.16,1,.3,1) feedback-slide-in;display:flex;position:absolute;top:50%;right:16px;transform:translateY(-50%);box-shadow:-4px 6px 24px #00000040}@keyframes feedback-slide-in{0%{opacity:0;transform:translateY(-50%)translate(25px)}to{opacity:1;transform:translateY(-50%)translate(0)}}.feedback-close{color:var(--color-tile-text);cursor:pointer;opacity:.6;background:0 0;border:none;padding:4px;font-size:1.1rem;line-height:1;transition:opacity .15s;position:absolute;top:10px;right:10px}.feedback-close:hover{opacity:1}.feedback-panel h3{text-transform:uppercase;letter-spacing:-.01em;margin:0;font-family:Bricolage Grotesque,sans-serif;font-size:1.15rem;font-weight:800}.feedback-panel form{flex-direction:column;gap:10px;display:flex}.feedback-panel textarea{border:2px solid var(--color-border-empty);background:var(--color-key-bg);width:100%;height:96px;color:var(--color-tile-text);resize:none;border-radius:8px;padding:10px;font-family:IBM Plex Sans,system-ui,sans-serif;font-size:.88rem;line-height:1.4;transition:border-color .2s}.feedback-panel textarea:focus{border-color:var(--color-correct);outline:none}.feedback-panel button[type=submit]{background:var(--color-correct);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:10px;font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:700;transition:filter .15s}.feedback-panel button[type=submit]:disabled{opacity:.5;cursor:default}.feedback-panel button[type=submit]:not(:disabled):hover{filter:brightness(1.08)}.feedback-msg{border-radius:6px;padding:8px 10px;font-size:.82rem;line-height:1.3}.feedback-msg.ok{color:var(--color-correct);background:#538d4e26}.feedback-msg.err{color:#e06a6a;background:#dc50501f}@media (width<=480px){.feedback-tab{padding:8px 10px;font-size:.78rem}.feedback-panel{width:calc(100vw - 32px);max-width:290px;right:16px}}.admin-container{width:100%;max-width:900px;margin:0 auto;padding:24px 16px}.admin-header-row{border-bottom:2px solid var(--color-border-filled);justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;display:flex}.admin-title{letter-spacing:-.03em;text-transform:uppercase;margin:0;font-family:Bricolage Grotesque,sans-serif;font-size:2rem;font-weight:800}.admin-subtitle{opacity:.6;margin:4px 0 0;font-family:JetBrains Mono,monospace;font-size:.85rem}.admin-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.admin-export-btn{border:1px solid var(--color-border-empty);color:var(--color-tile-text);white-space:nowrap;cursor:pointer;background:0 0;border-radius:4px;padding:8px 14px;font-family:inherit;font-size:.82rem;text-decoration:none;transition:border-color .15s,color .15s;display:inline-block}.admin-export-btn:hover{border-color:var(--color-correct);color:var(--color-correct)}.admin-export-btn:focus-visible{outline:2px solid var(--color-correct);outline-offset:2px}.search-box{border:2px solid var(--color-border-filled);background:var(--color-tile-bg);border-radius:6px;flex:1;align-items:center;max-width:400px;padding:8px 12px;display:flex}.search-icon{opacity:.7;margin-right:8px}.search-box input{color:var(--color-tile-text);background:0 0;border:none;outline:none;width:100%;font-size:.95rem}.admin-table-wrapper{border:2px solid var(--color-border-filled);box-shadow:4px 4px 0 var(--color-border-filled);background:var(--color-tile-bg);border-radius:6px;overflow-x:auto}.admin-table{border-collapse:collapse;text-align:left;width:100%}.admin-table th,.admin-table td{border-bottom:1px solid var(--color-border-empty);padding:12px 16px}.admin-table th{background:var(--color-key-bg);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--color-border-filled);font-family:Bricolage Grotesque,sans-serif;font-size:.85rem;font-weight:700}.admin-table tr:last-child td{border-bottom:none}.admin-table tbody tr{transition:background-color .12s}.admin-table tbody tr:hover{background:var(--color-key-bg)}.font-mono{font-family:JetBrains Mono,monospace}.font-bold{font-weight:700}.font-size-sm{opacity:.7;font-size:.8rem}.text-right{text-align:right}.text-center{text-align:center}.admin-action-btn{background:var(--color-key-bg);border:1px solid var(--color-border-filled);color:var(--color-tile-text);cursor:pointer;border-radius:4px;margin-left:6px;padding:5px 10px;font-family:JetBrains Mono,monospace;font-size:.8rem;font-weight:500;transition:all .15s}.admin-table td.Actions{white-space:nowrap}@media (width>=769px) and (width<=1024px){.admin-action-btn{margin-left:4px;padding:5px 6px;font-size:.75rem}}.admin-action-btn:hover:not(:disabled){background:var(--color-tile-text);color:var(--color-tile-bg)}.admin-action-btn:disabled{opacity:.5;cursor:not-allowed}.admin-action-btn.danger{color:#dc5050;border-color:#dc5050}.admin-action-btn.danger:hover{color:#fff;background:#dc5050}.admin-action-btn:focus-visible{outline:2px solid var(--color-correct);outline-offset:2px}.admin-action-btn.danger:focus-visible{outline-color:#dc5050}.admin-cards-list{display:none}.modal.admin-action-modal{text-align:left;max-width:min(440px,92vw)}.modal.admin-action-modal h3{margin:0 0 12px;font-family:Bricolage Grotesque,sans-serif;font-size:1.3rem;font-weight:800}.form-group{flex-direction:column;gap:6px;margin:16px 0;display:flex}.form-group label{font-size:.82rem;font-weight:600}.form-group input{border:2px solid var(--color-border-filled);background:var(--color-tile-bg);color:var(--color-tile-text);border-radius:6px;padding:11px 12px;font-size:.95rem}.form-group input:focus{border-color:var(--color-correct);outline:none}.form-group.inline-row{flex-direction:row;gap:8px}.form-group.inline-row input{flex:1}.danger-subtext{color:#dc5050;background:#dc505014;border-left:3px solid #dc5050;border-radius:4px;padding:8px 12px;font-size:.8rem}.modal-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.admin-login-container{justify-content:center;align-items:center;min-height:calc(100svh - 80px);padding:16px;display:flex}.admin-login-card{text-align:center;width:100%;max-width:360px;padding:30px 24px}.admin-login-card h2{margin-top:0;font-family:Bricolage Grotesque,sans-serif;font-weight:800}.admin-login-card p{opacity:.7;font-size:.85rem}.admin-error{color:#dc5050;margin-bottom:12px;font-size:.85rem;font-weight:600}.admin-loading,.admin-empty{text-align:center;opacity:.6;padding:40px;font-size:1.2rem}.modal-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:150;background:#0009;justify-content:center;align-items:center;animation:.15s ease-out overlay-in;display:flex;position:fixed;inset:0}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@media (width<=768px){.admin-table-wrapper{display:none}.admin-cards-list{flex-direction:column;gap:12px;display:flex}.admin-user-card{border:2px solid var(--color-border-filled);background:var(--color-tile-bg);box-shadow:3px 3px 0 var(--color-border-filled);border-radius:6px;padding:14px}.card-header{border-bottom:1px solid var(--color-border-empty);justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:8px;display:flex}.card-username{font-size:1.05rem;font-weight:700}.card-id{opacity:.6;font-size:.85rem}.card-body{flex-direction:column;gap:4px;font-size:.85rem;display:flex}.card-date{opacity:.7;margin-top:4px}.card-actions{border-top:1px dashed var(--color-border-empty);justify-content:flex-end;gap:6px;margin-top:12px;padding-top:10px;display:flex}.card-actions .admin-action-btn{margin-left:0}}
