:root {
  --ink: #10133e;
  --pink: #f8cadd;
  --pink-light: #fbe0e9;
  --pink-deep: #f6b2ce;
  --acid: #e6ff46;
  --rule: #85809f;
  --serif: 'Libre Caslon Display', Georgia, serif;
  --sans: 'DM Sans', Arial, sans-serif;
  --body-size: clamp(17px, 1.95vw, 28px);
  --heading-size: clamp(48px, 6.6vw, 95px);
  --small-heading: clamp(29px, 3.05vw, 44px);
  --gutter: clamp(22px, 5vw, 96px);
  --space: clamp(32px, 4vw, 58px);
  --radius: 0;
  --motion: 320ms cubic-bezier(.3,.7,.2,1);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 24px; }
body { margin: 0; color: var(--ink); background: linear-gradient(135deg,#fadce7 15%,#fbdfe9 45%,#f8b5d0 100%); font: 400 var(--body-size)/1.28 var(--sans); }
h1,h2,h3,p { margin: 0; }
h1,h2,h3 { font-family: var(--serif); font-weight: 400; text-wrap: balance; }
h1,h2 { font-size: var(--heading-size); line-height: .93; letter-spacing: -.045em; }
h3 { font-size: var(--small-heading); line-height: 1.02; letter-spacing: -.035em; }
p { text-wrap: pretty; }
a { color: inherit; text-decoration: none; }
button,input { font: inherit; color: inherit; border-radius: var(--radius); }
button,a,input { -webkit-tap-highlight-color: transparent; }
button,a { touch-action: manipulation; }
button { cursor: pointer; }
button:focus-visible,a:focus-visible,input:focus-visible,[tabindex]:focus-visible { outline: 3px solid var(--ink); outline-offset: 5px; }
img { display: block; max-width: 100%; height: auto; }
ol,ul { list-style: none; margin: 0; padding: 0; }
[hidden] { display: none !important; }
.container { width: calc(100% - var(--gutter)*2); max-width: 1720px; margin-inline: auto; }
.wordmark { font: 500 clamp(32px,2.9vw,44px)/1 var(--sans); letter-spacing: -.065em; white-space: nowrap; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 20px; padding: 21px 35px; background: var(--acid); border: 0; font-size: clamp(16px,1.65vw,24px); font-weight: 500; line-height: 1.2; white-space: nowrap; transition: background var(--motion), transform var(--motion); }
.button:hover { background: #d7ef35; transform: translateY(-2px); }
.button span { font-size: 1.3em; line-height: 1; }
.field label { display: block; font-size: clamp(14px,1.25vw,18px); margin-bottom: 7px; }
.field input { display: block; width: 100%; min-width: 0; height: 49px; border: 1px solid var(--rule); background: transparent; padding: 8px 12px; transition: background var(--motion),border-color var(--motion); }
.field input:focus { background: #ffffff30; border-color: var(--ink); }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; animation:none!important; } }

/* === section: header === */
.header { background:#efa3c1; position:relative; z-index:2; }
.header .header__inner { display:flex; align-items:center; gap:58px; min-height:86px; border-bottom:1px solid var(--rule); }
.header .header__navigation { flex:1; }
.header nav { display:flex; align-items:center; gap:52px; font-size:16px; }
.header nav a { white-space:nowrap; transition:opacity var(--motion); }
.header nav a:hover { opacity:.65; }
.header .header__cta { margin-left:auto; text-decoration:underline; text-underline-offset:6px; }
.header .header__cta span { display:inline-block; margin-left:8px; }
.header .header__toggle { display:none; }
@media(max-width:1100px) {
 .header .header__inner { gap:20px; flex-wrap:wrap; padding-block:20px; min-height:78px; }
 .header .header__toggle { display:flex; gap:16px; align-items:center; margin-left:auto; border:0; background:transparent; font-size:16px; padding:5px; }
 .header .header__toggle span { font-size:24px; transition:transform var(--motion); }
 .header .header__toggle[aria-expanded=true] span { transform:rotate(45deg); }
 .header .header__navigation { flex-basis:100%; }
 .header nav { display:flex; flex-direction:column; align-items:flex-start; gap:22px; padding-block:15px; }
 .header .header__cta { margin-left:0; }
 .header.is-enhanced .header__navigation { height:0; overflow:hidden; visibility:hidden; transition:height var(--motion),visibility var(--motion); }
 .header.is-enhanced.is-open .header__navigation { visibility:visible; }
 .header.is-enhanced .header__inner { row-gap:0; }
}

/* === section: hero === */
.hero { position:relative; height:50.5vw; max-height:970px; min-height:520px; background:#efa3c1; overflow:hidden; }
.hero .hero__image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center bottom; }
.hero .hero__inner { position:relative; height:100%; }
.hero .hero__copy { margin-left:57.5%; padding-top:6.2%; width:47%; }
.hero .hero__eyebrow { font-size:clamp(16px,1.55vw,23px); margin-bottom:8px; }
.hero h1 { font-size:clamp(48px,7vw,134px); line-height:.87; letter-spacing:-.05em; }
.hero h1 span { display:block; white-space:nowrap; }
.hero .hero__description { max-width:530px; font-size:clamp(18px,1.8vw,34px); margin:25px 0 22px; }
@media(max-width:700px) {
 .hero { height:730px; min-height:0; }
 .hero .hero__image { top:auto; bottom:0; height:400px; object-fit:cover; object-position:27% bottom; }
 .hero::after { content:''; position:absolute; left:0; right:0; top:315px; height:60px; background:linear-gradient(#efa3c1,transparent); }
 .hero .hero__inner { z-index:1; }
 .hero .hero__copy { margin:0; width:100%; padding-top:32px; }
 .hero h1 { font-size:clamp(48px,12.8vw,82px); }
 .hero .hero__description { max-width:400px; font-size:18px; margin-block:20px; }
 .hero .hero__eyebrow { font-size:15px; margin-bottom:12px; }
 .hero .button { padding:18px 25px; }
}

/* === section: connection === */
.connection { padding:40px 0 30px; }
.connection h2 { max-width:830px; margin-bottom:35px; }
.connection .connection__contrast { display:grid; grid-template-columns:1fr 1.13fr; margin-bottom:35px; }
.connection .connection__contrast>div+div { border-left:1px solid var(--rule); padding-left:50px; }
.connection h3 { margin-bottom:8px; }
.connection .connection__diagram { display:flex; align-items:center; gap:25px; }
.connection .connection__diagram>span { font-family:var(--serif); font-size:clamp(26px,2.75vw,52px); letter-spacing:-.04em; white-space:nowrap; }
.connection .connection__diagram strong { font-size:clamp(20px,1.9vw,36px); font-weight:500; background:var(--acid); padding:16px 32px; }
.connection .connection__diagram i { height:1px; background:var(--rule); flex:1; position:relative; min-width:25px; }
.connection .connection__diagram i::after { content:'→'; font-style:normal; position:absolute; right:-1px; top:50%; transform:translateY(-54%); font-size:32px; background:#fadce7; padding-left:8px; }
.connection .connection__caption { text-align:center; margin-top:14px; }
@media(max-width:700px) {
 .connection { padding:40px 0 20px; }
 .connection h2 { font-size:49px; }
 .connection .connection__contrast { grid-template-columns:1fr; gap:24px; }
 .connection .connection__contrast>div+div { border-left:0; border-top:1px solid var(--rule); padding:24px 0 0; }
 .connection .connection__diagram { flex-direction:column; gap:16px; }
 .connection .connection__diagram i { flex:none; width:1px; min-width:0; height:30px; }
 .connection .connection__diagram i::after { content:'↓'; right:auto; left:50%; top:auto; bottom:-7px; transform:translateX(-50%); background:none; padding:0; font-size:24px; }
 .connection .connection__caption { margin-top:28px; }
}

/* === section: operating-layer === */
.operating-layer { padding:26px 0 35px; }
.operating-layer h2 { font-size:clamp(46px,6.4vw,120px); white-space:nowrap; margin-bottom:10px; }
.operating-layer .operating-layer__image { width:100%; aspect-ratio:4.45; object-fit:cover; margin:22px 0 36px; }
.operating-layer .operating-layer__steps { display:grid; grid-template-columns:repeat(4,1fr); position:relative; }
.operating-layer .operating-layer__steps::before,.operating-layer .operating-layer__steps::after { content:''; position:absolute; top:-9px; width:19px; height:19px; background:var(--acid); z-index:1; }
.operating-layer .operating-layer__steps::before { left:0; }
.operating-layer .operating-layer__steps::after { right:0; }
.operating-layer .operating-layer__steps li { border-top:1px solid var(--rule); position:relative; padding:24px 12px 0 35px; }
.operating-layer .operating-layer__steps li:not(:last-child)::after { content:'→'; position:absolute; right:-6px; top:-23px; padding:0 9px; background:#fbdde8; font-size:36px; z-index:1; }
.operating-layer h3 { margin-bottom:6px; }
.operating-layer .operating-layer__steps p { font-size:clamp(16px,1.7vw,32px); }
@media(max-width:700px) {
 .operating-layer { padding-top:40px; }
 .operating-layer h2 { white-space:normal; font-size:48px; }
 .operating-layer .operating-layer__image { aspect-ratio:2; margin-bottom:30px; }
 .operating-layer .operating-layer__steps { grid-template-columns:1fr; margin-left:10px; }
 .operating-layer .operating-layer__steps li { border-top:0; border-left:1px solid var(--rule); padding:0 0 32px 28px; }
 .operating-layer .operating-layer__steps li:last-child { padding-bottom:0; }
 .operating-layer .operating-layer__steps::before { left:-9px; top:0; }
 .operating-layer .operating-layer__steps::after { left:-9px; top:auto; bottom:0; }
 .operating-layer .operating-layer__steps li:not(:last-child)::after { content:'↓'; left:-11px; right:auto; top:auto; bottom:7px; font-size:25px; padding:0 3px; }
}

/* === section: standard === */
.standard { padding:45px 0 30px; }
.standard .standard__intro { text-align:center; margin-bottom:48px; }
.standard .standard__intro h2 { margin-bottom:22px; }
.standard .standard__grid { display:grid; grid-template-columns:repeat(3,1fr); }
.standard .standard__grid li { padding:0 35px 26px; }
.standard .standard__grid li:nth-child(3n+2),.standard .standard__grid li:nth-child(3n+3) { border-left:1px solid var(--rule); padding-left:65px; }
.standard .standard__grid li:nth-child(n+4) { border-top:1px solid var(--rule); padding-top:24px; padding-bottom:0; }
.standard .standard__number { display:inline-block; background:var(--acid); font-size:19px; padding:7px 8px; margin-bottom:10px; }
.standard h3 { max-width:330px; line-height:.92; margin-bottom:10px; }
.standard .standard__grid p { font-size:clamp(17px,1.8vw,34px); }
@media(max-width:900px) {
 .standard .standard__grid li { padding-inline:20px; }
 .standard .standard__grid li:nth-child(3n+2),.standard .standard__grid li:nth-child(3n+3) { padding-left:24px; }
}
@media(max-width:700px) {
 .standard { padding-top:35px; }
 .standard .standard__intro { margin-bottom:30px; }
 .standard .standard__intro h2 { font-size:46px; }
 .standard .standard__grid { grid-template-columns:1fr; }
 .standard .standard__grid li:nth-child(n) { position:relative; border-left:0; border-top:1px solid var(--rule); padding:22px 0 22px 52px; }
 .standard .standard__number { position:absolute; left:0; top:24px; font-size:14px; padding:6px; }
 .standard h3 { max-width:none; font-size:34px; }
 .standard .standard__grid p br { display:none; }
}

/* === section: possibilities === */
.possibilities { padding:35px 0 20px; }
.possibilities h2 { font-size:clamp(46px,6vw,112px); }
.possibilities .possibilities__intro { margin:18px 0 18px; }
.possibilities .possibilities__rows li { display:grid; grid-template-columns:38% 9% 53%; align-items:center; border-bottom:1px solid var(--rule); padding:16px 0; }
.possibilities .possibilities__rows p { font-size:clamp(17px,1.85vw,35px); }
.possibilities .possibilities__rows span { font-size:32px; }
@media(max-width:700px) {
 .possibilities h2 { font-size:46px; }
 .possibilities .possibilities__rows li { grid-template-columns:1fr 28px; gap:8px; padding-block:20px; }
 .possibilities .possibilities__rows li p:last-child { grid-column:1; font-size:18px; }
 .possibilities .possibilities__rows span { grid-column:2; grid-row:1 / 3; justify-self:center; transform:rotate(90deg); font-size:26px; }
}

/* === section: how-we-work-capability === */
.how-we-work { padding:30px 0 25px; }
.how-we-work h2 { font-size:clamp(46px,5.9vw,112px); }
.how-we-work .how-we-work__steps { display:grid; grid-template-columns:1fr 1.05fr 1fr; gap:70px; border-bottom:1px solid var(--rule); padding:30px 0 26px; }
.how-we-work .how-we-work__steps li { position:relative; font-size:clamp(17px,1.85vw,35px); }
.how-we-work .how-we-work__steps li:not(:last-child)::after { content:'→'; position:absolute; right:-42px; top:-3px; font-size:32px; }
.how-we-work .how-we-work__examples { display:grid; grid-template-columns:repeat(3,1fr); margin-top:26px; }
.how-we-work .how-we-work__examples li { padding:0 25px 0 0; }
.how-we-work .how-we-work__examples li+li { border-left:1px solid var(--rule); padding-left:80px; }
.how-we-work h3 { font-size:clamp(29px,2.8vw,52px); }
.how-we-work .how-we-work__examples p { font-size:clamp(16px,1.65vw,31px); }
@media(max-width:900px) { .how-we-work .how-we-work__examples li+li { padding-left:25px; } }
@media(max-width:700px) {
 .how-we-work .how-we-work__steps { grid-template-columns:1fr; gap:40px; }
 .how-we-work .how-we-work__steps li:not(:last-child)::after { content:'↓'; left:0; right:auto; top:27px; font-size:24px; }
 .how-we-work .how-we-work__examples { grid-template-columns:1fr; gap:20px; }
 .how-we-work .how-we-work__examples li:nth-child(n) { border:0; padding:0; }
}

/* === section: cta === */
.cta { padding:80px 0 70px; }
.cta .cta__layout { display:grid; grid-template-columns:1.05fr 1fr; gap:65px; }
.cta h2 { font-size:clamp(45px,5.8vw,110px); margin-bottom:30px; }
.cta .cta__names { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.cta .field { margin-bottom:20px; }
.cta .cta__note { font-size:clamp(13px,1.25vw,20px); margin-top:20px; }
.cta .cta__form-area { position:relative; transition:height var(--motion); }
.cta form { transition:opacity var(--motion),transform var(--motion); }
.cta form.is-leaving { opacity:0; transform:translateY(-8px); }
.cta .cta__thanks { opacity:0; transform:translateY(12px); transition:opacity var(--motion),transform var(--motion); }
.cta .cta__thanks.is-visible { opacity:1; transform:translateY(0); }
.cta .cta__thanks h3 { margin-bottom:20px; }
@media(max-width:700px) {
 .cta { padding:45px 0 50px; }
 .cta .cta__layout { grid-template-columns:1fr; gap:32px; }
 .cta h2 { font-size:49px; margin-bottom:20px; }
 .cta .cta__names { gap:14px; }
 .cta .button { padding:18px 20px; }
 .cta .cta__copy p br { display:none; }
}

/* === section: footer === */
.footer { padding:0 0 65px; }
.footer .footer__inner { display:flex; justify-content:space-between; align-items:flex-start; border-top:1px solid var(--rule); padding-top:28px; }
.footer .wordmark { font-size:clamp(40px,4.7vw,88px); }
.footer .footer__domain { display:block; text-decoration:underline; text-underline-offset:3px; font-size:clamp(14px,1.4vw,24px); margin-top:16px; }
.footer p { font-family:var(--serif); font-size:clamp(30px,3vw,56px); letter-spacing:-.04em; padding-top:15px; }
@media(max-width:700px) { .footer .footer__inner { flex-direction:column; gap:24px; } .footer p { padding:0; } }
