/* Hallmark · shape: Workbench · genre: modern-minimal · theme: Dose (dealt 1/3, Rally brand) · job: sign up · draw: 06b5de · hero: Settled · nav: inline · footer: statement · imagery: live product · signature: the evening court sheet · dose: white · posture: committed · redesign: full · copy: verbatim · v2.0.0 */
/* Hallmark · pre-emit critique: P4 H5 E4 S5 R4 V4 · weakest: R, removed floating badges and flattened competing cards. */
@import url("./tokens.css");
@import url("./fonts.css");
@import url("./foundation.css");
body { background: var(--bg); color: var(--ink); font-size: 16px; font-synthesis: none; font-variant-numeric: tabular-nums; }
button { color: inherit; }
button, a, input, summary, [tabindex] { -webkit-tap-highlight-color: var(--color-clear); }
button, a, summary { touch-action: manipulation; }
button:focus-visible, a:focus-visible, input:focus-visible, summary:focus-visible, [tabindex]:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 4px; }
h1,h2,h3,h4 { min-width: 0; overflow-wrap: break-word; text-wrap: balance; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; clip-path: inset(50%); overflow: clip; white-space: nowrap; }
.tabular { font-variant-numeric: tabular-nums; }
.logo { display: inline-flex; align-items: center; gap: var(--space-xs); font: 700 36px/1 var(--font-display); letter-spacing: -0.06em; text-decoration: none; white-space: nowrap; }
.logo-mark { width: 34px; height: 34px; flex: none; }
.logo-mark > circle { fill: var(--ball); }
.logo-mark > g { fill: var(--ink); }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-xs); min-height: 44px; padding: var(--space-sm) var(--space-20); border: 1px solid var(--color-clear); border-radius: 8px; font: 500 14px/1.2 var(--font-body); text-decoration: none; white-space: nowrap; cursor: pointer; transition: transform var(--dur-micro) var(--ease-out); }
.btn:active { transform: translateY(2px); }
.btn-lg { min-height: 52px; font-size: 16px; padding-inline: var(--space-lg); }
.btn-sm { min-height: 36px; padding: var(--space-xs) var(--space-sm); font-size: 13px; }
.btn-ball,.btn-ink,.btn-green { background: var(--green-900); color: var(--color-brand-ink); box-shadow: 0 2px 0 var(--green-950); }
.btn-ball:hover,.btn-ink:hover,.btn-green:hover { background: var(--green-700); }
.btn-outline { background: var(--color-clear); border-color: var(--muted); color: var(--ink); }
.btn-outline:hover,.btn-ghost:hover { background: var(--color-hover); }
.btn-ghost { background: var(--color-clear); color: var(--ink); }
.btn-red { background: var(--red); color: var(--color-brand-ink); }
.btn-red:hover { background: var(--red-600); }
.btn:disabled,.btn[aria-disabled="true"] { opacity: .55; cursor: not-allowed; box-shadow: none; transform: none; }
.btn[aria-busy="true"] { cursor: progress; }
input { caret-color: var(--green-700); }
input[aria-invalid="true"] { border-color: var(--red); }
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
