:root{--paper:#f6f2ec;--ink:#242220;--muted:#67615b;--berry:#93606b;--rule:#ded6ce;--serif:"Prata",Georgia,serif;--sans:"Golos Text",Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:32px}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 var(--sans);-webkit-font-smoothing:antialiased}
body:has(.lightbox[open]){overflow:hidden}
::selection{background:#dfc5cb;color:var(--ink)}
a{color:inherit;text-decoration:none}
button{font:inherit}
a,button,summary{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:2px solid var(--berry);outline-offset:6px}
img{display:block;width:100%;height:auto}
figure,p,h1,h2,h3,dl,dd{margin:0}
h1,h2,h3{font-weight:400}
h1,h2{font-family:var(--serif);letter-spacing:-.065em}
h2{font-size:clamp(68px,7.6vw,112px);line-height:1.13}
.page-width{width:min(1240px,calc(100% - 112px));margin-inline:auto}
.site-header{display:flex;gap:24px;align-items:center;min-height:98px}
.monogram{font:38px/1 var(--serif);letter-spacing:-.1em}
.monogram span{color:var(--berry)}
.header-location{font-size:11px;text-transform:uppercase;letter-spacing:.18em;color:var(--muted)}
.site-header nav{display:flex;gap:32px;margin-left:auto;font-size:13px}
.site-header nav a{padding-block:13px}
.site-header a:hover,.quiet-link:hover,.site-footer a:hover{color:var(--berry)}
.skip-link{position:fixed;z-index:20;top:12px;left:12px;padding:12px 20px;background:var(--paper);transform:translateY(-160%)}
.skip-link:focus{transform:none}
.section-number{font-size:11px;letter-spacing:.11em;color:var(--berry);margin-bottom:26px;text-transform:uppercase}
.eyebrow{font-size:11px;letter-spacing:.18em;line-height:1.8;text-transform:uppercase;color:var(--muted)}
.body-copy{font-size:17px;line-height:1.8;color:var(--muted);max-width:620px}
.handwritten{font:30px/1.55 "Bad Script",cursive;color:var(--berry)}
.caption{font-size:12px;line-height:1.6;color:var(--muted);padding-top:13px}
.photo{min-width:0}
.photo-link{display:block;cursor:zoom-in}
.photo img{object-fit:cover}
.text-link,.quiet-link{display:inline-flex;align-items:center;gap:26px;min-height:44px;font-size:14px}
.text-link{border-bottom:1px solid var(--berry)}
.text-link span,.quiet-link span{color:var(--berry);transition:transform .2s}
.text-link:hover span,.quiet-link:hover span{transform:translateY(3px)}
.hero-layout{display:grid;grid-template-columns:1.7fr 1fr;gap:62px;align-items:center;padding-top:62px}
.introduction h1{font-size:clamp(70px,8.1vw,118px);line-height:1.12;margin-left:-5px}
.introduction h1 span{display:block}
.hero-role{font-size:22px;letter-spacing:.13em;margin-top:32px}
.hero-fields{margin-top:13px}
.hero-actions{display:flex;align-items:center;gap:37px;margin-top:39px}
.hero-portrait{width:90%;justify-self:end;transform:rotate(2.3deg);margin-top:30px}
.hero-portrait img{aspect-ratio:.77;object-position:50% 42%}
.hero-portrait figcaption{text-align:right;font-size:28px;padding:13px 22px 0 0}
.numbers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px;margin-top:75px;padding-top:36px;border-top:1px solid var(--rule)}
.numbers>div{display:flex;align-items:center;gap:19px}
.numbers dt{font:53px/1.15 var(--serif);letter-spacing:-.065em;color:var(--berry);white-space:nowrap}
.numbers dt span{font-size:30px;vertical-align:.25em;margin-left:2px}
.numbers dt small{font:12px var(--sans);letter-spacing:0;margin-right:7px}
.numbers dd{font-size:12px;color:var(--muted);line-height:1.6}
.chapter{margin-top:130px;padding-top:55px;border-top:1px solid var(--rule)}
.section-heading{margin-bottom:58px}
.project-intro{display:grid;grid-template-columns:1fr 1.2fr;gap:60px;margin-top:33px;align-items:start}
.project-intro>.eyebrow{padding-top:8px}
.weddings h2{font-size:clamp(68px,7.2vw,105px);word-spacing:.12em}
.wedding-collage{display:grid;grid-template-columns:1.1fr 1fr;gap:90px;align-items:center;padding-inline:4%}
.ceremony{grid-column:2;grid-row:1;transform:rotate(1deg)}
.ceremony img{aspect-ratio:.75}
.first-dance{grid-column:1;grid-row:1;margin-top:90px}
.first-dance img{aspect-ratio:1.07;object-position:50% 65%}
.first-dance figcaption{padding:16px 20px 0 0;text-align:right;transform:rotate(-4deg)}
.wedding-notebook{margin-top:95px}
.notebook-heading{margin-bottom:38px}
.notebook-heading h3{font:42px/1.25 var(--serif);letter-spacing:-.045em;margin-top:16px}
.notebook-heading .body-copy{margin-top:14px;font-size:15px}
.video-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;align-items:start;padding-inline:6%}
.video-moment:nth-child(2){margin-top:64px}
.video-moment:nth-child(3){margin-top:22px}
.video-frame{position:relative;background:#302b26;isolation:isolate}
.video-frame video{display:block;width:100%;height:auto;aspect-ratio:9/16;object-fit:cover}
.video-moment:last-child video{aspect-ratio:3/4}
.video-controls{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;gap:10px;align-items:center;padding:40px 12px 12px;background:linear-gradient(transparent,#15110a88);pointer-events:none}
.video-controls[hidden]{display:none}
.video-controls button{pointer-events:auto;display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;border:0;background:#f6f2eceb;color:var(--ink);cursor:pointer;border-radius:24px;backdrop-filter:blur(8px)}
.video-toggle{width:44px;flex-shrink:0;font-size:16px}
.video-sound{padding:0 13px;font-size:11px;white-space:nowrap}
.video-sound svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.video-frame[data-muted="true"] .sound-waves,.video-frame[data-muted="false"] .sound-off{display:none}
.photo-archive{margin-top:52px}
.photo-archive summary{display:flex;align-items:center;gap:25px;padding-block:15px;width:fit-content;max-width:100%;cursor:pointer;font-size:13px;color:var(--muted);list-style:none}
.photo-archive summary::-webkit-details-marker{display:none}
.archive-sign{font-size:24px;color:var(--berry);transition:transform .2s}
.photo-archive[open] .archive-sign{transform:rotate(45deg)}
.archive-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:38px 27px;padding-block:28px}
.archive-grid img{aspect-ratio:3/4}
.dlt h2{font-size:clamp(110px,11.5vw,172px);line-height:1}
.dlt-lead{display:grid;grid-template-columns:1.45fr .9fr;gap:100px;align-items:center}
.runway{transform:rotate(-1deg)}
.runway img{aspect-ratio:1.1;object-position:50% 68%}
.before-show{margin-top:100px}
.before-show img{aspect-ratio:.7}
.before-show figcaption{text-align:right;padding:12px 18px 0 0;transform:rotate(-5deg)}
.dlt-scenes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:42px;row-gap:65px;margin:85px auto 0;max-width:1120px;align-items:start}
.scene-before{grid-column:1;margin-top:70px}
.scene-before img{aspect-ratio:1.45}
.scene-backstage{grid-column:2;margin-top:0}
.scene-backstage img{aspect-ratio:.75}
.scene-catalog{grid-column:3;margin-top:110px}
.scene-catalog img{aspect-ratio:.82}
.scene-details{grid-column:1;margin-top:30px}
.scene-details img{aspect-ratio:1}
.scene-kids{grid-column:2;margin-top:85px;transform:rotate(-1.2deg)}
.scene-kids img{aspect-ratio:.82}
.scene-family{grid-column:3;margin-top:0}
.scene-family img{aspect-ratio:.75}
.theatre h2{font-size:clamp(86px,10vw,144px)}
.theatre .section-heading{text-align:center}
.theatre .project-intro{display:flex;flex-direction:column;align-items:center;gap:20px;margin-top:25px}
.theatre .body-copy{max-width:650px}
.theatre-collage{display:grid;grid-template-columns:1.8fr 1fr;gap:65px;align-items:end;padding-top:15px}
.theatre-stage{transform:rotate(-1.2deg)}
.theatre-stage img{aspect-ratio:1.33}
.theatre-stage figcaption{text-align:right;padding:17px 20px 0 0}
.theatre-audience{margin-bottom:-50px}
.theatre-audience img{aspect-ratio:1.25}
.theatre .photo-archive{margin-top:100px}
.about-layout{display:grid;grid-template-columns:1fr 1.15fr;gap:100px;align-items:center}
.about-photo{width:92%;margin-left:10px;transform:rotate(-2.5deg)}
.about-photo img{aspect-ratio:.95;object-position:50% 48%}
.about-lead{font:37px/1.4 var(--serif);letter-spacing:-.035em;margin-bottom:25px}
.about-copy .body-copy+.body-copy{margin-top:21px}
.skills{font-size:13px;color:var(--muted);line-height:1.9;margin-top:29px}
.about-copy .text-link{margin-top:27px}
.timeline{list-style:none;margin:0;padding:0}
.timeline li{display:grid;grid-template-columns:230px 1fr 1.1fr;gap:40px;align-items:start;border-top:1px solid var(--rule);padding-block:32px}
.year{font:37px/1.35 var(--serif);color:var(--berry);letter-spacing:-.055em;white-space:nowrap}
.experience-role h3,.education h3{font-size:19px;font-weight:500;margin-bottom:8px}
.experience-role p,.experience-detail,.education>div>p{font-size:15px;color:var(--muted);line-height:1.75}
.education{display:grid;grid-template-columns:230px 1fr;gap:40px;border-top:1px solid var(--rule);padding-top:34px;margin-top:6px}
.education .eyebrow{padding-top:7px}
.contacts{padding-bottom:100px}
.contacts h2{font-size:clamp(76px,9.1vw,132px)}
.contacts-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:90px;align-items:center}
.contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:19px}
.contact-links a{font-size:clamp(20px,2vw,27px);padding-block:6px;min-height:44px}
.contact-links span{display:inline-block;color:var(--berry);font-size:21px;margin-left:18px;transition:transform .2s}
.contact-links a:hover{color:var(--berry)}
.contact-links a:hover span{transform:translate(3px,-3px)}
.contact-links .email{font-size:clamp(16px,1.7vw,22px);overflow-wrap:anywhere}
.contact-note{margin-top:37px;font-size:14px;color:var(--muted);line-height:1.85}
.last-photo{width:90%;justify-self:end;margin-right:8px;transform:rotate(4deg)}
.last-photo img{aspect-ratio:1.15}
.site-footer{display:flex;justify-content:space-between;gap:24px;border-top:1px solid var(--rule);padding-block:26px 38px;font-size:11px;color:var(--muted)}
.site-footer a{white-space:nowrap}
.lightbox{width:100vw;height:100dvh;max-width:none;max-height:none;padding:75px 6vw 20px;border:0;margin:0;background:#24211ff5;color:var(--paper)}
.lightbox::backdrop{background:#24211f}
.lightbox[open]{display:flex;flex-direction:column;align-items:center}
.lightbox-close{position:absolute;top:16px;right:5vw}
.lightbox button{background:none;border:0;color:var(--paper);cursor:pointer;min-width:48px;min-height:48px}
.lightbox-close span{font-size:30px;margin-left:15px;vertical-align:-3px}
.lightbox-image-wrap{min-height:0;flex:1;width:100%}
.lightbox-image{width:100%;height:100%;object-fit:contain}
.lightbox-bottom{display:flex;justify-content:space-between;gap:15px;align-items:center;width:min(700px,100%);margin-top:16px}
.lightbox-bottom button{font-size:25px}
.lightbox-caption{font-size:13px;text-align:center}
@media(min-width:900px) and (hover:hover){.photo-link img{transition:filter .3s}.photo-link:hover img{filter:brightness(1.045)}}
@media(max-width:1100px){
 .page-width{width:calc(100% - 80px)}
 .hero-layout{gap:32px;grid-template-columns:1.65fr 1fr}
 .introduction h1{font-size:8vw}
 .hero-role{font-size:18px}
 .numbers{gap:25px}.numbers>div{display:block}.numbers dd{margin-top:12px;font-size:13px}
 .project-intro{gap:35px;grid-template-columns:.8fr 1.2fr}
 .wedding-collage{gap:65px}.video-grid{gap:25px;padding-inline:1%}
 .video-sound{font-size:10px;padding-inline:10px}.video-controls{gap:5px;padding:35px 8px 10px}
 .dlt-lead{gap:65px}.about-layout{gap:60px}.about-lead{font-size:30px}
 .timeline li{grid-template-columns:190px 1fr 1fr;gap:25px}.year{font-size:31px}
 .education{grid-template-columns:190px 1fr;gap:25px}.contacts-layout{gap:50px}
}
@media(max-width:760px){
 .page-width{width:calc(100% - 48px)}
 .site-header{min-height:82px;gap:20px}.header-location{display:none}.site-header nav{gap:24px;font-size:12px}
 .hero-layout{grid-template-columns:1fr;padding-top:42px;gap:35px}
 .introduction h1{font-size:clamp(50px,12.8vw,92px);line-height:1.13;letter-spacing:-.065em;margin-left:-3px}
 .hero-role{font-size:19px;margin-top:25px;letter-spacing:.1em}
 .hero-fields{font-size:11px}.hero-actions{margin-top:25px;gap:33px}
 .hero-portrait{width:65%;max-width:350px;justify-self:end;margin:12px 12px 0 0}
 .hero-portrait figcaption{font-size:27px}
 .numbers{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 24px;margin-top:52px;padding-top:33px}
 .numbers>div{display:flex;gap:15px}.numbers dt{font-size:48px}.numbers dd{font-size:12px;margin-top:0}
 .chapter{margin-top:90px;padding-top:40px}.section-heading{margin-bottom:38px}
 .section-number{font-size:10px;letter-spacing:.08em;margin-bottom:23px}
 h2{font-size:clamp(58px,11vw,82px)}
 .weddings h2{font-size:clamp(56px,10.5vw,79px)}.weddings h2 span{display:block}
 .project-intro{grid-template-columns:1fr;gap:21px;margin-top:26px}.project-intro>.eyebrow{padding:0}
 .body-copy{font-size:16px;line-height:1.8}
 .wedding-collage{display:flex;flex-direction:column;gap:46px;padding:0;align-items:stretch}
 .ceremony{width:88%;align-self:flex-end;margin-right:3px}
 .ceremony img{aspect-ratio:.8}
 .first-dance{width:95%;margin:0;align-self:flex-start}.first-dance img{aspect-ratio:1.03}
 .first-dance figcaption{font-size:28px}
 .wedding-notebook{margin-top:64px}.notebook-heading h3{font-size:37px}.notebook-heading .body-copy{font-size:16px}
 .video-grid{grid-template-columns:1fr;gap:38px;padding:0}
 .video-moment{width:82%;max-width:360px}
 .video-moment:nth-child(2){margin:0;justify-self:end;width:86%}
 .video-moment:nth-child(3){margin:0 0 0 6%;width:84%}
 .video-frame video{aspect-ratio:9/16}.video-moment:last-child video{aspect-ratio:3/4}
 .video-controls{padding:40px 12px 12px;gap:12px}.video-sound{font-size:12px;padding-inline:14px}
 .caption{font-size:12px;padding-top:11px}
 .photo-archive{margin-top:36px}.photo-archive summary{font-size:12px;gap:20px}
 .archive-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 20px}
 .dlt h2{font-size:clamp(112px,21vw,152px)}
 .dlt-lead{grid-template-columns:1fr;gap:40px}.runway{margin-inline:3px}.runway img{aspect-ratio:1.05}
 .before-show{margin:0 0 0 auto;width:79%;max-width:390px}.before-show img{aspect-ratio:.72}
 .before-show figcaption{font-size:27px}
 .dlt-scenes{display:flex;flex-direction:column;gap:40px;margin-top:58px}
 .dlt-scenes .photo{width:88%;margin:0;transform:none;align-self:flex-start}
 .dlt-scenes .photo:nth-child(even){align-self:flex-end;width:80%}
 .dlt-scenes .scene-before{width:100%}.dlt-scenes .scene-details{width:70%}
 .dlt-scenes .scene-kids{width:89%;transform:rotate(-1deg)}
 .theatre h2{font-size:clamp(80px,16vw,116px)}
 .theatre .section-heading{text-align:left}.theatre .project-intro{align-items:flex-start;gap:18px}
 .theatre-collage{grid-template-columns:1fr;gap:40px;padding-top:5px}
 .theatre-stage{margin-inline:3px}.theatre-stage figcaption{font-size:27px}
 .theatre-audience{margin:0 0 0 auto;width:78%}.theatre .photo-archive{margin-top:36px}
 .about-layout{grid-template-columns:1fr;gap:45px}
 .about-photo{width:90%;max-width:430px;margin-left:8px}.about-photo img{aspect-ratio:.94}
 .about-lead{font-size:30px;margin-bottom:20px}.about-copy .body-copy+.body-copy{margin-top:19px}
 .skills{font-size:13px;margin-top:24px}.about-copy .text-link{margin-top:20px}
 .timeline li{grid-template-columns:1fr;gap:17px;padding-block:27px}
 .year{font-size:35px}.experience-role h3{font-size:19px}.experience-role p,.experience-detail{font-size:15px;line-height:1.75}
 .experience-detail{max-width:530px}
 .education{grid-template-columns:1fr;gap:15px;padding-top:25px}.education h3{font-size:19px}
 .contacts h2{font-size:clamp(60px,12.1vw,91px)}
 .contacts-layout{grid-template-columns:1fr;gap:45px}
 .contact-links{gap:15px}.contact-links a{font-size:22px}.contact-links .email{font-size:16px}
 .contact-links span{font-size:18px;margin-left:12px}.contact-note{font-size:14px;margin-top:27px}
 .last-photo{width:68%;max-width:330px;margin:0 12px 0 0}.contacts{padding-bottom:70px}
 .site-footer{font-size:10px;gap:22px}.site-footer p{max-width:255px}
 .lightbox{padding:75px 16px 18px}
}
@media(max-width:420px){
 .page-width{width:calc(100% - 40px)}
 .site-header{min-height:74px}.monogram{font-size:32px}.site-header nav{gap:19px;font-size:11px}
 .hero-layout{padding-top:33px;gap:28px}.introduction h1{font-size:13.6vw}
 .hero-role{font-size:17px}.hero-fields{font-size:10px;letter-spacing:.16em}
 .hero-actions{gap:29px}.text-link,.quiet-link{font-size:13px;gap:18px}
 .hero-portrait{width:77%;margin-top:10px}.hero-portrait figcaption{font-size:26px}
 .numbers{gap:27px 28px;margin-top:42px}.numbers>div{display:block}.numbers dt{font-size:47px}.numbers dd{margin-top:9px;font-size:13px}
 .chapter{margin-top:78px;padding-top:34px}.section-heading{margin-bottom:31px}
 .weddings h2{font-size:14.7vw}.project-intro{gap:18px}.project-intro .eyebrow{font-size:10px;letter-spacing:.13em}
 .body-copy{font-size:16px;line-height:1.75}.section-number{line-height:1.7;max-width:300px}
 .ceremony{width:93%}.first-dance{width:100%}
 .video-moment{width:90%}.video-moment:nth-child(2){width:90%}.video-moment:nth-child(3){width:91%;margin-left:0}
 .dlt-scenes .photo{width:93%}.dlt-scenes .photo:nth-child(even){width:85%}
 .dlt-scenes .scene-before{width:100%}.dlt-scenes .scene-details{width:75%}
 .contacts h2{font-size:13.5vw}.contact-links a{font-size:21px}.contact-links .email{font-size:14px;letter-spacing:-.025em}
 .contact-links span{margin-left:7px;font-size:16px}
 .archive-grid{gap:26px 16px}.archive-grid .caption{font-size:11px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
