/* Color and font definitions are injected from src/theme/tokens.ts by app.js. */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 24px; }
/* No-JS / direct-link fallback: land below the sticky header pill. app.js centers it instead. */
.waitlist { scroll-margin-top: 108px; }
body { margin: 0; background: var(--skyMid); color: var(--ink); font-family: var(--body); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button, a, input, select { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 5px; }
::selection { background: var(--panel); color: var(--ink); }
.page { position: relative; max-width: 1480px; margin: auto; padding: 0 6.2%; }

/* Landscape behind everything. To use a photo instead: delete the <svg> in index.html and give
   .scenery `background: url(scene.jpg) center / cover`. Keep the slight blur either way. */
.scenery { position: fixed; inset: -8px; z-index: 0; filter: blur(1.5px) saturate(1.05); pointer-events: none; }
.scenery svg { width: 100%; height: 100%; display: block; }
.sky-top { stop-color: var(--skyTop); }
.sky-mid { stop-color: var(--skyMid); }
.sky-haze { stop-color: var(--skyHaze); }
.sun { stop-color: var(--sun); }
.cloud { fill: var(--cloud); opacity: .9; }
.hill-far { fill: var(--hillFar); }
.hill-mid { fill: var(--hillMid); }
.meadow { fill: var(--meadow); }
.stem { stroke: var(--stem); }
.blossom { fill: var(--blossom); }
.blossom-light { fill: var(--blossomLight); }

/* Frosted glass panels. */
.glass { background: var(--glass); border: 1px solid var(--glassEdge); -webkit-backdrop-filter: blur(18px) saturate(1.2); backdrop-filter: blur(18px) saturate(1.2); }
.skip { position: absolute; top: -70px; padding: 14px; background: var(--ink); color: var(--paper); z-index: 5; }
.skip:focus { top: 8px; }
.header { position: sticky; top: 16px; z-index: 3; min-height: 76px; margin-top: 24px; padding: 0 28px 0 32px; border-radius: 999px; display: flex; align-items: center; gap: 32px; }
.wordmark { font-family: var(--display); font-size: 58px; letter-spacing: -5px; line-height: 1; }
.wordmark-dot { color: var(--muted); }
.header-note { margin-left: 35px; font-size: 11px; line-height: 1.6; color: var(--muted); }
.text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 32px; font-size: 12px; padding-bottom: 10px; border-bottom: 1px solid var(--ink); }
.header-link { margin-left: auto; }
.header .wordmark { font-size: 40px; letter-spacing: -3px; }
.eyebrow { font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; font-weight: 400; margin: 0; }
.hero { display: grid; grid-template-columns: 1.3fr 1fr; gap: 8%; padding: 76px 0 83px; }
/* Hero copy sits on open sky: ink only, no muted grays. */
.hero-copy .eyebrow, .hero-copy .intro, h1 em { color: var(--ink); }
h1 em { opacity: .72; }
h1 { margin: 27px 0 30px; font-family: var(--display); font-size: clamp(64px, 7.6vw, 110px); line-height: .99; font-weight: 400; letter-spacing: -5.5px; }
em { font-weight: 400; }
.intro { font-size: 14px; line-height: 1.8; margin: 0 0 28px; }
.hero-link { gap: 45px; }
.inventory { align-self: center; padding: 28px 32px 22px; border-radius: 28px; }
.inventory-top { display: flex; justify-content: space-between; font-size: 10px; letter-spacing: .3px; color: var(--muted); padding-bottom: 19px; border-bottom: 1px solid var(--line); }
.inventory-title { padding: 31px 0 29px; }
.inventory-title p { font-family: var(--display); font-size: 35px; margin: 0 0 10px; letter-spacing: -1px; }
.inventory-title span { font-size: 11px; color: var(--muted); }
.inventory-list { list-style: none; margin: 0; padding: 0; }
.inventory-list li { padding: 25px 0; display: flex; align-items: center; gap: 18px; border-top: 1px solid var(--line); }
.object-number { font-size: 10px; color: var(--muted); align-self: flex-start; padding-top: 4px; }
.inventory-list h2 { font-size: 13px; font-weight: 400; margin: 0 0 9px; }
.inventory-list p { font-size: 10px; color: var(--muted); margin: 0; }
.object-status { margin-left: auto; font-size: 9px; color: var(--muted); white-space: nowrap; }
.inventory-foot { font-family: var(--display); font-size: 22px; line-height: 1.35; font-style: italic; border-top: 1px solid var(--line); margin: 0; padding: 29px 0 23px; }
.example-label { font-size: 9px; color: var(--muted); }
.manifesto { border-radius: 28px; margin-bottom: 24px; padding: 42px 5.6% 59px; display: grid; grid-template-columns: 1fr 2fr; gap: 28px 9%; }
.manifesto > p:nth-child(2) { font-family: var(--display); font-size: clamp(25px, 3vw, 40px); font-weight: 400; letter-spacing: -1px; line-height: 1.25; margin: 0; }
.manifesto > p span { color: var(--muted); }
.manifesto-detail { grid-column: 2; max-width: 470px; font-size: 13px; line-height: 1.8; color: var(--muted); }
.waitlist { border-radius: 28px; padding: 58px 5.6%; display: grid; grid-template-columns: 1.1fr 1fr; gap: 9%; }
.waitlist h2 { font-family: var(--display); font-size: clamp(35px, 4vw, 56px); font-weight: 400; line-height: 1.1; letter-spacing: -2px; margin: 26px 0 24px; }
.waitlist-copy > p:last-child { font-size: 13px; color: var(--quiet); line-height: 1.8; }
/* Signup form: soft fields on the glass, serif-italic labels, a pill toggle and a pill button. */
.signup { max-width: 420px; width: 100%; }
.trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.preview-note { display: inline-flex; align-items: center; gap: 8px; font-size: 10px; color: var(--quiet); margin: 0 0 26px; padding: 7px 13px; border: 1px solid var(--fieldEdge); border-radius: 999px; background: var(--field); }
.preview-note::before { content: ""; width: 5px; height: 5px; border-radius: 50%; border: 1px solid var(--quiet); }
.signup legend, .field > label { font-family: var(--display); font-style: italic; font-size: 16px; letter-spacing: -.2px; }
.contact-choice { border: 0; padding: 0; margin: 0 0 24px; min-width: 0; }
.contact-choice legend { padding: 0 0 12px; }
.segmented { display: inline-grid; grid-template-columns: 1fr 1fr; padding: 4px; border-radius: 999px; background: var(--field); border: 1px solid var(--fieldEdge); }
.segmented label { position: relative; display: flex; align-items: center; justify-content: center; gap: 9px; min-height: 40px; min-width: 112px; padding: 0 20px; border-radius: 999px; font-size: 12px; letter-spacing: .3px; color: var(--quiet); cursor: pointer; transition: background .25s, color .25s, box-shadow .25s; }
/* The real radio stays in the label (keyboard + screen readers); the chip draws its state. */
.segmented input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.segmented span::before { content: ""; display: inline-block; width: 7px; height: 7px; margin-right: 9px; border-radius: 50%; border: 1px solid currentColor; vertical-align: 1px; transition: background .25s; }
.segmented label:has(:checked) { background: var(--white); color: var(--ink); box-shadow: 0 1px 2px var(--fieldShadow), 0 6px 18px var(--fieldShadow); }
.segmented label:has(:checked) span::before { background: currentColor; }
.segmented label:has(:focus-visible) { outline: 3px solid var(--focus); outline-offset: 2px; }
.field { margin-bottom: 22px; }
.field > label { display: block; margin-bottom: 10px; }
.optional { margin-left: 8px; color: var(--quiet); font-family: var(--body); font-style: normal; font-size: 10px; letter-spacing: .3px; }
input:not([type=radio]):not([type=checkbox]), select { width: 100%; border: 1px solid var(--fieldEdge); border-radius: 16px; padding: 14px 18px; min-height: 50px; background: var(--field); color: var(--ink); font-size: 13px; box-shadow: inset 0 1px 2px var(--fieldShadow); transition: background .25s, border-color .25s; }
input:not([type=radio]):not([type=checkbox]):hover, select:hover { border-color: var(--quiet); }
input:not([type=radio]):not([type=checkbox]):focus, select:focus { background: var(--white); border-color: var(--ink); }
input:not([type=radio]):not([type=checkbox]):focus-visible, select:focus-visible { outline-offset: 3px; }
input::placeholder { color: var(--quiet); opacity: 1; }
.select { position: relative; }
.select::after { content: ""; position: absolute; right: 20px; top: 50%; width: 7px; height: 7px; margin-top: -6px; border: solid var(--ink); border-width: 0 1px 1px 0; transform: rotate(45deg); pointer-events: none; }
select { appearance: none; -webkit-appearance: none; padding-right: 46px; cursor: pointer; }
.field-help { font-size: 10px; color: var(--quiet); display: block; margin: 9px 0 0 18px; line-height: 1.5; }
.consent { display: flex; gap: 12px; align-items: flex-start; font-size: 10px; line-height: 1.6; margin: 24px 0 26px; color: var(--quiet); cursor: pointer; }
.consent input { appearance: none; -webkit-appearance: none; flex-shrink: 0; width: 18px; height: 18px; margin: 0; border: 1px solid var(--ink); border-radius: 6px; background: var(--field); display: grid; place-content: center; cursor: pointer; }
.consent input::after { content: ""; width: 4px; height: 8px; margin-top: -2px; border: solid var(--paper); border-width: 0 1.5px 1.5px 0; transform: rotate(45deg) scale(0); transition: transform .15s; }
.consent input:checked { background: var(--ink); }
.consent input:checked::after { transform: rotate(45deg) scale(1); }
.consent input:focus-visible { outline-offset: 3px; }
button { width: 100%; padding: 8px 8px 8px 26px; min-height: 58px; border: 0; border-radius: 999px; background: var(--ink); color: var(--paper); display: flex; align-items: center; justify-content: space-between; cursor: pointer; box-shadow: 0 10px 30px var(--fieldShadow); transition: box-shadow .3s; }
.button-label { font-family: var(--display); font-style: italic; font-size: 18px; letter-spacing: -.2px; }
.button-mark { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--paper); color: var(--ink); font-size: 14px; transition: transform .3s; }
button:hover { box-shadow: 0 14px 36px var(--fieldShadow); }
button:hover .button-mark { transform: translate(2px, -2px); }
button:active { background: var(--focus); color: var(--ink); }
button:active .button-mark { background: var(--ink); color: var(--paper); }
button:focus-visible { outline-offset: 4px; }
button:disabled { opacity: .65; cursor: wait; }
.form-status { font-family: var(--display); font-style: italic; font-size: 14px; line-height: 1.5; min-height: 42px; margin: 16px 0 0; padding-left: 26px; }
.form-status.error { color: var(--error); }
/* Footer: a solid full-bleed bar (deliberately not glass), outside .page so it spans edge to edge.
   Its inner row reuses .page's width and gutters so the wordmark lines up with the header's. */
