/* Shared rhythm: type sized to its role and available space. */
:root{--surface-ease:cubic-bezier(.22,1,.36,1)}
html{scroll-padding-top:110px}
html body main#main :is(section,article,figure,details,[class*="grid"]>*){min-width:0}
html body main#main :is(h1,h2,h3){text-wrap:balance;hyphens:manual}
html body main#main h1{font-size:clamp(36px,5vw,72px)!important;line-height:1.12!important;letter-spacing:-.045em!important}
html body main#main h2{font-size:clamp(28px,3vw,44px)!important;line-height:1.22!important;letter-spacing:-.035em!important}
html body main#main h3{font-size:clamp(19px,1.7vw,24px)!important;line-height:1.35!important;letter-spacing:-.025em!important}
html body main#main :is(article,[class*="grid"]>a,[class*="grid"]>li,.story-copy,.collection-caption) h3{font-size:clamp(18px,1.5vw,22px)!important}
html body main#main :is(.feature-case-copy,.product-case,.social-case) h3{font-size:clamp(28px,3.2vw,42px)!important;line-height:1.2!important}
html body main#main :is(.section-head,.detail-opening,.detail-links){gap:clamp(24px,4vw,56px)!important;align-items:start!important}
html body main#main .section-head>p{padding-top:clamp(20px,2.4vw,34px)!important}
html body main#main .section{padding-block:clamp(44px,5.8vw,84px)!important}
html body main#main :is(.home-service,.service-detail-grid article,.opportunity-grid>a,.impact-number-grid>a){display:flex;flex-direction:column;height:100%}
html body main#main :is(.home-card-link,.impact-link,.opportunity-grid .story-cta){margin-top:auto;padding-top:18px}
html body main#main :is(.home-service,.service-detail-grid article,.opportunity-grid>a) p{font-size:15px!important;line-height:1.75!important}
html body main#main :is(.home-service,.service-detail-grid article,.opportunity-grid>a) h3{margin:16px 0 12px!important}
html body main#main :is(.home-service-grid,.story-grid,.opportunity-grid,.home-process-grid){align-items:stretch!important;gap:clamp(16px,2vw,28px)!important}
html body.page-home main#main .acquisition-hero h1{font-size:clamp(38px,4.6vw,66px)!important;text-transform:none!important}
html body.page-home main#main .acquisition-hero h1 .hero-heading-line:not(.growth-highlight){font-weight:700!important;line-height:inherit!important}
html body.page-home main#main .acquisition-hero h1 .growth-highlight{font-weight:500!important}
/* A single observer owns entrances; legacy scroll-in markup stays readable. */
html body main#main .scroll-in{opacity:1!important;transform:none!important}
.motion-surface{transition:opacity .65s var(--surface-ease),translate .8s var(--surface-ease)!important;transition-delay:var(--surface-delay,0ms)!important}
.motion-surface.surface-pending{opacity:0;translate:0 20px}
.motion-surface.surface-entered{opacity:1;translate:0 0}
.motion-surface:focus-within{opacity:1;translate:0 0;transition-delay:0ms!important}
.writing-word{display:inline-block;white-space:normal;max-width:100%;overflow-wrap:anywhere}
.writing-glyph{font:inherit;color:inherit;letter-spacing:inherit}
@media(hover:hover) and (pointer:fine){html body main#main :is(.home-service,.impact-number-grid>a,.opportunity-grid>a,.service-detail-grid article,.story-card,.collection-card){transition:opacity .65s var(--surface-ease),translate .8s var(--surface-ease),transform .3s var(--surface-ease),box-shadow .3s,border-color .3s!important}html body main#main :is(.home-service,.opportunity-grid>a,.story-card,.collection-card):hover{transform:translateY(-3px);box-shadow:0 14px 32px #25382a0b}}
@media(max-width:900px){html body main#main .section-head>p{padding-top:0!important}html body main#main :is(.section-head,.detail-opening,.detail-links){gap:24px!important}}
@media(max-width:650px){html{scroll-padding-top:94px}html body main#main h1{font-size:clamp(30px,8vw,40px)!important;line-height:1.18!important}html body.page-home main#main .acquisition-hero h1{font-size:clamp(30px,8.2vw,40px)!important;line-height:1.18!important}html body main#main h2{font-size:clamp(26px,7vw,32px)!important}html body main#main h3{font-size:20px!important}html body main#main .section{padding-block:44px!important}html body main#main :is(.feature-case-copy,.product-case,.social-case) h3{font-size:30px!important}.motion-surface.surface-pending{translate:0 12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.motion-surface,.writing-glyph{opacity:1!important;translate:none!important;animation:none!important;transition:none!important}html body main#main :is(.home-service,.opportunity-grid>a,.story-card,.collection-card):hover{transform:none!important}}
@media print{.motion-surface{opacity:1!important;translate:none!important}.brand-intro,.reading-progress,.back-top{display:none!important}}
/* Heading span rules in earlier themes must not resize the typing characters. */
html body main#main :is(h1,h2,h3) span:is(.writing-word,.writing-glyph),html body.page-home main#main .acquisition-hero h1 span:is(.writing-word,.writing-glyph),html body .footer-invitation h2 span:is(.writing-word,.writing-glyph){font:inherit!important;letter-spacing:inherit!important;line-height:inherit!important;text-transform:inherit!important;color:inherit!important;margin:0!important;padding:0!important;vertical-align:baseline!important}
html body main#main :is(h1,h2,h3) span.writing-glyph,html body.page-home main#main .acquisition-hero h1 span.writing-glyph{display:inline!important}
html body.page-mockup{font-family:'Montserrat',Arial,sans-serif;line-height:1.7}
.page-mockup .table-scroll{overflow-x:auto;max-width:100%}
.page-mockup table{min-width:540px}
.page-mockup .card strong{font-size:22px;line-height:1.3}
html body main#main .audience-routes{background:transparent!important;border:0!important;gap:24px!important}
html body main#main .audience-routes>a{min-width:0;height:100%;padding:clamp(24px,3vw,36px)!important}
html body main#main .page-hero.reveal{animation:none!important}

/* Typing stays in the original text flow, including narrow screens. */
html body main#main .writing-word,html body .footer-invitation .writing-word{display:inline!important;white-space:normal!important;overflow-wrap:inherit!important}
/* Chapter rules grow with scroll depth; layout remains stationary. */
.motion-chapter{position:relative}
.motion-chapter-rule{position:absolute;left:0;right:0;top:0;height:1px;pointer-events:none;background:linear-gradient(90deg,#496b5080,#496b5010);transform:scaleX(var(--chapter-progress,0));transform-origin:left}
@media(prefers-reduced-motion:reduce){.motion-chapter-rule{display:none}}
/* Cursor overlays the current character, preserving line width and wrapping. */
html body .writing-glyph.typing-caret{position:relative}
html body .writing-glyph.typing-caret:after{content:'';position:absolute;left:100%;top:.12em;height:.85em;width:2px;background:currentColor;animation:typing-cursor .7s steps(1) infinite;pointer-events:none}
@keyframes typing-cursor{50%{opacity:0}}
@media(prefers-reduced-motion:reduce){.typing-caret:after{display:none!important}}
