@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/montserrat-latin-ext-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/montserrat-latin-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url('assets/fonts/manrope-latin-ext-wght-normal.woff2') format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url('assets/fonts/manrope-latin-wght-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--bg:#161313;--ink:#f5f3ef;--muted:#bab3ae;--line:#3c3531;--accent:#b59a7d;--surface-light:#161313;--surface-soft:#201c1a;--surface-dark:#292321}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Montserrat,Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}h1,h2,h3,p{margin:0}p{line-height:1.7}h2{font-size:clamp(30px,3.2vw,44px);font-weight:400;line-height:1.12;letter-spacing:-1.6px}[hidden]{display:none!important}.arrow{width:1em;height:1em;display:inline-block;vertical-align:middle;flex-shrink:0}.eyebrow{font-size:10px;letter-spacing:1.6px}.skip{position:fixed;top:-100px;left:20px;background:white;padding:16px;z-index:30}.skip:focus{top:10px}.skip{background:var(--accent);color:#19130f}
.header{height:80px;padding:0 6%;display:flex;justify-content:space-between;align-items:center;position:relative;z-index:10}.logo{display:flex;align-items:baseline;font-weight:900;letter-spacing:-4px;font-size:48px;line-height:1}.logo span{font-size:11px;letter-spacing:0;margin-left:11px;font-weight:400}.header nav{display:flex;gap:28px;font-size:12px;align-items:center}.nav-contact{border:1px solid var(--line);border-radius:0;padding:10px 0;border:0;border-bottom:1px solid var(--ink)}.nav-contact>span{margin-left:22px}.menu-toggle{display:none}
.hero{background:var(--surface-light);display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:6%;padding:32px 7%;align-items:center;text-align:left}
.hero-content{min-width:0;max-width:none;margin:0}.hero-top{display:inline-flex;align-items:center;gap:9px;font-size:10px;letter-spacing:1.4px;margin-bottom:22px;color:var(--muted)}.hero-top::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}
h1{font-size:clamp(44px,5.7vw,82px);line-height:1.06;font-weight:600;letter-spacing:-3px;margin-bottom:24px}.title-line:last-child{color:var(--ink)}
.hero-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px}.hero-bottom p{font-size:13px;color:var(--muted);text-align:left;line-height:1.55}
.circle-link{display:inline-flex;align-items:center;gap:24px;font-size:13px;font-weight:600;padding:15px 22px;border-radius:10px;background:var(--accent);color:#19130f;transition:background .2s,transform .2s}.circle{display:inline-flex;font-size:20px}.circle-link:hover{background:#c9b296;transform:translateY(-2px)}
.hero-frame{max-width:none;margin:0;text-align:left;min-width:0}.hero-frame>img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 38%;border-radius:16px;background:#292321}.hero-frame figcaption{display:flex;justify-content:space-between;gap:12px;font-size:10px;color:var(--muted);margin-top:10px;line-height:1.5}.hero-frame figcaption a{color:var(--ink);white-space:nowrap}
.section{padding:32px 7%}.work{background:var(--surface-light)}.section-top{margin-bottom:10px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:18px}.section-aside{font-size:12px;color:var(--muted)}.projects,.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 18px}.project,.photo-card{display:block;min-width:0}.project-image,.photo-image{position:relative;display:block;overflow:hidden;background:#302925}.project-image{aspect-ratio:16/9}.photo-image{aspect-ratio:4/3}.project-image img,.photo-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}.project:hover img,.photo-card:hover img{transform:scale(1.025)}.project-image::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 65%,#0005);pointer-events:none}.play,.photo-open{position:absolute;right:12px;bottom:12px;width:30px;height:30px;border:1px solid #ffffff80;border-radius:50%;display:grid;place-items:center;color:white;font-size:17px;z-index:1;background:#19251f25}.project-info{display:flex;flex-direction:column;margin-top:11px;gap:5px;font-size:13px;line-height:1.45}.project-info>span:last-child{display:flex;align-items:center;gap:8px;font-size:10px;color:var(--muted)}.projects-more,.photos-more{margin-top:18px}.projects-actions{display:flex;justify-content:center;margin-top:18px}.projects-toggle{display:inline-flex;gap:28px;align-items:center;border:0;border-bottom:1px solid var(--ink);border-radius:0;background:transparent;padding:10px 0;font-size:12px;transition:background .2s}.projects-toggle:hover{color:var(--accent);border-color:var(--accent)}.projects-toggle span{font-size:18px;line-height:1}.photography{background:var(--surface-soft);padding-top:32px;border-top:1px solid var(--line)}.photo-caption{display:block;font-size:12px;line-height:1.45;margin-top:10px}.photo-open{background:#16231c65}.photo-card:nth-child(3n+1) img{object-position:center 35%}

.services{background:var(--surface-soft);display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);column-gap:7%;padding-top:32px;padding-bottom:32px}.services .section-top{grid-column:1/-1;margin-bottom:14px}.services .section-heading{display:block;align-self:start;margin:0}
.contact{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:7%;background:var(--surface-dark);color:#faf7f1;padding-top:36px;padding-bottom:34px}.contact-intro .eyebrow{display:block;color:#c9c0b9;margin-bottom:24px}.contact h2{font-size:clamp(40px,4.1vw,60px);letter-spacing:-2px;line-height:1.05}.contact-intro p{font-size:12px;line-height:1.7;color:#c9c0b9;margin-top:18px}.contact-links{align-self:center;min-width:0}.contact-row{display:grid;grid-template-columns:1fr auto;column-gap:16px;border-bottom:1px solid #ffffff60;padding:22px 0}.contact-label{grid-column:1/-1;font-size:10px;letter-spacing:1px;color:#c9c0b9;margin-bottom:10px}.contact-value{font-size:clamp(20px,2.5vw,36px);letter-spacing:-.9px;line-height:1.3;overflow-wrap:anywhere}.contact-row>span:last-child{font-size:25px;align-self:center;color:#fff}.contact-value{text-decoration:none;transition:color .45s ease}.contact-row:hover .contact-value,.contact-row:focus-visible .contact-value{color:var(--accent)}.social-links{display:flex;gap:24px;margin-top:25px;font-size:11px;color:#fff}footer{background:var(--surface-light);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:28px 7%;font-size:10px;color:var(--muted)}footer .logo{color:var(--ink);font-size:37px}footer .logo span{font-size:9px}
.clients{background:var(--surface-soft);padding:14px 0 18px;border-bottom:1px solid var(--line)}.clients-heading{display:flex;align-items:center;justify-content:space-between;padding:0 7%;margin-bottom:14px}.clients h2{font-size:10px;font-weight:400;letter-spacing:1.7px;text-transform:uppercase;line-height:1.5}.clients-window{overflow:hidden;mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent)}.clients-track{display:flex;width:max-content;animation:clients-scroll 80s linear infinite;will-change:transform}.clients-group{display:flex;flex-shrink:0;align-items:center;gap:48px;list-style:none;padding:0 48px 0 0;margin:0}.clients-group li{display:flex;align-items:center;justify-content:center;width:130px;height:70px;flex-shrink:0;overflow:hidden;min-height:0}.clients-group img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;min-width:0;min-height:0;object-fit:contain;filter:brightness(0);opacity:.64;mix-blend-mode:multiply;flex-shrink:1}.clients-group img.client-logo-solid{filter:grayscale(1) contrast(1.6)}.clients:hover .clients-track,.clients:focus-within .clients-track,.clients.is-paused .clients-track{animation-play-state:paused}@keyframes clients-scroll{to{transform:translateX(-50%)}}
@media(min-width:1600px){.section{padding-left:max(7%,calc((100vw - 1400px)/2));padding-right:max(7%,calc((100vw - 1400px)/2))}}
@media(max-width:900px){.header nav{gap:19px}.contact{grid-template-columns:.65fr 1.35fr;gap:5%}.contact-value{font-size:24px}.project-info{font-size:12px}}
@media(max-width:760px){.header{height:72px;padding:0 6%}.logo{font-size:43px}.menu-toggle{display:flex;gap:24px;align-items:center;background:none;border:0;font-size:12px;padding:15px 0}.menu-toggle span{font-size:23px}.header nav{display:none;position:absolute;left:0;right:0;top:72px;background:var(--bg);padding:24px 6% 30px;flex-direction:column;align-items:stretch;gap:23px;border-top:1px solid var(--line)}.header nav.is-open{display:flex}.nav-contact{display:flex;justify-content:space-between}.hero{grid-template-columns:1fr;padding:28px 6% 26px;gap:24px}.hero-top{font-size:8px;letter-spacing:1px;margin-bottom:20px}h1{font-size:clamp(35px,7.6vw,56px);letter-spacing:-1.6px;margin-bottom:22px}.hero-bottom{flex-direction:row;flex-wrap:wrap;gap:18px}.hero-bottom p{text-align:left;font-size:12px}.circle-link{font-size:12px;gap:22px;padding:14px 20px}.circle{font-size:18px}.hero-frame{margin-top:0}.hero-frame>img{aspect-ratio:16/8;object-position:center 35%;border-radius:12px}.hero-frame figcaption{font-size:9px;margin-top:9px}.section{padding:26px 6%}.section-top{margin-bottom:10px}h2{font-size:31px;letter-spacing:-1.1px}.section-heading{margin-bottom:16px}.section-aside{display:none}.projects,.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px}.projects-featured>.project:first-child{grid-column:1/-1}.project-info{font-size:12px;margin-top:9px}.project-info>span:last-child{font-size:9px}.play,.photo-open{width:27px;height:27px;right:9px;bottom:9px;font-size:15px}.projects-more,.photos-more{margin-top:18px}.projects-actions{margin-top:18px}.photo-caption{font-size:11px}.services{grid-template-columns:1fr}.services .section-top{margin-bottom:10px}.services .section-heading{margin-bottom:18px}.contact{grid-template-columns:1fr;gap:20px;padding-top:30px;padding-bottom:28px}.contact-intro .eyebrow{margin-bottom:20px}.contact h2{font-size:44px}.contact-intro p{margin-top:18px}.contact-row{padding:20px 0}.contact-value{font-size:clamp(22px,5.6vw,30px)}.social-links{gap:23px;margin-top:25px}footer{padding:26px 6%;gap:15px;flex-wrap:wrap}footer .logo{font-size:34px}.clients{padding:16px 0 20px}.clients-heading{padding:0 6%;margin-bottom:10px}.clients-group{gap:28px;padding-right:28px}.clients-group li{width:105px;height:60px}.clients-track{animation-duration:65s}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.clients-track{will-change:auto}.clients-window{overflow-x:auto;mask-image:none;padding:0 6%}.clients-group[aria-hidden="true"]{display:none}}

