@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;1,400&family=Great+Vibes&family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap");:root{--rose:#a5796e;--ink:#4e403c;--cream:#fbf8f4}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:DM Sans,sans-serif}h1,h2,h3{font-family:Playfair Display,serif;font-weight:400}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}input,select,textarea{padding:13px 15px;border:1px solid #dfd5ce;border-radius:10px;background:#fff;width:100%;color:#4e403c}label{font-size:13px;display:block;margin:12px 0 6px}.btn,label{font-weight:600}.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--rose);color:#fff;border:0;border-radius:30px;padding:13px 26px;gap:8px}.btn:disabled{opacity:.5;cursor:wait}.outline{background:transparent;border:1px solid #b8a49a;color:#6d554c}.page{max-width:1080px;margin:auto;padding:35px 20px}.panel{background:#fffdfbdc;border:1px solid #eadfd8;border-radius:18px;padding:25px;box-shadow:0 12px 45px #7050400d}.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:space-between;align-items:center;text-align:center;position:relative;background-image:linear-gradient(90deg,#38281d5c,#5b39251f,#38281d5c),url(/floral.svg);background-size:cover;background-position:50%;color:white;padding:40px 20px}.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 52% 20%,#fff5c077,transparent 55%);pointer-events:none}.hero>*{position:relative}.hero h1{font-size:clamp(58px,9vw,130px);line-height:1.05;margin:12px 0;text-shadow:0 3px 24px #4d352d6e}.hero p{max-width:650px;line-height:1.8}.hero .eyebrow{letter-spacing:.35em;text-transform:uppercase;font-size:12px}.hero .qr{position:absolute;bottom:28px;left:28px;background:#ffffffed;color:#5c4842;padding:12px;border-radius:12px;font-size:12px;box-shadow:0 8px 40px #0002}.hero .qr img{display:block;width:120px;height:120px}.hero .welcome{padding:35px 20px;background:#33241a3b;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);border:1px solid #ffffff50;border-radius:18px}.hero .btn{background:#fff;color:#795c4c}.form-wrap{max-width:590px;margin:60px auto;padding:0 18px}.muted{color:#89776e}.center{text-align:center}.stack{display:grid;grid-gap:15px;gap:15px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.table{width:100%;border-collapse:collapse}.table td,.table th{text-align:left;padding:13px 9px;border-bottom:1px solid #e9ded7;font-size:14px}.tag{display:inline-block;padding:5px 11px;border-radius:20px;background:#f0e9e4;font-size:12px;text-transform:capitalize}.approved{background:#e4f3e9;color:#246b40}.declined{background:#fae5e5;color:#8c3434}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-gap:18px;gap:18px}.card{background:#fffaf2;border:1px solid #d9c7b6;padding:35px;max-width:480px;margin:auto;text-align:center;border-radius:12px;box-shadow:0 20px 60px #4e403c20}.card h1{font-size:45px}.card .line{height:1px;background:#dccabb;margin:25px 0}.card small{letter-spacing:.2em;color:#977d70}.topnav{display:flex;gap:20px;align-items:center;justify-content:space-between;margin-bottom:25px}.error{color:#a33636;font-size:14px}.success{color:#286b46;font-size:14px}@media(max-width:700px){.hero .qr{position:relative;left:auto;bottom:auto;margin-top:20px}.hero{gap:35px}.table{display:block;overflow:auto}.page{padding:20px 14px}}.hero-storybook{background-image:linear-gradient(110deg,#111e20bd,#203d36a8,#192524a8),url(/storybook-garden.svg);color:#fff6e2}.hero-storybook:before{background:radial-gradient(ellipse at 50% 36%,#f6d79e30,transparent 60%)}.hero-storybook .welcome{max-width:790px;background:linear-gradient(145deg,#142b29bb,#2d3d30aa);border:1px solid #e6ca8a9c;box-shadow:0 0 0 7px #cda86721,0 22px 70px #081b1b9e;padding:42px clamp(20px,5vw,70px)}.hero-storybook .welcome h1{font-size:clamp(48px,7vw,100px);color:#ffe8ae;text-shadow:0 3px 18px #030b09}.hero-storybook .eyebrow{color:#f5d49a;letter-spacing:.26em}.hero-storybook .hero-ornament{font-family:Georgia,serif;font-size:36px;color:#efd59b}.hero-storybook .btn{background:#e7c686;color:#243a32;border:1px solid #fff0c5;box-shadow:0 6px 28px #0005}.hero-storybook .qr{border:2px solid #e1c28a;background:#fffaed;color:#273c34}.couple-portrait{width:clamp(130px,22vw,210px);height:clamp(130px,22vw,210px);margin:20px auto;border-radius:50%;overflow:hidden;border:5px solid #fff9ef;box-shadow:0 12px 45px #0006}.couple-portrait img{width:100%;height:100%;object-fit:cover;display:block}.hero-storybook .couple-portrait{border:6px double #f0d393;box-shadow:0 0 0 5px #bda16d66,0 15px 50px #0008}.photo-admin-preview{max-width:260px;max-height:200px;width:100%;object-fit:cover;border-radius:16px;border:1px solid #e2d7cd;margin:12px 0;display:block}.theme-picker{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px}.theme-choice{flex:1 1;min-width:180px;border:2px solid #e4d9d0;background:#fff;padding:14px;border-radius:14px;text-align:left;cursor:pointer}.theme-choice[aria-pressed=true]{border-color:#977048;box-shadow:0 0 0 3px #d6b77d33}.theme-choice strong{display:block;margin-bottom:5px}.hero{isolation:isolate;justify-content:flex-start;gap:clamp(12px,3vh,34px);padding-top:clamp(52px,9vh,112px);overflow:hidden;background-image:none!important;background-color:#172d2a}.hero-backdrop{position:absolute;z-index:-2;inset:clamp(8px,1.7vw,25px);border-radius:clamp(24px,5vw,76px);background-image:var(--custom-background,linear-gradient(110deg,#142b2999,#203d3655),url("/storybook-garden.svg"));background-size:cover;background-position:50%;filter:blur(var(--edge-blur,18px));transform:scale(1.015)}.hero-vignette{position:absolute;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 35%,transparent 25%,#09151478 100%)}.hero:before{display:none}.hero .welcome{width:min(92vw,850px);max-width:850px;padding:clamp(22px,3vw,48px) clamp(20px,5vw,65px);margin:0 auto;background:#162927b8;border:1px solid #ffffff7a;border-radius:32px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 25px 95px #0006}.hero .welcome h1{font-size:clamp(46px,7vw,106px)}.hero .couple-portrait{width:clamp(215px,31vw,350px);height:clamp(215px,31vw,350px);margin:16px auto;border-width:6px}.hero .hero-message{font-size:clamp(16px,1.6vw,20px);margin:12px auto}.hero .hero-intro{margin-bottom:0}.hero .qr{z-index:2}.hero-floral{background-color:#77585c}.hero-floral .hero-backdrop{background-image:var(--custom-background,linear-gradient(100deg,#593b4c66,#a5796e22),url("/floral.svg"))}.hero-storybook{background-color:#102c25}.hero-storybook .hero-backdrop{background-image:var(--custom-background,linear-gradient(110deg,#102a2477,#1c3b3055),url("/storybook-garden.svg"))}.hero-moonlit{background-color:#0c1736;color:#e9f0ff}.hero-moonlit .hero-backdrop{background-image:var(--custom-background,radial-gradient(circle at 70% 20%,#b5d4fa99,transparent 16%),linear-gradient(135deg,#102449,#313c77,#08142d))}.hero-moonlit .welcome{background:#0b163bc9;border-color:#a2b7e8}.hero-moonlit .btn{background:#d8e6ff;color:#1c2c55}.hero-faerie{background-color:#18392f;color:#f6ebff}.hero-faerie .hero-backdrop{background-image:var(--custom-background,radial-gradient(circle at 25% 24%,#f8e0ab91,transparent 14%),radial-gradient(circle at 75% 65%,#cfb7ff66,transparent 21%),linear-gradient(125deg,#1c523f,#3c4967,#102d35))}.hero-faerie .welcome{background:#223c3ac9;border-color:#d5bbf6}.hero-faerie .btn{background:#ebd7ff;color:#403251}.hero-celestial{background-color:#100c2f;color:#f8eaff}.hero-celestial .hero-backdrop{background-image:var(--custom-background,radial-gradient(circle at 65% 23%,#f5d9ffb3,transparent 10%),radial-gradient(circle at 30% 75%,#8675d788,transparent 20%),linear-gradient(145deg,#150e35,#432e72,#0a1539))}.hero-celestial .welcome{background:#1a133ac9;border-color:#d7b5ff}.hero-celestial .btn{background:#e8d0ff;color:#321c58}.hero-royal{background-color:#3a1026;color:#fff2e6}.hero-royal .hero-backdrop{background-image:var(--custom-background,radial-gradient(circle at 50% 12%,#f1c87e8c,transparent 35%),linear-gradient(130deg,#451328,#8d3447,#301122))}.hero-royal .welcome{background:#3a1427d9;border:2px double #f0cc8c}.hero-royal .btn{background:#eac47f;color:#472536}.hero-dragon{background-color:#102a25;color:#f9e9d5}.hero-dragon .hero-backdrop{background-image:var(--custom-background,radial-gradient(circle at 80% 20%,#e8a95b7a,transparent 25%),linear-gradient(125deg,#102b27,#346052,#3b2c2c))}.hero-dragon .welcome{background:#112e2cce;border-color:#cf995c}.hero-dragon .btn{background:#d9aa6d;color:#18372d}.hero-winter{background-color:#163a53;color:#fff}.hero-winter .hero-backdrop{background-image:var(--custom-background,radial-gradient(circle at 35% 10%,#fff9e6b8,transparent 22%),linear-gradient(125deg,#6c9eb4,#284f77,#a8c9d5))}.hero-winter .welcome{background:#183d58c4;border-color:#d9f4ff}.hero-winter .btn{background:#e5f8ff;color:#23465a}.background-admin-preview{display:block;width:min(100%,540px);height:180px;object-fit:cover;border-radius:20px;margin:12px 0}@media(max-width:700px){.hero{padding-top:clamp(30px,5vh,60px);gap:15px}.hero .welcome{width:100%;padding:24px 16px}.hero .couple-portrait{width:clamp(200px,60vw,280px);height:clamp(200px,60vw,280px)}.hero .qr{margin-top:10px}}.hero .hero-backdrop{inset:0;border-radius:0;transform:none;filter:none;--feather-width:clamp(28px,calc(34px + var(--edge-blur, 18px) * 2),145px);-webkit-mask-image:linear-gradient(to right,transparent 0,#000 var(--feather-width),#000 calc(100% - var(--feather-width)),transparent 100%),linear-gradient(to bottom,transparent 0,#000 var(--feather-width),#000 calc(100% - var(--feather-width)),transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 var(--feather-width),#000 calc(100% - var(--feather-width)),transparent 100%),linear-gradient(to bottom,transparent 0,#000 var(--feather-width),#000 calc(100% - var(--feather-width)),transparent 100%);-webkit-mask-composite:source-in;mask-composite:intersect}@media (max-width:700px){.hero .hero-backdrop{--feather-width:clamp(18px,calc(20px + var(--edge-blur, 18px)),70px)}}.hero .welcome{position:relative;margin-top:var(--panel-offset,0);transition:border-radius .25s ease}.hero.panel-shape-square .welcome{border-radius:0}.hero.panel-shape-rounded .welcome{border-radius:32px}.hero.panel-shape-pill .welcome{border-radius:100px}.hero.panel-shape-oval .welcome{border-radius:50%/35%;padding:clamp(48px,7vw,90px) clamp(30px,7vw,100px)}.hero.panel-shape-circle .welcome{border-radius:50%;width:min(92vw,850px);min-height:min(92vw,850px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(36px,6vw,88px)}@media(max-width:700px){.hero .welcome{margin-top:clamp(-100px,var(--panel-offset,0px),140px)}.hero.panel-shape-oval .welcome{border-radius:48%/22%;padding:45px 22px}.hero.panel-shape-circle .welcome{width:100%;min-height:0;border-radius:46%/30%;padding:45px 22px}.hero.panel-shape-pill .welcome{border-radius:55px}}.hero .welcome .hero-couple-name{text-align:center;width:100%;margin-left:auto;margin-right:auto}.hero .welcome .invitation-heading{font-family:Playfair Display,Georgia,serif;font-size:clamp(21px,2.8vw,34px);font-weight:400;line-height:1.35;text-align:center;max-width:700px;margin:20px auto 12px;text-wrap:balance;overflow-wrap:anywhere}.hero .welcome .event-summary{text-align:center;margin:18px auto 8px}.hero .welcome .event-location{display:flex;flex-direction:column;gap:6px;align-items:center;font-style:normal;text-align:center;max-width:650px;margin:14px auto 22px;line-height:1.6}.hero .welcome .location-label{font-size:11px;letter-spacing:.18em;text-transform:uppercase;opacity:.85}.hero .welcome .location-address{white-space:pre-line;overflow-wrap:anywhere}.hero .welcome .location-map{font-size:14px;text-decoration:underline;text-underline-offset:3px}.hero .welcome .hero-ornament{text-align:center}.hero .welcome h1.hero-couple-name,.hero-storybook .welcome h1.hero-couple-name{font-family:Great Vibes,Brush Script MT,cursive;font-size:clamp(58px,9vw,126px);font-weight:400;line-height:1.28;letter-spacing:.01em;text-transform:none;text-align:center;width:100%;max-width:100%;margin:8px auto 12px;overflow-wrap:anywhere;text-shadow:0 3px 18px #120b0a8a}.hero .welcome .hero-message{white-space:pre-wrap;overflow-wrap:anywhere;max-width:690px;margin:20px auto;line-height:1.8;text-align:center}.hero .welcome .welcome-style-elegant{font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(21px,2.7vw,29px);font-style:italic}.hero .welcome .welcome-style-classic{font-family:DM Sans,sans-serif;font-size:clamp(15px,1.8vw,19px);font-style:normal}.hero .welcome .welcome-style-royal{font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(20px,2.6vw,28px);letter-spacing:.025em;font-weight:600}.hero .welcome .welcome-style-storybook{font-family:Playfair Display,Georgia,serif;font-size:clamp(17px,2vw,22px);font-style:italic}.hero .welcome .invitation-heading-section{display:flex;flex-direction:column;align-items:center;gap:4px;width:min(100%,690px);margin:22px auto 12px;padding:15px clamp(12px,3vw,32px);border-top:1px solid #ffffff70;border-bottom:1px solid #ffffff70}.hero .welcome .invitation-heading-section .invitation-heading{font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(22px,3vw,34px);font-style:italic;font-weight:500;line-height:1.3;text-align:center;margin:5px auto;white-space:pre-wrap;overflow-wrap:anywhere}.hero .welcome .invitation-heading-flourish{font-family:Georgia,serif;font-size:19px;opacity:.85}@media(max-width:700px){.hero .welcome h1.hero-couple-name{font-size:clamp(50px,12vw,78px)}.hero .welcome .invitation-heading-section{padding:12px 8px}}.typography-controls{display:grid;grid-template-columns:minmax(130px,1fr) minmax(170px,2fr);grid-gap:12px 18px;gap:12px 18px;align-items:center;margin:18px 0;padding:16px;border:1px solid #bda6a355;border-radius:12px}.typography-controls label{margin:0}.typography-controls input[type=range],.typography-controls select{width:100%;min-width:0}.typography-controls .type-check{display:flex;align-items:center;gap:8px;grid-column:1/-1}.typography-controls .type-check input{width:auto}@media(max-width:620px){.typography-controls{grid-template-columns:1fr;gap:8px}}