
:root{--background:#08080a;--foreground:#f3f1ea;--surface:#111114;--surface-2:#17171b;--muted:#99988f;--line:rgba(243,241,234,.13);--line-strong:rgba(243,241,234,.25);--accent:#69b5d5;--accent-2:#86cae4;--cobalt:#003957;--gutter:2.5rem;--section:9rem;--font-display:'Anton',sans-serif;--font-sans:'Onest',sans-serif;--expo:cubic-bezier(.16,1,.3,1)}
*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;background:var(--background);scroll-padding-top:6rem}body{background:var(--background);color:var(--foreground);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}::selection{background:var(--accent);color:var(--background)}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none}ul{list-style:none}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:6px}p{font-size:1.0625rem;line-height:1.6}h1,h2,.display{font-family:var(--font-display);font-weight:400;text-transform:uppercase;letter-spacing:-.01em}h2{font-size:5rem;line-height:.98}h3{font-size:1.75rem;font-weight:500;letter-spacing:-.025em}.label{font-size:.8125rem;line-height:1.4;text-transform:uppercase;letter-spacing:.18em}.muted{color:var(--muted)}.eyebrow{display:flex;align-items:center;gap:.75rem;color:var(--muted);font-size:.8125rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;margin-bottom:1.5rem}.eyebrow:before{content:'';width:.5rem;height:.5rem;border-radius:50%;background:var(--accent);flex-shrink:0}.section{padding:var(--section) var(--gutter)}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:3rem}.section-head h2{max-width:15ch}.section-head>p{max-width:28ch;color:var(--muted)}.skip{position:fixed;top:-100px;left:1rem;z-index:200;background:var(--foreground);color:var(--background);padding:1rem}.skip:focus{top:1rem}.arrow{color:var(--accent);display:inline-block}.text-link{display:inline-flex;align-items:center;gap:1.5rem;border-bottom:1px solid var(--accent);padding-bottom:.6rem;font-size:.8125rem;text-transform:uppercase;letter-spacing:.18em;transition:color .34s,transform .34s}.text-link:hover{color:var(--accent);transform:translateX(5px)}
header{position:fixed;inset:0 0 auto;z-index:50;background:linear-gradient(var(--background),rgba(8,8,10,.9));backdrop-filter:blur(12px)}.nav{display:flex;align-items:center;justify-content:space-between;margin:0 var(--gutter);padding:1.3rem 0;border-bottom:1px solid var(--line)}.brand{display:flex;gap:.75rem;align-items:center}.brand-name{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase}.nav-links{display:flex;gap:2.5rem}.nav-links a{position:relative;font-size:.75rem;text-transform:uppercase;letter-spacing:.18em;color:var(--muted);transition:color .3s}.nav-links a:after{content:'';position:absolute;bottom:-.4rem;left:0;width:0;height:1px;background:var(--accent);transition:width .3s}.nav-links a:hover{color:var(--foreground)}.nav-links a:hover:after{width:100%}.menu-toggle{display:none;width:44px;height:44px;position:relative;z-index:60}.menu-toggle span{display:block;width:24px;height:2px;background:var(--foreground);margin:6px auto;transition:transform .35s,opacity .35s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(8px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-8px) rotate(-45deg)}.mobile-menu{position:fixed;inset:0;background:var(--background);z-index:45;display:flex;flex-direction:column;justify-content:center;padding:var(--gutter);gap:1.2rem}.mobile-menu[hidden]{display:none}.mobile-menu a{font-family:var(--font-display);text-transform:uppercase;font-size:3.25rem;animation:menuIn .42s var(--expo) both}.mobile-menu a:nth-child(2){animation-delay:.08s}.mobile-menu a:nth-child(3){animation-delay:.16s}.mobile-menu a:nth-child(4){animation-delay:.24s}.mobile-menu a:nth-child(5){animation-delay:.32s}
.hero{min-height:100svh;position:relative;overflow:hidden;padding:8rem var(--gutter) 2rem;display:flex;flex-direction:column}.hero-top{display:flex;justify-content:space-between;gap:2rem;position:relative;z-index:3}.roles{font-family:var(--font-display);font-size:2rem;line-height:1.08;text-transform:uppercase}.roles span{display:block}.hero-intro{max-width:24rem;text-align:right;color:var(--muted)}.hero-intro .label{display:block;margin-bottom:1rem;color:var(--foreground)}.hero-stage{position:relative;flex:1;min-height:38rem;margin:2rem 0}.hero-name{font-size:clamp(8rem,19.3vw,30rem);line-height:.85;color:var(--accent);display:flex;align-items:center;flex-direction:column;letter-spacing:-.025em}.hero-name>span{display:block;white-space:nowrap}.hero-name>span:first-child{font-size:1.15em}.hero-name>span:last-child{margin-top:.12em}.hero-image{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);width:57%;height:58%;z-index:2;overflow:hidden}.hero-image img{width:100%;height:100%;object-fit:cover;object-position:center 57%}.hero-bottom{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:3}.scroll-cue{display:flex;align-items:center;gap:1rem;color:var(--muted)}.scroll-cue:before{content:'';width:1px;height:2.5rem;background:var(--accent)}.marquee{border-block:1px solid var(--line);overflow:hidden;padding:2rem 0}.track{display:flex;width:max-content;animation:marquee 22s linear infinite}.marquee-set{display:flex;align-items:center;flex-shrink:0}.marquee-set span{font-family:var(--font-display);font-size:3.25rem;text-transform:uppercase;white-space:nowrap;display:flex;align-items:center}.marquee-set span:after{content:'';width:.625rem;height:.625rem;background:var(--accent);border-radius:50%;margin:0 2rem}
.story{display:grid;grid-template-columns:1fr 1fr;gap:7rem}.story h2{max-width:13ch}.story .lead{margin-top:2rem;max-width:43ch;font-size:1.375rem;color:var(--muted);line-height:1.5}.principles li{display:grid;grid-template-columns:auto 1fr;gap:1.5rem;border-top:1px solid var(--line);padding:2rem 0}.principles li:last-child{border-bottom:1px solid var(--line)}.principles .number{color:var(--accent);font-size:1.5rem}.principles p{color:var(--muted);margin-top:.75rem}.work{padding-top:3rem}.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem var(--gutter);margin-top:4rem}.work-card:nth-child(even){margin-top:6rem}.work-image{width:100%;aspect-ratio:16/11;display:block;position:relative;overflow:hidden;background:var(--surface)}.work-image img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--expo),filter .38s;filter:saturate(.7)}.work-image:hover img{transform:scale(1.035);filter:saturate(1)}.image-action{position:absolute;bottom:1.5rem;right:1.5rem;background:var(--foreground);color:var(--background);width:3rem;height:3rem;border-radius:50%;display:grid;place-items:center;font-size:1.4rem;transition:background .3s,transform .3s}.work-image:hover .image-action{background:var(--accent);transform:rotate(45deg)}.work-caption{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-top:1.5rem;border-top:1px solid var(--line);padding-top:1.25rem}.work-caption h3{font-size:1.5rem;transition:color .34s}.work-card:hover h3{color:var(--accent)}.work-caption p{margin-top:.5rem;color:var(--muted);max-width:38ch}.work-caption .label{color:var(--accent);padding-top:.3rem}.work-kind{margin-top:1rem;color:var(--muted)}
.services{background:var(--surface)}.service-grid{display:grid;grid-template-columns:5fr 7fr;gap:6rem;margin-top:4rem}.service-tab{display:flex;align-items:center;gap:1rem;width:100%;text-align:left;padding:1.8rem 0;border-top:1px solid var(--line);color:var(--muted)}.service-tab:last-child{border-bottom:1px solid var(--line)}.service-tab .tab-title{font-size:1.6rem;letter-spacing:-.03em}.service-tab[aria-selected=true]{color:var(--foreground)}.service-tab[aria-selected=true] .label{color:var(--accent)}.service-tab:after{content:'';height:1px;width:0;background:var(--accent);margin-left:auto;transition:width .34s}.service-tab[aria-selected=true]:after{width:2.5rem}.service-panel h3{font-family:var(--font-display);text-transform:uppercase;font-size:3.25rem;font-weight:400;line-height:1.1}.service-panel>p{font-size:1.375rem;color:var(--muted);margin:1.5rem 0 2rem;max-width:40ch}.service-panel ul{border-top:1px solid var(--line);margin:0 0 2.5rem}.service-panel li{padding:.85rem 0;border-bottom:1px solid var(--line);font-size:1rem;display:flex;justify-content:space-between}.service-panel li:after{content:'↗';color:var(--accent)}.service-panel[hidden]{display:none}.service-panel:not([hidden]){animation:menuIn .52s var(--expo)}
.process-rows{margin-top:4rem}.process-row{display:grid;grid-template-columns:1fr 3fr 5fr;gap:3rem;align-items:center;padding:2.5rem 0;border-top:1px solid var(--line)}.process-row:last-child{border-bottom:1px solid var(--line)}.process-row .number{font-family:var(--font-display);font-size:2rem}.process-row h3{font-family:var(--font-display);text-transform:uppercase;font-size:4.5rem;color:var(--accent);font-weight:400}.process-row p{max-width:46ch;color:var(--muted)}.contact{padding-top:3rem}.contact h2{font-size:7.5rem;max-width:15ch}.contact-lead{font-size:1.375rem;color:var(--muted);margin-top:2rem;max-width:44ch}.contact-actions{display:flex;flex-wrap:wrap;gap:2rem;align-items:center;margin-top:3rem}.project-button{background:var(--accent);color:var(--background);padding:1.25rem 1.75rem;display:inline-flex;gap:3rem;align-items:center;font-weight:600;transition:background .3s}.project-button:hover{background:var(--accent-2)}.email{font-size:clamp(1.1rem,2.7vw,3rem);font-weight:500;letter-spacing:-.04em;transition:transform .34s,color .34s;display:inline-flex;gap:1rem;overflow-wrap:anywhere}.email:hover{color:var(--accent);transform:translateX(8px)}.footer-bar{border-top:1px solid var(--line);margin-top:7rem;padding:3rem 0;display:flex;justify-content:space-between;gap:2rem;align-items:flex-end}.footer-brand{font-family:var(--font-display);text-transform:uppercase;font-size:2.5rem}.footer-bar .label{color:var(--muted);font-size:.7rem;margin-top:1rem}.footer-bar>a{flex-shrink:0}
dialog{background:var(--background);color:var(--foreground);border:1px solid var(--line-strong);margin:auto;max-width:min(90vw,62rem);max-height:90svh;padding:2.5rem}dialog::backdrop{background:rgba(0,0,0,.88);backdrop-filter:blur(8px)}.dialog-close{position:absolute;right:1rem;top:1rem;width:44px;height:44px;border:1px solid var(--line-strong);border-radius:50%;font-size:1.5rem;z-index:2;background:var(--background)}.lightbox{padding:1rem}.lightbox img{max-height:76svh;object-fit:contain;margin:auto}.lightbox p{padding:1rem .5rem .25rem}.enquiry{width:48rem}.enquiry h2{font-size:3.25rem;margin-right:2rem}.enquiry>p{color:var(--muted);margin:1rem 0 2rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.form-grid label{display:flex;flex-direction:column;gap:.6rem;font-size:.85rem}.form-grid .full{grid-column:1/-1}input,select,textarea{width:100%;border:1px solid var(--line-strong);border-radius:0;background:var(--surface);padding:.8rem;font-size:1rem}textarea{resize:vertical;min-height:7rem}form .project-button{margin-top:1.5rem}#form-status{margin-top:1rem;color:var(--muted);font-size:.9rem}.draft-link[hidden]{display:none}.draft-link{display:block;color:var(--accent);margin-top:1rem;text-decoration:underline}.preloader{display:none;position:fixed;inset:0;z-index:100;background:var(--background);padding:var(--gutter);align-items:flex-end;justify-content:space-between;transition:transform .65s cubic-bezier(.22,1,.36,1)}.js.loading .preloader{display:flex}.preloader .display{font-size:1.75rem}.preloader .counter{font-size:7.5rem;line-height:1}.preloader .counter b{font-weight:400}.preloader .counter span{color:var(--accent)}.preloader-label{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;transition:opacity .3s}.preloader.fade .preloader-label{opacity:0}.preloader.wipe{transform:translateY(-100%);pointer-events:none}.js .hero-name .letter{display:inline-block;animation:letterIn .9s var(--expo) both;animation-delay:calc(100ms + var(--i)*35ms + var(--row)*160ms)}.hero-name .name-line{overflow:hidden;padding:.06em .02em;margin-bottom:-.06em}.js .roles span{animation:menuIn .76s var(--expo) both;animation-delay:calc(100ms + var(--i)*60ms)}.js .hero-intro{animation:menuIn .52s var(--expo) 200ms both}.js .hero-bottom{animation:menuIn .52s var(--expo) 400ms both}.js .hero-image{animation:imageIn 1.2s var(--expo) 150ms both}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}@keyframes letterIn{from{opacity:0;transform:translateY(100%)}to{opacity:1;transform:none}}@keyframes menuIn{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}@keyframes imageIn{from{opacity:0;clip-path:inset(12% 0)}to{opacity:1;clip-path:inset(0)}}@keyframes marquee{to{transform:translateX(-50%)}}
@media(max-width:1920px){html{font-size:.833333vw}}@media(max-width:1440px){html{font-size:1.111111vw}}@media(max-width:1024px){html{font-size:1.5625vw}.hero-stage{min-height:32rem}.hero-name{font-size:18.8vw}.hero-image{width:65%;height:63%}.story{gap:3rem}.nav-links{gap:1.3rem}.brand-name{font-size:.65rem}.service-grid{gap:3rem}.contact h2{font-size:6rem}}
@media(max-width:767px){.nav-links{display:none}.menu-toggle{display:block}.hero{padding-top:8rem}.hero-intro{max-width:21rem}.story{grid-template-columns:1fr}.story h2{max-width:16ch}.service-grid{grid-template-columns:1fr;gap:3rem}.process-row{grid-template-columns:.5fr 2fr 3fr;gap:1.5rem}.work-caption h3{font-size:1.7rem}.brand-name{font-size:.8rem}.hero-stage{min-height:32rem}.hero-image{width:74%}.footer-bar{flex-wrap:wrap}}
@media(max-width:767px){html{font-size:4.444444vw}:root{--gutter:16px;--section:5rem}h2{font-size:3.25rem}.nav{padding:.7rem 0}.brand-name{font-size:.62rem}.hero{padding-top:6rem;min-height:100svh}.hero-top{flex-direction:column;gap:1.4rem}.roles{font-size:1.65rem}.hero-intro{max-width:24ch;text-align:left;font-size:.85rem;margin-left:auto}.hero-intro .label{font-size:.6rem;margin-bottom:.5rem}.hero-stage{min-height:19rem;flex:0;margin:1.8rem 0 1.5rem}.hero-name{font-size:18vw;line-height:.88}.hero-image{width:90%;top:48%;height:49%}.hero-bottom{margin-top:auto;gap:1rem}.hero-bottom .label,.text-link{font-size:.6rem;letter-spacing:.13em}.marquee{padding:1.3rem 0}.marquee-set span{font-size:2rem}.section-head{display:block}.section-head>p{margin-top:1.5rem}.story{gap:3rem}.story .lead{font-size:1.1rem}.principles h3{font-size:1.3rem}.principles p{font-size:.94rem}.work-grid{grid-template-columns:1fr;gap:2.5rem;margin-top:2.5rem}.work-card:nth-child(even){margin-top:0}.work-caption h3{font-size:1.35rem}.work-caption p{font-size:.9rem}.work-kind{font-size:.65rem}.service-grid{margin-top:2.5rem}.service-tab .tab-title{font-size:1.25rem}.service-panel h3{font-size:2.5rem}.service-panel>p{font-size:1.1rem}.process-row{grid-template-columns:2rem 1fr;gap:1rem;padding:1.7rem 0}.process-row h3{font-size:3rem}.process-row p{grid-column:2;font-size:.95rem}.process-row .number{font-size:1.2rem}.contact h2{font-size:3.6rem}.contact-lead{font-size:1.1rem}.email{font-size:1.2rem;letter-spacing:-.045em;gap:.5rem}.contact-actions{gap:1.8rem}.footer-bar{margin-top:4rem;display:block;padding:2rem 0}.footer-brand{font-size:2rem}.footer-bar>a{display:block;margin-top:2rem}.footer-bar .copyright{margin-top:2rem}dialog{max-width:calc(100vw - 24px);padding:1.5rem}.enquiry h2{font-size:2.5rem}.form-grid{grid-template-columns:1fr;gap:1rem}.preloader{flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:1rem}.preloader .counter{font-size:6rem}.lightbox{padding:.5rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.preloader{display:none!important}.hero-image{clip-path:none!important}}
@media(min-width:768px){.hero-stage{min-height:0;flex:1;display:flex;align-items:center;justify-content:center;margin:1rem 0}.hero-name{font-size:min(23vw,28svh)}.hero-image{height:42%;max-height:30svh;top:50%}.hero{height:100svh;min-height:42rem}.hero-name>span:last-child{margin-top:.12em}}
@media(max-width:767px){.hero-name{position:absolute;inset:0;justify-content:space-between;font-size:20.5vw}.hero-name>span:last-child{margin:0}.hero-image{top:50%}.hero-stage{min-height:19rem}}
.lightbox{width:min(92vw,75rem);padding:1rem}.gallery-stage{height:65svh;display:flex;align-items:center;justify-content:center;touch-action:pan-y}.gallery-stage img{width:100%;height:100%;max-height:100%;object-fit:contain}.gallery-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem}.lightbox .gallery-bar p{padding:.25rem 0}.gallery-bar #gallery-status{color:var(--muted);font-size:.7rem}.gallery-controls{display:flex;gap:.6rem}.gallery-controls button{width:48px;height:48px;border:1px solid var(--line-strong);font-size:1.5rem}.gallery-controls button:hover{background:var(--accent);color:var(--background)}.gallery-dots{display:flex;justify-content:center;gap:.25rem}.gallery-dots button{width:32px;height:32px;display:grid;place-items:center}.gallery-dots button:before{content:'';width:6px;height:6px;border-radius:50%;background:var(--muted)}.gallery-dots button[aria-current=true]:before{background:var(--accent);transform:scale(1.5)}@media(max-width:767px){.lightbox{width:calc(100vw - 24px);padding:.5rem}.gallery-stage{height:57svh}.gallery-bar #gallery-title{font-size:.85rem}.gallery-controls button{width:44px;height:44px}.gallery-bar{gap:.5rem}}
/* Portrait composition: preserve the supplied cutout and its full aspect ratio. */
.hero-image{width:46%;height:100%;max-height:none;top:50%;overflow:visible}
.hero-image img{object-fit:contain;object-position:center bottom;height:100%;width:100%}
@media(min-width:768px){.hero-image{height:112%;max-height:none;top:48%;width:46%}}
@media(max-width:767px){.hero-image{width:78%;height:112%;top:50%;max-height:none}.hero-stage{min-height:22rem}}
.films{padding-top:3rem}.films-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gutter);margin-top:4rem}.film-cover{display:block;width:100%;aspect-ratio:16/10;position:relative;overflow:hidden;background:var(--surface)}.film-cover img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--expo)}.film-cover[data-portrait=true] img{object-position:center 35%}.film-cover:hover img{transform:scale(1.04)}.film-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:4rem;height:4rem;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--background);padding-left:.18rem;font-size:1.25rem}.film-duration{position:absolute;right:1rem;bottom:1rem;background:rgba(8,8,10,.85);padding:.35rem .5rem}.film-card h3{font-size:1.4rem}.film-external{display:inline-block;margin-top:1rem;color:var(--muted);font-size:.7rem}.film-external:hover{color:var(--accent)}.video-dialog{width:min(92vw,76rem);max-width:92vw;padding:3.5rem 1rem 1rem}.video-frame{aspect-ratio:16/9;width:100%;max-height:72svh}.video-frame iframe{border:0;display:block;width:100%;height:100%;background:#000}.video-dialog.is-portrait{width:min(90vw,28rem)}.video-dialog.is-portrait .video-frame{aspect-ratio:9/16;height:70svh;width:auto;margin:auto}.video-caption{display:flex;justify-content:space-between;gap:1rem;margin-top:1rem;align-items:center}.video-caption p{font-size:.9rem}.video-caption a{font-size:.7rem;color:var(--muted)}@media(max-width:767px){.films-grid{grid-template-columns:1fr;gap:3rem}.film-card h3{font-size:1.5rem}.films-grid{margin-top:2.5rem}.video-caption{display:block}.video-caption a{display:inline-block;margin-top:.5rem}.video-dialog{padding:3.5rem .5rem .75rem}.video-dialog.is-portrait .video-frame{height:65svh}}
/* Colour reveal without distortion, zoom or moving controls. */
.work-image img,.film-cover img{filter:grayscale(1);transition:filter 650ms ease;transform:none}
.work-image:hover img,.work-image:focus-visible img,.film-cover:hover img,.film-cover:focus-visible img{filter:grayscale(0);transform:none}
.work-image:hover .image-action{transform:none}
@media(hover:none){.work-image img,.film-cover img{filter:none}}
.hero-intro strong{display:block;font-size:1.5rem;font-weight:500;line-height:1.3;color:var(--foreground)}.hero-detail{display:block;margin-top:1rem}.hero-intro{max-width:31rem}.service-intro-link{margin-top:2rem}.honeypot{display:none}.project-button:disabled{opacity:.6;cursor:wait}#form-status a{text-decoration:underline}.service-page{padding:10rem var(--gutter) 5rem;max-width:100rem;margin:auto}.service-page h1{font-size:clamp(3rem,6vw,6.5rem);line-height:1;max-width:18ch}.service-page .intro{max-width:55ch;font-size:1.25rem;color:var(--muted);margin:2rem 0}.service-hero-image{width:100%;max-height:65vh;object-fit:cover;margin:3rem 0}.service-content{display:grid;grid-template-columns:1fr 1fr;gap:4rem;margin-top:5rem}.service-content h2{font-size:2.8rem;margin-bottom:1.5rem}.service-content p,.service-content li{color:var(--muted);margin-bottom:1rem;line-height:1.7}.service-content ul{list-style:disc;padding-left:1.2rem}.service-faq{margin-top:4rem}.service-faq h2{font-size:3rem;margin-bottom:2rem}.service-faq details{border-top:1px solid var(--line);padding:1.4rem 0}.service-faq summary{cursor:pointer;font-size:1.2rem}.service-faq details p{max-width:70ch;color:var(--muted);margin-top:1rem}.related-services{display:flex;flex-wrap:wrap;gap:1.5rem;margin:3rem 0}.service-bottom{border-top:1px solid var(--line);padding-top:3rem;margin-top:4rem}.service-bottom h2{font-size:3rem;margin-bottom:2rem}@media(max-width:767px){.service-content{grid-template-columns:1fr;gap:2rem}.service-page{padding-top:7rem}.hero-intro strong{font-size:1.1rem}.hero-detail{font-size:.85rem}.service-page h1{font-size:3rem}}

/* Service portfolio galleries */
.service-gallery{margin:80px 0}.service-gallery h2{font-family:Anton,sans-serif;font-size:clamp(36px,5vw,64px);text-transform:uppercase;margin:12px 0 20px}.service-gallery-grid{display:block;column-count:2;column-gap:24px;margin-top:32px}.service-gallery figure{display:inline-block;vertical-align:top;width:100%;margin:0 0 28px;min-width:0;break-inside:avoid;page-break-inside:avoid}.service-gallery-link{display:block;position:relative;background:#151515}.service-gallery-link img{display:block;width:100%;height:auto;object-fit:contain}.service-gallery-link span{position:absolute;bottom:16px;right:16px;background:#f3f1ea;color:#08080a;width:40px;height:40px;border-radius:50%;display:grid;place-items:center}.service-gallery figcaption{font-size:14px;color:#aaa;margin-top:12px}.service-photo-dialog{position:fixed;inset:0;margin:auto;width:min(1100px,94vw);max-height:94dvh;padding:48px 16px 16px;background:#08080a;color:#f3f1ea;border:1px solid #444;overflow:auto}.service-photo-dialog::backdrop{background:rgb(0 0 0 / .9)}.service-photo-dialog img{display:block;width:100%;height:auto;max-height:75dvh;object-fit:contain}.service-photo-dialog button{position:absolute;right:12px;top:6px;border:0;background:none;color:inherit;font-size:30px;cursor:pointer}.service-photo-dialog p{margin:12px 0 0}.service-gallery-link:focus-visible{outline:2px solid var(--accent);outline-offset:5px}@media(max-width:767px){.service-gallery-grid{column-count:1}.service-gallery figure{margin-bottom:24px}.service-gallery{margin:56px 0}}@media(hover:none){.service-gallery-link img{filter:none}}@media(prefers-reduced-motion:reduce){.service-gallery-link img{transition:none}}

.service-panel .service-destinations li{display:block;padding:0}.service-panel .service-destinations li:after{content:none}.service-destinations a{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0;min-height:48px;transition:color .2s}.service-destinations a span{color:var(--accent)}.service-destinations a:hover,.service-destinations a:focus-visible{color:var(--accent)}.service-destinations a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}

/* Personal name and studio signature in the homepage hero. */
.hero-subtitle{position:absolute;bottom:0;left:0;right:0;text-align:center;z-index:3;font-size:clamp(.75rem,1.2vw,1rem);font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--foreground)}
@media(min-width:768px){
 .hero{height:100svh;min-height:44rem}
 .hero-stage{min-height:0;flex:1;margin:1.5rem 0 1rem;padding-bottom:3rem}
 .hero-name{width:100%;font-size:min(29vw,29svh);line-height:.86}
 .hero-name>span:first-child{font-size:1.12em}
 .hero-name>span:last-child{margin-top:.12em}
 .hero-image{width:49%;height:116%;top:43%;max-height:none}
 .hero-subtitle{bottom:0}
 .hero-bottom{margin-top:1rem}
}
@media(max-width:767px){
 .hero-name{font-size:25vw;inset:0 0 3rem}
 .hero-image{width:82%;height:108%;top:44%}
 .hero-stage{min-height:24rem;padding-bottom:3rem}
 .hero-subtitle{font-size:.7rem;letter-spacing:.25em;bottom:0}
}
@media(min-width:768px){.hero-image{height:112%;top:40%}.hero-subtitle{bottom:-.2rem}}

