:root{--bg: #1e1e21;--bg-2: #26262a;--ink: #e8e6e1;--mute: #6c6a65;--dim: #2a2a2c;--line: #3a3a3d;--accent: #ff2d8f;--paper: #f4f1ea;--p-red-bg: #7a1a10;--p-red-ink: #fdece9;--p-blue-bg: #0f2e6b;--p-blue-ink: #e8eeff;--p-green-bg: #0e4d34;--p-green-ink: #e7f6ec;--p-purple-bg: #2d1766;--p-purple-ink: #efe7ff;--p-cream-bg: #f4f1ea;--p-cream-ink: #1a1814;--p-teal-bg: #0f3e3d;--p-teal-ink: #e5f4f3;--p-yellow-bg: #5a4812;--p-yellow-ink: #fff4d4;--p-pink-bg: #5c2743;--p-pink-ink: #ffe5f0;--p-black-bg: #050505;--p-black-ink: #e8e6e1;--p-dark-bg: #0a0a0c;--p-dark-ink: #f0eee9;--p-light-bg: #faf8f3;--p-light-ink: #1a1814;--p-slate-bg: #4b8a9b;--p-slate-ink: #f0f7f9;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-serif: "Fraunces", Georgia, serif;--ease-snappy: cubic-bezier(.2, .9, .3, 1);--d-hover: .18s;--d-toast: .25s;--d-modal: .4s;--d-grid: .6s;--d-fly: .7s}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:var(--bg);color:var(--ink);font-family:var(--font-mono);font-size:12.5px;font-weight:400;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{position:relative}button,input{font:inherit;color:inherit}button{background:none;border:0;padding:0;cursor:pointer}::selection{background:var(--accent);color:var(--bg)}body:before{content:"";position:fixed;inset:0;background:repeating-linear-gradient(0deg,rgba(255,255,255,.012) 0,rgba(255,255,255,.012) 1px,transparent 1px,transparent 3px);pointer-events:none;z-index:1000}body:after{content:"";position:fixed;inset:0;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.55) 100%);pointer-events:none;z-index:1000}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}@keyframes pulse{0%{box-shadow:0 0 0 0 var(--accent);opacity:1}to{box-shadow:0 0 0 34px #ff2d8f00;opacity:.4}}@keyframes drift{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes reelscan{0%{transform:translateY(-100%)}to{transform:translateY(250%)}}@keyframes shine{0%{background-position:0% 50%}to{background-position:100% 50%}}
