/* Progressive enhancement: semantic content is visible without JavaScript. */
.sr-only { position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.section .section-title { margin:0 0 32px; max-width:820px; font-size:clamp(28px,3.2vw,44px); line-height:1.16; }
.contact-heading { font-size:28px; line-height:1.2; letter-spacing:-.04em; }
.reveal,.site-reveal,.js-ready .site-reveal,.reveal-left,.media-card,.editorial-reveal { opacity:1; transform:none; clip-path:none; }
.motion-word { display:inline-block!important; font:inherit!important; color:inherit!important; letter-spacing:inherit!important; text-transform:inherit!important; margin:0!important; transition:opacity .65s,transform .75s cubic-bezier(.16,1,.3,1),filter .65s; transition-delay:var(--word-delay,0ms); }
.motion-text.motion-pending .motion-word { opacity:0; transform:translateY(.55em) rotate(1deg); filter:blur(3px); }
.motion-text.motion-entered .motion-word { opacity:1; transform:none; filter:none; }
.motion-copy,.motion-card { transition:opacity .7s,translate .8s cubic-bezier(.16,1,.3,1),box-shadow .3s,border-color .3s; transition-delay:var(--motion-delay,0ms); }
.motion-copy.motion-pending { opacity:0; translate:0 15px; }
.motion-card.motion-pending { opacity:0; translate:0 24px; }
.motion-copy.motion-entered,.motion-card.motion-entered { opacity:1; translate:0 0; }
.motion-visual { transition:opacity .85s,translate 1s cubic-bezier(.16,1,.3,1),clip-path 1s cubic-bezier(.16,1,.3,1); }
.motion-visual.motion-pending { opacity:0; translate:0 20px; clip-path:inset(4% 0 8% 0 round 18px); }
.motion-visual.motion-entered { opacity:1; translate:0 0; clip-path:inset(0 0 0 0 round 0); }
.motion-pending:focus-within { opacity:1; translate:0 0; clip-path:none; }
.motion-pending:focus-within .motion-word { opacity:1; transform:none; filter:none; }
.home-visual.motion-visual,.home-approach-visual.motion-visual,.home-contact-image.motion-visual { clip-path:none; }
.archive-page .archive-cover img { object-fit:cover; }
.home-work-image img { object-fit:contain; }
.archive-page .archive-category-card .archive-card-meta i { transition:transform .3s,background .3s,color .3s; }
.archive-page .archive-category-card:hover .archive-card-meta i { transform:rotate(8deg); }
.home-link > span,.home-work-open,.btn > span[aria-hidden] { transition:transform .3s cubic-bezier(.16,1,.3,1); }
.home-link:hover > span,.btn:hover > span[aria-hidden] { transform:translate(3px,-3px); }
.home-work-card:hover .home-work-open { transform:rotate(7deg); }
.home-service:hover,.decision-card:hover { box-shadow:0 18px 46px rgba(0,0,0,.1),inset 0 1px 0 rgba(255,255,255,.15); border-color:var(--orange); }
.home-service-icon { transition:rotate .45s,background .3s; }
.home-service:hover .home-service-icon { rotate:-7deg; background:var(--ambient-warm); }
.motion-enabled .faq-item[open] > p { animation:detailReveal .35s ease both; }
@keyframes detailReveal { from { opacity:0; translate:0 -7px; } to { opacity:1; translate:0 0; } }
@media (max-width:650px) {
 .motion-word { transition-duration:.5s; }
 .motion-card.motion-pending { translate:0 16px; }
 .section .section-title { font-size:28px; margin-bottom:26px; }
}
@media (prefers-reduced-motion:reduce) {
 .motion-word,.motion-copy,.motion-card,.motion-visual { opacity:1!important; transform:none!important; translate:none!important; filter:none!important; clip-path:none!important; transition:none!important; }
 .motion-enabled .faq-item[open] > p { animation:none; }
 .home-service-icon,.home-work-open,.btn > span[aria-hidden],.home-link > span { transition:none; }
 .home-service:hover .home-service-icon { rotate:none; }
}
