:root,[data-theme="light"]{--ground:#ffffff;--ground-alt:#f7f7f9;--surface:#ffffff;--tint:#f0f0f4;--line:rgba(0,0,0,0.06);--line-strong:rgba(0,0,0,0.08);--line-control:#8a889e;--ink:#1a1a2e;--ink-body:#3a3a4a;--ink-muted:#6b6b80;--crimson:#9e3b4a;--crimson-hover:#b5465a;--crimson-soft:#f8eef0;--on-crimson:#ffffff;--indigo:#2b2563;--indigo-bright:#4a3f9e;--indigo-soft:#eeedf6;--on-indigo:#ffffff;--logo-plate:#ffffff;--stake:var(--crimson);--stake-soft:var(--crimson-soft);--status-fix:#0e7480;--status-fix-soft:#e2f4f6;--status-float:#8a5a00;--status-float-soft:#fcf0d6;--status-single:#b42318;--status-single-soft:#fde8e6;--link:var(--crimson);--mark-electric:#e1251b;--mark-gas:#ffd100;--mark-comms:#ff7f00;--mark-water:#0072ce;--mark-reclaimed:#7d3f98;--mark-sewer:#00a651;--mark-survey:#ff2e88;--mark-excavation:#ffffff;--elev-0:#2b6b2b;--elev-1:#8bc34a;--elev-2:#ffeb3b;--elev-3:#ff9800;--elev-4:var(--crimson);--shadow-card:0 6px 24px rgba(158,59,74,0.1);--shadow-lift:0 8px 24px rgba(158,59,74,0.3);--shadow-media:0 8px 32px rgba(0,0,0,0.1);--shadow-float:-4px 0 24px rgba(0,0,0,0.08);--focus-ring:0 0 0 2px #ffffff, 0 0 0 4px #9e3b4a}
[data-theme="dark"]{--ground:#0d0c1a;--ground-alt:#131226;--surface:#1a1832;--tint:#24223f;--line:rgba(255,255,255,0.08);--line-strong:rgba(255,255,255,0.12);--line-control:#6f6c92;--ink:#f1f0fa;--ink-body:#cfcde0;--ink-muted:#9d9bb6;--crimson:#ec7586;--crimson-hover:#f493a1;--crimson-soft:#3a1823;--on-crimson:#1c0d12;--indigo:#aba5f2;--indigo-bright:#c9c2ff;--indigo-soft:#25224b;--on-indigo:#0d0c1a;--logo-plate:#f1f0fa;--status-fix:#45d3e0;--status-fix-soft:#0b2e33;--status-float:#f0b43c;--status-float-soft:#33250a;--status-single:#ff7a6b;--status-single-soft:#3b1411;--shadow-card:0 6px 24px rgba(0,0,0,0.5);--shadow-lift:0 8px 24px rgba(236,117,134,0.25);--shadow-media:0 8px 32px rgba(0,0,0,0.6);--shadow-float:-4px 0 24px rgba(0,0,0,0.6);--focus-ring:0 0 0 2px #0d0c1a, 0 0 0 4px #ec7586;--stake:var(--crimson);--stake-soft:var(--crimson-soft);--link:var(--crimson);--elev-4:var(--crimson);color-scheme:dark}
:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px;--radius-xs:2px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--radius-full:9999px;--container:1200px;--gutter:24px;--gutter-narrow:16px;--measure:65ch;--font-display:"Barlow Condensed", "Arial Narrow", system-ui, sans-serif;--font-sans:Barlow, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace}

/* Four Points Spatial — components. Plain HTML + these classes; every colour comes from tokens.css. */
body { margin: 0; font-family: var(--font-sans); font-size: 16px; line-height: 26px; background: var(--ground); color: var(--ink-body); -webkit-font-smoothing: antialiased; }
.fp-pad { padding: var(--space-6); }
.fp-row { display: flex; flex-wrap: wrap; gap: var(--space-4); align-items: center; }
.fp-stack { display: flex; flex-direction: column; gap: var(--space-3); }

/* Button */
.fp-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); height: 44px; padding: 0 var(--space-6); font: 600 15px/20px var(--font-sans); border-radius: var(--radius-md); border: 2px solid transparent; cursor: pointer; text-decoration: none; white-space: nowrap; transition: transform .16s ease, box-shadow .16s ease, background-color .16s ease, color .16s ease; }
.fp-btn:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.fp-btn-primary { background: var(--crimson); color: var(--on-crimson); }
.fp-btn-primary:hover { background: var(--crimson-hover); transform: translateY(-2px); box-shadow: var(--shadow-lift); }
.fp-btn-secondary { background: var(--tint); color: var(--ink); border-color: var(--crimson); }
.fp-btn-secondary:hover { background: var(--crimson-soft); transform: translateY(-2px); }
.fp-btn-ghost { background: transparent; color: var(--link); padding: 0 var(--space-2); }
.fp-btn-ghost:hover { color: var(--crimson-hover); }
.fp-btn-sm { height: 36px; padding: 0 var(--space-4); font-size: 14px; }
.fp-btn[disabled] { opacity: .45; cursor: not-allowed; transform: none; box-shadow: none; }

