/* Generated by scripts/generate/coming-soon.ts from tokens and apps/marketing. Do not edit. */
:root {
  --color-paper: #F7F2E8;
  --color-card: #FFFDF8;
  --color-line: #E7DFCF;
  --color-ink: #2E2430;
  --color-muted: #6F636B;
  --color-accent: #5BBE8A;
  --color-on-accent: #2E2430;
  --color-soft: #DDF0E4;
  --color-ok: #2E8B62;
  --color-bad: #C8452F;
  --color-field-line: #CFC6B4;
  --color-soft-line: #EDE6D7;
  --color-soft-paper: #F2EDE2;
  --color-step: #ECE6D9;
  --color-lane-a: #CFE3F8;
  --color-lane-b: #FBDDBF;
  --color-lane-c: #CDEBDA;
  --color-lane-d: #E3D9F5;
  --color-lane-e: #F8D6DE;
  --color-lane-f: #CDEBEE;
  --color-lane-g: #F3E6B3;
  --color-lane-h: #E6D9CA;
  --color-st-gray-bg: #ECE6D9;
  --color-st-gray: #4A404C;
  --color-st-blue-bg: #D8E7F9;
  --color-st-blue: #174A82;
  --color-st-teal-bg: #D1EEEA;
  --color-st-teal: #0F5850;
  --color-st-green-bg: #D6EEDD;
  --color-st-green: #1A5C3A;
  --color-st-amber-bg: #FBEBC4;
  --color-st-amber: #664400;
  --color-break-hatch: #F0D48C;
  --color-st-purple-bg: #E8DFF6;
  --color-st-purple: #47297F;
  --color-st-red-bg: #FBD9D3;
  --color-st-red: #8A2412;
  --color-danger: #8E2A18;
  --color-white: #FFFFFF;
  --color-map-land: #EDF1E4;
  --color-map-water: #CFE3EA;
  --color-map-park: #DCE6CC;
  --color-map-building: #E2E5D8;
  --color-map-casing: #D9DDCF;
  --color-route-a: #1F5F9E;
  --color-route-b: #A85410;
  --color-route-c: #1E6E4B;
  --color-route-d: #5B3A9B;
  --color-route-e: #A3324F;
  --color-route-f: #136B73;
  --color-route-g: #765F00;
  --color-route-h: #6B4A2E;
  --color-chart-bar: #3A9867;
  --color-banner-late-line: #F2B9AE;
  --color-banner-warn-line: #EBD493;
  --color-banner-ok-line: #B4DDC2;
  --color-banner-late: #5E1A0D;
  --color-banner-warn: #4A3200;
  --color-banner-ok: #164A2F;
  --color-disabled-note: #5A4F58;
  --color-tint-efe9db: #EFE9DB;
  --color-tint-f8f4ea: #F8F4EA;
  --color-tint-e5e0d4: #E5E0D4;
  --color-tint-3d3540: #3D3540;
  --color-tint-b9af9c: #B9AF9C;
  --color-tint-e2dbcb: #E2DBCB;
  --color-tint-cfc9bd: #CFC9BD;
  --color-tint-2f7d4f: #2F7D4F;
  --color-on-ink: #FFFFFF;
  --color-on-danger: #FFFFFF;
  --color-map-road: #FFFFFF;
  --color-map-halo: #FFFFFF;
  --color-shadow: #3C2D14;
  --color-scrim: #2E2430;
  --color-brand: #5BBE8A;
  --radius-control: 11px;
  --radius-card: 18px;
  --radius-frame: 22px;
  --radius-pill: 99px;
  --space-xs: 4px;
  --space-sm: 8px;
  --space-md: 12px;
  --space-lg: 18px;
  --space-xl: 26px;
  --font-serif: "Fraunces", Georgia, serif;
  --font-sans: "Figtree", system-ui, sans-serif;
  --font-size-body: 15px;
  --font-size-title: 33px;
  --font-size-small: 13px;
}
@font-face { font-family: Fraunces; src: url(/fonts/fraunces-normal.woff2) format('woff2'); font-weight: 400 500; font-style: normal; font-display: swap; }
@font-face { font-family: Fraunces; src: url(/fonts/fraunces-italic.woff2) format('woff2'); font-weight: 400 500; font-style: italic; font-display: swap; }
@font-face { font-family: Figtree; src: url(/fonts/figtree-normal.woff2) format('woff2'); font-weight: 400 700; font-style: normal; font-display: swap; }

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; min-height: 100dvh; display: flex; flex-direction: column; background: var(--color-paper); color: var(--color-ink); font: 17px/1.55 var(--font-sans); overflow-x: clip; }
h1, h2, p { margin: 0; }
h1, h2 { font-family: var(--font-serif); font-weight: 400; letter-spacing: -.01em; text-wrap: balance; }
em { font-style: italic; }
a { color: inherit; text-underline-offset: 3px; }
:focus-visible { outline: 3px solid var(--color-ink); outline-offset: 2px; border-radius: 6px; }
[hidden] { display: none !important; }

