/* LegendMatch design tokens. Generated from design/tokens.json; do not edit. */
@font-face {
  font-family: "Bricolage Grotesque";
  src: url("/auth-assets/fonts/BricolageGrotesque-Variable.woff2") format("woff2");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Figtree";
  src: url("/auth-assets/fonts/Figtree-Variable.woff2") format("woff2");
  font-weight: 300 900;
  font-style: normal;
  font-display: swap;
}
:root {
  --surface-100: #fff9f6;
  --surface-200: #f8ebe5;
  --ink: #2a1b28;
  --ink-muted: #6b5866;
  --brand: #6b2c61;
  --on-brand: #ffffff;
  --accent: #f4a93b;
  --on-accent: #2a1b28;
  --blush: #f6d3c8;
  --sage: #2f6b57;
  --error: #a3261f;
  --line: #e3d2cb;
  --line-strong: #9c8794;
  --shadow-soft: 0 8px 24px rgba(107, 44, 97, 0.10);
  --font-display: "Bricolage Grotesque", "Figtree", system-ui, sans-serif;
  --font-sans: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
  --space-12: 48px;
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 28px;
  --radius-pill: 999px;
}
@media (prefers-color-scheme: dark) {
  :root {
    --surface-100: #1d1520;
    --surface-200: #2a1f2b;
    --ink: #f7eef2;
    --ink-muted: #c3b2bf;
    --brand: #e7a9da;
    --on-brand: #2a1b28;
    --accent: #f4b455;
    --on-accent: #2a1b28;
    --blush: #4a2f44;
    --sage: #8fd2b6;
    --error: #ff9d92;
    --line: #433442;
    --line-strong: #857485;
    --shadow-soft: 0 8px 24px rgba(0, 0, 0, 0.40);
    color-scheme: dark;
  }
}

