:root{--blue:#10069f;--ink:#151515;--muted:#646464;--line:#dedede}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:#fff;color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.55}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:3px solid #6058ff;outline-offset:6px}.wrap{max-width:1440px;margin:auto;padding-inline:6vw}header{height:96px;padding:0 6vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;font-size:18px;font-weight:700}.brand img{object-fit:contain}nav{display:flex;gap:35px;font-size:14px}nav a:hover{color:var(--blue)}.eyebrow{text-transform:uppercase;font-size:12px;letter-spacing:.12em;font-weight:600}.intro{padding-top:38px}.intro>.eyebrow{display:flex;justify-content:space-between}.intro-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;min-height:515px}h1{font-size:clamp(85px,12.5vw,180px);font-weight:600;letter-spacing:-.075em;line-height:.85;margin:55px 0 24px}h1 span{color:var(--blue)}.intro-copy{font-size:clamp(20px,2.1vw,30px);line-height:1.25;letter-spacing:-.035em}.motion{position:relative;align-self:center}.motion video{display:block;width:100%;height:auto}.motion button{display:block;margin:12px auto 0;border:0;background:transparent;color:var(--muted);font:inherit;font-size:12px;cursor:pointer;padding:10px}.motion button span{margin-left:14px}.intro-bottom{display:flex;justify-content:space-between;align-items:end;padding:30px 0 40px;border-bottom:2px solid var(--blue);font-size:14px}.intro-bottom p{margin:0;color:var(--muted)}.intro-bottom a span{margin-left:30px;color:var(--blue);font-size:24px}.work{padding-top:100px;padding-bottom:120px}.section-head{display:grid;grid-template-columns:1fr 1.7fr 1fr;gap:30px;align-items:start;margin-bottom:60px}h2{font-size:clamp(38px,4.4vw,66px);font-weight:500;line-height:1.06;letter-spacing:-.055em;margin:0}.section-head p{color:var(--muted);font-size:16px;margin:5px 0}.gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:65px 32px;align-items:start}figure{margin:0;grid-column:span 6}figure img{display:block;width:100%;height:auto;aspect-ratio:1.5;object-fit:cover;transition:filter .4s}figure:hover img{filter:brightness(1.055)}figure.wide{grid-column:span 7}.offset{grid-column:9/span 4;margin-top:120px}.offset img{aspect-ratio:.8}.portrait{grid-column:2/span 4}.portrait img{aspect-ratio:.75}.second{grid-column:7/span 6!important;margin-top:100px}.last{grid-column:9/span 4;margin-top:40px}.last img{aspect-ratio:.8}figcaption{display:flex;justify-content:space-between;gap:12px;margin-top:16px;align-items:baseline}h3{font-size:16px;font-weight:500;margin:0;letter-spacing:-.02em}figcaption span{color:var(--muted);font-size:12px;text-align:right}.about{background:#f4f4f5;padding:100px 0}.about-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:10vw;align-items:center}.about-photo img{display:block;width:100%;height:auto;max-height:600px;object-fit:contain}.about-copy h2{margin:30px 0}.about-copy p{color:#535353}.about-copy .lead{font-size:24px;line-height:1.4;color:var(--ink);letter-spacing:-.025em}.signature{display:block;font-family:Georgia,serif;font-size:40px;font-style:italic;margin-top:30px;color:var(--blue)}.contact{padding-top:110px;padding-bottom:110px}.contact h2{font-size:clamp(60px,9vw,125px);margin:25px 0}.contact p,.contact>a{color:var(--muted);font-size:20px}.contact>a{color:var(--blue);border-bottom:1px solid var(--blue)}footer{border-top:1px solid var(--line);padding-top:28px!important;padding-bottom:28px!important;display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}.skip{position:absolute;top:-100px;background:#fff;padding:16px;z-index:10}.skip:focus{top:0}@media(min-width:1600px){header{padding-inline:calc((100vw - 1440px)/2 + 96px)}}@media(max-width:700px){header{height:78px}.brand span{display:none}nav{gap:20px;font-size:14px}.intro{padding-top:25px}.intro>.eyebrow{font-size:10px}.intro-grid{grid-template-columns:1fr;min-height:0}h1{font-size:110px;margin-top:45px}.intro-copy{font-size:24px}.motion{width:85%;justify-self:end;margin-top:0;margin-bottom:20px}.intro-bottom{align-items:center;gap:20px;font-size:12px}.intro-bottom a{max-width:130px}.work{padding-top:65px;padding-bottom:65px}.section-head{grid-template-columns:1fr;gap:24px;margin-bottom:35px}.section-head h2{font-size:46px}.gallery{gap:35px 16px}.gallery figure{grid-column:span 12!important;margin-top:0}.gallery .offset,.gallery .portrait,.gallery .last{grid-column:span 6!important}figcaption{display:block}figcaption span{display:block;text-align:left;margin-top:4px}.about{padding:60px 0}.about-grid{grid-template-columns:1fr;gap:40px}.about-photo{max-width:300px}.about-copy .lead{font-size:22px}.contact{padding-block:65px}footer{flex-wrap:wrap;gap:18px}footer>span:nth-child(2){display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Gentle, staggered entrances; everything remains readable without JavaScript. */
.motion-ready .reveal{opacity:0;transform:translate3d(0,32px,0);transition:opacity 1s cubic-bezier(.22,1,.36,1),transform 1.2s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0ms)}
.motion-ready .reveal.is-visible{opacity:1;transform:translate3d(0,0,0)}
.image-window{display:block;overflow:hidden;isolation:isolate}
.image-window img{transform:scale(var(--image-scale,1.035));transition:transform 1.4s cubic-bezier(.22,1,.36,1),filter .4s;transform-origin:center}
.motion-ready figure.reveal:not(.is-visible) .image-window img,.motion-ready .about-photo.reveal:not(.is-visible) img{transform:scale(1.09)}
figure.is-visible:hover .image-window img{transform:scale(1.015)}
.intro h1>span{display:block}
.intro h1 .name-line{color:var(--ink)}
nav a{position:relative}nav a::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:1px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .35s ease}nav a:hover::after,nav a:focus-visible::after{transform:scaleX(1)}
.contact>a{display:inline-block;transition:color .3s,transform .4s}.contact>a:hover{transform:translateX(5px)}
@media(max-width:700px){.motion-ready .reveal{transform:translate3d(0,20px,0)}}
@media(prefers-reduced-motion:reduce){.motion-ready .reveal{opacity:1;transform:none;transition:none}.image-window img,figure.is-visible:hover .image-window img{transform:none!important}.contact>a:hover{transform:none}}

