/* V6 — one photographed room, not a series of painted section backgrounds.
   All foreground cards have alpha; their surroundings stay open to the room. */
:root{--room-glass:rgba(40,10,8,.78);--room-ivory:rgba(255,248,235,.88);--room-text:#fff3de;--room-ink:#482919;--edge:clamp(24px,5vw,85px)}
body{background:#6e3d25 url('room-night-snow.jpg') center/cover no-repeat;color:var(--room-text);isolation:isolate}
.room-backdrop{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:url('room-night-snow.jpg') center/cover}
.room-scene{position:absolute;inset:0;display:block;opacity:0;transition:opacity 1.35s ease;will-change:opacity}
.room-scene.active{opacity:1}
.room-scene img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;animation:room-camera 36s ease-in-out infinite alternate;transform-origin:50% 55%}
.room-scene[data-scene-key=hero] img{object-position:65% center;transform-origin:70% 50%}
.room-shade{position:absolute;inset:0;background:linear-gradient(#3d160b14,#30100824);transition:background 1s}
.room-backdrop.is-closing .room-shade{background:#240b0873}
.room-fireglow{position:absolute;right:0;top:36%;width:25%;height:48%;background:radial-gradient(ellipse,#ffca673d,transparent 68%);mix-blend-mode:screen;filter:blur(20px);animation:hearth-flicker 4s infinite alternate;transition:left 1.2s,right 1.2s}
.room-backdrop[data-current=tree] .room-fireglow{left:27%;right:auto;width:25%}
.room-backdrop[data-current=fire] .room-fireglow{left:65%;right:auto;width:31%}
.room-sparkles{position:absolute;inset:0;opacity:.65;transition:opacity 1s}
.room-sparkles i{position:absolute;left:11%;top:21%;width:4px;height:4px;background:#fff5cb;border-radius:50%;box-shadow:0 0 12px 3px #f5c77488;animation:tree-glimmer 5s ease-in-out infinite}
.room-sparkles i:nth-child(2){left:18%;top:38%;animation-delay:-1.3s}.room-sparkles i:nth-child(3){left:8%;top:54%;animation-delay:-3s}.room-sparkles i:nth-child(4){left:23%;top:13%;animation-delay:-2s}.room-sparkles i:nth-child(5){left:29%;top:64%;animation-delay:-4.2s}
.room-backdrop[data-current=fire] .room-sparkles{opacity:0}.room-backdrop[data-current=hero] .room-sparkles{opacity:0}
@keyframes room-camera{from{transform:scale(1)}to{transform:scale(1.025)}}
/* Every chapter is transparent. Only small, bounded reading surfaces have glass. */
main>section,.hero,.family-mantel,.night-story,.letter,.film-chapter,.archive,.give,.share,footer{background:transparent;border:0;box-shadow:none}
main>section[class]::before,main>section[class]::after,.hero:before,.hero:after{content:none;background:none;box-shadow:none}
.hero-base,.hero-film,.give-back,.share-photo,.film-chapter>img{display:none}
.room-divider{height:105px;background:transparent;border:0;box-shadow:none}.room-divider span,.room-divider:after{display:none}
.chapter,.family-mantel,.give,.share{padding-block:130px}
.wrap{max-width:1600px}
/* Glass surfaces are deliberately <=640px, leaving the chair, tree or hearth visible. */
.hero-copy,.mantel-layout,.night-copy,.triptych,.letter>.wrap,.film-copy,.archive>.wrap,.give-copy,.give-card,.share>.wrap{
 border:1px solid #e6c27a9c;border-radius:4px;background:var(--room-glass);color:var(--room-text);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 18px 55px #21080533;max-width:640px;padding:38px;outline:0;
}
.eyebrow,.gold{color:#f3d191}.fine{color:#efdabc}
.hero{min-height:1000px;height:100svh;max-height:none;display:flex;align-items:center;padding:195px 0 130px;overflow:visible}
.hero-copy{width:min(540px,calc(100% - var(--edge)*2));max-width:540px;margin:0 0 0 var(--edge);padding:35px 38px;pointer-events:auto}
.hero-copy>*{max-width:100%;pointer-events:auto}.hero-copy>.eyebrow{font-size:10px;max-width:100%;margin-bottom:16px;color:#f6d49b}
.hero h1{font-size:clamp(72px,6vw,91px);line-height:.88;color:#fff4e2;text-shadow:none;animation:none}
.hero h1 .script{color:#ffe0a0;text-shadow:none}.hero .subtitle,.hero .subtitle span{color:#fff1d6;text-shadow:none}
.hero-copy .intro-line{color:#f6e4c9}.hero-actions{max-width:100%;gap:18px}.hero-actions .text-link,.hero-actions .text-link span{color:#ffdda0}.hero-statline{color:#f5d5a0;max-width:100%}
.hero-bells{left:calc(var(--edge) + 240px);top:113px;width:100px;height:90px;margin:0}
.hero-foot{bottom:22px;left:var(--edge);right:var(--edge);color:#fff1d5;text-shadow:0 1px 6px #281108}
.hero-foot p,.hero-foot .eyebrow,.hero-time,.hero-time span{color:#ffe6b6}
/* Photographs and story rest to the right of the tree/chair, not over them. */
.family-mantel{border:0;color:var(--room-text)}
.mantel-layout{display:block;width:calc(100% - var(--edge)*2);margin:0 var(--edge) 0 auto}
.family-mantel figure{max-width:370px}.family-mantel img{background:rgba(255,242,218,.8);box-shadow:0 12px 30px #16050455}
.family-mantel figcaption,.family-mantel .eyebrow,.family-mantel p:not([class]),.mantel-heading .script,.family-mantel .text-link,.family-mantel .text-link span{color:#f5d6a2}
.mantel-heading{font-size:48px;margin-top:26px}.family-mantel .eyebrow{margin-top:20px}
.night-grid{display:grid;grid-template-columns:minmax(0,640px);justify-content:end;gap:100px;align-items:start}
.night-copy{width:100%}.night-copy>p{color:#f9e8cf;font-size:17px}.night-story .eyebrow,.night-story .gold,.night-story .text-link span{color:#f4d49b}.night-story .text-link{color:#fff1db}
.night-copy h2{font-size:67px}.eve-strip figcaption,.photo-note{color:#f5d7a7}.eve-strip img{background:#ffefcf33}
.triptych{padding:28px;width:100%;margin:0}.photo-tall{height:auto;max-height:none;width:100%;padding:4px;background:#ffefcf22;border:5px ridge #c9a14a;box-shadow:none}.photo-tall img{height:auto;max-height:650px;object-fit:contain}.photo-note{display:none}
.chapter-end{width:fit-content;max-width:640px;margin:50px 0 0 auto;padding:18px 25px;background:var(--room-glass);border:1px solid #e6c27a88;color:#ffe1a6;backdrop-filter:blur(6px)}
.letter>.wrap{width:calc(100% - var(--edge)*2);margin:0 var(--edge) 0 auto;padding:38px}
.letter-layout{grid-template-columns:minmax(0,1fr);gap:38px}.letter-left h2{font-size:64px}.letter-left .script{display:block;margin:10px 0 0;color:#ffdc9c}
.letter .eyebrow,.signature,.letter-family figcaption,.letter small{color:#f2d39e}.letter-family{max-width:400px}.letter-family img{background:#fff2d966;border:5px ridge #c9a14a}
.letter-body .opening,.letter-body p:not(.opening){color:#fff0db}.letter-body .opening{font-size:36px}.letter-body p:not(.opening){font-size:17px}
.facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;border-color:#e6c27a66}.fact:last-child{grid-column:1/-1}.fact strong{color:#ffdda0;font-size:40px}.fact span{color:#f0d6ae}
.film-chapter{display:flex;align-items:center;min-height:900px;height:auto;max-height:none;padding:130px var(--edge)}
.film-copy{width:100%;max-width:590px;padding:38px;margin:0 0 0 auto}.film-copy h2{font-size:65px}.film-copy .eyebrow,.film-copy h2 .script{color:#f3d191}.film-watch-title,.film-copy .fine{color:#fff0d5}
.archive>.wrap{width:calc(100% - var(--edge)*2);margin:0 var(--edge) 0 auto;padding:32px}
.section-head{display:block}.section-head h2{font-size:66px}.section-head p{max-width:100%;margin-top:24px;color:#f7e4c7}.archive .eyebrow,.archive .gold,.archive .fine,.memory small{color:#f2d39e}
.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.memory .image,.memory:nth-child(4n+2) .image,.memory:nth-child(4n+3) .image{height:260px}.memory .caption{color:#fff0db;font-size:21px}.memory small{font-size:10px}
.timeline button{color:#efd5a9}.timeline button[aria-pressed=true],.timeline button[aria-pressed=true]:hover{background:#7a0f1770;color:#fff1d9}.timeline button:hover{background:#f3d19122;color:#fff4e1}.empty{color:#ffdfaa}
/* The calm left wall stays behind giving; the burning hearth remains visible at right. */
.give-layout{display:grid;grid-template-columns:minmax(0,640px);justify-content:start;gap:45px}
.give-copy{width:100%}.give-copy h2{font-size:67px;margin-top:20px}.give-copy h2 .script{display:block;margin-left:0;color:#ffdda0}.give-copy h2 .script br{display:none}.give-copy>p{color:#f9e6c7;font-size:17px}
.give-card{width:100%;max-width:640px;margin:0;background:var(--room-ivory);color:var(--room-ink);padding:30px 24px;box-shadow:0 18px 55px #21080533}
.give-card h3{font-size:43px;padding-right:120px}.give-card>.eyebrow{padding-right:130px}.give-card>.description{padding-right:100px;color:#614425}.give-card:before{border-color:#b68d4880}
.card-bells{width:155px;height:170px;top:-4px;right:0}.presents{gap:10px;padding-top:18px}.gift-tag{font-size:25px;padding:6px 10px;right:0}.present-label{font-size:23px}.present-hint{font-size:10px}.gift-reveal{font-size:clamp(25px,17cqw,48px)}
#giving-amount{font-size:27px}.give-card .seal{color:#81232b}.give-card .eyebrow,.give-card .description,.preview-note{color:#654324}
.share>.wrap{width:calc(100% - var(--edge)*2);margin:0 0 0 var(--edge);padding:38px;text-align:left}
.share h2{font-size:64px}.share h2 .script,.closing{color:#ffdda0}.share .eyebrow,.share .fine,#share-status{color:#f3d39d}.share>div>p{color:#fae8ce;margin-inline:0}.share-actions{justify-content:start;gap:10px}.share-actions a,.share-actions button{background:#6c182167;color:#fff0d5;min-width:0;padding:12px 18px;font-size:22px}.closing{font-size:43px}
footer{position:relative;display:flex;padding:40px var(--edge) 85px;gap:20px;color:#ffe4b8;text-shadow:0 1px 6px #240c06;font-size:12px}
/* Header remains translucent over the photograph, never a solid painted band. */
.preview{background:rgba(55,13,10,.7);color:#ffe6bb;backdrop-filter:blur(5px)}
header{background:linear-gradient(#3a100c99,transparent);color:#fff1da}nav a:last-child{background:#66141e66}.experience-controls{background:#54151bc7}
@media(min-width:1800px){.hero-copy{max-width:540px}.hero h1{font-size:91px}}
@media(min-width:701px) and (max-width:1100px){.hero{min-height:1000px}.hero-copy{max-width:490px;width:calc(100% - var(--edge)*2);padding:30px}.hero h1{font-size:78px}.hero-bells{top:125px;left:calc(var(--edge) + 240px);width:100px;height:90px}.hero-copy>*{max-width:100%}.hero-actions{max-width:100%}.night-copy h2{font-size:60px}.mantel-layout,.letter>.wrap,.archive>.wrap{max-width:570px}.give-copy,.give-card{max-width:600px}}
@media(max-width:700px){
 :root{--edge:20px}
 body,.room-backdrop{background-image:url('room-mobile.jpg')}
 .room-scene img{object-position:50% center;animation-duration:42s}.room-scene[data-scene-key=hero] img{object-position:50% center}
 .room-fireglow,.room-backdrop[data-current=tree] .room-fireglow,.room-backdrop[data-current=fire] .room-fireglow{left:auto;right:-5%;top:41%;width:32%;height:36%}
 .room-sparkles i{left:13%;top:25%}.room-sparkles i:nth-child(2){left:23%;top:37%}.room-sparkles i:nth-child(3){left:9%;top:49%}.room-sparkles i:nth-child(4){left:28%;top:19%}.room-sparkles i:nth-child(5){left:31%;top:58%}
 header{background:linear-gradient(#47100ed9,#47100e55);padding-inline:20px}.preview{font-size:9px}header .wordmark{max-width:165px}header .experience-controls{background:#54151b99}nav a:last-child{background:#6b172158}
 .hero{display:block;min-height:1120px;height:auto;max-height:none;padding:430px 0 95px;background:transparent}
 .hero-copy{display:block;width:calc(100% - 40px);max-width:640px;padding:26px 23px;margin:0 20px;background:rgba(40,10,8,.76)}
 .hero-copy>*{width:auto;max-width:100%;margin-inline:0}.hero-copy>.eyebrow{order:initial;width:auto;max-width:100%;margin:0 0 16px;color:#f8dca7;font-size:9px}
 .hero h1{width:100%;max-width:100%;margin:0;font-size:62px;line-height:.9;color:#fff2dc}.hero h1 .serif-line{display:block}.hero h1 .serif-line:first-child:after{content:none}.hero h1 .script{color:#ffdda0}
 .hero .subtitle{order:initial;width:auto;max-width:100%;margin:18px 0 0;font-size:24px;color:#fff0d2}.hero .subtitle span{color:#fff0d2;font-size:19px}.hero-copy .intro-line{margin:16px 0 0;color:#f5e1c1;font-size:12px}
 .hero-actions{width:100%;max-width:100%;margin:20px 0 0;gap:15px;flex-wrap:wrap}.hero-actions .text-link,.hero-actions .text-link span{color:#ffdda0}
 .hero-statline{width:100%;max-width:100%;margin:20px 0 0;color:#f4d29c;border-color:#e6c27a55}
 .hero-bells{top:175px;left:auto;right:20px;width:95px;height:85px;margin:0}
 .hero-film,.hero-base{display:none}
 .hero-foot{order:initial;position:relative;inset:auto;margin:28px 20px 0;padding:18px 0 0;background:transparent;gap:15px}.hero-foot p{font-size:19px}
 .chapter,.family-mantel,.give,.share{padding-block:90px}.room-divider{height:90px}
 .hero-copy,.mantel-layout,.night-copy,.triptych,.letter>.wrap,.film-copy,.archive>.wrap,.give-copy,.give-card,.share>.wrap{max-width:calc(100vw - 40px);min-width:0;border-radius:3px}
 .mantel-layout,.letter>.wrap,.archive>.wrap,.share>.wrap{width:calc(100% - 40px);margin-inline:20px;padding:25px 23px}
 .mantel-layout{display:block}.family-mantel figure{max-width:280px}.family-mantel figcaption{font-size:23px}.mantel-heading{font-size:42px}.mantel-heading .script{font-size:.85em}
 .night-grid{grid-template-columns:minmax(0,1fr);gap:70px}.night-copy{padding:25px 23px}.night-copy h2{font-size:52px}.night-copy>p{font-size:16px}.eve-strip{gap:7px}.eve-strip img{height:90px}.eve-strip figcaption{font-size:14px}.triptych{padding:17px}.chapter-end{max-width:100%;font-size:24px;padding:15px;text-align:center;gap:10px}
 .letter-left h2{font-size:49px}.letter-family{max-width:100%}.letter-body .opening{font-size:30px}.letter-body p:not(.opening){font-size:17px}.signature{font-size:35px}.facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px}.fact strong{font-size:30px}.fact span{font-size:9px;letter-spacing:.06em}
 .film-chapter{min-height:790px;height:auto;padding:90px 20px;align-items:end}.film-copy{width:100%;padding:25px 23px;margin:0}.film-copy h2{font-size:52px}.film-watch-title{font-size:26px}
 .section-head h2{font-size:51px}.section-head p{font-size:14px}.gallery-grid{gap:14px}.memory .image,.memory:nth-child(4n+2) .image,.memory:nth-child(4n+3) .image{height:200px!important}.memory .caption{font-size:18px}.memory small{font-size:10px}.timeline{max-width:100%}.archive-note{display:block}
 .give-layout{grid-template-columns:minmax(0,1fr);gap:45px}.give-copy{padding:25px 23px}.give-copy h2{font-size:53px}.give-copy>p{font-size:16px}
 .give-card{padding:26px 12px 24px;width:100%;max-width:100%;background:var(--room-ivory)}.give-card h3{font-size:33px;padding-right:94px}.give-card>.eyebrow{padding-right:105px}.give-card>.description{padding-right:75px;font-size:12px}.card-bells{width:140px;height:160px;right:-8px;top:0}
 .presents{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;padding-top:42px}.present-choice{width:calc((100% - 10px)/2);grid-column:1/-1;justify-self:center}.gift-tag{font-size:19px;padding:4px 6px}.present-label{font-size:18px}.gift-reveal{font-size:clamp(18px,17cqw,32px)}
 .share h2{font-size:49px}.share .share-actions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;max-width:100%;margin:25px 0 15px}.share-actions a,.share-actions button{padding:12px 8px;font-size:21px}.closing{font-size:35px}
 footer{display:block;padding:40px 20px 85px;font-size:11px}footer span{display:block}footer span:last-child{text-align:left;margin-top:14px}
}
@media(max-width:370px){.hero h1{font-size:54px}.hero-copy{padding-inline:20px}.give-card h3{font-size:29px}.present-label{font-size:16px}.gift-tag{font-size:17px}.night-copy h2,.section-head h2,.share h2{font-size:45px}}
@media(prefers-reduced-motion:reduce){.room-scene{transition:none}.room-scene img,.room-fireglow,.room-sparkles i{animation:none!important}}
.reduced .room-scene,.paused .room-scene{transition:none}
/* Approved family archive: preserve every real frame, including faces. */
.archive .memory .image,.archive .memory:nth-child(4n+2) .image,.archive .memory:nth-child(4n+3) .image{height:auto!important;overflow:visible}
.archive .memory img,.archive .memory[data-year] img,.archive .memory:hover img,.archive .memory:focus-visible img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;filter:none;transform:none}
.modal-content img{filter:none}
/* A jewel-like velvet track with a restrained gold sheen; zero means zero fill. */
.christmas-goal{margin:30px 0 12px;padding:20px 18px 17px;border:1px solid #b68d4899;border-radius:4px;background:linear-gradient(135deg,#fff9e366,#e1bf7752);box-shadow:inset 0 1px 0 #fffdf066,0 5px 17px #7a40120d;min-width:0}
.goal-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.goal-heading h4{margin:0;color:#791c24;font:600 25px/1.15 Portrait,Georgia,serif;max-width:100%}
#raised-label{font:600 17px/1.3 Portrait,Georgia,serif;color:#694020;font-variant-numeric:lining-nums tabular-nums}
.goal-meter{position:relative;height:17px;border-radius:20px;overflow:hidden;background:linear-gradient(#61101b,#8e2631 60%,#5b0c16);border:1px solid #c39a47;box-shadow:inset 0 2px 5px #29020a99,0 1px 0 #fff7dc;isolation:isolate}
.goal-fill{display:block;position:relative;height:100%;width:0;background:linear-gradient(100deg,#a37729,#e6c27a 30%,#fff0b1 65%,#c9a14a);border-radius:inherit;box-shadow:0 0 12px #e6c27a66;transition:width 1.2s ease}
.goal-meter:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 25%,#fff5c712 45%,#fff7d62b 50%,transparent 70%);transform:translateX(-100%);animation:goal-sheen 8s ease-in-out infinite}
.goal-note{font:11px/1.55 Arial,sans-serif;color:#684927;margin:11px 0 0}
.family-gift-note{font:12px/1.7 Arial,sans-serif;color:#58391f;text-align:center;margin:16px auto 0;max-width:460px;overflow-wrap:break-word}
@keyframes goal-sheen{0%,35%{transform:translateX(-100%)}65%,100%{transform:translateX(100%)}}
@media(max-width:700px){.christmas-goal{padding:17px 13px;margin-top:28px}.goal-heading{gap:9px}.goal-heading h4{font-size:23px}.goal-note{font-size:10px}.family-gift-note{font-size:11px;padding-inline:4px}}
@media(prefers-reduced-motion:reduce){.goal-meter:after{animation:none;opacity:0}.goal-fill{transition:none}}
/* Exact personal QR link: amount is entered at PayPal, never encoded in the URL. */
.give-card{max-width:860px}
.give-layout{grid-template-columns:minmax(0,860px)}
.gift-and-qr{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,300px);align-items:center;gap:25px;margin-top:16px}
.gift-and-qr .presents{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;padding-top:24px}
.gift-and-qr .present-choice{grid-column:1/-1;width:calc((100% - 10px)/2);justify-self:center}
.paypal-qr{width:100%;max-width:300px;min-width:0;align-self:center;justify-self:center;margin:0}
.qr-image-link{display:block;border-radius:4px;box-shadow:0 12px 25px #62351426;overflow:hidden;background:#fff8eb}
.paypal-qr img{display:block;width:100%;height:auto;filter:none}
.paypal-qr figcaption{text-align:center;color:#6e281d;margin-top:14px;line-height:1.5}
.paypal-qr figcaption strong{display:block;font:600 25px/1.2 Portrait,Georgia,serif}
.paypal-qr figcaption span{display:block;margin-top:7px;font:11px/1.5 Arial,sans-serif;color:#674627}
.paypal-amount-note{text-align:center;font:600 23px/1.35 Portrait,Georgia,serif;color:#80212a;max-width:100%;margin:20px auto 0}
.paypal-direct{text-align:center;margin:12px 0 0}.paypal-direct a{color:#7a0f17;font:600 22px/1.3 Portrait,Georgia,serif;border-bottom:1px solid #b68d48;padding:8px 4px;display:inline-block;min-height:44px}
@media(max-width:1100px){.gift-and-qr{grid-template-columns:minmax(0,1fr);gap:28px}.paypal-qr{width:300px;max-width:100%}.give-card{max-width:640px}.give-layout{grid-template-columns:minmax(0,640px)}}
@media(max-width:700px){.give-layout{grid-template-columns:minmax(0,1fr)}.give-card{max-width:100%}.gift-and-qr{gap:30px;margin-top:0;grid-template-columns:minmax(0,1fr)}.gift-and-qr .presents{padding-top:42px}.paypal-qr{width:300px;max-width:100%}.paypal-qr figcaption strong{font-size:24px}.paypal-amount-note{font-size:22px;padding-inline:4px}.gift-tag{font-size:19px}.present-label{font-size:18px}}
/* Giving r2: one balanced row, the action before the QR, no orphaned Other box. */
.gift-and-qr{grid-template-columns:minmax(0,1fr);gap:23px;align-items:start}
.gift-and-qr .presents{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding-top:6px;width:100%}
.gift-and-qr .present-choice{grid-column:auto;width:100%;justify-self:stretch}
.gift-and-qr .present-choice .present{height:100%}
.gift-and-qr #custom-panel{margin:0 auto;width:min(100%,420px)}
.gift-action-bar{position:sticky;top:12px;z-index:8;background:rgba(255,248,235,.97);border:1px solid #b68d48a8;border-radius:5px;padding:17px 22px 20px;box-shadow:0 7px 22px #6b351c18;scroll-margin-block:24px;min-width:0;width:100%}
.gift-action-bar #giving-amount{font-size:27px;margin:0;min-height:0}
.gift-action-bar .paypal-amount-note{font-size:21px;margin:8px 0 0}
.gift-action-bar .button{max-width:440px;display:flex;margin:13px auto 0;min-height:52px}
.gift-and-qr .paypal-qr{width:300px;max-width:100%;justify-self:center;margin-top:4px}
@media(max-width:1100px){.gift-and-qr .presents{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.gift-and-qr .present-choice{grid-column:auto;width:100%}}
@media(max-width:700px){
 .gift-and-qr{gap:20px}
 .gift-and-qr .presents{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding-top:18px}
 .gift-and-qr .present-choice{grid-column:auto;width:100%}
 .gift-and-qr .present{padding-bottom:4px}
 .gift-and-qr .present-label{font-size:17px;min-height:70px;line-height:1.15;margin-top:6px}
 .gift-and-qr .present-hint{font-size:9px;margin-top:7px}
 .gift-and-qr .gift-tag{font-size:18px;padding:4px 5px}
 .gift-action-bar{top:8px;padding:14px 13px 16px;scroll-margin-block:16px}
 .gift-action-bar #giving-amount{font-size:25px}
 .gift-action-bar .paypal-amount-note{font-size:20px;margin-top:7px}
 .gift-action-bar .button{font-size:14px;min-height:52px;margin-top:12px}
}
@media(max-width:370px){.gift-and-qr .present-label{font-size:15px}.gift-and-qr .gift-tag{font-size:16px}}
/* Tour polish: equal album frames and caption baselines, without cropping real faces. */
.archive .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:20px 18px}
.archive .memory{display:flex;flex-direction:column;align-self:stretch;width:100%;min-width:0;height:100%}
.archive .memory .image{position:relative;display:block;width:100%;height:auto!important;aspect-ratio:4/3;flex-shrink:0;overflow:hidden;background:rgba(40,10,8,.52);border:2px solid #c9a14a;border-radius:2px;box-shadow:0 8px 18px #20080522}
.archive .memory .image img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;object-position:center;filter:none;transform:none}
.archive .memory .caption{display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;gap:6px;height:100px;min-height:100px;padding:13px 4px 15px;font-size:20px;line-height:1.3;color:#fff0db}
.archive .memory .memory-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;height:2.6em;min-height:2.6em;line-height:1.3;flex-shrink:0}
.archive .memory .caption small{display:block;min-height:16px;line-height:16px;margin:0;font-size:10px;color:#f2d39e;align-self:start}
@media(max-width:700px){
 .archive .gallery-grid{gap:17px 14px}
 .archive .memory .caption{font-size:18px;padding:12px 2px 14px}
 /* More breathing room at 390px: two full-size gifts, then centered Other. */
 .gift-and-qr .presents{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;padding-top:12px}
 .gift-and-qr .present-choice{grid-column:1/-1;width:calc((100% - 14px)/2);justify-self:center}
 .gift-and-qr .present-label{font-size:19px;min-height:58px;line-height:1.2;margin-top:9px}
 .gift-and-qr .present-hint{font-size:10px;line-height:1.4;margin-top:8px}
 .gift-and-qr .gift-tag{font-size:20px;padding:5px 7px}
}
@media(max-width:370px){.gift-and-qr .present-label{font-size:17px}.gift-and-qr .gift-tag{font-size:18px}}
/* Mobile row spacing: the closed render has 271px of transparent lid headroom.
   Remove that empty space for Other; restore it when the lid is actually open. */
@media(max-width:700px){
 .gift-and-qr .presents{gap:14px}
 .gift-and-qr .present{padding-bottom:0}
 .gift-and-qr .present-label{min-height:0}
 .gift-and-qr .present-choice .present[aria-expanded=false] .gift-stage{margin-top:calc(-100% * 271 / 650)}
 .gift-and-qr .present-choice .present[aria-expanded=true] .gift-stage{margin-top:0}
}
