/* Shared progressive enhancement. Content stays visible without JavaScript. */
.fx-progress{position:fixed;inset:0 0 auto;height:3px;z-index:90;pointer-events:none;transform-origin:left;transform:scaleX(var(--read-progress,0));background:linear-gradient(90deg,#f35b30,#ffad71,#f35b30);box-shadow:0 0 14px #f35b3070}
.fx-reveal{transition:opacity .75s ease,translate .85s cubic-bezier(.16,1,.3,1),box-shadow .3s ease,border-color .3s ease;transition-delay:var(--fx-delay,0ms)}
.fx-reveal.fx-pending{opacity:0;translate:0 32px}
.fx-reveal.fx-visible{opacity:1;translate:0 0}
.fx-heading:after{content:'';display:block;width:84px;height:2px;margin-top:20px;background:linear-gradient(90deg,#f35b30,#ffbc95,transparent);transform-origin:left;scale:1 1;transition:scale 1s cubic-bezier(.16,1,.3,1)}
.fx-pending .fx-heading:after,.fx-heading.fx-pending:after{scale:0 1}
.fx-card{position:relative;transition:translate .5s cubic-bezier(.16,1,.3,1),box-shadow .4s ease,border-color .4s ease,opacity .75s ease;transition-delay:var(--fx-delay,0ms)}
.fx-card.fx-visible{--fx-delay:0ms}
.project-brand{overflow:hidden}
.project-brand img{transition:transform .65s cubic-bezier(.16,1,.3,1),filter .65s ease}
.action span[aria-hidden],.contact span[aria-hidden]{transition:transform .3s ease}
.header-nav a{position:relative}
.header-nav a:after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:#f35b30;scale:0 1;transform-origin:left;transition:scale .3s ease}
.header-nav a:hover:after,.header-nav a:focus-visible:after{scale:1 1}
.fx-page .header{transition:box-shadow .35s ease,border-color .35s ease}
.fx-scrolled .header{box-shadow:0 8px 32px #351d0e10;border-color:#f35b3035}
@media(hover:hover) and (pointer:fine){
 .fx-card:hover,.fx-card:focus-within{translate:0 -5px;box-shadow:0 16px 40px #f35b3012;border-color:#f35b3070}
 .portfolio-project:hover .project-brand img{transform:scale(1.055);filter:drop-shadow(0 10px 12px #34251c12)}
 .action:hover span[aria-hidden],.contact:hover span[aria-hidden]{transform:translate(3px,-3px)}
}
@media(max-width:700px){.fx-reveal.fx-pending{translate:0 18px}.fx-reveal{transition-duration:.6s}.fx-heading:after{width:58px;margin-top:15px}.fx-progress{height:2px}}
@media(prefers-reduced-motion:reduce){
 .fx-reveal,.fx-reveal.fx-pending,.fx-reveal.fx-visible{opacity:1!important;translate:none!important;transition:none!important}
 .fx-heading:after{scale:1 1!important;transition:none!important}
 .fx-card,.project-brand img,.action span,.contact span,.header-nav a:after{transition:none!important;transform:none!important;translate:none!important}
 .fx-progress{display:none}
}
@media print{.fx-progress{display:none}.fx-reveal.fx-pending{opacity:1;translate:none}}
