/* Morphyy final optical and interaction pass — laptop, tablet, and phone.
   Loaded LAST to resolve earlier narrow tracking overrides without redesigning the site. */
:where(body){text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
main :is(h1,h2,h3),.route-transition .transition-copy strong{font-kerning:normal;overflow-wrap:normal;hyphens:none}
main h1{letter-spacing:-.016em!important;word-spacing:.046em!important}
main h2{letter-spacing:-.020em!important;word-spacing:.034em!important}
main h3{letter-spacing:-.012em!important;word-spacing:.022em!important}
.home-hero h1 :is(em,.last){letter-spacing:-.012em!important;word-spacing:.035em!important}
.page-hero h1,.pricing-hero h1,.contact-grid h1,.work-hero h1{line-height:1.015!important}
main :is(p,li){line-height:1.62}
.eyebrow,.concept-status,.phase-label,.project-meta,.footer-meta{line-height:1.5!important;letter-spacing:.11em!important}
:where(.nav-links a,.footer-nav a){text-underline-offset:.35em}
.nav-links a{transition:color .22s ease,opacity .22s ease}
.nav-cta,.mobile-messy,.btn{transition:background-color .3s ease,color .3s ease,border-color .3s ease,transform .34s cubic-bezier(.16,1,.3,1),box-shadow .3s ease}
.nav-cta:hover,.btn:hover{box-shadow:0 7px 18px rgba(7,18,30,.08)}
:where(a,button,summary,input,select,textarea):focus-visible{outline:2px solid #7db911;outline-offset:4px}
.portal-image img,.world-stage img{transition:transform .7s cubic-bezier(.2,.75,.22,1),filter .5s ease}
@media(hover:hover) and (pointer:fine){.portal:hover .portal-image img{transform:scale(1.035)}.portal:hover .portal-meta h3{color:var(--accent)}}
.portal-meta h3{transition:color .3s ease}
/* A quiet arrival for elements that enter the viewport; no continuous decorative motion. */
.motion-block :is(.eyebrow,.section-split h2,.selected-head h2){transition:transform .75s cubic-bezier(.2,.75,.2,1),opacity .7s ease}
@media(min-width:821px){.motion-block:not(.in) :is(.eyebrow,.section-split h2,.selected-head h2){transform:translateY(8px);opacity:.88}}
/* Work slide images and long editorial content retain a comfortable rhythm. */
.deck-slide img,.project-cover img{height:auto}
.dek,.lede{line-height:1.56!important;letter-spacing:-.005em!important}
.faq :is(summary,p),.pricing-faq :is(summary,p){line-height:1.6}
@media(max-width:900px){
 main h1{letter-spacing:-.012em!important;word-spacing:.055em!important}
 main h2{letter-spacing:-.015em!important;word-spacing:.040em!important}
 main h3{letter-spacing:-.008em!important;word-spacing:.025em!important}
 .page-hero h1,.pricing-hero h1,.contact-grid h1,.work-hero h1{line-height:1.045!important}
 .home-hero h1 :is(em,.last){letter-spacing:-.009em!important;word-spacing:.047em!important}
 .menu-btn{min-width:44px;min-height:44px}
 .mobile-nav a{line-height:1.16}
}
@media(max-width:560px){
 main h1{letter-spacing:-.007em!important;word-spacing:.058em!important}
 main h2{letter-spacing:-.012em!important;word-spacing:.045em!important}
 main h3{letter-spacing:-.006em!important}
 .page-hero h1,.pricing-hero h1,.contact-grid h1,.work-hero h1{line-height:1.06!important}
 .route-transition .transition-copy strong{line-height:1.035!important;letter-spacing:-.014em!important;word-spacing:.06em!important}
 .route-transition .transition-copy em{line-height:1.52!important;letter-spacing:.005em!important}
 .contact-form .form-section-heading h2{line-height:1.33!important}
 .contact-form :is(.form-field,.field-hint,.contact-note){line-height:1.55!important}
}
/* Consciously scale back pointer effects and entry motion for accessibility. */
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
 .motion-block :is(.eyebrow,.section-split h2,.selected-head h2){opacity:1!important;transform:none!important}
}
