@font-face{font-family:JetBrains Mono;font-weight:400;font-style:normal;font-display:swap;src:url(/assets/JetBrainsMono-Regular-cF2C8nfn.ttf) format("truetype")}@font-face{font-family:JetBrains Mono;font-weight:500;font-style:normal;font-display:swap;src:url(/assets/JetBrainsMono-Medium-Bpf1P7_Y.ttf) format("truetype")}:root{color-scheme:dark;--bg: #06070a;--ink: #eef2f7;--muted: #565e6b;--accent: #5b8cff;--mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1)}body.nf-light{color-scheme:light;--bg: #f4f5f7;--ink: #0c0e12;--muted: #5b626d}body.nf-light .overlay .hint b{color:#3a414c}html,body,#root{margin:0;width:100%;height:100%;background:var(--bg);overflow:hidden;font-family:var(--mono);-webkit-font-smoothing:antialiased}canvas{display:block;touch-action:none}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5}.overlay .brand{position:absolute;top:20px;left:24px;display:flex;align-items:center;gap:9px;color:var(--ink);font-size:11px;font-weight:500;letter-spacing:.34em}.overlay .brand .brandmark{width:18px;height:18px;display:block;animation:nf-pulse 3.4s ease-in-out infinite}@keyframes nf-pulse{0%,to{opacity:1}50%{opacity:.35}}.overlay .meta{position:absolute;top:22px;left:168px;color:var(--muted);font-size:10px;letter-spacing:.18em;text-transform:uppercase}.overlay .hint{position:absolute;bottom:18px;left:24px;color:var(--muted);font-size:10px;letter-spacing:.08em}.overlay .hint b{color:#8a93a1;font-weight:500}#leva__root{z-index:10}.presetbar{position:fixed;bottom:16px;left:50%;transform:translate(-50%);z-index:8;display:flex;align-items:center;gap:8px;padding:5px;overflow:visible;background:#0b0d12a8;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.07);border-radius:11px;box-shadow:0 8px 30px #0006}.preset-menu{display:inline-flex;align-items:center;gap:6px;color:#cbd2dc;border-color:#ffffff1f}.preset-caret{opacity:.7;transition:transform .16s var(--ease-out)}.preset-menu-open .preset-caret{transform:rotate(180deg)}@media (hover: hover) and (pointer: fine){.preset-menu:hover{color:#eef2f7;background:#ffffff0e}}.preset-popover{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);width:min(420px,86vw);display:flex;flex-direction:column;gap:11px;padding:14px 16px;background:#0b0d12db;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.08);border-radius:12px;box-shadow:0 12px 36px #00000080;transform-origin:bottom center;animation:preset-pop-in .15s var(--ease-out)}@keyframes preset-pop-in{0%{opacity:0;transform:translate(-50%) scale(.97) translateY(4px)}to{opacity:1;transform:translate(-50%) scale(1) translateY(0)}}.preset-pop-section{display:flex;flex-direction:column;gap:6px}.preset-pop-label{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.preset-pop-grid{display:flex;flex-wrap:wrap;gap:4px}.preset-div{width:1px;height:18px;background:#ffffff1a;flex:none}.chip{font-family:var(--mono);font-size:11px;letter-spacing:.02em;color:#aeb6c2;background:transparent;border:1px solid transparent;border-radius:6px;padding:5px 9px;cursor:pointer;white-space:nowrap;transition:background .14s var(--ease-out),color .14s var(--ease-out),border-color .14s var(--ease-out),transform .14s var(--ease-out)}@media (hover: hover) and (pointer: fine){.chip:hover{color:#eef2f7;background:#ffffff0e}}.chip:active{transform:scale(.97)}.chip-active{color:#eef2f7;background:#5b8cff29;border-color:#5b8cff80}.chip-roll{display:inline-flex;align-items:center;gap:6px;color:#cbd2dc;border-color:#ffffff1f}.chip-roll svg{opacity:.85}@media (hover: hover) and (pointer: fine){.chip-roll:hover{color:#eef2f7;background:#5b8cff24;border-color:#5b8cff66}}.embed-roll{position:fixed;bottom:18px;left:50%;transform:translate(-50%);z-index:8;display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11.5px;letter-spacing:.04em;color:#cbd2dc;padding:9px 16px;background:#0b0d12a8;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:10px;box-shadow:0 8px 30px #0006;cursor:pointer;transition:background .14s var(--ease-out),color .14s var(--ease-out),border-color .14s var(--ease-out),transform .14s var(--ease-out)}.embed-roll-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent)}@media (hover: hover) and (pointer: fine){.embed-roll:hover{color:#eef2f7;background:#5b8cff24;border-color:#5b8cff66}}.embed-roll:active{transform:translate(-50%) scale(.97)}@media (prefers-reduced-motion: reduce){.embed-roll,.embed-roll:active{transition:background .14s,color .14s,border-color .14s;transform:translate(-50%)}}.readout{position:fixed;left:24px;bottom:44px;z-index:6;pointer-events:none;font-family:var(--mono);max-width:60ch}.readout .readout-title{color:var(--accent);font-size:11px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:4px}.readout .readout-line{color:#79828f;font-size:11px;line-height:1.5;letter-spacing:.02em}.mobile-gate{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:32px;text-align:center;background:#06070a;color:#eef2f7}.mobile-gate-mark{display:block;opacity:.9;margin-bottom:6px}.mobile-gate-copy{max-width:320px;margin:0;font-size:13px;line-height:1.6;color:#9aa2ad}@media (prefers-reduced-motion: reduce){.overlay .brand .brandmark{animation:none}.chip,.chip:active{transition:background .14s,color .14s,border-color .14s;transform:none}.preset-popover{animation:none}.preset-caret{transition:none}}
