@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Manrope:wght@400;500;600;700&display=swap";.side-rays-container{pointer-events:none;width:100%;height:100%;position:relative;overflow:hidden}.side-rays-container canvas{width:100%;height:100%;display:block}:root{--ink:#384232;--olive:#59634d;--cream:#f7f5ee;--muted:#747969;--line:#dce0d2}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{background:var(--cream);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Manrope,Arial,sans-serif;font-size:14px}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Cormorant Garamond,Georgia,serif;font-weight:400}h2{letter-spacing:-1.4px;font-size:54px;line-height:1.08}h2 em{color:#7a8264;font-weight:400}p{line-height:1.85}svg{flex-shrink:0}a:focus-visible,button:focus-visible{outline-offset:5px;outline:2px solid #a78650}.nav{background:#f7f5eef5;border-bottom:1px solid #dedfd4;justify-content:space-between;align-items:center;height:89px;padding:0 7%;display:flex}.brand{letter-spacing:2px;align-items:center;gap:4px;font-family:Cormorant Garamond,serif;font-size:30px;display:flex}.brand span{color:#9a9d86;font-size:24px;font-style:italic}.brand i{letter-spacing:2px;border-left:1px solid #cfd2c3;margin-left:20px;padding-left:20px;font:9px Manrope,sans-serif}.nav nav{align-items:center;gap:36px;font-size:11px;display:flex}.nav-rsvp{border:1px solid #b7beaa;border-radius:2px;align-items:center;gap:18px;padding:12px 17px;display:flex}.hero{color:#fcf9ee;background:#505e46;position:relative;overflow:hidden}.rays{pointer-events:none;opacity:1;position:absolute;inset:0}.hero-inner{grid-template-columns:1.15fr 1fr;align-items:center;gap:75px;max-width:1160px;margin:auto;padding:64px 40px 53px;display:grid;position:relative}.eyebrow{letter-spacing:2.1px;font-size:9px;font-weight:600;line-height:1.8}.hero .eyebrow{color:#e2e3d2;align-items:center;gap:10px;display:flex}.hero .eyebrow span{background:#e3d3a5;border-radius:50%;width:5px;height:5px}.hero h1{letter-spacing:-2px;max-width:530px;margin:27px 0 23px;font-size:80px;line-height:.99}.hero h1 em{color:#dcd8bb;padding-left:75px;font-size:44px;line-height:1.02;display:block}.hero-line{background:#b6bba180;width:56px;height:1px;margin:28px 0 21px}.invitation{color:#ececdf;max-width:355px;font-size:12px;line-height:1.95}.hero-date{letter-spacing:.7px;margin:24px 0;font-size:10px}.hero-date span{color:#c9cbad;margin:0 11px}.button{background:var(--olive);color:#fff;border:1px solid #0000;border-radius:3px;justify-content:center;align-items:center;gap:26px;padding:15px 23px;font-size:11px;font-weight:600;transition:background .2s,transform .2s;display:inline-flex}.button:hover{background:#444f3b;transform:translateY(-1px)}.button.light{color:#46513d;background:#f6f3e8}.button.light:hover{background:#fff}.portrait-wrap{padding:0 10px;position:relative;transform:rotate(2deg)}.portrait{background:#e0dfcb;border:1px solid #dfdfc485;border-radius:180px 180px 3px 3px;height:470px;padding:10px;box-shadow:0 20px 60px #29332218}.portrait img{object-fit:cover;border-radius:inherit;width:100%;height:100%}.monogram-art{border-radius:inherit;color:#657052;background:radial-gradient(at 65% 10%,#f5edd6,#0000 80%),#d8dcc6;border:1px solid #abae9066;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.botanical{color:#6d795b;width:100%;height:100%;position:absolute;inset:0}.small-caps{letter-spacing:2px;font-size:8px;font-weight:600;position:relative}.monogram{margin:14px 0;font:90px Cormorant Garamond,serif;position:relative}.monogram em{color:#949b7e;padding:0 5px;font-size:48px}.art-date{letter-spacing:4px;font-size:10px;position:relative}.art-bottom{font:italic 16px Cormorant Garamond,serif;position:absolute;bottom:30px}.photo-caption{text-align:center;color:#e4e5d4;margin-top:17px;font:italic 18px Cormorant Garamond,serif;display:block}.seal{color:#697255;background:#e9e5d3;border:4px double #a9ac9280;border-radius:50%;justify-content:center;align-items:center;gap:7px;width:88px;height:88px;display:flex;position:absolute;bottom:38px;left:-25px;transform:rotate(-13deg);box-shadow:0 4px 16px #39443012}.seal span{letter-spacing:1px;font-size:8px;line-height:1.6}.hero-bottom{letter-spacing:1.6px;color:#ecebdd;border-top:1px solid #a3ad9470;justify-content:space-between;padding:22px 7%;font-size:8px;display:flex;position:relative}.hero-bottom a{letter-spacing:.6px;align-items:center;gap:10px;display:flex}.section{max-width:1160px;margin:auto;padding:85px 40px}.section-heading{text-align:center}.section-heading h2{margin:17px 0}.section-heading p:not(.eyebrow){color:var(--muted);font-size:12px}.details{grid-template-columns:1fr 1.25fr;max-width:850px;margin:45px auto 0;display:grid}.details>div{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:8px 40px;display:flex}.details>div+div{border-left:1px solid var(--line)}.details svg{color:#909679}.details h3{max-width:350px;font-size:27px;line-height:1.2}.details p{color:var(--muted);max-width:340px;font-size:11px}.details .small-caps{margin-top:6px}.text-link{background:0 0;border:none;border-bottom:1px solid #abb29b;align-items:center;gap:14px;padding:0 0 5px;font-size:11px;display:inline-flex}.rsvp{border-top:1px solid var(--line);grid-template-columns:1fr 1.1fr;align-items:start;gap:100px;padding-top:85px;padding-bottom:90px;display:grid}.rsvp-intro{padding-top:18px}.rsvp-intro h2{margin:24px 0;font-size:61px}.rsvp-intro>p:not(.eyebrow){max-width:290px;color:var(--muted);font-size:12px}.rsvp-note{border-top:1px solid var(--line);color:#8a9179;align-items:center;gap:17px;max-width:270px;margin-top:34px;padding-top:25px;display:flex}.rsvp-note span{font:italic 21px/1.3 Cormorant Garamond,serif}.form-card{background:#fffefa;border:1px solid #e3e5d9;border-radius:5px;padding:33px;box-shadow:0 12px 40px #44513205}.form-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;display:flex}.form-heading h3{font-size:33px}.form-heading span{letter-spacing:1.2px;color:#929880;font-size:7px}label{margin-bottom:20px;font-size:10px;font-weight:600;display:block}input,textarea{width:100%;color:var(--ink);background:#fffefa;border:1px solid #dfe2d6;border-radius:3px;outline:none;margin-top:9px;padding:13px 14px;font-size:11px;transition:border-color .2s;display:block}input:focus,textarea:focus{border-color:#7f8c68;box-shadow:0 0 0 2px #69755212}input::placeholder{color:#979c8d}small{color:#969c8c;margin-top:8px;font-size:8px;font-weight:400;line-height:1.6;display:block}.companions{border-top:1px solid #e9ebdf;padding-top:21px}.companions-title{justify-content:space-between;align-items:baseline;display:flex}.companions-title label{margin:0}.companions-title span{color:#989e8d;font-size:8px}.companions>p{color:#8b927f;margin-top:6px;font-size:9px}.add-companion{color:#697555;background:#f4f5ee;border:1px dashed #c9cebd;border-radius:3px;justify-content:center;align-items:center;gap:8px;width:100%;margin:15px 0 22px;padding:12px;font-size:10px;display:flex}.companion-row{align-items:center;gap:7px;display:flex}.companion-row button{color:#7d866f;background:0 0;border:0;padding:9px}.consent{color:#7f8773;align-items:flex-start;gap:9px;margin:6px 0 19px;font-size:8px;font-weight:400;line-height:1.6;display:flex}.consent input{width:13px;height:13px;accent-color:var(--olive);flex-shrink:0;margin:0}.submit{justify-content:space-between;width:100%;font-size:10px}.form-foot{text-align:center;color:#8a927d;margin-top:12px;font-size:8px}.error{color:#a13737;margin:10px 0;font-size:11px}.success{text-align:center;padding:40px 5px}.success h3{margin:20px 0;font-size:36px}.success p:not(.eyebrow){color:var(--muted);font-size:12px}.success button{margin-top:25px}.check-circle{background:#edf0e2;border-radius:50%;margin-bottom:25px;padding:20px;display:inline-flex}.gifts{border-top:1px solid var(--line);padding-bottom:85px}.empty-gifts{text-align:center;background:#eef0e5aa;border:1px solid #dce1cf;border-radius:4px;max-width:840px;margin:40px auto 0;padding:42px 20px 25px}.gift-icon{color:#7e8a66;border:1px solid #cdd5bd;border-radius:50%;justify-content:center;align-items:center;width:65px;height:65px;margin:0 auto 22px;display:flex}.empty-gifts .small-caps{color:#899574;font-size:7px}.empty-gifts h3{margin:14px 0 12px;font-size:32px}.empty-gifts p{color:#818a73;font-size:11px}.tiny-flower{color:#b0b99d;margin-top:20px;font-size:24px;display:block}.gift-grid{grid-template-columns:repeat(3,1fr);gap:24px;margin-top:35px;display:grid}.gift-card{border:1px solid var(--line);padding:20px}.gift-card img{object-fit:cover;width:100%;height:200px}.gift-card h3{font-size:25px}.gift-card span{margin-top:20px;display:block}footer{background:#e9ecdf;border-top:1px solid #d9decc;justify-content:space-between;align-items:center;gap:20px;padding:30px 7%;display:flex}footer p{color:#858f73;font:italic 18px Cormorant Garamond,serif}.admin-link{color:#7c886a;align-items:center;gap:7px;font-size:8px;display:flex}.restricted{max-width:650px;margin:100px auto;padding:30px}.restricted h1{margin:25px 0;font-size:50px}.restricted .button{margin-top:25px}.admin{max-width:1100px;margin:auto;padding:35px}.admin header{justify-content:space-between;margin-bottom:55px;font-size:12px;display:flex}.admin h1{margin:20px 0 35px;font-size:50px}.stats{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.stats>div{border:1px solid var(--line);background:#fffefa;padding:25px}.stats strong{font:40px Cormorant Garamond,serif;display:block}.stats span{font-size:11px}.tabs{border-bottom:1px solid var(--line);gap:20px;margin:35px 0;display:flex}.tabs button{color:var(--muted);background:0 0;border:none;padding:15px 8px}.tabs button.active{border-bottom:2px solid var(--olive);color:var(--ink)}.admin-tools{align-items:center;gap:20px;margin:25px 0;display:flex}.admin-tools input{max-width:450px;margin:0}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:16px 12px}th{color:var(--muted);font-size:10px}.admin-empty,.admin-notice{background:#eef0e5;padding:30px;font-size:13px;line-height:1.8}.admin-notice{margin-bottom:20px}.admin-notice h3{font-size:30px}.settings-form{max-width:650px}.settings-form textarea{min-height:100px}.settings-form label{margin-bottom:20px}@media (width>=1500px){.hero-inner{padding-top:80px;padding-bottom:75px}}@media (width<=800px){.nav{height:75px;padding:0 6%}.nav nav{gap:20px}.nav nav>a:not(.nav-rsvp){display:none}.hero-inner{gap:30px;padding:45px 6%}.hero h1{font-size:64px}.portrait{height:380px}.hero .eyebrow{font-size:7px}.hero-bottom{padding:19px 6%;font-size:6px}.section{padding:65px 6%}.rsvp{gap:35px}.rsvp-intro h2{font-size:49px}.form-card{padding:25px}.form-heading span{display:none}.details>div{padding:5px 20px}.details h3{font-size:24px}}@media (width<=580px){.brand i{display:none}.nav-rsvp{padding:11px;font-size:9px}.hero-inner{grid-template-columns:1fr;gap:38px;padding-top:38px}.hero-copy{text-align:center}.hero .eyebrow{letter-spacing:1.5px;justify-content:center}.hero h1{max-width:360px;margin:25px auto;font-size:68px}.hero h1 em{padding:0;font-size:38px}.hero-line{margin:22px auto}.invitation{max-width:300px;margin:auto;font-size:12px}.hero-date{margin:20px 0}.portrait-wrap{width:78%;max-width:310px;margin:0 auto 6px}.portrait{height:350px}.monogram{font-size:76px}.seal{width:72px;height:72px;bottom:39px;left:-19px}.photo-caption{font-size:16px}.hero-bottom{justify-content:center;gap:15px}.hero-bottom a{display:none}.section-heading h2{font-size:40px}.section-heading p:not(.eyebrow){font-size:11px}.details{grid-template-columns:1fr;gap:28px;margin-top:35px}.details>div+div{border-left:0;border-top:1px solid var(--line);padding-top:30px}.details h3{font-size:28px}.rsvp{grid-template-columns:1fr;gap:30px}.rsvp-intro{text-align:center;padding:0}.rsvp-intro h2{margin:18px 0;font-size:48px}.rsvp-intro h2 br{display:none}.rsvp-intro>p:not(.eyebrow){max-width:310px;margin:auto}.rsvp-note{display:none}.form-card{padding:26px 22px}.form-heading span{display:block}.empty-gifts h3{font-size:29px}.empty-gifts p{font-size:10px}.gift-grid{grid-template-columns:1fr}footer{flex-direction:column;gap:13px;padding:28px 6%}footer p{font-size:16px}.admin{padding:22px}.admin h1{font-size:38px}.stats{gap:8px}.stats>div{padding:14px}.stats span{font-size:9px}.tabs{gap:5px}.tabs button{font-size:11px}.admin-tools{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.rays{background:radial-gradient(at 100% 0,#e8deb530,#0000 70%)}}@media (width<=580px){label{font-size:12px}input,textarea{font-size:16px}.consent,.companions>p,.form-foot,small{font-size:10px}.add-companion,.submit{font-size:12px}.rsvp-intro>p:not(.eyebrow){font-size:13px}.rays{opacity:.28}.hero .eyebrow{color:#fff9e8}.hero h1{text-shadow:0 2px 18px #26362118}}.portrait img{object-position:center 42%}.login-page{background:radial-gradient(at 100% 0,#e5ddbb80,#0000 65%),#edf0e5;justify-content:center;align-items:center;min-height:100svh;padding:30px 6%;display:flex}.login-back{align-items:center;gap:8px;font-size:12px;display:flex;position:absolute;top:30px;left:6%}.login-card{text-align:center;background:#fffefa;border:1px solid #dfe3d4;border-radius:8px;width:100%;max-width:420px;margin:65px 0 30px;padding:42px;box-shadow:0 20px 80px #44513208}.login-icon{border:1px solid #d8ddcb;border-radius:50%;margin-bottom:24px;padding:18px;display:inline-flex}.login-card h1{margin:13px 0;font-size:45px}.login-subtitle{color:var(--muted);margin-bottom:32px;font-size:12px}.login-card label{text-align:left;font-size:12px}.login-card input{font-size:16px}.password-field{position:relative}.password-field input{padding-right:44px}.password-field button{color:var(--olive);background:0 0;border:0;padding:4px;position:absolute;top:12px;right:10px}.login-message{color:#687454;margin:16px 0;font-size:12px}.forgot{margin:20px auto 5px}.login-card .submit{font-size:12px}@media (width<=580px){.login-card{padding:30px 24px}}
