/* Shared service galleries. Existing portfolio colours and type are inherited. */
.service-page{overflow-x:clip}.service-page .gallery-header{position:relative;padding:25px 40px;border-bottom:1px solid var(--line)}
.back-home{display:flex;align-items:center;gap:10px;color:var(--gray);font-size:12px;transition:color .2s}.back-home:hover{color:var(--white)}.back-home svg{width:16px}
.skip-link{position:fixed;z-index:100;left:20px;top:-100px;background:var(--accent-solid);padding:12px 20px}.skip-link:focus{top:15px}
.page-marker{display:flex;justify-content:space-between;position:relative;margin:22px 40px 0;font-size:10px;color:var(--gray);letter-spacing:.015em}.page-marker>span:nth-child(2){position:absolute;left:50%;font-size:18px;top:-5px}
.gallery-hero,.work-gallery,.more-services{width:calc(100% - 80px);max-width:1320px;margin:0 auto}.gallery-hero{padding-top:84px;padding-bottom:70px}
.eyebrow{font-size:10px;color:var(--gray);letter-spacing:.065em;line-height:1.5}.service-page h1{font-size:clamp(58px,7.2vw,112px);letter-spacing:-.072em;line-height:1.02;white-space:normal;animation:none;transform:none;margin:20px 0 30px;width:auto}.service-page h1>span,.service-enquiry h2>span{color:var(--gray)}
.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:25px}.hero-bottom>p{font-size:18px;line-height:1.5;color:var(--gray);max-width:410px;letter-spacing:-.035em}.text-link{display:inline-flex;align-items:center;gap:35px;border-bottom:1px solid #ffffff35;padding-bottom:10px;font-size:13px;white-space:nowrap}.text-link span{color:var(--accent);font-size:22px;transition:transform .3s}.text-link:hover span{transform:translateY(4px)}
.landscape-hero .hero-copy{max-width:1050px;margin:0 auto}.landscape-showcase{position:relative;max-width:1050px;margin:60px auto 0}.hero-frame{position:relative;display:block;padding:0;overflow:hidden;background:#111}.hero-frame img,.hero-frame video{display:block;width:100%;height:100%;object-fit:contain}.hero-frame img{position:absolute;inset:0}.hero-frame.landscape{aspect-ratio:16/9;width:100%}.hero-frame.portrait{aspect-ratio:9/16;width:100%}.hero-frame video{position:absolute;inset:0;opacity:0;transition:opacity .6s}.hero-frame video.ready{opacity:1}.hero-frame:after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 0 1px #ffffff15;pointer-events:none}.frame-corner{position:absolute;width:15px;height:15px;border:1px solid #ffffff60;pointer-events:none}.frame-corner.tl{left:14px;top:14px;border-right:0;border-bottom:0}.frame-corner.br{right:14px;bottom:14px;border-top:0;border-left:0}
.watch-label{display:flex;align-items:center;gap:8px;position:absolute;bottom:20px;left:20px;padding:10px 14px;border:1px solid #ffffff30;border-radius:30px;background:#0a0a0acc;color:#fff;font-size:10px;letter-spacing:.025em;backdrop-filter:blur(10px)}.watch-label svg{width:14px;height:14px}.hero-frame:hover .watch-label{background:var(--accent-solid);border-color:var(--accent)}
.showcase-caption{max-width:1050px;display:flex;align-items:center;justify-content:space-between;gap:14px;margin:16px auto 0;color:var(--gray);font-size:9px;letter-spacing:.035em}.showcase-caption>span:first-child{display:flex;gap:8px;align-items:center}.showcase-caption i{width:5px;height:5px;display:inline-block;background:var(--accent-solid);border-radius:50%}.showcase-caption button{color:var(--gray);font-size:10px;padding:5px 0;border-bottom:1px solid #ffffff22}
.portrait-hero{display:grid;grid-template-columns:1fr 1.05fr;gap:30px;align-items:center;padding-top:90px;padding-bottom:85px}.portrait-hero .hero-copy{position:relative;z-index:1}.portrait-hero h1{font-size:clamp(54px,6.3vw,94px)}.portrait-hero .hero-bottom{display:block}.portrait-hero .hero-bottom>p{font-size:17px;max-width:350px;margin-bottom:28px}.portrait-showcase{display:grid;grid-template-columns:1fr 1.15fr 1fr;align-items:center;gap:12px;min-width:0;padding:30px 0}.portrait-showcase .hero-frame-0{transform:translateY(35px)}.portrait-showcase .hero-frame-1{transform:translateY(-20px)}.portrait-showcase .hero-frame-2{transform:translateY(55px)}.portrait-showcase .watch-label{left:50%;bottom:12px;transform:translateX(-50%);padding:10px}.portrait-showcase .watch-label span{display:none}.portrait-hero .showcase-caption{grid-column:1/-1;width:100%;max-width:none;margin-top:25px}.portrait-hero .hero-frame{box-shadow:0 15px 50px #0005}
.category-nav{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:repeat(4,1fr);padding:0 40px;background:#0a0a0af2;backdrop-filter:blur(16px);border-block:1px solid #ffffff15}.category-nav a{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:22px 25px;color:var(--gray);font-size:15px;border-right:1px solid var(--line);transition:color .2s,background .2s}.category-nav a:first-child{border-left:1px solid var(--line)}.category-nav a>span{font-size:10px;letter-spacing:0;margin-right:auto}.category-nav svg{width:17px;height:17px;margin-left:auto}.category-nav a:hover{color:var(--white);background:#ffffff04}.category-nav a[aria-current]{color:var(--white);box-shadow:inset 0 -2px var(--accent)}.category-nav a[aria-current]>span{color:var(--accent)}
.work-gallery{padding:95px 0 110px;scroll-margin-top:60px}.collection-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:45px}.collection-heading h2{font-size:clamp(38px,4vw,60px);letter-spacing:-.065em;line-height:1.12;margin-top:14px}.collection-heading>p{color:var(--gray);font-size:14px;line-height:1.5;max-width:270px;letter-spacing:-.025em}.gallery-filters{display:flex;align-items:center;gap:8px;margin:0 0 36px;border-bottom:1px solid var(--line);padding-bottom:20px}.filter-button{font-size:12px;border:1px solid #ffffff1a;border-radius:20px;padding:10px 17px;color:var(--gray);transition:color .2s,background .2s}.filter-button[aria-pressed=true]{background:var(--white);color:var(--black);border-color:var(--white)}.filter-button:hover{border-color:#ffffff65}.gallery-filters>span{margin-left:auto;color:var(--gray);font-size:10px;letter-spacing:.025em}
.work-grid{display:grid;gap:60px 28px}.landscape-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portrait-grid{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:32px;row-gap:64px}.work-card{min-width:0;transition:opacity .65s,transform .65s}.work-card[hidden]{display:none}.work-card.reveal-pending{opacity:0;transform:translateY(28px)}.card-screen{width:100%;display:block;position:relative;background:#111;padding:0;overflow:hidden}.work-card.landscape .card-screen{aspect-ratio:16/9}.work-card.portrait .card-screen{aspect-ratio:9/16}.card-screen img{display:block;width:100%;height:100%;object-fit:contain}.card-screen:after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 0 1px #ffffff0c;pointer-events:none;transition:box-shadow .3s}.card-screen:hover:after{box-shadow:inset 0 0 0 1px #ffffff60}.card-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#0a0a0ac7;border:1px solid #ffffff3b;backdrop-filter:blur(12px);border-radius:60px;width:68px;height:68px;display:flex;align-items:center;justify-content:center;gap:0;transition:background .25s,transform .3s}.card-play svg{width:22px;height:22px}.card-play>span{display:none}.card-screen:hover .card-play,.card-screen:focus-visible .card-play{background:var(--accent-solid);transform:translate(-50%,-50%) scale(1.08);border-color:var(--accent)}.card-index,.card-runtime{position:absolute;z-index:1;top:14px;left:14px;font-size:10px;letter-spacing:.025em;color:#fff;background:#0009;padding:5px 8px;border:1px solid #ffffff15;border-radius:2px}.card-runtime{left:auto;top:auto;bottom:14px;right:14px;font-variant-numeric:tabular-nums}.card-title{display:flex;align-items:baseline;justify-content:space-between;margin:19px 0 9px;gap:14px}.card-title h3{font-size:25px;line-height:1.2;letter-spacing:-.045em}.card-title>span{color:#6e6e6e}.card-title svg{width:17px;height:17px}.card-description{color:var(--gray);font-size:14px;line-height:1.5;letter-spacing:-.02em;max-width:480px}.card-meta{border-top:1px solid #ffffff16;margin-top:20px;padding-top:12px;display:flex;justify-content:space-between;gap:15px;color:#7e7d7a;font-size:9px;letter-spacing:.025em}.landscape-grid .work-card.portrait{max-width:70%;justify-self:center;width:100%}.page-colour-grade .card-description{max-width:370px}
.service-enquiry{border-block:1px solid var(--line);text-align:center;padding:100px 25px 105px;background:radial-gradient(ellipse at 50% 105%,#7c3aed0c,transparent 60%)}.service-enquiry h2{font-size:clamp(44px,5.5vw,80px);line-height:1.08;letter-spacing:-.065em;margin:24px 0}.service-enquiry>p{font-size:16px;color:var(--gray);line-height:1.5}.enquiry-button{padding:15px 22px;font-size:15px;margin-top:32px;gap:20px}.enquiry-number{display:block;color:var(--gray);margin-top:19px;font-size:11px;letter-spacing:.025em}.more-services{padding:75px 0}.more-services>.eyebrow{margin-bottom:28px}.more-services>a{display:flex;align-items:center;gap:30px;padding:25px 0;border-top:1px solid var(--line)}.more-services>a>span{font-size:12px;color:var(--gray)}.more-services h3{font-size:clamp(24px,3vw,38px);letter-spacing:-.055em}.more-services svg{margin-left:auto;width:25px;height:25px;color:var(--gray);transition:transform .3s,color .3s}.more-services>a:hover svg{transform:translate(3px,-3px);color:var(--accent)}.gallery-footer{display:flex;align-items:center;justify-content:space-between;padding:30px 40px;border-top:1px solid var(--line)}.gallery-footer>span,.gallery-footer>a:last-child{font-size:10px;color:var(--gray);letter-spacing:.025em}
.service-player{width:min(1100px,94vw);padding:24px;overflow:auto}.close-player{position:absolute;top:14px;right:14px;padding:8px;z-index:2}.player-heading{padding:8px 35px 20px 0;display:flex;align-items:baseline;gap:20px;justify-content:space-between}.player-heading h2{font-size:23px;line-height:1.2;letter-spacing:-.045em}.player-heading small{font-size:9px}.service-player video{display:block;object-fit:contain;width:100%;height:auto;max-height:70svh}.service-player.is-portrait{width:min(600px,94vw)}.service-player.is-portrait video{height:68svh;max-height:68svh}.service-player.is-portrait .player-heading{display:block}.service-player.is-portrait small{display:block;margin-top:7px}.service-player #player-description{color:var(--gray);font-size:12px;line-height:1.5;margin-top:14px;letter-spacing:-.015em}.player-error{color:#f5a28b;font-size:12px;margin-top:10px}.service-player::backdrop{background:#050505ed;backdrop-filter:blur(16px)}
@media(min-width:1600px){.gallery-hero,.work-gallery,.more-services{max-width:1400px}.portrait-hero{min-height:720px}.portrait-showcase{gap:18px}.portrait-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.page-colour-grade .portrait-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1000px){.portrait-hero{grid-template-columns:1fr;padding-top:55px;gap:30px}.portrait-hero .hero-copy{max-width:700px}.portrait-hero h1{font-size:clamp(52px,8vw,85px)}.portrait-hero .hero-bottom{display:flex}.portrait-hero .hero-bottom>p{margin-bottom:0}.portrait-showcase{max-width:650px;width:100%;margin:0 auto}.portrait-hero .showcase-caption{margin-top:35px}.portrait-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.category-nav a{padding:20px 15px;gap:12px}.category-nav{padding:0 28px}.gallery-hero,.work-gallery,.more-services{width:calc(100% - 56px)}.page-marker{margin-inline:28px}.service-page .gallery-header{padding-inline:28px}}
@media(max-width:600px){.service-page .gallery-header{padding:20px}.brand{font-size:18px}.back-home{font-size:11px;gap:5px}.back-home svg{width:14px}.gallery-header .pill{padding:8px 11px;font-size:11px}.gallery-header .pill i{width:5px;height:5px}.page-marker{margin:19px 20px 0;font-size:8px}.page-marker>span:last-child{display:none}.page-marker>span:nth-child(2){left:auto;right:0}.gallery-hero,.work-gallery,.more-services{width:calc(100% - 40px)}.gallery-hero{padding-top:54px;padding-bottom:42px}.service-page h1,.portrait-hero h1{font-size:clamp(42px,10.7vw,64px);margin:15px 0 24px}.eyebrow{font-size:9px}.hero-bottom,.portrait-hero .hero-bottom{display:block}.hero-bottom>p,.portrait-hero .hero-bottom>p{font-size:15px;max-width:340px;margin-bottom:25px}.text-link{font-size:12px;gap:24px}.landscape-showcase{margin-top:34px}.watch-label{left:10px;bottom:10px;padding:7px 10px;font-size:8px}.frame-corner{height:10px;width:10px}.frame-corner.tl{left:10px;top:10px}.frame-corner.br{right:10px;bottom:10px}.portrait-hero{gap:10px}.portrait-showcase{gap:7px;padding-top:20px}.portrait-showcase .hero-frame-0{transform:translateY(15px)}.portrait-showcase .hero-frame-1{transform:translateY(-8px)}.portrait-showcase .hero-frame-2{transform:translateY(25px)}.portrait-showcase .watch-label{padding:7px;bottom:8px}.portrait-showcase .watch-label svg{width:12px;height:12px}.showcase-caption{font-size:8px;gap:8px}.showcase-caption>span:nth-child(2){display:none}.showcase-caption button{font-size:9px}.portrait-hero .showcase-caption{margin-top:12px}.category-nav{padding:0 20px}.category-nav a{font-size:12px;padding:18px 10px;gap:0;justify-content:center}.category-nav a>span,.category-nav svg{display:none}.work-gallery{padding:52px 0 65px;scroll-margin-top:50px}.collection-heading{display:block;margin-bottom:28px}.collection-heading h2{font-size:34px;margin-top:12px}.collection-heading>p{margin-top:16px;font-size:13px;max-width:300px}.gallery-filters{flex-wrap:wrap;gap:7px;margin-bottom:28px;padding-bottom:16px}.filter-button{font-size:11px;padding:9px 12px}.gallery-filters>span{width:100%;margin:5px 0 0}.work-grid,.portrait-grid,.landscape-grid{grid-template-columns:1fr;gap:40px}.portrait-grid{max-width:420px;margin:0 auto}.landscape-grid .work-card.portrait{max-width:100%}.card-title h3{font-size:23px}.card-title{margin-top:16px}.card-description{font-size:13px}.card-meta{margin-top:16px;font-size:9px}.card-play{width:58px;height:58px}.service-enquiry{padding:66px 20px}.service-enquiry h2{font-size:39px;letter-spacing:-.065em}.service-enquiry>p{font-size:14px;max-width:290px;margin:0 auto}.enquiry-button{font-size:13px;padding:13px 18px;margin-top:27px}.more-services{padding:48px 0}.more-services>a{gap:22px;padding:24px 0}.more-services h3{font-size:26px}.gallery-footer{padding:25px 20px}.gallery-footer>span{display:none}.service-player{padding:18px;max-height:94svh}.player-heading{display:block;padding:7px 30px 15px 0}.player-heading h2{font-size:19px}.player-heading small{display:block;margin-top:7px;line-height:1.4}.service-player.is-portrait video{height:60svh;max-height:60svh}.service-player video{max-height:65svh}.service-player #player-description{font-size:11px}.close-player{right:6px;top:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.service-page *{transition:none!important;animation:none!important}.work-card.reveal-pending{opacity:1;transform:none}}
/* Isolate gallery portraits from the homepage's About portrait sizing. */
.work-card.portrait{width:100%}.hero-frame.portrait>img{width:100%;height:100%;object-fit:contain}

/* Fifth service: design stays reachable from each gallery. */
.category-nav.has-design{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:600px){.category-nav.has-design a{padding-inline:7px;font-size:11px}}
/* Temporary source-linked demo cards use the same gallery layout. */
.placeholder-badge{position:absolute;right:14px;top:14px;z-index:1;padding:6px 9px;border:1px solid #ffffff25;border-radius:3px;background:#0a0a0ad9;color:#eee;font-size:8px;letter-spacing:.055em;backdrop-filter:blur(8px)}
.demo-source{display:inline-flex;align-items:center;gap:7px;color:#a5a39f;font-size:10px;line-height:1.5;margin-top:13px;border-bottom:1px solid #ffffff25;padding-bottom:3px;letter-spacing:0}.demo-source svg{width:12px;height:12px}.demo-source:hover,.player-source:hover{color:var(--white)}
.external-player{display:block;border:0;width:100%;aspect-ratio:16/9;background:#050505}.external-player[hidden],.service-player video[hidden],.player-source[hidden]{display:none}.player-source{display:inline-block;font-size:11px;line-height:1.5;color:var(--gray);margin-top:14px;border-bottom:1px solid #ffffff30;padding-bottom:4px}
.demo-card.landscape .card-screen img{object-fit:cover}

/* Keep widescreen reel compilations intact beside the individual vertical edits. */
.portrait-grid .work-card.landscape{grid-column:1/-1;max-width:none}.portrait-grid .work-card.landscape .card-screen{aspect-ratio:16/9}.portrait-grid .work-card.landscape .card-screen img{object-fit:contain}
