:root{--ink:#101312;--ink-soft:#191d1c;--sand:#d5b88d;--gold:#b78a45;--snow:#f3f1eb;--slate:#71808a;--line:rgba(243,241,235,.16);--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--snow);color:var(--ink);font-family:"DM Sans",Arial,sans-serif;line-height:1.6}body.menu-open,body.modal-open{overflow:hidden}a{color:inherit}button,input,select,textarea{font:inherit}.skip-link{position:fixed;left:1rem;top:-5rem;z-index:1000;background:var(--snow);padding:.7rem 1rem}.skip-link:focus{top:1rem}
.site-header{position:fixed;inset:0 0 auto;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:1.25rem 4vw;color:#fff;transition:.4s}.site-header.scrolled{background:rgba(16,19,18,.88);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);padding-block:.8rem}.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;font-weight:600;letter-spacing:.04em}.brand-mark{display:grid;place-items:center;width:2.25rem;height:2.25rem;border:1px solid currentColor;border-radius:50%;font-family:Manrope,sans-serif;font-size:.75rem;letter-spacing:.14em}.site-nav{display:flex;align-items:center;gap:2rem;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase}.site-nav a{text-decoration:none}.site-nav a:not(.nav-cta){position:relative}.site-nav a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:100%;bottom:-.35rem;height:1px;background:currentColor;transition:.3s}.site-nav a:hover::after{right:0}.nav-cta{border:1px solid rgba(255,255,255,.6);border-radius:99px;padding:.7rem 1.15rem}.nav-toggle{display:none;background:none;border:0;padding:.5rem}.nav-toggle span{display:block;width:1.7rem;height:1px;background:#fff;margin:.4rem}
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;color:#fff}.hero-image{position:absolute;inset:0;background-image:url("images/hero/snowy-sunset.webp");background-size:cover;background-position:center;animation:heroDrift 18s ease-out both}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,10,9,.76),rgba(7,10,9,.12) 70%),linear-gradient(0deg,rgba(7,10,9,.68),transparent 55%)}@keyframes heroDrift{from{transform:scale(1.08)}to{transform:scale(1)}}.hero-content{position:relative;z-index:1;width:min(1050px,92vw);padding:10rem 0 8rem;margin-left:6vw}.eyebrow,.section-index{font-size:.72rem;letter-spacing:.19em;text-transform:uppercase;font-weight:600}.hero h1{font:300 clamp(3.8rem,9vw,8.8rem)/.85 Manrope,sans-serif;letter-spacing:-.065em;margin:1.25rem 0}.hero-copy{max-width:570px;font-size:clamp(1rem,1.7vw,1.35rem);color:rgba(255,255,255,.82)}.hero-actions{display:flex;align-items:center;gap:2rem;margin-top:2.5rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:3.25rem;padding:.85rem 1.4rem;border-radius:99px;text-decoration:none;border:0;cursor:pointer;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;font-weight:600}.button-light{background:var(--snow);color:var(--ink)}.button-dark{background:var(--ink);color:var(--snow)}.text-link{display:inline-flex;gap:.55rem;align-items:center;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.45);padding-bottom:.2rem}.text-link.dark{border-color:rgba(16,19,18,.35)}.scroll-cue{position:absolute;right:4vw;bottom:3rem;z-index:2;display:flex;align-items:center;gap:.7rem;text-transform:uppercase;letter-spacing:.16em;font-size:.65rem;text-decoration:none;writing-mode:vertical-rl}.scroll-cue span{display:block;width:1px;height:42px;background:rgba(255,255,255,.65)}
.section{padding:clamp(5rem,10vw,9rem) 6vw}.display{font:400 clamp(2.5rem,5.6vw,5.8rem)/1.02 Manrope,sans-serif;letter-spacing:-.055em;margin:.7rem 0}.section-index{color:var(--gold)}.intro-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.7fr);gap:8vw;align-items:end}.intro-copy{font-size:1.08rem;color:#424846}.intro-copy p{margin-bottom:2rem}.dark-section{background:var(--ink);color:var(--snow)}.section-heading{display:grid;grid-template-columns:1.8fr .65fr;gap:7vw;align-items:end;margin-bottom:5rem}.section-note{color:#a9aeaa;max-width:400px}
.story-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5rem 1.5rem}.story{margin-top:7rem;cursor:zoom-in;outline:none}.story-large{grid-row:span 2;margin-top:0}.story-wide{grid-column:1/-1;margin-top:3rem}.story-image{position:relative;aspect-ratio:4/5;background:var(--story-image) center/cover;transition:transform 1s var(--ease),filter .5s}.story-image::after,.campaign-card div::after{content:"View";position:absolute;right:1rem;bottom:1rem;padding:.55rem .8rem;border:1px solid rgba(255,255,255,.55);border-radius:99px;background:rgba(10,12,11,.55);backdrop-filter:blur(8px);color:#fff;font-size:.62rem;letter-spacing:.13em;text-transform:uppercase;opacity:0;transform:translateY(.4rem);transition:.3s}.story-large .story-image{aspect-ratio:4/5}.story-wide .story-image{aspect-ratio:16/7}.story:hover .story-image{transform:scale(.985);filter:saturate(1.08)}.story:hover .story-image::after,.story:focus-visible .story-image::after,.campaign-card:hover div::after,.campaign-card:focus-visible div::after{opacity:1;transform:none}.story:focus-visible,.campaign-card:focus-visible{outline:2px solid var(--sand);outline-offset:5px}.story-meta{display:flex;justify-content:space-between;gap:1rem;padding-top:1rem;font-size:.78rem}.story-meta span:last-child{color:#8f9692}
.campaign-intro{display:grid;grid-template-columns:.7fr 1.2fr .7fr;gap:3vw;align-items:end;margin:10rem 0 3rem;padding-top:2rem;border-top:1px solid var(--line)}.campaign-intro h3{font:400 clamp(2rem,4vw,4rem)/1.05 Manrope;margin:0;letter-spacing:-.045em}.campaign-intro>p:last-child{color:#a9aeaa}.campaign-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.campaign-card{overflow:hidden;cursor:zoom-in;outline:none}.campaign-card div{position:relative;aspect-ratio:4/3;background:var(--campaign-image) center/cover;transition:transform 1s var(--ease)}.campaign-card:hover div{transform:scale(1.025)}.campaign-product-fit div{aspect-ratio:4/5;background-color:#0b0e0d;background-size:contain;background-repeat:no-repeat}.campaign-tall{grid-row:span 2}.campaign-tall div{height:100%;min-height:700px;aspect-ratio:auto}.campaign-wide{grid-column:1/-1}.campaign-wide div{aspect-ratio:16/7}
.motion{display:block}.motion-copy{display:grid;grid-template-columns:1.2fr .8fr;gap:7vw;align-items:end;margin-bottom:4rem}.motion-copy .section-index,.motion-copy h2{grid-column:1}.motion-copy p:not(.section-index),.motion-copy .button{grid-column:2}.motion-copy p:not(.section-index){max-width:520px;color:#535b57;margin:0 0 1.6rem}.motion-copy .button{justify-self:start}.motion-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.motion-grid-single{grid-template-columns:minmax(0,1fr);max-width:1100px;margin-left:auto}.film-card{position:relative;background:#000;color:#fff;overflow:hidden}.film-card video{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#000}.audio-toggle{position:absolute;z-index:3;top:1rem;right:1rem;display:flex;align-items:center;gap:.55rem;padding:.7rem 1rem;border:1px solid rgba(255,255,255,.55);border-radius:999px;background:rgba(8,10,9,.72);backdrop-filter:blur(10px);color:#fff;font:600 .72rem Manrope;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .25s,border-color .25s}.audio-toggle:hover,.audio-toggle:focus-visible{background:rgba(8,10,9,.94);border-color:#fff}.audio-toggle span:first-child{font-size:1rem}.film-label{pointer-events:none;position:absolute;z-index:2;left:1.5rem;bottom:3.5rem;display:flex;flex-direction:column;text-shadow:0 2px 16px rgba(0,0,0,.8)}.film-label strong{font:400 1.4rem Manrope}.film-label small{color:#e3e6e3}
.service-list{border-top:1px solid var(--line)}.service{display:grid;grid-template-columns:60px 1fr 1fr;gap:2rem;padding:2.2rem 0;border-bottom:1px solid var(--line);align-items:start}.service>span{color:var(--gold);font-size:.72rem}.service h3{font:400 clamp(1.5rem,2.7vw,2.6rem) Manrope;margin:0}.service p{margin:0;color:#a9aeaa;max-width:520px}
.about{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}.about-image{min-height:700px;background:url("images/about/massaquoi-lookout.jpg") center 38%/cover}.about-copy .lead{font:400 1.35rem/1.5 Manrope;margin:2rem 0}.about-copy p:not(.lead){color:#555e59}.availability{display:grid;gap:.2rem;margin-top:2rem;padding:1.1rem 0;border-top:1px solid rgba(16,19,18,.22);border-bottom:1px solid rgba(16,19,18,.22)}.availability span{font-size:.65rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#755b34}.availability strong{font:500 1.15rem Manrope}.availability small{color:#555e59}.about-copy .text-link{margin-top:1.5rem}.field-notes{background:#d7c3a4;display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:end}.field-notes .section-index{color:#755b34}.notes-card{border-top:1px solid rgba(16,19,18,.35);padding-top:1rem}.notes-card span{text-transform:uppercase;letter-spacing:.15em;font-size:.68rem}.notes-card p{font-size:1.1rem;max-width:560px}
.contact{display:grid;grid-template-columns:1fr 1fr;gap:10vw}.contact-intro>p:not(.section-index){color:#a9aeaa;max-width:560px}.contact-email{display:inline-block;margin-top:2rem;font-size:clamp(1.2rem,2vw,2rem);text-decoration-thickness:1px;text-underline-offset:.35rem}.contact-form{display:grid;gap:1.4rem}.contact-form label{display:grid;gap:.5rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.13em}.contact-form input,.contact-form select,.contact-form textarea{width:100%;background:transparent;color:var(--snow);border:0;border-bottom:1px solid rgba(255,255,255,.28);border-radius:0;padding:.7rem 0;outline:none;text-transform:none;letter-spacing:normal}.contact-form select option{color:var(--ink)}.contact-form textarea{resize:vertical}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:var(--sand)}.contact-form .button{justify-self:start;margin-top:1rem}.form-status{min-height:1.4rem;color:var(--sand);margin:0}.footer{background:#090b0a;color:var(--snow);display:grid;grid-template-columns:1fr 1fr auto;gap:2rem;align-items:center;padding:3rem 4vw;border-top:1px solid var(--line);font-size:.78rem}.footer>p{color:#8f9692}.socials{display:flex;gap:1.4rem}.socials a{text-decoration:none}.copyright{grid-column:1/-1;margin:2rem 0 0;padding-top:1.4rem;border-top:1px solid var(--line)}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease)}.reveal.visible{opacity:1;transform:none}.film-modal{position:fixed;inset:0;z-index:300;background:rgba(9,11,10,.96);color:#fff;display:grid;place-items:center;padding:2rem}.film-modal[hidden]{display:none}.modal-content{max-width:650px;text-align:center}.modal-content h2{font:400 clamp(3rem,7vw,6rem) Manrope;margin:.5rem}.modal-content p:last-child{color:#a9aeaa}.modal-close{position:absolute;top:1.5rem;right:2rem;background:none;color:#fff;border:0;font-size:3rem;cursor:pointer}
.lightbox{position:fixed;inset:0;z-index:500;display:grid;grid-template-columns:clamp(2.75rem,7vw,6rem) minmax(0,1fr) clamp(2.75rem,7vw,6rem);align-items:center;background:rgba(6,8,7,.97);color:#fff;padding:1.25rem;overscroll-behavior:contain}.lightbox[hidden]{display:none}.lightbox-figure{display:grid;grid-template-rows:minmax(0,1fr) auto;width:100%;height:min(92svh,1000px);margin:0}.lightbox-figure img{display:block;align-self:center;justify-self:center;max-width:100%;max-height:calc(92svh - 5rem);object-fit:contain;box-shadow:0 1rem 4rem rgba(0,0,0,.28);touch-action:pan-y}.lightbox-figure figcaption{display:flex;justify-content:space-between;gap:1rem;padding-top:1rem;color:#d6dad7;font-size:.78rem;letter-spacing:.04em}.lightbox-close,.lightbox-nav{border:0;background:none;color:#fff;cursor:pointer}.lightbox-close{position:absolute;top:max(1rem,env(safe-area-inset-top));right:max(1rem,env(safe-area-inset-right));z-index:2;width:3rem;height:3rem;font-size:2.3rem;font-weight:200;line-height:1}.lightbox-nav{display:grid;place-items:center;width:100%;height:5rem;font-size:3rem;font-weight:200}.lightbox-nav:focus-visible,.lightbox-close:focus-visible{outline:2px solid var(--sand);outline-offset:3px}
@media(max-width:800px){.site-header{padding:1rem 5vw;background:linear-gradient(180deg,rgba(16,19,18,.96),rgba(16,19,18,.84));backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.14);box-shadow:0 .35rem 1.5rem rgba(0,0,0,.16)}.nav-toggle{display:block;z-index:2;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(0,0,0,.2);width:3rem;height:3rem}.site-nav{position:fixed;inset:0;background:var(--ink);color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2rem;font-size:1.25rem;transform:translateX(100%);transition:.55s var(--ease)}.site-nav a{color:#fff;text-shadow:0 1px 12px rgba(0,0,0,.65)}.site-nav .nav-cta{background:var(--snow);color:var(--ink);text-shadow:none;border-color:var(--snow)}.menu-open .site-nav{transform:none}.menu-open .nav-toggle span:first-child{transform:translateY(4px) rotate(45deg)}.menu-open .nav-toggle span:last-child{transform:translateY(-4px) rotate(-45deg)}.hero-content{margin-left:5vw;padding-bottom:7rem}.hero h1{font-size:clamp(3.6rem,17vw,6rem)}.scroll-cue{display:none}.intro-grid,.section-heading,.about,.field-notes,.contact,.campaign-intro,.motion-copy,.motion-grid{grid-template-columns:1fr}.section-heading{gap:1rem}.story-grid{gap:3rem 1rem}.story{margin-top:3rem}.campaign-intro{margin-top:6rem}.campaign-grid{grid-template-columns:1fr}.campaign-tall,.campaign-wide{grid-column:auto;grid-row:auto}.campaign-tall div,.campaign-card div,.campaign-wide div{height:auto;min-height:0;aspect-ratio:4/5}.motion-copy .section-index,.motion-copy h2,.motion-copy p:not(.section-index),.motion-copy .button{grid-column:1}.motion-copy{padding-bottom:1rem}.film-card video{aspect-ratio:4/3}.audio-toggle{display:none}.about-image{min-height:520px;background-position:center 34%}.service{grid-template-columns:36px 1fr}.service p{grid-column:2}.footer{grid-template-columns:1fr}.copyright{grid-column:1}.hero-actions{align-items:flex-start;flex-direction:column;gap:1.2rem}}
@media(max-width:520px){.section{padding-inline:5vw}.story-grid{grid-template-columns:1fr;gap:2.5rem}.story,.story-large,.story-wide{grid-column:auto;grid-row:auto;margin-top:0}.story-image,.story-large .story-image{aspect-ratio:4/5}.story-wide .story-image{aspect-ratio:16/10}.story-meta{flex-direction:column;gap:.2rem}.campaign-grid{gap:1rem}.campaign-card div,.campaign-tall div{aspect-ratio:4/5}.campaign-camera-fit div{background-color:#0b0e0d;background-size:contain;background-repeat:no-repeat}.campaign-wide div{aspect-ratio:16/10}.story-image::after,.campaign-card div::after{opacity:1;transform:none;right:.75rem;bottom:.75rem}.film-card{min-height:0}.film-card video{aspect-ratio:16/9}.audio-toggle{top:.65rem;right:.65rem;padding:.6rem .8rem;font-size:.65rem}.film-label{position:static;padding:1rem 1.1rem;background:#0b0d0c}.about-image{min-height:430px}.lightbox{grid-template-columns:1fr;padding:max(.75rem,env(safe-area-inset-top)) .75rem max(.75rem,env(safe-area-inset-bottom))}.lightbox-figure{height:100svh;padding:3rem 0 4.25rem}.lightbox-figure img{max-height:calc(100svh - 8.5rem)}.lightbox-figure figcaption{padding:.8rem .25rem 0}.lightbox-nav{position:absolute;bottom:max(.7rem,env(safe-area-inset-bottom));z-index:2;width:3.5rem;height:3.5rem;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:rgba(0,0,0,.32);font-size:2rem}.lightbox-prev{left:1rem}.lightbox-next{right:1rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-image{animation:none}.reveal{opacity:1;transform:none;transition:none}}

.campaign-card div{background-position:var(--campaign-position,center)}
.case-studies{display:grid;gap:clamp(7rem,12vw,11rem)}
.case-study{display:grid;gap:2rem}
.case-study-header{display:grid;grid-template-columns:.55fr 1.05fr .9fr;gap:3vw;align-items:start;padding-top:1.5rem;border-top:1px solid var(--line)}
.case-study-kicker{margin:.35rem 0 0;color:var(--sand);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase}
.case-study-kicker span{display:inline-block;min-width:2.4rem;color:var(--gold)}
.case-study-header h4{margin:0;font:400 clamp(2.1rem,4vw,4.25rem)/1.02 Manrope,sans-serif;letter-spacing:-.045em}
.case-study-header>p:last-child{max-width:48ch;margin:.25rem 0 0;color:#a9aeaa}
.campaign-meta{display:flex;justify-content:space-between;gap:1rem;margin:0;padding-top:.85rem;color:#e7e9e7;font-size:.74rem;line-height:1.4}
.campaign-meta span:last-child{color:#8f9692;text-align:right}
@media(max-width:800px){.case-studies{gap:6rem}.case-study{gap:1.5rem}.case-study-header{grid-template-columns:1fr;gap:.7rem}.case-study-kicker{margin:0}.case-study-header h4{font-size:clamp(2.15rem,9vw,3.35rem)}.case-study-header>p:last-child{margin:0}}
@media(max-width:520px){.campaign-meta{flex-direction:column;gap:.15rem}.campaign-meta span:last-child{text-align:left}}
/* Thames Field & Films brand identity */
.brand-mark{display:none}
.brand-emblem{width:2.7rem;height:2.7rem;object-fit:contain;flex:0 0 auto}
.hero-watermark{position:absolute;z-index:1;top:clamp(6.5rem,12vh,9rem);right:clamp(1.5rem,5vw,5rem);width:clamp(7.5rem,16vw,13rem);height:auto;opacity:.08;pointer-events:none;user-select:none}
.footer-brand{display:block;width:max-content;max-width:100%}
.footer-signature{display:block;width:clamp(12rem,20vw,17rem);max-width:100%;height:auto}
@media(max-width:800px){.brand-emblem{width:2.4rem;height:2.4rem}.brand>span{font-size:.78rem}.hero-watermark{width:7rem;top:6.5rem;right:1.2rem;opacity:.07}.footer-brand{margin-inline:auto}}
