:root{--bg: #0b0e14;--line: #232a36;--muted: #8b93a7;--green: #00c805;--red: #ff5000;--text: #e6e9ef;--mono: Consolas, "Roboto Mono", ui-monospace, monospace;--sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);display:grid;place-items:center;min-height:100dvh;overflow:hidden}.mono{font-family:var(--mono)}#tape{position:fixed;top:0;left:0;right:0;height:28px;z-index:4;background:#07090e;border-bottom:1px solid var(--line);overflow:hidden;font-family:var(--mono);font-size:12px;line-height:28px}#tape-inner{display:inline-block;white-space:nowrap;animation:tape 50s linear infinite}@keyframes tape{0%{transform:translate(0)}to{transform:translate(-50%)}}#tape .t{margin:0 16px;color:#aeb6c8;display:inline-flex;align-items:center;gap:6px}#tape .t img{width:14px;height:14px;border-radius:50%}#tape .up{color:var(--green)}#tape .down{color:var(--red)}.bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;background:url(/img/shot-world.png) center / cover no-repeat;filter:blur(2px) saturate(.8);opacity:.28}#scene{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;opacity:0;transition:opacity 1.6s ease}#scene.on{opacity:1}#scene canvas{display:block;width:100%;height:100%}.vignette{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse at center,#0b0e1426,#0b0e148c 60%,#0b0e14e6)}.gate{position:relative;z-index:3;width:min(420px,calc(100vw - 32px));padding:28px 28px 30px;background:#0f131be6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;box-shadow:0 30px 80px #0000008c;animation:gate-in .7s cubic-bezier(.16,1,.3,1) both}@keyframes gate-in{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}.gate>*{animation:rise .6s cubic-bezier(.16,1,.3,1) both}.gate>:nth-child(1){animation-delay:.15s}.gate>:nth-child(2){animation-delay:.22s}.gate>:nth-child(3){animation-delay:.29s}.gate>:nth-child(4){animation-delay:.38s}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.logo{margin:-8px 0 4px;width:min(250px,70vw);animation:rise .6s cubic-bezier(.16,1,.3,1) both,float 5s ease-in-out 1s infinite;filter:drop-shadow(0 12px 24px rgba(0,0,0,.55))}.logo img{display:block;width:100%;height:auto}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.sub{margin:0;font-size:9px;letter-spacing:3px;color:var(--muted);font-weight:700}.enter{position:relative;overflow:hidden;margin-top:18px;width:100%;padding:14px;border-radius:6px;background:var(--green);color:#04140a;font-weight:800;font-size:13px;letter-spacing:2px;text-decoration:none;text-align:center;transition:background .15s ease,transform .1s ease,box-shadow .2s ease}.enter:after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:skew(-18deg);transition:left .55s ease}.enter:hover{background:#14d81a;box-shadow:0 0 28px #00c80559}.enter:hover:after{left:120%}.enter:active{transform:translateY(1px)}.enter span{position:relative}.links{display:flex;gap:22px;margin-top:10px}.links a{color:var(--muted);font-size:12px;letter-spacing:1px;text-decoration:none;transition:color .15s ease}.links a:hover{color:var(--text)}.links .x{display:inline-flex;align-items:center;gap:6px}.links .x svg{width:13px;height:13px}.status{position:fixed;bottom:16px;left:0;right:0;z-index:3;margin:0;text-align:center;font-size:11px;color:var(--muted);animation:rise .6s ease .8s both}.status span{color:var(--green)}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);margin-right:8px;vertical-align:1px;animation:pulse 1.8s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 #00c8058c}70%{box-shadow:0 0 0 7px #00c80500}}@media(prefers-reduced-motion:reduce){#tape-inner,.gate,.gate>*,.logo,.status,.dot{animation:none!important}.enter:after{display:none}#scene{display:none}}
