/* Mẫu Cổ Điển Toile — nền vải toile xám, phong bì đỏ rượu ô vòm, dấu sáp vàng đồng, giấy xé tay. Bố cục flow. */

.t-co-dien {
  --wine: #4a1419;
  --wine-deep: #3a0f13;
  --ink: #3b2a26;
  --ink-soft: #6b5a52;
  --gold: #b28a45;
  --olive: #6a6f44;
  --paper: #fbf8f1;
  --toile: #d9d6d0;
  --f-script: "Pinyon Script", cursive;
  --f-imperial: "Imperial Script", "Pinyon Script", cursive;
  --f-hand: "Ms Madi", "Pinyon Script", cursive;
  --f-serif: "Cormorant Garamond", Georgia, serif;
  --f-text: "EB Garamond", Georgia, serif;
  --gate-bg: #4a1419;
  --gate-ink: #3b2a26;
  --accent-strong: #4a1419;
  /* mép giấy xé (sinh ngẫu nhiên, lặp theo cạnh) */
  --torn-top: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='12' viewBox='0 0 180 12' preserveAspectRatio='none'%3E%3Cpath d='M0 12 L0 4 L3.6 1.6 L8.5 1.8 L12.7 2.3 L17.9 6.8 L23.2 3.6 L26 4.8 L28.6 2.8 L34.8 4 L38.5 3.3 L42.1 3.1 L49 4.5 L53.7 4.5 L59.9 6.4 L64.6 5.1 L69.9 6.6 L73.1 6.1 L78.5 6.9 L84.9 5 L89.7 2 L95.6 6.2 L101.1 6.8 L103.9 6.4 L109.8 4.4 L115 5.3 L118.8 2.3 L121.4 6 L127.8 4.4 L132.5 2.7 L138.2 1.4 L144.7 6.1 L150.4 6.9 L157 1.5 L161.3 5.8 L167.4 3.5 L171.9 1.9 L180 4 L180 12Z'/%3E%3C/svg%3E");
  --torn-bot: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='12' viewBox='0 0 180 12' preserveAspectRatio='none'%3E%3Cpath transform='matrix(1 0 0 -1 0 12)' d='M0 12 L0 4 L3.6 1.6 L8.5 1.8 L12.7 2.3 L17.9 6.8 L23.2 3.6 L26 4.8 L28.6 2.8 L34.8 4 L38.5 3.3 L42.1 3.1 L49 4.5 L53.7 4.5 L59.9 6.4 L64.6 5.1 L69.9 6.6 L73.1 6.1 L78.5 6.9 L84.9 5 L89.7 2 L95.6 6.2 L101.1 6.8 L103.9 6.4 L109.8 4.4 L115 5.3 L118.8 2.3 L121.4 6 L127.8 4.4 L132.5 2.7 L138.2 1.4 L144.7 6.1 L150.4 6.9 L157 1.5 L161.3 5.8 L167.4 3.5 L171.9 1.9 L180 4 L180 12Z'/%3E%3C/svg%3E");
  --torn-left: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='180' viewBox='0 0 10 180' preserveAspectRatio='none'%3E%3Cpath d='M10 0 L2 0 L1.6 5.3 L4.5 11.1 L4.5 18.7 L3.9 24 L3.3 29.5 L1.8 35.5 L1.4 39.4 L1.7 45 L0.8 51.1 L3.6 58.1 L2.1 61.6 L3.9 66.1 L2 69.5 L4.3 76.6 L3.9 83 L0.5 86.2 L1.3 94.2 L4.1 102 L2.4 108.3 L4.4 114.3 L2.1 118.1 L0.8 121.2 L3 126.8 L3.6 130.1 L1.6 134.1 L0.8 138.3 L1.8 141.4 L4.4 146.8 L3.5 152 L1 159.2 L1.5 164.8 L0.9 171 L0.7 176.5 L2 180 L10 180Z'/%3E%3C/svg%3E");
  --torn-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='180' viewBox='0 0 10 180' preserveAspectRatio='none'%3E%3Cpath transform='matrix(-1 0 0 1 10 0)' d='M10 0 L2 0 L1.6 5.3 L4.5 11.1 L4.5 18.7 L3.9 24 L3.3 29.5 L1.8 35.5 L1.4 39.4 L1.7 45 L0.8 51.1 L3.6 58.1 L2.1 61.6 L3.9 66.1 L2 69.5 L4.3 76.6 L3.9 83 L0.5 86.2 L1.3 94.2 L4.1 102 L2.4 108.3 L4.4 114.3 L2.1 118.1 L0.8 121.2 L3 126.8 L3.6 130.1 L1.6 134.1 L0.8 138.3 L1.8 141.4 L4.4 146.8 L3.5 152 L1 159.2 L1.5 164.8 L0.9 171 L0.7 176.5 L2 180 L10 180Z'/%3E%3C/svg%3E");
}

