/* Desktop navigation shared by the portfolio pages. */
/* Keep native scrolling while hiding the browser scrollbar. */
html, body { scrollbar-width: none; }
html::-webkit-scrollbar, body::-webkit-scrollbar, #scroll-container::-webkit-scrollbar { display: none; width: 0; height: 0; }

/* Persistent header across the site's pages. */
#contact, #page-content, #projects, .selected-project-detail { scroll-margin-top: 90px; }
#tt-header.tt-header-fixed {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
}
@media (max-width: 1024px) {
    #tt-header.tt-header-fixed {
        background: rgba(15, 15, 15, .94);
        border-bottom: 1px solid rgba(255, 255, 255, .09);
        backdrop-filter: blur(16px);
        -webkit-backdrop-filter: blur(16px);
    }
    #tt-header .tt-header-inner { min-height: 68px; padding-top: 0; }
    #tt-header .tt-logo img { max-height: 40px; }
    #tt-header .tt-ol-menu-toggle-btn-text { color: #fff; }
    #tt-header .tt-ol-menu-toggle-btn span::before,
    #tt-header .tt-ol-menu-toggle-btn span::after { background-color: #fff; }
}

.site-desktop-nav { display: none; }
@media (min-width: 1025px) {
    #tt-header { background: rgba(15, 15, 15, .93); border-bottom: 1px solid rgba(255, 255, 255, .09); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
    #tt-header .tt-header-inner { min-height: 76px; padding-top: 0; }
    #tt-header .tt-logo img { max-height: 42px; }
    #tt-header .site-desktop-nav { display: flex; align-items: center; gap: clamp(17px, 2.5vw, 38px); pointer-events: auto; }
    #tt-header .site-desktop-nav > a, #tt-header .site-nav-explore > summary { display: inline-flex; align-items: center; gap: 8px; padding: 12px 0; color: #e7e7e7; font-family: 'Poppins', sans-serif; font-size: 13px; font-weight: 500; line-height: 1.4; letter-spacing: .015em; text-decoration: none; white-space: nowrap; cursor: pointer; transition: color .2s ease; }
    #tt-header .site-desktop-nav a:hover, #tt-header .site-nav-explore > summary:hover, #tt-header .site-desktop-nav [aria-current] { color: #f2769f; }
    #tt-header .site-desktop-nav a:focus-visible, #tt-header .site-nav-explore > summary:focus-visible { outline: 2px solid #f2769f; outline-offset: 5px; }
    #tt-header .site-nav-explore { position: relative; }
    #tt-header .site-nav-explore > summary { list-style: none; }
    #tt-header .site-nav-explore > summary::-webkit-details-marker { display: none; }
    #tt-header .site-nav-chevron { width: 6px; height: 6px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .2s ease; }
    #tt-header .site-nav-explore[open] .site-nav-chevron { transform: translateY(2px) rotate(225deg); }
    #tt-header .site-nav-dropdown { position: absolute; top: calc(100% + 12px); left: -18px; min-width: 192px; padding: 10px 0; background: #1b1b1b; border: 1px solid rgba(255, 255, 255, .12); box-shadow: 0 14px 38px rgba(0, 0, 0, .35); }
    #tt-header .site-nav-dropdown a { display: block; padding: 10px 18px; color: #e7e7e7; font-size: 13px; line-height: 1.4; text-decoration: none; white-space: nowrap; }
    #tt-header .site-nav-dropdown a:hover, #tt-header .site-nav-dropdown a[aria-current="page"] { color: #f2769f; background: rgba(255, 255, 255, .05); }
    #tt-header #tt-ol-menu-toggle-btn-wrap { display: none; }
}

