:root{
  --burgundy:#6d0f1d;
  --burgundy-dark:#561019;
  --gold:#d5a345;
  --gold-soft:#f1d7a1;
  --cream:#fff8ef;
  --paper:#fffaf4;
  --ink:#3e2823;
  --muted:#6b5047;
  --line:rgba(213,163,69,.42);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fbf6ef;color:var(--ink);font-family:Montserrat,Arial,sans-serif}
a{color:inherit}
.t21-page{
  position:relative;min-height:100vh;overflow:hidden;background:
   radial-gradient(circle at 82% 31%, rgba(255,255,255,.55), transparent 22%),
   linear-gradient(180deg,#fffaf4 0%,#fff8f0 100%);
  border:2px solid rgba(213,163,69,.68);
}
.t21-page:before,.t21-page:after{content:"";position:absolute;pointer-events:none;z-index:1}
.t21-page:before{inset:12px;border:1px solid rgba(213,163,69,.48)}
.t21-page:after{
  inset:0;
  background:
   radial-gradient(circle at 2.1% 10.6%, rgba(122,27,43,.42), transparent 8%),
   radial-gradient(circle at 5.5% 11%, rgba(170,92,106,.28), transparent 10%),
   radial-gradient(circle at 7.2% 8.6%, rgba(225,204,184,.55), transparent 9%),
   linear-gradient(110deg, rgba(213,163,69,.75), transparent 11%) left 0 top 104px/190px 65px no-repeat,
   radial-gradient(circle at 89% 35%, rgba(213,163,69,.14), transparent 30%),
   radial-gradient(circle at 71% 55%, rgba(213,163,69,.09), transparent 24%);
  opacity:1;
}
.t21-header{
  position:relative;z-index:5;display:grid;grid-template-columns:minmax(250px,1fr) auto 190px;align-items:center;
  gap:30px;height:88px;padding:0 74px;background:rgba(255,248,239,.98);border-bottom:1px solid rgba(213,163,69,.54);
}
.t21-logo{display:flex;align-items:flex-end;gap:12px;text-decoration:none;white-space:nowrap}
.t21-logo span{font-family:'Great Vibes',cursive;font-size:44px;line-height:.8;color:var(--burgundy)}
.t21-logo em{font-family:'Cormorant Garamond',serif;font-style:normal;color:var(--gold);font-size:.82em;font-weight:700}
.t21-logo small{font-family:'Cormorant Garamond',serif;font-size:18px;color:var(--burgundy-dark);font-weight:600;margin-bottom:4px}
.t21-nav{display:flex;align-items:center;justify-content:center;gap:66px}
.t21-nav a{position:relative;text-decoration:none;font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:700;color:var(--burgundy-dark)}
.t21-nav a:first-child:after{content:"";position:absolute;left:0;right:0;bottom:-18px;height:1px;background:var(--gold)}
.t21-header-btn,.t21-map-button,.t21-rsvp-form button{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;
  background:linear-gradient(180deg,#7d1120,#630815 72%,#52040f 100%);
  color:#fff8e3;border:1px solid #d0a154;outline:3px solid rgba(213,163,69,.18);
  box-shadow:inset 0 0 0 1px rgba(248,224,171,.28);
  font-family:'Cormorant Garamond',serif;font-weight:700;
}
.t21-header-btn{height:48px;padding:0 28px;font-size:20px}
.t21-site-shell{position:relative;z-index:3;max-width:1448px;margin:0 auto}
.t21-hero{
  position:relative;display:grid;grid-template-columns:57% 43%;min-height:560px;padding:32px 66px 0;
  background:linear-gradient(90deg,rgba(255,250,244,.96) 0,rgba(255,250,244,.98) 54%,rgba(255,248,240,.76) 100%);
}
.t21-hero:before{content:"";position:absolute;left:0;top:0;bottom:0;width:200px;background:
  radial-gradient(circle at 8% 10%, rgba(110,20,37,.8), transparent 25%),
  radial-gradient(circle at 22% 15%, rgba(164,100,114,.45), transparent 28%),
  radial-gradient(circle at 40% 18%, rgba(245,220,210,.72), transparent 24%),
  linear-gradient(120deg, rgba(213,163,69,.55), transparent 28%);
  opacity:.9}
.t21-hero-copy{position:relative;z-index:3;padding:30px 0 10px;min-width:0}
.t21-hero-divider{display:flex;justify-content:center;align-items:center;gap:12px;color:var(--gold);width:76%;margin:0 auto 18px;font-size:20px}
.t21-hero-divider:before,.t21-hero-divider:after{content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.t21-hero h1{margin:0;line-height:.93}
.t21-hero .script{display:inline-block;font-family:'Great Vibes',cursive;color:var(--burgundy);font-size:clamp(102px,10vw,146px);font-weight:400;line-height:.72;margin-right:22px}
.t21-hero .number{font-family:'Cormorant Garamond',serif;color:var(--gold);font-size:clamp(88px,8.3vw,132px);font-weight:600;line-height:.78}
.t21-hero .number sup{font-family:'Great Vibes',cursive;color:var(--gold);font-size:.45em;font-weight:400;top:-.32em}
.t21-hero .serif{display:block;margin-top:22px;font-family:'Cormorant Garamond',serif;text-transform:uppercase;letter-spacing:8px;color:var(--burgundy-dark);font-size:clamp(40px,4vw,60px);font-weight:700;line-height:.98}
.t21-hero-copy>p{margin:18px 0 28px 36px;font-family:'Cormorant Garamond',serif;font-size:22px;line-height:1.35;color:var(--ink)}
.t21-hero-copy>p:before{content:"";display:inline-block;width:42px;height:1px;background:var(--gold);margin-right:12px;vertical-align:middle}
.t21-hero-copy>p span{font-family:'Great Vibes',cursive;font-size:34px;color:var(--burgundy)}
.t21-hero-details{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:740px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)
}
.t21-hero-details article{
  display:grid;grid-template-columns:54px 1fr;gap:14px;align-items:center;min-height:86px;padding:16px 18px 15px 0;
  border-right:1px solid var(--line);border-bottom:1px solid var(--line)
}
.t21-hero-details article:nth-child(3n){border-right:0}
.t21-hero-details article:nth-child(n+4){border-bottom:0}
.t21-hero-details .icon{
  width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--burgundy);
  border:2px solid var(--gold);color:var(--gold-soft)
}
.t21-hero-details .icon svg,.map-btn-icon svg{width:24px;height:24px;display:block}
.t21-hero-details h3{margin:0 0 4px;font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:700;color:var(--burgundy)}
.t21-hero-details p{margin:0;font-size:14px;line-height:1.35;color:var(--ink)}
.t21-hero-photo-panel{position:relative;z-index:2;min-height:500px;overflow:visible}
.t21-photo-glow{position:absolute;right:14%;top:18%;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle, rgba(255,255,255,.38), rgba(255,255,255,0));filter:blur(8px)}
.t21-hero-photo{
  position:absolute;right:-2px;bottom:0;z-index:3;width:min(600px,100%);max-height:100%;height:auto;object-fit:contain;filter:saturate(1.02)
}
.t21-hero-photo-panel:before{content:"";position:absolute;right:14px;top:20px;width:182px;height:420px;background:linear-gradient(180deg, rgba(237,225,205,.75), rgba(255,248,239,.2));opacity:.50;z-index:1;border-radius:0}
.t21-floral-cluster{display:none!important}
.flower{position:absolute;border-radius:50%;display:block;box-shadow:0 0 0 10px rgba(255,248,239,.06)}
.flower:before,.flower:after{content:"";position:absolute;inset:18%;border-radius:50%}
.flower-burgundy{background:radial-gradient(circle at 50% 50%, #23090d 0 9%, transparent 10%),
 radial-gradient(circle at 50% 50%, #5f0e19 0 28%, transparent 29%),
 radial-gradient(circle at 36% 44%, #7c1120 0 44%, transparent 45%),
 radial-gradient(circle at 68% 42%, #8f1224 0 43%, transparent 44%),
 radial-gradient(circle at 47% 70%, #651019 0 45%, transparent 46%),
 radial-gradient(circle at 50% 50%, #6d0f1d 0 66%, #4f0813 68%, #7a1120 82%, #63111c 100%)}
.flower-cream{background:radial-gradient(circle at 50% 50%, #fffaf6 0 12%, transparent 13%),
 radial-gradient(circle at 36% 44%, #f2e4ce 0 42%, transparent 43%),
 radial-gradient(circle at 68% 42%, #fff5ec 0 39%, transparent 40%),
 radial-gradient(circle at 48% 68%, #f5ead8 0 46%, transparent 47%),
 radial-gradient(circle at 50% 50%, #fffdfa 0 64%, #e7d0b2 68%, #fff7ef 83%, #e8d5bb 100%)}
.flower-lg{width:130px;height:130px;right:42px;bottom:6px}
.flower-md{width:110px;height:110px;right:145px;bottom:30px}
.flower-md.second{width:122px;height:122px;right:0;bottom:24px}
.flower-sm.third{width:96px;height:96px;right:183px;bottom:-2px}
.t21-floral-cluster:before,.t21-floral-cluster:after{content:"";position:absolute;inset:auto auto 0 0;background:transparent;border-radius:999px;box-shadow:none}
.t21-floral-cluster:before{left:56px;bottom:6px;width:210px;height:120px;
 background:radial-gradient(circle at 0 100%, rgba(213,163,69,.58) 0 2px, transparent 3px) 12px 82px/22px 18px repeat,
            linear-gradient(25deg, rgba(213,163,69,.95), rgba(213,163,69,.08));
 clip-path:polygon(0 100%,7% 76%,16% 82%,18% 54%,27% 75%,39% 34%,48% 65%,58% 20%,70% 58%,81% 15%,88% 52%,100% 0,100% 100%);
 opacity:.45}
.t21-lower-grid{display:grid;grid-template-columns:.95fr 1.14fr .91fr;gap:24px;padding:24px 34px 34px;border-top:1px solid rgba(213,163,69,.46);background:#fff9f2}
.t21-card{position:relative;min-height:316px;background:rgba(255,252,247,.9);border:1px solid rgba(213,163,69,.55);padding:22px 22px 24px}
.t21-card:before,.t21-card:after{content:"";position:absolute;width:35px;height:35px;border-color:rgba(213,163,69,.62);opacity:.85}
.t21-card:before{left:8px;top:8px;border-left:1px solid;border-top:1px solid}
.t21-card:after{right:8px;bottom:8px;border-right:1px solid;border-bottom:1px solid}
.t21-countdown-card h2,.t21-venue-card h2{text-align:center;margin:2px 0 6px;line-height:1.05;font-weight:400}
.t21-countdown-card h2 small{display:block;font-family:'Cormorant Garamond',serif;font-size:19px;color:var(--ink)}
.t21-countdown-card h2 span,.t21-venue-card h2 span{display:block;font-family:'Great Vibes',cursive;font-size:44px;color:var(--burgundy)}
.t21-mini-divider{display:flex;align-items:center;justify-content:center;gap:9px;color:var(--gold);margin:8px auto 22px}
.t21-mini-divider:before,.t21-mini-divider:after{content:"";width:64px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.t21-mini-divider.bottom{margin-top:24px}
.t21-countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.t21-countdown div{height:118px;background:#fffaf3;border:1px solid rgba(213,163,69,.62);display:flex;flex-direction:column;align-items:center;justify-content:center}
.t21-countdown strong{font-family:'Cormorant Garamond',serif;font-size:57px;line-height:.9;font-weight:500;color:var(--burgundy)}
.t21-countdown span{margin-top:10px;font-family:'Cormorant Garamond',serif;font-size:13px;letter-spacing:.7px;text-transform:uppercase;color:var(--ink)}
.t21-section-heading{margin:0;text-align:center;font-family:'Cormorant Garamond',serif;text-transform:uppercase;letter-spacing:5px;color:var(--burgundy);font-size:40px;line-height:1;font-weight:700}
.t21-section-heading:before,.t21-section-heading:after{content:"❧";font-size:18px;color:var(--gold);vertical-align:middle;margin:0 14px}
.t21-subtitle{text-align:center;margin:7px 0 18px;font-family:'Cormorant Garamond',serif;font-size:18px;line-height:1.25;color:var(--ink)}
.t21-subtitle span{color:var(--gold);font-weight:700}
.t21-rsvp-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.t21-rsvp-form label span,.t21-rsvp-form legend{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.t21-rsvp-form input{width:100%;height:52px;border:1px solid rgba(213,163,69,.55);background:#fffaf3;padding:11px 16px;font-family:Montserrat,Arial,sans-serif;font-size:14px;color:var(--ink);outline:0}
.t21-rsvp-form input::placeholder{color:#6a5047}
.t21-rsvp-form fieldset{height:52px;border:1px solid rgba(213,163,69,.55);margin:0;padding:8px 14px;display:flex;align-items:center;gap:22px;background:#fffaf3}
.t21-rsvp-form fieldset:before{content:"Will you attend?";font-family:'Cormorant Garamond',serif;font-size:16px;margin-right:auto;color:var(--ink)}
.t21-rsvp-form .radio{display:flex;align-items:center;gap:6px;font-family:'Cormorant Garamond',serif;font-size:18px}
.t21-rsvp-form .radio input{width:auto;height:auto;accent-color:var(--burgundy)}
.t21-rsvp-form button{grid-column:1/-1;height:54px;margin-top:14px;font-size:20px;cursor:pointer}
.t21-alert{padding:8px 11px;border-radius:0;font-size:13px;font-weight:600;margin:0 0 12px}
.t21-alert.success{background:#f1fff1;border:1px solid #8dcc8d;color:#286728}
.t21-alert.error{background:#fff2f2;border:1px solid #e2a0a0;color:#8d1e1e}
.t21-venue-card{text-align:center}
.t21-venue-card h2{margin:0 0 8px}
.venue-title{margin:0 0 18px;font-family:'Cormorant Garamond',serif;font-size:18px;color:var(--ink)}
.t21-map-preview{position:relative;height:132px;margin:0 8px 28px;border:1px solid rgba(213,163,69,.55);overflow:hidden;background:linear-gradient(135deg,#f2f0e8,#fbf0e5 48%,#e8ede7)}
.t21-map-preview:before{content:"";position:absolute;inset:0;background:
 linear-gradient(18deg,transparent 48%,rgba(113,178,220,.52) 49% 58%,transparent 59%),
 linear-gradient(104deg,transparent 53%,rgba(226,193,107,.94) 54% 58%,transparent 59%),
 linear-gradient(160deg,transparent 58%,rgba(116,146,116,.28) 59% 61%,transparent 62%),
 linear-gradient(90deg,transparent 72%,rgba(173,191,171,.4) 72.6% 73.6%,transparent 74%),
 linear-gradient(180deg,transparent 28%,rgba(228,220,208,.6) 28.7% 29.7%,transparent 30%);
 background-size:280px 220px,180px 180px,240px 180px,260px 180px,220px 180px}
.t21-map-preview strong{position:absolute;left:48%;top:49%;transform:translate(-50%,-50%);z-index:2;color:#d53b2e;font-size:37px;line-height:1}
.t21-map-preview span{position:absolute;z-index:3;left:53%;top:46%;font-size:12px;text-align:left;line-height:1.2;color:#38241f;font-weight:700}
.t21-map-button{height:52px;width:85%;margin:0 auto;padding:0 18px;font-size:18px;color:#fff8e3}
.map-btn-icon{width:20px;height:20px;display:inline-grid;place-items:center;color:#f5dba2}
.t21-footer{display:none}
.t21-countdown.is-complete:after{content:"The celebration has arrived ♡";grid-column:1/-1;text-align:center;font-family:'Great Vibes',cursive;color:var(--burgundy);font-size:26px}

@media (max-width:1180px){
  .t21-header{padding:0 34px;grid-template-columns:1fr auto 180px;gap:20px}
  .t21-nav{gap:28px}
  .t21-hero{padding:28px 34px 0;grid-template-columns:54% 46%}
  .t21-hero .script{font-size:108px}.t21-hero .number{font-size:96px}.t21-hero .serif{font-size:44px}
  .t21-lower-grid{padding:24px 20px 30px;gap:18px}
}
@media (max-width:960px){
  .t21-header{height:auto;display:flex;flex-wrap:wrap;justify-content:center;padding:16px 18px;gap:14px}
  .t21-logo{width:100%;justify-content:center}
  .t21-nav{width:100%;gap:22px}
  .t21-nav a:first-child:after{bottom:-8px}
  .t21-hero{grid-template-columns:1fr;padding:22px 20px 0}
  .t21-hero-copy{text-align:center}
  .t21-hero-divider{width:100%}
  .t21-hero-copy>p{margin-left:0}
  .t21-hero-details{margin:0 auto;text-align:left}
  .t21-hero-photo-panel{min-height:430px;margin-top:12px}
  .t21-hero-photo{right:50%;transform:translateX(50%);width:min(520px,100%)}
  .t21-floral-cluster{display:none!important}
  .t21-lower-grid{grid-template-columns:1fr}
}
@media (max-width:640px){
  .t21-logo span{font-size:36px}.t21-logo small{font-size:16px}
  .t21-nav{gap:14px;flex-wrap:wrap}
  .t21-nav a{font-size:18px}
  .t21-header-btn{font-size:18px;height:44px}
  .t21-hero .script{display:block;margin-right:0;font-size:74px}
  .t21-hero .number{font-size:72px}.t21-hero .serif{font-size:30px;letter-spacing:4px}
  .t21-hero-details{grid-template-columns:1fr}
  .t21-hero-details article{border-right:0!important;border-bottom:1px solid var(--line)!important}
  .t21-hero-details article:last-child{border-bottom:0!important}
  .t21-lower-grid{padding:18px 12px 22px}
  .t21-card{padding:18px 16px 20px}
  .t21-countdown{grid-template-columns:repeat(2,1fr)}
  .t21-countdown div{height:98px}
  .t21-countdown strong{font-size:46px}
  .t21-rsvp-form{grid-template-columns:1fr}
  .t21-rsvp-form fieldset{height:auto;min-height:54px;flex-wrap:wrap}
  .t21-rsvp-form fieldset:before{width:100%;margin:0 0 2px}
  .t21-map-button{width:100%}
}

.t21-floral-cluster .flower,.t21-floral-cluster:before,.t21-floral-cluster:after{display:none!important}
