/* Keep WordPress output inside the original layout contract. */
.masthead-slides .masthead-image[data-slide]{object-position:var(--fc-desktop-position,50% 46%)}
.masthead-shade{opacity:var(--fc-overlay-strength,1);transition:opacity 1.8s ease-in-out}
@media(prefers-reduced-motion:reduce){.masthead-shade{transition:none}}
.kicker{text-transform:uppercase}
.contact-intro>p{font:inherit;color:inherit}
.prose .wp-block-heading{font-weight:400;line-height:1.3}
body.admin-bar.is-home .header{top:32px}
@media(max-width:600px){.masthead-slides .masthead-image[data-slide]{object-position:var(--fc-mobile-position,50% 50%)}}
@media(max-width:782px){body.admin-bar.is-home .header{top:46px}}
.no-js .toolbar,.no-js .mobile-menu-toggle{display:none}
@media(max-width:600px){.no-js .header{flex-wrap:wrap}.no-js .header .desktop-navigation{display:flex;max-width:none;flex-wrap:wrap}.no-js .is-home .header{position:relative;background:var(--paper);color:var(--ink)}.no-js .is-home nav a,.no-js .is-home .identity>.header-home-role{color:var(--ink)}}

/* Retain the original slideshow spacing and gently emphasise the work link. */
.masthead-explore{min-height:44px}
.masthead-explore span{display:inline-block;animation:fc-explore-pulse 3.6s ease-in-out infinite}
.masthead-explore:hover span,.masthead-explore:focus-visible span{animation-play-state:paused;opacity:1}
@keyframes fc-explore-pulse{0%,65%,100%{transform:translateY(0);opacity:1}32%{transform:translateY(4px);opacity:.6}}
@media(prefers-reduced-motion:reduce){.masthead-explore span{animation:none}}

/* Always-visible captions with subtle hover and entrance effects. */
.film{position:relative;isolation:isolate}
.film-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,8,10,.28),rgba(8,8,10,.06) 50%,transparent 80%);opacity:0;transition:opacity .45s ease;pointer-events:none}
.film .film-visual img{transition:transform .6s cubic-bezier(.2,.65,.3,1),filter .6s ease}
.film .film-info>span{display:inline-block;opacity:.7;transition:transform .4s ease,opacity .4s ease}
@media(hover:hover) and (pointer:fine){
.film:hover .film-visual img,.film:focus-visible .film-visual img{transform:scale(1.025);filter:brightness(.98)}
.film:hover .film-visual::after,.film:focus-visible .film-visual::after{opacity:1}
.film:hover .film-info>span,.film:focus-visible .film-info>span{transform:translate(3px,-3px);opacity:1}
}
@media(hover:none),(pointer:coarse){.film:hover .film-visual img{transform:none;filter:none}}
.film.is-awaiting-reveal{opacity:0;transform:translateY(14px)}
.film.is-revealed{animation:fc-card-reveal .55s cubic-bezier(.2,.65,.3,1) both}
@keyframes fc-card-reveal{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.film.is-awaiting-reveal{opacity:1;transform:none}.film.is-revealed{animation:none}.film .film-visual img,.film .film-info>span,.film-visual::after{transition:none}.film:hover .film-visual img,.film:focus-visible .film-visual img,.film:hover .film-info>span,.film:focus-visible .film-info>span{transform:none}}

.gallery-summary{font-size:.875rem;color:var(--grey);margin:-8px 0 22px;line-height:1.5;min-height:1.5em}

/* Deliberate reveal timings, without delaying image downloads. */
.film.is-awaiting-reveal{transform:translateY(20px)}
.film.is-revealed{animation-duration:.9s}
@keyframes fc-card-reveal{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:601px){.film.is-revealed:nth-child(even){animation-delay:80ms}}
.film.is-revealed:focus-within{animation-delay:0s}
@media(prefers-reduced-motion:reduce){.film.is-awaiting-reveal{transform:none}.film.is-revealed{animation:none}}

/* Neutral mobile tap feedback; keyboard focus outlines remain unchanged. */
a,button,input,select,textarea,summary{-webkit-tap-highlight-color:rgba(36,37,35,.12)}

/* Fullscreen slideshow on desktop and mobile, using stable viewport height. */
.masthead{height:100svh;min-height:0;max-height:none}
body.admin-bar .masthead{height:calc(100svh - 32px)}
@media(max-width:782px){body.admin-bar .masthead{height:calc(100svh - 46px)}}

/* Vector link arrows avoid platform-specific font/emoji rendering. */
.fc-arrow-icon{display:inline-block;width:1em;height:1em;vertical-align:-.12em;flex-shrink:0}