/* Small blue mouse cursor; native behavior remains on touch and text. */
.custom-cursor{position:fixed;z-index:9999;left:0;top:0;width:10px;height:10px;border-radius:50%;background:#2424de;border:1px solid #fff;box-shadow:0 0 0 1px #2424de;pointer-events:none;opacity:0;transform:translate(-50%,-50%);transition:width .18s ease,height .18s ease,opacity .15s ease}
.custom-cursor.visible{opacity:1}.custom-cursor.over-link{width:22px;height:22px;background:rgba(36,36,222,.22);border:1.5px solid #2424de;box-shadow:none}
@media(hover:hover) and (pointer:fine){html.custom-pointer,html.custom-pointer *{cursor:none!important}}
@media(prefers-reduced-motion:reduce){.custom-cursor{transition:none}}
/* Portfolio images keep their own proportions on every viewport. */
.gallery figure img,.gallery .offset img,.gallery .portrait img,.gallery .last img{aspect-ratio:auto;width:100%;height:auto;object-fit:contain}
.gallery-open{position:relative;display:block;width:100%;padding:0;border:0;background:transparent;text-align:left;color:inherit;cursor:pointer;font:inherit}
.gallery-open .image-window{display:block}.gallery-count{display:flex;justify-content:space-between;align-items:center;margin-top:12px;font-size:13px;color:var(--blue)}
.gallery .tfp{grid-column:2/span 4}.gallery .wedding{grid-column:7/span 6;margin-top:95px}.gallery .last{grid-column:2/span 5;margin-top:0}
.gallery figure .image-window img{transform:scale(1);transition:transform 1.2s cubic-bezier(.22,1,.36,1)}
.gallery figure.is-visible:hover .image-window img{transform:scale(1.012)}
.motion-ready .gallery figure.reveal:not(.is-visible) .image-window img{transform:scale(1.025)}
.intro-bottom{justify-content:flex-end}.section-head{grid-template-columns:1fr 2.7fr}
.film{padding-bottom:110px}.film .section-head p{margin-top:22px}.film-player{aspect-ratio:16/9;background:#111;position:relative;overflow:hidden}.film-play{display:block;width:100%;height:100%;padding:0;border:0;background:#111;cursor:pointer;color:#fff;font:inherit}.film-play>img{width:100%;height:100%;object-fit:contain;opacity:.8;transition:opacity .4s}.film-play:hover>img{opacity:1}.play-label{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;text-shadow:0 1px 8px #000}.play-icon{display:grid;place-items:center;width:74px;height:74px;border-radius:50%;background:#fff;color:var(--blue);text-shadow:none;font-size:25px;padding-left:4px}.film-player iframe{position:absolute;inset:0;border:0;width:100%;height:100%}.film-caption{display:flex;justify-content:space-between;gap:20px;margin-top:18px;font-size:13px;color:var(--muted)}
.lightbox{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;padding:20px 30px;border:0;background:#101010;color:#fff}.lightbox[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:15px}.lightbox::backdrop{background:#101010}.lightbox-top,.lightbox-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px}.lightbox button{min-width:48px;min-height:48px;border:1px solid #555;background:transparent;color:#fff;border-radius:30px;padding:8px 18px;font:inherit;cursor:pointer}.lightbox-stage{display:flex;align-items:center;justify-content:center;min-height:0;touch-action:pan-y}.lightbox-stage img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.lightbox-bottom{justify-content:center}.lightbox-bottom span{min-width:90px;text-align:center}body.gallery-active{overflow:hidden}.lightbox-stage img.switching{opacity:0}.lightbox-stage img{transition:opacity .18s ease}
@media(max-width:700px){.intro-copy{max-width:310px}.section-head{grid-template-columns:1fr}.section-head h2{font-size:42px}.gallery{display:block}.gallery figure,.gallery .offset,.gallery .portrait,.gallery .last,.gallery .wedding,.gallery .tfp{margin:0 0 45px;width:100%}.gallery .portrait,.gallery .tfp,.gallery .last{max-width:90%}.gallery .tfp{margin-left:auto}.film{padding-bottom:65px}.film-caption{flex-direction:column;gap:10px}.lightbox{padding:12px}.lightbox-top{font-size:14px}.lightbox-close{font-size:13px!important}.play-icon{width:56px;height:56px;font-size:20px}}
@media(prefers-reduced-motion:reduce){.lightbox-stage img,.film-play>img{transition:none}}

/* Balanced two-column portfolio, preserving every photograph's proportions. */
@media(min-width:701px){
.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:72px 40px;align-items:start}
.gallery figure,.gallery figure.wide,.gallery figure.offset,.gallery figure.portrait,.gallery figure.second,.gallery figure.tfp,.gallery figure.wedding,.gallery figure.last{grid-column:auto!important;margin-top:0}
.gallery figure.offset{padding-top:90px}
.gallery figure.portrait{grid-column:1!important;grid-row:2}
.gallery figure.second{grid-column:2!important;grid-row:2;padding-top:70px}
.gallery figure.tfp{grid-column:1!important;grid-row:3}
.gallery figure.last{grid-column:2!important;grid-row:3}
.gallery figure.wedding{grid-column:1 / -1!important;grid-row:4;max-width:920px;width:100%;justify-self:center}
}
.episodes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 24px}.episode{display:block;border:0;background:none;padding:0;text-align:left;color:inherit;font:inherit;cursor:pointer}.episode-thumb{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:#eee}.episode-thumb img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}.episode:hover img{transform:scale(1.025)}.episode-play{position:absolute;bottom:15px;left:15px;width:40px;height:40px;display:grid;place-items:center;padding-left:2px;border-radius:50%;background:#fff;color:var(--blue);font-size:14px;box-shadow:0 2px 16px #0002}.episode-label{display:flex;align-items:baseline;gap:12px;padding-top:15px;font-size:17px}.episode-label>span:last-child{margin-left:auto;color:var(--blue)}.episode-number{font-size:12px;color:var(--muted)}.video-note{font-size:13px;color:var(--muted);margin-top:28px}.video-dialog{width:min(1100px,94vw);max-width:1100px;border:0;padding:24px;background:#111;color:#fff}.video-dialog::backdrop{background:#000d;backdrop-filter:blur(8px)}.video-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.video-top h3{font-size:18px}.video-close{min-height:44px;border:1px solid #666;border-radius:30px;padding:8px 16px;background:none;color:inherit;font:inherit;cursor:pointer}.video-screen{aspect-ratio:16/9;width:100%}.video-screen iframe{display:block;width:100%;height:100%;border:0}.video-dialog>a{display:inline-block;margin-top:18px;font-size:14px;color:#ccc}@media(max-width:900px){.episodes{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:550px){.episodes{grid-template-columns:1fr;gap:30px}.video-dialog{padding:14px;width:96vw}.video-top{align-items:start;gap:10px}.video-top h3{font-size:16px}.video-close{font-size:12px;white-space:nowrap}.episode-label{font-size:18px}}@media(prefers-reduced-motion:reduce){.episode-thumb img{transition:none}.episode:hover img{transform:none}}
/* Independent image columns: equal widths, no empty grid tracks. */
.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;align-items:start}
.photo-column{display:flex;flex-direction:column;gap:48px;min-width:0}
.gallery .photo-column figure{width:100%;max-width:none;margin:0;padding:0;grid-area:auto!important}
.gallery .photo-column figure.portrait{width:66%;align-self:center}
.series-cover{display:block;position:relative;width:100%;padding:0;border:0;background:#111;color:#fff;cursor:pointer;text-align:left;font:inherit;overflow:hidden}
.series-cover>img{display:block;width:100%;height:auto;transition:transform 1s cubic-bezier(.22,1,.36,1)}
.series-cover:hover>img{transform:scale(1.012)}
.series-cover-label{position:absolute;inset:auto 0 0;display:flex;justify-content:space-between;align-items:end;gap:20px;padding:90px 32px 28px;background:linear-gradient(transparent,#000b)}
.series-cover-label>span{font-size:14px}.series-cover-label strong{font-size:25px;font-weight:500;letter-spacing:-.025em}.series-cover-label strong span{margin-left:20px}
#series-episodes:not([hidden]){padding-top:34px;animation:episodes-in .5s ease both}
@keyframes episodes-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(max-width:700px){.gallery{grid-template-columns:1fr;gap:40px}.photo-column{gap:40px}.gallery .photo-column figure.portrait{width:70%}.series-cover-label{padding:65px 18px 18px;display:block}.series-cover-label>span{font-size:12px}.series-cover-label strong{display:block;margin-top:5px;font-size:21px}}
@media(prefers-reduced-motion:reduce){#series-episodes:not([hidden]){animation:none}.series-cover>img{transition:none}.series-cover:hover>img{transform:none}}

.gallery .photo-column figure.portrait{width:90%}
.series-cover{width:84%;margin-inline:auto}
.lightbox button[hidden]{display:none}
@media(max-width:700px){.gallery .photo-column figure.portrait{width:90%}.series-cover{width:94%}}
/* Reliable logo fallback, visible while the browser restores video playback. */
.motion .logo-fallback{display:block;width:100%;height:auto}
.motion video{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none}
.motion.logo-playing video{opacity:1}
.ui-icon{display:inline-block;width:22px;height:22px;flex-shrink:0;vertical-align:middle}
button{appearance:none;-webkit-appearance:none;-webkit-tap-highlight-color:transparent}
.episode-play{padding:0}.episode-play .ui-icon{width:18px;height:18px}
.episode-label>.ui-icon{margin-left:auto;color:var(--blue);width:18px;height:18px}
.lightbox-bottom button{display:grid;place-items:center;width:48px;height:48px;padding:0;border-color:#ffffff35}
.lightbox-close,.video-close{display:inline-flex;align-items:center;gap:12px}
.gallery-count .ui-icon{width:18px;height:18px}
.series-cover-label strong>.ui-icon{margin-left:14px}
@media(max-width:700px){.motion{justify-self:center;margin-inline:auto}.intro-bottom a{max-width:none}.ui-icon{width:20px;height:20px}}