/* Shared conversion controls and client-facing navigation. */
.nav .nav-quote{color:var(--foreground);border:1px solid var(--accent);padding:.65rem .9rem;white-space:nowrap}
.nav-links{align-items:center;gap:1.8rem}.nav .nav-quote:after{display:none}.subnav-work{font-size:.75rem;color:var(--muted);order:0}.nav>.brand{margin-right:auto}.nav>.text-link{margin-left:1.5rem;order:1}.nav>.subnav-work{margin-left:1.5rem}.mobile-quote{display:none}
.category-index{margin-top:2.5rem;border-top:1px solid var(--line);padding-top:1.5rem}.category-index>div{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}.category-index a{border:1px solid var(--line-strong);padding:.7rem .85rem;font-size:.82rem;min-height:44px;display:inline-flex;align-items:center;gap:1rem}.category-index a:hover,.category-index a:focus-visible{border-color:var(--accent);color:var(--accent)}.category-index a span{color:var(--accent)}
.service-panel li:after{content:none}.service-panel li a{width:100%}.quote-expectation{max-width:55ch;font-size:.95rem;color:var(--muted);margin-top:1.5rem}.footer-links{display:flex;gap:1.5rem;font-size:.85rem;align-items:center}.footer-links a:hover{color:var(--accent)}.breadcrumbs{display:flex;flex-wrap:wrap;gap:.65rem;font-size:.8rem;color:var(--muted);margin-bottom:2rem}.breadcrumbs a{text-decoration:underline;text-underline-offset:4px}.service-location{font-size:.9rem;margin-top:1.25rem;color:var(--muted)}
.service-gallery-link img{height:auto;object-fit:contain}.service-page .service-hero-image{height:auto;object-fit:contain;max-height:65svh;background:#0b0b0d}.booking-brief{margin-top:4rem;padding:2rem;border:1px solid var(--line-strong)}.booking-brief h2{font-size:clamp(2rem,4vw,3rem);margin-bottom:1.5rem}.booking-brief p{max-width:65ch;margin-bottom:1.5rem}.booking-brief .eyebrow{font-size:.75rem}.service-content{margin-top:4rem}.film-facts{color:var(--muted);font-size:.85rem;margin-top:1.5rem}.service-page>iframe{max-width:100%}
.enquiry.quote-dialog{padding:2.5rem;width:min(48rem,calc(100vw - 24px));max-height:90dvh;overflow:auto}.quote-dialog h2,.contact-page h2{font-size:clamp(2.3rem,5vw,3.25rem);line-height:1.05;margin-right:2rem}.enquiry-intro{max-width:48ch;color:var(--muted);margin:1rem 0 1.8rem}.contact-page{max-width:58rem}.contact-page .form-grid{margin-top:2rem}.form-alternative{font-size:.85rem;color:var(--muted);margin-top:1.5rem}.form-alternative a,.draft-link{text-decoration:underline;text-underline-offset:4px}.draft-link:not([hidden]){display:inline-block;margin-top:1rem}.form-grid label{min-width:0}.form-grid textarea{min-height:6.5rem}.quote-dialog .dialog-close{position:sticky;float:right;top:0;margin:-1rem -1rem 0 0}.quote-dialog .dialog-close+h2{clear:none}
.testimonials h2{max-width:14ch}.draft-notice{padding:1rem 1.25rem;border:1px dashed var(--accent);color:var(--foreground);max-width:70ch;margin:2rem 0}.testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.testimonial{padding:1.5rem;border:1px solid var(--line);background:var(--surface)}.testimonial>.label{font-size:.65rem;color:var(--accent)}.testimonial blockquote{font-size:1.05rem;line-height:1.7;margin:1.5rem 0}.testimonial figcaption{font-size:.8rem;color:var(--muted)}
/* Display useful content immediately; motion supports rather than delays reading. */
.js .hero-name .letter,.js .roles span,.hero-image{animation-duration:.35s!important;animation-delay:0s!important}.hero-intro{animation:none!important}.service-panel:not([hidden]){animation-duration:.2s}.text-link:hover{transform:none}
@media(min-width:768px) and (max-width:1000px){.nav-links{gap:1rem}.nav-links a{font-size:.7rem}.brand-name{font-size:.65rem}}
@media(max-width:767px){body{padding-bottom:5rem}.mobile-quote{display:flex;position:fixed;bottom:max(12px,env(safe-area-inset-bottom));left:16px;right:16px;justify-content:center;align-items:center;gap:1rem;padding:1rem;z-index:44;box-shadow:0 0 24px #08080a}.quote-open .mobile-quote{visibility:hidden}.testimonial-grid{grid-template-columns:1fr}.testimonial{padding:1.25rem}.testimonials{padding-top:4rem;padding-bottom:4rem}.testimonials h2{font-size:3rem}.footer-links{margin-top:1.5rem;flex-wrap:wrap}.booking-brief{padding:1.25rem}.quote-dialog.enquiry{padding:1.5rem}.quote-dialog .form-grid{gap:1rem}.quote-dialog .dialog-close{margin:-.75rem -.75rem 0 0}.nav>.subnav-work{display:none}.nav>.text-link{font-size:.6rem;letter-spacing:.1em}.category-index a{font-size:.72rem;padding:.65rem}.category-index>div{gap:.45rem}.service-location{font-size:.8rem}.service-gallery{margin-top:3rem}}
@media(max-width:767px){.work-grid{grid-template-columns:1fr 1fr;gap:2rem 1rem;margin-top:2rem}.work-image{aspect-ratio:4/3}.work-card:nth-child(even){margin-top:0}.work-caption{margin-top:.8rem;padding-top:.8rem;gap:.4rem}.work-caption h3{font-size:1rem;line-height:1.3}.work-caption p,.work-kind{display:none}.work-caption>.label{font-size:.6rem}.image-action{width:2rem;height:2rem;bottom:.6rem;right:.6rem;font-size:1rem}.hero-bottom{flex-wrap:wrap;gap:1rem}.hero-bottom .hero-quote{font-size:.65rem}.service-page .intro{font-size:1.1rem}.service-content h2{font-size:2.2rem}}
@media(prefers-reduced-motion:reduce){.js .hero-name .letter,.js .roles span,.hero-image{animation:none!important}.category-index a{transition:none}}
.contact-page #enquiry-title{font-size:clamp(2.3rem,5vw,3.25rem);line-height:1.05;max-width:none}
@media(max-width:767px){.category-index>div{display:grid;grid-template-columns:1fr 1fr}.category-index a{min-width:0;justify-content:space-between;font-size:.68rem;gap:.35rem;padding:.65rem .6rem;line-height:1.35}.category-index a span{flex-shrink:0}.testimonial-grid{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:88%;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:1rem;gap:.8rem}.testimonial{scroll-snap-align:start}.testimonial blockquote{font-size:1rem}}
@media(max-width:767px){.work-caption>.label{display:none}.work-caption h3{font-size:.95rem}.work-caption>div{min-width:0;width:100%}}

.service-gallery .gallery-intro{max-width:52ch;font-size:clamp(1.1rem,1.8vw,1.45rem);line-height:1.65;color:var(--muted);margin-top:1.5rem}.gallery-view-hint{color:var(--muted);font-size:.65rem;margin-top:1.5rem}

/* Keep phone typography readable without scaling every space with the viewport. */
@media(max-width:767px){
 html{font-size:16px;scroll-padding-top:5.5rem;scroll-padding-bottom:6rem}
 :root{--section:4rem}
 body{padding-bottom:calc(5rem + env(safe-area-inset-bottom,0px))}
 p{line-height:1.65}
 h2{font-size:clamp(2.5rem,10vw,3.25rem);line-height:1.08}
 .eyebrow{font-size:.75rem;line-height:1.5;letter-spacing:.16em;margin-bottom:1.25rem}
 .label{font-size:.75rem;line-height:1.5}
 .brand-name{font-size:.6875rem}
 .hero{padding-top:6rem;padding-bottom:2.5rem;height:auto;min-height:100svh}
 .hero-top{gap:1.5rem}
 .roles{font-size:1.75rem;line-height:1.12}
 .hero-intro{width:100%;max-width:36rem;margin:0;text-align:left}
 .hero-intro .label{font-size:.6875rem;letter-spacing:.16em;margin-bottom:.75rem}
 .hero-intro strong{font-size:1.25rem;line-height:1.4;max-width:32ch}
 .hero-detail{font-size:.9375rem;line-height:1.65;margin-top:1rem;max-width:46ch}
 .hero-stage{min-height:clamp(24rem,108vw,36rem);margin:2rem 0 1.5rem;padding-bottom:3rem}
 .hero-name{inset:0 0 3.5rem;font-size:25vw}
 .hero-image{width:82%;height:calc(100% - 3rem);top:calc(50% - 1.5rem)}
 .hero-subtitle{font-size:.75rem;line-height:1.5;letter-spacing:.22em}
 .hero-bottom{gap:1.5rem;row-gap:1.25rem;margin-top:0}
 .hero-bottom .label,.hero-bottom .hero-quote,.text-link{font-size:.75rem;line-height:1.6;letter-spacing:.1em}
 .section-head>p{margin-top:1.5rem;max-width:42ch}
 .work-caption h3{font-size:1rem;line-height:1.4}
 .film-card .work-caption h3{font-size:1.25rem}
 .category-index a{font-size:.8125rem;min-height:48px;line-height:1.45}
 .principles li{gap:1rem;padding:1.75rem 0}
 .principles h3{line-height:1.3}
 .service-tab{padding:1.25rem 0}
 .service-panel h3{font-size:clamp(2rem,8vw,2.5rem);line-height:1.15}
 .service-panel>p{font-size:1.0625rem;line-height:1.65;margin:1.25rem 0 1.5rem}
 .service-destinations a{line-height:1.5;gap:1rem}
 .service-destinations a span{flex-shrink:0}
 .contact h2{font-size:clamp(2.5rem,10vw,3.6rem);line-height:1.08}
 .contact-actions{margin-top:2rem;gap:1.5rem}
 .footer-bar .label{font-size:.75rem;line-height:1.7;letter-spacing:.12em}
 .service-page h1{font-size:clamp(2.5rem,9vw,3.5rem);line-height:1.1}
 .service-page .intro{font-size:1.0625rem;line-height:1.7;margin:1.5rem 0}
 .breadcrumbs{font-size:.8125rem;line-height:1.6;gap:.5rem;margin-bottom:1.5rem}
 .service-location{font-size:.875rem;line-height:1.6}
 .service-content{margin-top:3rem}
 .service-content h2,.service-faq h2,.service-bottom h2{font-size:2.25rem;line-height:1.15;margin-bottom:1.25rem}
 .service-faq summary{font-size:1.0625rem;line-height:1.5}
 .related-services{gap:1rem 1.5rem;line-height:1.6}
 .quote-dialog h2{font-size:2.125rem;line-height:1.1}
 .enquiry-intro{font-size:1rem;line-height:1.6;margin:1rem 0 1.5rem}
 .form-grid label{font-size:.875rem;line-height:1.5;gap:.5rem}
 input,select,textarea{font-size:16px;line-height:1.5;min-height:48px}
 .form-grid textarea{min-height:8rem}
 .enquiry .project-button{width:100%;justify-content:space-between;gap:1rem;line-height:1.5;padding:1rem}
 #form-status,.form-alternative{font-size:.875rem;line-height:1.6;overflow-wrap:anywhere}
 .mobile-quote{font-size:1rem;line-height:1.5;min-height:56px;padding:1rem}
}

/* Keep the artwork at its intended size and reserve a separate signature band. */
@media(min-width:768px){
 .hero{height:auto;min-height:100svh}
 .hero-stage{min-height:min(calc(60.32vw + 4rem),calc(60.32svh + 4rem));padding-bottom:4rem}
 .hero-image{height:112%;top:calc(40% - 2rem)}
 .hero-subtitle{bottom:0;line-height:1.5}
}


/* Two collections share one overview and enquiry flow. */
.gallery-sections{display:grid;grid-template-columns:1fr 1fr;gap:1rem;max-width:52rem;margin:2rem 0}
.gallery-sections a{display:flex;align-items:center;gap:1rem;min-height:64px;padding:1.1rem 1.25rem;border:1px solid var(--line-strong);font-size:1.125rem;line-height:1.4;transition:border-color .2s,color .2s}
.gallery-sections a>.label,.gallery-sections a>span:last-child{color:var(--accent)}
.gallery-sections a>span:last-child{margin-left:auto}
.gallery-sections a:hover{border-color:var(--accent);color:var(--accent)}
.gallery-section-actions{display:flex;flex-wrap:wrap;gap:1.5rem 2rem;align-items:center;margin-top:1.5rem}
.service-gallery#weddings{padding-top:3rem;border-top:1px solid var(--line-strong)}
@media(max-width:767px){.gallery-sections{gap:.75rem}.gallery-sections a{font-size:1rem;padding:.875rem;gap:.625rem;min-height:64px}.gallery-sections a>.label{display:none}.gallery-section-actions{gap:1.5rem}.service-gallery#weddings{padding-top:2.5rem}}

/* Film formats retain their native framing in distinct portfolio collections. */
.film-format{margin-top:4rem}
.film-format-heading{display:flex;justify-content:space-between;align-items:baseline;gap:1.5rem}
.film-format-heading h3{font-family:var(--font-display);font-weight:400;text-transform:uppercase;font-size:3rem;line-height:1.1}
.film-format-heading>.label{color:var(--muted);white-space:nowrap}
.film-format-intro{color:var(--muted);max-width:52ch;margin-top:1rem}
.film-format .films-grid{margin-top:2rem}
.films-grid--horizontal .film-cover{aspect-ratio:16/9}
.films-grid--vertical{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
.films-grid--vertical .film-cover{aspect-ratio:9/16}
.films-grid--vertical .film-cover img{object-position:center}
.films-grid--vertical .work-caption h3{font-size:1.125rem;line-height:1.4}
.films-grid--vertical .work-caption>.label{display:none}
#vertical-films{border-top:1px solid var(--line-strong);padding-top:4rem}
.film-project-player{width:min(100%,calc(75svh * 16 / 9));aspect-ratio:16/9;margin:2rem auto 0}
.film-project-player--vertical{width:min(100%,28rem,calc(75svh * 9 / 16));aspect-ratio:9/16}
.film-project-player iframe{display:block;width:100%;height:100%;border:0}
.film-project-links{margin-top:2rem}
.film-project-links h3{margin-bottom:1rem}
.film-project-links .text-link{line-height:1.5;letter-spacing:.1em}
@media(max-width:767px){
 .film-format{margin-top:3rem}
 .film-format-heading h3{font-size:2rem}
 .film-format-heading>.label{font-size:.6875rem}
 .film-format-intro{font-size:1rem}
 .films-grid--vertical{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 1rem}
 .films-grid--vertical .work-caption h3{font-size:1rem}
 .films-grid--vertical .film-play{width:44px;height:44px;font-size:1rem}
 .films-grid--vertical .film-duration{right:.5rem;bottom:.5rem;font-size:.6875rem}
 .films-grid--vertical .film-external{font-size:.625rem;line-height:1.5;letter-spacing:.1em}
 #vertical-films{padding-top:3rem}
}

/* Commercial filming: the booking experience and the people behind the work. */
.shoot-hero{display:grid;grid-template-columns:1fr 1.05fr;gap:3.5rem;align-items:center}
.commercial-page .shoot-hero h1{font-size:clamp(3rem,5.2vw,5.5rem);line-height:1.04;max-width:16ch}
.commercial-page .shoot-hero .intro{font-size:1.125rem;line-height:1.7;margin:1.5rem 0}
.shoot-byline{font-size:.875rem;color:var(--muted);line-height:1.6;max-width:45ch}
.shoot-hero-photo{margin:0;min-width:0}
.shoot-photo{display:block;position:relative}
.shoot-photo img{display:block;width:100%;height:auto;filter:none}
.shoot-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem 2rem;margin-top:2rem}
.shoot-actions .project-button{gap:1.5rem}
.shoot-reply{font-size:.875rem;line-height:1.6;color:var(--muted);max-width:48ch;margin-top:1.25rem}
.shoot-section{margin-top:6rem}
.shoot-section h2{font-size:clamp(2.5rem,4.4vw,4.5rem);line-height:1.08}
.shoot-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:3rem;margin-bottom:2.5rem}
.shoot-section-head>p{max-width:39ch;color:var(--muted);font-size:1.0625rem;line-height:1.7}
.shoot-onset{display:grid;grid-template-columns:1.15fr 1fr;gap:3.5rem;align-items:center}
.shoot-experience-points>div{border-top:1px solid var(--line);padding:1.4rem 0}
.shoot-experience-points .label{color:var(--accent);font-size:.75rem}
.shoot-experience-points h3{font-size:1.45rem;line-height:1.3;margin:.65rem 0}
.shoot-experience-points p{font-size:1rem;color:var(--muted);line-height:1.7}
.shoot-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem;list-style:none;margin:0 0 3rem;padding:0}
.shoot-steps li{border-top:1px solid var(--line-strong);padding-top:1.4rem}
.shoot-steps .label{font-size:.6875rem;letter-spacing:.12em;color:var(--accent)}
.shoot-steps h3{font-size:1.45rem;line-height:1.3;margin:1rem 0}
.shoot-steps p{font-size:1rem;line-height:1.7;color:var(--muted)}
.shoot-photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.shoot-photo-pair h3{font-size:1.5rem;line-height:1.3;margin:1.25rem 0 .75rem}
.shoot-photo-pair p{max-width:48ch;color:var(--muted);font-size:1rem;line-height:1.7}
.shoot-team{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:3.5rem}
.shoot-team p:not(.eyebrow){color:var(--muted);margin-top:1.25rem;font-size:1.0625rem;line-height:1.7}
.shoot-team .text-link{margin-top:1.75rem}
.shoot-films{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.shoot-film-cover{display:block;position:relative;aspect-ratio:16/9;background:var(--surface);overflow:hidden}
.shoot-film-cover img{display:block;width:100%;height:100%;object-fit:cover}
.shoot-watch{position:absolute;left:1rem;bottom:1rem;display:flex;align-items:center;gap:1.5rem;background:var(--accent);color:var(--background);font-size:.8125rem;font-weight:600;padding:.8rem 1rem}
.shoot-film h3{font-size:1.25rem;line-height:1.4;margin-top:1rem}
.shoot-film-library{border-block:1px solid var(--line);margin-top:2.5rem;padding:1.5rem 0}
.shoot-film-library>summary{cursor:pointer;font-size:1.125rem;line-height:1.5}
.shoot-library-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem}
.shoot-library-grid ul{list-style:none;padding:0}
.shoot-library-grid li{margin-top:1rem}
.shoot-library-grid .text-link{line-height:1.6;font-size:.8rem;letter-spacing:.08em}
.shoot-booking{display:grid;grid-template-columns:1fr 1fr;gap:4rem;background:var(--surface);padding:3rem}
.shoot-booking>div>p:not(.eyebrow){margin:1.5rem 0;line-height:1.7;color:var(--muted);font-size:1.0625rem}
.shoot-scope h3{font-size:1.7rem;line-height:1.3}
.shoot-scope ul{padding-left:1.1rem;list-style:disc;color:var(--muted)}
.shoot-scope li{padding-left:.3rem;margin:1rem 0;font-size:1rem;line-height:1.7}
.commercial-page .service-bottom h2{font-size:clamp(2.5rem,4vw,3.5rem)}
@media(min-width:768px) and (max-width:1024px){.shoot-hero,.shoot-onset,.shoot-team{gap:2rem}.shoot-section-head{gap:2rem}.shoot-steps{grid-template-columns:1fr 1fr}.shoot-booking{gap:2rem;padding:2rem}}
@media(max-width:767px){
 .shoot-hero,.shoot-onset,.shoot-team,.shoot-booking{grid-template-columns:1fr;gap:2rem}
 .commercial-page .shoot-hero h1{font-size:clamp(2.75rem,10vw,3.5rem);line-height:1.08}
 .commercial-page .shoot-hero .intro{font-size:1.0625rem}
 .shoot-actions{gap:1.5rem;margin-top:1.75rem}
 .shoot-actions .project-button{min-height:48px;padding:1rem 1.25rem}
 .shoot-reply{font-size:.875rem}
 .shoot-section{margin-top:4rem}
 .shoot-section h2{font-size:clamp(2.25rem,9vw,3rem)}
 .shoot-section-head{display:block;margin-bottom:2rem}
 .shoot-section-head>p{margin-top:1.5rem;font-size:1rem;max-width:none}
 .shoot-onset{gap:1.5rem}
 .shoot-experience-points h3,.shoot-photo-pair h3{font-size:1.375rem}
 .shoot-steps{grid-template-columns:1fr;gap:1.5rem;margin-bottom:2.5rem}
 .shoot-steps h3{font-size:1.375rem;margin:.75rem 0}
 .shoot-photo-pair,.shoot-films,.shoot-library-grid{grid-template-columns:1fr;gap:2rem}
 .shoot-team{gap:2rem}
 .shoot-film-library>summary{font-size:1rem}
 .shoot-booking{padding:1.5rem;gap:2rem}
 .shoot-booking .project-button{gap:1.5rem}
 .shoot-booking h2{font-size:2.25rem}
 .shoot-scope h3{font-size:1.5rem}
}

@media(max-width:767px){.shoot-hero .shoot-actions{gap:1.25rem}.shoot-hero .shoot-actions .text-link{font-size:.6875rem;letter-spacing:.08em;gap:.75rem;min-height:48px;padding-bottom:0}}

/* A single client quote stays fully visible on desktop and mobile. */
.testimonial-grid--single{display:block;max-width:72rem;margin-top:2.5rem;overflow:visible;padding-bottom:0}.testimonial--featured{padding:clamp(1.5rem,3vw,3rem);border-left:3px solid var(--accent)}.testimonial--featured blockquote{font-size:clamp(1.1rem,1.65vw,1.65rem);line-height:1.65;max-width:65ch}.testimonial--featured figcaption{font-size:1rem;color:var(--foreground);font-weight:500}

.testimonial-grid--stack{display:grid;grid-template-columns:1fr;grid-auto-flow:row;grid-auto-columns:auto;gap:1.25rem;max-width:72rem;margin-top:2.5rem;overflow:visible;scroll-snap-type:none;padding-bottom:0}

.analytics-consent{position:fixed;z-index:10000;right:1rem;bottom:1rem;left:1rem;max-width:43rem;margin:auto;padding:1rem 1.25rem;background:#18181c;color:#fff;border:1px solid #6b6b70;box-shadow:0 1rem 2.5rem #0009;font-family:Onest,Arial,sans-serif}
.analytics-consent p{margin:0 0 .85rem;font-size:.875rem;line-height:1.5}
.analytics-consent-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem}
.analytics-consent button{min-height:44px;padding:.5rem .9rem;border:1px solid #aaa;background:transparent;color:#fff;font:inherit;font-size:.8rem;cursor:pointer}
.analytics-consent button:nth-child(2){border-color:var(--accent);background:var(--accent);color:var(--background);font-weight:600}
.analytics-consent a{color:#fff;font-size:.8rem;text-decoration:underline;text-underline-offset:3px}
.analytics-consent :focus-visible{outline:2px solid #fff;outline-offset:3px}
@media(max-width:420px){.analytics-consent{padding:.9rem}.analytics-consent-actions button{flex:1}.analytics-consent-actions a{width:100%}}

/* Flat cobalt identity; the portrait and lettering share one ground line. */
.hero-name{color:var(--cobalt);-webkit-text-stroke:1px #348fb5;text-shadow:none}
.nav .nav-quote{background:var(--cobalt);border-color:var(--accent);box-shadow:none}
@media(min-width:768px){.hero-stage{--hero-ground:3rem}.hero-name{position:absolute;inset:auto 0 calc(var(--hero-ground) + .06em)}.hero-image{top:auto;bottom:calc(var(--hero-ground) + min(1.74vw,1.74svh));transform:translateX(-50%)}}
.service-gallery-link:focus-visible{outline-color:var(--accent)}
