/* Expressive silk and type, with calm invitation cards and clear guest information. */
:root{--panel-shadow:0 18px 50px -32px rgba(67,41,29,.25);--panel-radius:24px}
.site-header{background:rgba(241,232,216,.94)}
.header-inner{min-height:88px}
.brand-seal{width:53px;height:53px;min-height:53px;justify-content:center;gap:4px;border:1px solid var(--gold);border-radius:50%;font-size:1.3rem}
.brand-seal .heart{width:10px;height:10px}
#navigation a{font-size:.875rem}
#navigation a[href="/rueckantwort/"]{border:1px solid var(--forest);border-radius:30px;padding:0 18px}
#navigation a[href="/rueckantwort/"]:after{left:18px;right:18px;width:auto}
.language-switch{border:1px solid rgba(47,93,58,.18);border-radius:30px;padding:0 3px}
.header-motion{margin-right:0}
.button{border-radius:40px;font-size:1rem;min-height:50px;padding:13px 25px}
.hero-top{padding-top:30px}
.hero-stage{height:clamp(480px,43vw,660px)}
.hero-aside{border-left:1px solid var(--gold);padding-left:18px}
.hero-bottom{grid-template-columns:1fr 1fr auto;padding-block:25px 30px}
.hero-actions{display:flex;align-items:center;gap:22px}
.hero-actions .circle-link{gap:0}
.hero-actions .circle-link>span:first-child{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.hero-actions .circle-icon{height:50px;width:50px}
.hero-actions .circle-icon svg{transform:none}
/* Countdown: an editorial headline beside one quiet, three-part card. */
.anticipation{display:grid;grid-template-columns:1fr 1.15fr;align-items:center;gap:8%;padding-block:75px 40px}
.anticipation-copy .eyebrow,.hub-heading .eyebrow,.questions-heading .eyebrow{color:var(--blue);font-size:.875rem;margin-bottom:18px}
.anticipation h2,.hub-heading h2,.questions-heading h2{font:300 clamp(2.8rem,4.8vw,5rem)/1.03 var(--serif);letter-spacing:-.035em;color:var(--forest)}
.countdown-panel{border:1px solid var(--gold);border-radius:var(--panel-radius);padding:34px 25px 22px;background:var(--cream);box-shadow:var(--panel-shadow)}
.countdown-units{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));text-align:center}
.countdown-units>div+div{border-left:1px solid var(--gold)}
.countdown-value{display:block;font:300 clamp(3rem,5.5vw,6rem)/1.05 var(--serif);color:var(--forest);font-variant-numeric:lining-nums tabular-nums}
.countdown-label{display:block;margin-top:10px;font-size:.875rem}
.countdown-caption{text-align:center;font-size:.875rem;margin-top:24px;padding-top:18px;border-top:1px solid var(--gold)}
/* An asymmetric chapter grid combines practical navigation with the wedding's imagery. */
.chapter-index{padding-block:70px 100px}
.hub-heading{display:grid;grid-template-columns:1.5fr 1fr;align-items:end;gap:12%;margin-bottom:40px}
.hub-heading>p{max-width:370px;font-size:1.0625rem;padding-bottom:5px}
.chapter-links{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:22px;border:0}
.chapter-link{display:block;position:relative;min-width:0;padding:0;border:1px solid var(--gold);border-radius:var(--panel-radius);overflow:hidden;background:var(--cream);box-shadow:var(--panel-shadow);transition:transform .45s var(--motion-ease),box-shadow .45s var(--motion-ease);isolation:isolate}
.chapter-link:hover,.chapter-link:focus-visible{padding:0;transform:translateY(-5px);box-shadow:0 24px 50px -30px rgba(47,93,58,.3)}
.hub-card-content{padding:30px;display:flex;flex-direction:column;gap:25px;height:100%;position:relative;z-index:1}
.hub-card-content>div{flex:1}
.hub-card-content .section-number{font-size:.875rem}
.chapter-link h3{font:300 clamp(2rem,2.7vw,3.3rem)/1.06 var(--serif);letter-spacing:-.035em;margin-bottom:12px}
.chapter-link p{font-size:1rem;line-height:1.5;margin:0}
.card-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-top:5px}
.card-action{font-size:.875rem}
.chapter-arrow{font-size:1.8rem}
.hub-der-ort{grid-column:3;grid-row:1/span 2;display:flex;flex-direction:column}
.hub-venue-photo{width:100%;height:52%;min-height:230px;object-fit:cover;object-position:55% center}
.hub-der-ort .hub-card-content{height:auto;flex:1}
.hub-rueckantwort{background:var(--forest);border-color:var(--forest);color:var(--cream)}
.hub-rueckantwort h3,.hub-rueckantwort .chapter-arrow,.hub-rueckantwort .section-number{color:var(--cream)}
.hub-fotos h3{font-style:italic}
/* Centered chapter openings from the reference, retaining the original large type below. */
body:not([data-page=home]) main>.section:first-child{padding-top:52px}
.page-masthead{display:flex;flex-direction:column;text-align:center;gap:10px;border:0;margin-bottom:65px;padding-bottom:28px}
.page-masthead .section-number{font-size:.875rem}
.page-masthead .page-heading{font:300 clamp(2.8rem,5.5vw,5.8rem)/1.08 var(--serif);letter-spacing:-.04em;max-width:100%}
.page-masthead .chapter-note{margin:0;font-size:.875rem}
.experience-ready .page-masthead:after{left:calc(50% - 36px);right:auto;width:72px}
/* A visible connecting line and softer panels turn the program into a timeline. */
.schedule{position:relative}
.schedule:before{content:'';position:absolute;left:15px;top:28px;bottom:28px;width:1px;background:var(--gold)}
.schedule-item{position:relative;border:0;grid-template-columns:32px 1fr;gap:20px;padding-block:10px;align-items:start}
.schedule-item>div{border:1px solid var(--gold);border-radius:18px;padding:24px;background:var(--cream);box-shadow:var(--panel-shadow)}
.schedule-item h3{font-size:2.25rem}
.schedule-number{background:var(--cream);border:1px solid var(--forest);position:relative;z-index:1;margin-top:27px;font-size:.8125rem}
.schedule-item.is-current h3{translate:0}
.schedule-note{padding-left:52px;margin-top:22px}
.day-date{box-shadow:8px 12px 0 -1px var(--cream),8px 12px 0 0 var(--gold)}
/* Facts and answers stay easy to scan and fully keyboard accessible. */
.guest-questions{display:grid;grid-template-columns:1fr 1.25fr;gap:9%;padding-block:0 90px}
.questions-heading h2{font-size:clamp(2.8rem,4vw,4.2rem)}
.question{border:1px solid var(--gold);border-radius:18px;background:var(--cream);overflow:hidden;box-shadow:var(--panel-shadow)}
.question+.question{margin-top:14px}
.question summary{display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;list-style:none;padding:22px 25px;font:300 1.6rem/1.2 var(--serif);color:var(--forest)}
.question summary::-webkit-details-marker{display:none}
.question summary:focus-visible{outline-offset:-5px;border-radius:18px}
.question-mark{font:300 1.5rem/1 var(--sans);flex-shrink:0;transition:rotate .3s var(--motion-ease)}
.question[open] .question-mark{rotate:45deg}
.question-answer{padding:0 25px 24px;font-size:1rem;line-height:1.6}
.venue-image{border-radius:var(--panel-radius)}
.venue-details{padding:30px;border:1px solid var(--gold);border-radius:var(--panel-radius);box-shadow:var(--panel-shadow);min-width:0}
.venue-details>.eyebrow{font-size:.875rem;color:var(--blue);margin-bottom:12px}
.travel-details{gap:22px}
.travel-details>div{border:1px solid var(--gold);border-radius:var(--panel-radius);padding:30px;box-shadow:var(--panel-shadow)}
.travel-details h3{font-size:2rem}
.rsvp-content{border:1px solid var(--gold);border-radius:var(--panel-radius);box-shadow:var(--panel-shadow);padding:36px}
.attendance label{border-radius:14px;padding:16px}
.field input,.field textarea{background:var(--cream);border:1px solid rgba(47,93,58,.4);border-radius:12px;padding:12px 14px}
.field input:focus,.field textarea:focus{outline:2px solid var(--forest);outline-offset:2px;box-shadow:none}
.photo-invitation{border:1px solid var(--gold);border-radius:var(--panel-radius);padding:44px;box-shadow:var(--panel-shadow)}
.photo-invitation>.display-copy{font-size:clamp(2.8rem,5vw,5.5rem)}
.slide-frame{border-radius:var(--panel-radius)}
.next-chapter{padding:24px 0 0}.next-title{font-size:clamp(2.3rem,4.2vw,4.6rem)}
/* Local touch sheen follows the contact point. Native scrolling stays available. */
.chapter-link:before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at var(--touch-x,50%) var(--touch-y,50%),rgba(100,128,158,.14),transparent 65%);opacity:0;transition:opacity .4s var(--motion-ease);z-index:1}
.chapter-link.is-touched:before{opacity:1}.chapter-link.is-touched{transform:translateY(-3px) scale(.992)}
@media(max-width:1100px){
 .header-inner{gap:12px}#navigation{gap:12px}#navigation a{font-size:.8125rem}#navigation a[href="/rueckantwort/"]{padding-inline:12px}.brand-seal{width:46px;height:46px;min-height:46px}.hero-actions{gap:12px}.hero-actions .button{padding-inline:20px}
 .hub-card-content{padding:24px}.chapter-links{gap:16px}.venue-heading{gap:5%;grid-template-columns:1.2fr 1fr}.venue-details{padding:24px}
}
@media(min-width:701px) and (max-width:900px){
 .header-inner{gap:7px}#navigation{gap:8px}#navigation a{font-size:.75rem}.language-switch{padding:0}.hero-bottom{grid-template-columns:1fr 1fr}.hero-actions{grid-column:1/-1;justify-content:flex-end;margin-top:-6px}.chapter-links{grid-template-columns:1fr 1fr}.hub-der-ort{grid-column:auto;grid-row:auto}.hub-venue-photo{height:180px;min-height:0}.hub-fotos{grid-column:1/-1}.hub-heading{gap:6%}.guest-questions{gap:6%}
}
@media(max-width:700px){
 .header-inner{gap:5px;min-height:78px}.brand-seal{margin-right:auto}.header-motion{min-width:40px}.language-switch button{min-width:40px;width:40px}.language-switch{padding:0}.menu-toggle{padding-inline:7px}#navigation a{font-size:1rem}#navigation a[href="/rueckantwort/"]{justify-content:center;margin-top:5px}
 .hero-stage{height:450px}.hero-top{padding-top:25px}.hero-bottom{grid-template-columns:1fr;gap:19px;margin-top:-24px}.hero-date{grid-column:auto}.hero-address{grid-row:auto}.hero-actions{justify-content:space-between;grid-column:auto;width:100%}.hero-actions .button{flex:1;text-align:center;justify-content:center}.hero-actions .circle-link{grid-row:auto;grid-column:auto}.hero-actions .circle-icon{width:52px;height:52px}
 .anticipation{grid-template-columns:1fr;gap:26px;padding-block:48px 16px}.anticipation-copy{display:flex;justify-content:space-between;gap:20px;align-items:start}.anticipation-copy .eyebrow{margin-top:8px}.anticipation h2{font-size:2.65rem}.countdown-panel{padding:26px 16px 18px}.countdown-value{font-size:3.6rem}.countdown-label{font-size:.875rem}.countdown-caption{margin-top:20px;padding-top:15px}
 .chapter-index{padding-block:45px 64px}.hub-heading{grid-template-columns:1fr;gap:24px;margin-bottom:30px}.hub-heading h2{font-size:2.8rem}.hub-heading>p{font-size:1rem;max-width:100%}.chapter-links{grid-template-columns:1fr;gap:18px}.hub-der-ort{grid-column:auto;grid-row:auto}.hub-venue-photo{height:220px;min-height:0}.hub-card-content{padding:26px;gap:20px}.chapter-link h3{font-size:2.65rem}.card-bottom{padding-top:2px}
 body:not([data-page=home]) main>.section:first-child{padding-top:35px}.page-masthead .page-heading{font-size:3rem}.page-masthead{gap:10px;padding-bottom:25px}body:not([data-page=home]) .page-masthead{margin-bottom:40px}
 .schedule-item{gap:14px}.schedule-item>div{padding:22px 20px}.schedule-item h3{font-size:2rem}.schedule-note{padding-left:46px}.guest-questions{grid-template-columns:1fr;gap:30px;padding-bottom:65px}.questions-heading h2{font-size:2.8rem}.question summary{padding:21px;font-size:1.5rem}.question-answer{padding:0 21px 22px}
 .venue-heading{gap:28px}.venue-details{width:100%;padding:26px}.travel-details>div{padding:26px}.rsvp-content{width:100%;padding:27px 22px}.photo-invitation{padding:28px 23px}.photo-invitation>.display-copy{font-size:clamp(2.3rem,9vw,3.5rem)}
}
@media(prefers-reduced-motion:reduce){.chapter-link:hover,.chapter-link:focus-visible,.chapter-link.is-touched{transform:none}.chapter-link:before{display:none}}
.motion-off .chapter-link{transform:none!important}.motion-off .chapter-link:before{display:none}

