/* Screen-sized chapters; long content keeps its natural reading space. */
html{scroll-padding-top:0}
.services,.faq,.contact{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding-top:110px;padding-bottom:85px}
.contact{display:grid;align-content:center}
.process-list{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding-top:100px;padding-bottom:80px}
/* lvh covers the screen even when mobile browser chrome retracts. The
   extra track length is exclusively the distance used to scrub the film. */
.hero-track{height:calc(100lvh + 176svh)}
.hero-track .hero{height:100lvh;min-height:100lvh}
.hero-track.is-static{height:auto}
.hero-track.is-static .hero{height:100lvh;min-height:100lvh}
.principles-scroll{height:calc(100lvh + 110svh)}
.principles-stage{height:100lvh}
.principles-scroll.is-reduced{height:auto}
.chapter-nav{position:fixed;right:17px;top:50%;transform:translateY(-50%);z-index:25;display:flex;flex-direction:column;gap:4px;mix-blend-mode:difference}
.chapter-nav button{position:relative;border:0;background:none;color:white;width:28px;height:22px;padding:0;cursor:pointer}
.chapter-nav button:after{content:'';display:block;margin:auto;width:9px;height:2px;background:currentColor;opacity:.35;transition:width .3s,opacity .3s}
.chapter-nav button[aria-current=true]:after{width:24px;opacity:1}
.chapter-nav button:focus-visible{outline:2px solid white;outline-offset:1px}
@media(max-width:760px){.services,.faq,.contact{padding-top:95px;padding-bottom:70px}.process-list{padding-top:95px;padding-bottom:75px}.process-list article{padding:18px 0}.hero-track{height:calc(100lvh + 112svh)}.principles-scroll{height:calc(100lvh + 100svh)}.services .section-heading{margin-bottom:26px}.services .service-content .items{gap:20px}.services .item{padding-top:16px}.services .item h3{font-size:21px;margin-bottom:7px}.services .item p{font-size:14px}.chapter-nav{right:3px;gap:1px}.chapter-nav button{width:19px;height:20px}.chapter-nav button[aria-current=true]:after{width:15px}.chapter-nav button:after{width:6px}.contact{display:flex}.contact form{width:100%}.floating{bottom:max(15px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.chapter-nav button:after{transition:none}}

/* A warm liquid wipe carries the finished film into services. */
.services{background:#f4d64a;position:relative;z-index:9}.services-body{width:100%;opacity:var(--service-reveal,1);transform:translateY(var(--service-offset,0px));will-change:opacity,transform}.hero-fluid{position:fixed;inset:0;width:100%;height:100%;z-index:8;pointer-events:none;display:none}.services .item{border-color:#302f2a40}
@media(prefers-reduced-motion:reduce){.services-body{opacity:1!important;transform:none!important}.hero-fluid{display:none!important}}