/* Tag family */
.fp-eyebrow { display: block; font: 500 11px/16px var(--font-mono); letter-spacing: .2em; text-transform: uppercase; color: var(--crimson); }
.fp-tag { display: inline-flex; align-items: center; font: 500 11px/16px var(--font-mono); letter-spacing: .05em; text-transform: uppercase; padding: 2px var(--space-2); background: var(--crimson-soft); color: var(--crimson); border-radius: var(--radius-xs); }
.fp-chip { display: inline-flex; align-items: center; font: 400 12px/16px var(--font-mono); padding: 5px 10px; background: var(--ground-alt); color: var(--ink-body); border: 1px solid var(--line-strong); border-radius: var(--radius-sm); }
.fp-badge { display: inline-flex; align-items: center; font: 600 10px/14px var(--font-mono); letter-spacing: .06em; text-transform: uppercase; padding: 2px 6px; background: var(--indigo); color: var(--on-indigo); border-radius: var(--radius-xs); }
.fp-tags { display: flex; flex-wrap: wrap; gap: 6px; }

/* ServiceCard */
.fp-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--space-6); }
.fp-card { display: flex; flex-direction: column; min-width: 0; background: var(--surface); border: 1px solid var(--line-strong); border-radius: var(--radius-lg); padding: var(--space-8); color: inherit; text-decoration: none; transition: box-shadow .2s ease; }
.fp-card:hover { box-shadow: var(--shadow-card); }
.fp-card:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.fp-card-icon { width: 40px; height: 40px; margin-bottom: var(--space-4); color: var(--crimson); }
.fp-card-icon svg { width: 100%; height: 100%; display: block; }
.fp-card-title { font: 600 20px/26px var(--font-sans); color: var(--ink); margin: 0 0 var(--space-3); text-wrap: balance; }
.fp-card-text { font-size: 14px; line-height: 22px; color: var(--ink-body); margin: 0; }
.fp-card-lead { grid-column: span 2; background: var(--indigo); border-color: var(--indigo); }
.fp-card-lead .fp-card-title { color: var(--on-indigo); font: 600 28px/32px var(--font-display); }
.fp-card-lead .fp-card-text { color: var(--on-indigo); font-size: 16px; line-height: 26px; }
.fp-card-lead .fp-eyebrow { color: var(--on-indigo); margin-bottom: var(--space-3); }
.fp-card-lead .fp-card-icon { color: var(--on-indigo); }
@media (max-width: 560px) { .fp-card-lead { grid-column: auto; } }

/* StatList */
.fp-stats { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-1); }
.fp-stat { display: flex; align-items: baseline; gap: var(--space-2); }
.fp-stat::before { content: ''; flex: none; width: 6px; height: 6px; border-radius: var(--radius-full); background: var(--crimson); transform: translateY(-2px); }
.fp-stat-value { font: 600 14px/20px var(--font-mono); letter-spacing: .02em; color: var(--crimson); }
.fp-stat-label { font-size: 14px; line-height: 20px; color: var(--ink-muted); }

/* StepFlow */
.fp-steps { list-style: none; margin: 0; padding: 0 0 0 22px; position: relative; }
.fp-steps::before { content: ''; position: absolute; left: 6px; top: 16px; bottom: 16px; width: 2px; background: var(--indigo-bright); }
.fp-step { position: relative; display: grid; grid-template-columns: 64px 1fr; gap: var(--space-3); padding: var(--space-3) 0; }
.fp-step::before { content: ''; position: absolute; left: -21px; top: 17px; width: 10px; height: 10px; border-radius: var(--radius-full); background: var(--crimson); box-shadow: 0 0 0 3px var(--ground); }
.fp-step-num { font: 600 11px/20px var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--crimson); }
.fp-step-title { display: block; font: 600 14px/20px var(--font-mono); color: var(--ink); }
.fp-step-desc { display: block; font-size: 14px; line-height: 22px; color: var(--ink-muted); }