.t-co-dien .vela-frame { background: var(--toile); }
.t-co-dien .cd-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.t-co-dien .cd-page { position: relative; overflow: hidden; color: var(--ink); font-family: var(--f-text); }
.t-co-dien .cd-toile { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .5; pointer-events: none; }
.t-co-dien .s { position: relative; z-index: 1; padding: 0 30px; }
.t-co-dien .cd-page :where(p) { margin: 0; }

/* ---------- đồ dùng chung ---------- */
.t-co-dien .cd-card { position: relative; z-index: 2; filter: drop-shadow(0 5px 7px rgba(40, 20, 15, .22)); }
.t-co-dien .cd-paper {
  position: relative;
  padding: 30px 26px;
  background:
    radial-gradient(circle at 18% 22%, rgba(120, 90, 60, .05), transparent 40%),
    radial-gradient(circle at 82% 78%, rgba(120, 90, 60, .06), transparent 45%),
    var(--paper);
  text-align: center;
  -webkit-mask: var(--torn-top) center top / calc(100% - 8px) 12px no-repeat, var(--torn-bot) center bottom / calc(100% - 8px) 12px no-repeat,
    var(--torn-left) left center / 10px calc(100% - 14px) no-repeat, var(--torn-right) right center / 10px calc(100% - 14px) no-repeat,
    linear-gradient(#000 0 0) center / calc(100% - 18px) calc(100% - 22px) no-repeat;
  mask: var(--torn-top) center top / calc(100% - 8px) 12px no-repeat, var(--torn-bot) center bottom / calc(100% - 8px) 12px no-repeat,
    var(--torn-left) left center / 10px calc(100% - 14px) no-repeat, var(--torn-right) right center / 10px calc(100% - 14px) no-repeat,
    linear-gradient(#000 0 0) center / calc(100% - 18px) calc(100% - 22px) no-repeat;
}
.t-co-dien .cd-tilt-l { transform: rotate(-1.6deg); }
.t-co-dien .cd-tilt-r { transform: rotate(1.4deg); }
.t-co-dien .cd-seal { display: block; width: 58px; height: 58px; filter: drop-shadow(0 3px 3px rgba(0, 0, 0, .35)); }
.t-co-dien .cd-anth { position: absolute; z-index: 3; width: 76px; height: 95px; filter: drop-shadow(0 4px 4px rgba(0, 0, 0, .3)); pointer-events: none; }
.t-co-dien .cd-kicker {
  font-family: var(--f-serif); font-weight: 500; font-size: 22px; letter-spacing: 6px;
  text-transform: uppercase; text-align: center; color: var(--wine-deep);
}
.t-co-dien .cd-btn {
  display: inline-block; margin-top: 18px; padding: 9px 26px;
  border: 0; border-radius: 3px;
  background: var(--wine); color: #f6efe3;
  font-family: var(--f-serif); font-size: 16px; font-weight: 600; letter-spacing: 1.5px;
  text-decoration: none;
}
.t-co-dien .cd-btn--line { padding: 7px 24px; background: transparent; color: var(--wine); border: 1px solid var(--wine); border-radius: 999px; }

/* phong bì đỏ rượu có ô vòm ảnh */
.t-co-dien .cd-env {
  position: relative; width: 300px; height: 380px; margin: 0 auto;
  background:
    radial-gradient(circle at 30% 20%, rgba(255, 255, 255, .06), transparent 50%),
    var(--wine);
  box-shadow: 0 10px 22px rgba(40, 10, 12, .35);
}
.t-co-dien .cd-arch {
  position: absolute; left: 30px; top: 26px; width: 240px; height: 270px;
  border-radius: 120px 120px 0 0;
  overflow: hidden; background: #cfc6b8;
  box-shadow: 0 0 0 5px #efe6d6, 0 0 0 6px rgba(178, 138, 69, .6);
}
.t-co-dien .cd-arch img { width: 100%; height: 100%; object-fit: cover; }
.t-co-dien .cd-pocket { position: absolute; left: 0; bottom: 0; width: 300px; height: 170px; filter: drop-shadow(0 -2px 3px rgba(0, 0, 0, .25)); }
.t-co-dien .cd-env > .cd-seal { position: absolute; left: 116px; bottom: 30px; width: 68px; height: 68px; z-index: 3; }

/* thư tay mờ phía sau */
.t-co-dien .cd-letter {
  position: absolute; z-index: 1; width: 210px; padding: 16px 18px;
  background: #efe5cf;
  box-shadow: 0 3px 8px rgba(0, 0, 0, .15);
  font-family: var(--f-hand); font-size: 17px; line-height: 1.35; color: rgba(70, 50, 35, .55);
  text-align: left; overflow: hidden;
}

/* thẻ ô liu có tua */
.t-co-dien .cd-tag { position: absolute; z-index: 4; display: block; width: 92px; height: 153px; text-decoration: none; filter: drop-shadow(0 3px 3px rgba(0, 0, 0, .28)); }
.t-co-dien .cd-tag svg { width: 100%; height: 100%; }
.t-co-dien .cd-tag span {
  position: absolute; left: 12px; right: 12px; top: 40px;
  font-family: var(--f-serif); font-weight: 600; font-size: 11.5px; line-height: 1.25; letter-spacing: 1.2px;
  text-transform: uppercase; text-align: center; color: #f3efdd;
}

/* ---------- 1. bìa ---------- */
.t-co-dien .s-hero { padding-top: 34px; padding-bottom: 34px; }
.t-co-dien .hero-names {
  display: flex; flex-direction: column; align-items: center;
  margin-bottom: 26px;
  font-family: var(--f-serif); font-weight: 500; font-size: 22px; line-height: 1.3; letter-spacing: 3px;
  text-transform: uppercase; color: var(--wine-deep);
}
.t-co-dien .hero-name { display: inline-block; white-space: nowrap; }
.t-co-dien .hero-name::first-letter { font-family: var(--f-imperial); font-size: 50px; letter-spacing: 0; text-transform: none; margin-right: 2px; }
.t-co-dien .hero-amp { margin: -4px 0 -8px; font-family: var(--f-script); font-size: 38px; line-height: 1; letter-spacing: 0; text-transform: none; }
.t-co-dien .hero-date {
  margin-top: 26px; text-align: center;
  font-family: var(--f-serif); font-size: 16px; font-weight: 600; letter-spacing: 3px; text-transform: uppercase; color: var(--wine-deep);
}
.t-co-dien .hero-anth { right: 14px; bottom: 50px; transform: rotate(18deg); }

/* ---------- 2. player ---------- */
.t-co-dien .s-player { padding-bottom: 26px; }
.t-co-dien .player { padding: 26px 30px 24px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 10px 14px; }
.t-co-dien .player-title { grid-column: 1 / -1; font-family: var(--f-text); font-size: 16px; color: var(--ink); }
.t-co-dien .player-bar { grid-column: 1 / -1; position: relative; height: 2px; margin: 6px 0; background: #cfc6b8; }
.t-co-dien .player-bar span { position: absolute; left: 0; top: 0; width: 34%; height: 2px; background: var(--ink); }
.t-co-dien .player-bar span::after { content: ""; position: absolute; right: -5px; top: -4px; width: 10px; height: 10px; border-radius: 50%; background: var(--ink); }
.t-co-dien .player-ctrl { display: flex; gap: 18px; justify-content: flex-end; color: var(--ink); }
.t-co-dien .player-ctrl--r { justify-content: flex-start; }
.t-co-dien .player-ctrl svg { width: 22px; height: 22px; }
.t-co-dien .player-play { width: 46px; height: 46px; display: grid; place-items: center; border: 0; border-radius: 50%; background: #1e1a19; color: #fff; }
.t-co-dien .player-play svg { width: 22px; height: 22px; margin-left: 2px; }
.t-co-dien .player-anth { left: 6px; bottom: -34px; transform: rotate(-24deg) scale(.8); }

/* ---------- 3. thiệp mời ---------- */
.t-co-dien .s-invite { padding-top: 64px; padding-bottom: 80px; }
.t-co-dien .invite-letter { left: 22px; top: 6px; transform: rotate(-6deg); height: 150px; }
.t-co-dien .invite { padding: 36px 26px 34px; }
.t-co-dien .inv-quote { font-family: var(--f-text); font-style: italic; font-size: 15px; line-height: 1.55; color: var(--ink-soft); }
.t-co-dien .inv-kicker {
  margin-top: 18px; font-family: var(--f-serif); font-weight: 600; font-size: 13px; letter-spacing: 1.2px; text-transform: uppercase; color: var(--wine);
}
.t-co-dien .inv-families { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 12px; }
.t-co-dien .inv-side { font-family: var(--f-serif); font-weight: 600; font-size: 13px; letter-spacing: 2px; text-transform: uppercase; }
.t-co-dien .inv-parents { margin-top: 4px; font-size: 14.5px; line-height: 1.45; }
.t-co-dien .inv-addr { margin-top: 3px; font-size: 12.5px; line-height: 1.4; color: var(--ink-soft); font-style: italic; }
.t-co-dien .inv-portrait { width: 104px; aspect-ratio: 3 / 4; margin: 0 auto 10px; padding: 3px; border: 1px solid rgba(74, 20, 25, .45); border-radius: 52px 52px 4px 4px; background: #fffdf8; }
.t-co-dien .inv-portrait img { width: 100%; height: 100%; object-fit: cover; border-radius: 49px 49px 2px 2px; filter: sepia(.12); }
.t-co-dien .inv-names {
  display: flex; flex-direction: column; align-items: center;
  margin-top: 20px; font-family: var(--f-script); font-size: 46px; line-height: 1.15; color: var(--wine-deep);
}
.t-co-dien .inv-names span:first-child { align-self: flex-start; margin-left: 10px; }
.t-co-dien .inv-names span:last-child { align-self: flex-end; margin-right: 10px; }
.t-co-dien .inv-amp { font-size: 44px; line-height: 1; }
.t-co-dien .inv-full { margin-top: 10px; font-family: var(--f-serif); font-size: 14px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--ink-soft); }
.t-co-dien .inv-text { margin: 16px auto 0; max-width: 290px; font-size: 15.5px; line-height: 1.55; }
.t-co-dien .inv-text b { font-weight: 500; font-style: italic; color: var(--wine); }
.t-co-dien .invite-tag { right: 22px; bottom: -44px; transform: rotate(8deg); }

/* ---------- 4. lịch ---------- */
.t-co-dien .s-calendar { padding-bottom: 60px; padding-left: 42px; padding-right: 42px; }
.t-co-dien .cal { padding: 34px 24px 30px; }
.t-co-dien .cal-quote { font-family: var(--f-text); font-style: italic; font-size: 14.5px; line-height: 1.5; color: var(--ink-soft); }
.t-co-dien .cal-kicker { margin-top: 12px; font-family: var(--f-script); font-size: 30px; color: var(--wine); }
.t-co-dien .cal-title { font-family: var(--f-serif); font-weight: 600; font-size: 20px; letter-spacing: 4px; text-transform: uppercase; }
.t-co-dien .cal-grid { margin-top: 14px; display: grid; gap: 4px; }
.t-co-dien .cal-row { display: grid; grid-template-columns: repeat(7, 1fr); }
.t-co-dien .cal-row span { position: relative; height: 30px; display: grid; place-items: center; font-family: var(--f-serif); font-size: 15px; font-weight: 500; }
.t-co-dien .cal-row--head span { height: 24px; font-size: 12px; font-weight: 600; letter-spacing: 1px; color: var(--ink-soft); }
.t-co-dien .cal-row .is-sun { color: var(--wine); }
.t-co-dien .cal-row .is-day { color: var(--wine); font-weight: 700; }
.t-co-dien .cal-ring { position: absolute; left: 50%; top: 50%; width: 40px; height: 36px; transform: translate(-50%, -50%); }
.t-co-dien .cal-anth { right: 18px; bottom: 20px; transform: rotate(-14deg); }

/* ---------- 5. lễ & tiệc ---------- */
.t-co-dien .s-events { padding-bottom: 60px; }
.t-co-dien .cd-minienv { position: relative; z-index: 3; width: 150px; height: 94px; margin: 0 auto -26px; transform: rotate(-4deg); filter: drop-shadow(0 4px 5px rgba(0, 0, 0, .3)); }
.t-co-dien .cd-minienv > svg:first-child { width: 100%; height: 100%; }
.t-co-dien .minienv-seal { position: absolute; left: 53px; top: 30px; width: 44px; height: 44px; }
.t-co-dien .events { padding: 50px 24px 32px; }
.t-co-dien .ev + .ev { margin-top: 22px; padding-top: 22px; border-top: 1px solid rgba(74, 20, 25, .2); }
.t-co-dien .ev-title { font-family: var(--f-serif); font-weight: 600; font-size: 17px; letter-spacing: 3px; text-transform: uppercase; color: var(--wine); }
.t-co-dien .ev-row { display: grid; grid-template-columns: 92px 1fr; align-items: center; margin-top: 12px; text-align: left; }
.t-co-dien .ev-time { padding-right: 14px; border-right: 1px solid var(--ink); font-family: var(--f-serif); font-size: 30px; font-weight: 500; text-align: right; }
.t-co-dien .ev-info { padding-left: 14px; }
.t-co-dien .ev-place { font-family: var(--f-script); font-size: 26px; line-height: 1.15; color: var(--wine-deep); }
.t-co-dien .ev-addr { margin-top: 3px; font-size: 13.5px; line-height: 1.4; }
.t-co-dien .ev-date { margin-top: 4px; font-size: 14px; }
.t-co-dien .ev-lunar { font-size: 13px; font-style: italic; color: var(--ink-soft); }
.t-co-dien .events-seal { position: absolute; z-index: 3; left: 26px; bottom: 36px; }

/* ---------- 6. lịch trình ---------- */
.t-co-dien .s-program { padding-bottom: 50px; }
.t-co-dien .program-letter { left: 4px; top: 50px; height: 250px; width: 150px; transform: rotate(-5deg); }
.t-co-dien .program {
  position: relative; z-index: 2; margin-left: 40px; padding: 30px 22px 26px;
  background: var(--wine); color: #f6efe3;
  box-shadow: 0 10px 20px rgba(40, 10, 12, .35);
}
.t-co-dien .program-title { font-family: var(--f-serif); font-weight: 500; font-size: 26px; letter-spacing: 5px; text-transform: uppercase; text-align: center; }
.t-co-dien .program-list { position: relative; margin: 18px 0 0; padding: 0; list-style: none; }
.t-co-dien .program-list::before { content: ""; position: absolute; left: 50%; top: 10px; bottom: 10px; width: 1px; background: rgba(246, 239, 227, .55); }
.t-co-dien .program-item { position: relative; display: grid; grid-template-columns: 1fr 44px 1fr; align-items: center; gap: 12px; padding: 9px 0; }
.t-co-dien .program-time { text-align: right; font-family: var(--f-serif); font-size: 18px; font-weight: 600; letter-spacing: 1px; }
.t-co-dien .program-ic { width: 44px; height: 44px; padding: 5px; border-radius: 50%; background: var(--wine); color: #f6efe3; }
.t-co-dien .program-name { font-family: var(--f-serif); font-size: 15px; line-height: 1.3; letter-spacing: .5px; text-transform: uppercase; }
.t-co-dien .program-name small { display: block; margin-top: 2px; font-family: var(--f-text); font-size: 12.5px; letter-spacing: 0; text-transform: none; opacity: .8; font-style: italic; }

/* ---------- 7. đếm ngược ---------- */
.t-co-dien .s-countdown { padding-top: 10px; padding-bottom: 50px; }
.t-co-dien .countdown { display: flex; justify-content: center; align-items: flex-start; gap: 6px; margin-top: 10px; color: var(--ink); }
.t-co-dien .countdown div { display: grid; justify-items: center; min-width: 62px; }
.t-co-dien .countdown b { font-family: var(--f-serif); font-weight: 500; font-size: 46px; line-height: 1; text-shadow: 0 0 6px var(--toile), 0 0 3px var(--toile); }
.t-co-dien .countdown span { margin-top: 6px; font-family: var(--f-serif); font-weight: 600; font-size: 12px; letter-spacing: 2px; text-transform: uppercase; }
.t-co-dien .countdown i { font-style: normal; font-family: var(--f-serif); font-size: 38px; line-height: 1.05; }
.t-co-dien .countdown-seal { position: absolute; right: 26px; top: -18px; width: 50px; height: 50px; transform: rotate(14deg); }

/* ---------- 9. mừng cưới ---------- */
.t-co-dien .s-gift { padding-bottom: 60px; padding-left: 50px; padding-right: 50px; }
.t-co-dien .gift-head {
  position: relative; z-index: 3; width: 250px; margin: 0 auto -14px; padding: 18px 18px 22px;
  background: var(--wine); color: #f6efe3; text-align: center;
  box-shadow: 0 8px 16px rgba(40, 10, 12, .35);
}
.t-co-dien .gift-head svg { width: 30px; height: 30px; }
.t-co-dien .gift-head p { margin-top: 6px; font-size: 13.5px; line-height: 1.5; }
.t-co-dien .gift { padding: 40px 24px 30px; }
.t-co-dien .gift-title { font-family: var(--f-serif); font-weight: 500; font-size: 22px; letter-spacing: 5px; text-transform: uppercase; }
.t-co-dien .gift-sub { margin-top: 4px; font-size: 14.5px; font-style: italic; color: var(--ink-soft); }
.t-co-dien .gift-seal { position: absolute; z-index: 4; right: 34px; top: 12px; }

/* ---------- 10. album ---------- */
.t-co-dien .s-album { padding-bottom: 50px; }
.t-co-dien .album-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 14px; margin-top: 18px; }
.t-co-dien .album-item { padding: 8px 8px 22px; background: var(--paper); box-shadow: 0 5px 12px rgba(40, 20, 15, .25); }
.t-co-dien .album-item:nth-child(odd) { transform: rotate(-2deg); }
.t-co-dien .album-item:nth-child(even) { transform: rotate(2deg); }
.t-co-dien .album-item--wide { grid-column: 1 / -1; transform: rotate(-.8deg) !important; }
.t-co-dien .album-photo { overflow: hidden; background: #ddd; }
.t-co-dien .album-item--tall .album-photo { height: 210px; }
.t-co-dien .album-item--wide .album-photo { height: 220px; }
.t-co-dien .album-photo img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- 11. câu trích ---------- */
.t-co-dien .s-saying { padding: 0 60px 60px; }
.t-co-dien .saying {
  padding: 22px 22px; background: var(--wine); color: #f6efe3;
  font-family: var(--f-text); font-style: italic; font-size: 16px; line-height: 1.55; text-align: center;
  box-shadow: 0 8px 16px rgba(40, 10, 12, .35);
}

/* ---------- 12. xác nhận tham dự ---------- */
.t-co-dien .s-rsvp { padding-bottom: 60px; }
.t-co-dien .rsvp-env { height: 450px; }
.t-co-dien .rsvp-env .cd-arch { height: 230px; }
.t-co-dien .rsvp-card { position: absolute; left: 20px; right: 20px; top: 136px; z-index: 2; }
.t-co-dien .rsvp { padding: 26px 20px 60px; }
.t-co-dien .rsvp-title { font-family: var(--f-serif); font-weight: 600; font-size: 18px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--wine); }
.t-co-dien .rsvp-text { margin-top: 6px; font-size: 14.5px; line-height: 1.5; font-style: italic; }
.t-co-dien .rsvp .cd-btn { margin-top: 12px; }
.t-co-dien .rsvp-env .cd-pocket { z-index: 3; height: 150px; }
.t-co-dien .rsvp-env > .cd-seal { z-index: 4; bottom: 22px; }
.t-co-dien .rsvp-anth { left: 8px; bottom: 30px; transform: rotate(-20deg); }

/* ---------- 13. cảm ơn ---------- */
.t-co-dien .s-thanks { padding-bottom: 40px; }
.t-co-dien .thanks-arch {
  width: 260px; height: 320px; margin: 0 auto;
  border-radius: 130px 130px 0 0; overflow: hidden;
  box-shadow: 0 0 0 6px var(--wine), 0 0 0 7px var(--gold), 0 12px 22px rgba(0, 0, 0, .3);
}
.t-co-dien .thanks-arch img { width: 100%; height: 100%; object-fit: cover; }
.t-co-dien .thanks-card { width: 270px; margin: -40px auto 0; }
.t-co-dien .thanks { padding: 24px 20px 26px; }
.t-co-dien .thanks-sub { font-family: var(--f-serif); font-weight: 600; font-size: 12.5px; letter-spacing: 1px; text-transform: uppercase; color: var(--ink-soft); }
.t-co-dien .thanks-big { font-family: var(--f-script); font-size: 50px; line-height: 1.2; color: var(--wine-deep); }
.t-co-dien .thanks-anth { right: 40px; bottom: 34px; transform: rotate(20deg) scale(.9); }

.t-co-dien .s-footer {
  position: relative; z-index: 1; display: grid; gap: 2px; padding: 8px 0 18px;
  text-align: center; font-family: var(--f-serif); font-size: 15px; font-weight: 600; letter-spacing: 2px; color: var(--wine-deep);
}
.t-co-dien .footer-roman { font-size: 13px; letter-spacing: 4px; color: var(--ink-soft); }

/* ---------- màn mở thiệp: cửa đỏ rượu, thiệp giấy ngà + dấu sáp ---------- */
.t-co-dien .vela-gate__door {
  background:
    radial-gradient(circle at 30% 30%, rgba(255, 255, 255, .06), transparent 60%),
    var(--wine);
}
.t-co-dien .vela-gate__card { filter: drop-shadow(0 10px 18px rgba(0, 0, 0, .35)); padding-top: 60px; }
.t-co-dien .vela-gate__card::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: var(--paper);
  -webkit-mask: var(--torn-top) center top / calc(100% - 8px) 12px no-repeat, var(--torn-bot) center bottom / calc(100% - 8px) 12px no-repeat,
    var(--torn-left) left center / 10px calc(100% - 14px) no-repeat, var(--torn-right) right center / 10px calc(100% - 14px) no-repeat,
    linear-gradient(#000 0 0) center / calc(100% - 18px) calc(100% - 22px) no-repeat;
  mask: var(--torn-top) center top / calc(100% - 8px) 12px no-repeat, var(--torn-bot) center bottom / calc(100% - 8px) 12px no-repeat,
    var(--torn-left) left center / 10px calc(100% - 14px) no-repeat, var(--torn-right) right center / 10px calc(100% - 14px) no-repeat,
    linear-gradient(#000 0 0) center / calc(100% - 18px) calc(100% - 22px) no-repeat;
}
.t-co-dien .vela-gate__card::after {
  content: ""; position: absolute; left: 50%; top: -26px; width: 64px; height: 64px; transform: translateX(-50%);
  border-radius: 50%;
  background: radial-gradient(circle at 38% 32%, #f1dca0, #c79a4e 45%, #6f4d1b);
  box-shadow: 0 3px 5px rgba(0, 0, 0, .35), inset 0 0 0 9px rgba(111, 77, 27, .25);
}
.t-co-dien .vela-gate__label { font-family: var(--f-serif); font-weight: 600; font-size: 13px; letter-spacing: 3px; color: var(--ink-soft); }
.t-co-dien .vela-gate__guest, .t-co-dien .vela-gate__names { color: var(--wine-deep); text-wrap: balance; }
.t-co-dien .vela-gate__names { font-size: 31px; }
.t-co-dien .vela-gate__date { font-family: var(--f-serif); font-weight: 600; }
.t-co-dien .vela-gate__open { border-radius: 3px; font-family: var(--f-serif); letter-spacing: 2px; }
