* { box-sizing: border-box; }
html { -webkit-text-size-adjust:100%; scroll-padding-top:24px; }
body { margin:0; background:var(--paper); color:var(--ink); font:1rem/1.8 var(--font-body); -webkit-font-smoothing:antialiased; }
body.is-locked { position:fixed; width:100%; overflow:hidden; }
[hidden] { display:none !important; }
h1,h2,h3,p,figure { margin:0; }
button,a { -webkit-tap-highlight-color:transparent; }
button { font:inherit; color:inherit; cursor:pointer; background:none; border:0; }
a { color:inherit; text-underline-offset:5px; }
button:focus-visible,a:focus-visible,[tabindex]:focus-visible { outline:2px solid currentColor; outline-offset:5px; }
button:disabled { cursor:default; opacity:.5; }
img,video { display:block; max-width:100%; }
::selection { color:var(--paper); background:var(--forest); }
.shell { width:var(--shell); margin-inline:auto; }
.section { padding-block:64px; }
.eyebrow { font-family:var(--font-display); font-size:0.8125rem; letter-spacing:.22em; line-height:1.5; font-weight:400; }
.section-title { font:400 clamp(1.75rem,3.5vw,2.875rem)/1.55 var(--font-display); letter-spacing:.05em; }
.frame { position:relative; overflow:hidden; background:var(--paper-deep); }
.frame__img { width:100%; height:100%; object-fit:cover; object-position:var(--focus-mobile,50% 50%); }
.frame--error { display:grid; place-items:center; min-height:120px; }
.image-error { padding:24px; font-size:0.875rem; color:var(--ink-soft); }
.hero { position:relative; min-height:680px; height:100svh; isolation:isolate; overflow:hidden; background:var(--forest); color:var(--paper-lift); }
.hero__media,.hero__picture,.hero__poster,.hero__video,.hero__scrim { position:absolute; inset:0; width:100%; height:100%; }
.hero__poster { object-fit:cover; object-position:50% 48%; }
.hero__video { object-fit:cover; opacity:0; transition:opacity 1.1s ease; }
.hero__video.is-ready { opacity:1; }
.hero__scrim { background:linear-gradient(180deg,rgba(10,22,13,.28),transparent 29%,rgba(10,22,13,.07) 43%,rgba(10,22,13,.74) 100%); }
.hero__topline { position:relative; padding-top:calc(25px + env(safe-area-inset-top)); display:flex; justify-content:space-between; gap:20px; font:400 0.75rem/1.4 var(--font-display); letter-spacing:.13em; }
.hero__topline span:last-child { margin-right:62px; }
.hero__content { position:absolute; inset:auto 0 15%; text-align:center; }
.hero__content .eyebrow { margin-bottom:20px; font-size:0.8125rem; }
.hero__names { display:flex; justify-content:center; align-items:center; gap:14px; flex-wrap:wrap; font:400 clamp(2rem,8.3vw,5.125rem)/1.3 var(--font-display); letter-spacing:.04em; }
.hero__names>span { white-space:nowrap; }
.hero__amp { font:italic 400 .56em/1 var(--font-display); color:#e1d7bd; }
.hero__date { margin-top:23px; font-size:0.875rem; letter-spacing:.09em; }
.hero__location { margin-top:3px; font-size:0.875rem; letter-spacing:.25em; }
.hero__cta { display:inline-flex; align-items:center; min-height:44px; margin-top:17px; border-bottom:1px solid #f5f0e280; font-size:0.875rem; letter-spacing:.12em; text-decoration:none; }
.hero__hint { position:absolute; bottom:calc(24px + env(safe-area-inset-bottom)); left:0; right:0; text-align:center; font-size:0.75rem; letter-spacing:.12em; text-decoration:none; min-height:44px; display:grid; place-items:center; }
.journal { overflow:hidden; }
.journal__layout { display:flex; flex-direction:column; align-items:flex-start; }
.journal__text { margin-bottom:38px; position:relative; z-index:2; }
.journal__text .eyebrow { margin-bottom:22px; }
.journal__title { white-space:pre-line; font:400 clamp(1.5625rem,3.3vw,2.625rem)/1.7 var(--font-display); letter-spacing:.025em; }
.journal__note { font-size:0.875rem; color:var(--ink-soft); margin-top:20px; }
.journal__photo { width:100%; }
.journal__photo .frame { outline:1px solid #323d3610; outline-offset:-1px; }
.journal__photo .frame__img { object-fit:contain; }
.journal[data-layout="portrait-first"] .journal__photo[data-index="0"] { width:100%; }
.journal[data-layout="portrait-first"] .journal__photo[data-index="1"] { width:66%; margin:24px 0 0 auto; border:0; }
.journal[data-layout="portrait-first"] .journal__photo[data-index="2"],
.journal[data-layout="portrait-first"] .journal__photo[data-index="3"] { width:calc(50% - 8px); border:0; margin-top:20px; }
.journal[data-layout="portrait-first"] .journal__photo[data-index="2"] { align-self:flex-start; }
.journal[data-layout="portrait-first"] .journal__photo[data-index="3"] { align-self:flex-end; margin-top:calc(-1 * (var(--shell) * .5) + 36px); }
.journal[data-layout="landscape-first"] .journal__photo[data-index="0"] { width:85%; border:0; }
.journal[data-layout="landscape-first"] .journal__photo[data-index="1"] { width:100%; margin:28px 0 0; border:0; }
.journal[data-layout="landscape-first"] .journal__photo[data-index="2"] { width:59%; margin:26px 0 0 auto; border:0; }
#journey .journal__photo[data-index="0"] { width:100%; }
#journey .journal__photo[data-index="1"] { width:87%; margin-left:auto; }
#journey .journal__photo[data-index="2"] { width:64%; margin:26px auto 0; }
#promise { background:var(--paper-lift); }
.videoblock { --video-ink:var(--ink); }
.videoblock[data-variant="dark"] { background:var(--forest); color:var(--paper-lift); --video-ink:var(--paper-lift); }
.videoblock__head { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; margin-bottom:26px; }
.videoblock__head .eyebrow { margin-bottom:10px; font-size:0.75rem; }
.videoblock__meta { font-size:0.8125rem; text-align:right; }
.videoblock__meta p { display:none; }
.videoblock__annotation { margin-top:6px; font-size:0.8125rem; line-height:1.5; letter-spacing:.04em; opacity:.82; }
.film-duration { font:400 1.75rem/1 var(--font-display); }
.videoblock__stage { position:relative; overflow:hidden; background:#20271f; width:100%; }
.videoblock__poster { position:absolute; inset:0; width:100%; height:100%; transition:opacity .4s; }
.videoblock__poster::after { content:''; position:absolute; inset:0; background:rgba(0,0,0,.18); pointer-events:none; }
.videoblock__video { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; background:transparent; }
.videoblock__stage.is-playing .videoblock__poster { opacity:0; pointer-events:none; }
.play { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:13px; color:#fff; font-size:0.875rem; text-shadow:0 1px 10px #0005; }
.play__icon { width:58px; height:58px; border:1px solid #fff9; border-radius:50%; display:grid; place-items:center; font-family:var(--font-body); font-size:1.75rem; padding-left:4px; background:#17271d24; transition:background .3s,transform .3s; }
.play:hover .play__icon { transform:scale(1.05); background:#17271d66; }
.video-feedback { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:12px; color:#fff; background:#102016ae; padding:20px; text-align:center; font-size:0.875rem; pointer-events:none; }
.video-retry { border:1px solid #ffffff9a; min-height:44px; padding:6px 22px; pointer-events:auto; background:#25362dbb; }
.videoblock__hint { font-size:0.75rem; letter-spacing:.12em; margin-top:17px; opacity:.8; }
.album-teaser { padding:0 0 64px; }
.album-entry { position:relative; width:100%; padding:30px 48px 30px 0; border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); display:flex; align-items:flex-start; flex-direction:column; text-align:left; }
.album-entry__label { font:400 0.75rem var(--font-display); letter-spacing:.18em; margin-bottom:12px; }
.album-entry__title { font:400 1.5625rem/1.5 var(--font-display); letter-spacing:.04em; }
.album-entry__count { font-size:0.875rem; color:var(--ink-soft); margin-top:9px; }
.album-entry__arrow { position:absolute; right:0; top:50%; transform:translateY(-50%); font-size:1.75rem; }
.album-dialog { position:fixed; inset:0; margin:0; border:0; max-width:none; max-height:none; width:100%; height:100%; height:100dvh; padding:0; background:var(--paper); color:var(--ink); }
.album-dialog[open] { display:flex; flex-direction:column; }
.album-dialog::backdrop { background:rgba(15,25,18,.85); }
.album-header { flex:none; padding:calc(18px + env(safe-area-inset-top)) 22px 12px; display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--hairline); }
.album-header h2 { font:400 1.5625rem/1.5 var(--font-display); }
.album-header .eyebrow { font-size:0.75rem; }
.icon-button { width:48px; height:48px; display:grid; place-items:center; font-size:1.875rem; flex-shrink:0; }
.album-tabs { display:flex; overflow:auto; flex:none; gap:12px; padding:12px 22px 0; }
.album-tab { min-height:48px; white-space:nowrap; padding:4px 8px; font-size:0.875rem; border-bottom:2px solid transparent; }
.album-tab[aria-selected="true"] { border-color:var(--ink); }
.album-grid { min-height:0; overflow:auto; overscroll-behavior:contain; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:4px; grid-auto-flow:dense; gap:14px; padding:22px 22px calc(24px + env(safe-area-inset-bottom)); align-content:start; flex:1; }
.album-thumb { padding:0; position:relative; align-self:start; }
.album-thumb .frame { width:100%; }
.album-thumb .frame__img { object-fit:contain; }
.album-thumb[data-wide="true"] { grid-column:span 2; }
.album-thumb>span { position:absolute; left:8px; bottom:8px; font:400 0.875rem var(--font-display); background:#25382dcc; color:#fff; padding:4px 8px; }
.album-back { align-self:flex-start; min-height:44px; margin:6px 22px; font-size:0.875rem; }
.album-viewer { min-height:0; display:flex; flex-direction:column; flex:1; padding:0 12px calc(12px + env(safe-area-inset-bottom)); background:var(--paper); }
.album-viewer__stage { min-height:0; flex:1; display:flex; align-items:center; justify-content:center; touch-action:pan-y pinch-zoom; }
.album-viewer__frame { width:100%; height:100%; background:transparent; aspect-ratio:auto !important; }
.album-viewer__frame .frame__img { object-fit:contain; }
.album-viewer__controls { display:flex; align-items:center; justify-content:center; gap:20px; margin-top:12px; }
.album-viewer__count { font-size:0.875rem; text-align:center; min-width:150px; }
.details { background:var(--paper-deep); scroll-margin-top:0; }
.details__layout { display:grid; gap:38px; }
.details__intro .eyebrow { margin-bottom:18px; }
.details__intro .section-title { max-width:11em; font-size:1.8125rem; }
.details__date { font-family:var(--font-display); font-size:1.375rem; margin-top:26px; }
.details__intro>p:not(.eyebrow):not(.details__date) { font-size:0.875rem; }
.details__venue { border-top:1px solid var(--hairline); padding-top:28px; }
.details__venue h3 { font:400 1.5625rem/1.6 var(--font-display); margin-top:14px; }
.venue__address { color:var(--ink-soft); font-size:0.9375rem; margin-top:8px; user-select:text; -webkit-user-select:text; }
.venue__actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:25px; }
.linkbtn { display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--ink); min-height:46px; padding:8px 16px; font-size:0.875rem; text-decoration:none; }
.linkbtn--ghost { border-color:var(--hairline); }
.copy-status { font-size:0.875rem; margin-top:10px; min-height:25px; }
.wishes { background:var(--paper-lift); }
.wishes .eyebrow { margin-bottom:12px; }
.wishes__heading { display:flex; justify-content:space-between; align-items:center; gap:14px; margin-bottom:24px; }
.wishes__motion { border-bottom:1px solid var(--hairline); font-size:.875rem; min-height:44px; white-space:nowrap; }
.wishes__screen { height:145px; overflow:hidden; position:relative; background:var(--forest); color:var(--paper-lift); margin-bottom:28px; }
.wishes__lane { position:absolute; inset:0; overflow:hidden; }
.wishes__empty { padding:36px 24px; color:#f5f0e2bb; font-size:.9375rem; }
.wishes__bullet { position:absolute; left:100%; white-space:nowrap; max-width:75%; overflow:hidden; text-overflow:ellipsis; font-size:.875rem; animation:wish-drift 16s linear infinite; }
.wishes--paused .wishes__bullet { animation-play-state:paused; }
@keyframes wish-drift { from { transform:translateX(0); } to { transform:translateX(calc(-100vw - 110%)); } }
.wishes__list { display:grid; gap:1px; background:var(--hairline); }
.wishes__card { background:var(--paper-lift); padding:18px 0; }
.wishes__card p { font:400 1rem/1.7 var(--font-display); overflow-wrap:anywhere; }
.wishes__card span { display:block; margin-top:8px; color:var(--ink-soft); font-size:.875rem; }
.wishes__list:empty { display:none; }
.wishes__form { display:grid; gap:10px; margin-top:32px; }
.wishes__form label { font-size:.875rem; }
.wishes__form input,.wishes__form textarea { width:100%; border:1px solid var(--hairline); background:var(--paper); padding:12px 14px; color:var(--ink); border-radius:0; font:1rem/1.5 var(--font-body); }
.wishes__form textarea { resize:vertical; }
.wishes__form .linkbtn { margin-top:12px; justify-self:start; background:var(--forest); color:var(--paper-lift); }
.wishes__form .linkbtn:disabled { background:transparent; color:var(--ink-soft); }
.wishes__status { min-height:24px; font-size:.875rem; color:var(--ink-soft); }
.wishes > .shell > .linkbtn { margin-top:20px; }
.admin { padding-block:55px; max-width:720px; }
.admin h1 { margin:10px 0 24px; }
.admin form { display:grid; gap:12px; max-width:400px; }
.admin input { min-height:46px; border:1px solid var(--hairline); padding:10px; font:inherit; }
.admin form .linkbtn { justify-self:start; }
.admin__card { border-top:1px solid var(--hairline); padding:24px 0; display:grid; gap:10px; }
.admin__card p { font:400 1.125rem/1.6 var(--font-display); overflow-wrap:anywhere; }
.admin__card .linkbtn { justify-self:start; }
.closing__layout { display:flex; flex-direction:column; align-items:center; gap:38px; text-align:center; }
.closing__photo { width:76%; max-width:380px; }
.closing__photo .frame__img { object-fit:contain; }
.closing__text .eyebrow { margin-bottom:20px; }
.closing__status { font-size:0.875rem; margin-top:12px; }
.closing__status strong { font:400 1.875rem var(--font-display); padding-right:3px; }
.closing__signature { font:400 1.25rem/1.5 var(--font-display); margin-top:28px; }
.back-top { display:inline-flex; align-items:center; min-height:44px; font-size:0.875rem; margin-top:14px; text-decoration:none; border-bottom:1px solid var(--hairline); }
.closing__colophon { text-align:center; font:400 0.75rem var(--font-display); letter-spacing:.18em; margin-top:60px; padding-bottom:calc(25px + env(safe-area-inset-bottom)); }
.quick-nav { position:fixed; bottom:calc(18px + env(safe-area-inset-bottom)); right:18px; z-index:20; background:var(--forest); color:var(--paper-lift); padding:10px 18px; border:1px solid #ece5d366; min-height:44px; text-decoration:none; font-size:0.875rem; box-shadow:0 4px 20px #1c2a231c; }
.audiotoggle { position:fixed; top:calc(18px + env(safe-area-inset-top)); right:18px; z-index:20; width:48px; height:48px; border-radius:50%; color:var(--paper-lift); background:#263b30d9; border:1px solid #e9dfc7a0; box-shadow:0 2px 18px #111a1440; display:grid; place-items:center; }
.audiotoggle:disabled { opacity:.8; }
.audiotoggle__disc { font:1.5rem/1 var(--font-display); display:block; }
.audiotoggle.is-playing .audiotoggle__disc { animation:music-spin 8s linear infinite; }
.audiotoggle__hint { position:absolute; right:0; top:54px; white-space:nowrap; padding:4px 9px; border-radius:3px; background:#263b30e8; font-size:0.75rem; }
.audiotoggle__hint:empty { display:none; }
@keyframes music-spin { to { transform:rotate(360deg); } }
.album-open .quick-nav,.album-open .audiotoggle { display:none; }
.boot-fallback { min-height:100svh; display:grid; align-content:center; justify-items:center; gap:22px; text-align:center; padding:30px; }
.boot-fallback h1 { font:400 2.125rem var(--font-display); }
@media (max-width:767px) {
  .journal[data-layout="portrait-first"] .journal__layout { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 16px; }
  .journal[data-layout="portrait-first"] .journal__text { grid-column:1 / -1; margin-bottom:18px; }
  .journal[data-layout="portrait-first"] .journal__photo { margin:0; border:0; }
  .journal[data-layout="portrait-first"] .journal__photo[data-index="0"] { grid-column:1 / -1; grid-row:2; width:100%; }
  .journal[data-layout="portrait-first"] .journal__photo[data-index="1"] { grid-column:2; grid-row:3; width:100%; }
  .journal[data-layout="portrait-first"] .journal__photo[data-index="2"] { grid-column:1; grid-row:4; width:100%; }
  .journal[data-layout="portrait-first"] .journal__photo[data-index="3"] { grid-column:2; grid-row:4; width:100%; }
}
@media (min-width:768px) {
  .section { padding-block:96px; }
  .frame__img { object-position:var(--focus-desktop,50% 50%); }
  .hero { min-height:650px; }
  .hero__content { bottom:15%; }
  .hero__date { font-size:1rem; }
  .hero__topline { padding-top:35px; font-size:0.875rem; }
  .hero__poster { object-position:50% 46%; }
  .journal__layout { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); column-gap:32px; align-items:start; }
  .journal[data-layout] .journal__photo { margin:0; width:100%; border:0; }
  .journal[data-layout="portrait-first"] .journal__text { grid-column:8 / 13; grid-row:1; }
  .journal[data-layout="portrait-first"] .journal__photo[data-index="0"] { grid-column:1 / 8; grid-row:1 / 3; }
  .journal[data-layout="portrait-first"] .journal__photo[data-index="1"] { grid-column:9 / 13; grid-row:2 / 4; }
  .journal[data-layout="portrait-first"] .journal__photo[data-index="2"] { grid-column:1 / 4; grid-row:3 / 5; }
  .journal[data-layout="portrait-first"] .journal__photo[data-index="3"] { grid-column:5 / 8; grid-row:3 / 5; }
  .journal[data-layout="landscape-first"] .journal__text { grid-column:6 / 13; grid-row:1; }
  .journal[data-layout="landscape-first"] .journal__photo[data-index="0"] { grid-column:1 / 6; grid-row:1 / 4; }
  .journal[data-layout="landscape-first"] .journal__photo[data-index="1"] { grid-column:7 / 13; grid-row:2; }
  .journal[data-layout="landscape-first"] .journal__photo[data-index="2"] { grid-column:8 / 12; grid-row:3; }
  #journey .journal__photo[data-index="0"] { grid-column:1 / 8; grid-row:2; }
  #journey .journal__photo[data-index="1"] { grid-column:1 / 8; grid-row:3; }
  #journey .journal__photo[data-index="2"] { grid-column:9 / 13; grid-row:1 / 4; }
  .journal__text { margin:20px 0 48px; }
  .videoblock__meta p { display:block; margin-top:12px; font-size:0.875rem; }
  .videoblock__head { margin-bottom:35px; }
  .videoblock__head .eyebrow { font-size:0.8125rem; }
  .play__icon { width:76px; height:76px; font-size:2.25rem; }
  .album-teaser { padding-bottom:96px; }
  .album-entry { padding-block:40px; }
  .album-entry__title { font-size:2.1875rem; }
  .album-entry__count { position:absolute; right:70px; top:50%; transform:translateY(-50%); margin:0; }
  .album-header,.album-tabs { padding-inline:max(32px,calc((100% - 1120px)/2)); }
  .album-grid { grid-template-columns:repeat(4,minmax(0,1fr)); padding-inline:max(32px,calc((100% - 1120px)/2)); gap:24px; }
  .album-viewer__stage { max-width:1120px; width:100%; margin:auto; }
  .details__layout { grid-template-columns:1fr 1fr; gap:80px; }
  .wishes__list { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:32px; }
  .wishes__form { max-width:620px; }
  .details__intro .section-title { font-size:2.25rem; }
  .details__venue { border-top:0; border-left:1px solid var(--hairline); padding:10px 0 0 45px; }
  .closing__layout { flex-direction:row; justify-content:center; gap:100px; text-align:left; }
  .closing__photo { width:36%; max-width:460px; }
  .closing__colophon { margin-top:75px; padding-bottom:0; }
}
@media (max-width:374px) {
  .hero__names { font-size:1.875rem; gap:10px; }
  .hero__topline { font-size:.6875rem; gap:8px; }
  .hero__topline span:last-child { margin-right:58px; }
  .journal__title { font-size:1.5rem; }
  .album-tabs { gap:6px; }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}

/* Round-three editorial composition: section headings retain their existing type. */
.hero__line { font:italic 400 clamp(1.25rem,3vw,2rem)/1.4 var(--font-display); letter-spacing:.08em; margin-bottom:10px; }
.hero__invitation { margin-top:12px; font-size:.875rem; letter-spacing:.12em; }
.hero__content { bottom:12%; }
.hero__scrim { background:linear-gradient(180deg,rgba(10,22,13,.18),transparent 35%,rgba(10,22,13,.06) 48%,rgba(10,22,13,.78) 100%); }
.journal__layout { display:block; }
.journal__text { margin:0 0 34px; }
.journal__art { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); column-gap:12px; align-items:start; max-width:800px; margin:0 auto; }
.journal__micro,.journal__number { font:400 .6875rem/1.72 var(--font-display); letter-spacing:.17em; white-space:pre-line; }
.journal__photo { width:100% !important; margin:0 !important; }
.journal__photo .frame { aspect-ratio:var(--art-ratio) !important; }
.journal__photo .frame__img { object-fit:cover; object-position:var(--art-focus,50% 50%); }
.journal__lead { grid-row:1; }
.journal__support { grid-row:2; margin-top:12px !important; }
.journal__middle { grid-row:2; margin-top:38px; }
.journal__end { grid-row:3; margin-top:17px; }
.journal__foot { grid-row:3; margin:22px 0 0 5%; }
.journal__number { grid-column:11 / 13; grid-row:4; text-align:right; align-self:end; margin-top:28px; }
#together .journal__lead { grid-column:1 / 13; --art-ratio:1.08; }
#together .journal__support--0 { grid-column:1 / 6; --art-ratio:.78; --art-focus:52% 34%; align-self:center; }
#together .journal__support--1 { grid-column:9 / 13; --art-ratio:.79; --art-focus:50% 33%; align-self:center; }
#together .journal__middle { grid-column:6 / 9; }
#together .journal__foot { grid-column:1 / 8; }
#promise .journal__lead { grid-column:1 / 13; --art-ratio:1.08; --art-focus:50% 42%; }
#promise .journal__support--0 { grid-column:1 / 10; --art-ratio:1.55; --art-focus:50% 50%; }
#promise .journal__middle { grid-column:10 / 13; margin-left:15px; }
#promise .journal__end { grid-column:10 / 13; margin-left:15px; }
#promise .journal__foot { grid-column:1 / 9; }
#journey .journal__lead { grid-column:1 / 10; --art-ratio:1.04; --art-focus:50% 47%; }
.journal__botanical { background-position:center; background-size:cover; }
#journey .journal__botanical--top { grid-column:10 / 13; grid-row:1; align-self:center; aspect-ratio:.65; margin-left:12px; background-image:url('../../public/design/tree-shadow-1-v2.webp'); }
#journey .journal__support--0 { grid-column:5 / 13; grid-row:2 / 4; --art-ratio:1.16; --art-focus:50% 39%; }
#journey .journal__middle { grid-column:1 / 5; grid-row:2; margin:40px 18px 0 14px; }
#journey .journal__botanical--bottom { grid-column:1 / 5; grid-row:3; aspect-ratio:.95; margin:14px 18px 0 14px; background-image:url('../../public/design/tree-shadow-2-v2.webp'); }
#journey .journal__end { grid-column:10 / 13; grid-row:1; align-self:end; margin:0 0 7% 14px; }
#journey .journal__foot { grid-column:5 / 11; grid-row:4; text-align:center; }

.details__title { margin:16px 0 30px; }
.details__layout { gap:20px; }
.details__card { border:1px solid var(--hairline); background:var(--paper-lift); padding:24px; }
.details__venue { border:1px solid var(--hairline); padding:24px; }
.calendar { max-width:380px; margin:0 auto 18px; }
.calendar__month { text-align:center; font:400 1.4rem var(--font-display); letter-spacing:.15em; margin-bottom:16px; }
.calendar__grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); text-align:center; row-gap:7px; }
.calendar__weekday,.calendar__day { display:grid; place-items:center; min-height:40px; font-size:.875rem; position:relative; }
.calendar__weekday { color:var(--ink-soft); font-size:.75rem; }
.calendar__day--heart { color:#7b343e; font-weight:700; }
.calendar__heart { position:absolute; width:40px; height:40px; object-fit:contain; inset:50% auto auto 50%; transform:translate(-50%,-50%); pointer-events:none; }
.calendar__number { position:relative; z-index:1; }
.details__date { margin:20px 0 0; font-size:1rem; }
.details__lunar,.details__time { font-size:.875rem; }
.details__time { margin-top:8px; color:var(--ink-soft); }
.details__calendar > :is(.details__date,.details__lunar,.details__time) { text-align:center; }
.venue__map { position:relative; aspect-ratio:4 / 3; display:block; overflow:hidden; background:var(--paper); margin-bottom:24px; }
.venue__map img { width:100%; height:100%; object-fit:contain; }
.venue__map-caption { position:absolute; right:6px; bottom:6px; padding:3px 6px; font-size:.6875rem; line-height:1.4; color:var(--ink); background:#f9f6ebdf; }
.details__venue h3 { margin-top:12px; }

.rsvp { background:var(--paper-lift); }
.rsvp__layout { position:relative; max-width:650px; }
.rsvp .section-title { margin:12px 0 6px; }
.rsvp__intro { color:var(--ink-soft); font-size:.9375rem; }
.rsvp__letter { margin-top:34px; padding:28px 22px; border:1px solid #b6aa963d; background:var(--paper); box-shadow:0 18px 45px #2631270b; position:relative; }
.rsvp__letter::before { content:''; position:absolute; inset:9px; border:1px solid #b6aa9630; pointer-events:none; }
.rsvp__form { position:relative; display:grid; gap:9px; }
.rsvp__form label { font-size:.875rem; }
.rsvp__form input { min-height:46px; width:100%; border:0; border-bottom:1px solid var(--hairline); border-radius:0; background:transparent; color:var(--ink); font:1rem var(--font-body); }
.rsvp__hint { font-size:.75rem; color:var(--ink-soft); margin-top:-5px; }
.rsvp__form .linkbtn { justify-self:start; margin-top:14px; background:var(--forest); color:var(--paper-lift); }
.rsvp__form .linkbtn:disabled { background:transparent; color:var(--ink-soft); }
.rsvp__status { min-height:23px; font-size:.8125rem; color:var(--ink-soft); }
.rsvp__success { position:relative; display:grid; gap:20px; justify-items:start; }
.rsvp__success p { font:400 1.25rem/1.6 var(--font-display); }
.rsvp__seal { position:absolute; right:14px; top:14px; font:italic 1.6rem/1 'Segoe Script','Brush Script MT',cursive; color:#914e55; transform:rotate(-11deg); }

.wish-float { position:fixed; right:18px; bottom:calc(75px + env(safe-area-inset-bottom)); z-index:20; min-height:44px; border:1px solid #ece5d366; border-radius:100px; padding:8px 17px; background:var(--paper-lift); color:var(--forest); box-shadow:0 4px 20px #1c2a231c; font-size:.875rem; }
.wish-sheet { position:fixed; inset:auto 20px 20px auto; width:min(440px,calc(100% - 40px)); max-height:min(80dvh,700px); margin:0; padding:22px; overflow:auto; border:1px solid var(--hairline); background:var(--paper-lift); color:var(--ink); box-shadow:0 20px 80px #101a1466; }
.wish-sheet::backdrop { background:#101a1488; }
.wish-sheet__head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.wish-sheet__head .eyebrow { font-size:.7rem; margin-bottom:8px; }
.wish-sheet__head .section-title { font-size:1.5rem; }
.wish-sheet__tabs { display:flex; gap:20px; border-bottom:1px solid var(--hairline); margin-top:22px; }
.wish-sheet__tab { min-height:44px; font-size:.875rem; border-bottom:2px solid transparent; }
.wish-sheet__tab[aria-selected="true"] { border-color:var(--forest); }
.wish-sheet__pane { min-height:210px; }
.wish-sheet .wishes__form { margin-top:18px; }
.wish-sheet__readhead { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:15px 0 10px; font-size:.875rem; }
.wish-sheet .wishes__screen { height:125px; margin-bottom:16px; }
.wish-sheet .wishes__list { display:block; background:transparent; }
.wish-sheet .wishes__card { border-bottom:1px solid var(--hairline); padding:15px 0; }
.wish-sheet .wishes__empty { padding:28px 18px; }
.wish-sheet .wishes__bullet { max-width:80%; }
.wish-sheet .linkbtn--ghost { margin-top:12px; }
.album-open .wish-float,.wishes-open .wish-float,.wishes-open .quick-nav,.rsvp-editing .wish-float,.rsvp-editing .quick-nav { display:none; }
.admin__subhead { border-top:1px solid var(--hairline); margin:45px 0 10px; padding-top:28px; }
#admin-rsvp-export { margin:16px 0; }

@media (max-width:767px) {
  .journal.section { padding-block:62px; }
  .journal__layout { display:block !important; }
  .journal__text { margin:0 0 20px !important; }
  .journal__art { column-gap:6px; }
  .journal__micro,.journal__number { font-size:.56rem; line-height:1.55; letter-spacing:.13em; }
  .journal__middle { margin-top:18px; }
  #promise .journal__middle,#promise .journal__end { margin-left:7px; }
  #journey .journal__middle { margin:14px 6px 0 4px; }
  #journey .journal__botanical--bottom { margin:10px 6px 0 4px; }
  #journey .journal__end { margin-left:6px; }
  .details__card { padding:20px; }
  .wish-sheet { inset:auto 0 0 0; width:100%; max-height:86dvh; padding:24px 20px calc(20px + env(safe-area-inset-bottom)); border-radius:18px 18px 0 0; }
  .rsvp__seal { font-size:1.25rem; right:20px; top:22px; }
}
@media (min-width:768px) {
  .journal__text { max-width:800px; margin:0 auto 48px; }
  .journal__art { column-gap:16px; }
  .details__layout { grid-template-columns:1fr 1fr; gap:24px; }
  .details__venue { border:1px solid var(--hairline); padding:24px; }
}

/* The two films read as one continuous chapter. */
#film { padding-bottom:24px; }
#travel { padding-top:24px; }
@media (min-width:768px) {
  #film { padding-bottom:32px; }
  #travel { padding-top:32px; }
}