/* FeatureGrid */
.fp-features { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1px; background: var(--line-strong); border: 1px solid var(--line-strong); border-radius: var(--radius-lg); overflow: hidden; }
.fp-feature { background: var(--surface); padding: var(--space-6); display: flex; gap: var(--space-4); align-items: flex-start; min-width: 0; }
.fp-feature-code { flex: none; font: 600 11px/20px var(--font-mono); letter-spacing: .06em; color: var(--crimson); min-width: 36px; }
.fp-feature-title { font: 600 15px/20px var(--font-sans); color: var(--ink); margin: 0 0 var(--space-1); }
.fp-feature-text { font-size: 14px; line-height: 22px; color: var(--ink-muted); margin: 0; }

/* ContactForm */
.fp-form { display: flex; flex-direction: column; gap: var(--space-6); }
.fp-field { display: flex; flex-direction: column; gap: var(--space-2); }
.fp-label { font: 600 15px/20px var(--font-sans); color: var(--ink); }
.fp-input { font: 400 16px/24px var(--font-sans); color: var(--ink); background: var(--surface); border: 1px solid var(--line-control); border-radius: var(--radius-md); padding: 10px 14px; width: 100%; box-sizing: border-box; }
.fp-input::placeholder { color: var(--ink-muted); }
.fp-input:focus { outline: none; border-color: var(--crimson); box-shadow: var(--focus-ring); }
.fp-input[aria-invalid="true"] { border-color: var(--status-single); }
textarea.fp-input { min-height: 120px; resize: vertical; }
.fp-help { font-size: 14px; line-height: 20px; color: var(--ink-muted); }
.fp-error { font-size: 14px; line-height: 20px; color: var(--status-single); }
.fp-modal { position: relative; background: var(--surface); border-radius: var(--radius-xl); padding: var(--space-12) var(--space-8) var(--space-8); box-shadow: var(--shadow-float); max-width: 500px; box-sizing: border-box; }
.fp-modal-title { font: 600 32px/36px var(--font-display); color: var(--ink); margin: 0 0 var(--space-6); }
.fp-modal-close { position: absolute; top: var(--space-4); right: var(--space-4); width: 40px; height: 40px; border: 0; background: none; color: var(--ink-muted); font-size: 24px; cursor: pointer; border-radius: var(--radius-md); }
.fp-modal-close:hover { color: var(--ink); }
.fp-modal-close:focus-visible { outline: none; box-shadow: var(--focus-ring); }

/* SiteHeader */
.fp-header { background: var(--ground); border-bottom: 1px solid var(--line); }
.fp-nav { display: flex; align-items: center; justify-content: space-between; gap: var(--space-6); padding: var(--space-4) var(--space-6); }
.fp-logo { display: inline-flex; align-items: center; background: var(--logo-plate); border-radius: var(--radius-sm); padding: var(--space-1) var(--space-2); }
.fp-logo img { height: 32px; width: auto; display: block; }
.fp-nav-links { display: flex; align-items: center; gap: var(--space-8); list-style: none; margin: 0; padding: 0; }
.fp-nav-links a { font: 500 15px/20px var(--font-sans); color: var(--ink-body); text-decoration: none; }
.fp-nav-links a:hover { color: var(--crimson); }
.fp-nav-links a[aria-current="page"] { color: var(--crimson); font-weight: 700; }
.fp-nav-phone { font: 600 14px/20px var(--font-mono); color: var(--crimson); text-decoration: none; }
@media (max-width: 760px) { .fp-nav-links li:not(.fp-nav-keep) { display: none; } }

