/* Shared portfolio layout. Existing type, colors and ACF modules remain in use. */
:root { --zac-text-mid: #aaa79f; }
.zac-site-header { background: linear-gradient(#050507ed, #050507b8 70%, transparent); }
.zac-brand-pill__logo { max-height: 56px; max-width: 180px; }
.zac-brand-pill__halo { animation: none; opacity: .4; }
.zac-primary-nav { margin-left: auto; display: flex; gap: clamp(18px, 3vw, 44px); align-items: center; }
.zac-primary-nav a { font: 14px var(--zac-font-mono); text-transform: uppercase; letter-spacing: .08em; padding: 12px 0; }
.zac-primary-nav a:hover, .zac-primary-nav a:focus-visible { color: var(--zac-neon-cold); }
:where(a, button, input):focus-visible { outline: 2px solid var(--zac-neon-cold); outline-offset: 5px; }
.zac-skip-link { position: fixed; top: 8px; left: 8px; z-index: 10000; padding: 12px 20px; background: var(--zac-text); color: var(--zac-bg); transform: translateY(-180%); }
.zac-skip-link:focus { transform: none; }
[id] { scroll-margin-top: 120px; }
.zac-index-page { padding-top: 150px; }
.zac-page-intro, .zac-index-page > .zac-section, .zac-role-page > .zac-section { width: 100%; max-width: 1440px; margin-inline: auto; padding: 48px clamp(22px, 5vw, 80px); }
.zac-page-intro h1 { font-family: var(--zac-font-display); font-size: clamp(64px, 10vw, 160px); line-height: .95; margin: 24px 0; overflow-wrap: anywhere; }
.zac-prose { font-size: clamp(20px, 2vw, 27px); line-height: 1.55; }
.zac-prose > * { max-width: 850px; }
.zac-prose a, .zac-founder a { color: var(--zac-neon-cold); text-decoration: underline; text-underline-offset: .18em; }
.zac-founder { font-size: clamp(21px, 2.3vw, 30px); line-height: 1.4; padding-top: 22px; border-top: 1px solid #ffffff25; }
.zac-project-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(28px, 4vw, 64px); }
.zac-project-card { min-width: 0; }
.zac-project-card > a { display: block; height: 100%; }
.zac-project-card__image { aspect-ratio: 16 / 10; overflow: hidden; background: var(--zac-bg-3); margin-bottom: 24px; }
.zac-project-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.zac-project-card a:hover img { transform: scale(1.025); }
.zac-project-card h3 { font: clamp(32px, 4vw, 64px)/1 var(--zac-font-display); margin: 12px 0; }
.zac-project-card p { color: var(--zac-text-mid); font-size: 20px; max-width: 55ch; }
.zac-project-card .section-rule, .zac-project-card__roles { font: 13px/1.6 var(--zac-font-mono); text-transform: uppercase; }
.zac-project-card__cta { display: inline-block; color: var(--zac-neon-cold); font: 13px var(--zac-font-mono); margin-top: 12px; }
.zac-latest-film { display: grid; grid-template-columns: 1fr 1.35fr; align-items: center; gap: clamp(28px, 5vw, 80px); padding: clamp(48px, 7vw, 110px) clamp(22px, 5vw, 80px); border-bottom: 1px solid #ffffff20; }
.zac-latest-film h2 { font: clamp(56px, 7vw, 110px)/.95 var(--zac-font-display); margin: 24px 0; }
.zac-latest-film__copy > p:not(.section-rule) { color: var(--zac-text-mid); font-size: 23px; }
.zac-latest-film__image { display: block; aspect-ratio: 16/10; }
.zac-latest-film__image img { width: 100%; height: 100%; object-fit: cover; }
.zac-page-actions { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 28px; }
.zac-role-links { border-top: 1px solid #ffffff20; }
.zac-role-links h2 { font: clamp(36px, 5vw, 60px) var(--zac-font-display); }
.zac-role-links__list { display: flex; flex-wrap: wrap; gap: 12px 28px; }
.zac-role-links__list a { padding-block: 12px; border-bottom: 1px solid #ffffff30; font: 15px var(--zac-font-mono); }
.zac-role-links__list span { margin-left: 12px; color: var(--zac-neon-cold); }
.zac-wipe-control { position: absolute; bottom: 12px; left: 5%; width: 90%; z-index: 5; accent-color: var(--zac-neon-cold); cursor: ew-resize; }
.zac-vfx-page .reel-zone { padding-bottom: 60px; }
.zac-vfx-page .reel-video { width: 100%; display: block; }
.zac-vfx-page .reel-label { pointer-events: none; }
.zac-portfolio-media-cell[data-zac-lightbox-src] { cursor: zoom-in; }
.zac-portfolio-lightbox__close, .zac-portfolio-lightbox__nav { min-width: 44px; min-height: 44px; }
@media (max-width: 960px) {
 .zac-latest-film { grid-template-columns: 1fr; }
 .zac-latest-film__image { order: -1; }
}
@media (max-width: 640px) {
 .zac-primary-nav { display: none; }
 .zac-project-grid { grid-template-columns: 1fr; }
 .zac-index-page { padding-top: 110px; }
 .zac-page-intro, .zac-index-page > .zac-section, .zac-role-page > .zac-section { padding: 32px 22px; }
 .zac-role-links__list { flex-direction: column; }
 .zac-page-actions > a { width: 100%; text-align: center; }
 .zac-portfolio-media-grid { grid-auto-rows: minmax(220px, auto) !important; }
}
/* Navigation remains available when JavaScript is disabled. */
html:not(.zac-js) .zac-primary-nav { display: flex; flex-wrap: wrap; }
html:not(.zac-js) .zac-menu-toggle { display: none; }
@media (prefers-reduced-motion: reduce) {
 .zac-project-card a:hover img { transform: none; }
}


.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; white-space: nowrap; }
.zac-section { padding: clamp(48px, 7vw, 96px) clamp(22px, 4vw, 60px); }

@media (max-width: 640px) {
 .zac-about__portrait img { max-height: 48vh; aspect-ratio: 4/3; object-position: center 25%; }
 .zac-about { padding-top: 56px; padding-bottom: 56px; }
}