.soon-main { flex: 1; width: 100%; max-width: 1080px; margin-inline: auto; padding: clamp(28px, 6vw, 72px) clamp(20px, 5vw, 48px) 40px; }
.soon-narrow { max-width: 600px; }
.soon-splash { display: flex; flex-direction: column; align-items: center; text-align: center; }
.soon-head .wordmark { display: block; height: clamp(34px, 6vw, 45px); width: auto; }
.soon-logo { display: flex; align-items: center; width: fit-content; min-height: 44px; margin-bottom: 16px; border-radius: 8px; }
.soon-logo .wordmark { display: block; height: 30px; width: auto; }
.soon-badge { display: inline-block; margin: 28px 0 16px; padding: 4px 12px; border-radius: var(--radius-pill); background: var(--color-soft); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.soon-narrow .soon-badge, .legal .soon-badge { margin-top: 4px; }
.soon-splash h1 { max-width: 15em; font-size: clamp(34px, 6.2vw, 64px); line-height: 1.06; }
.soon-line { margin-top: 14px; text-wrap: balance; font-size: clamp(18px, 2vw, 21px); color: var(--color-muted); }
.soon-narrow h1 { font-size: clamp(32px, 5vw, 46px); line-height: 1.1; }
.soon-lede { margin-top: 10px; color: var(--color-muted); }

.btn { position: relative; display: inline-flex; align-items: center; justify-content: center; min-height: 36px; padding: 7px 16px; border: 1px solid transparent; border-radius: 10px; font: 600 15px/1.2 var(--font-sans); text-decoration: none; cursor: pointer; }
.btn::after { content: ''; position: absolute; inset: min(0px, calc(50% - 22px)); }
.btn-primary { background: var(--color-accent); border-color: var(--color-accent); color: var(--color-on-accent); }
.btn-primary:hover { filter: brightness(.96); }
.soon-cta { margin-top: 28px; }

.soon-bots { width: 100%; margin-top: clamp(48px, 8vw, 88px); }
.soon-bots h2 { font-size: clamp(26px, 3.4vw, 38px); line-height: 1.15; }
.soon-bots > p { max-width: 36em; margin: 8px auto 0; color: var(--color-muted); font-size: 16px; }
.soon-bots ul { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 24px 16px; margin: 28px 0 0; padding: 0; list-style: none; }
.soon-bots li { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.soon-bots img { --bot: 120px; width: auto; height: calc(var(--bot) * var(--tall, 1)); margin: calc(var(--bot) * (1 - var(--tall, 1))) 0 8px; padding-bottom: 5%; background: radial-gradient(closest-side, color-mix(in srgb, var(--color-shadow) 42%, transparent), transparent) 50% 100% / 80% 12% no-repeat; }
.soon-bots b { font: 500 19px/1.2 var(--font-serif); }
.soon-bots span { font-size: 14px; line-height: 1.35; color: var(--color-muted); }

.soon-card { margin-top: 24px; padding: 20px; background: var(--color-card); border: 1px solid var(--color-line); border-radius: var(--radius-card); }
.soon-form { display: flex; flex-direction: column; gap: 12px; }
.soon-field { display: flex; flex-direction: column; gap: 4px; font-size: 14px; font-weight: 600; }
.soon-field input, .soon-field textarea { width: 100%; min-height: 36px; padding: 6px 10px; background: var(--color-white); border: 1px solid var(--color-field-line); border-radius: 10px; font: 400 16px/1.4 var(--font-sans); color: var(--color-ink); }
.soon-field textarea { min-height: 104px; resize: vertical; }
.soon-field input:focus, .soon-field textarea:focus { outline: 3px solid var(--color-ink); outline-offset: 1px; }
.soon-form .btn { align-self: flex-start; margin-top: 8px; }
.soon-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.soon-sent h2 { font-size: 24px; margin-bottom: 6px; }
.soon-sent p + p { margin-top: 8px; color: var(--color-muted); }
.soon-back { display: inline-flex; align-items: center; min-height: 44px; margin-top: 16px; font-weight: 600; }

.legal { max-width: 860px; }
.legal h1 { font-size: clamp(32px, 5vw, 52px); line-height: 1.08; margin-bottom: 8px; }
.legal-meta { color: var(--color-muted); }
.legal-meta a { display: inline-block; padding-block: 10px; color: var(--color-ink); font-weight: 600; }
.legal-draft { margin-block: 18px 26px; padding: 16px 20px; background: var(--color-st-amber-bg); color: var(--color-st-amber); border-radius: 16px; }
.legal-draft p { margin-top: 4px; }
.legal-toc { padding: 18px 22px; margin-bottom: 28px; background: var(--color-card); border: 1px solid var(--color-line); border-radius: 18px; }
.legal-toc h2 { margin-bottom: 8px; font: 700 13px var(--font-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--color-muted); }
.legal-toc ol { margin: 0; padding-left: 1.6em; columns: 2; column-gap: 28px; }
.legal-toc li { break-inside: avoid; }
.legal-toc a { display: inline-block; padding-block: 12px; line-height: 1.3; }
.legal section { padding-block: 16px; }
.legal section h2 { font-size: clamp(22px, 2.6vw, 30px); line-height: 1.2; margin-bottom: 10px; }
.legal section p, .legal section li { margin-bottom: 10px; }
.legal section ul { margin: 0 0 10px; padding-left: 1.3em; }
.legal section strong { font-weight: 600; }

.soon-foot { padding: 20px clamp(20px, 5vw, 48px) 28px; border-top: 1px solid var(--color-line); text-align: center; font-size: 14px; color: var(--color-muted); }
.soon-foot nav { display: flex; flex-wrap: wrap; justify-content: center; column-gap: 20px; }
.soon-foot a { display: inline-flex; align-items: center; min-height: 44px; color: var(--color-ink); }
.soon-foot p { margin-top: 4px; }

@media (max-width: 860px) {
  .soon-bots ul { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  body { font-size: 16px; }
  .soon-splash h1 { font-size: clamp(30px, 8.6vw, 38px); }
  .soon-bots ul { gap: 20px 10px; }
  .soon-bots img { --bot: 84px; }
  .soon-bots b { font-size: 17px; }
  .soon-bots span { font-size: 13px; }
  .soon-card { padding: 16px; }
  .legal-toc ol { columns: 1; }
  .legal section h2 { font-size: 21px; }
}
