*{box-sizing:border-box}body{background:#f28c28;min-height:100vh;margin:0;font-family:system-ui,sans-serif;overflow-x:hidden}.emoji-rain{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.emoji-rain span{animation-name:fall;animation-timing-function:linear;animation-iteration-count:infinite;position:absolute;top:-3rem}@keyframes fall{0%{transform:translateY(0)rotate(0)}to{transform:translateY(calc(100vh + 6rem))rotate(360deg)}}main{z-index:1;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:16px 16px 96px;display:flex;position:relative}.title{text-align:center;color:#1a1a1a;margin-bottom:24px}.title h1{margin:0;font-size:clamp(2.25rem,8vw,4rem);line-height:1.1}.title p{margin:8px 0 0;font-size:clamp(1.1rem,4vw,1.5rem)}.guesses{flex-direction:column;gap:10px;width:100%;max-width:420px;display:flex}.ghost{align-items:center;gap:10px;display:flex}.ghost label{color:#fff;background:#1b032b;border-radius:50%;flex:none;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.1rem;font-weight:700;display:flex}.ghost:nth-child(n+6) label{background:#442357}.ghost-field{flex:1;min-width:0;position:relative}.ghost-field input{box-sizing:border-box;background:#fff;border:2px solid #1a1a1a;border-radius:8px;width:100%;padding:12px 14px;font-size:1rem}.ghost.duplicate input{background:#ffe5e5;border-color:#d62828}.guesses .notice{text-align:center;margin:0}.submit{color:#fff;cursor:pointer;background:#1a1a1a;border:2px solid #1a1a1a;border-radius:8px;margin-top:6px;padding:14px 16px;font-size:1.1rem;font-weight:700}.submit:hover{background:#333}.submit:disabled{opacity:.6;cursor:default}.hint{text-align:center;color:#1a1a1a;margin:0;font-size:.9rem}.results{z-index:1;background:#fff;border-radius:8px;margin:8px 0 0;padding:0;list-style:none;position:absolute;top:100%;left:0;right:0;overflow:hidden;box-shadow:0 4px 12px #00000040}.results:empty{display:none}.results li{cursor:pointer;padding:10px 14px}.results li:hover,.results li.active{background:#ffe0c2}.popup-backdrop{z-index:2;background:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.popup{text-align:center;background:#fff;border-radius:12px;padding:24px 32px;box-shadow:0 8px 24px #0000004d}.popup p{margin:0 0 16px;font-size:1.5rem;font-weight:700}.popup .popup-text{margin-bottom:20px;display:block}.popup-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;display:flex}.popup-actions a{color:#1a1a1a;font-weight:700}.popup button{color:#fff;cursor:pointer;background:#1a1a1a;border:none;border-radius:8px;padding:10px 20px;font-size:1rem}.name-prompt{flex-direction:column;gap:12px;width:100%;max-width:340px;display:flex}.name-prompt p{margin:0}.name-prompt input{border:2px solid #1a1a1a;border-radius:8px;padding:12px 14px;font-size:1rem}.name-prompt .taken{color:#d62828;font-weight:700}.name-prompt button:disabled{opacity:.4;cursor:default}.notice{color:#fff;background:#d62828;border-radius:8px;margin:16px 0 0;padding:8px 14px;font-weight:700}.player-bar{color:#1a1a1a;z-index:1;background:#f28c28;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 16px;padding:12px 16px;font-size:.95rem;display:flex;position:fixed;bottom:0;left:0;right:0}.player-bar a,.player-bar .link,.back{font:inherit;color:#1a1a1a;cursor:pointer;background:0 0;border:none;padding:0;font-weight:700;text-decoration:underline}.leaderboard{background:#fff;border-radius:12px;width:100%;max-width:420px;max-height:60vh;overflow-y:auto;box-shadow:0 8px 24px #0000004d}.leaderboard ol{margin:0;padding:0;list-style:none}.leaderboard li{border-bottom:1px solid #f0e0d0;gap:12px;padding:12px 16px;display:flex}.leaderboard li:last-child{border-bottom:none}.leaderboard li:nth-child(-n+3){background:#fff3e6;font-weight:700}.leaderboard .rank{text-align:right;width:2.5ch}.leaderboard .name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.leaderboard .score{font-variant-numeric:tabular-nums}.leaderboard .empty,.leaderboard .notice{text-align:center;margin:16px}.back{margin-top:20px}.emoji-rain img{height:2em;display:block}
