:root {
  --ink: #1d1c1a;
  --muted: #625e58;
  --paper: #fffefd;
  --cream: #f5f1e9;
  --line: #ded8ce;
  --accent: #273c91;
  --accent-hover: #1d2e73;
  --focus: #0879df;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--cream);
}

* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; }
button, input, select, textarea { font: inherit; }
.page-shell { width: min(100% - 32px, 760px); margin: 0 auto; padding: 24px 0 64px; }
.masthead { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 64px; }
.wordmark { color: var(--ink); font-size: 1.35rem; font-weight: 750; letter-spacing: -0.06em; text-decoration: none; }
.wordmark span { color: #e5553f; }
.eyebrow { color: var(--muted); font-size: .75rem; font-weight: 700; letter-spacing: .08em; margin: 0; text-transform: uppercase; }
.hero { margin-bottom: 40px; }
.badge { display: inline-block; border-radius: 999px; background: #e9edff; color: var(--accent); font-size: .75rem; font-weight: 700; margin: 0 0 18px; padding: 5px 10px; }
h1, h2 { letter-spacing: -0.045em; line-height: 1.02; }
h1 { font-size: clamp(2.7rem, 11vw, 4.5rem); margin: 0; max-width: 680px; }
h2 { font-size: clamp(1.65rem, 6vw, 2.25rem); margin: 0 0 10px; }
.lead { color: var(--muted); font-size: 1.1rem; line-height: 1.55; margin: 20px 0 0; max-width: 590px; }
.card { background: var(--paper); border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 8px 30px rgb(53 47 37 / 7%); padding: clamp(20px, 5vw, 40px); }
.muted, .privacy-note { color: var(--muted); line-height: 1.5; }
.muted { margin: 0 0 28px; }.privacy-note { font-size: .86rem; margin: 18px 0; }
form { display: grid; gap: 20px; }
.grid { display: grid; gap: 16px; }.two-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
label, legend { display: grid; color: var(--ink); font-size: .9rem; font-weight: 650; gap: 7px; }
fieldset { border: 0; margin: 0; padding: 0; } legend { margin-bottom: 8px; }
.choice-row { display: flex; flex-wrap: wrap; gap: 10px 18px; }.choice-row label { align-items: center; display: flex; font-weight: 500; gap: 7px; }
.time-field { margin-top: 14px; max-width: 190px; }
input, select, textarea { background: #fff; border: 1px solid #cfc8bd; border-radius: 7px; color: var(--ink); min-height: 42px; padding: 9px 10px; width: 100%; }
textarea { min-height: 78px; resize: vertical; }
input:focus, select:focus, textarea:focus, button:focus { outline: 3px solid color-mix(in srgb, var(--focus) 35%, transparent); outline-offset: 2px; }
input:disabled { background: #eeeae4; color: #817b73; }
button { border: 0; border-radius: 7px; cursor: pointer; font-weight: 700; min-height: 46px; padding: 11px 18px; }
button:disabled { cursor: wait; opacity: .65; }.primary { background: var(--accent); color: #fff; }.primary:hover { background: var(--accent-hover); }.secondary { background: #ece8e1; color: var(--ink); margin-top: 12px; }
.status { font-weight: 600; line-height: 1.5; margin: 20px 0 0; min-height: 1.5em; }.status.error { color: #a83726; }.status.loading { color: var(--accent); }
.forecast-card { margin-top: 24px; }.theme { color: var(--accent); font-weight: 750; margin: 0 0 20px; }.forecast-text { font-family: Georgia, "Times New Roman", serif; font-size: 1.1rem; line-height: 1.7; white-space: pre-wrap; }
@media (max-width: 560px) { .page-shell { width: min(100% - 24px, 760px); padding-top: 16px; }.masthead { margin-bottom: 42px; }.masthead .eyebrow { display: none; }.two-columns { grid-template-columns: 1fr; }.card { border-radius: 14px; }.choice-row { display: grid; } }
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; } }