/* Hero */
.fp-hero { position: relative; overflow: hidden; background: var(--ground); padding: var(--space-16) var(--space-6) var(--space-12); }
.fp-hero-field { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.fp-hero-field .pt { fill: var(--indigo); }
.fp-hero-field .stake { fill: var(--stake); stroke: var(--ground); stroke-width: 2; }
.fp-hero-field .halo { fill: none; stroke: var(--stake); stroke-width: 1; }
.fp-hero-field .cross { stroke: var(--stake); stroke-width: 1; }
.fp-hero-body { position: relative; max-width: 620px; }
.fp-hero-title { font: 600 64px/60px var(--font-display); letter-spacing: -.01em; color: var(--indigo); margin: var(--space-3) 0 var(--space-4); text-wrap: balance; }
.fp-hero-lead { font-size: 19px; line-height: 30px; color: var(--ink-body); margin: 0 0 var(--space-8); max-width: 34em; }
.fp-hero .fp-stats { margin-top: var(--space-8); }
@media (max-width: 600px) { .fp-hero-title { font-size: 44px; line-height: 44px; } }

/* PartnerStrip */
.fp-partners { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4) var(--space-12); padding: var(--space-8) 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.fp-partners-label { font: 500 11px/16px var(--font-mono); letter-spacing: .2em; text-transform: uppercase; color: var(--ink-muted); }
.fp-partner { font: 600 16px/20px var(--font-sans); color: var(--ink-muted); text-decoration: none; }
.fp-partner:hover { color: var(--crimson); }

/* Footer */
.fp-footer { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: var(--space-2) var(--space-6); padding: var(--space-4) var(--space-6); border-top: 1px solid var(--line); font: 400 12px/16px var(--font-mono); color: var(--ink-muted); }
.fp-footer-links { display: flex; gap: var(--space-6); flex-wrap: wrap; }
.fp-footer a { color: var(--ink-muted); text-decoration: none; }
.fp-footer a:hover { color: var(--crimson); }

/* ProofSequence */
.fp-proof { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--space-6); }
.fp-proof-item { min-width: 0; }
.fp-proof-media { position: relative; aspect-ratio: 16 / 10; max-width: 100%; border-radius: var(--radius-lg); background: var(--tint); border: 1px dashed var(--line-control); display: grid; place-items: center; overflow: hidden; color: var(--ink-muted); }
.fp-proof-media video, .fp-proof-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fp-proof-media.has-media { border: 0; box-shadow: var(--shadow-media); }
.fp-proof-slot { display: flex; flex-direction: column; align-items: center; gap: var(--space-2); font: 400 12px/16px var(--font-mono); text-align: center; padding: var(--space-3); }
.fp-proof-slot svg { width: 24px; height: 24px; color: var(--crimson); }
.fp-proof-step { display: block; margin-top: var(--space-4); font: 500 11px/16px var(--font-mono); letter-spacing: .2em; text-transform: uppercase; color: var(--crimson); }
.fp-proof-title { font: 600 20px/26px var(--font-sans); color: var(--ink); margin: var(--space-1) 0 var(--space-1); }
.fp-proof-text { font-size: 14px; line-height: 22px; color: var(--ink-muted); margin: 0; }

/* CoordinateReadout */
.fp-coord { display: inline-block; max-width: 100%; box-sizing: border-box; background: var(--surface); border: 1px solid var(--line-strong); border-radius: var(--radius-sm); padding: var(--space-4); font: 400 13px/20px var(--font-mono); color: var(--ink-body); font-variant-numeric: tabular-nums; }
.fp-coord-head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); margin-bottom: var(--space-3); }
.fp-coord-id { display: inline-flex; align-items: center; gap: var(--space-2); font-weight: 600; color: var(--ink); }
.fp-coord-id::before { content: ''; width: 10px; height: 10px; border-radius: var(--radius-full); background: var(--stake); box-shadow: 0 0 0 3px var(--stake-soft); }
.fp-coord-scroll { overflow-x: auto; }
.fp-coord table { border-collapse: collapse; }
.fp-coord th, .fp-coord td { padding: 2px 0 2px var(--space-4); text-align: right; white-space: nowrap; }
.fp-coord th:first-child { padding-left: 0; text-align: left; }
.fp-coord thead th { font-weight: 500; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-muted); }
.fp-coord tbody th { color: var(--ink-muted); font-weight: 500; }
.fp-coord .delta { color: var(--status-fix); font-weight: 600; }
.fp-coord .delta.out { color: var(--status-single); }
.fp-coord-foot { margin-top: var(--space-3); padding-top: var(--space-3); border-top: 1px solid var(--line); font-size: 12px; color: var(--ink-muted); }
.fp-coord-foot strong { color: var(--status-fix); font-weight: 600; }