*,*::before,*::after{box-sizing:border-box}
body{margin:0;font-family:var(--font-sans);font-size:17px;line-height:26px;background:var(--surface-100);color:var(--ink)}
.wrap{max-width:1040px;margin:0 auto;padding-block:var(--space-8) var(--space-8);padding-left:max(var(--space-4),env(safe-area-inset-left,0px));padding-right:max(var(--space-4),env(safe-area-inset-right,0px));display:grid;gap:var(--space-12)}
a{color:var(--brand)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.top{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap}
.brand{font-family:var(--font-display);font-size:28px;line-height:32px;letter-spacing:-0.02em;text-decoration:none}
.brand .legend{font-weight:700;color:var(--ink)}
.brand .match{font-weight:500;color:var(--brand)}
.soon{font-size:13px;line-height:18px;font-weight:600;letter-spacing:0.03em;text-transform:uppercase;color:var(--ink-muted);border:1px solid var(--line);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3)}
main{display:grid;gap:var(--space-12)}
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--space-8);align-items:center}
.hero>*{min-width:0}
h1{font-family:var(--font-display);font-weight:700;font-size:clamp(36px,6vw,60px);line-height:1.02;letter-spacing:-0.02em;margin:0;text-wrap:balance}
h1 em{font-style:normal;color:var(--brand)}
.lede{font-size:19px;line-height:28px;color:var(--ink-muted);max-width:34ch;margin:var(--space-6) 0 0}
.stage{position:relative;height:330px}
.card{position:absolute;display:grid;gap:var(--space-2);width:min(240px,72%);background:var(--surface-200);border-radius:var(--radius-md);padding:var(--space-4) var(--space-6);box-shadow:var(--shadow-soft);transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.kind{font-size:13px;line-height:18px;font-weight:600;letter-spacing:0.03em;text-transform:uppercase;color:var(--ink-muted)}
.t{font-family:var(--font-display);font-weight:600;font-size:22px;line-height:28px}
.bars{display:grid;gap:var(--space-2);margin-top:var(--space-1)}
.bars i{display:block;height:10px;border-radius:var(--radius-pill);background:var(--blush)}
.w60{width:60%}.w70{width:70%}.w80{width:80%}.w90{width:90%}
.card-legend{left:0;top:0;transform:translateX(-8px) rotate(-3deg)}
.card-job{right:0;bottom:0;z-index:1;transform:translateX(8px) rotate(3deg)}
.stage.met .card-legend{transform:translateX(16px) rotate(-1.5deg)}
.stage.met .card-job{transform:translateX(-16px) rotate(1.5deg)}
.spark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;background:var(--accent);color:var(--on-accent);font-weight:600;font-size:15px;line-height:22px;border-radius:var(--radius-pill);padding:var(--space-2) var(--space-4);white-space:nowrap;box-shadow:0 0 0 6px var(--surface-100)}
.why{font-size:15px;line-height:22px;color:var(--ink-muted);text-align:center;margin:var(--space-3) 0 0}
.promises{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-8);border-top:1px solid var(--line);padding-top:var(--space-6)}
h2{font-family:var(--font-display);font-weight:600;font-size:22px;line-height:28px;margin:0 0 var(--space-2)}
.promises p{margin:0;color:var(--ink-muted);max-width:32ch}
.signup{background:var(--surface-200);border-radius:var(--radius-lg);padding:clamp(20px,4vw,40px);display:grid;gap:var(--space-4)}
.signup h2{font-size:clamp(26px,3vw,34px);line-height:1.15;letter-spacing:-0.01em;font-weight:650;margin:0}
.sub{margin:0;color:var(--ink-muted)}
form{display:grid;gap:var(--space-4)}
.roles{border:0;margin:0;padding:0;display:flex;gap:var(--space-3);flex-wrap:wrap}
.roles input{position:absolute;opacity:0;width:1px;height:1px}
.roles label{display:inline-flex;align-items:center;border:1px solid var(--line-strong);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-6);font-weight:600;cursor:pointer;background:var(--surface-100);min-height:44px}
.roles input:checked+label{border-color:var(--brand);background:var(--blush);box-shadow:inset 0 0 0 1px var(--brand)}
.roles input:focus-visible+label{outline:3px solid var(--brand);outline-offset:2px}
.row{display:flex;gap:var(--space-3);flex-wrap:wrap}
.row input{flex:1 1 240px;min-width:0;font:inherit;padding:var(--space-3) var(--space-4);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-100);color:var(--ink);min-height:48px}
input:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid var(--brand);outline-offset:2px}
button{font:inherit;font-weight:600;border:0;border-radius:var(--radius-pill);padding:var(--space-3) var(--space-6);background:var(--brand);color:var(--on-brand);cursor:pointer;min-height:48px}
button:disabled{opacity:.6;cursor:progress}
button.secondary{background:transparent;color:var(--brand);box-shadow:inset 0 0 0 1px var(--line-strong)}
button.link{background:none;color:var(--brand);padding:0;min-height:0;text-decoration:underline;font-weight:600}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.suggest{margin:0;font-size:15px;line-height:22px}
.consent{display:flex;gap:var(--space-3);align-items:flex-start;font-size:15px;line-height:22px;color:var(--ink-muted)}
.consent input{margin-top:3px;accent-color:var(--brand);width:20px;height:20px;flex:none}
.msg{margin:0;min-height:22px;font-size:15px;line-height:22px}
.msg.err{color:var(--error)}
.msg.ok{color:var(--sage);font-weight:600}
details{font-size:15px;line-height:22px;color:var(--ink-muted)}
summary{cursor:pointer;font-weight:600;color:var(--ink)}
details p{margin:var(--space-2) 0 0;max-width:70ch}
.note{max-width:36rem;background:var(--surface-200);border-radius:var(--radius-md);padding:var(--space-6);box-shadow:var(--shadow-soft);display:block}
.note h1{font-size:30px;line-height:36px;margin-bottom:var(--space-3)}
.note p{margin:0 0 var(--space-3)}
.note form{margin-top:var(--space-4)}
.foot{display:flex;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;color:var(--ink-muted);font-size:13px;line-height:18px;border-top:1px solid var(--line);padding-top:var(--space-4)}
@media (max-width:760px){.hero{grid-template-columns:1fr}.stage{height:320px}.promises{grid-template-columns:1fr;gap:var(--space-6)}}
@media (prefers-reduced-motion:reduce){.card{transition:none}}