/* Shared contact scale and footer on every page. */
.contact-header .cv{font-size:clamp(42px,3.5vw,56px)}
.contact-header .email{font-size:clamp(18px,1.5vw,24px)}
.site-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:24px;min-height:100px;margin:0;padding:28px 4.25%;background:#111;color:#fff;border-top:1px solid #292929;font-size:16px;font-weight:400;line-height:1.4}
.site-footer a{color:inherit;text-decoration:none}
.site-footer a:hover{text-decoration:underline}
.site-footer .footer-email{font-weight:700}
.site-footer nav{display:flex;align-items:center;gap:14px}
.site-footer nav a{display:grid;place-items:center;min-width:44px;min-height:44px;border-radius:50%}
.site-footer nav img{width:30px;height:30px;filter:brightness(0) invert(1)}
.site-footer a:focus-visible{outline:2px solid #7dcbd2;outline-offset:5px}
@media(max-width:479px){.contact-header .cv{font-size:32px}.contact-header .email{font-size:14px}.site-footer{padding:25px 6%;gap:16px;font-size:14px}.site-footer .all-projects{flex-basis:100%}}

/* Let the browser own navigation, history, modified clicks and local-file links. */
@view-transition{navigation:auto}
::view-transition-old(root){animation-duration:140ms;animation-timing-function:ease-in}
::view-transition-new(root){animation-duration:180ms;animation-timing-function:ease-out}
@supports not (view-transition-name:root){body{animation:page-appear 180ms ease-out}}
@keyframes page-appear{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){body{animation:none}::view-transition-old(root),::view-transition-new(root){animation:none}}
