:root {
    --la-ink: #0b0a09;
    --la-night: #11100e;
    --la-night-soft: #191713;
    --la-ivory: #f7f2e9;
    --la-paper: #efe6d7;
    --la-gold: #d7b46a;
    --la-gold-light: #f1d79c;
    --la-champagne: #cdbda1;
    --la-muted: #877d6d;
    --la-line: rgba(198, 166, 101, .25);
    --la-serif: "Cormorant Garamond", Georgia, serif;
    --la-sans: "Manrope", Arial, sans-serif;
    --la-radius: 28px;
    --la-shadow: 0 30px 80px rgba(5, 4, 3, .18);
}

* { box-sizing: border-box; }
.la-html { scroll-behavior: smooth; }
.la-body { margin: 0; overflow-x: hidden; background: var(--la-night); color: var(--la-ink); font-family: var(--la-sans); font-weight: 400; -webkit-font-smoothing: antialiased; }
.la-body.la-opening-active { overflow: hidden; }
.la-body button, .la-body input, .la-body select, .la-body textarea { font: inherit; }
.la-body button, .la-body a { -webkit-tap-highlight-color: transparent; }
.la-body img { display: block; max-width: 100%; }
.la-body a { color: inherit; text-decoration: none; }
.la-page { overflow: clip; background: var(--la-ivory); }
.la-shell { position: relative; z-index: 2; width: min(1180px, calc(100% - 64px)); margin-inline: auto; }
.la-section { position: relative; padding: 128px 0; }
.la-eyebrow { display: inline-flex; align-items: center; gap: 12px; color: var(--la-gold); font-size: 10px; font-weight: 600; letter-spacing: .28em; line-height: 1.4; text-transform: uppercase; }
.la-eyebrow::before { width: 26px; height: 1px; content: ""; background: currentColor; opacity: .65; }
.la-section-heading { max-width: 620px; margin: 0 auto 68px; text-align: center; }
.la-section-heading h2, .la-gift__copy h2, .la-form-card h2, .la-wishes h2, .la-story__intro h2 { margin: 14px 0 18px; font: 500 clamp(44px, 6vw, 72px)/.92 var(--la-serif); letter-spacing: -.035em; }
.la-section-heading p, .la-gift__copy > p, .la-form-card > p, .la-story__intro > p { margin: 0 auto; max-width: 540px; color: var(--la-muted); font-size: 14px; line-height: 1.9; }
.la-section-heading--light { color: var(--la-ivory); }
.la-section-heading--light p { color: rgba(247, 242, 233, .6); }