/* Keep the header on one row and use the menu before links become cramped. */
.header{flex-wrap:nowrap}
.header .desktop-navigation{flex-wrap:nowrap;max-width:none}
.header .desktop-navigation a{white-space:nowrap}
@media(max-width:1200px){
 body:not(.is-home) .header .identity{display:block}
 body:not(.is-home) .header .identity>.header-standard-role{display:block;max-width:300px;margin-top:8px}
}
@media(max-width:900px){
 .header{align-items:flex-start}
 .header .desktop-navigation{display:none}
 .header .identity{min-width:0;max-width:calc(100% - 80px)}
 .header .mobile-menu-toggle{display:block;background:none;border:0;color:var(--ink);font-size:1rem;padding:2px 0 18px 20px;line-height:24px;align-self:flex-start;min-height:44px;flex-shrink:0;margin-left:auto}
 .is-home .header .mobile-menu-toggle{color:#fff}
 .no-js .header{flex-wrap:wrap}
 .no-js .header .desktop-navigation{display:flex;flex-wrap:wrap}
 .no-js .header .mobile-menu-toggle{display:none}
}

/* The routed content container is focused for accessibility, not an interactive control. */
main[tabindex="-1"]:focus{outline:none}
/* Dialog outlines can otherwise be painted around the entire overlay by Safari. */
#mobile-menu:focus,#artwork-dialog:focus{outline:none}
.masthead .masthead-explore{font-size:1.25rem;gap:20px;border-bottom-width:2px}
.masthead .masthead-explore>span{font-size:1.5rem}
.fc-play-icon{display:block;width:1.25em;height:1.25em;flex-shrink:0}
.descriptor-phrase{white-space:nowrap}
@media(hover:hover) and (pointer:fine){
 .desktop-navigation a{position:relative}
 .desktop-navigation a:not([aria-current="page"])::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .22s ease}
 .desktop-navigation a:hover::after,.desktop-navigation a:focus-visible::after{transform:scaleX(1)}
 .desktop-navigation .fc-arrow-icon{transition:transform .22s ease}
 .desktop-navigation a:hover .fc-arrow-icon{transform:translate(1px,-1px)}
}
@media(prefers-reduced-motion:reduce){.desktop-navigation a::after,.desktop-navigation .fc-arrow-icon{transition:none}.desktop-navigation a:hover .fc-arrow-icon{transform:none}}

/* Fluid portfolio grid: retain generous cards while using wide screens. */
@media(min-width:1100px){
 body:has(#work-page:not([hidden])) main,
 body:has(#work-page:not([hidden])) footer{max-width:1920px}
 .gallery{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));column-gap:24px;row-gap:38px}
}

/* Show the film still when a project has no verified trailer. */
#trailer-area>.film-still{display:block;width:100%;height:100%;object-fit:cover}

/* Quiet release-year metadata below the project title. */
.film-release-year{margin:12px 0 0;font-size:.875rem;line-height:1.5;letter-spacing:.03em;color:var(--grey)}

