/* WeatherIQ motion and impact. Tokens match docs/design/weatheriq/assets/tokens.css.
   A colour literal is legal only on a custom-property definition. */
:root {
  --page: #080f1d;
  --app: #0c1627;
  --tile: #101b2f;
  --tile-raised: #112636;
  --line: #2a405d;
  --line-strong: #5b7392;
  --ink: #ebf6fb;
  --ink-2: #95a6bc;
  --gold: #dcb750;
  --gold-ink: #dcb750;
  --on-gold: #080f1d;
  --cyan: #8ee8f9;
  --red: #f17382;
  --on-red: #080f1d;
  --green: #679d79;
  --on-green: #080f1d;
  --gold-dim: #5f5637;
  --green-dim: #304c48;
  --red-dim: #683b4b;
  --ff: Inter, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --ff-system: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --ff-mono: ui-monospace, "SF Mono", Consolas, "Liberation Mono", monospace;
  --t-small: 12.58px;
  --lh-small: 20px;
  --t-body: 16px;
  --lh-body: 24px;
  --t-title: 20.35px;
  --lh-title: 28px;
  --t-headline: 25.89px;
  --lh-headline: 32px;
  --track-label: .12em;
  --g1: 8px;
  --g2: 16px;
  --g3: 24px;
  --tap: 44px;
  --margin: 16px;
  --phi-fr: 1.6180339887fr;
  --measure: 66ch;
  --mast: #070f1c;
  --mast-ink: #eaf6fb;
  --mast-mut: #93a6bb;
  --mast-gold: #c4a275;
  --hair: #7ee8f7;
  --home-h1: 32.5px;
  --home-h1-lh: 40px;
  --home-h2: 23px;
  --home-h2-lh: 28px;
  --home-lede: 18px;
  --home-lede-lh: 28px;
  --home-label: 12.5px;
  --home-measure: 544px;
  --home-wrap: 960px;
  --home-paper: #f4fbfd;
  --home-ink: #0c1727;
  --home-gold: #735630;
  --home-teal: #0e4a63;
  --surf: #ffffff;
  --paper-line: #d9e4ec;
  --paper-mut: #52677a;
  --fs-step--3: 11px;
  --lb-step--3: 16px;
  --fs-step--2: 12.5px;
  --lb-step--2: 20px;
  --fs-step--1: 14px;
  --lb-step--1: 20px;
  --fs-step-0: 16px;
  --lb-step-0: 24px;
  --fs-step-1: 18px;
  --lb-prose-1: 28px;
  --lbh-step-1: 24px;
  --fs-step-3: 23px;
  --lbh-step-3: 28px;
  --fs-step-6: 32.5px;
  --lbh-step-6: 40px;
  --fs-step-7: 40.5px;
  --lbh-step-7: 48px;
  --sp-half: 4px;
  --sp1: 8px;
  --sp1half: 12px;
  --sp2: 16px;
  --sp3: 24px;
  --sp4: 32px;
  --sp5: 40px;
  --sp-tap: 44px;
  --sp6: 48px;
  --sp8: 64px;
  --sp10: 80px;
  --wrap: 960px;
  --gut: var(--sp2);
  --radius: 0px;
  --bw-hair: 1px;
  --bw-focus: 2px;
  --w-prose: 400;
  --w-label: 600;
  --w-bold: 700;
  --w-mark: 800;
  --track-kicker: 0.16em;
  --track-h1: -0.02em;
  --photo-ratio: 8 / 5;
  --hero-scrim-dark: color-mix(in srgb, #000000 62%, transparent);
  --hero-scrim-mast: color-mix(in srgb, var(--mast) 78%, transparent);
  --home-hero-min: max(calc(var(--sp10) * 5), calc(100vw * 10 / 16));
  --home-hero-bar: color-mix(in srgb, var(--mast) 82%, transparent);
  --home-hero-line: color-mix(in srgb, var(--mast-mut) 35%, transparent);
  --site-layer: 5;
  --skip-layer: 20;
  --hero-nav-pad: calc(var(--sp10) + var(--sp2));
  --cols-3: 3;
  --cols-4: 4;
  --card-rows: 3;
  --role-rows: 3;
  --chain-rows: 5;
  --offer-rows: 5;
  --home-band-reserve: 720px;
  --device-w: 390px;
  --device-h: 780px;
  --wide-h: 640px;
  --measure-wide: 60rem;
  --measure-paper: 42rem;
  --lk-rule: 54px;
  --lk-track: 0.4em;
  --lk-track-sub: 0.46em;
  --fs-lk: 12px;
  --fs-lk-sub: 8.5px;
  --tr-wide: var(--track-kicker);
  --w-regular: 400;
  --w-semi: 600;
  --iq-cyan: #7ee8f7;
  --iq-gold: #c19a4e;
  --iq-from: var(--iq-cyan);
  --iq-to: var(--iq-gold);
  --ff-product: var(--ff-system);
  --w-heavy: 800;
  --rain-trace: var(--cyan);
  --rain-light: var(--cyan);
  --rain-mid: var(--gold);
  --rain-heavy: var(--gold);
  --rain-extreme: var(--red);
}
[data-theme="day"] {
  --page: #f5fbfd;
  --app: #f5fbfd;
  --tile: #ffffff;
  --tile-raised: #eaf5f9;
  --line: #d9e4ec;
  --line-strong: #7d8ea4;
  --ink: #0d1728;
  --ink-2: #52677a;
  --gold: #dcb750;
  --gold-ink: #8a6418;
  --on-gold: #0d1728;
  --cyan: #0e7490;
  --red: #f17382;
  --on-red: #0d1728;
  --green: #679d79;
  --on-green: #0d1728;
  --gold-dim: #f1e2b9;
  --green-dim: #c2d8c9;
  --red-dim: #f9c7cd;
}
* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0;
  background: var(--page);
  color: var(--ink);
  font-family: var(--ff);
  font-size: var(--t-body);
  line-height: var(--lh-body);
  display: flex;
  flex-direction: column;
  min-height: 100dvh;
}
button, input { font: inherit; color: inherit; }
button, a { border-radius: 0; }
:focus-visible { outline: 2px solid var(--cyan); outline-offset: 2px; }
[hidden] { display: none !important; }
.brandProd { font-family: var(--ff-product); font-weight: var(--w-heavy); line-height: 1; letter-spacing: 0; text-transform: none; }
.brandProd span { letter-spacing: inherit; background: linear-gradient(90deg, var(--iq-from), var(--iq-to)); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; }
.top {
  padding: max(var(--g1), env(safe-area-inset-top)) max(var(--margin), env(safe-area-inset-right)) 0 max(var(--margin), env(safe-area-inset-left));
  background: var(--app);
  border-bottom: 1px solid var(--line);
}
.brandrow { display: flex; align-items: center; gap: var(--g2); min-height: var(--tap); }
.lockup { min-width: 0; }
.mark { margin: 0; font-size: var(--t-title); line-height: var(--lh-title); font-weight: 800; color: var(--ink); }
.place { margin: 0; flex: 1; color: var(--ink-2); font-family: var(--ff-mono); font-size: var(--t-small); }
h1, .lockup h1 {
  margin: var(--g1) 0 0;
  font-size: var(--t-small);
  line-height: var(--lh-small);
  font-weight: 600;
  letter-spacing: var(--track-label);
  text-transform: uppercase;
  color: var(--cyan);
  max-width: var(--measure);
}
.hudnav { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--g1); }
.tabs, .product { display: flex; flex-wrap: wrap; align-items: center; gap: 0; margin: 0; }
.product { padding-bottom: 0; }
.tabs button, .product a {
  flex: 0 0 auto;
  min-height: var(--tap);
  padding: 0 var(--g1);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  background: transparent;
  color: var(--ink-2);
  border: 0;
  border-bottom: var(--bw-focus) solid transparent;
  white-space: nowrap;
}
.product a[hidden] { display: none !important; }
.iconbtn, .timebar button, .actions button, .actions a, .row, #spotlight {
  min-height: var(--tap);
  min-width: var(--tap);
  background: var(--tile);
  color: var(--ink);
  border: 1px solid var(--line-strong);
}
.iconbtn { padding: 0 var(--g2); }
.tabs button[aria-selected="true"], .product a[aria-current="page"] {
  color: var(--gold);
  border-bottom-color: var(--gold);
}
#play[aria-pressed="true"] {
  background: var(--gold);
  color: var(--on-gold);
  border-color: var(--gold);
}
main { flex: 1; min-height: 0; display: flex; flex-direction: column; }
#panel-motion { position: relative; flex: 1; min-height: 0; display: flex; flex-direction: column; }
#map, #sat { background: var(--app); }
#map { flex: 1; min-height: 0; }
#spotlight {
  position: absolute;
  z-index: 500;
  top: var(--g1);
  left: max(var(--margin), env(safe-area-inset-left));
  max-width: calc(100% - 96px);
  padding: 0 var(--g2);
  text-align: left;
  background: var(--gold);
  color: var(--on-gold);
  border-color: var(--gold);
}
.dock {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 500;
  background: color-mix(in srgb, var(--page) 88%, transparent);
  padding-bottom: env(safe-area-inset-bottom);
}
.timebar {
  display: flex;
  gap: var(--g1);
  align-items: center;
  padding: var(--g1) var(--margin) 0;
}
.timebar button {
  flex: 0 0 auto;
  white-space: nowrap;
  padding: 0 var(--g2);
  background: transparent;
  color: var(--ink);
}
#scrub { flex: 1; min-height: var(--tap); accent-color: var(--gold); }
.when, .sources, .status, .definition, .klass, #detail-summary, figcaption {
  margin: 0;
  padding: 0 var(--margin) var(--g1);
  color: var(--ink-2);
  font-size: var(--t-small);
  line-height: var(--lh-small);
}
.dock .when, .dock .sources, .dock .status {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dock #fog-now:empty { display: none; }
.dock #status {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(100%);
}
.definition { color: var(--ink); font-size: var(--t-body); line-height: var(--lh-body); max-width: var(--measure); padding-top: var(--g2); }
.legend {
  display: flex;
  flex-wrap: wrap;
  gap: var(--g1) var(--g2);
  padding: 0 var(--margin) var(--g1);
  color: var(--ink-2);
  font-size: var(--t-small);
  line-height: var(--lh-small);
}
.legend span { display: flex; align-items: center; gap: 4px; }
.swatch {
  width: 14px;
  height: 12px;
  border: 1px solid var(--line-strong);
  display: inline-block;
  clip-path: polygon(10% 42%, 32% 10%, 72% 8%, 96% 40%, 86% 82%, 48% 98%, 8% 80%);
}
.s1 { border-color: var(--rain-trace); }
.s2 { background: var(--rain-light); border-color: var(--rain-light); }
.s3 { border-color: var(--rain-mid); }
.s4 { background: var(--rain-heavy); border-color: var(--rain-heavy); }
.s5 { background: var(--rain-extreme); border-color: var(--rain-extreme); }
#panel-impact { flex: 1; overflow: auto; }
.impact-body {
  display: grid;
  grid-template-columns: 1fr var(--phi-fr);
  gap: var(--g2);
  padding: 0 var(--margin) var(--g3);
}
.split { display: grid; grid-template-columns: var(--phi-fr) 1fr; gap: var(--g2); align-items: start; }
.label {
  margin: var(--g1) 0;
  color: var(--cyan);
  font-size: var(--t-small);
  line-height: 16px;
  letter-spacing: var(--track-label);
  text-transform: uppercase;
}
.ledger div {
  display: flex;
  justify-content: space-between;
  gap: var(--g2);
  min-height: var(--tap);
  align-items: center;
  border-bottom: 1px solid var(--line);
}
.ledger span:last-child { font-family: var(--ff-mono); }
.row {
  display: grid;
  grid-template-columns: var(--tap) 1fr auto;
  gap: var(--g2);
  width: 100%;
  padding: var(--g1);
  margin-top: var(--g1);
  text-align: left;
  align-items: center;
}
.row img, .thumb {
  width: var(--tap);
  height: var(--tap);
  object-fit: cover;
  background: var(--tile-raised);
  display: block;
}
.row b { display: block; font-weight: 700; }
.row small, .below li { color: var(--ink-2); font-family: var(--ff-mono); font-size: var(--t-small); }
.row[aria-current="true"] { border-color: var(--gold); }
.below { margin: var(--g2) 0 0; padding: 0; list-style: none; }
.below li { min-height: var(--tap); display: flex; align-items: center; border-bottom: 1px solid var(--line); }
#detail h2 { margin: 0; font-size: var(--t-title); line-height: var(--lh-title); }
#sat { height: 280px; border: 1px solid var(--line); }
figure { margin: 0; }
#photo-img { width: 100%; max-height: 280px; object-fit: contain; background: var(--tile); border: 1px solid var(--line); }
figcaption { padding-left: 0; padding-right: 0; }
.actions { display: flex; gap: var(--g2); flex-wrap: wrap; margin-top: var(--g2); }
.actions button, .actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 var(--g2);
  text-decoration: none;
}
.note {
  margin: 0 var(--margin) var(--g2);
  padding: var(--g2);
  border: 1px solid var(--line-strong);
  background: var(--tile);
  max-width: var(--measure);
}
.risk {
  width: var(--tap);
  height: var(--tap);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ff-mono);
  background: var(--tile);
  border: 1px solid var(--line-strong);
}
.r1 { border-color: var(--green); color: var(--green); }
.r2 { background: var(--green); color: var(--on-green); border-color: var(--green); }
.r3 { border-color: var(--gold); color: var(--gold-ink); }
.r4 { background: var(--gold); color: var(--on-gold); border-color: var(--gold); }
.r5 { background: var(--red); color: var(--on-red); border-color: var(--red); }
.row.plan { grid-template-columns: var(--tap) minmax(0, 1fr); }
#panel-advice { flex: 1; overflow: auto; padding-bottom: var(--g3); }
.leaflet-container { background: var(--app); font-family: var(--ff); }
.leaflet-bar, .leaflet-bar a, .leaflet-control-attribution {
  border-radius: 0 !important;
  box-shadow: none !important;
}
.leaflet-bar a {
  width: var(--tap);
  height: var(--tap);
  line-height: var(--tap);
  background: var(--tile);
  color: var(--ink);
  border: 1px solid var(--line-strong);
}
.leaflet-control-attribution {
  background: var(--app);
  color: var(--ink-2);
  max-width: 100%;
}
#panel-motion .leaflet-control-attribution { display: none; }
#panel-motion .leaflet-top.leaflet-right { top: var(--g1); right: var(--g1); }
@media (max-width: 759px) {
  .impact-body, .split { grid-template-columns: 1fr; }
  .legend { flex-wrap: wrap; }
  .timebar { flex-wrap: nowrap; }
}
@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto; }
}