/* A framed invitation with open space around the animated silk. */
.header-wordmark{font:300 1.15rem/1.15 var(--serif);color:var(--forest);white-space:nowrap;margin-left:-12px}
.header-wordmark small{display:block;font:300 .75rem/1.8 var(--sans);letter-spacing:.12em;color:var(--espresso);margin-top:3px}
.hero{padding-top:24px;padding-bottom:24px}
.hero:before{content:'';position:absolute;inset:24px 24px 0;border:1px solid var(--gold);border-radius:36px;pointer-events:none}
.hero-top{padding-top:30px}
.hero-stage{height:clamp(490px,43vw,690px)}
.hero-bottom{padding:24px 30px;background:rgba(241,232,216,.86);border:1px solid var(--gold);border-radius:24px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:var(--panel-shadow);margin-bottom:12px}
.hero-date{display:flex;gap:20px;align-items:center}
.invitation-date-number{font:300 4.8rem/.95 var(--serif);font-variant-numeric:lining-nums tabular-nums;color:var(--forest);letter-spacing:-.05em}
.invitation-date-copy{padding-left:18px;border-left:1px solid var(--gold)}
.hero-date .date-line{font-size:1.65rem}.hero-date .eyebrow{font-size:.8125rem}
.silk-cue{position:absolute;right:5%;top:8%;font-size:.8125rem;color:var(--forest);z-index:3;opacity:.7;pointer-events:none;transition:opacity .3s var(--motion-ease)}
.silk-held .silk-cue{opacity:0}
.hero-stage{touch-action:pan-y pinch-zoom;user-select:none;-webkit-user-select:none}
.hero-stage .silk-art img{-webkit-user-drag:none}
.anticipation{padding-top:68px}
.countdown-panel{padding:22px 22px 17px;background:rgba(241,232,216,.8)}
.countdown-units{gap:12px}
.countdown-units>div{border:1px solid var(--gold);border-radius:16px;padding:20px 4px 16px;background:var(--cream)}
.countdown-units>div+div{border-left:1px solid var(--gold)}
.countdown-value{font-size:clamp(3rem,5vw,5.3rem)}
.countdown-caption{border-top:0;margin-top:17px;padding-top:0}
.chapter-link,.venue-details,.countdown-panel{transition:transform .6s var(--motion-ease),box-shadow .5s var(--motion-ease)}
.chapter-link:hover{transform:perspective(1200px) rotateX(var(--card-x,0deg)) rotateY(var(--card-y,0deg)) translateY(-5px)}
.hub-venue-photo{transition:scale 1s var(--motion-ease);transform-origin:center}
.hub-der-ort:hover .hub-venue-photo{scale:1.025}
@media(max-width:1279px){.header-wordmark{display:none}}
@media(min-width:701px) and (max-width:1100px){.hero-bottom{grid-template-columns:1fr 1fr}.hero-actions{grid-column:1/-1;justify-content:flex-end}.invitation-date-number{font-size:4.2rem}.hero-bottom{gap:18px}.silk-cue{right:3%;top:4%}}
@media(max-width:700px){
 .hero{padding-top:12px;padding-bottom:18px}.hero:before{inset:12px 10px 0;border-radius:26px}.hero-top{padding-top:24px}.hero-stage{height:440px}.hero-bottom{padding:22px 20px;gap:22px;margin-top:-26px;grid-template-columns:1fr}.hero-date{gap:16px}.invitation-date-number{font-size:4.2rem}.invitation-date-copy{padding-left:16px}.hero-date .date-line{font-size:1.75rem}.hero-address{padding-top:17px;border-top:1px solid var(--gold)}
 .hero-actions{gap:12px}.hero-actions .button{padding-inline:12px}.hero-aside{display:none}.silk-cue{right:0;top:4%;font-size:.75rem}.anticipation{padding-top:48px}.countdown-panel{padding:16px 14px}.countdown-units{gap:8px}.countdown-units>div{padding:19px 2px 15px;border-radius:13px}.countdown-value{font-size:3.4rem}.countdown-label{font-size:.8125rem}.countdown-caption{font-size:.8125rem}
}
@media(max-width:360px){.hero-stage{height:410px}.hero-top .eyebrow{font-size:.6875rem;letter-spacing:.08em}.hero-date .date-line{font-size:1.5rem}.countdown-value{font-size:2.8rem}.countdown-panel{padding:14px 10px}.countdown-label{font-size:.75rem}}
.motion-off .silk-cue{display:none}.motion-off .hub-venue-photo{scale:1!important}
@media(prefers-reduced-motion:reduce){.silk-cue{display:none}.hub-venue-photo{scale:1!important}}
@media print{.silk-cue{display:none}}

