:root{--ink: #5b4a42;--ink-soft: #856f64;--gold: #c2a26a;--gold-soft: #d8c197;--rose: #e3a9b4;--rose-deep: #c98793;--pink-bg: #f9eaee;--pink-soft: #fbf2f4;--cream: #f8f1e4;--cream-soft: #fdf9f0;--yellow: #f7e8c8;--paper: #fffdfa}*{box-sizing:border-box;margin:0;padding:0}body{background:radial-gradient(1100px 560px at 50% -8%,#fbeef1,transparent 62%),radial-gradient(1000px 680px at 50% 108%,#f7ecd6,transparent 60%),#ece2d2;background-attachment:fixed;font-family:Be Vietnam Pro,sans-serif;color:var(--ink);line-height:1.6;padding:clamp(16px,4vh,48px) 12px;min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased}.invite{position:relative;z-index:1;max-width:460px;margin:0 auto;background:var(--paper);border-radius:26px;overflow:hidden;box-shadow:0 18px 60px #5b4a4238}.deco{position:fixed;width:230px;max-width:22vw;opacity:0;pointer-events:none;z-index:0;transition:opacity .7s ease}.deco svg{width:100%;height:auto;display:block}.deco-tl{top:-24px;left:-24px}.deco-br{bottom:-24px;right:-24px;transform:rotate(180deg)}.invite section{padding:54px 30px;position:relative;text-align:center}.label{font-size:.64rem;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);font-weight:600}.sh{font-family:Playfair Display,serif;font-weight:500;font-size:1.7rem;color:var(--ink);margin:10px 0 4px}.sprig{width:130px;opacity:.55;position:absolute;pointer-events:none}.generic-only{display:none}.invite.generic .generic-only{display:block}.invite.generic .rsvp-only,.invite.generic .personal-only{display:none}.hero{padding:64px 30px 58px;background:radial-gradient(120% 55% at 50% 0%,var(--pink-bg),transparent 62%),radial-gradient(120% 50% at 50% 100%,rgba(247,232,200,.5),transparent 58%),var(--paper)}.hero .s1{top:-6px;right:-14px;transform:rotate(22deg)}.hero .s2{bottom:-14px;left:-16px;transform:rotate(202deg)}.names{display:flex;flex-direction:column;align-items:center;font-family:Playfair Display,serif;color:var(--ink);margin:18px 0}.names span{font-size:4rem;font-weight:500;line-height:1.08}.names .amp{font-family:Great Vibes,cursive;color:var(--gold);font-size:3rem;line-height:1;margin:-2px 0;transform:translateY(9px)}.rule{width:50px;height:1px;background:var(--gold);margin:16px auto;opacity:.75}.date-lg{font-family:Cormorant Garamond,serif;font-size:1.5rem;letter-spacing:.16em;color:var(--ink)}.venue-sm{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin-top:8px}.greet{font-family:Cormorant Garamond,serif;font-style:italic;font-size:1.25rem;color:var(--rose-deep);margin-top:24px}.greet b{font-style:normal;font-weight:600}.countdown{background:var(--cream-soft)}.cd-grid{display:flex;justify-content:center;gap:10px;margin-top:24px}.cd-box{flex:1 1 0;min-width:0;max-width:90px;background:var(--paper);border:1px solid #efe4d2;border-radius:14px;padding:14px 4px;box-shadow:0 4px 14px #5b4a420f}.cd-box .n{font-family:Playfair Display,serif;font-size:clamp(1.55rem,5.5vw,1.9rem);font-weight:600;color:var(--rose-deep);line-height:1}.cd-box .u{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-top:7px}.details{background:var(--paper)}.datecard{margin:26px auto 0;max-width:330px}.dc-top,.dc-bot{font-family:Be Vietnam Pro,sans-serif;font-weight:500;letter-spacing:.34em;text-transform:uppercase;font-size:.78rem;color:var(--ink-soft)}.dc-mid{display:flex;align-items:center;justify-content:center;gap:18px;margin:8px 0}.dc-mid .ln{height:1px;flex:1;background:linear-gradient(90deg,transparent,var(--gold-soft))}.dc-mid .ln.r{background:linear-gradient(90deg,var(--gold-soft),transparent)}.dc-day{font-family:Playfair Display,serif;font-weight:600;font-size:4.6rem;line-height:.9;color:var(--ink)}.dc-bot{color:var(--rose-deep);letter-spacing:.28em}.info{font-family:Cormorant Garamond,serif;font-size:1.35rem;color:var(--ink);margin-top:24px;line-height:1.7}.info .tline{display:block;font-size:1.32rem;line-height:1.55}.addr{font-family:Be Vietnam Pro,sans-serif;font-size:.86rem;color:var(--ink-soft);letter-spacing:.02em;margin-top:16px;line-height:1.6}.cta{display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:30px}.cal-wrap{position:relative;display:inline-block}.cal-btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:9px;font-family:Be Vietnam Pro,sans-serif;font-weight:500;font-size:.92rem;letter-spacing:.02em;color:var(--ink);border:1px solid var(--gold);border-radius:999px;padding:13px 26px;cursor:pointer;background:var(--paper);transition:.18s}.cal-btn:hover{background:var(--cream);transform:translateY(-1px)}.cal-btn .spark{display:none}.invite.generic .cal-btn{color:#fff;border:none;font-weight:600;font-size:1.04rem;padding:17px 34px;background:linear-gradient(120deg,#ecb6c0,#c98793 42%,#c2a26a);box-shadow:0 10px 28px #c9879373;animation:calpulse 2.6s ease-in-out infinite}.invite.generic .cal-btn:hover{background:linear-gradient(120deg,#ecb6c0,#c98793 42%,#c2a26a);transform:translateY(-3px) scale(1.035)}.invite.generic .cal-btn:after{content:"";position:absolute;top:0;left:-60%;width:55%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.6),transparent);transform:skew(-18deg);animation:shine 3.4s ease-in-out infinite}.invite.generic .cal-btn .spark{display:inline-block;animation:spark 1.6s ease-in-out infinite}.invite.generic .cal-btn.attention{animation:calpunch .7s ease-in-out 6}@keyframes calpulse{0%,to{box-shadow:0 10px 26px #c9879366;transform:translateY(0)}50%{box-shadow:0 16px 38px #c987939e;transform:translateY(-2px)}}@keyframes calpunch{0%,to{transform:scale(1);box-shadow:0 10px 26px #c9879373}50%{transform:scale(1.07);box-shadow:0 0 0 10px #c9879329,0 18px 40px #c9879399}}@keyframes shine{0%{left:-60%}50%{left:140%}to{left:140%}}@keyframes spark{0%,to{transform:scale(1) rotate(0);opacity:.85}50%{transform:scale(1.3) rotate(12deg);opacity:1}}.pointer{position:absolute;top:-46px;left:50%;transform:translate(-50%);white-space:nowrap;background:var(--rose-deep);color:#fff;font-family:Be Vietnam Pro,sans-serif;font-weight:600;font-size:.78rem;padding:6px 13px;border-radius:999px;box-shadow:0 6px 16px #c9879366;opacity:0;pointer-events:none;transition:opacity .3s}.pointer:after{content:"";position:absolute;bottom:-5px;left:50%;transform:translate(-50%) rotate(45deg);width:10px;height:10px;background:var(--rose-deep)}.pointer.show{opacity:1;animation:point-bounce 1s ease-in-out infinite}@keyframes point-bounce{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(7px)}}.ghost{font-family:Be Vietnam Pro,sans-serif;font-weight:500;font-size:.84rem;letter-spacing:.06em;border:1px solid var(--gold);color:var(--ink);background:transparent;border-radius:999px;padding:11px 22px;cursor:pointer;transition:.18s;text-decoration:none;display:inline-block}.ghost:hover{background:var(--cream);transform:translateY(-1px)}.invite.generic .ghost{border-color:transparent;color:var(--ink-soft)}.rsvp{background:radial-gradient(130% 60% at 50% 0%,var(--pink-soft),transparent 60%),var(--paper)}.rsvp .greet2{font-family:Cormorant Garamond,serif;font-style:italic;font-size:1.15rem;color:var(--rose-deep);margin-top:6px}.yes-row{display:flex;flex-direction:column;gap:12px;margin-top:26px}.btn{font-family:Be Vietnam Pro,sans-serif;font-weight:500;font-size:1rem;color:var(--ink);background:var(--paper);border:1.5px solid var(--rose);border-radius:16px;padding:18px 16px;cursor:pointer;transition:.18s;line-height:1.3;box-shadow:0 3px 12px #c9879314}.btn:hover{background:var(--pink-bg);transform:translateY(-2px);box-shadow:0 8px 20px #c987932e}.btn.sel{background:var(--rose-deep);color:#fff;border-color:var(--rose-deep);box-shadow:0 8px 22px #c9879352}.btn small{display:block;font-size:.74rem;font-weight:300;opacity:.7;margin-top:3px}.btn.sel small{opacity:.85}.no-row{position:relative;height:64px;margin-top:18px}.btn-no{position:absolute;top:0;left:33.333%;width:calc(33.333% - 8px);height:52px;display:flex;align-items:center;justify-content:center;text-align:center;font-family:Be Vietnam Pro,sans-serif;font-weight:400;font-size:clamp(.68rem,2.3vw,.8rem);line-height:1.2;color:var(--ink-soft);background:transparent;border:1px dashed #d8cbbd;border-radius:14px;cursor:pointer;transition:left .42s cubic-bezier(.34,1.45,.5,1),background .18s;padding:6px 4px}.btn-no:hover{background:#f4ede2}.btn-no.sel{background:#efe6da;color:var(--ink);border-style:solid}.ribbon{position:absolute;top:-30px;left:50%;transform:translate(-50%) translateY(6px) scale(.4);background:var(--rose-deep);color:#fff;font-family:Be Vietnam Pro,sans-serif;font-weight:600;font-size:.78rem;white-space:nowrap;padding:6px 13px;border-radius:999px;box-shadow:0 6px 16px #c9879366;opacity:0;pointer-events:none;transition:transform .35s cubic-bezier(.34,1.6,.5,1),opacity .25s}.ribbon:after{content:"";position:absolute;bottom:-5px;left:50%;transform:translate(-50%) rotate(45deg);width:10px;height:10px;background:var(--rose-deep)}.ribbon.show{opacity:1;transform:translate(-50%) translateY(0) scale(1)}.wishes{margin-top:30px;text-align:left;max-height:0;overflow:hidden;transition:max-height .5s ease,opacity .4s;opacity:0}.wishes.show{max-height:520px;opacity:1}.invite.generic .wishes{max-height:520px;opacity:1;margin-top:24px}.name-in,.wishes textarea{width:100%;border:1px solid #ecdfce;border-radius:14px;padding:13px 14px;font-family:Be Vietnam Pro,sans-serif;font-size:.92rem;color:var(--ink);background:var(--cream-soft)}.name-in{margin-bottom:10px}.wishes textarea{resize:none;min-height:88px}.name-in:focus,.wishes textarea:focus{outline:none;border-color:var(--rose)}.dice{display:block;margin:7px 0 0 auto;font-family:Be Vietnam Pro,sans-serif;font-weight:500;font-size:.74rem;color:var(--rose-deep);background:transparent;border:1px dashed var(--rose);border-radius:999px;padding:6px 14px;cursor:pointer;transition:.18s}.dice:hover{background:var(--pink-soft)}.dice:active{transform:scale(.96)}.send{width:100%;margin-top:20px;font-family:Be Vietnam Pro,sans-serif;font-weight:600;font-size:.95rem;color:#fff;background:var(--gold);border:none;border-radius:14px;padding:15px;cursor:pointer;letter-spacing:.04em;transition:.18s}.send:hover{background:#b18f53}.send:disabled{opacity:.5;cursor:default}.thanks{text-align:center;font-family:Cormorant Garamond,serif;font-style:italic;font-size:1.15rem;color:var(--rose-deep);margin-top:18px;max-height:0;overflow:hidden;transition:max-height .4s}.thanks.show{max-height:120px}.foot{background:var(--cream-soft);padding:40px 30px;text-align:center}.foot .m{font-family:Great Vibes,cursive;font-size:2rem;color:var(--gold)}.foot .d{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);margin-top:6px}@media(min-width:680px){.invite{max-width:500px;border-radius:30px;box-shadow:0 30px 80px #5b4a4238}.invite section{padding:64px 44px}.hero{padding:80px 44px 66px}.names span{font-size:4.5rem}.names .amp{font-size:3.4rem}.dc-day{font-size:5.4rem}.sh{font-size:1.85rem}}@media(min-width:1040px){.deco{opacity:.5}}@media(max-width:480px){.invite section{padding:46px 22px}.hero{padding:56px 22px 50px}.names span{font-size:3.5rem}.names .amp{font-size:2.6rem}.sh{font-size:1.5rem}.cd-grid{gap:7px}.cd-box{padding:12px 3px}.cd-box .u{font-size:.55rem;letter-spacing:.1em}.dc-day{font-size:4rem}.info,.info .tline{font-size:1.2rem}.datecard{max-width:100%}.dc-top,.dc-bot{letter-spacing:.24em}}@media(max-width:350px){.invite section{padding:40px 16px}.hero{padding:50px 16px 46px}.names span{font-size:3rem}.names .amp{font-size:2.3rem}.btn{font-size:.92rem;padding:16px 12px}.dc-mid{gap:12px}}@media(prefers-reduced-motion:reduce){.invite.generic .cal-btn,.invite.generic .cal-btn:after,.invite.generic .cal-btn .spark,.pointer.show{animation:none!important}.btn-no{transition:background .18s!important}.ribbon,.ribbon.show{transition:opacity .2s!important;transform:translate(-50%)!important}.btn,.cal-btn,.ghost,.send,.dice{transition:background .18s,color .18s!important}}
