/* ===== Wedding invite renderer styles (scoped to .inv) ===== */
.inv{
  --acc:#6e1f2a; --acc2:#4f1520; --env:#4a141b; --gold:#b48a5a; --gold-lt:#e3c49a;
  --paper:#fbf6ef; --paper2:#f5ebe2; --ink:#4b2a24; --muted:#73564b;
  --script:'Pinyon Script',cursive; --serif:'Cormorant Garamond',Georgia,serif; --sans:'Jost',system-ui,sans-serif;
  --damask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%23fff' stroke-opacity='.13' stroke-width='1.1'%3E%3Cpath d='M48 18c9 9 9 19 0 28c-9-9-9-19 0-28z'/%3E%3Cpath d='M48 78c9-9 9-19 0-28c-9 9-9 19 0 28z'/%3E%3Cpath d='M18 48c9-9 19-9 28 0c-9 9-19 9-28 0z'/%3E%3Cpath d='M78 48c-9-9-19-9-28 0c9 9 19 9 28 0z'/%3E%3Ccircle cx='48' cy='48' r='3'/%3E%3Cpath d='M0 0c11 4 15 11 13 20M96 0c-11 4-15 11-13 20M0 96c11-4 15-11 13-20M96 96c-11-4-15-11-13-20'/%3E%3Cpath d='M30 30c4-6 10-6 12 0M66 30c-4-6-10-6-12 0M30 66c4 6 10 6 12 0M66 66c-4 6-10 6-12 0'/%3E%3C/g%3E%3C/svg%3E");
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .45 0 0 0 0 .32 0 0 0 0 .25 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  position:relative;overflow:hidden;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:19px;line-height:1.55;-webkit-font-smoothing:antialiased;text-align:center
}
.inv *{box-sizing:border-box;margin:0;padding:0}
.inv{--tint:#f4e4df;--ns:1;--hs:1;--band:var(--env);--damask-soft:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%23b48a5a' stroke-opacity='.16' stroke-width='1.1'%3E%3Cpath d='M48 18c9 9 9 19 0 28c-9-9-9-19 0-28z'/%3E%3Cpath d='M48 78c9-9 9-19 0-28c-9 9-9 19 0 28z'/%3E%3Cpath d='M18 48c9-9 19-9 28 0c-9 9-19 9-28 0z'/%3E%3Cpath d='M78 48c-9-9-19-9-28 0c9 9 19 9 28 0z'/%3E%3Ccircle cx='48' cy='48' r='3'/%3E%3C/g%3E%3C/svg%3E")}
.inv.t-ivory{--tint:#f1ead9;--acc:#77583a;--acc2:#5f462d;--env:#efe5d3;--band:#4d3d2c;--gold:#b8955e;--gold-lt:#e7cfa4;--paper:#fcfaf4;--paper2:#f3ecdc;--ink:#4a3b2c;--muted:#6c5d4c}
.inv.t-olive{--tint:#e8ebdc;--acc:#4f5b34;--acc2:#3a4426;--env:#3b4527;--gold:#b39a5f;--paper:#faf8f0;--paper2:#eef0e2;--ink:#3c3a2a;--muted:#5f5c48}
.inv.t-navy{--tint:#e5eaf1;--acc:#1f2f4f;--acc2:#15213a;--env:#17233d;--gold:#b8955e;--paper:#f9f7f2;--paper2:#ebeef3;--ink:#2a2f3c;--muted:#565b6d}
.inv.t-black{--tint:#ece8e2;--acc:#1e1c1b;--acc2:#0f0e0d;--env:#191817;--gold:#b89a63;--paper:#faf8f4;--paper2:#f0ece6;--ink:#2a2624;--muted:#605954}
.inv.t-blush{--band:#7a3a44;--tint:#f7e3de;--acc:#8a3f4b;--acc2:#6e2f3a;--env:#e6c9c2;--gold:#b48a5a;--paper:#fdf8f5;--paper2:#f6e8e3;--ink:#5a3a36;--muted:#785c56}

.inv.f-romantic{--script:'Great Vibes',cursive;--ns:.92;--hs:.95}
.inv.f-signature{--script:'Alex Brush',cursive;--ns:.95;--hs:.98}
.inv.f-modern{--script:'Playfair Display',Georgia,serif;--ns:.74;--hs:.72}
.inv.f-modern .names,.inv.f-modern h2,.inv.f-modern .inv-env .to b,.inv.f-modern .sheet h3,.inv.f-modern .thanks b{font-style:italic}
.inv.f-oldmoney{--script:'Cinzel',Georgia,serif;--ns:.5;--hs:.56}
.inv.f-oldmoney .names,.inv.f-oldmoney h2,.inv.f-oldmoney .inv-env .to b,.inv.f-oldmoney .sheet h3,.inv.f-oldmoney .thanks b,.inv.f-oldmoney .tapnote{text-transform:uppercase;letter-spacing:.14em;line-height:1.25}
.inv.f-oldmoney .amp,.inv.f-modern .amp{font-family:'Cormorant Garamond',serif;font-style:italic}
.inv.f-oldmoney .tapnote{font-size:13px}
.inv.f-parisian{--script:'Parisienne',cursive;--ns:.86;--hs:.88}
.inv.f-allura{--script:'Allura',cursive;--ns:.98;--hs:1}
.inv.f-calligraphy{--script:'Mrs Saint Delafield',cursive;--ns:1.02;--hs:1.05}
.inv.f-breeze{--script:'WindSong',cursive;--ns:.6;--hs:.66}
.inv.f-corinthia{--script:'Corinthia',cursive;--ns:1.12;--hs:1.18}
.inv.f-editorial{--script:'Bodoni Moda',Georgia,serif;--ns:.62;--hs:.6}
.inv.f-editorial .names,.inv.f-editorial h2,.inv.f-editorial .inv-env .to b,.inv.f-editorial .sheet h3,.inv.f-editorial .thanks b{font-style:italic}
.inv.f-minimal{--script:'Italiana',Georgia,serif;--ns:.56;--hs:.62}
.inv.f-timeless{--script:'Gilda Display',Georgia,serif;--ns:.56;--hs:.62}
.inv.f-minimal .names,.inv.f-minimal h2,.inv.f-minimal .inv-env .to b,.inv.f-minimal .sheet h3,.inv.f-minimal .thanks b,.inv.f-minimal .tapnote,.inv.f-timeless .names,.inv.f-timeless h2,.inv.f-timeless .inv-env .to b,.inv.f-timeless .sheet h3,.inv.f-timeless .thanks b,.inv.f-timeless .tapnote{text-transform:uppercase;letter-spacing:.16em;line-height:1.25}
.inv.f-minimal .tapnote,.inv.f-timeless .tapnote,.inv.f-oldmoney .tapnote{font-family:var(--sans);font-weight:400;font-size:12px;letter-spacing:.28em}
/* thin display fonts: add weight with a hairline stroke so they read on phones */
.inv.f-minimal .names,.inv.f-minimal h2,.inv.f-minimal .inv-env .to b,.inv.f-minimal .sheet h3,.inv.f-minimal .thanks b{-webkit-text-stroke:.6px currentColor;letter-spacing:.12em}
.inv.f-breeze .names,.inv.f-breeze h2,.inv.f-breeze .inv-env .to b,.inv.f-breeze .sheet h3,.inv.f-corinthia .names,.inv.f-corinthia h2,.inv.f-corinthia .inv-env .to b,.inv.f-corinthia .sheet h3{-webkit-text-stroke:.5px currentColor}
.inv.f-timeless h2,.inv.f-timeless .names{-webkit-text-stroke:.3px currentColor}
.inv.f-minimal .amp,.inv.f-timeless .amp,.inv.f-editorial .amp{font-family:'Cormorant Garamond',serif;font-style:italic}
.inv-scroll{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;background:var(--paper) var(--grain);scroll-behavior:smooth;-webkit-overflow-scrolling:touch}
.inv.locked .inv-scroll{overflow:hidden}
.inv-scroll{scrollbar-width:none}.inv-scroll::-webkit-scrollbar{display:none}
.inv section{padding:72px 28px;position:relative}
.inv section{--sbg:var(--paper)}
.inv section.bg-a{background:var(--paper) var(--grain);--sbg:var(--paper)}
.inv section.bg-b{background:var(--tint) var(--grain);--sbg:var(--tint)}
.inv section.bg-dark{background:var(--band) var(--damask);--sbg:var(--band);color:#f4e9dd}
.inv.env-leather section.bg-dark{background:linear-gradient(rgba(0,0,0,.18),rgba(0,0,0,.18)),var(--leather)}
.inv section.bg-dark.has-photo{background:linear-gradient(rgba(20,8,10,.62),rgba(20,8,10,.72)),var(--secphoto) center/cover}
.inv section.bg-dark .label{color:var(--gold-lt)}
.inv section.bg-dark h2{color:#fbf1e6;text-shadow:0 2px 10px rgba(0,0,0,.35)}
.inv section.bg-dark p{color:#efe2d4}
.inv section.bg-dark .count div{border-color:rgba(227,196,154,.55);background:rgba(255,255,255,.07)}
.inv section.bg-dark .count b{color:#fff}
.inv section.bg-dark .count span{color:var(--gold-lt)}
.inv .monogram{width:78px;height:78px;margin:0 auto 14px;display:block}
.inv .tear{position:absolute;left:0;top:-15px;width:100%;height:16px;display:block}
.inv .label{font-family:var(--sans);font-weight:300;text-transform:uppercase;letter-spacing:.32em;font-size:11.5px;color:var(--muted)}
.inv h2{font-family:var(--script);font-weight:400;color:var(--hc,var(--acc));font-size:calc(46px * var(--hs));line-height:1.15;margin:8px 0 2px}
.inv .divider{width:180px;height:18px;margin:10px auto 22px;display:block}
.inv p.lead{font-size:20px}
.inv p.soft{color:var(--muted);font-style:italic}
.inv .multiline{white-space:pre-line}
.inv .spray{position:absolute;top:0;width:150px;z-index:1;pointer-events:none}
.inv .spray.l{left:-10px}.inv .spray.r{right:-10px;transform:scaleX(-1)}
.inv section.sp{padding-top:104px}

/* buttons */
.inv .btns{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:20px}
.inv .btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-weight:400;font-size:12px;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;color:#fbf3ec;background:var(--acc);padding:13px 22px;border-radius:999px;border:1px solid var(--acc);cursor:pointer;box-shadow:0 6px 16px rgba(0,0,0,.12)}
.inv .btn.ghost{background:transparent;color:var(--acc);box-shadow:none}
.inv .btn svg{width:16px;height:16px;fill:currentColor}

/* ---------- hero: arch ---------- */
.inv .hero{min-height:var(--vh,100%);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 24px 96px;overflow:hidden}
.inv .hero.arch .arch{position:absolute;left:50%;top:50%;width:94%;max-width:430px;transform:translate(-50%,-55%);pointer-events:none}
.inv .hero.arch .arch path{fill:none;stroke:var(--gold);stroke-width:1.1}
.inv .hero .inner{position:relative;z-index:2;max-width:250px}
.inv .hero.arch .inner{margin-top:30px}
.inv .hero .label{letter-spacing:.22em;font-size:10px;line-height:1.8;max-width:180px;margin:0 auto}
.inv .names{font-family:var(--script);color:var(--hc,var(--acc));font-size:calc(clamp(54px,15.5vw,74px) * var(--ns));line-height:1.08}
.inv .amp{font-family:var(--script);color:var(--gold);font-size:40px;line-height:1;display:block;margin:2px 0}
.inv .hero .line{font-style:italic;font-size:16px;line-height:1.45;margin-top:4px}
.inv .hero .place{font-style:italic;color:var(--muted);margin-top:6px;font-size:17px}
.inv .hero .corner{position:absolute;width:190px;z-index:3;pointer-events:none;bottom:40px}
.inv .hero .corner.l{left:-28px;transform:rotate(180deg) scaleX(-1)}
.inv .hero .corner.r{right:-28px;transform:rotate(180deg)}
.inv .scrollcue{position:absolute;left:0;right:0;bottom:20px;z-index:4;font-family:var(--sans);font-size:10px;letter-spacing:.4em;text-transform:uppercase;color:var(--muted)}
.inv .scrollcue i{display:block;width:1px;height:30px;margin:8px auto 0;background:linear-gradient(var(--gold),transparent);animation:invdrop 2s ease-in-out infinite;transform-origin:top}
@keyframes invdrop{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
/* date block */
.inv .dateblock{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;margin:18px auto 0;max-width:290px;font-family:var(--sans);font-weight:400;letter-spacing:.16em;text-transform:uppercase;font-size:11.5px}
.inv .dateblock .side{border-top:1px solid currentColor;border-bottom:1px solid currentColor;padding:7px 0;opacity:.9}
.inv .dateblock .mid{line-height:1}
.inv .dateblock .mid small{display:block;font-size:11px;letter-spacing:.24em}
.inv .dateblock .mid b{display:block;font-family:var(--serif);font-weight:500;font-size:44px;letter-spacing:0;margin:2px 0}
/* hero: photo */
.inv .hero.photo{padding:0;justify-content:flex-end;background:#1b1716;color:#f6eee6}
.inv .hero.photo .bg{position:absolute;inset:0;background-size:cover;background-position:center}
.inv .hero.photo .shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.12) 0%,rgba(0,0,0,0) 22%,rgba(0,0,0,.25) 42%,rgba(0,0,0,.72) 66%,rgba(0,0,0,.9) 100%)}
.inv .hero.photo.sh-light .shade{background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(0,0,0,.45) 68%,rgba(0,0,0,.75) 100%)}
.inv .hero.photo.sh-strong .shade{background:linear-gradient(180deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,.45) 40%,rgba(0,0,0,.82) 66%,rgba(0,0,0,.94) 100%)}
.inv .hero.photo.pos-center{justify-content:center}
.inv .hero.photo.pos-center .shade{background:rgba(0,0,0,.42)}
.inv .hero.photo.pos-center.sh-light .shade{background:rgba(0,0,0,.28)}
.inv .hero.photo.pos-center.sh-strong .shade{background:rgba(0,0,0,.6)}
.inv .hero.photo.pos-center .inner{padding-bottom:0}
.inv .hero.photo .names{font-size:calc(clamp(48px,13vw,62px) * var(--ns))}
.inv .hero.photo .inner .label,.inv .hero.photo .line,.inv .hero.photo .place,.inv .hero.photo .dateblock{text-shadow:0 1px 8px rgba(0,0,0,.6)}
.inv .hero.photo .inner{max-width:340px;padding:0 20px 84px}
.inv .hero.photo .label{color:#efe4d8}
.inv .hero.photo .names{color:#fff;text-shadow:0 2px 16px rgba(0,0,0,.55),0 0 22px rgba(255,236,200,.35)}
.inv .hero.photo .amp{color:var(--gold-lt)}
.inv .hero.photo .line,.inv .hero.photo .place{color:#efe4d8}
.inv .hero.photo .scrollcue{color:#e9dccf}
.inv .hero.photo .dateblock{color:#f6eee6}

/* ---------- music ---------- */
.inv .player{display:flex;align-items:center;gap:14px;max-width:360px;margin:6px auto 0;padding:14px 16px;background:#fff;border:1px solid rgba(180,138,90,.35);border-radius:20px;box-shadow:0 12px 30px rgba(60,20,20,.08);text-align:left}
.inv .player .art{width:58px;height:58px;border-radius:50%;flex:none;background:var(--acc) var(--damask);position:relative;display:flex;align-items:center;justify-content:center;color:var(--gold-lt);font-family:var(--script);font-size:24px;overflow:hidden}
.inv .player .art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.inv .player.on .art{animation:invspin 9s linear infinite}
.inv .player .meta{flex:1;min-width:0}
.inv .player .meta b{display:block;font-size:17px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inv .player .meta small{display:block;color:var(--muted);font-style:italic;font-size:14px}
.inv .player .bar{height:3px;background:rgba(0,0,0,.08);border-radius:3px;margin-top:8px;overflow:hidden}
.inv .player .bar i{display:block;height:100%;width:0;background:var(--acc)}
.inv .player .pp{width:48px;height:48px;border-radius:50%;flex:none;border:0;background:var(--acc);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}
.inv .player .pp svg{width:20px;height:20px;fill:currentColor}
.inv .mini{position:absolute;right:14px;bottom:16px;z-index:40;width:44px;height:44px;border-radius:50%;border:0;background:var(--acc);color:#fff;cursor:pointer;display:none;align-items:center;justify-content:center;box-shadow:0 6px 16px rgba(0,0,0,.25)}
.inv .mini svg{width:18px;height:18px;fill:currentColor}
.inv .mini.on svg{animation:invspin 4s linear infinite}
.inv .mini:not(.on){opacity:.85}
@keyframes invspin{to{transform:rotate(360deg)}}

/* ---------- countdown ---------- */
.inv .count{display:flex;justify-content:center;gap:8px;margin-top:6px}
.inv .count div{min-width:68px;padding:14px 4px 10px;border:1px solid rgba(180,138,90,.45);border-radius:999px 999px 10px 10px;background:rgba(255,255,255,.5)}
.inv .count b{display:block;font-weight:500;font-size:32px;color:var(--acc);line-height:1}
.inv .count span{font-family:var(--sans);font-weight:300;font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}

/* ---------- schedule ---------- */
.inv .timeline{position:relative;margin:6px auto 0;max-width:370px}
.inv .timeline::before{content:"";position:absolute;left:50%;top:6px;bottom:6px;width:1px;background:linear-gradient(transparent,var(--gold) 8%,var(--gold) 92%,transparent)}
.inv .ev{display:grid;grid-template-columns:1fr 48px 1fr;align-items:center;padding:11px 0}
.inv .ev .t{text-align:right;font-size:22px;font-weight:500;color:var(--acc);padding-right:4px}
.inv .ev .ic{width:40px;height:40px;margin:auto;border-radius:50%;background:var(--sbg);box-shadow:0 0 0 1px var(--gold),0 0 0 5px var(--sbg);display:flex;align-items:center;justify-content:center;position:relative;z-index:1}
.inv .ev .ic svg{width:21px;height:21px;stroke:var(--acc);fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.inv .ev .e{text-align:left;padding-left:4px;line-height:1.25}
.inv .ev .e b{display:block;font-weight:600;font-size:18px}
.inv .ev .e small{font-style:italic;color:var(--muted);font-size:15px}

/* ---------- venue / stay ---------- */
.inv .vname{font-size:24px;font-weight:600}
.inv .photo-card{margin:20px auto 0;max-width:380px;border-radius:16px;overflow:hidden;box-shadow:0 14px 34px rgba(60,20,20,.14)}
.inv .photo-card img{display:block;width:100%;height:220px;object-fit:cover}
.inv .map{position:relative;margin:20px auto 0;max-width:380px;border-radius:16px;overflow:hidden;border:1px solid rgba(180,138,90,.4)}
.inv .map svg{display:block;width:100%;height:auto}
.inv .bullets{list-style:none;max-width:330px;margin:12px auto 0;text-align:left}
.inv .bullets li{position:relative;padding-left:18px;margin:4px 0;font-size:17px}
.inv .bullets li::before{content:"";position:absolute;left:2px;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--gold)}

/* ---------- details ---------- */
.inv .details{max-width:360px;margin:0 auto;text-align:left;border-left:1px solid var(--gold);padding-left:22px}
.inv .details .d{position:relative;margin:0 0 22px}
.inv .details .d::before{content:"";position:absolute;left:-28px;top:6px;width:11px;height:11px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px var(--sbg)}
.inv .details .d b{display:block;font-family:var(--sans);font-weight:400;font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--acc);margin-bottom:2px}
.inv .details .d p{font-size:17px}

/* ---------- dress ---------- */
.inv .figures{display:flex;justify-content:center;align-items:flex-end;gap:2px;margin:24px auto 4px;max-width:360px}
.inv .fig{flex:1;max-width:66px}
.inv .fig svg{display:block;width:100%;height:auto;filter:drop-shadow(0 6px 6px rgba(60,20,20,.15))}
.inv .fig span{display:block;margin-top:8px;font-family:var(--sans);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap}

/* ---------- gallery ---------- */
.inv .gallery{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-width:390px;margin:6px auto 0}
.inv .gallery img{width:100%;height:150px;object-fit:cover;border-radius:12px;display:block}
.inv .gallery img:first-child{grid-column:1/3;height:230px}

/* ---------- faq ---------- */
.inv .faq{max-width:380px;margin:0 auto;text-align:left}
.inv .faq details{border-bottom:1px solid rgba(180,138,90,.35);padding:14px 4px}
.inv .faq summary{cursor:pointer;font-weight:600;font-size:18px;list-style:none;display:flex;justify-content:space-between;gap:10px}
.inv .faq summary::-webkit-details-marker{display:none}
.inv .faq summary::after{content:"+";color:var(--gold);font-size:22px;line-height:1}
.inv .faq details[open] summary::after{content:"–"}
.inv .faq p{margin-top:8px;color:var(--ink);font-size:17px}

/* ---------- rsvp ---------- */
.inv .rsvp-seal{width:124px;height:124px;margin:22px auto 4px;cursor:pointer;border:0;background:none;display:block}
.inv .tapnote{font-family:var(--script);font-size:24px;color:var(--acc)}
.inv .sl{position:relative;width:100%;height:100%;filter:drop-shadow(0 8px 10px rgba(0,0,0,.4));animation:invbreathe 3s ease-in-out infinite;will-change:transform}
.inv .sl img,.inv .sl svg{position:absolute;inset:0;width:100%;height:100%}
@keyframes invbreathe{50%{transform:scale(1.035)}}
.inv .sheet-bg{position:absolute;inset:0;z-index:70;background:rgba(30,10,12,.45);opacity:0;pointer-events:none;transition:opacity .35s}
.inv .sheet{position:absolute;left:0;right:0;bottom:0;z-index:71;max-height:90%;overflow:auto;transform:translateY(105%);transition:transform .5s cubic-bezier(.2,.8,.2,1);background:var(--paper) var(--grain);border-radius:24px 24px 0 0;padding:14px 22px 28px;box-shadow:0 -10px 40px rgba(0,0,0,.3);text-align:left}
.inv .sheet.show{transform:none}.inv .sheet-bg.show{opacity:1;pointer-events:auto}
.inv .sheet .grab{width:44px;height:4px;border-radius:4px;background:#d9c6b8;margin:0 auto 10px}
.inv .sheet .x{position:absolute;right:12px;top:10px;width:36px;height:36px;border:0;background:none;font-size:26px;color:var(--muted);cursor:pointer}
.inv .sheet h3{font-family:var(--script);font-weight:400;font-size:calc(40px * var(--hs));color:var(--hc,var(--acc));text-align:center;line-height:1.2}
.inv .sheet .sub{text-align:center;color:var(--muted);font-style:italic}
.inv form label.f{display:block;font-family:var(--sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:15px 0 6px}
.inv form input[type=text],.inv form select,.inv form textarea{width:100%;font-family:var(--serif);font-size:18px;color:var(--ink);padding:11px 13px;border:1px solid rgba(180,138,90,.55);border-radius:12px;background:#fff;outline:none}
.inv form textarea{min-height:76px;resize:vertical}
.inv .choice{display:flex;gap:8px;flex-wrap:wrap}
.inv .choice label{flex:1 1 40%;font-size:17px;border:1px solid rgba(180,138,90,.55);border-radius:12px;padding:11px 8px;text-align:center;cursor:pointer;background:#fff;line-height:1.2}
.inv .choice input{position:absolute;opacity:0;pointer-events:none}
.inv .choice label:has(input:checked){background:var(--acc);color:#fff;border-color:var(--acc)}
.inv form .btn{width:100%;justify-content:center;margin-top:20px;font-size:13px}
.inv .err{color:#a3283a;font-size:15px;font-style:italic;margin-top:10px;min-height:1em;text-align:center}
.inv .thanks{display:none;text-align:center;padding:20px 0 10px}
.inv .thanks b{font-family:var(--script);font-weight:400;font-size:44px;color:var(--hc,var(--acc));display:block}

/* ---------- footer ---------- */
.inv footer{padding:64px 28px 80px;background:var(--band) var(--damask);color:var(--gold-lt);position:relative}
.inv.env-leather footer{background:linear-gradient(rgba(0,0,0,.15),rgba(0,0,0,.15)),var(--leather)}
.inv footer .names{color:#f8ece2;font-size:calc(54px * var(--ns))}
.inv footer p{font-style:italic;opacity:.92}
.inv footer .mono{font-family:var(--sans);font-size:11px;letter-spacing:.35em;margin-top:14px;opacity:.75}

/* ---------- envelope ---------- */
.inv-env{position:absolute;inset:0;z-index:60;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:transparent;background:var(--env);transition:opacity .8s ease}
/* inside of the envelope: warm light, same for every theme */
.inv-env .liner{position:absolute;inset:0;background:radial-gradient(70% 45% at 50% 50%,#fffaf0 0,#fbe7c4 28%,#e9c79a 55%,color-mix(in srgb,var(--env) 60%,#c99b68) 100%)}
.inv-env .glow{position:absolute;left:50%;top:50%;width:260%;aspect-ratio:1;transform:translate(-50%,-50%) scale(.1);border-radius:50%;z-index:1;pointer-events:none;opacity:0;
  background:radial-gradient(circle,#fff 0,rgba(255,244,214,.95) 8%,rgba(255,214,150,.55) 20%,rgba(255,190,110,0) 42%);transition:transform 1.4s cubic-bezier(.3,.7,.3,1),opacity .6s;will-change:transform,opacity}
.inv-env .rays{position:absolute;left:50%;top:50%;width:240%;aspect-ratio:1;margin:-120% 0 0 -120%;z-index:6;pointer-events:none;opacity:0;transition:opacity 1s ease;will-change:transform,opacity;
  background:repeating-conic-gradient(from 0deg,rgba(255,226,170,0) 0deg 7deg,rgba(255,230,180,.55) 9deg,rgba(255,226,170,0) 11deg 18deg);
  -webkit-mask-image:radial-gradient(circle,#000 0,rgba(0,0,0,.55) 12%,transparent 34%);mask-image:radial-gradient(circle,#000 0,rgba(0,0,0,.55) 12%,transparent 34%)}
.inv-env.open .rays{animation:invspin 40s linear infinite}
/* flaps: texture on ::before (theme filters apply only there), shading on ::after, gold in .gold overlay */
.inv-env .fw{position:absolute;inset:0;pointer-events:none}
.inv-env .fw.side{z-index:2}.inv-env .fw.btm{z-index:3}
.inv-env .fw.topw{z-index:4;perspective:1300px;perspective-origin:50% 0}
.inv-env .flap{position:absolute;inset:0}
.inv-env .flap::before,.inv-env .flap::after{content:"";position:absolute;inset:0}
.inv-env .flap::before{background:var(--env) var(--damask)}
.inv-env.leather .flap::before{background:radial-gradient(130% 90% at 50% 42%,rgba(255,180,160,.1),rgba(0,0,0,0) 45%,rgba(0,0,0,.38)),var(--leather)}
.inv.t-ivory .inv-env.classic .flap::before{background:var(--env) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%23b8955e' stroke-opacity='.28' stroke-width='1.1'%3E%3Cpath d='M48 18c9 9 9 19 0 28c-9-9-9-19 0-28z'/%3E%3Cpath d='M48 78c9-9 9-19 0-28c-9 9-9 19 0 28z'/%3E%3Cpath d='M18 48c9-9 19-9 28 0c-9 9-19 9-28 0z'/%3E%3Cpath d='M78 48c-9-9-19-9-28 0c9 9 19 9 28 0z'/%3E%3Ccircle cx='48' cy='48' r='3'/%3E%3C/g%3E%3C/svg%3E")}
.inv.t-ivory .inv-env .to,.inv.t-ivory .inv-env .hint{color:#6b4f30;text-shadow:0 1px 0 rgba(255,255,255,.6)}
.inv.t-ivory .inv-env .edges line{stroke:#b8955e}
.inv-env .flap.left{clip-path:polygon(0 0,51% 50%,0 100%)}
.inv-env .flap.left::after{background:linear-gradient(90deg,rgba(0,0,0,.25),rgba(0,0,0,0) 60%)}
.inv-env .flap.right{clip-path:polygon(100% 0,49% 50%,100% 100%)}
.inv-env .flap.right::after{background:linear-gradient(270deg,rgba(0,0,0,.3),rgba(0,0,0,0) 60%)}
.inv-env .flap.bottom{clip-path:polygon(0 100%,50% 48.5%,100% 100%)}
.inv-env .flap.bottom::after{background:linear-gradient(0deg,rgba(0,0,0,.18),rgba(255,255,255,.04))}
.inv-env .flap.top{clip-path:polygon(0 0,100% 0,50% 52.5%);transform-origin:50% 0;transition:transform 1.3s cubic-bezier(.55,.05,.3,1);will-change:transform;backface-visibility:hidden}
.inv-env .flap.top::after{background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(0,0,0,.22))}
.inv-env .edges{position:absolute;inset:0;width:100%;height:100%;z-index:5;pointer-events:none;transition:opacity .4s}
.inv-env .edges line{stroke:var(--gold-lt);stroke-width:1.2;opacity:.7;transition:stroke .6s,opacity .6s}
/* seal: glows from its inner ring, then rides up with the flap */
.inv-env .seal-wrap{position:absolute;left:50%;top:50%;width:124px;height:124px;margin:-62px 0 0 -62px;z-index:8;transition:transform 1.3s cubic-bezier(.55,.05,.3,1),opacity .5s;will-change:transform}
.inv .sl .gr{opacity:0;transition:opacity .9s ease}
.inv .sl img{transition:filter .9s ease}
.inv-env.unlock .sl .gr{opacity:1}
.inv-env.unlock .sl img{filter:brightness(1.07) sepia(.25)}
.inv-env.unlock .sl{animation:invunlock 1.1s ease-in-out}
@keyframes invunlock{35%{transform:scale(1.07)}70%{transform:scale(.98)}100%{transform:none}}
.inv-env.unlock .edges line{stroke:#ffd9a0;opacity:1}
.inv-env.unlock .to,.inv-env.unlock .hint{opacity:0;animation:none}
.inv-env.open .flap.top{transform:rotateX(68deg)}
.inv-env.open .edges{opacity:0}
.inv-env.open .seal-wrap{transform:translateY(var(--sy,-120px)) scale(var(--ss,1.4))}
.inv-env.open .glow{opacity:1;transform:translate(-50%,-50%) scale(1)}
.inv-env.open .rays{opacity:1}
.inv-env .to{position:absolute;left:0;right:0;top:9%;z-index:7;color:var(--gold-lt);transition:opacity .4s;text-shadow:0 1px 2px rgba(0,0,0,.5)}
.inv-env .to small{display:block;font-family:var(--sans);font-weight:300;letter-spacing:.38em;font-size:11px;text-transform:uppercase}
.inv-env .to b{display:block;font-family:var(--script);font-weight:400;font-size:calc(42px * var(--ns));line-height:1.25;margin-top:8px}
.inv-env .hint{position:absolute;left:0;right:0;bottom:11%;z-index:7;color:var(--gold-lt);font-style:italic;letter-spacing:.06em;font-size:18px;transition:opacity .4s;animation:invpulse 2.4s ease-in-out infinite}
@keyframes invpulse{50%{opacity:.5}}
.inv-env .flash{position:absolute;inset:0;z-index:9;pointer-events:none;background:radial-gradient(circle at 50% 40%,#fffdf6 0,#fff6e4 45%,#fbecd2 100%);opacity:0;transition:opacity .7s ease}
.inv-env.flashing .flash{opacity:1}
.inv-env.gone{opacity:0;pointer-events:none}

/* background styles */
.inv.bg-floral section.bg-a::before,.inv.bg-floral section.bg-b::before,.inv.bg-floral section.bg-a::after,.inv.bg-floral section.bg-b::after{content:"";position:absolute;width:150px;height:100px;background:var(--cornerimg) center/contain no-repeat;opacity:.38;pointer-events:none}
.inv.bg-floral section::before{left:-14px;top:6px}
.inv.bg-floral section::after{right:-14px;bottom:4px;transform:rotate(180deg)}
.inv.bg-floral section.sp::before{display:none}
.inv.bg-floral section.bg-b{background:var(--tint) var(--damask-soft)}
.inv-backdrop{position:absolute;inset:0;background-size:cover;background-position:center;display:none}
.inv-backdrop::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(20,10,10,.25),rgba(20,10,10,.35))}
.inv.bg-photo .inv-backdrop{display:block}
.inv.bg-photo .inv-scroll{background:transparent}
.inv.bg-photo section.bg-a,.inv.bg-photo section.bg-b{background:transparent;padding:80px 34px}
.inv.bg-photo section.bg-a::before,.inv.bg-photo section.bg-b::before{content:"";position:absolute;inset:18px 12px;border-radius:24px;background:color-mix(in srgb,var(--paper) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 18px 40px rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.5)}
.inv.bg-photo section.bg-b::before{background:color-mix(in srgb,var(--tint) 88%,transparent)}
.inv.bg-photo section.bg-a>*:not(.tear):not(.spray),.inv.bg-photo section.bg-b>*:not(.tear):not(.spray){position:relative;z-index:1}
.inv.bg-photo section .spray{z-index:2;top:16px}
.inv.bg-photo section.bg-a .tear,.inv.bg-photo section.bg-b .tear{display:none}
.inv.bg-photo section.bg-dark.has-photo{background:rgba(20,8,10,.55)}
.inv.bg-photo section .ev .ic{background:var(--paper);box-shadow:0 0 0 1px var(--gold),0 0 0 5px var(--paper)}
/* big monogram letter behind names */
.inv .hero .inner{isolation:isolate}
.inv .bigl{position:absolute;left:50%;top:50%;transform:translate(-50%,-56%);z-index:-1;font-family:var(--script);font-size:300px;line-height:1;color:var(--gold);opacity:.16;pointer-events:none;white-space:nowrap}
.inv.f-oldmoney .bigl,.inv.f-minimal .bigl,.inv.f-timeless .bigl,.inv.f-modern .bigl,.inv.f-editorial .bigl{font-size:220px}
.inv .hero.photo .bigl{color:#fff;opacity:.22}
/* photo breaks */
.inv .pbreak{padding:0;position:relative;overflow:hidden;background:#1b1716}
.inv .pbreak img{display:block;width:100%;height:440px;object-fit:cover}
.inv .pbreak.h-medium img{height:300px}
.inv .pbreak .cap{position:absolute;left:0;right:0;bottom:22px;display:flex;justify-content:center}
.inv .pbreak .cap span{background:rgba(255,255,255,.88);color:var(--acc);font-family:var(--script);font-size:calc(26px * var(--hs));padding:6px 22px 8px;border-radius:999px;box-shadow:0 6px 18px rgba(0,0,0,.18)}
.inv.bg-photo .pbreak{margin:0 12px;border-radius:24px}
/* editorial cards */
.inv.bg-editorial .inv-scroll{background:var(--band) var(--damask)}
.inv.bg-editorial.env-leather .inv-scroll{background:linear-gradient(rgba(0,0,0,.25),rgba(0,0,0,.25)),var(--leather)}
.inv.bg-editorial section.bg-a,.inv.bg-editorial section.bg-b{background:transparent;padding:86px 44px}
.inv.bg-editorial section.bg-a .tear,.inv.bg-editorial section.bg-b .tear,.inv.bg-editorial section.bg-dark .tear,.inv.bg-editorial footer .tear{display:none}
.inv.bg-editorial section.bg-a::before,.inv.bg-editorial section.bg-b::before{content:"";position:absolute;inset:22px 16px;border:24px solid transparent;border-image:var(--card-scallop) 24 fill round;border-image-outset:0;filter:drop-shadow(0 14px 24px rgba(0,0,0,.35))}
.inv.bg-editorial section.card-lace::before{border-image:var(--card-lace) 24 fill round}
.inv.bg-editorial section.card-paper::before{border-image:var(--card-paper) 24 fill round}
.inv.bg-editorial section.bg-a>*:not(.tear):not(.spray),.inv.bg-editorial section.bg-b>*:not(.tear):not(.spray){position:relative;z-index:1}
.inv.bg-editorial section .spray{display:none}
.inv.bg-editorial section .ev .ic{background:var(--paper);box-shadow:0 0 0 1px var(--gold),0 0 0 5px var(--paper)}
.inv.bg-editorial section.card-env{padding-top:250px}
.inv.bg-editorial .hero.arch{background:var(--paper) var(--grain)}
.inv.bg-editorial section.card-env::before{inset:70px 16px 22px;border-image:none;border:0;background:var(--paper);border-radius:6px}
.inv.bg-editorial section.card-env::after{content:"";position:absolute;left:16px;right:16px;top:70px;height:150px;background:linear-gradient(180deg,color-mix(in srgb,var(--paper) 86%,#000) 0%,var(--paper) 100%);clip-path:polygon(0 0,100% 0,50% 100%);filter:drop-shadow(0 2px 1px rgba(0,0,0,.12));z-index:1}
.inv.bg-editorial section.card-env .rsvp-seal{position:relative;z-index:2}
.inv.bg-editorial section.card-env>.rv{z-index:2}
.inv.bg-editorial .pbreak{margin:18px 16px;border-radius:4px;box-shadow:0 14px 30px rgba(0,0,0,.35)}
.inv.bg-editorial .pbreak .cap span{border-radius:4px;background:var(--paper)}
.inv.bg-editorial .hero.photo .inner{background:var(--paper);color:var(--ink);padding:38px 26px 30px;margin:0 22px 70px;border:24px solid transparent;border-image:var(--card-scallop) 24 round;background-clip:padding-box;filter:drop-shadow(0 14px 24px rgba(0,0,0,.4));max-width:350px}
.inv.bg-editorial .hero.photo .names{color:var(--hc,var(--acc));text-shadow:none}
.inv.bg-editorial .hero.photo .label,.inv.bg-editorial .hero.photo .place{color:var(--muted);text-shadow:none}
.inv.bg-editorial .hero.photo .line,.inv.bg-editorial .hero.photo .dateblock{color:var(--ink);text-shadow:none}
.inv.bg-editorial .hero.photo .amp{color:color-mix(in srgb,var(--gold) 72%,var(--ink))}
.inv.bg-editorial .hero.photo .bigl{color:var(--gold);opacity:.14}
.inv.bg-editorial .hero.photo .shade{background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(0,0,0,.35))}
/* demo ribbon */
.inv .demo-ribbon{position:absolute;top:22px;right:-46px;z-index:90;transform:rotate(45deg);background:rgba(30,20,20,.78);color:#fff;font-family:var(--sans);font-size:10.5px;letter-spacing:.25em;padding:6px 52px;pointer-events:none;text-transform:uppercase}
/* petals */
.inv-petals{position:absolute;inset:0;pointer-events:none;z-index:30;overflow:hidden}
.inv-petals span{position:absolute;top:-30px;border-radius:80% 0 80% 0;opacity:.7;animation:invfall linear infinite}
@keyframes invfall{0%{transform:translate(0,-30px) rotate(0)}50%{transform:translate(40px,50vh) rotate(200deg)}100%{transform:translate(-20px,110vh) rotate(420deg)}}

.inv .rv{opacity:0;transform:translateY(26px);transition:opacity 1s ease,transform 1s ease}
.inv .rv.in{opacity:1;transform:none}
.inv.static .rv{opacity:1;transform:none;transition:none}
@media (prefers-reduced-motion:reduce){.inv *{animation:none!important;transition-duration:.01s!important}.inv-petals{display:none}}
.inv.f-breeze .tapnote,.inv.f-corinthia .tapnote,.inv.f-calligraphy .tapnote{font-family:var(--serif);font-style:italic;font-size:19px}

/* QA readability fixes */
.inv .hero.arch{background:var(--paper) var(--grain)}
.inv .amp{color:color-mix(in srgb,var(--gold) 72%,var(--ink))}
.inv .hero.photo .amp{color:var(--gold-lt)}
.inv.t-ivory.env-leather section.bg-dark:not(.has-photo),.inv.t-ivory.env-leather footer,.inv.t-blush.env-leather section.bg-dark:not(.has-photo),.inv.t-blush.env-leather footer{background:var(--band) var(--damask)}
.inv.bg-editorial.t-ivory.env-leather .inv-scroll,.inv.bg-editorial.t-blush.env-leather .inv-scroll{background:var(--band) var(--damask)}
.inv.t-ivory .inv-env .to,.inv.t-ivory .inv-env .hint,.inv.t-blush .inv-env .to,.inv.t-blush .inv-env .hint{color:#4f3622;text-shadow:0 1px 0 rgba(255,255,255,.55)}
.inv.t-blush .inv-env .to,.inv.t-blush .inv-env .hint{color:#3d161c}
.inv.t-ivory .inv-env .hint,.inv.t-blush .inv-env .hint{animation:none;opacity:.95}

.inv-env .to{padding:0 30px}
.inv .hero.arch .inner{margin-top:74px}
.inv .hero.arch .names{max-width:262px;margin-left:auto;margin-right:auto}

/* simple opening: seal lifts away, flap folds open, gentle fade */
.inv-env.simple.open .flap.top{transform:rotateX(178deg)}
.inv-env.simple.open .seal-wrap{transform:translateY(-40px) scale(.8);opacity:0}
.inv-env.simple .glow,.inv-env.simple .rays{display:none}
.inv-env.simple.open .fw.side .flap.left{transform:translateX(-100%);transition:transform .9s ease-in .5s}
.inv-env.simple.open .fw.side .flap.right{transform:translateX(100%);transition:transform .9s ease-in .5s}
.inv-env.simple.open .fw.btm .flap{transform:translateY(100%);transition:transform .9s ease-in .5s}
.inv-env.simple.open .to,.inv-env.simple.open .hint,.inv-env.simple.open .edges{opacity:0;animation:none}

/* light envelopes (ivory, blush): soft veil behind the text so names read over the embossing */
.inv.t-ivory .inv-env .to,.inv.t-blush .inv-env .to{top:7%;padding:18px 30px 22px}
.inv.t-ivory .inv-env .to::before,.inv.t-blush .inv-env .to::before{content:"";position:absolute;inset:-6px 6%;z-index:-1;border-radius:50%;filter:blur(10px)}
.inv.t-ivory .inv-env .to::before{background:radial-gradient(closest-side,rgba(252,248,238,.92),rgba(252,248,238,.7) 60%,rgba(252,248,238,0))}
.inv.t-blush .inv-env .to::before{background:radial-gradient(closest-side,rgba(253,242,238,.92),rgba(253,242,238,.7) 60%,rgba(253,242,238,0))}
.inv.t-ivory .inv-env .to,.inv.t-ivory .inv-env .hint{color:#3f2a17}
.inv.t-blush .inv-env .to,.inv.t-blush .inv-env .hint{color:#3a1219}
.inv.t-ivory .inv-env .to b,.inv.t-blush .inv-env .to b{-webkit-text-stroke:.4px currentColor;text-shadow:0 1px 0 rgba(255,255,255,.7)}
.inv.t-ivory .inv-env .to small,.inv.t-blush .inv-env .to small{font-weight:400}
.inv.t-ivory .inv-env .hint,.inv.t-blush .inv-env .hint{left:50%;right:auto;transform:translateX(-50%);white-space:nowrap;padding:6px 18px;border-radius:999px;background:rgba(252,248,240,.75)}
.inv-env .to{isolation:isolate}

/* gold reveal: pre-drawn rings, only opacity animates (smooth on phones) */
.inv-env{will-change:opacity}
.inv-env .gold{position:absolute;inset:0;z-index:5;pointer-events:none;transition:opacity .5s ease}
.inv-env .gold i{position:absolute;inset:0;opacity:0;will-change:opacity;transition:opacity .55s ease;background:var(--goldtex)}
.inv-env.classic .gold i{background:var(--goldclassic)}
.inv-env .gold i:nth-child(1){-webkit-mask-image:radial-gradient(circle at 50% 50%,#000 0,#000 9%,transparent 15%);mask-image:radial-gradient(circle at 50% 50%,#000 0,#000 9%,transparent 15%)}
.inv-env .gold i:nth-child(2){-webkit-mask-image:radial-gradient(circle at 50% 50%,transparent 9%,#000 15%,#000 22%,transparent 30%);mask-image:radial-gradient(circle at 50% 50%,transparent 9%,#000 15%,#000 22%,transparent 30%)}
.inv-env .gold i:nth-child(3){-webkit-mask-image:radial-gradient(circle at 50% 50%,transparent 22%,#000 30%,#000 38%,transparent 47%);mask-image:radial-gradient(circle at 50% 50%,transparent 22%,#000 30%,#000 38%,transparent 47%)}
.inv-env .gold i:nth-child(4){-webkit-mask-image:radial-gradient(circle at 50% 50%,transparent 38%,rgba(0,0,0,.8) 47%,rgba(0,0,0,.5) 62%,rgba(0,0,0,.3) 80%);mask-image:radial-gradient(circle at 50% 50%,transparent 38%,rgba(0,0,0,.8) 47%,rgba(0,0,0,.5) 62%,rgba(0,0,0,.3) 80%)}
.inv-env.gilded .gold i{opacity:1}
.inv-env.gilded .gold i:nth-child(2){transition-delay:.25s}
.inv-env.gilded .gold i:nth-child(3){transition-delay:.5s}
.inv-env.gilded .gold i:nth-child(4){transition-delay:.75s}
.inv-env .gold{clip-path:polygon(0 0,50% 52.5%,100% 0,100% 100%,0 100%)}
.inv-env .flap.top .tg{position:absolute;inset:0;z-index:2;opacity:0;will-change:opacity;transition:opacity .8s ease .3s;background:var(--goldtex);
  -webkit-mask-image:radial-gradient(circle at 50% 100%,#000 0,#000 40%,rgba(0,0,0,.85) 70%,rgba(0,0,0,.6) 100%);mask-image:radial-gradient(circle at 50% 100%,#000 0,#000 40%,rgba(0,0,0,.85) 70%,rgba(0,0,0,.6) 100%)}
.inv-env.classic .flap.top .tg{background:var(--goldclassic)}
.inv-env.gilded .flap.top .tg{opacity:1}
.inv-env.flashing .gold{opacity:0}
.inv-env .shadows{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none;transition:opacity .4s}
.inv-env.open .shadows{opacity:0}
.inv-env.unlock .hint,.inv-env.unlock .to{opacity:0!important}

/* saved RSVP reply */
.inv .replied{margin:14px auto 0;max-width:300px;background:rgba(255,255,255,.7);border:1px solid rgba(180,138,90,.45);border-radius:16px;padding:14px 16px 16px}
.inv .replied .rp-k{font-family:var(--sans);font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.inv .replied .rp-n{font-size:21px;font-weight:600;color:var(--acc);margin-top:4px}
.inv .replied .rp-s{color:var(--ink);font-size:17px}
.inv .replied .btn{margin-top:12px;font-size:11px;padding:10px 16px}

/* grand opening: each lower flap carries its own gold so the glow travels with it as the flaps open */
.inv-env .flap .fg{position:absolute;inset:0;z-index:2;opacity:0;will-change:opacity;transition:opacity .35s ease 1.2s;background:var(--goldtex);
  -webkit-mask-image:radial-gradient(circle at 50% 50%,#000 0,#000 38%,rgba(0,0,0,.8) 47%,rgba(0,0,0,.5) 62%,rgba(0,0,0,.3) 80%);mask-image:radial-gradient(circle at 50% 50%,#000 0,#000 38%,rgba(0,0,0,.8) 47%,rgba(0,0,0,.5) 62%,rgba(0,0,0,.3) 80%)}
.inv-env.classic .flap .fg{background:var(--goldclassic)}
.inv-env.gilded .flap .fg{opacity:1}
.inv-env.open:not(.simple) .gold{opacity:0;transition:opacity .25s ease}
.inv-env.open:not(.simple) .fw.side .flap.left{transform:translateX(-102%);transition:transform 1.05s cubic-bezier(.55,.05,.35,1) .55s}
.inv-env.open:not(.simple) .fw.side .flap.right{transform:translateX(102%);transition:transform 1.05s cubic-bezier(.55,.05,.35,1) .55s}
.inv-env.open:not(.simple) .fw.btm .flap{transform:translateY(102%);transition:transform 1.05s cubic-bezier(.55,.05,.35,1) .7s}
.inv-env .flap.left,.inv-env .flap.right,.inv-env .flap.bottom{will-change:transform}
