/* West Drone Co. / FILMman Studio concept. Palette from the client's own mark: cream and black, with sky from the aerial work. */
@font-face{font-family:"Big Shoulders Display";font-weight:900;font-style:normal;font-display:swap;src:url(../fonts/big-shoulders-display-latin-900-normal.woff2) format("woff2")}
@font-face{font-family:"Instrument Serif";font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/instrument-serif-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Instrument Serif";font-weight:400;font-style:italic;font-display:swap;src:url(../fonts/instrument-serif-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Familjen Grotesk";font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/familjen-grotesk-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Familjen Grotesk";font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/familjen-grotesk-latin-600-normal.woff2) format("woff2")}

:root{
  --ink:#0B0D0F; --ink2:#14191D; --cream:#ECE5D5; --cream2:#E0D7C2; --sky:#86B5DA; --sky-d:#3F6F96;
  --line:rgba(236,229,213,.18); --line-d:rgba(11,13,15,.16);
  --display:"Big Shoulders Display","Arial Narrow",Impact,sans-serif;
  --body:"Familjen Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;
  --gut:max(20px,env(safe-area-inset-left,0px)); --gutr:max(20px,env(safe-area-inset-right,0px));
  --ease:cubic-bezier(.2,.85,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--ink);color:var(--cream);font:400 1.0625rem/1.55 var(--body);overflow-x:hidden}
img,svg,video{display:block;max-width:100%}
a{color:inherit}
ul,ol{list-style:none}
button{font:inherit;color:inherit;cursor:pointer}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:12px;top:-60px;background:var(--cream);color:var(--ink);padding:10px 16px;border-radius:99px;z-index:100;text-decoration:none}
.skip:focus{top:12px}
:focus-visible{outline:2px solid var(--sky);outline-offset:3px}
.wrap{width:min(1240px,100%);margin-inline:auto;padding-left:var(--gut);padding-right:var(--gutr)}
.nowrap{white-space:nowrap}

/* type */
.h1,.h2,h3,.wordmark,.foot-mark,.marq span,.gauge-read{font-family:var(--display);font-weight:900;text-transform:uppercase}
.h2{font-size:clamp(3rem,8.5vw,7.5rem);line-height:.88;letter-spacing:-.005em;text-wrap:balance}
.intro{max-width:46ch;font-size:1.15rem;color:inherit;opacity:.82;margin-top:1.4rem}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 26px;border-radius:99px;font:600 1rem var(--body);text-decoration:none;border:1.5px solid transparent;transition:transform .35s var(--ease),background .25s,color .25s,border-color .25s}
.btn:hover{transform:translateY(-2px)}
.btn-cream{background:var(--cream);color:var(--ink)}
.btn-sky{background:var(--sky);color:var(--ink)}
.btn-ghost{border-color:var(--line);color:var(--cream)}
.btn-ghost:hover{border-color:var(--cream)}
.btn-ink{background:var(--ink);color:var(--cream)}