/* Contact section on the homepage. */
.home-contact-section { padding: clamp(92px, 8vw, 155px) 0 clamp(96px, 8vw, 160px); background: #171717; }
.home-contact-section .tt-section-inner.tt-wrap { width: 90%; max-width: none; padding: 0; }
.home-contact-intro { margin: 0 0 38px; color: #b7b7b7; font-family: 'Syne', sans-serif; font-size: clamp(20px, 2vw, 36px); line-height: 1.3; }
.home-contact-title { margin: 0 0 clamp(65px, 6vw, 110px); font-family: 'Syne', sans-serif; font-size: clamp(30px, 5vw, 110px); font-weight: 600; line-height: 1.15; letter-spacing: -.045em; }
.home-contact-title a { display: inline-flex; align-items: baseline; gap: .25em; max-width: 100%; color: #fff; }
.home-contact-title a:hover { color: #f2769f; }
.home-contact-title span { font-family: 'Poppins', sans-serif; font-weight: 300; }
.home-contact-details { margin-bottom: 55px; }
.home-contact-details p { display: flex; align-items: baseline; gap: 22px; margin: 0 0 16px; font-size: clamp(19px, 1.8vw, 31px); line-height: 1.5; }
.home-contact-details i { width: 30px; flex: 0 0 30px; font-size: .8em; }
.home-contact-details a { opacity: 1; font-style: normal; border-bottom: 0; }
.home-contact-details a:hover { color: #f2769f; }
.home-contact-follow h3 { margin: 0 0 24px; font-family: 'Syne', sans-serif; font-size: clamp(23px, 2vw, 32px); font-weight: 600; }
.home-contact-follow ul { display: flex; gap: 42px; align-items: center; margin: 0; padding: 0; list-style: none; }
.home-contact-follow a { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; color: #fff; font-size: 23px; }
.home-contact-follow a:hover { color: #f2769f; }
.home-contact-section a:focus-visible { outline: 2px solid #f2769f; outline-offset: 5px; }
@media (max-width: 700px) {
    .home-contact-section { padding: 88px 0 95px; }
    .home-contact-intro { margin-bottom: 28px; }
    .home-contact-title { margin-bottom: 55px; font-size: clamp(19px, 5.35vw, 36px); letter-spacing: -.04em; }
    .home-contact-title a { gap: .15em; }
    .home-contact-details { margin-bottom: 42px; }
    .home-contact-details p { gap: 12px; }
    .home-contact-details i { width: 20px; flex-basis: 20px; }
    .home-contact-follow ul { gap: 28px; }
}

/* Keep gallery captions clear of native video controls and seek gestures. */
.lg-outer .lg-sub-html { pointer-events: none; }
.lg-outer .lg-sub-html a { pointer-events: auto; }
.lg-outer:has(video.lg-video-object) .lg-sub-html { bottom: 64px; }

/* Image-led homepage, inspired by editorial media portfolios. */
@media (min-width: 1025px) {
    #tt-header.tt-header-fixed { background: transparent; border-bottom: 0; backdrop-filter: none; -webkit-backdrop-filter: none; }
    #tt-header .tt-header-inner { width: min(1160px, calc(100% - 48px)); min-height: 64px; margin: 18px auto 0; padding: 0 26px; border: 1px solid rgba(255,255,255,.14); border-radius: 100px; background: rgba(16,16,16,.82); box-shadow: 0 12px 44px rgba(0,0,0,.26); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); }
}
#page-header.home-showcase-hero { display: flex; align-items: center; min-height: min(850px, 100svh); background: #090909; isolation: isolate; }
.home-showcase-hero .home-hero-strip { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(5, 1fr); overflow: hidden; z-index: -2; }
.home-showcase-hero .home-hero-strip > div { min-width: 0; overflow: hidden; border-right: 2px solid rgba(0,0,0,.16); }
.home-showcase-hero .home-hero-strip img { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(.84) brightness(.72); }
.home-showcase-hero .home-hero-strip > div:nth-child(1) img { object-position: 48% center; }
.home-showcase-hero .home-hero-strip > div:nth-child(2) img { object-position: 72% center; }
.home-showcase-hero .home-hero-strip > div:nth-child(3) img { object-position: center; }
.home-showcase-hero .home-hero-strip > div:nth-child(4) img { object-position: center; }
.home-showcase-hero .home-hero-strip > div:nth-child(5) img { object-position: center; }
#page-header.home-showcase-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(0,0,0,.50), rgba(0,0,0,.17) 34%, rgba(0,0,0,.58) 78%, #090909 100%), linear-gradient(90deg, rgba(0,0,0,.35), transparent 25%, transparent 75%, rgba(0,0,0,.35)); pointer-events: none; }
#page-header.home-showcase-hero .page-header-inner { width: 100%; max-width: 1200px; padding: 170px 24px 125px; text-align: center; }
#page-header.home-showcase-hero .ph-caption-title { margin: 0 auto; font-family: 'Syne', sans-serif; font-size: clamp(54px, 6.9vw, 106px); line-height: 1.02; letter-spacing: -.055em; text-shadow: 0 3px 30px rgba(0,0,0,.36); }
#page-header.home-showcase-hero .ph-caption-title em { color: #ff90ad; font-style: normal; }
.home-hero-eyebrow { margin: 0 0 28px; color: #f9f3f5; font-size: clamp(11px, 1vw, 14px); font-weight: 600; letter-spacing: .17em; text-transform: uppercase; text-shadow: 0 2px 12px rgba(0,0,0,.65); }
.home-hero-eyebrow span { padding: 0 12px; color: #ff90ad; }
.home-hero-intro { margin: 28px auto 0; max-width: 680px; color: #f0e9e9; font-size: clamp(15px, 1.25vw, 19px); line-height: 1.55; text-shadow: 0 2px 12px rgba(0,0,0,.65); }
.home-hero-actions { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 14px; margin-top: 32px; }
.home-hero-actions a { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 54px; padding: 0 25px; border-radius: 100px; font-size: 14px; font-weight: 600; text-decoration: none; transition: background .2s ease, transform .2s ease, color .2s ease; }
.home-hero-actions a:hover { transform: translateY(-3px); }
.home-hero-actions a:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.home-hero-primary { color: #101010; background: #ff90ad; }
.home-hero-primary:hover { color: #101010; background: #ffb3c7; }
.home-hero-secondary { color: #fff; background: rgba(13,13,13,.4); border: 1px solid rgba(255,255,255,.65); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.home-hero-secondary:hover { color: #fff; background: rgba(255,255,255,.18); }
@media (max-width: 700px) {
    #page-header.home-showcase-hero { min-height: 760px; min-height: 100svh; }
    .home-showcase-hero .home-hero-strip { grid-template-columns: repeat(3, 1fr); }
    .home-showcase-hero .home-hero-strip > div:nth-child(4), .home-showcase-hero .home-hero-strip > div:nth-child(5) { display: none; }
    #page-header.home-showcase-hero .page-header-inner { padding: 145px 20px 95px; }
    #page-header.home-showcase-hero .ph-caption-title { font-size: clamp(45px, 10.3vw, 72px); }
    .home-hero-eyebrow { font-size: 10px; letter-spacing: .09em; margin-bottom: 24px; }
    .home-hero-eyebrow span { padding: 0 5px; }
    .home-hero-intro { font-size: 15px; }
    .home-hero-actions { gap: 10px; }
    .home-hero-actions a { width: min(100%, 285px); min-height: 50px; }
}

/* Direct contact routes on the homepage and About page. */
@media (min-width: 1025px) {
    #tt-header .site-desktop-nav > a:last-child { min-height: 38px; padding: 8px 18px; border-radius: 100px; color: #171717; background: #ff90ad; font-weight: 600; }
    #tt-header .site-desktop-nav > a:last-child:hover { color: #171717; background: #ffb4c8; }
}
.direct-contact-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 0 0 58px; }
.direct-contact-link { display: flex; align-items: center; min-width: 0; min-height: 98px; padding: 20px; gap: 16px; border: 1px solid rgba(255,255,255,.2); border-radius: 18px; background: rgba(255,255,255,.035); color: #fff; text-decoration: none; transition: border-color .2s ease, background .2s ease, transform .2s ease; }
.direct-contact-link:hover { color: #fff; border-color: #ff90ad; background: rgba(255,144,173,.10); transform: translateY(-3px); }
.direct-contact-link:focus-visible { outline: 2px solid #ff90ad; outline-offset: 4px; }
.direct-contact-icon { flex: 0 0 42px; display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%; background: rgba(255,144,173,.13); color: #ff90ad; font-size: 21px; }
.direct-contact-link strong, .direct-contact-link small { display: block; }
.direct-contact-link strong { font-family: 'Syne', sans-serif; font-size: 18px; font-weight: 600; line-height: 1.3; }
.direct-contact-link small { margin-top: 4px; color: #bdbdbd; font-size: 12px; line-height: 1.4; overflow-wrap: anywhere; }
.direct-contact-arrow { flex: 0 0 auto; margin-left: auto; align-self: flex-start; color: #ff90ad; font-size: 18px; line-height: 1; }
.about-connect-section { padding: 55px 0 115px; }
.about-connect-section .tt-section-inner { max-width: 1100px; }
.about-connect-eyebrow { margin: 0 0 18px; color: #ff90ad; font-size: 13px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.about-connect-section h2 { max-width: 850px; margin: 0 0 18px; font-family: 'Syne', sans-serif; font-size: clamp(42px, 5.3vw, 74px); line-height: 1.06; letter-spacing: -.04em; }
.about-connect-intro { max-width: 670px; margin: 0 0 36px; color: #bdbdbd; font-size: clamp(16px, 1.6vw, 20px); line-height: 1.5; }
.about-connect-email { display: inline-flex; gap: 8px; color: #fff; border-bottom: 1px solid #ff90ad; font-size: 16px; text-decoration: none; }
.about-connect-email:hover { color: #ff90ad; }
.about-connect-email:focus-visible { outline: 2px solid #ff90ad; outline-offset: 4px; }
@media (max-width: 900px) { .direct-contact-links { grid-template-columns: 1fr; gap: 10px; } .direct-contact-link { min-height: 80px; } }
@media (max-width: 700px) { .home-contact-section .direct-contact-links { margin-bottom: 42px; } .about-connect-section { padding: 30px 0 85px; } .about-connect-section h2 { font-size: clamp(38px, 9vw, 54px); } }

#about-connect, #about-connect-title { scroll-margin-top: 115px; }

/* Contact platforms now have full cards; remove the tiny duplicate footer icons. */
#tt-footer .footer-social { display: none; }
@media (max-width: 900px) and (min-width: 601px) { .direct-contact-links { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Portfolio landing page: editorial collection index. */
#portfolio-collections { scroll-margin-top: 100px; }
.portfolio-landing-hero { position: relative; display: flex; align-items: center; min-height: min(760px, 100svh); overflow: hidden; isolation: isolate; background: #101010; }
.portfolio-hero-image { position: absolute; inset: 0 0 0 43%; z-index: -2; }
.portfolio-hero-image img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.portfolio-landing-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, #101010 0%, #101010 28%, rgba(16,16,16,.88) 47%, rgba(16,16,16,.13) 83%), linear-gradient(0deg, #101010 0%, transparent 34%); pointer-events: none; }
.portfolio-hero-content { width: min(1300px, 100%); margin: auto; padding: 165px 5% 115px; }
.portfolio-eyebrow { margin: 0 0 24px; color: #ff90ad; font-size: 12px; font-weight: 600; line-height: 1.4; letter-spacing: .17em; text-transform: uppercase; }
.portfolio-hero-content h1 { max-width: 720px; margin: 0; color: #fff; font-family: 'Syne', sans-serif; font-size: clamp(60px, 7vw, 112px); font-weight: 600; line-height: 1.02; letter-spacing: -.06em; }
.portfolio-hero-content h1 em { color: #ff90ad; font-style: normal; }
.portfolio-hero-content > p:not(.portfolio-eyebrow) { max-width: 570px; margin: 26px 0 0; color: #e2dddd; font-size: clamp(16px, 1.5vw, 20px); line-height: 1.55; }
.portfolio-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.portfolio-hero-actions a { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 52px; padding: 0 23px; border-radius: 100px; font-size: 14px; font-weight: 600; text-decoration: none; transition: background .2s ease, transform .2s ease; }
.portfolio-hero-actions a:hover { transform: translateY(-3px); }
.portfolio-hero-actions a:focus-visible { outline: 2px solid #ff90ad; outline-offset: 4px; }
.portfolio-action-primary { background: #ff90ad; color: #111; }
.portfolio-action-primary:hover { background: #ffb4c8; color: #111; }
.portfolio-action-secondary { border: 1px solid rgba(255,255,255,.65); background: rgba(0,0,0,.28); color: #fff; }
.portfolio-action-secondary:hover { background: rgba(255,255,255,.15); color: #fff; }
.portfolio-collections { width: min(1380px, 100%); margin: 0 auto; padding: 105px 5% 125px; }
.portfolio-collections-heading { display: flex; align-items: end; flex-wrap: wrap; gap: 12px 45px; margin-bottom: 45px; }
.portfolio-collections-heading .portfolio-eyebrow { flex: 0 0 100%; margin: 0; }
.portfolio-collections-heading h2 { margin: 0; color: #fff; font-family: 'Syne', sans-serif; font-size: clamp(38px, 5vw, 68px); font-weight: 600; line-height: 1.08; letter-spacing: -.05em; }
.portfolio-collections-heading > p:last-child { margin: 0 0 7px; color: #aaa; font-size: 16px; line-height: 1.5; }
.portfolio-collection-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.portfolio-collection-card { position: relative; display: block; min-width: 0; aspect-ratio: 1.28; overflow: hidden; border-radius: 12px; background: #292929; color: #fff; text-decoration: none; isolation: isolate; }
.portfolio-collection-card--featured { grid-column: 1 / -1; aspect-ratio: 2.25; }
.portfolio-collection-card img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.portfolio-collection-card:hover img { transform: scale(1.035); }
.portfolio-collection-card::after { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(180deg, rgba(0,0,0,.45), transparent 32%, rgba(0,0,0,.70) 100%); pointer-events: none; }
.portfolio-card-index, .portfolio-card-copy, .portfolio-card-arrow { position: absolute; z-index: 1; }
.portfolio-card-index { top: 25px; left: 28px; color: #fff; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.portfolio-card-copy { left: 28px; right: 75px; bottom: 28px; }
.portfolio-card-copy strong, .portfolio-card-copy small { display: block; }
.portfolio-card-copy strong { color: #fff; font-family: 'Syne', sans-serif; font-size: clamp(27px, 3vw, 51px); font-weight: 600; line-height: 1.1; letter-spacing: -.04em; }
.portfolio-card-copy small { margin-top: 8px; color: #e2e2e2; font-size: 14px; line-height: 1.45; }
.portfolio-card-arrow { right: 28px; bottom: 27px; width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.65); border-radius: 50%; color: #fff; font-size: 25px; transition: background .2s ease, color .2s ease; }
.portfolio-collection-card:hover .portfolio-card-arrow { background: #ff90ad; border-color: #ff90ad; color: #111; }
.portfolio-collection-card:focus-visible { outline: 3px solid #ff90ad; outline-offset: 5px; }
.portfolio-contact-cta { padding: 110px 5% 130px; text-align: center; background: #1a1a1a; }
.portfolio-contact-cta h2 { margin: 0; color: #fff; font-family: 'Syne', sans-serif; font-size: clamp(42px, 5.5vw, 78px); letter-spacing: -.05em; }
.portfolio-contact-cta > p:not(.portfolio-eyebrow) { margin: 18px auto 0; color: #bbb; font-size: 18px; }
.portfolio-contact-cta .portfolio-hero-actions { justify-content: center; }
@media (max-width: 700px) {
    .portfolio-landing-hero { min-height: 720px; min-height: 100svh; align-items: end; }
    .portfolio-hero-image { inset: 0; }
    .portfolio-hero-image img { object-position: 42% center; }
    .portfolio-landing-hero::after { background: linear-gradient(0deg, #101010 0%, rgba(16,16,16,.93) 17%, rgba(16,16,16,.2) 75%, rgba(16,16,16,.3)); }
    .portfolio-hero-content { padding: 135px 6% 65px; }
    .portfolio-hero-content h1 { font-size: clamp(48px, 11vw, 70px); }
    .portfolio-hero-content > p:not(.portfolio-eyebrow) { font-size: 16px; }
    .portfolio-hero-actions a { width: 100%; }
    .portfolio-collections { padding: 75px 5% 90px; }
    .portfolio-collections-heading { margin-bottom: 30px; }
    .portfolio-collection-grid { grid-template-columns: 1fr; gap: 14px; }
    .portfolio-collection-card, .portfolio-collection-card--featured { grid-column: auto; aspect-ratio: .95; }
    .portfolio-card-index { top: 19px; left: 19px; }
    .portfolio-card-copy { left: 19px; right: 70px; bottom: 19px; }
    .portfolio-card-copy strong { font-size: clamp(27px, 7vw, 39px); }
    .portfolio-card-arrow { right: 19px; bottom: 19px; width: 38px; height: 38px; }
    .portfolio-contact-cta { padding: 90px 6%; }
}
@media (prefers-reduced-motion: reduce) { .portfolio-collection-card img, .portfolio-hero-actions a { transition: none; } .portfolio-collection-card:hover img, .portfolio-hero-actions a:hover { transform: none; } }

/* About page: portrait-led introduction and behind-the-scenes gallery. */
#about-story { scroll-margin-top: 95px; }
.about-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .92fr); min-height: min(840px, 100svh); padding-top: 76px; background: #111; }
.about-hero-copy { align-self: center; justify-self: end; width: min(660px, 100%); padding: 80px 7% 95px max(5vw, 28px); }
.about-kicker { margin: 0 0 22px; color: #ff90ad; font-size: 12px; font-weight: 600; line-height: 1.5; letter-spacing: .18em; text-transform: uppercase; }
.about-hero h1 { margin: 0; color: #fff; font-family: 'Syne', sans-serif; font-size: clamp(64px, 7vw, 112px); font-weight: 600; line-height: 1; letter-spacing: -.065em; }
.about-hero h1 em, .about-story-intro h2 em { color: #ff90ad; font-style: normal; }
.about-hero-copy > p:not(.about-kicker) { max-width: 570px; margin: 30px 0 0; color: #dedede; font-size: clamp(18px, 1.55vw, 23px); line-height: 1.55; }
.about-hero-photo { position: relative; min-height: 590px; overflow: hidden; background: #252525; }
.about-hero-photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 37%; }
.about-story { width: min(1380px, 100%); margin: 0 auto; padding: 125px 5% 115px; }
.about-story-intro { max-width: 950px; margin-bottom: 62px; }
.about-story-intro h2 { margin: 0; color: #fff; font-family: 'Syne', sans-serif; font-size: clamp(44px, 6vw, 82px); font-weight: 600; line-height: 1.08; letter-spacing: -.055em; }
.about-story-intro > p:last-child { max-width: 770px; margin: 30px 0 0; color: #bcbcbc; font-size: clamp(17px, 1.7vw, 21px); line-height: 1.65; }
.about-process-gallery { display: flex; width: min(1080px, 100%); height: clamp(350px, 38vw, 480px); margin: 0 auto; gap: 13px; }
.about-gallery-panel { flex: 1 1 0%; min-width: 0; padding: 0; overflow: hidden; border: 0; border-radius: 28px; background: #252525; cursor: pointer; transition: flex-grow .5s cubic-bezier(.2,.75,.2,1); }
.about-gallery-panel.is-active { flex-grow: 4.2; }
.about-gallery-panel img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.about-gallery-panel:first-child img { object-position: 57% center; }
.about-gallery-panel:focus-visible { outline: 3px solid #ff90ad; outline-offset: 4px; }
@media (max-width: 800px) {
    .about-hero { display: flex; flex-direction: column-reverse; min-height: 0; padding-top: 68px; }
    .about-hero-photo { height: min(70vh, 600px); min-height: 350px; }
    .about-hero-copy { align-self: stretch; width: auto; padding: 52px 6% 70px; }
    .about-hero h1 { font-size: clamp(57px, 11vw, 85px); }
    .about-hero-copy > p:not(.about-kicker) { font-size: 18px; }
    .about-story { padding: 90px 6% 65px; }
    .about-story-intro { margin-bottom: 45px; }
    .about-process-gallery { height: clamp(360px, 54vw, 480px); gap: 10px; }
    .about-gallery-panel { border-radius: 18px; }
}
@media (max-width: 600px) {
    .about-hero-photo { height: 55vh; min-height: 300px; }
    .about-hero-copy .portfolio-hero-actions a { width: 100%; }
    .about-story-intro h2 { font-size: clamp(42px, 10.5vw, 60px); }
    .about-process-gallery { flex-direction: column; height: auto; min-height: 0; overflow: visible; gap: 10px; }
    .about-gallery-panel, .about-gallery-panel.is-active { flex: none; width: 100%; border-radius: 18px; }
    .about-gallery-panel { height: 86px; transition: height .4s cubic-bezier(.2,.75,.2,1); }
    .about-gallery-panel.is-active { height: clamp(340px, 112vw, 480px); }
    .about-gallery-panel img { object-position: center 38%; }
}

@media (prefers-reduced-motion: reduce) { .about-gallery-panel { transition: none; } }


/* Homepage work categories: image-led asymmetric grid. */
#home-work { scroll-margin-top: 92px; }
.home-work-section { width: min(1600px, 100%); margin: 0 auto; padding: 105px 4% 125px; }
.home-work-heading { margin: 0 auto 46px; text-align: center; }
.home-work-eyebrow { margin: 0 0 15px; color: #ff90ad; font-size: 12px; font-weight: 600; letter-spacing: .17em; text-transform: uppercase; }
.home-work-heading h2 { margin: 0; color: #fff; font-family: 'Syne', sans-serif; font-size: clamp(41px, 5vw, 72px); font-weight: 600; line-height: 1.1; letter-spacing: -.05em; }
.home-work-heading > p:last-child { margin: 18px 0 0; color: #bdbdbd; font-size: clamp(16px, 1.5vw, 20px); }
.home-work-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: clamp(265px, 24vw, 360px); gap: 17px; }
.home-work-card { position: relative; display: block; min-width: 0; overflow: hidden; border-radius: 26px; background: #282828; color: #fff; isolation: isolate; text-decoration: none; }
.home-work-card--selected { grid-column: span 2; }
.home-work-card--portraits { grid-column: 4; grid-row: 1 / span 2; }
.home-work-card--products { grid-column: span 2; }
.home-work-card img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.home-work-card--portraits img { object-position: center 30%; }
.home-work-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.58), rgba(0,0,0,.02) 38%, rgba(0,0,0,.22)); pointer-events: none; }
.home-work-card > span:first-of-type { position: absolute; z-index: 1; top: 24px; left: 25px; right: 55px; color: #fff; font-family: 'Syne', sans-serif; font-size: clamp(20px, 1.9vw, 29px); font-weight: 600; line-height: 1.15; letter-spacing: -.025em; }
.home-work-arrow { position: absolute; z-index: 1; right: 22px; bottom: 19px; color: #fff; font-size: 25px; opacity: .85; transition: transform .2s ease; }
.home-work-card:hover img { transform: scale(1.035); }
.home-work-card:hover .home-work-arrow { transform: translate(3px, -3px); }
.home-work-card:focus-visible, .home-work-footer a:focus-visible { outline: 3px solid #ff90ad; outline-offset: 5px; }
.home-work-footer { margin-top: 43px; text-align: center; }
.home-work-footer a { display: inline-flex; align-items: center; gap: 17px; padding-bottom: 9px; border-bottom: 1px solid #ff90ad; color: #fff; font-size: 17px; font-weight: 600; text-decoration: none; }
.home-work-footer a:hover { color: #ff90ad; }
@media (max-width: 900px) {
    .home-work-section { padding: 85px 5% 100px; }
    .home-work-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 300px; gap: 14px; }
    .home-work-card--selected { grid-column: span 2; }
    .home-work-card--portraits { grid-column: auto; grid-row: auto; }
    .home-work-card--products { grid-column: auto; }
}
@media (max-width: 600px) {
    .home-work-section { padding: 75px 5% 90px; }
    .home-work-heading { margin-bottom: 34px; }
    .home-work-heading h2 { font-size: clamp(38px, 10vw, 55px); }
    .home-work-grid { grid-template-columns: 1fr; grid-auto-rows: auto; gap: 13px; }
    .home-work-card, .home-work-card--selected, .home-work-card--portraits, .home-work-card--products { grid-column: auto; grid-row: auto; min-height: 310px; aspect-ratio: 1.12; border-radius: 18px; }
    .home-work-card--portraits { aspect-ratio: .88; }
    .home-work-card > span:first-of-type { top: 20px; left: 20px; right: 50px; font-size: 25px; }
    .home-work-arrow { right: 19px; bottom: 15px; }
    .home-work-footer { margin-top: 34px; }
}
@media (prefers-reduced-motion: reduce) { .home-work-card img, .home-work-arrow { transition: none; } .home-work-card:hover img, .home-work-card:hover .home-work-arrow { transform: none; } }


/* Homepage services: two-column introduction and feature cards. */
#home-services { scroll-margin-top: 95px; }
.home-services-section { padding: 95px 4% 125px; background: #090909; }
.home-services-inner { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.45fr); gap: clamp(45px, 7vw, 125px); width: min(1600px, 100%); margin: 0 auto; }
.home-services-copy { align-self: start; position: sticky; top: 120px; }
.home-services-eyebrow { margin: 0 0 18px; color: #aaa; font-size: 14px; letter-spacing: .06em; }
.home-services-copy h2 { max-width: 560px; margin: 0; color: #fff; font-family: 'Syne', sans-serif; font-size: clamp(46px, 5vw, 73px); font-weight: 600; line-height: 1.08; letter-spacing: -.055em; }
.home-services-copy h2 em { color: #ff90ad; font-style: normal; }
.home-services-copy > p:not(.home-services-eyebrow) { max-width: 470px; margin: 29px 0 35px; color: #bdbdbd; font-size: clamp(17px, 1.5vw, 20px); line-height: 1.6; }
.home-services-cta { display: inline-flex; align-items: center; gap: 19px; min-height: 51px; padding: 0 23px; border-radius: 100px; background: #ff90ad; color: #111; font-size: 14px; font-weight: 600; text-decoration: none; transition: background .2s ease, transform .2s ease; }
.home-services-cta:hover { background: #ffb4c8; color: #111; transform: translateY(-2px); }
.home-services-list { display: grid; gap: 18px; }
.home-service-card { min-width: 0; padding: clamp(25px, 3vw, 39px); border: 1px solid rgba(255,255,255,.24); border-radius: 27px; background: linear-gradient(135deg, #202020 0%, #111 43%, #0a0a0a 100%); box-shadow: inset 0 1px rgba(255,255,255,.2); transition: border-color .2s ease, transform .2s ease; }
.home-service-card:hover { border-color: rgba(255,144,173,.65); transform: translateY(-2px); }
.home-service-card h3 { margin: 0; color: #fff; font-family: 'Syne', sans-serif; font-size: clamp(25px, 2.25vw, 34px); font-weight: 600; line-height: 1.18; letter-spacing: -.035em; }
.home-service-card p { max-width: 650px; margin: 14px 0 25px; color: #b9b9b9; font-size: 16px; line-height: 1.55; }
.home-service-card a { display: inline-flex; align-items: center; gap: 16px; min-height: 42px; padding: 0 7px 0 17px; border: 1px solid rgba(255,255,255,.3); border-radius: 100px; color: #fff; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; transition: border-color .2s ease, background .2s ease; }
.home-service-card a span { display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; font-size: 15px; line-height: 1; }
.home-service-card a:hover { border-color: #ff90ad; background: rgba(255,144,173,.11); color: #fff; }
.home-service-card a:focus-visible, .home-services-cta:focus-visible { outline: 3px solid #ff90ad; outline-offset: 4px; }
@media (max-width: 900px) {
    .home-services-section { padding: 80px 5% 100px; }
    .home-services-inner { grid-template-columns: 1fr; gap: 43px; }
    .home-services-copy { position: static; }
    .home-services-copy h2 { max-width: 750px; }
}
@media (max-width: 600px) {
    .home-services-section { padding: 72px 5% 90px; }
    .home-services-copy h2 { font-size: clamp(42px, 10.5vw, 58px); }
    .home-services-copy > p:not(.home-services-eyebrow) { margin: 22px 0 28px; font-size: 17px; }
    .home-services-list { gap: 13px; }
    .home-service-card { padding: 25px 22px; border-radius: 21px; }
    .home-service-card h3 { font-size: 26px; }
    .home-service-card p { margin: 13px 0 23px; font-size: 15px; }
}
@media (prefers-reduced-motion: reduce) { .home-services-cta, .home-service-card, .home-service-card a { transition: none; } .home-services-cta:hover, .home-service-card:hover { transform: none; } }


/* Selected Work index: rounded image cards consistent with the homepage. */
.selected-work-index { width: min(1500px, 100%); margin: 0 auto; padding: 35px 5% 125px; }
.selected-work-index-heading { margin-bottom: 42px; }
.selected-work-index-heading p { margin: 0 0 12px; color: #ff90ad; font-size: 12px; font-weight: 600; letter-spacing: .17em; text-transform: uppercase; }
.selected-work-index-heading h2 { margin: 0; color: #fff; font-family: 'Syne', sans-serif; font-size: clamp(42px, 5.3vw, 72px); font-weight: 600; line-height: 1.07; letter-spacing: -.05em; }
.selected-work-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.selected-work-card { position: relative; display: block; min-width: 0; aspect-ratio: 1.31; overflow: hidden; border-radius: 24px; background: #252525; color: #fff; isolation: isolate; text-decoration: none; }
.selected-work-card--featured { grid-column: 1 / -1; aspect-ratio: 2.25; }
.selected-work-card img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.selected-work-card:hover img { transform: scale(1.035); }
.selected-work-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.38), transparent 45%, rgba(0,0,0,.72)); pointer-events: none; }
.selected-work-card-copy { position: absolute; z-index: 1; left: 27px; right: 80px; bottom: 27px; }
.selected-work-card-copy strong, .selected-work-card-copy small { display: block; }
.selected-work-card-copy strong { color: #fff; font-family: 'Syne', sans-serif; font-size: clamp(28px, 3vw, 48px); font-weight: 600; line-height: 1.08; letter-spacing: -.04em; }
.selected-work-card-copy small { margin-top: 7px; color: #e0e0e0; font-size: 14px; line-height: 1.35; }
.selected-work-card-arrow { position: absolute; z-index: 1; right: 27px; bottom: 26px; display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid rgba(255,255,255,.7); border-radius: 50%; color: #fff; font-size: 24px; transition: background .2s ease, color .2s ease; }
.selected-work-card:hover .selected-work-card-arrow { background: #ff90ad; border-color: #ff90ad; color: #111; }
.selected-work-card:focus-visible { outline: 3px solid #ff90ad; outline-offset: 5px; }
@media (max-width: 700px) {
    .selected-work-index { padding: 20px 5% 90px; }
    .selected-work-index-heading { margin-bottom: 28px; }
    .selected-work-card-grid { grid-template-columns: 1fr; gap: 14px; }
    .selected-work-card, .selected-work-card--featured { grid-column: auto; aspect-ratio: 1.03; border-radius: 18px; }
    .selected-work-card-copy { left: 20px; right: 70px; bottom: 20px; }
    .selected-work-card-copy strong { font-size: clamp(28px, 7vw, 38px); }
    .selected-work-card-arrow { right: 19px; bottom: 18px; width: 40px; height: 40px; }
}
@media (prefers-reduced-motion: reduce) { .selected-work-card img, .selected-work-card-arrow { transition: none; } .selected-work-card:hover img { transform: none; } }
