/* Thiệp Cưới Hay — 15 distinct layout systems */
.cover-screen{position:fixed;inset:0;z-index:100;display:grid;place-items:center;min-height:100vh;min-height:100dvh;transition:opacity .7s ease,visibility .7s,transform .9s ease}
.cover-screen.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.cover-hint{margin-top:22px;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;opacity:.75;text-align:center}
body.invite-open .cover-screen{pointer-events:none}

/* 1 envelope */
.cover-envelope{background:linear-gradient(160deg,#2a2218,#5a4632);color:#f7efe4}
.cover-envelope .envelope{width:min(86vw,340px);aspect-ratio:5/3.2;position:relative;perspective:900px;cursor:pointer}
.cover-envelope .envelope-body{position:absolute;inset:0;border-radius:8px;background:linear-gradient(145deg,rgba(255,255,255,.12),rgba(255,255,255,.04));border:1px solid rgba(255,255,255,.18);box-shadow:0 30px 60px rgba(0,0,0,.35)}
.cover-envelope .envelope-flap{position:absolute;inset:0;clip-path:polygon(0 0,50% 58%,100% 0);background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,.06));transform-origin:top center;transition:transform .9s ease;z-index:3}
.cover-envelope .envelope.is-open .envelope-flap,.cover-envelope #coverRoot.is-open .envelope-flap{transform:rotateX(180deg)}
.cover-envelope .envelope-card{position:absolute;inset:12% 10%;background:#fffaf3;color:#2c241c;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:12px;transform:translateY(20%);opacity:0;transition:.8s ease .1s;z-index:2}
.cover-envelope #coverRoot.is-open .envelope-card{transform:translateY(-20%);opacity:1}
.cover-envelope .envelope-seal{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f0d8b0,#a87840);display:grid;place-items:center;z-index:4;color:#3a2a1a}
.letter-hero{background:radial-gradient(ellipse at 50% 20%,#fff9f0,#f0e6d8);text-align:center;padding:64px 24px 48px}
.long-letter{padding:8px 4px;font-family:Georgia,serif;font-size:1.05rem;line-height:1.85}
.long-letter .drop{float:left;font-size:3.2rem;line-height:1;margin:0 8px 0 0;color:var(--accent);font-family:"Great Vibes",cursive}
.long-letter .sign{margin-top:18px;font-style:italic;text-align:right}
.time-chips{list-style:none;display:flex;gap:10px;overflow:auto;padding:4px 2px 12px;scroll-snap-type:x mandatory}
.time-chips .chip{flex:0 0 auto;min-width:148px;scroll-snap-align:start;padding:14px 16px;border-radius:16px;background:rgba(255,255,255,.7);border:1px solid rgba(0,0,0,.06);display:flex;flex-direction:column;gap:4px}
.time-chips time{font-size:.78rem;letter-spacing:.08em;color:var(--accent)}
.album.polaroid-row{display:flex;gap:14px;overflow:auto;padding:10px 4px 20px}
.album.polaroid-row figure{flex:0 0 62%;background:#fff;padding:10px 10px 28px;box-shadow:0 10px 30px rgba(0,0,0,.12);transform:rotate(-2deg)}
.album.polaroid-row figure:nth-child(2){transform:rotate(2deg)}
.orn{display:flex;align-items:center;justify-content:center;gap:10px;margin:12px 0;opacity:.55}
.orn span{flex:1;max-width:64px;height:1px;background:currentColor}

/* 2 gate */
.cover-gate{background:radial-gradient(circle at 50% 40%,#8b1a28,#3a080e);color:#f8e6c8}
.gate{position:relative;width:min(92vw,380px);height:70vh;cursor:pointer}
.gate-door{position:absolute;top:0;bottom:0;width:50%;background:linear-gradient(180deg,#9a2030,#5a1018);display:grid;place-items:center;font-size:4rem;color:#e8c27a;transition:transform .9s ease;z-index:2;box-shadow:inset 0 0 40px rgba(0,0,0,.35)}
.gate-door.left{left:0;border-right:1px solid rgba(232,194,122,.25);transform-origin:left center}
.gate-door.right{right:0;border-left:1px solid rgba(232,194,122,.25);transform-origin:right center}
.gate.is-open .gate-door.left,#coverRoot.is-open .gate-door.left{transform:perspective(600px) rotateY(-70deg)}
.gate.is-open .gate-door.right,#coverRoot.is-open .gate-door.right{transform:perspective(600px) rotateY(70deg)}
.gate-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1;text-align:center;padding:20px}
.gate-line{letter-spacing:.4em;font-size:.72rem;margin-bottom:12px}
.gate-names{font-family:serif;font-size:1.5rem}
.trad-hero{background:linear-gradient(180deg,#6b0f1a,#4a0a12);color:#fff5e8;text-align:center;padding:56px 20px}
.trad-dh{font-size:5rem;color:#e8c27a;line-height:1}
.v-timeline{list-style:none;position:relative;padding-left:28px}
.v-timeline::before{content:"";position:absolute;left:9px;top:6px;bottom:6px;width:2px;background:var(--accent);opacity:.35}
.v-timeline li{position:relative;padding:0 0 22px 8px}
.v-timeline .vt-dot{position:absolute;left:-23px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(232,194,122,.2);display:block}
.v-timeline.ornate .vt-dot{border-radius:2px;transform:rotate(45deg)}
.poem{font-family:serif;font-size:1.15rem;line-height:2;text-align:center;padding:8px 12px}
.album.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.map-card.lantern{border:1px solid rgba(232,194,122,.35);background:rgba(0,0,0,.15);padding:20px;border-radius:12px}
.gift-grid.red .gift-card{background:rgba(0,0,0,.18);border-color:rgba(232,194,122,.3)}

/* 3 cine */
.cover-cine{background-size:cover;background-position:center;align-items:end}
.cine-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.88))}
.cine-open{position:relative;z-index:2;text-align:center;padding:48px 24px 64px;color:#f4efe8}
.cine-kicker{letter-spacing:.35em;font-size:.72rem;opacity:.8;margin-bottom:12px}
.cine-title{font-family:Georgia,serif;font-weight:400;font-size:clamp(2rem,8vw,3.2rem);line-height:1.15}
.cine-title span{display:block;font-size:.55em;opacity:.7;margin:.2em 0}
.cine-date{margin:14px 0 28px;letter-spacing:.2em;opacity:.85}
.cine-play{width:72px;height:72px;border-radius:50%;border:1px solid rgba(212,180,140,.55);background:rgba(0,0,0,.35);color:#d4b48c;font-size:1.4rem;cursor:pointer}
.cine-hero{min-height:88vh;display:flex;flex-direction:column;justify-content:flex-end;padding:48px 24px;color:#f4efe8;background-size:cover;background-position:center;position:relative}
.cine-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(0,0,0,.75))}
.cine-hero>*{position:relative;z-index:1}
.album.filmstrip{display:flex;gap:10px;overflow:auto;scroll-snap-type:x mandatory}
.album.filmstrip figure{flex:0 0 78%;scroll-snap-align:center;position:relative}
.subtitle-cards{display:grid;gap:14px}
.subtitle-cards p{background:rgba(0,0,0,.45);padding:16px 18px;border-left:3px solid var(--accent);font-size:.98rem}
.plaques{display:grid;gap:14px}
.plaque{border:1px solid rgba(212,180,140,.35);padding:20px;text-align:center}
.plaque em{letter-spacing:.3em;font-size:.68rem;opacity:.7}

/* 4 zen scroll */
.cover-scroll{background:#eef2ea;color:#2a3228}
.scroll-roll{width:min(78vw,280px);cursor:pointer;text-align:center}
.scroll-knob{height:14px;border-radius:8px;background:linear-gradient(90deg,#8a7a58,#c4b48a,#8a7a58);margin:0 auto;width:92%}
.scroll-paper{background:#f7f4ec;margin:-2px 8px;padding:36px 18px;border:1px solid rgba(90,80,50,.15);min-height:180px;transition:min-height .8s ease,padding .8s}
#coverRoot.is-open .scroll-paper{min-height:320px;padding:56px 18px}
.scroll-kicker{letter-spacing:.35em;font-size:.72rem}
.scroll-mark{font-size:2rem;margin:18px 0;color:var(--accent)}
.zen-hero{text-align:center;padding:56px 24px;background:#f4f6f2}
.circle-story{text-align:center}
.circle-story img{width:min(70%,240px);aspect-ratio:1;object-fit:cover;border-radius:50%;margin:0 auto 18px}
.haiku{text-align:center;font-family:Georgia,serif;font-size:1.25rem;line-height:2.1;font-style:italic}
.album.botanical{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.album.botanical figure:first-child{grid-column:span 2;aspect-ratio:16/9;overflow:hidden}
.album.botanical img{width:100%;height:100%;object-fit:cover}
.rsvp-box.quiet{background:rgba(255,255,255,.55);border-radius:20px;padding:20px;border:1px dashed rgba(125,143,114,.4)}
.wish-list.leaf-wish .wish-item{border-radius:18px 4px 18px 4px;background:rgba(125,143,114,.08)}

/* 5 typography no cover */
.cover-typo{display:none!important}
.min-hero{text-align:center;padding:80px 28px 48px;background:#fafafa}
.inv-names.giant{font-family:"Playfair Display",Georgia,serif;font-size:clamp(2.8rem,11vw,4.2rem);font-weight:400;line-height:1.1}
.dateline{letter-spacing:.12em;font-size:.85rem;margin-top:18px;opacity:.7}
.num-list{list-style:none;display:grid;gap:18px}
.num-list li{display:flex;gap:16px;align-items:flex-start;border-bottom:1px solid rgba(0,0,0,.08);padding-bottom:16px}
.num-list em{font-family:"Playfair Display",serif;font-size:1.6rem;font-style:normal;opacity:.35;min-width:2ch}
.one-photo{margin:0;aspect-ratio:4/5;overflow:hidden}
.one-photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(.15)}
.min-letter{font-size:1.05rem;line-height:1.9;max-width:36ch;margin:0 auto}
.text-map{text-align:center;letter-spacing:.06em}
.text-map a{text-decoration:underline;text-underline-offset:4px}
.rsvp-box.min-rsvp{border-top:1px solid #111;border-radius:0;background:transparent;padding-top:20px}

/* 6 polaroid */
.cover-polaroid{background:#1a0c12;color:#f8efe8;text-align:center;padding:40px 16px}
.pol-stack{position:relative;width:220px;height:280px;margin:0 auto 18px;cursor:pointer}
.pol{position:absolute;inset:0;background:#fff;color:#1a0c12;padding:10px 10px 36px;box-shadow:0 12px 40px rgba(0,0,0,.4);transform:rotate(var(--r,0deg));transition:transform .7s ease}
.pol img{width:100%;height:100%;object-fit:cover}
.pol figcaption{font-size:.72rem;margin-top:8px}
#coverRoot.is-open .pol-1{transform:translate(-90px,20px) rotate(-18deg)}
#coverRoot.is-open .pol-2{transform:translate(0,-10px) rotate(2deg)}
#coverRoot.is-open .pol-3{transform:translate(90px,30px) rotate(14deg)}
.pol-names{font-family:"Great Vibes",cursive;font-size:2rem}
.split-hero{display:grid;grid-template-rows:42vh auto}
.split-photo{background-size:cover;background-position:center}
.split-copy{padding:32px 24px;text-align:center;background:#1a0c12;color:#f8efe8}
.inv-names.scripty{font-family:"Great Vibes",cursive;font-weight:400;font-size:clamp(2.6rem,10vw,3.8rem)}
.album.magazine{display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:1fr 1fr;gap:8px;min-height:360px}
.album.magazine figure{overflow:hidden;margin:0}
.album.magazine figure:first-child{grid-row:span 2}
.album.magazine img{width:100%;height:100%;object-fit:cover}
.rose-quote{font-family:"Great Vibes",cursive;font-size:1.8rem;text-align:center;line-height:1.4;padding:12px 8px}
.v-timeline.rose .vt-dot{background:#e0a8b0}
.gift-grid.velvet .gift-card{background:rgba(224,168,176,.1);border:1px solid rgba(224,168,176,.35)}

/* 7 leaf */
.cover-leaf{background:linear-gradient(180deg,#e8f0e4,#d5e4d0);color:#243028}
.leaf-frame{text-align:center;padding:36px;cursor:pointer;color:#5f7a52}
.leaf-wreath{width:160px;height:160px;margin:0 auto 16px}
.leaf-frame h1{font-family:Georgia,serif;font-weight:400;font-size:2rem;color:#243028;line-height:1.2}
.leaf-frame h1 span{display:block;font-size:.55em;opacity:.6;margin:6px 0}
.leaf-kicker{letter-spacing:.3em;font-size:.68rem;margin-bottom:8px}
.leaf-hero{background:linear-gradient(180deg,#f6faf4,#e8f0e4);text-align:center;padding:48px 20px}
.leaf-orn{width:min(70%,220px);margin:0 auto 16px;color:var(--accent);opacity:.7}
.time-chips.bar{display:grid;grid-template-columns:repeat(3,1fr);overflow:visible;gap:8px}
.time-chips.bar .chip{min-width:0;padding:12px 8px;font-size:.85rem}
.album.collage{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.album.collage figure:nth-child(2){transform:translateY(18px)}
.album.collage figure:nth-child(3){transform:translateY(-10px)}
.family-tree{display:grid;gap:12px;text-align:center}
.ft-heart{color:var(--accent);font-size:1.4rem}
.ft-branch{padding:16px;border:1px solid rgba(95,122,82,.25);border-radius:16px;background:rgba(255,255,255,.55)}
.ft-branch span{letter-spacing:.2em;font-size:.68rem;opacity:.6}

/* 8 pediment */
.cover-pediment{background:#ebe7e1;color:#2c3038}
.pedi{width:min(88vw,340px);cursor:pointer;text-align:center}
.pedi-top{height:0;border-left:42px solid transparent;border-right:42px solid transparent;border-bottom:36px solid #d8d2c8;margin:0 auto;width:0}
.pedi-cols{display:flex;justify-content:space-around;padding:0 18px;height:28px}
.pedi-cols span{width:10px;background:#d0cac0}
.pedi-body{background:#f7f4ef;border:1px solid rgba(140,133,122,.35);padding:28px 18px;margin-top:-1px}
.pedi-kicker{letter-spacing:.35em;font-size:.68rem;opacity:.6;margin-bottom:12px}
.pedi-body h1{font-family:Georgia,serif;font-weight:500;font-size:1.8rem;line-height:1.25}
.pedi-body em{font-style:italic;opacity:.5;font-size:.7em}
.marble-hero{background:linear-gradient(90deg,rgba(0,0,0,.03) 1px,transparent 1px) 0 0/24px 24px,linear-gradient(#f5f3f0,#ebe7e1);padding:40px 16px}
.marble-frame{border:1px solid rgba(140,133,122,.35);padding:40px 24px;margin:12px;background:rgba(255,255,255,.65);text-align:center}
.roman-chips{list-style:none;display:grid;gap:12px}
.roman-chips li{display:flex;gap:16px;align-items:flex-start;padding:14px;border-bottom:1px solid rgba(0,0,0,.08)}
.roman-chips b{font-family:Georgia,serif;font-size:1.4rem;color:var(--accent);min-width:2ch}
.album.museum{display:grid;gap:16px}
.album.museum figure{border:8px solid #fff;box-shadow:0 8px 24px rgba(0,0,0,.08)}
.marble-letter{border-left:2px solid var(--accent);padding-left:18px}

/* 9 wipe */
.cover-wipe{background:#fbf6f8;overflow:hidden}
.wipe-layer{position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,#e8b0c0 0%,transparent 45%),radial-gradient(circle at 80% 70%,#c8b0e0 0%,transparent 40%),#fbf6f8;transition:clip-path .9s ease;clip-path:inset(0 0 0 0);z-index:2;pointer-events:none}
.cover-wipe.is-wiping .wipe-layer,.cover-wipe.is-hidden .wipe-layer{clip-path:inset(0 0 0 100%)}
.wipe-content{position:relative;z-index:3;text-align:center;padding:40px;cursor:pointer;color:#5a3040}
.wipe-script{font-family:"Great Vibes",cursive;font-size:clamp(2.6rem,10vw,3.6rem)}
.wash-hero{position:relative;overflow:hidden;background:#fbf6f8;text-align:center;padding:56px 24px}
.wash-hero .blob{position:absolute;border-radius:50%;filter:blur(30px);opacity:.45;pointer-events:none}
.wash-hero .b1{width:220px;height:220px;background:#e8b0c0;top:-40px;left:-40px}
.wash-hero .b2{width:180px;height:180px;background:#c8b0e0;bottom:-30px;right:-20px}
.album.masonry{display:grid;grid-template-columns:1.2fr .8fr;gap:10px}
.album.masonry figure:first-child{grid-row:span 2}
.blob-time .time-chips .chip{background:rgba(255,255,255,.8);border-radius:24px}
.rsvp-box.soft{border-radius:24px;background:rgba(255,255,255,.7);padding:20px}

/* 10 cards */
.cover-cards{background:linear-gradient(180deg,#f8f4fc,#ebe4f4);color:#3c2848}
.cstack{position:relative;width:min(78vw,280px);height:340px;margin:0 auto;cursor:pointer}
.cstack-card{position:absolute;inset:0;border-radius:18px;background:#fff;border:1px solid rgba(139,116,168,.25);box-shadow:0 12px 32px rgba(60,40,72,.12);transition:transform .7s ease}
.cstack-card.c1{transform:rotate(-6deg) translate(-8px,8px);background:#efe8f8}
.cstack-card.c2{transform:rotate(4deg) translate(8px,4px);background:#f6f0fa}
.cstack-card.c3{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center}
.cstack-card.c3 h1{font-family:Georgia,serif;font-weight:400;font-size:1.7rem;line-height:1.2;margin:8px 0}
.cstack-card.c3 span{display:block;font-size:.55em;opacity:.55;margin:4px 0}
#coverRoot.is-open .c1{transform:translate(-120%,10%) rotate(-18deg)}
#coverRoot.is-open .c2{transform:translate(120%,8%) rotate(16deg)}
.flip-board{display:grid;gap:12px;padding:28px 20px}
.flip-card{background:#fff;border-radius:16px;padding:20px;border:1px solid rgba(139,116,168,.2);box-shadow:0 8px 24px rgba(60,40,72,.06)}
.flip-card em{letter-spacing:.28em;font-size:.68rem;opacity:.55}
.album.soft-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.album.soft-grid figure{border-radius:18px;overflow:hidden}
.rsvp-box.cardish{background:#fff;border-radius:20px;padding:20px;box-shadow:0 10px 30px rgba(60,40,72,.08)}
.wish-wall{display:grid;gap:10px}
.wish-wall .wish-item{background:#fff;border-radius:14px;padding:14px;transform:rotate(-.5deg)}

/* 11 wax */
.cover-wax{background:#0a1220;color:#eef2f8}
.wax-card{width:min(86vw,320px);background:linear-gradient(180deg,#122038,#0d1524);border:1px solid rgba(201,164,92,.35);padding:48px 24px 56px;text-align:center;position:relative;cursor:pointer}
.wax-kicker{letter-spacing:.35em;font-size:.68rem;color:#c9a45c;margin-bottom:16px}
.wax-card h1{font-family:Georgia,serif;font-weight:500;font-size:1.8rem}
.wax-seal{position:absolute;left:50%;bottom:-28px;transform:translateX(-50%);width:56px;height:56px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#e8d090,#8a6020);color:#1a1008;display:grid;place-items:center;box-shadow:0 8px 20px rgba(0,0,0,.4);transition:transform .5s,opacity .5s}
#coverRoot.is-open .wax-seal{transform:translateX(-50%) scale(.4);opacity:0}
.navy-hero{color:#eef2f8;min-height:70vh;display:flex;flex-direction:column;justify-content:flex-end;padding:48px 24px;background-size:cover;background-position:center;position:relative}
.navy-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,21,36,.2),rgba(13,21,36,.92))}
.navy-hero>*{position:relative}
.navy-badge{width:42px;height:42px;border:1px solid var(--accent);border-radius:50%;display:grid;place-items:center;margin:0 auto 16px;color:var(--accent)}
.program-list{list-style:none;display:grid;gap:0}
.program-list li{display:grid;grid-template-columns:64px 1fr;gap:8px 16px;padding:16px 0;border-bottom:1px solid rgba(201,164,92,.2)}
.program-list .pg-time{color:var(--accent);letter-spacing:.06em}
.program-list .pg-loc{grid-column:2;font-size:.85rem;opacity:.7}
.album.formal-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.rsvp-box.formal{border:1px solid rgba(201,164,92,.35);padding:20px;background:rgba(255,255,255,.04)}

/* 12 kraft */
.cover-kraft{background:#d9cbb6;color:#3a2c1c}
.kraft-sheet{width:min(88vw,340px);background:#efe4d4;border:1px dashed #8a6340;padding:48px 28px 56px;text-align:center;position:relative;cursor:pointer;box-shadow:6px 8px 0 rgba(90,60,30,.12)}
.kraft-stamp{position:absolute;right:16px;top:16px;width:58px;height:58px;border:2px solid #8a6340;border-radius:50%;display:grid;place-items:center;transform:rotate(12deg);font-size:1.2rem;color:#8a6340}
.kraft-tearline{position:absolute;left:8px;right:8px;bottom:18px;height:10px;background:repeating-linear-gradient(90deg,transparent 0 8px,#8a6340 8px 10px);opacity:.35}
#coverRoot.is-open.kraft-sheet,#coverRoot.is-open{transform:translateY(12px) rotate(-1deg)}
.kraft-hero{background:#efe4d4;text-align:center;padding:48px 20px}
.hand-letter{background:#fff8ec;padding:28px 22px;font-family:Georgia,serif;line-height:1.85;box-shadow:0 8px 24px rgba(90,60,30,.1);transform:rotate(-.4deg)}
.hand-letter .sign{margin-top:18px}
.album.corkboard{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:16px;background:#c4a882;border-radius:8px}
.album.corkboard figure{background:#fff;padding:8px 8px 24px;transform:rotate(-3deg);box-shadow:0 6px 16px rgba(0,0,0,.2)}
.album.corkboard figure:nth-child(2){transform:rotate(4deg)}
.album.corkboard figure:nth-child(3){transform:rotate(-2deg);grid-column:span 2;max-width:70%;margin:0 auto}
.rsvp-box.notepad{background:#fffef5;border-left:4px solid #e8c27a;padding:20px;background-image:repeating-linear-gradient(transparent 0 27px,rgba(138,99,64,.12) 28px)}
.sticker-cd .sticker{display:inline-block;border:2px dashed var(--accent);border-radius:16px;padding:16px;transform:rotate(-2deg);background:#fff8ec}

/* 13 glass */
.cover-glass{background-size:cover;background-position:center}
.glass-modal{backdrop-filter:blur(18px);background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.45);border-radius:24px;padding:40px 28px;text-align:center;max-width:340px;cursor:pointer;color:#1c3038;box-shadow:0 20px 60px rgba(0,0,0,.2)}
.glass-kicker{letter-spacing:.4em;font-size:.68rem;opacity:.6;margin-bottom:12px}
.glass-hero{min-height:80vh;display:grid;place-items:center;background-size:cover;background-position:center}
.glass-card{backdrop-filter:blur(16px);background:rgba(255,255,255,.5);border-radius:20px;padding:36px 24px;border:1px solid rgba(255,255,255,.4);max-width:360px;margin:auto;text-align:center}
.rsvp-box.glass,.map-card.glass{backdrop-filter:blur(12px);background:rgba(255,255,255,.55);border-radius:18px;padding:18px}
.album.carousel{display:flex;gap:12px;overflow:auto;scroll-snap-type:x mandatory;padding-bottom:8px}
.album.carousel figure{flex:0 0 85%;scroll-snap-align:center;border-radius:16px;overflow:hidden}

/* 14 soft door */
.cover-door{background:radial-gradient(circle at 50% 30%,#ffe8dc,#f0d0c0)}
.soft-door{cursor:pointer}
.door-arch{width:min(80vw,300px);aspect-ratio:3/4;border-radius:150px 150px 24px 24px;background:linear-gradient(180deg,#fff6f0,#fbf3ee);border:1px solid rgba(212,154,130,.35);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px;box-shadow:0 20px 50px rgba(90,48,40,.12);transition:transform .8s ease,border-radius .8s}
#coverRoot.is-open .door-arch{transform:scale(1.05);border-radius:24px}
.door-pill{display:inline-block;background:#f0d0c0;color:#5a3028;padding:6px 14px;border-radius:999px;font-size:.72rem;letter-spacing:.12em;margin-bottom:16px}
.door-script{font-family:"Great Vibes",cursive;font-size:2.4rem;line-height:1.15;font-weight:400}
.door-script span{display:block;font-size:.5em;opacity:.55;margin:4px 0}
.peach-hero{background:radial-gradient(circle at 30% 20%,#ffe8dc,#fbf3ee 60%);text-align:center;padding:56px 24px}
.peach-pill{display:inline-block;background:#f0d0c0;color:#5a3028;padding:6px 14px;border-radius:999px;font-size:.72rem;letter-spacing:.12em;margin-bottom:16px}
.split-story{display:grid;gap:16px}
.split-story img{width:100%;border-radius:24px;aspect-ratio:4/3;object-fit:cover}
.album.round-carousel{display:flex;gap:12px;overflow:auto}
.album.round-carousel figure{flex:0 0 70%;border-radius:999px;overflow:hidden;aspect-ratio:1}
.album.round-carousel img{width:100%;height:100%;object-fit:cover}
.v-timeline.soft .vt-dot{background:#d49a82;width:14px;height:14px}
.gift-grid.hearts .gift-card{border-radius:24px;background:rgba(212,154,130,.1)}
.rsvp-box.peach{border-radius:24px;background:#fff;padding:20px;box-shadow:0 10px 30px rgba(90,48,40,.08)}

/* 15 ink */
.cover-ink{background:#12141a;overflow:hidden;color:#f4efe8}
.ink-brush-layer{position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(201,184,160,.15) 45%,transparent 60%),#12141a;z-index:2;transition:transform .9s ease;transform-origin:left center}
.cover-ink.is-wiping .ink-brush-layer,.cover-ink.is-hidden .ink-brush-layer{transform:translateX(110%) skewX(-8deg)}
.ink-cover{position:relative;z-index:3;text-align:center;padding:64px 24px;cursor:pointer}
.ink-vert{writing-mode:vertical-rl;position:absolute;left:18px;top:40px;letter-spacing:.4em;opacity:.35;font-size:.72rem}
.ink-script{font-family:"Great Vibes",cursive;font-size:clamp(2.4rem,10vw,3.6rem);font-weight:400}
.ink-hero{background:#12141a;color:#f4efe8;text-align:center;padding:56px 24px}
.ink-brush{font-size:4rem;opacity:.15;margin-bottom:8px}
.vert-names{display:flex;justify-content:center;align-items:center;gap:18px;font-family:"Great Vibes",cursive;font-size:clamp(2.2rem,9vw,3.2rem)}
.vert-names span{writing-mode:vertical-rl;letter-spacing:.12em}
.vert-names i{font-style:normal;opacity:.4;font-size:.5em}
.scroll-letter{border:1px solid rgba(201,184,160,.25);padding:28px 20px;font-family:Georgia,serif;line-height:1.9;background:rgba(255,255,255,.03)}
.album.ink-frames{display:grid;gap:18px}
.album.ink-frames figure{border:1px solid rgba(201,184,160,.35);padding:10px;background:rgba(0,0,0,.25)}
.time-chips.ink-chips .chip{background:rgba(255,255,255,.05);border-color:rgba(201,184,160,.25);color:#f4efe8}
.rsvp-box.brush{border:1px solid rgba(201,184,160,.3);padding:20px;background:rgba(255,255,255,.03)}
.wish-list.scroll-wish .wish-item{border-left:2px solid var(--accent);padding-left:14px;background:transparent}

/* shared */
.family-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.family-cards article{padding:16px;border:1px solid rgba(0,0,0,.08);border-radius:12px;text-align:center;background:rgba(255,255,255,.4)}
.gift-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.gift-card{padding:16px;border:1px solid rgba(0,0,0,.08);border-radius:12px;text-align:center;background:rgba(255,255,255,.45)}
.copy-btn{margin-top:10px;appearance:none;border:1px solid var(--accent);background:transparent;color:inherit;padding:8px 12px;border-radius:999px;cursor:pointer;font-size:.8rem}
.map-card{padding:20px;border-radius:14px;border:1px solid rgba(0,0,0,.08);background:rgba(255,255,255,.4);text-align:center}
.primary-btn{appearance:none;border:0;background:var(--accent);color:#fff;padding:12px 18px;border-radius:999px;cursor:pointer;font-weight:500}
.rsvp-box,.wish-box{display:grid;gap:8px;margin-top:12px}
.rsvp-box input,.rsvp-box textarea,.rsvp-box select,.wish-box input,.wish-box textarea{width:100%;padding:12px 14px;border-radius:10px;border:1px solid rgba(0,0,0,.12);background:rgba(255,255,255,.7);color:inherit}
.rsvp-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:4px 0 8px}
.rsvp-actions button{padding:12px 8px;border-radius:10px;border:1px solid rgba(0,0,0,.12);background:rgba(255,255,255,.5);cursor:pointer;color:inherit}
.rsvp-actions button.active{background:var(--accent);color:#fff;border-color:transparent}
.wish-list{display:grid;gap:10px;margin-top:16px}
.wish-item{padding:14px;border-radius:12px;background:rgba(255,255,255,.45);border:1px solid rgba(0,0,0,.06)}
.inv-sec{padding:36px 22px}
.inv-sec.alt{background:rgba(0,0,0,.03)}
.inv-sec h2{font-family:Georgia,serif;font-weight:500;font-size:1.45rem;margin-bottom:14px;text-align:center}
.inv-footer{text-align:center;padding:40px 22px 80px;opacity:.85}
.inv-footer .brand{font-size:.82rem;margin-top:10px}
.inv-footer a{color:var(--accent)}
.lead{opacity:.88;line-height:1.75}
.center{text-align:center}
.inv-float{position:fixed;z-index:80;display:flex;gap:8px;align-items:center}
.inv-float.top-left{top:14px;left:14px}
.inv-float.top-right{top:14px;right:14px}
.inv-chip{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.82);backdrop-filter:blur(10px);border:1px solid rgba(0,0,0,.06);font-size:.72rem;text-decoration:none;color:inherit}
.music-btn{width:42px;height:42px;border-radius:50%;border:0;cursor:pointer;background:rgba(255,255,255,.88);box-shadow:0 8px 24px rgba(0,0,0,.1)}
.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:22px;max-width:340px;margin-inline:auto}
.countdown div{text-align:center;padding:10px 6px;border-radius:12px;background:rgba(255,255,255,.35);border:1px solid rgba(0,0,0,.06)}
.countdown b{display:block;font-size:1.35rem;font-family:Georgia,serif}
.countdown span{font-size:.65rem;letter-spacing:.08em;opacity:.7}
.reveal{opacity:0;transform:translateY(14px);transition:.7s ease}
.reveal.in{opacity:1;transform:none}
.invite{max-width:480px;margin:0 auto;min-height:100vh;background:var(--bg);color:var(--ink)}
.inv-kicker{letter-spacing:.28em;font-size:.72rem;text-transform:uppercase;opacity:.65;margin-bottom:10px;text-align:center}
.inv-names{font-family:Georgia,serif;font-weight:400;font-size:clamp(2rem,8vw,2.8rem);text-align:center;line-height:1.15}
.inv-names .amp{display:block;font-size:.45em;opacity:.55;margin:.15em 0;font-style:italic}
.inv-date,.inv-place{text-align:center;opacity:.8;margin-top:8px}
.has-photo{background-size:cover;background-position:center}
.layout-cine-play .inv-sec.alt,.layout-wax-seal .inv-sec.alt,.layout-ink-wipe .inv-sec.alt,.layout-polaroid-stack .inv-sec.alt{background:rgba(255,255,255,.04)}
.layout-cine-play .family-cards article,.layout-wax-seal .family-cards article,.layout-ink-wipe .family-cards article,.layout-polaroid-stack .family-cards article,
.layout-cine-play .gift-card,.layout-wax-seal .gift-card,.layout-ink-wipe .gift-card,.layout-polaroid-stack .gift-card,
.layout-cine-play .map-card,.layout-wax-seal .map-card,.layout-ink-wipe .map-card,.layout-polaroid-stack .map-card,
.layout-cine-play .wish-item,.layout-wax-seal .wish-item,.layout-ink-wipe .wish-item,.layout-polaroid-stack .wish-item{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12);color:inherit}
.layout-cine-play input,.layout-cine-play textarea,.layout-cine-play select,
.layout-wax-seal input,.layout-wax-seal textarea,.layout-wax-seal select,
.layout-ink-wipe input,.layout-ink-wipe textarea,.layout-ink-wipe select,
.layout-polaroid-stack input,.layout-polaroid-stack textarea,.layout-polaroid-stack select{background:rgba(255,255,255,.08);color:inherit;border-color:rgba(255,255,255,.15)}
.layout-dh-gate{color:#fff5e8}
.layout-dh-gate .inv-sec.alt{background:rgba(0,0,0,.15)}
.layout-dh-gate .family-cards article,.layout-dh-gate .gift-card,.layout-dh-gate .wish-item,.layout-dh-gate .map-card{background:rgba(0,0,0,.18);border-color:rgba(232,194,122,.25);color:#fff5e8}
.layout-dh-gate input,.layout-dh-gate textarea,.layout-dh-gate select{background:rgba(0,0,0,.25);color:#fff5e8;border-color:rgba(232,194,122,.25)}
[class*="xbrand"],[id*="xbrand"],.built-with-xbrand,[data-brand="xbrand"]{display:none!important}
