@import url("/assets/core/tokens.css");

*, *::before, *::after { box-sizing: border-box; }
html { min-width: 320px; scroll-behavior: smooth; }
body { margin: 0; background: var(--color-surface); color: var(--color-ink); font-family: var(--font-sans); font-size: 16px; line-height: 1.55; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button, [type="submit"] { cursor: pointer; }
:focus-visible { outline: 3px solid rgb(95 39 232 / 35%); outline-offset: 3px; }
h1, h2, h3 { margin: 0 0 .65em; line-height: 1.12; letter-spacing: -.035em; }
h1 { font-size: clamp(2.25rem, 5vw, 4.6rem); }
h2 { font-size: clamp(1.55rem, 3vw, 2.25rem); }
h3 { font-size: 1.05rem; }
p { margin: 0 0 1rem; }
.skip-link { position: fixed; z-index: 1000; top: .5rem; left: .5rem; transform: translateY(-200%); padding: .65rem 1rem; border-radius: var(--radius-sm); background: var(--color-ink); color: white; }
.skip-link:focus { transform: none; }
.container { width: min(calc(100% - 2rem), var(--container)); margin-inline: auto; }
.muted { color: var(--color-muted); }
.eyebrow { color: var(--color-violet); font-size: .78rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.gradient-text { background: var(--gradient-brand); background-clip: text; color: transparent; }
.button { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; gap: .6rem; padding: .75rem 1.15rem; border: 1px solid transparent; border-radius: .7rem; background: var(--gradient-violet); color: white; font-weight: 750; transition: transform .18s ease, box-shadow .18s ease; }
.button:hover { transform: translateY(-1px); box-shadow: var(--shadow-sm); }
.button--brand { background: var(--gradient-brand); }
.button--secondary { border-color: #cfc6fb; background: white; color: var(--color-violet-dark); }
.button--wide { width: 100%; }
.card { border: 1px solid var(--color-line); border-radius: var(--radius-md); background: white; box-shadow: 0 1px 0 rgb(19 17 56 / 2%); }
.field { display: grid; gap: .45rem; }
.field label { font-weight: 700; }
.field input, .field textarea, .field select { width: 100%; min-height: 48px; border: 1px solid #d9dbea; border-radius: .7rem; padding: .75rem .9rem; background: white; color: var(--color-ink); }
.field input[aria-invalid="true"] { border-color: var(--color-danger); }
.field-error, .form-error { color: var(--color-danger); font-size: .88rem; }
.notice { padding: .9rem 1rem; border: 1px solid #dcd4ff; border-radius: .75rem; background: #f8f6ff; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; } }