.footer { position: relative; margin-top: 48px; background: var(--white); border-top: 1px solid var(--line); }
.footer-inner { max-width: 1480px; margin: auto; padding: 30px 6.2%; display: flex; align-items: center; gap: 20px 48px; }
.footer-mark { font-size: 37px; letter-spacing: -3px; }
.footer p, .footer-inner > span { margin: 0; font-size: 10px; letter-spacing: .3px; color: var(--muted); }
.footer-inner > span { margin-left: auto; }
@media (min-width: 1550px) { .page, .footer-inner { padding-left: 90px; padding-right: 90px; } }
@media (max-width: 900px) {
  .page { padding: 0 6%; }
  .footer-inner { padding-left: 6%; padding-right: 6%; }
  .header-note { display: none; }
  .hero { gap: 4%; padding-top: 55px; grid-template-columns: 1.15fr 1fr; }
  h1 { font-size: 73px; letter-spacing: -4px; }
  .desktop-break { display: none; }
  .inventory { padding: 22px 22px 18px; }
  .inventory-list li { gap: 10px; }
  .object-status { display: none; }
  .manifesto { grid-template-columns: 1fr 2fr; gap: 24px 6%; }
  .waitlist { gap: 6%; padding: 40px 5%; }
}
@media (max-width: 600px) {
  .header { top: 10px; min-height: 64px; margin-top: 12px; padding: 0 20px 0 24px; }
  .header .wordmark { font-size: 34px; }
  .header-link { font-size: 11px; gap: 17px; }
  .hero { display: block; padding: 44px 0 40px; }
  h1 { font-size: clamp(58px, 16vw, 84px); letter-spacing: -3.5px; margin-top: 24px; }
  .intro { max-width: 350px; }
  .inventory { margin-top: 48px; }
  .inventory-title { padding: 25px 0; }
  .inventory-list li { padding: 21px 0; }
  .object-status { display: block; }
  .inventory-foot { font-size: 23px; }
  .manifesto { display: block; padding: 32px 24px 36px; border-radius: 22px; }
  .manifesto > p:nth-child(2) { font-size: 29px; margin: 23px 0; }
  .manifesto-detail { font-size: 13px; }
  .waitlist { display: block; padding: 32px 24px; border-radius: 22px; }
  .waitlist h2 { font-size: 42px; }
  .signup { max-width: none; margin-top: 34px; }
  .segmented { display: grid; }
  .segmented label { min-width: 0; }
  .footer { margin-top: 32px; }
  .footer-inner { flex-wrap: wrap; gap: 10px 24px; padding-top: 24px; padding-bottom: 28px; }
  .footer-mark { flex-basis: 100%; }
  .footer-inner > span { margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; } }
@media (prefers-reduced-transparency: reduce) { .glass { background: var(--paper); -webkit-backdrop-filter: none; backdrop-filter: none; } }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { .glass { background: var(--paper); } }
