/* The follower is available on every route, including About and Playground. */
/* Case-study opening artwork uses square corners at every viewport width. */
html body.case-page [data-square-hero],
html body.case-page [data-square-hero] img{border-radius:0!important}

html body .portfolio-pointer[data-shared-pointer]{
 display:none!important;position:fixed;left:0;top:0;width:10px;height:10px;
 border-radius:50%;background:#ef5400;pointer-events:none;z-index:10000;
 opacity:0;transform:translate(-50%,-50%);
}
@media(hover:hover) and (pointer:fine){
 html body .portfolio-pointer[data-shared-pointer]{display:block!important}
 html body .portfolio-pointer[data-shared-pointer].is-active{opacity:1}
}

/* Keep the baseline mask, with room for Onest descenders such as g and y. */
html body #quote-intro:not(.rams-intro) blockquote .page-title-line{
 line-height:1.2;padding-bottom:.18em;margin-bottom:-.18em;
}
html body #quote-intro:not(.rams-intro) .load-typed{top:0;bottom:auto}
html body #quote-intro .load-subtitle{padding-bottom:.12em;margin-bottom:-.12em}

/* One curtain owns motion; the native snapshot only bridges document loading. */
:root.loader-handoff::view-transition-group(root){animation:none!important}
:root.loader-handoff::view-transition-old(root){animation:portfolio-snapshot-hold 6s linear both!important;opacity:1;mix-blend-mode:normal}
:root.loader-handoff::view-transition-new(root){animation:none!important;opacity:0;mix-blend-mode:normal}
@keyframes portfolio-snapshot-hold{from,to{opacity:1}}
html body #quote-intro.rams-intro .load-typed::after{animation:none!important}

/* Use the Home header's entrance and reversed exit on every route. */
html body.unified-nav>header.site-header[data-shared-header].header-pending{visibility:hidden}
html body.unified-nav>header.site-header[data-shared-header].header-entering:before{animation:header27-in 1.5s cubic-bezier(.22,1,.36,1) both!important;transform-origin:left center}
html body.unified-nav>header.site-header[data-shared-header].header-entering .logo img{animation:shared-logo .45s .2s cubic-bezier(.22,1,.36,1) both!important}
html body.unified-nav>header.site-header[data-shared-header].header-entering :is(nav a,.cv-label,.cv-triangle){animation:shared-label .65s .85s cubic-bezier(.22,1,.36,1) both!important}
html body.unified-nav>header.site-header[data-shared-header].header-entering :is(.logo,.header-cv):after{animation:shared-line .45s 1.25s ease both!important}
html body.unified-nav>header.site-header[data-shared-header].header-entering .menu-toggle{animation:shared-circle .6s .85s cubic-bezier(.22,1,.36,1) both!important;clip-path:none!important;translate:none!important;transform-origin:center}
html body.unified-nav>header.site-header[data-shared-header].header-leaving:before{animation:header27-in 1.25s ease reverse both!important}
html body.unified-nav>header.site-header[data-shared-header].header-leaving .logo img{animation:shared-logo .35s .85s ease reverse both!important}
html body.unified-nav>header.site-header[data-shared-header].header-leaving :is(nav a,.cv-label,.cv-triangle){animation:shared-label .3s ease reverse both!important}
html body.unified-nav>header.site-header[data-shared-header].header-leaving .menu-toggle{animation:shared-circle .3s ease reverse both!important;clip-path:none!important;translate:none!important}
html body.unified-nav>header.site-header[data-shared-header].header-leaving :is(.logo,.header-cv):after{animation:shared-line .25s ease reverse both!important}
@media(prefers-reduced-motion:reduce){
 html body.unified-nav>header.site-header[data-shared-header],
 html body.unified-nav>header.site-header[data-shared-header]:before,
 html body.unified-nav>header.site-header[data-shared-header] *{animation:none!important}
}