/* Film credits anchored beneath the title. */
.project-heading{display:block;padding-bottom:26px;border-bottom:1px solid var(--line);margin-bottom:28px}
.project-heading .project-credits{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 0;margin:20px 0 0;color:var(--grey)}
.project-credits>div{display:flex;align-items:baseline;min-width:0;max-width:100%}
.project-credits>div:not([hidden])~div:not([hidden])::before{content:"\00b7";padding:0 16px;color:#aaa99e}
.project-heading .project-credits dd{font-size:.9375rem;line-height:1.6;min-width:0}
@media(max-width:600px){
 .project-heading{padding-bottom:22px;margin-bottom:24px}
 .project-heading .project-credits{flex-direction:column;align-items:flex-start;gap:5px;margin-top:16px}
 .project-credits>div:not([hidden])~div:not([hidden])::before{display:none}
}

/* One header container across the slideshow, Work and inner pages. */
:root{--fc-page-gutter:min(5vw,96px)}
.header,main,footer{padding-inline:var(--fc-page-gutter)}
.header,body.is-home .header{width:100%;max-width:1920px;padding-inline:var(--fc-page-gutter)}
@media(min-width:601px){
 .masthead-copy,.masthead-controls{left:max(var(--fc-page-gutter),calc((100% - 1728px)/2))}
 .masthead-credit{right:max(var(--fc-page-gutter),calc((100% - 1728px)/2))}
}

/* Keep the work invitation at the foot of the slideshow on every screen. */
.masthead .masthead-copy{left:max(var(--fc-page-gutter),calc((100% - 1728px)/2));bottom:calc(1.5rem + env(safe-area-inset-bottom,0px));max-width:calc(100% - 2 * var(--fc-page-gutter));padding:0}
.masthead .masthead-explore{background:#111d;color:#fff;padding:12px 18px;border:0;max-width:100%;line-height:1.4;box-shadow:none;animation:none;transition:background .25s ease,transform .25s ease;white-space:nowrap}
.masthead .masthead-explore:hover,.masthead .masthead-explore:focus-visible{background:#111;transform:translateY(-2px);animation:none;box-shadow:none}
.masthead .masthead-controls{bottom:calc(6.25rem + env(safe-area-inset-bottom,0px))}
.masthead .masthead-explore>span{animation:fc-explore-pulse 3.6s ease-in-out infinite}
@media(max-width:900px){
 .masthead .masthead-credit{left:max(var(--fc-page-gutter),calc((100% - 1728px)/2));right:auto;bottom:calc(10rem + env(safe-area-inset-bottom,0px));max-width:calc(100% - 2 * var(--fc-page-gutter));text-align:left}
}
@media(prefers-reduced-motion:reduce){.masthead .masthead-explore>span{animation:none}.masthead .masthead-explore{animation:none;transition:none}.masthead .masthead-explore:hover,.masthead .masthead-explore:focus-visible{transform:none}}

/* Keep the indicators attached to the changing film credit, at every width. */
.masthead .masthead-explore{font-size:1rem}
.masthead-feature{position:absolute;right:max(var(--fc-page-gutter),calc((100% - 1728px)/2));bottom:calc(1.5rem + env(safe-area-inset-bottom,0px));z-index:1;display:flex;flex-direction:column;align-items:flex-end;gap:8px;max-width:45%}
.masthead .masthead-feature .masthead-controls,.masthead .masthead-feature .masthead-credit{position:static;inset:auto;margin:0;max-width:100%}
.masthead-feature .slide-dot:after{left:10px;right:0}
@media(max-width:900px){
 .masthead-feature{left:max(var(--fc-page-gutter),calc((100% - 1728px)/2));right:auto;bottom:calc(6.5rem + env(safe-area-inset-bottom,0px));align-items:flex-start;max-width:calc(100% - 2 * var(--fc-page-gutter))}
 .masthead-feature .slide-dot:after{left:0;right:10px}
}

/* Preview: place the slideshow indicators directly below the home descriptor. */
.header-brand{min-width:0}
.header-brand>.masthead-controls{display:none}
.is-home .header-brand>.masthead-controls{display:flex;position:static;inset:auto;margin:12px 0 0;padding:0;background:none;width:fit-content}
.header-brand .slide-dot:after{left:0;right:10px}
@media(max-width:900px){.header-brand{max-width:calc(100% - 80px)}.header .header-brand .identity{max-width:none}}

/* Underlines and quiet arrow movement for text links throughout the site. */
:where(.prose a,.text-link,.back,.contact-intro a,.contact-list a,.trailer-caption>a,.trailer-placeholder a,footer>a){text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-size:0% 1px;background-position:0 100%;transition:background-size .25s ease,color .25s ease}
:where(.prose a,.text-link,.back,.contact-intro a,.contact-list a,.trailer-caption>a,.trailer-placeholder a,footer>a):focus-visible{background-size:100% 1px}
:where(.text-link,.back,.contact-list a,.trailer-caption>a,footer>a) .fc-arrow-icon{transition:transform .25s ease}
.project-pagination strong,.artwork-button>span{transition:color .25s ease;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:5px}
.filters button{transition:color .22s ease;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:7px}
.filters button[aria-pressed=true]{text-decoration-color:currentColor}
.gallery{align-content:start}
@media(hover:hover) and (pointer:fine){
 :where(.prose a,.text-link,.back,.contact-intro a,.contact-list a,.trailer-caption>a,.trailer-placeholder a,footer>a):hover{background-size:100% 1px}
 :where(.text-link,.contact-list a,.trailer-caption>a,footer>a):hover .fc-arrow-icon{transform:translate(2px,-2px)}
 .back:hover .fc-arrow-icon{transform:translateX(-3px)}
 .project-pagination a:hover strong,.artwork-button:hover>span{color:var(--ink);text-decoration-color:currentColor}
 .filters button:hover{text-decoration-color:currentColor;color:var(--ink)}
}
.project-pagination a:focus-visible strong,.artwork-button:focus-visible>span{text-decoration-color:currentColor}
@media(prefers-reduced-motion:reduce){
 :where(.prose a,.text-link,.back,.contact-intro a,.contact-list a,.trailer-caption>a,.trailer-placeholder a,footer>a),:where(.text-link,.back,.contact-list a,.trailer-caption>a,footer>a) .fc-arrow-icon,.project-pagination strong,.artwork-button>span,.filters button{transition:none}
 :where(.text-link,.back,.contact-list a,.trailer-caption>a,footer>a):hover .fc-arrow-icon{transform:none}
}

/* Keep the featured-film arrow on its own line on initial and changing slides. */
.masthead-credit>span:last-child>.fc-arrow-icon,.masthead-credit>span:last-child>span{display:block;margin-top:4px}
.masthead-credit>span:last-child>.fc-arrow-icon{margin-inline-start:auto}
.masthead-credit>span:last-child>span>.fc-arrow-icon{display:block;margin-inline-start:auto}
@media(max-width:900px){.masthead-credit>span:last-child>.fc-arrow-icon,.masthead-credit>span:last-child>span>.fc-arrow-icon{margin-inline-start:0}}

/* Persistent film navigation: touch controls remain visible without scrolling. */
body.has-project-nav,body:has(#film-page:not([hidden])){padding-bottom:calc(6rem + env(safe-area-inset-bottom,0px))}
.project-dock{position:fixed;inset:auto 0 0;z-index:5;display:block;max-width:none;background:var(--paper);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px);font-size:.875rem}
.project-dock-inner{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:28px;max-width:1920px;margin:auto;padding:12px var(--fc-page-gutter)}
.project-dock a{color:var(--ink);text-decoration:none;min-height:44px}
.project-dock-link{display:flex;align-items:center;gap:12px;min-width:0;width:fit-content;max-width:100%}
.project-dock-link>span{min-width:0}
.project-dock-link:last-child{justify-self:end;text-align:right}
.project-dock-label{display:block;font-size:.75rem;line-height:1.5;color:var(--grey)}
.project-dock-link strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;font-weight:400;line-height:1.5;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px;transition:text-decoration-color .2s ease}
.project-dock .fc-arrow-icon{width:20px;height:20px;transition:transform .2s ease}
.project-dock-centre{text-align:center;display:flex;flex-direction:column;align-items:center}
.project-dock-centre>a{display:flex;align-items:center;min-height:28px;padding:3px 12px;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:5px}
.project-dock-hint{font-size:.6875rem;line-height:1.5;color:var(--grey)}
.project-dock a:focus-visible strong,.project-dock-centre>a:focus-visible{text-decoration-color:currentColor}
@media(hover:hover) and (pointer:fine){.project-dock-link:hover strong,.project-dock-centre>a:hover{text-decoration-color:currentColor}.project-dock-link:first-child:hover .fc-arrow-icon{transform:translateX(-3px)}.project-dock-link:last-child:hover .fc-arrow-icon{transform:translateX(3px)}}
@media(max-width:700px){
 .project-dock-inner{gap:12px;padding-block:10px}
 .project-dock-link{gap:8px}
 .project-dock-label{font-size:.875rem;color:var(--ink)}
 .project-dock-link strong,.project-dock-hint{display:none}
 .project-dock-centre>a{min-height:44px;padding:0 8px;white-space:nowrap}
}
@media(hover:none),(pointer:coarse){.project-dock-hint{display:none}.project-dock-centre>a{min-height:44px}}
@media(prefers-reduced-motion:reduce){.project-dock .fc-arrow-icon,.project-dock-link strong{transition:none}.project-dock-link:hover .fc-arrow-icon{transform:none}}
@media print{.project-dock{display:none}body.has-project-nav{padding-bottom:0}}

/* Gentle Ken Burns movement stays inside the hero image frame. */
.masthead-slides{overflow:hidden}
.masthead-slides .masthead-image{transform-origin:center center}
@media(prefers-reduced-motion:reduce){.masthead-slides .masthead-image{transform:none!important}}

/* Hero preview: top shading only, shared by desktop and mobile. */
.masthead .masthead-shade{background:linear-gradient(180deg,rgba(12,9,10,.8) 0%,rgba(12,9,10,.4) 20%,rgba(12,9,10,0) 50%)} 

/* WordPress Home page controls the image and overlay crossfade together. */
.masthead-slides .masthead-image,.masthead .masthead-shade{transition-duration:var(--fc-fade-duration,1.8s)}
@media(prefers-reduced-motion:reduce){.masthead-slides .masthead-image,.masthead .masthead-shade{transition:none}}

/* Quiet search focus: a darker underline for clicking, a stronger underline for keyboard use. */
.search input{transition:border-color .2s ease,box-shadow .2s ease}
.search input:focus{outline:none;border-bottom-color:#85867c;box-shadow:none}
.search input:focus-visible{outline:none;border-bottom-color:var(--ink);box-shadow:0 1px 0 var(--ink)}
@media(prefers-reduced-motion:reduce){.search input{transition:none}}
