.blush-dress__looks { justify-items:center; align-items:center; }
.program__editorial { display:block; }
.program .program__sticky { position:relative; top:auto; max-width:560px; margin:0 auto; text-align:center; }
.program .program__sticky h2 { margin:0; font:500 clamp(44px,5.5vw,72px)/1.04 var(--serif); letter-spacing:-.025em; text-transform:none; white-space:normal; }
.program .program__note { max-width:30ch; margin:22px auto 0; font:400 14px/1.7 var(--sans); color:#655b5f; }
.program .timeline { position:relative; display:flex; flex-direction:column; gap:4px; width:min(100%,860px); margin:44px auto 0; padding:12px 0; border:0; list-style:none; }
.program .timeline::before,.program .timeline::after,.program .timeline .romantic-route::before,.program .timeline .romantic-route::after { display:none; content:none; }
.program .timeline .program-event { position:relative; display:block; flex:none; align-self:flex-start; width:42%; min-height:154px; margin:0; padding:0; border:0; opacity:1; transform:none; background:none; }
.program .timeline .program-event:nth-of-type(even) { align-self:flex-end; }
.program .timeline .program-event::before,.program .timeline .program-event::after { display:none; }
.program-event__button { position:relative; width:100%; min-height:154px; display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start; padding:18px 0; border:0; background:none; text-align:left; color:#30252a; cursor:pointer; }
.program-event:nth-of-type(even) .program-event__button { align-items:flex-end; text-align:right; }
.program .program-event__index { display:none; }
.program .program-event time { display:block; margin:0; font:500 italic clamp(36px,4vw,48px)/1.05 var(--serif); letter-spacing:-.025em; color:#82666f; transition:color .4s; }
.program .program-event strong { display:block; margin-top:13px; font:500 clamp(24px,2.5vw,32px)/1.12 var(--serif); letter-spacing:-.015em; text-transform:none; text-wrap:balance; }
.program .program-event div>span { display:block; margin-top:8px; max-width:25ch; font:400 13px/1.6 var(--sans); color:#6e6267; }
.program .program-event.is-active time { color:#a34e6b; }
.program .program-event__button:focus-visible { outline:1px solid #a34e6b; outline-offset:8px; border-radius:2px; }
.program .timeline .romantic-route { position:absolute; display:block; inset:0 auto 0 50%; width:64px; height:100%; margin:0; padding:0; border:0; transform:translateX(-50%); pointer-events:none; list-style:none; }
.romantic-route svg { display:block; width:100%; height:100%; overflow:visible; }
.romantic-route path { fill:none; stroke-linecap:round; }
.romantic-route__base { stroke:#dfc7d0; stroke-width:1.1; }
.romantic-route__ink { stroke:#a34e6b; stroke-width:1.5; stroke-dasharray:1; stroke-dashoffset:1; transition:stroke-dashoffset .75s cubic-bezier(.22,1,.36,1); }
.romantic-route__cursor { transition:transform .65s cubic-bezier(.22,1,.36,1); }
.romantic-route__cursor circle:first-child { fill:#ead3dc; fill-opacity:.5; }
.romantic-route__cursor circle:last-child { fill:#a34e6b; }
@media (max-width:700px) {
  .program .timeline { margin-top:36px; }
  .program .timeline .program-event { width:43%; min-height:145px; }
  .program-event__button { min-height:145px; padding:16px 0; }
  .program .program-event time { font-size:clamp(32px,9.5vw,38px); }
  .program .program-event strong { font-size:clamp(22px,6.2vw,26px); line-height:1.15; }
  .program .program-event div>span { font-size:12px; line-height:1.55; }
}
@media (prefers-reduced-motion:reduce) { .romantic-route__ink,.romantic-route__cursor { transition:none; } }
.blush-dress__looks figure { margin-inline:auto; }
.blush-dress__looks img { object-fit:contain; object-position:center; }
.program .program__sticky h2,.blush-dress__intro h2,.rsvp__intro h2 { width:100%; max-width:none; overflow-wrap:normal; }
.blush-dress__intro h2,.rsvp h2 { font-size:clamp(36px,3.1vw,46px); line-height:1.12; }
@media (min-width:701px) and (max-width:1000px) { .hero__title { font-size:clamp(80px,17.2vw,128px); line-height:1.05; } }
@media (max-width:700px) {
  .menu-toggle { width:48px; height:48px; padding:12px; border-radius:50%; background:rgba(250,247,244,.95); }
  .menu-toggle span { width:24px; background:#211d1f; }
  .hero__title { font-size:clamp(56px,18vw,88px); line-height:1.05; letter-spacing:-.03em; }
  .program .place-card { width:100%; max-width:400px; min-height:0; aspect-ratio:auto; padding:36px 28px; margin-top:40px; border-radius:40px 0; align-items:center; text-align:center; }
  .program .place-card h3 { width:100%; max-width:none; font-size:32px; line-height:1.15; }
  .place-card p { font-size:15px; line-height:1.65; }
  .venue { padding:72px 24px; }
  .venue h2 { font-size:clamp(34px,9.5vw,44px); line-height:1.12; text-wrap:balance; }
  .venue__text,.blush-venue__info { min-width:0; padding:28px 0; }
  .venue img { object-position:center; }
  .blush-dress__looks { display:grid; grid-template-columns:minmax(0,1fr); gap:30px; }
  .blush-dress__looks > * { width:min(100%,320px); justify-self:center; }
}

.program .timeline .romantic-route { left:0; width:100%; transform:none; }
