@font-face{font-family:'Libre Caslon Display';font-style:normal;font-weight:400;font-display:swap;src:url('./fonts/LibreCaslonDisplay-Regular.ttf') format('truetype')}
@font-face{font-family:'Albert Sans';font-style:normal;font-weight:100 900;font-display:swap;src:url('./fonts/AlbertSans.ttf') format('truetype')}
:root{--dark:oklch(22.3% .014 154);--ink:oklch(22% .012 154);--paper:oklch(69% .025 105);--light:oklch(94% .012 100);--muted:oklch(72% .015 120);--rule:oklch(44% .014 145);--serif:'Libre Caslon Display',Georgia,serif;--sans:'Albert Sans',Arial,sans-serif;--gutter:clamp(22px,4.5vw,84px);--radius:16px;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--dark);color:var(--light);font:400 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:1px solid currentColor;outline-offset:6px}img{display:block;max-width:100%}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400}a{transition:color 200ms}a:hover{color:var(--muted)}.eyebrow{text-transform:uppercase;font-size:10px;letter-spacing:.14em}.skip-link{position:fixed;top:10px;left:20px;z-index:100;padding:10px 20px;background:var(--paper);color:var(--ink);transform:translateY(-160%)}.skip-link:focus{transform:none}
.site-header{height:106px;position:absolute;top:0;left:0;right:0;z-index:10;margin:0 var(--gutter);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid color-mix(in oklch,var(--rule),transparent 45%);gap:28px}.wordmark{font:400 32px/1 var(--serif);letter-spacing:-.025em;justify-self:center;grid-column:2;grid-row:1;white-space:nowrap}.site-header nav{display:flex;align-items:center;gap:28px}.nav-work{grid-column:1;grid-row:1;justify-self:start}.nav-info{grid-column:3;grid-row:1;justify-self:end}.site-header nav a{font-size:12px;min-height:44px;display:flex;align-items:center}.site-header a:hover{opacity:.75}
.hero{height:180svh;min-height:1100px}.hero-sticky{height:100svh;min-height:680px;position:sticky;top:0;overflow:hidden;isolation:isolate}.hero-media{position:absolute;inset:0;clip-path:inset(42% 14% 10% round 24px);will-change:clip-path;background:var(--dark)}.hero-image-wrap{width:100%;height:100%;transform:translate3d(0,16%,0) scale(.5);will-change:transform}.hero-image{position:absolute;left:50%;top:50%;width:max(100vw,239svh);height:auto;max-width:none;transform:translate(-50%,-50%)}.hero-identity{position:absolute;top:17.5%;left:var(--gutter);right:var(--gutter);text-align:center;will-change:transform,opacity}.hero h1{font-size:clamp(64px,7.4vw,108px);line-height:.96;letter-spacing:-.025em}.title-line{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.04em}.title-line span{display:block}.hero-caption{position:absolute;left:14%;right:14%;bottom:4%;text-align:center;font-size:12px;will-change:opacity}.hero-caption a{display:inline-block;border-bottom:1px solid color-mix(in oklch,var(--light),transparent 50%);padding:8px 0 3px}
.work-section{padding:75px var(--gutter) 76px;max-width:1512px;margin:auto}.section-heading{text-align:center;margin-bottom:38px}.section-heading .eyebrow{color:var(--muted);margin-bottom:10px}.section-heading h2{font-size:clamp(38px,4.3vw,56px);line-height:1.08;letter-spacing:-.025em}.section-heading .section-description{font-size:13px;color:var(--muted);margin-top:13px}.project-grid{display:flex;justify-content:center;flex-wrap:wrap;gap:38px 26px}.project{flex:0 0 calc((100% - 52px)/3);min-width:0;text-align:center}.project-link{display:block}.project-image{position:relative;aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;background:oklch(17% .01 150)}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform 800ms var(--ease)}.project-link:hover img{transform:scale(1.035)}.project-image.subtle-letterbox img{height:107%;position:absolute;top:-3.5%;left:0}.project-image.letterboxed img{height:134.444%;position:absolute;top:-17.222%;left:0}.project h3{font-size:30px;line-height:1.15;letter-spacing:-.018em;margin-top:17px}.project p{font-size:11px;color:var(--muted);margin-top:5px}.section-divider{height:1px;background:var(--rule);opacity:.6;margin:0 var(--gutter)}.lighting-section{padding-top:64px}.lighting-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;max-width:1080px;margin:auto}.lighting-grid .project{width:auto}.lighting-grid .project-image{aspect-ratio:2/1}.lighting-credits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 42px;max-width:1080px;margin:38px auto 0;border-top:1px solid var(--rule)}.credit{display:flex;justify-content:space-between;gap:18px;padding:17px 0;border-bottom:1px solid var(--rule);align-items:center}.credit h3{font-size:25px;line-height:1.1}.credit p{font-size:11px;color:var(--muted);white-space:nowrap}.credits-only{margin-top:0}.credits-only .credit{padding:24px 0}.credits-only .credit h3{font-size:30px}
.light-surface{background:var(--paper);color:var(--ink)}.about{padding:70px var(--gutter) 65px;max-width:1320px;margin:auto}.about>.section-heading{margin-bottom:36px}.about .section-heading h2{font-size:48px}.about-body{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:60px;max-width:990px;margin:auto}.about-portrait{width:100%;max-width:330px;justify-self:center;overflow:hidden;border-radius:var(--radius)}.about-portrait img{width:100%;height:auto}.about-copy{font-size:15px;line-height:1.7;max-width:450px}.about-copy p+p{margin-top:18px}.about-copy a{text-decoration:underline;text-underline-offset:4px}.contact{margin:0 var(--gutter);border-top:1px solid color-mix(in oklch,var(--ink),transparent 70%);padding-top:32px;text-align:center}.contact h2{font-size:36px;line-height:1.1;letter-spacing:-.025em;margin-bottom:12px}.contact-main p{font-size:11px;color:oklch(42% .014 145);margin-bottom:6px}.email{font:400 clamp(21px,2.3vw,32px)/1.2 var(--serif);letter-spacing:-.02em;display:inline-block}.light-surface a:hover{color:oklch(43% .03 150)}.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:32px 0 24px;font-size:10px;color:oklch(42% .014 145)}.reveal{opacity:1;transform:none}.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform .9s var(--ease)}.js .reveal.is-visible{opacity:1;transform:none}
.project-page .site-header{position:relative}.project-intro{max-width:850px;padding:66px var(--gutter) 42px;text-align:center;margin:auto}.project-intro h1{font-size:clamp(44px,6vw,80px);line-height:1.08;letter-spacing:-.03em}.project-intro p{font-size:13px;color:var(--muted);margin-top:14px}.project-stills{max-width:1300px;margin:0 auto;padding:0 var(--gutter) 65px;display:grid;grid-template-columns:1fr;gap:26px}.project-still{border-radius:var(--radius);overflow:hidden}.project-still img{width:100%;height:auto}.project-return{text-align:center;padding:0 20px 60px;font-size:13px}.project-return a{padding:12px 0;border-bottom:1px solid var(--rule)}
@media(max-width:1050px){.site-header{gap:20px}.wordmark{font-size:28px}.site-header nav{gap:18px}.site-header nav a{font-size:11px}.hero-identity{top:20%}.hero h1{font-size:clamp(60px,8.3vw,90px)}.project{flex-basis:calc((100% - 26px)/2)}.about-body{gap:38px}.about-copy{font-size:14px}}
@media(max-width:700px){.site-header{height:128px;display:flex;flex-wrap:wrap;justify-content:center;align-content:center;column-gap:24px;row-gap:9px}.wordmark{width:100%;text-align:center;font-size:29px}.site-header nav{gap:24px}.hero{height:155svh;min-height:900px}.hero-sticky{min-height:610px}.hero-identity{top:22%}.hero h1{font-size:clamp(40px,7.8vw,58px);line-height:1.02}.hero-media{clip-path:inset(43% 5.64% 17% round 16px)}.hero-caption{left:var(--gutter);right:var(--gutter);bottom:7.5%;font-size:11px}.work-section{padding-top:48px;padding-bottom:48px}.section-heading{margin-bottom:28px}.section-heading h2{font-size:40px}.project-grid{gap:28px 18px}.project{flex-basis:calc((100% - 18px)/2)}.project h3{font-size:25px;margin-top:12px}.project p{font-size:10px}.lighting-grid{gap:28px 18px}.lighting-credits{gap:0 24px}.credit h3{font-size:22px}.credit p{font-size:10px}.about{padding-top:48px;padding-bottom:45px}.about-body{grid-template-columns:1fr;gap:30px}.about-portrait{width:60%;max-width:270px}.about-copy{max-width:470px;margin:auto;font-size:15px}.about .section-heading h2{font-size:42px}.footer-bottom{padding-top:28px}.project-intro{padding-top:45px}}
@media(max-width:460px){:root{--gutter:22px;--radius:12px}.site-header{column-gap:20px}.site-header nav{gap:20px}.site-header nav a{font-size:10px}.hero h1{font-size:clamp(38px,10.3vw,48px)}.hero-identity{top:23%}.hero{height:145svh;min-height:850px}.hero-sticky{min-height:600px}.project-grid{gap:29px}.project{flex-basis:100%}.project-image{aspect-ratio:1.9}.project h3{font-size:28px}.project p{font-size:11px}.lighting-grid{grid-template-columns:1fr;gap:29px}.lighting-credits{grid-template-columns:1fr;margin-top:26px}.credit h3{font-size:25px}.credits-only .credit h3{font-size:27px}.section-heading h2{font-size:38px}.about-portrait{width:66%}.email{font-size:clamp(21px,6.4vw,25px)}.footer-bottom{gap:10px;font-size:9px}.project-intro{padding-top:40px}.project-intro h1{font-size:46px}}
@media(max-height:700px) and (min-width:701px){.site-header{height:80px}.hero-identity{top:19%}.hero h1{font-size:clamp(54px,10svh,80px)}.hero-sticky{min-height:570px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero{height:100svh;min-height:600px}.hero-sticky{position:relative}.hero-media,.hero-image-wrap,.hero-identity,.hero-caption{will-change:auto}.reveal,.js .reveal{opacity:1;transform:none;transition:none}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
html:not(.js) .hero{height:100svh;min-height:600px}

/* Uppercase masthead, with spacing tuned for the longer letterforms. */
.site-header{text-transform:uppercase}.site-header .wordmark{font-size:1.625rem;letter-spacing:.055em}.site-header nav a{font-size:.6875rem;letter-spacing:.09em}
@media(max-width:1050px){.site-header .wordmark{font-size:1.375rem}.site-header nav{gap:20px}.site-header nav a{font-size:.625rem;letter-spacing:.07em}}
@media(max-width:700px){.site-header .wordmark{font-size:1.375rem}.site-header{column-gap:20px}.site-header nav{gap:20px}.site-header nav a{font-size:.625rem;letter-spacing:.065em}}
@media(max-width:360px){.site-header .wordmark{font-size:1.25rem}.site-header{column-gap:15px}.site-header nav{gap:15px}.site-header nav a{font-size:.5625rem;letter-spacing:.06em}}

/* Clearer work labels and a quieter transition into About. */
.section-heading .eyebrow{font-size:.875rem;letter-spacing:.105em;line-height:1.5;margin-bottom:13px}
.filmography-link{text-align:center;margin-top:28px;font-size:12px}.filmography-link a{border-bottom:1px solid var(--rule);padding-bottom:4px}
.contact{margin:0;padding:42px var(--gutter) 0;border-top:0;background:var(--dark);color:var(--light)}.contact-main p,.footer-bottom{color:var(--muted)}.contact a:hover{color:var(--muted)}
@media(max-width:700px){.section-heading .eyebrow{font-size:.75rem;letter-spacing:.09em}.contact{padding-top:34px}}

/* A separate commercial row follows the narrative selection. */
#cinematography .project-grid + .project-grid{margin-top:48px}
@media(max-width:700px){#cinematography .project-grid + .project-grid{margin-top:38px}}


/* Zoom only the first three My Dorian stills beyond their embedded black bars. */
.project-still.trim-letterbox img{transform:scale(1.075)}

/* User-requested project placeholder, awaiting supplied stills. */
.project-image-placeholder{display:grid;place-items:center;background:oklch(26.5% .014 154);border:1px solid var(--rule)}
.project-image-placeholder span{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
