:root{--mj-color-bg: #1a1d23;--mj-color-bg-elevated: #22262e;--mj-color-bg-overlay: rgba(10, 12, 16, .85);--mj-color-surface: #2a2f37;--mj-color-border: #3a3f47;--mj-color-border-soft: rgba(255, 255, 255, .08);--mj-color-text: #e8e6e3;--mj-color-text-soft: #a9a39b;--mj-color-text-dim: #6b6660;--mj-color-accent: #7a9e3f;--mj-color-accent-hover: #8eb44d;--mj-color-accent-dim: #5e7c30;--mj-color-success: #4caf50;--mj-color-warning: #ffa726;--mj-color-danger: #e53935;--mj-color-info: #29b6f6;--mj-space-0: 0;--mj-space-1: 4px;--mj-space-2: 8px;--mj-space-3: 12px;--mj-space-4: 16px;--mj-space-5: 24px;--mj-space-6: 32px;--mj-space-7: 48px;--mj-space-8: 64px;--mj-radius-sm: 4px;--mj-radius-md: 8px;--mj-radius-lg: 12px;--mj-radius-xl: 20px;--mj-radius-pill: 999px;--mj-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;--mj-font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, monospace;--mj-text-xs: 12px;--mj-text-sm: 13px;--mj-text-base: 15px;--mj-text-lg: 18px;--mj-text-xl: 24px;--mj-text-2xl: 32px;--mj-text-3xl: 42px;--mj-shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--mj-shadow-md: 0 4px 8px rgba(0, 0, 0, .25);--mj-shadow-lg: 0 10px 24px rgba(0, 0, 0, .35);--mj-transition-fast: .12s ease-out;--mj-transition-base: .18s ease-out;--mj-transition-slow: .28s ease-out;--mj-z-header: 100;--mj-z-dropdown: 200;--mj-z-overlay: 900;--mj-z-modal: 1000;--mj-z-toast: 1100}@media (prefers-reduced-motion: reduce){:root{--mj-transition-fast: 0ms;--mj-transition-base: 0ms;--mj-transition-slow: 0ms}}.mj-card,.mj-btn,.mj-input{box-sizing:border-box;font-family:var(--mj-font-family)}.mj-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mj-focus-ring:focus-visible,.mj-btn:focus-visible,.mj-input:focus-visible,.mj-card[tabindex]:focus-visible{outline:2px solid var(--mj-color-accent);outline-offset:2px}.mj-card{background:var(--mj-color-bg-elevated);border:1px solid var(--mj-color-border);border-radius:var(--mj-radius-lg);padding:var(--mj-space-5);box-shadow:var(--mj-shadow-md);transition:transform var(--mj-transition-base),box-shadow var(--mj-transition-base)}.mj-card--interactive{cursor:pointer}.mj-card--interactive:hover{transform:translateY(-2px);box-shadow:var(--mj-shadow-lg);border-color:var(--mj-color-accent-dim)}.mj-card__title{font-size:var(--mj-text-lg);font-weight:600;margin:0 0 var(--mj-space-2) 0;color:var(--mj-color-text)}.mj-card__subtitle{font-size:var(--mj-text-sm);color:var(--mj-color-text-soft);margin:0 0 var(--mj-space-3) 0}.mj-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--mj-space-2);padding:var(--mj-space-3) var(--mj-space-5);border:1px solid transparent;border-radius:var(--mj-radius-md);font-size:var(--mj-text-base);font-weight:500;line-height:1;cursor:pointer;transition:background var(--mj-transition-fast),border-color var(--mj-transition-fast),color var(--mj-transition-fast),transform var(--mj-transition-fast);text-decoration:none;-webkit-user-select:none;user-select:none}.mj-btn:active{transform:scale(.98)}.mj-btn:disabled,.mj-btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none}.mj-btn--primary{background:var(--mj-color-accent);color:#fff}.mj-btn--primary:hover{background:var(--mj-color-accent-hover)}.mj-btn--secondary{background:var(--mj-color-surface);color:var(--mj-color-text);border-color:var(--mj-color-border)}.mj-btn--secondary:hover{background:var(--mj-color-border)}.mj-btn--ghost{background:transparent;color:var(--mj-color-text)}.mj-btn--ghost:hover{background:var(--mj-color-surface)}.mj-btn--danger{background:var(--mj-color-danger);color:#fff}.mj-btn--danger:hover{background:#c62828}.mj-btn--sm{padding:var(--mj-space-2) var(--mj-space-3);font-size:var(--mj-text-sm)}.mj-btn--lg{padding:var(--mj-space-4) var(--mj-space-6);font-size:var(--mj-text-lg)}.mj-input{display:block;width:100%;padding:var(--mj-space-3) var(--mj-space-4);background:var(--mj-color-bg);border:1px solid var(--mj-color-border);border-radius:var(--mj-radius-md);color:var(--mj-color-text);font-size:var(--mj-text-base);transition:border-color var(--mj-transition-fast),background var(--mj-transition-fast)}.mj-input:focus{outline:none;border-color:var(--mj-color-accent);background:var(--mj-color-bg-elevated)}.mj-input::placeholder{color:var(--mj-color-text-dim)}.mj-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--mj-color-bg-overlay);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:var(--mj-z-overlay);display:flex;align-items:center;justify-content:center;padding:var(--mj-space-4)}.mj-modal{background:var(--mj-color-bg-elevated);border:1px solid var(--mj-color-border);border-radius:var(--mj-radius-lg);padding:var(--mj-space-6);box-shadow:var(--mj-shadow-lg);max-width:480px;width:100%;max-height:calc(100vh - var(--mj-space-7));overflow-y:auto;z-index:var(--mj-z-modal)}.mj-toast{position:fixed;bottom:var(--mj-space-5);left:50%;transform:translate(-50%);padding:var(--mj-space-3) var(--mj-space-5);background:var(--mj-color-bg-elevated);color:var(--mj-color-text);border:1px solid var(--mj-color-border);border-radius:var(--mj-radius-pill);box-shadow:var(--mj-shadow-md);z-index:var(--mj-z-toast);font-size:var(--mj-text-sm);animation:mj-toast-in var(--mj-transition-base);max-width:calc(100vw - var(--mj-space-5) * 2)}@keyframes mj-toast-in{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}.mj-stack{display:flex;flex-direction:column;gap:var(--mj-space-4)}.mj-stack--sm{gap:var(--mj-space-2)}.mj-stack--lg{gap:var(--mj-space-6)}.mj-cluster{display:flex;flex-wrap:wrap;gap:var(--mj-space-3);align-items:center}.mj-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:var(--mj-space-4) var(--mj-space-5);background:var(--mj-color-bg);border-bottom:1px solid var(--mj-color-border-soft);z-index:var(--mj-z-header)}.mj-header__actions-left{display:flex;align-items:center;gap:var(--mj-space-3);justify-self:start}.mj-header__brand{display:flex;align-items:center;gap:var(--mj-space-3);font-size:var(--mj-text-lg);font-weight:600;color:var(--mj-color-text);text-decoration:none;justify-self:center;white-space:nowrap}.mj-header__brand-emoji{font-size:1.3em}.mj-header__brand-mascot{width:36px;height:36px;object-fit:contain;flex-shrink:0}@media (max-width: 500px){.mj-header__brand-mascot{width:30px;height:30px}.mj-header__brand-mascot--right{display:none}}.mj-header__actions{display:flex;align-items:center;gap:var(--mj-space-3);justify-self:end}.mj-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--mj-color-surface);color:#fff;font-weight:600;overflow:hidden;-webkit-user-select:none;user-select:none;flex-shrink:0}.mj-avatar img{width:100%;height:100%;display:block;object-fit:cover}.mj-hero{padding:var(--mj-space-7) var(--mj-space-5);text-align:center}.mj-hero__title{font-size:var(--mj-text-3xl);font-weight:700;color:var(--mj-color-text);margin:0 0 var(--mj-space-3) 0}.mj-hero__subtitle{font-size:var(--mj-text-lg);color:var(--mj-color-text-soft);margin:0;max-width:560px;margin-inline:auto}.mj-badge{display:inline-flex;align-items:center;gap:var(--mj-space-1);padding:2px var(--mj-space-2);font-size:var(--mj-text-xs);font-weight:500;border-radius:var(--mj-radius-pill);background:var(--mj-color-surface);color:var(--mj-color-text-soft)}.mj-badge--success{background:#4caf5026;color:var(--mj-color-success)}.mj-badge--pending{background:#ffa72626;color:var(--mj-color-warning)}:root{--mj-scroll-thumb: var(--mj-color-border);--mj-scroll-thumb-hover: var(--mj-color-accent-dim, var(--mj-color-accent));--mj-scroll-track: transparent;--mj-scroll-width: 10px}html{scrollbar-width:thin;scrollbar-color:var(--mj-scroll-thumb) var(--mj-scroll-track)}*::-webkit-scrollbar{width:var(--mj-scroll-width);height:var(--mj-scroll-width)}*::-webkit-scrollbar-track{background:var(--mj-scroll-track)}*::-webkit-scrollbar-thumb{background:var(--mj-scroll-thumb);border-radius:var(--mj-radius-pill, 999px);border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:var(--mj-scroll-thumb-hover);background-clip:padding-box}*::-webkit-scrollbar-corner{background:transparent}:root{--ml-color-bg: #15161d;--ml-color-bg-elevated: #1f212b;--ml-color-surface: #2a2d3a;--ml-color-border: #32354a;--ml-color-border-soft: rgba(255, 255, 255, .06);--ml-color-text: #ECE7F7;--ml-color-text-soft: #A89BBD;--ml-color-text-dim: #6E6580;--ml-color-accent: #B794F6;--ml-color-accent-hover: #C9AEFF;--ml-color-accent-dim: #8E70CE;--ml-color-accent-warm: #F4B860;--ml-color-accent-warm-dim: #C88F40;--mj-color-accent: var(--ml-color-accent);--mj-color-accent-hover: var(--ml-color-accent-hover);--mj-color-accent-dim: var(--ml-color-accent-dim);--mj-color-bg: var(--ml-color-bg);--mj-color-bg-elevated: var(--ml-color-bg-elevated);--mj-color-text: var(--ml-color-text);--mj-auth-accent: var(--ml-color-accent);--mj-auth-accent-light: var(--ml-color-accent-hover);--mj-auth-accent-dark: var(--ml-color-border);--mj-auth-bg: var(--ml-color-bg-elevated);--mj-auth-border-card: var(--ml-color-border);--mj-auth-text: var(--ml-color-text);--mj-scroll-thumb: var(--ml-color-border);--mj-scroll-thumb-hover: var(--ml-color-accent);--neon-green: var(--ml-color-accent);--pure-black: var(--ml-color-bg);--dark-black: var(--ml-color-bg-elevated);--correct: #3EAA42;--partial: #CD8729;--incorrect: #2A2A2A;--neon-glow: 0 0 0 1px rgba(167, 139, 250, .4), 0 4px 16px rgba(167, 139, 250, .2);--neon-glow-soft: 0 0 0 1px rgba(167, 139, 250, .3);--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif}body.colorblind{--correct: #1478DB;--partial: #F5801F}body.high-contrast{--correct: #00C853;--partial: #FFD600;--incorrect: #424242}body.high-contrast.colorblind{--correct: #2979FF;--partial: #FF6D00}body[data-theme=light]{--ml-color-bg: #F5F2FA;--ml-color-bg-elevated: #FFFFFF;--ml-color-surface: #EDE6F8;--ml-color-border: #D5C9E8;--ml-color-text: #2E1F4F;--ml-color-text-soft: #6B5B8A;--ml-color-text-dim: #9485B0;--ml-color-accent: #7C3AED;--ml-color-accent-hover: #6D28D9;--ml-color-accent-dim: #A78BFA;--pure-black: var(--ml-color-bg);--dark-black: var(--ml-color-bg-elevated);--neon-green: var(--ml-color-accent);--incorrect: #787C7E;--empty-bg: #FFFFFF;color:var(--ml-color-text)}body[data-theme=light] .key{background:#d3d6da;color:#1a1a1a}body[data-theme=light] header{border-bottom-color:#00000014}body[data-theme=light] .title-main,body[data-theme=light] .title-number,body[data-theme=light] .user-name{color:#1a1a1a;text-shadow:none}body[data-theme=light] .header-icon-btn{border-color:#d3d6da;color:#1a1a1a}body[data-theme=light] .header-icon-btn:hover{background:#f1f3f5;border-color:#1a1a1a}body[data-theme=light] .modal-card,body[data-theme=light] .auth-card,body[data-theme=light] .overlay-modal{background:#fff;color:#1a1a1a;border:1px solid #E0E0E0}body[data-theme=light] input,body[data-theme=light] textarea,body[data-theme=light] select{background:#f1f3f5;color:#1a1a1a;border-color:#ced4da}body[data-theme=light] .guest-login-btn{border-color:#1a1a1a;color:#1a1a1a}body[data-theme=light] .guest-login-btn:hover{background:#0000000f}.tutorial-body{font-size:15px;line-height:1.55;padding:10px 4px 14px;color:#e8e8e8}.tutorial-dots{display:flex;gap:8px;justify-content:center;margin:10px 0 14px}.tutorial-dot{width:9px;height:9px;border-radius:50%;background:#444;transition:background .2s}.tutorial-dot.active{background:var(--correct);box-shadow:0 0 6px var(--correct)}.leaderboard-row{cursor:default;outline:none}.leaderboard-row:hover,.leaderboard-row:focus-visible{background:#ffffff0a}.leaderboard-popover{width:240px;background:#1a1d23;border:1px solid #333;border-radius:8px;padding:10px 12px;box-shadow:0 6px 20px #00000080;z-index:200;font-size:13px;pointer-events:none;animation:popover-fade .15s ease-out}@keyframes popover-fade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.popover-header{color:var(--correct, #00FF1D);font-weight:700;margin-bottom:6px;font-size:12px;text-transform:uppercase;letter-spacing:.5px}.popover-rows{display:flex;flex-direction:column;gap:4px}.popover-row{display:flex;justify-content:space-between;padding:3px 0;color:#d0d0d0}.popover-row.loss{opacity:.6}.popover-loading,.popover-error,.popover-empty{color:#8a8f98;font-size:12px;text-align:center;padding:6px 0}kbd{display:inline-block;padding:1px 6px;font-family:monospace;font-size:12px;background:#2a2a2a;border:1px solid #444;border-bottom-width:2px;border-radius:4px;color:#fff;margin:0 1px}body[data-theme=light] kbd{background:#f1f3f5;color:#1a1a1a;border-color:#b0b0b0}@media (prefers-reduced-motion: reduce){.confetti-container,.confetti-piece{display:none!important}.title-main,.otter-blink{animation:none!important}.overlay-modal,.modal-card,.auth-overlay,.auth-card,.toast,.leaderboard-popover{animation-duration:.01ms!important;animation-iteration-count:1!important}}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;width:100%;overflow:hidden}@media (max-width: 500px),(max-height: 700px){html,body{overflow:auto}body{min-height:100vh;height:auto}}body{font-family:var(--font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--pure-black);color:var(--neon-green);touch-action:manipulation;-webkit-user-select:none;user-select:none}#app{width:100vw;height:100vh;display:flex;justify-content:center;align-items:center}#game{display:flex;flex-direction:column;width:100%;height:100%;max-width:500px;background:var(--pure-black)}@media (max-width: 500px),(max-height: 700px){#game{min-height:100vh;height:auto}}header{width:100%;height:60px;display:flex;justify-content:center;background:var(--ml-color-bg-elevated);flex-shrink:0;border-bottom:1px solid var(--ml-color-border);padding-top:env(safe-area-inset-top,0px);box-sizing:content-box;position:relative;z-index:50}.header-container{max-width:500px;width:100%;height:100%;display:flex;align-items:center;padding:0 8px;gap:8px;position:relative;box-sizing:border-box}.game-title{display:flex;flex-direction:column;align-items:center;min-width:0;flex:1 1 auto;text-align:center;overflow:hidden}.title-main{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.title-main{font-size:20px;font-weight:800;letter-spacing:2px;text-transform:uppercase;line-height:1;display:inline-flex;align-items:center;gap:8px;justify-content:center}.title-mascot{width:32px;height:32px;flex-shrink:0}.title-text{background:linear-gradient(135deg,var(--ml-color-accent) 0%,var(--ml-color-accent-warm) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--ml-color-accent)}.title-number{font-size:11px;font-weight:400;color:var(--ml-color-text-soft);margin-top:2px;letter-spacing:1px}body.adventure-mode .title-main{text-transform:none;letter-spacing:1px;font-size:20px}body.adventure-mode .title-number{display:block!important}.title-number.timer-low{color:var(--ml-color-danger, #e74c3c);font-weight:600}.header-actions-left{display:flex;align-items:center;gap:8px;flex-shrink:0;min-width:0}.header-actions-left .user-menu-wrapper,.header-actions-left .user-display{position:static!important;left:auto!important;top:auto!important;transform:none!important}#header-adventure-btn{flex-shrink:0}body.adventure-mode #header-adventure-btn{display:none}@media (max-width: 500px){body.adventure-mode .title-main{font-size:16px;letter-spacing:.5px}body.adventure-mode .title-number{font-size:10px}}@media (max-width: 360px){body.adventure-mode .title-main{font-size:14px}}.user-display{position:absolute;right:12px;display:flex;align-items:center;gap:8px;padding:4px 10px;background:transparent;border:1px solid transparent;border-radius:20px}.user-avatar{width:28px;height:28px;border-radius:50%;border:none}.user-name{color:var(--neon-green);font-size:12px;font-weight:700;max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-name,.user-menu-btn span:not(.user-avatar),.user-menu-btn .caret{display:none}@media (max-width: 500px){.user-display{position:static;padding:2px 6px;gap:4px}.user-avatar{width:18px;height:18px}.user-name{font-size:10px;max-width:60px}.header-container{flex-wrap:wrap;gap:4px}}@media (max-width: 360px){.user-display{display:none}}main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:0;overflow:hidden;position:relative}@media (max-width: 500px),(max-height: 700px){main{height:auto;min-height:calc(100vh - 60px);padding:10px 0 0;overflow:visible;justify-content:flex-start}.grid{margin:auto}.keyboard{position:sticky;bottom:env(safe-area-inset-bottom,0);margin:0;padding-bottom:4px;background:var(--pure-black);z-index:10}}.toast-container{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:100;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none;width:max-content;max-width:90vw}.toast{background:var(--dark-black);color:var(--neon-green);border:1px solid var(--neon-green);box-shadow:var(--neon-glow-soft);padding:10px 20px;border-radius:6px;font-size:14px;font-weight:700;animation:toastIn .2s ease-out;pointer-events:auto;white-space:nowrap}.toast.fade-out{animation:toastOut .3s ease-in forwards}@keyframes toastIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes toastOut{0%{opacity:1}to{opacity:0}}.error{display:none!important}.grid{display:flex;flex-direction:column;--gap: 5px;--max-cell: 62px;--nb-letters: 5;--ideal-width: calc(var(--nb-letters) * var(--max-cell) + (var(--nb-letters) - 1) * var(--gap));width:min(var(--ideal-width),calc(100vw - 16px));max-width:100%;gap:var(--gap);margin:auto;padding:8px 0}.attempt{display:grid;grid-template-columns:repeat(var(--nb-letters, 5),minmax(0,1fr));gap:var(--gap, 5px)}.attempt.shake{animation:shake .5s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-8px)}80%{transform:translate(8px)}}.letter-container{aspect-ratio:1;background:var(--ml-color-bg-elevated);border:2px solid var(--ml-color-border);border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:clamp(16px,7vw,32px);font-weight:700;color:var(--ml-color-text);text-transform:uppercase;position:relative;transition:border-color .15s,transform .1s}.letter-container.filled{border-color:var(--ml-color-accent);animation:pop .1s ease-in}.letter-container.cursor{border-color:var(--ml-color-text-soft)}.letter-container.cursor:after{content:"🦦";position:absolute;font-size:18px;animation:otterBlink 1s infinite}@keyframes otterBlink{0%,49%{opacity:1}50%,to{opacity:.2}}@keyframes pop{0%{transform:scale(1)}50%{transform:scale(1.08)}to{transform:scale(1)}}.letter-container.correct{background:var(--correct);border-color:var(--correct);color:#fff}.letter-container.fixed{background:var(--correct);border-color:var(--correct);color:#fff;opacity:.85;box-shadow:inset 0 0 0 2px #fff3}.letter-container.partial{background:var(--partial);border-color:var(--partial);color:#fff}.letter-container.incorrect{background:var(--incorrect);border-color:var(--incorrect);color:#fff}.letter-container.reveal{animation:flipIn .25s ease-in forwards}.letter-container.reveal-out{animation:flipOut .25s ease-out forwards}@keyframes flipIn{0%{transform:scaleY(1)}to{transform:scaleY(0)}}@keyframes flipOut{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.attempt.win .letter-container{animation:bounce 1s ease forwards}.attempt.win .letter-container:nth-child(1){animation-delay:0ms}.attempt.win .letter-container:nth-child(2){animation-delay:.1s}.attempt.win .letter-container:nth-child(3){animation-delay:.2s}.attempt.win .letter-container:nth-child(4){animation-delay:.3s}.attempt.win .letter-container:nth-child(5){animation-delay:.4s}@keyframes bounce{0%,20%{transform:translateY(0)}40%{transform:translateY(-28px)}50%{transform:translateY(4px)}60%{transform:translateY(-14px)}80%{transform:translateY(2px)}to{transform:translateY(0)}}.confetti-container{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:9998}.confetti-piece{position:absolute;width:8px;height:14px;top:-20px;opacity:.95;border-radius:1px;animation:confetti-fall linear forwards}@keyframes confetti-fall{0%{transform:translateY(0) rotate(0);opacity:1}90%{opacity:1}to{transform:translateY(110vh) rotate(720deg);opacity:0}}.keyboard{width:100%;max-width:500px;display:flex;flex-direction:column;gap:6px;padding:0 4px;margin-bottom:16px;box-sizing:border-box}.keyboard-line{display:flex;justify-content:center;gap:6px;width:100%}.key{flex:1;min-width:0;max-width:50px;height:58px;background:var(--ml-color-bg-elevated);border:1px solid var(--ml-color-border);border-bottom:3px solid var(--ml-color-border);border-radius:6px;color:var(--ml-color-text);font-size:13px;font-weight:600;text-transform:uppercase;cursor:pointer;transition:background .1s,border-color .1s,transform .05s;font-family:var(--font-family);display:flex;align-items:center;justify-content:center;padding:0}.key:hover{background:var(--ml-color-surface);border-color:var(--ml-color-accent-dim)}.key:active{transform:translateY(2px);border-bottom-width:1px;background:var(--ml-color-surface)}.key.special{font-size:11px;flex:1.5;max-width:75px}.key.correct{background:var(--correct);border-color:var(--correct);border-bottom-color:#2d7e31;color:#fff;box-shadow:none}.key.correct:hover{background:#48b54c}.key.partial{background:var(--partial);border-color:var(--partial);border-bottom-color:#a56d21;color:#fff;box-shadow:none}.key.partial:hover{background:#d6972e}.key.incorrect{background:var(--incorrect);border-color:#444;border-bottom-color:#1a1a1a;color:#666;box-shadow:none}.key.incorrect:hover{background:#353535}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0f081ac7;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:200;display:flex;align-items:center;justify-content:center;animation:fadeIn .3s ease}.modal-overlay.closing{animation:fadeOut .3s ease forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.modal-content{background:var(--ml-color-bg-elevated);border:1px solid var(--ml-color-border);box-shadow:0 16px 48px #00000080,0 0 0 1px #a78bfa1a;border-radius:12px;padding:24px;width:92%;max-width:420px;max-height:88vh;overflow-y:auto;position:relative;animation:modalSlideIn .3s ease}.modal-overlay.closing .modal-content{animation:modalSlideOut .3s ease forwards}@keyframes modalSlideIn{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes modalSlideOut{0%{transform:translateY(0);opacity:1}to{transform:translateY(20px);opacity:0}}.modal-close{position:absolute;top:12px;right:14px;background:none;border:none;color:var(--ml-color-text-soft);font-size:26px;cursor:pointer;line-height:1;padding:4px;transition:color .15s}.modal-close:hover{color:var(--ml-color-accent)}.modal-title{font-size:15px;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:2px;margin-bottom:18px;color:var(--neon-green);text-shadow:var(--neon-glow-soft)}.stats-row{display:flex;justify-content:center;gap:20px;margin-bottom:18px}.stat-item{display:flex;flex-direction:column;align-items:center;min-width:52px}.stat-value{font-size:34px;font-weight:700;color:var(--ml-color-accent);white-space:nowrap}.stat-value.warm{color:var(--ml-color-accent-warm)}.stat-label{font-size:10px;color:var(--ml-color-text-dim);text-align:center;text-transform:uppercase;letter-spacing:.5px}.endgame-word{text-align:center;margin:14px 0;padding:12px;border:1px solid var(--ml-color-border);border-radius:8px;background:var(--ml-color-bg)}.endgame-word .label{font-size:11px;color:var(--ml-color-text-dim);text-transform:uppercase;letter-spacing:1px}.endgame-word .word{font-size:26px;font-weight:700;letter-spacing:6px;text-transform:uppercase;color:var(--ml-color-accent);margin-top:4px}.endgame-word .definition-btn{margin-top:10px;padding:6px 14px;background:transparent;border:1px solid var(--ml-color-accent-warm-dim);color:var(--ml-color-accent-warm);font-size:12px;text-transform:uppercase;letter-spacing:1px;border-radius:4px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.endgame-word .definition-btn:hover:not(:disabled){background:#f4b8601a;border-color:var(--ml-color-accent-warm);color:var(--ml-color-accent-warm)}.endgame-word .definition-btn:disabled{opacity:.6;cursor:default}.endgame-word .definition-box{margin-top:10px;padding:10px 12px;background:#ffffff0a;border-left:2px solid var(--ml-color-accent-warm);color:var(--ml-color-text);font-size:13px;line-height:1.45;text-align:left;border-radius:0 4px 4px 0}.modal-footer-row{display:flex;justify-content:center;align-items:center;gap:20px;padding-top:16px;border-top:1px solid rgba(183,148,246,.2);margin-top:10px}.countdown-section{text-align:center}.countdown-label{font-size:10px;color:var(--ml-color-text-soft);text-transform:uppercase;letter-spacing:1px}.countdown-time{font-size:30px;font-weight:700;color:var(--neon-green);text-shadow:var(--neon-glow-soft);font-variant-numeric:tabular-nums}.share-btn{background:transparent;color:var(--neon-green);border:2px solid var(--neon-green);border-radius:6px;padding:12px 22px;font-size:14px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:8px;font-family:var(--font-family);text-transform:uppercase;letter-spacing:1px;box-shadow:var(--neon-glow-soft);transition:all .15s ease}.share-btn:hover{background:#b794f61a;box-shadow:var(--neon-glow)}.share-btn:active{opacity:.8}.share-btn svg{width:18px;height:18px;fill:var(--neon-green)}.emoji-grid-preview{text-align:center;margin:14px 0;padding:12px;background:#0000004d;border-radius:6px}.emoji-grid-header{font-size:13px;font-weight:700;color:var(--neon-green);margin-bottom:8px;letter-spacing:.5px}.emoji-grid-text{font-size:20px;line-height:1.4;margin:0;font-family:inherit;letter-spacing:2px}.scoreboard-section{margin-top:18px;border-top:1px solid rgba(183,148,246,.2);padding-top:16px}.scoreboard-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:2px;text-align:center;margin-bottom:14px;color:var(--ml-color-text)}.scoreboard-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}.scoreboard-player{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:75px}.scoreboard-avatar{width:52px;height:52px;border-radius:50%;border:2px solid var(--ml-color-border);object-fit:cover}.scoreboard-player.won .scoreboard-avatar{border-color:var(--correct);box-shadow:0 0 8px #3eaa4280}.scoreboard-player.lost .scoreboard-avatar{border-color:#444;opacity:.5}.scoreboard-username{font-size:10px;color:var(--ml-color-text-soft);max-width:75px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.scoreboard-result{font-size:11px;font-weight:700;color:var(--neon-green)}.scoreboard-player.lost .scoreboard-result{color:#666}.scoreboard-mini-grid{display:flex;flex-direction:column;gap:2px}.scoreboard-mini-row{display:flex;gap:2px}.scoreboard-mini-cell{width:13px;height:13px;border-radius:2px}.scoreboard-mini-cell.correct{background:var(--correct)}.scoreboard-mini-cell.partial{background:var(--partial)}.scoreboard-mini-cell.incorrect{background:var(--incorrect)}.scoreboard-mini-cell.empty{background:transparent;border:1px solid #333}.other-players{display:none;flex-wrap:wrap;justify-content:center;gap:10px;padding:12px;background:#000000d9;border-top:1px solid var(--ml-color-border);max-height:200px;overflow-y:auto}.player-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px;background:#111;border:1px solid #2a2a2a;border-radius:10px;min-width:90px}.player-card.won{border-color:var(--correct);box-shadow:0 0 8px #3eaa424d}.player-card.lost{border-color:#333;opacity:.6}.player-avatar{width:40px;height:40px;border-radius:50%;border:2px solid var(--ml-color-border)}.player-card.won .player-avatar{border-color:var(--correct)}.player-card.lost .player-avatar{border-color:#444}.player-username{font-size:10px;color:var(--ml-color-text-soft);max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-grid{display:flex;flex-direction:column;gap:2px}.mini-row{display:flex;gap:2px}.mini-cell{width:12px;height:12px;background:#1a1a1a;border-radius:2px}.mini-cell.correct{background:var(--correct)}.mini-cell.partial{background:var(--partial)}.mini-cell.incorrect{background:var(--incorrect)}@media (max-width: 500px){header{height:50px}.title-main{font-size:18px;letter-spacing:2px;gap:6px}.title-mascot{width:28px;height:28px}.letter-container.cursor:after{font-size:14px}.grid{--gap: 4px}.attempt{gap:4px}.keyboard{gap:5px;padding:0 4px;margin-bottom:10px}.keyboard-line{gap:4px}.key{height:52px;font-size:12px}.key.special{font-size:10px}.other-players{padding:8px;gap:8px;max-height:150px}.player-card{padding:6px;min-width:70px}.player-avatar{width:32px;height:32px}.mini-cell{width:10px;height:10px}}@media (max-width: 400px){.key{height:48px;font-size:11px}.key.special{font-size:10px}}@media (max-width: 360px){.title-main{font-size:16px;letter-spacing:1px;gap:5px}.title-mascot{width:24px;height:24px}.title-mascot--right,.title-number{display:none}.letter-container.cursor:after{font-size:12px}.grid{--gap: 3px}.attempt{gap:3px}.keyboard{gap:4px;padding:0 3px;margin-bottom:8px}.keyboard-line{gap:3px}.key{height:44px;font-size:10px}.key.special{font-size:9px;max-width:68px}.other-players{padding:6px;gap:6px;max-height:120px}.player-card{padding:4px;min-width:60px}.player-avatar{width:28px;height:28px}.mini-cell{width:8px;height:8px}.mini-grid,.mini-row{gap:1px}}@media (max-width: 320px){.key{height:40px;font-size:9px}.key.special{font-size:8px}}@media (max-height: 700px){header{height:48px}.title-main{font-size:17px}.grid{--gap: 4px;--max-cell: 50px;padding:4px 0}.attempt{gap:4px}.key{height:50px}.keyboard{margin-bottom:8px}}@media (max-height: 600px){.grid{--gap: 3px;--max-cell: 44px;padding:2px 0}.attempt{gap:3px}.key{height:46px}}@media (max-height: 540px){header{height:38px}.title-main{font-size:15px}.title-number{display:none}.letter-container.cursor:after{font-size:11px}.key{height:42px;font-size:10px}.keyboard{gap:3px;margin-bottom:4px}.keyboard-line{gap:2px}}@media (max-width: 400px){.scoreboard-avatar{width:42px;height:42px}.scoreboard-mini-cell{width:11px;height:11px}.scoreboard-player{min-width:62px;gap:4px}}.overlay-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);overflow-y:auto;padding:16px;box-sizing:border-box}.auth-card{background:#1a1a2e;border-radius:16px;padding:32px;width:340px;max-width:90vw;max-height:100dvh;overflow-y:auto;text-align:center;box-shadow:0 8px 32px #00000080}.auth-card h2{margin:0 0 8px;font-size:24px;color:#fff}.auth-subtitle{color:#888;font-size:14px;margin:0 0 20px}.auth-error{background:#f44;color:#fff;padding:8px 12px;border-radius:8px;font-size:13px;margin-bottom:12px}.auth-success{background:#538d4e;color:#fff;padding:8px 12px;border-radius:8px;font-size:13px;margin-bottom:12px}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-form input{padding:12px 14px;border-radius:8px;border:1px solid #333;background:#0f0f23;color:#fff;font-size:15px;transition:border-color .2s}.auth-form input:focus{border-color:#538d4e}.auth-btn{padding:12px;border-radius:8px;border:none;background:#538d4e;color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:background .2s}.auth-btn:hover{background:#6aaa64}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-btn-secondary{background:#555}.auth-btn-secondary:hover{background:#666}.auth-btn-discord{background:#5865f2;display:flex;align-items:center;justify-content:center;gap:8px}.auth-btn-discord:hover{background:#4752c4}.auth-btn-discord svg{width:20px;height:20px;fill:#fff}.auth-toggle,.auth-skip{margin:14px 0 0;font-size:13px;color:#888}.auth-toggle a,.auth-skip a{color:#6aaa64;text-decoration:none;cursor:pointer}.auth-toggle a:hover,.auth-skip a:hover{text-decoration:underline}.user-menu-wrapper{position:absolute;left:12px;top:50%;transform:translateY(-50%);z-index:100}.user-dropdown{left:0;right:auto}body.discord-activity .user-display{position:absolute;left:12px;right:auto;top:50%;transform:translateY(-50%)}.user-menu-btn{display:flex;align-items:center;gap:8px;background:none;border:1px solid transparent;border-radius:8px;padding:4px 10px 4px 4px;cursor:pointer;transition:border-color .2s;color:#fff;font-size:14px}.user-menu-btn:hover{border-color:#444}.user-menu-btn .user-avatar{width:28px;height:28px;border-radius:50%}.user-menu-btn .caret{font-size:10px;opacity:.6;transition:transform .2s}.user-menu-btn.open .caret{transform:rotate(180deg)}.user-dropdown{position:absolute;right:0;top:calc(100% + 6px);background:#1a1a2e;border:1px solid #333;border-radius:10px;min-width:220px;padding:6px 0;box-shadow:0 8px 24px #00000080;z-index:3000;display:none}.user-dropdown.open{display:block}.user-dropdown-header{padding:10px 14px;border-bottom:1px solid #333;font-size:13px;color:#888}.user-dropdown-header strong{color:#fff;display:block;font-size:14px}.user-dropdown-item{display:flex;align-items:center;gap:10px;padding:10px 14px;font-size:14px;color:#ccc;cursor:pointer;transition:background .15s;border:none;background:none;width:100%;text-align:left}.user-dropdown-item:hover{background:#252540;color:#fff}.user-dropdown-item.discord-linked{color:#5865f2}.user-dropdown-item.danger{color:#f44}.user-dropdown-item svg{width:18px;height:18px;fill:#5865f2;flex-shrink:0}.user-dropdown-sep{height:1px;background:#333;margin:4px 0}.header-actions{display:flex;gap:6px;align-items:center;flex-shrink:0}@media (max-width: 500px){.user-name,.user-menu-btn span:not(.user-avatar),.user-menu-btn .caret{display:none}.user-display,.user-menu-wrapper{position:absolute;left:8px;right:auto;padding:0;background:transparent;border:none;gap:0}.user-menu-btn{padding:2px;border:none;gap:0}.user-avatar,.user-menu-btn .user-avatar{width:26px;height:26px}.header-container{flex-wrap:nowrap}.user-dropdown{left:0;right:auto}}@media (max-width: 500px){body.discord-activity header{padding-top:calc(env(safe-area-inset-top,0px) + 56px)}}.header-icon-btn{background:var(--ml-color-bg);border:1px solid var(--ml-color-border);color:var(--ml-color-text);width:34px;height:34px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s,color .15s}.header-icon-btn:hover{background:var(--ml-color-surface);border-color:var(--ml-color-accent-dim);color:var(--ml-color-accent)}.settings-list{display:flex;flex-direction:column;gap:12px;margin:16px 0}.settings-row{display:flex;justify-content:space-between;align-items:flex-start;padding:12px;background:#111;border:1px solid #222;border-radius:10px;gap:12px;cursor:pointer}.settings-row.disabled{opacity:.7;cursor:not-allowed}.settings-row-title{font-weight:600;color:var(--neon-green);font-size:14px;margin-bottom:4px}.settings-row-desc{font-size:12px;color:#888;line-height:1.4}.settings-row-lock{font-size:11px;color:var(--partial);margin-top:6px}.settings-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--correct);flex-shrink:0;margin-top:2px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.history-content{max-height:60vh;overflow-y:auto;margin:12px 0;display:flex;flex-direction:column;gap:10px}.history-loading,.history-empty{color:#888;text-align:center;padding:20px;font-size:13px}.history-entry{display:flex;gap:12px;padding:10px;background:#0f0f0f;border:1px solid #222;border-radius:8px;align-items:center}.history-meta{flex:1;min-width:0}.history-date{font-size:11px;color:#888}.history-word{font-weight:700;color:var(--neon-green);letter-spacing:1px;font-size:15px;margin:2px 0}.history-hard{color:var(--partial);font-size:12px}.history-score{font-size:12px;font-weight:600}.history-score.won{color:var(--correct)}.history-score.lost{color:#c44}.history-grid{font-family:monospace;font-size:14px;line-height:1.1;margin:0;color:#ccc}.distribution-section{margin:16px 0}.distribution-title{font-size:13px;font-weight:600;color:var(--neon-green);margin-bottom:8px;text-transform:uppercase;letter-spacing:1px}.distribution-chart{display:flex;flex-direction:column;gap:4px}.dist-row{display:flex;align-items:center;gap:8px}.dist-label{width:16px;text-align:center;font-weight:600;color:#aaa;font-size:13px}.dist-bar-wrap{flex:1;background:#0a0a0a;border-radius:4px;overflow:hidden}.dist-bar{background:var(--correct);color:#fff;font-size:11px;font-weight:600;padding:3px 8px;text-align:right;border-radius:4px;min-width:22px;transition:width .4s}.dist-bar.lost{background:#773030}.dist-bar.current{box-shadow:0 0 8px currentColor}.leaderboard-section{margin-top:16px}.leaderboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;flex-wrap:wrap;gap:8px}.leaderboard-title{font-size:13px;font-weight:600;color:var(--neon-green);text-transform:uppercase;letter-spacing:1px}.leaderboard-tabs{display:flex;gap:4px}.leaderboard-tab{background:transparent;border:1px solid #333;color:#888;padding:4px 10px;font-size:11px;border-radius:6px;cursor:pointer}.leaderboard-tab.active{background:var(--neon-green);color:#000;border-color:var(--neon-green);font-weight:600}.leaderboard-list{display:flex;flex-direction:column;gap:4px}.leaderboard-row{display:flex;align-items:center;gap:8px;padding:6px 8px;background:#0f0f0f;border-radius:6px;font-size:13px}.leaderboard-rank{width:20px;text-align:center;color:#888;font-weight:600}.leaderboard-avatar{width:24px;height:24px;border-radius:50%;object-fit:cover}.leaderboard-name{flex:1;color:var(--neon-green);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leaderboard-stats{color:#aaa;font-size:11px}.heatmap-section{margin-top:18px;border-top:1px solid rgba(83,141,78,.2);padding-top:12px}.heatmap-title{font-size:12px;color:var(--text-secondary, #818384);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.heatmap-grid{overflow-x:auto;padding-bottom:4px}.heatmap-legend{display:flex;align-items:center;gap:3px;margin-top:6px;font-size:10px;color:var(--text-secondary, #818384)}.replay-grid{display:grid;grid-template-columns:repeat(5,44px);grid-template-rows:repeat(6,44px);gap:4px;margin:16px auto;width:max-content}.replay-cell{width:44px;height:44px;border-radius:4px;background:var(--empty-bg, #121213);border:1px solid #3a3a3c;transition:background .3s ease,transform .15s ease}.replay-cell.correct{background:#538d4e;border-color:#538d4e}.replay-cell.partial{background:#b59f3b;border-color:#b59f3b}.replay-cell.incorrect{background:#3a3a3c;border-color:#3a3a3c}.replay-cell.flip{transform:scaleY(0)}.history-replay-btn{margin-top:6px;padding:4px 10px;font-size:11px;background:transparent;border:1px solid #3a3a3c;color:var(--text-secondary, #818384);border-radius:4px;cursor:pointer}.history-replay-btn:hover{border-color:#538d4e;color:#538d4e}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:2px solid var(--correct, #00FF1D);outline-offset:2px}button:focus:not(:focus-visible),input:focus:not(:focus-visible){outline:none}.pw-wrapper{position:relative;display:block;width:100%}.pw-wrapper input[type=password],.pw-wrapper input[type=text]{width:100%;box-sizing:border-box;padding-right:44px}.pw-toggle{position:absolute;top:50%;right:6px;transform:translateY(-50%);width:34px;height:34px;background:transparent;border:none;cursor:pointer;font-size:18px;line-height:1;padding:0;color:var(--text-secondary, #818384);display:flex;align-items:center;justify-content:center}.pw-toggle:hover{color:var(--correct, #00FF1D)}.guest-login-btn{position:absolute;left:12px;top:50%;transform:translateY(-50%);background:transparent;border:1px solid var(--neon-green, #00FF1D);color:var(--neon-green, #00FF1D);padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s;white-space:nowrap;z-index:5}.guest-login-btn:hover{background:#00ff1d1f}@media (max-width: 500px){.guest-login-btn{padding:4px 10px;font-size:12px}body.discord-activity .guest-login-btn{top:calc(50% + 28px)}}@media (max-width: 400px){.guest-login-btn{padding:3px 8px;font-size:11px}}.event-badge{position:absolute;left:50%;transform:translate(-50%);bottom:-18px;background:linear-gradient(90deg,#ff6b35,#f7c948);color:#0b0b0b;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.3px;box-shadow:0 2px 6px #00000059;white-space:nowrap;z-index:60}
