@import url("https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,700;1,400;1,500&family=JetBrains+Mono:wght@300;400;500&family=Lora:ital,wght@0,400;0,500;1,400&display=swap");:root{--bg:#111010;--surface:#1a1918;--surface-2:#232120;--surface-3:#2c2a28;--border:hsla(0,0%,100%,.06);--border-hover:hsla(0,0%,100%,.12);--text:#f5f0eb;--text-muted:#9a9590;--text-subtle:#5a5550;--crimson:#8f1738;--crimson-dim:rgba(143,23,56,.15);--red:#ef402a;--red-dim:rgba(239,64,42,.12);--orange:#f46d24;--orange-dim:rgba(244,109,36,.12);--pink:#dd1467;--pink-dim:rgba(221,20,103,.12);--warm:#ef402a;--warm-dim:rgba(239,64,42,.12);--warm-muted:rgba(239,64,42,.35);--accent:#f46d24;--accent-dim:rgba(244,109,36,.12);--success:#3dba7e;--success-dim:rgba(61,186,126,.12);--error:#ef402a;--error-dim:rgba(239,64,42,.12);--radius:8px;--radius-lg:14px;--font-display:"Playfair Display",Georgia,serif;--font-body:"Lora",Georgia,serif;--font-mono:"JetBrains Mono",monospace}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{background:var(--bg);color:var(--text);font-family:var(--font-body);line-height:1.65;min-height:100vh;-webkit-font-smoothing:antialiased;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23grain)' opacity='0.045'/%3E%3C/svg%3E");background-size:256px 256px;background-attachment:fixed}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none}button,input,textarea{font-family:var(--font-mono)}input,textarea{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:.875rem;padding:.625rem .875rem;width:100%;transition:border-color .2s,box-shadow .2s;outline:none;letter-spacing:.01em}input:focus,textarea:focus{border-color:var(--warm-muted);box-shadow:0 0 0 3px rgba(239,64,42,.08)}input::placeholder{color:var(--text-subtle)}input:disabled{opacity:.4;cursor:not-allowed}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}