@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:.7;--transition-fast:.12s ease;--transition-base:.2s ease;--text-xs:.72rem;--text-sm:.82rem;--text-base:.95rem;--text-lg:1.15rem;--text-xl:1.5rem;--text-2xl:2.2rem;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--shadow-brutal-sm:2px 2px 0 var(--color-border-filled);--shadow-brutal:3px 3px 0 var(--color-border-filled);--shadow-brutal-lg:4px 4px 0 var(--color-border-filled);--color-error:#dc5050;--color-surface:#14141e;--color-surface-2:#1a1a26;--color-surface-glass:#14141ec2;--color-gold-accent:#d8a64d;--color-streak-accent:#ff6b35;--color-weekly-accent:#f5c518;--header-bg:#0d0d14eb;--header-border:#ffffff1a;--bg-glow-1:#3ec97b0d;--bg-glow-2:#e6c04a0a}: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;--color-surface-glass:#f5f5f0d1;--color-weekly-accent:#8b7a00;--color-error:#c03030;--header-bg:#efefeaf0;--header-border:#0d0d141f;--bg-glow-1:#1e9e560d;--bg-glow-2:#b8900a0a}:root[data-contrast=high]{--color-correct:#f5793a;--color-present:#85c0f9;--color-absent:#5c5c6e}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:radial-gradient(ellipse 70% 45% at 50% -10%, var(--bg-glow-1), transparent 70%), radial-gradient(ellipse 50% 35% at 85% 110%, var(--bg-glow-2), transparent 70%), 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}:focus-visible{outline:2px solid var(--color-correct);outline-offset:2px}.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-boot{background:var(--color-tile-bg);min-height:100svh;color:var(--color-tile-text);flex-direction:column;justify-content:center;align-items:center;gap:18px;display:flex}.app-boot-brand{font-family:Bricolage Grotesque,sans-serif;font-size:var(--text-2xl);letter-spacing:-.03em;text-transform:uppercase;background:linear-gradient(110deg, var(--color-correct), var(--color-present));color:#0000;-webkit-background-clip:text;background-clip:text;font-weight:800;animation:1.4s ease-in-out infinite skeleton-pulse}.app-boot-bar{background:var(--color-key-bg);border-radius:2px;width:140px;height:4px;position:relative;overflow:hidden}.app-boot-bar:after{content:"";background:var(--color-correct);border-radius:2px;width:40%;animation:1.1s ease-in-out infinite boot-slide;position:absolute;inset:0}@keyframes boot-slide{0%{transform:translate(-100%)}to{transform:translate(350%)}}.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;text-align:initial;padding:0;position:sticky;top:0;box-shadow:0 1px #3ec97b1f,0 4px 16px #0000004d}.header-inner{flex-wrap:wrap;align-items:center;gap:12px;max-width:1180px;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;align-items:center;gap:7px;font-family:Bricolage Grotesque,sans-serif;font-size:1.5rem;font-weight:800;text-decoration:none;display:inline-flex}.brand:after{content:"";background:var(--color-correct);width:7px;height:7px;box-shadow:9px 0 0 color-mix(in srgb, var(--color-present) 78%, transparent);border-radius:2px;transform:rotate(8deg)}.game-switcher{background:var(--color-key-bg);border:1px solid var(--color-border-empty);border-radius:var(--radius-lg);flex-shrink:0;gap:2px;padding:2px;display:flex}.game-switcher-btn{border-radius:var(--radius-md);color:var(--color-tile-text);opacity:.55;cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:4px 9px;font-family:JetBrains Mono,monospace;font-size:.72rem;font-weight:600;transition:opacity .18s,background-color .18s,color .18s}.game-switcher-btn:hover{opacity:.85}.game-switcher-btn.active{opacity:1;background:var(--color-correct);color:#fff;font-weight:700}.header-nav-wrap{flex:200px;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);min-height:34px;color:var(--color-tile-text);opacity:.5;white-space:nowrap;border:1px solid #0000;align-items:center;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;display:inline-flex}.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{border:1px solid var(--color-border-empty);cursor:pointer;width:34px;height:34px;font-size:var(--text-lg);color:var(--color-tile-text);background:0 0;border-radius:50%;justify-content:center;align-items:center;padding:0;font-family:JetBrains Mono,monospace;font-weight:700;line-height:1;transition:background-color .2s,border-color .2s,transform .12s;display:inline-flex}.icon-btn:active{transform:scale(.92)}.icon-btn:hover{background:var(--color-key-bg);border-color:color-mix(in srgb, var(--color-correct) 50%, var(--color-border-empty));color:var(--color-correct)}.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{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"brand switch actions""nav nav nav";gap:7px;padding:7px 8px 6px;display:grid}.brand{grid-area:brand;font-size:1.08rem}.game-switcher{grid-area:switch;justify-self:center;min-width:0}.game-switcher-btn{padding:4px 6px;font-size:.64rem}.header-nav-wrap{grid-area:nav;width:100%;margin-left:0}.header-nav{gap:2px;padding:0 18px 1px 0;scroll-padding-inline:4px}.header-nav a{padding:5px 9px;font-size:.71rem}.header-actions{grid-area:actions;justify-self:end;gap:1px}.header-actions .username,.header-actions .icon-btn:nth-child(2),.header-actions .icon-btn:nth-child(3){display:none}.icon-btn{width:32px;height:32px;font-size:.82rem}.username{max-width:64px;font-size:.78rem}}@media (width<=360px){.header-inner{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"switch actions""nav nav"}.brand{display:none}.game-switcher{justify-self:start}}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}.game-statusbar{width:min(92vw,500px);color:var(--color-tile-text);justify-content:space-between;align-items:flex-end;gap:12px;margin:18px auto 0;padding:0 4px;font-family:JetBrains Mono,monospace;font-size:.75rem;display:flex}.game-status-copy{gap:3px;min-width:0;display:grid}.game-status-mode{text-transform:uppercase;letter-spacing:.08em;opacity:.55;align-items:center;gap:7px;font-weight:700;display:inline-flex}.game-status-mode:before{content:"";background:var(--color-correct);width:7px;height:7px;box-shadow:0 0 0 4px color-mix(in srgb, var(--color-correct) 11%, transparent);border-radius:50%}.game-status-date{text-overflow:ellipsis;white-space:nowrap;opacity:.72;font-family:IBM Plex Sans,sans-serif;font-size:.78rem;overflow:hidden}.game-status-progress{border:1px solid var(--color-border-empty);border-radius:var(--radius-lg);background:var(--color-surface-glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);white-space:nowrap;padding:6px 11px;font-weight:600}.game-progress-track{grid-template-columns:repeat(6,1fr);gap:6px;width:min(92vw,500px);margin:10px auto 0;display:grid}.game-progress-step{background:var(--color-border-empty);border-radius:3px;height:4px;transition:background-color .18s,transform .18s}.game-progress-step.complete{background:var(--color-absent)}.game-progress-step.current{background:var(--color-correct);box-shadow:0 0 12px color-mix(in srgb, var(--color-correct) 50%, transparent);transform:scaleY(1.5)}.game-progress-step.won{background:var(--color-correct)}.game-progress-step.lost{background:var(--color-error)}.game-controls{flex-direction:column;gap:9px;width:100%;max-width:500px;display:flex}.game-status-progress.won{color:var(--color-correct);border-color:var(--color-correct)}.game-status-progress.lost{color:var(--color-error);border-color:var(--color-error)}.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}.load-error-icon{margin-bottom:10px;font-size:2rem;display:block}.load-error-hint{font-size:var(--text-sm);opacity:var(--opacity-muted)}.board-skeleton{grid-template-columns:repeat(5,min(62px,14vw));justify-content:center;gap:6px;padding:24px 0;display:grid}.board-skeleton-tile{aspect-ratio:1;border-radius:var(--tile-radius);background:var(--color-key-bg);animation:1.4s ease-in-out infinite skeleton-pulse}@media (prefers-reduced-motion:reduce){.board-skeleton-tile{opacity:.5;animation:none}}.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-surface-glass);color:var(--color-tile-text);letter-spacing:.02em;border:1px solid var(--color-border-empty);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);text-align:center;border-radius:999px;max-width:min(90vw,360px);padding:11px 18px;font-size:.86rem;font-weight:700;animation:.2s cubic-bezier(.16,1,.3,1) forwards toast-slide-in;box-shadow:0 12px 36px #0000004d}@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, color-mix(in srgb, var(--color-gold-accent) 20%, var(--color-surface)), var(--color-surface));letter-spacing:.02em}.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:1px solid var(--color-border-empty);background:var(--color-key-bg);color:var(--color-tile-text);border-radius:var(--radius-lg);cursor:pointer;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:1px solid var(--color-border-empty);border-radius:var(--radius-lg);justify-content:center;align-items:center;gap:6px;width:fit-content;margin:10px auto -5px;padding:6px 16px;font-family:JetBrains Mono,monospace;font-size:1.25rem;font-weight:800;display:flex;box-shadow:0 8px 22px #0000001a}.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:1px solid var(--color-streak-accent);border-radius:999px;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:1px solid var(--color-border-empty);background:var(--color-surface-glass);color:var(--color-tile-text);cursor:pointer;opacity:.82;border-radius:999px;margin:0 auto;padding:8px 15px;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:600;transition:opacity .15s,border-color .15s,transform .15s,background-color .15s;display:block}.hint-btn:hover{opacity:1;border-color:var(--color-present);background:color-mix(in srgb, var(--color-present) 8%, var(--color-surface));transform:translateY(-1px)}.hint-btn:focus-visible{outline:2px solid var(--color-correct);outline-offset:2px;opacity:1;border-style:solid}.hint-btn span{opacity:.7}.hint-confirm{border:1.5px solid var(--color-present);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-present) 8%, var(--color-surface));text-align:center;width:min(92vw,420px);margin:0 auto;padding:10px 12px;font-size:.78rem;line-height:1.35}.hint-confirm-actions{justify-content:center;gap:8px;margin-top:8px;display:flex}.hint-confirm-actions button{border:1px solid var(--color-border-filled);border-radius:var(--radius-sm);cursor:pointer;min-height:34px;padding:5px 12px;font-family:JetBrains Mono,monospace;font-size:.72rem;font-weight:700}.hint-cancel-btn{color:var(--color-tile-text);background:0 0}.hint-confirm-btn{background:var(--color-present);color:#111;border-color:var(--color-present)!important}.hint-display{text-align:center;color:var(--color-correct);border:1px solid var(--color-correct);border-radius:999px;width:fit-content;margin:0 auto;padding:8px 14px;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}.skeleton-block{border-radius:var(--radius-sm);background:var(--color-key-bg);animation:1.4s ease-in-out infinite skeleton-pulse}.route-fallback{flex-direction:column;gap:14px;width:100%;max-width:640px;margin:32px auto;padding:0 16px;display:flex}.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}.route-transition{flex-direction:column;flex:1;align-items:center;width:100%;animation:.16s ease-out route-in;display:flex}@keyframes route-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.lb-skeleton-row,.skeleton-stat,.skeleton-bar,.skeleton-block,.app-boot-brand,.app-boot-bar:after{opacity:.5;animation:none}.streak-banner,.route-transition{animation:none}}.mobile-nav-shell{display:none}@media (width<=720px){.header-inner{flex-wrap:nowrap}.header-nav-wrap{display:none}.app-main{padding-bottom:76px}.mobile-nav-shell{inset:auto 8px max(8px, env(safe-area-inset-bottom));z-index:80;pointer-events:none;display:block;position:fixed}.mobile-nav{border:1px solid var(--color-border-empty);background:var(--color-surface-glass);-webkit-backdrop-filter:blur(18px);pointer-events:auto;border-radius:18px;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;width:min(100%,480px);min-height:58px;margin:0 auto;padding:5px;display:grid;box-shadow:0 14px 38px #00000047}.mobile-nav a,.mobile-nav button{min-width:0;min-height:46px;color:var(--color-key-text);opacity:.58;cursor:pointer;background:0 0;border:0;border-radius:13px;align-content:center;place-items:center;gap:4px;padding:7px 3px 5px;font:700 .68rem IBM Plex Sans,system-ui,sans-serif;text-decoration:none;display:grid}.mobile-nav a:after,.mobile-nav button:after{content:"";background:0 0;border-radius:50%;width:4px;height:4px}.mobile-nav a.active,.mobile-nav button.active{color:var(--color-correct);background:color-mix(in srgb, var(--color-correct) 10%, transparent);opacity:1}.mobile-nav a.active:after,.mobile-nav button.active:after{background:var(--color-correct);box-shadow:0 0 8px color-mix(in srgb, var(--color-correct) 65%, transparent)}.mobile-nav-more{border:1px solid var(--color-border-empty);border-radius:var(--radius-lg);background:var(--color-surface-glass);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);pointer-events:auto;gap:2px;width:min(230px,100vw - 32px);margin:0 8px 8px auto;padding:6px;animation:.16s ease-out mobile-more-in;display:grid;box-shadow:0 18px 42px #00000047}.mobile-nav-more a{border-radius:var(--radius-md);min-height:44px;color:var(--color-key-text);justify-content:space-between;align-items:center;padding:10px 12px;font-weight:700;text-decoration:none;display:flex}.mobile-nav-more a.active{color:var(--color-correct);background:color-mix(in srgb, var(--color-correct) 10%, transparent)}.board{--tile-size:min(56px, calc((92vw - 4 * var(--tile-gap)) / 5), 12.5vh)}.key{height:48px}}@media (width<=480px){.header-inner{grid-template-areas:"brand switch actions";row-gap:0;padding:8px}.header-actions .icon-btn:nth-child(2),.header-actions .icon-btn:nth-child(3){display:none}}@media (width<=360px){.header-inner{grid-template-areas:"switch actions"}}body:has(.modal-overlay) .mobile-nav-shell{opacity:0;pointer-events:none}@keyframes mobile-more-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.mobile-nav-more{animation:none}}.modal-result-mark.color{color:var(--color-present);background:radial-gradient(circle at 35% 28%, color-mix(in srgb, var(--color-present) 34%, transparent), transparent 45%), color-mix(in srgb, var(--color-correct) 12%, transparent);border:1px solid color-mix(in srgb, var(--color-present) 42%, transparent)}.modal-result-summary.color strong{color:var(--color-present)}.modal-disclosure{border:1px solid var(--color-border-empty);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--color-key-bg) 56%, transparent);text-align:left;margin-top:18px;overflow:hidden}.modal-disclosure summary{cursor:pointer;min-height:58px;color:var(--color-key-text);align-content:center;gap:2px;padding:11px 14px;list-style:none;display:grid;position:relative}.modal-disclosure summary::-webkit-details-marker{display:none}.modal-disclosure summary:after{content:"+";color:var(--color-correct);font:500 1.25rem JetBrains Mono,monospace;position:absolute;top:50%;right:14px;translate:0 -50%}.modal-disclosure[open] summary:after{content:"−"}.modal-disclosure summary span{padding-right:30px;font-size:.86rem;font-weight:700}.modal-disclosure summary small{opacity:.58;font-size:.72rem}.modal-disclosure-content{border-top:1px solid var(--color-border-empty);padding:0 14px 14px}.modal-disclosure-content .community-dist{border-top:0}.modal-disclosure-content .stats-container{margin-bottom:0}@media (width<=480px){.modal{padding-inline:22px}.modal-actions .modal-btn{flex:140px;padding-inline:14px}}.color-game{gap:14px;max-width:520px;margin:0 auto;padding:22px 16px 42px}.color-game-header{justify-content:space-between;align-items:flex-end;gap:14px;padding:0 4px;display:flex}.color-game-heading{gap:3px;display:grid}.color-game-heading span,.color-ready-kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--color-correct);font:700 .66rem JetBrains Mono,monospace}.color-game-heading strong{letter-spacing:-.025em;font:800 clamp(1.25rem,4vw,1.6rem) Bricolage Grotesque,sans-serif}.color-round-status{border:1px solid var(--color-border-empty);background:var(--color-surface-glass);white-space:nowrap;border-radius:999px;padding:6px 10px;font:700 .7rem JetBrains Mono,monospace}.color-round-dots{grid-template-columns:repeat(3,1fr);gap:6px;padding-inline:4px;display:grid}.color-round-dot{background:var(--color-border-empty);border:0;border-radius:999px;width:auto;height:4px;transition:background-color .18s,box-shadow .18s}.color-round-dot.done{background:var(--color-correct)}.color-round-dot.active{background:var(--color-present);box-shadow:0 0 12px color-mix(in srgb, var(--color-present) 50%, transparent)}.color-ready-card,.color-memorize-card,.color-picker{border:1px solid var(--color-border-empty);border-radius:var(--radius-xl);background:radial-gradient(circle at 85% 12%, color-mix(in srgb, var(--color-present) 10%, transparent), transparent 34%), var(--color-surface-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:clamp(20px,5vw,28px);position:relative;overflow:hidden;box-shadow:0 18px 46px #0000001f}.color-ready-card{text-align:center;justify-content:center;min-height:390px}.color-ready-card h1,.color-memorize-card h2{letter-spacing:-.045em;margin:0;font-family:Bricolage Grotesque,sans-serif;font-size:clamp(1.75rem,7vw,2.6rem);line-height:1.02}.color-ready-orb{background:radial-gradient(circle at 32% 28%,#fff7,#0000 22%),conic-gradient(from 20deg,#ff6b6b,#ffd166,#4ecdc4,#5f6fff,#c06cff,#ff6b6b);border-radius:50%;width:112px;height:112px;margin-bottom:8px;animation:4s ease-in-out infinite color-orb-float;box-shadow:0 18px 42px #0000003d,inset 0 0 24px #ffffff2e}.color-ready-card .memorize-label,.color-memorize-card .memorize-label{opacity:.7;max-width:390px;margin:0;font-size:.9rem;line-height:1.55}.color-start-btn,.color-picker-submit{border-radius:var(--radius-lg);min-height:46px;box-shadow:none}.color-memorize-card{gap:12px}.color-memorize-card h2{font-size:clamp(1.55rem,6vw,2.1rem)}.color-swatch{border:1px solid var(--color-border-empty);border-radius:var(--radius-xl);box-shadow:0 16px 38px #0000002e}.color-swatch.small{border-radius:var(--radius-lg);box-shadow:0 7px 18px #00000024}.color-time-track{background:var(--color-border-empty);height:5px;margin-inline:4px}.color-picker{gap:18px}.color-picker-preview{gap:8px;display:grid}.color-picker-preview>span{letter-spacing:.12em;text-transform:uppercase;color:var(--color-correct);font:700 .66rem JetBrains Mono,monospace}.color-picker-preview .color-swatch{aspect-ratio:2}.color-picker-row{gap:8px}.color-picker-row-label{opacity:1;align-items:baseline}.color-picker-row-label strong{font-size:.82rem}.color-picker-row-label span{background:var(--color-key-bg);opacity:.72;border-radius:999px;padding:3px 7px;font:600 .72rem JetBrains Mono,monospace}.color-picker-row input[type=range]{border:1px solid var(--color-border-empty);height:12px}.color-picker-row input[type=range]::-webkit-slider-thumb{border:3px solid #fff;width:26px;height:26px;box-shadow:0 4px 14px #00000047}.color-picker-row input[type=range]::-moz-range-thumb{border:3px solid #fff;width:22px;height:22px}.color-compare-row{gap:12px}.color-compare-col{flex:1;min-width:0}.color-compare-col .color-swatch{width:min(128px,31vw);height:min(128px,31vw)}.color-rounds-list{gap:10px}.color-round-item{border:1px solid var(--color-border-empty);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--color-key-bg) 62%, transparent);padding:9px}.color-round-item-score{font-family:JetBrains Mono,monospace}.calendar-legend i.played{background:var(--color-present);border-color:var(--color-present)}@keyframes color-orb-float{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-7px)rotate(3deg)}}@media (width<=720px){.color-game{padding-top:18px;padding-bottom:90px}}@media (width<=480px){.color-game{padding-inline:12px}.color-ready-card{min-height:360px}}@media (prefers-reduced-motion:reduce){.color-ready-orb{animation:none}}.auth{background:linear-gradient(115deg, color-mix(in srgb, var(--color-correct) 6%, transparent), transparent 40%), var(--color-tile-bg);justify-content:center;align-items:center;min-height:100svh;padding:clamp(20px,5vw,64px);display:grid}.auth-shell{border:1px solid var(--color-border-empty);border-radius:var(--radius-xl);background:var(--color-surface);grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr);width:100%;max-width:960px;display:grid;overflow:hidden;box-shadow:0 28px 80px #00000047}.auth-intro{background:radial-gradient(circle at 90% 5%, color-mix(in srgb, var(--color-correct) 22%, transparent), transparent 40%), var(--color-surface-2);border-right:1px solid var(--color-border-empty);padding:clamp(36px,6vw,72px);position:relative;overflow:hidden}.auth-intro:after{content:"";border:1px solid color-mix(in srgb, var(--color-present) 35%, transparent);border-radius:50%;width:240px;height:240px;position:absolute;bottom:-120px;right:-100px}.auth-wordmark,.auth-mobile-brand{letter-spacing:-.045em;text-transform:uppercase;font-family:Bricolage Grotesque,sans-serif;font-weight:800}.auth-wordmark{margin-bottom:48px;font-size:1.15rem}.auth-eyebrow,.auth-card-kicker{text-transform:uppercase;letter-spacing:.09em;color:var(--color-correct);font-family:JetBrains Mono,monospace;font-size:.7rem;font-weight:700}.auth-intro h1{letter-spacing:-.05em;margin:10px 0 16px;font-family:Bricolage Grotesque,sans-serif;font-size:clamp(2.4rem,5vw,4.2rem);line-height:.95}.auth-intro h1 span{color:var(--color-correct)}.auth-intro-copy{max-width:460px;color:color-mix(in srgb, var(--color-tile-text) 72%, transparent);margin:0;line-height:1.6}.auth-demo-row{gap:7px;margin:32px 0;display:flex}.auth-demo-row span{aspect-ratio:1;border-radius:var(--tile-radius);background:var(--color-key-bg);border:1px solid var(--color-border-empty);place-items:center;width:clamp(42px,5vw,52px);font-family:JetBrains Mono,monospace;font-size:1.2rem;font-weight:800;display:grid}.auth-demo-row span[data-state=correct]{background:var(--color-correct);border-color:var(--color-correct);color:#fff}.auth-demo-row span[data-state=present]{background:var(--color-present);border-color:var(--color-present);color:#111}.auth-demo-row span[data-state=absent]{background:var(--color-absent);border-color:var(--color-absent);color:#fff}.auth-features{gap:10px;margin:0;padding:0;font-size:.82rem;list-style:none;display:grid}.auth-features li{align-items:center;gap:12px;display:flex}.auth-features li span{color:var(--color-correct);font-family:JetBrains Mono,monospace;font-size:.7rem}.auth-card{align-self:center;padding:clamp(30px,5vw,56px)}.auth-mobile-brand{display:none}.auth-card-kicker{color:var(--color-present);margin:0 0 6px}.auth-card h2{letter-spacing:-.035em;margin:0 0 24px;font-family:Bricolage Grotesque,sans-serif;font-size:2rem}.auth-tabs{background:var(--color-key-bg);border-radius:var(--radius-md);border:1px solid var(--color-border-empty);gap:4px;margin-bottom:24px;padding:4px;display:flex}.auth-tabs button{border-radius:var(--radius-sm);color:var(--color-key-text);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;opacity:.6;background:0 0;border:none;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-surface);opacity:1;box-shadow:0 1px 5px #00000038}.auth form{flex-direction:column;gap:16px;display:flex}.auth-field{gap:7px;display:grid}.auth-field label{text-transform:uppercase;letter-spacing:.05em;justify-content:space-between;font-family:JetBrains Mono,monospace;font-size:.72rem;font-weight:700;display:flex}.auth-field label span{opacity:.45;font-weight:500}.auth input{border:1.5px solid var(--color-border-empty);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-tile-bg) 72%, transparent);width:100%;min-height:48px;color:var(--color-tile-text);padding:13px 14px;font-family:JetBrains Mono,monospace;font-size:.9rem;transition:border-color .2s,box-shadow .2s}.auth input:focus{border-color:var(--color-correct);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-correct) 16%, transparent);outline:none}.auth input:disabled{opacity:.62}.auth-password-wrap{position:relative}.auth-password-wrap input{padding-right:72px}.auth-password-toggle{border-radius:var(--radius-sm);background:var(--color-key-bg);color:var(--color-tile-text);cursor:pointer;border:0;padding:7px 8px;font-family:JetBrains Mono,monospace;font-size:.66rem;font-weight:700;position:absolute;top:50%;right:7px;transform:translateY(-50%)}.auth-field-hint{opacity:.55;margin:0;font-size:.72rem;line-height:1.4}.auth-error{color:var(--color-error);border-radius:var(--radius-md);background:#dc505026;border:1px solid #dc50504d;padding:10px;font-family:IBM Plex Sans,sans-serif;font-size:.85rem}.auth-submit{border:1px solid var(--color-correct);border-radius:var(--radius-md);background:var(--color-correct);color:#fff;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;min-height:50px;box-shadow:0 4px 0 color-mix(in srgb, var(--color-correct) 52%, #000);margin-top:2px;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)}@media (width<=760px){.auth{align-items:start;padding:16px}.auth-shell{grid-template-columns:1fr;max-width:460px}.auth-intro{border-right:0;border-bottom:1px solid var(--color-border-empty);padding:28px 28px 26px}.auth-wordmark{margin-bottom:24px}.auth-intro h1{font-size:2.5rem}.auth-intro-copy{font-size:.88rem}.auth-demo-row,.auth-features{display:none}.auth-card{padding:28px}}@media (width<=420px){.auth{grid-template-columns:minmax(0,1fr);width:100%;padding:0}.auth-shell{border:0;border-radius:0;justify-self:stretch;width:100%;max-width:none;min-height:100svh}.auth-intro{padding:24px 22px}.auth-intro h1{margin-bottom:10px;font-size:2rem}.auth-intro-copy{display:none}.auth-wordmark{margin-bottom:18px}.auth-card{padding:26px 22px 34px}.auth-card h2{margin-bottom:18px;font-size:1.7rem}}.board{--tile-size:min(62px, calc((92vw - 4 * var(--tile-gap)) / 5), 14vh);--tile-gap:6px;gap:var(--tile-gap);z-index:1;flex-direction:column;margin:12px auto 16px;display:flex;position:relative}.row{gap:var(--tile-gap);transition:opacity .18s,transform .18s;display:flex}.row:has(.tile[data-state=empty]){opacity:.48}.row:has(.tile[data-state=active]){opacity:1}.row:has(.tile[data-state=active]) .tile{border-color:color-mix(in srgb, var(--color-correct) 32%, var(--color-border-empty))}.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:color-mix(in srgb, var(--color-surface) 74%, 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,0 5px 16px #0000000f}.tile[data-state=active],.tile[data-state=empty]{border-color:var(--color-border-empty)}.tile.filled[data-state=active]{border-color:color-mix(in srgb, var(--color-correct) 70%, var(--color-tile-text));box-shadow:inset 0 1px 0 #ffffff14, 0 0 0 1px color-mix(in srgb, var(--color-correct) 18%, transparent), 0 8px 20px #0000001f;animation:.1s ease-in-out pop}.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}}@media (width<=480px){.board{--tile-gap:5px;margin-top:10px;margin-bottom:14px}}.game-layout{isolation:isolate;flex-direction:column;align-items:center;width:100%;max-width:560px;margin:0 auto;padding:4px 0 18px;display:flex;position:relative}.game-layout:before{content:"";background:radial-gradient(circle at 50% 34%, color-mix(in srgb, var(--color-correct) 10%, transparent), transparent 55%), linear-gradient(180deg, color-mix(in srgb, var(--color-surface) 48%, transparent), transparent 90%);pointer-events:none;z-index:-1;border-radius:34px;height:min(470px,66vh);position:absolute;inset:8px 8px auto}@media (height<=500px) and (orientation:landscape){.game-layout{flex-direction:row;justify-content:center;align-items:center;gap:24px;width:100%}.game-layout .board{--tile-size:min(52px, calc((100svh - 130px) / 6));margin:8px 0}.game-layout .keyboard{max-width:440px;margin:0}.game-layout .game-controls{max-width:440px}}@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.filled,.row.shake{animation:none!important}.toast-item{opacity:1;animation:none!important}}.keyboard{box-sizing:border-box;border:1px solid color-mix(in srgb, var(--color-border-empty) 72%, transparent);border-radius:var(--radius-xl,20px);background:color-mix(in srgb, var(--color-surface-glass) 72%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-direction:column;gap:8px;width:100%;max-width:500px;margin:0 auto;padding:10px 10px 8px;display:flex;box-shadow:0 14px 34px #0000001a}.keyboard-row{justify-content:center;gap:4px;display:flex}.key{border:1px solid var(--color-border-empty);border-radius:var(--key-radius,8px);background:var(--color-key-bg);min-width:0;height:56px;color:var(--color-key-text);cursor:pointer;text-transform:uppercase;touch-action:manipulation;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 #00000047,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.08);border-color:color-mix(in srgb, var(--color-correct) 38%, var(--color-border-empty))}.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:color-mix(in srgb, var(--color-present) 42%, var(--color-border-empty));opacity:.94}@keyframes key-reveal{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}@media (width<=480px){.keyboard{border-radius:var(--radius-lg,14px);padding:8px 6px 7px}}.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:var(--color-tile-text);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:var(--shadow-brutal-sm)}.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;width:min(480px,92vw);max-width:480px;max-height:90svh;padding: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;min-width:44px;min-height:44px;padding:10px 14px;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-hint-note{opacity:.75;text-align:center;margin-top:-4px;margin-bottom:8px;font-size:.78rem}.modal-result-mark{border-radius:50%;place-items:center;width:58px;height:58px;margin:0 auto 12px;font-family:Bricolage Grotesque,sans-serif;font-size:1.8rem;font-weight:800;display:grid}.modal-result-mark.won{color:var(--color-correct);background:color-mix(in srgb, var(--color-correct) 16%, transparent);border:1px solid color-mix(in srgb, var(--color-correct) 40%, transparent)}.modal-result-mark.lost{color:#e06a6a;background:#e06a6a24;border:1px solid #e06a6a5c}.modal .modal-kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--color-correct);opacity:1;margin:0 0 5px;font-family:JetBrains Mono,monospace;font-size:.68rem;font-weight:700}.modal h2{letter-spacing:-.02em;margin:0 0 16px;font-family:Bricolage Grotesque,sans-serif;font-size:2rem;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}.modal-result-summary{border:1px solid var(--color-border-empty);border-radius:var(--radius-lg,14px);background:var(--color-key-bg);justify-items:center;gap:2px;width:min(100%,250px);margin:0 auto 18px;padding:14px 22px;display:grid}.modal-result-summary span{letter-spacing:.1em;text-transform:uppercase;opacity:.62;font-family:JetBrains Mono,monospace;font-size:.65rem;font-weight:700}.modal-result-summary strong{color:var(--color-correct);font-family:Bricolage Grotesque,sans-serif;font-size:1.75rem;line-height:1.1}.modal-result-summary.lost strong{color:var(--color-tile-text);letter-spacing:.08em}.modal-result-summary small{opacity:.65;font-size:.74rem}.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:2px solid var(--color-correct);outline-offset:2px}.modal-btn.ghost:focus-visible{outline:2px solid var(--color-correct)}.modal-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:20px;display:flex}.modal-actions .modal-btn{margin-top:0}.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:1px solid var(--color-border-empty);border-radius:var(--radius-lg,14px);background:var(--color-key-bg);text-align:center;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}.archive-picker{text-align:left;width:100%;max-width:760px;margin:0 auto;padding:38px 20px 72px}.archive-page-header{text-align:center;max-width:590px;margin:0 auto 24px}.archive-page-header p{letter-spacing:.13em;text-transform:uppercase;color:var(--color-correct);margin:0 0 6px;font-family:JetBrains Mono,monospace;font-size:.7rem;font-weight:700}.archive-page-header h1{letter-spacing:-.045em;margin:0;font-family:Bricolage Grotesque,sans-serif;font-size:clamp(2rem,7vw,3.15rem);line-height:1}.archive-page-header span{color:var(--color-key-text);opacity:.72;margin-top:10px;font-size:.92rem;line-height:1.55;display:block}.calendar-container{border:1px solid var(--color-border-empty);background:var(--color-tile-bg);border-radius:var(--radius-xl,20px);max-width:480px;margin:20px auto;padding:clamp(16px,4vw,24px);box-shadow:0 18px 50px #0000001f}.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:1px solid var(--color-border-empty);cursor:pointer;width:36px;height:36px;box-shadow:none;border-radius:50%;padding:0;font-weight:700;transition:all .1s}.calendar-nav-btn:hover:not(:disabled){border-color:var(--color-correct);filter:brightness(1.05);transform:translateY(-1px);box-shadow:0 8px 18px #0000001a}.calendar-nav-btn:active:not(:disabled){box-shadow:none;transform:translateY(0)}.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:1px solid var(--color-border-empty);cursor:pointer;border-radius:var(--radius-sm,6px);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-correct);transform:translateY(-1px);box-shadow:0 6px 14px #0000001a}.calendar-btn-cell:active{box-shadow:none;transform:translateY(0)}.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:var(--shadow-brutal-sm)}.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:var(--shadow-brutal-sm)}.calendar-btn-cell.played{background:var(--color-present);border-color:var(--color-present);color:#fff}.calendar-btn-cell.played:hover{filter:brightness(1.08);box-shadow:var(--shadow-brutal-sm)}.cell-guesses{opacity:.9;margin-top:1px;font-size:.55rem;font-weight:800}.calendar-legend{border-top:1px solid var(--color-border-empty);color:var(--color-key-text);opacity:.75;flex-wrap:wrap;justify-content:center;gap:10px 16px;margin-top:18px;padding-top:16px;font-size:.72rem;display:flex}.calendar-legend span{align-items:center;gap:6px;display:inline-flex}.calendar-legend i{background:var(--color-key-bg);border:1px solid var(--color-border-empty);border-radius:50%;width:8px;height:8px}.calendar-legend i.won{background:var(--color-correct);border-color:var(--color-correct)}.calendar-legend i.lost{background:var(--color-absent);border-color:var(--color-absent)}@media (width<=480px){.archive-picker{padding:24px 12px 56px}.calendar-container{margin-top:16px}.calendar-grid{gap:4px}.calendar-btn-cell,.calendar-cell{font-size:.78rem}}.modal.settings{text-align:left;max-width:min(500px,92vw)}.modal.settings h2{text-align:center;margin-bottom:16px}.modal.settings .settings-kicker{text-align:center}.settings-tabs{border:1px solid var(--color-border-empty);border-radius:var(--radius-lg,14px);background:var(--color-key-bg);scrollbar-width:none;gap:4px;padding:4px;display:flex;overflow-x:auto}.settings-tabs::-webkit-scrollbar{display:none}.settings-tabs button{border-radius:var(--radius-sm,6px);min-height:36px;color:var(--color-key-text);cursor:pointer;background:0 0;border:0;flex:1 0 auto;padding:7px 10px;font:700 .72rem IBM Plex Sans,system-ui,sans-serif}.settings-tabs button.active{background:var(--color-tile-bg);color:var(--color-correct);box-shadow:0 3px 10px #0000001a}.settings-section{border-top:0;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:1px solid var(--color-border-empty);border-radius:var(--radius-md,10px);background:var(--color-tile-bg);color:var(--color-tile-text);padding:11px 12px;font-size:.95rem}.settings-section input:focus{border-color:var(--color-correct);outline:none}.settings-section button[type=submit]{border-radius:var(--radius-md,10px);background:var(--color-correct);color:#fff;cursor:pointer;white-space:nowrap;border:none;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-section button[type=submit]:focus-visible{outline:2px solid var(--color-correct);outline-offset:2px}.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{background:var(--color-key-bg);border:1px solid var(--color-border-empty);border-radius:var(--radius-lg,14px);cursor:pointer;width:100%;color:var(--color-tile-text);text-align:left;align-items:center;gap:12px;padding:12px;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-empty);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:1px solid var(--color-border-empty);border-radius:var(--radius-md,10px);background:var(--color-tile-bg);color:var(--color-tile-text);resize:vertical;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-volume-row input[type=range]:focus-visible{outline:2px solid var(--color-correct);outline-offset:3px;border-radius:4px}.settings-theme-row{gap:6px;display:flex}.settings-theme-btn{border:1px solid var(--color-border-empty);border-radius:var(--radius-lg,14px);background:var(--color-tile-bg);color:var(--color-tile-text);cursor:pointer;opacity:.65;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}@media (width<=480px){.settings-row{flex-direction:column}.settings-section button[type=submit]{min-height:42px}}.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(470px,92vw)}.modal.htp h2{text-align:center;margin-bottom:10px}.modal.htp .htp-kicker{text-align:center}.htp-intro,.htp-footer{opacity:.85;font-size:.9rem;line-height:1.45}.htp-intro{text-align:center;max-width:390px;margin:0 auto 16px!important}.htp-footer{opacity:.6;border-top:1px solid var(--color-border-empty);margin-top:6px;padding-top:14px;font-size:.82rem}.htp-examples{gap:8px;display:grid}.htp-example{border:1px solid var(--color-border-empty);border-radius:var(--radius-lg,14px);background:var(--color-key-bg);grid-template-columns:auto 1fr;align-items:center;gap:12px;margin:0;padding:10px;display:grid}.htp-example p{opacity:.76;margin:0;font-size:.8rem;line-height:1.35}.htp-tiles{gap:4px;display:flex}.htp-tile{border:1px solid var(--color-border-empty);border-radius:var(--radius-sm,6px);text-transform:uppercase;justify-content:center;align-items:center;width:31px;height:31px;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;justify-content:center;gap:14px;margin:14px 0;font-size:.8rem;display:flex}.htp-legend span{align-items:center;gap:5px;display:inline-flex}.htp-dot{border-radius:50%;width:9px;height:9px;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:1px solid var(--color-border-empty);border-radius:var(--radius-lg,14px);background:color-mix(in srgb, var(--color-key-bg) 68%, transparent);margin:12px 0;padding:14px}.htp-points-title{text-align:center;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}@media (width<=420px){.htp-example{text-align:center;grid-template-columns:1fr;justify-items:center}.htp-tile{width:28px;height:28px}}.feedback-widget{z-index:90;pointer-events:auto;position:fixed;top:55%;right:0;transform:translateY(-50%)}.feedback-tab{background:var(--color-surface-glass);color:var(--color-tile-text);border:1px solid var(--color-border-empty);cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);white-space:nowrap;border-right:none;border-radius:999px 0 0 999px;align-items:center;gap:6px;padding:10px 13px;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:-8px 10px 28px #00000029}.feedback-tab:hover{background:var(--color-surface);border-color:var(--color-correct);color:var(--color-correct);padding-right:18px}.feedback-panel{background:var(--color-surface-glass);width:290px;color:var(--color-tile-text);border:1px solid var(--color-border-empty);border-radius:var(--radius-xl,20px);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);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-close:focus-visible{outline:2px solid var(--color-correct);outline-offset:2px;opacity:1;border-radius:4px}.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-panel button[type=submit]:focus-visible{outline:2px solid var(--color-correct);outline-offset:2px}.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:var(--color-error);background:#dc50501f}@media (width<=720px){.feedback-widget{top:auto;bottom:max(12px, env(safe-area-inset-bottom));transform:none}.feedback-tab{border-right:1px solid var(--color-border-empty);border-radius:999px 0 0 999px;padding:8px 10px;font-size:.78rem}.feedback-panel{width:calc(100vw - 32px);max-width:290px;animation:.25s cubic-bezier(.16,1,.3,1) feedback-slide-up;top:auto;bottom:0;right:8px;transform:none}body.game-active .feedback-widget{display:none}}body:has(.modal-overlay) .feedback-widget{opacity:0;pointer-events:none}@keyframes feedback-slide-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
