*, *::before, *::after { box-sizing: border-box; }
:root { --ink:#252424; --accent:#ee4651; --warm:#f8f5f5; --display:"Darker Grotesque",sans-serif; --body:"Lato",sans-serif; --ease-out:cubic-bezier(.22,1,.36,1); --ease-standard:cubic-bezier(.4,0,.2,1); }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:#fff; font-family:var(--body); -webkit-font-smoothing:antialiased; }
img { display:block; max-width:100%; }
h1,h2,h3,p { margin:0; }

.hero { height:650px; overflow:hidden; background:#fff; }
.hero-shell { position:relative; width:min(100%,1136px); height:650px; margin:0 auto; }
.logo { position:absolute; z-index:3; top:79px; left:147px; width:40px; height:21px; overflow:hidden; }
.logo img { width:40px; height:21px; object-fit:contain; transition:opacity 180ms var(--ease-standard),transform 220ms var(--ease-out); }
.hero-art { position:absolute; top:0; left:541px; width:595px; height:612px; }
.hero-art img { width:100%; height:100%; object-fit:cover; object-position:bottom; }
.hero-copy { position:absolute; z-index:2; top:164px; left:147px; width:381px; }
.hero-copy h1 { width:371px; font:700 62px/60px var(--display); color:#000; letter-spacing:-1.8px; }
.hero-copy h1 span { color:var(--accent); }
.hero-subtitle { width:381px; margin-top:20px; font:400 18px/24px var(--display); }
.hero-description { width:371px; margin-top:20px; color:#717171; font:400 13px/18px var(--body); }
.button { display:inline-flex; min-height:43px; align-items:center; justify-content:center; gap:7px; padding:8px 54px; border:0; border-radius:48px; background:#d43b46; box-shadow:0 0 0 rgba(238,70,81,0); color:#fff; font:700 13px/26.58px var(--body); text-decoration:none; text-transform:uppercase; white-space:nowrap; cursor:pointer; transition:background-color 180ms var(--ease-standard),box-shadow 220ms var(--ease-out),transform 220ms var(--ease-out); }
.button:focus-visible { outline:3px solid rgba(238,70,81,.28); outline-offset:4px; }
.button:not(:disabled):active { transform:translateY(0) scale(.98); }
.button-arrow { display:inline-block; transition:transform 220ms var(--ease-out); }
.hero-copy .button { width:240px; margin-top:30px; }

.signals { height:571px; overflow:hidden; background:var(--warm); text-align:center; }
.signals-inner { width:1006px; height:411px; margin:80px auto; }
.signals h2 { width:600px; margin:0 auto; font:700 42px/48px var(--display); color:#000; }
.quote-list { display:flex; flex-wrap:wrap; justify-content:center; gap:16px; width:1006px; margin-top:30px; }
.quote { --item-opacity:1; display:flex; height:56px; align-items:center; justify-content:center; padding:15px 40px; border-radius:15px; background:#fffffe; box-shadow:0 3px 6.3px rgba(71,71,71,.09); opacity:var(--item-opacity); font:700 22px/26px var(--body); white-space:nowrap; transition:opacity 480ms var(--ease-out),transform 300ms var(--ease-out),box-shadow 300ms var(--ease-out); }
.quote-one { color:var(--accent); }
.quote-two { --item-opacity:.8; }
.quote-three { --item-opacity:.6; }
.quote-four { --item-opacity:.4; }
.signals-note { margin-top:25px; color:rgba(0,0,0,.5); font:italic 16px/22px var(--body); }
.signals-callout { margin-top:30px; }
.signals-callout p,.research-callout small { color:var(--accent); font:700 11px/14px var(--body); text-transform:uppercase; }
.signals-callout strong { display:block; margin-top:8px; font:700 28px/38px var(--display); }

.features { height:573px; overflow:hidden; background:#fff; }
.features-inner { width:836px; height:413px; margin:80px auto; }
.features header { text-align:center; }
.features h2 { font:700 40px/46px var(--display); }
.features header>p { margin-top:16px; color:rgba(0,0,0,.5); font:400 16px/19px var(--body); }
.feature-grid { display:grid; grid-template-columns:406px 406px; grid-template-rows:repeat(2,minmax(0,119px)); grid-auto-rows:119px; gap:24px; margin-top:50px; }
.feature-card { height:119px; min-height:0; padding:32px 24px; border-radius:12px; background:#f8f5f5; box-shadow:4px 3px 7.7px rgba(129,129,129,.12); transition:opacity 480ms var(--ease-out),transform 300ms var(--ease-out),box-shadow 300ms var(--ease-out); }
.feature-title { display:flex; height:27px; align-items:center; gap:12px; }
.feature-title img { flex:0 0 24px; width:24px; height:24px; aspect-ratio:1; object-fit:contain; filter:brightness(0) saturate(100%) invert(41%) sepia(74%) saturate(2091%) hue-rotate(327deg) brightness(102%) contrast(87%); }
.feature-card h3 { font:700 22px/27px var(--display); }
.feature-card>p { margin-top:8px; font:400 13px/20px var(--body); }

.research { height:493px; overflow:hidden; background:var(--warm); }
.research-inner { position:relative; display:grid; grid-template-columns:380px 420px; gap:36px; width:836px; height:400px; margin:46.5px auto; }
.research-art { width:380px; height:400px; overflow:visible; }
.research-art img { width:460px; max-width:none; height:387px; margin-left:-80px; margin-top:6px; object-fit:cover; }
.research-copy { align-self:start; width:420px; margin-top:58px; }
.research-copy h2 { width:290px; font:700 40px/46px var(--display); }
.research-copy>p { width:382px; margin-top:20px; font:400 15px/22px var(--body); }
.research-callout { margin-top:30px; }
.research-callout small { display:block; }
.research-callout strong { display:block; margin-top:10px; font:700 24px/30px var(--display); }

.faq { padding:40px 24px 80px; background:#fff; }
.faq-inner { width:min(100%,836px); margin:0 auto; }
.faq header { text-align:center; }
.faq h2 { font:700 40px/46px var(--display); }
.faq header>p { margin-top:16px; color:rgba(0,0,0,.5); font:400 16px/22px var(--body); }
.faq-list { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:50px; }
.faq-list article { padding:28px 24px; border-radius:12px; background:var(--warm); box-shadow:4px 3px 7.7px rgba(129,129,129,.12); transition:opacity 480ms var(--ease-out),transform 300ms var(--ease-out),box-shadow 300ms var(--ease-out); }
.faq-list h3 { font:700 22px/27px var(--display); }
.faq-list p { margin-top:12px; color:rgba(0,0,0,.68); font:400 13px/20px var(--body); }

.form-section { height:814px; overflow:hidden; background:var(--warm); }
.form-card { width:558px; height:762px; margin:0 auto; padding:32px; border-radius:15px; background:#fff; box-shadow:4px 3px 7.7px rgba(129,129,129,.12); }
.form-card h2 { font:700 30px/34px var(--display); }
.form-intro { width:494px; margin-top:24px; font:400 15px/22px var(--body); }
.form-card form { display:flex; flex-direction:column; gap:16px; margin-top:24px; }
.form-card label { display:flex; flex-direction:column; gap:8px; color:#000; font:700 13px/17px var(--body); }
.form-card label span { display:flex; align-items:center; }
.form-card em { margin-left:5px; color:#9b9b9b; font:italic 400 11px/14px var(--body); }
.form-card input,.form-card textarea { width:100%; height:41px; padding:12px 16px; border:1px solid #e6e6e6; border-radius:3px; outline:0; color:var(--ink); background:#fff; font:400 13px/17px var(--body); transition:border-color 180ms var(--ease-standard),box-shadow 180ms var(--ease-standard); }
.form-card textarea { height:80px; resize:none; }
.form-card input::placeholder,.form-card textarea::placeholder { color:#bbb; }
.form-card input:focus,.form-card textarea:focus { border-color:var(--accent); box-shadow:0 0 0 3px rgba(238,70,81,.1); }
.submit { width:494px; height:47px; margin-top:8px; }
.submit:disabled { cursor:wait; opacity:.78; }
.form-status { min-height:18px; margin:-4px 0 -8px; color:#a73a43; font:400 12px/18px var(--body); text-align:center; }
.form-card form[data-state="success"] .form-status { color:#357258; }
.form-disclaimer { width:494px; margin-top:20px; color:#a8a7a7; font:400 13px/22px var(--body); text-align:center; }

footer { height:231px; padding-top:74px; background:#fff; text-align:center; }
footer>p { font:400 11px/14px var(--body); color:#000; }
footer nav { display:flex; justify-content:center; align-items:center; gap:17px; margin-top:27px; }
footer nav a { display:flex; width:17px; height:17px; align-items:center; justify-content:center; border-radius:50%; transition:opacity 180ms var(--ease-standard),transform 220ms var(--ease-out); }
footer nav img { width:16px; height:16px; object-fit:contain; }

/* Motion is opt-in so content remains visible if JavaScript is unavailable. */
:where([data-reveal]) { transition:opacity 480ms var(--ease-out),transform 480ms var(--ease-out); }
.motion-ready [data-hero],.motion-ready [data-reveal] { opacity:0; transform:translateY(16px); }
.motion-ready [data-hero] { transition:opacity 500ms var(--ease-out),transform 500ms var(--ease-out); }
.motion-ready .hero.is-ready [data-hero] { opacity:1; transform:translateY(0); }
.motion-ready .hero.is-ready .hero-art { transition-delay:80ms; }
.motion-ready .hero.is-ready .hero-copy { transition-delay:160ms; }
.motion-ready [data-reveal] { transition-delay:var(--motion-delay,0ms); }
.motion-ready [data-reveal].is-visible { opacity:var(--item-opacity,1); transform:translateY(0); }
[data-reveal-delay="1"] { --motion-delay:60ms; }
[data-reveal-delay="2"] { --motion-delay:120ms; }
[data-reveal-delay="3"] { --motion-delay:180ms; }
[data-reveal-delay="4"] { --motion-delay:240ms; }

@media (hover:hover) and (pointer:fine) {
  .button:not(:disabled):hover { background:#c8323e; box-shadow:0 9px 22px rgba(238,70,81,.24); transform:translateY(-2px); }
  .button:not(:disabled):hover .button-arrow { transform:translateX(4px); }
  .logo:hover img { opacity:.72; transform:scale(1.06); }
  .quote:hover { box-shadow:0 8px 20px rgba(71,71,71,.12); transform:translateY(-3px); }
  .feature-card:hover,.faq-list article:hover { box-shadow:5px 9px 22px rgba(129,129,129,.17); transform:translateY(-4px); }
  footer nav a:hover { opacity:.65; transform:translateY(-2px) scale(1.08); }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; }
  .motion-ready [data-hero],.motion-ready [data-reveal] { opacity:var(--item-opacity,1); transform:none; }
}

@media (max-width:767px) {
  .hero { height:865.5px; }
  .hero-shell { display:flex; height:865.5px; flex-direction:column; align-items:center; padding:40px 20px; }
  .logo { position:static; order:1; width:54px; height:26.5px; }
  .logo img { width:54px; height:26.5px; }
  .hero-art { position:static; order:2; width:350px; height:360px; margin-top:24px; }
  .hero-copy { position:static; order:3; width:350px; margin-top:24px; }
  .hero-copy h1 { width:350px; font-size:53px; line-height:42px; letter-spacing:-1.4px; }
  .hero-subtitle,.hero-description { width:350px; margin-top:16px; }
  .hero-copy .button { width:350px; margin-top:24px; }

  .signals { height:607px; }
  .signals-inner { width:350px; height:495px; margin:56px auto; }
  .signals h2 { width:350px; font-size:30px; line-height:36px; }
  .quote-list { flex-direction:column; flex-wrap:nowrap; align-items:center; gap:12px; width:350px; margin-top:32px; }
  .quote { width:max-content; max-width:350px; height:auto; min-height:46px; padding:12px 24px; font-size:18px; line-height:22px; white-space:normal; }
  .quote-one { width:244px; white-space:nowrap; }
  .quote-two { width:279px; white-space:nowrap; }
  .quote-three { width:308px; white-space:nowrap; }
  .quote-four { width:350px; }
  .signals-note { width:350px; margin-top:32px; font-size:16px; line-height:19px; }
  .signals-callout { margin-top:32px; padding-top:16px; }
  .signals-callout p { font-size:11px; }
  .signals-callout strong { margin-top:6px; font-size:24px; line-height:30px; }

  .features { height:810px; }
  .features-inner { width:350px; height:698px; margin:56px auto; }
  .features h2 { width:262px; margin:auto; font-size:30px; line-height:36px; }
  .features header>p { margin-top:8px; font-size:14px; line-height:18px; }
  .feature-grid { display:flex; width:350px; flex-direction:column; gap:16px; margin-top:32px; }
  .feature-card { width:350px; height:130px; padding:24px 38px; }
  .feature-card h3 { font-size:24px; line-height:30px; }
  .feature-card>p { width:274px; margin-top:12px; font-size:13px; line-height:20px; }

  .research { height:694px; }
  .research-inner { display:flex; width:350px; height:582px; flex-direction:column; gap:32px; margin:56px auto; }
  .research-art { width:350px; height:290px; overflow:hidden; }
  .research-art img { width:350px; height:295px; margin:0; object-fit:cover; }
  .research-copy { width:350px; margin:0; }
  .research-copy h2 { width:350px; font-size:30px; line-height:36px; }
  .research-copy>p { width:340px; margin-top:20px; font-size:15px; line-height:22px; }
  .research-callout { margin-top:20px; padding-top:12px; }
  .research-callout small { font-size:10px; line-height:13px; }
  .research-callout strong { margin-top:8px; font-size:22px; line-height:27px; }

  .faq { padding:28px 20px 56px; }
  .faq-inner { width:350px; }
  .faq h2 { font-size:30px; line-height:36px; }
  .faq header>p { margin-top:8px; font-size:14px; line-height:20px; }
  .faq-list { display:flex; flex-direction:column; gap:16px; margin-top:32px; }
  .faq-list article { padding:24px; }
  .faq-list h3 { font-size:22px; line-height:27px; }

  .form-section { height:808px; }
  .form-card { width:350px; height:752px; padding:24px; }
  .form-card h2 { font-size:28px; line-height:32px; }
  .form-intro { width:302px; margin-top:8px; font-size:14px; line-height:20px; }
  .form-card form { gap:16px; margin-top:24px; }
  .form-card em { display:none; }
  .form-card input,.form-card textarea { width:302px; }
  .submit { width:302px; height:45px; margin-top:8px; padding:8px 22px; }
  .form-disclaimer { width:302px; margin-top:24px; font-size:12px; line-height:18px; }
  footer { height:231px; padding-top:74px; }
}
