:root{--bg:#0d0d0d;--fg:#ffffff;--muted:#cccccc;--accent:#dedede;--line:#353535}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--bg);color:var(--fg);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.skip{position:fixed;top:-100px;z-index:10;background:white;color:black;padding:16px}.skip:focus{top:0}header{position:absolute;top:0;left:0;width:100%;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:28px 4%;border-bottom:1px solid #ffffff22}.logo{width:94px;height:70px;object-fit:contain}nav{display:flex;gap:36px;font-size:15px}nav a:hover{color:var(--accent)}.nav-cta{font-size:15px;border-bottom:1px solid #bbbbbb;padding:12px 0}.nav-cta span{margin-left:30px}.menu{display:none}.hero{min-height:850px;height:100svh;position:relative;padding:0 4%;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}.hero-media{position:absolute;inset:0;background:radial-gradient(ellipse at 76% 28%,#5c5c5c 0%,#353535 23%,#1a1a1a 51%,#0d0d0d 85%)}.hero-media:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#0d0d0de8,transparent 70%)}.hero-mark{position:absolute;width:49%;right:5%;top:22%;opacity:.07;transform:rotate(-9deg);animation:drift 16s ease-in-out infinite alternate}.frame-label{position:absolute;top:180px;right:4%;font-size:12px;letter-spacing:.12em;color:#cbcbcb}.hero-copy{position:relative;z-index:1;padding:220px 0 60px}.eyebrow{font-size:12px;letter-spacing:.15em;line-height:1.6;color:var(--accent);font-weight:600;margin-bottom:30px}h1,h2,h3,p{margin:0}h1{font-size:clamp(56px,7.7vw,124px);line-height:.99;letter-spacing:-.055em;font-weight:500}em{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.065em}h1 em{color:var(--accent)}.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;margin-top:40px;gap:28px}.hero-bottom p{font-size:18px;line-height:1.5;color:#d6d6d6}.button{display:inline-flex;gap:56px;align-items:center;justify-content:space-between;background:var(--accent);color:#1c1c1c;border:0;padding:20px 25px;font-size:16px;min-height:58px;transition:background .2s,transform .2s}.button:hover{background:#f0f0f0;transform:translateY(-3px)}.hero-foot{z-index:1;position:relative;border-top:1px solid #ffffff30;display:flex;justify-content:space-between;padding:20px 0;font-size:11px;letter-spacing:.1em;color:var(--muted)}.section{padding:110px 6%}.intro{display:grid;grid-template-columns:1fr 2.1fr;border-bottom:1px solid var(--line)}h2{font-size:clamp(42px,5.1vw,80px);line-height:1.06;font-weight:400;letter-spacing:-.045em}.intro h2{color:#ffffff}.intro p{max-width:610px;font-size:20px;line-height:1.6;margin-top:34px;color:var(--muted)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:35px;margin-bottom:60px}.section-heading p{color:var(--muted);font-size:17px;line-height:1.6}.projects{display:grid;grid-template-columns:1.5fr 1fr;gap:50px 35px;align-items:start}.media{position:relative;overflow:hidden;aspect-ratio:16/10;padding:22px;display:flex;flex-direction:column;justify-content:space-between;transition:filter .5s}.media:hover{filter:brightness(1.15)}.p1{background:linear-gradient(145deg,#404040,#242424 60%,#151515)}.media img{position:absolute;width:38%;height:auto;left:31%;top:27%;opacity:.18}.media-top,.media-bottom{font-size:11px;letter-spacing:.1em;color:#dadada;position:relative;z-index:1}.media-bottom{display:flex;justify-content:space-between}.tall{grid-column:2;grid-row:1/3;padding-top:100px}.tall .media{aspect-ratio:9/15;background:#d2d2d2;color:#353535}.tall .media-top,.tall .media-bottom{color:#3d3d3d}.vertical-type{font-size:clamp(44px,6vw,90px);line-height:.91;letter-spacing:-.055em;font-weight:700}.p3{background:linear-gradient(120deg,#3a3a3a,#222222);aspect-ratio:16/9}.photo-type{font-size:clamp(30px,4.5vw,66px);line-height:1;letter-spacing:-.04em}.caption{display:flex;justify-content:space-between;gap:15px;align-items:baseline;margin-top:18px;flex-wrap:wrap}.caption h3{font-size:19px;font-weight:400}.caption span{font-size:13px;color:var(--muted)}.services{background:#181818}.service-list{border-top:1px solid #474747}details{border-bottom:1px solid #474747}summary{display:flex;gap:35px;align-items:center;padding:28px 0;cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}summary>span{font-size:13px;color:var(--muted)}summary h3{font-size:clamp(26px,3.4vw,48px);font-weight:400;letter-spacing:-.03em}summary b{margin-left:auto;font-size:28px;font-weight:400}details[open] summary b{transform:rotate(45deg)}.service-body{padding:0 0 32px 52px;max-width:760px}.service-body p{font-size:18px;line-height:1.6;color:var(--muted)}.service-body>span{display:block;color:var(--accent);font-size:12px;letter-spacing:.07em;margin-top:24px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:60px}.steps>div{border-top:1px solid var(--line);padding-top:24px}.steps span{font-size:12px;letter-spacing:.1em;color:var(--accent)}.steps h3{font-size:25px;font-weight:400;margin:25px 0 15px}.steps p{font-size:17px;color:var(--muted);line-height:1.6}.about{display:grid;grid-template-columns:1fr 1.2fr;gap:8%;align-items:center;padding-top:40px}.portrait{aspect-ratio:4/5;background:#232323;position:relative;display:grid;place-items:center}.portrait img{width:45%;opacity:.14}.portrait span{position:absolute;bottom:20px;left:20px;right:20px;font-size:11px;color:var(--muted);letter-spacing:.08em}.about h2{font-size:clamp(40px,4.2vw,64px)}.about p{font-size:18px;color:var(--muted);line-height:1.65;margin-top:25px}.signature{display:block;margin-top:35px;font-size:20px}.signature small{display:block;font-size:11px;letter-spacing:.1em;color:var(--muted);margin-top:12px}.contact{background:var(--accent);color:#1c1c1c;padding-bottom:25px}.contact .eyebrow{color:#4c4c4c}.contact h2{font-size:clamp(58px,9vw,140px)}.contact .button{margin-top:40px;background:#1f1f1f;color:var(--fg)}.contact-bottom{margin-top:90px;border-top:1px solid #8c8c8c;padding-top:24px;display:flex;justify-content:space-between;gap:20px;font-size:12px;letter-spacing:.06em}.contact-note{margin-top:24px;max-width:550px;line-height:1.6}footer{padding:50px 6%;display:flex;align-items:center;justify-content:space-between;gap:25px}footer img{width:90px}footer p{font-size:15px;color:var(--muted)}footer>span{font-size:11px;color:var(--muted);letter-spacing:.05em}@keyframes drift{to{transform:rotate(-3deg) scale(1.07)}}@media(max-width:700px){header{padding:18px 6%}.logo{width:70px;height:52px}.nav-cta{margin-left:auto;margin-right:24px;font-size:13px}.nav-cta span{margin-left:10px}.menu{display:block;border:0;background:none;color:var(--fg);padding:12px 0;font-size:14px}nav{display:none;position:absolute;top:90px;left:0;right:0;padding:25px 6%;background:#1f1f1f}nav.open{display:flex}.hero{min-height:730px;height:100svh;padding:0 6%}.hero-copy{padding:170px 0 45px}.hero-mark{width:90%;right:-10%;top:25%}.frame-label{top:140px;font-size:10px;right:6%}h1{font-size:clamp(46px,10.5vw,70px);line-height:1.04}.eyebrow{font-size:11px;margin-bottom:22px}.hero-bottom{align-items:flex-start;flex-direction:column;margin-top:25px}.hero-bottom p{font-size:16px}.hero-foot{font-size:9px;gap:20px}.hero-foot>span{max-width:140px}.section{padding:70px 6%}.intro{grid-template-columns:1fr;gap:15px}.intro p{font-size:18px}h2{font-size:44px}.section-heading{align-items:flex-start;flex-direction:column;margin-bottom:35px}.projects{grid-template-columns:1fr;gap:35px}.tall{grid-column:auto;grid-row:auto;padding-top:0}.tall .media{aspect-ratio:4/5}.vertical-type{font-size:76px}.media{padding:18px}.media-top,.media-bottom{font-size:10px}.photo-type{font-size:48px}.caption h3{font-size:18px}.caption span{font-size:13px}.steps{grid-template-columns:1fr;gap:30px;margin-top:35px}.steps h3{margin-top:18px}.about{grid-template-columns:1fr;gap:35px}.portrait{aspect-ratio:5/4}.service-body{padding-left:0}summary{gap:20px}.contact h2{font-size:62px}.contact-bottom{margin-top:65px;font-size:10px}footer{flex-wrap:wrap;padding:35px 6%}footer p{font-size:13px}footer>span{width:100%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* Scroll choreography: progressively enhanced, with a static accessible fallback. */
.process{overflow:clip;padding-bottom:140px}
.steps{gap:24px;perspective:1200px}
.steps>div{position:relative;background:#212121;border:1px solid #4b4b4b;padding:32px;min-height:285px;display:flex;flex-direction:column;box-shadow:0 22px 50px #00000020;transform-origin:50% 90%}
.steps>div:nth-child(even){background:#dedede;color:#1c1c1c}
.steps>div:nth-child(even) span,.steps>div:nth-child(even) p{color:#4c4c4c}
.steps>div:nth-child(3){background:#282828}
.steps h3{margin-top:65px;font-size:30px;letter-spacing:-.035em}
.steps p{margin-top:auto;padding-top:8px}
.title-word{display:inline-block;overflow:clip;vertical-align:top;padding-bottom:.14em;margin-bottom:-.14em}
.title-word>span{display:inline-block;transform:translateY(115%) rotate(3deg);opacity:0;transition:transform 950ms cubic-bezier(.16,1,.3,1),opacity 550ms ease;transition-delay:var(--word-delay,0ms);transform-origin:left bottom}
.title-visible .title-word>span{transform:translateY(0) rotate(0);opacity:1}
.motion-reveal{opacity:0;transform:translateY(38px);transition:opacity .8s ease,transform 1s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0ms)}
.motion-reveal.is-visible{opacity:1;transform:translateY(0)}
@media(max-width:700px){.process{padding-bottom:75px}.steps{gap:18px}.steps>div{padding:26px;min-height:245px}.steps h3{margin-top:42px}.title-word>span{transition-duration:750ms}}
@media(prefers-reduced-motion:reduce){.title-word>span,.motion-reveal{opacity:1;transform:none}.steps>div{transform:none!important;opacity:1!important}}

/* A pinned title provides the stage for alternating process cards. */
.process{position:relative;isolation:isolate;padding-top:100px;padding-bottom:120px}
.process-title{position:sticky;top:28svh;text-align:center;z-index:0;max-width:960px;margin:0 auto}
.process-title h2{font-size:clamp(54px,7.8vw,112px)}
.process-title .eyebrow{margin-bottom:22px}
.steps{position:relative;z-index:1;display:flex;flex-direction:column;gap:55px;margin:30vh auto 0;max-width:1040px;padding-bottom:8vh;perspective:none}
.steps>div{flex:none;width:48%;min-height:280px;background:rgba(28,28,28,.96);border:1px solid #585858;box-shadow:0 20px 70px #0006;backdrop-filter:blur(12px);padding:30px}
.steps>div:nth-child(even){align-self:flex-end;background:#dedede}
.steps>div:nth-child(odd){align-self:flex-start}
.steps>div>span{align-self:flex-start;border-bottom:1px solid currentColor;padding-bottom:12px}
.title-word{overflow:visible}
.title-word>span{filter:blur(5px);transition:transform 850ms cubic-bezier(.16,1,.3,1),opacity 650ms ease,filter 850ms ease;transition-delay:var(--word-delay,0ms)}
.title-visible .title-word>span{filter:blur(0)}
@media(max-width:700px){.process{padding-top:70px;padding-bottom:70px}.process-title{top:20svh}.process-title h2{font-size:clamp(42px,10vw,64px)}.steps{gap:65px;margin-top:24vh;padding-bottom:0}.steps>div{width:92%;min-height:250px;padding:25px}.steps h3{font-size:28px}.about p{font-size:17px}}
@media(prefers-reduced-motion:reduce){.process-title{position:relative;top:auto}.steps{margin-top:45px;gap:24px}.title-word>span{filter:none}}

.contact .button:focus-visible{outline-color:#111}.button:hover{background:#dedede}.contact .button:hover{background:#303030}

/* Keep primary typography bright; reserve gray for secondary labels. */
h1,h2,h3{color:var(--fg)}
.contact h2,.steps>div:nth-child(even) h3{color:#111111}
.intro p,.about p,.service-body p{color:#d4d4d4}
.hero-foot,.frame-label,.caption span{color:#bdbdbd}

/* Compact process rows on narrow windows, not shrunken desktop cards. */
.steps>div>.step-number{display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid #777;background:#fff;color:#111;font-size:18px;font-weight:700;letter-spacing:0}
.steps>div:nth-child(even)>.step-number{background:#111;color:#fff;border-color:#111}
@media(max-width:800px){
.process{padding:70px 5% 80px}
.process-title{top:22svh;width:100%}
.process-title h2{font-size:clamp(34px,7.8vw,60px);line-height:1.08}
.steps{gap:12px;margin-top:22vh;padding-bottom:0;width:100%;max-width:none}
.steps>div,.steps>div:nth-child(even),.steps>div:nth-child(odd){align-self:stretch;width:100%;min-height:0;display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-rows:auto auto;column-gap:18px;row-gap:8px;padding:24px}
.steps>div>.step-number{grid-column:1;grid-row:1/3;width:38px;height:38px;font-size:16px;align-self:start}
.steps h3{grid-column:2;margin:0;font-size:clamp(22px,3.7vw,30px);line-height:1.15;letter-spacing:-.03em}
.steps p{grid-column:2;margin:0;padding:0;font-size:16px;line-height:1.5;overflow-wrap:break-word}
}
@media(max-width:400px){.steps>div{padding:20px 16px;column-gap:12px;grid-template-columns:32px minmax(0,1fr)}.steps>div>.step-number{width:32px;height:32px;font-size:14px}}
@media(prefers-reduced-motion:reduce){.steps{margin-top:45px}}

.contact-intro{max-width:620px;font-size:clamp(18px,2vw,22px);line-height:1.55;margin-top:28px;color:#333}

.hero-media video{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.hero-media:after{background:linear-gradient(180deg,rgba(0,0,0,.3) 0%,rgba(0,0,0,.12) 30%,rgba(0,0,0,.58) 65%,rgba(0,0,0,.85) 100%);pointer-events:none}
.hero-playback{position:absolute;top:160px;right:4%;z-index:2;background:#0008;border:1px solid #ffffff70;color:#fff;padding:10px 14px;font-size:14px}
@media(max-width:700px){.hero-playback{top:112px;right:6%}}

/* Fit the opening message into the viewport, including shorter desktop windows. */
.hero{height:auto;min-height:100svh;justify-content:center;padding-top:145px;padding-bottom:65px}
.hero-copy{padding:35px 0 65px;width:100%;margin:auto 0}
.hero-foot{position:absolute;bottom:0;left:4%;right:4%}
@media(min-width:701px) and (max-height:850px){.hero h1{font-size:clamp(52px,6.6vw,96px)}.hero-copy{padding:15px 0 30px}.hero-bottom{margin-top:25px}.hero-copy .eyebrow{margin-bottom:20px}}
@media(max-width:700px){.hero{min-height:100svh;height:auto;padding-top:115px;padding-bottom:65px}.hero-copy{padding:25px 0 35px}.hero-foot{left:6%;right:6%}}

.hero-bottom p{max-width:650px;text-wrap:pretty}.hero-bottom .button{flex-shrink:0}

.hero-bottom{flex-direction:column;align-items:flex-start;gap:26px}
.hero-actions{display:flex;align-items:center;gap:30px;flex-wrap:wrap}
.hero-work-link{font-size:16px;padding:14px 0;border-bottom:1px solid #ffffff80}
.hero-work-link span{margin-left:15px}
.hero-work-link:hover{border-color:#fff}
.hero-foot{justify-content:flex-end;border-top:0}
@media(max-width:400px){.hero-actions{gap:16px}.hero-actions .button{gap:25px;padding:18px}.hero-work-link{font-size:14px}.hero-work-link span{margin-left:5px}}

/* One opening sequence per page load: video first, then the interface. */
@keyframes hero-arrive{from{opacity:0;transform:translateY(28px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes nav-arrive{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:no-preference){
header{animation:nav-arrive .85s cubic-bezier(.16,1,.3,1) .95s both}
.hero-copy>.eyebrow{animation:hero-arrive .85s cubic-bezier(.16,1,.3,1) 1.1s both}
.hero h1{animation:hero-arrive 1.1s cubic-bezier(.16,1,.3,1) 1.25s both}
.hero-bottom>p{animation:hero-arrive .9s cubic-bezier(.16,1,.3,1) 1.5s both}
.hero-actions{animation:hero-arrive .9s cubic-bezier(.16,1,.3,1) 1.7s both}
.hero-foot{animation:hero-arrive .8s cubic-bezier(.16,1,.3,1) 1.9s both}
header:focus-within,.hero:focus-within .hero-copy>* ,.hero:focus-within .hero-bottom>*,.hero:focus-within .hero-foot{animation:none}
}

.hero-bottom{flex-direction:row;align-items:center;justify-content:space-between}
.hero-actions{flex-shrink:0;margin-left:auto}
.nav-cta{display:inline-flex;align-items:center;justify-content:center;background:#fff;color:#111;border:1px solid #fff;padding:16px 22px;font-weight:600;min-height:50px;transition:background .2s,transform .2s}
.nav-cta:hover{background:#dedede;transform:translateY(-2px)}
.nav-cta span{margin-left:20px}
@media(max-width:700px){.hero-bottom{flex-wrap:wrap;gap:24px}.hero-bottom>p{flex-basis:100%}.hero-actions{margin-left:auto}.nav-cta{padding:12px 14px;min-height:44px;margin-right:18px}.nav-cta span{margin-left:10px}}
@media(max-width:380px){.nav-cta{font-size:12px;padding:10px;margin-right:12px}.nav-cta span{margin-left:6px}}

.arrow-icon{display:inline-block;width:1.15em;height:1.15em;vertical-align:-.18em;flex-shrink:0}.button .arrow-icon{width:22px;height:22px}header nav{margin-left:auto}@media(max-width:700px){header .menu{margin-left:auto}header nav{margin-left:0}}

/* Bold navigation and an expanding mobile menu. */
header .logo{width:128px;height:96px}
header nav{font-size:18px;font-weight:600;gap:40px;color:#fff;text-shadow:0 1px 12px #0009}
header nav a{position:relative;padding:10px 0}
header nav a:after{content:'';position:absolute;bottom:3px;left:0;width:100%;height:1px;background:#fff;transform:scaleX(0);transform-origin:left;transition:transform .25s}
header nav a:hover:after{transform:scaleX(1)}
@media(max-width:700px){
header{padding:15px 6%;z-index:10}
header .logo{width:96px;height:72px}
header>a{position:relative;z-index:2}
header .menu{position:relative;z-index:2;display:flex;align-items:center;gap:12px;color:#fff;font-size:18px;font-weight:600;padding:14px 0;text-shadow:0 1px 10px #0008}
.menu:after{content:'';display:block;width:22px;height:12px;border-top:2px solid #fff;border-bottom:2px solid #fff;transition:transform .4s,height .4s}
.menu[aria-expanded=true]:after{height:0;border-bottom:0;transform:rotate(-45deg)}
header nav{position:fixed;inset:0;top:0;min-height:100svh;padding:150px 8% 70px;background:#101010;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:20px;visibility:hidden;pointer-events:none;clip-path:circle(0% at 92% 48px);transition:clip-path .65s cubic-bezier(.76,0,.24,1),visibility 0s .65s;font-size:clamp(44px,11vw,72px);font-weight:400;letter-spacing:-.04em;text-shadow:none}
header nav.open{visibility:visible;pointer-events:auto;clip-path:circle(150% at 92% 48px);transition:clip-path .75s cubic-bezier(.76,0,.24,1),visibility 0s}
header nav a{opacity:0;transform:translateY(30px);transition:opacity .25s,transform .25s;padding:8px 0;line-height:1.1}
header nav.open a{opacity:1;transform:translateY(0);transition:opacity .55s ease,transform .65s cubic-bezier(.16,1,.3,1);transition-delay:.22s}
header nav.open a:nth-child(2){transition-delay:.3s}header nav.open a:nth-child(3){transition-delay:.38s}
body.menu-open{overflow:hidden}
body.menu-open header{animation:none;transform:none;filter:none;position:fixed}
.hero{padding-top:125px}
}
@media(prefers-reduced-motion:reduce){header nav,header nav a{transition:none!important}}

@media(max-width:700px){
.hero{padding-top:110px;padding-bottom:120px}
.hero-copy{margin:auto 0;padding:15px 0 35px;transform:translateY(-20px)}
header nav{justify-content:flex-start;padding-top:clamp(135px,23svh,210px);transition:clip-path .65s cubic-bezier(.76,0,.24,1),visibility 0s .65s}
header nav:not(.open) a{opacity:0;transform:translateY(-20px);transition:opacity .3s ease,transform .4s ease}
body.menu-closing{overflow:hidden}
body.menu-closing header{position:fixed;animation:none;transform:none;filter:none}
}

/* Keep the header stationary while the organic overlay flows underneath. */
@media(max-width:700px){
body.menu-used header{animation:none;transform:none;filter:none}
header .menu{min-width:88px;justify-content:flex-end}
header nav,header nav.open{clip-path:none;background:transparent;isolation:isolate;overflow:hidden}
header nav{transition:visibility 0s .95s}
header nav.open{transition:visibility 0s}
header nav:before,header nav:after{content:'';position:absolute;pointer-events:none;z-index:-1;background:#101010;transform-origin:90% 8%;transition:transform .95s cubic-bezier(.65,0,.25,1),border-radius .95s ease}
header nav:before{inset:-35% -55%;border-radius:43% 57% 62% 38% / 36% 40% 60% 64%;transform:scale(0) rotate(-24deg)}
header nav:after{inset:-25% -40%;background:#101010;border-radius:62% 38% 35% 65% / 45% 62% 38% 55%;transform:scale(0) rotate(18deg);transition-delay:.05s}
header nav.open:before{transform:scale(1) rotate(5deg);border-radius:48% 52% 40% 60% / 52% 32% 68% 48%}
header nav.open:after{transform:scale(1) rotate(-5deg);border-radius:38% 62% 52% 48% / 42% 58% 42% 58%}
header nav.open a{transition-delay:.4s}
header nav.open a:nth-child(2){transition-delay:.48s}header nav.open a:nth-child(3){transition-delay:.56s}
}
@media(prefers-reduced-motion:reduce){header nav:before,header nav:after{transition:none!important}}

.menu-ink{display:none}
@keyframes menu-drip-in{0%{transform:translateY(-100%)}35%{transform:translateY(-65%)}75%{transform:translateY(-15%)}100%{transform:translateY(0)}}
@keyframes menu-wipe-out{from{clip-path:inset(0 0 0 0)}to{clip-path:inset(0 0 0 100%)}}
@media(max-width:700px){
header nav:before,header nav:after{display:none}
.menu-ink{display:block;position:absolute;inset:0;height:150svh;z-index:-1;pointer-events:none;transform:translateY(-100%)}
.menu-ink svg{display:block;width:100%;height:100%}
header nav.open .menu-ink{animation:menu-drip-in 1.1s cubic-bezier(.35,0,.35,1) both}
body.menu-closing header nav .menu-ink{transform:translateY(0);animation:menu-wipe-out .7s cubic-bezier(.65,0,.25,1) both}
header nav.open a{transition-delay:.65s}
header nav.open a:nth-of-type(2){transition-delay:.73s}header nav.open a:nth-of-type(3){transition-delay:.81s}
}
@media(prefers-reduced-motion:reduce){header nav.open .menu-ink{transform:none;animation:none}body.menu-closing header nav .menu-ink{animation:none}}

@media(max-width:700px){
header nav .menu-ink,header nav.open .menu-ink,body.menu-closing header nav .menu-ink{height:100%;transform:none;animation:none;clip-path:none}
header nav .menu-ink svg{width:100%;height:100%}
header nav.open a{transition-delay:.48s}
header nav.open a:nth-of-type(2){transition-delay:.56s}
header nav.open a:nth-of-type(3){transition-delay:.64s}
}

.tall .media.project-video{aspect-ratio:9/16;padding:0;background:#000}.project-video video{display:block;width:100%;height:100%;object-fit:contain}.media.project-video:hover{filter:none}

.media.backpack-photo{padding:0;aspect-ratio:16/9}.media.backpack-photo img{position:static;display:block;width:100%;height:100%;object-fit:cover;object-position:50% 65%;opacity:1}.media.backpack-photo:hover{filter:none}

.media.juce-video{aspect-ratio:16/9;padding:0;background:#000}

.portrait.founder-photo{overflow:hidden}.portrait.founder-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 28%;opacity:1}@media(max-width:700px){.portrait.founder-photo{aspect-ratio:4/5}}

.process-title h2{font-size:clamp(38px,6vw,86px)}@media(max-width:800px){.process-title h2{font-size:clamp(26px,6.5vw,52px)}}

/* Mobile layout audit: purposeful line breaks and content-sized controls. */
.projects>.project.wide:not(.bottom){grid-column:1;grid-row:1}
.projects>.project.bottom{grid-column:1;grid-row:2}
.section-heading>*,.intro>*,.about>*,.project,summary h3{min-width:0}
@media(max-width:700px){
.intro-phrase{display:block}.intro-break{display:none}
.intro h2{font-size:clamp(34px,9.5vw,56px);line-height:1.12}
.projects>.project.wide:not(.bottom),.projects>.project.bottom{grid-column:auto;grid-row:auto}
.section h2{font-size:clamp(32px,8.8vw,48px);line-height:1.12}
.intro h2{font-size:clamp(34px,9.5vw,56px)}
.process-title h2{font-size:clamp(26px,6.5vw,46px)}
.contact h2{font-size:clamp(36px,10vw,62px)}
.about h2{font-size:clamp(30px,8vw,44px)}
summary{gap:14px;align-items:flex-start}summary>span{padding-top:7px;flex-shrink:0}summary h3{font-size:clamp(23px,6vw,30px);line-height:1.2}summary b{flex-shrink:0}
.caption{flex-direction:column;align-items:flex-start;gap:7px}
.contact .button{gap:22px;max-width:100%;padding:18px 20px}
.contact-bottom{flex-direction:column;align-items:flex-start;gap:20px;font-size:12px;line-height:1.5}
.contact-bottom a{padding:10px 0}
footer p{line-height:1.6}
header nav{overflow-y:auto;padding-bottom:max(40px,env(safe-area-inset-bottom))}
}
@media(max-width:700px) and (max-height:550px){header nav{padding-top:100px;gap:8px;font-size:36px}.hero-copy{transform:none}.hero{padding-bottom:65px}}
.contact-page header{animation:none}.contact-page nav a[aria-current=page]:after{transform:scaleX(1)}
.inquiry-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:7%;padding-top:220px;min-height:85svh;align-items:start}
.inquiry-intro h1{font-size:clamp(44px,4.8vw,76px);line-height:1.06}.inquiry-intro>p{max-width:480px;font-size:19px;line-height:1.65;color:#ccc;margin-top:30px}.email-link{display:inline-block;margin-top:35px;font-size:clamp(17px,1.7vw,24px);border-bottom:1px solid #777;padding-bottom:8px;overflow-wrap:anywhere}.inquiry-intro .inquiry-location{font-size:16px;color:#bbb}
.inquiry-panel{padding:36px;background:#161616;border:1px solid #333}.inquiry-panel h2{font-size:30px;line-height:1.2}.form-help{font-size:16px;line-height:1.6;color:#bbb;margin:18px 0 28px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
#inquiry-form label{display:block;margin-bottom:22px;font-size:16px;line-height:1.5}#inquiry-form label>span{font-size:13px;color:#aaa}#inquiry-form input,#inquiry-form select,#inquiry-form textarea{display:block;width:100%;min-width:0;margin-top:8px;padding:13px 14px;border:1px solid #666;border-radius:0;background:#0d0d0d;color:#fff;font:inherit;font-size:16px;min-height:48px;color-scheme:dark}#inquiry-form textarea{resize:vertical}#inquiry-form input:focus,#inquiry-form select:focus,#inquiry-form textarea:focus{outline:2px solid white;outline-offset:3px}#email-status{font-size:16px;color:#ddd;line-height:1.6;margin-top:22px}
@media(max-width:900px){.inquiry-layout{grid-template-columns:1fr;gap:48px}.inquiry-intro h1{font-size:clamp(40px,7vw,66px)}}
@media(max-width:700px){.inquiry-layout{padding-top:155px}.inquiry-panel{padding:24px 18px}.form-grid{grid-template-columns:1fr;gap:0}.inquiry-panel h2{font-size:28px}.inquiry-intro h1{font-size:clamp(36px,8.7vw,56px)}header nav.open a:nth-of-type(4){transition-delay:.72s}.inquiry-intro>p{font-size:18px}#inquiry-form .button{width:100%;gap:20px}}
.about-page header{animation:none}.about-page nav a[aria-current=page]:after{transform:scaleX(1)}
.about-opening{padding-top:210px;display:grid;grid-template-columns:1.15fr 1fr;gap:8%;align-items:center}.about-opening h1{font-size:clamp(54px,7.2vw,106px)}.about-opening-copy>p{font-size:20px;line-height:1.6;color:#ccc;max-width:480px;margin-top:30px}.about-opening .button{margin-top:32px}.about-main-portrait{margin:0;min-width:0}.about-main-portrait img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 28%}.about-main-portrait figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;padding-top:18px;font-size:16px}.about-main-portrait figcaption span+span{font-size:12px;color:#bbb;letter-spacing:.07em}
.founder-story{display:grid;grid-template-columns:1fr 2fr;gap:7%;border-top:1px solid #333}.founder-story p{max-width:760px;font-size:20px;line-height:1.7;color:#ddd;margin-top:26px}.about-specialty{background:#171717}.about-copy-columns{display:grid;grid-template-columns:1fr 1fr;gap:7%;margin-top:45px}.about-copy-columns p,.approach-grid p{font-size:18px;line-height:1.7;color:#ccc}.about-text-link{display:inline-block;margin-top:32px;padding:12px 0;border-bottom:1px solid #888;font-size:17px}.about-text-link svg{margin-left:22px}.approach-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}.approach-grid article{border-top:1px solid #666;padding-top:22px}.approach-grid article>span{font-size:12px;letter-spacing:.08em;color:#bbb}.approach-grid h3{font-size:27px;line-height:1.15;font-weight:400;margin:30px 0 18px}.evince-meaning{text-align:center;border-top:1px solid #333}.evince-meaning p{max-width:620px;margin:30px auto 0;font-size:20px;line-height:1.65;color:#ccc}
@media(max-width:900px){.about-opening{gap:5%}.about-opening h1{font-size:clamp(44px,6.5vw,70px)}.approach-grid{gap:22px}.approach-grid h3{font-size:24px}}
@media(max-width:700px){.about-opening{padding-top:145px;grid-template-columns:1fr;gap:40px}.about-opening h1{font-size:clamp(44px,12vw,72px)}.about-opening-copy>p{font-size:18px}.founder-story{grid-template-columns:1fr;gap:12px}.founder-story p{font-size:18px}.about-copy-columns,.approach-grid{grid-template-columns:1fr;gap:28px}.about-copy-columns{margin-top:30px}.approach-grid h3{margin-top:20px}.evince-meaning p{font-size:18px}.about-page .contact-bottom a{overflow-wrap:anywhere}}

.about-opening{position:relative;padding-top:175px;padding-bottom:75px;row-gap:28px}
.about-scroll-cue{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:14px;color:#fff;font-size:13px;letter-spacing:.12em;padding:18px 0;border-top:1px solid #444}
.about-main-portrait img{max-height:62svh}
@media(prefers-reduced-motion:no-preference){.about-scroll-cue svg{animation:scroll-nudge 2s ease-in-out infinite}}
@keyframes scroll-nudge{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
@media(max-width:700px){.about-opening{padding-top:140px;padding-bottom:35px;gap:28px}.about-scroll-cue{grid-row:2;justify-content:flex-start}.about-main-portrait{grid-row:3}.about-main-portrait img{max-height:none}}
.work-page header{animation:none}.work-page nav a[aria-current=page]:after{transform:scaleX(1)}.work-opening{padding-top:210px;padding-bottom:30px}.work-opening h1{font-size:clamp(54px,7.5vw,110px)}.work-opening>p:not(.portfolio-status){font-size:20px;line-height:1.6;color:#ccc;margin-top:30px}.work-filters{display:flex;gap:12px;flex-wrap:wrap;margin-top:45px}.work-filters button{padding:13px 24px;border:1px solid #777;background:transparent;color:#fff;font-size:16px;min-height:48px;border-radius:0}.work-filters button[aria-pressed=true]{background:#fff;color:#111;border-color:#fff}.work-filters button:hover{border-color:#fff}.portfolio-status{font-size:13px;color:#aaa;margin-top:18px}.portfolio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:50px 30px;padding-top:20px}.work-card[hidden]{display:none!important}.work-card.featured{grid-column:1/-1}.work-placement{aspect-ratio:16/9;background:#1b1b1b;border:1px solid #393939;padding:24px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.placement-index,.placement-note{font-size:12px;letter-spacing:.12em;color:#bbb}.placement-center{font-size:clamp(26px,3.5vw,48px);letter-spacing:-.04em;line-height:1.1}.placement-center em{font-size:.8em;color:#bbb}.featured .work-placement{aspect-ratio:21/9;background:linear-gradient(135deg,#292929,#121212)}.featured .placement-center{font-size:clamp(44px,6vw,88px)}.vertical .work-placement{aspect-ratio:9/16;max-height:660px}.photo .work-placement{background:#dedede;color:#111;aspect-ratio:4/3}.photo .placement-index,.photo .placement-note,.photo .placement-center em{color:#444}.work-caption{padding-top:18px;display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}.work-caption h2{font-size:24px;letter-spacing:-.02em;line-height:1.2}.work-caption p{font-size:14px;color:#bbb}.work-card{min-width:0}
@media(max-width:700px){.work-opening{padding-top:145px}.work-opening h1{font-size:clamp(44px,11vw,70px)}.work-opening>p:not(.portfolio-status){font-size:18px}.work-filters{gap:8px;margin-top:30px}.work-filters button{padding:12px 17px}.portfolio-grid{grid-template-columns:1fr;gap:36px}.featured .work-placement{aspect-ratio:16/9}.work-placement{padding:18px}.placement-index,.placement-note{font-size:11px}.work-caption{flex-direction:column;align-items:flex-start;gap:6px}.work-caption h2{font-size:23px}.vertical .work-placement{max-height:none}.placement-center{font-size:36px}}

/* Combined video and photography project */
.package-project{border-top:1px solid #333;padding-top:90px;padding-bottom:100px}
.package-heading{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:end;margin:24px 0 42px}
.package-heading h2{font-size:clamp(38px,5.8vw,84px);line-height:1.05;margin:0;letter-spacing:-.045em}
.package-heading p{color:#bbb;font-size:18px;line-height:1.6;max-width:370px}
.package-heading em{font-family:Georgia,serif;font-weight:400}
.package-video{aspect-ratio:16/9}
.package-photos{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}
.package-photos .work-placement{aspect-ratio:4/3;background:#ddd;color:#191919}
.package-photos .placement-note,.package-photos .placement-index{color:#555}
@media(max-width:700px){.package-project{padding-top:60px;padding-bottom:64px}.package-heading{grid-template-columns:1fr;gap:16px;margin-bottom:28px}.package-heading p{font-size:16px;margin:0}.package-photos{gap:12px;margin-top:12px}.package-photos .placement-center{font-size:24px}.package-photos .placement-index{font-size:8px}.package-photos .placement-note{font-size:8px}.package-video .placement-center em{font-size:15px}}

/* Work: bold editorial rhythm, restrained monochrome motion. */
.work-page main{overflow:clip}
.work-opening{padding-top:185px}
.work-opening h1{font-size:clamp(54px,9.8vw,152px);line-height:.98;letter-spacing:-.065em;margin:26px 0}
.work-title-line{display:block}
.work-title-line:last-child{padding-left:7%}
.work-title-line em{font-family:Georgia,serif;font-weight:400}
.work-opening>p:not(.portfolio-status){max-width:580px;margin-left:auto}
.work-section-label{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #555;margin-top:55px;padding-bottom:20px;font-size:13px;letter-spacing:.08em}
.work-section-label a{font-size:14px;letter-spacing:0}
.work-section-label a span{display:inline-block;margin-left:16px;font-family:Arial,sans-serif}
.work-filters{margin-top:26px}.work-filters button{border-radius:100px;transition:background .25s,color .25s,transform .25s}.work-filters button:hover{transform:translateY(-3px)}
.portfolio-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:70px 28px;align-items:start}
.work-card{grid-column:span 7}.work-card.vertical{grid-column:span 5;grid-row:span 2}
.work-card.photo{grid-column:span 5}
.work-card.featured{grid-column:1/-1}
.work-card:nth-child(3){padding-top:80px}.work-card:nth-child(4){grid-column:span 7}
.work-card:nth-child(5){grid-column:span 7}.work-card:nth-child(6){margin-top:100px}
.work-placement{position:relative;border:1px solid #555;background:linear-gradient(145deg,#303030,#101010);transition:border-color .5s,transform .65s cubic-bezier(.2,.8,.2,1)}
.work-placement:after{content:"";position:absolute;inset:12px;border:1px solid #ffffff18;pointer-events:none}
.work-card:hover .work-placement{transform:translateY(-6px);border-color:#aaa}
.placement-center{font-size:clamp(36px,5vw,74px);font-weight:700}
.placement-center em{display:inline-block;font-family:Georgia,serif;font-weight:400;font-size:.48em;letter-spacing:-.02em}
.featured .placement-center{font-size:clamp(58px,11vw,160px);line-height:.85}
.featured .placement-center em{font-size:.3em;margin-top:20px}
.featured .work-placement{background:linear-gradient(120deg,#3e3e3e,#151515 65%);aspect-ratio:2.1}
.work-caption{border-top:1px solid #444;margin-top:18px;padding-top:18px}
.work-caption h2{font-size:clamp(24px,2.5vw,38px)}
.placement-index,.placement-note{font-size:12px}
.work-divider{display:flex;justify-content:center;gap:4vw;white-space:nowrap;border-block:1px solid #444;padding:38px 0;font-size:clamp(32px,7vw,108px);font-weight:700;letter-spacing:-.05em;overflow:hidden}
.work-divider>span{color:transparent;-webkit-text-stroke:1px #ddd}.work-divider em{font-family:Georgia,serif;font-weight:400}
.package-project{border-top:0;background:#e9e9e9;color:#111}
.package-project .eyebrow,.package-heading p{color:#444}
.package-media{display:grid;grid-template-columns:1.65fr 1fr;gap:24px;align-items:center}
.package-video{color:white;aspect-ratio:4/3}
.package-photos{grid-template-columns:1fr;gap:24px;margin-top:0}
.package-photos .work-placement{background:#d0d0d0}
.package-photos .work-placement:first-child{transform:rotate(2deg)}
.package-photos .work-placement:last-child{transform:rotate(-2deg)}
.work-page .contact{padding-top:110px;padding-bottom:110px}
.work-enter{animation:work-enter .95s cubic-bezier(.2,.7,.2,1) both}
.work-title-line:nth-child(2){animation-delay:.13s}
@keyframes work-enter{from{opacity:0;transform:translateY(55px)}to{opacity:1;transform:translateY(0)}}
.work-reveal{opacity:0;transform:translate(var(--entry-x,0px),65px) rotate(var(--entry-r,0deg));transition:opacity .8s ease,transform 1.1s cubic-bezier(.2,.75,.2,1)}
.work-reveal.is-visible{opacity:1;transform:none}
.portfolio-grid.is-filtered .work-card{grid-column:span 6;grid-row:auto;margin-top:0;padding-top:0}
.portfolio-grid.is-filtered .work-card.featured{grid-column:1/-1}
@media(max-width:700px){
.work-opening{padding-top:145px}.work-opening h1{font-size:clamp(42px,11vw,77px);line-height:1.04}.work-title-line:last-child{padding-left:0}
.work-opening>p:not(.portfolio-status){margin-left:0;font-size:17px}
.work-section-label{margin-top:35px;flex-wrap:wrap;font-size:12px}
.portfolio-grid{grid-template-columns:1fr;gap:42px}
.portfolio-grid .work-card,.portfolio-grid.is-filtered .work-card{grid-column:1;grid-row:auto;margin:0;padding-top:0}
.featured .work-placement{aspect-ratio:16/9}.featured .placement-center{font-size:clamp(52px,15vw,90px)}
.work-caption h2{font-size:26px}.work-divider{gap:20px;padding:28px 0;font-size:9vw}
.package-media{grid-template-columns:1fr;gap:24px}.package-video{aspect-ratio:16/9}
.package-photos{grid-template-columns:1fr 1fr;gap:14px}
.package-photos .placement-index{font-size:12px;letter-spacing:0}
.package-photos .placement-note{font-size:12px;letter-spacing:0}
.package-photos .work-placement{min-height:180px;padding:14px}
.work-page .contact{padding-top:75px;padding-bottom:75px}
}
@media(prefers-reduced-motion:reduce){.work-enter{animation:none}.work-reveal{opacity:1;transform:none;transition:none}.work-card:hover .work-placement{transform:none}.work-filters button{transition:none}}

/* Centered portrait film with photographs assembling around it. */
.package-media{--assembly:1;position:relative;display:block;max-width:1120px;margin:55px auto 10px;padding:30px 0 60px;isolation:isolate}
.package-video{width:38%;max-width:400px;aspect-ratio:9/16;margin:0 auto;position:relative;z-index:1;box-shadow:0 24px 55px #0003}
.package-video .placement-center{font-size:clamp(30px,4vw,58px)}
.package-video .placement-center em{font-size:.4em}
.package-photos{position:absolute;inset:0;display:block;margin:0;pointer-events:none;z-index:2}
.package-photos .work-placement{position:absolute;width:34%;aspect-ratio:4/3;min-height:0;background:#d2d2d2;border:10px solid #fff;border-bottom-width:35px;padding:18px;box-shadow:0 18px 35px #0003;opacity:calc(.15 + var(--assembly)*.85);will-change:transform}
.package-photos .work-placement:after{display:none}
.package-photos .work-placement:first-child{left:1%;top:14%;transform:translateX(calc((1 - var(--assembly))*-65vw)) translateY(calc((1 - var(--assembly))*65px)) rotate(calc(-8deg + (1 - var(--assembly))*-12deg))}
.package-photos .work-placement:last-child{right:1%;top:54%;transform:translateX(calc((1 - var(--assembly))*65vw)) translateY(calc((1 - var(--assembly))*85px)) rotate(calc(7deg + (1 - var(--assembly))*12deg))}
.package-photos .placement-center{font-size:clamp(24px,3.5vw,48px)}
.package-photos .placement-index,.package-photos .placement-note{font-size:12px;letter-spacing:.03em}
@media(max-width:700px){
.package-media{margin-top:32px;padding:20px 0 65px}
.package-video{width:70%;max-width:330px;padding:16px}
.package-video .placement-center{font-size:36px}
.package-photos .work-placement{width:43%;padding:10px;border-width:5px;border-bottom-width:21px;aspect-ratio:4/5}
.package-photos .work-placement:first-child{left:-3%;top:20%}
.package-photos .work-placement:last-child{right:-3%;top:63%}
.package-photos .placement-center{font-size:24px}
.package-photos .placement-index{font-size:12px;letter-spacing:0}
.package-photos .placement-note{font-size:12px;letter-spacing:0}
}
@media(prefers-reduced-motion:reduce){.package-photos .work-placement{opacity:1;will-change:auto}.package-photos .work-placement:first-child{transform:rotate(-8deg)}.package-photos .work-placement:last-child{transform:rotate(7deg)}}

/* Mobile scrapbook: photos meet at the bottom edge of the film. */
@media(max-width:700px){
.package-media{padding-bottom:20px}
.package-video{width:82%;max-width:330px}
.package-photos{position:relative;inset:auto;display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:-24px 0 0;pointer-events:none}
.package-photos .work-placement{position:relative;width:100%;min-width:0}
.package-photos .work-placement:first-child{left:auto;top:auto}
.package-photos .work-placement:last-child{right:auto;top:auto;margin-top:12px}
}

/* Vertical video leads the portfolio. */
.portfolio-grid,.portfolio-grid.is-filtered{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
.portfolio-grid .work-card,.portfolio-grid.is-filtered .work-card{grid-column:auto;grid-row:auto;margin:0;padding:0}
.portfolio-grid .vertical .work-placement{aspect-ratio:9/16;max-height:none}
.portfolio-grid .landscape{grid-column:span 2}
.portfolio-grid .placement-center{font-size:clamp(30px,4vw,62px)}
.portfolio-grid .work-caption{display:block}
.portfolio-grid .work-caption h2{font-size:clamp(24px,2.2vw,34px)}
.portfolio-grid .work-caption p{margin-top:8px}
@media(max-width:700px){.portfolio-grid,.portfolio-grid.is-filtered{grid-template-columns:1fr}.portfolio-grid .landscape{grid-column:auto}.portfolio-grid .placement-center{font-size:44px}}

.work-placement.actual-video{padding:0;background:#000;border:0;display:block}
.work-placement.actual-video:after{display:none}
.actual-video video{display:block;width:100%;height:100%;object-fit:contain}
.package-video.actual-video{aspect-ratio:9/16}

/* Three real photos assemble around the Spire film. */
.package-photos .gym-photo{margin:0;padding:0;width:27%;aspect-ratio:2/3}
.gym-photo img{display:block;width:100%;height:100%;object-fit:cover}
.package-photos .gym-photo:first-child{left:7%;top:8%}
.package-photos .gym-photo:nth-child(2){right:7%;top:16%;transform:translateX(calc((1 - var(--assembly))*65vw)) translateY(calc((1 - var(--assembly))*85px)) rotate(7deg)}
.package-photos .gym-photo:last-child{left:5%;right:auto;top:70%;width:35%;aspect-ratio:3/2;transform:translateX(calc((1 - var(--assembly))*-65vw)) translateY(calc((1 - var(--assembly))*85px)) rotate(-5deg)}
.package-media{padding-bottom:130px}
@media(max-width:700px){
.package-media{padding-bottom:25px}
.package-photos{gap:16px}
.package-photos .gym-photo{width:100%;aspect-ratio:2/3}
.package-photos .gym-photo:first-child{left:auto;top:auto}
.package-photos .gym-photo:nth-child(2){right:auto;top:auto;margin-top:12px}
.package-photos .gym-photo:last-child{grid-column:1/-1;width:76%;justify-self:center;left:auto;right:auto;top:auto;aspect-ratio:3/2;margin-top:-5px}
}
@media(prefers-reduced-motion:reduce){.package-photos .gym-photo:nth-child(2){transform:rotate(7deg)}.package-photos .gym-photo:last-child{transform:rotate(-5deg)}}

/* Compact collage: keep the whole composition in view. */
.package-media{max-width:820px;margin-top:32px;padding-top:20px;padding-bottom:85px}
.package-video{width:34%;max-width:280px}
.package-photos .gym-photo{width:25%}
.package-photos .gym-photo:first-child{left:10%}
.package-photos .gym-photo:nth-child(2){right:10%}
.package-photos .gym-photo:last-child{left:9%;width:31%;top:67%}
@media(max-width:700px){
.package-media{max-width:340px;padding-top:12px;padding-bottom:16px;margin-top:26px}
.package-video{width:62%;max-width:210px}
.package-photos{gap:12px;margin-top:-20px;max-width:280px;margin-left:auto;margin-right:auto}
.package-photos .gym-photo{width:100%;aspect-ratio:2/3}
.package-photos .gym-photo:first-child{left:auto}
.package-photos .gym-photo:nth-child(2){right:auto}
.package-photos .gym-photo:last-child{left:auto;top:auto;width:65%;margin-top:-8px}
}

/* Keep the complete collage within a single viewport. */
.package-media{width:min(100%,720px,100svh);max-width:720px;margin:24px auto 0;padding:12px 0 70px}
.package-video{width:30%;max-width:220px}
.package-photos .gym-photo{width:23%}
.package-photos .gym-photo:first-child{left:11%;top:5%}
.package-photos .gym-photo:nth-child(2){right:11%;top:12%}
.package-photos .gym-photo:last-child{width:29%;left:9%;top:62%}
@media(max-width:700px){
.package-media{width:min(100%,300px,48svh);padding:8px 0 8px}
.package-video{width:54%;max-width:165px}
.package-photos{width:85%;gap:10px;margin-top:-16px}
.package-photos .gym-photo{width:100%;border-bottom-width:12px}
.package-photos .gym-photo:first-child{left:auto;top:auto}
.package-photos .gym-photo:nth-child(2){right:auto;top:auto;margin-top:8px}
.package-photos .gym-photo:last-child{width:57%;left:auto;top:auto;margin-top:-18px}
}

/* Balanced mixed portfolio: three portraits, a film, then paired photos. */
.portfolio-grid{max-width:1120px;margin-inline:auto;grid-template-columns:repeat(6,minmax(0,1fr));gap:48px 24px}
.portfolio-grid .work-card,.portfolio-grid.is-filtered .work-card{grid-column:span 2}
.portfolio-grid .work-card.vertical{order:0}
.portfolio-grid .work-card.landscape{order:1;grid-column:1/-1;width:88%;justify-self:center}
.portfolio-grid .work-card.photo{order:2;grid-column:span 3}
.portfolio-grid.is-filtered{grid-template-columns:repeat(6,minmax(0,1fr))}
.portfolio-grid .work-caption h2{font-size:clamp(22px,2vw,30px)}
@media(max-width:700px){
.portfolio-grid,.portfolio-grid.is-filtered{max-width:380px;grid-template-columns:1fr;gap:36px}
.portfolio-grid .work-card,.portfolio-grid.is-filtered .work-card,.portfolio-grid .work-card.photo,.portfolio-grid .work-card.landscape{grid-column:1;width:100%}
}

[data-highlight-section][hidden]{display:none!important}
.selected-carousel{max-width:1200px;margin:auto}
.carousel-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:30px}
.carousel-heading h2{font-size:clamp(32px,4vw,56px)}
.carousel-heading em{font-family:Georgia,serif;font-weight:400}
.carousel-buttons{display:flex;gap:10px}
.carousel-buttons button{width:48px;height:48px;border:1px solid #777;background:transparent;color:#fff;display:grid;place-items:center;cursor:pointer}
.carousel-buttons button:first-child svg{transform:rotate(180deg)}
.carousel-track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;padding:8px 0 22px;scrollbar-color:#777 #171717}
.carousel-card{flex:0 0 72%;min-width:0;scroll-snap-align:start}
.carousel-card .work-placement{aspect-ratio:16/9}
.carousel-card .work-caption h2{font-size:26px}
.carousel-card.photo .work-placement{background:#dedede;color:#111}
@media(max-width:700px){.carousel-card{flex-basis:90%}.carousel-heading{align-items:end}.carousel-heading h2{font-size:32px}.carousel-card .work-caption h2{font-size:23px}}

.carousel-track{align-items:start}
.carousel-card.carousel-photograph{flex:0 0 auto;height:clamp(280px,48vw,550px)}
.carousel-photograph img{display:block;height:100%;width:auto;max-width:none;object-fit:contain}
@media(max-width:700px){.carousel-card.carousel-photograph{height:390px;max-height:60svh}}

/* Give every carousel item the same media height. */
.carousel-track{--carousel-height:clamp(200px,30vw,380px);position:relative;align-items:start}
.carousel-track .carousel-card{flex:0 0 auto;height:var(--carousel-height);max-height:none}
.carousel-track .carousel-card.landscape{width:auto;aspect-ratio:16/9}
.carousel-track .carousel-card .work-placement{height:100%;width:100%;aspect-ratio:16/9}
.carousel-track .carousel-photograph img{height:100%;width:auto}
@media(max-width:700px){.carousel-track{--carousel-height:clamp(180px,48vw,280px)}}

.services-page header{animation:none}.services-page nav a[aria-current=page]:after{transform:scaleX(1)}
.services-page main{overflow:clip}.service-opening{padding-top:180px;padding-bottom:45px}
.service-opening h1{font-size:clamp(56px,9vw,132px);line-height:1;letter-spacing:-.055em;margin:28px 0}
.service-opening em,.service-plan em{font-family:Georgia,serif;font-weight:400}
.service-intro{display:flex;justify-content:space-between;align-items:center;gap:36px}
.service-intro p{max-width:560px;font-size:20px;line-height:1.6;color:#ccc}
.service-jumps{display:flex;flex-wrap:wrap;gap:14px 30px;border-top:1px solid #555;margin-top:42px;padding-top:24px}
.service-jumps a{font-size:16px;padding:10px 0;border-bottom:1px solid #777}
.service-detail{display:grid;grid-template-columns:1.1fr 1fr;gap:8%;align-items:center;border-top:1px solid #333;scroll-margin-top:100px}
.service-detail:nth-of-type(odd){background:#e8e8e8;color:#111}
.service-detail h2{font-size:clamp(36px,4.8vw,68px);line-height:1.05}
.service-copy>p{font-size:18px;line-height:1.7;margin-top:25px}
.service-copy .service-formats{font-size:14px;border-top:1px solid #777;padding-top:22px;line-height:1.9}
.service-detail figure{margin:0}.service-detail img{width:100%;height:430px;display:block;object-fit:cover}
#social img{object-position:center 35%}#films img,#combined img{height:auto;aspect-ratio:16/9}
.service-link{display:inline-flex;align-items:center;gap:30px;border-bottom:1px solid currentColor;padding:14px 0;margin-top:18px;font-size:17px}
.service-plan{border-top:1px solid #555}.service-plan h2{font-size:clamp(36px,5vw,72px);line-height:1.08}
.service-plan-copy{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin-top:30px;font-size:18px;line-height:1.7;color:#ccc}
@media(max-width:700px){.service-opening{padding-top:145px}.service-opening h1{font-size:clamp(46px,11vw,76px)}.service-intro{display:block}.service-intro p{font-size:18px}.service-intro .button{margin-top:24px}.service-detail{grid-template-columns:1fr;gap:30px}.service-detail img{height:340px}.service-detail h2{font-size:36px}.service-plan-copy{grid-template-columns:1fr;gap:22px}.service-jumps{gap:10px 24px}}

/* Softer dark backgrounds for service sections 2 and 4. */
.services-page .service-detail:nth-of-type(odd){background:#202020;color:#fff}
.services-page .service-detail:nth-of-type(odd) .eyebrow{color:#ccc}
.services-page .service-detail:nth-of-type(odd) .service-copy>p{color:#ddd}
.services-page .service-detail:nth-of-type(odd) h2,.services-page .service-detail:nth-of-type(odd) .service-link{color:#fff}

#social img{object-position:50% 65%}

/* Mobile audit: keep service shortcuts independent of the header menu. */
@media(max-width:700px){
.service-jumps{display:flex;position:static;inset:auto;background:transparent;padding:24px 0 0;gap:10px 22px}
.service-jumps a{min-height:44px;display:inline-flex;align-items:center}
.service-copy,.service-intro,.service-plan-copy,.inquiry-intro,.inquiry-panel,.about-opening-copy{min-width:0}
.service-link,.work-filters button,.menu{min-height:44px}
.service-opening .button,.about-opening .button{max-width:100%;gap:24px}
.contact-intro{font-size:17px;line-height:1.6}
.email-link,footer p,.contact-bottom a{overflow-wrap:anywhere}
.carousel-heading{flex-wrap:wrap}
}
@media(max-width:360px){
.work-filters{gap:7px}.work-filters button{padding:12px 13px;font-size:15px}
.service-opening h1,.about-opening h1{font-size:42px}
.work-opening h1{font-size:38px}
}
