*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; font-family: var(--font); color: var(--ink); background: var(--bg); font-size: 15px; line-height: 1.55; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
body::before { content: ''; position: fixed; inset: 0; z-index: -1; background: radial-gradient(900px 420px at 85% -80px, #FFE3E6 0%, transparent 70%), radial-gradient(700px 380px at -10% 30%, #FFEDEE 0%, transparent 70%), var(--bg); }
h1, h2, h3, h4 { font-family: var(--font-d); line-height: 1.15; margin: 0; color: var(--ink-h); font-weight: 700; letter-spacing: -.01em; }
p { margin: 0; } a { color: inherit; text-decoration: none; } img, svg { max-width: 100%; display: block; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; } ul, ol { margin: 0; padding: 0; list-style: none; }
.ic { width: 1.25em; height: 1.25em; flex: none; vertical-align: middle; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; } .ic-sm { width: 1em; height: 1em; } .ic-lg { width: 1.6em; height: 1.6em; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid rgba(227, 16, 31, .35); outline-offset: 2px; border-radius: 8px; }
::selection { background: var(--red); color: #fff; }
.text-red { color: var(--red); } .text-muted { color: var(--muted); } .text-green { color: var(--green); } .text-center { text-align: center; }
.nowrap { white-space: nowrap; } .mt-1 { margin-top: 8px; } .mt-2 { margin-top: 16px; } .mt-3 { margin-top: 24px; } .mb-2 { margin-bottom: 16px; }
