@charset "UTF-8";

/* DreamDay — LIVE HEARTS
   Scope: .lh-* only. Private romantic broadcast visual system. */

.lh-html { scroll-behavior: smooth; background: #09070d; }
.lh-body {
    --lh-bg:#09070d;
    --lh-bg-2:#150b16;
    --lh-panel:rgba(255,255,255,.075);
    --lh-panel-strong:rgba(255,255,255,.105);
    --lh-line:rgba(255,255,255,.14);
    --lh-line-soft:rgba(255,255,255,.08);
    --lh-pink:#ff7499;
    --lh-pink-soft:#ffc4d3;
    --lh-lilac:#b8a3ff;
    --lh-cream:#fff5f7;
    --lh-muted:#bcaeb8;
    --lh-serif: Georgia, "Times New Roman", serif;
    --lh-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    margin:0;
    min-width:0;
    overflow-x:hidden;
    color:var(--lh-cream);
    background:var(--lh-bg) url("assets/backgrounds/live-noir.svg") center top / cover fixed;
    font-family:var(--lh-sans);
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
}
.lh-body *, .lh-body *::before, .lh-body *::after { box-sizing:border-box; }
.lh-body button, .lh-body input, .lh-body textarea, .lh-body select { font:inherit; }
.lh-body button, .lh-body a { -webkit-tap-highlight-color:transparent; }
.lh-body img { max-width:100%; }
.lh-body a { color:inherit; text-decoration:none; }
.lh-body.lh-is-locked { overflow:hidden; }
.lh-noise {
    position:fixed; inset:0; pointer-events:none; z-index:90; opacity:.045;
    background:url("assets/misc/grain.svg") repeat; mix-blend-mode:screen;
}

/* Opening waiting room */
.lh-opening {
    position:fixed; inset:0; z-index:1000; display:grid; place-items:center;
    padding:max(22px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(22px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));
    overflow:hidden; background:#09070d; isolation:isolate;
    transition:opacity .7s cubic-bezier(.2,.8,.2,1), visibility .7s;
}
.lh-opening.is-leaving { opacity:0; visibility:hidden; }
.lh-opening__media { position:absolute; inset:0; z-index:-5; overflow:hidden; }
.lh-opening__media img { width:100%; height:100%; object-fit:cover; filter:saturate(.78) contrast(1.05) brightness(.48); transform:scale(1.035); animation:lh-opening-zoom 14s ease-out both; }
.lh-opening__media span { position:absolute; inset:0; background:linear-gradient(180deg,rgba(8,5,10,.22),rgba(10,6,12,.46) 46%,rgba(8,5,11,.88)),radial-gradient(circle at 50% 28%,rgba(255,111,148,.2),transparent 45%); }
.lh-opening__bloom { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-4; opacity:.9; }
.lh-opening__arc { position:absolute; width:min(1000px,120vw); top:-2vh; left:50%; transform:translateX(-50%); opacity:.65; z-index:-3; }
.lh-opening__panel {
    width:min(720px,100%); text-align:center; padding:clamp(28px,5vw,54px) clamp(18px,4vw,46px);
    border:1px solid rgba(255,255,255,.14); border-radius:32px; background:linear-gradient(180deg,rgba(20,10,20,.48),rgba(14,9,17,.7));
    box-shadow:0 35px 90px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.08); backdrop-filter:blur(18px);
    position:relative; overflow:hidden;
}
.lh-opening__panel::before { content:""; position:absolute; inset:0; background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.05) 44%,transparent 68%); transform:translateX(-110%); animation:lh-sheen 5.8s ease-in-out infinite; pointer-events:none; }
.lh-live-chip { display:inline-flex; align-items:center; gap:9px; border:1px solid rgba(255,255,255,.15); border-radius:999px; padding:8px 12px; background:rgba(17,9,17,.42); font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; white-space:nowrap; }
.lh-live-chip i, .lh-live-dot { width:8px; height:8px; border-radius:50%; background:var(--lh-pink); box-shadow:0 0 0 0 rgba(255,116,153,.55); animation:lh-pulse 1.75s ease-out infinite; flex:none; }
.lh-opening__eyebrow { margin:28px 0 8px; color:#dfcbd2; text-transform:uppercase; letter-spacing:.18em; font-size:10px; }
.lh-opening h1 { margin:0; font-family:var(--lh-serif); font-size:clamp(46px,8.8vw,92px); line-height:.9; font-weight:400; letter-spacing:-.055em; }
.lh-opening h1 em { display:inline-block; color:var(--lh-pink-soft); font-weight:400; font-size:.7em; padding:0 .14em; }
.lh-opening__date { margin:18px 0 0; color:#d8c9cf; font-size:13px; letter-spacing:.08em; }
.lh-opening__guest { width:min(420px,100%); margin:24px auto 0; display:flex; align-items:center; justify-content:space-between; gap:18px; padding:13px 16px; border-top:1px solid var(--lh-line-soft); border-bottom:1px solid var(--lh-line-soft); }
.lh-opening__guest small { font-size:9px; letter-spacing:.18em; color:#a796a0; text-align:left; }
.lh-opening__guest strong { font-family:var(--lh-serif); font-weight:400; font-size:18px; text-align:right; }
.lh-prelive-countdown { display:flex; justify-content:center; align-items:flex-start; gap:9px; margin:24px auto 0; }
.lh-prelive-countdown div { min-width:54px; }
.lh-prelive-countdown strong { display:block; font-variant-numeric:tabular-nums; font-size:21px; line-height:1; }
.lh-prelive-countdown span { display:block; color:#9e9098; font-size:8px; letter-spacing:.14em; text-transform:uppercase; margin-top:5px; }
.lh-prelive-countdown b { color:#806f79; font-weight:400; line-height:20px; }
.lh-open-button { width:min(360px,100%); margin:25px auto 0; min-height:58px; border:0; border-radius:18px; background:linear-gradient(135deg,#ff7398,#e1527d 58%,#b4568d); color:white; display:flex; align-items:center; justify-content:center; gap:12px; cursor:pointer; box-shadow:0 14px 38px rgba(219,69,116,.28); transition:transform .22s ease, box-shadow .22s ease; position:relative; overflow:hidden; }
.lh-open-button:hover { transform:translateY(-2px) scale(1.01); box-shadow:0 18px 46px rgba(219,69,116,.38); }
.lh-open-button:active { transform:translateY(0) scale(.985); }
.lh-open-button strong { font-size:12px; text-transform:uppercase; letter-spacing:.15em; }
.lh-open-button i { font-style:normal; font-size:18px; }
.lh-open-button__pulse { width:10px; height:10px; border-radius:50%; background:#fff; box-shadow:0 0 0 8px rgba(255,255,255,.1); }
.lh-opening__hint { margin:13px 0 0; color:#8f8089; font-size:9px; letter-spacing:.07em; }
.lh-opening__reaction-field { position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.lh-opening__reaction-field img { position:absolute; width:24px; left:calc(8% + var(--i)*11%); bottom:-50px; opacity:.1; animation:lh-float-heart calc(8s + var(--i)*.7s) linear infinite; animation-delay:calc(var(--i)*-.9s); }

/* Fixed broadcast chrome */
.lh-broadcast-bar { position:fixed; z-index:120; top:max(10px,env(safe-area-inset-top)); left:50%; transform:translateX(-50%) translateY(-140%); width:min(1160px,calc(100% - 24px)); height:54px; padding:8px 10px 8px 14px; display:flex; align-items:center; gap:14px; border:1px solid rgba(255,255,255,.12); border-radius:18px; background:rgba(11,7,13,.72); backdrop-filter:blur(18px); box-shadow:0 14px 50px rgba(0,0,0,.24); transition:transform .7s cubic-bezier(.18,.84,.21,1); }
.lh-opened .lh-broadcast-bar { transform:translateX(-50%) translateY(0); }
.lh-broadcast-bar__brand { display:flex; align-items:center; gap:8px; min-width:max-content; }
.lh-broadcast-bar__brand strong { font-size:10px; letter-spacing:.18em; }
.lh-broadcast-bar__brand small { color:#8e8089; font-size:9px; }
.lh-broadcast-bar__nav { flex:1; min-width:0; display:flex; gap:5px; justify-content:center; }
.lh-broadcast-bar__nav button { appearance:none; border:0; background:transparent; color:#8f8089; min-width:28px; height:30px; border-radius:10px; cursor:pointer; display:grid; place-items:center; position:relative; transition:background .2s,color .2s; }
.lh-broadcast-bar__nav button i { width:4px; height:4px; border-radius:50%; background:currentColor; transition:transform .2s,background .2s; }
.lh-broadcast-bar__nav button span { display:none; }
.lh-broadcast-bar__nav button.is-active { color:white; background:rgba(255,255,255,.08); }
.lh-broadcast-bar__nav button.is-active i { background:var(--lh-pink); transform:scale(1.5); }
.lh-broadcast-bar__reactions { min-width:max-content; display:flex; align-items:center; gap:6px; padding:8px 10px; border-radius:12px; background:rgba(255,255,255,.06); font-size:10px; }
.lh-broadcast-bar__reactions img { width:15px; height:15px; filter:brightness(0) invert(1); opacity:.82; }
.lh-music { position:fixed; z-index:130; right:max(14px,env(safe-area-inset-right)); bottom:max(18px,env(safe-area-inset-bottom)); width:48px; height:48px; border-radius:50%; border:1px solid rgba(255,255,255,.16); background:rgba(17,9,18,.72); backdrop-filter:blur(14px); color:white; cursor:pointer; display:grid; place-items:center; box-shadow:0 14px 36px rgba(0,0,0,.3); }
.lh-music img { width:19px; filter:brightness(0) invert(1); }
.lh-music span { position:absolute; inset:-4px; border:1px solid rgba(255,116,153,.38); border-radius:50%; animation:lh-music-ring 2.4s linear infinite; }
.lh-music.is-paused span { animation-play-state:paused; opacity:.25; }

.lh-main { position:relative; z-index:2; }
.lh-scene { position:relative; min-height:100svh; padding:clamp(92px,9vw,132px) max(22px,calc((100vw - 1180px)/2)) clamp(72px,8vw,110px); display:flex; flex-direction:column; justify-content:center; overflow:hidden; border-bottom:1px solid rgba(255,255,255,.045); }
.lh-scene::after { content:""; position:absolute; inset:auto 8% 0; height:1px; background:linear-gradient(90deg,transparent,rgba(255,255,255,.12),transparent); }
.lh-stage-bloom { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; pointer-events:none; opacity:.86; transform:translate3d(var(--lh-dx,0),var(--lh-dy,0),0); }
.lh-stage-arc { position:absolute; width:min(1180px,95vw); top:7%; left:50%; pointer-events:none; opacity:.58; transform:translate3d(calc(-50% + var(--lh-dx,0px)),var(--lh-dy,0),0); }
.lh-stage-shell { width:min(1160px,100%); margin:auto; position:relative; padding:clamp(26px,4.2vw,58px); border-radius:36px; background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.022)); box-shadow:0 45px 120px rgba(0,0,0,.34); backdrop-filter:blur(12px); }
.lh-stage-shell__frame { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.lh-stage-shell__top { display:flex; align-items:center; justify-content:space-between; gap:18px; position:relative; z-index:2; }
.lh-stage-shell__signal { font-size:9px; letter-spacing:.14em; color:#95858f; }
.lh-couple-stage { position:relative; display:grid; grid-template-columns:minmax(0,1fr) 130px minmax(0,1fr); align-items:center; gap:clamp(20px,3vw,48px); margin-top:clamp(26px,4vw,54px); }
.lh-person { min-width:0; }
.lh-person__media { position:relative; width:100%; aspect-ratio:5/6; border-radius:30px; overflow:hidden; background:#21121f; box-shadow:0 25px 70px rgba(0,0,0,.28); }
.lh-person__photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 28%; filter:saturate(.82) contrast(1.04); transition:transform 1.1s cubic-bezier(.2,.8,.2,1),filter 1.1s; }
.lh-person__media:hover .lh-person__photo { transform:scale(1.025); filter:saturate(.95) contrast(1.03); }
.lh-person__media::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 54%,rgba(11,7,13,.75)); pointer-events:none; }
.lh-person__frame { position:absolute; inset:0; width:100%; height:100%; z-index:2; pointer-events:none; }
.lh-person__fallback { position:absolute; inset:0; display:grid; place-items:center; font-family:var(--lh-serif); font-size:clamp(72px,10vw,140px); color:#f6c8d4; background:radial-gradient(circle at 50% 25%,#6b2949,#1a111c 64%); }
.lh-person__tag { position:absolute; left:18px; bottom:17px; z-index:3; display:inline-flex; border-radius:999px; padding:7px 10px; background:rgba(10,6,12,.62); border:1px solid rgba(255,255,255,.13); font-size:8px; letter-spacing:.15em; }
.lh-person__copy { padding:19px 5px 0; }
.lh-person__copy small { display:block; color:var(--lh-pink-soft); font-size:9px; letter-spacing:.18em; }
.lh-person__copy h2 { margin:6px 0 0; font-family:var(--lh-serif); font-size:clamp(28px,3.5vw,50px); line-height:1; font-weight:400; letter-spacing:-.03em; overflow-wrap:anywhere; }
.lh-person__copy p { margin:9px 0 0; color:#a999a2; font-size:11px; line-height:1.55; }
.lh-heart-core { width:120px; height:120px; position:relative; display:grid; place-items:center; justify-self:center; }
.lh-heart-core img { position:absolute; inset:0; width:100%; height:100%; animation:lh-orbit 12s linear infinite; }
.lh-heart-core span { font-size:28px; color:var(--lh-pink); filter:drop-shadow(0 0 16px rgba(255,116,153,.48)); animation:lh-heartbeat 1.7s ease-in-out infinite; }
.lh-heart-core small { position:absolute; bottom:14px; font-size:7px; letter-spacing:.17em; color:#c8b7c0; }
.lh-stage-shell__footer { margin-top:28px; display:flex; align-items:end; justify-content:space-between; gap:28px; position:relative; z-index:2; }
.lh-stage-shell__footer p { margin:0; max-width:650px; color:#bcadb5; line-height:1.7; font-size:12px; }
.lh-stage-shell__footer img { width:180px; opacity:.55; }
.lh-floating-reactions { position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.lh-floating-reactions img { position:absolute; width:18px; left:calc(2% + var(--i)*10.5%); bottom:-30px; opacity:.15; animation:lh-float-heart calc(10s + var(--i)*.55s) linear infinite; animation-delay:calc(var(--i)*-.8s); }

/* shared headings */
.lh-scene-heading { width:min(1160px,100%); margin:0 auto clamp(34px,5vw,64px); display:grid; grid-template-columns:1fr auto; align-items:end; gap:20px; }
.lh-kicker { display:block; font-size:9px; font-weight:700; letter-spacing:.2em; color:var(--lh-pink-soft); text-transform:uppercase; }
.lh-scene-heading h2, .lh-gallery-header h2, .lh-rsvp-copy h2, .lh-gift-head h2 { grid-column:1; margin:10px 0 0; font-family:var(--lh-serif); font-size:clamp(44px,7vw,86px); line-height:.92; font-weight:400; letter-spacing:-.05em; }
.lh-scene-heading h2 em, .lh-gallery-header h2 em, .lh-rsvp-copy h2 em, .lh-gift-head h2 em { color:#e7bdc8; font-weight:400; }
.lh-scene-heading > p { margin:0; color:#9f8f98; font-size:11px; letter-spacing:.08em; text-align:right; }

/* Schedule */
.lh-scene--schedule { background:linear-gradient(180deg,rgba(255,255,255,.018),transparent); }
.lh-schedule-console { width:min(1160px,100%); margin:0 auto; position:relative; padding:clamp(18px,3vw,36px); border-radius:36px; overflow:hidden; }
.lh-schedule-console > img { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.lh-schedule-console__line { position:relative; display:grid; grid-template-columns:72px 1fr auto; gap:clamp(20px,4vw,60px); align-items:start; padding:clamp(24px,3vw,38px) 8px; border-bottom:1px solid var(--lh-line-soft); }
.lh-schedule-console__line:last-child { border-bottom:0; }
.lh-schedule-console__line > span { font-family:var(--lh-serif); font-size:clamp(34px,5vw,58px); color:rgba(255,255,255,.24); }
.lh-schedule-console__line small { color:#9b8994; font-size:9px; letter-spacing:.13em; text-transform:uppercase; }
.lh-schedule-console__line h3 { margin:6px 0 8px; font-family:var(--lh-serif); font-size:clamp(28px,3.7vw,48px); font-weight:400; }
.lh-schedule-console__line p { margin:0 0 8px; color:#e6d9de; font-size:12px; }
.lh-schedule-console__line strong { display:block; font-size:13px; font-weight:500; }
.lh-schedule-console__line em { display:block; margin-top:6px; color:#96868f; font-style:normal; font-size:11px; line-height:1.55; }
.lh-schedule-console__line > b { align-self:center; padding:8px 10px; border:1px solid rgba(255,116,153,.25); color:#ffc0d1; border-radius:999px; font-size:8px; letter-spacing:.15em; }

/* Countdown */
.lh-scene--countdown { background:radial-gradient(circle at 50% 50%,rgba(104,35,72,.26),transparent 46%); }
.lh-countdown-stage { width:min(960px,100%); min-height:min(680px,78svh); margin:auto; display:grid; place-items:center; align-content:center; text-align:center; position:relative; border:1px solid rgba(255,255,255,.08); border-radius:50%; aspect-ratio:1.35/1; background:radial-gradient(circle,rgba(255,255,255,.045),rgba(255,255,255,.012) 52%,transparent 70%); }
.lh-countdown-stage__orbit { position:absolute; width:75%; opacity:.34; animation:lh-orbit 18s linear infinite; }
.lh-countdown-stage h2 { margin:22px 0 30px; font-family:var(--lh-serif); font-size:clamp(38px,6vw,72px); font-weight:400; letter-spacing:-.04em; }
.lh-countdown-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; width:min(700px,78%); position:relative; z-index:2; }
.lh-countdown-grid div { padding:20px 8px; border-left:1px solid var(--lh-line-soft); }
.lh-countdown-grid div:first-child { border-left:0; }
.lh-countdown-grid strong { display:block; font-family:var(--lh-serif); font-weight:400; font-size:clamp(42px,7vw,78px); line-height:.9; font-variant-numeric:tabular-nums; }
.lh-countdown-grid span { display:block; margin-top:12px; font-size:8px; letter-spacing:.18em; color:#9b8b94; }
.lh-countdown-stage > p { min-height:1.4em; margin:24px 0 0; color:#9e8d96; font-size:11px; }

/* Highlights */
.lh-highlight-feed { width:min(1160px,100%); margin:auto; display:grid; grid-template-columns:repeat(12,1fr); gap:16px; }
.lh-highlight-card { grid-column:span 7; min-height:210px; padding:clamp(24px,3vw,38px); display:grid; grid-template-columns:68px 1fr auto; gap:24px; border:1px solid var(--lh-line-soft); border-radius:28px; background:linear-gradient(135deg,rgba(255,255,255,.07),rgba(255,255,255,.018)); backdrop-filter:blur(10px); position:relative; overflow:hidden; }
.lh-highlight-card:nth-child(even) { grid-column:6 / span 7; }
.lh-highlight-card::after { content:""; position:absolute; width:220px; height:220px; border-radius:50%; right:-100px; top:-120px; background:radial-gradient(circle,rgba(255,117,153,.16),transparent 65%); }
.lh-highlight-card__index { font-family:var(--lh-serif); font-size:45px; color:rgba(255,255,255,.18); }
.lh-highlight-card small { color:var(--lh-pink-soft); font-size:9px; letter-spacing:.16em; text-transform:uppercase; }
.lh-highlight-card h3 { margin:8px 0 10px; font-family:var(--lh-serif); font-size:clamp(27px,3vw,40px); font-weight:400; }
.lh-highlight-card p { margin:0; max-width:620px; color:#ae9ea7; line-height:1.7; font-size:12px; }
.lh-highlight-card > span { align-self:start; color:var(--lh-pink); font-size:22px; }
.lh-film-link { margin:30px auto 0; width:min(1160px,100%); display:flex; align-items:center; justify-content:space-between; padding:16px 20px; border-top:1px solid var(--lh-line-soft); border-bottom:1px solid var(--lh-line-soft); color:#d9c7cf; font-size:11px; text-transform:uppercase; letter-spacing:.13em; }

/* Spotlight gallery */
.lh-scene--gallery { background:linear-gradient(180deg,rgba(12,8,15,.3),rgba(73,19,46,.12),rgba(12,8,15,.3)); }
.lh-gallery-header { width:min(1160px,100%); margin:0 auto 36px; display:flex; align-items:end; justify-content:space-between; gap:30px; }
.lh-gallery-header h2 { margin-top:18px; }
.lh-gallery-header > p { margin:0; font-size:11px; color:#91818b; }
.lh-gallery-header > p strong { color:white; font-family:var(--lh-serif); font-size:34px; font-weight:400; }
.lh-spotlight-gallery { width:min(1240px,calc(100% + 40px)); margin-left:auto; margin-right:auto; display:grid; grid-template-columns:48px minmax(0,1fr) 48px; align-items:center; gap:14px; }
.lh-gallery-track { display:flex; gap:20px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding:20px max(8%,calc((100% - 560px)/2)) 34px; overscroll-behavior-inline:contain; }
.lh-gallery-track::-webkit-scrollbar { display:none; }
.lh-gallery-slide { flex:0 0 clamp(260px,46vw,560px); aspect-ratio:4/5; position:relative; border:0; padding:0; border-radius:32px; overflow:hidden; background:#21141f; scroll-snap-align:center; cursor:pointer; box-shadow:0 35px 80px rgba(0,0,0,.34); }
.lh-gallery-slide > img:first-child { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.8,.2,1); }
.lh-gallery-slide:hover > img:first-child { transform:scale(1.035); }
.lh-gallery-slide::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(8,5,10,.8)); }
.lh-gallery-slide__frame { position:absolute; inset:0; width:100%; height:100%; z-index:2; pointer-events:none; }
.lh-gallery-slide > span { position:absolute; z-index:3; left:24px; right:24px; bottom:22px; display:flex; align-items:end; justify-content:space-between; color:white; }
.lh-gallery-slide > span b { font-size:9px; letter-spacing:.17em; }
.lh-gallery-slide > span small { color:#cab8c0; font-size:9px; }
.lh-gallery-arrow { width:46px; height:46px; border:1px solid var(--lh-line); border-radius:50%; background:rgba(255,255,255,.055); color:white; cursor:pointer; font-size:20px; transition:background .2s,transform .2s; }
.lh-gallery-arrow:hover { background:rgba(255,255,255,.11); transform:scale(1.04); }
.lh-empty-stage { width:min(800px,100%); margin:auto; min-height:320px; border:1px dashed rgba(255,255,255,.12); border-radius:34px; display:grid; place-items:center; align-content:center; gap:14px; text-align:center; color:#a4939c; }
.lh-empty-stage span { font-family:var(--lh-serif); font-size:70px; color:rgba(255,122,157,.3); }

/* Location stage */
.lh-location-stage { width:min(1160px,100%); min-height:640px; margin:auto; position:relative; display:grid; align-items:center; grid-template-columns:1fr 1fr; border:1px solid rgba(255,255,255,.08); border-radius:40px; overflow:hidden; background:linear-gradient(135deg,rgba(255,255,255,.035),rgba(255,255,255,.012)); }
.lh-location-stage::before { content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px); background-size:46px 46px; mask-image:linear-gradient(90deg,#000,transparent 68%); }
.lh-location-stage__light { position:absolute; width:56%; height:120%; left:-6%; top:-10%; background:linear-gradient(105deg,rgba(255,181,201,.18),rgba(255,181,201,0)); clip-path:polygon(38% 0,62% 0,100% 100%,0 100%); filter:blur(10px); }
.lh-location-stage__marker { justify-self:center; width:160px; height:160px; display:grid; place-items:center; position:relative; }
.lh-location-stage__marker img { width:50px; filter:brightness(0) invert(1); opacity:.9; z-index:2; }
.lh-location-stage__marker span, .lh-location-stage__marker::before, .lh-location-stage__marker::after { position:absolute; content:""; border:1px solid rgba(255,117,153,.28); border-radius:50%; inset:18px; animation:lh-location-ping 3s ease-out infinite; }
.lh-location-stage__marker::before { inset:0; animation-delay:.7s; }
.lh-location-stage__marker::after { inset:-20px; animation-delay:1.4s; }
.lh-location-card { position:relative; z-index:2; margin:30px; padding:clamp(28px,4vw,52px); border-radius:30px; background:rgba(10,6,12,.68); border:1px solid rgba(255,255,255,.12); backdrop-filter:blur(16px); }
.lh-location-card h2 { margin:10px 0 14px; font-family:var(--lh-serif); font-size:clamp(38px,5vw,62px); line-height:.95; font-weight:400; letter-spacing:-.04em; }
.lh-location-card p { color:#ad9da5; line-height:1.7; font-size:12px; }
.lh-location-card > div { display:flex; flex-wrap:wrap; gap:8px 14px; margin-top:18px; padding-top:16px; border-top:1px solid var(--lh-line-soft); color:#d8c9cf; font-size:10px; }
.lh-action { margin-top:24px; min-height:50px; display:flex; align-items:center; gap:10px; padding:0 14px; border:1px solid rgba(255,255,255,.12); border-radius:15px; background:rgba(255,255,255,.06); transition:background .2s,transform .2s; }
.lh-action:hover { background:rgba(255,255,255,.1); transform:translateY(-2px); }
.lh-action img { width:17px; filter:brightness(0) invert(1); }
.lh-action span { flex:1; font-size:10px; letter-spacing:.11em; text-transform:uppercase; }
.lh-action i { font-style:normal; }

/* RSVP */
.lh-rsvp-wrap, .lh-blessings-grid { width:min(1160px,100%); margin:auto; display:grid; grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr); gap:clamp(28px,5vw,76px); align-items:center; }
.lh-rsvp-copy p, .lh-gift-head p { color:#ae9ea6; line-height:1.75; font-size:12px; max-width:520px; }
.lh-audience-stack { margin-top:28px; display:flex; align-items:center; }
.lh-audience-stack > span { width:42px; height:42px; margin-right:-8px; display:grid; place-items:center; border-radius:50%; background:linear-gradient(135deg,#6a294b,#271322); border:2px solid #120b14; font-family:var(--lh-serif); }
.lh-audience-stack > span:nth-child(2) { background:linear-gradient(135deg,#44314f,#17111e); }
.lh-audience-stack > span:nth-child(3) { background:#ff7499; font-family:var(--lh-sans); font-size:13px; }
.lh-audience-stack small { margin-left:18px; color:#8e7f87; font-size:9px; letter-spacing:.08em; }
.lh-form { padding:clamp(24px,3vw,38px); border:1px solid rgba(255,255,255,.12); border-radius:30px; background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.025)); backdrop-filter:blur(14px); box-shadow:0 35px 80px rgba(0,0,0,.24); }
.lh-form__top { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:22px; font-size:8px; letter-spacing:.15em; color:#a896a0; }
.lh-form__top b { color:#ffc5d4; font-weight:600; }
.lh-field { display:block; margin-top:14px; }
.lh-field > span { display:flex; justify-content:space-between; margin:0 0 8px; color:#c8b8c0; font-size:9px; letter-spacing:.1em; text-transform:uppercase; }
.lh-field > span small { color:#766872; font-size:8px; }
.lh-field input, .lh-field textarea, .lh-field select { width:100%; border:1px solid rgba(255,255,255,.11); border-radius:14px; outline:0; background:rgba(8,5,10,.45); color:white; padding:13px 14px; transition:border-color .2s,background .2s,box-shadow .2s; }
.lh-field textarea { resize:vertical; min-height:88px; }
.lh-field select { color-scheme:dark; }
.lh-field input:focus, .lh-field textarea:focus, .lh-field select:focus { border-color:rgba(255,116,153,.65); background:rgba(18,8,16,.72); box-shadow:0 0 0 3px rgba(255,116,153,.08); }
.lh-field-row { display:grid; grid-template-columns:1.35fr .65fr; gap:12px; }
.lh-attendance { border:0; margin:18px 0 0; padding:0; }
.lh-attendance legend { color:#c8b8c0; font-size:9px; letter-spacing:.1em; text-transform:uppercase; margin-bottom:9px; }
.lh-attendance { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.lh-attendance legend { grid-column:1/-1; }
.lh-attendance label { cursor:pointer; }
.lh-attendance input { position:absolute; opacity:0; pointer-events:none; }
.lh-attendance span { min-height:40px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.1); border-radius:12px; background:rgba(255,255,255,.035); color:#ae9da6; font-size:9px; text-align:center; padding:6px; transition:.2s; }
.lh-attendance input:checked + span { color:white; background:rgba(255,116,153,.14); border-color:rgba(255,116,153,.46); }
.lh-submit { width:100%; min-height:52px; margin-top:18px; border:0; border-radius:15px; background:linear-gradient(135deg,#ff789d,#dc4f79); color:white; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:12px; font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; transition:transform .2s,filter .2s; }
.lh-submit:hover { transform:translateY(-2px); filter:brightness(1.04); }
.lh-submit:disabled { opacity:.55; cursor:wait; transform:none; }
.lh-form-status { min-height:1.3em; margin:10px 0 0; font-size:10px; color:#a7939e; }
.lh-form-status.is-success { color:#a7e5c5; }
.lh-form-status.is-error { color:#ff9caf; }

/* Gift support */
.lh-scene--gift { background:radial-gradient(circle at 80% 28%,rgba(137,96,255,.1),transparent 34%); }
.lh-gift-head { width:min(1160px,100%); margin:0 auto 40px; }
.lh-gift-head address { margin-top:18px; padding-left:16px; border-left:2px solid rgba(255,116,153,.5); color:#c6b6bf; font-size:11px; line-height:1.6; font-style:normal; max-width:620px; }
.lh-gift-deck { width:min(1160px,100%); margin:auto; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.lh-support-card { min-height:330px; position:relative; padding:clamp(28px,4vw,44px); border-radius:34px; overflow:hidden; background:linear-gradient(135deg,rgba(255,255,255,.06),rgba(255,255,255,.018)); }
.lh-support-card > img { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.lh-support-card__top { position:relative; display:flex; justify-content:space-between; gap:16px; color:#b5a3ad; font-size:8px; letter-spacing:.16em; }
.lh-support-card__top b { font-family:var(--lh-serif); color:rgba(255,255,255,.35); font-size:28px; font-weight:400; }
.lh-support-card h3 { position:relative; margin:42px 0 10px; font-family:var(--lh-serif); font-weight:400; font-size:clamp(30px,4vw,48px); }
.lh-support-card > strong { position:relative; display:block; font-size:clamp(18px,2.6vw,26px); letter-spacing:.08em; font-weight:500; overflow-wrap:anywhere; }
.lh-support-card > p { position:relative; color:#a996a0; font-size:11px; }
.lh-support-card button { position:absolute; left:clamp(28px,4vw,44px); bottom:clamp(28px,4vw,40px); min-height:42px; border:1px solid rgba(255,255,255,.13); border-radius:13px; background:rgba(8,5,10,.42); color:white; padding:0 13px; cursor:pointer; display:flex; align-items:center; gap:8px; }
.lh-support-card button img { width:15px; filter:brightness(0) invert(1); }
.lh-support-card button span, .lh-support-card button b { font-size:9px; letter-spacing:.1em; text-transform:uppercase; }
.lh-support-card button b { display:none; color:#b3e7c9; }
.lh-support-card button.is-copied span { display:none; }
.lh-support-card button.is-copied b { display:block; }

/* Blessings chat */
.lh-blessings-grid { align-items:stretch; }
.lh-chat-stream { min-height:560px; display:flex; flex-direction:column; border:1px solid rgba(255,255,255,.1); border-radius:30px; background:rgba(8,5,10,.32); overflow:hidden; }
.lh-chat-stream__head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:18px 20px; border-bottom:1px solid var(--lh-line-soft); background:rgba(255,255,255,.025); }
.lh-chat-stream__head small { color:#776a72; font-size:8px; letter-spacing:.08em; }
.lh-chat-list { flex:1; padding:20px; overflow:auto; max-height:620px; scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.13) transparent; }
.lh-chat { display:grid; grid-template-columns:42px 1fr; gap:12px; align-items:start; margin-bottom:14px; }
.lh-chat__avatar { width:42px; height:42px; border-radius:50%; display:grid; place-items:center; background:linear-gradient(135deg,#7c3153,#2b1525); font-family:var(--lh-serif); border:1px solid rgba(255,255,255,.09); }
.lh-chat > div:last-child { position:relative; padding:13px 15px 12px; border-radius:5px 18px 18px 18px; border:1px solid rgba(255,255,255,.09); background:rgba(255,255,255,.055); }
.lh-chat strong { display:flex; align-items:center; gap:7px; font-size:11px; font-weight:600; }
.lh-chat strong span { color:var(--lh-pink); }
.lh-chat p { margin:7px 0 8px; color:#c0afb8; line-height:1.55; font-size:11px; }
.lh-chat small { color:#746770; font-size:8px; }
.lh-chat-empty { color:#897982; font-size:11px; line-height:1.6; text-align:center; margin:80px auto; max-width:280px; }
.lh-form--wish { align-self:center; }
.lh-form--wish h3 { margin:0 0 16px; font-family:var(--lh-serif); font-size:clamp(30px,4vw,46px); font-weight:400; line-height:1.05; }

/* Closing */
.lh-scene--closing { min-height:100svh; isolation:isolate; text-align:center; }
.lh-closing-media { position:absolute; inset:0; z-index:-2; }
.lh-closing-media img { width:100%; height:100%; object-fit:cover; filter:saturate(.55) brightness(.23) contrast(1.05); }
.lh-closing-media span { position:absolute; inset:0; background:linear-gradient(180deg,rgba(8,5,10,.3),rgba(8,5,10,.72)),radial-gradient(circle at center,rgba(255,105,146,.1),transparent 45%); }
.lh-closing-card { width:min(760px,100%); margin:auto; padding:clamp(38px,6vw,72px); border:1px solid rgba(255,255,255,.12); border-radius:38px; background:rgba(11,7,13,.62); backdrop-filter:blur(17px); }
.lh-closing-card > small { display:block; margin:22px 0 14px; color:#a19199; font-size:8px; letter-spacing:.19em; }
.lh-closing-card h2 { margin:0; font-family:var(--lh-serif); font-size:clamp(52px,8vw,92px); font-weight:400; line-height:.92; letter-spacing:-.06em; }
.lh-closing-card h2 em { display:inline-block; color:var(--lh-pink-soft); font-weight:400; font-size:.7em; padding:0 .1em; }
.lh-closing-card p { max-width:520px; margin:20px auto 0; color:#b7a5ae; line-height:1.75; font-size:12px; }
.lh-closing-card > img { width:min(360px,70%); margin:28px auto 22px; opacity:.6; }
.lh-closing-card > strong { display:block; font-size:8px; letter-spacing:.18em; color:#7e7078; }

/* Lightbox + reaction rail */
.lh-reaction-rail { position:fixed; z-index:110; right:18px; top:50%; transform:translateY(-50%) translateX(150%); display:flex; flex-direction:column; gap:8px; transition:transform .7s cubic-bezier(.18,.84,.21,1) .1s; pointer-events:none; }
.lh-opened .lh-reaction-rail { transform:translateY(-50%) translateX(0); }
.lh-reaction-pill { display:flex; align-items:center; justify-content:center; gap:6px; min-width:48px; padding:9px 10px; border-radius:999px; background:rgba(10,6,12,.68); border:1px solid rgba(255,255,255,.1); backdrop-filter:blur(12px); color:#f9c4d2; font-size:11px; }
.lh-reaction-pill img { width:15px; filter:brightness(0) invert(1); opacity:.82; }
.lh-reaction-pill b { color:#b8a9b1; font-size:8px; font-weight:500; }
.lh-lightbox { position:fixed; inset:0; z-index:1500; background:rgba(5,3,7,.92); backdrop-filter:blur(12px); display:grid; place-items:center; padding:50px 20px 20px; }
.lh-lightbox[hidden] { display:none; }
.lh-lightbox img { max-width:min(900px,92vw); max-height:82vh; border-radius:24px; object-fit:contain; box-shadow:0 40px 100px rgba(0,0,0,.55); }
.lh-lightbox button { position:absolute; top:max(18px,env(safe-area-inset-top)); right:max(18px,env(safe-area-inset-right)); width:44px; height:44px; border-radius:50%; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.06); color:white; font-size:24px; cursor:pointer; }

/* reveal / active-scene language */
.lh-reveal { opacity:0; transform:translate3d(0,34px,0) scale(.988); transition:opacity .85s cubic-bezier(.2,.8,.2,1),transform .85s cubic-bezier(.2,.8,.2,1); }
.lh-reveal.lh-is-visible { opacity:1; transform:translate3d(0,0,0) scale(1); }
.lh-scene.lh-is-active .lh-live-chip i { animation-duration:1.1s; }

@keyframes lh-opening-zoom { from{transform:scale(1.09)} to{transform:scale(1.025)} }
@keyframes lh-sheen { 0%,60%{transform:translateX(-120%)} 82%,100%{transform:translateX(120%)} }
@keyframes lh-pulse { 0%{box-shadow:0 0 0 0 rgba(255,116,153,.55)} 70%,100%{box-shadow:0 0 0 9px rgba(255,116,153,0)} }
@keyframes lh-float-heart { 0%{transform:translate3d(0,20px,0) scale(.7) rotate(-8deg);opacity:0} 12%{opacity:.15} 55%{transform:translate3d(18px,-45vh,0) scale(1) rotate(7deg)} 100%{transform:translate3d(-10px,-110vh,0) scale(.75) rotate(-5deg);opacity:0} }
@keyframes lh-orbit { to{transform:rotate(360deg)} }
@keyframes lh-heartbeat { 0%,100%{transform:scale(.9)} 20%{transform:scale(1.18)} 36%{transform:scale(.96)} 52%{transform:scale(1.08)} 72%{transform:scale(.92)} }
@keyframes lh-music-ring { to{transform:rotate(360deg)} }
@keyframes lh-location-ping { 0%{transform:scale(.7);opacity:.1} 55%{opacity:.42} 100%{transform:scale(1.35);opacity:0} }

@media (max-width:1100px) {
    .lh-scene { padding-left:30px; padding-right:30px; }
    .lh-broadcast-bar__brand small { display:none; }
    .lh-couple-stage { grid-template-columns:1fr 84px 1fr; gap:18px; }
    .lh-heart-core { width:82px; height:82px; }
    .lh-heart-core small { display:none; }
    .lh-stage-shell { padding:32px; }
    .lh-rsvp-wrap, .lh-blessings-grid { grid-template-columns:minmax(0,.8fr) minmax(390px,1.2fr); gap:32px; }
    .lh-reaction-rail { display:none; }
}

@media (max-width:820px) {
    .lh-scene { min-height:auto; padding:96px 22px 74px; }
    .lh-scene--couple, .lh-scene--closing, .lh-scene--countdown { min-height:100svh; }
    .lh-broadcast-bar { left:12px; right:12px; width:auto; transform:translateY(-140%); }
    .lh-opened .lh-broadcast-bar { transform:translateY(0); }
    .lh-broadcast-bar__brand strong { display:none; }
    .lh-broadcast-bar__nav { justify-content:flex-start; overflow-x:auto; scrollbar-width:none; }
    .lh-broadcast-bar__nav::-webkit-scrollbar { display:none; }
    .lh-broadcast-bar__nav button { min-width:26px; }
    .lh-broadcast-bar__reactions { padding:8px; }
    .lh-couple-stage { grid-template-columns:1fr 1fr; gap:16px; align-items:start; }
    .lh-heart-core { position:absolute; z-index:5; left:50%; top:37%; transform:translate(-50%,-50%); width:72px; height:72px; }
    .lh-person__media { aspect-ratio:4/5; }
    .lh-person__copy h2 { font-size:30px; }
    .lh-stage-shell__footer img { width:120px; }
    .lh-scene-heading { grid-template-columns:1fr; }
    .lh-scene-heading > p { text-align:left; }
    .lh-countdown-stage { aspect-ratio:auto; min-height:620px; border-radius:44%; }
    .lh-countdown-grid { width:88%; }
    .lh-highlight-card, .lh-highlight-card:nth-child(even) { grid-column:1/-1; }
    .lh-spotlight-gallery { width:100%; grid-template-columns:1fr; }
    .lh-gallery-arrow { display:none; }
    .lh-gallery-track { padding-left:12%; padding-right:12%; }
    .lh-gallery-slide { flex-basis:76vw; }
    .lh-location-stage { grid-template-columns:1fr; min-height:650px; }
    .lh-location-stage__marker { margin-top:42px; }
    .lh-location-card { margin:0 24px 24px; }
    .lh-rsvp-wrap, .lh-blessings-grid { grid-template-columns:1fr; }
    .lh-gift-deck { grid-template-columns:1fr; }
    .lh-chat-stream { min-height:470px; }
}

@media (max-width:520px) {
    .lh-opening { padding:14px; }
    .lh-opening__panel { border-radius:24px; padding:26px 16px; }
    .lh-opening h1 { font-size:clamp(42px,13vw,62px); }
    .lh-opening__guest { width:100%; }
    .lh-prelive-countdown { gap:4px; }
    .lh-prelive-countdown div { min-width:44px; }
    .lh-prelive-countdown strong { font-size:18px; }
    .lh-open-button { min-height:54px; }
    .lh-broadcast-bar { height:50px; top:max(7px,env(safe-area-inset-top)); }
    .lh-broadcast-bar__reactions span { display:none; }
    .lh-music { width:44px; height:44px; bottom:max(14px,env(safe-area-inset-bottom)); }
    .lh-scene { padding-left:16px; padding-right:16px; }
    .lh-stage-shell { padding:22px 14px 18px; border-radius:28px; }
    .lh-stage-shell__top { gap:8px; }
    .lh-stage-shell__signal { display:none; }
    .lh-live-chip { font-size:8px; padding:7px 9px; }
    .lh-couple-stage { grid-template-columns:1fr 1fr; gap:9px; margin-top:20px; }
    .lh-person__media { border-radius:21px; }
    .lh-person__tag { left:9px; bottom:9px; font-size:6px; padding:5px 7px; letter-spacing:.1em; }
    .lh-person__copy { padding:12px 2px 0; }
    .lh-person__copy h2 { font-size:clamp(22px,7.1vw,31px); }
    .lh-person__copy p { font-size:9px; }
    .lh-heart-core { width:58px; height:58px; top:34%; }
    .lh-heart-core span { font-size:20px; }
    .lh-stage-shell__footer { margin-top:18px; }
    .lh-stage-shell__footer p { font-size:10px; line-height:1.55; }
    .lh-stage-shell__footer img { display:none; }
    .lh-scene-heading { margin-bottom:28px; }
    .lh-scene-heading h2, .lh-gallery-header h2, .lh-rsvp-copy h2, .lh-gift-head h2 { font-size:clamp(40px,13vw,58px); }
    .lh-schedule-console { padding:10px 16px; border-radius:24px; }
    .lh-schedule-console__line { grid-template-columns:38px 1fr; gap:12px; padding:22px 0; }
    .lh-schedule-console__line > span { font-size:30px; }
    .lh-schedule-console__line h3 { font-size:28px; }
    .lh-schedule-console__line > b { grid-column:2; justify-self:start; align-self:start; }
    .lh-countdown-stage { min-height:570px; border-radius:36%; }
    .lh-countdown-stage h2 { font-size:42px; }
    .lh-countdown-grid { width:94%; gap:0; }
    .lh-countdown-grid div { padding:16px 3px; }
    .lh-countdown-grid strong { font-size:clamp(34px,11vw,48px); }
    .lh-countdown-grid span { font-size:6.5px; letter-spacing:.1em; }
    .lh-highlight-card { grid-template-columns:48px 1fr; gap:15px; padding:22px 18px; min-height:0; }
    .lh-highlight-card__index { font-size:32px; }
    .lh-highlight-card > span { display:none; }
    .lh-gallery-header { align-items:end; gap:12px; }
    .lh-gallery-header > p { white-space:nowrap; }
    .lh-gallery-header > p strong { font-size:28px; }
    .lh-gallery-track { gap:12px; padding-left:8%; padding-right:8%; }
    .lh-gallery-slide { flex-basis:84vw; border-radius:24px; }
    .lh-gallery-slide > span { left:16px; right:16px; bottom:16px; }
    .lh-location-stage { border-radius:28px; min-height:620px; }
    .lh-location-card { margin:0 14px 14px; padding:26px 20px; border-radius:24px; }
    .lh-location-card h2 { font-size:42px; }
    .lh-field-row { grid-template-columns:1fr; }
    .lh-attendance { grid-template-columns:1fr; }
    .lh-form { padding:20px 16px; border-radius:24px; }
    .lh-gift-head { margin-bottom:28px; }
    .lh-support-card { min-height:300px; padding:26px 20px; border-radius:26px; }
    .lh-support-card button { left:20px; bottom:22px; }
    .lh-chat-stream { border-radius:24px; }
    .lh-chat-stream__head { align-items:flex-start; flex-direction:column; }
    .lh-chat-list { padding:14px; }
    .lh-chat { grid-template-columns:34px 1fr; gap:9px; }
    .lh-chat__avatar { width:34px; height:34px; }
    .lh-closing-card { border-radius:28px; padding:36px 20px; }
    .lh-closing-card h2 { font-size:clamp(48px,14vw,68px); }
}

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

.lh-social-links { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin:0 auto 22px; }
.lh-social-links a { display:inline-flex; align-items:center; gap:7px; padding:8px 11px; border:1px solid rgba(255,255,255,.11); border-radius:999px; background:rgba(255,255,255,.04); color:#c8b7c0; font-size:8px; letter-spacing:.12em; text-transform:uppercase; transition:background .2s, transform .2s; }
.lh-social-links a:hover { background:rgba(255,255,255,.09); transform:translateY(-1px); }


/* ============================================================
   LIVE HEARTS — audited layout & motion refinement v1
   ============================================================ */

/* No decorative section numbering. */
.lh-highlight-card__index,
.lh-schedule-console__line > span,
.lh-support-card__top > b { display:none !important; }

/* Couple broadcast: tighter hierarchy, safer text flow and richer live movement. */
.lh-stage-shell { overflow:hidden; }
.lh-couple-stage { align-items:start; }
.lh-person { min-width:0; }
.lh-person__copy { min-width:0; }
.lh-person__copy h2 { max-width:100%; overflow-wrap:anywhere; }
.lh-stage-shell__footer { padding-top:20px; border-top:1px solid rgba(255,255,255,.07); align-items:center; }
.lh-stage-shell__footer p { max-width:760px; }
.lh-stage-shell__footer img { flex:0 0 auto; transform-origin:center; }
.lh-scene--couple.lh-is-active .lh-stage-shell { animation:lh-stage-breathe 7.5s ease-in-out infinite; }
.lh-scene--couple.lh-is-active .lh-person:first-child .lh-person__media { animation:lh-media-float 6.2s ease-in-out infinite; }
.lh-scene--couple.lh-is-active .lh-person:last-child .lh-person__media { animation:lh-media-float 6.8s ease-in-out -1.2s infinite reverse; }
.lh-scene--couple.lh-is-active .lh-stage-shell__footer img { animation:lh-wave-live 2.8s ease-in-out infinite; }
.lh-scene--couple.lh-is-active .lh-stage-arc { animation:lh-arc-drift 11s ease-in-out infinite; }

/* Schedule: two clean live cards on desktop, stacked on small screens. */
.lh-schedule-console {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
    padding:0;
    overflow:visible;
    border-radius:0;
}
.lh-schedule-console > img { display:none; }
.lh-schedule-console__line {
    min-width:0;
    min-height:310px;
    display:flex;
    flex-direction:column;
    gap:0;
    padding:clamp(28px,4vw,44px);
    border:1px solid rgba(255,255,255,.13);
    border-radius:34px;
    background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.025));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 24px 70px rgba(0,0,0,.18);
    overflow:hidden;
    isolation:isolate;
}
.lh-schedule-console__line:last-child { border-bottom:1px solid rgba(255,255,255,.13); }
.lh-schedule-console__line::before {
    content:"";
    position:absolute;
    inset:-45% -15%;
    z-index:-1;
    background:radial-gradient(circle at 20% 50%,rgba(255,116,153,.15),transparent 35%),linear-gradient(110deg,transparent 30%,rgba(255,255,255,.045) 48%,transparent 64%);
    transform:translateX(-25%);
    pointer-events:none;
}
.lh-schedule-console__line > div { min-width:0; flex:1; }
.lh-schedule-console__line h3 { margin:10px 0 18px; font-size:clamp(34px,4vw,54px); line-height:.95; }
.lh-schedule-console__line p { margin:0 0 10px; }
.lh-schedule-console__line strong,
.lh-schedule-console__line em { overflow-wrap:anywhere; }
.lh-schedule-console__line > b {
    align-self:flex-start;
    margin-top:28px;
    padding:8px 12px;
    background:rgba(255,116,153,.055);
}
.lh-scene--schedule.lh-is-active .lh-schedule-console__line:first-of-type { animation:lh-card-lift 6.4s ease-in-out infinite; }
.lh-scene--schedule.lh-is-active .lh-schedule-console__line:last-of-type { animation:lh-card-lift 7s ease-in-out -1.1s infinite reverse; }
.lh-scene--schedule.lh-is-active .lh-schedule-console__line::before { animation:lh-live-scan 6.8s ease-in-out infinite; }
.lh-scene--schedule.lh-is-active .lh-schedule-console__line > b { animation:lh-badge-pulse 2.6s ease-in-out infinite; }

/* Highlight cards: remove index rail and keep timeline readable. */
.lh-highlight-card { grid-template-columns:minmax(0,1fr) auto; gap:22px; }
.lh-highlight-card > div:not(.lh-highlight-card__index) { min-width:0; }
.lh-scene--highlights.lh-is-active .lh-highlight-card:nth-child(odd) { animation:lh-card-lift 6.5s ease-in-out infinite; }
.lh-scene--highlights.lh-is-active .lh-highlight-card:nth-child(even) { animation:lh-card-lift 7.2s ease-in-out -.8s infinite reverse; }

/* Gallery: gentle spotlight drift, but no continuous layout work. */
.lh-scene--gallery.lh-is-active .lh-gallery-slide:nth-child(odd) { animation:lh-media-float 7.2s ease-in-out infinite; }
.lh-scene--gallery.lh-is-active .lh-gallery-slide:nth-child(even) { animation:lh-media-float 7.8s ease-in-out -1s infinite reverse; }

/* Location & RSVP: add live-stage energy. */
.lh-scene--location.lh-is-active .lh-location-stage__light { animation:lh-spotlight-sweep 7.5s ease-in-out infinite; }
.lh-scene--location.lh-is-active .lh-location-card { animation:lh-card-lift 7s ease-in-out infinite; }
.lh-scene--rsvp.lh-is-active .lh-form { animation:lh-form-breathe 6.4s ease-in-out infinite; }
.lh-scene--rsvp.lh-is-active .lh-submit { animation:lh-submit-glow 3.2s ease-in-out infinite; }

/* Gift cards: one real container, no duplicate SVG outline, no decorative numbers. */
.lh-gift-deck { gap:22px; align-items:stretch; }
.lh-support-card {
    min-height:300px;
    display:flex;
    flex-direction:column;
    padding:clamp(30px,4vw,44px);
    border:1px solid rgba(255,255,255,.13);
    border-radius:32px;
    background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.024));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 28px 70px rgba(0,0,0,.16);
}
.lh-support-card > img:first-child { display:none; }
.lh-support-card__top { align-items:center; min-height:24px; }
.lh-support-card__top i {
    width:12px;
    height:12px;
    border-radius:50%;
    background:var(--lh-pink);
    box-shadow:0 0 0 7px rgba(255,116,153,.12);
    flex:0 0 auto;
}
.lh-support-card h3 { margin:42px 0 10px; }
.lh-support-card > p { margin:10px 0 0; }
.lh-support-card button {
    position:relative;
    left:auto;
    bottom:auto;
    margin-top:auto;
    align-self:flex-start;
    min-height:42px;
}
.lh-scene--gift.lh-is-active .lh-support-card:nth-child(odd) { animation:lh-card-lift 6.2s ease-in-out infinite; }
.lh-scene--gift.lh-is-active .lh-support-card:nth-child(even) { animation:lh-card-lift 6.9s ease-in-out -.9s infinite reverse; }
.lh-scene--gift.lh-is-active .lh-support-card__top i { animation:lh-gift-beacon 2.2s ease-out infinite; }

/* Blessing stream & closing. */
.lh-scene--blessings.lh-is-active .lh-chat:nth-child(odd) > div:last-child { animation:lh-chat-breathe 6s ease-in-out infinite; }
.lh-scene--blessings.lh-is-active .lh-chat:nth-child(even) > div:last-child { animation:lh-chat-breathe 6.8s ease-in-out -.7s infinite reverse; }
.lh-scene--closing.lh-is-active .lh-closing-media img { animation:lh-closing-zoom 16s ease-in-out infinite alternate; }
.lh-scene--closing.lh-is-active .lh-closing-card { animation:lh-closing-glow 6.5s ease-in-out infinite; }
.lh-scene--closing.lh-is-active .lh-closing-card > img { animation:lh-wave-live 3.6s ease-in-out infinite; }

/* Pause decorative loops while the tab is hidden. */
.lh-page-hidden .lh-scene *,
.lh-page-hidden .lh-scene *::before,
.lh-page-hidden .lh-scene *::after { animation-play-state:paused !important; }

@keyframes lh-stage-breathe {
    0%,100%{box-shadow:0 38px 100px rgba(0,0,0,.24),inset 0 0 0 rgba(255,116,153,0)}
    50%{box-shadow:0 42px 112px rgba(0,0,0,.3),inset 0 0 70px rgba(255,116,153,.035)}
}
@keyframes lh-media-float {
    0%,100%{transform:translate3d(0,0,0) scale(1)}
    50%{transform:translate3d(0,-8px,0) scale(1.008)}
}
@keyframes lh-wave-live {
    0%,100%{transform:scaleX(.94);opacity:.45}
    50%{transform:scaleX(1.06);opacity:.8}
}
@keyframes lh-arc-drift {
    0%,100%{transform:translate3d(calc(-50% + var(--lh-dx,0px)),var(--lh-dy,0),0) rotate(-.5deg)}
    50%{transform:translate3d(calc(-50% + var(--lh-dx,0px)),calc(var(--lh-dy,0px) - 10px),0) rotate(.8deg)}
}
@keyframes lh-card-lift {
    0%,100%{transform:translate3d(0,0,0)}
    50%{transform:translate3d(0,-8px,0)}
}
@keyframes lh-live-scan {
    0%,100%{transform:translateX(-30%);opacity:.55}
    50%{transform:translateX(20%);opacity:1}
}
@keyframes lh-badge-pulse {
    0%,100%{box-shadow:0 0 0 0 rgba(255,116,153,0)}
    50%{box-shadow:0 0 0 6px rgba(255,116,153,.065)}
}
@keyframes lh-spotlight-sweep {
    0%,100%{transform:translate3d(-5%,0,0) skewX(-2deg);opacity:.75}
    50%{transform:translate3d(12%,0,0) skewX(2deg);opacity:1}
}
@keyframes lh-form-breathe {
    0%,100%{box-shadow:0 35px 80px rgba(0,0,0,.24)}
    50%{box-shadow:0 38px 92px rgba(0,0,0,.28),0 0 34px rgba(255,116,153,.045)}
}
@keyframes lh-submit-glow {
    0%,100%{box-shadow:0 0 0 rgba(255,116,153,0)}
    50%{box-shadow:0 12px 32px rgba(220,79,121,.22)}
}
@keyframes lh-gift-beacon {
    0%{box-shadow:0 0 0 0 rgba(255,116,153,.28)}
    70%,100%{box-shadow:0 0 0 13px rgba(255,116,153,0)}
}
@keyframes lh-chat-breathe {
    0%,100%{transform:translate3d(0,0,0)}
    50%{transform:translate3d(4px,-3px,0)}
}
@keyframes lh-closing-zoom {
    from{transform:scale(1.02)}
    to{transform:scale(1.075)}
}
@keyframes lh-closing-glow {
    0%,100%{box-shadow:0 28px 90px rgba(0,0,0,.22)}
    50%{box-shadow:0 34px 105px rgba(0,0,0,.3),0 0 70px rgba(255,116,153,.055)}
}

@media (max-width:820px) {
    .lh-schedule-console { grid-template-columns:1fr; }
    .lh-schedule-console__line { min-height:0; padding:30px 28px; border-radius:28px; }
    .lh-schedule-console__line > b { margin-top:22px; }
    .lh-highlight-card { grid-template-columns:minmax(0,1fr) auto; }
}
@media (max-width:520px) {
    .lh-stage-shell__footer { padding-top:16px; }
    .lh-schedule-console { padding:0; gap:14px; }
    .lh-schedule-console__line { display:flex; padding:26px 20px; }
    .lh-schedule-console__line h3 { font-size:32px; }
    .lh-schedule-console__line > b { grid-column:auto; }
    .lh-highlight-card { grid-template-columns:minmax(0,1fr); }
    .lh-support-card { min-height:270px; padding:24px 20px; }
    .lh-support-card h3 { margin-top:34px; }
    .lh-support-card button { left:auto; bottom:auto; margin-top:26px; }
}
