:root{
  --color-bg:#f3efe6;--color-bg-light:#fbf7ee;--color-paper:#f7f2e8;--color-text:#2f2f29;--color-muted:#6f6a60;--color-white:#fff;--color-dark-green:#263126;--color-green:#4d5b3f;--color-sage:#9ca18b;--color-terracotta:#a86a52;--color-brown:#7d6653;--color-line:rgba(47,47,41,.22);--color-light-line:rgba(255,255,255,.35);--serif:'Cormorant Garamond',Georgia,serif;--sans:'Manrope',Arial,sans-serif;--script:'Marck Script',cursive;--container:min(1120px,calc(100vw - 48px));
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--sans);font-size:16px;line-height:1.65;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.33;background-image:radial-gradient(rgba(38,49,38,.08) .7px,transparent .7px),radial-gradient(rgba(255,255,255,.5) .7px,transparent .7px);background-size:6px 6px,11px 11px;mix-blend-mode:multiply;z-index:10}img{width:100%;height:100%;object-fit:cover;display:block}a{color:inherit;text-decoration:none}button,input{font:inherit}.center{text-align:center}.eyebrow{margin:0 0 20px;font-size:12px;letter-spacing:.34em;text-transform:uppercase;color:rgba(255,255,255,.78);font-weight:500}.eyebrow--dark{color:var(--color-muted)}h1,h2{font-family:var(--serif);font-weight:400;line-height:.96;margin:0}h2{font-size:clamp(42px,6vw,72px);letter-spacing:.01em}.paper{position:relative;background:var(--color-paper)}.paper--soft{background:var(--color-bg-light)}.dark{position:relative;background:var(--color-dark-green);color:var(--color-bg-light)}
.preloader{position:fixed;inset:0;z-index:999;display:grid;place-items:center;background:var(--color-paper);transition:opacity .7s ease,visibility .7s ease}.preloader.is-hidden{opacity:0;visibility:hidden}.preloader__mark{font-family:var(--serif);font-size:44px;letter-spacing:.08em;animation:pulse 1.7s infinite alternate}.twig{position:absolute;margin-top:78px;color:var(--color-sage)}.preloader__line{position:absolute;margin-top:150px;width:180px;height:1px;background:var(--color-line);overflow:hidden}.preloader__line span{display:block;height:100%;background:var(--color-terracotta);animation:loading 1.4s ease-in-out infinite}@keyframes loading{from{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes pulse{to{transform:scale(1.04);opacity:.72}}
.menu-toggle{position:fixed;right:30px;top:24px;z-index:50;width:48px;height:48px;border:1px solid rgba(255,255,255,.34);background:rgba(38,49,38,.18);backdrop-filter:blur(12px);border-radius:50%;display:grid;place-content:center;gap:5px;cursor:pointer}.menu-toggle span{display:block;width:18px;height:1px;background:#fff;transition:.35s}.menu-toggle.is-open span:first-child{transform:translateY(3px) rotate(45deg)}.menu-toggle.is-open span:last-child{transform:translateY(-3px) rotate(-45deg)}.menu{position:fixed;inset:0;z-index:40;display:grid;place-content:center;gap:18px;text-align:center;background:rgba(247,242,232,.96);opacity:0;visibility:hidden;transition:.45s}.menu.is-open{opacity:1;visibility:visible}.menu a{font-family:var(--serif);font-size:clamp(34px,6vw,72px);line-height:1;color:var(--color-text);transform:translateY(18px);opacity:0;transition:.45s}.menu.is-open a{transform:none;opacity:1}.menu a:hover{color:var(--color-terracotta)}
.hero{min-height:96vh;display:grid;place-items:center;text-align:center;overflow:hidden}.hero__bg{position:absolute;inset:-6% 0;background:url('../assets/images/hero-final.jpg') center/cover no-repeat;will-change:transform;filter:saturate(.86) contrast(1.02)}.hero__overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(22,25,22,.46),rgba(16,21,18,.62)),radial-gradient(circle at 50% 35%,rgba(255,244,220,.05),transparent 45%)}.hero__content{position:relative;z-index:1;width:var(--container);color:var(--color-bg-light);padding-top:25px;will-change:transform}.branch{font-size:27px;color:rgba(255,255,255,.7);margin-bottom:6px}.hero__title{font-size:clamp(68px,10vw,136px);letter-spacing:.025em;text-shadow:0 18px 48px rgba(0,0,0,.28)}.hero__rule,.small-rule{display:block;width:210px;height:1px;background:rgba(255,255,255,.38);margin:25px auto}.hero__date{font-family:var(--serif);font-size:clamp(24px,3vw,36px);margin:0 0 26px}.scroll-down{display:inline-grid;place-items:center;width:33px;height:33px;border:1px solid rgba(255,255,255,.42);border-radius:50%;animation:down 1.8s infinite}.hero__sub{margin:22px 0 0;font-size:12px;line-height:1.8;letter-spacing:.36em;text-transform:uppercase;color:rgba(255,255,255,.82)}@keyframes down{50%{transform:translateY(6px)}}.wave{position:absolute;left:0;right:0;height:105px;pointer-events:none}.wave--bottom{bottom:-1px;background:var(--color-paper);clip-path:ellipse(62% 62% at 50% 100%)}.wave-section:before,.wave-section:after,.rsvp:before{content:"";position:absolute;left:0;right:0;height:58px;background:var(--color-dark-green);z-index:1}.wave-section:before{top:-1px;clip-path:polygon(0 0,100% 0,100% 58%,70% 78%,38% 45%,0 74%)}.wave-section:after{bottom:-1px;clip-path:polygon(0 35%,35% 65%,65% 28%,100% 55%,100% 100%,0 100%)}
.story{display:grid;grid-template-columns:1fr 1.06fr;gap:clamp(35px,7vw,90px);align-items:center;width:100%;padding:clamp(90px,10vw,150px) max(24px,calc((100vw - 1120px)/2)) 95px;overflow:hidden}.story__text{max-width:440px}.story__text h2{margin-bottom:30px}.story__text p:last-child{max-width:310px;color:var(--color-muted)}.botanical{position:absolute;font-size:220px;color:rgba(77,91,63,.13);font-family:serif;line-height:1;pointer-events:none}.botanical--left{left:-35px;top:70px;transform:rotate(-25deg)}.botanical--right{right:10px;top:30px;transform:rotate(25deg)}.polaroids{position:relative;min-height:390px}.polaroid{position:absolute;background:#f8f5ee;padding:13px 13px 38px;box-shadow:0 16px 40px rgba(47,47,41,.17);margin:0}.polaroid img{filter:saturate(.78)}.polaroid--top{width:min(390px,75%);right:20px;top:0;transform:rotate(-4deg)}.polaroid--bottom{width:min(330px,64%);left:40px;bottom:20px;transform:rotate(5deg);z-index:2}
.details{padding:80px max(24px,calc((100vw - 1120px)/2)) 95px}.details__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:45px;text-align:center}.detail svg{width:58px;height:58px;margin:auto auto 18px;fill:none;stroke:var(--color-terracotta);stroke-width:1.2}.detail h3{font-size:12px;letter-spacing:.34em;text-transform:uppercase;color:var(--color-muted);font-weight:500}.detail p{font-family:var(--serif);font-size:26px;line-height:1.1;margin:8px 0 2px}.detail span{color:var(--color-muted)}
.program{padding:95px max(24px,calc((100vw - 1180px)/2)) 105px;overflow:hidden}.program .small-rule{width:38px;margin-top:-10px}.timeline{position:relative;display:grid;grid-template-columns:repeat(6,1fr);gap:28px;margin-top:35px}.timeline__line{position:absolute;left:6%;right:6%;top:45px;height:1px;background:var(--color-light-line);transform-origin:left;transform:scaleX(0);transition:transform 1.2s cubic-bezier(.22,1,.36,1)}.timeline.is-visible .timeline__line{transform:scaleX(1)}.event{text-align:center;position:relative}.event:before{content:"";position:absolute;top:41px;left:50%;width:8px;height:8px;background:var(--color-bg-light);border-radius:50%;transform:translateX(-50%);z-index:1}.event__icon{font-size:38px;line-height:1;margin-bottom:28px;color:rgba(247,242,232,.7)}.event time{font-family:var(--serif);font-size:25px}.event p{margin:6px 0 0;line-height:1.35}.event span{color:rgba(247,242,232,.72)}
.venue{display:grid;grid-template-columns:.95fr 1fr;align-items:center;gap:clamp(40px,7vw,100px);padding:115px max(24px,calc((100vw - 1120px)/2));overflow:hidden}.venue__image{height:390px;clip-path:ellipse(75% 62% at 30% 53%);box-shadow:0 22px 70px rgba(47,47,41,.18)}.venue__text{position:relative;max-width:455px}.venue__text p:not(.eyebrow){color:var(--color-muted);font-size:18px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-width:245px;height:58px;margin-top:22px;padding:0 28px;border:1px solid currentColor;text-transform:uppercase;letter-spacing:.25em;font-size:12px;transition:background .3s,border-color .3s,transform .3s;will-change:transform}.btn span{transition:transform .3s}.btn:hover span{transform:translateX(6px)}.btn--outline{color:var(--color-brown);background:rgba(255,255,255,.08)}.btn--outline:hover{background:rgba(168,106,82,.08)}.btn--accent{background:var(--color-terracotta);border-color:var(--color-terracotta);color:#fff}.btn--accent:hover{background:#b47761}
.dresscode{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;min-height:470px;background:linear-gradient(100deg,rgba(156,161,139,.55),rgba(243,239,230,.35));overflow:hidden}.dresscode__text{padding:80px 24px 80px max(24px,calc((100vw - 1120px)/2));max-width:710px}.dresscode__text h2{font-family:var(--script);font-size:clamp(31px,4.5vw,48px);line-height:1.25;color:rgba(47,47,41,.78);font-weight:400}.palette{display:flex;gap:16px;margin:30px 0 18px}.palette span{width:58px;height:58px;border-radius:50%;background:var(--sw);border:1px solid rgba(255,255,255,.55);box-shadow:0 7px 24px rgba(47,47,41,.09)}.dresscode__image{height:500px;clip-path:ellipse(75% 62% at 62% 50%)}
.faq{padding:90px max(24px,calc((100vw - 900px)/2)) 105px}.small-rule--dark{background:var(--color-line);width:38px;margin-top:-8px}.accordion{margin-top:35px}.faq-item{border-bottom:1px solid var(--color-line)}.faq-item:first-child{border-top:1px solid var(--color-line)}.faq-item button{width:100%;background:transparent;border:0;padding:19px 0;text-align:left;display:flex;justify-content:space-between;align-items:center;font-family:var(--serif);font-size:24px;cursor:pointer;color:var(--color-text)}.faq-item button span{font-family:var(--sans);font-weight:300;transition:.3s}.faq-item.is-open button span{transform:rotate(45deg)}.faq-item div{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s}.faq-item.is-open div{grid-template-rows:1fr}.faq-item p{overflow:hidden;margin:0;color:var(--color-muted);padding-right:50px}.faq-item.is-open p{padding-bottom:18px}.faq__twig{text-align:center;color:var(--color-sage);font-size:26px;margin-top:26px}
.rsvp{min-height:650px;overflow:hidden;padding:110px max(24px,calc((100vw - 1120px)/2)) 70px}.rsvp:before{top:-1px;clip-path:polygon(0 0,100% 0,100% 65%,70% 48%,33% 72%,0 43%)}.rsvp__photo{position:absolute;inset:0 0 0 48%;opacity:.64}.rsvp__photo:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--color-dark-green),rgba(38,49,38,.55),transparent);z-index:1}.rsvp__form{position:relative;z-index:2;max-width:660px}.rsvp h2{font-size:clamp(48px,6vw,76px)}.rsvp__form>p{max-width:370px;color:rgba(247,242,232,.78);margin-bottom:30px}.form-row{display:grid;grid-template-columns:1fr .75fr 1.2fr;gap:18px;align-items:start}.rsvp label{text-transform:uppercase;letter-spacing:.22em;font-size:11px;color:rgba(247,242,232,.75)}.rsvp input{width:100%;height:54px;margin-top:8px;padding:0 18px;border:1px solid rgba(255,255,255,.23);background:rgba(255,255,255,.04);color:#fff;outline:0}.rsvp input:focus{border-color:rgba(255,255,255,.7)}.rsvp input::placeholder{color:rgba(255,255,255,.35)}.counter{display:grid;grid-template-columns:42px 1fr 42px;margin-top:8px;border:1px solid rgba(255,255,255,.23)}.counter input{margin:0;border:0;text-align:center;padding:0}.counter button{border:0;background:transparent;color:#fff;cursor:pointer}.rsvp small{display:block;min-height:18px;margin-top:3px;color:#f0b29d;text-transform:none;letter-spacing:0}.form-status{min-height:25px;margin-top:12px;color:#e8d6bf}.final-script{font-family:var(--serif);font-size:25px;color:#fff!important;margin:14px 0 0}.heart{font-size:24px;color:#fff;margin-left:190px}footer{position:relative;z-index:2;margin-top:70px;color:rgba(255,255,255,.55);font-size:13px;letter-spacing:.15em;text-transform:uppercase}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.22,1,.36,1)}.reveal.is-visible{opacity:1;transform:none}.reveal:nth-child(2){transition-delay:.08s}.reveal:nth-child(3){transition-delay:.16s}.reveal:nth-child(4){transition-delay:.24s}
@media (max-width:900px){.story,.venue,.dresscode{grid-template-columns:1fr}.story{padding-top:95px}.polaroids{min-height:340px}.details__grid{grid-template-columns:1fr;gap:52px}.timeline{grid-template-columns:1fr;gap:34px;max-width:520px;margin-inline:auto}.timeline__line{left:30px;right:auto;top:0;bottom:0;width:1px;height:auto;transform:scaleY(0);transform-origin:top}.timeline.is-visible .timeline__line{transform:scaleY(1)}.event{text-align:left;padding-left:78px}.event:before{left:30px;top:36px}.event__icon{position:absolute;left:0;top:0;width:60px;text-align:center}.dresscode__text{padding-right:24px}.dresscode__image{height:390px}.rsvp__photo{inset:0;opacity:.35}.form-row{grid-template-columns:1fr}.hero__sub{letter-spacing:.22em}.wave--bottom{height:74px}.menu-toggle{right:18px;top:18px}}
@media (max-width:560px){:root{--container:calc(100vw - 30px)}body{font-size:15px}.hero{min-height:88vh}.hero__title{font-size:64px}.eyebrow{font-size:10px}.story,.venue,.details,.program,.faq,.rsvp{padding-left:18px;padding-right:18px}.story__text h2{font-size:43px}.polaroids{min-height:285px}.polaroid{padding:9px 9px 28px}.polaroid--top{right:0;width:78%}.polaroid--bottom{left:0;width:68%}.detail p{font-size:24px}.venue__image{height:300px}.palette{gap:10px;flex-wrap:wrap}.palette span{width:48px;height:48px}.faq-item button{font-size:21px}.rsvp{padding-top:95px}.rsvp .btn{width:100%}.heart{margin-left:50%}.btn{min-width:0;width:100%;letter-spacing:.18em}.menu a{font-size:40px}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}

[data-config-path="hero.title"],
[data-config-path="hero.subtitle"],
[data-config-path="story.title"],
[data-config-path="dresscode.title"]{white-space:pre-line}
.event strong{display:block;font:inherit;font-weight:400}
.faq-item__question{min-width:0;flex:1;font-family:var(--serif)!important;font-weight:400!important;line-height:1.22}
.faq-item__icon{flex:0 0 auto;font-family:var(--sans)!important;font-weight:300!important;transition:.3s}
.faq-item button span{transition:none}
.faq-item.is-open button span{transform:none}
.faq-item.is-open .faq-item__icon{transform:rotate(45deg)}

/* === Mobile image and hero text fixes ===
   The current hero photo already contains the title/date artwork. On phones we hide
   the duplicated HTML overlay and let the embedded composition breathe. */
@media (max-width: 760px) {
  .hero {
    min-height: 78vh;
    place-items: end center;
  }

  .hero__bg {
    inset: 0;
    background-size: cover;
    background-position: 48% 42%;
    transform: none !important;
  }

  .hero__overlay {
    background: linear-gradient(to bottom, rgba(22,25,22,.18), rgba(16,21,18,.28));
  }

  .hero__content {
    width: min(100% - 32px, 520px);
    padding: 0 0 56px;
    text-shadow: 0 14px 34px rgba(0,0,0,.38);
  }

  .hero__title {
    font-size: clamp(48px, 16vw, 76px);
    line-height: .9;
  }

  .hero__rule,
  .small-rule {
    width: min(180px, 52vw);
    margin: 18px auto;
  }

  .hero__date {
    font-size: clamp(22px, 7vw, 32px);
    margin-bottom: 16px;
  }

  .hero__sub {
    margin-top: 16px;
    letter-spacing: .22em;
  }

  .wave--bottom {
    height: 54px;
  }

  .menu-toggle {
    background: rgba(38,49,38,.34);
    border-color: rgba(255,255,255,.55);
  }

  .story,
  .venue,
  .dresscode,
  .details,
  .program,
  .faq,
  .rsvp {
    overflow: hidden;
  }

  .story {
    padding-top: 76px;
  }

  .polaroids {
    min-height: auto;
    display: grid;
    gap: 16px;
    margin-top: 26px;
  }

  .polaroid,
  .polaroid--top,
  .polaroid--bottom {
    position: relative;
    left: auto;
    right: auto;
    top: auto;
    bottom: auto;
    width: min(100%, 360px);
    margin-inline: auto;
    transform: none !important;
  }

  .polaroid {
    aspect-ratio: 4 / 3;
    padding: 10px 10px 30px;
  }

  .polaroid img {
    height: calc(100% - 18px);
    object-fit: cover;
    object-position: center;
  }

  .venue__image,
  .dresscode__image {
    clip-path: none;
    border-radius: 28px;
    height: auto;
    aspect-ratio: 4 / 3;
    transform: none !important;
  }

  .venue__image img,
  .dresscode__image img,
  .rsvp__photo img {
    object-fit: cover;
    object-position: center;
  }

  .dresscode {
    min-height: 0;
  }

  .dresscode__text {
    padding: 68px 18px 36px;
  }

  .dresscode__image {
    margin: 0 18px 68px;
  }

  .rsvp {
    display: flex;
    flex-direction: column;
    min-height: auto;
    padding-top: 84px;
  }

  .rsvp__photo {
    position: relative;
    inset: auto;
    order: -1;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    opacity: .72;
    margin-bottom: 30px;
    border-radius: 28px;
    overflow: hidden;
    transform: none !important;
  }

  .rsvp__photo:before {
    background: linear-gradient(to bottom, rgba(38,49,38,.05), rgba(38,49,38,.28));
  }

  .rsvp__form {
    max-width: none;
  }

  .form-row {
    gap: 12px;
  }

  footer {
    margin-top: 42px;
  }
}

@media (max-width: 430px) {
  .hero {
    min-height: 70vh;
  }

  .hero__bg {
    background-size: auto 100%;
    background-position: center top;
  }

  .story__text h2 {
    font-size: 38px;
  }

  .venue__image,
  .dresscode__image,
  .rsvp__photo {
    aspect-ratio: 1 / 1;
  }
}
/* Expanded editorial chapters, kept in the organic paper-and-forest register. */
.organic-invitation{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center;padding:clamp(88px,12vw,170px) var(--pad,6vw)}.organic-invitation figure{height:70vh;overflow:hidden}.organic-invitation img{width:100%;height:100%;object-fit:cover}.organic-invitation h2,.organic-gallery h2,.organic-wishes h2,.organic-contacts h2{font-size:clamp(48px,7vw,104px);line-height:.9;letter-spacing:-.03em}.organic-invitation div>p:last-child,.organic-gallery__head>p:last-child,.organic-contacts>div>p:last-child{max-width:50ch;margin-top:28px;line-height:1.75}.organic-gallery{padding:clamp(88px,12vw,170px) var(--pad,6vw)}.organic-gallery__head{display:grid;grid-template-columns:.5fr 1.2fr .7fr;gap:4vw;align-items:end}.organic-gallery__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:58px}.organic-gallery__grid figure{height:52vh;overflow:hidden}.organic-gallery__grid figure:nth-child(even){margin-top:8vh}.organic-gallery__grid img{width:100%;height:100%;object-fit:cover}.organic-wishes{padding:18vh var(--pad,6vw);text-align:center}.organic-wishes h2{max-width:980px;margin:24px auto}.organic-wishes>p:last-child{max-width:720px;margin:30px auto 0;line-height:1.8}.organic-contacts{display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw;padding:14vh var(--pad,6vw)}.organic-contacts__list{border-top:1px solid currentColor}.organic-contacts__list a{display:grid;grid-template-columns:110px 1fr auto;gap:20px;padding:24px 0;border-bottom:1px solid currentColor;color:inherit;text-decoration:none}.organic-contacts__list strong{font-size:28px;font-weight:400}
@media(max-width:760px){.organic-invitation,.organic-contacts,.organic-gallery__head{grid-template-columns:1fr}.organic-invitation figure{height:56vh}.organic-gallery__grid{grid-template-columns:1fr 1fr}.organic-gallery__grid figure{height:42vh}.organic-gallery__grid figure:nth-child(even){margin-top:4vh}.organic-contacts__list a{grid-template-columns:80px 1fr}.organic-contacts__list span{grid-column:2}}
html,body{overflow-x:clip}
.organic-footer{padding:28px var(--pad,6vw);background:#172016;color:#f4f0e7;text-align:center;font-size:12px;letter-spacing:.12em}

/* Final art-direction pass: a layered forest editorial with calm organic motion. */
.hero__bg{filter:saturate(.86) contrast(1.04);transform:scale(1.045)}
.organic-invitation figure,.organic-gallery__grid figure{isolation:isolate;background:#394439}
.organic-invitation img,.organic-gallery__grid img{transition:transform 1.5s cubic-bezier(.16,1,.3,1),filter .8s ease}
.organic-invitation figure:hover img,.organic-gallery__grid figure:hover img{transform:scale(1.055);filter:saturate(1.08)}
.organic-gallery__grid{grid-template-columns:repeat(12,1fr);align-items:start}
.organic-gallery__grid figure{grid-column:span 3;height:54vh}
.organic-gallery__grid figure:nth-child(2){grid-column:span 4;margin-top:9vh}
.organic-gallery__grid figure:nth-child(3){grid-column:span 5;height:64vh}
.organic-gallery__grid figure:nth-child(4){grid-column:2/span 4;margin-top:-3vh}
.organic-gallery__grid figure:nth-child(5){grid-column:7/span 5;height:58vh;margin-top:5vh}
.timeline{--timeline-progress:0}
.timeline__line{transform:scaleX(var(--timeline-progress));transform-origin:left;transition:transform .16s linear}
.event{transition:opacity .7s ease,transform .7s cubic-bezier(.16,1,.3,1),color .45s ease}
.event.is-current{color:#d6c19b;transform:translateY(-10px)}
.event__icon{transition:transform .5s cubic-bezier(.16,1,.3,1),background .45s ease}
.event.is-current .event__icon{transform:rotate(18deg) scale(1.18)}
.organic-invitation>*,.organic-gallery__head>*,.organic-wishes>*,.organic-contacts>*{opacity:0;transform:translateY(34px);transition:opacity .9s ease,transform 1s cubic-bezier(.16,1,.3,1)}
.is-in-view.organic-invitation>*,.is-in-view .organic-gallery__head>*,.is-in-view.organic-wishes>*,.is-in-view.organic-contacts>*{opacity:1;transform:none}
.is-in-view.organic-invitation>*:nth-child(2),.is-in-view.organic-contacts>*:nth-child(2){transition-delay:.16s}
@media(max-width:760px){.organic-gallery__grid{grid-template-columns:1fr 1fr}.organic-gallery__grid figure,.organic-gallery__grid figure:nth-child(n){grid-column:auto;height:42vh;margin:0}.organic-gallery__grid figure:last-child{grid-column:1/-1;height:52vh}.timeline__line{transform:scaleY(var(--timeline-progress));transform-origin:top}.event.is-current{transform:translateX(8px)}}
@media(prefers-reduced-motion:reduce){.organic-invitation>*,.organic-gallery__head>*,.organic-wishes>*,.organic-contacts>*{opacity:1;transform:none}.timeline__line{transform:none}.event.is-current{transform:none}}
@media(max-width:760px){.botanical{display:none!important}}

/* Living component layer — sticky story, spatial gallery and scroll-led typography. */
.organic-invitation h2,.organic-gallery h2,.organic-wishes h2,.organic-contacts h2{font-size:clamp(44px,6.5vw,96px);letter-spacing:-.03em;text-wrap:balance}
.organic-invitation figure img,.venue__image img,.dresscode__image img,.rsvp__photo img{transform:translate3d(0,var(--section-shift,0),0) scale(1.1)}
.story{min-height:min(112svh,980px)}
.story__text{align-self:start;position:sticky;top:16vh}
.polaroid{transition:transform .9s cubic-bezier(.16,1,.3,1),box-shadow .7s ease}
.polaroid--top{translate:0 var(--section-shift,0)}.polaroid--bottom{translate:0 var(--section-shift,0)}
.polaroids:hover .polaroid--top{transform:rotate(-7deg) translate(-8px,-10px)}.polaroids:hover .polaroid--bottom{transform:rotate(8deg) translate(10px,12px)}
.organic-wishes{min-height:72svh;display:grid;place-content:center;position:relative;overflow:hidden;isolation:isolate}
.organic-wishes::before{content:attr(data-echo);position:absolute;left:50%;top:50%;z-index:-1;white-space:nowrap;font-family:var(--serif);font-size:clamp(100px,16vw,235px);line-height:.75;color:rgba(247,242,232,.055);transform:translate3d(calc(-50% + (.5 - var(--section-progress,0))*14vw),-50%,0);pointer-events:none}
.organic-contacts__list a{position:relative;transition:padding .55s cubic-bezier(.16,1,.3,1),color .45s ease}
.organic-contacts__list a::after{content:"↗";position:absolute;right:0;top:50%;opacity:0;transform:translate(-12px,-30%);transition:.45s cubic-bezier(.16,1,.3,1)}
.organic-contacts__list a:hover{padding-inline:18px;color:var(--color-terracotta)}.organic-contacts__list a:hover::after{opacity:1;transform:translate(0,-50%)}
.faq-item{transition:background .45s ease,padding .55s cubic-bezier(.16,1,.3,1)}.faq-item:hover,.faq-item.is-open{background:rgba(77,91,63,.06);padding-inline:18px}
@media(min-width:761px){.organic-gallery__grid figure{transition:transform .8s cubic-bezier(.16,1,.3,1),opacity .55s ease,filter .55s ease}.organic-gallery__grid.has-focus figure:not(.is-focus){opacity:.82;filter:saturate(.9);transform:scale(.985)}.organic-gallery__grid figure.is-focus{z-index:2;transform:scale(1.055);box-shadow:0 12px 32px rgba(30,37,29,.22)}.organic-gallery__grid figure:nth-child(odd){translate:0 var(--section-shift,0)}.organic-gallery__grid figure:nth-child(even){translate:0 var(--section-shift,0)}}
@media(max-width:760px){.story{min-height:0}.story__text{position:relative;top:auto}.organic-invitation figure img,.venue__image img,.dresscode__image img,.rsvp__photo img{transform:none}.polaroid{translate:none}.organic-wishes{min-height:58svh}.organic-contacts__list a:hover,.faq-item:hover,.faq-item.is-open{padding-inline:0}}
@media(prefers-reduced-motion:reduce){.organic-wishes::before{transform:translate(-50%,-50%)}.organic-invitation figure img,.venue__image img,.dresscode__image img,.rsvp__photo img{transform:none}.polaroid,.organic-gallery__grid figure{translate:none}}

/* 2026 refinement: a denser forest narrative with readable, living chapters. */
.hero__bg{background-position:50% 28%;transform:scale(1.025)}
.hero__content{width:min(50vw,680px);justify-self:end;margin-right:5vw;text-align:left}
.hero__title{font-size:clamp(66px,7vw,100px);line-height:.9}
.hero__rule{margin-left:0}.hero .scroll-down{margin-left:0}.hero__sub{max-width:42ch}
.organic-invitation{padding-block:clamp(68px,8vw,110px)}
.reveal{opacity:1;transform:none}
.motion-enhanced .reveal:not(.is-visible){opacity:1;transform:translateY(10px);filter:blur(1.5px)}
.motion-enhanced .reveal.is-visible{filter:none}
.organic-invitation>*,.organic-gallery__head>*,.organic-wishes>*,.organic-contacts>*{opacity:1;transform:none}

.details{position:relative;min-height:0;padding:clamp(68px,7vw,96px) max(24px,calc((100vw - 1180px)/2));overflow:hidden}
.details>.eyebrow{position:absolute;left:max(24px,calc((100vw - 1180px)/2));top:clamp(68px,7vw,96px);font-family:var(--serif);font-size:clamp(42px,5vw,72px);line-height:.9;letter-spacing:-.02em;text-transform:none;color:var(--color-text)}
.details__grid{grid-template-columns:1.35fr .9fr .9fr;gap:0;margin-top:clamp(110px,12vw,160px);text-align:left;border-top:1px solid var(--color-text);border-bottom:1px solid var(--color-text)}
.detail{position:relative;min-height:230px;padding:34px 30px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}
.detail+ .detail{border-left:1px solid var(--color-line)}
.detail:first-child{background:var(--color-dark-green);color:#f7f2e8}
.detail svg{position:absolute;right:28px;top:26px;width:48px;height:48px;margin:0;stroke:currentColor}
.detail h3{color:currentColor;margin:0 0 22px}
.detail p{font-size:clamp(25px,2.5vw,38px);max-width:16ch}
.detail span{color:inherit;opacity:.7;margin-top:8px}

.program{position:relative;display:grid;grid-template-columns:minmax(260px,.68fr) minmax(520px,1.32fr);gap:7vw;min-height:0;padding:clamp(72px,7vw,104px) max(24px,calc((100vw - 1180px)/2));background:var(--color-dark-green)}
.program>.eyebrow{position:sticky;top:18vh;align-self:start;margin:0;text-align:left;font-family:var(--serif);font-size:clamp(52px,6vw,88px);line-height:.88;letter-spacing:-.025em;text-transform:none;color:#f7f2e8}
.program>.small-rule{display:none}
.program .timeline{display:block;margin:0;border-top:1px solid rgba(247,242,232,.42)}
.program .timeline__line{left:0;right:auto;top:0;bottom:0;width:2px;height:auto;transform:scaleY(var(--timeline-progress));transform-origin:top;transition:transform .26s cubic-bezier(.16,1,.3,1);background:#c69779}
.program .event{display:grid;grid-template-columns:68px 116px 1fr;align-items:center;min-height:96px;padding:16px 24px;border-bottom:1px solid rgba(247,242,232,.24);text-align:left;transform:none!important;isolation:isolate;overflow:hidden;color:rgba(247,242,232,.68)}
.program .event::after{content:"";position:absolute;inset:0;z-index:-1;background:#f2ecdf;transform:scaleX(0);transform-origin:right;transition:transform .58s cubic-bezier(.16,1,.3,1)}
.program .event::before{left:11px;top:50%;width:8px;height:8px;transform:translate(-50%,-50%);background:#c69779;box-shadow:0 0 0 5px var(--color-dark-green)}
.program .event.is-current{color:var(--color-text)}
.program .event.is-current::after{transform:scaleX(1)}
.program .event.is-current::before{background:var(--color-terracotta);box-shadow:0 0 0 6px rgba(168,106,82,.2)}
.program .event__icon{position:static;width:auto;margin:0;text-align:center;font-size:28px;color:currentColor;transform:none!important}
.program .event time{font-size:clamp(24px,2.4vw,34px)}
.program .event p{font-size:17px}.program .event span{display:block;color:inherit;opacity:.68}

.venue{position:relative;display:block;min-height:clamp(620px,82svh,820px);padding:0;background:#172016;overflow:hidden}
.venue__image{position:absolute;inset:0;width:72%;height:100%;clip-path:none;box-shadow:none}
.venue__image::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 55%,#172016)}
.venue__image img{width:100%;height:100%;object-fit:cover;object-position:center}
.venue__text{position:absolute;z-index:2;right:max(5vw,48px);top:50%;width:min(42vw,520px);max-width:none;padding:clamp(40px,5vw,68px);transform:translateY(-50%);background:#f3eee4;color:var(--color-text)}
.venue__text h2{font-size:clamp(48px,5.6vw,78px);line-height:.88;margin:14px 0 28px}
.venue__text p:not(.eyebrow){font-size:17px;color:#57584f}

.dresscode{position:relative;grid-template-columns:minmax(420px,.88fr) minmax(0,1.12fr);min-height:clamp(580px,76svh,760px);background:#d7d6c9}
.dresscode__text{position:relative;z-index:2;max-width:none;padding:clamp(62px,7vw,100px) clamp(42px,6vw,88px)}
.dresscode__text h2{font-family:var(--serif);font-size:clamp(42px,5vw,70px);line-height:.98;color:var(--color-text)}
.dresscode__image{height:100%;clip-path:polygon(13% 0,100% 0,100% 100%,0 100%)}
.dresscode__image img{width:100%;height:100%;object-fit:cover}
.dresscode .palette{gap:8px}.dresscode .palette span{width:clamp(46px,4vw,62px);height:clamp(72px,7vw,104px);border-radius:0;border:0;box-shadow:none;transition:transform .55s cubic-bezier(.16,1,.3,1)}
.dresscode .palette span:hover{transform:translateY(-10px)}

.organic-gallery{padding-block:clamp(76px,8vw,116px)}
.organic-gallery__head{grid-template-columns:.38fr 1.1fr .52fr;align-items:start}
.organic-gallery__head h2{font-size:clamp(52px,7vw,94px);max-width:9ch}
.organic-gallery__grid{margin-top:44px;gap:10px}
.organic-gallery__grid figure{position:relative}
.organic-gallery__grid figure::after{content:"0" counter(gallery);position:absolute;left:14px;bottom:12px;color:#fff;font-size:11px;letter-spacing:.15em;text-shadow:0 2px 8px rgba(0,0,0,.45)}
.organic-gallery__grid{counter-reset:gallery}.organic-gallery__grid figure{counter-increment:gallery}

.organic-wishes{min-height:clamp(520px,66svh,680px);padding-block:clamp(72px,8vw,110px)}
.organic-wishes::after{content:"“";position:absolute;left:7vw;top:4%;font-family:var(--serif);font-size:clamp(180px,22vw,330px);line-height:1;color:rgba(247,242,232,.13)}
.organic-wishes h2{font-size:clamp(52px,7vw,92px);max-width:12ch;position:relative}
.organic-wishes>p:last-child{font-size:clamp(17px,1.6vw,21px);color:rgba(247,242,232,.82);max-width:58ch}

.organic-contacts{position:relative;grid-template-columns:minmax(300px,.7fr) minmax(500px,1.3fr);gap:7vw;padding:clamp(72px,8vw,112px) var(--pad,6vw);background:#202d21;color:#f5f0e7}
.organic-contacts h2{font-size:clamp(48px,6vw,82px);max-width:8ch}
.organic-contacts>div>p:last-child{color:rgba(245,240,231,.74);font-size:17px}
.organic-contacts__list{border-top-color:rgba(245,240,231,.46)}
.organic-contacts__list a{grid-template-columns:104px 1fr auto 24px;min-height:104px;align-items:center;border-bottom-color:rgba(245,240,231,.3)}
.organic-contacts__list a::after{position:static;opacity:1;transform:none;color:#c69779}
.organic-contacts__list a:hover{color:#fff;background:#a86a52;padding-inline:18px}

.rsvp{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);min-height:clamp(680px,86svh,820px);padding:0;background:var(--color-dark-green)}
.rsvp::before{display:none}
.rsvp__form{grid-column:1;align-self:center;width:100%;max-width:none;padding:clamp(64px,7vw,100px) clamp(36px,7vw,100px)}
.rsvp__photo{position:relative;grid-column:2;grid-row:1;inset:auto;width:100%;height:100%;min-height:clamp(680px,86svh,820px);opacity:1;overflow:hidden}
.rsvp__photo::before{background:linear-gradient(90deg,var(--color-dark-green),transparent 28%)}
.rsvp__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.rsvp .form-row{grid-template-columns:minmax(0,1fr) 170px;gap:18px}
.rsvp .form-row>label:nth-child(3){grid-column:1/-1}
.rsvp input{min-width:0}.rsvp .counter{min-width:0}
.rsvp .btn{min-width:240px}.rsvp footer{margin-top:44px}

@media(max-width:900px){
  .hero__bg{background-position:50% 30%}.hero__content{width:min(100% - 32px,520px);justify-self:center;margin-right:0;text-align:center}.hero__rule{margin-inline:auto}.hero .scroll-down{margin-left:auto}.hero__sub{max-width:none}
  .details>.eyebrow{position:static;font-size:48px}.details__grid{grid-template-columns:1fr;margin-top:36px}.detail+.detail{border-left:0;border-top:1px solid var(--color-line)}
  .program{display:block}.program>.eyebrow{position:static;font-size:54px;margin-bottom:34px}.program .event{grid-template-columns:46px 86px 1fr;padding-inline:16px}
  .venue{min-height:0;padding:0 18px 64px}.venue__image{position:relative;width:100%;height:56vh}.venue__image::after{background:linear-gradient(0deg,#172016,transparent 40%)}.venue__text{position:relative;right:auto;top:auto;width:calc(100% - 24px);margin:-72px auto 0;padding:38px 28px;transform:none}
  .dresscode{grid-template-columns:1fr;min-height:0}.dresscode__image{height:52vh;clip-path:none}.dresscode__text{padding:64px 28px 42px}
  .organic-gallery__head,.organic-contacts{grid-template-columns:1fr}.organic-contacts__list a{grid-template-columns:78px 1fr 20px}.organic-contacts__list a span{grid-column:2}.organic-contacts__list a::after{grid-column:3;grid-row:1/span 2}
  .rsvp{display:flex;flex-direction:column;padding:0}.rsvp__photo{order:-1;height:52vh;min-height:0;aspect-ratio:auto;margin:0;border-radius:0}.rsvp__photo::before{background:linear-gradient(0deg,var(--color-dark-green),transparent 32%)}.rsvp__form{padding:52px 22px 68px}.rsvp .form-row{grid-template-columns:1fr}.rsvp .form-row>label:nth-child(3){grid-column:auto}
}
@media(max-width:560px){.program .event{grid-template-columns:38px 70px 1fr;min-height:88px}.program .event p{font-size:15px}.organic-gallery__head h2{font-size:48px}.organic-contacts{padding-inline:18px}.organic-contacts h2{font-size:48px}.rsvp h2{font-size:54px}}
@media(prefers-reduced-motion:reduce){.motion-enhanced .reveal:not(.is-visible){transform:none;filter:none}.program .event::after{transition:none}.organic-wishes::before{transform:translate(-50%,-50%)}}

/* Organic ceremony chapters: quiet itinerary, notes slider and contact grove. */
.program.dark {
  position: relative;
  display: grid;
  grid-template-columns: minmax(280px, .72fr) minmax(570px, 1.28fr);
  gap: clamp(64px, 8vw, 124px);
  min-height: 0;
  padding: clamp(86px, 9vw, 126px) max(24px, calc((100vw - 1180px) / 2));
  overflow: clip;
  background: var(--color-bg-light);
  color: var(--color-text);
}
.program.wave-section::before,
.program.wave-section::after { display: none; }
.program::before {
  content: "";
  position: absolute;
  width: clamp(300px, 35vw, 560px);
  aspect-ratio: 1;
  left: clamp(-340px, -18vw, -150px);
  bottom: -42%;
  border-radius: 50%;
  background: rgba(77, 91, 63, .07);
  pointer-events: none;
}
.program__intro {
  position: sticky;
  top: 16vh;
  align-self: start;
}
.program .program__intro .eyebrow {
  margin: 0 0 20px;
  color: var(--color-terracotta);
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: .24em;
  text-transform: uppercase;
}
.program__intro h2 {
  max-width: 8ch;
  color: #273126;
  font-size: clamp(52px, 6vw, 82px);
  line-height: .91;
  letter-spacing: -.03em;
  text-wrap: balance;
}
.program__intro > p:last-child {
  max-width: 34ch;
  margin: 30px 0 0;
  color: var(--color-muted);
  font-size: 15px;
  line-height: 1.7;
  text-wrap: pretty;
}
.program .timeline {
  display: block;
  margin: 0;
  max-width: none;
  border: 0;
  counter-reset: organic-event;
}
.program .timeline__line { display: none; }
.program .event {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: 64px 106px minmax(0, 1fr) 30px;
  gap: clamp(16px, 2vw, 26px);
  min-height: 104px;
  padding: 12px 14px;
  align-items: center;
  overflow: hidden;
  border: 0;
  border-bottom: 1px solid rgba(47, 47, 41, .11);
  color: #34352f;
  text-align: left;
  transform: none !important;
  counter-increment: organic-event;
  transition: color .55s ease;
}
.program .event:first-of-type { border-top: 1px solid rgba(47, 47, 41, .11); }
.program .event::before {
  content: counter(organic-event, decimal-leading-zero);
  position: static;
  grid-column: 4;
  justify-self: end;
  width: auto;
  height: auto;
  border-radius: 0;
  background: none;
  box-shadow: none;
  color: rgba(47, 47, 41, .3);
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .15em;
  transform: none;
  transition: color .45s ease;
}
.program .event::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 7px 0;
  background: rgba(77, 91, 63, .085);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .82s cubic-bezier(.16, 1, .3, 1);
}
.program .event.is-current { color: #263126; }
.program .event.is-current::after { transform: scaleX(1); transform-origin: left; }
.program .event.is-current::before { color: var(--color-terracotta); background: none; box-shadow: none; transform: none; }
.program .event__icon {
  position: static;
  grid-column: 1;
  display: grid;
  place-items: center;
  justify-self: center;
  width: 48px;
  height: 48px;
  margin: 0;
  border: 1px solid rgba(77, 91, 63, .2);
  border-radius: 50%;
  color: var(--color-green);
  font-size: 0;
  text-align: center;
  transform: none !important;
  transition: background .6s ease, border-color .6s ease, color .6s ease, transform .72s cubic-bezier(.16, 1, .3, 1) !important;
}
.program .event__icon svg {
  width: 25px;
  height: 25px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.program .event.is-current .event__icon {
  border-color: rgba(168, 106, 82, .5);
  background: rgba(168, 106, 82, .1);
  color: var(--color-terracotta);
  transform: scale(1.035) !important;
}
.program .event time {
  grid-column: 2;
  align-self: center;
  font-size: clamp(25px, 2.35vw, 34px);
  font-weight: 400;
  line-height: 1;
}
.program .event p {
  grid-column: 3;
  align-self: center;
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.35;
}
.program .event strong { font-family: var(--sans); font-weight: 500; }
.program .event span { margin-top: 3px; color: var(--color-muted); font-size: 13px; opacity: 1; }
.program .event.is-current time { color: var(--color-terracotta); }

.organic-wishes.organic-wishes--slider {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(320px, .78fr) minmax(560px, 1.22fr);
  gap: clamp(56px, 8vw, 126px);
  min-height: clamp(620px, 78svh, 790px);
  padding: clamp(88px, 9vw, 132px) var(--pad, 6vw);
  place-content: center;
  overflow: hidden;
  background: #263126;
  color: var(--color-bg-light);
  text-align: left;
}
.organic-wishes.organic-wishes--slider::before {
  content: "❧";
  left: auto;
  right: -2vw;
  top: -8vw;
  color: rgba(247, 242, 232, .055);
  font-family: var(--serif);
  font-size: clamp(300px, 42vw, 660px);
  line-height: 1;
  transform: rotate(18deg);
}
.organic-wishes.organic-wishes--slider::after { display: none; }
.organic-wishes__intro { align-self: center; }
.organic-wishes__intro .eyebrow { color: #c69779; }
.organic-wishes.organic-wishes--slider .organic-wishes__intro h2 {
  max-width: 10ch;
  margin: 20px 0 30px;
  color: var(--color-bg-light);
  font-size: clamp(50px, 6.2vw, 88px);
  line-height: .9;
  letter-spacing: -.03em;
  text-align: left;
  text-wrap: balance;
}
.organic-wishes__intro > p:last-child {
  max-width: 38ch;
  margin: 0;
  color: rgba(247, 242, 232, .73);
  font-size: 16px;
  line-height: 1.7;
  text-align: left;
}
.organic-wishes__stage {
  min-width: 0;
  padding: clamp(34px, 4vw, 56px);
  align-self: center;
  background: var(--color-paper);
  color: var(--color-text);
  outline-offset: 6px;
}
.organic-wishes__viewport { overflow: hidden; }
.organic-wishes__track {
  display: flex;
  counter-reset: organic-wish;
  transition: transform .86s cubic-bezier(.16, 1, .3, 1);
  will-change: transform;
}
.organic-wish {
  flex: 0 0 100%;
  display: grid;
  grid-template-columns: 68px 1fr;
  gap: clamp(20px, 3vw, 38px);
  min-height: 286px;
  align-content: center;
  counter-increment: organic-wish;
  opacity: .28;
  filter: blur(4px);
  transform: translateX(20px);
  transition: opacity .6s ease, filter .7s ease, transform .82s cubic-bezier(.16, 1, .3, 1);
}
.organic-wish.is-active { opacity: 1; filter: none; transform: none; }
.organic-wish__index::before { content: "0" counter(organic-wish); }
.organic-wish__index { color: var(--color-terracotta); font: 600 11px/1 var(--sans); letter-spacing: .14em; }
.organic-wish h3 {
  max-width: 12ch;
  margin: 0 0 22px;
  color: #263126;
  font-family: var(--serif);
  font-size: clamp(38px, 4.4vw, 62px);
  font-weight: 500;
  line-height: .95;
  letter-spacing: -.025em;
  text-wrap: balance;
}
.organic-wish p { max-width: 50ch; margin: 0; color: var(--color-muted); font-size: 15px; line-height: 1.75; text-wrap: pretty; }
.organic-wishes__controls { display: flex; justify-content: space-between; align-items: center; gap: 22px; margin-top: 30px; }
.organic-wishes__controls p { display: flex; align-items: center; gap: 12px; margin: 0; color: var(--color-muted); font-size: 11px; font-weight: 600; letter-spacing: .12em; }
.organic-wishes__controls p span:first-child { color: var(--color-green); }
.organic-wishes__controls p i { width: clamp(48px, 7vw, 92px); height: 1px; background: var(--color-line); }
.organic-wishes__controls > div { display: flex; gap: 8px; }
.organic-wishes__controls button { display: grid; place-items: center; width: 50px; height: 50px; border: 1px solid rgba(77, 91, 63, .28); background: transparent; color: var(--color-green); cursor: pointer; transition: background .35s ease, color .35s ease, border-color .35s ease; }
.organic-wishes__controls button:hover,.organic-wishes__controls button:focus-visible { border-color: var(--color-green); background: var(--color-green); color: var(--color-paper); }

.organic-contacts.paper {
  position: relative;
  display: grid;
  grid-template-columns: minmax(330px, .7fr) minmax(580px, 1.3fr);
  gap: clamp(56px, 8vw, 126px);
  min-height: clamp(620px, 78svh, 790px);
  padding: clamp(88px, 9vw, 132px) var(--pad, 6vw);
  align-items: center;
  overflow: clip;
  background: var(--color-paper);
  color: var(--color-text);
}
.organic-contacts.paper::before {
  content: "";
  position: absolute;
  width: clamp(300px, 34vw, 540px);
  aspect-ratio: 1;
  left: clamp(-330px, -18vw, -140px);
  bottom: -36%;
  border-radius: 50%;
  background: rgba(77, 91, 63, .1);
  pointer-events: none;
}
.organic-contacts > div.organic-contacts__intro {
  position: relative;
  display: block;
  padding: clamp(48px, 5.4vw, 74px);
  background: #263126;
  color: var(--color-bg-light);
}
.organic-contacts__intro .eyebrow { color: #c69779; }
.organic-contacts .organic-contacts__intro h2 {
  max-width: 8ch;
  margin: 20px 0 28px;
  color: var(--color-bg-light);
  font-size: clamp(48px, 5.8vw, 82px);
  line-height: .9;
  letter-spacing: -.03em;
  text-wrap: balance;
}
.organic-contacts > .organic-contacts__intro > p:last-of-type { max-width: 36ch; margin: 0; color: rgba(247, 242, 232, .72); font-size: 15px; line-height: 1.7; }
.organic-contacts__intro > small { display: block; margin-top: 38px; color: #c69779; font-size: 10px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.organic-contacts .organic-contacts__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin: 0; border: 0; }
.organic-contacts .organic-contacts__list a {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px 18px;
  min-height: 206px;
  padding: clamp(26px, 3vw, 40px);
  align-content: end;
  overflow: hidden;
  border: 0;
  background: rgba(77, 91, 63, .1);
  color: var(--color-text);
  transform: none;
  transition: color .45s ease;
}
.organic-contacts .organic-contacts__list a:nth-of-type(3n) { grid-column: 1 / -1; min-height: 174px; background: var(--color-terracotta); color: #fff; }
.organic-contacts .organic-contacts__list a::before { content: ""; position: absolute; z-index: -1; inset: 0; background: var(--color-green); transform: scaleY(0); transform-origin: bottom; transition: transform .65s cubic-bezier(.16, 1, .3, 1); }
.organic-contacts .organic-contacts__list a:nth-of-type(3n)::before { background: #263126; }
.organic-contacts .organic-contacts__list a:hover,.organic-contacts .organic-contacts__list a:focus-visible { padding: clamp(26px, 3vw, 40px); color: #fff; background: inherit; }
.organic-contacts .organic-contacts__list a:hover::before,.organic-contacts .organic-contacts__list a:focus-visible::before { transform: scaleY(1); }
.organic-contacts .organic-contacts__list a::after { display: none; }
.organic-contacts .organic-contacts__list small { grid-column: 1 / -1; grid-row: 1; color: currentColor; opacity: .62; font-size: 10px; font-weight: 600; letter-spacing: .14em; }
.organic-contacts .organic-contacts__list strong { grid-column: 1; grid-row: 2; font-family: var(--serif); font-size: clamp(34px, 3.4vw, 50px); font-weight: 500; line-height: .95; letter-spacing: -.02em; }
.organic-contacts .organic-contacts__list span { grid-column: 1; grid-row: 3; color: currentColor; opacity: .72; font-size: 13px; font-variant-numeric: tabular-nums; }
.organic-contacts .organic-contacts__list i { grid-column: 2; grid-row: 2 / span 2; align-self: end; font-size: 20px; font-style: normal; transition: transform .45s cubic-bezier(.16, 1, .3, 1); }
.organic-contacts .organic-contacts__list a:hover i,.organic-contacts .organic-contacts__list a:focus-visible i { transform: translate(4px, -4px); }

@media (max-width: 940px) {
  .program.dark,.organic-wishes.organic-wishes--slider,.organic-contacts.paper { grid-template-columns: 1fr; }
  .program__intro { position: static; max-width: 650px; }
  .program__intro h2 { max-width: 11ch; }
  .organic-wishes.organic-wishes--slider,.organic-contacts.paper { min-height: 0; }
  .organic-wishes__intro,.organic-contacts__intro { max-width: 680px; }
}
@media (max-width: 760px) {
  .organic-invitation > div { order: -1; }
}
@media (max-width: 600px) {
  .program.dark { padding: 74px 18px 82px; gap: 44px; }
  .program__intro h2 { font-size: clamp(48px, 15vw, 66px); }
  .program .event { grid-template-columns: 52px 72px minmax(0, 1fr); gap: 10px; min-height: 98px; padding: 10px 8px; }
  .program .event::before { display: none; }
  .program .event__icon { width: 43px; height: 43px; }
  .program .event__icon svg { width: 23px; height: 23px; }
  .program .event time { font-size: 23px; }
  .program .event p { font-size: 14px; }
  .organic-wishes.organic-wishes--slider,.organic-contacts.paper { padding: 76px 18px 84px; gap: 46px; }
  .organic-wishes.organic-wishes--slider .organic-wishes__intro h2,.organic-contacts .organic-contacts__intro h2 { font-size: clamp(48px, 15vw, 66px); }
  .organic-wishes__stage { padding: 30px 24px 24px; }
  .organic-wish { grid-template-columns: 1fr; gap: 18px; min-height: 330px; }
  .organic-wish h3 { font-size: clamp(38px, 11vw, 48px); }
  .organic-wishes__controls { margin-top: 20px; }
  .organic-contacts .organic-contacts__list { grid-template-columns: 1fr; }
  .organic-contacts .organic-contacts__list a,.organic-contacts .organic-contacts__list a:nth-of-type(3n) { grid-column: auto; min-height: 164px; }
}
@media (prefers-reduced-motion: reduce) {
  .program .event::after,.program .event__icon,.organic-wishes__track,.organic-wish,.organic-contacts .organic-contacts__list a::before,.organic-contacts .organic-contacts__list i { transition: none !important; }
  .program .event.is-current .event__icon,.organic-wish { transform: none !important; filter: none; }
}

/* Reference direction: a warm paper invitation with ink, foliage and handwritten rhythm. */
:root {
  --organic-ink: #283226;
  --organic-paper: #f3eee4;
  --organic-sage: #65715b;
  --organic-clay: #b47459;
}
body { background: var(--organic-paper); }
.paper,.program.dark,.organic-contacts.paper { background-color: var(--organic-paper); }
.paper::after,.dark::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .16;
  background-image: radial-gradient(circle at 18% 22%, rgba(39,50,38,.24) 0 .55px, transparent .7px),radial-gradient(circle at 71% 63%, rgba(129,104,80,.2) 0 .45px, transparent .65px);
  background-size: 17px 19px,23px 29px;
  mix-blend-mode: multiply;
}
.paper > *,.dark > * { z-index: 1; }

.hero {
  min-height: min(920px, 100svh);
  place-items: stretch;
  background: var(--organic-paper);
  color: var(--organic-ink);
  text-align: left;
}
.hero__bg {
  inset: 0 0 0 48%;
  background-position: 50% 30%;
  filter: grayscale(1) sepia(.12) contrast(1.04);
  transform: none;
}
.hero__overlay {
  inset: 0 0 0 48%;
  background: linear-gradient(90deg,rgba(40,50,38,.1),rgba(19,25,19,.16));
}
.hero__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: min(43vw, 650px);
  justify-self: start;
  margin: 0 0 0 max(38px, calc((100vw - 1240px) / 2));
  padding: 84px clamp(38px, 5vw, 76px) 70px 0;
  color: var(--organic-ink);
  text-align: left;
}
.hero .branch { color: var(--organic-clay); font-family: var(--script); font-size: 40px; transform: rotate(-8deg); }
.hero .eyebrow { color: var(--organic-clay); }
.hero__title { color: var(--organic-ink); font-size: clamp(72px, 8.2vw, 124px); line-height: .78; letter-spacing: -.04em; text-shadow: none; }
.hero__title::first-line { font-family: var(--script); font-size: .72em; font-weight: 400; }
.hero__rule { width: 132px; margin: 30px 0 20px; background: rgba(40,50,38,.28); }
.hero__date { color: var(--organic-ink); font-family: var(--script); font-size: clamp(32px, 3.5vw, 48px); transform: rotate(-3deg); transform-origin: left; }
.hero__sub { max-width: 32ch; color: rgba(40,50,38,.66); letter-spacing: .2em; }
.hero .scroll-down { margin: 6px 0 0; border-color: rgba(40,50,38,.3); color: var(--organic-ink); }
.hero .wave { display: none; }

.organic-invitation {
  grid-template-columns: minmax(0,1.06fr) minmax(360px,.94fr);
  gap: 0;
  padding: clamp(74px,8vw,118px) var(--pad,6vw);
}
.organic-invitation figure { height: clamp(520px,68svh,720px); border-radius: 2px; }
.organic-invitation figure img { filter: grayscale(1) sepia(.08) contrast(1.04); }
.organic-invitation > div {
  margin-left: clamp(-56px,-4vw,-24px);
  padding: clamp(48px,6vw,88px);
  background: var(--organic-ink);
  color: var(--organic-paper);
}
.organic-invitation h2 { max-width: 11ch; color: var(--organic-paper); font-size: clamp(42px,4.8vw,68px); line-height: .95; }
.organic-invitation div > p:last-child { color: rgba(243,238,228,.72); }
.organic-invitation .eyebrow { color: #d5a083; }
.organic-invitation > div::after {
  content: "ждём вас";
  display: block;
  margin-top: 32px;
  color: #d5a083;
  font-family: var(--script);
  font-size: 34px;
  transform: rotate(-4deg);
}

.story .polaroid img,.organic-gallery__grid img { filter: grayscale(1) sepia(.08) contrast(1.04); }
.story::after,.details::after,.program::after,.organic-contacts::after { border-radius: inherit; }
.story__text h2::after {
  content: "наша история";
  display: block;
  margin-top: 20px;
  color: var(--organic-clay);
  font-family: var(--script);
  font-size: .55em;
  font-weight: 400;
  line-height: 1;
  transform: rotate(-3deg);
}

.program.dark { overflow: hidden; }
.program .timeline { position: relative; }
.program__thread {
  position: absolute;
  z-index: 0;
  top: clamp(86px, 9vw, 126px);
  bottom: clamp(86px, 9vw, 126px);
  left: calc(50% - 50px);
  width: 92px;
  height: 100%;
  overflow: visible;
  opacity: .3;
  pointer-events: none;
}
.program__thread path {
  fill: none;
  stroke: var(--organic-sage);
  stroke-width: 1.15;
  stroke-dasharray: 1;
  stroke-dashoffset: calc(1 - var(--timeline-progress, 0));
  vector-effect: non-scaling-stroke;
  transition: stroke-dashoffset .35s cubic-bezier(.16,1,.3,1);
}
.program .event { z-index: 1; grid-template-columns: 64px 106px minmax(0,1fr) 30px; background: rgba(243,238,228,.9); }
.program .event__icon { background: var(--organic-paper); }
.program .event.is-current::after { background: rgba(101,113,91,.12); }
.program .event.is-current .event__icon { background: var(--organic-paper); }

.venue,.organic-wishes.organic-wishes--slider,.rsvp {
  background-color: var(--organic-ink);
  background-image: radial-gradient(circle at 15% 30%,rgba(255,255,255,.035) 0 1px,transparent 1.4px),linear-gradient(114deg,transparent 47%,rgba(255,255,255,.025) 48%,transparent 49%);
  background-size: 21px 23px,74px 92px;
}
.venue__image img,.dresscode__image img,.rsvp__photo img { filter: grayscale(1) sepia(.11) contrast(1.04); }
.venue__text { box-shadow: 0 24px 70px rgba(15,23,15,.16); }
.dresscode { background: #d7d9cc; }
.dresscode__text h2 { font-family: var(--script); font-size: clamp(40px,4.6vw,64px); line-height: 1.08; transform: rotate(-1deg); }
.dresscode .palette span { border-radius: 50% 50% 46% 54%; }
.organic-gallery__grid figure { border-radius: 18px 18px 3px 3px; }
.organic-gallery__grid figure:nth-child(2n) { border-radius: 3px 18px 18px 3px; }
.organic-wish h3 { font-family: var(--script); font-size: clamp(46px,5vw,70px); font-weight: 400; line-height: 1; }
.organic-footer { background: var(--organic-ink); }

@media (max-width: 900px) {
  .hero { min-height: 900px; }
  .hero__content { width: 100%; justify-self: start; margin: 0; padding: 74px 24px 500px; justify-content: flex-start; text-align: left; }
  .hero__bg { inset: 410px 18px 28px; background-position: 50% 28%; }
  .hero__overlay { inset: 410px 18px 28px; background: linear-gradient(0deg,rgba(28,37,28,.2),transparent 55%); }
  .hero__title { max-width: 8ch; font-size: clamp(66px,17vw,92px); }
  .hero__sub { display: none; }
  .hero .scroll-down { position: absolute; left: 24px; bottom: 48px; z-index: 2; border-color: rgba(255,255,255,.64); color: #fff; }
  .organic-invitation { grid-template-columns: 1fr; gap: 0; padding: 72px 18px 84px; }
  .organic-invitation > div { order: -1; margin: 0; padding: 48px 30px; }
  .organic-invitation figure { height: 58svh; }
  .program.dark { display: block; }
  .program__intro { top: auto; }
  .program .timeline { margin-top: 52px; }
  .program__thread { top: auto; bottom: 84px; left: 18px; width: 62px; height: 624px; opacity: .22; }
}
@media (max-width: 600px) {
  .hero { min-height: 840px; }
  .hero__content { padding-top: 64px; }
  .hero__bg,.hero__overlay { top: 382px; }
  .hero__date { font-size: 34px; }
  .program__intro h2 { max-width: 7.4ch; font-size: clamp(48px, 14vw, 62px); }
  .program .event { background: rgba(243,238,228,.93); }
  .organic-wishes__stage { border-radius: 18px 18px 3px 3px; }
}
@media (prefers-reduced-motion: reduce) {
  .program__thread path { stroke-dashoffset: 0; transition: none; }
}

/* Structural correction after full-page audit. */
.details.paper--soft {
  min-height: 0;
  padding: clamp(72px, 7vw, 104px) var(--pad, 6vw);
  text-align: center;
}
.details > .eyebrow {
  position: static;
  color: var(--organic-ink);
  font-family: var(--script);
  font-size: clamp(52px, 5vw, 72px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  text-transform: none;
}
.details .details__grid {
  width: min(100%, 1080px);
  margin: 48px auto 0;
  gap: 0;
  border-block: 1px solid rgba(40,50,38,.24);
}
.details .detail {
  position: relative;
  display: flex;
  min-height: 188px;
  padding: 32px clamp(24px,3vw,48px);
  flex-direction: column;
  justify-content: center;
  text-align: left;
}
.details .detail + .detail { border-left: 1px solid rgba(40,50,38,.18); }
.details .detail svg { display: none; }
.details .detail h3 { margin: 0 0 16px; color: var(--organic-clay); font-size: 10px; }
.details .detail p { margin: 0 0 8px; color: var(--organic-ink); font-size: clamp(28px,2.4vw,38px); }
.details .detail span { font-size: 13px; }
.details .detail:nth-child(2) { background: rgba(101,113,91,.09); text-align: center; }

.program.dark {
  grid-template-columns: minmax(260px,.58fr) minmax(640px,1.42fr);
  gap: clamp(64px,7vw,108px);
  padding-block: clamp(70px,7vw,96px);
}
.program__intro { top: 13vh; }
.program__intro h2 { font-size: clamp(54px,5.3vw,76px); }
.program .timeline {
  display: flex;
  min-height: 620px;
  flex-direction: column;
  justify-content: space-between;
  overflow: visible;
}
.program .event,
.program .event:first-of-type {
  display: flex;
  width: 46%;
  min-height: 82px;
  padding: 8px 22px;
  flex-direction: column;
  justify-content: center;
  align-items: flex-end;
  align-self: flex-start;
  border: 0;
  background: transparent;
  text-align: right;
  opacity: .48;
  transition: opacity .55s ease,color .55s ease,transform .7s cubic-bezier(.16,1,.3,1) !important;
}
.program .event:nth-child(even) { align-items: flex-start; align-self: flex-end; text-align: left; }
.program .event::before,.program .event::after,.program .event__icon { display: none; }
.program .event time {
  color: var(--organic-ink);
  font-family: var(--script);
  font-size: clamp(30px,2.7vw,40px);
  line-height: 1;
}
.program .event p { max-width: 22ch; margin-top: 5px; font-size: 14px; font-weight: 400; }
.program .event strong { font-family: var(--serif); font-size: 21px; }
.program .event.is-current { opacity: 1; transform: translateY(-2px) !important; }
.program .event.is-current time { color: var(--organic-clay); }
.program__thread {
  top: clamp(70px,7vw,96px);
  bottom: clamp(70px,7vw,96px);
  left: 68%;
  width: 190px;
  opacity: .48;
  transform: translateX(-50%);
}
.program__thread path { stroke: var(--organic-sage); stroke-width: 1.35; }

.venue.paper {
  display: block;
  min-height: 0;
  height: min(780px, 82svh);
  padding: 0;
}
.venue > .venue__image {
  position: absolute;
  z-index: 0;
  inset: 0 auto 0 0;
  width: 66%;
  height: 100%;
  clip-path: none;
}
.venue__image::after { background: linear-gradient(90deg,transparent 58%,var(--organic-ink) 100%); }
.venue > .venue__text {
  position: absolute;
  z-index: 2;
  top: 50%;
  right: max(6vw,72px);
  width: min(42vw,520px);
  padding: clamp(44px,4.4vw,64px);
  transform: translateY(-50%);
}
.venue__text h2 { font-size: clamp(44px,4.5vw,66px); }

.dresscode {
  height: min(760px,80svh);
  min-height: 620px;
  grid-template-columns: .92fr 1.08fr;
}
.dresscode__text { padding-block: clamp(54px,6vw,84px); }
.dresscode__text h2 { max-width: 14ch; font-family: var(--serif); font-size: clamp(40px,4vw,58px); line-height: 1.04; transform: none; }
.dresscode__image { min-height: 0; height: 100%; }
.dresscode .palette { margin-block: 28px 8px; }
.dresscode .palette span { width: 54px; height: 72px; }

.organic-gallery.paper {
  padding: clamp(72px,7vw,104px) var(--pad,6vw) clamp(84px,8vw,120px);
}
.organic-gallery__head { grid-template-columns: .32fr .88fr .52fr; }
.organic-gallery__head h2 { font-size: clamp(52px,5.7vw,78px); }
.organic-gallery .organic-gallery__grid {
  display: grid;
  height: min(720px,72vw);
  margin-top: 48px;
  grid-template-columns: repeat(12,1fr);
  grid-template-rows: repeat(2,minmax(0,1fr));
  gap: 10px;
}
.organic-gallery .organic-gallery__grid figure,
.organic-gallery .organic-gallery__grid figure:nth-child(n) { height: auto; margin: 0; }
.organic-gallery .organic-gallery__grid figure:nth-child(1) { grid-column: 1 / 6; grid-row: 1 / 3; }
.organic-gallery .organic-gallery__grid figure:nth-child(2) { grid-column: 6 / 10; grid-row: 1; }
.organic-gallery .organic-gallery__grid figure:nth-child(3) { grid-column: 10 / 13; grid-row: 1; }
.organic-gallery .organic-gallery__grid figure:nth-child(4) { grid-column: 6 / 9; grid-row: 2; }
.organic-gallery .organic-gallery__grid figure:nth-child(5) { grid-column: 9 / 13; grid-row: 2; }

.organic-wishes.organic-wishes--slider {
  grid-template-columns: minmax(520px,.88fr) minmax(620px,1.12fr);
  gap: clamp(56px,6vw,96px);
}
.organic-wishes.organic-wishes--slider .organic-wishes__intro h2 {
  max-width: 100%;
  font-size: clamp(46px,4vw,62px);
  line-height: .94;
  overflow-wrap: normal;
}

@media (max-width: 940px) {
  .details .details__grid { grid-template-columns: 1fr; }
  .details .detail,.details .detail:nth-child(2) { min-height: 150px; text-align: left; }
  .details .detail + .detail { border-left: 0; border-top: 1px solid rgba(40,50,38,.18); }
  .program.dark { display: block; }
  .program__intro { top: auto; }
  .program .timeline { margin-top: 48px; }
  .program__thread { top: auto; bottom: 82px; left: 50%; width: 132px; height: 620px; }
  .venue.paper { height: auto; padding: 0 18px 72px; }
  .venue > .venue__image { position: relative; inset: auto; width: 100%; height: min(58svh,520px); }
  .venue > .venue__text { position: relative; top: auto; right: auto; width: calc(100% - 28px); margin: -58px auto 0; transform: none; }
  .dresscode { height: auto; min-height: 0; grid-template-columns: 1fr; }
  .dresscode__image { height: min(58svh,520px); }
  .organic-gallery__head { grid-template-columns: 1fr; gap: 18px; }
  .organic-wishes.organic-wishes--slider { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .details.paper--soft { padding-inline: 18px; }
  .details > .eyebrow { font-size: 54px; }
  .program.dark { padding-block: 72px 82px; }
  .program__intro h2 { max-width: 8ch; }
  .program .timeline { min-height: 650px; }
  .program .event,.program .event:first-of-type { width: 47%; min-height: 94px; padding-inline: 4px 14px; }
  .program .event:nth-child(even) { padding-inline: 14px 4px; }
  .program .event strong { font-size: 18px; }
  .program .event p { font-size: 12px; }
  .program__thread { bottom: 84px; height: 650px; }
  .venue > .venue__text { padding: 34px 26px; }
  .venue__text h2 { font-size: 46px; }
  .dresscode__text { padding: 68px 22px 40px; }
  .dresscode__text h2 { font-size: 42px; }
  .dresscode__image { height: 54svh; margin: 0; border-radius: 0; }
  .organic-gallery .organic-gallery__grid {
    height: auto;
    grid-template-columns: repeat(2,1fr);
    grid-template-rows: 320px 220px 280px;
  }
  .organic-gallery .organic-gallery__grid figure:nth-child(1) { grid-column: 1 / -1; grid-row: 1; }
  .organic-gallery .organic-gallery__grid figure:nth-child(2) { grid-column: 1; grid-row: 2; }
  .organic-gallery .organic-gallery__grid figure:nth-child(3) { grid-column: 2; grid-row: 2; }
  .organic-gallery .organic-gallery__grid figure:nth-child(4) { grid-column: 1; grid-row: 3; }
  .organic-gallery .organic-gallery__grid figure:nth-child(5) { grid-column: 2; grid-row: 3; }
  .organic-wishes.organic-wishes--slider .organic-wishes__intro h2 { max-width: 9ch; font-size: 48px; overflow-wrap: anywhere; }
}

/* Final organic composition: image-led hero, centered ceremony and kinetic photo reel. */
.hero {
  min-height: 100svh;
  display: grid;
  place-items: center;
  background: #172016;
  text-align: center;
}
.hero__bg { inset: -4% 0; background-position: 50% 34%; filter: grayscale(.82) sepia(.12) contrast(1.08); transform:none; }
.hero__overlay { inset: 0; background: linear-gradient(180deg,rgba(18,25,18,.32),rgba(18,25,18,.68)),radial-gradient(circle at 50% 42%,transparent 0 18%,rgba(17,24,17,.32) 72%); }
.hero__content {
  width: min(100% - 48px,920px);
  justify-self: center;
  align-items: center;
  margin: 0;
  padding: 96px 24px 70px;
  color: #fff;
  text-align: center;
}
.hero .branch,.hero .eyebrow { color: #e0a587; }
.hero__title,.hero__title::first-line { max-width: 10ch; color: #fff; font-family: var(--serif); font-size: clamp(66px,8vw,96px); line-height: .88; text-shadow: 0 12px 40px rgba(0,0,0,.28); }
.hero__rule { margin-inline: auto; background: rgba(255,255,255,.52); }
.hero__date { color: #fff; transform-origin: center; }
.hero__sub { color: rgba(255,255,255,.78); }
.hero .scroll-down { margin-inline: auto; border-color: rgba(255,255,255,.55); color: #fff; }

.organic-countdown {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(300px,.7fr) minmax(620px,1.3fr);
  gap: clamp(64px,8vw,130px);
  min-height: 520px;
  padding: clamp(78px,8vw,118px) var(--pad,6vw);
  align-items: center;
  overflow: hidden;
  background: var(--organic-ink);
  color: var(--organic-paper);
}
.organic-countdown::before { content:""; position:absolute; width:460px; aspect-ratio:1; right:-130px; top:-250px; border:1px solid rgba(243,238,228,.14); border-radius:50%; }
.organic-countdown__copy > p:first-child { margin:0 0 18px; color:#d5a083; font-size:11px; letter-spacing:.24em; text-transform:uppercase; }
.organic-countdown h2 { max-width:8ch; font-family:var(--script); font-size:clamp(52px,5vw,76px); font-weight:400; line-height:1; transform:rotate(-2deg); }
.organic-countdown__copy > p:nth-of-type(2) { max-width:38ch; margin:28px 0 0; color:rgba(243,238,228,.7); }
.organic-countdown time { display:none; }
.organic-countdown__clock { display:grid; grid-template-columns:repeat(4,1fr); border-block:1px solid rgba(243,238,228,.24); }
.organic-countdown__clock div { position:relative; display:grid; min-height:190px; place-content:center; text-align:center; }
.organic-countdown__clock div + div { border-left:1px solid rgba(243,238,228,.18); }
.organic-countdown__clock strong { font-family:var(--serif); font-size:clamp(48px,5vw,76px); font-weight:400; line-height:1; font-variant-numeric:tabular-nums; }
.organic-countdown__clock span { margin-top:14px; color:#d5a083; font-size:10px; letter-spacing:.16em; text-transform:uppercase; }

.program.dark { display:block; min-height:0; padding:clamp(82px,8vw,116px) var(--pad,6vw); }
.program__intro { position:relative; top:auto; width:min(100%,760px); max-width:none; margin:0 auto; text-align:center; }
.program .program__intro .eyebrow { text-align:center; }
.program__intro h2 { max-width:none; font-size:clamp(58px,6vw,86px); }
.program__intro > p:last-child { max-width:48ch; margin:24px auto 0; }
.program .timeline {
  display:grid;
  width:min(100%,940px);
  min-height:0;
  margin:72px auto 0;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-auto-rows:124px;
  column-gap:150px;
  row-gap:8px;
}
.program .event,.program .event:first-of-type {
  width:auto;
  min-height:0;
  padding:16px 8px 16px 42px;
  align-items:flex-start;
  align-self:stretch;
  justify-content:center;
  text-align:left;
}
.program .event:nth-of-type(odd) { padding:16px 42px 16px 8px; align-items:flex-end; text-align:right; }
.program .event:nth-of-type(even) { align-items:flex-start; text-align:left; }
.program .event time { font-size:clamp(34px,3vw,44px); }
.program .event strong { font-size:22px; }
.program .event.is-current { transform:scale(1.035) !important; }
.program__thread { top:auto; bottom:clamp(82px,8vw,116px); left:50%; width:170px; height:388px; transform:translateX(-50%); opacity:.58; }

.venue > .venue__image { width:70%; }
.venue__image img { transition:transform 1.8s cubic-bezier(.16,1,.3,1),filter .8s ease; }
.venue.is-in-view .venue__image img { transform:translate3d(0,var(--section-shift,0),0) scale(1.06); }
.venue > .venue__text { right:max(5vw,56px); border-top:5px solid var(--organic-clay); box-shadow:0 12px 40px rgba(10,17,10,.22); }
.venue__text .botanical { right:22px; top:22px; color:rgba(101,113,91,.14); font-size:120px; }
.venue__text .btn { background:var(--organic-ink); border-color:var(--organic-ink); color:#fff; }
.venue__text .btn:hover { background:var(--organic-clay); border-color:var(--organic-clay); }

.dresscode { background:var(--organic-ink); color:var(--organic-paper); }
.dresscode__text h2 { color:var(--organic-paper); }
.dresscode .eyebrow { color:#d5a083; }
.dresscode .palette { gap:14px; align-items:center; }
.dresscode .palette span {
  width:clamp(56px,4.4vw,72px);
  height:clamp(56px,4.4vw,72px);
  aspect-ratio:1;
  border:5px solid rgba(243,238,228,.12);
  border-radius:50%;
  box-shadow:none;
  transition:transform .55s cubic-bezier(.16,1,.3,1),border-color .4s ease;
}
.dresscode .palette span:hover { border-color:rgba(243,238,228,.66); transform:translateY(-8px) scale(1.05); }
.dresscode .btn { color:var(--organic-paper); }
.dresscode__image { clip-path:polygon(8% 0,100% 0,100% 100%,0 100%); }
.dresscode__image img { transition:transform 1.6s cubic-bezier(.16,1,.3,1); }
.dresscode.is-in-view .dresscode__image img { transform:translate3d(0,var(--section-shift,0),0) scale(1.07); }

.organic-gallery.paper { padding-block:clamp(82px,8vw,118px); overflow:hidden; }
.organic-gallery__head { grid-template-columns:.28fr .9fr .55fr; align-items:end; }
.organic-gallery__slider { margin-top:56px; }
.organic-gallery__viewport { overflow:hidden; cursor:grab; }
.organic-gallery__viewport:active { cursor:grabbing; }
.organic-gallery .organic-gallery__grid,
.organic-gallery .organic-gallery__grid:nth-child(n) {
  display:flex;
  width:max-content;
  height:auto;
  margin:0;
  gap:12px;
  transform:translate3d(var(--gallery-x,0px),0,0);
  transition:transform .9s cubic-bezier(.16,1,.3,1);
  will-change:transform;
}
.organic-gallery .organic-gallery__grid figure,
.organic-gallery .organic-gallery__grid figure:nth-child(n) {
  flex:0 0 clamp(300px,31vw,510px);
  width:clamp(300px,31vw,510px);
  height:clamp(420px,42vw,650px);
  margin:0;
  border-radius:0;
  overflow:hidden;
  opacity:.48;
  transform:scale(.94);
  transition:opacity .7s ease,transform .9s cubic-bezier(.16,1,.3,1);
}
.organic-gallery .organic-gallery__grid figure.is-active { opacity:1; transform:scale(1); }
.organic-gallery .organic-gallery__grid figure img { transition:transform 1.4s cubic-bezier(.16,1,.3,1); }
.organic-gallery .organic-gallery__grid figure.is-active img { transform:scale(1.035); }
.organic-gallery__controls { display:flex; justify-content:space-between; align-items:center; margin-top:30px; }
.organic-gallery__controls > p { display:flex; align-items:center; gap:12px; margin:0; font-size:11px; letter-spacing:.14em; }
.organic-gallery__controls p i { width:clamp(68px,8vw,120px); height:1px; background:rgba(40,50,38,.24); }
.organic-gallery__controls > div { display:flex; gap:8px; }
.organic-gallery__controls button { width:52px; height:52px; border:1px solid rgba(40,50,38,.28); background:transparent; color:var(--organic-ink); cursor:pointer; transition:background .35s ease,color .35s ease; }
.organic-gallery__controls button:hover,.organic-gallery__controls button:focus-visible { background:var(--organic-ink); color:#fff; }

.motion-enhanced .hero__content > * { opacity:0; transform:translateY(28px); animation:organic-hero-in .95s cubic-bezier(.16,1,.3,1) forwards; }
.motion-enhanced .hero__content > *:nth-child(2) { animation-delay:.12s; }
.motion-enhanced .hero__content > *:nth-child(3) { animation-delay:.22s; }
.motion-enhanced .hero__content > *:nth-child(4) { animation-delay:.32s; }
.motion-enhanced .hero__content > *:nth-child(n+5) { animation-delay:.42s; }
@keyframes organic-hero-in { to { opacity:1; transform:none; } }

@media (max-width:940px) {
  .hero__bg,.hero__overlay { inset:0; }
  .hero__content { width:min(100% - 36px,760px); justify-content:center; padding:90px 18px 64px; }
  .hero__sub { display:block; }
  .hero .scroll-down { position:static; }
  .organic-countdown { grid-template-columns:1fr; min-height:0; }
  .organic-countdown__copy { max-width:600px; }
  .program__thread { bottom:82px; }
  .venue > .venue__image { width:100%; }
}
@media (max-width:600px) {
  .hero { min-height:100svh; }
  .hero__bg { background-position:55% 36%; }
  .hero__title,.hero__title::first-line { font-size:clamp(58px,18vw,76px); }
  .hero__date { font-size:34px; }
  .organic-countdown { padding:72px 18px 82px; gap:44px; }
  .organic-countdown h2 { font-size:56px; }
  .organic-countdown__clock { grid-template-columns:repeat(2,1fr); }
  .organic-countdown__clock div { min-height:132px; }
  .organic-countdown__clock div:nth-child(3) { border-left:0; border-top:1px solid rgba(243,238,228,.18); }
  .organic-countdown__clock div:nth-child(4) { border-top:1px solid rgba(243,238,228,.18); }
  .organic-countdown__clock strong { font-size:50px; }
  .program .timeline { display:flex; min-height:650px; margin-top:56px; }
  .program .event,.program .event:first-of-type { width:47%; min-height:94px; align-self:flex-start; }
  .program .event:nth-of-type(even) { align-self:flex-end; }
  .program__thread { height:650px; }
  .venue > .venue__text { border-top-width:4px; }
  .dresscode .palette { gap:8px; }
  .dresscode .palette span { width:54px; height:54px; border-width:3px; }
  .organic-gallery__head h2 { font-size:52px; }
  .organic-gallery .organic-gallery__grid figure,.organic-gallery .organic-gallery__grid figure:nth-child(n) { flex-basis:82vw; width:82vw; height:112vw; }
}
@media (prefers-reduced-motion:reduce) {
  .motion-enhanced .hero__content > * { opacity:1; transform:none; animation:none; }
  .organic-gallery .organic-gallery__grid,.organic-gallery .organic-gallery__grid figure,.organic-gallery .organic-gallery__grid figure img,.venue__image img,.dresscode__image img { transition:none !important; }
}

/* Natural photography and stable adjacent sections. */
.hero__bg,
.organic-invitation img,
.story .polaroid img,
.venue__image img,
.dresscode__image img,
.organic-gallery__grid img,
.rsvp__photo img { filter:none !important; }
.venue__image::after { background:linear-gradient(90deg,transparent 76%,rgba(31,45,32,.2) 100%); }
.venue,.dresscode { isolation:isolate; }
.venue__image,.dresscode__image { transform:none !important; }
.venue__image,.dresscode__image,.organic-gallery__viewport { overflow:hidden; }
.venue > .venue__text { transform:none; translate:0 -50%; }
.organic-gallery .organic-gallery__grid figure,
.organic-gallery .organic-gallery__grid figure:nth-child(n) { opacity:1; filter:none; }
.organic-gallery .organic-gallery__grid figure.is-active { opacity:1; }
html,body { overflow-x:clip; }

@media (max-width:940px) {
  .venue > .venue__text { translate:none; }
  .organic-gallery__head {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:18px;
    align-items:start;
  }
  .organic-gallery__head > * { min-width:0; max-width:100%; }
  .organic-gallery__head > p:last-child { margin-top:0; }
}

@media (max-width:600px) {
  .venue.paper {
    display:flex;
    height:auto;
    padding:0;
    flex-direction:column;
    background:var(--organic-paper);
  }
  .venue > .venue__image {
    width:100%;
    height:clamp(390px,118vw,500px);
    margin:0;
    border-radius:0;
    clip-path:none;
  }
  .venue > .venue__text {
    position:relative;
    inset:auto;
    width:100%;
    margin:0;
    padding:42px 24px 54px;
    border-top:4px solid var(--organic-clay);
    box-shadow:none;
  }
  .venue__text h2 { max-width:9ch; font-size:clamp(44px,14vw,56px); }
  .venue__text > p:not(.eyebrow) { max-width:32ch; }
  .venue__text .btn { width:100%; justify-content:center; }
  .venue__text .botanical { display:none; }
  .venue > .venue__image.reveal,
  .venue > .venue__text.reveal,
  .dresscode > .dresscode__text.reveal,
  .dresscode > .dresscode__image.reveal {
    opacity:1;
    transform:none;
    filter:none;
  }
}
.organic-contacts__intro { min-width: 0; }
.organic-contacts__intro h2 { overflow-wrap: anywhere; }