/* Keep the initial photo selection on one line, including on small screens. */
.photos-featured{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:760px){.photos-featured{grid-template-columns:repeat(3,minmax(160px,1fr));overflow-x:auto;gap:12px;padding-bottom:8px;scroll-snap-type:x proximity}.photos-featured>.photo-card{scroll-snap-align:start}}

.contact-intro .contact-about{max-width:340px;margin-top:20px}.contact-about+p{margin-top:12px}

.section-title,.contact h2.section-title{font-size:clamp(23px,2.2vw,30px);font-weight:400;line-height:1.2;letter-spacing:-.7px}
.section-top{margin-bottom:18px}
.services .section-top{grid-column:auto;margin-bottom:0}
.clients{padding-top:22px}.clients-heading{margin-bottom:6px}
.clients h2{font-size:12px;letter-spacing:1px}
.clients-window:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.contact-intro .contact-about{margin-top:18px}
@media(max-width:760px){.services .section-top{margin-bottom:18px}.clients{padding-top:18px}.clients-heading{margin-bottom:4px}.section-title,.contact h2.section-title{font-size:24px}}

/* Small movements, without hiding content before JavaScript runs. */
.title-line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.title-line>span{display:inline-block;max-width:100%;vertical-align:top}
.project-info>span:first-child,.photo-caption{text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px;transition:text-decoration-color .2s}
.play .arrow,.photo-open .arrow,.circle .arrow{transition:transform .25s cubic-bezier(.22,1,.36,1)}
@media(hover:hover) and (pointer:fine){.project:hover .project-info>span:first-child,.photo-card:hover .photo-caption{text-decoration-color:currentColor}.project:hover .play .arrow,.photo-card:hover .photo-open .arrow{transform:translate(2px,-2px)}.circle-link:hover .circle .arrow{transform:translate(2px,2px)}}
.project:focus-visible .project-info>span:first-child,.photo-card:focus-visible .photo-caption{text-decoration-color:currentColor}
@media(prefers-reduced-motion:reduce){.project-image img,.photo-image img,.play .arrow,.photo-open .arrow,.circle .arrow{transform:none!important}}

