.t-double-happiness{--f-display:"Cormorant Garamond", "Times New Roman", serif;--f-script:"Cormorant Garamond", "Times New Roman", serif;--f-serif:"Cormorant Garamond", "Times New Roman", serif;--f-caps:"Cinzel", "Times New Roman", serif;--f-body:"Cormorant Garamond", "Times New Roman", serif;--f-han:"Noto Serif SC", "Songti SC", "SimSun", serif;--gold:linear-gradient(135deg, var(--accent-light), var(--accent) 45%, var(--accent-dark))}.t-double-happiness .xi{display:block;overflow:visible}.t-double-happiness .btn{letter-spacing:.18em;text-transform:uppercase;font-size:.74rem;font-weight:700}.t-double-happiness .eyebrow{letter-spacing:.3em;font-weight:600}.t-double-happiness .section-title{letter-spacing:.2em;color:var(--primary);font-size:.92rem;font-weight:700}.t-double-happiness .section-title:before{content:"囍";font-family:var(--f-han);letter-spacing:0;color:var(--accent);margin-bottom:.45rem;font-size:1.5rem;font-weight:900;display:block}.t-double-happiness .cover{min-height:var(--vh,100svh);background:radial-gradient(ellipse 90% 60% at 50% 40%, color-mix(in srgb, var(--primary) 80%, black), var(--primary-deep) 70%), var(--primary-deep);place-items:center;padding:28px 16px;display:grid;position:relative;overflow:hidden}.t-double-happiness .dh-confetti{pointer-events:none;position:absolute;inset:0}.t-double-happiness .dh-confetti i{background:var(--gold);opacity:.75;transform:rotate(var(--rot));border-radius:1px;animation:linear infinite dh-fall;position:absolute}.t-double-happiness .dh-confetti i.tone-1{background:var(--accent-light);opacity:.45}.t-double-happiness .dh-confetti i.tone-2{background:var(--accent-dark);opacity:.55}@keyframes dh-fall{0%{transform:translateY(-55vh) rotate(var(--rot))}to{transform:translateY(55vh) translateX(24px) rotate(calc(var(--rot) + 320deg))}}.t-double-happiness .dh-cover__card{z-index:1;text-align:center;width:min(400px,100%);color:var(--light);background:radial-gradient(ellipse 120% 70% at 50% 0%, var(--primary-soft), var(--primary) 55%, color-mix(in srgb, var(--primary) 82%, black));box-shadow:0 30px 70px #00000080, 0 0 0 1px color-mix(in srgb, var(--accent) 40%, transparent);border-radius:6px;padding:34px 26px 32px;animation:1s cubic-bezier(.2,.8,.2,1) both inv-rise;position:relative;overflow:hidden}.t-double-happiness .dh-cover__ghost{width:210px;color:color-mix(in srgb, var(--light) 9%, transparent);pointer-events:none;position:absolute}.t-double-happiness .dh-cover__ghost--tl{top:-58px;left:-78px;transform:rotate(-16deg)}.t-double-happiness .dh-cover__ghost--br{bottom:-62px;right:-80px;transform:rotate(-16deg)}.t-double-happiness .dh-cover__frame{border:1px solid color-mix(in srgb, var(--accent) 55%, transparent);pointer-events:none;border-radius:3px;position:absolute;inset:10px}.t-double-happiness .dh-cover__frame:before,.t-double-happiness .dh-cover__frame:after{content:"";border:1px solid color-mix(in srgb, var(--accent) 22%, transparent);position:absolute;inset:4px}.t-double-happiness .dh-cover__frame:after{background:linear-gradient(var(--accent), var(--accent)) 0 0 / 14px 2px no-repeat, linear-gradient(var(--accent), var(--accent)) 0 0 / 2px 14px no-repeat, linear-gradient(var(--accent), var(--accent)) 100% 0 / 14px 2px no-repeat, linear-gradient(var(--accent), var(--accent)) 100% 0 / 2px 14px no-repeat, linear-gradient(var(--accent), var(--accent)) 0 100% / 14px 2px no-repeat, linear-gradient(var(--accent), var(--accent)) 0 100% / 2px 14px no-repeat, linear-gradient(var(--accent), var(--accent)) 100% 100% / 14px 2px no-repeat, linear-gradient(var(--accent), var(--accent)) 100% 100% / 2px 14px no-repeat;border:0;inset:-6px}.t-double-happiness .dh-seal{background:radial-gradient(circle at 35% 30%, var(--accent-light), var(--accent) 55%, var(--accent-dark));width:64px;height:64px;color:var(--primary);box-shadow:0 6px 16px #00000059, inset 0 0 0 3px #ffffff4d, inset 0 0 0 6px color-mix(in srgb, var(--accent-dark) 45%, transparent);border-radius:50%;place-items:center;margin:0 auto 16px;display:grid;position:relative}.t-double-happiness .dh-seal .xi{width:34px}.t-double-happiness .dh-cover__names{font-family:var(--f-display);overflow-wrap:anywhere;margin:0;font-size:clamp(2.3rem,10vw,2.9rem);font-weight:600;line-height:1.05;display:grid}.t-double-happiness .dh-cover__names .amp{color:var(--accent-light);margin:2px 0;font-size:.55em;font-style:italic;font-weight:500}.t-double-happiness .dh-rule{justify-content:center;align-items:center;gap:10px;margin:14px 0 10px;display:flex}.t-double-happiness .dh-rule span{background:linear-gradient(90deg, transparent, var(--accent));width:58px;height:1px}.t-double-happiness .dh-rule span:last-child{background:linear-gradient(-90deg, transparent, var(--accent))}.t-double-happiness .dh-rule i{background:var(--accent);width:7px;height:7px;transform:rotate(45deg)}.t-double-happiness .dh-cover__date{color:var(--accent-light);margin:0 0 1.1rem;font-size:1.15rem;font-weight:600}.t-double-happiness .dh-cover__intro{font-family:var(--f-caps);letter-spacing:.26em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:600}.t-double-happiness .dh-cover__guest{border-block:1px solid color-mix(in srgb, var(--accent) 60%, transparent);width:fit-content;max-width:100%;margin:.55rem auto;padding:.35rem .6rem;font-size:1.5rem;font-weight:600;line-height:1.2}.t-double-happiness .dh-cover__after{opacity:.88;margin:0;font-size:1.02rem;font-style:italic}.t-double-happiness .dh-cover__open{background:var(--paper-light);color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 55%, transparent), 0 10px 22px #0000004d;margin-top:1.4rem;padding:.7rem 2.3rem}.t-double-happiness .dh-hero{text-align:center;padding:40px 0 44px;position:relative}.t-double-happiness .dh-hero:before,.t-double-happiness .dh-hero__dome{content:"";clip-path:ellipse(78% 100% at 50% 0);height:400px;position:absolute;top:0;left:-16px;right:-16px}.t-double-happiness .dh-hero:before{background:var(--gold);height:405px}.t-double-happiness .dh-hero__dome{background:repeating-conic-gradient(from 0deg at 50% 33%, #ffffff12 0deg 4deg, transparent 4deg 12deg), radial-gradient(circle at 50% 33%, var(--primary-soft), var(--primary) 45%, var(--primary-deep));animation:1s both inv-fade}.t-double-happiness .dh-hero>:not(.dh-hero__dome){position:relative}.t-double-happiness .dh-hero__welcome{font-family:var(--f-caps);letter-spacing:.34em;text-transform:uppercase;color:var(--accent-light);margin:0 0 18px;font-size:.7rem;font-weight:600}.t-double-happiness .dh-hero__couple{grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;max-width:470px;margin:0 auto;display:grid}.t-double-happiness .dh-hero__side{gap:4px;min-width:0;display:grid}.t-double-happiness .dh-hero__role{color:var(--accent-light);font-size:.98rem;font-style:italic}.t-double-happiness .dh-hero__name{font-family:var(--f-caps);letter-spacing:.12em;text-transform:uppercase;color:var(--light);overflow-wrap:anywhere;font-size:clamp(.92rem,4.2vw,1.25rem);font-weight:600}.t-double-happiness .dh-hero__xi{filter:drop-shadow(0 3px 6px #0000004d);width:clamp(72px,22vw,98px);animation:1s .15s both inv-rise}.t-double-happiness .dh-hero__arch{width:min(330px,88vw);margin:12px auto 0}.t-double-happiness .dh-hero__arc{width:100%;display:block;overflow:visible}.t-double-happiness .dh-hero__arc text{font-family:var(--f-caps);letter-spacing:.32em;fill:var(--accent-light);font-size:15px;font-weight:600}.t-double-happiness .dh-hero__spark{fill:var(--accent)}.t-double-happiness .dh-hero__photo{aspect-ratio:220/296;background:var(--paper-dark);width:66.67%;box-shadow:0 0 0 5px var(--paper-light), 0 0 0 6.5px var(--accent), 0 22px 44px var(--shadow);border-radius:999px 999px 4px 4px;margin:-18.18% auto 0;animation:1.1s .25s both inv-rise;overflow:hidden}.t-double-happiness .dh-hero__photo img{object-fit:cover;width:100%;height:100%}.t-double-happiness .dh-hero__full{font-family:var(--f-display);color:var(--primary);margin:2rem 0 1.8rem;font-size:clamp(1.6rem,7vw,2.1rem);font-weight:600;line-height:1.15;display:grid}.t-double-happiness .dh-hero__full span{color:var(--accent-dark);font-size:.7em;font-style:italic;font-weight:500}.t-double-happiness .dh-envelope{aspect-ratio:1.4;width:min(330px,100%);filter:drop-shadow(0 18px 26px var(--shadow));margin:0 auto;position:relative}.t-double-happiness .dh-envelope__body{color:var(--light);background:linear-gradient(170deg, var(--primary-soft), var(--primary) 50%, var(--primary-deep));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 70%, transparent), inset 0 0 0 6px var(--primary), inset 0 0 0 7px color-mix(in srgb, var(--accent) 40%, transparent);border-radius:8px;align-content:end;padding:0 18px 16px;display:grid;position:absolute;inset:0;overflow:hidden}.t-double-happiness .dh-envelope__corner{width:26px;color:color-mix(in srgb, var(--accent) 70%, transparent);position:absolute;bottom:14px}.t-double-happiness .dh-envelope__corner--l{left:16px}.t-double-happiness .dh-envelope__corner--r{right:16px}.t-double-happiness .dh-envelope__label{font-family:var(--f-caps);letter-spacing:.3em;text-transform:uppercase;color:var(--accent-light);margin:0;font-size:.62rem;font-weight:600}.t-double-happiness .dh-envelope__date{font-family:var(--f-caps);letter-spacing:.12em;text-transform:uppercase;justify-content:center;align-items:center;gap:10px;margin:2px 0 0;font-size:.66rem;display:flex}.t-double-happiness .dh-envelope__date strong{border-inline:1px solid color-mix(in srgb, var(--accent) 60%, transparent);font-family:var(--f-display);color:var(--accent-light);padding:0 10px;font-size:2rem;font-weight:600;line-height:1}.t-double-happiness .dh-envelope__time{margin:2px 0 0;font-size:.95rem;font-style:italic}.t-double-happiness .dh-envelope__flap,.t-double-happiness .dh-envelope__flap:after{clip-path:polygon(0 0,100% 0,50% 100%);height:50%;position:absolute;top:0;left:0;right:0}.t-double-happiness .dh-envelope__flap{background:var(--gold);border-radius:8px 8px 0 0}.t-double-happiness .dh-envelope__flap:after{content:"";background:linear-gradient(180deg, var(--primary), color-mix(in srgb, var(--primary) 75%, black));height:100%;top:-4px}.t-double-happiness .dh-envelope__seal{background:radial-gradient(circle at 35% 30%, var(--accent-light), var(--accent) 55%, var(--accent-dark));width:58px;height:58px;color:var(--primary);box-shadow:0 6px 14px #00000059, inset 0 0 0 3px #ffffff47, inset 0 0 0 6px color-mix(in srgb, var(--accent-dark) 40%, transparent);border-radius:50%;place-items:center;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-62%)}.t-double-happiness .dh-envelope__seal .xi{width:30px}.t-double-happiness .dh-backdrop{pointer-events:none;background:var(--accent);opacity:.12;position:absolute;inset:0;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44'%3E%3Cg fill='none' stroke='%23000' stroke-width='1'%3E%3Ccircle cx='0' cy='0' r='22'/%3E%3Ccircle cx='44' cy='0' r='22'/%3E%3Ccircle cx='0' cy='44' r='22'/%3E%3Ccircle cx='44' cy='44' r='22'/%3E%3Ccircle cx='22' cy='22' r='22'/%3E%3C/g%3E%3C/svg%3E") 0 0/44px 44px;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44'%3E%3Cg fill='none' stroke='%23000' stroke-width='1'%3E%3Ccircle cx='0' cy='0' r='22'/%3E%3Ccircle cx='44' cy='0' r='22'/%3E%3Ccircle cx='0' cy='44' r='22'/%3E%3Ccircle cx='44' cy='44' r='22'/%3E%3Ccircle cx='22' cy='22' r='22'/%3E%3C/g%3E%3C/svg%3E") 0 0/44px 44px}.t-double-happiness .card{color:var(--ink);background:linear-gradient(180deg, var(--paper-light), var(--paper));box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 50%, transparent), 0 20px 44px color-mix(in srgb, var(--primary-deep) 18%, transparent);border-radius:4px;padding:100px 28px 38px}.t-double-happiness .card:before{content:"";border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);pointer-events:none;position:absolute;inset:22px 12px 12px}.t-double-happiness .dh-card__band{background:var(--primary);border-bottom:2px solid var(--accent);border-radius:4px 4px 0 0;height:9px;position:absolute;top:0;left:0;right:0}.t-double-happiness .dh-card__badge{background:radial-gradient(circle at 35% 30%, var(--primary-soft), var(--primary) 60%, var(--primary-deep));width:46px;height:46px;color:var(--accent-light);box-shadow:0 0 0 3px var(--paper-light), 0 0 0 4px var(--accent), 0 6px 14px var(--shadow);border-radius:50%;place-items:center;display:grid;position:absolute;top:36px;left:50%;transform:translate(-50%)}.t-double-happiness .dh-card__badge .xi{width:24px}.t-double-happiness .dh-card__fret{width:26px;height:26px;color:var(--accent);position:absolute}.t-double-happiness .dh-card__fret--tl{top:17px;left:7px}.t-double-happiness .dh-card__fret--tr{top:17px;right:7px;transform:scaleX(-1)}.t-double-happiness .dh-card__fret--bl{bottom:7px;left:7px;transform:scaleY(-1)}.t-double-happiness .dh-card__fret--br{bottom:7px;right:7px;transform:scale(-1)}.t-double-happiness .card__title{letter-spacing:.16em;color:var(--primary);font-size:1.02rem}.t-double-happiness .card__title:after{content:"";background:linear-gradient(90deg, transparent, var(--accent), transparent);width:64px;height:1px;margin:.8rem auto 0;display:block}.t-double-happiness .families__side{font-size:1rem}.t-double-happiness .families__side+.families__side{border-left-color:color-mix(in srgb, var(--accent) 70%, transparent)}.t-double-happiness .families__label{color:var(--muted);opacity:1;font-weight:600}.t-double-happiness .families__name{color:var(--primary);font-weight:700}.t-double-happiness .card__story{color:var(--ink);opacity:1;font-size:1.12rem;font-style:italic}.t-double-happiness .card__lead{letter-spacing:.14em;color:var(--primary);font-size:.92rem;font-weight:600}.t-double-happiness .card__person{color:var(--primary);font-size:clamp(1.9rem,8vw,2.4rem);font-weight:500}.t-double-happiness .card__role{color:var(--accent-dark);opacity:1;font-weight:700}.t-double-happiness .card__amp{color:var(--accent-dark);font-size:2rem;font-style:italic}.t-double-happiness .card__venue{font-size:1.15rem}.t-double-happiness .card__venue strong{font-family:var(--f-caps);letter-spacing:.1em;text-transform:uppercase;color:var(--primary);font-size:.95rem;font-weight:700}.t-double-happiness .dateblock{color:var(--primary)}.t-double-happiness .dateblock__top,.t-double-happiness .dateblock__my{opacity:1;font-weight:600}.t-double-happiness .dateblock__day{font-size:3.1rem;font-weight:600}.t-double-happiness .dateblock__rule{background:var(--accent);opacity:1}.t-double-happiness .card__times-label,.t-double-happiness .countdown__label,.t-double-happiness .countdown__title{color:var(--muted);opacity:1;font-weight:700}.t-double-happiness .card__times-value{color:var(--primary);font-size:1.3rem;font-weight:600}.t-double-happiness .countdown__unit{border:1px solid color-mix(in srgb, var(--accent) 65%, transparent);background:color-mix(in srgb, var(--primary) 5%, var(--paper-light));border-radius:4px}.t-double-happiness .countdown__value{color:var(--primary);font-weight:600}.t-double-happiness .calendar{background:var(--paper-light);border:1px solid color-mix(in srgb, var(--accent) 55%, transparent);box-shadow:0 8px 18px color-mix(in srgb, var(--primary-deep) 10%, transparent);border-radius:4px}.t-double-happiness .calendar__title{font-family:var(--f-caps);letter-spacing:.12em;color:var(--primary);border-bottom-color:var(--accent);font-size:1rem;font-weight:700}.t-double-happiness .calendar__grid{font-family:var(--f-body);font-size:.9rem;font-weight:600}.t-double-happiness .addcal .link-btn{color:var(--primary);font-weight:700}.t-double-happiness .card>.btn--light{background:var(--primary);color:var(--light);box-shadow:0 0 0 3px var(--paper-light), 0 0 0 4px var(--accent), 0 10px 20px var(--shadow)}.t-double-happiness .schedule__icon{color:var(--primary)}.t-double-happiness .schedule__dot{color:var(--accent)}.t-double-happiness .schedule__time{color:var(--primary);font-size:1.2rem;font-weight:700}.t-double-happiness .schedule__label{opacity:1;font-size:1.2rem}.t-double-happiness .gallery__slide{box-shadow:0 0 0 3px var(--paper-light), 0 0 0 4px var(--accent), 0 16px 30px var(--shadow);border-radius:999px 999px 6px 6px}.t-double-happiness .gallery__nav{background:color-mix(in srgb, var(--primary) 85%, transparent);box-shadow:0 0 0 1px var(--accent)}.t-double-happiness .gallery__dots button.is-active{background:var(--primary)}.t-double-happiness .venue__name{color:var(--primary);font-size:1.3rem;font-weight:700}.t-double-happiness .venue__address{font-size:1.1rem}.t-double-happiness .venue__map{box-shadow:0 0 0 5px var(--paper-light), 0 0 0 6px var(--accent), 0 14px 28px color-mix(in srgb, var(--primary-deep) 18%, transparent);border-radius:4px}.t-double-happiness .venue__directions{letter-spacing:.14em;text-transform:uppercase;font-size:.74rem}.t-double-happiness .dress__names{font-size:1.2rem;font-style:italic}.t-double-happiness .dress__swatch{border-color:var(--paper-light);box-shadow:0 0 0 1.5px var(--accent), 0 6px 14px #0000002e}.t-double-happiness .closing__note{font-size:1.15rem;font-style:italic}.t-double-happiness .closing__rsvp{letter-spacing:.18em;color:var(--primary);font-weight:700}.t-double-happiness .closing__mark{font-family:var(--f-display);color:var(--primary);font-size:1.9rem;font-style:italic}.t-double-happiness .closing__mark:before{content:"囍";background:radial-gradient(circle at 35% 30%, var(--primary-soft), var(--primary) 60%, var(--primary-deep));width:54px;height:54px;box-shadow:0 0 0 3px var(--paper), 0 0 0 4px var(--accent);font-family:var(--f-han);color:var(--accent-light);border-radius:50%;place-items:center;margin:0 auto .8rem;font-size:1.6rem;font-style:normal;font-weight:900;display:grid}.t-double-happiness .music{box-shadow:0 8px 20px var(--shadow), 0 0 0 3px var(--accent)}.t-double-happiness .modal__box h2{font-size:1.9rem;font-weight:600}
