.portrait-stage{min-height:auto;padding-block:10vh;grid-template-columns:minmax(300px,500px) minmax(260px,1fr);justify-content:center}
.arch-photo{width:min(500px,100%);height:auto;aspect-ratio:3/4}
.arch-photo img{object-position:center top}
.photo-grid{max-width:1050px;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.card img,.card.tall img,.card.wide img{height:auto;aspect-ratio:3/4;object-fit:contain;object-position:center;background:#f3e5df}
.card.wide{grid-column:span 2;max-width:680px;justify-self:center;width:100%}
.card.wide img{aspect-ratio:4/3}
.commitments{max-width:700px;margin:48px auto;display:grid;grid-template-columns:1fr 1fr;gap:12px;text-align:left}
.commitments div{padding:24px;border:1px solid #dbc8bb;background:rgba(247,233,232,.45)}
.commitments span{font:italic 22px "Cormorant Garamond";color:var(--rose)}
.commitments strong{display:block;margin:5px 0 7px;font:600 23px "Cormorant Garamond";color:var(--wine)}
.promise-card .commitments p{font:15px/1.55 "DM Sans";margin:0}
@media(max-width:760px){.portrait-stage{grid-template-columns:1fr;padding-inline:7vw}.arch-photo{width:min(88vw,430px);height:auto;margin:auto}.photo-grid{grid-template-columns:1fr;max-width:430px}.card.wide{grid-column:auto}.card img,.card.tall img,.card.wide img{height:auto;aspect-ratio:auto;max-height:68vh}.commitments{grid-template-columns:1fr}.promise-card .commitments p{font-size:14px}}
.petal-field{position:absolute;inset:0;pointer-events:none;z-index:30;overflow:hidden}.petal{position:absolute;top:-40px;color:#f2b4c5;font:28px "Cormorant Garamond";opacity:0;animation:petalFall 3.8s ease-in forwards}@keyframes petalFall{10%{opacity:.9}100%{transform:translate(var(--drift),110vh) rotate(540deg);opacity:0}}
.intro.opening .intro-copy,.intro.opening .open-label,.intro.opening .hint{filter:blur(5px);opacity:.25;transition:.8s}.intro.opening{background:radial-gradient(circle at 50% 50%,#a83e65 0,#55152e 80%)}
.card{cursor:zoom-in;transition:transform .45s,box-shadow .45s}.card:hover{transform:translateY(-10px) rotate(0);box-shadow:0 28px 55px rgba(80,25,43,.22)}.card img{transition:filter .4s}.card:hover img{filter:saturate(1.06)}
.future-section{padding:14vh 7vw;background:linear-gradient(160deg,#fffaf2 0,#f5e2df 100%);position:relative;overflow:hidden}.future-section:before{content:"nous";position:absolute;right:-2vw;top:2vh;font:italic 28vw/.8 "Cormorant Garamond";color:transparent;-webkit-text-stroke:1px rgba(111,29,59,.08)}.future-heading{max-width:850px;margin:0 auto 80px;text-align:center;position:relative}.future-heading h2{font:600 clamp(55px,8vw,100px)/.86 "Cormorant Garamond";color:var(--deep);margin:25px 0}.future-heading h2 em{font-weight:500;color:var(--wine)}.future-heading p{font:italic 22px "Cormorant Garamond"}.future-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;max-width:1100px;margin:auto;position:relative}.future-card{min-height:360px;padding:35px;background:rgba(255,250,242,.82);border:1px solid #dcc5bb;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:0 20px 50px rgba(73,22,40,.08)}.future-card:nth-child(2){transform:translateY(38px)}.future-card span{position:absolute;top:25px;font:italic 24px "Cormorant Garamond";color:#c69b90}.future-card i{font:65px "Cormorant Garamond";color:var(--rose);margin-bottom:auto}.future-card h3{font:600 31px/1 "Cormorant Garamond";color:var(--wine);margin:15px 0}.future-card p{font-size:14px;line-height:1.7}.photo-viewer{width:min(92vw,760px);border:0;padding:18px 18px 28px;background:#fffaf2;color:var(--ink);box-shadow:0 35px 100px rgba(35,6,17,.55);overflow:visible}.photo-viewer::backdrop{background:rgba(43,8,22,.82);backdrop-filter:blur(9px)}.photo-viewer img{display:block;width:100%;max-height:75vh;object-fit:contain;background:#eadbd3}.photo-viewer p{text-align:center;font:italic 24px "Cormorant Garamond";margin:20px 15px 0}.viewer-close{position:absolute;right:-15px;top:-15px;width:42px;height:42px;border-radius:50%;border:0;background:var(--wine);color:white;font-size:27px;cursor:pointer}.viewer-heart{position:absolute;left:-18px;bottom:-25px;color:#e4a2b3;font:70px "Cormorant Garamond";transform:rotate(-16deg)}.answer strong{display:block;font:600 clamp(42px,8vw,76px) "Cormorant Garamond";letter-spacing:.22em;color:var(--wine);margin-left:.22em}.answer span{display:block;font:italic 24px/1.4 "Cormorant Garamond";color:var(--ink);margin-top:12px}.answer.show{font-size:inherit;margin-top:35px}.name-letter{display:inline-block;opacity:0;transform:translateY(22px) scale(.6);animation:nameReveal .65s forwards}@keyframes nameReveal{to{opacity:1;transform:none}}@media(max-width:760px){.future-cards{grid-template-columns:1fr}.future-card:nth-child(2){transform:none}.future-card{min-height:280px}.photo-viewer{padding:10px 10px 22px}.photo-viewer img{max-height:70vh}}
