@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(24px,5vh,64px);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(16px,2.5vw,32px) 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:12px auto;border-width:6px}.hero .hero-message{font-size:clamp(16px,1.6vw,20px);margin:12px auto}.hero .hero-intro{margin-bottom:0}.hero .welcome>.qr{position:absolute;z-index:2;left:0;bottom:0;margin:0;transform:translate(-18%,50%)}.hero:has(.welcome>.qr){padding-bottom:105px}.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(18px,4vh,36px);gap:12px}.hero .welcome{width:100%;padding:18px 16px}.hero .couple-portrait{width:clamp(200px,60vw,280px);height:clamp(200px,60vw,280px)}.hero .welcome>.qr{transform:translate(-8%,75%);padding:8px}.hero .welcome>.qr img{width:84px;height:84px}}.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:8px auto;line-height:1.45}.hero .welcome .hero-couple-name+.event-summary{margin:0 auto 10px}.hero .welcome .event-summary time{display:inline-block;padding:2px 14px 5px;border-bottom:1px solid;font-family:Playfair Display,Georgia,serif;font-size:clamp(21px,3.5vw,32px);font-weight:500;letter-spacing:.04em;line-height:1.25}.hero .welcome .event-location{display:flex;flex-direction:column;gap:4px;align-items:center;font-style:normal;text-align:center;max-width:650px;margin:10px auto 14px;line-height:1.5}.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:4px auto 6px;overflow-wrap:anywhere;text-shadow:0 3px 18px #120b0a8a}.hero .welcome .hero-message{white-space:pre-wrap;overflow-wrap:anywhere;max-width:690px;margin:12px auto;line-height:1.65;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:12px auto 8px;padding:8px 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:2px 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: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}}.admin-dashboard .topnav{margin-bottom:18px}.admin-navigation{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 18px;padding:6px;background:#f1e8e2;border-radius:14px}.admin-navigation button{border:0;border-radius:9px;background:transparent;color:#604840;font-weight:600;padding:9px 14px}.admin-navigation button[aria-pressed=true]{background:#fff;color:#57382f;box-shadow:0 1px 5px #4e403c26}.admin-navigation button:focus-visible{outline:2px solid #795c4c;outline-offset:2px}.admin-stats{margin-bottom:18px}.admin-stats .panel{padding:14px 18px}.admin-stats h2,.admin-stats p{margin:0}.admin-editor-header{position:-webkit-sticky;position:sticky;top:0;z-index:3;background:var(--cream);padding:8px 0 1px}.admin-editor-header h2{margin:2px 0 12px;overflow-wrap:anywhere}.admin-kicker{margin:0;color:#795c4c;font-size:12px;font-weight:600;letter-spacing:.09em;text-transform:uppercase}.admin-editor-section>.panel+.panel{margin-top:12px}.admin-editor .panel h3{margin-top:0}.admin-editor input,.admin-editor select,.admin-editor textarea{scroll-margin-top:180px}@media(max-width:600px){.admin-editor-header .btn{padding:8px 12px}.admin-editor-header>.row{gap:6px}.admin-editor-header .admin-navigation{margin-top:8px}.admin-navigation button{padding:8px 10px}.admin-editor input,.admin-editor select,.admin-editor textarea{scroll-margin-top:230px}}:root{--knotavelle-wine:#54263e;--knotavelle-ivory:#fcf5ec;--knotavelle-display:"Cormorant Garamond",Georgia,serif}.knotavelle-brand{display:inline-flex;width:-moz-fit-content;width:fit-content;max-width:100%;align-items:center;gap:.42em;color:var(--knotavelle-wine);text-decoration:none;font:600 1.7rem/1 var(--knotavelle-display);letter-spacing:-.035em;white-space:nowrap}.knotavelle-brand img{width:1.22em;height:1.22em;object-fit:contain}.knotavelle-brand:hover span{text-decoration:underline;text-underline-offset:.16em;text-decoration-thickness:1px}.knotavelle-brand:focus-visible,.knotavelle-directory a:focus-visible{outline:2px solid var(--knotavelle-wine);outline-offset:4px}.knotavelle-stamp{font-size:1.25rem}.knotavelle-invitation-brand{margin-top:1rem;padding:.3rem .7rem;border-radius:1.5rem;background:var(--knotavelle-ivory);color:var(--knotavelle-wine)}.knotavelle-directory{min-height:100dvh;color:var(--knotavelle-wine);background:#fbf7f3}.knotavelle-directory-hero{display:grid;justify-items:center;padding:clamp(3.25rem,10vw,7.5rem) 1rem clamp(3rem,7vw,5.5rem);border-bottom:1px solid #ead8d6;background:radial-gradient(ellipse at 50% 30%,#fffbf6 16%,#f6e8e7 100%)}.knotavelle-directory-hero>img{width:clamp(5.4rem,13vw,7.25rem);height:auto;aspect-ratio:1}.knotavelle-directory-hero h1{margin:.18em 0 .37em;font:600 clamp(3.4rem,11vw,7.7rem)/.85 var(--knotavelle-display);letter-spacing:-.065em}.knotavelle-directory-hero nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.45rem 1.2rem}.knotavelle-directory-hero a{display:inline-flex;align-items:center;min-height:44px;padding:.55rem .75rem;font-weight:600}.knotavelle-directory-hero a:hover{text-decoration:underline;text-underline-offset:.2em}.knotavelle-directory-hero .knotavelle-primary{padding-inline:1.18rem;color:var(--knotavelle-ivory);background:var(--knotavelle-wine);border-radius:999px}.knotavelle-directory-list{max-width:67rem;margin:auto;padding:clamp(1.5rem,4vw,3rem) 1rem}.knotavelle-directory-list>h2{font:600 clamp(2rem,5vw,2.6rem)/1 var(--knotavelle-display);margin:0 0 1rem}.knotavelle-wedding-card{display:grid;align-content:start;grid-gap:.55rem;gap:.55rem;border-color:#ebdcd8;box-shadow:none;background:#fffcfa}.knotavelle-wedding-card:hover{border-color:#bc90a3}.knotavelle-wedding-card h3{margin:0;font:600 1.85rem/1 var(--knotavelle-display);overflow-wrap:anywhere}.knotavelle-wedding-card time{color:#725e65;font-size:.88rem}.knotavelle-wedding-card>span{font-weight:650;margin-top:.35rem}