:root { color-scheme: light; }
html, body { margin: 0; padding: 0; background: #FFFFFF; color: #333; font-family: -apple-system, system-ui, "Helvetica Neue", Arial, sans-serif; height: 100%; overflow: hidden; }
body { display: flex; flex-direction: column; align-items: center; justify-content: center; user-select: none; -webkit-user-select: none; }
#stage-wrap { position: relative; display: flex; align-items: center; justify-content: center; }
#stage { display: block; background: #FFFFFF; image-rendering: auto; }
#white { position: fixed; inset: 0; background: #FFFFFF; opacity: 0; pointer-events: none; transition: opacity 120ms linear; z-index: 5; }
#white.on { opacity: 1; }
#slider { position: fixed; left: 50%; transform: translateX(-50%); bottom: 26px; width: min(720px, 80vw); height: 44px; touch-action: none; cursor: pointer; z-index: 3; }
#slider .track { position: absolute; left: 0; right: 0; top: 21px; height: 2px; background: #dcdcdc; border-radius: 1px; }
#slider .thumb { position: absolute; top: 12px; width: 20px; height: 20px; margin-left: -10px; border-radius: 50%; background: #FFFFFF; border: 1.5px solid #8a8a8a; box-shadow: 0 1px 3px rgba(0,0,0,.18); transition: transform 80ms ease, border-color 120ms; }
#slider.dragging .thumb, #slider:hover .thumb { transform: scale(1.12); border-color: #4a4a4a; }
#slider.hidden { display: none; }
#counters { position: fixed; top: 16px; right: 20px; font-size: 13px; color: #9a9a9a; letter-spacing: .02em; z-index: 6; display: flex; gap: 18px; }
#counters b { color: #555; font-weight: 600; font-variant-numeric: tabular-nums; transition: transform 160ms ease; display: inline-block; }
#counters b.tick { transform: translateY(-3px); }
#counters b.pulse { animation: pulse 700ms ease; }
@keyframes pulse { 0% { transform: scale(1); color: #555 } 40% { transform: scale(1.35); color: #111 } 100% { transform: scale(1); color: #555 } }
#hint { position: fixed; left: 20px; bottom: 30px; font-size: 12px; color: #b5b5b5; z-index: 3; }
#hint kbd { border: 1px solid #ddd; border-radius: 3px; padding: 0 5px; font-family: inherit; color: #999; }
#msg { position: fixed; inset: 0; display: none; align-items: center; justify-content: center; font-size: 15px; color: #777; z-index: 4; background: #FFFFFF; }
#msg.on { display: flex; }
#modal { position: fixed; inset: 0; display: none; align-items: center; justify-content: center; background: rgba(255,255,255,.96); z-index: 20; }
#modal.on { display: flex; }
#modal .card { max-width: 460px; padding: 34px 38px; border: 1px solid #e6e6e6; border-radius: 12px; background: #fff; box-shadow: 0 10px 40px rgba(0,0,0,.06); font-size: 16px; line-height: 1.55; color: #333; }
#modal h1 { font-size: 20px; margin: 0 0 12px; font-weight: 600; }
#modal p { margin: 0 0 12px; }
#modal .keys { font-size: 13px; color: #888; margin-top: 16px; }
button.primary { margin-top: 12px; padding: 10px 22px; border-radius: 8px; border: 0; background: #222; color: #fff; font-size: 15px; cursor: pointer; }
button.primary:hover { background: #000; }
#skip { position: fixed; inset: 0; display: none; align-items: center; justify-content: center; background: rgba(255,255,255,.92); z-index: 15; }
#skip.on { display: flex; }
#skip .card { padding: 22px 26px; border: 1px solid #e6e6e6; border-radius: 10px; background: #fff; display: flex; flex-direction: column; gap: 8px; }
#skip button { padding: 9px 16px; border-radius: 7px; border: 1px solid #ddd; background: #fff; font-size: 14px; cursor: pointer; text-align: left; }
#skip button:hover { border-color: #999; }
#skip .cancel { color: #999; border: 0; }
.login { display: flex; flex-direction: column; align-items: center; gap: 12px; font-size: 15px; color: #444; }
.login input { font-size: 16px; padding: 10px 14px; border: 1px solid #ccc; border-radius: 8px; width: 280px; }
.login .note { color: #888; font-size: 13px; max-width: 320px; text-align: center; }
#confirm { position: fixed; right: 20px; bottom: 30px; font-size: 13px; color: #999; background: #fff; border: 1px solid #e3e3e3; border-radius: 8px; padding: 8px 14px; cursor: pointer; z-index: 3; }
#confirm:hover { color: #333; border-color: #999; }