.la-scroll-progress { position: fixed; inset: 0 0 auto; z-index: 120; height: 2px; background: rgba(255,255,255,.05); }
.la-scroll-progress span { display: block; width: 0; height: 100%; background: linear-gradient(90deg, var(--la-gold), var(--la-gold-light)); box-shadow: 0 0 16px var(--la-gold); }
.la-petals { position: fixed; inset: 0; z-index: 18; overflow: hidden; pointer-events: none; }
.la-petal { position: absolute; top: -36px; width: 8px; height: 14px; border-radius: 90% 10% 80% 20%; opacity: 0; background: linear-gradient(145deg, #f7e8d5, #a77e48); filter: drop-shadow(0 3px 4px rgba(0,0,0,.18)); animation: la-petal-fall linear forwards; }
@keyframes la-petal-fall { 0% { opacity: 0; transform: translate3d(0,-5vh,0) rotate(0deg); } 12% { opacity: .68; } 100% { opacity: 0; transform: translate3d(var(--la-drift),108vh,0) rotate(var(--la-spin)); } }

.la-opening { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; min-height: 100svh; overflow: hidden; color: var(--la-ivory); background: #080705; transition: opacity .9s ease, visibility .9s ease; }
.la-opening.is-leaving { opacity: 0; visibility: hidden; pointer-events: none; }
.la-opening__image, .la-opening__veil { position: absolute; inset: 0; width: 100%; height: 100%; }
.la-opening__image { object-fit: cover; opacity: .44; filter: saturate(.55) contrast(1.08); animation: la-opening-zoom 15s ease-out both; }
.la-opening__veil { background: radial-gradient(circle at 50% 45%, rgba(0,0,0,.05), rgba(4,3,2,.82) 78%), linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.4)); }
@keyframes la-opening-zoom { from { transform: scale(1.08); } to { transform: scale(1); } }
.la-opening__content { position: relative; z-index: 2; width: min(720px, calc(100% - 40px)); padding: 64px 20px; text-align: center; }
.la-opening__content > * { animation: la-opening-rise .9s cubic-bezier(.2,.75,.25,1) backwards; }
.la-opening__content > *:nth-child(2) { animation-delay: .12s; }.la-opening__content > *:nth-child(3) { animation-delay: .22s; }.la-opening__content > *:nth-child(4) { animation-delay: .3s; }.la-opening__content > *:nth-child(5) { animation-delay: .38s; }.la-opening__content > *:nth-child(6) { animation-delay: .46s; }
@keyframes la-opening-rise { from { opacity: 0; transform: translateY(22px); } }
.la-monogram { display: flex; align-items: center; justify-content: center; gap: 12px; width: 82px; height: 82px; margin: 28px auto; border: 1px solid rgba(215,180,106,.5); border-radius: 50%; font: 500 25px/1 var(--la-serif); box-shadow: inset 0 0 0 6px rgba(255,255,255,.03), 0 0 40px rgba(215,180,106,.12); }
.la-monogram i { width: 1px; height: 26px; background: var(--la-gold); transform: rotate(28deg); }
.la-opening__names { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: clamp(12px,3vw,32px); margin: 0; font: 400 clamp(54px,9vw,106px)/.72 var(--la-serif); letter-spacing: -.05em; }
.la-opening__names span:first-child { text-align: right; }.la-opening__names span:last-child { text-align: left; }
.la-opening__names b { color: var(--la-gold); font-size: .56em; font-style: italic; font-weight: 400; }
.la-opening__date { margin: 28px 0 0; color: rgba(255,255,255,.7); font-size: 11px; letter-spacing: .25em; text-transform: uppercase; }
.la-opening__guest { width: min(360px,100%); margin: 34px auto 22px; padding: 16px 20px; border-block: 1px solid rgba(215,180,106,.25); }
.la-opening__guest small { display: block; margin-bottom: 5px; color: rgba(255,255,255,.55); font-size: 9px; letter-spacing: .2em; text-transform: uppercase; }
.la-opening__guest strong { font: 500 22px/1.2 var(--la-serif); }
.la-opening__note { position: absolute; z-index: 3; right: 20px; bottom: 18px; left: 20px; color: rgba(255,255,255,.35); font-size: 8px; letter-spacing: .12em; text-align: center; text-transform: uppercase; }
.la-opening__orbit { position: absolute; border: 1px solid rgba(215,180,106,.15); border-radius: 50%; }
.la-opening__orbit::after { position: absolute; top: 50%; left: -3px; width: 6px; height: 6px; content: ""; border-radius: 50%; background: var(--la-gold); box-shadow: 0 0 16px var(--la-gold); }
.la-opening__orbit--one { width: min(85vw,720px); aspect-ratio: 1; animation: la-spin 28s linear infinite; }
.la-opening__orbit--two { width: min(110vw,920px); aspect-ratio: 1; animation: la-spin-reverse 42s linear infinite; }
@keyframes la-spin { to { transform: rotate(360deg); } } @keyframes la-spin-reverse { to { transform: rotate(-360deg); } }

.la-button { position: relative; display: inline-flex; min-height: 50px; align-items: center; justify-content: center; gap: 18px; padding: 0 25px; overflow: hidden; border: 0; border-radius: 999px; cursor: pointer; font-size: 10px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; transition: transform .3s ease, box-shadow .3s ease, background .3s ease, color .3s ease; }
.la-button::before { position: absolute; inset: 0; content: ""; background: linear-gradient(110deg, transparent 20%, rgba(255,255,255,.4) 50%, transparent 80%); transform: translateX(-140%); transition: transform .65s ease; }
.la-button:hover::before { transform: translateX(140%); }
.la-button:hover { transform: translateY(-3px); }
.la-button:active { transform: translateY(0) scale(.97); }
.la-button svg { width: 17px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.la-button--gold { color: #17130c; background: linear-gradient(135deg, var(--la-gold-light), #b98b3e); box-shadow: 0 12px 35px rgba(185,139,62,.25); }
.la-button--gold:hover { box-shadow: 0 17px 45px rgba(185,139,62,.4); }
.la-button--outline { border: 1px solid var(--la-line); color: inherit; background: transparent; }
.la-button--outline:hover { color: var(--la-ivory); background: var(--la-night); }

.la-hero { position: relative; display: grid; min-height: 100svh; align-items: center; overflow: hidden; color: var(--la-ivory); background: radial-gradient(circle at 75% 44%, #29241c 0, #151310 31%, #090807 67%); }
.la-hero::before { position: absolute; inset: 0; content: ""; opacity: .16; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E"); pointer-events: none; }
.la-hero__glow { position: absolute; top: 10%; left: 53%; width: 500px; height: 500px; border-radius: 50%; background: rgba(201,155,77,.16); filter: blur(110px); }
.la-hero__grid { display: grid; grid-template-columns: minmax(0,.92fr) minmax(420px,1.08fr); gap: 70px; align-items: center; padding-block: 100px; }
.la-hero__copy { position: relative; z-index: 4; }
.la-display-names { display: flex; width: min(100%,600px); flex-direction: column; align-items: flex-start; margin: 28px 0; font: 400 clamp(82px,10vw,138px)/.64 var(--la-serif); letter-spacing: -.065em; }
.la-display-names span { display: block; max-width: 100%; overflow-wrap: anywhere; }.la-display-names span:last-child { align-self: flex-end; text-align: right; }
.la-display-names b { position: static; align-self: center; margin: .05em 0 .08em; color: var(--la-gold); font-size: .42em; font-style: italic; font-weight: 400; line-height: .5; }
.la-hero__quote { max-width: 485px; margin: 0 0 28px; color: rgba(247,242,233,.62); font: italic 400 18px/1.7 var(--la-serif); }
.la-hero__date { display: flex; align-items: center; gap: 16px; margin-bottom: 30px; color: var(--la-champagne); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; }
.la-hero__date i { width: 38px; height: 1px; background: var(--la-line); }
.la-text-link { display: inline-flex; align-items: center; gap: 12px; padding-bottom: 7px; border-bottom: 1px solid rgba(215,180,106,.45); color: var(--la-gold-light); font-size: 10px; letter-spacing: .17em; text-transform: uppercase; transition: gap .25s ease; }
.la-text-link:hover { gap: 18px; }

.la-phone-scene { position: relative; display: grid; min-height: 650px; place-items: center; perspective: 1100px; }
.la-phone { position: relative; z-index: 3; width: 294px; padding: 9px; border: 1px solid rgba(255,255,255,.2); border-radius: 46px; background: linear-gradient(145deg, #332d24, #080706 55%, #3b3225); box-shadow: -35px 55px 100px rgba(0,0,0,.58), inset 0 0 0 2px rgba(255,255,255,.04), 0 0 0 1px rgba(215,180,106,.2); transform: rotateY(-8deg) rotateX(3deg) rotateZ(2deg); transition: transform .7s cubic-bezier(.2,.8,.2,1); }
.la-phone-scene:hover .la-phone { transform: rotateY(0) rotateX(0) rotateZ(0) translateY(-8px); }
.la-phone__screen { position: relative; height: 585px; overflow: hidden; border-radius: 37px; background: #262119; }
.la-phone__screen img { width: 100%; height: 100%; object-fit: cover; }
.la-phone__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.12), transparent 30%, rgba(0,0,0,.88)); }
.la-phone__speaker { position: absolute; z-index: 5; top: 20px; left: 50%; width: 82px; height: 23px; border-radius: 14px; background: #090807; transform: translateX(-50%); }
.la-story-bars { position: absolute; z-index: 3; top: 18px; right: 16px; left: 16px; display: flex; gap: 4px; }
.la-story-bars i { flex: 1; height: 2px; border-radius: 5px; background: rgba(255,255,255,.32); }.la-story-bars i:first-child { background: #fff; }
.la-story-copy { position: absolute; z-index: 3; right: 22px; bottom: 42px; left: 22px; text-align: center; }
.la-story-copy small { display: block; margin-bottom: 10px; color: var(--la-gold-light); font-size: 8px; letter-spacing: .18em; text-transform: uppercase; }
.la-story-copy strong { display: block; font: 500 34px/1 var(--la-serif); }.la-story-copy em { color: var(--la-gold); font-size: .75em; font-weight: 400; }
.la-phone__placeholder { display: grid; width: 100%; height: 100%; place-items: center; background: linear-gradient(145deg,#584a34,#191611); }.la-phone__placeholder span { color: var(--la-gold); font: 400 70px var(--la-serif); }
.la-orbit-ring { position: absolute; border: 1px solid rgba(215,180,106,.16); border-radius: 50%; }
.la-orbit-ring--a { width: 520px; aspect-ratio: 1; animation: la-spin 35s linear infinite; }.la-orbit-ring--a::before { position: absolute; top: 50%; left: -4px; width: 7px; height: 7px; content: ""; border-radius: 50%; background: var(--la-gold); box-shadow: 0 0 18px var(--la-gold); }
.la-orbit-ring--b { width: 400px; aspect-ratio: 1; border-style: dashed; animation: la-spin-reverse 50s linear infinite; }
.la-float-card { position: absolute; z-index: 5; padding: 17px 20px; border: 1px solid rgba(255,255,255,.14); border-radius: 16px; color: var(--la-ivory); background: rgba(32,28,23,.64); box-shadow: 0 18px 45px rgba(0,0,0,.3); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
.la-float-card small { display: block; margin-bottom: 5px; color: rgba(255,255,255,.48); font-size: 7px; letter-spacing: .2em; text-transform: uppercase; }.la-float-card strong { font: 500 15px var(--la-serif); }
.la-float-card--date { top: 21%; left: 4%; animation: la-float 5s ease-in-out infinite; }.la-float-card--rsvp { right: 1%; bottom: 20%; display: flex; align-items: center; gap: 10px; animation: la-float 6s ease-in-out -2s infinite; }.la-float-card--rsvp > span { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; color: #19130a; background: var(--la-gold); }
@keyframes la-float { 50% { transform: translateY(-13px) rotate(1deg); } }
.la-scroll-cue { position: absolute; z-index: 3; bottom: 26px; left: 50%; display: flex; align-items: center; gap: 14px; color: rgba(255,255,255,.38); font-size: 7px; letter-spacing: .24em; text-transform: uppercase; transform: translateX(-50%); }.la-scroll-cue i { display: block; width: 1px; height: 34px; overflow: hidden; background: rgba(255,255,255,.13); }.la-scroll-cue i::after { display: block; width: 100%; height: 50%; content: ""; background: var(--la-gold); animation: la-scroll-line 2s ease-in-out infinite; }
@keyframes la-scroll-line { 0% { transform: translateY(-100%); } 100% { transform: translateY(200%); } }
.la-corner-flora { position: absolute; z-index: 2; width: 330px; height: 330px; opacity: .38; pointer-events: none; }.la-corner-flora--top { top: -130px; right: -100px; transform: rotate(-20deg); }.la-corner-flora--bottom { bottom: -150px; left: -80px; transform: rotate(150deg); }
.la-corner-flora i { position: absolute; bottom: 0; left: 50%; width: 40%; height: 88%; border: 1px solid var(--la-gold); border-width: 0 0 1px 1px; border-radius: 0 0 0 100%; transform-origin: 0 100%; }.la-corner-flora i::after { position: absolute; top: 8%; left: -25%; width: 46%; height: 20%; content: ""; border: 1px solid var(--la-gold); border-radius: 100% 0 100% 0; transform: rotate(28deg); }.la-corner-flora i:nth-child(2) { transform: rotate(35deg) scale(.8); }.la-corner-flora i:nth-child(3) { transform: rotate(68deg) scale(.65); }

.la-countdown { overflow: hidden; background: var(--la-paper); }
.la-countdown::before { position: absolute; inset: 28px; content: ""; border: 1px solid rgba(138,111,61,.15); pointer-events: none; }
.la-countdown__grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; max-width: 880px; margin: auto; }
.la-time-card { position: relative; padding: 36px 18px; overflow: hidden; border: 1px solid rgba(117,89,44,.15); border-radius: 50% 50% var(--la-radius) var(--la-radius); text-align: center; background: rgba(255,255,255,.38); box-shadow: 0 18px 50px rgba(80,61,31,.06); }
.la-time-card::after { position: absolute; top: -50%; left: -50%; width: 200%; height: 50%; content: ""; background: linear-gradient(120deg,transparent,rgba(255,255,255,.8),transparent); transform: rotate(12deg); transition: top .8s ease; }.la-time-card:hover::after { top: 120%; }
.la-time-card strong { display: block; color: #3b3022; font: 400 clamp(46px,6vw,68px)/1 var(--la-serif); font-variant-numeric: tabular-nums; }
.la-time-card span { color: var(--la-muted); font-size: 8px; letter-spacing: .2em; text-transform: uppercase; }
.la-countdown__status { margin: 20px 0 0; color: var(--la-muted); font-size: 12px; text-align: center; }

.la-couple { overflow: hidden; color: var(--la-ivory); background: var(--la-night); }
.la-couple::after { position: absolute; inset: auto -5% -340px; height: 550px; content: ""; border: 1px solid var(--la-line); border-radius: 50% 50% 0 0; }
.la-couple__grid { display: grid; grid-template-columns: minmax(0,1fr) 100px minmax(0,1fr); align-items: center; }
.la-person-card { position: relative; min-height: 430px; padding: 74px 55px 52px; overflow: hidden; border: 1px solid rgba(255,255,255,.09); border-radius: 220px 220px 24px 24px; text-align: center; background: linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.018)); }
.la-person-card--accent { background: linear-gradient(180deg, rgba(215,180,106,.13), rgba(255,255,255,.018)); }
.la-person-card__number { position: absolute; top: 26px; right: 28px; color: rgba(255,255,255,.25); font-size: 9px; letter-spacing: .16em; }
.la-person-card__initial { display: grid; width: 118px; height: 118px; place-items: center; margin: 0 auto 28px; border: 1px solid var(--la-line); border-radius: 50%; color: var(--la-gold); font: italic 400 72px/1 var(--la-serif); background: radial-gradient(circle,rgba(215,180,106,.1),transparent 70%); }
.la-person-card small { color: var(--la-gold); font-size: 8px; letter-spacing: .26em; text-transform: uppercase; }
.la-person-card h3 { max-width: 420px; margin: 14px auto 17px; font: 500 clamp(34px,4vw,48px)/1 var(--la-serif); }
.la-person-card p { max-width: 400px; margin: auto; color: rgba(255,255,255,.54); font-size: 12px; line-height: 1.8; }
.la-couple__amp { position: relative; z-index: 2; display: grid; place-items: center; }.la-couple__amp span { display: grid; width: 70px; height: 70px; place-items: center; border: 1px solid var(--la-line); border-radius: 50%; color: var(--la-gold); font: italic 40px var(--la-serif); background: var(--la-night); }.la-couple__amp i { position: absolute; z-index: -1; width: 1px; height: 250px; background: var(--la-line); }

.la-events { background: var(--la-ivory); }
.la-events__line { position: absolute; top: 0; left: 50%; width: 1px; height: 70px; background: var(--la-line); }
.la-events__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; }
.la-event-card { position: relative; padding: 50px; overflow: hidden; border: 1px solid rgba(124,94,44,.14); border-radius: var(--la-radius); background: rgba(255,255,255,.52); box-shadow: var(--la-shadow); transition: transform .45s ease, box-shadow .45s ease; }
.la-event-card:hover { transform: translateY(-8px); box-shadow: 0 40px 100px rgba(50,37,17,.16); }
.la-event-card__top { display: flex; align-items: center; gap: 14px; color: var(--la-gold); }.la-event-card__top span { font: 500 25px var(--la-serif); }.la-event-card__top i { flex: 1; height: 1px; background: var(--la-line); }.la-event-card__top small { font-size: 7px; letter-spacing: .2em; text-transform: uppercase; }
.la-event-card h3 { margin: 40px 0 4px; font: 500 clamp(43px,5vw,60px)/1 var(--la-serif); }.la-event-card__date { margin: 0 0 25px; color: var(--la-gold); font-size: 9px; letter-spacing: .15em; text-transform: uppercase; }.la-event-card__meta { display: flex; align-items: center; gap: 9px; margin: 0 0 28px; color: var(--la-muted); font-size: 12px; }.la-event-card__meta span { color: var(--la-gold); }.la-event-card h4 { margin: 0 0 10px; font: 600 18px/1.4 var(--la-serif); }.la-event-card__address { min-height: 48px; margin: 0 0 30px; color: var(--la-muted); font-size: 11px; line-height: 1.7; }

.la-story { color: var(--la-ivory); background: #17140f; }
.la-story__layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 100px; }
.la-story__intro { position: sticky; top: 100px; height: max-content; padding-top: 25px; }.la-story__intro h2 { font-size: clamp(54px,7vw,88px); }.la-story__intro > p { color: rgba(255,255,255,.5); }.la-story__seal { display: flex; width: 116px; height: 116px; align-items: center; justify-content: center; gap: 8px; margin-top: 45px; border: 1px solid var(--la-line); border-radius: 50%; color: var(--la-gold); font: 400 30px var(--la-serif); animation: la-pulse 4s ease-in-out infinite; }.la-story__seal i { font-size: 18px; font-weight: 400; }
@keyframes la-pulse { 50% { box-shadow: 0 0 0 18px rgba(215,180,106,.035); } }
.la-timeline { position: relative; }.la-timeline::before { position: absolute; top: 0; bottom: 0; left: 34px; width: 1px; content: ""; background: linear-gradient(var(--la-line),rgba(215,180,106,.03)); }
.la-timeline__item { position: relative; display: grid; grid-template-columns: 70px 1fr; gap: 28px; padding-bottom: 34px; }
.la-timeline__marker { position: relative; z-index: 2; display: grid; width: 70px; height: 70px; place-items: center; border: 1px solid var(--la-line); border-radius: 50%; background: #17140f; }.la-timeline__marker span { color: var(--la-gold); font: 500 17px var(--la-serif); }
.la-timeline__card { padding: 32px 36px; border: 1px solid rgba(255,255,255,.08); border-radius: 20px; background: rgba(255,255,255,.035); transition: background .3s ease, transform .3s ease; }.la-timeline__card:hover { background: rgba(255,255,255,.065); transform: translateX(6px); }.la-timeline__card small { color: var(--la-gold); font-size: 8px; letter-spacing: .2em; text-transform: uppercase; }.la-timeline__card h3 { margin: 7px 0 12px; font: 500 30px/1.1 var(--la-serif); }.la-timeline__card p { margin: 0; color: rgba(255,255,255,.52); font-size: 12px; line-height: 1.85; }

.la-gallery { background: var(--la-night); color: var(--la-ivory); }
.la-gallery__grid { display: grid; grid-template-columns: repeat(12,1fr); grid-auto-rows: 220px; gap: 14px; }
.la-gallery__item { position: relative; grid-column: span 4; margin: 0; padding: 0; overflow: hidden; border: 0; border-radius: 18px; cursor: zoom-in; background: #29251e; }.la-gallery__item:nth-child(1) { grid-column: span 7; grid-row: span 2; }.la-gallery__item:nth-child(2) { grid-column: span 5; }.la-gallery__item:nth-child(3) { grid-column: span 5; }.la-gallery__item:nth-child(6), .la-gallery__item:nth-child(7) { grid-column: span 6; }
.la-gallery__item img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.72); transition: transform .8s cubic-bezier(.2,.7,.2,1), filter .5s ease; }.la-gallery__item:hover img { transform: scale(1.06); filter: saturate(1); }.la-gallery__item::after { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg,transparent 45%,rgba(0,0,0,.55)); opacity: .6; }.la-gallery__item > span { position: absolute; z-index: 2; right: 16px; bottom: 16px; display: flex; width: 48px; height: 48px; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; color: white; font-size: 14px; backdrop-filter: blur(8px); transition: width .3s ease, border-radius .3s ease; }.la-gallery__item > span i { width: 0; overflow: hidden; font-style: normal; font-size: 8px; letter-spacing: .12em; text-transform: uppercase; transition: width .3s ease; }.la-gallery__item:hover > span { width: 88px; border-radius: 30px; }.la-gallery__item:hover > span i { width: 40px; }
.la-lightbox { position: fixed; inset: 0; z-index: 300; display: grid; place-items: center; padding: 30px; background: rgba(5,4,3,.94); backdrop-filter: blur(12px); }.la-lightbox[hidden] { display: none; }.la-lightbox img { max-width: min(1100px,90vw); max-height: 86vh; border-radius: 12px; box-shadow: 0 30px 100px #000; }.la-lightbox button { position: absolute; top: 22px; right: 28px; width: 46px; height: 46px; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; color: white; background: transparent; cursor: pointer; font: 300 30px/1 var(--la-sans); }

.la-gift { overflow: hidden; background: var(--la-paper); }.la-gift::before { position: absolute; top: -150px; right: -140px; width: 430px; height: 430px; content: ""; border: 1px solid var(--la-line); border-radius: 50%; box-shadow: 0 0 0 50px rgba(215,180,106,.03), 0 0 0 100px rgba(215,180,106,.02); }
.la-gift__layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; align-items: center; }.la-gift__copy h2 { font-size: clamp(54px,7vw,80px); }.la-gift__copy > p { margin-left: 0; }
.la-gift__address { display: flex; gap: 16px; margin-top: 32px; padding: 20px 0; border-top: 1px solid rgba(117,89,44,.15); }.la-gift__address > span { display: grid; flex: 0 0 38px; height: 38px; place-items: center; border: 1px solid var(--la-line); border-radius: 50%; color: var(--la-gold); }.la-gift__address small { color: var(--la-muted); font-size: 8px; letter-spacing: .15em; text-transform: uppercase; }.la-gift__address p { margin: 5px 0 0; font-size: 11px; line-height: 1.7; }
.la-gift__cards { display: grid; gap: 18px; }.la-bank-card { position: relative; min-height: 230px; padding: 34px; overflow: hidden; border: 1px solid rgba(255,255,255,.12); border-radius: 22px; color: var(--la-ivory); background: linear-gradient(135deg,#28231b,#0f0e0c); box-shadow: 0 24px 60px rgba(20,15,8,.18); }.la-bank-card:nth-child(2) { margin-left: 55px; background: linear-gradient(135deg,#4c3b23,#17120d); }.la-bank-card__shine { position: absolute; top: -100px; right: -60px; width: 270px; height: 270px; border: 1px solid rgba(215,180,106,.18); border-radius: 50%; box-shadow: 0 0 0 30px rgba(215,180,106,.025), 0 0 0 60px rgba(215,180,106,.02); }.la-bank-card__head { position: relative; display: flex; justify-content: space-between; margin-bottom: 40px; color: var(--la-gold-light); font: 500 20px var(--la-serif); }.la-bank-card > small { display: block; margin-bottom: 7px; color: rgba(255,255,255,.4); font-size: 7px; letter-spacing: .16em; text-transform: uppercase; }.la-bank-card > strong { display: block; font: 500 clamp(24px,3vw,34px)/1 var(--la-serif); letter-spacing: .08em; }.la-bank-card > p { margin: 9px 0 0; color: rgba(255,255,255,.52); font-size: 9px; text-transform: uppercase; }.la-copy { position: absolute; right: 28px; bottom: 28px; padding: 8px 14px; border: 1px solid rgba(255,255,255,.14); border-radius: 30px; color: rgba(255,255,255,.68); background: rgba(255,255,255,.04); cursor: pointer; font-size: 8px; letter-spacing: .1em; text-transform: uppercase; }.la-copy b { display: none; color: var(--la-gold-light); }.la-copy.is-copied span { display: none; }.la-copy.is-copied b { display: inline; }

.la-response { color: var(--la-ivory); background: #11100e; }
.la-response__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; align-items: start; }.la-form-card, .la-wishes { padding: 52px; border: 1px solid rgba(255,255,255,.08); border-radius: var(--la-radius); background: rgba(255,255,255,.035); }.la-form-card h2, .la-wishes h2 { font-size: clamp(43px,5vw,62px); }.la-form-card > p { margin: 0 0 34px; color: rgba(255,255,255,.5); }
.la-field { display: block; margin-bottom: 18px; }.la-field > span, .la-attendance legend { display: block; margin-bottom: 9px; color: rgba(255,255,255,.6); font-size: 9px; letter-spacing: .09em; text-transform: uppercase; }.la-field small { opacity: .55; }.la-field input, .la-field select, .la-field textarea { width: 100%; min-height: 51px; padding: 14px 16px; outline: 0; border: 1px solid rgba(255,255,255,.1); border-radius: 12px; color: white; background: rgba(255,255,255,.035); transition: border-color .2s ease, background .2s ease; }.la-field textarea { resize: vertical; }.la-field select { color-scheme: dark; }.la-field input:focus, .la-field select:focus, .la-field textarea:focus { border-color: rgba(215,180,106,.65); background: rgba(255,255,255,.06); }.la-field input::placeholder, .la-field textarea::placeholder { color: rgba(255,255,255,.25); }.la-form-row { display: grid; grid-template-columns: 1fr .65fr; gap: 14px; }.la-attendance { margin: 0 0 20px; padding: 0; border: 0; }.la-attendance legend { padding: 0; }.la-attendance { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }.la-attendance legend { grid-column: 1/-1; }.la-attendance input { position: absolute; opacity: 0; pointer-events: none; }.la-attendance label span { display: grid; min-height: 45px; place-items: center; padding: 8px; border: 1px solid rgba(255,255,255,.1); border-radius: 10px; color: rgba(255,255,255,.55); cursor: pointer; font-size: 9px; text-align: center; transition: .2s ease; }.la-attendance input:checked + span { border-color: var(--la-gold); color: #16120c; background: var(--la-gold); }.la-submit { width: 100%; }.la-submit i { display: none; width: 14px; height: 14px; border: 2px solid currentColor; border-top-color: transparent; border-radius: 50%; animation: la-spin .8s linear infinite; }.la-submit.is-loading i { display: block; }.la-submit.is-loading { pointer-events: none; opacity: .7; }.la-form-status { min-height: 18px; margin: 13px 0 0; font-size: 10px; text-align: center; }.la-form-status.is-success { color: #abd7a0; }.la-form-status.is-error { color: #ee9c91; }
.la-wishes__list { display: grid; max-height: 396px; gap: 12px; margin-top: 26px; padding-right: 4px; overflow-y: auto; scrollbar-color: var(--la-gold) transparent; }.la-wishes__list article { display: grid; grid-template-columns: 38px 1fr; gap: 13px; padding: 15px; border: 1px solid rgba(255,255,255,.06); border-radius: 14px; background: rgba(255,255,255,.025); animation: la-opening-rise .45s ease both; }.la-wish-avatar { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; color: var(--la-gold); background: rgba(215,180,106,.1); font: 500 19px var(--la-serif); }.la-wishes__list strong { color: var(--la-gold-light); font: 500 15px var(--la-serif); }.la-wishes__list article p { margin: 4px 0 0; color: rgba(255,255,255,.48); font-size: 10px; line-height: 1.7; }.la-wishes__empty { color: rgba(255,255,255,.35); font-size: 10px; font-style: italic; }

.la-closing { display: grid; min-height: 92svh; place-items: center; overflow: hidden; color: white; text-align: center; background: #090807; }.la-closing > img, .la-closing__shade { position: absolute; inset: 0; width: 100%; height: 100%; }.la-closing > img { object-fit: cover; opacity: .4; filter: saturate(.45); }.la-closing__shade { background: radial-gradient(circle at center,rgba(0,0,0,.15),rgba(0,0,0,.86)), linear-gradient(180deg,#11100e 0,transparent 30%,#080706 100%); }.la-closing__content { position: relative; z-index: 2; width: min(700px,calc(100% - 40px)); }.la-closing h2 { margin: 18px 0; font: 400 clamp(65px,10vw,120px)/.75 var(--la-serif); letter-spacing: -.05em; }.la-closing p { max-width: 540px; margin: 30px auto; color: rgba(255,255,255,.6); font: italic 400 17px/1.7 var(--la-serif); }.la-closing__names { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; margin: 38px 0; font: 400 clamp(36px,5vw,62px)/1 var(--la-serif); }.la-closing__names span:first-child { text-align: right; }.la-closing__names span:last-child { text-align: left; }.la-closing__names b { color: var(--la-gold); font-size: .7em; font-style: italic; font-weight: 400; }.la-closing__content > small { color: rgba(255,255,255,.3); font-size: 7px; letter-spacing: .2em; text-transform: uppercase; }

.la-music { position: fixed; z-index: 90; top: 22px; right: 22px; display: grid; width: 46px; height: 46px; place-items: center; border: 1px solid rgba(215,180,106,.3); border-radius: 50%; color: var(--la-gold); background: rgba(15,13,10,.68); box-shadow: 0 12px 32px rgba(0,0,0,.2); cursor: pointer; backdrop-filter: blur(10px); }.la-music__bars { display: flex; height: 18px; align-items: end; gap: 2px; }.la-music__bars i { width: 2px; height: 50%; background: currentColor; animation: la-bars .7s ease-in-out infinite alternate; }.la-music__bars i:nth-child(2) { animation-delay: -.25s; }.la-music__bars i:nth-child(3) { animation-delay: -.4s; }.la-music__bars i:nth-child(4) { animation-delay: -.1s; }.la-music__muted { display: none; width: 20px; fill: currentColor; stroke: currentColor; stroke-width: 1.5; }.la-music.is-paused .la-music__bars { display: none; }.la-music.is-paused .la-music__muted { display: block; }
@keyframes la-bars { to { height: 100%; } }
.la-dock { position: fixed; z-index: 80; bottom: max(18px, env(safe-area-inset-bottom)); left: 50%; display: flex; align-items: center; gap: 4px; padding: 6px; border: 1px solid rgba(255,255,255,.1); border-radius: 999px; color: white; background: rgba(15,13,11,.78); box-shadow: 0 18px 50px rgba(0,0,0,.28); backdrop-filter: blur(18px); transform: translateX(-50%) translateY(120px); transition: transform .6s cubic-bezier(.2,.8,.2,1); }.la-dock.is-visible { transform: translateX(-50%) translateY(0); }.la-dock a { display: grid; width: 54px; height: 45px; place-items: center; border-radius: 30px; color: rgba(255,255,255,.48); transition: color .2s ease, background .2s ease; }.la-dock a span { font-size: 14px; line-height: 1; }.la-dock a small { font-size: 6px; letter-spacing: .08em; text-transform: uppercase; }.la-dock a.is-active { color: #17120b; background: var(--la-gold); }

.la-reveal { opacity: 0; transform: translateY(34px); transition: opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1); }.la-reveal--delay { transition-delay: .14s; }.la-reveal.is-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 980px) {
    .la-section { padding: 100px 0; }.la-shell { width: min(100% - 40px,760px); }
    .la-hero { min-height: auto; }.la-hero__grid, .la-story__layout, .la-gift__layout, .la-response__grid { grid-template-columns: 1fr; }
    .la-hero__grid { gap: 25px; padding-block: 115px 70px; }.la-hero__copy { text-align: center; }.la-display-names { margin-inline: auto; }.la-hero__quote { margin-inline: auto; }.la-hero__date { justify-content: center; }
    .la-phone-scene { min-height: 640px; transform: scale(.92); }
    .la-couple__grid { grid-template-columns: 1fr; gap: 22px; }.la-couple__amp { height: 60px; }.la-couple__amp i { width: 160px; height: 1px; }.la-person-card { min-height: 380px; padding: 62px 36px 45px; }
    .la-story__layout { gap: 60px; }.la-story__intro { position: static; text-align: center; }.la-story__intro > p { margin-inline: auto; }.la-story__seal { margin-inline: auto; }
    .la-gift__layout { gap: 45px; }.la-gift__copy { text-align: center; }.la-gift__copy > p { margin-inline: auto; }.la-gift__address { max-width: 520px; margin-inline: auto; text-align: left; }
}

@media (max-width: 700px) {
    .la-shell { width: min(100% - 28px,560px); }.la-section { padding: 84px 0; }.la-section-heading { margin-bottom: 46px; }.la-section-heading h2, .la-gift__copy h2, .la-story__intro h2 { font-size: 46px; }
    .la-opening__names { gap: 9px; font-size: clamp(42px,14vw,68px); }.la-opening__content { padding-block: 40px; }.la-monogram { width: 68px; height: 68px; margin-block: 22px; }.la-opening__guest { margin-top: 27px; }.la-opening__date { margin-top: 22px; font-size: 8px; }.la-opening__orbit--one { width: 125vw; }.la-opening__orbit--two { width: 170vw; }
    .la-hero__grid { padding-top: 100px; }.la-display-names { width: 100%; font-size: clamp(68px,22vw,98px); }.la-display-names b { margin-block: .12em; }.la-hero__quote { font-size: 16px; }.la-phone-scene { min-height: 540px; transform: scale(.8); margin: -40px -20px; }.la-phone { width: 276px; }.la-phone__screen { height: 550px; }.la-orbit-ring--a { width: 445px; }.la-orbit-ring--b { width: 345px; }.la-float-card--date { left: -1%; }.la-float-card--rsvp { right: -2%; }.la-scroll-cue { display: none; }
    .la-countdown::before { inset: 12px; }.la-countdown__grid { grid-template-columns: repeat(2,1fr); gap: 10px; }.la-time-card { padding: 28px 10px; }.la-time-card strong { font-size: 52px; }
    .la-person-card { min-height: 360px; border-radius: 180px 180px 20px 20px; }.la-person-card h3 { font-size: 36px; }.la-person-card__initial { width: 102px; height: 102px; font-size: 60px; }
    .la-events__grid { grid-template-columns: 1fr; }.la-event-card { padding: 34px 26px; }.la-event-card h3 { font-size: 48px; }
    .la-timeline::before { left: 24px; }.la-timeline__item { grid-template-columns: 50px 1fr; gap: 14px; }.la-timeline__marker { width: 50px; height: 50px; }.la-timeline__card { padding: 25px 22px; }.la-timeline__card h3 { font-size: 26px; }
    .la-gallery__grid { grid-template-columns: repeat(2,1fr); grid-auto-rows: 190px; }.la-gallery__item, .la-gallery__item:nth-child(n) { grid-column: span 1; grid-row: span 1; }.la-gallery__item:nth-child(1) { grid-column: span 2; grid-row: span 2; }.la-gallery__item:nth-child(4) { grid-column: span 2; }
    .la-bank-card { min-height: 220px; padding: 28px 22px; }.la-bank-card:nth-child(2) { margin-left: 0; }.la-bank-card > strong { font-size: 25px; }.la-copy { right: 20px; bottom: 22px; }
    .la-form-card, .la-wishes { padding: 35px 22px; }.la-form-card h2, .la-wishes h2 { font-size: 42px; }.la-form-row { grid-template-columns: 1fr; gap: 0; }.la-attendance { grid-template-columns: 1fr; }.la-closing__names { gap: 12px; font-size: 39px; }.la-closing h2 { font-size: 78px; }
    .la-dock { width: calc(100% - 28px); justify-content: center; }.la-dock a { flex: 1; max-width: 58px; }.la-music { top: 14px; right: 14px; }
}

@media (max-width: 390px) {
    .la-phone-scene { transform: scale(.7); margin: -75px -35px; }.la-hero__grid { padding-bottom: 35px; }.la-display-names { font-size: 72px; }.la-opening__names { font-size: 43px; }.la-gallery__grid { grid-auto-rows: 165px; }.la-closing__names { font-size: 33px; }
}

@media (prefers-reduced-motion: reduce) {
    .la-html { scroll-behavior: auto; }
    .la-body *, .la-body *::before, .la-body *::after { scroll-behavior: auto !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
    .la-reveal { opacity: 1; transform: none; }
    .la-petals { display: none; }
}


/* DreamDay minimal compatibility patch: bride/groom photos */
.la-person-card__initial{overflow:hidden;position:relative;}
.la-person-card__photo{width:100%;height:100%;object-fit:cover;display:block;position:relative;z-index:1;}
.la-person-card__initial span{position:relative;z-index:1;}
