/* Second creative direction: the original photographs and identity set the pace. */
@font-face { font-family:HHDisplay; src:url('/assets/images/Haigrast%20Serif%20Regular.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:HHNote; src:url('/assets/images/Mailman%20Regular.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
:root { --paper:#fdfbf8; --surface:#f2ece5; --ink:#291e1b; --wine:#6e2121; --display:HHDisplay,Georgia,serif; --note:HHNote,cursive; }
h1,h2,h3 { font-weight:400; letter-spacing:-.025em; }
h2 { font-size:clamp(38px,4.8vw,68px); }
h1 em,h2 em { font-style:normal; }
.handwritten { display:block; font:400 clamp(40px,4.4vw,68px)/1.1 var(--note); letter-spacing:0; }
.overline { letter-spacing:.16em; font-weight:400; }
.button { min-height:56px; padding:17px 25px; font-size:11px; letter-spacing:.09em; text-transform:uppercase; }
.button--outline { color:var(--wine); background:var(--paper); border-color:var(--wine); }
.button--outline:hover { color:var(--paper); background:var(--wine); }
.text-link { font-size:12px; }
.site-header { display:grid; grid-template-columns:1fr 88px 1fr; min-height:126px; gap:30px; padding:18px var(--gutter); }
.brand-mark { grid-column:2; grid-row:1; display:block; width:88px; height:88px; }
.brand-mark img { width:100%; height:100%; object-fit:contain; }
.desktop-nav { margin:0; gap:35px; }
.desktop-nav>a,.header-cta { font-size:11px; text-transform:uppercase; letter-spacing:.12em; font-weight:400; }
.nav-left { grid-column:1; grid-row:1; }
.nav-right { grid-column:3; grid-row:1; display:flex; justify-content:flex-end; align-items:center; gap:35px; }
.header-cta { margin:0; }
.mobile-date-link { display:none; }
body[data-page="."] .site-header { position:absolute; inset:0 0 auto; max-width:none; z-index:5; }
body[data-page="."] main { overflow:clip; }
/* Original full-width photograph; all primary controls stay stationary. */
.moment-hero { position:relative; isolation:isolate; min-height:720px; height:min(100svh,1000px); background:#fbf8f3; }
.moment-picture { position:absolute; inset:0; z-index:-1; overflow:hidden; }
.moment-picture picture,.moment-picture img { width:100%; height:100%; display:block; }
.moment-picture img { object-fit:cover; object-position:62% center; animation:photograph-settle 1600ms cubic-bezier(.16,1,.3,1) both; }
.moment-picture::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(24,16,12,.72),transparent 23%),linear-gradient(90deg,rgba(253,251,248,.92),rgba(253,251,248,.73) 24%,rgba(253,251,248,0) 54%); }
.moment-copy { padding-top:clamp(164px,20vh,220px); padding-inline:var(--gutter); max-width:1500px; margin:auto; }
.moment-copy>.overline { font-size:10px; margin-bottom:24px; max-width:47%; }
.moment-copy h1 { font-size:clamp(58px,6vw,88px); line-height:.98; max-width:52%; letter-spacing:-.028em; text-wrap:initial; }
.moment-copy h1>.handwritten { position:relative; color:var(--wine); width:max-content; margin:17px 0 0 65px; font-size:clamp(62px,6vw,92px); line-height:.8; }
.moment-copy h1 svg { display:block; position:absolute; width:110%; height:24px; left:-5%; bottom:-14px; fill:none; stroke:var(--wine); stroke-width:1.4; stroke-linecap:round; stroke-dasharray:1; animation:signature-line 850ms 450ms ease-out both; }
.moment-intro { font-size:15px; line-height:1.65; margin-top:36px; max-width:40%; }
.moment-copy .actions { margin-top:28px; gap:14px; }
.moment-foot { position:absolute; bottom:34px; inset-inline:var(--gutter); color:var(--paper); display:flex; align-items:center; justify-content:space-between; gap:30px; }
.moment-foot>p { font-size:12px; line-height:1.6; }
.moment-foot>p>span { font-size:10px; letter-spacing:.04em; }
.moment-film { display:flex; align-items:center; gap:16px; text-decoration:none; font-size:11px; line-height:1.6; }
.moment-film b { font-weight:400; text-decoration:underline; text-underline-offset:4px; }
.round-play { display:grid; place-items:center; width:60px; height:60px; flex:none; border:1px solid currentColor; border-radius:50%; font-size:12px; padding-left:3px; transition:background-color 180ms,color 180ms; }
.moment-film:hover .round-play { background:var(--paper); color:var(--wine); }
.moment-scroll { display:flex; align-items:center; gap:25px; min-height:44px; font-size:10px; letter-spacing:.08em; text-decoration:none; text-transform:uppercase; }
.moment-scroll>span { font-size:24px; }
@keyframes photograph-settle { from { transform:scale(1.045); } to { transform:scale(1); } }
@keyframes signature-line { from { stroke-dashoffset:1; } to { stroke-dashoffset:0; } }
/* A personal brand statement, followed immediately by the work. */
.together-note { background:var(--wine); color:var(--paper); padding:42px var(--gutter); display:grid; grid-template-columns:1fr 1.1fr 1fr; align-items:center; gap:30px; }
.together-note>p:first-child { font-size:13px; }
.together-note>p:nth-child(2) { margin:0; font:400 clamp(29px,3.1vw,44px)/1.2 var(--display); text-align:center; }
.together-note .handwritten { font-size:clamp(44px,4.2vw,65px); margin-top:0; }
.together-note .text-link { justify-self:end; }
.story-selection { padding-block:95px 100px; }
.story-selection .section-heading { margin-bottom:48px; }
.story-selection .section-heading>div:last-child>p { font-size:13px; }
.story-selection .section-heading .text-link { margin-top:14px; }
.story-triptych { display:grid; grid-template-columns:1fr 1.12fr 1fr; gap:28px; align-items:start; }
.story-triptych .story-card:nth-child(2) { margin-top:84px; }
.story-triptych .story-card:nth-child(3) { margin-top:26px; }
.story-triptych .story-image { aspect-ratio:3/4; }
.story-triptych .story-card:nth-child(2) .story-image { aspect-ratio:4/5; }
.story-caption { padding-top:20px; }
.story-caption :is(h2,h3) { font-size:27px; }
.story-caption p { font-size:10px; margin-top:9px; }
.story-card>a>img { transition:filter 220ms ease-out; }
.story-card>a:hover>img { filter:brightness(1.035); }
/* The film section is a change of atmosphere, not another cream editorial row. */
.cinema-section { padding:85px var(--gutter) 75px; display:grid; grid-template-columns:.72fr 1.28fr; gap:65px; align-items:center; background:#211817; color:var(--paper); }
.cinema-copy .overline { color:#dac0af; }
.cinema-copy h2 { font-size:clamp(46px,5vw,72px); line-height:1.02; }
.cinema-copy>p:not(.overline):not(.cinema-credit) { font-size:13px; line-height:1.9; margin-top:27px; }
.cinema-copy .text-link { margin-top:24px; }
.cinema-credit { margin-top:50px; font-size:10px; color:#d1b8aa; }
.cinema-frame { min-width:0; }
.cinema-frame .film-link { overflow:hidden; background:#140f0e; }
.cinema-frame .film-link>img { aspect-ratio:4/3; transform:scale(var(--cinema-scale,1.035)); transform-origin:50% 50%; }
.cinema-frame .film-caption { position:relative; background:#140f0e; }
.cinema-frame .play-icon { width:44px; height:44px; }
.cinema-caption { font:400 27px/1.4 var(--note); margin-top:18px; color:#e9d4c5; text-align:right; }
/* Faces, rather than another promise, introduce the team. */
.duo-story { display:grid; grid-template-columns:1.04fr 1fr; gap:clamp(45px,8vw,130px); align-items:center; padding-block:115px; }
.duo-portrait { position:relative; padding:0 0 28px; }
.duo-portrait>img { width:100%; aspect-ratio:4/5; object-fit:cover; object-position:53% center; }
.portrait-note { position:absolute; right:-22px; bottom:0; transform:rotate(-4deg); background:var(--paper); padding:5px 20px; color:var(--wine); font-size:36px; white-space:nowrap; }
.duo-copy>.handwritten { color:var(--wine); margin-bottom:6px; font-size:58px; }
.duo-copy h2 { font-size:clamp(45px,4.9vw,70px); }
.duo-copy .large-copy { margin:26px 0 22px; font-size:21px; }
.duo-copy>p:not(.handwritten):not(.large-copy) { font-size:14px; }
.duo-copy .text-link { margin-top:25px; }
.coverage-preview { padding-top:10px; padding-bottom:75px; }
.coverage-preview h2 { font-size:clamp(37px,4vw,58px); }
.coverage-duet { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.coverage-tile { display:block; text-decoration:none; background:var(--surface); }
.coverage-tile>img { width:100%; aspect-ratio:5/4; object-fit:cover; }
.coverage-tile>div { padding:25px 28px 28px; }
.coverage-tile>div>span { font:400 42px/1.1 var(--display); }
.coverage-tile p { display:flex; justify-content:space-between; align-items:center; font-size:12px; margin-top:15px; }
.coverage-tile p>span { font-size:20px; }
.coverage-together { display:flex; justify-content:space-between; align-items:center; gap:25px; padding:26px 30px; background:var(--wine); color:var(--paper); margin-top:24px; }
.coverage-together>p { font:400 28px/1.3 var(--display); }
.coverage-together>a { display:flex; align-items:center; gap:24px; min-height:44px; font-size:12px; text-decoration:none; }
.couple-note { padding-block:55px 80px; text-align:center; }
.quote-mark { display:block; font:100px/.8 var(--display); color:var(--wine); }
.couple-note blockquote { font:400 clamp(29px,3.4vw,48px)/1.25 var(--display); max-width:32ch; margin:auto; }
.couple-note>p { margin:25px auto 0; font-size:11px; letter-spacing:.13em; text-transform:uppercase; }
.faq { padding-block:65px 90px; border-top:1px solid var(--line); }
.faq h2 { font-size:46px; }
/* Close on a photograph, with a genuinely readable text layer. */
.closing { position:relative; isolation:isolate; min-height:550px; padding:90px var(--gutter); background:#211817; color:var(--paper); display:grid; place-items:center; }
.closing-photo { position:absolute; z-index:-1; inset:0; overflow:hidden; }
.closing-photo img { width:100%; height:100%; object-fit:cover; object-position:center 65%; opacity:.34; }
.closing-content { text-align:center; }
.closing-content>.handwritten { font-size:55px; margin:auto; color:#ead8c7; }
.closing h2 { font-size:clamp(44px,6.7vw,96px); margin:25px 0; }
.closing-content>p:not(.handwritten) { margin:0 auto; font-size:14px; }
.closing .button { background:var(--paper); color:var(--wine); margin:30px 0 18px; }
.closing-content>.fine { color:#ead8c7; font-size:11px!important; }
.site-footer { background:var(--wine); color:var(--paper); }
.site-footer .wordmark { color:var(--paper); font-weight:400; }
.footer-top>p,.footer-locations,.footer-bottom { color:#ecdacf; }
.site-footer .footer-locations,.site-footer .footer-bottom { border-color:#b27d735c; }
/* Extend the identity to the journey beyond the home page. */
.page-intro h1 { font-size:clamp(50px,6.8vw,94px); }
body[data-page="stories"] .page-intro { padding-top:42px; }
body[data-page="stories"] .page-intro+.story-grid { grid-template-columns:1fr 1.1fr 1fr; align-items:start; gap:28px; padding-top:0; }
body[data-page="stories"] .page-intro+.story-grid>.story-card:first-child { grid-column:auto; }
body[data-page="stories"] .page-intro+.story-grid>.story-card:nth-child(2) { margin-top:90px; }
body[data-page="stories"] .page-intro+.story-grid>.story-card:first-child img { aspect-ratio:4/5; }
body[data-page="stories"] .films { background:#211817; color:var(--paper); }
body[data-page="stories"] .films .section-heading p { color:#ead8c7; }
.pricing-intro { display:grid; grid-template-columns:1.04fr 1fr; gap:0 60px; align-items:center; padding-top:35px; padding-bottom:20px; }
.pricing-cover { grid-column:2; grid-row:1; align-self:stretch; min-height:520px; }
.pricing-cover img { width:100%; height:100%; max-height:650px; object-fit:cover; object-position:center; }
.pricing-heading { grid-column:1; grid-row:1; }
.pricing-heading h1 { font-size:clamp(48px,5vw,72px); }
.pricing-heading .intro-bottom { flex-direction:column; align-items:start; gap:26px; }
.pricing-intro .service-nav { grid-column:1/-1; margin-top:35px; }
.collections h2 { font-size:44px; }
.collection h3 { font-size:34px; }
.collection-grid { background:var(--surface); border:0; }
.collection:first-child { padding-left:30px; }
.collection:last-child { padding-right:30px; }
.price-start strong { font-weight:400; }
.about-hero h1 { font-size:clamp(50px,6vw,84px); }
.people h2 em { color:var(--wine); }
.contact-intro h1 { font-size:clamp(50px,6vw,84px); }
.contact-photo { max-width:430px; }
.contact-photo img { aspect-ratio:1; }
.form-success h2 { font-weight:400; }
@media(max-width:1100px) {
  .moment-copy h1 { max-width:55%; }
  .moment-copy>.overline { max-width:45%; line-height:1.8; }
  .moment-intro { font-size:14px; }
  .moment-copy .button { padding-inline:20px; gap:18px; }
  .moment-scroll { display:none; }
  .cinema-section { gap:40px; }
  .cinema-copy h2 { font-size:54px; }
  .portrait-note { font-size:29px; right:-8px; }
  .story-caption :is(h2,h3) { font-size:24px; }
  .pricing-intro { gap:0 35px; }
}
@media(max-width:767px) {
  .site-header { display:grid; grid-template-columns:1fr 66px 1fr; min-height:98px; padding:15px 22px; gap:10px; }
  .brand-mark { width:66px; height:66px; }
  .nav-right,.nav-left { display:none; }
  .mobile-date-link { display:block; grid-column:1; grid-row:1; font-size:10px; letter-spacing:.04em; line-height:1.6; text-decoration:none; min-height:44px; padding-block:7px; }
  .menu-toggle,.no-script-menu { grid-column:3; grid-row:1; justify-self:end; }
  .menu-toggle { font-size:11px; gap:10px; }
  .moment-hero { height:100svh; min-height:800px; max-height:960px; }
  .moment-picture { inset:230px 0 0; }
  .moment-picture img { object-position:50% 24%; animation:none; }
  .moment-picture::after { background:linear-gradient(180deg,#fbf8f3,rgba(251,248,243,0) 19%),linear-gradient(0deg,rgba(24,16,12,.82),transparent 37%); }
  .moment-copy { padding:115px 22px 0; }
  .moment-copy>.overline { font-size:9px; line-height:1.4; max-width:100%; margin-bottom:15px; }
  .moment-copy h1 { max-width:none; font-size:clamp(43px,11.9vw,63px); line-height:1; }
  .moment-copy h1>.handwritten { font-size:62px; margin:10px 0 0 44%; line-height:.65; }
  .moment-copy h1 svg { bottom:-20px; height:18px; }
  .moment-intro { display:none; }
  .moment-copy .actions { position:absolute; bottom:32px; left:22px; right:22px; margin:0; gap:10px; z-index:2; }
  .moment-copy .button { flex:1; min-width:0; padding:16px 13px; min-height:52px; font-size:10px; gap:13px; }
  .moment-foot { left:22px; right:22px; bottom:112px; align-items:end; }
  .moment-foot>p { font-size:11px; }
  .moment-foot>p>span { font-size:9px; }
  .moment-film { gap:0; }
  .moment-film>span:last-child { display:none; }
  .round-play { width:50px; height:50px; }
  .together-note { grid-template-columns:1fr; gap:23px; text-align:center; padding:35px 22px; }
  .together-note>p:first-child { font-size:11px; }
  .together-note>p:nth-child(2) { font-size:30px; }
  .together-note .handwritten { font-size:48px; }
  .together-note .text-link { justify-self:center; }
  .story-selection { padding-block:55px; }
  .story-selection h2 { font-size:44px; }
  .story-selection .section-heading { gap:20px; margin-bottom:30px; }
  .story-selection .section-heading>div:last-child { display:flex; align-items:center; justify-content:space-between; gap:20px; width:100%; }
  .story-selection .section-heading>div:last-child>p { font-size:11px; }
  .story-selection .section-heading .text-link { margin:0; font-size:10px; gap:10px; }
  .story-triptych { grid-template-columns:1fr 1fr; gap:35px 18px; }
  .story-triptych .story-card:first-child { grid-column:1/-1; }
  .story-triptych .story-card:first-child .story-image { aspect-ratio:5/4; object-position:50% 65%; }
  .story-triptych .story-card:nth-child(2),.story-triptych .story-card:nth-child(3) { margin-top:0; }
  .story-triptych .story-card:nth-child(2) .story-image,.story-triptych .story-image { aspect-ratio:3/4; }
  .story-caption :is(h2,h3) { font-size:24px; }
  .story-triptych .story-card:not(:first-child) .story-caption :is(h2,h3) { font-size:23px; }
  .story-caption { padding-top:15px; }
  .story-caption p { font-size:10px; }
  .cinema-section { grid-template-columns:1fr; gap:35px; padding:50px 22px; }
  .cinema-copy h2 { font-size:52px; }
  .cinema-copy>p:not(.overline):not(.cinema-credit) { font-size:12px; margin-top:20px; }
  .cinema-copy .text-link { margin-top:15px; }
  .cinema-credit { display:none; }
  .cinema-frame .film-link>img { aspect-ratio:5/4; }
  .cinema-caption { font-size:27px; }
  .duo-story { grid-template-columns:1fr; gap:40px; padding-block:60px; }
  .duo-portrait>img { aspect-ratio:5/4; object-position:50% 32%; }
  .portrait-note { font-size:28px; padding:4px 10px; right:0; }
  .duo-copy>.handwritten { font-size:51px; }
  .duo-copy h2 { font-size:48px; }
  .duo-copy .large-copy { font-size:21px; margin-top:20px; }
  .duo-copy>p:not(.handwritten):not(.large-copy) { font-size:13px; }
  .coverage-preview { padding-bottom:35px; }
  .coverage-preview h2 { font-size:38px; }
  .coverage-duet { gap:14px; }
  .coverage-tile>img { aspect-ratio:3/4; }
  .coverage-tile>div { padding:18px 12px; }
  .coverage-tile>div>span { font-size:27px; }
  .coverage-tile p { font-size:10px; gap:6px; flex-wrap:wrap; margin-top:10px; }
  .coverage-together { padding:24px; flex-direction:column; gap:12px; align-items:start; margin-top:14px; }
  .coverage-together>p { font-size:25px; }
  .coverage-together>a { font-size:11px; gap:14px; }
  .couple-note { padding-block:45px 60px; }
  .couple-note blockquote { font-size:32px; }
  .faq { padding-block:45px 60px; }
  .faq h2 { font-size:38px; }
  .closing { min-height:500px; padding:65px 22px; }
  .closing-photo img { object-position:32% center; }
  .closing-content>.handwritten { font-size:42px; }
  .closing h2 { font-size:49px; }
  .closing-content>p:not(.handwritten) { font-size:12px; }
  .page-intro h1 { font-size:50px; }
  body[data-page="stories"] .page-intro { padding-top:30px; }
  body[data-page="stories"] .page-intro+.story-grid { grid-template-columns:1fr 1fr; gap:30px 20px; }
  body[data-page="stories"] .page-intro+.story-grid>.story-card:first-child { grid-column:1/-1; }
  body[data-page="stories"] .page-intro+.story-grid>.story-card:first-child img { aspect-ratio:5/4; }
  body[data-page="stories"] .page-intro+.story-grid>.story-card:nth-child(2) { margin-top:0; }
  .pricing-intro { grid-template-columns:1fr; padding-top:25px; gap:30px; }
  .pricing-cover { grid-column:1; grid-row:2; min-height:0; }
  .pricing-cover img { height:auto; aspect-ratio:16/10; object-fit:cover; object-position:50% 45%; }
  .pricing-heading { grid-column:1; grid-row:1; }
  .pricing-heading h1 { font-size:48px; }
  .pricing-intro .service-nav { grid-row:3; margin-top:0; }
  .collections h2 { font-size:36px; }
  .collection,.collection:first-child,.collection:last-child { padding:27px 24px; }
  .collection+.collection { border-top-color:#d3c6b8; }
  .about-hero h1,.contact-intro h1 { font-size:53px; }
}
@media(max-width:360px) {
  .moment-hero { min-height:800px; }
  .moment-copy h1 { font-size:43px; }
  .moment-copy>.overline { font-size:8px; }
  .moment-copy h1>.handwritten { font-size:54px; }
  .story-selection h2 { font-size:39px; }
  .story-triptych .story-card:not(:first-child) .story-caption :is(h2,h3) { font-size:21px; }
  .coverage-tile>div>span { font-size:24px; }
  .coverage-tile p { font-size:9px; }
  .portrait-note { font-size:24px; }
  .closing h2 { font-size:42px; }
}
@media(prefers-reduced-motion:reduce) {
  .moment-picture img,.moment-copy h1 svg { animation:none; }
  .cinema-frame .film-link>img { transform:none; }
  .story-card>a>img,.round-play { transition:none; }
}
