@font-face{font-family:'Barlow Condensed';src:url('fonts/barlow-condensed.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Beauty Handwriting';src:url('fonts/beauty-handwriting.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}

body .masthead,body.home .masthead{position:sticky;top:0;z-index:50}
body .phase-nav{position:relative;top:auto;z-index:1}
html:root{scroll-padding-top:calc(var(--navigation-height,124px) + 16px)}
.day-page .day-chapter{scroll-margin-top:0}
@font-face{font-family:Outfit;src:url('fonts/outfit.ttf') format('truetype');font-weight:100 900;font-style:normal;font-display:swap}
:root{--sc-canvas:#f1f2ec;--sc-surface:#e5e8df;--sc-ink:#263c30;--sc-ink-soft:#4e6053;--sc-accent:#334b39;--sc-accent-ink:#fff;--sc-font-display:'Barlow Condensed',Arial,sans-serif;--sc-font-text:Outfit,Arial,sans-serif;--paper:#f1f2ec;--ink:#263c30;--muted:#4e6053;--page-bg:#f1f2ec;scroll-behavior:smooth;scroll-padding-top:85px}
*{box-sizing:border-box}body{margin:0;background:var(--page-bg);color:var(--ink);font:400 17px/1.7 Outfit,Arial,sans-serif}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:'Barlow Condensed',Arial,sans-serif;font-weight:400;line-height:.98;letter-spacing:-.035em;text-wrap:balance}h1{font-size:clamp(70px,8vw,124px)}h2{font-size:clamp(42px,4.7vw,72px)}p{text-wrap:pretty}a{color:inherit;text-underline-offset:6px}img{display:block;width:100%;height:auto}button,input,textarea{font:inherit;color:inherit}button,a,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid currentColor;outline-offset:6px}[hidden]{display:none!important}::selection{background:#bbc7ac;color:#233329}.skip{position:absolute;top:12px;left:15px;transform:translateY(-160%);padding:10px 20px;background:var(--paper);z-index:100}.skip:focus{transform:none}
.masthead{position:sticky;top:0;z-index:4;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:38px;padding:32px 6%;color:#263c30;background:var(--paper)}.brand{font:500 38px/.78 'Barlow Condensed',Arial,sans-serif;letter-spacing:-.035em;text-decoration:none;text-align:center}.masthead nav{display:flex;gap:35px;font-size:13px;align-items:center}.masthead nav:last-child{justify-content:end}.masthead nav a{text-decoration:none;padding:10px 0;white-space:nowrap}.masthead nav a:hover,.masthead nav a[aria-current]{text-decoration:underline}.masthead nav span{margin-left:10px}.small-label{font-size:11px;text-transform:uppercase;letter-spacing:.16em;line-height:1.5}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:45px;min-height:48px;padding:13px 23px;background:#263c30;color:#fff;text-decoration:none;font-size:14px;white-space:nowrap}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:38px;min-height:46px;border-bottom:1px solid currentColor;text-decoration:none;font-size:14px}.button:hover{background:#3e5645}.button:active,button:active{transform:translateY(1px)}.text-link:hover{text-decoration:underline}
.landing-hero{position:relative;isolation:isolate;min-height:650px;height:calc(100svh - 124px);max-height:1040px;overflow:hidden;background:var(--paper);--hero-p:0}.hero-ground{position:absolute;inset:0;background:#eef1e9;z-index:-1}.landscape-scene{position:absolute;width:100%;height:auto;aspect-ratio:1400/800;bottom:-1px;left:0;overflow:visible}.scene-back,.scene-front{transform-box:view-box;transform-origin:73% 96%}.scene-back{transform:translateY(calc(var(--hero-p)*-14px)) scale(calc(1 + var(--hero-p)*.01))}.scene-front{transform:translateY(calc(var(--hero-p)*-10px)) scale(calc(1 + var(--hero-p)*.045))}.landing-copy{position:relative;z-index:2;padding-top:clamp(20px,5vh,70px);margin-left:9%;max-width:620px;transform:translateY(calc(var(--hero-p)*-54px))}.landing-copy h1{font-size:clamp(94px,10.8vw,166px);line-height:.87;letter-spacing:-.045em}.landing-copy p{font-size:16px;margin-top:28px;max-width:300px}.landing-copy .text-link{margin-top:20px}.hero-caption{position:absolute;right:5%;bottom:25px;font-size:11px;color:#fff;text-shadow:0 1px 4px #172c23}
.introduction{padding:100px 9% 110px;display:grid;grid-template-columns:1.1fr 1fr;column-gap:11%;row-gap:24px;background:var(--paper)}.introduction .small-label{grid-column:1/-1}.introduction h2{max-width:600px}.introduction p+p{margin-top:20px}.introduction>div{max-width:520px;font-size:17px}.about{display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:center;padding:20px 12% 120px;background:var(--paper)}.portrait-placeholder{align-self:stretch;min-height:560px;background:#dce3d7;display:flex;flex-direction:column;justify-content:space-between;padding:35px;color:#4e6053}.portrait-placeholder>div{font:400 48px/1.1 'Barlow Condensed',Arial,sans-serif;margin:auto;text-align:center}.portrait-placeholder figcaption{font-size:12px}.about h2{margin-top:22px;margin-bottom:30px}.about p+p{margin-top:22px}.about .text-link{margin-top:25px}.day-invitation{position:relative;display:grid;grid-template-columns:1.2fr 1fr;align-items:center;background:#e4e6da;padding:65px 7%;gap:8%}.day-invitation img{max-height:540px;object-fit:contain}.day-invitation p{max-width:400px;margin:25px 0}.day-invitation h2{font-size:clamp(40px,4.2vw,64px)}
.wedding-hero{overflow:hidden;padding:24px 0 65px;text-align:center;background:var(--paper);--hero-p:0}.wedding-hero h1{font-size:clamp(70px,7.1vw,112px);line-height:.92}.wedding-hero>p{margin-top:24px;font-size:15px;line-height:1.65}.three-photos{display:grid;grid-template-columns:19% 62% 19%;gap:28px;align-items:end;margin:48px -3% 0}.three-photos img{width:100%;height:100%;object-fit:cover}.center-photo{height:clamp(330px,30vw,510px);box-shadow:0 20px 44px #263c3014;transform:translateY(calc(var(--hero-p)*-22px))}.side-photo{height:clamp(210px,21vw,350px)}.left-photo{transform:translate(calc(var(--hero-p)*20px),calc(var(--hero-p)*-65px)) rotate(calc(-3deg + var(--hero-p)*3deg))}.right-photo{transform:translate(calc(var(--hero-p)*-20px),calc(var(--hero-p)*-48px)) rotate(calc(3deg - var(--hero-p)*3deg))}.hero-actions{display:flex;justify-content:center;gap:32px;margin-top:34px}.day-intro{padding:100px 9% 75px;text-align:center;max-width:900px;margin:auto}.day-intro h2{font-size:78px;margin:25px 0}.day-intro>p:last-child{max-width:620px;margin:auto;font-size:17px}.phase-nav{display:flex;justify-content:center;gap:40px;position:sticky;top:0;z-index:10;background:var(--page-bg);color:var(--ink);padding:18px 5%;border-block:1px solid color-mix(in srgb,var(--ink) 20%,transparent);font-size:13px}.phase-nav a{padding:5px 0;text-decoration:none;white-space:nowrap}.phase-nav a[aria-current=true]{border-bottom:1px solid currentColor}.phase-nav a:hover{text-decoration:underline}
.day-story{position:relative;max-width:1600px;margin:auto;padding:0 7%;isolation:isolate}.day-thread{position:absolute;inset:0;width:100%;height:100%;z-index:-1;overflow:visible;pointer-events:none}.day-thread path{fill:none;stroke:var(--ink);stroke-width:1.3;vector-effect:non-scaling-stroke}.thread-base{opacity:.2}.thread-progress{opacity:.65}.day-chapter{padding:130px 0 160px;scroll-margin-top:75px}.chapter-layout{display:grid;grid-template-columns:1.08fr 1fr;gap:14%;align-items:center}.day-photo{position:relative}.day-photo img{height:auto;max-height:640px;object-fit:contain;background:var(--page-bg)}.day-photo figcaption{font-size:12px;line-height:1.6;padding-top:14px;background:var(--page-bg)}.photo-clip{position:absolute;top:-17px;left:50%;width:12px;height:34px;border:1px solid currentColor;border-radius:8px;transform:rotate(9deg);background:var(--page-bg);z-index:2}.chapter-copy{background:var(--page-bg);padding:20px 0;min-width:0}.chapter-copy h2{font-size:clamp(46px,4.5vw,72px);margin:20px 0 28px}.phase-name{font-size:12px;letter-spacing:.08em}.chapter-copy>p:not(.phase-name){font-size:16px;line-height:1.8;max-width:510px}.chapter-copy>p+p{margin-top:20px}.planning-tip{border-top:1px solid color-mix(in srgb,var(--ink) 30%,transparent);margin-top:28px;max-width:510px;font-size:14px}.planning-tip summary{cursor:pointer;min-height:50px;display:flex;justify-content:space-between;align-items:center;gap:15px;list-style:none}.planning-tip summary::-webkit-details-marker{display:none}.planning-tip[open] summary span{transform:rotate(45deg)}.planning-tip p{padding:12px 0;max-width:480px}.chapter-1 .chapter-layout,.chapter-4 .chapter-layout,.chapter-6 .chapter-layout{grid-template-columns:1fr 1.08fr}.chapter-1 .day-photo,.chapter-4 .day-photo,.chapter-6 .day-photo{grid-column:2;grid-row:1}.chapter-1 .chapter-copy,.chapter-4 .chapter-copy,.chapter-6 .chapter-copy{grid-column:1;grid-row:1}.chapter-1 .day-photo{width:75%;justify-self:center}.chapter-2 .chapter-layout,.chapter-5 .chapter-layout{display:block}.chapter-2 .day-photo{width:73%;margin-left:3%}.chapter-2 .chapter-copy{max-width:550px;margin:60px 2% 0 auto}.chapter-5{padding-block:170px 190px}.chapter-5 .day-photo{width:86%;margin:auto}.chapter-5 .chapter-copy{max-width:670px;margin:60px auto 0}.chapter-5 .chapter-copy>p:not(.phase-name){max-width:620px}.chapter-7 .chapter-layout{grid-template-columns:1.2fr 1fr;gap:10%}.chapter-7 .day-photo img{min-height:430px;object-fit:cover}
.contact{padding:100px 9%;display:grid;grid-template-columns:1fr 1fr;gap:17%;background:#243c30;color:#f4f4eb}.contact .small-label{color:#c1cdbc}.contact h2{font-size:80px;margin:25px 0}.contact p + p{margin-top:16px}.contact p{max-width:420px;font-size:16px}.contact-form{padding-top:50px}.draft>summary{cursor:pointer;min-height:70px;display:flex;justify-content:space-between;font:400 32px 'Barlow Condensed',Arial,sans-serif;border-bottom:1px solid #acb9a9;list-style:none}.draft>summary::-webkit-details-marker{display:none}.draft .prototype-note{font-size:12px;line-height:1.6;margin-block:20px}.signature{margin-top:45px}.contact label{display:block;font-size:14px;margin:22px 0 6px}.contact input,.contact textarea{display:block;width:100%;background:#f1f2ec;color:#263c30;border:1px solid #bbc5b6;padding:12px;border-radius:0}.contact button{background:#f1f2ec;color:#263c30;border:0;padding:13px 20px;cursor:pointer;margin-top:20px;min-height:48px}.contact button:hover{background:#d8e0ce}.draft-result a{display:inline-block;margin-top:15px}.contact #draft-status{font-size:13px;margin-top:15px}footer{padding:35px 6%;background:#243c30;color:#eef1e8;display:flex;flex-wrap:wrap;align-items:center;gap:24px;border-top:1px solid #728473;font-size:12px}footer .footer-brand{font:400 27px 'Barlow Condensed',Arial,sans-serif;text-decoration:none}footer small{margin-left:auto;font-size:10px}
@media(min-width:1600px){.landing-copy{padding-top:7vh}.landing-hero{min-height:780px}.chapter-copy>p:not(.phase-name){font-size:18px}}
@media(max-width:950px){.masthead{gap:20px;padding:28px 4%}.masthead nav{gap:17px;font-size:12px}.landing-hero{height:700px;min-height:0}.landing-copy{margin-left:7%;padding-top:20px}.landing-copy h1{font-size:115px}.landing-copy p{font-size:15px}.landscape-scene{width:130%;left:-30%}.introduction{padding:75px 7%;gap:30px}.about{padding:20px 7% 80px;gap:7%}.portrait-placeholder{min-height:480px}.chapter-layout{gap:8%}.phase-nav{gap:25px}.day-story{padding:0 6%}.chapter-copy h2{font-size:50px}.contact{gap:10%;padding:75px 7%}}
@media(max-width:650px){:root{scroll-padding-top:70px}.masthead{padding:24px 5%;gap:12px;grid-template-columns:1fr auto 1fr}.brand{font-size:30px}.masthead nav{flex-direction:column;align-items:start;gap:0;font-size:10px;line-height:1.3}.masthead nav:last-child{align-items:end}.masthead nav a{padding:9px 0}.masthead nav span{display:none}.landing-hero{height:690px;min-height:0;max-height:none}.landing-copy{margin-left:7%;padding-top:22px;max-width:85%}.landing-copy h1{font-size:86px;line-height:.88}.landing-copy p{margin-top:22px;font-size:14px;line-height:1.6}.landing-copy .text-link{margin-top:12px;font-size:12px;min-height:40px}.landscape-scene{width:210%;left:-102%;aspect-ratio:1400/850;bottom:-1px}.hero-caption{bottom:14px;font-size:9px;right:5%}.scene-front{transform-origin:77% 96%}.introduction{display:block;padding:60px 7%}.introduction h2{font-size:47px;margin:24px 0}.introduction>div{font-size:15px}.about{display:flex;flex-direction:column;gap:36px;padding:0 7% 65px}.portrait-placeholder{width:85%;min-height:360px;align-self:start;padding:25px}.portrait-placeholder>div{font-size:40px}.about h2{font-size:49px;margin:20px 0}.about-copy{font-size:15px}.day-invitation{display:block;padding:40px 7% 55px}.day-invitation img{max-height:350px;margin-bottom:32px}.day-invitation h2{font-size:45px}.day-invitation p{font-size:15px}.wedding-hero{padding:30px 0 45px}.wedding-hero h1{font-size:66px}.wedding-hero>p{font-size:13px;margin:21px 20px 0}.three-photos{grid-template-columns:17% 66% 17%;gap:10px;margin:35px -12% 0;align-items:center}.center-photo{height:285px}.center-photo img{object-position:47% center}.side-photo{height:180px}.hero-actions{gap:18px;flex-direction:column;align-items:center;margin-top:30px}.hero-actions .text-link{font-size:13px;min-height:38px}.day-intro{padding:55px 7%}.day-intro h2{font-size:56px;margin:22px 0}.day-intro>p:last-child{font-size:15px}.phase-nav{justify-content:space-between;gap:12px;font-size:11px;padding:15px 5%;overflow-x:auto}.day-story{padding:0 7% 0 14%}.day-chapter{padding:75px 0 80px;scroll-margin-top:70px}.chapter-layout,.chapter-1 .chapter-layout,.chapter-4 .chapter-layout,.chapter-6 .chapter-layout,.chapter-7 .chapter-layout{display:flex;flex-direction:column;gap:28px;align-items:stretch}.day-photo,.chapter-1 .day-photo,.chapter-2 .day-photo,.chapter-5 .day-photo{width:100%;margin:0}.chapter-1 .day-photo{width:85%;align-self:end}.day-photo img{max-height:400px}.day-photo figcaption{font-size:10px}.chapter-copy,.chapter-2 .chapter-copy,.chapter-5 .chapter-copy{padding:12px 0;margin:0}.chapter-copy h2{font-size:43px;margin:16px 0 23px;overflow-wrap:break-word}.chapter-copy>p:not(.phase-name){font-size:15px;line-height:1.75}.phase-name{font-size:11px}.planning-tip{font-size:12px;margin-top:23px}.chapter-2 .chapter-copy,.chapter-5 .chapter-copy{margin-top:25px}.chapter-5{padding-block:100px}.chapter-7 .day-photo img{min-height:0;max-height:none}.contact{display:block;padding:65px 7%}.contact h2{font-size:65px}.contact p{font-size:15px}.contact-form{padding-top:30px}.signature{margin-top:30px}footer{gap:15px;padding:27px 7%}footer p{flex-basis:100%}footer small{margin:0}}
@media(max-width:370px){.landing-copy h1{font-size:76px}.landing-hero{height:650px}.wedding-hero h1{font-size:59px}.center-photo{height:245px}.masthead nav{font-size:9px}.brand{font-size:27px}.phase-nav{font-size:10px;gap:10px}.chapter-copy h2{font-size:38px}}
.landscape-scene{max-width:none}.hero-caption{color:#263c30;text-shadow:none;background:#f1f2ec;padding:3px 8px}.introduction h2{overflow-wrap:break-word;hyphens:auto}
/* Keep both people in the side photograph and reserve the gaps in the grid. */
.masthead{padding-block:17px}
.brand img{width:132px;height:auto}
.about-portrait img{aspect-ratio:10/13;object-fit:cover}
.center-photo img{object-position:center 28%}
.three-photos{grid-template-columns:minmax(0,1fr) 62% minmax(0,1fr)}
.right-photo img{object-position:62% center}
.phase-nav a[aria-current=location]{border-bottom:1px solid currentColor}
@media(min-width:951px) and (min-height:760px){.center-photo{height:clamp(300px,calc(100svh - 570px),510px)}.side-photo{height:clamp(220px,calc(100svh - 675px),350px)}}
@media(max-width:650px){
  .masthead{padding:18px 4%;gap:10px}
  .brand img{width:102px}
  .about-portrait{width:85%;align-self:start}
  .masthead nav{font-size:12px;width:100%}
  .masthead nav a{display:flex;align-items:center;min-height:44px;white-space:normal;line-height:1.35}
  .masthead nav:last-child a{text-align:right;justify-content:flex-end}
  .three-photos{grid-template-columns:minmax(0,1fr) 66% minmax(0,1fr)}
  .phase-nav a{display:flex;align-items:center;min-height:44px}
  .phase-nav{padding-block:7px}
  .contact input,.contact textarea{font-size:16px}
}
@media(max-width:370px){.masthead nav{font-size:11px}.masthead{gap:8px}}
.day-page:not(.js-ready) .day-chapter{background:var(--page-bg)}.day-page:not(.js-ready) .chapter-3{--page-bg:#dadfc9}.day-page:not(.js-ready) .chapter-4{--page-bg:#c7cfb1}.day-page:not(.js-ready) .chapter-5{--page-bg:#b2bc9d;--ink:#030503;color:var(--ink)}.day-page:not(.js-ready) .chapter-6{--page-bg:#9da88a;--ink:#030503;color:var(--ink)}.day-page:not(.js-ready) .chapter-7{--page-bg:#304a37;--ink:#fff;color:var(--ink)}.day-page:not(.js-ready) .chapter-8{--page-bg:#243c30;--ink:#fff;color:var(--ink)}
/* The image keeps its source proportions at every breakpoint and scroll position. */
.landscape-scene{
  aspect-ratio:12817/7316;
  /* Only transparent sky can extend above the hero. The ridge stays in view. */
  height:min(calc(125% - 32px),calc(110vw * 7316 / 12817));
  width:auto;
  left:50%;
  right:auto;
  translate:-50% 0;
  bottom:0;
  mask-image:linear-gradient(to right,transparent,#000 12%,#000 94%,transparent);
}
.landing-hero{max-height:none}
.landing-hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,#f1f2ecc7,transparent 53%);mask-image:linear-gradient(transparent 24%,#000 55%)}
@media(max-width:950px){
  .landscape-scene{height:min(calc(125% - 32px),calc(155vw * 7316 / 12817));left:42%}
}
@media(max-width:650px){
  .landscape-scene{height:min(calc(100% - 24px),calc(210vw * 7316 / 12817));left:auto;right:-8%;translate:none;mask-image:linear-gradient(to right,transparent,#000 10%,#000 97%,transparent)}
  .landing-hero::after{display:none}
}
.masthead{gap:48px}
.masthead nav{font-size:17px;gap:32px;justify-content:flex-end}
.masthead nav:last-child{justify-content:flex-start}
.scene-back,.scene-front,.scene-meadow{transform-box:view-box;transform-origin:73% 100%}
.scene-back{transform:translateY(calc(var(--hero-p)*90px))}
.scene-front{transform:translateY(calc(var(--hero-p)*65px)) scale(calc(1 + var(--hero-p)*.20))}
.scene-meadow{transform:translateY(calc(var(--hero-p)*25px)) scale(calc(1 + var(--hero-p)*.27))}
.landing-copy{transform:translateY(calc(var(--hero-p)*-100px))}
@media(max-width:950px){.masthead{gap:28px}.masthead nav{gap:20px;font-size:15px}}
@media(max-width:650px){
  .masthead{gap:14px}
  .brand img{width:92px}
  .masthead nav{font-size:14px;gap:0;align-items:flex-end}
  .masthead nav:first-child a{text-align:right;justify-content:flex-end}
  .masthead nav:last-child{align-items:flex-start}
  .masthead nav:last-child a{text-align:left;justify-content:flex-start}
  .scene-back,.scene-front{transform-origin:73% 96%}
  .scene-back{transform:translateY(calc(var(--hero-p)*65px))}
  .scene-front{transform:translateY(calc(var(--hero-p)*40px)) scale(calc(1 + var(--hero-p)*.16))}
  .scene-meadow{transform:translateY(calc(var(--hero-p)*15px)) scale(calc(1 + var(--hero-p)*.22))}
  .landing-copy{transform:translateY(calc(var(--hero-p)*-55px))}
}
@media(max-width:370px){.masthead{gap:10px}.masthead nav{font-size:13px}.brand img{width:82px}}
@media(max-width:650px){.introduction h2{font-size:clamp(34px,10.5vw,47px)}}


.hero-title .hero-straight{display:block;font-family:'Barlow Condensed',Arial,sans-serif;font-weight:450;font-style:normal;letter-spacing:-.055em;text-transform:uppercase;line-height:1}
.hero-title .hero-script{display:block;font-family:'Beauty Handwriting',cursive;font-weight:400;font-style:normal;letter-spacing:0;text-transform:none;line-height:1.05;white-space:nowrap}
.landing-copy h1.hero-title{font-size:inherit;line-height:1;letter-spacing:0;text-wrap:initial}
.landing-copy .hero-straight{font-size:clamp(72px,8.8vw,124px)}
.landing-copy .hero-script{font-size:clamp(108px,11.4vw,164px);margin-top:-.08em;margin-left:.2em}
.wedding-hero h1.hero-title{font-size:inherit;line-height:1;letter-spacing:0;text-wrap:initial;padding-inline:20px}
.wedding-hero .hero-straight{font-size:clamp(32px,4.25vw,64px)}
.wedding-hero .hero-script{font-size:clamp(56px,7.8vw,112px);margin-top:-.02em;padding-inline:.12em}
@media(max-width:650px){
  .landing-copy .hero-straight{font-size:clamp(60px,16vw,78px)}
  .landing-copy .hero-script{font-size:clamp(83px,23vw,105px);margin-left:.14em;margin-top:0}
  .wedding-hero .hero-straight{font-size:clamp(29px,8.2vw,42px)}
  .wedding-hero .hero-script{font-size:clamp(56px,15.3vw,76px);margin-top:.03em}
}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}.scene-back,.scene-front,.scene-meadow,.landing-copy,.center-photo,.side-photo{transform:none!important}.thread-progress{stroke-dasharray:none!important;stroke-dashoffset:0!important}}