/* Public homepage */
.home {
  display: block;
  min-height: 100%;
  background: var(--home-paper);
  color: var(--home-ink);
  color-scheme: dark light;
  font-family: var(--ff-system);
  --line: var(--paper-line);
  --ink: var(--home-ink);
  --mut: var(--paper-mut);
  font-size: var(--fs-step-0);
  line-height: var(--lb-step-0);
  font-weight: var(--w-prose);
  scrollbar-gutter: stable;
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  font-kerning: normal;
  font-optical-sizing: auto;
  overscroll-behavior: none;
  word-break: normal;
  quotes: auto;
  overflow-anchor: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--gold) var(--home-paper);
  forced-color-adjust: auto;
  font-synthesis: none;
  scroll-padding-top: max(var(--sp8), env(safe-area-inset-top));
  interpolate-size: allow-keywords;
  font-variant-ligatures: common-ligatures;
  -webkit-tap-highlight-color: transparent;
}
.home ::selection {
  background: var(--gold);
  color: var(--on-gold);
}
.home .btn,
.home .navtoggle,
.home .sitenav button { cursor: pointer; }
.home a {
  text-decoration-skip-ink: auto;
  text-underline-position: from-font;
  text-decoration-thickness: from-font;
  text-underline-offset: var(--sp-half);
}
.home img { image-orientation: from-image; image-rendering: auto; }
.home #main,
.home section[id] { scroll-margin-top: max(var(--sp8), env(safe-area-inset-top)); }
.home .site { padding-block-start: env(safe-area-inset-top); }
.home .site,
.home .mast,
.home .proof,
.home .band,
.home .foot {
  display: grid;
  justify-items: center;
}
.home .site,
.home .mast,
.home .proof,
.home .foot {
  background: var(--mast);
  color: var(--mast-ink);
}
.home .wrap {
  width: 100%;
  max-width: var(--wrap);
  padding-inline-start: max(var(--gut), env(safe-area-inset-left));
  padding-inline-end: max(var(--gut), env(safe-area-inset-right));
}
.home .sitebar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp2);
  min-height: var(--sp8);
}
.home .mark {
  margin: 0;
  color: var(--mast-ink);
  text-decoration: none;
  font-size: var(--fs-step-1);
  line-height: var(--lbh-step-1);
  font-weight: var(--w-mark);
}
.home .mark span { color: var(--mast-gold); }
.home .sitenav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: var(--sp1);
}
.home .sitenav a,
.home .sitenav button {
  min-height: var(--sp-tap);
  display: inline-flex;
  align-items: center;
  padding-inline: var(--sp1);
  color: var(--mast-ink);
  text-decoration: none;
  background: transparent;
  border: 0;
  border-radius: var(--radius);
  font-size: var(--fs-step--1);
  line-height: var(--lb-step--1);
}
.home .sitenav .signin {
  background: var(--gold);
  color: var(--on-gold);
  font-weight: var(--w-bold);
  padding-inline: var(--sp2);
}
.home .skip {
  position: absolute;
  inset-inline-start: 0;
  inset-block-start: 0;
  width: var(--sp1);
  height: var(--sp1);
  overflow: hidden;
  clip-path: inset(100%);
  color: var(--on-gold);
  background: var(--gold);
  font-weight: var(--w-bold);
}
.home .skip:focus,
.home .skip:focus-visible {
  position: fixed;
  inset-block-start: max(var(--sp2), env(safe-area-inset-top));
  inset-inline-start: max(var(--gut), env(safe-area-inset-left));
  width: auto;
  height: auto;
  min-height: var(--sp-tap);
  clip-path: none;
  padding-inline: var(--sp2);
  z-index: var(--skip-layer);
  isolation: isolate;
}
.home:has(.mast-hero) {
  position: relative;
}
.home:has(.mast-hero) .site {
  position: absolute;
  inset-inline: 0;
  inset-block-start: 0;
  z-index: var(--site-layer);
  width: 100%;
  background: transparent;
  pointer-events: none;
}
.home:has(.mast-hero) .site :is(.sitebar, a, button) {
  pointer-events: auto;
}
.home .mast-hero h1 { color: var(--iq-cyan); }
.home :focus-visible {
  outline: var(--bw-focus) solid var(--gold);
  outline-offset: var(--sp-half);
}
.home .navtoggle { display: none; touch-action: manipulation; }
.home .mast { padding-block: var(--sp8) var(--sp5); }
.home .mast-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-height: var(--home-hero-min);
  padding-block: 0;
  background: var(--mast);
}
.home .mast-hero .mast-media {
  position: absolute;
  inset: 0;
  margin: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  background: var(--mast);
}
.home .mast-hero .mast-media picture {
  display: block;
  width: 100%;
  height: 100%;
}
.home .mast-hero .mast-media img {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
  object-position: center;
}
.home .mast-scrim {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    115deg,
    var(--hero-scrim-mast) 0%,
    var(--hero-scrim-dark) 42%,
    var(--hero-scrim-dark) 100%
  );
}
.home .mast-front {
  position: relative;
  z-index: 2;
  flex: 1 1 auto;
  width: 100%;
  max-width: var(--wrap);
  margin-inline: auto;
  padding-inline-start: max(var(--gut), env(safe-area-inset-left));
  padding-inline-end: max(var(--gut), env(safe-area-inset-right));
  padding-block: var(--sp8) var(--sp5);
  display: grid;
  gap: var(--sp3);
  align-content: start;
  justify-items: start;
}
.home:has(.mast-hero) .mast-front {
  padding-block-start: var(--hero-nav-pad);
}
.home .mast-primary,
.home .mast-secondary {
  min-width: 0;
  width: 100%;
}
.home .mast-hero .mast-proof {
  position: relative;
  z-index: 2;
  width: 100%;
  padding-block: 0 var(--sp2);
  background: transparent;
}
.home .mast-hero .mast-chips {
  position: relative;
  z-index: 2;
  width: 100%;
  margin-block-start: auto;
  padding-block: var(--sp2) var(--sp3);
  background: var(--home-hero-bar);
  border-block-start: var(--bw-hair) solid var(--home-hero-line);
}
.home .mast .pair { margin-block-end: var(--sp3); }
.home .mast-secondary .lede { margin-block-start: 0; }
.home .mast-secondary .quiet + .quiet { margin-block-start: var(--sp2); }
.home .kicker {
  margin: 0;
  margin-block-end: var(--sp2);
  color: var(--mast-gold);
  font-size: var(--fs-step--2);
  line-height: var(--lb-step--2);
  letter-spacing: var(--track-kicker);
  text-transform: uppercase;
  font-weight: var(--w-label);
}
.home h1 {
  margin: 0;
  max-width: var(--home-measure);
  font-size: var(--fs-step-6);
  line-height: var(--lbh-step-6);
  font-weight: var(--w-bold);
  letter-spacing: var(--track-h1);
  text-wrap: balance;
  text-rendering: optimizeLegibility;
  hanging-punctuation: first;
  text-box-trim: trim-both;
  text-box-edge: cap alphabetic;
}
.home h2 {
  margin: 0;
  margin-block-end: var(--sp3);
  font-size: var(--fs-step-3);
  line-height: var(--lbh-step-3);
  font-weight: var(--w-label);
  text-wrap: balance;
}
.home h3 {
  margin: 0;
  font-size: var(--fs-step-1);
  line-height: var(--lbh-step-1);
  font-weight: var(--w-label);
  text-wrap: balance;
}
.home .hair {
  width: var(--sp6);
  height: var(--bw-hair);
  margin-block: var(--sp3);
  margin-inline: 0;
  background: var(--hair);
}
.home .lede {
  margin: 0;
  max-width: var(--home-measure);
  font-size: var(--fs-step-1);
  line-height: var(--lb-prose-1);
  color: var(--mast-mut);
  hyphens: auto;
  overflow-wrap: break-word;
  line-break: auto;
  text-autospace: normal;
  text-spacing-trim: normal;
  text-wrap: pretty;
  hyphenate-limit-chars: auto;
}
.home .band p { hyphens: auto; overflow-wrap: break-word; }
.home .band ~ .band,
.home .foot {
  content-visibility: auto;
  contain-intrinsic-size: auto var(--home-band-reserve);
}
.home .mast .quiet { color: var(--mast-mut); }
.home .pair {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp1);
  margin-block-start: var(--sp3);
}
.home .btn {
  min-height: var(--sp-tap);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding-inline: var(--sp2);
  text-decoration: none;
  border: 0;
  border-radius: var(--radius);
  background: transparent;
  color: var(--mast-ink);
  font-size: var(--fs-step--1);
  line-height: var(--lb-step--1);
  font-weight: var(--w-label);
  touch-action: manipulation;
}
.home .btn.gold {
  background: var(--gold);
  color: var(--on-gold);
  font-weight: var(--w-bold);
  print-color-adjust: exact;
  -webkit-print-color-adjust: exact;
}
.home .btn.line { border: var(--bw-hair) solid var(--mast-mut); }
.home .band .btn.line {
  color: var(--home-ink);
  border-color: var(--line-strong);
  background: var(--surf);
}
.home .foot .btn.line {
  color: var(--mast-ink);
  border-color: var(--mast-mut);
}
.home .proof {
  margin: 0;
  padding-block-end: var(--sp8);
  color: var(--mast-mut);
  font-size: var(--fs-step--2);
  line-height: var(--lb-step--2);
}
.home .plate {
  margin: 0;
  display: grid;
  justify-items: center;
  background: var(--mast);
}
.home .plate picture { width: 100%; }
.home .work-shot { margin: 0; }
.home figcaption { caption-side: bottom; }
.home .plate img,
.home .shot {
  width: 100%;
  height: auto;
  aspect-ratio: var(--photo-ratio);
  object-fit: cover;
  object-position: center;
  display: block;
}
.home .photo-proof {
  width: 100%;
  max-width: var(--wrap);
  padding: var(--sp2) var(--gut);
}
.home .photo-proof ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--sp1);
  color: var(--mast-mut);
  font-size: var(--fs-step--1);
  line-height: var(--lb-step--1);
}
.home .photo-proof li { min-width: 0; }
.home .band {
  background: var(--surf);
  color: var(--home-ink);
  padding-block: var(--sp8);
}
.home .paper { background: var(--home-paper); }
.home .band .kicker,
.home .band a { color: var(--home-gold); }
.home .foot a { color: var(--mast-ink); }
.home .foot .kicker { color: var(--mast-gold); }
.home .foot .ledger div { border-bottom-color: var(--mast-mut); }
.home .foot .ledger dt,
.home .foot .ledger dd { color: var(--mast-ink); }
.home p { margin: 0; max-width: var(--home-measure); }
.home .band p + p,
.home .foot p + p { margin-block-start: var(--sp2); }
.home .cards {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--sp3);
}
.home .card {
  display: grid;
  align-content: start;
  gap: var(--sp2);
  min-width: 0;
  border: 0;
  border-top: var(--bw-hair) solid var(--line);
  border-radius: var(--radius);
  padding-top: var(--sp2);
  isolation: isolate;
  contain: layout;
  break-inside: avoid;
  page-break-inside: avoid;
}
.home fieldset.card {
  margin: 0;
  padding-inline: 0;
}
.home legend {
  padding: 0;
  font-size: var(--fs-step-1);
  line-height: var(--lbh-step-1);
  font-weight: var(--w-label);
}
.home .figure {
  margin: 0;
  min-height: var(--lbh-step-6);
  font-size: var(--fs-step-6);
  line-height: var(--lbh-step-6);
  font-weight: var(--w-bold);
  color: var(--home-ink);
  font-variant-numeric: tabular-nums;
}
.home .quiet {
  margin-block-start: var(--sp2);
  max-width: var(--home-measure);
  color: var(--paper-mut);
  font-size: var(--fs-step--2);
  line-height: var(--lb-step--2);
}
.home .timeline {
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--sp3);
  list-style: none;
}
.home .timeline li {
  min-width: 0;
  border-top: var(--bw-hair) solid var(--line);
  padding-block-start: var(--sp2);
}
.home .timeline .time {
  display: block;
  margin-block-end: var(--sp2);
  color: var(--home-gold);
  font-size: var(--fs-step-6);
  line-height: var(--lbh-step-6);
  font-weight: var(--w-bold);
  font-variant-numeric: tabular-nums;
}
.home .timeline h3 { margin-block-end: var(--sp1); }
.home .ledger {
  margin: 0;
}
.home .ledger div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) var(--phi-fr);
  gap: var(--sp2);
  min-height: var(--sp-tap);
  align-items: center;
  border-bottom: var(--bw-hair) solid var(--line);
}
.home .ledger dt {
  color: var(--home-gold);
  font-weight: var(--w-label);
}
.home .ledger dd { margin: 0; }
.home .frames {
  display: grid;
  gap: var(--sp3);
  grid-template-columns: minmax(0, 1fr);
}
.home .frames figcaption {
  color: var(--home-gold);
  font-weight: var(--w-label);
  caption-side: bottom;
}
.home .device {
  display: block;
  width: var(--device-w);
  max-width: 100%;
  height: var(--device-h);
  margin: var(--sp2) auto 0;
  border: var(--bw-hair) solid var(--line);
  background: var(--app);
}
.home .wide {
  display: block;
  width: 100%;
  height: var(--wide-h);
  margin-block-start: var(--sp2);
  border: var(--bw-hair) solid var(--line);
  background: var(--app);
}
.home iframe { isolation: isolate; }
.home .steps {
  margin: 0;
  padding: 0;
  list-style: none;
}
.home .steps li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) var(--phi-fr);
  gap: var(--sp2);
  min-height: var(--sp-tap);
  align-items: center;
  border-bottom: var(--bw-hair) solid var(--line);
}
.home .steps strong { font-weight: var(--w-label); }
.home .record { border-top: var(--bw-hair) solid var(--line); }
.home .record div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) var(--phi-fr);
  gap: var(--sp2);
  padding-block: var(--sp1half);
  border-bottom: var(--bw-hair) solid var(--line);
}
.home .record dt {
  color: var(--home-gold);
  font-weight: var(--w-label);
}
.home .record dd { margin: 0; font-weight: var(--w-prose); }
.home .planfacts {
  margin: 0;
  padding: 0;
  list-style: none;
}
.home .planfacts li {
  padding-block: var(--sp1);
  border-bottom: var(--bw-hair) solid var(--line);
}
.home .form-errors {
  margin-block-end: var(--sp3);
  padding: var(--sp1half);
  border: var(--bw-hair) solid var(--red-dim);
  color: var(--home-ink);
  background: var(--surf);
}
.home .btn.danger {
  color: var(--red-dim);
  border-color: var(--red-dim);
}
.home .foot {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-block: var(--sp3) var(--sp3);
  padding-bottom: calc(var(--sp3) + env(safe-area-inset-bottom));
  color: var(--mast-mut);
  font-size: var(--fs-step--2);
  line-height: var(--lb-step--2);
  border-top: var(--bw-hair) solid var(--line);
}
.home .foot .foot-stack {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sp3);
  width: 100%;
  text-align: center;
}
.home .foot .foot-note {
  max-width: var(--measure-paper);
  margin-inline: auto;
  text-align: center;
  color: var(--mast-mut);
  font-size: inherit;
  line-height: inherit;
}
.home .foot .foot-groups {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--sp3) var(--sp4);
  width: 100%;
  max-width: var(--measure-wide);
  text-align: start;
  padding-inline: var(--sp2);
}
.home .foot .foot-g {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  min-width: 0;
}
.home .foot .foot-g b {
  color: var(--iq-gold);
  font-weight: var(--w-semi);
  font-size: var(--fs-step--2);
  line-height: var(--lb-step--2);
  letter-spacing: var(--tr-wide);
  text-transform: uppercase;
  margin-block-end: var(--sp-half);
}
.home .foot .foot-g a {
  min-height: var(--sp-tap);
  display: inline-flex;
  align-items: center;
  padding: 0;
  color: var(--mast-mut);
  font-weight: var(--w-regular);
  font-size: inherit;
  line-height: inherit;
  text-decoration: none;
}
.home .foot .foot-g a:hover { color: var(--mast-ink); }
.home .foot .foot-g a:focus-visible {
  outline: var(--bw-focus) solid var(--iq-gold);
  outline-offset: var(--sp-half);
}
.home .foot .foot-org {
  display: grid;
  gap: var(--sp1);
  max-width: var(--measure-wide);
  margin: 0;
  text-align: center;
}
.home .foot .foot-org-name {
  color: var(--mast-ink);
  font-weight: var(--w-semi);
  font-size: inherit;
  line-height: inherit;
}
.home .foot .foot-org-line {
  color: var(--mast-mut);
  font-size: inherit;
  line-height: inherit;
  max-width: var(--measure-paper);
  margin-inline: auto;
}
.home .foot .foot-org-law {
  max-width: var(--measure-paper);
  margin-inline: auto;
  font-size: inherit;
  line-height: inherit;
  color: var(--mast-mut);
}
.home .foot .foot-copy {
  color: var(--mast-mut);
  font-size: var(--fs-step--2);
  line-height: var(--lb-step--2);
  text-align: center;
}
.home .foot .foot-by {
  margin: 0;
  font-size: inherit;
  line-height: inherit;
}
.home .foot .foot-by a {
  color: var(--mast-mut);
  text-decoration: none;
  min-height: var(--sp-tap);
  display: inline-flex;
  align-items: center;
  padding-inline: var(--sp1);
}
.home .foot .foot-by a:hover { color: var(--mast-ink); }
.home .foot .foot-lk {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp1half);
}
.home .foot .foot-lkf {
  display: block;
  height: var(--bw-hair);
  width: var(--lk-rule);
  flex: none;
  background: linear-gradient(to right, transparent, var(--iq-cyan));
}
.home .foot .foot-lkf.r {
  background: linear-gradient(to left, transparent, var(--iq-cyan));
}
.home .foot .foot-lkcol {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(var(--sp-half) / 2);
}
.home .foot .foot-lkn {
  font-family: var(--ff-mono);
  font-weight: var(--w-bold);
  font-size: var(--fs-lk);
  line-height: 1;
  letter-spacing: var(--lk-track);
  text-indent: var(--lk-track);
  color: var(--iq-gold);
}
.home .foot .foot-lksub {
  font-family: var(--ff-mono);
  font-weight: var(--w-semi);
  font-size: var(--fs-lk-sub);
  line-height: 1;
  letter-spacing: var(--lk-track-sub);
  text-indent: var(--lk-track-sub);
  color: var(--iq-cyan);
}
@media (max-width: 896px) {
  .home .foot .foot-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .home .foot .foot-groups {
    grid-template-columns: minmax(0, 1fr);
    text-align: center;
  }
  .home .foot .foot-g { align-items: center; }
}
.home .field {
  display: grid;
  gap: var(--sp-half);
  margin-block-end: var(--sp2);
  font-size: var(--fs-step--1);
  line-height: var(--lb-step--1);
  color: var(--home-ink);
}
.home input,
.home select {
  min-height: var(--sp-tap);
  border: var(--bw-hair) solid var(--line-strong);
  border-radius: var(--radius);
  background: var(--surf);
  color: var(--home-ink);
  padding-inline: var(--sp1half);
  font: inherit;
  accent-color: var(--gold);
  caret-color: var(--home-ink);
}
.home input[aria-invalid="true"] {
  border-color: var(--red);
  outline: var(--bw-focus) solid var(--red);
  outline-offset: var(--sp-half);
}
.home .check {
  display: flex;
  align-items: center;
  gap: var(--sp1);
  min-height: var(--sp-tap);
  font-size: var(--fs-step--1);
  line-height: var(--lb-step--1);
}
.home .check input {
  width: var(--sp2);
  height: var(--sp2);
  min-height: var(--sp2);
  padding: 0;
}
.home .person {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: var(--sp2);
  align-items: center;
}
.home .people,
.home #hits { display: grid; gap: var(--sp1); }
.home .crew-note {
  margin: 0 0 var(--sp2);
  padding: var(--sp1) var(--sp2);
  color: var(--ink-on-paper);
  background: var(--paper);
  border-radius: var(--radius);
}
.home .result { margin-block-start: var(--sp3); }
.home .stack { margin-block-start: var(--sp3); }
.home .compare { margin-block-start: var(--sp5); }
.home[data-track="home"] .crew { display: none; }
.home address {
  margin: 0;
  font-style: normal;
  width: 100%;
}
@media (min-width: 640px) {
  .home .cards,
  .home .timeline,
  .home .photo-proof ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home .cards > :last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (min-width: 896px) {
  :root { --gut: var(--sp6); }
  .home .mast-front {
    grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
    align-items: end;
    gap: var(--sp5);
    padding-block-end: var(--sp6);
  }
  .home .mast-secondary .lede,
  .home .mast-secondary .quiet {
    max-width: none;
  }
  .home h1 {
    font-size: var(--fs-step-7);
    line-height: var(--lbh-step-7);
  }
  .home .cards { grid-template-columns: repeat(var(--cols-3), minmax(0, 1fr)); }
  .home .cards > :last-child:nth-child(odd) { grid-column: auto; }
  .home .cards.roles { grid-template-rows: repeat(var(--role-rows), auto); }
  .home .cards.work { grid-template-rows: repeat(var(--card-rows), auto); }
  .home .cards.roles .card {
    grid-row: span var(--role-rows);
    grid-template-rows: subgrid;
  }
  .home .cards.chain { grid-template-rows: repeat(var(--chain-rows), auto); }
  .home .cards.chain .card {
    grid-row: span var(--chain-rows);
    grid-template-rows: subgrid;
  }
  .home .cards.work .card {
    grid-row: span var(--card-rows);
    grid-template-rows: subgrid;
  }
  .home .timeline { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .home .photo-proof ul { grid-template-columns: repeat(var(--cols-4), minmax(0, 1fr)); }
  .home .cards.offers { grid-template-rows: repeat(var(--offer-rows), auto); }
  .home .cards.offers .card {
    grid-row: span var(--offer-rows);
    grid-template-rows: subgrid;
  }
  .home .frames { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home .frames .span { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .home .mast { padding-block: var(--sp5) var(--sp3); }
  .home .sitebar { flex-wrap: wrap; }
  .home .navtoggle {
    min-width: var(--sp-tap);
    min-height: var(--sp-tap);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding-inline: var(--sp2);
    color: var(--mast-ink);
    background: transparent;
    border: var(--bw-hair) solid var(--mast-mut);
  }
  .home .sitenav {
    width: 100%;
    display: none;
    grid-template-columns: minmax(0, 1fr);
  }
  .home .sitenav[data-open="true"] { display: grid; }
  .home .sitenav a,
  .home .sitenav button {
    width: 100%;
    justify-content: flex-start;
  }
  .home .pair {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }
  .home .pair .btn,
  .home .band .btn,
  .home .foot .btn { width: 100%; }
  .home .record div,
  .home .ledger div,
  .home .steps li { grid-template-columns: minmax(0, 1fr); }
  .home .person {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }
  .home .person > * {
    width: 100%;
    min-width: 0;
  }
}
@media (hover: hover) and (pointer: fine) {
  .home .band a:hover,
  .home .foot a:hover,
  .home .sitenav a:hover { text-decoration-line: underline; }
}
@media (prefers-reduced-motion: reduce) {
  .home * {
    scroll-behavior: auto;
    animation: none;
    transition: none;
  }
}
@media (prefers-reduced-transparency: reduce) {
  .home .mast,
  .home .proof,
  .home .band,
  .home .foot { opacity: 1; }
  .home .mast-scrim { background: var(--mast); }
}
@media (prefers-reduced-data: reduce) {
  .home iframe { display: none; }
  .home .plate,
  .home .work-shot { display: none; }
}
.home ::target-text {
  background: var(--gold);
  color: var(--on-gold);
}
@media (prefers-contrast: more) {
  .home :focus-visible { outline-offset: var(--sp1); }
  .home .btn.line { border-width: var(--bw-focus); }
  .home .navtoggle { border-width: var(--bw-focus); }
}
@media (forced-colors: active) {
  .home .btn,
  .home .navtoggle,
  .home input,
  .home select {
    border: var(--bw-focus) solid ButtonText;
  }
  .home .btn.gold,
  .home .sitenav .signin {
    background: Highlight;
    color: HighlightText;
  }
}
@media print {
  .home p,
  .home li {
    orphans: 3;
    widows: 3;
  }
  .home .band ~ .band,
  .home .foot { content-visibility: visible; }
  .home .site,
  .home .navtoggle,
  .home .skip { display: none; }
  .home .mast,
  .home .proof,
  .home .plate,
  .home .foot {
    background: var(--home-paper);
    color: var(--home-ink);
  }
  .home .mast-scrim,
  .home .mast-hero .mast-media,
  .home .mast-hero .mast-chips {
    display: none;
  }
  .home h1,
  .home h2,
  .home h3 {
    break-after: avoid;
    break-inside: avoid;
  }
  .home .plate,
  .home .work-shot,
  .home figure {
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .home iframe { display: none; }
  .home .band a[href]::after,
  .home .foot a[href]::after {
    content: " (" attr(href) ")";
    font-size: var(--fs-step--2);
  }
}
