:root{--navy:#051c2d;--dark:#081a25;--ivory:#fff;--blue:#426c85;--muted:#62717b;--line:#dbe2e6;--gutter:4.2vw}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:35px}
body{margin:0;background:#fff;color:var(--navy);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}
body.dialog-open{overflow:hidden}
button,input,textarea,select{font:inherit}
button{color:inherit;cursor:pointer;border:0;background:none}
button,a{-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}
button:focus-visible,a:focus-visible,summary:focus-visible,.film-carousel:focus-visible{outline:2px solid #426c85;outline-offset:5px}
button:disabled{cursor:default;opacity:.3}
img,video{display:block;max-width:100%}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-weight:600;letter-spacing:-.055em}
h2{font-size:clamp(38px,4vw,62px);line-height:1.03}
[hidden]{display:none!important}
::selection{background:#bfd4e2;color:var(--navy)}
.micro{font-size:10px;line-height:1.5;letter-spacing:.04em}
.eyebrow{font-size:10px;font-weight:600;letter-spacing:.12em;line-height:1.5;margin-bottom:20px}
.skip-link{position:fixed;top:-100px;left:20px;background:white;padding:15px;z-index:100}
.skip-link:focus{top:15px}
.site-header{position:absolute;inset:0 0 auto;height:100px;z-index:20;display:flex;align-items:center;justify-content:flex-end;gap:45px;padding:0 var(--gutter);color:#fff}
.compact-brand{display:none}
.desktop-nav{display:flex;gap:35px;align-items:center;font-size:15px}
.desktop-nav a,.desktop-nav button{padding:12px 0}
.desktop-nav a:hover,.desktop-nav button:hover{text-decoration:underline;text-underline-offset:6px}
.menu-toggle{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:45px;height:45px;border:1px solid #ffffff75;border-radius:50%;background:#071a27a8;z-index:22}
.menu-toggle>span{height:1px;width:15px;background:white;transition:transform .2s}
.menu-toggle[aria-expanded=true]>span:first-child{transform:translateY(3px) rotate(45deg)}
.menu-toggle[aria-expanded=true]>span:last-child{transform:translateY(-3px) rotate(-45deg)}
.mobile-nav{position:fixed;inset:0 0 0 auto;width:min(600px,100%);background:#f2f5f7;color:var(--navy);padding:120px 6% 50px;z-index:21;overflow:auto;box-shadow:-20px 0 100px #051c2d20}
.mobile-nav>a{display:block;padding:23px 0;border-bottom:1px solid var(--line);font-size:32px;font-weight:600;letter-spacing:-.04em}
.mobile-nav>button{padding:25px 0;font-size:22px;margin-top:15px}
.hero{height:100svh;min-height:650px;padding:36px var(--gutter) 34px;display:flex;flex-direction:column;position:relative;isolation:isolate;overflow:hidden;background:#071923;color:#fff}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#04131de8 0%,#04131db3 42%,#04131d3d 76%),linear-gradient(0deg,#04131df2 0%,#04131d1a 58%,#04131d7a 100%)}
.hero-still{position:absolute;inset:0;z-index:-3;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center 43%}
.hero-motion{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:center}
.hero-top{position:relative;z-index:1;flex-shrink:0}
.hero-brand{width:clamp(170px,13vw,220px);height:auto}
.hero-copy{position:relative;z-index:1;margin:auto 0 9vh;max-width:1100px}
.hero-copy .eyebrow{font-size:10px;letter-spacing:.17em;margin-bottom:28px;color:#d7e4ec}
.hero h1{font-size:clamp(56px,6.2vw,104px);line-height:.99;letter-spacing:-.064em;font-weight:600;text-wrap:balance}
.hero-baseline{position:relative;z-index:1;border-top:1px solid #ffffff66;padding-top:22px;display:flex;justify-content:space-between;align-items:center;gap:25px;flex-shrink:0}
.hero-baseline>a{display:flex;align-items:center;gap:25px;font-size:14px;font-weight:600}
.hero-baseline>a span{font-size:22px;font-weight:400}
.hero-baseline p{font-size:11px;color:#d7e4ec}
.section-pad{padding:85px var(--gutter)}
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:32px}
.section-heading .eyebrow{margin-bottom:15px}
.carousel-controls{display:flex;align-items:center;gap:10px;padding-bottom:3px}
#film-count{font-size:11px;font-variant-numeric:tabular-nums;color:var(--muted);margin-right:10px}
.carousel-controls button{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;font-size:23px;font-weight:300}
.carousel-controls button:not(:disabled):hover{background:var(--navy);color:white}
.film-carousel{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;position:relative;padding-bottom:5px}
.film-carousel::-webkit-scrollbar{display:none}
.work{flex:0 0 calc((100% - 40px)/3);min-width:0;scroll-snap-align:start}
.work-image{position:relative;display:block;width:100%;aspect-ratio:4/4.3;overflow:hidden;padding:0;background:var(--navy)}
.work-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.work-image:hover img{transform:scale(1.025)}
.portrait .work-image img{object-position:50% 25%}
.work-play{position:absolute;top:16px;right:16px;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:var(--navy);background:white;font-size:11px;padding-left:2px}
.work-caption{padding-top:17px}
.work-caption h3{font-size:17px;letter-spacing:-.025em;font-weight:600}
.work-caption p{font-size:11px;color:var(--muted);margin-top:7px}
.services-heading{display:grid;grid-template-columns:1fr 1fr;align-items:start;padding-top:10px;padding-bottom:45px}
.services-heading .eyebrow{margin-top:8px}
.service-cards{display:grid;grid-template-columns:repeat(3,1fr);align-items:start}
.service-card{padding:35px max(28px,3.3vw);min-height:310px}
.card-navy{background:var(--navy);color:white}.card-mist{background:#e8edf1}.card-blue{background:#c9dce7}
.service-card summary{list-style:none;cursor:pointer}.service-card summary::-webkit-details-marker{display:none}
.service-card .eyebrow{display:block;margin-bottom:12px;font-size:9px;opacity:.7}
.service-card h3{font-size:clamp(27px,2.8vw,43px);line-height:1.03;margin-bottom:22px}
.service-card summary>p{font-size:13px;line-height:1.65;max-width:280px;min-height:66px;opacity:.85}
.card-more{display:flex;justify-content:space-between;align-items:center;margin-top:27px;font-size:11px}
.card-more>span{font-size:22px;transition:transform .2s}.service-card[open] .card-more>span{transform:rotate(45deg)}
.service-description{padding-top:12px;font-size:13px;line-height:1.7}
.service-description ul{padding-left:16px;margin:12px 0}.service-description p{font-size:11px;opacity:.8}.service-description .text-link{margin-top:18px;font-size:12px}
.company{display:grid;grid-template-columns:1fr 1fr;gap:9%;padding-top:95px;padding-bottom:95px}
.company-heading .eyebrow{font-size:9px}.company-heading .text-link{margin-top:30px}
.company-copy>p{font-size:15px;line-height:1.8;color:var(--muted);max-width:510px;margin-bottom:18px}
.process{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;border-top:1px solid var(--line);margin-top:30px;padding-top:25px}
.process span{font-size:16px;color:var(--blue)}.process h3{font-size:15px;letter-spacing:-.02em;margin:13px 0 8px}.process p{font-size:11px;line-height:1.65;color:var(--muted)}
.text-link{display:inline-flex;align-items:center;gap:28px;padding:0 0 9px;border-bottom:1px solid currentColor;font-size:13px}
.text-link span{font-size:20px;line-height:1}
.site-footer{background:#f1f4f6;color:var(--navy);padding:55px var(--gutter) 28px}
.footer-top{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-bottom:50px}
.footer-top h2{font-size:clamp(32px,3.4vw,50px)}
.footer-top .text-link{background:var(--navy);color:white;border:0;border-radius:40px;padding:17px 25px;font-size:13px;font-weight:600}
.footer-bottom{border-top:1px solid var(--line);padding-top:25px;display:flex;align-items:center;gap:32px;color:var(--muted);font-size:11px}
.footer-brand{width:125px}.footer-brand img{width:100%;height:auto}
.footer-link{margin-left:auto;padding:12px 0}
@media(min-width:1800px){:root{--gutter:max(4.2vw,calc((100vw - 1660px)/2))}}
@media(max-width:1000px){.hero{min-height:640px}.hero h1{font-size:clamp(55px,7vw,78px)}.work{flex-basis:calc((100% - 20px)/2)}.service-card{padding:28px;min-height:335px}.service-card h3{font-size:30px}.company{gap:6%}.process{gap:15px}.desktop-nav{gap:25px}}
@media(max-width:700px){
 :root{--gutter:6vw}html{scroll-padding-top:24px}.site-header{height:85px;justify-content:space-between}.compact-brand{display:block;width:125px}.compact-brand img{width:100%;height:auto}.desktop-nav{display:none}
 .menu-toggle{width:40px;height:40px}.mobile-nav{padding:100px 6% 40px}
 .hero{height:100svh;min-height:620px;padding:115px var(--gutter) 25px}.hero::before{background:linear-gradient(0deg,#04131dfa 0%,#04131dc9 39%,#04131d59 74%,#04131db3 100%)}.hero-still{object-position:56% center}.hero-brand{display:none}.hero-copy{margin:auto 0 11vh}.hero-copy .eyebrow{font-size:8px;line-height:1.6;margin-bottom:20px}.hero h1{font-size:clamp(40px,10.2vw,61px);line-height:1.01;letter-spacing:-.06em}
 .hero-baseline{padding-top:17px}.hero-baseline>a{font-size:12px;gap:18px}.hero-baseline p{font-size:9px;max-width:140px;text-align:right;line-height:1.5}
 .section-pad{padding:55px var(--gutter)}.section-heading{align-items:flex-end;gap:12px;margin-bottom:25px}.section-heading h2{font-size:33px}.section-heading .eyebrow{font-size:8px;margin-bottom:12px}
 .carousel-controls{gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:85px}#film-count{width:100%;text-align:right;margin:0;font-size:10px}.carousel-controls button{width:32px;height:32px;font-size:19px}
 .film-carousel{gap:16px}.work{flex-basis:100%}.work-image{aspect-ratio:4/3}.work-caption h3{font-size:18px}
 .services-heading{display:block;padding-top:8px;padding-bottom:30px}.services-heading .eyebrow{font-size:8px;margin-bottom:18px}.services-heading h2{font-size:38px}
 .service-cards{grid-template-columns:1fr}.service-card{min-height:0;padding:30px var(--gutter)}.service-card h3{font-size:33px}.service-card summary>p{max-width:340px;min-height:0;font-size:13px}.card-more{margin-top:20px}
 .company{display:block;padding-top:55px;padding-bottom:55px}.company h2{font-size:40px}.company-copy{margin-top:30px}.company-copy>p{font-size:14px}.company-heading .text-link{margin-top:23px;font-size:12px}.process{gap:16px}.process h3{font-size:14px}.process p{font-size:10px}
 .site-footer{padding:40px var(--gutter) 25px}.footer-top{display:block;padding-bottom:35px}.footer-top h2{font-size:36px}.footer-top .text-link{margin-top:25px;font-size:12px}.footer-bottom{display:grid;grid-template-columns:1fr 1fr;gap:22px;font-size:10px}.footer-bottom>p,.footer-bottom>span{text-align:right}.footer-link{margin:0}.footer-brand{width:105px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
