*{box-sizing:border-box}html,body{cursor:crosshair;background:#120c08;height:100%;margin:0;overflow:hidden}#hero{position:fixed;inset:0}#hero canvas{width:100%;height:100%;display:block}#vignette{pointer-events:none;z-index:2;background:radial-gradient(120% 90% at 18% 8%,#ffd6a01f,#0000 55%),radial-gradient(140% 120%,#0000 55%,#0804029e 100%);position:fixed;inset:0}#grain{pointer-events:none;z-index:3;opacity:.045;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");animation:.6s steps(3,end) infinite grain;position:fixed;inset:-50%}@keyframes grain{0%{transform:translate(0)}33%{transform:translate(-3%,2%)}66%{transform:translate(2%,-3%)}to{transform:translate(0)}}@media (prefers-reduced-motion:reduce){#grain{animation:none}}#fps{z-index:4;pointer-events:none;color:#f5ede273;font:11px/1 ui-monospace,monospace;position:fixed;bottom:12px;right:16px}#loading{z-index:10;background:#120c08;place-items:center;transition:opacity .9s;display:grid;position:fixed;inset:0}#loading.done{opacity:0;pointer-events:none}#loading .err{color:#f0a880;text-align:center;max-width:520px;padding:0 24px;font:14px/1.5 system-ui,sans-serif}
