:root { --ink:#1f1c1a; --cream:#f7f3ea; --paper:#fffdf9; --clay:#a74e38; --soft-clay:#d7a297; --line:rgba(31,28,26,.16); --display:'Playfair Display', Georgia, serif; --sans:'DM Sans', Arial, sans-serif; --mono:'DM Mono', monospace; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:var(--sans); overflow-x:hidden; }
button, input { font:inherit; }
button { cursor:pointer; }
.ambient { position:absolute; border-radius:50%; filter:blur(1px); pointer-events:none; z-index:-1; }
.ambient-one { width:530px; height:530px; background:#eedbc9; top:60px; right:-190px; }
.ambient-two { width:390px; height:390px; background:#e8ceb9; top:980px; left:-260px; }
.site-header { height:86px; max-width:1320px; margin:auto; padding:0 46px; display:flex; align-items:center; justify-content:space-between; }
.brand { color:var(--ink); text-decoration:none; font-family:var(--display); font-size:29px; letter-spacing:-1.7px; font-weight:700; }.brand span{color:var(--clay)}
nav { display:flex; gap:31px; margin-left:100px; } nav a { color:var(--ink); text-decoration:none; font-size:13px; font-weight:600; }
.header-cta { background:none; border:0; color:var(--ink); font-size:13px; font-weight:700; }.header-cta span{color:var(--clay);font-size:16px;margin-left:5px}
.hero { min-height:640px; max-width:1228px; margin:0 auto; padding:82px 0 65px; display:grid; grid-template-columns:1.06fr .94fr; align-items:center; }
.eyebrow { font:500 10px var(--mono); letter-spacing:1.3px; text-transform:uppercase; margin:0 0 19px; display:flex; align-items:center; gap:8px; }.eyebrow span { display:inline-block; width:17px; height:1px; background:var(--clay); }
h1,h2,h3,p { margin-top:0; }.hero h1 { font:500 clamp(58px,5.9vw,82px)/.99 var(--display); letter-spacing:-4.5px; margin:0 0 25px; }.hero h1 em,.maker-intro h2 em { color:var(--clay); font-weight:500; }
.hero-description { max-width:370px; color:#5b5550; font-size:15px; line-height:1.65; margin-bottom:28px; }.hero-actions { display:flex; align-items:center; gap:26px; }
.primary-button,.cream-button { border:0; background:var(--clay); color:#fffdf8; padding:14px 19px; min-height:47px; font-size:12px; font-weight:700; }.primary-button span,.cream-button span { font-size:17px;margin-left:20px; }.text-button { border:0; background:none; padding:10px 0; font-size:12px;font-weight:700; }.text-button span { color:var(--clay); margin-left:7px;font-size:16px; }
.social-proof { margin-top:43px; display:flex; gap:14px; align-items:center; }.avatars { display:flex; }.avatar { display:grid; place-items:center; height:31px; width:31px; border-radius:50%; border:2px solid var(--cream); color:white; font:bold 10px var(--mono); margin-left:-8px; }.avatar:first-child{margin:0}.a1{background:#895348}.a2{background:#38464a}.a3{background:#b68c5e}.a4{background:#5c6540}.social-proof p{font-size:11px;line-height:1.4;margin:0;color:#5c5650}.social-proof strong{color:var(--ink)}
.hero-art { height:500px; position:relative; display:grid; place-items:center; }.arch { position:absolute; bottom:8px; left:50%; transform:translateX(-50%); border-radius:250px 250px 0 0; }.arch-back { height:430px;width:328px;background:#deae98; }.arch-front { height:345px;width:255px;background:#f4e2d3; }.sun{position:absolute; width:120px;height:120px;border-radius:50%;background:#e8c05e;top:55px;right:78px}.flower{position:absolute;font-size:73px;color:#ba5e46;line-height:1}.flower-one{top:20px;left:66px}.flower-two{bottom:42px;right:23px;color:#7b9365;font-size:100px}.flower-three{top:118px;right:0;color:#f6f0e5;font-size:55px}
.invitation-card { width:310px; height:387px; background:#f9f1e6; z-index:2; text-align:center; padding:75px 24px 20px; box-shadow:0 20px 45px rgba(59,34,24,.15); position:relative; }.wedding-card:before,.wedding-card:after { content:'✦'; position:absolute; color:#aa543e; font-size:28px; }.wedding-card:before{top:25px;left:29px}.wedding-card:after{right:29px;bottom:20px}.invite-kicker{font:10px var(--mono);letter-spacing:1.4px;text-transform:uppercase;color:#8b5549}.invitation-card h2{font:500 42px/.92 var(--display);letter-spacing:-2.4px;margin:17px 0 20px}.invitation-card h2 i{color:var(--clay);font-size:25px}.card-rule,.preview-rule{width:35px;height:1px;background:var(--clay);margin:0 auto 18px}.card-date,.card-location{font:9px/1.8 var(--mono);letter-spacing:.4px;margin:0}.card-location{color:#725f56}.card-mark{display:block;margin-top:25px;color:#b75741}.theme-label{position:absolute;bottom:-28px;left:50%;transform:translateX(-50%);font:10px var(--mono);white-space:nowrap;text-transform:uppercase;letter-spacing:1.1px}.theme-label span{display:inline-block;width:16px;height:1px;background:var(--clay);vertical-align:middle;margin-right:7px}
.theme-section { max-width:1320px; margin:0 auto; padding:89px 46px 110px; }.section-heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:37px; }.section-heading h2,.maker-intro h2 { font:500 46px/.98 var(--display); letter-spacing:-2.5px; margin:0; }.section-heading>p { width:355px; margin:0 32px 4px 0; font-size:13px;line-height:1.6;color:#665f59; }
.theme-grid { display:grid;grid-template-columns:repeat(4,1fr); gap:14px; }.theme-tile{border:1px solid transparent;background:#ede2d8;height:312px;position:relative;text-align:left;padding:0;overflow:hidden;transition:transform .25s, border-color .25s}.theme-tile:hover,.theme-tile.active{transform:translateY(-5px);border-color:var(--ink)}.theme-art{height:230px;display:block;position:relative;overflow:hidden}.theme-number,.theme-name,.tile-arrow{position:absolute;bottom:18px}.theme-number{left:17px;font:9px var(--mono);color:#746d66}.theme-name{left:48px;font-size:13px;font-weight:700}.tile-arrow{right:17px;font-size:17px;color:var(--clay)}
.wedding-art{background:#cf8f79}.wedding-art i{position:absolute;width:180px;height:180px;border:40px solid #f3d8c4;border-bottom:0;border-radius:180px 180px 0 0;bottom:-1px;left:50%;transform:translateX(-50%)}.wedding-art b{position:absolute;font-size:60px;left:28px;top:30px;color:#c35a43}.wedding-art em{position:absolute;font-size:65px;right:24px;bottom:10px;color:#74835d;font-style:normal}.halloween-art{background:#2b272d}.halloween-art:before{content:'';position:absolute;width:230px;height:230px;border-radius:50%;background:#d76537;left:calc(50% - 115px);bottom:-125px}.halloween-art i{color:#f4c55c;font:110px var(--display);position:absolute;top:18px;right:22px}.halloween-art b{color:#f6e6cb;position:absolute;left:35px;top:32px;font-size:30px}.halloween-art em{color:#b4afc1;position:absolute;bottom:30px;left:30px;font-size:70px;font-style:normal}.birthday-art{background:#c6d5c2}.birthday-art:before{content:'';position:absolute;width:140px;height:260px;background:#f6d3b8;border-radius:100% 100% 0 0;bottom:-50px;left:67px}.birthday-art i,.birthday-art b,.birthday-art em{position:absolute;border-radius:50%;color:#d86c58;font-size:55px}.birthday-art i{left:27px;top:25px}.birthday-art b{right:37px;top:56px;color:#e4aa44}.birthday-art em{right:67px;bottom:4px;color:#759178}.shower-art{background:#e6c5d0}.shower-art:before{content:'';position:absolute;width:180px;height:180px;border-radius:50%;background:#f5eadc;bottom:-55px;left:58px}.shower-art i,.shower-art b,.shower-art em{position:absolute;font-style:normal}.shower-art i{color:#bf6a77;font-size:70px;left:35px;top:34px}.shower-art b{color:#f1eaad;font-size:70px;right:23px;top:48px}.shower-art em{color:#9c6d84;font-size:48px;right:52px;bottom:30px}
.maker-section { background:#e9ddd1; padding:99px max(46px,calc((100vw - 1228px)/2)) 104px; display:grid; grid-template-columns:.77fr 1.23fr; gap:70px; }.maker-intro{padding-top:12px}.maker-intro>p:not(.eyebrow){color:#625b54;font-size:14px;line-height:1.7;max-width:290px;margin-top:24px}.step-list{margin-top:39px}.step{display:flex;align-items:center;gap:13px;border-bottom:1px solid rgba(31,28,26,.12);padding:13px 0;opacity:.47}.step.active-step{opacity:1}.step>span{height:24px;width:24px;display:grid;place-items:center;border:1px solid var(--ink);border-radius:50%;font:10px var(--mono)}.active-step>span{background:var(--clay);border-color:var(--clay);color:white}.step p{margin:0;display:flex;flex-direction:column;gap:1px}.step strong{font-size:12px}.step small{font-size:10px;color:#716961}
.builder-shell{background:#fffdf9;box-shadow:0 15px 30px rgba(79,52,41,.12);min-width:0}.builder-bar{height:37px;border-bottom:1px solid #e8e1da;display:flex;align-items:center;padding:0 13px;gap:5px}.builder-dot{width:7px;height:7px;border-radius:50%}.red{background:#df8a7c}.yellow{background:#edc47c}.green{background:#96b68b}.builder-bar p{font:9px var(--mono);margin:0 auto;color:#918981}.lock{font-size:14px;color:#a09992}.builder-content{display:grid;grid-template-columns:1.08fr .92fr;min-height:445px}.event-form{padding:27px 25px 23px;border-right:1px solid #e9e2db}.event-form label,.form-label{display:block;font-size:10px;font-weight:700;margin-bottom:7px}.form-label{margin-bottom:9px}.theme-choices{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:22px}.choice{border:1px solid #e5ddd6;background:white;font-size:9px;text-align:left;padding:8px 7px;color:#6d665f;white-space:nowrap}.choice.selected{border-color:var(--clay);color:var(--ink);background:#fff9f5}.choice span{font-size:12px;color:var(--clay);margin-right:3px}.event-form input{width:100%;border:1px solid #ded7d0;background:#fffefb;padding:10px 9px;color:var(--ink);font-size:11px;margin-bottom:16px;outline-color:var(--clay)}.input-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}.create-button{width:100%;margin-top:1px;padding:11px 13px;min-height:41px;font-size:10px}.form-message{height:12px;color:#7a4236;font-size:9px;margin:7px 0 0;text-align:center}.preview-wrap{background:#f7f1e8;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;padding:28px 15px 21px}.preview-label{position:absolute;top:15px;left:19px;text-transform:uppercase;letter-spacing:.8px;font:8px var(--mono);color:#736a62}.preview-label span{font-size:7px;color:#6b9d74;margin-left:4px}.live-card{width:min(215px,100%);height:300px;background:#f7e9dc;text-align:center;padding:50px 15px 20px;position:relative;box-shadow:0 10px 22px rgba(83,53,36,.1);transition:background .3s,color .3s}.live-card p{font:8px var(--mono);letter-spacing:.5px;line-height:1.8;margin:0}.live-card h3{font:500 28px/.96 var(--display);letter-spacing:-1.4px;margin:15px 0}.live-card h3 i{color:var(--clay);font-size:17px}.preview-rule{margin-bottom:13px}.live-card button{position:absolute;bottom:19px;left:50%;transform:translateX(-50%);border:0;background:transparent;color:inherit;font:700 8px var(--mono);letter-spacing:1.2px;border-bottom:1px solid currentColor;padding:0 0 3px}.card-decoration{position:absolute;font-size:20px;color:#bf624e}.deco-left{top:19px;left:18px}.deco-right{bottom:16px;right:18px}.theme-halloween{background:#312a34;color:#f8e5c8}.theme-halloween h3 i,.theme-halloween .card-decoration{color:#ec8750}.theme-halloween .preview-rule{background:#ec8750}.theme-birthday{background:#d9e2d2;color:#313b32}.theme-birthday h3 i,.theme-birthday .card-decoration{color:#cb6c5b}.theme-birthday .preview-rule{background:#cb6c5b}.theme-shower{background:#ebd0d9;color:#624653}.theme-shower h3 i,.theme-shower .card-decoration{color:#b26779}.theme-shower .preview-rule{background:#b26779}
.rsvp-section { min-height:430px;background:#353c35;color:#f7f0e7;text-align:center;padding:91px 20px 75px;position:relative;overflow:hidden}.rsvp-section:before,.rsvp-section:after{content:'✦';position:absolute;font-size:220px;color:#485345;opacity:.65}.rsvp-section:before{left:-25px;top:70px}.rsvp-section:after{right:-42px;bottom:-100px}.light{justify-content:center;color:#ddd5c9}.light span{background:#d6bd76}.rsvp-section h2{font:500 51px/.98 var(--display);letter-spacing:-2.8px;margin:0 0 17px;position:relative;z-index:1}.rsvp-section>p:not(.eyebrow){font-size:14px;line-height:1.6;max-width:420px;margin:0 auto 26px;color:#d4d0c9;position:relative;z-index:1}.cream-button{background:#f7eee4;color:#273228;position:relative;z-index:1}
footer{height:102px;max-width:1228px;margin:auto;padding:0 0;display:flex;align-items:center;justify-content:space-between}footer p{font-size:10px;color:#766e66;margin:0}
dialog{border:0;background:#fffaf3;width:min(440px,calc(100% - 32px));padding:42px;box-shadow:0 25px 70px rgba(27,18,15,.28);text-align:center}dialog::backdrop{background:rgba(30,27,24,.5);backdrop-filter:blur(2px)}dialog h2{font:500 40px/.98 var(--display);letter-spacing:-2px;margin-bottom:10px}dialog>p:not(.eyebrow){font-size:12px;color:#655c55;margin-bottom:25px}.close-dialog{position:absolute;top:13px;right:16px;border:0;background:none;font-size:27px;color:#6b6058}.attendance-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:22px}.attending{border:1px solid #ded3c8;background:transparent;padding:10px 4px;font-size:10px}.attending.selected{border-color:var(--clay);background:#fdf2eb}.attending+ .attending{}.dialog .primary-button{width:100%}#rsvp-confirmation{margin:11px 0 0;color:#a74e38;font-size:11px;min-height:12px}
.account-dialog{text-align:left}.account-dialog h2{margin:0 0 12px}.account-dialog label{display:block;font-size:11px;font-weight:700;margin:15px 0 7px}.account-dialog input{width:100%;background:#fffefb;border:1px solid #ded7d0;padding:12px 10px;font-size:13px;outline-color:var(--clay)}.account-dialog .primary-button{margin-top:19px;width:100%}.account-note{font-size:10px!important;margin:14px 0 0!important;text-align:center}
@media (max-width: 820px){.site-header{padding:0 22px;height:70px}.site-header nav{display:none}.header-cta{font-size:11px}.hero{padding:48px 25px 78px;grid-template-columns:1fr;min-height:0}.hero h1{font-size:61px}.hero-art{margin-top:35px;height:430px}.theme-section{padding:65px 22px}.section-heading{display:block}.section-heading>p{width:auto;margin:15px 0 0}.theme-grid{grid-template-columns:1fr 1fr}.maker-section{padding:65px 22px;grid-template-columns:1fr;gap:36px}.builder-content{grid-template-columns:1fr}.event-form{border-right:0;border-bottom:1px solid #e9e2db}.preview-wrap{min-height:370px}footer{margin:0 22px}.rsvp-section h2{font-size:45px}}
@media (max-width: 480px){.header-cta{display:none}.hero{padding-left:20px;padding-right:20px}.hero h1{font-size:52px;letter-spacing:-3px}.hero-art{transform:scale(.9);margin:-8px 0 -15px}.theme-section{padding-left:16px;padding-right:16px}.theme-grid{gap:8px}.theme-tile{height:230px}.theme-art{height:164px}.theme-name{left:12px;bottom:10px;font-size:11px}.theme-number{top:175px;bottom:auto;left:12px}.tile-arrow{bottom:8px;right:10px}.maker-section{padding-left:16px;padding-right:16px}.builder-content{display:block}.input-row{grid-template-columns:1fr}.rsvp-section{padding-left:16px;padding-right:16px}footer{height:130px;align-items:flex-start;padding-top:25px;flex-wrap:wrap;gap:10px}footer p:first-of-type{width:100%;order:3}.invitation-card{transform:scale(.9)}}
