:root{--paper:#fafafa;--ink:#181818;--muted:#686868;--line:#d9d9d9;--space:clamp(22px,5vw,84px);color-scheme:light;font-family:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,a,video{touch-action:manipulation}a:focus-visible,button:focus-visible,video:focus-visible{outline:3px solid #4263b5;outline-offset:6px}::selection{background:#202020;color:white}.skip{position:fixed;top:-100px;left:20px;z-index:30;background:white;padding:12px}.skip:focus{top:12px}.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px var(--space);border-bottom:1px solid var(--line);background:rgba(250,250,250,.96);backdrop-filter:blur(12px)}.brand{display:flex;gap:14px;align-items:center;font-size:30px;font-weight:800;letter-spacing:-2px;line-height:1}.brand span{font-size:12px;letter-spacing:1.5px;font-weight:600}.site-header nav{display:flex;gap:32px;font-size:14px}.site-header nav a{position:relative;padding:5px 0}.site-header nav a:after{content:'';height:1px;background:currentColor;position:absolute;left:0;right:100%;bottom:0;transition:right .25s}.site-header nav a:hover:after{right:0}main{max-width:1800px;margin:auto}.intro-section{padding:62px var(--space) 48px}.intro-top,.intro-bottom{display:flex;justify-content:space-between;align-items:baseline;gap:25px}.eyebrow{font-size:12px;letter-spacing:1.8px;font-weight:600;margin:0 0 22px}.intro-location{color:var(--muted);font-size:14px;margin:0}.intro-section h1{font-size:clamp(64px,11.5vw,176px);font-weight:500;line-height:1.03;letter-spacing:-.075em;margin:20px 0 25px}.name-period{color:#aaa}.intro-bottom p{font-size:clamp(17px,1.6vw,23px);line-height:1.5;margin:0;font-weight:400;letter-spacing:-.02em}.text-link{font-size:14px;border-bottom:1px solid currentColor;padding:5px 0;display:inline-block;white-space:nowrap}.text-link:hover{color:var(--muted)}.work-section{padding:0 var(--space) 88px}.section-label{display:flex;align-items:baseline;justify-content:space-between;padding:23px 0 25px;border-top:1px solid var(--line)}.section-label h2{margin:0;font-size:16px;font-weight:500}.section-label>span{font-size:12px;letter-spacing:1.5px;color:var(--muted)}.project-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:54px 28px}.project-card{min-width:0;scroll-margin-top:110px}.project-link{display:block}.card-image{position:relative;overflow:hidden;aspect-ratio:16/10;background:#1a1a1a}.card-image>img,.card-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.card-image>img{transition:transform .7s cubic-bezier(.2,.75,.25,1),filter .4s}.card-preview{opacity:0;transition:opacity .4s;pointer-events:none}.project-link:hover .card-image>img,.project-link:focus-visible .card-image>img{transform:scale(1.025)}.project-link.is-previewing .card-preview{opacity:1}.film-count,.card-open{position:absolute;z-index:2;bottom:18px;background:rgba(16,16,16,.78);color:#fff;border:1px solid rgba(255,255,255,.25);backdrop-filter:blur(8px);font-size:12px;line-height:1;padding:10px 13px;border-radius:30px}.film-count{left:18px}.card-open{right:18px;background:#fafafa;color:#171717;border-color:#fafafa;transition:transform .3s}.project-link:hover .card-open{transform:translateY(-3px)}.card-caption{display:flex;justify-content:space-between;gap:15px;padding-top:17px}.card-category{margin:0 0 5px;font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.card-caption h3{font-size:clamp(22px,2.1vw,32px);font-weight:500;letter-spacing:-.035em;line-height:1.15;margin:0 0 6px}.card-subtitle{margin:0;font-size:14px;color:var(--muted)}.card-year{font-size:13px;color:var(--muted);padding-top:2px;white-space:nowrap}.about-section{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(35px,8vw,140px);margin:0 var(--space);padding:80px 0;border-top:1px solid var(--line);align-items:start}.about-portrait{max-width:420px}.about-portrait img{width:100%;height:auto;filter:grayscale(1)}.about-content{max-width:710px}.about-content h2{font-size:clamp(40px,5vw,72px);font-weight:400;letter-spacing:-.06em;line-height:1.05;margin:0 0 30px}.about-content>p:not(.eyebrow){font-size:17px;line-height:1.8;color:#555;margin:0 0 18px}.experience-note{border-top:1px solid var(--line);margin-top:32px;padding-top:24px;display:flex;align-items:center;gap:28px}.experience-note>span{font-size:48px;letter-spacing:-.06em;line-height:1}.experience-note p{font-size:14px;line-height:1.65;margin:0}.experience-note small{font-size:12px;color:var(--muted)}.contact-section{background:#171717;color:#fafafa;padding:65px var(--space) 55px}.contact-section h2{font-size:clamp(42px,7vw,112px);font-weight:400;line-height:1.1;letter-spacing:-.06em;margin:0 0 40px}.contact-row{display:flex;justify-content:space-between;align-items:center;gap:30px;border-top:1px solid #4c4c4c;padding-top:28px}.contact-row p{margin:0;color:#bdbdbd;font-size:14px}.contact-row a{font-size:clamp(18px,2.4vw,32px);letter-spacing:-.025em;overflow-wrap:anywhere}.contact-row a:hover{text-decoration:underline;text-underline-offset:6px}.site-footer{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding:27px var(--space);font-size:12px;color:var(--muted)}.site-footer .brand{color:var(--ink)}
/* Individual project pages */
.project-page{padding:35px var(--space) 0}.project-topline{display:flex;justify-content:space-between;align-items:center;margin-bottom:55px}.project-topline>span{font-size:12px;letter-spacing:1.5px;color:var(--muted)}.project-intro{margin-bottom:45px}.project-intro h1{font-size:clamp(45px,7.3vw,110px);font-weight:400;letter-spacing:-.065em;line-height:1.08;margin:0 0 16px;max-width:1200px;text-wrap:balance}.project-subtitle{font-size:clamp(18px,2vw,26px);color:var(--muted);margin:0 0 30px;letter-spacing:-.02em}.project-description{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:20px 70px;border-top:1px solid var(--line);padding-top:25px}.project-description>p{font-size:16px;line-height:1.8;color:#555;margin:0;max-width:650px}.project-description .credit{font-size:14px}.credit strong{font-weight:600;color:var(--ink)}.project-description .film-credits{grid-column:2}.campaign-films{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px 28px}.film-card{margin:0;min-width:0}.film-card:first-child{grid-column:1/-1}.film-card video{display:block;width:100%;aspect-ratio:16/9;object-fit:contain;background:#111}.film-card figcaption{display:flex;justify-content:space-between;gap:20px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--line)}.film-card h2{font-size:16px;font-weight:500;margin:0}.film-card figcaption span{font-size:14px;color:var(--muted)}.campaign-pair .film-card:first-child,.dental-grid .film-card:first-child{grid-column:auto}.portrait-project .campaign-films{grid-template-columns:minmax(0,1fr)}.dental-vertical{width:min(100%,400px);justify-self:center}.dental-vertical video{aspect-ratio:9/16}.bts-vimeo{aspect-ratio:16/9;background:#111}.bts-vimeo iframe{width:100%;height:100%;display:block;border:0}.video-note{font-size:14px;color:var(--muted)}.video-note a{text-decoration:underline;text-underline-offset:4px}.project-next{border-top:1px solid var(--line);padding:30px 0 55px;margin-top:65px;display:flex;justify-content:space-between;align-items:center;gap:30px}.project-next>a:last-child{text-align:right;max-width:65%}.project-next span{font-size:12px;display:block;color:var(--muted);margin-bottom:8px;text-transform:uppercase;letter-spacing:1px}.project-next strong{font-size:clamp(22px,3vw,40px);font-weight:400;letter-spacing:-.04em;line-height:1.15;display:block}.project-next a:hover strong{text-decoration:underline;text-underline-offset:6px}
@media(min-width:1800px){.site-header,.site-footer{padding-inline:max(var(--space),calc((100vw - 1632px)/2))}}@media(max-width:900px){.intro-location{display:none}.intro-section{padding-top:42px}.project-grid{gap:40px 22px}.about-section{gap:40px}.project-description{gap:22px 35px}.contact-row{align-items:flex-start;flex-direction:column;gap:18px}}@media(max-width:600px){html{scroll-padding-top:85px}.site-header{padding-block:19px}.brand{font-size:27px}.brand span{display:none}.site-header nav{gap:22px;font-size:14px}.intro-section{padding-top:35px;padding-bottom:32px}.intro-section .eyebrow{font-size:10px;letter-spacing:1.1px;margin:0}.intro-section h1{font-size:clamp(56px,14.5vw,90px);margin:18px 0 24px}.intro-bottom{display:block}.intro-bottom p{font-size:17px}.intro-bottom .text-link{margin-top:20px}.section-label{padding:18px 0}.project-grid{grid-template-columns:minmax(0,1fr);gap:34px}.card-image{aspect-ratio:16/10}.card-caption h3{font-size:25px}.card-year{font-size:12px}.film-count,.card-open{bottom:13px}.film-count{left:13px}.card-open{right:13px}.work-section{padding-bottom:50px}.about-section{grid-template-columns:1fr;padding:45px 0;gap:30px}.about-portrait{max-width:240px}.about-content h2{font-size:46px}.about-content>p:not(.eyebrow){font-size:16px}.experience-note{gap:20px}.experience-note>span{font-size:40px}.contact-section{padding-top:42px;padding-bottom:40px}.contact-section h2{font-size:45px;margin-bottom:25px}.contact-row a{font-size:20px}.site-footer{gap:16px;font-size:12px}.site-footer>span:last-child{width:100%}.project-page{padding-top:22px}.project-topline{margin-bottom:35px}.project-intro .eyebrow{font-size:11px;letter-spacing:1px;line-height:1.8}.project-intro h1{font-size:45px;overflow-wrap:anywhere}.project-description{grid-template-columns:1fr;gap:20px}.project-description .film-credits{grid-column:auto}.project-intro{margin-bottom:30px}.campaign-films{grid-template-columns:minmax(0,1fr);gap:28px}.project-next{margin-top:42px;padding-bottom:40px;align-items:flex-start}.project-next .text-link{font-size:12px}.project-next strong{font-size:23px}}
@media(prefers-reduced-motion:no-preference){@view-transition{navigation:auto}::view-transition-old(root){animation:page-out .15s ease both}::view-transition-new(root){animation:page-in .25s ease both}@keyframes page-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes page-out{to{opacity:0}}.reveal-ready{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}.reveal-ready.is-visible{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.card-preview{display:none}.project-link:hover .card-image>img{transform:none}}

.wedding-addition{margin-top:5rem}.wedding-addition>h2{font-size:clamp(1.8rem,4vw,3rem);letter-spacing:-.04em;margin-bottom:1rem}.wedding-addition>p{max-width:48rem;line-height:1.7}.wedding-addition .bts-vimeo{margin-top:2rem}

/* Cinematic portfolio — image-first, restrained navigation. */
:root{--paper:#101112;--ink:#f2f0eb;--muted:#aaa9a5;--line:#353638;color-scheme:dark}
.site-header{background:rgba(16,17,18,.94);border-color:rgba(255,255,255,.12);padding-block:22px}
.site-header .brand span{font-weight:400;letter-spacing:2px}.header-links{margin-left:auto}.menu-toggle,.menu-close,.hero-control{font:inherit;color:inherit;background:none;border:0;cursor:pointer}.menu-toggle{font-size:14px;display:flex;align-items:center;gap:18px;margin-left:22px}.menu-toggle span{font-size:17px}.site-header:has(+ main .intro-section){position:absolute;left:0;right:0;background:transparent;backdrop-filter:none}.skip{color:#111}
main{max-width:none}.intro-section{position:relative;min-height:650px;height:calc(100svh - 0px);max-height:1100px;display:flex;flex-direction:column;justify-content:space-between;padding:135px var(--space) 45px;background:#222;isolation:isolate;overflow:hidden}.hero-video,.hero-shade{position:absolute;inset:0;width:100%;height:100%;z-index:-2;object-fit:cover}.hero-shade{z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.5),rgba(0,0,0,.12) 35%,rgba(0,0,0,.72))}.intro-top{align-items:center}.intro-top .eyebrow,.intro-location{color:#eee;font-size:11px;letter-spacing:2px;margin:0}.hero-title{margin-top:auto;padding:100px 0 38px}.hero-kicker{font-size:11px;letter-spacing:3px;margin:0 0 20px}.intro-section h1{font-size:clamp(72px,12vw,185px);line-height:.92;margin:0;font-weight:400;letter-spacing:-.065em}.name-period{color:#c6b49a}.intro-bottom{align-items:center;border-top:1px solid #ffffff50;padding-top:26px}.hero-cta{font-size:16px;display:flex;align-items:center;gap:60px}.hero-cta span{font-size:30px;line-height:1;transition:transform .3s}.hero-cta:hover span{transform:translate(3px,3px)}.hero-control{border:1px solid #ffffff70;border-radius:30px;padding:10px 17px;font-size:12px}.hero-control:hover{background:#ffffff20}
.work-section{padding-top:90px;padding-bottom:100px}.section-label{border:0;padding:0 0 35px}.section-label h2{font-size:clamp(32px,4vw,56px);letter-spacing:-.04em;font-weight:400}.project-grid{gap:60px 28px}.card-image{aspect-ratio:16/9}.card-caption{padding-top:20px}.card-caption h3{font-size:clamp(23px,2.5vw,37px)}.card-open{background:#f2f0eb;border-color:#f2f0eb}.card-category{font-size:10px;letter-spacing:1.5px}.card-subtitle{font-size:13px}.about-section{padding:95px 0;grid-template-columns:1fr 1.2fr}.about-portrait{max-width:500px}.about-content>p:not(.eyebrow),.project-description>p{color:#c1c0bc}.about-content h2{font-size:clamp(48px,6vw,88px)}.contact-section{background:#e6e2d9;color:#191a1b;padding-block:80px}.contact-row{border-color:#a8a49b}.contact-row p{color:#51514e}.site-footer{padding-block:35px}.project-page{padding-top:50px}.project-intro{margin-bottom:60px}.project-intro h1{font-weight:400}.film-card video{background:#080808}.site-menu{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:30px var(--space);border:0;background:#151617;color:var(--ink);overflow-y:auto}.site-menu::backdrop{background:#151617}.menu-top,.menu-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px}.menu-top{border-bottom:1px solid var(--line);padding-bottom:25px}.menu-top p{font-size:11px;letter-spacing:2px}.menu-close{font-size:16px;padding:10px}.site-menu nav{display:grid;grid-template-columns:1fr 1fr;gap:20px 55px;padding:60px 0}.site-menu nav a{font-size:clamp(26px,3.4vw,56px);line-height:1.2;letter-spacing:-.04em;padding:8px 0;transition:color .2s}.site-menu a:hover{color:#c6b49a}.menu-bottom{justify-content:flex-start;gap:40px;border-top:1px solid var(--line);padding-top:25px}body.menu-open{overflow:hidden}
@media(min-width:1800px){.work-section,.project-page{max-width:1800px;margin-inline:auto}.about-section{max-width:1632px;margin-inline:auto}}
@media(max-width:700px){.site-header .header-links{display:none}.site-header .brand span{display:block;font-size:10px}.menu-toggle{margin-left:auto}.intro-section{min-height:560px;height:90svh;padding-top:115px;padding-bottom:30px}.hero-title{padding:95px 0 30px}.intro-section h1{font-size:clamp(64px,14vw,98px)}.hero-kicker{font-size:10px;letter-spacing:2px}.intro-bottom{display:flex;gap:20px;padding-top:22px}.hero-cta{font-size:14px;gap:24px}.hero-control{font-size:11px;padding:9px 12px}.work-section{padding-top:50px;padding-bottom:60px}.section-label{padding-bottom:25px}.section-label>span{font-size:10px;letter-spacing:1px}.project-grid{gap:38px}.about-section{grid-template-columns:1fr;padding-block:55px}.about-portrait{max-width:320px}.contact-section{padding-block:55px}.site-menu nav{grid-template-columns:1fr;gap:12px;padding:35px 0}.site-menu nav a{font-size:29px}.menu-top p{font-size:9px;letter-spacing:1px}.project-page{padding-top:25px}.project-intro{margin-bottom:35px}}

/* Frame the silent preview between the navigation and lower action bar.
   Clip the existing image rather than fitting it into a shorter box, so
   edge captions stay outside this homepage preview. Full films are unchanged. */
.intro-section{--hero-top:76px;--hero-bottom:96px;background:var(--paper);padding-bottom:calc(var(--hero-bottom) + 38px)}
.site-header:has(+ main .intro-section){height:76px;background:var(--paper);border-bottom:1px solid var(--line)}
.hero-video,.hero-shade{clip-path:inset(var(--hero-top) 0 var(--hero-bottom) 0)}
.intro-section .intro-bottom{position:absolute;inset:auto 0 0;height:var(--hero-bottom);padding:20px var(--space);background:var(--paper);border-top:1px solid var(--line);display:flex;align-items:center}
.intro-section .hero-title{padding-bottom:0}
@media(max-width:700px){.intro-section{--hero-bottom:82px;padding-bottom:calc(var(--hero-bottom) + 30px)}.intro-section .intro-bottom{padding-block:16px}}