@media(prefers-reduced-motion:reduce){.chapter-link:hover,.chapter-link:focus-visible,.chapter-link.is-touched{transform:none!important}}

/* Screenshot refinements: one separate, unframed RSVP link on the right. */
.header-rsvp{display:inline-flex;align-items:center;justify-content:center;min-height:44px;flex-shrink:0;padding:0 4px;font-size:.875rem;color:var(--forest);text-decoration:none;border:0;background:none;position:relative}
.header-rsvp:after{content:'';position:absolute;left:4px;right:4px;bottom:7px;height:1px;background:var(--forest);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--motion-ease)}
.header-rsvp:hover:after,.header-rsvp[aria-current=page]:after{transform:scaleX(1)}
#navigation{margin-left:auto;margin-right:auto}
.interlude-track{gap:clamp(70px,9vw,170px)}
/* The names enter in sequence; the ribbon continues to breathe and respond. */
@media(prefers-reduced-motion:no-preference){
 html:not(.motion-off) .name-first{animation:name-arrives 1.35s cubic-bezier(.45,0,.18,1) both}
 html:not(.motion-off) .name-second{animation:name-arrives 1.55s .18s cubic-bezier(.45,0,.18,1) both}
 html:not(.motion-off) .hero .name-join{animation:ampersand-arrives 1.5s .25s ease both}
 html:not(.motion-off) .motion-arrival{opacity:0;translate:0 38px;transition:opacity 1s var(--arrival-delay,0ms) var(--motion-ease),translate 1.15s  var(--arrival-delay,0ms) var(--motion-ease),transform .6s var(--motion-ease),box-shadow .5s var(--motion-ease)}
 html:not(.motion-off) .motion-arrival.has-arrived{opacity:1;translate:0 0}
 .interlude-track{animation:words-drift 16s ease-in-out infinite alternate;animation-play-state:paused}
 .interlude.flowing .interlude-track{animation-play-state:running}
}
@keyframes name-arrives{from{opacity:0;translate:0 48px}to{opacity:1;translate:0 0}}
@keyframes ampersand-arrives{from{opacity:0}to{opacity:1}}
@keyframes words-drift{from{translate:0 0}to{translate:-5% 0}}
.motion-off .motion-arrival{opacity:1;translate:none}.motion-off .interlude-track{animation:none;translate:none}
@media(max-width:1100px){.header-rsvp{font-size:.8125rem}.header-inner{gap:10px}}
@media(max-width:700px){.header-inner{gap:5px}.header-rsvp{font-size:.875rem;margin-left:3px}.header-motion{margin:0}.site-header .brand-seal{margin-right:auto}}
@media(max-width:520px){.header-motion{display:none}.header-rsvp{padding-inline:2px;margin-left:0}.header-inner{gap:5px}.language-switch button{min-width:40px;width:40px}.menu-toggle{padding-inline:5px}}
@media(max-width:380px){.header-inner.shell{width:calc(100% - 32px)}.header-rsvp{font-size:.8125rem}.header-inner{gap:4px}.brand-seal{width:44px;height:44px;min-height:44px}.language-switch button{min-width:38px;width:38px}}
@media(prefers-reduced-motion:reduce){.motion-arrival{opacity:1;translate:none}.interlude-track{animation:none;translate:none}}

