/* Photographer-first portfolio. The editable sections remain available in the CMS. */
:root{--ink:#171717;--red:#171717;--paper:#fff;--layout-accent:#171717;--line:#e9e9e9}
html{scroll-behavior:auto;scroll-padding-top:0}body{background:#fff;color:#171717}header{height:auto;min-height:150px;display:flex;flex-direction:column;justify-content:center;gap:26px;padding-top:34px;padding-bottom:28px}header .logo{font-family:Georgia,'Times New Roman',serif;font-size:27px;font-weight:400;letter-spacing:1px}header .logo span[data-home="brand.suffix"]{font-family:Arial,sans-serif;font-size:8px;letter-spacing:1.2px;color:#777}header nav{display:flex;justify-content:center;gap:54px;font-family:Georgia,'Times New Roman',serif;font-size:16px}header nav a{padding:0 0 5px;border-bottom:1px solid transparent}header nav a[aria-current]{border-color:#171717}header>.booking{display:none}.hero{position:relative;padding-top:18px;padding-bottom:40px;max-width:100%;width:100%}.hero-top,.hero-heading,.hero-bottom,.ticker{display:none}.hero-gallery{display:block;margin:0 auto;width:360px;max-width:72vw}.hero-photo{width:100%;aspect-ratio:3/4;height:auto}.hero-photo img{transform:none;object-position:center 30%}.hero-photo:after,.hero-photo figcaption,.portrait-two,.gallery-stamp{display:none}.artist-title{position:absolute;left:0;right:0;top:50%;transform:translateY(-60%);z-index:2;text-align:center;font-family:Georgia,'Times New Roman',serif;font-size:clamp(64px,9vw,128px);font-weight:400;letter-spacing:-5px;line-height:1;pointer-events:none}.artist-title>span{color:#171717}.work{border:0;padding-top:15px;padding-bottom:80px;background:white}.work>.section-label{display:none}.work .section-title{justify-content:center;margin:0 0 50px}.work .section-title h2{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.work .filters{gap:0;justify-content:center}.work .filters button,.work .filters button.active{border:0;border-radius:0;background:none;color:#555;font-size:12px;padding:5px 27px;position:relative}.work .filters button+button{border-left:1px solid #ccc}.work .filters button.active{color:#111;text-decoration:underline;text-underline-offset:6px}.work .filters button span{display:none}.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:55px 40px;align-items:start}.image-wrap{background:#f5f5f5;aspect-ratio:2/3}.work-card:nth-child(n){padding-top:0}.work-card .image-wrap img{transition:transform .5s,opacity .3s}.work-card:hover img{filter:grayscale(100%);opacity:.88;transform:scale(1.015)}.work-card .photo-color:hover img{filter:none}.view{display:none}.card-caption{padding-top:14px;gap:5px;align-items:center;text-align:center}.card-caption h3{font-family:Georgia,'Times New Roman',serif;font-size:16px;font-weight:400;color:#222}.card-caption>span{font-size:9px;color:#888;letter-spacing:.5px}.demo-note{text-align:center;color:#999;font-size:10px;margin-top:50px}.section{max-width:none}.about,.sessions,.process,.faq,.contact{background:white}.about,.sessions{padding-top:50px}.about-content{max-width:850px;margin:40px auto 0;gap:80px}.section-title h2,.about h2,.process h2,.faq>h2,.contact h2{font-weight:400}.about .section-label,.sessions .section-label{justify-content:center}.about .section-label>span:last-child,.sessions .section-label>span:last-child{display:none}.sessions .section-title{display:block;text-align:center;margin-top:20px}.sessions .section-title>p{margin:15px auto 0;max-width:550px}.session-grid{max-width:880px;margin:40px auto 0;gap:25px}.session-grid article,.session-grid article+article{border-radius:0;border-color:#dedede;padding:34px}.session-note{text-align:center;font-size:11px}.process{border-top:1px solid var(--line)}.contact{min-height:440px;padding-top:60px;padding-bottom:80px}.contact h2{font-family:Georgia,Pretendard,serif;line-height:1.7}.contact button{background:#171717;border-radius:0;font-size:12px}.contact>p{color:#777}.contact>.section-label{letter-spacing:1px;color:#777}footer{border-top:1px solid #eee;padding-top:30px;padding-bottom:24px;gap:15px 30px}footer>.logo{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:1px;font-size:22px}footer>p{font-size:9px;color:#888}footer>div:not(.studio-info){font-size:10px;color:#666}footer small{font-size:8px;padding-top:15px;margin:0}.studio-info{color:#666}#imageDialog{width:min(1000px,calc(100% - 32px));max-width:1000px;background:#fff;color:#171717;padding:22px 30px 40px}#imageDialog .close{color:#171717;position:sticky;top:0;background:#fff;z-index:2}#lightboxImage{filter:none;max-height:74dvh;object-fit:contain}#lightboxCaption{font-family:Georgia,Pretendard,serif;font-size:18px;margin:24px 0 30px}#projectImages{display:flex;flex-direction:column;gap:32px;align-items:center}#projectImages img{display:block;max-width:100%;max-height:90dvh;width:auto;height:auto;object-fit:contain}
html body[data-view="work"] main>.about,html body[data-view="work"] main>.sessions,html body[data-view="work"] main>.process,html body[data-view="work"] main>.faq,html body[data-view="work"] main>.contact{display:none}
html body:not([data-view="work"]) main>.hero,html body:not([data-view="work"]) main>.work{display:none}
html body[data-view="about"] main>.sessions,html body[data-view="about"] main>.faq,html body[data-view="about"] main>.contact{display:none}
html body[data-view="sessions"] main>.about,html body[data-view="sessions"] main>.contact{display:none}
html body[data-view="contact"] main>.about,html body[data-view="contact"] main>.sessions,html body[data-view="contact"] main>.process,html body[data-view="contact"] main>.faq{display:none}
@media(max-width:900px){.work-grid{gap:40px 25px}.hero-gallery{width:340px}.artist-title{font-size:100px}.about-content{gap:45px}}
@media(max-width:600px){header{min-height:125px;padding-top:25px;padding-bottom:22px;gap:25px;flex-wrap:nowrap}header .logo{font-size:24px}header nav{order:initial;width:auto;border:0;padding:0;margin:0;gap:31px;font-size:14px}header nav a{padding:0 0 5px}.hero{padding:8px 24px 28px}.hero-gallery{width:280px;max-width:76vw}.hero-photo{aspect-ratio:3/4}.artist-title{font-size:76px;letter-spacing:-4px;transform:translateY(-58%)}.work{padding:12px 23px 55px}.work .section-title{margin:0 0 34px}.work .section-title .filters{margin:0}.work .filters button,.work .filters button.active{font-size:11px;padding:4px 23px}.work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 19px}.work-card:nth-child(n){padding-top:0}.card-caption{padding-top:10px;gap:4px}.card-caption h3{font-size:13px;line-height:1.5}.card-caption>span{font-size:8px}.demo-note{font-size:9px;margin-top:36px}.about,.sessions{padding-top:34px;padding-bottom:55px}.about-content{margin-top:25px}.about h2{font-size:28px}.about-content p{font-size:13px}.process{padding-block:45px}.sessions .section-title h2{font-size:25px}.sessions .section-title>p{font-size:11px;line-height:1.9}.session-grid{margin-top:30px}.session-grid article,.session-grid article+article{padding:26px}.contact{padding-top:40px;min-height:440px}.contact h2{font-size:28px}.contact button{min-height:44px}.contact>p{font-size:12px}footer{padding-top:27px;gap:16px}footer>div:not(.studio-info){font-size:9px}footer>p{font-size:9px;line-height:1.9}#imageDialog{width:calc(100% - 20px);padding:12px 14px 25px}#lightboxImage{max-height:70dvh}#projectImages{gap:20px}#lightboxCaption{font-size:16px;margin-block:20px}}
@media(prefers-reduced-motion:reduce){.work-card .image-wrap img{transition:none}}
.artist-title{mix-blend-mode:difference}.artist-title>span{color:#fff}

/* Anchor the name to the image itself, independently of section padding. */
.hero{display:grid;grid-template-columns:minmax(0,1fr)}.hero-gallery,.artist-title{grid-area:1/1}.artist-title{position:relative;left:auto;right:auto;top:auto;transform:none;align-self:center;margin:0;font-size:clamp(64px,8.5vw,112px)}
@media(max-width:600px){.hero-gallery{width:260px;max-width:74vw}.artist-title{font-size:72px;letter-spacing:-3px;transform:none}}
.portfolio-pagination{text-align:center;margin-top:40px}.portfolio-pagination p{font-size:12px;color:#777;line-height:1.8}.portfolio-pagination button{border:1px solid #ccc;background:white;padding:12px 32px;font-size:12px}.portfolio-pagination button:disabled{opacity:.5}#lightboxCaption{white-space:pre-line;line-height:1.8;font-family:Pretendard,Arial,sans-serif;font-size:14px}

/* Portfolio opens directly below the navigation. */
.portfolio-page-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* Keep portrait rows aligned and retain the full photographic frame. */
.work-card .card-caption{display:flex}
.work-card .card-caption>span{display:none}
.work-card .image-wrap img{object-fit:contain;object-position:center;transform:none}
.work-card:hover img{transform:none}
.card-caption h3{font-family:Pretendard,Arial,sans-serif;font-size:13px;letter-spacing:0;line-height:1.6}
.demo-note:has([data-home="work.note"]:empty),.portfolio-pagination:has(button[hidden]):has(p:empty){display:none}

#galleryControls{display:flex;justify-content:center;align-items:center;gap:28px;margin-top:22px}
#galleryControls[hidden],#projectImages[hidden]{display:none}
#galleryControls button{width:44px;height:44px;border:1px solid #ddd;background:white;font-size:20px}
#imageDialog:has(#galleryControls:not([hidden])) #lightboxImage{max-height:max(180px,calc(90dvh - 300px))}
#galleryCount{min-width:64px;text-align:center;font-size:12px;font-variant-numeric:tabular-nums}
#projectImages{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:10px}
#projectImages .gallery-thumb{width:64px;height:86px;border:1px solid transparent;background:#f5f5f5;padding:3px}
#projectImages .gallery-thumb[aria-pressed="true"]{border-color:#171717}
#projectImages .gallery-thumb img{width:100%;height:100%;max-height:none;object-fit:cover}

/* Generous top spacing with the original portrait sizes. */
header .logo .logo-main,footer .logo .logo-main{font-weight:700;letter-spacing:1px;-webkit-text-stroke:0}
header .logo{font-size:34px;line-height:1}
header .logo span[data-home="brand.suffix"]{font-weight:500;color:#666}
html main>.shooting-intro{display:none}
html body[data-view="sessions"] main>.shooting-intro{display:block}
html body[data-view="about"] main>.process{display:none}
.shooting-intro{background:white;padding-block:60px}
.shooting-intro .section-label{justify-content:center}
.shooting-intro .section-label>span:last-child{display:none}
.about .section-label>span:first-child{display:inline}
.shooting-intro h2{font-size:34px;line-height:1.6;font-weight:400;letter-spacing:-1.5px}
@media(max-width:600px){.shooting-intro{padding-block:40px}.shooting-intro h2{font-size:28px}}
header{min-height:0;gap:28px;padding-top:30px}
header nav{font-size:20px;line-height:20px;gap:76px}
.work{padding:70px max(var(--gutter),calc((100vw - var(--page-width))/2)) 100px}
.work .section-title{margin-bottom:50px}
.work .filters button,.work .filters button.active{font-size:14px;padding-inline:30px}
.work-grid{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:40px;row-gap:80px}
.card-caption{padding-top:18px}
.card-caption h3{font-size:14px;line-height:33px}
@media(max-width:900px){
  header nav{font-size:20px;gap:52px}
  .work{padding-top:60px}
  .work-grid{column-gap:25px;row-gap:60px}
}
@media(max-width:600px){
  header .logo{font-size:34px;line-height:1}
  header{gap:28px;padding-top:25px}
  header nav{font-size:20px;gap:16px}
  .work{padding:40px 23px 60px}
  .work .section-title{margin-bottom:32px}
  .work .filters button,.work .filters button.active{font-size:12px;padding-inline:20px}
  .work-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:19px;row-gap:36px}
  .card-caption{padding-top:12px}
  .card-caption h3{font-size:14px;line-height:33px}
}
