/* Brand tokens. Radius: buttons 8px, surfaces 16px, phone 36px.
   Layers: header 10, mobile tabs 12, dialog native top layer, toast 30.
   DESIGN_VARIANCE 7 / MOTION_INTENSITY 6 / VISUAL_DENSITY 3. */
:root{color-scheme:light;--bg:#fff9fb;--surface:#fffdfd;--soft:#fbedf3;--text:#4b3340;--muted:#7b6570;--accent:#f0bfd3;--accent-ink:#582a3d;--accent-text:#94516e;--line:#f0dce5;--shadow:0 24px 70px #70365014;--danger:#a52b39}
:root[data-theme=dark]{color-scheme:dark;--bg:#261820;--surface:#33232b;--soft:#412c36;--text:#f4e8ee;--muted:#c9afbc;--accent:#e6a9c2;--accent-ink:#351a28;--accent-text:#e6a9c2;--line:#654351;--shadow:0 24px 70px #170b1245;--danger:#ffa6ae}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#261820;--surface:#33232b;--soft:#412c36;--text:#f4e8ee;--muted:#c9afbc;--accent:#e6a9c2;--accent-ink:#351a28;--accent-text:#e6a9c2;--line:#654351;--shadow:0 24px 70px #170b1245;--danger:#ffa6ae}}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 'Segoe UI',Arial,sans-serif}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.15;letter-spacing:-.045em}h1{font-size:clamp(32px,4vw,50px);font-weight:650}h2{font-size:clamp(28px,3.4vw,42px);font-weight:600}h3{font-size:22px}p{color:var(--muted)}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button:disabled{opacity:.6;cursor:wait}[hidden]{display:none!important}.container{width:min(1200px,calc(100% - 80px));margin-inline:auto}.section{padding-block:88px}.muted,.small-muted{color:var(--muted)}.small-muted{font-size:13px;line-height:1.6;margin-top:16px}.small-muted a{text-decoration:underline}.text-link{font-size:14px;font-weight:600;display:inline-flex;gap:10px;align-items:center}.text-link:hover{color:var(--accent)}.skip{position:fixed;left:15px;top:-100px;background:var(--surface);padding:10px;z-index:100}.skip:focus{top:10px}
.header{position:sticky;top:0;background:var(--bg);border-bottom:1px solid var(--line);z-index:10}.nav{height:78px;display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{display:flex;gap:0;align-items:center;font-size:21px;letter-spacing:-.8px;font-weight:750;white-space:nowrap}.brand-mark{display:grid;place-items:center;background:var(--accent);color:var(--accent-ink);width:34px;height:34px;border-radius:8px;margin-right:9px;font-size:24px;font-weight:500}.brand-id{color:var(--muted);font-weight:400}.nav nav,.nav-actions{display:flex;align-items:center;gap:27px}.nav nav a,.login-link{font-size:13px;font-weight:600;white-space:nowrap}.nav nav a:hover{color:var(--accent)}.nav-actions{gap:18px}.nav-logout{margin:0;display:flex}.nav-logout button.login-link{border:0;background:transparent;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:6px;color:var(--accent-text)}.nav-logout .ui-icon{width:17px;height:17px}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:0 0 40px;padding:0;border:1px solid var(--line);border-radius:11px;background:var(--soft);color:var(--accent-text);cursor:pointer;transition:border-color .15s,background .15s}.theme-toggle:hover{border-color:var(--accent-text);background:var(--accent)}.theme-toggle .ui-icon{width:19px;height:19px;margin:0}.button{display:inline-flex;justify-content:center;align-items:center;gap:18px;background:var(--accent);color:var(--accent-ink);border:1px solid var(--accent);border-radius:8px;padding:14px 23px;font-weight:600;font-size:14px;line-height:1.3;min-height:48px;white-space:nowrap;transition:transform .22s,background .22s,box-shadow .22s}.button:hover{transform:translateY(-2px);box-shadow:0 8px 22px #70365020}.button:active{transform:translateY(0) scale(.98)}.button.outline{background:transparent;color:var(--text);border-color:var(--line)}.button.outline:hover{border-color:var(--accent)}.button.small{padding:11px 17px;min-height:42px;font-size:13px}.button.full{width:100%}
.hero{display:grid;grid-template-columns:1.06fr 1fr;gap:40px;align-items:center;min-height:660px;padding-block:55px}.hero-copy{padding-bottom:35px}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--accent-text);font-weight:650;margin-bottom:25px}.hero h1{font-size:clamp(38px,4.7vw,65px);letter-spacing:-3px;line-height:1.08;margin-bottom:26px}.hero-description{font-size:17px;max-width:390px;line-height:1.8;margin-bottom:33px}.hero-actions{display:flex;gap:22px;align-items:center}.hero-art{height:540px;position:relative;display:flex;align-items:center;justify-content:center;isolation:isolate}.hero-ring{position:absolute;width:440px;height:440px;border-radius:50%;background:var(--soft);z-index:-1}.hero-phone{width:267px;height:510px;border:7px solid #fff5f9;background:#fff5f9;border-radius:36px;overflow:hidden;box-shadow:0 30px 60px #70365029;transform:rotate(6deg) translate(30px,-8px);transition:transform .6s cubic-bezier(.16,1,.3,1)}.hero-phone:hover{transform:rotate(1deg) translate(30px,-14px)}.hero-phone iframe{width:100%;height:100%;border:0;border-radius:28px}.mini-invite{background:var(--invite-paper);color:var(--invite-color);text-align:center;border:1px solid #744b5820;padding:36px 15px;border-radius:16px}.side-card{position:absolute;left:12px;top:119px;width:205px;min-height:325px;transform:rotate(-10deg);box-shadow:0 15px 35px #70365017;z-index:-1}.mini-invite p{color:inherit;font-size:11px}.mini-invite .invite-kicker{font-size:8px;letter-spacing:2px}.mini-invite h2{font:40px/1.05 Georgia,serif;letter-spacing:-1px;margin:25px 0}.mini-invite h2 span{font-size:20px;font-style:italic}.mini-invite a{font-size:8px;padding:8px 13px;display:inline-block;border:1px solid #744b5855;border-radius:5px}.hero-caption{position:absolute;bottom:5px;left:15px;display:flex;align-items:center;gap:14px;transform:rotate(-4deg)}.caption-line{width:35px;height:1px;background:var(--accent)}.hero-caption p{font-size:12px;margin:0}.benefit-strip{border-block:1px solid var(--line);padding:24px 0;display:flex;justify-content:space-between;gap:16px;font-size:13px;color:var(--muted)}.benefit-strip span:before{content:'✓';margin-right:10px;color:var(--accent)}
.section-head{max-width:650px;margin-bottom:35px}.section-head h2{margin-bottom:16px}.section-head p{margin:0;max-width:510px}.catalog-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:34px}.filters{display:flex;gap:8px;flex-wrap:wrap}.filter{background:transparent;color:var(--muted);border:1px solid var(--line);padding:10px 19px;border-radius:8px;font-size:13px;min-height:44px;transition:background .2s,color .2s}.filter.active{background:var(--accent);border-color:var(--accent-text);color:var(--bg)}#catalog-count{font-size:12px;color:var(--muted);white-space:nowrap}.catalog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:42px 28px}.template-card{min-width:0}.template-art{position:relative;background:var(--invite-paper);height:365px;border-radius:16px;overflow:hidden;display:flex;justify-content:center;align-items:center;transition:transform .35s,box-shadow .35s}.template-art:hover{transform:translateY(-6px);box-shadow:var(--shadow)}.template-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.template-art.botanical img,.template-art.blush img{object-position:center 30%;opacity:.8}.template-art:has(img):after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 20%,#13291fb0);pointer-events:none}.template-paper{z-index:1;text-align:center;width:78%;padding:24px 14px;background:var(--invite-paper);color:var(--invite-color);border:1px solid color-mix(in srgb,var(--invite-color) 25%,transparent);outline:7px solid color-mix(in srgb,var(--invite-paper) 60%,transparent);max-width:260px;transition:transform .45s}.template-art:hover .template-paper{transform:scale(1.025)}.template-paper p{font-size:8px;letter-spacing:2px;color:inherit;margin-bottom:24px}.template-paper h3{font:34px/1.2 Georgia,serif;letter-spacing:-1.2px;margin-bottom:23px}.template-paper h3 span{display:block;font-size:20px;font-style:italic;margin:5px}.sample-date{font-size:9px;letter-spacing:2px}.paper-rule{display:block;width:35px;height:1px;background:var(--invite-color);margin:22px auto}.template-paper small{font-size:10px;line-height:1.8;display:block}.template-art.botanical .template-paper,.template-art.blush .template-paper{position:absolute;bottom:24px;width:76%;padding:17px}.template-art.botanical .template-paper h3,.template-art.blush .template-paper h3{font-size:29px;margin:8px 0 12px}.template-art.botanical .template-paper h3 span,.template-art.blush .template-paper h3 span{display:inline;font-size:20px}.template-art.botanical .template-paper p,.template-art.blush .template-paper p{margin-bottom:8px}.template-art.botanical .paper-rule,.template-art.blush .paper-rule,.template-art.botanical small,.template-art.blush small{display:none}.template-art.midnight{background:#222e42}.template-art.midnight .template-paper{background:#222e42;color:#e8e7d5;border-color:#b9c2d355;outline-color:#b9c2d315}.template-art.heritage{background:repeating-linear-gradient(45deg,#6c51350c 0 1px,transparent 1px 15px),var(--invite-paper)}.template-art.portrait .template-paper{background:transparent;border:none;outline:none;color:#fdfdf7;position:absolute;bottom:15px}.template-art.portrait .template-paper p{color:inherit}.template-meta{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:20px}.category{font-size:11px;color:var(--muted)}.template-meta h3{font-size:20px;letter-spacing:-.5px;margin:6px 0 0}.price{font-size:13px;font-weight:650;white-space:nowrap}.template-description{font-size:12px;margin:12px 0 20px}.template-actions{display:flex;gap:10px}.template-actions .button{flex:1;padding-inline:14px;font-size:12px;gap:12px}
.how{background:var(--soft)}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;list-style:none;padding:0;margin:50px 0 0}.steps li{border-top:1px solid var(--line);padding-top:25px}.step-number{font-size:14px;color:var(--accent-text);display:block;margin-bottom:25px}.steps h3{font-size:23px}.steps p{font-size:14px;max-width:270px;margin:0}.feature-section{display:grid;grid-template-columns:.9fr 1fr;gap:100px;align-items:center}.feature-photo{height:480px;border-radius:16px;overflow:hidden}.feature-photo img{width:100%;height:100%;object-fit:cover;object-position:center 35%}.feature-copy>p{margin-bottom:35px}.feature-copy dl{display:grid;grid-template-columns:1fr 1fr;gap:26px}.feature-copy dt{font-weight:650;font-size:14px}.feature-copy dd{margin:8px 0 0;font-size:13px;line-height:1.6;color:var(--muted)}.pricing{padding-top:15px}.pricing-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.plan{padding:34px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.plan.premium{background:var(--soft);border-color:var(--accent)}.plan>span{font-size:12px;color:var(--muted)}.plan h3{font-size:28px;margin:12px 0 20px}.plan-price{font-size:35px;font-weight:600;color:var(--text);letter-spacing:-1px}.plan-price small{font-size:12px;font-weight:400;letter-spacing:0;color:var(--muted)}.plan>p:not(.plan-price){font-size:14px;max-width:400px;margin-bottom:27px}.faq{padding-top:0;display:grid;grid-template-columns:.7fr 1fr;gap:50px}.faq details{border-bottom:1px solid var(--line);padding:20px 0}.faq summary{font-size:15px;cursor:pointer;display:flex;justify-content:space-between;gap:20px;list-style:none}.faq summary:after{content:'+';font-size:23px;line-height:1}.faq details[open] summary:after{content:'−'}.faq details p{font-size:14px;max-width:560px;margin:20px 0 0}.footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-block:30px;border-top:1px solid var(--line)}.footer .brand{font-size:16px}.footer p,.footer>span{font-size:11px;margin:0;color:var(--muted)}
label{display:block;font-size:13px;font-weight:600;margin-bottom:20px}input,textarea,select{display:block;width:100%;margin-top:8px;background:var(--surface);border:1px solid var(--line);border-radius:8px;color:var(--text);padding:12px 14px;min-height:48px;font-size:16px;outline-offset:2px}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.85}input:focus,textarea:focus,select:focus{border-color:var(--accent)}textarea{resize:vertical;min-height:95px}.notice{background:var(--soft);padding:16px 18px;border:1px solid var(--line);border-radius:8px;color:var(--text);font-size:13px;margin:20px 0}.notice.error,.form-error{color:var(--danger)}.form-error{font-size:13px}.auth-layout{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center;padding-block:55px;min-height:calc(100dvh - 180px)}.auth-visual{height:610px;position:relative;overflow:hidden;border-radius:16px;isolation:isolate}.auth-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 25%,#4c1b35cc);z-index:0}.auth-visual img{width:100%;height:100%;object-fit:cover}.auth-visual>div{position:absolute;bottom:40px;left:40px;right:20px;z-index:1;color:#fbfcf7}.auth-visual p{color:#fff0f6;font-size:13px}.auth-visual h2{font-size:42px}.auth-form{max-width:420px}.auth-form>.text-link{margin-bottom:35px}.auth-form h1{font-size:35px;max-width:350px;margin-bottom:18px}.auth-form>p{font-size:14px;margin-bottom:30px}.password-field{position:relative}.password-field input{padding-right:65px}.show-password{position:absolute;right:10px;top:8px;bottom:8px;border:0;background:transparent;color:var(--accent-text);font-size:12px}.auth-bottom{font-size:13px;text-align:center;margin-top:27px}.auth-bottom a{font-weight:650;color:var(--accent)}.checkout{display:grid;grid-template-columns:1.1fr .85fr;gap:110px;align-items:start}.checkout h1{margin-top:30px;font-size:42px}.checkout-form{margin-top:35px;max-width:460px}.order-summary{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:25px}.summary-preview{height:170px;background:var(--invite-paper);color:var(--invite-color);text-align:center;display:flex;flex-direction:column;justify-content:center;margin-bottom:25px;border-radius:8px}.summary-preview p,.summary-preview span{font-size:9px;letter-spacing:2px;color:inherit}.summary-preview h2{font:34px Georgia,serif;margin:8px 0 16px}.order-summary>h2{font-size:25px;margin:8px 0 12px}.order-summary>p{font-size:13px}.order-summary dl>div,.status-box dl>div{display:flex;justify-content:space-between;gap:20px;margin-bottom:16px;font-size:13px}.order-summary dd,.status-box dd{margin:0;text-align:right}.order-summary dt,.status-box dt{color:var(--muted)}.total{border-top:1px solid var(--line);display:flex;justify-content:space-between;padding-top:20px}.total strong{font-size:23px}.status-page{max-width:650px;text-align:center;min-height:65dvh}.status-page h1{font-size:40px}.status-symbol{border:1px solid var(--line);border-radius:50%;width:70px;height:70px;display:grid;place-items:center;margin:0 auto 25px;font-size:32px;color:var(--accent)}.status-box{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:30px;margin-top:35px;text-align:left}.status-box dd{overflow-wrap:anywhere}.dashboard-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:40px}.dashboard-heading h1{font-size:40px}.dashboard-heading p{margin-bottom:10px}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.dashboard-card{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--surface)}.dashboard-preview{padding:40px;background:var(--invite-paper);color:var(--invite-color);text-align:center}.dashboard-preview span{font-size:12px}.dashboard-preview h2{font:40px Georgia,serif;margin:20px 0}.dashboard-preview p{color:inherit;font-size:12px;margin:0}.dashboard-card-body{padding:25px}.dashboard-card-body h2{font-size:25px;margin:15px 0}.dashboard-card-body p{font-size:13px}.badge{font-size:11px;background:var(--soft);padding:6px 10px;border-radius:8px}.new-invite{min-height:300px;border:1px dashed var(--line);border-radius:16px;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:30px;text-align:center}.new-invite>span{font-size:45px;color:var(--accent)}.new-invite h2{font-size:24px;margin:15px 0}.new-invite p{font-size:14px}.new-invite:hover{background:var(--soft)}
.editor-top{padding-block:28px;display:flex;justify-content:space-between;align-items:center;gap:20px}.editor-top h1{font-size:27px;margin:10px 0 0}.editor-top-actions{display:flex;align-items:center;gap:20px}#save-status{font-size:12px;color:var(--muted)}.mobile-tabs{display:none}.editor-layout{display:grid;grid-template-columns:minmax(300px,450px) 1fr;gap:45px;align-items:start;padding-bottom:60px}.editor-fields{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:25px}.editor-intro h2{font-size:23px;letter-spacing:-.5px}.editor-intro p{font-size:12px}.editor-fields details{border-top:1px solid var(--line)}.editor-fields summary{padding:20px 0;font-weight:650;font-size:14px;cursor:pointer}.field-content{padding:5px 0 20px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.editor-fields label{font-size:12px}.editor-fields input,.editor-fields textarea{font-size:14px}.editor-fields form>.button{margin:20px 0}.editor-preview{position:sticky;top:95px;display:flex;align-items:center;flex-direction:column;background:var(--soft);padding:20px;border-radius:16px}.preview-bar{width:100%;display:flex;justify-content:space-between;gap:12px;font-size:12px;margin-bottom:20px}.preview-bar a{font-size:12px}.preview-phone{width:330px;height:min(650px,calc(100dvh - 220px));min-height:450px;background:#fff5f9;border:7px solid #fff5f9;border-radius:36px;box-shadow:var(--shadow);overflow:hidden}.preview-phone iframe{width:100%;height:100%;border:0;border-radius:28px}.preview-note{font-size:11px;text-align:center;margin:20px 0 0;max-width:320px}.gallery-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.gallery-thumbs img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px}.responses article{border-bottom:1px solid var(--line);padding:12px 0}.responses p{font-size:12px;margin:5px 0}.upload-label input{padding:10px;font-size:12px}dialog{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:16px;padding:28px;width:min(500px,calc(100% - 32px));max-height:85dvh;overflow:auto;box-shadow:var(--shadow)}dialog::backdrop{background:#35172580;backdrop-filter:blur(4px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:15px}.dialog-head h2{font-size:25px;margin:0}.dialog-close{border:0;background:var(--soft);color:var(--text);border-radius:8px;min-width:44px;min-height:44px;font-size:25px}dialog>p{font-size:14px;margin-top:20px}.domain-prefix{display:block;font-size:11px;color:var(--muted);font-weight:400;margin-top:8px}#published-result{margin-top:25px}#published-result label{margin-top:20px}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);padding:14px 22px;background:var(--text);color:var(--bg);border-radius:8px;font-size:13px;z-index:30;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;max-width:calc(100% - 32px);text-align:center}.toast.visible{opacity:1;transform:translate(-50%,0)}
/* Motion communicates hierarchy, section arrival, and control feedback. */
.enter{animation:enter .9s cubic-bezier(.16,1,.3,1) both}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.2s}.delay-3{animation-delay:.3s}@keyframes enter{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.reveal{opacity:1;transform:none;transition:opacity .7s ease,transform .7s cubic-bezier(.16,1,.3,1)}.js-motion .reveal:not(.seen){opacity:0;transform:translateY(25px)}.template-card:nth-child(3n+2){transition-delay:.08s}.template-card:nth-child(3n+3){transition-delay:.16s}dialog[open]{animation:enter .3s ease both}
@media(max-width:1100px){.container{width:calc(100% - 48px)}.nav nav{gap:16px}.theme-toggle{display:none}.hero-actions{align-items:start;flex-direction:column;gap:18px}.hero-art{height:500px}.hero-phone{width:250px;height:480px;transform:rotate(5deg) translate(20px,-8px)}.side-card{width:180px;left:0}.hero-ring{width:350px;height:350px}.catalog-grid{gap:30px 20px}.template-art{height:320px}.feature-section{gap:60px}.auth-layout{gap:55px}.checkout{gap:55px}}
@media(max-width:767px){html{scroll-padding-top:75px}.container{width:calc(100% - 36px)}.section{padding-block:58px}.nav{height:66px;gap:10px}.brand{font-size:17px}.brand-mark{width:28px;height:28px;font-size:21px;margin-right:6px}.nav nav{display:none}.nav-actions{gap:14px}.nav-actions>.button{display:none}.login-link{font-size:13px;min-height:44px;display:flex;align-items:center}.nav-actions:has(a[href='/dashboard'])>.button{display:inline-flex}.hero{grid-template-columns:1fr;gap:0;padding-block:40px 25px;min-height:0}.hero-copy{padding-bottom:10px}.hero h1{font-size:clamp(40px,10vw,58px);letter-spacing:-2px;margin-bottom:20px}.hero .eyebrow{font-size:9px;letter-spacing:1.5px;margin-bottom:22px}.hero-description{font-size:15px;max-width:340px;line-height:1.7;margin-bottom:25px}.hero-actions{flex-direction:row;align-items:center;gap:15px}.hero-actions>.button{padding:13px 16px;gap:10px;font-size:12px}.hero-actions .text-link{font-size:11px;gap:5px}.hero-art{height:445px;margin-top:27px}.hero-phone{width:226px;height:418px;border-width:6px;transform:rotate(5deg) translate(28px,-5px);border-radius:30px}.hero-phone iframe{border-radius:24px}.hero-phone:hover{transform:rotate(2deg) translate(28px,-8px)}.hero-ring{width:320px;height:320px}.side-card{left:calc(50% - 167px);width:155px;top:95px;min-height:260px;padding:24px 10px}.mini-invite h2{font-size:30px;margin:20px 0}.hero-caption{left:10px;bottom:0}.hero-caption p{font-size:10px}.benefit-strip{display:grid;grid-template-columns:1fr 1fr;gap:14px;font-size:11px;padding-block:20px}.benefit-strip span:before{margin-right:7px}.section-head h2{font-size:30px;max-width:340px}.section-head p{font-size:14px}.catalog-controls{display:block;margin-bottom:25px}.filters{flex-wrap:nowrap;overflow-x:auto;margin-inline:-18px;padding-inline:18px;padding-bottom:8px;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.filter{padding:10px 17px;flex-shrink:0}.catalog-controls>span{display:block;margin-top:12px}.catalog-grid{grid-template-columns:1fr;gap:35px}.template-art{height:390px}.template-paper{max-width:250px}.template-meta h3{font-size:22px}.template-description{font-size:13px}.template-actions .button{font-size:13px;min-height:48px}.steps{grid-template-columns:1fr;gap:25px;margin-top:30px}.steps li{display:grid;grid-template-columns:35px 1fr;column-gap:18px;padding-top:20px}.step-number{grid-row:1/3;margin:0;font-size:17px}.steps h3{margin:0 0 10px;font-size:22px}.steps p{max-width:none;font-size:14px}.feature-section{grid-template-columns:1fr;gap:30px}.feature-photo{height:360px}.feature-copy h2{font-size:34px}.feature-copy>p{font-size:14px}.feature-copy dl{gap:25px 20px}.pricing{padding-top:0}.pricing-grid{grid-template-columns:1fr;gap:18px}.plan{padding:25px}.plan-price{font-size:32px}.faq{grid-template-columns:1fr;gap:0;padding-top:0}.faq .section-head{margin-bottom:0}.faq summary{font-size:14px;min-height:35px;align-items:center}.footer{flex-wrap:wrap;padding-block:25px;gap:10px}.footer>span{width:100%;margin-top:5px}.footer p{font-size:10px}.auth-layout{grid-template-columns:1fr;padding-block:35px;gap:0;min-height:calc(100dvh - 200px)}.auth-visual{display:none}.auth-form{max-width:500px;width:100%;margin:auto}.auth-form h1{font-size:34px}.auth-form>.text-link{margin-bottom:30px}.checkout{grid-template-columns:1fr;gap:30px;padding-top:35px}.checkout h1{font-size:34px}.checkout-form{max-width:none}.order-summary{grid-row:1;padding:20px}.summary-preview{height:135px}.order-summary dl{margin-top:20px}.checkout>div>h1{margin-top:25px}.status-page h1{font-size:34px}.status-box{padding:22px}.dashboard-heading h1{font-size:33px}.dashboard-heading{align-items:flex-start}.dashboard-heading>form{margin-top:5px}.dashboard-grid{grid-template-columns:1fr;gap:20px}.dashboard-card-body{padding:20px}.dashboard-preview{padding:28px}.dashboard-preview h2{font-size:34px}.dashboard-heading p{font-size:13px}.editor-top{padding-block:20px;align-items:flex-start;gap:10px}.editor-top h1{font-size:23px}.editor-top .text-link{font-size:12px}.editor-top-actions{flex-direction:column-reverse;align-items:end;gap:8px}.editor-top-actions .button{font-size:11px;padding:11px 12px}#save-status{font-size:10px}.mobile-tabs{display:flex;position:sticky;top:66px;z-index:12;background:var(--bg);border-block:1px solid var(--line);padding:7px 18px;gap:8px}.mobile-tabs button{flex:1;border:0;background:transparent;padding:12px 8px;border-radius:8px;color:var(--muted);font-size:13px;min-height:44px}.mobile-tabs button.active{background:var(--soft);color:var(--text);font-weight:650}.editor-layout{display:block;padding-top:18px}.editor-fields{padding:20px}.editor-fields input,.editor-fields textarea{font-size:16px}.field-row{grid-template-columns:1fr;gap:0}.editor-preview{display:none;position:relative;top:0;padding:0;background:transparent}.editor-layout.show-preview .editor-fields{display:none}.editor-layout.show-preview .editor-preview{display:flex}.preview-bar{margin-block:5px 15px}.preview-phone{width:100%;height:calc(100dvh - 225px);min-height:470px;border:0;border-radius:12px}.preview-phone iframe{border-radius:12px}.preview-note{font-size:11px;margin:15px 0}.toast{bottom:18px}dialog{padding:22px}dialog label input{font-size:16px}}
@media(max-width:370px){.hero-actions{flex-direction:column;align-items:start}.hero-art{height:420px}.hero-phone{width:210px;height:395px}.hero-ring{width:285px;height:285px}.side-card{left:0;width:145px}.template-art{height:355px}.brand{font-size:16px}.editor-top h1{font-size:21px}}
/* Photo samples show the outfit for every template, with the real invitation title below. */
.template-art:is(.ivory,.midnight,.heritage) .template-paper{position:absolute;bottom:24px;width:76%;padding:17px}
.template-art:is(.ivory,.midnight,.heritage) .template-paper h3{font-size:29px;margin:8px 0 12px}
.template-art:is(.ivory,.midnight,.heritage) .template-paper h3 span{display:inline;font-size:20px}
.template-art:is(.ivory,.midnight,.heritage) .template-paper p{margin-bottom:8px}
.template-art:is(.ivory,.midnight,.heritage) .paper-rule,.template-art:is(.ivory,.midnight,.heritage) small{display:none}
:focus-visible{outline-color:var(--accent-text)}
/* Keep the main message readable on first paint, while preserving the entrance motion. */
.hero-copy .enter{animation:hero-copy-arrive .6s cubic-bezier(.16,1,.3,1) both}
@keyframes hero-copy-arrive{from{transform:translateY(14px)}to{transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js-motion .reveal:not(.seen){opacity:1;transform:none}}



.brand-logo{width:42px;height:42px;flex-shrink:0}.brand{gap:9px;font-family:'Cormorant Garamond',Georgia,serif;font-size:25px;font-weight:600;letter-spacing:-.7px}.template-paper h3,.summary-preview h2{font-family:'Great Vibes',cursive!important;font-weight:400;line-height:1.4}.template-paper h3{font-size:36px!important}.template-paper h3 span{font-family:'Cormorant Garamond',serif}@media(max-width:480px){.brand{font-size:21px;gap:6px}.brand-logo{width:34px;height:34px}}

.template-art.heritage{background:#f4ecdd url('/static/assets/java-landscape-v2.webp') center/cover}.template-art.heritage>img{display:none}.template-art.heritage .template-paper{background:#fff5e5e0;color:#783d3f;top:45px;bottom:auto;width:65%;border-radius:100px 100px 5px 5px;padding:30px 15px;border:1px solid #b69562}.template-art.blush:after{content:'';position:absolute;inset:0;pointer-events:none;background:url('/static/assets/blush-botanicals-v2.webp') left bottom/48% auto no-repeat;z-index:2}.template-art.blush .template-paper{z-index:3}

.bank-account-card,.guest-card{padding:18px;border:1px solid var(--line);border-radius:12px;margin:15px 0;background:var(--surface)}.guest-card input{margin-bottom:10px}.guest-actions{display:flex;flex-wrap:wrap;gap:8px}.guest-actions button{border:1px solid var(--line);background:var(--soft);color:var(--text);border-radius:7px;min-height:42px;padding:8px 12px;font-size:12px}.guest-manager{margin-top:22px}#guest-list{max-height:650px;overflow:auto}.guest-manager>.field-content{padding-inline:5px}.bank-account-card .text-link{border:0;background:transparent;color:var(--accent-text);cursor:pointer;min-height:40px}

.template-art:not(.heritage)>img{opacity:1;filter:none;object-fit:cover}.template-art:not(.heritage) .template-paper{position:absolute;top:23%;bottom:auto;width:80%;background:#fff9efc9;color:var(--invite-color);border-radius:100px 100px 8px 8px;padding:30px 15px;z-index:3}.template-art.midnight .template-paper{background:#142538b8;color:#f2e2bb}.template-art:not(.heritage) .template-paper h3{font:38px/1.15 'Great Vibes',cursive;letter-spacing:0}.template-art:not(.heritage) .template-paper small,.template-art:not(.heritage) .paper-rule{display:none}

.template-actions{display:flex;gap:10px}.template-actions .button{min-height:46px;border-radius:999px;flex:1;text-align:center;justify-content:center;padding:11px 15px}.template-card .price small{display:block;margin-top:4px;font-size:10px;letter-spacing:1px;text-transform:uppercase}.catalog-premium .template-paper{border:double 4px color-mix(in srgb,var(--invite-color) 40%,transparent);border-radius:150px 150px 6px 6px;background:color-mix(in srgb,var(--invite-paper) 90%,transparent)}.catalog-premium:after{content:'PREMIUM';position:absolute;top:14px;left:14px;z-index:3;font-size:9px;letter-spacing:1.5px;padding:7px 12px;border-radius:999px;background:var(--invite-color);color:var(--invite-paper)}.catalog-aurelia .template-paper,.catalog-lumiere .template-paper{border-radius:0}.catalog-celestia .template-paper{background:#172337d9;color:#eadbb6}.catalog-lumiere .template-paper{rotate:-3deg}.catalog-eden .template-paper{border-radius:48% 48% 6px 6px}.catalog-rosalia .template-paper{border-radius:150px 150px 30px 30px}

.editor-top-actions{flex-wrap:wrap}

.hero-actions .button,.hero-actions .text-link,.template-actions .button{display:inline-flex;align-items:center;justify-content:center;gap:10px}.hero-actions [data-icon],.template-actions [data-icon]{display:inline-flex;flex-shrink:0}.hero-actions .ui-icon,.template-actions .ui-icon{width:16px;height:16px;flex-basis:16px;margin:0}

.dashboard-card-body .template-actions{display:flex;flex-wrap:wrap;gap:8px}
.dashboard-card-body .template-actions .button{min-width:0;max-width:100%;white-space:normal;text-align:center;justify-content:center;min-height:44px;line-height:1.4}
@media(max-width:600px){.dashboard-card-body .template-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-card-body .template-actions .button{font-size:12px;padding:11px 8px}.dashboard-card-body .template-actions .button:last-child{grid-column:1/-1}}

.auth-back{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:10px 14px;margin-bottom:24px;border:1px solid var(--line);border-radius:12px;background:var(--soft);color:var(--text);font-size:13px;font-weight:600;line-height:1.4;text-decoration:none;box-sizing:border-box}
.auth-back [data-icon]{display:flex;align-items:center;transform:rotate(180deg)}.auth-back .ui-icon{display:block;margin:0;width:18px;height:18px}
.auth-back:focus-visible,.auth-form .show-password:focus-visible{outline:2px solid #af688b;outline-offset:3px}
.auth-form .password-field{position:relative}.auth-form .password-field input{padding-right:56px}
.auth-form .show-password{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--text)}
.auth-form .show-password .ui-icon{width:20px;height:20px;margin:0;display:block}
.auth-form form>.button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;line-height:1.4;border-radius:12px}
.auth-form form>.button [data-icon]{display:flex;align-items:center}.auth-form form>.button .ui-icon{display:block;margin:0;width:18px;height:18px}

.checkout-back{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--soft);color:var(--text);font-size:13px;font-weight:600;line-height:1.4;text-decoration:none;box-sizing:border-box}
.checkout-back [data-icon]{display:flex;align-items:center;transform:rotate(180deg)}.checkout-back .ui-icon{display:block;margin:0;width:18px;height:18px}
.checkout-back:focus-visible{outline:2px solid #af688b;outline-offset:3px}
.checkout-form>button.button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;line-height:1.4;border-radius:12px}
.checkout-form>button.button [data-icon]{display:flex;align-items:center}.checkout-form>button.button .ui-icon{display:block;margin:0;width:18px;height:18px}

/* Mobile account menus use their own row across every authenticated page. */
@media(max-width:767px){
 body .header .nav{height:auto;min-height:66px;flex-wrap:wrap;align-items:center;gap:10px;padding-block:12px}
 body .header .brand{max-width:100%;flex-shrink:0}
 body .header .nav-actions{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px 16px}
 body .header .nav-actions .button{max-width:100%;min-height:44px;padding:10px 14px;font-size:12px}
 body .header .nav-actions .login-link{min-height:44px}
}

.account-menu-toggle{display:none}
@media(max-width:767px){
 body .header .nav{position:relative;flex-wrap:nowrap;min-height:66px;gap:10px;padding-block:10px;justify-content:space-between}
 .account-menu-toggle{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 44px;border:1px solid var(--line);border-radius:11px;background:var(--soft);color:var(--text);cursor:pointer}
 .account-menu-toggle .ui-icon{width:20px;height:20px;margin:0}
 body .header .nav .nav-actions{display:none;position:absolute;right:0;top:calc(100% + 8px);width:min(250px,calc(100vw - 36px));padding:10px;box-sizing:border-box;border:1px solid var(--line);border-radius:14px;background:var(--bg);box-shadow:0 12px 35px #582a3d18;z-index:30;gap:4px}
 body .header .nav .nav-actions.is-open{display:flex;flex-direction:column;align-items:stretch}
 body .header .nav .nav-actions>a,body .header .nav .nav-actions>button{display:flex;align-items:center;justify-content:flex-start;width:100%;min-height:44px;margin:0;padding:11px 13px;font-size:13px;border-radius:8px;box-sizing:border-box}
 body .header .nav .nav-actions>.theme-toggle{display:none}
 .account-menu-toggle:focus-visible{outline:2px solid #af688b;outline-offset:3px}
}
@media(max-width:767px){body .header .nav #account-menu{display:none!important;width:min(250px,calc(100vw - 36px));gap:4px}body .header .nav #account-menu.is-open{display:flex!important;align-items:stretch;justify-content:flex-start}}

.account{position:relative;display:flex}
.account-trigger{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 14px;border:1px solid var(--line);border-radius:11px;background:var(--soft);color:var(--text);font:inherit;font-weight:600;font-size:13px;cursor:pointer;transition:border-color .15s}
.account-trigger:hover{border-color:var(--accent-text)}
.account-trigger .ui-icon{width:18px;height:18px}
.account-trigger .account-caret{width:15px;height:15px;transition:rotate .15s}
.account-trigger[aria-expanded=true] .account-caret{rotate:180deg}
.account-dropdown{position:absolute;right:0;top:calc(100% + 8px);min-width:214px;display:none;flex-direction:column;gap:2px;padding:7px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);z-index:40}
.account-dropdown.open{display:flex}
.account-dropdown a,.account-logout button{display:flex;align-items:center;gap:10px;min-height:44px;padding:9px 12px;border-radius:9px;color:var(--text);text-decoration:none;font:inherit;font-size:14px;background:transparent;border:0;width:100%;cursor:pointer;text-align:left}
.account-dropdown a:hover,.account-logout button:hover{background:var(--soft)}
.account-dropdown .ui-icon{width:18px;height:18px;color:var(--accent-text);flex-shrink:0}
.account-dropdown>.account-logout{display:flex;align-self:stretch;width:auto;max-width:none;border-top:1px solid var(--line);margin:4px -7px 0;padding:5px 7px 0}
.account-logout button{color:var(--accent-text);font-weight:600}
@media(max-width:767px){.account{width:100%}.account-trigger{display:none}.account-dropdown{display:flex;position:static;min-width:0;border:0;box-shadow:none;padding:0;background:transparent}}

@media(max-width:767px){.account-dropdown{width:100%;min-width:0}.account-dropdown>.account-logout{margin-inline:-10px;padding-inline:10px}}
/* Website language is separate from the invitation content language. */
.site-language-form{display:flex;align-items:center;margin:0 0 0 auto;gap:5px;flex-shrink:0}
.site-language-form select{width:112px;min-height:44px;margin:0;padding:8px 24px 8px 10px;font-size:12px;border:1px solid var(--line);border-radius:9px;background-color:var(--surface);color:var(--text)}
.site-language-apply{min-height:44px;border:1px solid var(--line);border-radius:8px;background:var(--soft);color:var(--text);font-size:12px}
.has-language-script .site-language-apply{display:none}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:767px){.site-language-form{margin-left:auto}.site-language-form select{width:99px;font-size:11px;padding-left:7px}.header .brand{font-size:14px}.header .brand-logo{width:28px;height:28px}.header .brand-id{font-size:12px}}
@media(max-width:380px){.header .brand{font-size:12px;letter-spacing:-.5px}.header .brand-logo{width:24px;height:24px;margin-right:5px}.header .brand-id{display:none}.site-language-form select{width:88px;padding-left:6px;font-size:10px}}
.language-picker{position:relative}
.language-trigger{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font:inherit;font-size:12px;cursor:pointer;white-space:nowrap}
.language-trigger:hover,.language-trigger[aria-expanded=true]{border-color:var(--accent-text);background:var(--soft)}
.language-picker img{width:24px;height:16px;object-fit:cover;border-radius:3px;box-shadow:0 0 0 1px #4b334018;flex-shrink:0}
.language-caret{width:6px;height:6px;border-right:1.5px solid var(--accent-text);border-bottom:1.5px solid var(--accent-text);transform:rotate(45deg);margin:0 2px 3px 2px}
.language-trigger[aria-expanded=true] .language-caret{transform:rotate(225deg);margin-top:4px}
.language-short{display:none}
.language-options{position:absolute;right:0;top:calc(100% + 8px);width:186px;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 10px 32px #582a3d18;z-index:50}
.language-option{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:9px 10px;border:0;border-radius:7px;background:transparent;color:var(--text);font:inherit;font-size:13px;text-align:left;cursor:pointer}
.language-option:hover,.language-option:focus-visible,.language-option[aria-selected=true]{background:var(--soft)}
.language-check{margin-left:auto;color:var(--accent-text);font-size:15px}
@media(max-width:767px){.language-trigger{padding:8px 9px;gap:6px}.language-current{display:none}.language-short{display:inline;font-weight:600;font-size:11px}.language-trigger img{width:21px;height:14px}}

@media(min-width:768px) and (max-width:1000px){body .header .nav{flex-wrap:wrap;height:auto;min-height:80px;padding-block:14px;gap:14px}body .header .nav>nav{order:5;flex-basis:100%;justify-content:center;flex-wrap:wrap}body .header .nav-actions{gap:12px}}

.footer-contact{font-size:13px;color:var(--muted);text-decoration:none}.footer-contact:hover{text-decoration:underline}
/* Consistent site footer, with optional social profiles. */
.footer.container{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:24px 40px;padding-block:32px 22px}
.footer .footer-identity{min-width:0}
.footer .footer-identity .brand{font-size:20px;min-height:40px;display:inline-flex}
.footer .footer-identity .brand-logo{width:32px;height:32px}
.footer .footer-identity p{font-size:13px;line-height:1.7;margin:8px 0 0;max-width:320px}
.footer-navigation{display:grid;gap:8px;justify-items:end}
.footer-service-links,.footer-social-links{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:4px 22px}
.footer-service-links a,.footer-social-links a{display:inline-flex;align-items:center;min-height:44px;font-size:13px;color:var(--text);text-decoration:none}
.footer-social-links a{color:var(--muted);font-size:12px}
.footer-navigation a:hover{color:var(--accent-text);text-decoration:underline;text-underline-offset:4px}
.footer .footer-bottom{grid-column:1/-1;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:12px;line-height:1.6}
.social-settings{display:grid;gap:18px;padding-top:22px;border-top:1px solid var(--line)}
.social-settings h2{font-size:22px;margin:0}.social-settings .small-muted{margin:0}
.service-information{max-width:840px}.service-information>h1{margin-bottom:16px}
.service-intro{max-width:620px}.service-sections{display:grid;gap:30px;margin-top:36px}
.service-sections section{padding-top:24px;border-top:1px solid var(--line)}
.service-sections h2{font-size:24px;margin-bottom:14px}.service-sections p,.service-sections li{font-size:15px;line-height:1.85;color:var(--muted)}
.service-packages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.service-packages article{padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.service-packages h3{font-size:17px;margin:0 0 10px}.service-packages strong{font-size:22px;color:var(--text)}
@media(max-width:600px){.footer.container{grid-template-columns:minmax(0,1fr);gap:14px;padding-block:28px 22px}.footer-navigation{justify-items:start;gap:0}.footer-service-links,.footer-social-links{justify-content:flex-start;gap:0 22px}.footer .footer-bottom{padding-top:16px}.service-packages{grid-template-columns:1fr}.service-packages article{display:flex;justify-content:space-between;align-items:center;gap:12px}.service-packages h3{margin:0}}

/* Opt-in Exclusive prototype, using the same editor data. */
.tour-preview-choice{min-width:0;max-width:70%;margin:0}.tour-preview-choice select{max-width:100%;min-height:36px;padding:5px 24px 5px 8px;font-size:12px;border:1px solid var(--line);border-radius:8px;background:var(--paper,#fff);color:var(--text)}