/* The supplied photo album: full compositions, soft crossfades, and direct browsing. */
.has-photos .memories{grid-template-columns:.48fr 1fr;gap:6%;align-items:center}
.has-photos .memory-intro{grid-template-columns:1fr;gap:18px}
.has-photos .memory-intro>.eyebrow{grid-column:auto}
.has-photos .memory-number{font-size:clamp(8rem,15vw,14rem);line-height:.9}
.has-photos .memory-note{margin-top:10px}
.gallery-layout,.gallery-center{min-width:0}
.has-photos .slide-frame{aspect-ratio:4/3;flex:1;min-width:0;border:1px solid var(--gold);border-radius:20px;background:var(--cream);touch-action:pan-y pinch-zoom}
.slide-frame img{object-fit:contain;user-select:none;-webkit-user-drag:none}
.slide-arrow{width:44px;height:44px;min-width:44px;background:var(--cream);transition:background .25s var(--motion-ease),transform .25s var(--motion-ease)}
.slide-arrow:hover{background:rgba(47,93,58,.08);transform:scale(1.06)}
.gallery-caption-row{align-items:center;justify-content:space-between;margin-top:12px;min-height:44px;font-size:.875rem;flex-wrap:wrap}
.album-play{padding-inline:0;color:var(--forest);min-height:44px;font-size:.875rem;text-decoration:underline;text-underline-offset:5px}
.album-play:disabled{cursor:default;text-decoration:none}
.album-thumbnails{display:flex;gap:10px;overflow-x:auto;padding:9px 4px 13px;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:var(--forest) var(--cream)}
.album-thumbnail{position:relative;flex:0 0 76px;display:flex;flex-direction:column;gap:6px;align-items:center;padding:5px;border:1px solid transparent;border-radius:10px;background:var(--cream);scroll-snap-align:center;color:var(--espresso);transition:border-color .25s var(--motion-ease),transform .25s var(--motion-ease)}
.album-thumbnail img{width:64px;height:76px;object-fit:contain;border-radius:4px;pointer-events:none}
.album-thumbnail span{font-size:.75rem;line-height:1.3}
.album-thumbnail[aria-pressed=true]{border-color:var(--forest);color:var(--forest)}
.album-thumbnail:hover{transform:translateY(-3px)}
.album-thumbnail:focus-visible{outline-offset:2px}
.has-photos .gallery-empty{position:absolute;inset:0;display:grid;place-content:center;max-width:none;padding:24px;text-align:center;border:0}
.motion-off .slide-frame img{transition:none}.motion-off .album-thumbnail,.motion-off .slide-arrow{transform:none!important;transition:none}
@media(max-width:900px){.has-photos .memories{grid-template-columns:1fr;gap:30px}.has-photos .memory-intro{grid-template-columns:auto 1fr;gap:8px 30px}.has-photos .memory-intro>.eyebrow{grid-column:1/-1}.has-photos .memory-number{font-size:9rem}.has-photos .memory-note{margin:0}.gallery-layout{width:100%}}
@media(max-width:700px){.slideshow{gap:8px}.slide-arrow{width:44px;height:44px}.has-photos .slide-frame{aspect-ratio:3/4;border-radius:14px}.album-thumbnails{gap:7px}.album-thumbnail{flex-basis:65px}.album-thumbnail img{width:53px;height:65px}.gallery-caption-row{font-size:.8125rem}.album-play{font-size:.8125rem}}
@media(prefers-reduced-motion:reduce){.album-thumbnail,.slide-arrow{transform:none!important}.slide-frame img{transition:none}}

