@import url('./fonts.css');
:root{--bg:#FAF8FC;--lavender:#EDE5F7;--light:#D8C5EF;--purple:#A77BCB;--accent:#663399;--ink:#35213F;--white:#FFFFFF;--muted:#55435D;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Manrope',Arial,sans-serif;--gutter:clamp(22px,6vw,96px);--radius:12px;--ease:cubic-bezier(.2,.7,.2,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.7}body.locked{overflow:hidden}a{color:inherit;text-underline-offset:5px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}button,a{touch-action:manipulation}button{cursor:pointer}img{display:block;width:100%;height:auto}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.03;text-wrap:balance}h2{font-size:clamp(44px,5.6vw,80px)}h3{font-size:clamp(29px,3.1vw,44px)}p{text-wrap:pretty}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:5px}::selection{background:var(--light);color:var(--ink)}[hidden]{display:none!important}.wrap{padding-inline:var(--gutter);max-width:1720px;margin-inline:auto}.skip{position:fixed;top:10px;left:10px;z-index:99;background:var(--white);padding:12px;transform:translateY(-160%)}.skip:focus{transform:none}
.opening{background:var(--lavender)}.header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:30px;position:relative;z-index:5}.wordmark{text-decoration:none;display:inline-flex;flex-direction:column;line-height:1;gap:5px}.wordmark strong{font:500 44px/.9 var(--serif);letter-spacing:-1.4px}.wordmark span{font-size:13px;letter-spacing:.10em}.nav{display:flex;gap:32px}.nav a,.header-contact{font-size:14px;text-decoration:none}.nav a:hover,.header-contact:hover{text-decoration:underline}.menu-toggle{display:none;background:none;border:0;padding:10px;font-size:16px}.header-contact{text-decoration:underline;text-underline-offset:7px}
.hero{position:relative;min-height:770px;padding-top:55px;padding-bottom:75px}.hero h1{font-size:clamp(78px,8.2vw,128px);letter-spacing:-.045em;line-height:.94;position:relative;z-index:2;pointer-events:none}.hero h1 span{display:block;width:max-content;max-width:100%}.hero h1 span+span{margin-left:39%;margin-top:18px}.hero-photo{position:absolute;left:var(--gutter);top:270px;width:33%;max-width:490px}.hero-photo a{display:block;overflow:hidden;border-radius:var(--radius)}.hero-photo img{aspect-ratio:4/4.5;object-fit:cover;animation:photo-drift 18s ease-in-out infinite alternate}.hero-photo figcaption{font-size:13px;margin-top:12px}.hero-inset{position:absolute;right:var(--gutter);top:15px;width:22%;max-width:300px;overflow:hidden;border-radius:var(--radius)}.hero-inset img{aspect-ratio:1.65;object-fit:cover;object-position:center 35%}.hero-copy{margin-left:44.3%;margin-top:39px;max-width:440px}.hero-copy p{font-size:18px;line-height:1.8;max-width:38ch}.actions{display:flex;gap:25px;align-items:center;flex-wrap:wrap;margin-top:30px}.button{display:inline-flex;justify-content:center;align-items:center;gap:18px;background:var(--accent);color:var(--white);text-decoration:none;border:0;border-radius:999px;padding:15px 27px;min-height:52px;font-size:14px;font-weight:600;transition:transform .2s,background .2s}.button:hover{background:var(--ink);transform:translateY(-3px)}.button:active{transform:scale(.98)}.text-link{font-size:14px}.hero-note{margin-top:44px;font-size:13px!important;max-width:28ch!important}
.portfolio{padding-block:125px}.section-intro{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:40px;margin-bottom:48px}.section-intro p{max-width:38ch;margin-left:auto;font-size:17px}.gallery-tools{display:none;align-items:center;justify-content:space-between;gap:20px;margin-bottom:35px}.enhanced .gallery-tools{display:flex}.filters{display:flex;gap:8px;flex-wrap:wrap}.filter{background:transparent;border:0;border-radius:999px;padding:11px 19px;font-size:14px;transition:background .2s,color .2s}.filter[aria-pressed=true]{background:var(--ink);color:var(--white)}.filter:hover{background:var(--lavender);color:var(--ink)}.gallery-count{font-size:13px;white-space:nowrap}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 28px;align-items:start}.work{min-width:0}.work:nth-child(3n+2){margin-top:55px}.work-link{display:block;text-decoration:none}.work-image{border-radius:var(--radius);overflow:hidden;background:var(--lavender);position:relative}.work-image img{aspect-ratio:4/5;object-fit:contain;transition:transform .6s var(--ease);background:var(--lavender)}.work:nth-child(3n+2) .work-image img{aspect-ratio:1/1.1}.work-link:hover img{transform:scale(1.025)}.work-image::after{content:'View photograph';position:absolute;bottom:15px;left:15px;background:var(--bg);color:var(--ink);border-radius:999px;padding:7px 13px;font-size:13px;opacity:0;transform:translateY(5px);transition:opacity .2s,transform .2s}.work-link:hover .work-image::after,.work-link:focus-visible .work-image::after{opacity:1;transform:none}.work figcaption{font-size:14px;line-height:1.5;margin-top:13px;display:flex;justify-content:space-between;gap:12px}.work small{color:var(--muted);font-size:13px;white-space:nowrap}.gallery-bottom{display:flex;flex-direction:column;align-items:center;gap:15px;margin-top:55px}.gallery-bottom p{font-size:13px}.secondary{background:var(--lavender);color:var(--ink)}.secondary:hover{background:var(--light)}
.about{background:var(--lavender);padding-block:110px}.about-grid{display:grid;grid-template-columns:5fr 6fr;gap:10%;align-items:center}.portrait{overflow:hidden;border-radius:var(--radius)}.portrait img{aspect-ratio:4/5;object-fit:cover;object-position:center 30%}.portrait figcaption{font-size:13px;margin-top:12px}.about h2{margin-bottom:30px}.about .intro{font-family:var(--serif);font-size:33px;line-height:1.25;margin-bottom:20px}.about-copy>p{max-width:47ch;margin-bottom:18px}.experience{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:32px}.experience dt{font-size:14px;font-weight:600}.experience dd{font-size:14px;margin:3px 0 0}.about details{margin-top:30px}.about summary{cursor:pointer;font-size:15px;font-weight:600}.background-copy{margin-top:16px;font-size:15px}.studio-peek{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}.studio-peek img{aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius)}
.services{padding-block:125px}.service-head{max-width:580px;margin-bottom:65px}.service-head p{margin-top:25px;max-width:42ch}.service-row{display:grid;grid-template-columns:1fr 1.15fr .7fr;gap:7%;align-items:center;margin-top:55px}.service-row p{max-width:40ch}.service-row img{aspect-ratio:1;object-fit:cover;border-radius:var(--radius)}.service-row:nth-child(2n) img{aspect-ratio:4/3}.service-row h3{font-size:clamp(32px,3vw,44px)}
.contact{background:var(--light);padding-block:100px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:start}.contact h2{max-width:9ch}.contact-lead{max-width:36ch;margin-top:25px}.contact .button{margin-top:30px}.contact-details{display:grid;grid-template-columns:1fr 1fr;gap:30px 25px;padding-top:8px}.contact-details dt{font-size:13px;margin-bottom:8px}.contact-details dd{margin:0;font-size:16px}.contact-details .address{grid-column:1/-1}.pending{font-size:13px;display:block;line-height:1.7;margin-top:8px;color:var(--muted)}.contact-details a{overflow-wrap:anywhere}.contact-notice{margin-top:25px;font-size:14px}
.footer{background:var(--ink);color:var(--lavender);padding-block:65px 25px}.footer-top{display:flex;justify-content:space-between;gap:40px;align-items:start}.footer-nav{display:flex;gap:28px;flex-wrap:wrap;font-size:14px}.footer-large{font-family:var(--serif);font-size:clamp(74px,16vw,240px);line-height:1.1;letter-spacing:-.045em;margin-block:25px 10px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;font-size:13px}.footer a:focus-visible{outline-color:var(--light)}.footer .wordmark span{line-height:1.5}.footer-bottom a{white-space:nowrap}
dialog{border:0;padding:0;color:var(--ink);background:var(--bg);border-radius:var(--radius);max-width:min(94vw,1200px);max-height:94svh}dialog::backdrop{background:rgb(30 16 38/.86)}.lightbox{width:min(94vw,1200px);overflow:hidden}.lightbox-top{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;gap:20px;font-size:14px}.icon-button{background:transparent;border:0;padding:8px 13px;min-width:44px;min-height:44px;font-size:20px;border-radius:999px}.icon-button:hover{background:var(--lavender)}.lightbox-stage{position:relative;background:var(--ink);height:min(70svh,760px);display:flex;align-items:center;justify-content:center}.lightbox-stage img{width:100%;height:100%;object-fit:contain}.lightbox-controls{display:flex;justify-content:space-between;gap:20px;padding:10px 16px;align-items:center}.lightbox-caption{font-size:14px;text-align:center}.booking{max-width:min(92vw,520px);padding:35px}.booking-close{position:absolute;right:12px;top:10px}.booking h2{font-size:45px;margin:15px 30px 20px 0}.booking p{margin-bottom:24px}.booking .button{margin-bottom:15px;width:100%}.booking .text-link{display:block;text-align:center}.booking .pending{margin-top:24px;text-align:center}
.enter{animation:rise-in .9s var(--ease) both}.hero h1 span:nth-child(2){animation-delay:.12s}.hero-copy.enter{animation-delay:.25s}.reveal{opacity:1}.enhanced .reveal.ready:not(.seen){opacity:0;transform:translateY(22px)}.enhanced .reveal.ready{transition:opacity .7s var(--ease),transform .7s var(--ease)}.enhanced .reveal.seen{opacity:1;transform:none}@keyframes rise-in{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}@keyframes photo-drift{from{transform:scale(1)}to{transform:scale(1.035)}}
@media(min-width:1720px){.hero-photo{left:max(var(--gutter),calc((100vw - 1528px)/2))}.hero-inset{right:max(var(--gutter),calc((100vw - 1528px)/2))}}
@media(max-width:1000px){.nav{gap:20px}.hero{min-height:700px;padding-top:60px}.hero h1{font-size:9vw}.hero h1 span+span{margin-left:34%}.hero-photo{top:230px;width:36%}.hero-inset{width:24%;top:10px}.hero-copy{margin-left:44%;margin-top:35px}.hero-copy p{font-size:16px}.hero-note{margin-top:25px}.section-intro{gap:25px}.about-grid{gap:7%}.experience{grid-template-columns:1fr;gap:14px}.service-row{grid-template-columns:1fr 1.1fr .7fr;gap:4%}.contact-grid{gap:7%}.contact-details{grid-template-columns:1fr}.contact-details .address{grid-column:auto}}
@media(max-width:650px){html{scroll-padding-top:30px}.header{padding-block:24px;gap:10px}.wordmark strong{font-size:37px}.wordmark span{font-size:13px;letter-spacing:.01em}.header-contact{display:none}.enhanced .menu-toggle{display:block}.nav{display:flex;flex-wrap:wrap;gap:12px;max-width:185px;justify-content:flex-end}.nav a{font-size:13px}.enhanced .nav{display:none;position:absolute;left:var(--gutter);right:var(--gutter);top:95px;background:var(--ink);color:var(--white);max-width:none;padding:24px;border-radius:var(--radius);flex-direction:column;align-items:flex-start;gap:20px}.enhanced .nav.open{display:flex}.nav a{padding-block:4px}.hero{min-height:0;padding-top:108px;padding-bottom:46px;display:flex;flex-direction:column}.hero-inset{top:12px;width:39%;max-width:180px}.hero h1{font-size:clamp(54px,14vw,90px);line-height:.98;letter-spacing:-.045em}.hero h1 span+span{margin-left:12%;margin-top:5px}.hero-photo{position:relative;top:auto;left:auto;width:74%;max-width:none;margin-top:30px}.hero-photo img{aspect-ratio:4/3.5;object-position:center 65%}.hero-photo figcaption{font-size:13px;margin-top:8px}.hero-copy{margin:25px 0 0;max-width:none}.hero-copy p{font-size:16px;max-width:none}.hero-note{display:none}.actions{gap:23px;margin-top:23px}.button{padding:14px 22px}.portfolio,.services{padding-block:74px}.section-intro{display:block;margin-bottom:28px}.section-intro p{margin:22px 0 0;max-width:34ch}.gallery-tools{align-items:flex-start;flex-direction:column;gap:12px;margin-bottom:24px}.filters{gap:5px}.filter{font-size:13px;padding:9px 13px}.gallery-count{font-size:13px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:27px 15px}.work:nth-child(3n+2){margin-top:0}.work:nth-child(2n){margin-top:35px}.work-image img,.work:nth-child(3n+2) .work-image img{aspect-ratio:3/4;object-fit:contain}.work figcaption{display:block;font-size:13px;margin-top:10px;line-height:1.4}.work small{display:block;margin-top:5px;font-size:13px}.gallery-bottom{margin-top:35px}.about{padding-block:65px}.about-grid{display:flex;flex-direction:column;gap:38px}.portrait{width:87%;align-self:flex-start}.portrait img{aspect-ratio:4/4.5;object-position:center 35%}.about h2{margin-bottom:24px}.about .intro{font-size:30px}.experience{grid-template-columns:1fr 1fr;gap:20px}.about-copy>p{max-width:none}.service-head{margin-bottom:40px}.service-row{grid-template-columns:1fr 1fr;gap:20px;margin-top:40px}.service-row h3{grid-column:1/-1;font-size:34px}.service-row p{font-size:16px;line-height:1.8}.service-row img,.service-row:nth-child(2n) img{aspect-ratio:4/5;object-fit:cover}.contact{padding-block:65px}.contact-grid{display:block}.contact h2{max-width:12ch}.contact-details{grid-template-columns:1fr 1fr;margin-top:45px;gap:25px 15px}.contact-details .address{grid-column:1/-1}.contact-details dd{font-size:14px}.footer{padding-block:42px 22px}.footer-top{flex-direction:column;gap:30px}.footer-nav{gap:20px}.footer-large{font-size:22vw;margin-block:18px}.footer-bottom{flex-direction:column;gap:10px}.lightbox-top{padding:7px 12px}.lightbox-stage{height:65svh}.lightbox-caption{font-size:13px;line-height:1.4}.booking{padding:28px}.booking h2{font-size:38px}.booking p{font-size:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.enhanced .reveal.ready:not(.seen){opacity:1;transform:none}}
