@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@700;900&display=swap');
*{margin:0;padding:0;box-sizing:border-box}
body{background:#0a0a0f;color:#e8e8ff;font-family:sans-serif;display:flex;flex-direction:column;align-items:center;min-height:100vh;overflow-x:hidden;padding-bottom:60px}

/* Header */
.header{display:flex;align-items:center;justify-content:center;width:100%;max-width:500px;padding:16px 16px 6px;position:relative;border-bottom:1px solid #1a1a2e;margin-bottom:8px}
.logo{font-family:'Orbitron',monospace;font-weight:900;font-size:clamp(16px,4vw,24px);color:#00f5ff;text-shadow:0 0 20px #00f5ff;letter-spacing:3px}
.back-btn{position:absolute;left:16px;color:#444;font-family:'Orbitron',monospace;font-size:10px;letter-spacing:2px;text-decoration:none;transition:color 0.2s}
.back-btn:hover{color:#00f5ff}
.help-btn{position:absolute;right:16px;background:transparent;border:1px solid #333;color:#555;width:28px;height:28px;border-radius:50%;font-family:'Orbitron',monospace;font-size:13px;cursor:pointer;transition:all 0.2s}
.help-btn:hover{border-color:#00f5ff;color:#00f5ff}

/* Info bars */
.daily-info{font-family:'Orbitron',monospace;font-size:10px;color:#444;letter-spacing:2px;text-align:center;margin-bottom:2px}
.streak-bar{font-family:'Orbitron',monospace;font-size:11px;color:#555;text-align:center;margin-bottom:10px}
.streak-bar b{color:#ffd700}

/* Grid */
#grid{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;width:min(315px,calc(100vw - 40px));margin:0 auto 16px}
.cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-family:'Orbitron',monospace;font-weight:900;font-size:clamp(18px,5vw,26px);border:2px solid #222;color:#e8e8ff;text-transform:uppercase;transition:background 0.2s,border-color 0.2s,transform 0.1s;user-select:none}
.cell.filled{border-color:#555;transform:scale(1.05)}
.cell.correct{background:#005533;border-color:#00cc66;color:#fff}
.cell.present{background:#554400;border-color:#cc8800;color:#fff}
.cell.absent{background:#1a1a1a;border-color:#2a2a2a;color:#555}
@keyframes shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.cell.shake{animation:shake 0.4s ease}
@keyframes pop{0%{transform:scale(1)}50%{transform:scale(1.12)}100%{transform:scale(1)}}
.cell.pop{animation:pop 0.12s ease}
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.cell.bounce{animation:bounce 0.4s ease}

/* Keyboard */
#keyboard{display:flex;flex-direction:column;gap:6px;width:min(500px,100vw);padding:0 4px}
.kb-row{display:flex;justify-content:center;gap:5px}
.kb-key{height:clamp(44px,7vw,58px);min-width:clamp(28px,8vw,42px);background:#1a1a2e;border:1px solid #2a2a3e;border-radius:4px;color:#e8e8ff;font-family:'Orbitron',monospace;font-weight:700;font-size:clamp(10px,2.5vw,14px);cursor:pointer;transition:background 0.2s,border-color 0.2s;letter-spacing:0;user-select:none;-webkit-tap-highlight-color:transparent}
.kb-key.wide{min-width:clamp(48px,12vw,66px);font-size:clamp(8px,2vw,11px)}
.kb-key.back-key{min-width:clamp(52px,13vw,72px);font-size:clamp(16px,4vw,22px);color:#ff6666;border-color:#3a2a2a}
.kb-key:active{transform:scale(0.95)}
.kb-key.correct{background:#005533;border-color:#00cc66;color:#fff}
.kb-key.present{background:#554400;border-color:#cc8800;color:#fff}
.kb-key.absent{background:#111;border-color:#1a1a1a;color:#333}
.kb-key.enter-key{background:linear-gradient(135deg,#00ff88,#00aa55);border-color:#00ff88;color:#0a0a0f;font-size:clamp(16px,4vw,22px);font-weight:900;box-shadow:0 0 12px rgba(0,255,136,0.4)}
.kb-key.enter-key:active{transform:scale(0.93)}

/* Message toast */
#message{position:fixed;top:80px;left:50%;transform:translateX(-50%);background:#e8e8ff;color:#0a0a0f;font-family:'Orbitron',monospace;font-size:12px;font-weight:700;padding:10px 20px;border-radius:4px;letter-spacing:2px;z-index:100;opacity:0;transition:opacity 0.3s;pointer-events:none;white-space:nowrap}

/* Result overlay */
#result-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.85);display:flex;align-items:center;justify-content:center;z-index:50}
.result-box{background:#0d0d18;border:1px solid #1a1a2e;border-radius:12px;padding:32px 28px;text-align:center;max-width:340px;width:90%;display:flex;flex-direction:column;align-items:center;gap:10px;box-shadow:0 0 60px rgba(0,245,255,0.1)}
.result-emoji{font-size:52px}
.result-title{font-family:'Orbitron',monospace;font-size:18px;font-weight:900;color:#00f5ff}
.result-word{font-family:'Orbitron',monospace;font-size:28px;font-weight:900;color:#ffd700;letter-spacing:6px}
#result-streak{font-family:'Orbitron',monospace;font-size:12px;color:#ffd700}
#countdown{font-family:'Orbitron',monospace;font-size:11px;color:#444;letter-spacing:1px}
.btn-again{background:linear-gradient(135deg,#00ff88,#00aa55);color:#0a0a0f;border:none;padding:14px 32px;font-family:'Orbitron',monospace;font-size:14px;font-weight:900;border-radius:4px;cursor:pointer;letter-spacing:2px;width:100%;margin-top:4px;box-shadow:0 0 24px rgba(0,255,136,0.4)}
.btn-again:hover{box-shadow:0 0 48px rgba(0,255,136,0.7);transform:scale(1.02)}
.btn-share{background:#00f5ff;color:#0a0a0f;border:none;padding:12px 32px;font-family:'Orbitron',monospace;font-size:13px;font-weight:700;border-radius:4px;cursor:pointer;letter-spacing:2px;width:100%;margin-top:4px;box-shadow:0 0 20px rgba(0,245,255,0.3)}
.btn-share:hover{box-shadow:0 0 40px rgba(0,245,255,0.5)}
.btn-hub{color:#444;font-family:'Orbitron',monospace;font-size:10px;letter-spacing:2px;text-decoration:none}
.btn-hub:hover{color:#00f5ff}

/* Help overlay */
#help-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.85);display:flex;align-items:center;justify-content:center;z-index:50}
.help-box{background:#0d0d18;border:1px solid #1a1a2e;border-radius:12px;padding:28px 24px;max-width:340px;width:90%;text-align:center;display:flex;flex-direction:column;gap:14px}
.help-title{font-family:'Orbitron',monospace;font-size:14px;font-weight:900;color:#00f5ff;letter-spacing:3px}
.help-box p{color:#888;font-size:13px;line-height:1.6}
.help-examples{display:flex;flex-direction:column;gap:10px;text-align:left}
.help-row{display:flex;align-items:center;gap:6px}
.help-row .cell{width:36px;height:36px;font-size:14px;flex-shrink:0}
.help-row span{font-size:12px;color:#666;margin-left:6px}
.btn-close{background:transparent;border:1px solid #00f5ff;color:#00f5ff;padding:10px 24px;font-family:'Orbitron',monospace;font-size:12px;border-radius:4px;cursor:pointer;letter-spacing:2px;margin-top:4px}

/* Leaderboard button */
.lb-btn{position:absolute;right:52px;background:transparent;border:1px solid #333;color:#555;width:28px;height:28px;border-radius:50%;font-size:13px;cursor:pointer;transition:all 0.2s;line-height:1}
.lb-btn:hover{border-color:#ffd700;color:#ffd700;box-shadow:0 0 10px rgba(255,215,0,0.3)}

/* Leaderboard overlay */
#lb-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.88);display:flex;align-items:center;justify-content:center;z-index:60}
.lb-box{background:#0d0d18;border:1px solid #1a1a2e;border-radius:12px;padding:24px 20px;max-width:360px;width:94%;display:flex;flex-direction:column;gap:12px;box-shadow:0 0 60px rgba(255,215,0,0.08);max-height:90vh}
.lb-title{font-family:'Orbitron',monospace;font-size:14px;font-weight:900;color:#ffd700;letter-spacing:3px;text-align:center}
.lb-tabs{display:flex;gap:6px;justify-content:center}
.lb-tab{background:#111;border:1px solid #2a2a3e;border-radius:4px;color:#555;font-family:'Orbitron',monospace;font-size:9px;font-weight:700;padding:6px 10px;cursor:pointer;letter-spacing:1px;transition:all 0.2s}
.lb-tab.active{background:#1a1a2e;border-color:#ffd700;color:#ffd700}
.lb-list{overflow-y:auto;max-height:52vh;display:flex;flex-direction:column;gap:3px}
.lb-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:4px;font-family:'Orbitron',monospace;font-size:11px}
.lb-row.lb-top{background:#0f0f1e}
.lb-rank{width:28px;text-align:center;font-size:14px;flex-shrink:0}
.lb-name{flex:1;color:#aaa;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lb-score{color:#ffd700;font-weight:700;font-size:13px;flex-shrink:0}
.lb-empty{text-align:center;color:#333;font-family:'Orbitron',monospace;font-size:11px;padding:24px 0}

/* Score entry */
.score-entry-info{font-family:'Orbitron',monospace;font-size:11px;color:#ffd700;letter-spacing:1px;text-align:center;margin-bottom:6px}
.score-input-row{display:flex;gap:8px;width:100%}
.score-name-inp{flex:1;background:#0d0d18;border:1px solid #2a2a3e;border-radius:4px;color:#e8e8ff;font-family:'Orbitron',monospace;font-size:13px;padding:8px 12px;outline:none;transition:border-color 0.2s}
.score-name-inp:focus{border-color:#ffd700}
.score-submit-btn{background:linear-gradient(135deg,#ffd700,#cc9900);color:#0a0a0f;border:none;border-radius:4px;width:40px;font-size:18px;font-weight:900;cursor:pointer;flex-shrink:0}
.score-submit-btn:hover{box-shadow:0 0 20px rgba(255,215,0,0.5)}
.score-submitted{font-family:'Orbitron',monospace;font-size:12px;color:#00cc66;letter-spacing:1px;text-align:center}
.lb-streak{font-size:10px;color:#ff8800;margin-left:4px;opacity:0.8}
.lb-own{border:1px solid #ffd700;border-radius:4px;background:#131308 !important}
.btn-leaderboard{background:transparent;border:1px solid #2a2a3e;color:#555;padding:8px 20px;font-family:'Orbitron',monospace;font-size:10px;font-weight:700;border-radius:4px;cursor:pointer;letter-spacing:2px;width:100%;transition:all 0.2s}
.btn-leaderboard:hover{border-color:#ffd700;color:#ffd700}

/* Hint banner */
#hint-banner{font-family:'Orbitron',monospace;font-size:11px;color:#556;text-align:center;margin-bottom:10px;padding:8px 16px;border:1px solid #1a1a2e;border-radius:8px;width:min(315px,calc(100vw - 40px));line-height:1.6;transition:opacity 0.4s,max-height 0.4s,padding 0.3s,margin 0.3s,border 0.3s;overflow:hidden;max-height:60px}
#hint-banner.hidden{opacity:0;max-height:0;padding-top:0;padding-bottom:0;margin-bottom:0;border-color:transparent;pointer-events:none}

/* Footer */
.footer{position:fixed;bottom:0;left:0;right:0;text-align:center;font-size:11px;color:#222;padding:8px;font-family:'Orbitron',monospace;letter-spacing:1px;background:#0a0a0f}
.footer a{color:#222;text-decoration:none;margin:0 6px}
