:root{--accent: #f11336;--accent-hover: #d90e2e;--accent-soft: #fff5f6;--ink: #251f1f;--ink-dark: #15212e;--ink-darker: #101a24;--panel-dark: #16232f;--muted: #626a77;--muted-2: #98a2af;--line: #e2e6eb;--line-2: #d7dde4;--bg: #e9ecf0;--surface: #ffffff;--on-dark: #cbdfec;--on-dark-muted: #7e8b99;--c1: #ef4060;--c2: #3d8bf0;--c3: #c47f16;--c4: #149a82;--c5: #9166e8;--seq-lo: #2b3b4d;--seq-hi: #f11336;--mono: "JetBrains Mono", ui-monospace, monospace;--sans: "Montserrat", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);font-family:var(--sans);color:var(--ink);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline;text-underline-offset:3px}button{font-family:var(--sans);cursor:pointer}button:disabled{cursor:not-allowed}.mono{font-family:var(--mono)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 26px;border-radius:6px;border:none;font:700 14px/1 var(--sans);background:var(--accent);color:#fff;box-shadow:0 12px 24px -14px #f11336e6}.btn:hover:not(:disabled){background:var(--accent-hover)}.btn.secondary{background:#fff;color:var(--ink);border:1px solid var(--line-2);box-shadow:none;font-weight:600}.btn.ghost{background:transparent;color:#fff;border:1px solid rgba(203,223,236,.35);box-shadow:none;font-weight:600}.btn:disabled{background:var(--bg);color:var(--muted-2);box-shadow:none}.label{font:600 10px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.input{display:flex;align-items:center;width:100%;padding:0 14px;height:48px;border:1px solid var(--line-2);border-radius:4px;background:#fff;font:500 15px/1 var(--sans);color:var(--ink)}.input:focus{outline:none;border-color:var(--ink-dark)}textarea.input{height:auto;min-height:68px;padding:14px;line-height:1.5;resize:vertical}.card{background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 20px 50px -30px #15212e80}@keyframes riseIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.pulse-dot{animation:pulseDot 1.4s ease-in-out infinite}@keyframes pulseDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}
