:root{--bg-0:#07060b;--bg-1:#100c18;--bg-2:#161020;--bg-3:#1e1630;--surface:rgba(30,22,48,0.62);--surface-solid:#181226;--ink:#f4efe6;--ink-2:#c4bbd4;--ink-3:#8e84a6;--ink-4:#5d5570;--violet:#9b7cff;--cyan:#56e0d8;--gold:#f6c85f;--green:#6ef2a6;--rose:#ff7aa2;--red:#ff4d6d;--allow:var(--green);--draft:var(--violet);--forbidden:var(--red);--approval:var(--gold);--border:rgba(155,124,255,0.18);--border-strong:rgba(155,124,255,0.4);--radius-s:6px;--radius-m:12px;--radius-l:20px;--radius-pill:999px;--shadow-1:0 1px 0 rgba(255,255,255,0.04) inset,0 8px 24px rgba(0,0,0,0.45);--shadow-2:0 24px 60px rgba(0,0,0,0.55);--glow-violet:0 0 28px rgba(155,124,255,0.4);--glow-cyan:0 0 28px rgba(86,224,216,0.35);--dur-1:140ms;--dur-2:280ms;--dur-3:520ms;--ease:cubic-bezier(0.22,1,0.36,1);--font-display:"Syne",system-ui,sans-serif;--font-body:"Inter Tight",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{background:radial-gradient(1200px 800px at 18% -10%,rgba(155,124,255,.12),transparent 60%),radial-gradient(900px 700px at 100% 0,rgba(86,224,216,.08),transparent 55%),var(--bg-0);color:var(--ink);font-family:var(--font-body);font-feature-settings:"tnum" 1,"ss01" 1;-webkit-font-smoothing:antialiased;overflow:hidden}h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em}.mono{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}button{cursor:pointer}button,input,select,textarea{font-family:inherit;color:inherit}a{color:var(--cyan);text-decoration:none}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:rgba(155,124,255,.25);border-radius:999px}::-webkit-scrollbar-track{background:transparent}@keyframes ps-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes ps-stamp{0%{opacity:0;transform:scale(1.6) rotate(-12deg)}60%{opacity:1;transform:scale(.92) rotate(-6deg)}to{transform:scale(1) rotate(-6deg)}}@keyframes ps-pulse{0%,to{opacity:.5}50%{opacity:1}}@keyframes ps-sweep{0%{transform:translateX(-100%)}to{transform:translateX(220%)}}@keyframes ps-spin{to{transform:rotate(1turn)}}.rise{animation:ps-rise var(--dur-2) var(--ease) both}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}