/* nav */
.nav{position:fixed;inset:0 0 auto 0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:calc(14px + env(safe-area-inset-top,0px)) calc(var(--gutr) + 150px) 14px var(--gut);transition:background .35s,backdrop-filter .35s,color .35s;color:var(--cream)}
.nav-cta{position:fixed;z-index:61;top:calc(14px + env(safe-area-inset-top,0px));right:var(--gutr)}
.nav.on-paper{color:var(--ink)}
.nav.on-paper .wordmark img{filter:invert(1)}
.wordmark img{transition:filter .35s}
.paper-on .gauge{opacity:0}
.gauge{transition:opacity .4s}
.nav.is-solid:not(.on-paper){background:rgba(11,13,15,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.wordmark{text-decoration:none;line-height:0;display:block}
.wordmark img{height:38px;width:auto;display:block}
.nav-links{display:none;gap:28px;margin-left:auto}
.nav-links a{text-decoration:none;font-weight:500;opacity:.8}
.nav-links a:hover{opacity:1}
@media(min-width:860px){.nav-links{display:flex}}

/* altitude gauge */
.gauge{position:fixed;right:max(18px,env(safe-area-inset-right,0px));top:50%;transform:translateY(-50%);z-index:40;display:none;align-items:center;gap:12px;color:#ECE5D5;text-shadow:0 1px 12px rgba(11,13,15,.7);pointer-events:none}
@media(min-width:980px){.gauge{display:flex}}
.gauge-scale{position:relative;width:14px;height:240px;background:repeating-linear-gradient(to bottom,currentColor 0 1px,transparent 1px 20px);opacity:.7;transform:scaleX(-1)}
.gauge-scale::after{content:"";position:absolute;left:-8px;width:30px;height:2px;background:currentColor;top:calc(var(--g,0)*100%);transform:translateY(-1px)}
.gauge-read{font-size:1.5rem;line-height:1;min-width:3.4ch;text-align:left}
.gauge-read small{font-size:.8rem;margin-left:3px;opacity:.7}

/* HERO (version B): off-white paper, a ribbon of work, a grid, then the footage opens up */
.hero{position:relative;height:560svh}
.hero-pin{position:sticky;top:0;height:100svh;overflow:hidden;perspective:1500px;perspective-origin:50% 50%}
.anchor{position:absolute;left:0;bottom:100svh;width:1px;height:1px}
.paper{position:absolute;inset:0;z-index:1;background:#F2EFE8;color:var(--ink);display:grid;place-items:start center;padding-top:clamp(70px,11svh,120px);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.big{font-family:var(--display);font-weight:900;text-align:center;line-height:.8;letter-spacing:-.01em;font-size:min(25vw,31svh);text-transform:none;user-select:none}
.big span{display:block}
.big span:nth-child(2){margin-top:.02em}
.hero-copy{position:absolute;inset:0;z-index:2;padding:clamp(86px,15svh,150px) var(--gutr) max(34px,env(safe-area-inset-bottom,0px)) var(--gut);color:var(--ink);display:flex;flex-direction:column;justify-content:space-between;will-change:opacity}
.edit{font-family:"Instrument Serif",Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(2.7rem,7.2vw,7.4rem);line-height:.96;letter-spacing:-.022em;max-width:11.5em;text-wrap:balance;animation:fade 1.1s .15s both}
.edit em{font-style:italic;color:var(--sky-d)}
.coords{position:absolute;right:var(--gutr);top:clamp(92px,15svh,150px);font:600 .74rem/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--sky-d);display:none;align-items:center;gap:10px;animation:fade 1s .9s both}
.coords span{width:28px;height:1.5px;background:currentColor}
@media(min-width:900px){.coords{display:flex}}
.hero-act{align-self:flex-end;display:flex;flex-direction:column;align-items:flex-end;text-align:right}
.lede{max-width:27ch;font-size:clamp(1rem,1.8vw,1.25rem);animation:fade 1s .5s both}
.hero-cta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-top:1.1rem;animation:fade 1s .8s both}
.flight-line{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.flight-line path{fill:none;stroke:var(--sky-d);stroke-width:1.5;stroke-linecap:round;opacity:.75}
.start-old .edit,.start-old .coords,.start-old .flight-line{display:none}
.start-old .hero-act{align-self:flex-start;align-items:flex-start;text-align:left}
.start-old .hero-copy{justify-content:flex-end}
html:not(.start-old):not(.cinema) .big{display:none}
.cell:not(.settled){pointer-events:none}
.btn-line{border-color:rgba(11,13,15,.4);color:var(--ink)}
.btn-line:hover{border-color:var(--ink)}
@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.work-wrap{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:84px var(--gutr) 24px var(--gut);pointer-events:none}
.work-head{width:min(100%,calc((100svh - 250px)*2.25),1240px);display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;opacity:0;pointer-events:none}
.work-head.is-on{pointer-events:auto}
.work-head .h2{font-size:clamp(2.4rem,5vw,4.4rem)}
.chips{display:flex;gap:8px}
.chip{border:1.5px solid var(--line);border-radius:99px;padding:8px 18px;background:rgba(11,13,15,.35);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:background .25s,color .25s,border-color .25s}
.chip.is-on{background:var(--cream);color:var(--ink);border-color:var(--cream)}
.grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;width:min(100%,calc((100svh - 250px)*2.25),1240px)}
.cell{position:relative;aspect-ratio:3/4;border-radius:14px;will-change:transform,opacity;pointer-events:auto;transition:opacity .45s}
.cell .media{position:absolute;inset:0;border-radius:inherit;box-shadow:0 14px 34px rgba(11,13,15,.28)}
.cell[hidden]{display:none}
.cell.is-fading{opacity:0}
.cell small{position:absolute;left:8px;bottom:8px;z-index:3;font:600 .62rem/1 var(--body);letter-spacing:.08em;text-transform:uppercase;padding:5px 8px;border-radius:99px;background:rgba(11,13,15,.6);color:var(--cream);opacity:0;transition:opacity .4s}
.cell.settled small{opacity:1}
@media(max-width:699px){
  .grid{grid-template-columns:repeat(3,1fr);gap:8px;width:min(100%,calc((100svh - 230px)*.5625))}
  .work-head{width:min(100%,calc((100svh - 230px)*.5625))}
  .work-wrap{padding-top:78px}
  .work-head .h2{font-size:2.2rem}
}
.cue{position:absolute;left:50%;margin-left:-.5em;bottom:34px;z-index:4;display:none;flex-direction:column;align-items:center;gap:10px;font-size:.8rem;opacity:.7;writing-mode:vertical-rl;color:var(--ink);transition:opacity .4s}
.cue span{width:1px;height:48px;background:linear-gradient(currentColor,transparent);animation:cue 2s infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media(min-width:900px){.cue{display:flex}}

/* media tile (shared) */
.media{position:relative;border-radius:14px;overflow:hidden;background:var(--ink2);isolation:isolate}
.media img,.media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.media .ph-chip{position:absolute;left:8px;bottom:8px;z-index:2;font:600 .64rem/1 var(--body);letter-spacing:.02em;background:rgba(11,13,15,.72);color:var(--cream);padding:5px 8px;border-radius:99px;max-width:calc(100% - 16px)}
.media::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(236,229,213,.14)}

/* reveal system: hidden only when JS is running, with a failsafe */
.js-reveal .rv{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js-reveal .mask{clip-path:inset(0 0 100% 0);transform:translateY(40px);transition:clip-path 1.1s var(--ease),transform 1.1s var(--ease)}
.js-reveal .rv.in,.js-reveal .mask.in,.js-reveal.rv-fail .rv,.js-reveal.rv-fail .mask{opacity:1;transform:none;clip-path:inset(-10% -2% -10% -2%)}

/* SERVICES (cream) */
.services{color:var(--cream);padding:clamp(80px,12vw,160px) 0;position:relative}
.panels{display:flex;gap:14px;margin-top:clamp(40px,6vw,80px);min-height:560px}
.panel{position:relative;flex:1;border-radius:22px;overflow:hidden;color:var(--cream);background:rgba(11,13,15,.55);box-shadow:inset 0 0 0 1px var(--line);backdrop-filter:blur(6px);transition:flex .8s var(--ease);display:flex;align-items:flex-end;outline-offset:4px;cursor:pointer}
.panel.is-open{flex:1.7}
.panel-bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.06);transition:transform 1.2s var(--ease)}
.panel.is-open .panel-bg{transform:scale(1)}
.panel-bg img,.panel-bg video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.panel-bg video{opacity:0;transition:opacity .8s}.panel-bg video.on{opacity:1}
.panel-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(11,13,15,.88),rgba(11,13,15,.22) 70%)}
.tag{position:absolute;top:18px;left:18px;z-index:2;display:inline-flex;align-items:center;gap:10px;padding:8px 8px 8px 14px;border-radius:99px;background:rgba(11,13,15,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:inset 0 0 0 1px var(--line);text-decoration:none;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cream)}
.tag .dot{width:8px;height:8px;border-radius:50%;background:var(--sky)}
.tag b{font-weight:600;padding:5px 12px;border-radius:99px;background:var(--cream);color:#0b0d0f;letter-spacing:.04em}
.panel-body{position:relative;padding:clamp(22px,3vw,40px);width:100%}
.panel h3{font-size:clamp(3.4rem,8vw,7rem);line-height:.85}
.panel p{max-width:36ch;margin-top:.8rem}
.panel ul{margin-top:1rem;display:grid;gap:.35rem}
.panel li{padding-left:1.1rem;position:relative}
.panel li::before{content:"";position:absolute;left:0;top:.72em;width:.5rem;height:1.5px;background:var(--sky)}
.panel .more{display:inline-block;margin-top:1.4rem;font-weight:600;text-decoration:none;border-bottom:1.5px solid var(--sky);padding-bottom:2px}
.panel:not(.is-open) p,.panel:not(.is-open) ul,.panel:not(.is-open) .more{opacity:0;transform:translateY(12px)}
.panel p,.panel ul,.panel .more{transition:opacity .6s .15s,transform .6s .15s var(--ease)}
@media(max-width:859px){.panels{flex-direction:column;min-height:0}.panel,.panel.is-open{flex:none;min-height:420px}.panel:not(.is-open) p,.panel:not(.is-open) ul,.panel:not(.is-open) .more{opacity:1;transform:none}}

/* PROCESS */
.process{padding:clamp(80px,11vw,150px) 0}
.flight{position:relative;margin-top:clamp(36px,5vw,70px)}
.steps{display:grid;grid-auto-rows:1fr}
.step{min-height:min(46vh,340px);padding:0 0 0 48px;display:flex;flex-direction:column;justify-content:center}
.step h3{font-size:clamp(2.6rem,6vw,5rem);line-height:.9}
.step p{max-width:34ch;margin-top:.6rem;opacity:.82}
.path{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.path-d{display:none}
.p-ghost{fill:none;stroke:var(--line);stroke-width:1.5;stroke-dasharray:3 7}
.p-live{fill:none;stroke:var(--sky);stroke-width:2.5;stroke-linecap:round}
.reticle{position:absolute;left:0;top:0;width:64px;height:64px;margin:-32px 0 0 -32px;pointer-events:none;will-change:transform;filter:drop-shadow(0 14px 14px rgba(0,0,0,.45))}
.drone{width:100%;height:100%;overflow:visible}
.d-bank{transform-origin:0 0;will-change:transform}
.d-arm{stroke:var(--cream);stroke-width:3;stroke-linecap:round;fill:none;opacity:.9}
.d-rot circle{fill:rgba(134,181,218,.18);stroke:var(--sky);stroke-width:1.2}
.d-blade{stroke:var(--cream);stroke-width:1.6;stroke-linecap:round;fill:none;opacity:.75}
.d-blade path{transform-box:fill-box;transform-origin:center;animation:spin .16s linear infinite}
.d-body{fill:var(--cream)}
.d-lens{fill:#0b0d0f;stroke:var(--sky);stroke-width:1.6}
@keyframes spin{to{transform:rotate(360deg)}}
.step h3,.step p{transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js-reveal .step:not(.passed) h3{opacity:.32}
.js-reveal .step:not(.passed) p{opacity:.3}
.step.passed h3{opacity:1}
@media (prefers-reduced-motion:reduce){.d-blade path{animation:none}}
@media(min-width:860px){
  .path-m{display:none}.path-d{display:block}
  .step{padding:0;width:44%}
  .step-l{justify-self:end;text-align:right;align-items:flex-end}
  .step-r{justify-self:start}
  /* the flight path sits at 32% and 68%: text goes on the opposite side */
  .step-l{margin-right:0}
  .steps{grid-template-columns:1fr}
}

/* AREAS marquee */
.areas{padding:clamp(40px,6vw,80px) 0;overflow:hidden}
.marq{overflow:hidden;white-space:nowrap}
.marq-track{display:inline-flex;gap:.5em;will-change:transform}
.marq span{font-size:clamp(4.5rem,15vw,13rem);line-height:.95;color:transparent;-webkit-text-stroke:1.5px var(--cream);padding-right:.4em}
.marq-b span{-webkit-text-stroke:0;color:var(--sky);opacity:.9}

/* ENQUIRY (cream) */
.enquire{color:var(--cream);padding:clamp(80px,11vw,150px) 0}
.enq-grid{display:grid;gap:clamp(36px,5vw,80px)}
@media(min-width:900px){.enq-grid{grid-template-columns:1fr 1fr;align-items:start}}
.contact{margin-top:2rem;display:grid;gap:.6rem}
.contact a{color:var(--cream);font:700 1.5rem var(--display);text-transform:uppercase;letter-spacing:.03em;text-decoration:none;border-bottom:2px solid var(--sky)}
.form{display:grid;gap:18px;background:#F4EFE3;border-radius:22px;padding:clamp(20px,3vw,36px);box-shadow:0 1px 0 rgba(11,13,15,.06),0 24px 60px -30px rgba(11,13,15,.35)}
.pick{border:0;display:flex;flex-wrap:wrap;gap:8px}
.pick legend{font-weight:600;margin-bottom:8px}
.pick label{cursor:pointer}
.pick input{position:absolute;opacity:0}
.pick span{display:inline-block;padding:10px 22px;border:1.5px solid var(--line-d);border-radius:99px;transition:background .2s,color .2s}
.pick input:checked+span{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.pick input:focus-visible+span{outline:2px solid var(--sky-d);outline-offset:3px}
.field{display:grid;gap:6px;font-weight:600}
.field input,.field textarea{font:400 1rem var(--body);padding:13px 14px;border:1.5px solid var(--line-d);border-radius:12px;background:#fff;color:var(--ink);width:100%}
.field input:focus,.field textarea:focus{outline:2px solid var(--sky-d);border-color:transparent}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.form .btn{justify-self:start}
.form-msg{min-height:1.4em;font-weight:500}
.form-msg.err{color:#9B2C1F}

/* FOOTER */
.foot{background:linear-gradient(to bottom,rgba(11,13,15,0),rgba(11,13,15,.5) 55%);text-shadow:0 2px 24px rgba(11,13,15,.55);padding:clamp(60px,8vw,110px) 0 max(40px,env(safe-area-inset-bottom,0px))}
.foot-grid{display:grid;gap:18px}
.foot-mark{font-size:clamp(3.4rem,13vw,11rem);line-height:.85;letter-spacing:-.005em}
.foot-sub{max-width:46ch;opacity:.8}
.ig{display:flex;flex-wrap:wrap;gap:10px}
.ig a{display:inline-flex;padding:9px 18px;border:1.5px solid var(--line);border-radius:99px;text-decoration:none}
.ig a:hover{border-color:var(--cream)}
.ribbon{margin-top:26px;font-size:.85rem;opacity:.5}

/* reduced motion: static, calm */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .ring-intro,.tile-in,.h1-line>span,.lede,.hero-cta{animation:none}
  .js-reveal .rv,.js-reveal .mask{opacity:1;transform:none;clip-path:none;transition:none}
  .cue span{animation:none}
}

/* persistent footage layer: one video (or the drifting placeholder) behind the whole page */
.bg{position:fixed;inset:0;z-index:0;overflow:hidden;background:#0B0D0F;contain:strict}
@keyframes drift{from{transform:translate3d(-2%,-1%,0) scale(1.04)}to{transform:translate3d(2%,1.5%,0) scale(1.12)}}
.bg video,.bg-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bg video{opacity:0;transition:opacity 1.4s}
.bg video.on{opacity:1}
.scrim{position:fixed;inset:0;z-index:1;background:#0B0D0F;opacity:var(--scrim,.45);pointer-events:none}
main,.foot{position:relative;z-index:2}
.nav,.gauge{z-index:60}
.bg-chip{position:fixed;left:var(--gut);bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:50;font-size:.72rem;background:rgba(11,13,15,.7);padding:6px 11px;border-radius:99px;opacity:.85;pointer-events:none}
/* breaks: the content clears and the footage takes the screen */
.break{min-height:88svh;display:grid;place-items:center;padding:0 var(--gutr) 0 var(--gut);text-align:center}
.break .h2{font-size:clamp(4rem,16vw,15rem);text-shadow:0 2px 40px rgba(11,13,15,.5)}
.break small{display:block;margin-top:1rem;font-size:1.05rem;opacity:.9;text-shadow:0 1px 18px rgba(11,13,15,.8)}

/* CINEMA START (default): black screen, giant name, letterbox bars, timecode, optional projector sound */
.big .ln{display:block;overflow:hidden;padding:0 .04em .06em}
.big .ln i{display:block;font-style:normal;animation:up 1.2s var(--ease) both}
.big .ln:nth-child(1) i{animation-delay:.25s}.big .ln:nth-child(2) i{animation-delay:.42s}
@keyframes up{from{transform:translateY(105%)}to{transform:none}}
.slate,.bars,.snd{display:none}
.cinema .paper{background:#07080A;color:var(--cream);place-items:center;padding-top:0;padding-bottom:9svh}
.cinema .big{color:var(--cream);font-size:min(24vw,27svh);margin-top:6svh}
.cinema .hero-copy{color:var(--cream);padding-bottom:calc(7svh + 24px)}
.cinema .edit{font-size:clamp(1.45rem,2.8vw,2.5rem);max-width:19em}
.cinema .coords{display:none}
.cinema .btn-ink{background:var(--cream);color:var(--ink)}
.cinema .btn-line{border-color:var(--line);color:var(--cream)}
.cinema .btn-line:hover{border-color:var(--cream)}
.cinema .flight-line path{stroke:var(--sky);opacity:.6}
.cinema .cue{color:var(--cream);bottom:calc(7svh + 18px)}
.cinema .slate{display:flex;position:absolute;right:var(--gutr);top:clamp(86px,13svh,120px);align-items:center;gap:10px;font:600 .78rem/1 var(--body);letter-spacing:.16em;color:var(--cream);font-variant-numeric:tabular-nums;animation:fade 1s 1.1s both}
.slate b{width:9px;height:9px;border-radius:50%;background:#E5483B;animation:rec 1.2s steps(2) infinite}
@keyframes rec{50%{opacity:.15}}
.cinema .bars{display:block;position:absolute;inset:0;z-index:4;pointer-events:none}
.bars i{position:absolute;left:0;right:0;height:calc(7svh * var(--lb,1));background:#000}
.bars i:first-child{top:0}.bars i:last-child{bottom:0}
.cinema .snd{display:inline-flex;position:fixed;left:var(--gut);bottom:max(14px,env(safe-area-inset-bottom));z-index:62;align-items:center;gap:10px;padding:9px 16px 9px 12px;border-radius:99px;border:1.5px solid var(--line);background:rgba(11,13,15,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--cream);font:600 .72rem/1 var(--body);letter-spacing:.1em;text-transform:uppercase}
.snd[hidden]{display:none!important}
.eq{display:inline-flex;align-items:flex-end;gap:2px;height:12px}
.eq i{width:2px;height:4px;background:currentColor}
.snd[aria-pressed=true] .eq i{animation:eq .8s ease-in-out infinite alternate}
.eq i:nth-child(2){animation-delay:.2s!important}.eq i:nth-child(3){animation-delay:.4s!important}
@keyframes eq{to{height:12px}}
@media(max-width:699px){.cinema .edit{max-width:58%}.cinema .slate{font-size:.64rem;gap:7px}}
@media(prefers-reduced-motion:reduce){.big .ln i,.slate b{animation:none}}

/* WINDOW START: giant letters as windows onto the footage, grain, viewfinder, graded footage */
.title-cv{display:none}
.win .title-cv{display:block;position:absolute;inset:0;width:100%;height:100%}
.win .paper{background:transparent;-webkit-mask-image:none;mask-image:none}
.win .paper:not(.drawn){background:#07080A}
.win .big{display:none}
.win .slate{z-index:2}
.bg video,.bg-poster{filter:contrast(1.1) saturate(1.08) brightness(1.02)}
.hud,.grain{display:none}
.win .hud{display:block;position:absolute;inset:0;z-index:5;pointer-events:none;color:var(--cream);transition:opacity .3s}
.hud .c{position:absolute;width:26px;height:26px;border:0 solid rgba(236,229,213,.75)}
.hud .tl{left:calc(var(--gut) + 6px);top:calc(7svh + 24px);border-width:1.5px 0 0 1.5px}
.hud .tr{right:calc(var(--gutr) + 6px);top:calc(7svh + 24px);border-width:1.5px 1.5px 0 0}
.hud .bl{left:calc(var(--gut) + 6px);bottom:calc(7svh + 24px);border-width:0 0 1.5px 1.5px}
.hud .br{right:calc(var(--gutr) + 6px);bottom:calc(7svh + 24px);border-width:0 1.5px 1.5px 0}
.tele{position:absolute;left:calc(var(--gut) + 34px);bottom:calc(7svh + 30px);display:flex;gap:26px;font:600 .72rem/1 var(--body);letter-spacing:.16em;text-transform:uppercase;font-variant-numeric:tabular-nums;opacity:.85}
.tele b{font-weight:600}
@media(max-width:699px){.tele{display:none}}
.win .grain{display:block;position:absolute;inset:-60px;z-index:6;pointer-events:none;background-size:160px 160px;opacity:.1;animation:grain .9s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}17%{transform:translate(-37px,21px)}33%{transform:translate(22px,-44px)}50%{transform:translate(-18px,-12px)}67%{transform:translate(41px,30px)}83%{transform:translate(-26px,38px)}100%{transform:translate(0,0)}}
.win .grain::after{content:"";position:absolute;inset:60px;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.5) 100%);animation:flick 2.3s steps(1) infinite}
@keyframes flick{0%{opacity:1}12%{opacity:.88}13%{opacity:1}57%{opacity:.93}58%{opacity:1}}
.scratch{position:absolute;top:0;bottom:0;width:1px;background:rgba(236,229,213,.35);z-index:6;pointer-events:none;opacity:0}
@media(prefers-reduced-motion:reduce){.win .grain,.win .grain::after{animation:none}}

.win .bg video,.win .bg-poster{filter:contrast(1.12) saturate(1.1) brightness(1.22)}

/* enquiry: guided 3-step brief. Without JS every step shows at once and the form still submits. */
.fprog,.fstep,.fhint,.brief{display:none}
.js-steps .fprog{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.fprog i{height:4px;border-radius:4px;background:var(--line-d);position:relative;overflow:hidden}
.fprog i::after{content:"";position:absolute;inset:0;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.fprog i.on::after{transform:scaleX(1)}
.js-steps .fstep{display:block;margin:-6px 0 0;font:600 .8rem var(--body);letter-spacing:.08em;text-transform:uppercase;color:rgba(11,13,15,.62)}
.fset{border:0;padding:0;margin:0;display:grid;gap:14px;min-width:0}
.fset legend{font:900 clamp(1.6rem,3vw,2.2rem)/1 var(--display);text-transform:uppercase;padding:0;margin-bottom:6px;color:var(--ink)}
.js-steps .fhint{display:block;margin:-6px 0 0;color:rgba(11,13,15,.62);font-size:.95rem}
.js-steps .fset{display:none}
.js-steps .fset.on{display:grid;animation:stepIn .45s cubic-bezier(.2,.7,.2,1) both}
.js-steps .fset.on.back{animation-name:stepInBack}
@keyframes stepIn{from{opacity:0;transform:translate3d(26px,0,0)}to{opacity:1;transform:none}}
@keyframes stepInBack{from{opacity:0;transform:translate3d(-26px,0,0)}to{opacity:1;transform:none}}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.card{cursor:pointer;display:block}
.card input,.chips2 input{position:absolute;opacity:0;pointer-events:none}
.card span{display:grid;grid-template-columns:26px 1fr;column-gap:12px;align-items:center;padding:14px 16px;border:1.5px solid var(--line-d);border-radius:16px;background:#fff;color:var(--ink);transition:transform .25s,background .25s,color .25s,border-color .25s,box-shadow .25s;position:relative}
.card svg{grid-row:1/3;width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.card b{font-weight:600;line-height:1.15}
.card em{font-style:normal;font-size:.85rem;opacity:.65}
.card:hover span{transform:translateY(-2px);box-shadow:0 10px 22px -14px rgba(11,13,15,.4)}
.card input:checked+span{background:var(--ink);color:var(--cream);border-color:var(--ink);transform:translateY(-2px)}
.card input:checked+span::after{content:"";position:absolute;right:12px;top:12px;width:8px;height:8px;border-radius:50%;background:var(--sky)}
.card input:focus-visible+span,.chips2 input:focus-visible+span{outline:2px solid var(--sky-d);outline-offset:3px}
.chips2{display:flex;flex-wrap:wrap;gap:8px}
.chips2 label{cursor:pointer}
.chips2 span{display:inline-block;padding:10px 18px;border:1.5px solid var(--line-d);border-radius:99px;background:#fff;color:var(--ink);transition:background .2s,color .2s,transform .2s}
.chips2 label:hover span{transform:translateY(-1px)}
.chips2 input:checked+span{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.field small{font-weight:400;opacity:.6}
.field input.bad,.field textarea.bad{outline:2px solid #9B2C1F;border-color:transparent}
.js-steps .brief{display:block;padding:12px 16px;border-radius:14px;background:rgba(11,13,15,.06);color:var(--ink)}
.brief small{display:block;font:600 .72rem var(--body);letter-spacing:.1em;text-transform:uppercase;opacity:.6}
.brief p{margin:2px 0 0;font-weight:500;line-height:1.35}
.fnav{display:flex;gap:10px;align-items:center}
.btn-ghost-d{border:1.5px solid var(--line-d);color:var(--ink);background:transparent}
.js-steps .fnav #fSend{display:none}
.js-steps.last .fnav #fSend{display:inline-flex}
.js-steps.last .fnav #fNext{display:none}
.fnav #fNext{display:none}
.js-steps .fnav #fNext{display:inline-flex}
.fdone{display:grid;gap:10px;justify-items:start;color:var(--ink)}
.fdone[hidden]{display:none}
.fdone svg{width:64px;height:64px;fill:none;stroke:var(--ink);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.fdone circle{stroke-dasharray:145;stroke-dashoffset:145;animation:ring .7s .1s ease-out forwards}
.fdone path{stroke-dasharray:40;stroke-dashoffset:40;animation:tick .45s .65s ease-out forwards}
@keyframes ring{to{stroke-dashoffset:0}}@keyframes tick{to{stroke-dashoffset:0}}
.fdone h3{font:900 2.2rem/1 var(--display);text-transform:uppercase;margin:4px 0 0}
.fdone p{margin:0}.fnote{opacity:.7;font-size:.95rem}
.form.sent>:not(.fdone){display:none!important}
@media (prefers-reduced-motion:reduce){.js-steps .fset.on{animation:none}.fdone circle,.fdone path{animation:none;stroke-dashoffset:0}.fprog i::after{transition:none}}
.form{color:var(--ink)}
.fset{grid-template-columns:minmax(0,1fr)}
.form .btn-ink,.cinema .form .btn-ink{background:var(--ink);color:var(--cream)}
.form{grid-template-columns:minmax(0,1fr)}.fset{width:100%;box-sizing:border-box}

.offer{padding:clamp(80px,11vw,150px) 0}
.offer-list{margin-top:clamp(32px,5vw,64px);counter-reset:o;display:grid;border-top:1px solid var(--line)}
.offer-item{counter-increment:o;display:grid;grid-template-columns:3.2rem 1fr;gap:6px 18px;padding:22px 0;border-bottom:1px solid var(--line)}
.offer-item::before{content:counter(o,decimal-leading-zero);font:600 .85rem/2.2 var(--body);letter-spacing:.14em;color:var(--sky)}
.offer-item h3{font-size:clamp(2rem,4.6vw,3.6rem);line-height:.95}
.offer-item p{grid-column:2;max-width:52ch;opacity:.82}
@media(min-width:860px){.offer-item{grid-template-columns:4rem 1.1fr 1fr;align-items:baseline}.offer-item p{grid-column:3}}
.pk-h{margin-top:clamp(48px,7vw,90px);font-size:clamp(2rem,4vw,3rem)}
.pk-grid{display:grid;gap:14px;margin-top:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.pk{border-radius:20px;padding:24px;background:rgba(11,13,15,.5);box-shadow:inset 0 0 0 1px var(--line);backdrop-filter:blur(6px);display:flex;flex-direction:column;gap:10px}
.pk h4{font:900 2rem/1 var(--display);text-transform:uppercase}
.pk ul{display:grid;gap:.3rem}.pk li{padding-left:1rem;position:relative}.pk li::before{content:"";position:absolute;left:0;top:.7em;width:.45rem;height:1.5px;background:var(--sky)}
.pk .price{margin-top:auto;font-weight:600}
.pk-ghost{border-radius:20px;padding:26px;border:1.5px dashed var(--line);max-width:46ch}
.pk-note{margin-top:14px;font-size:.9rem;opacity:.65}


/* BREAKS: a drifting strip of Henry's own clips under the heading */
.break{min-height:0;padding:clamp(70px,10vw,140px) var(--gutr) clamp(70px,10vw,140px) var(--gut)}
.break-in{width:100%;max-width:1280px;margin:0 auto}
.break-sub{margin:1rem auto 0;max-width:46ch;font-size:1.05rem;text-shadow:0 1px 18px rgba(11,13,15,.8)}
.break-link{color:var(--cream);border-bottom:1.5px solid var(--sky);text-decoration:none;white-space:nowrap}
.strip{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:clamp(32px,5vw,64px);text-align:left}
.strip .sc{position:relative;aspect-ratio:9/16;border-radius:16px;overflow:hidden;background:var(--ink2);box-shadow:0 30px 60px -34px rgba(0,0,0,.7);will-change:transform}
.strip .sc img,.strip .sc video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.strip .sc small{position:absolute;left:12px;bottom:10px;z-index:2;font:600 .72rem var(--body);letter-spacing:.12em;text-transform:uppercase;text-shadow:0 1px 10px rgba(0,0,0,.8)}
.strip .sc::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(11,13,15,.6))}
.strip .sc:nth-child(n+3){display:none}
@media(min-width:760px){.strip{grid-template-columns:repeat(4,1fr);gap:16px}.strip .sc:nth-child(n+3){display:block}.strip .sc:nth-child(even){margin-top:clamp(28px,5vw,72px)}}

/* PACKAGE drafts */
.pk-draft{position:relative;border:1.5px dashed var(--line);box-shadow:none}
.pk-chip{position:absolute;right:16px;top:16px;font:600 .7rem var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--sky)}

/* PROCESS visuals: each step shows what it looks like. Static final state without JS or with reduced motion. */
.sv{position:relative;margin-top:1.2rem;width:min(100%,430px);aspect-ratio:16/10;border-radius:16px;overflow:hidden;background:rgba(11,13,15,.62);box-shadow:inset 0 0 0 1px var(--line);backdrop-filter:blur(6px);text-align:left}
.step-l .sv{align-self:flex-end}
.sv small{font:600 .72rem var(--body);letter-spacing:.12em;text-transform:uppercase;opacity:.7}
.sv-brief{padding:16px 18px;display:grid;align-content:center;gap:10px;aspect-ratio:auto;min-height:150px}
.sv-brief ul{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.sv-brief li{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-radius:12px;background:rgba(236,229,213,.08)}
.sv-brief svg{width:20px;height:20px;fill:none;stroke:var(--sky);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:22;stroke-dashoffset:0}
.sv-shoot video,.sv-shoot img,.sv-deliver img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sv-shoot{background:var(--ink2)}
.vf-c{position:absolute;width:20px;height:20px;border:2px solid rgba(236,229,213,.85);z-index:2}
.vf-c.a{left:12px;top:12px;border-right:0;border-bottom:0}.vf-c.b{right:12px;top:12px;border-left:0;border-bottom:0}.vf-c.c{left:12px;bottom:12px;border-right:0;border-top:0}.vf-c.d{right:12px;bottom:12px;border-left:0;border-top:0}
.rec{position:absolute;left:40px;top:14px;z-index:2;font:600 .72rem var(--body);letter-spacing:.14em;display:flex;align-items:center;gap:6px;text-shadow:0 1px 8px rgba(0,0,0,.7)}
.rec i{width:8px;height:8px;border-radius:50%;background:#e5483a;animation:recb 1.2s steps(2,jump-none) infinite}
.tcode{position:absolute;right:40px;top:14px;z-index:2;font:600 .72rem var(--body);letter-spacing:.1em;font-variant-numeric:tabular-nums;text-shadow:0 1px 8px rgba(0,0,0,.7)}
@keyframes recb{50%{opacity:.15}}
.sv-edit{padding:18px 16px;display:grid;align-content:center;gap:10px}
.sv-edit .tr{position:relative;height:26px;border-radius:8px;background:rgba(236,229,213,.06)}
.sv-edit .tr b{position:absolute;left:8px;top:50%;transform:translateY(-50%);font:600 .62rem var(--body);letter-spacing:.1em;text-transform:uppercase;opacity:.75;z-index:2}
.sv-edit .tr span{position:absolute;top:3px;bottom:3px;left:var(--s);width:var(--w);border-radius:6px;background:linear-gradient(90deg,rgba(134,181,218,.85),rgba(134,181,218,.5))}
.sv-edit .tr:nth-child(2) span{background:linear-gradient(90deg,rgba(236,229,213,.75),rgba(236,229,213,.4))}
.sv-edit .tr:nth-child(3) span{background:linear-gradient(90deg,rgba(134,181,218,.55),rgba(236,229,213,.45))}
.playhead{position:absolute;top:10px;bottom:10px;left:16px;width:2px;background:#fff;border-radius:2px;box-shadow:0 0 12px rgba(255,255,255,.7);z-index:3}
.sv-deliver{display:flex;align-items:center;justify-content:center;gap:12px;padding:14px;background:rgba(11,13,15,.5)}
.df{position:relative;border-radius:10px;overflow:hidden;background:var(--ink2);box-shadow:0 0 0 1px var(--line)}
.df small{position:absolute;left:8px;bottom:6px;z-index:2;font-size:.6rem}
.df::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(11,13,15,.65))}
.df img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.d1{width:44%;aspect-ratio:16/9}.d2{width:19%;aspect-ratio:9/16}.d3{width:24%;aspect-ratio:1/1}
.stamp{position:absolute;right:12px;top:12px;z-index:3;display:flex;gap:6px;align-items:center;padding:6px 12px 6px 8px;border-radius:99px;background:var(--cream);color:var(--ink);font:600 .75rem var(--body)}
.stamp svg{width:16px;height:16px;fill:none;stroke:var(--ink);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.sv-photo{background-size:cover;background-position:center}
/* motion, only once the step is on screen */
.js-reveal .sv:not(.live) .sv-brief li svg,.js-reveal .sv-brief:not(.live) li svg{stroke-dashoffset:22}
.js-reveal .sv-brief.live li svg{animation:tickd .5s ease-out both}
.sv-brief li:nth-child(2) svg{animation-delay:.6s!important}.sv-brief li:nth-child(3) svg{animation-delay:1.2s!important}
@keyframes tickd{from{stroke-dashoffset:22}to{stroke-dashoffset:0}}
.sv-edit.live .playhead{animation:phd 5.5s linear infinite}
@keyframes phd{from{left:16px}to{left:calc(100% - 18px)}}
.js-reveal .sv-edit .tr span{transform:scaleX(0);transform-origin:left;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.js-reveal .sv-edit.live .tr span{transform:none}
.sv-edit.live .tr:nth-child(2) span{transition-delay:.15s}.sv-edit.live .tr:nth-child(3) span{transition-delay:.3s}
.js-reveal .sv-deliver .df{opacity:0;transform:translateY(14px);transition:opacity .6s,transform .6s}
.js-reveal .sv-deliver.live .df{opacity:1;transform:none}
.sv-deliver.live .d2{transition-delay:.2s}.sv-deliver.live .d3{transition-delay:.4s}
.js-reveal .sv-deliver .stamp{opacity:0;transform:scale(.7)}
.js-reveal .sv-deliver.live .stamp{opacity:1;transform:none;transition:opacity .4s .9s,transform .5s .9s cubic-bezier(.3,1.6,.5,1)}
@media (prefers-reduced-motion:reduce){.sv-edit.live .playhead{animation:none;left:60%}.rec i{animation:none}.js-reveal .sv-edit .tr span,.js-reveal .sv-deliver .df,.js-reveal .sv-deliver .stamp{transition:none;transform:none;opacity:1}.js-reveal .sv-brief li svg{stroke-dashoffset:0!important;animation:none!important}}

/* ---------- B: the work ring (tiles fly in, then orbit) ---------- */
.ring{position:relative;width:min(100%,1240px);height:calc(100svh - 150px);pointer-events:none;touch-action:pan-y;user-select:none;-webkit-user-select:none;--cw:112px}
.work-wrap.live .ring{pointer-events:auto;cursor:grab}
.work-wrap.live .ring.is-drag{cursor:grabbing}
.ring-core{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;opacity:0;pointer-events:none}
.ring-core .h2{font-size:clamp(2.6rem,6vw,5.6rem)}
.ring-hint{margin-top:14px;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;opacity:.6}
.ring .cell{position:absolute;left:50%;top:50%;width:var(--cw);height:calc(var(--cw)*4/3);margin:calc(var(--cw)*-2/3) 0 0 calc(var(--cw)/-2);aspect-ratio:auto;cursor:pointer}
.ring .cell small{display:none}
.ring .cell.is-on .media{box-shadow:0 18px 50px rgba(0,0,0,.6),inset 0 0 0 2px var(--cream)}
.ring .cell:focus-visible{outline:2px solid var(--sky);outline-offset:3px}
.ring-list{position:absolute;right:max(76px,var(--gutr));top:50%;transform:translateY(-50%);width:240px;list-style:none;display:flex;flex-direction:column;gap:2px;counter-reset:p;opacity:0;pointer-events:none;z-index:4}
.work-wrap.live .ring-list{pointer-events:auto}
.ring-list li{counter-increment:p}
.ring-list button{all:unset;box-sizing:border-box;width:100%;display:flex;gap:12px;align-items:baseline;padding:9px 12px;border-radius:10px;cursor:pointer;font:500 1rem/1.2 var(--body);color:var(--cream);opacity:.5;transition:opacity .35s,background .35s,transform .5s var(--ease)}
.ring-list button::before{content:counter(p,decimal-leading-zero);font-size:.72rem;letter-spacing:.08em;opacity:.7}
.ring-list small{margin-left:auto;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;opacity:.6}
.ring-list button:hover,.ring-list button:focus-visible,.ring-list button.is-on{opacity:1;background:rgba(236,229,213,.1);transform:translateX(6px)}
.ring-list button:focus-visible{box-shadow:0 0 0 2px var(--sky)}
@media (max-width:1100px){.ring-list{width:190px}}
@media (max-width:759px){.ring{--cw:62px;height:calc(100svh - 130px)}.ring-list{display:none}.ring-core .h2{font-size:2.8rem}}
/* ---------- project viewer ---------- */
.pv{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;background:rgba(5,6,7,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:16px}
.pv[hidden]{display:none}
.pv-box{position:relative;display:flex;gap:28px;align-items:flex-end;max-height:100%;max-width:100%}
.pv-media{height:min(86vh,760px);aspect-ratio:9/16;max-width:78vw;border-radius:16px;overflow:hidden;background:var(--ink2)}
.pv-media video,.pv-media img{width:100%;height:100%;object-fit:cover;display:block}
.pv-info{max-width:260px;padding-bottom:8px}
.pv-info small{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;opacity:.65}
.pv-info h3{font-size:clamp(1.8rem,3vw,2.6rem);line-height:.95;margin:6px 0 18px}
.pv-x{position:absolute;right:-6px;top:-6px;z-index:2;width:42px;height:42px;border-radius:99px;border:1px solid var(--line);background:rgba(11,13,15,.8);color:var(--cream);font-size:1.5rem;line-height:1;cursor:pointer}
@media (max-width:759px){.pv-box{flex-direction:column;align-items:center;gap:14px}.pv-media{height:min(70vh,600px)}.pv-info{max-width:none;text-align:center}.pv-x{right:0;top:-4px}}
@media (min-width:760px){.ring{width:min(calc(100% - 270px),1080px);margin-right:270px}}
.ring-core,.ring-list{text-shadow:0 1px 16px rgba(0,0,0,.5)}
@media (max-width:759px){.ring-hint{display:none}}
.cards{grid-auto-rows:1fr}.card{height:100%}.card span{height:100%}
.pv-snd{position:absolute;left:12px;top:12px;z-index:2;border:1px solid var(--line);background:rgba(11,13,15,.8);color:var(--cream);border-radius:99px;padding:9px 16px;font:600 .78rem/1 var(--body);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.pv-snd[hidden]{display:none}.pv-snd:focus-visible{outline:2px solid var(--sky)}

/* Filmed-for reel row and enquiry backdrop */
.filmed{color:var(--cream);padding:clamp(70px,9vw,120px) 0 clamp(50px,7vw,90px)}
.filmed .intro{margin-top:18px}
.filmed-row{list-style:none;margin:36px auto 0;padding:0 16px;max-width:1240px;display:flex;gap:2px;height:clamp(440px,72vh,640px)}
.filmed-row li{flex:1 1 0;min-width:0;transition:flex-grow .85s cubic-bezier(.34,1.32,.5,1)}
.filmed-row li.on{flex-grow:7}
.filmed-row button{position:relative;display:block;width:100%;height:100%;border:0;padding:0;overflow:hidden;cursor:pointer;background:#111;color:var(--cream);font:inherit;text-align:left}
.filmed-row li:first-child button{border-radius:18px 0 0 18px}.filmed-row li:last-child button{border-radius:0 18px 18px 0}
.filmed-row img,.filmed-row video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.filmed-row video{opacity:0;transition:opacity .6s}.filmed-row video.show{opacity:1}
.filmed-row img{filter:saturate(.8) brightness(.7);transition:filter .6s}.filmed-row li.on img{filter:none}
.filmed-row button::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(11,13,15,.85),rgba(11,13,15,0) 55%)}
.fs-name{position:absolute;z-index:1;left:50%;bottom:20px;white-space:nowrap;font-weight:600;letter-spacing:.04em;writing-mode:vertical-rl;transform:translateX(-50%) rotate(180deg);transition:opacity .3s}
.filmed-row li.on .fs-name{writing-mode:horizontal-tb;transform:none;left:22px;bottom:46px;font-size:1.5rem;letter-spacing:0}
.fs-go{position:absolute;z-index:1;left:22px;bottom:20px;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;opacity:0;transition:opacity .4s .3s}
.filmed-row li.on .fs-go{opacity:.85}
@media (max-width:759px){
  .filmed-row{flex-direction:column;height:min(78svh,640px)}
  .filmed-row li:first-child button{border-radius:18px 18px 0 0}.filmed-row li:last-child button{border-radius:0 0 18px 18px}
  .fs-name{writing-mode:horizontal-tb;transform:none;left:18px;bottom:auto;top:50%;margin-top:-.6em}
  .filmed-row li.on .fs-name{top:auto;margin-top:0;bottom:44px;left:18px}
  .fs-go{left:18px}
}
@media (prefers-reduced-motion:reduce){.filmed-row li{transition:none}}
.enquire{position:relative;overflow:hidden}
.enquire .enq-copy{text-shadow:0 2px 24px rgba(11,13,15,.6)}
@media (prefers-reduced-motion:reduce){.filmed-row button{transition:none}}

/* 5 Nov: legibility over footage, work heading above the tiles */
.h2,.intro,.step p,.enq-copy .intro{text-shadow:0 1px 18px rgba(7,8,10,.65),0 0 2px rgba(7,8,10,.35)}
.intro{opacity:.92}
.ring-core{z-index:999}
.ring-core::before{content:"";position:absolute;left:50%;top:50%;width:min(88%,640px);height:min(60%,300px);transform:translate(-50%,-50%);background:radial-gradient(ellipse at center,rgba(7,8,10,.62) 0%,rgba(7,8,10,.38) 55%,rgba(7,8,10,0) 100%);z-index:-1;pointer-events:none}
.ring-core .h2,.ring-hint{position:relative}
.ring-hint{font-size:.88rem;opacity:.9}

/* 7 Nov: three services, about section, footer legal */
.about{color:var(--cream);padding:clamp(70px,9vw,120px) 0}
.about-grid{display:grid;gap:clamp(32px,5vw,72px);align-items:center}
@media(min-width:900px){.about-grid{grid-template-columns:1.1fr 1fr}}
.about-ph{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.about-ph img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:18px;box-shadow:inset 0 0 0 1px var(--line)}
.about-ph img:first-child{aspect-ratio:1/1;object-position:50% 30%}
.about-ph img+img{aspect-ratio:3/4;object-position:64% 30%;margin-top:clamp(24px,5vw,56px)}
.about-copy .intro{margin-top:1.2rem}
.creds{list-style:none;margin:1.4rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.creds li{padding:9px 18px;border:1.5px solid var(--line);border-radius:99px;font-weight:600}
.areas-h{margin-top:2rem;font-size:1.6rem;letter-spacing:.02em}
.areas-p{max-width:46ch;margin-top:.6rem;opacity:.92}
.about-copy .btn{margin-top:1.8rem}
.foot-legal a{opacity:.8}

/* about photos: natural proportions, no cropping */
.about-ph img,.about-ph img:first-child,.about-ph img+img{aspect-ratio:auto;height:auto;object-fit:contain}

/* 7 Nov pm: testimonials and WhatsApp button */
.proof{color:var(--cream);padding:clamp(60px,8vw,110px) 0}
.proof-grid{display:grid;gap:18px;margin-top:2rem}
@media(min-width:800px){.proof-grid{grid-template-columns:1fr 1fr;gap:24px}}
.quote{margin:0;padding:clamp(22px,3vw,34px);border:1.5px solid var(--line);border-radius:20px;background:rgba(11,13,15,.62);text-shadow:0 1px 14px rgba(11,13,15,.6)}
.quote blockquote{margin:0;font-size:clamp(1.02rem,1.5vw,1.18rem);line-height:1.55}
.quote figcaption{margin-top:1.1rem;font-weight:700}
.quote figcaption small{display:block;font-weight:400;opacity:.7;margin-top:2px}
.proof-link{margin-top:1.6rem}
.proof-link a{text-decoration:underline;text-underline-offset:4px}
.wa-btn{margin-top:1.4rem}
.wa-btn[hidden]{display:none}

.gbadge{display:inline-flex;align-items:center;gap:12px;margin-top:1.4rem;padding:11px 20px;border:1.5px solid var(--line);border-radius:99px;background:rgba(11,13,15,.62);font-weight:700;text-shadow:none}
.gstars{color:#F5B301;letter-spacing:2px}
.gpill{color:inherit;text-decoration:none}
.gpill .gstars{letter-spacing:0}

/* 8 Nov: Henry chose the arms-folded photo only */
.about-ph{grid-template-columns:1fr;max-width:520px}

.ts-box{min-height:0;margin:.4rem 0 .2rem}

.foot-credit{font-size:.86rem;opacity:.75}
.foot-credit a{text-decoration:underline;text-underline-offset:3px;font-weight:600}
.foot-credit a:hover,.foot-credit a:focus-visible{opacity:1}
