/* Dedicated online experience; intentionally independent of the printed catalog. */
:root{font-family:"Segoe UI",Arial,sans-serif;color:#302d2d;background:#faf9f7;font-synthesis:none;--pink:#752b3e;--line:#e6e1df;--muted:#847b79}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #e861a5;outline-offset:3px}img{display:block;max-width:100%}input,select,textarea{width:100%;border:1px solid #dfdad7;background:#fff;border-radius:6px;padding:10px 12px;color:#423b39}textarea{resize:vertical;line-height:1.6}label{display:block}h1,h2,h3,p{margin-top:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border:1px solid #ddd3d7;background:#fff;border-radius:7px;font-size:14px;font-weight:600;transition:background .15s,transform .15s}.button:hover{background:#f7eef2;transform:translateY(-1px)}.button.primary{background:var(--pink);border-color:var(--pink);color:#fff;box-shadow:0 3px 12px #752b3e17}.button.primary:hover{background:#5d2030}.button.small{padding:10px 17px;font-size:13px}.eyebrow{display:block;font-size:10px;letter-spacing:3px;color:#a28279;font-weight:600}.muted{color:var(--muted)}.text-button{border:0;background:none;color:#a4647c;font-size:12px;padding:5px;text-decoration:underline;text-underline-offset:3px}.online-header{height:78px;padding:0 32px;background:#fff;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:24px;position:relative;z-index:5}.online-brand{display:inline-flex;align-items:center;gap:10px;flex-shrink:0;font-family:Georgia,serif;font-size:27px;font-style:italic;line-height:1.1}.brand-symbol{width:34px;height:37px;display:grid;place-items:center;background:var(--pink);color:#fff;font-family:Georgia;font-size:28px;font-style:normal;border-radius:7px}.online-brand small{font-family:"Segoe UI",sans-serif;font-size:7px;font-style:normal;display:block;letter-spacing:1.4px;margin-top:5px}.online-header nav{display:flex;gap:28px;margin-left:-50px;font-size:13px;font-weight:600}.online-header nav a[aria-current]{color:var(--pink)}.catalog-page{max-width:1240px;padding:0 28px;margin:auto}.collection-hero{text-align:center;padding:50px 0 35px}.collection-hero h1{font-family:Georgia,serif;font-size:34px;font-weight:400;margin:13px 0 12px;letter-spacing:-.7px}.collection-hero p{font-size:14px;color:#81746f;margin-bottom:18px}.collection-hero small{display:block;font-size:11px;color:#918886;margin-top:10px}.exclusive{display:inline-flex;align-items:center;gap:6px;border:1px solid #e9dce1;border-radius:20px;padding:7px 15px;color:#946575;font-size:11px;background:#fff7fa}.exclusive span{font-size:16px}.catalog-tools{display:flex;justify-content:space-between;align-items:center;gap:15px;padding-bottom:17px;border-bottom:1px solid var(--line)}.filter-tabs{display:flex;gap:6px;flex-wrap:wrap}.filter-tabs button{border:1px solid transparent;border-radius:20px;padding:8px 15px;font-size:12px;background:transparent;color:#756b69}.filter-tabs button.active{background:#fbe8f0;color:#c31267;border-color:#f1c8d9}.search-box{display:flex;align-items:center;gap:4px;width:260px;border:1px solid var(--line);border-radius:6px;background:#fff;padding-left:12px}.search-box span{font-size:23px;color:#9a8e8d}.search-box input{border:0;font-size:12px;background:none;padding:9px}.result-count{font-size:11px;color:#807370;margin:17px 0 16px;display:flex;justify-content:space-between}.result-count span{font-size:10px;color:#a19490}.template-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:27px 18px}.template-card{min-width:0}.template-image{position:relative;display:block;overflow:hidden;border:1px solid #e3dcd5;box-shadow:0 5px 15px #53442b0b;background:#f6eee2;border-radius:9px;width:100%;aspect-ratio: .565;padding:0;transition:transform .25s,box-shadow .25s}.template-image>img{width:100%;height:100%;object-fit:cover;object-position:top}.template-image:hover{transform:translateY(-4px);box-shadow:0 12px 24px #3e302c15}.template-badge{position:absolute;top:11px;right:11px;border-radius:15px;font-size:9px;color:#fff;background:#9b5c72;padding:4px 9px}.template-badge.new{background:var(--pink)}.card-hover{position:absolute;bottom:0;left:0;right:0;background:#fffffff0;backdrop-filter:blur(6px);padding:15px;font-size:12px;color:#982b55;transform:translateY(100%);transition:transform .2s}.template-image:hover .card-hover,.template-image:focus-visible .card-hover{transform:none}.template-caption{padding:14px 2px 0}.template-caption h2{font-size:12px;font-weight:600;letter-spacing:-.2px;margin-bottom:7px}.template-caption h2 button{border:0;padding:0;text-align:left;background:none}.template-caption>div{display:flex;align-items:center;gap:5px;color:#928783;font-size:10px}.color-dot{display:inline-block;flex-shrink:0;width:8px;height:8px;border-radius:50%}.template-caption>a{font-size:11px;color:#9c6172;margin-top:11px;display:flex;justify-content:space-between}.service-callout{margin:65px 0 60px;border:1px solid #eaded9;border-radius:12px;background:#f8f0e9;padding:36px;display:flex;justify-content:space-between;align-items:center;gap:35px}.service-callout h2{font-family:Georgia,serif;font-weight:400;font-size:26px;margin:13px 0}.service-callout p{font-size:12px;line-height:1.9;color:#8d7c73;max-width:600px;margin:0}.service-callout .button{flex-shrink:0}.how-it-works{text-align:center}.how-it-works h2,.faq h2{font-family:Georgia,serif;font-size:27px;font-weight:400}.how-it-works>div{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;max-width:930px;margin:35px auto 65px}.how-it-works article b{font-family:Georgia;font-weight:400;font-size:33px;color:#caa99b}.how-it-works h3{font-size:14px;margin:12px 0}.how-it-works p{font-size:12px;line-height:1.9;color:#8f8079;max-width:260px;margin:auto}.faq{max-width:730px;margin:0 auto 70px}.faq h2{text-align:center;margin-bottom:28px}.faq details{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;font-size:13px;padding:18px 4px;list-style:none;display:flex;justify-content:space-between}.faq summary:after{content:'+';color:#9d7b82}.faq details[open] summary:after{content:'−'}.faq details p{font-size:12px;line-height:1.9;color:#8e7e78;padding:0 4px 16px;margin:0}.online-footer{border-top:1px solid var(--line);text-align:center;background:#fff;padding:38px 20px 28px}.online-footer .online-brand{font-size:30px}.online-footer p{font-family:Georgia,serif;font-size:15px;color:#81716c;margin:20px 0 13px}.online-footer small{display:block;font-size:10px;color:#9b8c86}.online-footer>a:last-child{display:inline-block;margin:20px 0 0;font-size:11px;color:#98536e}.online-dialog{max-width:min(92vw,560px);width:560px;max-height:90vh;padding:30px;border:1px solid #ede4df;border-radius:14px;box-shadow:0 24px 100px #0003;position:fixed;color:#423834;overflow:auto}.online-dialog.wide{width:850px;max-width:min(94vw,850px)}.online-dialog::backdrop{background:#2f272965;backdrop-filter:blur(3px)}.online-dialog h2{font-family:Georgia,serif;font-size:25px;font-weight:400;margin:0 35px 25px 0}.online-dialog p{font-size:13px;line-height:1.9}.close-dialog{position:absolute;right:16px;top:14px;width:30px;height:30px;background:#f7f3ef;border:0;border-radius:50%;font-size:23px}.template-detail{display:grid;grid-template-columns:310px 1fr;gap:30px}.detail-image{width:100%;height:510px;object-fit:cover;object-position:top;border-radius:9px}.tag-row{display:flex;flex-wrap:wrap;gap:6px;margin:5px 0 20px}.tag-row span{font-size:10px;padding:5px 9px;background:#f5eeeb;border-radius:4px;color:#8c7367}.template-detail h3{font-size:14px;margin:23px 0 12px}.feature-list{display:grid;grid-template-columns:1fr 1fr;gap:14px 8px;padding:0;list-style:none;font-size:11px;color:#816c68}.detail-notice{font-size:11px;line-height:1.9;background:#fff4f8;border:1px solid #f4d7e3;border-radius:6px;padding:14px;color:#a3637a;margin:24px 0 18px}.template-detail .button{width:100%;margin-bottom:10px}.template-detail small{display:block;font-size:10px;line-height:1.8}.empty-state{text-align:center;padding:60px 15px}.empty-state p{font-size:13px;color:#8d7c73}.account-page{max-width:540px;margin:60px auto 100px;text-align:center;padding:35px 25px}.account-page h1{font:400 34px Georgia,serif;margin:20px 0}.account-page p{font-size:14px;line-height:1.9;color:#8a7770}.account-seal{display:grid;place-items:center;background:#fff0f7;border:1px solid #f5d7e5;border-radius:50%;font:45px Georgia;color:#c76291;width:80px;height:80px;margin:0 auto 25px}.account-page .button{display:flex;margin:12px 0}.account-page>small{display:block;color:#ac9790;font-size:11px;margin-top:22px}
/* Editor: fixed controls, schema-driven sections and a live mobile canvas. */
.editor-toolbar{position:sticky;top:0;z-index:10;background:#fff;display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line);padding:13px 30px;box-shadow:0 2px 8px #00000003}.back-link{font-size:12px;color:#8b7d77;white-space:nowrap}.template-select{display:flex;align-items:center;gap:8px;background:#f9f6f1;border:1px solid #e9e0d7;border-radius:6px;padding-left:10px;max-width:255px}.template-select select{background:transparent;border:0;font-size:12px;padding:8px 6px}.mode-switch{display:flex;margin:auto;border:1px solid #e9e3df;border-radius:6px;padding:3px;background:#f5f3f1}.mode-switch button{background:transparent;border:0;padding:6px 12px;border-radius:4px;color:#9b908a;font-size:11px}.mode-switch button.active{background:#fff;color:#695b54;box-shadow:0 1px 4px #0001}.save-status{font-size:10px;color:#988a83}.editor-workspace{display:grid;grid-template-columns:540px 390px;gap:65px;justify-content:center;padding:30px 25px 70px;background:#eeedec;align-items:start}.editor-intro{padding:0 4px 24px}.editor-intro h1{font:400 25px Georgia;margin:12px 0}.editor-intro p{font-size:11px;color:#9b8c83;margin:0}.editor-section{background:#fff;border:1px solid #e7e2df;border-radius:7px;margin-bottom:13px;box-shadow:0 3px 8px #42332404;overflow:hidden}.editor-section-heading{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid #f4f0ee;gap:10px}.section-disclosure{border:0;background:transparent;padding:0;text-align:left;font-size:12px;font-weight:600;display:flex;gap:9px;align-items:center}.chevron{color:#a2948c;font-size:17px;min-width:10px}.section-icon{color:#8d7e78;font-size:14px;font-weight:400}.section-toggle{display:flex;gap:6px;align-items:center;font-size:9px;color:#a99c93;white-space:nowrap}.toggle{width:29px;height:16px;background:#d7d4d2;border:0;border-radius:30px;padding:2px;display:flex;align-items:center;transition:background .2s;flex-shrink:0}.toggle>span{background:#fff;width:12px;height:12px;border-radius:50%;box-shadow:0 1px 3px #0002;transition:transform .2s}.toggle.on{background:var(--pink)}.toggle.on>span{transform:translateX(13px)}.required-section{background:#f5f2ef;font-size:9px;border-radius:4px;padding:4px 7px}.editor-section fieldset{border:0;margin:0;min-width:0;padding:16px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px 13px}.field label{font-size:10px;color:#75635a;margin-bottom:6px;font-weight:500}.field input,.field textarea,.field select{font-size:11px;border-radius:5px;border-color:#e8e1db;padding:9px;background:#fdfcfb}.field textarea{min-height:63px}.field.full,.image-field,.boolean-field{grid-column:1/-1}.required-mark{color:#d95386}.boolean-field{display:flex;align-items:center;justify-content:space-between;padding:4px 0;font-size:11px;color:#806c61}.upload-control{border:1px dashed #dfd5cd;border-radius:6px;display:flex;align-items:center;padding:9px;gap:15px}.upload-control img,.upload-placeholder{width:65px;height:73px;object-fit:cover;background:#f0ede7;border-radius:4px}.upload-placeholder{display:grid;place-items:center;font-size:25px;color:#b09c8e}.upload-control input{border:0;padding:0;background:none;max-width:260px;font-size:10px}.upload-control input::file-selector-button{font:inherit;background:#f0e9e3;color:#816a5d;border:0;border-radius:4px;padding:7px;margin-right:7px;cursor:pointer}.upload-control small{display:block;font-size:9px;color:#b2a497;margin:7px 0 0}.upload-control .text-button{font-size:10px}.field-tip{font-size:10px;margin:16px 0 0;padding:11px;background:#fff9e9;color:#a18c65;border-radius:5px;line-height:1.7}.disabled-section .editor-section-heading{background:#fdfcfb}.disabled-section fieldset{opacity:.46}.editor-actions{display:flex;justify-content:space-between;align-items:center;margin:25px 2px}.editor-actions .button{font-size:11px}.share-preview{margin-top:15px;border:1px solid #e8dfd9;border-radius:7px;padding:15px;background:#f6f1e9}.share-preview img{width:100%;max-height:160px;object-fit:cover;margin-bottom:10px}.share-preview strong{font:19px Georgia;color:#9e715b}.share-preview p{font-size:10px;margin:8px 0}.share-preview small{font-size:9px;color:#b69888}.live-preview{position:sticky;top:94px;text-align:center}.preview-heading{display:flex;justify-content:space-between;align-items:center;padding:0 7px 15px;font-size:10px;color:#9d8b80}.preview-heading span{display:flex;align-items:center;gap:6px}.preview-heading i{width:5px;height:5px;background:#80a276;border-radius:50%}.preview-heading .text-button{font-size:10px}.phone-frame{background:#fff;border:6px solid #fff;border-radius:35px;box-shadow:0 20px 45px #46312118,0 0 0 1px #ded8d0;position:relative;height:min(720px,calc(100vh - 180px));min-height:380px;overflow:hidden}.phone-speaker{position:absolute;top:9px;left:calc(50% - 42px);width:84px;height:19px;background:#e4e0db;border-radius:20px;z-index:2}.phone-content{height:100%;overflow:auto;border-radius:29px;scrollbar-width:thin}.live-preview>small{font-size:10px;color:#aa9a8c;display:block;margin-top:15px}.editor-error{position:sticky;top:68px;z-index:11;background:#fff0ee;border:1px solid #efbdb8;font-size:12px;color:#ad4f45;padding:12px 20px;display:flex;gap:15px;justify-content:center}.editor-error button{border:0;background:none;font-size:18px}.editor-full-preview{background:#e7e3de}.preview-label{display:flex;justify-content:space-between;padding:14px 25px;font-size:11px;color:#9d8678;background:#f8f5f1}.preview-label button{border:0;background:transparent;text-decoration:underline;color:#997061;font-size:11px}
/* Wedding pages. Each hero is composed from replaceable images, never a flat screenshot. */
.invitation-view-bar{display:flex;justify-content:space-between;align-items:center;padding:12px 25px;background:#fff;font-size:10px;color:#8e7c72;border-bottom:1px solid #ede3d8;position:relative;z-index:2}.invitation-view-bar a:last-child{color:#bd5987}.invitation-shell{position:relative;color:var(--ink);background:#f2efeb;font-family:Georgia,"Times New Roman",serif;font-size:14px;line-height:1.8;min-height:calc(100vh - 42px)}.invitation-page{width:100%;max-width:650px;margin:auto;background-color:var(--paper);background-image:var(--paper-image);background-size:100% auto;overflow:hidden;box-shadow:0 0 1px #bba38d}.invitation-shell.embedded{min-height:100%;font-size:12px;background:var(--paper)}.invitation-shell h2{font-size:19px;font-weight:400;text-transform:uppercase;letter-spacing:1px;position:relative;z-index:1}.invitation-shell h3{font-weight:400;font-size:18px}.invitation-shell p{white-space:pre-line;position:relative;z-index:1}.invitation-shell .ornament{pointer-events:none;user-select:none;position:absolute;object-fit:contain}.couple-names{position:relative;z-index:1;font-size:40px;line-height:1.25;display:flex;align-items:center;flex-direction:column;text-align:center;overflow-wrap:anywhere}.couple-names i{font-size:25px;font-weight:400;line-height:1.6}.embedded .couple-names{font-size:31px}.invitation-hero{position:relative;overflow:hidden;min-height:710px;text-align:center;padding:35px 20px 30px}.embedded .invitation-hero{min-height:560px}.save-date{font-size:10px;letter-spacing:3px;text-transform:uppercase;padding:8px 0;margin-bottom:28px}.hero-welcome{font-size:11px;letter-spacing:2px;margin:22px 0 0}.castle{inset:auto 0 0;width:100%;opacity:.25}.envelope-composition{position:relative;width:73%;aspect-ratio: .867;margin:22px auto 28px;max-width:390px}.envelope-back{width:100%;height:100%;inset:0}.envelope-photo{position:absolute;top:10%;left:27%;width:64%;height:64%;object-fit:cover;transform:rotate(11deg);padding:7px 7px 20px;background:#fff;box-shadow:1px 3px 8px #0002}.envelope-front{bottom:0;left:0;width:100%;height:auto}.hero-envelope{padding-top:30px}.hero-envelope .couple-names{font-size:42px}.hero-envelope .couple-names i{display:none}.hero-envelope .couple-names span{margin:3px 0}.hero-polaroid{padding-top:23px}.hero-polaroid .couple-names{display:block;font-style:italic;font-size:32px}.hero-polaroid .couple-names span{display:inline}.hero-polaroid .couple-names i{font-size:23px;margin:0 8px}.polaroid-composition{position:relative;width:80%;max-width:390px;aspect-ratio:.704;margin:24px auto 5px}.polaroid-photo{position:absolute;width:80%;height:75%;top:9%;left:11%;object-fit:cover;transform:rotate(-4deg)}.polaroid-frame{inset:0;width:100%;height:100%}.leaf-back{height:95%;top:15px;left:0;opacity:.3}.arch-title{background:var(--theme);color:#f9f2db;margin:-35px -20px 0;padding:37px 30px 40px;border-radius:0 0 50% 50%;position:relative;z-index:1}.arch-title .save-date{font-size:9px;letter-spacing:2px;margin:0 0 16px}.arch-names{display:flex;align-items:center;justify-content:center;gap:15px;font-size:16px;line-height:1.5}.arch-names>span{flex:1;overflow-wrap:anywhere;text-transform:uppercase}.arch-names small{display:block;font-size:9px;text-transform:none;margin-bottom:5px}.arch-names .ornament{position:static;width:70px;height:70px;filter:brightness(0) invert(1)}.arch-love{font-size:9px;letter-spacing:3px;position:relative;color:#f8edd4;margin-top:-25px;z-index:2!important;transform:rotate(-5deg)}.arch-photo{width:85%;height:470px;object-fit:cover;object-position:center;border-radius:50% 50% 0 0 / 35% 35% 0 0;margin:6px auto 0}.embedded .arch-photo{height:365px}.hero-arch{padding-bottom:0}.hero-duo{padding:100px 30px 45px;min-height:710px}.duo-flower{width:100%;opacity:.75;max-width:none}.duo-flower.top{top:-23%;right:-26%;transform:rotate(-25deg)}.duo-flower.bottom{bottom:-21%;left:-21%;transform:rotate(170deg)}.duo-row{display:flex;align-items:center;gap:20px;position:relative;z-index:1}.duo-row>img,.duo-row>.photo-placeholder{width:48%;height:270px;object-fit:cover;border:5px solid #a88b68;transform:rotate(-11deg);box-shadow:0 6px 12px #38261919}.duo-row>div:not(.photo-placeholder){flex:1}.duo-row h2{font-size:28px;text-transform:none;letter-spacing:-.7px;line-height:1.25;margin:8px 0}.duo-row small{font-size:11px}.duo-row.second{margin:25px 0 20px}.duo-row.second>img{transform:rotate(10deg)}.embedded .duo-row>img{height:205px}.embedded .hero-duo{padding:90px 23px 45px;min-height:560px}.embedded .duo-row h2{font-size:23px}.hero-glass{display:grid;place-items:center;min-height:720px;padding:40px}.glass-oval{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;width:90%;height:470px;border:1px solid #fff8;border-radius:50% / 42%;background:linear-gradient(125deg,#fffbfbdd,#fff6f6a6);box-shadow:0 12px 25px #9f576018;backdrop-filter:blur(3px)}.glass-oval p{font-size:11px;margin:25px 12px 0;color:#b07881}.glass-flower{width:70%;max-width:none;opacity:.8}.glass-flower.one{top:-7%;left:-20%;transform:rotate(160deg)}.glass-flower.two{bottom:-9%;right:-25%}.glass-flower.three{bottom:1%;left:-28%}.layout-glass .invitation-page{background:radial-gradient(at 20% 10%,#f3d8dc,transparent 50%),radial-gradient(at 80% 60%,#efd2d8,transparent 50%),#fceeee}.layout-glass .wedding-section{margin:15px 25px;border-radius:22px;background:#ffffff9e;box-shadow:0 6px 20px #aa667b0d;border:1px solid #fff9}.green-back{width:110%;height:100%;inset:0;opacity:.23}.green-envelope{position:relative;width:87%;max-width:450px;aspect-ratio:.916;margin:25px auto}.green-envelope>.first-photo,.green-envelope>.second-photo{position:absolute;width:44%;height:55%;object-fit:cover;border:7px solid #fff;top:7%;left:8%;transform:rotate(-11deg);box-shadow:0 4px 12px #0002}.green-envelope>.second-photo{left:45%;top:2%;transform:rotate(11deg)}.hero-double-polaroid .couple-names{font-style:italic}.hero-double-polaroid .couple-names i{display:none}.wreath-composition{width:80%;max-width:360px;position:relative;aspect-ratio:.566;margin:auto}.wreath-frame{inset:0;width:100%;height:100%}.wreath-composition>div{position:absolute;inset:6% 12% 25%;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1}.wreath-composition .save-date{font-size:9px;line-height:1.3;margin:15px 0 25px}.wreath-composition .couple-names{font-size:43px;font-style:italic}.embedded .wreath-composition .couple-names{font-size:34px}.hero-wreath{padding-top:30px;min-height:670px}.v2-heading{display:flex;align-items:center;gap:8px;color:#972b24;font-size:17px;text-transform:uppercase;margin-bottom:30px;position:relative;z-index:1}.v2-heading span{flex:1;overflow-wrap:anywhere}.v2-heading small{font-size:10px;color:#b69574;display:block;text-transform:none;margin-bottom:5px}.v2-heading .ornament{position:static;width:38px}.hero-arch-v2{background:#fcf1d9;border:3px solid #e5ca8f;border-top:0;border-radius:0 0 45% 45% / 0 0 10% 10%;margin:0 14px;color:#9e3023;padding:30px 25px 60px;min-height:710px}.v2-photo{width:95%;margin:auto;position:relative;border-radius:45% 45% 42% 42% / 12% 12% 17% 17%;border:3px solid #d7ad65;overflow:hidden;aspect-ratio:.69;background:#f1dfbd}.v2-photo>img{width:100%;height:100%;object-fit:cover}.v2-flower{right:-10%;bottom:-15%;width:45%;opacity:.2}.layout-arch-v2 .wedding-section{background:#fbf1d7;color:#952d24;border:2px solid #dbbc82;margin:30px 14px;border-radius:12px 12px 40% 40% / 12px 12px 7% 7%}.hero-phoenix{padding-top:28px;min-height:730px}.hero-phoenix>.couple-names{font-size:37px;text-transform:uppercase;width:60%;margin-left:3%;line-height:1.3}.hero-phoenix>.couple-names i{display:none}.phoenix-left{width:35%;height:89%;left:-4%;top:13%}.phoenix-right{width:31%;height:73%;right:-4%;top:-8%}.phoenix-band{background:var(--theme);height:100px;margin:110px -20px 0 35%;display:flex;align-items:center;justify-content:flex-start;padding-left:40px;position:relative;z-index:1}.phoenix-band .ornament{position:static;width:120px;filter:brightness(0) invert(1)}.phoenix-flower{width:50%;bottom:1%;right:-5%;opacity:.4}.hero-phoenix .hero-welcome{margin:150px 0 0}.photo-placeholder{display:flex;align-items:center;justify-content:center;flex-direction:column;background:#efebe5;font:36px Georgia;color:#b2a99d}.photo-placeholder small{font:10px "Segoe UI",sans-serif;margin-top:12px}
.wedding-section{position:relative;text-align:center;padding:45px 35px;overflow:hidden;min-height:100px}.wedding-section>h2{margin-bottom:28px}.section-subtitle{font-style:italic;font-size:12px;margin-top:-17px;margin-bottom:25px}.section-flower{width:23%;right:-9%;bottom:-5%;opacity:.28}.families{display:flex;gap:25px;position:relative;z-index:1}.families>div{width:50%;min-width:0;overflow-wrap:anywhere}.families h3{font-size:15px;text-transform:uppercase;margin-bottom:12px}.families small{display:block;font-size:10px}.families strong{font-size:14px;font-weight:400;display:block}.families p{font-size:11px;margin-top:10px}.announcement-text{text-transform:uppercase;font-size:12px;line-height:1.9;letter-spacing:1px}.section-announcement .couple-names{font-size:32px;margin-top:30px}.section-announcement{padding-top:15px}.event-time{font-size:26px;margin:5px 0 14px}.event-date{display:flex;justify-content:center;align-items:center;gap:15px;margin:20px 0 30px}.event-date strong{font-size:45px;font-weight:400;padding-right:18px;border-right:1px solid currentColor;line-height:1}.event-date span{font-size:12px;line-height:1.6}.section-ceremony{margin:15px 35px;padding:35px 25px;border:1px solid #c9bca661;border-radius:130px 130px 8px 8px / 45px 45px 8px 8px}.dark-panels .section-ceremony,.dark-panels .section-reception{background:var(--theme);color:#f4e8d4;margin:20px 25px;box-shadow:0 6px 10px #0002;border:0;border-radius:8px}.dark-panels .section-ceremony .section-flower{opacity:.16}.wedding-gallery{display:grid;grid-template-columns:1fr 1fr;gap:12px}.wedding-gallery button{border:0;background:transparent;padding:0;overflow:hidden;border-radius:3px}.wedding-gallery img{width:100%;height:240px;object-fit:cover;transition:transform .3s}.embedded .wedding-gallery img{height:160px}.wedding-gallery button:hover img{transform:scale(1.035)}.gallery-stack button:nth-child(odd){transform:rotate(-4deg);border:5px solid #fff;box-shadow:0 4px 10px #0001}.gallery-stack button:nth-child(even){transform:rotate(4deg);border:5px solid #fff;box-shadow:0 4px 10px #0001}.gallery-slider{display:block}.gallery-slider img{height:420px;max-width:100%}.gallery-slider button{width:100%}.gallery-slider button[hidden]{display:none}.gallery-nav{display:flex;justify-content:center;align-items:center;gap:20px;font-size:12px;margin-top:20px}.gallery-nav button{border:1px solid #cbbca8;background:none;border-radius:50%;width:30px;height:30px;color:var(--ink)}.zoom-image{width:100%;max-height:70vh;object-fit:contain}.wedding-calendar{border:1px solid #c6b4987a;border-radius:7px;padding:20px;margin:30px auto;max-width:330px;background:#fff8;color:var(--theme)}.wedding-calendar h4{font-weight:400;font-style:italic;margin:0 0 14px;font-size:16px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px 4px;align-items:center;justify-items:center;font-size:11px}.calendar-grid small{border-bottom:1px solid #beae9861;padding-bottom:5px;width:100%}.calendar-grid span{width:23px;height:23px;display:grid;place-items:center}.calendar-grid .chosen{background:var(--theme);color:#fff;border-radius:50%}.countdown{margin-top:25px}.countdown>p{font-style:italic;margin-bottom:10px;font-size:13px}.countdown>div{display:flex;gap:20px;justify-content:center}.countdown span{display:flex;flex-direction:column}.countdown b{font-size:24px;font-weight:400;line-height:1.4}.countdown small{font-size:10px}.wedding-button{display:inline-flex;justify-content:center;align-items:center;background:var(--theme);color:#fff6e4;border:1px solid var(--theme);padding:10px 21px;border-radius:5px;font-family:Georgia;font-size:13px;position:relative;z-index:1}.wedding-button:hover{filter:brightness(1.1)}.dark-panels .section-reception .wedding-button{background:#f9eed8;color:var(--theme);border-color:#f9eed8}.dress-colors{display:flex;justify-content:center;gap:14px;margin:25px 0}.dress-colors span{width:38px;height:38px;border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #cbbcaa}.wedding-timeline{display:flex;gap:15px;justify-content:center}.wedding-timeline>div{flex:1;display:flex;align-items:center;flex-direction:column;font-size:11px;gap:8px}.wedding-timeline .ornament{position:static;width:70px;height:70px}.wedding-timeline strong{font-size:15px;font-weight:400}.guest-form{text-align:left;max-width:360px;margin:25px auto 0;display:grid;gap:14px;position:relative;z-index:1}.guest-form label{font-size:11px}.guest-form input,.guest-form select,.guest-form textarea{font-family:"Segoe UI",sans-serif;font-size:12px;border-color:#d7caba;margin-top:5px;background:#fff9}.guest-form small{font:9px/1.7 "Segoe UI",sans-serif;text-align:center;color:#a18c7b}.demo-feedback{font-size:11px;color:#967347;margin:20px 0 0}.wedding-section blockquote{text-align:left;border-left:1px solid #ccba9e;margin:20px 0;padding:0 15px;font-size:12px}.wedding-section blockquote strong{font-weight:400;font-style:italic}.wedding-section blockquote p{margin:8px 0}.gift-box{border:0;background:none;color:var(--ink);display:flex;flex-direction:column;align-items:center;gap:14px;margin:25px auto;font:12px Georgia}.gift-box span{font-size:70px;width:120px;height:100px;display:grid;place-items:center;border:1px solid #c3a778;border-radius:12px;box-shadow:0 5px 0 #cab28a;background:#eee0c4;color:var(--theme)}.bank-card{border:1px solid #d1baa2;background:#fff8;padding:20px;font-size:15px}.bank-card img{max-width:200px;max-height:230px;object-fit:contain;margin:auto}.thank-you{font-size:50px;font-style:italic;margin:0 0 22px}.section-thanks .couple-names{font-size:26px;margin-top:25px}.invitation-credit{display:block;font-size:10px;text-align:center;padding:20px;color:var(--ink);opacity:.55}.envelope-screen{background:radial-gradient(at 15% 20%,color-mix(in srgb,var(--theme),#fff 12%),var(--theme));min-height:calc(100vh - 42px);display:flex;align-items:center;justify-content:center;padding:50px 20px}.envelope-card{background:var(--paper);color:var(--theme);width:560px;padding:35px 55px 40px;border-radius:9px;position:relative;overflow:hidden;text-align:center;box-shadow:0 15px 40px #0004;animation:envelope-in .45s ease-out}.wax-seal{position:relative;z-index:1;width:55px;height:55px;border:4px double #ffffff52;border-radius:50%;background:var(--theme);color:#fff6e4;box-shadow:0 5px 12px #0003;display:grid;place-items:center;font-size:25px;margin:0 auto 20px}.envelope-card .couple-names{font-size:35px;line-height:1.1}.envelope-card .couple-names i{font-size:20px}.envelope-date{display:flex;justify-content:center;gap:10px;align-items:center;margin:20px 0}.envelope-date strong{font-size:25px;font-weight:400}.envelope-date span{font-size:10px}.envelope-card>p{font-size:14px}.envelope-flower{width:27%;height:65%;top:3%;opacity:.75}.envelope-flower.left{left:-2%}.envelope-flower.right{right:-2%;transform:scaleX(-1)}.layout-arch-v2 .envelope-card{background:#fbefd7}.embedded .envelope-screen{min-height:500px}.music-button{position:fixed;right:25px;bottom:25px;width:43px;height:43px;border-radius:50%;border:3px solid #fff7;background:var(--theme);color:#fff6df;box-shadow:0 5px 10px #0002;font-size:21px;z-index:3}.embedded .music-button{position:sticky;margin-left:auto;bottom:15px;margin-right:15px}.embedded .wedding-section{padding:33px 22px}.embedded .families{gap:13px}.embedded .families strong{font-size:12px}.embedded .invitation-shell h2{font-size:16px}.embedded .hero-envelope .couple-names{font-size:31px}.embedded .section-announcement .couple-names{font-size:27px}.embedded .section-ceremony{margin:15px 22px;padding:30px 20px}.embedded .glass-oval{height:365px;width:100%}.embedded .hero-glass{min-height:550px;padding:30px}.embedded .hero-arch-v2{min-height:530px;padding:27px 15px 35px}.embedded .v2-heading{font-size:13px}.embedded .hero-phoenix{min-height:580px}.embedded .hero-phoenix .couple-names{font-size:28px}.embedded .phoenix-band{margin-top:70px;height:80px}.embedded .phoenix-band .ornament{width:85px}.embedded .hero-phoenix .hero-welcome{margin-top:115px}@keyframes envelope-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1500px){.catalog-page{max-width:1400px}.template-grid{gap:35px 22px}.collection-hero{padding-top:58px}}
@media(max-width:1100px){.template-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.editor-workspace{grid-template-columns:minmax(360px,500px) 350px;gap:30px}.save-status{display:none}.online-header nav{margin-left:0}.editor-toolbar{gap:9px;padding:12px 20px}.back-link span{display:none}}
@media(max-width:800px){.template-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 15px}.online-header{padding:0 20px;height:68px}.online-header nav{gap:15px;font-size:11px}.online-brand{font-size:23px}.brand-symbol{width:30px;height:33px}.service-callout{padding:28px;flex-direction:column;align-items:flex-start;gap:22px}.editor-workspace{display:block;max-width:640px;margin:auto;padding:25px 22px 60px;background:none}.editor-form{width:100%}.live-preview{display:none}.editor-toolbar{flex-wrap:wrap;justify-content:space-between}.template-select{max-width:200px}.mode-switch{order:4;width:100%;justify-content:center}.editor-intro h1{font-size:24px}.template-detail{grid-template-columns:240px 1fr;gap:20px}.detail-image{height:420px}.feature-list{grid-template-columns:1fr;gap:9px}.collection-hero h1{font-size:30px}.catalog-tools{flex-wrap:wrap}.search-box{width:230px}.how-it-works>div{gap:20px}.invitation-page{max-width:600px}.editor-error{position:relative;top:0}}
@media(max-width:560px){.online-header{padding:0 15px;gap:12px;height:66px}.online-header nav a:last-child{display:none}.online-header nav{gap:0;margin-left:auto}.online-header .button{padding:9px 12px;font-size:11px}.online-brand{font-size:22px;gap:7px}.online-brand small{font-size:6px;letter-spacing:1px}.brand-symbol{width:27px;height:30px;font-size:22px}.catalog-page{padding:0 16px}.collection-hero{padding:35px 0 29px}.collection-hero h1{font-size:26px;margin:14px 0 11px}.collection-hero p{font-size:12px}.exclusive{font-size:9px;padding:6px 10px}.collection-hero small{font-size:9px}.eyebrow{font-size:8px;letter-spacing:2px}.catalog-tools{gap:13px}.filter-tabs{width:100%;justify-content:space-between;gap:0}.filter-tabs button{font-size:10px;padding:7px 12px}.search-box{width:100%}.result-count{font-size:10px}.template-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 12px}.template-image{border-radius:7px}.template-caption{padding-top:11px}.template-caption h2{font-size:11px}.template-caption>div{font-size:9px;gap:4px}.template-caption>a{font-size:10px}.template-badge{font-size:8px;padding:4px 7px;right:8px;top:8px}.service-callout{margin:45px 0;padding:25px 23px}.service-callout h2{font-size:24px;line-height:1.3}.service-callout p{font-size:11px}.how-it-works h2,.faq h2{font-size:23px;line-height:1.4}.how-it-works>div{grid-template-columns:1fr;margin:25px auto 50px;gap:25px}.how-it-works article b{font-size:27px}.how-it-works h3{margin:9px 0;font-size:12px}.how-it-works p{font-size:11px;max-width:240px}.faq{margin-bottom:50px}.faq summary{font-size:12px;padding:17px 4px}.online-footer{padding:30px 20px}.template-detail{display:block}.detail-image{width:100%;height:350px;margin-bottom:20px;object-fit:cover;object-position:top}.online-dialog{padding:25px 20px}.online-dialog h2{font-size:22px}.feature-list{grid-template-columns:1fr 1fr}.template-detail .button{font-size:12px}.editor-toolbar{padding:10px 13px;gap:10px}.template-select{max-width:190px;flex:1}.template-select select{font-size:10px}.editor-toolbar>.button{font-size:10px;padding:9px}.editor-workspace{padding:22px 13px 45px}.editor-intro h1{font-size:22px}.editor-section-heading{padding:13px}.section-disclosure{font-size:11px;gap:7px}.editor-section fieldset{padding:13px}.field-grid{gap:13px 10px}.field input,.field textarea,.field select{font-size:10px;padding:8px}.upload-control input{max-width:210px;font-size:9px}.editor-actions{gap:8px}.editor-actions .button,.editor-actions .text-button{font-size:10px}.preview-label{font-size:10px;padding:12px;gap:15px}.invitation-view-bar{padding:11px 13px;font-size:9px;gap:15px}.invitation-view-bar>span{max-width:130px;text-align:center}.invitation-shell{font-size:12px}.invitation-hero{min-height:600px;padding-top:28px}.hero-envelope .couple-names{font-size:35px}.hero-polaroid .couple-names{font-size:24px}.polaroid-composition{width:87%}.hero-duo{padding:90px 25px 40px;min-height:560px}.duo-row>img{height:210px}.duo-row h2{font-size:24px}.duo-row{gap:16px}.arch-photo{height:390px;width:92%}.arch-names{font-size:13px;gap:10px}.arch-names .ornament{width:55px;height:55px}.arch-title{padding:35px 25px 35px}.hero-arch{min-height:530px}.hero-glass{padding:25px;min-height:580px}.glass-oval{height:390px;width:88%}.glass-oval .couple-names{font-size:34px}.wreath-composition{width:80%}.wreath-composition .couple-names{font-size:33px}.hero-wreath{min-height:590px}.hero-arch-v2{min-height:570px;padding:25px 17px 45px}.v2-heading{font-size:13px}.v2-heading .ornament{width:28px}.hero-phoenix{min-height:620px}.hero-phoenix>.couple-names{font-size:30px}.phoenix-band{margin-top:85px;height:90px}.phoenix-band .ornament{width:95px}.hero-phoenix .hero-welcome{margin-top:120px}.wedding-section{padding:36px 25px}.wedding-section h2{font-size:17px}.section-ceremony{margin:15px 23px;padding:30px 20px}.wedding-gallery img{height:185px}.gallery-slider img{height:340px}.families{gap:17px}.families strong{font-size:12px}.families h3{font-size:13px}.section-announcement .couple-names{font-size:29px}.envelope-card{padding:30px 27px 35px}.envelope-card .couple-names{font-size:32px}.envelope-screen{padding:35px 20px}.account-page{margin:25px auto 55px}.account-page h1{font-size:29px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.envelope-bouquet{left:-8%;top:3%;width:38%;height:77%;transform:rotate(-15deg)}.invitation-page{background-blend-mode:multiply}.arch-title .save-date{overflow-wrap:anywhere}.couple-names span{max-width:100%}
/* Customer account and server storage controls. */
.online-header form{display:flex;align-items:center;gap:12px}.account-name{font-size:12px;color:var(--muted)}
.customer-login{width:100%;max-width:360px;display:grid;gap:18px;text-align:left;margin:14px auto 24px}.customer-login label,.link-settings label{display:grid;gap:8px;font-size:13px;font-weight:600}.customer-login input,.link-settings input{width:100%;padding:12px;border:1px solid #dbd5cc;border-radius:8px;background:white;font:inherit}.customer-login .button{width:100%;justify-content:center}.login-error{color:#a12336;background:#fff1f2;border:1px solid #ecc8ce;border-radius:8px;padding:12px}.link-settings,.media-library{padding:20px}.link-settings h2{font-size:18px;margin-top:0}.link-settings small,.media-library p{color:#827c73;font-size:12px;line-height:1.7}.invitation-url{font-size:12px;overflow-wrap:anywhere;background:#f6f2eb;padding:10px;border-radius:6px;user-select:all}.link-settings .editor-actions{margin:12px 0;gap:12px;flex-wrap:wrap}.media-library summary{font-size:13px;cursor:pointer;font-weight:600}.media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.media-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px}.media-grid small{display:block;font-size:10px;color:#827c73}.button:disabled{opacity:.55;cursor:wait}.text-button:disabled{opacity:.5;cursor:default}
@media(max-width:650px){.account-name{display:none}.online-header nav{gap:10px}.online-header nav a{font-size:11px}.online-header form{gap:0}.link-settings,.media-library{padding:16px}}

/* Brand uses the same mark and wordmark as the shop home page. */
.online-brand{gap:11px;font-style:normal;font-family:Georgia,"Times New Roman",serif;line-height:1.05;letter-spacing:-.8px}.online-brand .brand-mark{display:block;width:48px;height:48px;flex-shrink:0}.online-brand .brand-wordmark{display:flex;flex-direction:column;gap:3px}.online-brand .brand-label{font-family:Arial,Helvetica,sans-serif;font-size:10px;letter-spacing:2px;font-weight:500;text-transform:uppercase;color:#776e71}.online-brand i{font-size:29px;line-height:1.13;font-weight:400;color:#752b3e}.online-footer .brand-mark{width:42px;height:42px}.online-footer .online-brand i{font-size:27px}.account-logo{display:block;width:64px;height:64px;margin:0 auto 25px}.invitation-credit{color:#752b3e}@media(max-width:767px){.online-brand{gap:9px}.online-brand .brand-mark{width:42px;height:42px}.online-brand .brand-label{font-size:9px;letter-spacing:1.5px}.online-brand i{font-size:24px}}

/* Readable Vietnamese UI; wedding typography is isolated inside its own canvas. */
:root{font-family:"Noto Sans","Segoe UI",Arial,sans-serif;font-size:16px;line-height:1.55}
.online-header nav{font-size:14px}
.button,.button.small{font-size:14px;min-height:42px}
.text-button{font-size:14px}
.account-name{font-size:13px}
.editor-toolbar{flex-wrap:wrap;gap:12px}
.template-select{max-width:280px}
.template-select select{font-size:14px;min-height:42px}
.mode-switch button{font-size:14px;min-height:36px;padding:7px 14px}
.back-link{font-size:14px}
.save-status{font-size:13px}
.settings-button{gap:8px;padding:9px 14px;white-space:nowrap}
.editor-workspace{grid-template-columns:minmax(0,1fr) 390px;gap:32px;padding:34px 28px 70px}
.editor-form{min-width:0}
.editor-intro h1{font-family:"Noto Sans","Segoe UI",Arial,sans-serif;font-size:28px;font-weight:500;line-height:1.45;letter-spacing:0;overflow-wrap:break-word}
.editor-intro p{font-size:15px;color:#756b65;line-height:1.65}
.editor-intro .eyebrow{font-size:12px;letter-spacing:2px}
.editor-section-heading{padding:18px 20px;gap:14px;align-items:center}
.section-disclosure{flex:1;min-width:0;font-size:16px;line-height:1.5;gap:10px;align-items:center;min-height:32px}
.ui-icon{display:block;width:20px;height:20px;flex:0 0 20px}
.section-disclosure .chevron{width:18px;height:18px;min-width:0;flex:0 0 18px;color:#82736c;transition:transform .15s}
.chevron.is-collapsed{transform:rotate(-90deg)}
.section-icon{color:#8c6e73}
.section-title{min-width:0;overflow-wrap:break-word}
.section-toggle{font-size:12px;flex-shrink:0;gap:8px}
.required-section{font-size:12px;line-height:1.5;padding:4px 8px}
.toggle{width:36px;height:22px;padding:3px}
.toggle>span{width:16px;height:16px}
.toggle.on>span{transform:translateX(14px)}
.editor-section fieldset{padding:20px}
.field-grid{gap:20px 18px;grid-template-columns:repeat(2,minmax(0,1fr))}
.field{min-width:0}
.field label{font-size:14px;line-height:1.6;font-weight:500;color:#65584f;margin-bottom:8px}
.field input,.field textarea,.field select{font-size:16px;line-height:1.5;padding:11px 12px;min-height:46px}
.field textarea{min-height:100px}
.field input[type="color"]{padding:6px}
.boolean-field{font-size:14px;gap:18px;line-height:1.6}
.upload-control{min-width:0;align-items:center;gap:16px;padding:12px}
.upload-control>div{min-width:0}
.upload-control small{font-size:13px;color:#7a6b62;line-height:1.65}
.upload-control .text-button,.editor-actions .button,.editor-actions .text-button{font-size:14px}
.disabled-section fieldset{opacity:.65}
.media-library summary{font-size:15px;line-height:1.65}
.media-library p,.media-grid small{font-size:13px;line-height:1.7}
.preview-heading,.preview-heading .text-button,.live-preview>small{font-size:13px;line-height:1.6}
.preview-label,.preview-label button,.editor-error{font-size:14px;line-height:1.6}
.online-dialog{font-family:"Noto Sans","Segoe UI",Arial,sans-serif}
.online-dialog h2{font-family:inherit;font-size:24px;font-weight:600;line-height:1.5}
.online-dialog p{font-size:15px;line-height:1.75}
.online-dialog .link-settings{border:0;box-shadow:none;padding:0;margin:0;overflow:visible}
.online-dialog .link-settings h2{font-size:18px;margin:0 0 20px}
.link-settings label,.customer-login label{font-size:14px}
.link-settings input,.customer-login input{font-size:16px;font-weight:400;line-height:1.5}
.link-settings small{font-size:13px;line-height:1.7;display:block}
.link-settings .invitation-url{font-size:14px}
.link-settings .editor-actions{align-items:center;gap:14px}
.share-preview strong{font-family:"Noto Serif",serif}
.share-preview p{font-size:14px}

/* Every text role is owned by the template; a section may override these variables. */
.invitation-shell,.wedding-section,.envelope-screen,.invitation-hero{font-family:var(--font-body)}
.invitation-shell h2,.invitation-shell h3{font-family:var(--font-heading)}
.invitation-shell .couple-names{font-family:var(--font-names);font-style:normal}
.invitation-shell .couple-names i{font-family:var(--font-ampersand);font-style:normal}
.invitation-shell .couple-honorific{display:block;font-family:var(--font-honorific);font-size:14px;line-height:1.7;margin-top:8px;font-weight:400}
.invitation-hero .couple-names,.invitation-hero .arch-names,.invitation-hero .duo-row h2,.invitation-hero .v2-heading{font-family:var(--font-hero-names)}
.invitation-hero .couple-names i{font-family:var(--font-hero-ampersand)}
.invitation-hero .arch-names small,.invitation-hero .duo-row small,.invitation-hero .v2-heading small{font-family:var(--font-hero-honorific)}
.save-date,.hero-welcome,.arch-love{font-family:var(--font-intro)}
.event-date,.envelope-date{font-family:var(--font-date)}
.wedding-calendar h4{font-family:var(--font-calendar);font-weight:400;font-size:30px}
.section-thanks>p:not(.thank-you){font-family:var(--font-thanks)}
.invitation-shell .thank-you{font-family:"The Nautigal",cursive;font-style:normal}
.invitation-shell .wedding-button{font-family:var(--font-body)}
.invitation-shell .photo-placeholder{font-family:"Noto Sans",sans-serif}

@media(max-width:1100px){
  .editor-workspace{grid-template-columns:minmax(0,1fr) 340px;gap:28px;padding:28px 22px 60px}
  .mode-switch{margin-left:auto;margin-right:0}
}
@media(max-width:800px){
  .editor-workspace{display:block;max-width:none;padding:26px 20px 60px}
  .editor-toolbar{gap:10px;padding:12px 18px}
  .mode-switch{order:5;width:100%;margin:0}
  .editor-toolbar .template-select{max-width:none}
  .editor-intro h1{font-size:25px}
}
@media(max-width:560px){
  .online-header{height:auto;min-height:76px;flex-wrap:wrap;padding:12px 16px;gap:12px}
  .online-header nav{order:3;width:100%;justify-content:center;gap:24px;margin:0}
  .online-header nav a,.online-header nav a:last-child{display:block;font-size:14px}
  .online-header .button{font-size:13px;min-height:40px;padding:9px 12px}
  .editor-toolbar{gap:8px;padding:10px 12px}
  .editor-toolbar .back-link{display:none}
  .editor-toolbar .template-select{flex:1 1 calc(100% - 120px);min-width:0;max-width:calc(100% - 104px)}
  .editor-toolbar .template-select select{font-size:14px;min-width:0}
  .settings-button{padding:9px 10px;font-size:14px}
  .editor-toolbar>.button.primary{font-size:14px;order:4;width:100%;min-height:44px}
  .mode-switch{order:3;flex:1 1 100%;justify-content:center}
  .editor-workspace{padding:24px 12px 50px}
  .editor-intro h1{font-size:24px}
  .editor-section-heading{padding:16px 14px;gap:10px}
  .section-disclosure{font-size:15px;gap:8px}
  .editor-section fieldset{padding:16px 14px}
  .field-grid{gap:18px 12px;grid-template-columns:1fr}
  .field input,.field textarea,.field select{font-size:16px;padding:10px;min-height:46px}
  .required-section{font-size:11px;padding:4px 6px}
  .section-toggle{font-size:11px;gap:5px}
  .link-settings .editor-actions{flex-wrap:wrap}
  .media-library{padding:18px 14px}
  .online-dialog{padding:26px 20px}
}
@media(max-width:380px){.field-grid{grid-template-columns:1fr}.field.full,.image-field,.boolean-field{grid-column:auto}}

.section-move{display:flex;gap:4px}.section-move button{border:1px solid #e7e2df;border-radius:5px;background:#fff;color:#695b54;min-width:30px;min-height:32px;font-size:18px;cursor:pointer}.section-move button:disabled{opacity:.3;cursor:default}.section-disclosure{min-width:0;flex:1}.section-title{overflow-wrap:anywhere}@media(max-width:480px){.editor-section-heading{flex-wrap:wrap}.section-toggle{margin-left:auto}}

.section-picker{margin:24px 0;padding:20px;background:#fff;border:1px solid #e6ded5;border-radius:16px}.section-picker>label{display:block;font-weight:600;margin-bottom:10px}.section-picker>div{display:flex;gap:12px;flex-wrap:wrap}.section-picker select{min-width:160px;flex:1;border:1px solid #d8d0c6;border-radius:8px;padding:12px;background:white;color:inherit;font:inherit}.section-picker small{display:block;margin-top:12px;color:#73695f}
.gallery-dropzone{position:relative;display:flex!important;min-height:200px;align-items:center;justify-content:center;flex-direction:column;gap:10px;padding:24px 16px;text-align:center;border:2px dashed #bfae98;border-radius:16px;background:#faf7f2;cursor:pointer}.gallery-dropzone input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.gallery-dropzone:focus-within{outline:3px solid #79624e;outline-offset:3px}.gallery-dropzone.dragging{background:#eee5d9;border-color:#79624e}.gallery-dropzone>span{font-size:32px}.gallery-dropzone small{color:#73695f}.gallery-dropzone.uploading{opacity:.65;cursor:wait}.gallery-upload-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(95px,1fr));gap:12px}.gallery-upload-grid>div{position:relative;aspect-ratio:1}.gallery-upload-grid img{width:100%;height:100%;object-fit:cover;border-radius:10px}.gallery-upload-grid button{position:absolute;right:5px;top:5px;width:30px;height:30px;border-radius:50%;background:white;border:1px solid #ded6cc;color:#4b3025;font-size:22px;cursor:pointer}.gallery-upload>p{font-size:13px;color:#73695f}

/* Preview has its own viewport, shared public renderer and public styles. */
.invitation-preview-frame{display:block;width:100%;height:100%;border:0;background:#fff}
.phone-content{overflow:hidden;scrollbar-width:none}.phone-speaker{pointer-events:none}
.editor-full-preview>.invitation-preview-frame{height:max(500px,calc(100dvh - 210px))}

/* Clear feedback and a single row of mobile actions. */
.upload-warning,.editor-error{background:#fff4df;color:#713b09;border:1px solid #d99429;border-left:4px solid #bc710e;border-radius:8px;padding:14px 16px;line-height:1.6;overflow-wrap:anywhere}
.upload-warning{margin:12px 0}.upload-warning strong,.editor-error strong{display:block;font-size:14px}.upload-warning p,.editor-error p{margin:5px 0 0;font-size:14px;color:inherit}
.editor-error{position:relative;top:auto;z-index:auto;margin:12px auto;max-width:1000px;align-items:flex-start;justify-content:space-between}.editor-error button{color:inherit;min-width:36px;min-height:36px;flex-shrink:0}
.current-template{font-size:14px;color:#695b54}.toolbar-more{display:none}.toolbar-actions{display:grid;gap:12px}.toolbar-actions p{margin:0;line-height:1.6}.toolbar-actions .template-select{max-width:none}.toolbar-actions select{width:100%;min-width:0}.toolbar-actions .button{justify-content:center}.action-save-status{color:#655d55;font-size:14px}
@media(max-width:800px){
 .editor-toolbar{flex-wrap:nowrap;gap:8px;padding:8px 10px}
 .editor-toolbar>.back-link,.editor-toolbar>.template-select,.editor-toolbar>.current-template,.editor-toolbar>.settings-button,.editor-toolbar>.save-status{display:none}
 .editor-toolbar>.mode-switch{order:0;flex:1 1 auto;min-width:0;width:auto;margin:0;justify-content:center}
 .editor-toolbar .mode-switch button{font-size:13px;padding:6px 9px;min-height:36px;white-space:nowrap}
 .editor-toolbar>.toolbar-more{display:flex;order:2;align-items:center;justify-content:center;font-size:24px;line-height:1;padding:0;width:44px;min-height:44px;flex:0 0 44px}
 .editor-toolbar>.button.primary{order:1;width:auto;flex:0 0 auto;min-height:44px;padding:9px 12px;font-size:13px;white-space:nowrap}
 .editor-error{margin:10px 12px}
}
@media(max-width:360px){.editor-toolbar{gap:5px;padding:8px 6px}.editor-toolbar .mode-switch button{font-size:12px;padding:6px}.editor-toolbar>.button.primary{font-size:12px;padding:9px 8px}}

.editor-form>.editor-section{scroll-margin-top:90px}

/* Toasts stay in the viewport and enter the top layer above modal dialogs. */
.online-toast{position:fixed;inset:auto max(16px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) auto;z-index:1000;display:flex;align-items:flex-start;gap:16px;width:420px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 40px);margin:0;padding:16px 18px;border:1px solid #d99429;border-left:4px solid #bc710e;border-radius:12px;background:#fff4df;color:#713b09;box-shadow:0 12px 40px #302d2d26;line-height:1.6;overflow:auto;overflow-wrap:anywhere;font-family:"Segoe UI",Arial,sans-serif;text-align:left;animation:toast-in .18s ease-out}
.online-toast>div{flex:1;min-width:0}.online-toast strong{display:block;font-size:14px}.online-toast p{margin:4px 0 0;font-size:14px;color:inherit}.online-toast button{flex-shrink:0;display:grid;place-items:center;width:36px;min-height:36px;padding:0;border:0;border-radius:6px;background:transparent;color:inherit;font-size:24px;line-height:1}.online-toast button:hover{background:#0000000a}.online-toast-success{border-color:#8fb39a;border-left-color:#35734a;background:#eff9f1;color:#245333}
@keyframes toast-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.online-toast{animation:none}}

.settings-tabs { display: flex; gap: 8px; margin: 16px 0; border-bottom: 1px solid #ddd; }
.settings-tabs button { padding: 10px 18px; border: 0; background: transparent; cursor: pointer; color: inherit; font: inherit; border-bottom: 3px solid transparent; }
.settings-tabs button[aria-selected="true"] { border-color: #9b2948; color: #9b2948; font-weight: 700; }
.custom-css-input { width: 100%; box-sizing: border-box; font-family: monospace; tab-size: 2; resize: vertical; }
.custom-css-help { margin: 16px 0; }
.custom-css-help pre { white-space: pre-wrap; overflow-wrap: anywhere; }

/* One wedding milestone per row; the preview retains its existing width. */
.timeline-editor-rows{grid-column:1/-1;display:grid;gap:16px;min-width:0}
.timeline-editor-row{display:grid;grid-template-columns:minmax(150px,0.8fr) minmax(130px,0.6fr) minmax(180px,1.6fr);gap:12px 18px;padding:18px;border:1px solid #e8e1db;border-radius:7px;background:#fdfcfb;align-items:start}
.timeline-row-title{grid-column:1/-1;font-size:14px;font-weight:600;color:#65584f}
.timeline-editor-row .field{display:flex;flex-direction:column;position:relative}
.timeline-editor-row .field>img{position:absolute;right:8px;top:0;width:28px!important;height:28px!important}
.timeline-editor-row .field label{padding-right:36px;min-height:28px}
@media(min-width:801px) and (max-width:1100px){.timeline-editor-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.timeline-editor-row .field:last-child{grid-column:1/-1}}
@media(max-width:560px){.timeline-editor-row{grid-template-columns:minmax(0,1fr);padding:14px;gap:12px}.timeline-editor-row .field{grid-column:1/-1}}


.custom-message-section{padding:48px 24px;text-align:center;color:inherit;font-family:inherit}
[data-section-title]{text-align:center;overflow-wrap:anywhere}
[data-section-body]{min-width:0;width:100%;max-width:640px;margin-inline:auto;text-align:center;overflow-wrap:anywhere}
[data-section-body] p{white-space:pre-wrap;margin:8px 0}
.inline-gift-details{box-sizing:border-box;padding:24px}
.gift-details img{display:block;width:100%;max-width:300px;height:auto;object-fit:contain;margin:16px auto}
[data-action="gift"][hidden],[data-inline-gift][hidden]{display:none!important}