/* RtkStatus */
.fp-rtk { display: inline-flex; align-items: center; gap: 6px; font: 600 12px/16px var(--font-mono); letter-spacing: .06em; padding: 4px 8px; border-radius: var(--radius-sm); white-space: nowrap; }
.fp-rtk::before { content: ''; width: 8px; height: 8px; border-radius: var(--radius-full); background: currentColor; }
.fp-rtk-fix { background: var(--status-fix-soft); color: var(--status-fix); }
.fp-rtk-float { background: var(--status-float-soft); color: var(--status-float); }
.fp-rtk-float::before { background: transparent; box-shadow: inset 0 0 0 2px currentColor; }
.fp-rtk-single { background: var(--status-single-soft); color: var(--status-single); }
.fp-rtk-single::before { border-radius: var(--radius-xs); }
.fp-rtk-prec { font: 400 12px/16px var(--font-mono); color: var(--ink-muted); font-variant-numeric: tabular-nums; }

/* MarkLegend */
.fp-marks { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: var(--space-2) var(--space-6); }
.fp-mark { display: flex; align-items: center; gap: var(--space-2); font-size: 14px; line-height: 22px; color: var(--ink-body); min-width: 0; }
.fp-mark-swatch { flex: none; width: 14px; height: 14px; border-radius: var(--radius-xs); border: 1px solid var(--line-control); }
.fp-mark-code { flex: none; min-width: 34px; font: 600 12px/16px var(--font-mono); color: var(--ink); }
.fp-mark-sewer .fp-mark-swatch { background: var(--mark-sewer); }
.fp-mark-water .fp-mark-swatch { background: var(--mark-water); }
.fp-mark-gas .fp-mark-swatch { background: var(--mark-gas); }
.fp-mark-electric .fp-mark-swatch { background: var(--mark-electric); }
.fp-mark-comms .fp-mark-swatch { background: var(--mark-comms); }
.fp-mark-reclaimed .fp-mark-swatch { background: var(--mark-reclaimed); }
.fp-mark-survey .fp-mark-swatch { background: var(--mark-survey); }
.fp-mark-excavation .fp-mark-swatch { background: var(--mark-excavation); }

@media (prefers-reduced-motion: reduce) { .fp-btn, .fp-card { transition: none; } .fp-btn:hover { transform: none; } }


