@import "https://fonts.googleapis.com/css2?family=Caveat:wght@500;600&family=DM+Sans:wght@400;500;600&family=DM+Serif+Display:ital@0;1&display=swap";:root{color:#352d35;font-synthesis:none;--rose:#c9536b;--plum:#4f394d;--gold:#d9a24b;--cream:#fffaf2;background:#fffaf4;font-family:DM Sans,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}button,input,select,textarea{font:inherit}.confirm-overlay{z-index:1200;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#2d202d70;place-items:center;padding:20px;animation:.18s ease-out overlay-in;display:grid;position:fixed;inset:0}.confirm-popup{text-align:center;background:linear-gradient(145deg,#fffdf9,#fff7ef);border:1px solid #ead6d2;border-radius:18px;width:min(390px,100%);padding:30px;animation:.22s ease-out confirm-in;box-shadow:0 25px 70px #25172445}.confirm-icon{color:#b67925;background:#f7e6c8;border-radius:50%;place-items:center;width:43px;height:43px;margin:0 auto 16px;font-size:1.1rem;font-weight:700;display:grid}.confirm-icon.danger{color:#ae4055;background:#f8dfe3}.confirm-icon.success{color:#39765e;background:#dceee6}.confirm-popup h3{color:#4b394b;margin:0;font-family:DM Serif Display;font-size:1.65rem;font-weight:400}.confirm-popup p{color:#72616e;margin:13px 0 24px;font-size:.93rem;line-height:1.6}.confirm-actions{grid-template-columns:1fr 1.35fr;gap:10px;display:grid}.confirm-actions button{cursor:pointer;border-radius:999px;padding:12px 15px;font-size:.86rem;font-weight:700}.confirm-cancel{color:#6f5d69;background:#fff;border:1px solid #ddced3}.confirm-accept{color:#fff;background:#5c4560;border:0}.confirm-accept.danger{background:#b64c60}.confirm-accept.success{background:#417963}.confirm-actions button:focus-visible{outline-offset:2px;outline:3px solid #e1a94f}@keyframes confirm-in{0%{opacity:0;transform:translateY(10px)scale(.97)}}.invitation-overlay{z-index:1000;-webkit-backdrop-filter:blur(11px);backdrop-filter:blur(11px);background:radial-gradient(circle at 25% 15%,#6f4c6799,#0000 36%),#2d202ddb;place-items:center;padding:22px;animation:.35s ease-out overlay-in;display:grid;position:fixed;inset:0;overflow-y:auto}.invitation-modal{text-align:center;color:#4b394b;background:linear-gradient(145deg,#fffdf8,#fff6ee);border:1px solid #edcfca;border-radius:22px;width:min(560px,100%);padding:clamp(38px,6vw,62px);animation:.45s ease-out invitation-in;position:relative;overflow:hidden;box-shadow:0 35px 100px #160d17b8,inset 0 0 0 7px #fffaf4}.invitation-border{pointer-events:none;opacity:.72;border:1px solid #deb472;border-radius:14px;position:absolute;inset:14px}.corner-flourish{z-index:1;color:#d4a251;opacity:.85;font-size:1.15rem;position:absolute;top:24px}.corner-flourish-left{left:27px}.corner-flourish-right{right:27px}.invitation-modal:before,.invitation-modal:after{content:"";opacity:.55;background:#f6d8dd;border-radius:50%;width:170px;height:170px;position:absolute}.invitation-modal:before{background:radial-gradient(circle,#f4c9d2,#f8e1dc);top:-95px;left:-75px}.invitation-modal:after{background:#d8e9e3;bottom:-105px;right:-90px}.invitation-stars{z-index:1;color:#d69748;letter-spacing:.16em;position:relative}.invitation-kicker{z-index:1;color:#bd5669;letter-spacing:.03em;margin:22px 0 14px;font-family:Caveat,cursive;font-size:1.15rem;font-weight:600;position:relative}.invitation-modal h2{z-index:1;text-shadow:0 2px #fff;font-size:clamp(2.15rem,6vw,3.35rem);line-height:1.08;position:relative}.invitation-modal h2 em{color:#ce6273}.invitation-copy{z-index:1;color:#6f606c;max-width:410px;margin:24px auto;line-height:1.7;position:relative}.invitation-date{z-index:1;text-align:left;border-block:1px solid #ead5d2;grid-template-columns:72px 1fr;align-items:center;gap:20px;margin:28px auto;padding:20px 14px;display:grid;position:relative}.invitation-date>div:last-child{gap:5px;display:grid}.date-medallion{text-align:center;color:#fffaf2;background:linear-gradient(145deg,#d06b7d,#b94e65);border-radius:50% 50% 47% 47%;place-content:center;width:68px;height:74px;display:grid;box-shadow:0 8px 20px #a63e5727}.date-medallion span{color:#ffe8cf;letter-spacing:.18em;font-size:.66rem;font-weight:700}.date-medallion strong{color:#fff;font-family:DM Serif Display;font-size:2rem;line-height:1}.invitation-date small{color:#a2818f;letter-spacing:.05em;text-transform:lowercase;font-size:.72rem;font-weight:500}.invitation-date strong{font-family:DM Serif Display;font-size:1.18rem;font-weight:400}.invitation-date span{color:#876e7c}.open-invitation{z-index:1;color:#fff;cursor:pointer;background:linear-gradient(135deg,#503b4f,#6b4a64);border:0;border-radius:999px;justify-content:space-between;width:100%;padding:18px 21px;font-weight:600;transition:transform .2s,box-shadow .2s;display:flex;position:relative;box-shadow:0 12px 25px #503b4f2c}.open-invitation:hover{background:linear-gradient(135deg,#5c4258,#76526e);transform:translateY(-2px);box-shadow:0 16px 30px #503b4f34}.open-invitation:focus-visible{outline-offset:3px;outline:3px solid #e5ad55}.invitation-signoff{z-index:1;color:#a17f8d;margin:20px 0 0;font-family:DM Serif Display;font-style:italic;position:relative}@keyframes overlay-in{0%{opacity:0}}@keyframes invitation-in{0%{opacity:0;transform:translateY(20px)scale(.97)}}.hero{background:radial-gradient(circle at 82% 30%,#fde2e7 0 20%,#0000 46%),radial-gradient(circle at 10% 82%,#f7e4bd80,#0000 27%),linear-gradient(135deg,#fff7e8,#fffaf5 52%,#f9e7ee);grid-template-columns:1.05fr .95fr;align-items:center;min-height:780px;padding:80px max(7vw,28px);display:grid;position:relative;overflow:hidden}.hero:after{content:"";border:1px solid #d9a24b55;border-radius:50%;width:420px;height:420px;position:absolute;bottom:-250px;right:-230px;box-shadow:0 0 0 34px #d9a24b12,0 0 0 70px #d9a24b0c}.hero-copy{z-index:1;max-width:680px}.hero-date-pill{color:#745467;background:#ffffff91;border:1px solid #e3c29a;border-radius:999px;align-items:center;gap:10px;width:fit-content;margin:18px 0 24px;padding:9px 14px;font-size:.82rem;font-weight:600;display:flex;box-shadow:0 8px 22px #7150660c}.hero-date-pill span{color:#b8465d}.hero-date-pill i{background:#d9a24b;border-radius:50%;width:4px;height:4px}.eyebrow{color:#c14f62;letter-spacing:.02em;font-family:Caveat,cursive;font-size:1.2rem;font-weight:600}h1,h2{margin:0;font-family:DM Serif Display,Georgia,serif;font-weight:400;line-height:.96}h1{letter-spacing:-.035em;color:#473448;font-size:clamp(3.1rem,6.5vw,6rem)}.child-name{letter-spacing:.015em;text-transform:lowercase;color:#c05268;font-family:Caveat,cursive;font-size:.56em;font-weight:600;line-height:1.25;display:inline-block}h1 em{color:#cf6374}.intro{color:#655866;max-width:560px;margin:30px 0;font-size:1.15rem;line-height:1.75}.primary-link{color:#fff;background:#52394f;border-radius:99px;align-items:center;gap:24px;padding:16px 22px;font-weight:600;text-decoration:none;display:inline-flex;box-shadow:0 12px 28px #52394f26}.primary-link span{font-size:1.3rem}.whatsapp-share{color:#3d8062;align-items:center;gap:8px;margin:20px 0 0 22px;font-size:.9rem;font-weight:700;text-decoration:none;display:inline-flex}.whatsapp-share:hover{color:#246245}.cake{filter:drop-shadow(0 32px 22px #7d53642b);width:min(390px,82vw);margin:90px auto 0;position:relative;transform:rotate(2deg)}.cake-base{background:linear-gradient(90deg,#e98491,#f7a7aa 55%,#d96e80);border-radius:18px 18px 42px 42px;place-items:center;height:190px;display:grid;position:relative;overflow:hidden}.cake-base:before{content:"";opacity:.9;background:#fff1df;height:18px;position:absolute;inset:20px 0 auto;box-shadow:0 45px #fff1df}.cake-base span{z-index:1;color:#fff8ed;text-shadow:0 4px #bf5e72;font-family:DM Serif Display;font-size:6rem;position:relative}.cake-top{z-index:2;background:#fff2df;border-radius:50%;height:48px;margin-bottom:-22px;position:relative}.plate{background:#a7c9bf;border-radius:50%;height:30px;margin-top:-12px}.candles{justify-content:space-evenly;align-items:end;height:80px;padding:0 50px;display:flex}.candles i{background:repeating-linear-gradient(135deg,#f5c563 0 6px,#fff4dc 6px 12px);width:10px;height:52px;display:block;position:relative}.candles i:before{content:"";background:#ff9a50;border-radius:70% 30% 60% 40%;width:13px;height:21px;position:absolute;top:-25px;left:-1px;box-shadow:0 0 18px #ffb75d}.confetti{background:#e5ad55;width:11px;height:22px;position:absolute;top:14%;left:48%;transform:rotate(27deg);box-shadow:100px 38px #7eb7ad,220px -20px #d65d7c,380px 62px #e5ad55,500px 190px #7eb7ad,-50px 250px #d65d7c}.confetti-two{top:69%;left:52%;transform:rotate(-45deg);box-shadow:130px 55px #d65d7c,270px -35px #7eb7ad,450px 44px #e5ad55}.details-section{background:#503b4f;padding:0 max(7vw,28px) 86px}.details-card{background:linear-gradient(145deg,#fffdf9,#fff7ee);border:1px solid #eedfd8;border-radius:18px;max-width:1120px;margin:auto;padding:clamp(30px,5vw,66px);transform:translateY(-36px);box-shadow:0 24px 55px #24152230}.script{color:#c75f71;margin:0 0 35px;font-family:Caveat,cursive;font-size:1.8rem}.details-grid{grid-template-columns:1fr 1fr;gap:50px;display:grid}.detail{align-items:start;gap:22px;display:flex}.detail-icon{color:#c4586c;border:1px solid #dcb8b8;border-radius:50%;flex:0 0 50px;place-items:center;width:50px;height:50px;font-size:1.4rem;display:grid}.detail small{color:#a78c99;letter-spacing:.04em;text-transform:lowercase;margin-bottom:9px;display:block}.detail strong{font-family:DM Serif Display;font-size:1.18rem;font-weight:400;line-height:1.55}.birthday-note{color:#746471;border-top:1px solid #eadbd7;margin:40px 0 0;padding-top:24px}.text-link{color:#b44d61}.about-section{grid-template-columns:1fr 1fr;gap:10vw;max-width:1400px;margin:auto;padding:120px max(7vw,28px);display:grid}h2{color:#4b394b;font-size:clamp(2.25rem,4.5vw,4rem)}.about-section>div:last-child{color:#685c67;padding-top:22px;font-size:1.15rem;line-height:1.8}.favorites{color:#b95267;font-weight:600}.rsvp-section{background:#f8e7e9;grid-template-columns:.8fr 1.2fr;align-items:start;gap:8vw;padding:110px max(7vw,28px);display:grid}.rsvp-heading{position:sticky;top:40px}.rsvp-heading h2{margin:14px 0 28px}.rsvp-heading>p:last-child{color:#725e6d;line-height:1.7}.form-card{background:linear-gradient(160deg,#fff,#fffaf5);border:1px solid #ead8d9;border-radius:18px;padding:clamp(26px,4vw,54px);position:relative;box-shadow:0 25px 60px #8e536226}.form-card:before{content:"✦";color:#d9a24b;font-size:1.1rem;position:absolute;top:18px;right:22px}form{gap:25px;display:grid}label,legend{color:#4c3b4b;font-size:.94rem;font-weight:600}input,select,textarea{color:#3d323c;background:#fffcf9;border:1px solid #decfd5;border-radius:5px;outline:none;width:100%;margin-top:9px;padding:14px 15px;transition:all .2s;display:block}input:focus,select:focus,textarea:focus{border-color:#bd596c;box-shadow:0 0 0 3px #bd596c1a}textarea{resize:vertical;min-height:110px}.field-row{grid-template-columns:1fr 1fr;gap:20px;display:grid}fieldset{border:0;margin:0;padding:0}.choice-row{grid-template-columns:1fr 1fr;gap:12px;margin-top:10px;display:grid}.choice-row label{cursor:pointer;border:1px solid #decfd5;border-radius:5px;padding:15px}.choice-row label.selected{background:#fff4f5;border-color:#be596d}.choice-row input{accent-color:#bd596c;width:auto;margin:0 8px 0 0;display:inline}.guest-counts{grid-template-columns:1fr 1fr;gap:20px;margin-top:10px;display:grid}.guest-total{color:#8b7481;margin:12px 0 0;font-size:.9rem}.optional{color:#a48d99;margin-left:5px;font-weight:400}.submit,.success button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#503b4f,#704f68);border:0;border-radius:999px;padding:17px 22px;font-weight:600;box-shadow:0 10px 24px #503b4f22}.submit{justify-content:space-between;display:flex}.submit:disabled{opacity:.6;cursor:wait}.error{color:#a42d43;background:#fff0f1;border-radius:5px;padding:12px}.details-page{background:#fffaf4;min-height:100vh;padding:70px max(5vw,24px) 100px}.details-header{max-width:1180px;margin:0 auto 48px}.details-header h1{font-size:clamp(3.5rem,7vw,6.5rem)}.details-header>p:last-child{color:#766573}.summary-grid{color:#fff;background:#503b4f;border-radius:8px;grid-template-columns:repeat(6,1fr);max-width:1180px;margin:auto;display:grid;overflow:hidden;box-shadow:0 18px 45px #503b4f24}.summary-grid div{border-right:1px solid #ffffff24;padding:25px}.summary-grid div:last-child{border:0}.summary-grid small{color:#dbcbd5;letter-spacing:.14em;font-size:.68rem;display:block}.summary-grid strong{margin-top:9px;font-family:DM Serif Display;font-size:2.3rem;font-weight:400;display:block}.response-section{max-width:1180px;margin:65px auto 0}.response-title{border-bottom:1px solid #e5d7d6;align-items:center;gap:14px;padding-bottom:18px;display:flex}.response-title h2{font-size:clamp(2.2rem,4vw,3.5rem)}.response-title span{color:#fff;background:#d66f7f;border-radius:50%;place-items:center;min-width:34px;height:34px;font-weight:600;display:grid}.response-list{grid-template-columns:repeat(2,1fr);gap:18px;margin-top:22px;display:grid}.response-card{background:#fff;border:1px solid #eadedb;border-radius:7px;padding:24px;box-shadow:0 9px 24px #6343550c}.response-top{justify-content:space-between;align-items:start;gap:20px;display:flex}.response-top h3{margin:0;font-family:DM Serif Display;font-size:1.5rem;font-weight:400}.response-top time{color:#9c8793;white-space:nowrap;font-size:.8rem}.response-actions{align-items:center;gap:12px;display:flex}.delete-response{color:#a24455;cursor:pointer;background:#fff7f7;border:1px solid #e1b7bd;border-radius:999px;padding:5px 10px;font-size:.72rem;font-weight:600}.delete-response:hover{background:#fff0f1}.delete-response:disabled{cursor:wait;opacity:.65}.headcount{flex-wrap:wrap;gap:8px;margin:18px 0 0;display:flex}.headcount span,.headcount strong{color:#955064;background:#f8e9ea;border-radius:99px;padding:6px 10px;font-size:.78rem;font-weight:600}.headcount strong{color:#527e72;background:#e1efe9}.guest-message{color:#76636f;border-top:1px solid #eee3e0;margin:18px 0 0;padding-top:16px;font-style:italic;line-height:1.55}.declined-section .response-title span{background:#9a8995}.empty-response,.details-state{color:#887580}.details-state{max-width:1180px;margin:auto}.invitation-manager{background:#e4f0ea;border:1px solid #c7ded4;border-radius:12px;grid-template-columns:.8fr 1.2fr;gap:7vw;max-width:1180px;margin:65px auto 0;padding:46px;display:grid}.invitation-manager h2{margin:10px 0 18px;font-size:clamp(2rem,3.6vw,3rem)}.invitation-manager>div>p:last-child{color:#526b62;line-height:1.6}.invitation-panel{align-content:start;gap:15px;display:grid}.token-button,.add-guest,.send-invitations{color:#fff;cursor:pointer;background:#437764;border:0;border-radius:999px;padding:12px 17px;font-weight:700}.token-button:disabled,.send-invitations:disabled{cursor:not-allowed;opacity:.55}.invitation-form{border-block:1px solid #c8ded3;grid-template-columns:1fr 1fr auto;align-items:end;gap:12px;padding:18px 0}.invitation-form input{margin-top:6px}.add-guest{white-space:nowrap}.invitation-state{color:#37705a;margin:0;font-size:.9rem;font-weight:600}.invitation-actions{justify-content:space-between;align-items:center;gap:16px;display:flex}.invitation-actions strong{color:#496a5c}.send-invitations{background:#bd5669}.invitation-list{gap:8px;display:grid}.invitation-guest{background:#fffdfa;border:1px solid #d5e3dc;border-radius:7px;justify-content:space-between;align-items:center;gap:16px;padding:13px 14px;display:flex}.invitation-guest>div{gap:4px;display:grid}.invitation-guest span,.invitation-guest small{color:#76847c;font-size:.82rem}.invitation-badge{letter-spacing:.04em;text-transform:lowercase;border-radius:99px;width:fit-content;padding:4px 8px;font-size:.68rem}.invitation-badge.pending{color:#8b6515;background:#f8e8bc}.invitation-badge.accepted{color:#397154;background:#dcefe4}.invitation-badge.failed{color:#a24553;background:#f8e0e1}.success{text-align:center;padding:40px 10px}.success>span{color:#fff;background:#6fa397;border-radius:50%;place-items:center;width:68px;height:68px;margin:auto;font-size:2rem;display:grid}.success h3{margin:24px 0 12px;font-family:DM Serif Display;font-size:2.3rem}.success p{color:#725f6d;line-height:1.6}footer{text-align:center;color:#fcebef;background:#503b4f;padding:70px 20px}footer span{color:#edbd70;font-size:1.5rem}footer p{margin:12px;font-family:DM Serif Display;font-size:1.7rem}footer small{color:#cdbdc8}@media (width<=800px){.hero{grid-template-columns:1fr;min-height:auto;padding-top:60px}.cake{margin:80px auto 70px}.details-grid,.about-section,.rsvp-section{grid-template-columns:1fr}.rsvp-heading{position:static}.field-row{grid-template-columns:1fr}.about-section{gap:20px;padding-block:85px}.summary-grid{grid-template-columns:1fr 1fr}.summary-grid div:nth-child(2){border-right:0}.summary-grid div:nth-child(-n+2){border-bottom:1px solid #ffffff24}.response-list,.invitation-manager,.invitation-form{grid-template-columns:1fr}.invitation-manager{gap:24px;padding:30px}}@media (width<=480px){h1{font-size:3rem}h2{font-size:2.25rem}.choice-row,.guest-counts{grid-template-columns:1fr}.details-card{padding-inline:24px}.detail strong{font-size:1.05rem}.invitation-overlay{padding:12px}.invitation-modal{border-radius:18px;padding:42px 28px 34px}.invitation-date{grid-template-columns:60px 1fr;gap:14px;padding-inline:4px}.date-medallion{width:58px;height:64px}.invitation-date strong{font-size:1.02rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
