/* Campaign first; the brand stays a small signature. */
.hero{padding:155px 0 76px;min-height:990px;background:var(--black)}
.hero-grid{grid-template-columns:1.12fr .88fr;gap:clamp(55px,6vw,98px);align-items:start}
.hero-identity{align-self:start;padding:0}
.hero h1{font:550 clamp(65px,7.5vw,116px)/1.05 "Nimbus Sans",Arial,sans-serif;letter-spacing:-.065em;margin:0}
.word-line{padding-bottom:.06em;overflow:clip}.word-line+.word-line{margin-top:-.03em;color:#42533b}.word-line>span{white-space:nowrap}
.hero-cta{margin-top:33px;padding:12px 25px;border:1px solid #d8ccb860;border-radius:2px;font-size:13px;font-weight:600;transition:background .25s,color .25s,border-color .25s;display:inline-block}
.hero-cta:hover{color:var(--black);background:var(--bone);border-color:var(--bone)}
.hero-story{padding:6px 0 0 34px;border-left:1px solid var(--line);font-size:14px;line-height:1.75;color:#b6b9af}
.hero-story>.eyebrow{font-size:10px;font-weight:500;letter-spacing:.12em;color:var(--taupe);margin:0 0 22px}
.hero-story .rich p:first-child{font-size:21px;font-weight:450;line-height:1.5;margin-bottom:25px;letter-spacing:-.035em}
.hero-story .rich p{margin-bottom:.42em}.hero-story .rich p:nth-child(5),.hero-story .rich p:nth-child(9),.hero-story .rich p:nth-child(12){margin-bottom:21px}
.brand,.site-header .brand{padding-right:0}.site-header .nav-cta{padding-inline:21px}
.hero .equipment-stage{position:relative;display:block;min-height:0;height:390px;border:0;background:none;margin:27px 0 0;overflow:visible;isolation:auto}
.hero .equipment-pair{inset:0;display:flex;align-items:center;justify-content:flex-start;width:100%;filter:drop-shadow(0 20px 25px #0005);transform:translate3d(var(--pointer-x,0px),calc(var(--float-y,0px) + var(--pointer-y,0px)),0) rotate(var(--float-r,0deg))}
.equipment-pair img{display:block;width:100%;height:100%;object-fit:contain;object-position:left center;max-width:460px}
.before-section{padding-top:75px;border-top:1px solid var(--line)}
.back-top{width:auto;height:auto;border:0;border-radius:0;padding:9px 0;font-size:12px;border-bottom:1px solid var(--olive)}
.start-button{justify-content:center;text-align:center}
.section-menu nav a>span:first-child{margin-left:0;color:var(--taupe)}
/* An open answer reads as an article: manageable lines, distinct paragraphs,
   existing subheads, and semantic lists where the source enumerates items. */
.accordion summary,.about-grid .accordion summary,.approach-section .accordion summary,.faq-section .accordion summary{font-weight:700;letter-spacing:-.018em}
.answer,.about-grid .answer{font-size:16px;line-height:1.55;font-weight:400;color:#babdb4;margin:3px 0 34px 3px;padding:4px 26px 3px 24px;border-left:1px solid #42533b9c}
.answer-content{max-width:61ch}
.answer-section{display:flow-root}
.answer p{font-size:inherit;line-height:inherit;margin:0 0 .65em}
.answer-section>:last-child{margin-bottom:0}
.answer-section+.answer-section{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.answer h3,.answer h4{font:650 18px/1.5 "Nimbus Sans",Arial,sans-serif;letter-spacing:-.028em;color:var(--bone);margin:0 0 17px}
.answer h3 strong,.answer h4 strong{font-weight:inherit;color:inherit}
.answer strong{font-weight:600;color:#d7d9d0}
.answer ul,.answer ol{padding-left:1.35em;margin:16px 0 23px}
.answer li{padding-left:.35em;margin:0 0 .5em;line-height:1.55}
.answer li:last-child{margin-bottom:0}.answer li p{margin:0}
.answer li::marker{color:#94a27c;font-size:.85em}
.answer-section>p:has(>strong:only-child){margin-top:1.5em;color:var(--bone)}
.answer-section>p:first-child{margin-top:0}
.answer a{text-decoration-thickness:1px;text-underline-offset:4px;color:#cdd8bd}
.faq-section .answer{color:#d0c2c3;border-color:#a17c8277}.faq-section .answer a{color:#e4d6d8}.faq-section .answer li::marker{color:#bfa1a6}
.about-grid .answer{font-size:15px;padding-left:18px;padding-right:9px}
.answer .inline-image{max-width:200px;width:100%;margin:0 0 26px;border-radius:0}
/* Short in-view sequences follow the meaning of each program illustration. */
.art-active .cycle-card{animation:cycle-build 3.5s var(--ease) backwards}
.art-active .cycle-two{animation-delay:.5s}.art-active .cycle-three{animation-delay:1s}
.art-active .art-route{stroke-dasharray:4 5;animation:cycle-route 4.5s linear}
.art-active .phone-art{animation:phone-arrive 1.1s var(--ease) backwards;transform-origin:center}
.art-active .digital-badge{animation:logged-arrive 1.2s .7s var(--ease) backwards;transform-box:fill-box;transform-origin:center}
.art-active .message-one{animation:message-arrive 1.1s var(--ease) backwards}
.art-active .message-two{animation:message-arrive 1.2s .65s var(--ease) backwards}
.art-active .reply-dots circle{animation:reply-dot .8s ease-in-out 4}
.art-active .reply-dots circle:nth-child(2){animation-delay:.15s}.art-active .reply-dots circle:nth-child(3){animation-delay:.3s}
@keyframes cycle-build{0%{transform:translateY(17px);opacity:.55}24%,55%{transform:translateY(-9px);opacity:1}100%{transform:translateY(0);opacity:1}}
@keyframes cycle-route{from{stroke-dashoffset:54}to{stroke-dashoffset:0}}
@keyframes phone-arrive{from{transform:translateY(16px);opacity:.6}to{transform:translateY(0);opacity:1}}
@keyframes logged-arrive{from{transform:translate(15px,-7px) scale(.94);opacity:0}to{transform:translate(0,0) scale(1);opacity:1}}
@keyframes message-arrive{from{transform:translateY(15px);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes reply-dot{0%,100%{opacity:.35;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}
.accordion summary{transition:color .2s,background .2s}.accordion[open] summary{color:#f0eee6}
@media(min-width:1550px){.hero{min-height:1030px}.hero .equipment-stage{height:430px}.hero-story{font-size:15px}}
@media(max-width:1100px){.hero-grid{grid-template-columns:1fr 1fr;gap:45px}.hero h1{font-size:7.2vw}.hero-story{padding-left:23px}.hero .equipment-stage{height:340px}}
@media(max-width:760px){
 .site-header{justify-content:space-between}.site-header nav{margin-left:auto}.site-header .nav-cta{padding:9px 16px}
 .hero{padding:140px 0 65px;min-height:0}.hero-grid{grid-template-columns:1fr;gap:46px}.hero h1{font-size:clamp(48px,12.9vw,88px);line-height:1.08;letter-spacing:-.06em}.hero-cta{margin-top:23px;font-size:12px;padding:11px 22px}
 .hero .equipment-stage{height:310px;margin-top:25px}.hero .equipment-pair{justify-content:center}.equipment-pair img{max-width:360px;object-position:center}
 .hero-story{padding:30px 0 0;border:0;border-top:1px solid var(--line);font-size:15px}.hero-story>.eyebrow{margin-bottom:21px}.hero-story .rich p:first-child{font-size:20px}
 .before-section{padding-top:65px}.answer,.about-grid .answer{font-size:15px;line-height:1.55;padding:3px 2px 2px 17px;margin-bottom:29px}
 .answer h3,.answer h4{font-size:17px;line-height:1.55;margin-bottom:16px}.answer-section+.answer-section{margin-top:20px;padding-top:16px}.answer p{margin-bottom:.65em}.answer li{margin-bottom:.5em}.answer-content{max-width:none}
}
@media(max-width:380px){.hero{padding-top:125px}.hero .equipment-stage{height:265px}.hero-grid{gap:35px}.answer,.about-grid .answer{padding-left:13px;font-size:14.5px}.hero h1{font-size:12.5vw}}
@media(prefers-reduced-motion:reduce){.hero .equipment-pair{transform:none;will-change:auto}}
@media print{.hero .equipment-stage{display:none}.hero-story{border:none;padding:0}.answer{border-color:#777;color:#222}.answer h3,.answer h4,.answer strong{color:#000}}