/* Preserve complete letterforms while the name planes move. No persistent mask. */
#names .name-first,#names .name-second{line-height:1.1;overflow:visible;clip-path:none}
#names .name-ink{overflow:visible}
.slide-frame img,.album-thumbnail img,.hero-portrait img{filter:none}

/* Keep verified capture years centred beneath the displayed photograph. */
.gallery-caption-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px}
.slide-counter{grid-column:1;grid-row:1}
.slide-caption{grid-column:2;grid-row:1;font:300 1.3rem/1.3 var(--serif);font-variant-numeric:lining-nums tabular-nums;color:var(--forest);text-align:center}
.album-play{grid-column:3;grid-row:1;justify-self:end;max-width:100%;text-align:right}

/* A compact library switch and a photo-first, edge-to-edge contact grid. */
.album-toolbar{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;margin-bottom:12px}
.album-library-title{font-family:var(--serif);font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.2;color:var(--forest)}
.album-total{display:block;font:300 .875rem/1.5 var(--sans);color:var(--espresso);margin-top:7px}
.album-view-toggle{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid rgba(47,93,58,.25);background:var(--cream);color:var(--forest);border-radius:100px;min-height:44px;padding:10px 17px;font-size:.875rem;flex-shrink:0;transition:background .2s var(--motion-ease)}
.album-view-toggle svg{width:18px;height:18px}.album-view-toggle:hover{background:rgba(47,93,58,.07)}
.has-photos .memories.library-mode{grid-template-columns:1fr;gap:14px}.library-mode .gallery-layout{width:100%}
.album-library{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
.library-photo{position:relative;display:flex;flex-direction:column;min-width:0;padding:0;border:0;background:var(--cream);color:var(--forest);text-align:center}
.library-photo img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;filter:none;border-radius:3px;transition:opacity .2s var(--motion-ease)}
.library-photo:hover img{opacity:.85}.library-photo:focus-visible{z-index:1;outline-offset:1px}
.library-year{display:block;min-height:25px;font-size:.8125rem;line-height:25px;width:100%;font-variant-numeric:tabular-nums}
.album-viewer{position:fixed;inset:0;margin:auto;width:min(1200px,96vw);max-width:96vw;height:94dvh;max-height:94dvh;padding:16px 22px;border:1px solid var(--gold);border-radius:18px;background:var(--cream);color:var(--espresso);overflow:hidden}
.album-viewer[open]{display:flex;flex-direction:column}.album-viewer::backdrop{background:rgba(67,41,29,.76);backdrop-filter:blur(10px)}
.viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;font-size:.875rem}
.album-viewer button{display:grid;place-items:center;width:44px;height:44px;padding:10px;border:0;border-radius:50%;background:var(--cream);color:var(--forest);flex-shrink:0}
.album-viewer button:hover{background:rgba(47,93,58,.08)}.album-viewer button svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.4}
.viewer-stage{display:flex;align-items:center;gap:12px;flex:1;min-height:0}.viewer-image-space{display:grid;place-items:center;flex:1;height:100%;min-width:0;min-height:0;touch-action:pan-y pinch-zoom}
.viewer-image{width:100%;height:100%;object-fit:contain;min-height:0;user-select:none;-webkit-user-drag:none}.viewer-status{text-align:center;font-size:1rem;max-width:30ch}.viewer-status:empty{display:none}.viewer-year{flex-shrink:0;text-align:center;min-height:38px;padding-top:8px;font:300 1.4rem/1.3 var(--serif);color:var(--forest)}
@media(max-width:900px){.album-library{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:600px){.album-library{grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}.album-view-toggle{padding:9px 12px}.album-viewer{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:0;border-radius:0;padding:max(12px,env(safe-area-inset-top)) 8px max(12px,env(safe-area-inset-bottom))}.viewer-stage{gap:0}.album-viewer .viewer-prev,.album-viewer .viewer-next{width:44px;padding:10px}.album-toolbar{gap:10px}}
@media(prefers-reduced-motion:no-preference){html:not(.motion-off) .album-library{animation:library-arrive .35s ease both}html:not(.motion-off) .album-viewer[open]{animation:library-arrive .25s ease both}}
@keyframes library-arrive{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}

/* Supplied location images and film, with their full compositions preserved. */
.location-media{margin-top:clamp(65px,9vw,130px)}
.location-media-heading{margin-bottom:32px}.location-media-heading h2{font:300 clamp(2.5rem,5vw,5rem)/1.1 var(--serif);color:var(--forest);margin-top:12px}
.location-photo-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:28px 38px;align-items:start}.location-house{grid-row:span 2;align-self:center}
.location-photo-grid img{width:100%;height:auto;border-radius:14px;filter:none}.location-media figcaption{display:flex;justify-content:space-between;gap:15px;margin-top:12px;font-size:.875rem;color:var(--espresso)}
.location-film{margin-top:50px}.location-film video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;border-radius:18px;background:var(--cream)}
@media(max-width:700px){.location-photo-grid{grid-template-columns:1fr;gap:28px}.location-house{grid-row:auto}.location-film{margin-top:32px}.location-film video{border-radius:12px}}

/* Separate touch targets, including a full-width navigation row on tablets. */
.header-inner{gap:clamp(16px,1.7vw,26px);flex-wrap:wrap}
#navigation{gap:12px 28px;flex-wrap:wrap;min-width:0}
#navigation a{min-width:48px;min-height:48px;padding-inline:8px;justify-content:center;white-space:nowrap;font-size:.875rem}
#navigation a:after{left:8px;width:calc(100% - 16px)}
@media(min-width:701px) and (max-width:1100px){
 .header-inner{gap:12px 20px;padding-top:12px}.brand-seal{margin-right:auto}
 #navigation{order:5;flex-basis:100%;margin:0;padding-bottom:12px;gap:12px 28px}
 #navigation a{font-size:.875rem}.day-date{top:170px}html{scroll-padding-top:160px}
}
@media(max-width:700px){
 .header-inner{gap:8px}#navigation.open{gap:12px 24px}#navigation a{justify-content:flex-start;font-size:1rem;padding-inline:10px}
 #navigation a:after{left:10px;width:calc(100% - 20px)}
}
@media(max-width:380px){.header-inner{gap:4px}}
