/* Homepage only; media zoom stays inside the original image bounds. */
.home .featured-image-frame{display:block;overflow:hidden;border-radius:5px}
.home .featured-image-frame img{transition:transform .65s cubic-bezier(.2,.65,.25,1)}
@media(hover:hover) and (pointer:fine){
 .home .featured-project:hover .featured-image-frame img{transform:scale(1.035)}
}
.home .featured-project:focus-visible .featured-image-frame img{transform:scale(1.035)}
.home .about-grid{border:1px dashed var(--line);border-radius:20px;background:#FFFDEA;padding:clamp(18px,2.4vw,34px);gap:clamp(24px,3vw,50px)}
/* The default is fully visible, including when JavaScript is unavailable. */
.home .contact-section.contact-envelope{padding:60px 0 0;overflow:visible}
.home .envelope{position:relative;isolation:isolate;container-type:inline-size;width:100%;aspect-ratio:1.55}
.home .envelope-back{position:absolute;inset:38% 0 0;background:#ffdda9;border-radius:9px;z-index:0}
.home .envelope-letter{position:absolute;left:8%;top:8%;width:84%;height:82%;background:#fff;border:1px dashed var(--line);border-radius:8px;z-index:1;transform:translateY(var(--letter-shift,0px))}
.home .contact-envelope h2{font-size:clamp(18px,5cqw,70px);line-height:1.12;padding:5cqw 1cqw 0;overflow-wrap:normal;font-weight:700}
.home .contact-envelope h2 a{display:flex;flex-direction:column;align-items:center;gap:1cqw}
.home .envelope-arrow{line-height:1;font-size:4.5cqw}
.home .envelope-email{font-size:4.8cqw;line-height:1.25;max-width:100%;overflow-wrap:anywhere}
.home .envelope-sides{position:absolute;inset:38% 0 0;background:#fff4d3;clip-path:polygon(0 0,50% 57%,100% 0,100% 100%,0 100%);border-radius:9px;z-index:2;pointer-events:none}
.home .envelope-front{position:absolute;inset:57% 0 0;background:#ffdda9;clip-path:polygon(50% 0,100% 100%,0 100%);z-index:3;pointer-events:none}
.home .home-reveal-pending{opacity:0;transform:translateY(20px)}
.home .home-reveal-running{animation:tk-home-rise .65s cubic-bezier(.2,.65,.25,1) both}
@keyframes tk-home-rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:809px){
 .home .about-grid{padding:20px 16px;border-radius:14px}
 .home .contact-section.contact-envelope{padding-top:35px}
}
@media(prefers-reduced-motion:reduce){
 .home .featured-image-frame img{transition:none;transform:none!important}
 .home .envelope-letter{transform:none!important}
 .home .home-reveal-pending,.home .home-reveal-running{opacity:1;transform:none;animation:none}
}