*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
.wrap{max-width:var(--container);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
@media (max-width:768px){.wrap{padding-left:var(--gutter-narrow);padding-right:var(--gutter-narrow)}}
.band{padding-block:var(--space-16);border-top:1px solid var(--line)}
.band-alt{background:var(--ground-alt)}
.sec-head{max-width:720px;margin-bottom:var(--space-8)}
.sec-head h2{font:600 32px/38px var(--font-sans);letter-spacing:-.01em;color:var(--ink);margin:var(--space-2) 0 var(--space-3);text-wrap:balance}
.sec-head p{font-size:19px;line-height:30px;margin:0;max-width:var(--measure)}
.sticky{position:sticky;top:0;z-index:50}
.fp-header .fp-nav{max-width:var(--container);margin:0 auto}
.menu-btn{display:none;background:none;border:0;color:var(--ink);font:600 12px/16px var(--font-mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;padding:var(--space-2);border-radius:var(--radius-md)}
.menu-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}
@media (max-width:760px){
  .fp-nav{flex-wrap:wrap;padding-left:var(--gutter-narrow);padding-right:var(--gutter-narrow)}
  .menu-btn{display:inline-flex;order:3}
  .fp-nav{flex-wrap:wrap;gap:var(--space-3)}
  .fp-logo img{height:28px}
  .fp-nav-links{display:none}
  .fp-nav-links.open{display:flex;order:4;width:100%;flex-direction:column;align-items:flex-start;gap:var(--space-4);padding-bottom:var(--space-4)}
  .fp-nav-links.open li{display:list-item}
}
.fp-hero{padding-left:0;padding-right:0}
.hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,600px) 1fr;gap:var(--space-8);min-height:480px;pointer-events:none}
.hero-grid > *{pointer-events:auto}
.fp-hero-body{align-self:center}
.hero-readout{justify-self:end;align-self:end}
.fp-hero-field .pt{pointer-events:none}
.target{cursor:pointer;outline:none}
.target .hit{fill:transparent}
.target .core{transform-box:fill-box;transform-origin:center;transition:transform .25s ease,filter .25s ease}
.target .stake{fill:var(--crimson);stroke:var(--ground);stroke-width:2.5}
.target .halo{fill:none;stroke:var(--crimson);stroke-width:1.25}
.target .cross{stroke:var(--crimson);stroke-width:1.25}
.target .pulse{fill:none;stroke:var(--crimson);stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:fp-pulse 2.6s ease-out infinite}
.target .plumb{stroke:var(--crimson);stroke-width:1;stroke-dasharray:3 5;opacity:.55}
.target .label{font:600 12px var(--font-mono);letter-spacing:.14em;fill:var(--crimson);opacity:.75;transition:opacity .25s ease}
.target:hover .core,.target:focus-visible .core{transform:scale(1.7);filter:drop-shadow(0 0 6px var(--crimson)) drop-shadow(0 0 16px var(--crimson))}
.target:hover .label,.target:focus-visible .label{opacity:1}
.target:focus-visible .halo{stroke-width:2.5}
@keyframes fp-pulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(4.2);opacity:0}}
@media (prefers-reduced-motion: reduce){.target .pulse{animation:none;opacity:0}.target .core{transition:none}}
@media (max-width:900px){
  .fp-hero{padding-bottom:300px}
  .fp-hero-field{top:auto;height:320px}
  .hero-grid{grid-template-columns:1fr;min-height:0}
  .hero-readout{display:none}
  .target .label{display:none}
}
.band-logos{border-top:0;padding-top:0}
.marquee-container{overflow:hidden;padding-block:var(--space-8);margin-bottom:var(--space-16);border-top:1px solid var(--line);border-bottom:1px solid var(--line);-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.marquee{display:flex;width:max-content;animation:fp-scroll 30s linear infinite}
.marquee-container:hover .marquee{animation-play-state:paused}
.marquee-item{display:flex;align-items:center;flex:none;white-space:nowrap;margin-right:60px}
.marquee-item a{display:flex;align-items:center;text-decoration:none}
.marquee-item img{height:40px;width:auto;object-fit:contain;filter:grayscale(100%);opacity:.6;transition:filter .3s ease,opacity .3s ease}
.marquee-item:hover img{filter:none;opacity:1}
.marquee-text{font:600 16px/20px var(--font-sans);color:var(--ink-muted);transition:color .3s ease}
.marquee-item:hover .marquee-text{color:var(--crimson)}
@keyframes fp-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion: reduce){.marquee{animation:none}}
.fp-card-photo{position:relative;overflow:hidden;padding:0;min-height:400px;justify-content:flex-end;border-color:transparent;background:var(--indigo)}
.fp-card-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 44%;transition:transform .4s ease}
.fp-card-photo:hover img{transform:scale(1.04)}
.fp-card-photo .photo-body{position:relative;display:flex;flex-direction:column;align-items:flex-start;padding:var(--space-12) var(--space-6) var(--space-6);background:linear-gradient(180deg,rgba(13,12,26,0) 0%,rgba(13,12,26,.82) 48%,rgba(13,12,26,.94) 100%)}
.fp-card-photo .fp-card-title,.fp-card-photo .fp-card-text{color:#ffffff}
.fp-card-photo .fp-badge{background:var(--crimson);color:var(--on-crimson);margin-bottom:var(--space-3)}
@media (prefers-reduced-motion: reduce){.fp-card-photo img{transition:none}}
.hero-video,.hero-tint,.hero-fade{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero-video{object-fit:cover;object-position:60% 50%;transform:scale(1.1);transform-origin:40% 50%;opacity:0;transition:opacity .8s ease;filter:saturate(.85) brightness(.82)}
.hero-tint{background:color-mix(in srgb,var(--indigo) 22%,transparent);opacity:0;transition:opacity .8s ease}
.hero-fade{background:linear-gradient(0deg,var(--ground) 0%,transparent 16%),linear-gradient(90deg,var(--ground) 0%,var(--ground) 36%,color-mix(in srgb,var(--ground) 55%,transparent) 56%,transparent 82%);opacity:0;transition:opacity .8s ease}
.fp-hero.has-video .hero-video,.fp-hero.has-video .hero-tint,.fp-hero.has-video .hero-fade{opacity:1}
.fp-hero.has-video .fp-hero-field .pt{fill:#ffffff}
.fp-hero.has-video .target .label{fill:#ffffff}
@media (max-width:900px){.hero-video,.hero-tint,.hero-fade{top:auto;height:320px}.hero-fade{background:linear-gradient(180deg,var(--ground) 0%,transparent 30%,transparent 82%,var(--ground) 100%)}}
.fp-card-report{background:#111e24}
.fp-card-report img{object-fit:contain;object-position:50% 0}
.fp-proof-media video.crop-ui{transform:scale(1.22)}
main{position:relative}
#fp-trail{position:absolute;left:0;top:0;width:100%;height:0;pointer-events:none;z-index:0}
main > section > .wrap,main > section > .marquee-container{position:relative;z-index:1}
.fp-proof-media > video{position:absolute;inset:0}
.fp-proof-media.portrait{background:#0d0c1a}
.fp-proof .fp-proof-media{aspect-ratio:1/1}
.fp-proof-media.portrait video{object-fit:contain;object-position:50% 50%}
.fp-proof-item:nth-child(1) .fp-proof-media video{object-position:22% 50%}
.fp-proof-media video.crop-ui{transform:none}
.band-video{position:relative;overflow:hidden;border-top:0;background:#0d0c1a;--ground:#0d0c1a;--ink:#f1f0fa;--ink-body:#d9d7e8;--ink-muted:#b9b7cf;--crimson:#ec7586;--crimson-hover:#f493a1;--link:#ec7586;--indigo-bright:#c9c2ff;--line:rgba(255,255,255,0.1);color:var(--ink-body)}
.band-video > .band-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;filter:saturate(.9)}
.band-video > .band-scrim{position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,rgba(13,12,26,0.9) 0%,rgba(13,12,26,0.78) 45%,rgba(13,12,26,0.62) 100%)}
.fp-stats-row{flex-direction:row;flex-wrap:wrap;gap:var(--space-2) var(--space-8)}
.creds{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4) var(--space-12);padding-block:var(--space-8);border-bottom:1px solid var(--line)}
@media (min-width:1000px){.fp-features.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}
.fp-features.plain{background:none;border:0;border-radius:0;gap:var(--space-6) var(--space-8)}
.fp-features.plain .fp-feature{background:none;padding:var(--space-4) 0 0;border-top:2px solid var(--line-strong)}
/* why list: bullets marked with survey stakes, planted on scroll-in and grown as you pass */
.stake-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-8) var(--space-12);--stake-shadow:rgba(255,255,255,0.12)}
.stake-list li{display:flex;gap:var(--space-4);align-items:flex-start}
.stake-mark{flex:none;width:26px;height:48px;color:var(--crimson);transform-origin:15% 96%;transition:scale .5s cubic-bezier(.3,1.5,.5,1) calc(var(--i,0) * 110ms),transform .35s cubic-bezier(.3,1.6,.5,1),color .2s}
.stake-list li:hover .stake-mark,.stake-list li.is-near .stake-mark{transform:scale(1.4);color:var(--crimson-hover)}
.js-stakes .stake-list:not(.planted) .stake-mark{scale:1 0}
.stake-list h3{font:600 18px/24px var(--font-sans);color:var(--ink);margin:2px 0 var(--space-1)}
.stake-list p{font-size:15px;line-height:24px;color:var(--ink-muted);margin:0;max-width:34em}
@media (max-width:700px){.stake-list{grid-template-columns:minmax(0,1fr);gap:var(--space-6)}}
@media (prefers-reduced-motion: reduce){.stake-mark{transition:none}}
.split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:var(--space-12);align-items:start}
@media (max-width:900px){.split{grid-template-columns:1fr;gap:var(--space-8)}}
.split .fp-features{margin-top:var(--space-8)}
.actions{margin-top:var(--space-8)}
.panel{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-lg);padding:var(--space-6)}
.panel .fp-eyebrow{margin-bottom:var(--space-4)}
.panel .fp-marks{grid-template-columns:1fr}
.panel-note{margin:var(--space-4) 0 0;font-size:14px;line-height:22px;color:var(--ink-muted)}
.cards4{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.more{margin-top:var(--space-4)}
.cta{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-6);background:var(--indigo);border-radius:var(--radius-xl);padding:var(--space-12) var(--space-8)}
.cta h2{font:600 44px/46px var(--font-display);margin:0 0 var(--space-2);color:var(--on-indigo)}
.cta p{margin:0;color:var(--on-indigo);font-size:19px;line-height:30px}
.cta .phone{font:600 15px/20px var(--font-mono);color:var(--on-indigo);text-decoration:none}
.cta .phone:hover{text-decoration:underline}
.overlay{position:fixed;inset:0;z-index:100;background:rgba(13,12,26,.6);display:none;align-items:center;justify-content:center;padding:var(--space-4)}
.overlay.open{display:flex}
.overlay .fp-modal{width:100%;max-height:calc(100vh - 32px);overflow:auto}
.theme-toggle{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:max(16px,env(safe-area-inset-bottom,0px));z-index:90;display:inline-flex;border:1px solid var(--line-control);border-radius:var(--radius-md);overflow:hidden;background:var(--surface);box-shadow:var(--shadow-float)}
.theme-toggle span{font:500 11px/16px var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);padding:8px 10px;border-right:1px solid var(--line-strong)}
.theme-toggle button{font:500 11px/16px var(--font-mono);letter-spacing:.06em;text-transform:uppercase;padding:8px 12px;border:0;background:none;color:var(--ink-body);cursor:pointer}
.theme-toggle button[aria-pressed="true"]{background:var(--indigo);color:var(--on-indigo)}
.theme-toggle button:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--crimson)}

