@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(../media/be-vietnam-pro-latin-400-normal.19fn_nsidnous.woff2)format("woff2"),url(../media/be-vietnam-pro-latin-400-normal.3mkx7v1a17h2_.woff)format("woff")}
@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(../media/be-vietnam-pro-vietnamese-400-normal.0ir3lowcg2jd4.woff2)format("woff2"),url(../media/be-vietnam-pro-vietnamese-400-normal.3jkasxo4k2rz2.woff)format("woff")}
@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(../media/be-vietnam-pro-latin-500-normal.1052sz4r89346.woff2)format("woff2"),url(../media/be-vietnam-pro-latin-500-normal.1md_fj_5nstf-.woff)format("woff")}
@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(../media/be-vietnam-pro-vietnamese-500-normal.20bffioughox4.woff2)format("woff2"),url(../media/be-vietnam-pro-vietnamese-500-normal.32qcs-ohqbn20.woff)format("woff")}
@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(../media/cormorant-garamond-latin-400-normal.1fm7t8dmldrtt.woff2)format("woff2"),url(../media/cormorant-garamond-latin-400-normal.38f0-_0_stt74.woff)format("woff")}
@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(../media/cormorant-garamond-vietnamese-400-normal.3jk2oynaxz96y.woff2)format("woff2"),url(../media/cormorant-garamond-vietnamese-400-normal.2nfyw9kszoq2g.woff)format("woff")}
@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(../media/cormorant-garamond-latin-500-normal.1ua6lqq3rsqyo.woff2)format("woff2"),url(../media/cormorant-garamond-latin-500-normal.410p0bora3wvy.woff)format("woff")}
@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(../media/cormorant-garamond-vietnamese-500-normal.1i0m26ht5i4lh.woff2)format("woff2"),url(../media/cormorant-garamond-vietnamese-500-normal.3ksi3r8s137fv.woff)format("woff")}
@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(../media/cormorant-garamond-latin-400-italic.1zhb_kb4w2oq1.woff2)format("woff2"),url(../media/cormorant-garamond-latin-400-italic.3qhckdzyyfe93.woff)format("woff")}
@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(../media/cormorant-garamond-vietnamese-400-italic.31b_eihkav8qt.woff2)format("woff2"),url(../media/cormorant-garamond-vietnamese-400-italic.0p0t1-ufjc6gk.woff)format("woff")}
:root{--background:#faf8f3;--surface:#f0ece4;--text:#383a31;--muted:#77796d;--primary:#5b664f;--accent:#a38a60;--on-primary:#fffdf6;--border:#deded2;--font-heading:"Cormorant Garamond", Georgia, serif;--font-body:"Be Vietnam Pro", Arial, sans-serif;--font-scale:1;--radius:3px;--border-width:1px;--section-space:100px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:62px}body{background:var(--background);color:var(--text);font-family:var(--font-body);margin:0;font-size:14px;line-height:1.8}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}a{color:inherit;text-decoration:none}button{color:inherit}h1,h2,h3,h4,p{margin:0}h1,h2,h3{font-family:var(--font-heading);font-weight:400;line-height:1.13}h2{font-size:clamp(34px,4.2vw,54px)}h3{font-size:30px}em{font-weight:400}img{max-width:100%;display:block}button svg,a svg{flex-shrink:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--primary);outline-offset:5px}::selection{background:var(--border)}.eyebrow{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:500;line-height:1.8}.button{border:1px solid var(--primary);background:var(--primary);min-height:48px;color:var(--on-primary);border-radius:var(--radius);font-size:12px;font-family:var(--font-body);justify-content:center;align-items:center;gap:26px;padding:15px 25px;transition:opacity .2s,transform .2s;display:inline-flex}.button:hover{opacity:.88;transform:translateY(-2px)}.button-outline{color:var(--primary);background:0 0}.text-button{text-underline-offset:5px;background:0 0;border:0;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:8px 0;font-size:12px;text-decoration:underline;display:inline-flex}.media{object-fit:cover;width:100%;height:100%}.ornament,.divider{background:var(--accent);pointer-events:none;display:block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.ornament{width:150px;height:150px}.divider{width:150px;height:28px;margin:0 auto}.skip-link{z-index:50;background:var(--background);padding:10px;position:absolute;top:-100px;left:12px}.skip-link:focus{top:60px}.catalog{max-width:1600px;margin:auto;padding:0 6vw}.catalog-nav{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;height:106px;display:flex}.brand{font-family:var(--font-heading);letter-spacing:-1px;font-size:37px;line-height:1.1;display:block}.brand span{font-family:var(--font-body);letter-spacing:.28em;margin-top:10px;margin-left:2px;font-size:7px;display:block}.catalog-nav>div{align-items:center;gap:38px;font-size:11px;display:flex}.nav-current{border-bottom:1px solid var(--primary);padding:10px 0}.nav-playground{align-items:center;gap:10px;display:flex}.catalog-header{padding:76px 0 0;position:relative}.catalog-header>.eyebrow{align-items:center;gap:11px;font-size:9px;display:flex}.catalog-header>.eyebrow span{background:var(--primary);border-radius:100%;width:6px;height:6px;display:block}.catalog-header h1{letter-spacing:-2.8px;margin:23px 0;font-size:clamp(59px,6.5vw,94px);line-height:1.03}.catalog-header h1 em{color:var(--primary)}.catalog-header>p:not(.eyebrow){color:var(--muted);font-size:13px;line-height:1.95}.header-meta{border-bottom:1px solid var(--border);letter-spacing:.12em;color:var(--muted);justify-content:space-between;margin-top:46px;padding-bottom:30px;font-size:9px;display:flex}.header-meta span:first-child{letter-spacing:0;align-items:center;gap:9px;display:flex}.catalog-header-art{flex-direction:column;justify-content:center;align-items:center;width:250px;height:280px;display:flex;position:absolute;top:55px;right:8%;transform:rotate(-8deg)}.catalog-header-art .ornament{opacity:.65;background:#959c81;width:215px;height:185px}.catalog-header-art>span{text-align:center;font-family:var(--font-heading);color:var(--accent);font-size:23px;line-height:1.1}.catalog-header-art em{font-size:30px}.collection{padding:28px 0 64px}.collection-toolbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:32px;display:flex}.filter-list{flex-wrap:wrap;gap:6px;display:flex}.filter-list button{min-height:44px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:30px;padding:10px 19px;font-size:11px}.filter-list button[aria-pressed=true]{border-color:var(--primary);background:var(--primary);color:var(--on-primary)}.collection-count{color:var(--muted);white-space:nowrap;font-size:10px}.template-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 27px;display:grid}.template-card{min-width:0}.template-preview{background:var(--background);height:450px;color:var(--text);border:1px solid var(--border);transition:transform .4s;display:block;position:relative;overflow:hidden}.template-preview:hover{transform:translateY(-5px)}.preview-top{letter-spacing:.17em;z-index:2;justify-content:space-between;font-size:6px;display:flex;position:absolute;inset:15px 17px auto}.preview-copy{z-index:1;text-align:center;padding:54px 18px 0;position:relative}.preview-copy .ornament{width:80px;height:60px;margin:0 auto 10px}.preview-kicker{letter-spacing:.2em;margin-bottom:16px;font-size:6px}.preview-copy h2{font-family:var(--font-heading);font-size:40px;line-height:1.03}.preview-copy h2 em{margin:5px 0;font-size:25px;display:block}.preview-date{letter-spacing:.18em;margin-top:18px;font-size:9px}.preview-art{height:100%;position:absolute;inset:0}.preview-link{background:var(--background);color:var(--text);z-index:3;border-radius:20px;align-items:center;gap:7px;padding:7px 12px;font-size:9px;display:flex;position:absolute;bottom:14px;right:14px}.preview--ceremonial{background:var(--primary);color:var(--on-primary);outline:1px solid var(--accent);outline-offset:-12px}.preview--ceremonial .preview-art{opacity:.9;border-radius:100px 100px 0 0;height:125px;inset:auto 25% 20px;overflow:hidden}.preview--ceremonial .preview-copy .ornament{height:55px}.preview--ceremonial .preview-copy{padding-top:40px}.preview--arched .preview-copy{padding-top:34px}.preview--arched .preview-copy h2{font-size:31px}.preview--arched .preview-copy h2 em{margin:0 5px;font-size:22px;display:inline}.preview--arched .preview-copy .ornament{height:44px}.preview--arched .preview-art{border-radius:160px 160px 0 0;height:235px;inset:auto 15% 0;overflow:hidden}.preview--garden .preview-copy{padding-top:23px}.preview--garden .preview-copy h2{font-size:34px;font-style:italic}.preview--garden .preview-copy .ornament{opacity:.5;width:100px;height:100px;position:absolute;top:5px;left:0;transform:rotate(-25deg)}.preview--garden .preview-art{border:8px solid var(--surface);height:215px;inset:auto 17% 30px;transform:rotate(-6deg);box-shadow:0 6px 20px #00000012}.preview--garden .preview-date{margin-top:12px}.preview--garden .preview-copy h2 em{margin:0 8px;font-size:22px;display:inline}.preview--split{background:var(--primary);color:var(--on-primary)}.preview--split .preview-art{filter:sepia(.3);width:47%;inset:0 auto 0 0}.preview--split .preview-copy{margin-left:47%;padding:65px 8px 0}.preview--split .preview-copy h2{font-size:31px}.preview--split .preview-copy .ornament{width:60px}.preview--split .preview-date{font-size:7px}.preview--editorial .preview-copy{text-align:left;padding:45px 25px 0}.preview--editorial .preview-copy .ornament,.preview--editorial .preview-kicker{display:none}.preview--editorial .preview-copy h2{font-family:var(--font-body);letter-spacing:-1.5px;font-size:33px;line-height:1.2}.preview--editorial .preview-copy h2 em{font-family:var(--font-heading);margin:0 9px;font-size:30px;display:inline}.preview--editorial .preview-art{filter:grayscale();height:255px;inset:auto 20px 35px}.preview--editorial .preview-date{margin-top:8px}.template-info{justify-content:space-between;align-items:center;gap:12px;padding-top:22px;display:flex}.template-info .eyebrow{letter-spacing:.14em;font-size:8px}.template-info h3{margin-top:7px;font-size:29px}.template-info h3 span{font-family:var(--font-body);color:var(--muted);letter-spacing:.05em;margin-top:9px;font-size:9px;display:block}.template-info>a{border:1px solid var(--border);border-radius:50%;justify-content:center;align-items:center;min-width:44px;height:44px;display:flex}.template-description{color:var(--muted);max-width:340px;margin-top:14px;font-size:11px}.collection-note{background:var(--surface);border:1px solid var(--border);text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:450px;margin-bottom:90px;padding:30px 18px;display:flex;position:relative}.collection-note>svg{color:var(--accent);margin-bottom:20px}.collection-note>p:first-of-type{letter-spacing:.13em;font-size:8px}.collection-note h2{margin:25px 0 17px;font-size:34px}.collection-note h2 em{color:var(--primary)}.collection-note>p:nth-of-type(2){color:var(--muted);font-size:11px}.collection-note>a{border-bottom:1px solid var(--primary);align-items:center;gap:15px;margin-top:25px;padding-bottom:9px;font-size:11px;display:flex}.note-bottom{letter-spacing:.13em;color:var(--muted);align-items:center;gap:7px;margin-top:40px;font-size:7px;display:flex}.catalog-promise{border-top:1px solid var(--border);border-bottom:1px solid var(--border);justify-content:space-between;gap:20px;padding:33px 0;display:flex}.catalog-promise span{font-family:var(--font-heading);color:var(--accent);align-items:center;gap:20px;font-size:19px;display:flex}.catalog-promise strong{font-family:var(--font-body);color:var(--text);font-size:10px;font-weight:400}.catalog-footer{justify-content:space-between;align-items:center;gap:20px;padding:40px 0;display:flex}.catalog-footer p,.catalog-footer>span{color:var(--muted);font-size:9px}.preview-bar{z-index:10;background:#faf8f3;border-bottom:1px solid #deded2;justify-content:space-between;align-items:center;gap:10px;height:50px;padding:0 25px;font-size:10px;display:flex;position:relative}.preview-bar>a{align-items:center;gap:8px;min-height:44px;display:flex}.preview-bar i{color:#77796d;letter-spacing:.1em;font-size:8px;font-style:normal}.wedding{color:var(--text);background-color:var(--background);background-image:var(--texture);font-family:var(--font-body);overflow:clip;container-type:inline-size}.wedding h2,.wedding h3{font-family:var(--font-heading)}.section{padding:var(--section-space) max(24px, calc((100% - 1000px) / 2));position:relative}.section-heading{text-align:center;max-width:650px;margin:0 auto 48px}.section-heading h2{margin-top:12px}.section-heading>p:last-child:not(.eyebrow){color:var(--muted);margin-top:20px;font-size:13px}.section p,.section h2,.section h3{overflow-wrap:break-word}.wedding[data-density=compact]{--section-space:clamp(60px, 7vw, 90px)}.hero{isolation:isolate;min-height:680px;padding:64px max(24px,50% - 550px) 72px;position:relative}.hero-copy{text-align:center;z-index:2;position:relative}.hero .eyebrow{color:inherit;font-size:10px}.couple-names{margin:22px 0 26px;font-size:clamp(58px,6vw,88px);line-height:1.02}.couple-names span{display:block}.couple-names em{color:var(--accent);margin:9px 0;font-family:Cormorant Garamond,Georgia,serif;font-size:.57em;font-style:italic;display:block}.hero-date{letter-spacing:.16em;font-size:19px;font-family:var(--font-heading);margin:24px 0 10px}.hero-location{letter-spacing:.2em;font-size:8px}.hero-small{font-family:var(--font-heading);margin-top:25px;font-size:21px;font-style:italic}.hero-cta{margin-top:28px}.hero-scroll{letter-spacing:.17em;z-index:3;justify-content:center;align-items:center;gap:9px;width:100%;min-height:32px;font-size:7px;display:flex;position:absolute;bottom:20px;left:0}.hero-art{overflow:hidden}.hero--ceremonial{background:var(--primary);color:var(--on-primary);outline:1px solid var(--accent);outline-offset:-18px;grid-template-columns:1.1fr .9fr;align-items:center;gap:50px;min-height:770px;display:grid}.hero--ceremonial .hero-symbol{color:var(--accent);margin-bottom:23px;font-family:serif;font-size:48px;line-height:1}.hero--ceremonial .couple-names{font-size:72px}.hero--ceremonial .hero-art{border:1px solid var(--accent);border-radius:220px 220px 0 0;height:520px;padding:9px}.hero--ceremonial .hero-art img{border-radius:220px 220px 0 0}.hero--ceremonial .button{color:var(--on-primary);border-color:var(--accent);background:0 0}.hero-corner{opacity:.5;width:130px;height:160px;position:absolute;top:25px}.hero-corner.left{left:25px;transform:rotate(-35deg)}.hero-corner.right{right:25px;transform:rotate(35deg)}.hero--arched{grid-template-columns:1fr 1fr;align-items:center;gap:50px;min-height:740px;display:grid}.hero--arched .hero-copy>.ornament{height:100px;margin:20px auto 0}.hero--arched .hero-art{border-radius:250px 250px 0 0;height:570px;position:relative}.arch-caption{text-align:center;width:100%;color:var(--on-primary);font-size:34px;font-style:italic;font-family:var(--font-heading);position:absolute;bottom:25px;left:0}.hero--garden{background:radial-gradient(ellipse at 0 0, var(--surface), transparent 70%);grid-template-columns:1fr 1fr;align-items:center;gap:24px 60px;min-height:780px;display:grid}.hero--garden .hero-art{border:14px solid var(--surface);height:470px;margin:20px;transform:rotate(5deg);box-shadow:0 18px 40px #00000010}.hero--garden .hero-copy{grid-column:1}.hero--garden .couple-names{font-style:italic}.garden-cta{text-align:center;z-index:3;grid-column:1;margin-top:-140px}.garden-flower{opacity:.35;width:230px;height:240px;position:absolute}.garden-flower.left{bottom:45px;left:-55px;transform:rotate(40deg)}.garden-flower.right{top:10px;right:-50px;transform:rotate(-40deg)}.hero--split{background:var(--primary);color:var(--on-primary);grid-template-columns:1fr 1fr;min-height:760px;padding:0 0 60px;display:grid}.hero--split .hero-art{height:720px}.hero--split .hero-copy{align-self:center;padding:60px 30px 40px}.hero--split .monogram{font-family:var(--font-heading);letter-spacing:-8px;color:var(--accent);border:1px solid var(--accent);border-radius:50%;width:95px;height:100px;margin:0 auto 35px;padding-right:7px;font-size:56px;font-style:italic;line-height:95px;display:block}.hero--split .couple-names{text-transform:uppercase;font-size:70px}.hero--split .hero-cta{border-color:var(--accent);color:var(--on-primary)}.hero--editorial{min-height:auto;padding-top:36px;padding-bottom:100px}.editorial-top{border-bottom:1px solid var(--border);justify-content:space-between;padding-bottom:16px;font-size:10px;display:flex}.hero--editorial .hero-copy{text-align:left;justify-content:space-between;align-items:flex-end;gap:20px;padding:27px 0 35px;display:flex}.hero--editorial .couple-names{letter-spacing:-.06em;font-size:clamp(45px,6.4vw,85px);font-family:var(--font-body);margin:0;line-height:1.12}.hero--editorial .couple-names span{display:inline}.hero--editorial .couple-names em{margin:0 15px;font-size:1em;display:inline}.editorial-note{min-width:150px;color:var(--muted);text-align:right;font-size:11px}.hero--editorial .hero-art{filter:grayscale();height:470px;position:relative}.hero--editorial .hero-art img{object-position:center 43%}.photo-label{letter-spacing:.16em;background:var(--background);padding:5px 9px;font-size:8px;position:absolute;bottom:18px;left:20px}.editorial-bottom{justify-content:space-between;align-items:center;display:flex}.editorial-bottom>p{letter-spacing:.13em;font-size:8px}.invitation{text-align:center;max-width:none}.invitation>.eyebrow{margin:30px 0 17px}.invitation h2{font-size:clamp(30px,4vw,46px)}.invitation-copy{max-width:660px;color:var(--muted);margin:26px auto;font-size:14px;line-height:2.1}.signature{font-family:var(--font-heading);color:var(--primary);margin:28px 0;font-size:30px;font-style:italic}.families{background:var(--surface);text-align:center}.family-grid{grid-template-columns:1fr 1fr;gap:30px;display:grid}.family-grid>div+div{border-left:1px solid var(--border)}.family-grid h3{margin:15px 0;font-size:25px;line-height:1.6}.family-grid>div>p:last-child{color:var(--muted);font-size:12px}.couple-grid{grid-template-columns:1fr 1fr;gap:60px;display:grid}.couple-grid article:nth-child(2){padding-top:65px}.couple-grid img{height:400px}.couple-grid article>div{padding:25px 0}.couple-grid h3{margin:8px 0 16px}.couple-grid p:last-child{color:var(--muted);max-width:390px;font-size:12px}.story{background:var(--surface)}.story-grid{grid-template-columns:repeat(3,1fr);gap:34px;display:grid}.story-year{font-family:var(--font-heading);color:var(--accent);border-bottom:1px solid var(--border);margin-bottom:24px;font-size:57px;display:block}.story-grid h3{margin-bottom:16px;font-size:26px}.story-grid p{color:var(--muted);font-size:12px;line-height:1.9}.events-grid{grid-template-columns:1fr 1fr;gap:26px;display:grid}.event-card{border:var(--border-width) solid var(--border);text-align:center;border-radius:var(--radius);background:var(--background);padding:35px 28px;position:relative}.event-number{font-family:var(--font-heading);color:var(--accent);font-size:20px}.event-card h3{margin:14px 0 25px;font-size:38px}.event-date{border-top:1px solid var(--border);border-bottom:1px solid var(--border);justify-content:center;align-items:center;gap:22px;margin-bottom:26px;padding:16px 0;display:flex}.event-date strong{font-family:var(--font-heading);font-size:28px;font-weight:400}.event-date span{border-left:1px solid var(--border);padding-left:22px;font-size:12px}.event-card h4{margin-bottom:15px;font-size:13px;font-weight:500}.event-address{color:var(--muted);justify-content:center;align-items:center;gap:6px;font-size:11px;display:flex}.event-address svg{flex-shrink:0}.event-note{color:var(--muted);margin:12px 0 24px;font-size:10px}.countdown{background:var(--primary);color:var(--on-primary);text-align:center}.countdown .eyebrow{color:inherit}.countdown-grid{grid-template-columns:repeat(4,1fr);max-width:650px;margin:30px auto 0;display:grid}.countdown-grid>div+div{border-left:1px solid color-mix(in srgb, var(--on-primary) 25%, transparent)}.countdown-grid strong{font-family:var(--font-heading);font-variant-numeric:tabular-nums;font-size:65px;font-weight:400;line-height:1.1;display:block}.countdown-grid span{letter-spacing:.15em;margin-top:14px;font-size:10px;display:block}.schedule{max-width:650px;margin:0 auto;padding:0;list-style:none}.schedule li{grid-template-columns:70px 30px 1fr;align-items:start;gap:20px;padding-bottom:40px;display:grid;position:relative}.schedule li:last-child{padding-bottom:0}.schedule li:not(:last-child):before{content:"";background:var(--border);width:1px;position:absolute;top:14px;bottom:-14px;left:104px}.schedule time{color:var(--primary);font-size:16px;line-height:30px}.schedule-dot{background:var(--accent);z-index:1;outline:6px solid var(--background);border-radius:50%;justify-self:center;width:9px;height:9px;margin-top:11px}.schedule h3{margin-bottom:8px;font-size:27px}.schedule p{color:var(--muted);font-size:12px}.gallery-section{background:var(--surface)}.gallery{gap:16px;display:grid}.gallery-image{text-align:left;background:0 0;border:0;min-width:0;padding:0;position:relative;overflow:hidden}.gallery-image img{transition:transform .5s}.gallery-image:hover img{transform:scale(1.03)}.gallery-image>span{background:var(--background);max-width:calc(100% - 20px);padding:5px 10px;font-size:8px;position:absolute;bottom:10px;left:10px}.gallery--masonry{grid-template-columns:repeat(3,1fr);align-items:start}.gallery--masonry .gallery-image{height:330px}.gallery--masonry .gallery-image:nth-child(2n){height:420px}.gallery--collage{grid-template-rows:230px 230px;grid-template-columns:1.2fr 1fr 1fr}.gallery--collage .gallery-image:first-child{grid-row:span 2}.gallery--editorial-grid{grid-template-columns:repeat(12,1fr);align-items:start;gap:30px}.gallery--editorial-grid .gallery-image{grid-column:span 4;height:300px}.gallery--editorial-grid .gallery-image:first-child{grid-column:span 8;height:500px}.gallery--editorial-grid .gallery-image:nth-child(2){height:400px;margin-top:100px}.gallery--carousel{scroll-snap-type:x mandatory;scrollbar-width:thin;gap:22px;padding:10px 3px 22px;display:flex;overflow-x:auto}.gallery--carousel .gallery-image{scroll-snap-align:center;flex:0 0 34%;height:420px}.gallery--fullscreen{grid-template-columns:repeat(4,1fr)}.gallery--fullscreen .gallery-image{height:240px}.gallery--fullscreen .gallery-image:first-child{grid-column:1/-1;height:520px}.gallery-controls{justify-content:center;gap:12px;margin-top:20px;display:flex}.gallery-controls button{border:1px solid var(--border);background:var(--background);width:46px;height:46px;color:var(--text);border-radius:50%;place-items:center;display:grid}.asset-caption{color:var(--muted);text-align:center;margin-top:24px;font-size:9px}.lightbox{background:var(--background);color:var(--text);border:0;width:90vw;max-width:900px;max-height:95dvh;padding:25px;overflow:auto}.lightbox::backdrop{background:#000b}.lightbox img{object-fit:contain;max-height:70dvh}.lightbox>p{text-align:center;margin-top:10px;font-size:12px}.lightbox-close{z-index:2;background:var(--background);border:1px solid var(--border);border-radius:50%;place-items:center;width:44px;height:44px;display:grid;position:absolute;top:12px;right:12px}.video-frame{aspect-ratio:16/9;background:var(--surface);position:relative;overflow:hidden}.video-frame>img,.video-frame>iframe,.video-frame>video{object-fit:cover;border:0;width:100%;height:100%}.video-play{border:1px solid var(--border);background:var(--background);border-radius:50%;place-items:center;width:64px;height:64px;display:grid;position:absolute;top:calc(50% - 32px);left:calc(50% - 32px)}.video-placeholder{background:var(--background);text-align:center;place-content:center;padding:20px;display:grid;position:absolute;inset:0}.rsvp{background:var(--surface);grid-template-columns:1fr 1fr;gap:70px;display:grid}.rsvp-intro{padding-top:30px}.rsvp-intro h2{margin:22px 0 28px}.rsvp-intro>p:not(.eyebrow){color:var(--muted);max-width:320px;margin-bottom:35px;font-size:13px}.wedding-form{flex-direction:column;gap:20px;min-width:0;display:flex}.wedding-form label,.playground-controls>label{flex-direction:column;gap:8px;font-size:11px;display:flex}.wedding-form input:not([type=radio]):not([type=checkbox]),.wedding-form select,.wedding-form textarea,.playground-controls select{background:var(--background);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:100%;min-height:47px;color:var(--text);padding:12px 14px;font-size:14px}.wedding-form textarea{resize:vertical}.wedding-form fieldset{border:0;min-width:0;margin:0;padding:0}.wedding-form legend{margin-bottom:12px;font-size:11px}.choice-row{flex-wrap:wrap;gap:12px 22px;display:flex}.wedding-form .choice-row label,.wedding-form .check-option{flex-direction:row;align-items:center;gap:8px;min-height:32px;line-height:1.6;display:flex}.wedding-form input[type=checkbox],.wedding-form input[type=radio]{accent-color:var(--primary);flex-shrink:0;width:17px;height:17px}.wedding-form small,.form-note{color:var(--muted);font-size:10px}.wedding-form [role=alert]{color:var(--primary);font-size:12px}.success-panel{border:1px solid var(--border);background:var(--background);flex-direction:column;align-items:flex-start;gap:22px;padding:30px;display:flex}.success-panel p{font-size:13px}.success-panel small{color:var(--muted);font-size:10px}.guestbook-layout{grid-template-columns:1.1fr 1fr;gap:65px;display:grid}.wishes{max-height:550px;padding-right:12px;overflow:auto}.wishes blockquote{border-bottom:1px solid var(--border);margin:0 0 25px;padding:0 0 25px}.wishes blockquote>span{font-family:var(--font-heading);color:var(--accent);font-size:44px;line-height:1}.wishes p{font-size:13px;line-height:1.9}.wishes cite{color:var(--muted);margin-top:16px;font-size:10px;font-style:normal;display:block}.gift{background:var(--surface)}.gift-grid{grid-template-columns:repeat(2,1fr);gap:26px;display:grid}.gift-card{text-align:center;background:var(--background);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;align-items:center;padding:30px 15px;display:flex}.gift-card img{margin:20px 0}.gift-card h3{font-family:var(--font-body);letter-spacing:.05em;font-size:12px}.gift-card>p:not(.eyebrow){color:var(--muted);margin-top:10px;font-size:11px}.gift-card small{color:var(--muted);margin-top:10px;font-size:9px}.gift-card>span{font-size:10px}.wedding-footer{text-align:center}.wedding-footer>.ornament{width:110px;height:110px;margin:0 auto 28px}.wedding-footer h2{margin:20px 0 24px}.wedding-footer>p:not(.eyebrow){max-width:580px;color:var(--muted);margin:0 auto;font-size:12px}.wedding-footer .footer-date{font-family:var(--font-heading);max-width:none!important;color:var(--primary)!important;margin:25px 0!important;font-size:25px!important}.share-wrap{flex-direction:column;align-items:center;gap:5px;display:flex}.share-wrap>span{font-size:10px}.made-with{color:var(--muted);justify-content:center;align-items:center;gap:6px;min-height:44px;margin:55px auto 0;font-size:9px;display:flex}.music-player{z-index:20;border:1px solid var(--border);background:var(--background);color:var(--primary);border-radius:40px;align-items:center;padding:3px 7px;display:flex;position:fixed;bottom:18px;right:18px;box-shadow:0 5px 25px #0001}.music-player>svg{margin:0 5px 0 10px}.music-player button{background:0 0;border:0;place-items:center;width:44px;height:44px;display:grid}.music-error{background:var(--background);border:1px solid var(--border);width:230px;padding:10px;font-size:11px;position:absolute;bottom:65px;right:0}.wedding--editorial .section-heading{text-align:left;margin-left:0}.wedding--editorial .section-heading h2{letter-spacing:-.05em;font-size:clamp(30px,3.5vw,46px)}.wedding--editorial .gallery-section{background:var(--background)}.wedding--editorial .story-grid h3,.wedding--editorial .schedule h3{font-size:22px}.wedding--garden .couple-grid img{border-radius:180px 180px 12px 12px}.wedding--lotus .couple-grid img{border-radius:200px 200px 0 0}.wedding--classic .section-heading:after{content:"";background:var(--accent);width:60px;height:1px;margin:25px auto 0;display:block}.wedding--traditional .invitation:before{content:"";border:1px solid var(--border);pointer-events:none;position:absolute;inset:28px}.reveal[data-ready=true]{transition:opacity var(--duration) ease var(--delay), transform var(--duration) cubic-bezier(.2, .65, .3, 1) var(--delay)}.reveal[data-ready=true]:not([data-visible=true]){opacity:0}.reveal[data-ready=true][data-animation=fade-up]:not([data-visible=true]){transform:translateY(24px)}.reveal[data-ready=true][data-animation=slide-up]:not([data-visible=true]){transform:translateY(45px)}.reveal[data-ready=true][data-animation=scale-in]:not([data-visible=true]){transform:scale(.97)}.reveal[data-ready=true][data-animation=mask-reveal]:not([data-visible=true]){transform:translateY(15px)scale(.985)}.reveal[data-ready=true][data-animation=floral-reveal]:not([data-visible=true]){transform:translateY(20px)rotate(.5deg)}.reveal[data-ready=true][data-animation=parallax-soft]:not([data-visible=true]){transform:translateY(36px)}.hero-copy{animation:none}@keyframes hero-enter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.playground{grid-template-columns:280px minmax(0,1fr);align-items:start;display:grid}.playground-controls{background:var(--background);border-right:1px solid var(--border);z-index:25;height:100dvh;padding:25px 22px;font-size:12px;position:sticky;top:0;overflow:auto}.playground-controls>a{align-items:center;gap:8px;min-height:44px;display:flex}.playground-controls h1{margin:24px 0 15px;font-size:31px}.playground-controls>p{color:var(--muted);margin-bottom:25px;font-size:11px}.playground-controls>label{margin-bottom:18px}.playground-controls fieldset{border:1px solid var(--border);margin:25px 0;padding:12px}.toggle-row{align-items:center;gap:9px;min-height:37px;font-size:11px;display:flex}.toggle-row input{width:18px;height:18px;accent-color:var(--primary)}.playground-controls details{margin-top:25px}.playground-controls pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:9px}.playground-stage{background:#dddcd5;min-width:0;min-height:100vh;padding:20px;overflow:auto}.playground-canvas{min-width:0;margin:auto;box-shadow:0 4px 25px #0001}.not-found{max-width:700px;margin:15vh auto;padding:30px}.not-found h1{margin:20px 0 40px;font-size:55px}@media (min-width:1500px){.template-preview{height:500px}}@media (max-width:1050px){.template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.template-preview{height:470px}.catalog-header-art{right:1%}.collection-note{margin-bottom:100px}.catalog-nav>div{gap:20px}.catalog-promise{gap:15px}.catalog-promise span{gap:9px}.catalog-footer{flex-wrap:wrap}.playground{grid-template-columns:240px minmax(0,1fr)}}@media (max-width:640px){body{font-size:14px}.catalog{padding:0 22px}.catalog-nav{height:86px}.brand{font-size:31px}.brand span{font-size:6px}.catalog-nav>div{gap:10px}.catalog-nav .nav-current{display:none}.nav-playground{font-size:9px}.catalog-header{padding-top:48px}.catalog-header h1{letter-spacing:-2px;margin:22px 0;font-size:60px}.catalog-header>.eyebrow{letter-spacing:.16em;font-size:7px}.catalog-header>p:not(.eyebrow){font-size:11px}.catalog-header-art{display:none}.header-meta{margin-top:29px;padding-bottom:22px;font-size:7px}.header-meta span:last-child{text-align:right;max-width:110px;font-size:6px;line-height:1.8}.collection{padding-top:20px}.collection-toolbar{gap:5px;margin-bottom:23px}.filter-list{gap:0}.filter-list button{padding:9px 10px;font-size:9px}.collection-count{font-size:8px}.template-grid{grid-template-columns:1fr;gap:38px}.template-preview{height:460px}.preview-copy h2{font-size:44px}.preview--ceremonial .preview-art{height:135px}.template-info{padding-top:18px}.template-info h3{font-size:29px}.template-description{font-size:11px}.collection-note{min-height:370px;margin-bottom:0}.catalog-promise{flex-direction:column;gap:17px;padding:25px 0}.catalog-promise span{gap:20px}.catalog-footer{justify-content:flex-start;gap:12px 30px;padding:30px 0}.catalog-footer>span{width:100%}.preview-bar{height:48px;padding:0 12px;font-size:9px}.preview-bar i,.preview-bar>a:last-child span{display:none}.preview-bar>a{gap:5px}.playground{display:block}.playground-controls{border-right:0;border-bottom:1px solid var(--border);grid-template-columns:1fr 1fr;gap:10px 16px;height:auto;padding:20px;display:grid;position:relative}.playground-controls>a,.playground-controls>h1,.playground-controls>p,.playground-controls>fieldset,.playground-controls>details{grid-column:1/-1;margin:0}.playground-controls fieldset{grid-template-columns:1fr 1fr;display:grid}.playground-controls>label{margin:0}.playground-controls>.button,.playground-controls>.text-button{grid-column:1/-1}.playground-stage{padding:12px}.music-player{bottom:12px;right:12px}.not-found h1{font-size:40px}}@container (max-width:768px){.hero{min-height:auto;padding:45px 24px 70px}.hero--ceremonial{outline-offset:-10px;grid-template-columns:1fr;gap:28px;padding-top:46px}.hero--ceremonial .hero-copy{padding:0 20px}.hero--ceremonial .hero-symbol{margin-bottom:18px;font-size:37px}.hero--ceremonial .couple-names{margin:18px 0;font-size:60px}.hero--ceremonial .hero-art{width:210px;height:280px;margin:auto;padding:6px}.hero--ceremonial .hero-small{margin-top:17px;font-size:19px}.hero-corner{width:70px;height:100px;top:15px}.hero-corner.left{left:13px}.hero-corner.right{right:13px}.hero--arched{grid-template-columns:1fr;gap:35px}.hero--arched .hero-art{width:100%;max-width:290px;height:350px;margin:auto}.hero--arched .hero-copy>.ornament{height:75px;margin-top:13px}.hero--arched .couple-names{font-size:58px}.hero--arched .couple-names span{display:inline}.hero--arched .couple-names em{margin:8px 0;font-size:33px}.hero-date{margin-top:18px;font-size:20px}.hero--garden{grid-template-columns:1fr;gap:24px;padding-top:55px}.hero--garden .hero-art{border-width:9px;width:240px;height:300px;margin:5px auto 0}.hero--garden .couple-names{margin:18px 0;font-size:62px}.garden-cta{margin:0}.garden-cta .hero-cta{margin-top:5px}.garden-flower{width:160px;height:190px}.hero--split{grid-template-columns:1fr;padding:0 0 65px}.hero--split .hero-art{order:2;height:300px;margin:0 25px}.hero--split .hero-copy{padding:42px 24px 34px}.hero--split .monogram{letter-spacing:-5px;width:67px;height:72px;margin-bottom:25px;font-size:38px;line-height:68px}.hero--split .couple-names{font-size:55px}.hero--editorial{padding:25px 22px 80px}.hero--editorial .hero-copy{padding:25px 0;display:block}.hero--editorial .couple-names{letter-spacing:-.055em;font-size:48px}.hero--editorial .couple-names span{display:block}.hero--editorial .couple-names em{margin:3px 0;font-size:38px;display:block}.editorial-note{text-align:right;min-width:0;max-width:140px;margin-top:-65px;margin-left:auto;font-size:10px}.hero--editorial .hero-art{height:350px}.editorial-bottom{align-items:flex-start;gap:15px}.editorial-bottom>p{max-width:130px;margin-top:27px;font-size:7px}.editorial-bottom .hero-cta{gap:10px;padding:12px 15px;font-size:10px}.section{padding:65px 24px}.section-heading{margin-bottom:32px}.section-heading h2{font-size:38px}.section-heading>p:last-child:not(.eyebrow){font-size:12px}.invitation h2{font-size:33px}.invitation-copy{font-size:13px}.family-grid{grid-template-columns:1fr;gap:30px}.family-grid>div+div{border-left:0;border-top:1px solid var(--border);padding-top:30px}.family-grid h3{font-size:26px}.couple-grid{grid-template-columns:1fr;gap:28px}.couple-grid article{grid-template-columns:42% 1fr;align-items:center;gap:20px;display:grid}.couple-grid article:nth-child(2){padding-top:0}.couple-grid article:nth-child(2) img{order:2}.couple-grid article>div{padding:0}.couple-grid img{height:220px}.couple-grid h3{font-size:25px}.couple-grid p:last-child{font-size:11px}.story-grid{grid-template-columns:1fr;gap:30px}.story-year{margin-bottom:18px;font-size:48px}.story-grid h3{font-size:28px}.events-grid{grid-template-columns:1fr;gap:22px}.event-card{padding:25px 20px}.event-card h3{font-size:37px}.countdown-grid strong{font-size:43px}.countdown-grid span{font-size:9px}.countdown>.eyebrow{font-size:8px}.schedule li{grid-template-columns:55px 20px 1fr;gap:13px}.schedule li:not(:last-child):before{left:77px}.schedule h3{font-size:26px}.schedule p{font-size:11px}.schedule time{font-size:14px}.gallery{gap:10px}.gallery--collage{grid-template-rows:270px 180px 180px;grid-template-columns:1fr 1fr}.gallery--collage .gallery-image:first-child{grid-area:span 1/span 2}.gallery--masonry{grid-template-columns:1fr 1fr}.gallery--masonry .gallery-image{height:215px}.gallery--masonry .gallery-image:nth-child(2n){height:275px}.gallery--carousel .gallery-image{flex-basis:82%;height:350px}.gallery--fullscreen{grid-template-columns:1fr 1fr}.gallery--fullscreen .gallery-image{height:200px}.gallery--fullscreen .gallery-image:first-child{height:330px}.gallery--editorial-grid{grid-template-columns:1fr 1fr;gap:15px}.gallery--editorial-grid .gallery-image{grid-column:span 1;height:220px}.gallery--editorial-grid .gallery-image:first-child{grid-column:span 2;height:350px}.gallery--editorial-grid .gallery-image:nth-child(2){height:240px;margin-top:30px}.gallery-image>span{padding:4px 6px;font-size:7px;bottom:7px;left:7px}.rsvp{grid-template-columns:1fr;gap:35px}.rsvp-intro{padding:0}.rsvp-intro h2{margin:18px 0;font-size:44px}.rsvp-intro>p:not(.eyebrow){margin-bottom:18px}.rsvp-intro>svg{display:none}.guestbook-layout{grid-template-columns:1fr;gap:35px}.wishes{max-height:450px}.gift-grid{grid-template-columns:1fr;max-width:330px;margin:auto}.wedding-footer h2{font-size:42px}.wedding-footer>p:not(.eyebrow){font-size:12px}.wedding--traditional .invitation:before{inset:12px}.wedding--editorial .section-heading h2{font-size:32px}.wedding--editorial .couple-grid h3{font-size:22px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.reveal[data-ready=true]:not([data-visible=true]){opacity:1!important;transform:none!important}}@container (max-width:768px){.hero--ceremonial{gap:22px;padding-top:30px;padding-bottom:57px}.hero--ceremonial .hero-symbol{margin-bottom:14px;font-size:30px}.hero--ceremonial .couple-names{margin:14px 0;font-size:49px}.hero--ceremonial .couple-names em{margin:5px 0}.hero--ceremonial .hero-art{width:170px;height:190px}.hero--ceremonial .hero-small{margin-top:14px;font-size:17px}.hero--ceremonial .hero-date{margin:13px 0 7px}.hero--ceremonial .hero-cta{margin-top:20px}.hero--arched{gap:26px;padding-top:30px}.hero--arched .hero-copy>.ornament{height:50px;margin-top:12px}.hero--arched .couple-names{margin:16px 0;font-size:46px}.hero--arched .hero-art{width:240px;height:265px}.hero--arched .hero-cta{margin-top:20px}.hero--split .hero-copy{padding:30px 22px}.hero--split .monogram{width:54px;height:58px;margin-bottom:19px;font-size:31px;line-height:55px}.hero--split .couple-names{margin:18px 0;font-size:43px}.hero--split .hero-art{height:225px}.hero--split .hero-date{margin-top:15px}.hero--split .hero-cta{margin-top:20px}.hero--garden{gap:18px;padding-top:35px}.hero--garden .couple-names{margin:15px 0;font-size:53px}.hero--garden .hero-art{width:215px;height:250px}.hero--garden .hero-date{margin-top:15px}.hero-scroll{font-size:6px}.wedding .eyebrow{font-size:10px}}.reveal[data-animation=mask-reveal]{clip-path:inset(0);transition:opacity var(--duration) ease var(--delay), transform var(--duration) ease var(--delay), clip-path var(--duration) ease var(--delay)}.reveal[data-ready=true][data-animation=mask-reveal]:not([data-visible=true]){clip-path:inset(0 0 15%)}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.reveal[data-animation=parallax-soft] .media{animation:linear both soft-parallax;animation-timeline:view();animation-range:entry exit}@keyframes soft-parallax{0%{transform:translateY(-12px)scale(1.06)}to{transform:translateY(12px)scale(1.06)}}}}@media (prefers-reduced-motion:reduce){.reveal[data-animation=mask-reveal]{clip-path:none!important}}.wedding h2{font-size:calc(clamp(34px, 4.2vw, 54px) * var(--font-scale))}.wedding[data-decoration=minimal] .wedding-footer>.ornament{height:45px}@container (max-width:768px){.editorial-note{text-align:left;max-width:none;margin:14px 0 0}.hero--editorial .hero-art{height:290px}.wedding-form label,.wedding-form legend{font-size:13px}.wedding-form input:not([type=radio]):not([type=checkbox]),.wedding-form select,.wedding-form textarea{font-size:16px}.wedding-form .choice-row label,.wedding-form .check-option{min-height:44px}.event-address,.button{font-size:13px}}