/* Film and album viewer; the page underneath remains in place. */
.media-dialog{width:min(1100px,94vw);max-width:94vw;max-height:94svh;overflow:auto;padding:20px 24px;border:0;background:#201c1a;color:#f5f3ef}
.media-dialog::backdrop{background:#151413c9;backdrop-filter:blur(5px)}
.media-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px}
.media-header h2{font-size:19px;letter-spacing:-.4px;line-height:1.35}
.media-close{display:grid;place-items:center;flex-shrink:0;width:40px;height:40px;background:transparent;color:inherit;border:1px solid #ffffff50}
.media-stage{background:#191817}.media-stage.is-video{aspect-ratio:16/9}.media-stage.is-video iframe{display:block;width:100%;height:100%;border:0}
.media-stage.is-photo{height:min(64svh,720px);display:grid;place-items:center}.media-stage.is-photo img{display:block;width:100%;height:100%;min-height:0;object-fit:contain}
.media-status{font-size:12px;line-height:1.5;color:#c9c0b9}.media-status:not(:empty){margin-top:12px}
.media-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:16px;font-size:11px}.media-source{text-decoration:underline;text-underline-offset:4px}
.gallery-controls{display:flex;align-items:center;gap:14px;flex-shrink:0}.gallery-controls button{border:1px solid #ffffff50;background:transparent;color:inherit;min-width:44px;min-height:44px;font-size:20px}.gallery-count{font-variant-numeric:tabular-nums;min-width:55px;text-align:center}
@media(max-width:760px){.media-dialog{padding:14px;width:96vw;max-width:96vw}.media-header{gap:12px;margin-bottom:12px}.media-header h2{font-size:16px}.media-stage.is-photo{height:58svh}.media-footer{align-items:start;flex-direction:column;gap:18px}.gallery-controls{align-self:center}.media-close{width:44px;height:44px}}

/* Easy Motion inspired direction: dark surfaces, rounded blocks, restrained orange. */
:root{color-scheme:dark}
.header{height:76px;border-bottom:1px solid #ffffff0d}
.logo{font-weight:800}.logo span{color:var(--muted)}
.header nav>a:not(.nav-contact){color:#d7cec8}.header nav>a:hover{color:var(--accent)}
.header .nav-contact{border:0;background:var(--accent);color:#19130f;padding:12px 17px;border-radius:9px;font-weight:600}
.section-title,.contact h2.section-title{font-weight:700;font-size:clamp(26px,2.6vw,36px);letter-spacing:-1px}
.project,.photo-card{padding:10px;background:var(--surface-dark);border:1px solid #ffffff0a;border-radius:14px;transition:border-color .25s,background .25s}
.project:hover,.photo-card:hover{border-color:#b59a7d66;background:#322923}
.project-image,.photo-image{border-radius:9px}
.project-info{padding:2px 4px 4px;font-size:14px}.project-info>span:last-child{font-size:11px;color:var(--muted)}
.photo-caption{padding:2px 4px 4px;font-size:12px;color:#e3dbd6}
.play,.photo-open{border:1px solid #ffffff75;background:#15131399}
.projects-toggle{border:1px solid #756050;border-radius:9px;padding:12px 22px;background:#29211d;color:#f5f3ef;font-weight:500}
.projects-toggle:hover{color:var(--ink);border-color:var(--accent);background:#3b2a20}
.clients{border:0}.clients h2{color:var(--muted)}.clients-group{gap:20px;padding-right:20px}.clients-group li{background:transparent;border-radius:0;padding:6px;width:134px;height:68px}.clients-group img{filter:brightness(0) invert(1);mix-blend-mode:screen;opacity:.72}.clients-group img.client-logo-flat{filter:grayscale(1) invert(1)}


.contact-intro p{color:#c9c0b9}.contact-row{border-bottom:1px solid #ffffff26;padding:18px 0}.contact-label{color:#c9c0b9}.contact-row>span:last-child{color:var(--accent)}.contact-value{font-weight:500}.contact-row:hover .contact-value{color:var(--accent)}.social-links{color:#e2d9d3}
footer{color:var(--muted);border-top:1px solid #ffffff0a}
@media(max-width:760px){.header{height:72px}.header nav{background:var(--surface-soft)}.project,.photo-card{padding:7px;border-radius:11px}.project-info{font-size:12px}.photo-caption{font-size:11px}.projects-toggle{font-size:12px}.clients-group{gap:14px;padding-right:14px}.clients-group li{width:112px;height:60px}.section-title,.contact h2.section-title{font-size:27px}}

/* Subtle film grain stays between section backgrounds and their content. */
main>section{position:relative;isolation:isolate}
main>section::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:url('assets/grain.svg');background-repeat:repeat;opacity:.06;mix-blend-mode:screen;animation:film-grain 1.2s steps(1,end) infinite}

/* Persistent navigation and a clearer personal contact block. */
:root{--header-height:76px}
html{scroll-padding-top:calc(var(--header-height) + 16px)}
.header{position:sticky;top:0;z-index:50;height:var(--header-height);background:#161313f5;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid #ffffff12}
.contact{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:6%;padding-top:40px;padding-bottom:40px}
.contact-intro .contact-name{font-size:clamp(30px,3.4vw,48px);font-weight:500;line-height:1.12;letter-spacing:-1.4px;color:var(--ink);margin-top:26px;max-width:100%}
.contact-intro .contact-about{font-size:14px;line-height:1.65;max-width:360px;margin-top:16px}
.contact-intro .contact-location{margin-top:12px;font-size:12px;color:var(--muted)}
.contact-links{align-self:start}.contact-links .contact-row:first-child{padding-top:4px}
.contact-label{font-size:11px}.contact-value{line-height:1.4}
@media(max-width:760px){:root{--header-height:72px}.header nav{top:var(--header-height);max-height:calc(100dvh - var(--header-height));overflow-y:auto;overscroll-behavior:contain}.contact{grid-template-columns:1fr;gap:28px;padding-top:30px;padding-bottom:30px}.contact-intro .contact-name{font-size:clamp(29px,7.5vw,40px);letter-spacing:-1px;margin-top:22px}.contact-intro .contact-about{font-size:13px;margin-top:12px}.contact-intro .contact-location{margin-top:10px}.contact-links .contact-row:first-child{padding-top:0}}

/* One compact offer section, with every description immediately visible. */
.services{display:block}
.services .section-top{text-align:center;margin-bottom:24px}
.service-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px 28px}
.service-item{grid-column:span 4;border-top:1px solid var(--line);padding-top:14px;min-width:0}
.service-item:nth-child(n+4){grid-column:span 4}
.service-index{font-size:10px;color:var(--accent);font-variant-numeric:tabular-nums}
.service-item h3{font-size:20px;font-weight:600;line-height:1.35;letter-spacing:-.5px;margin:8px 0}
.service-item p{font-size:13px;line-height:1.7;color:var(--muted);max-width:47ch}
.contact-intro .contact-name{font-weight:600;letter-spacing:-1.5px;line-height:1.18}
.contact-value{font-size:clamp(22px,2.35vw,34px);font-weight:500;letter-spacing:-1px}
.contact-label{font-size:10px;text-transform:uppercase;letter-spacing:1.2px}
@media(max-width:900px){.contact-intro .contact-name{font-size:clamp(28px,3.4vw,38px)}.contact-value{font-size:24px}}
@media(max-width:760px){.services .section-top{margin-bottom:20px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 18px}.service-item,.service-item:nth-child(n+4){grid-column:span 1}.service-item:last-child{grid-column:span 1}.service-item h3{font-size:17px}.service-item p{font-size:12px}.contact-intro .contact-name{font-size:clamp(28px,7vw,38px)}.contact-value{font-size:clamp(20px,5.5vw,28px)}}
@media(max-width:380px){.service-grid{grid-template-columns:1fr;gap:18px}.service-item:last-child{grid-column:auto}}

/* Local original artwork: preserve lettering and internal white details. */
.clients-group .client-art{display:block;width:100%;height:100%;max-width:100%;max-height:100%;overflow:hidden;opacity:.78}
.client-mono{filter:brightness(0) invert(1)}
.client-inverted{filter:grayscale(1) invert(1);mix-blend-mode:screen}
.client-tonal{filter:grayscale(1) brightness(1.7)}

.media-stage.is-video video{display:block;width:100%;height:100%;object-fit:contain;background:#191817}

.hero-media{position:relative}
.hero-frame .hero-preview{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;border-radius:16px;background:var(--surface-dark)}
.hero-motion-toggle{position:absolute;bottom:12px;right:12px;display:grid;place-items:center;width:36px;height:36px;border:1px solid #ffffff65;border-radius:50%;background:#161313b3;color:#fff;padding:0}
@media(max-width:760px){.hero-frame .hero-preview{aspect-ratio:16/9;border-radius:12px}.hero-motion-toggle{width:40px;height:40px}}

/* Let the work take more room and keep the first screen quiet. */
.hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:5%;padding-top:26px;padding-bottom:26px}
.hero-top{margin-bottom:18px}.hero-bottom{justify-content:flex-start}
.hero-motion-toggle{width:40px;height:40px;bottom:8px;right:8px;border:0;border-radius:0;background:transparent;color:#fff;opacity:.7;filter:drop-shadow(0 1px 3px #000);transition:opacity .2s}
.hero-motion-toggle:hover,.hero-motion-toggle:focus-visible{opacity:1}
.clients{padding-top:13px}.clients-heading{margin-bottom:12px}
@media(max-width:760px){.hero{grid-template-columns:1fr;gap:22px;padding-top:24px;padding-bottom:24px}.hero-motion-toggle{width:44px;height:44px;bottom:4px;right:4px}.clients{padding-top:10px}.clients-heading{margin-bottom:10px}}

@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:300 700;font-display:swap;src:url('assets/fonts/space-grotesk-latin-ext-wght-normal.woff2') format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:300 700;font-display:swap;src:url('assets/fonts/space-grotesk-latin-wght-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
h1,h2,h3{font-family:Montserrat,Arial,sans-serif}
.services .section-top{text-align:left}

.contact h2.section-title{font-family:Montserrat,Arial,sans-serif;font-size:12px;font-weight:500;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted)}
.contact-intro .contact-name{font-family:Montserrat,Arial,sans-serif;font-size:clamp(42px,4.4vw,62px);font-weight:500;line-height:1.04;letter-spacing:-1.8px;margin-top:20px}
.contact-name span{color:var(--accent)}
@media(max-width:760px){.contact-intro .contact-name{font-size:clamp(39px,10vw,52px);margin-top:16px;letter-spacing:-1.3px}}

.footer-links{display:flex;gap:18px;flex-wrap:wrap}
.text-page .text-header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 7%;border-bottom:1px solid var(--line)}
.text-header nav{display:flex;gap:24px;font-size:13px}
.text-main{max-width:860px;padding:36px 24px;margin:auto}
.text-main h1{font-size:clamp(30px,4.4vw,50px);letter-spacing:-1.4px;line-height:1.15;margin:22px 0}
.text-main article>p{font-size:15px;line-height:1.85;color:var(--muted);margin:20px 0}
.text-main .article-meta,.breadcrumbs{font-size:12px;color:var(--muted)}
.text-main a{text-decoration:underline;text-underline-offset:4px}
.text-main .blog-entry h2{font-size:clamp(23px,3.5vw,32px);line-height:1.3;letter-spacing:-.8px}
.blog-entry{border-top:1px solid var(--line);padding-top:24px}.blog-entry p,.blog-entry time{color:var(--muted);font-size:13px;line-height:1.7;margin-top:18px}
.text-footer{padding:28px 7%;font-size:12px;border-top:1px solid var(--line)}

/* Align desktop content to the portfolio; let backgrounds and client logos bleed. */
@media(min-width:761px){
 :root{--content-gutter:max(7%,calc((100% - 1400px)/2))}
 .header,.hero,.section,.clients-heading,body:not(.text-page)>footer{
  padding-left:var(--content-gutter);
  padding-right:var(--content-gutter);
 }
}

/* Stage work and touch-friendly portfolio rows. */
.portfolio-slider:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
.slider-hint{display:none}
.stage-work{background:var(--surface-light);border-top:1px solid var(--line)}
.stage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.stage-card{min-width:0;padding:10px;background:var(--surface-dark);border:1px solid var(--line);border-radius:16px}
.stage-photo{border-radius:12px}.stage-photo img{transition:transform .4s}.stage-photo:hover img{transform:scale(1.025)}
.stage-card h3{font-size:17px;font-weight:500;line-height:1.35;letter-spacing:-.4px;margin:14px 4px 8px}
.stage-card p{font-size:12px;line-height:1.7;color:var(--muted);margin:0 4px 10px}
.stage-film{display:inline-flex;align-items:center;gap:14px;font-size:12px;border-bottom:1px solid var(--accent);margin:4px;padding:5px 0}
@media(max-width:760px){
 .portfolio-slider,.stage-grid.portfolio-slider{display:grid;grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:min(82vw,340px);gap:12px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:0;padding-bottom:12px;scrollbar-width:thin;scrollbar-color:var(--accent) transparent}
 .portfolio-slider .projects,.portfolio-slider .photo-grid{display:contents}
 .portfolio-slider .project,.portfolio-slider .photo-card,.portfolio-slider .stage-card{grid-column:auto;scroll-snap-align:start;min-width:0;margin:0}
 .portfolio-slider .project-image,.portfolio-slider .photo-image{aspect-ratio:16/10}
 .portfolio-slider .project-info,.portfolio-slider .photo-caption{font-size:13px}
 .stage-card{padding:7px;border-radius:11px}
 .stage-card h3{font-size:16px}
 .slider-hint{display:block;font-size:10px;color:var(--muted);margin-top:5px}
 .work .projects-actions,.photography .projects-actions{display:none}
}

/* Show only the middle stage photograph in the three-part collage thumbnail. */
.stage-photo--crop img{object-position:center 52%;transform:scale(1.65)}
.stage-photo--crop:hover img{transform:scale(1.69)}

.media-description{font-size:14px;line-height:1.7;color:var(--muted);max-width:78ch;margin-top:16px}
@media(max-width:760px){.media-description{font-size:13px;margin-top:12px}}

html.portfolio-is-animating{overflow-anchor:none}

/* A direct phone link, within thumb reach and clear of the system safe area. */
.floating-call{display:none}
@media(max-width:760px){
 .floating-call{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:55;display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 18px;border:1px solid #ffffff20;border-radius:999px;background:var(--accent);color:#19130f;font-size:13px;font-weight:700;box-shadow:0 6px 24px #0006}
 .floating-call svg{flex-shrink:0}
 .floating-call:active{transform:translateY(1px)}
 body:has(.media-dialog[open]) .floating-call{visibility:hidden;pointer-events:none}
 body:not(.text-page)>footer{padding-bottom:calc(92px + env(safe-area-inset-bottom,0px))}
}

/* JavaScript owns the strip's transform when touch momentum is available. */
.clients.has-client-momentum .clients-track{animation:none}
@media(max-width:760px){
 .clients.has-client-momentum .clients-window{touch-action:pan-y pinch-zoom;user-select:none;-webkit-user-select:none}
 .clients.is-dragging .clients-window{cursor:grabbing}
}
@media(prefers-reduced-motion:reduce){
 .clients.has-client-momentum .clients-window{touch-action:auto}
 .clients-group[aria-hidden="true"]{display:none}
}

.hero h1{font-family:Montserrat,Arial,sans-serif}

/* Independent floating paths keep the two parts of the wordmark alive. */
.logo .logo-fru{display:inline-block;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;color:inherit}
.logo .logo-media{display:inline-block}
@keyframes fru-word-float{
  0%,100%{transform:translate3d(-2px,2px,0) rotate(-1.5deg)}
  35%{transform:translate3d(3px,-5px,0) rotate(1.3deg)}
  70%{transform:translate3d(-1px,-2px,0) rotate(-.5deg)}
}
@keyframes media-word-float{
  0%,100%{transform:translate3d(3px,-5px,0) rotate(3deg)}
  45%{transform:translate3d(-4px,5px,0) rotate(-4deg)}
  75%{transform:translate3d(1px,1px,0) rotate(1deg)}
}
.header .logo-fru,body:not(.text-page)>footer .logo-fru{animation:fru-word-float 5.8s ease-in-out infinite;transform-origin:center;will-change:transform}
.header .logo-media,body:not(.text-page)>footer .logo-media{animation:media-word-float 4.3s ease-in-out infinite;animation-delay:-1.7s;transform-origin:center;will-change:transform}
body:not(.text-page)>footer .logo-fru{animation-delay:-2.1s}
body:not(.text-page)>footer .logo-media{animation-delay:-.6s}
.logo:focus-visible .logo-fru,.logo:focus-visible .logo-media{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){
 .header .logo-fru,.header .logo-media,body:not(.text-page)>footer .logo-fru,body:not(.text-page)>footer .logo-media{animation:none;transform:none;will-change:auto}
}

/* Preserve the FRU wordmark while using Montserrat for page typography. */
.logo{font-family:Manrope,Arial,sans-serif}

.contact-person{margin-top:24px}
.contact-person .contact-name{margin-top:0}
@media(max-width:760px){.contact-person{margin-top:20px}}

/* Brand on the left, navigation and photography credit grouped on the right. */
body:not(.text-page)>footer{justify-content:space-between;gap:32px;flex-wrap:nowrap}
.footer-brand{flex-shrink:0}
.footer-right{display:flex;align-items:center;justify-content:flex-end;gap:30px}
.footer-credits{display:flex;flex-direction:column;gap:5px}
.photo-credit{font-size:10px;line-height:1.6;color:var(--muted)}
@media(max-width:760px){body:not(.text-page)>footer{align-items:flex-start;gap:24px}.footer-right{flex-wrap:wrap;gap:14px 22px;max-width:250px}.footer-credits{flex-basis:100%;text-align:right}.photo-credit{max-width:25ch;margin-left:auto}}

.media-description{white-space:pre-line}

@keyframes film-grain{
 0%,100%{background-position:0 0;opacity:.06}
 12.5%{background-position:-37px 19px;opacity:.067}
 25%{background-position:23px -41px;opacity:.057}
 37.5%{background-position:-59px -13px;opacity:.064}
 50%{background-position:47px 31px;opacity:.059}
 62.5%{background-position:-17px 53px;opacity:.068}
 75%{background-position:61px -29px;opacity:.058}
 87.5%{background-position:-43px 7px;opacity:.063}
}

/* Equal visible gaps: each logo cell follows the artwork's cropped proportions. */
.clients-group{gap:32px;padding-right:32px}
.clients-group li{width:calc(min(122px,calc(56px * var(--logo-ratio))) + 12px)}
@media(max-width:760px){.clients-group{gap:24px;padding-right:24px}.clients-group li{width:calc(min(100px,calc(48px * var(--logo-ratio))) + 12px)}}