/* inner pages */
.page-hero{position:relative;padding-block:var(--space-16) var(--space-12)}
.page-hero .wrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:var(--space-12);align-items:center}
.page-hero .wrap.solo{grid-template-columns:minmax(0,1fr)}
.page-title{font:600 48px/50px var(--font-display);letter-spacing:-.01em;color:var(--indigo);margin:var(--space-3) 0 var(--space-4);text-wrap:balance}
.page-sub{font:600 24px/30px var(--font-sans);letter-spacing:-.01em;color:var(--ink);margin:0 0 var(--space-2)}
.page-lead{font-size:19px;line-height:30px;max-width:var(--measure);margin:0 0 var(--space-8)}
.page-note{font-size:15px;line-height:24px;color:var(--ink-muted);max-width:var(--measure);margin:calc(-1 * var(--space-4)) 0 var(--space-8)}
@media (max-width:900px){.page-hero .wrap{grid-template-columns:minmax(0,1fr);gap:var(--space-8)}.page-title{font-size:38px;line-height:40px}}
.media-frame{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-media);background:#0d0c1a;aspect-ratio:16/10;max-width:100%}
.media-frame.tall{aspect-ratio:4/5;max-height:560px;justify-self:center;width:100%;max-width:440px}
.media-frame img,.media-frame video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
figure{margin:0}
figcaption{margin-top:var(--space-3);font:400 12px/16px var(--font-mono);color:var(--ink-muted)}
.fp-feature .fp-tags{margin-top:var(--space-3)}
.chip-panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-6)}
.chip-panels .panel h3{font:600 20px/26px var(--font-sans);color:var(--ink);margin:var(--space-1) 0 var(--space-2)}
.chip-panels .panel p{font-size:14px;line-height:22px;color:var(--ink-muted);margin:0 0 var(--space-4)}
.yt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-8) var(--space-6)}
.yt-frame{position:relative;aspect-ratio:16/9;border-radius:var(--radius-lg);overflow:hidden;background:#0d0c1a;box-shadow:var(--shadow-media)}
.yt-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.yt-item h3{font:600 18px/24px var(--font-sans);color:var(--ink);margin:var(--space-4) 0 var(--space-1)}
.yt-item p{font-size:14px;line-height:22px;color:var(--ink-muted);margin:0 0 var(--space-2)}
.thanks{min-height:60vh;display:flex;align-items:center}
.formats-strip{padding-block:var(--space-8)}
.formats-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3) var(--space-6)}
.formats-row .fp-eyebrow{flex:none}

/* phones: hero video full-bleed behind the text, lightly shaded so both the video and the copy read */
@media (max-width:900px){
  .fp-hero.video-mode{padding-bottom:var(--space-12);background:#0d0c1a;--ground:#0d0c1a;--ink:#f1f0fa;--ink-body:#d9d7e8;--ink-muted:#b9b7cf;--indigo:#f1f0fa;--crimson:#ec7586;--crimson-hover:#f493a1;--on-crimson:#1c0d12;--link:#ec7586}
  .fp-hero.video-mode .hero-video,.fp-hero.video-mode .hero-fade{top:0;height:100%}
  .fp-hero.video-mode .hero-fade{background:linear-gradient(180deg,rgba(13,12,26,0.62) 0%,rgba(13,12,26,0.4) 55%,rgba(13,12,26,0.7) 100%)}
  .fp-hero.video-mode .hero-video{filter:saturate(.95) brightness(.95)}
  .fp-hero.video-mode .fp-hero-body{text-shadow:0 1px 14px rgba(13,12,26,0.7)}
  .fp-hero .fp-btn-ghost{display:none}
  .fp-hero.video-mode .hero-tint,.fp-hero.video-mode .fp-hero-field{display:none}
}
.band-video .fp-features{--surface:rgba(13,12,26,0.62);--line-strong:rgba(255,255,255,0.14);backdrop-filter:blur(2px)}
.hero-tags{margin:calc(-1 * var(--space-4)) 0 var(--space-6)}
