:root{--ivory:#fbf8f2;--linen:#f4eee3;--linen-deep:#ece3d2;--white:#fff;--line:#e7dece;--brown:#2f2619;--brown-soft:#5c4d3b;--brown-faint:#7d6e59;--gold:#b8975a;--gold-deep:#8a6a35;--gold-ink:#7a5c2c;--gold-soft:#ead9b4;--champagne:#f1e6d0;--gilded:linear-gradient(135deg, #b39459 0%, #8f6f3c 50%, #7a5c2c 100%);--shadow:0 1px 2px #3c280f0f, 0 8px 28px #3c280f14;--shadow-lift:0 2px 4px #3c280f0f, 0 14px 36px #3c280f1f;--shadow-gold:inset 0 1px 0 #ffffff38, 0 6px 18px #8c692d40;--shadow-gold-hover:inset 0 1px 0 #ffffff42, 0 10px 24px #8c692d52;--serif:"Cormorant Garamond", Georgia, "Times New Roman", serif;--script:"Great Vibes", cursive;--sans:"Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;--bg:var(--ivory);--surface:var(--linen);--surface-2:var(--linen-deep);--ink:var(--brown);--soft:var(--brown-soft);--muted:var(--brown-faint);--accent:var(--gold);--accent-ink:var(--gold-ink);--paper:var(--white);--paper-ink:var(--brown);--font:var(--sans);--step-small:clamp(.8125rem, .79rem + .1vw, .875rem);--step-body:clamp(1rem, .96rem + .2vw, 1.0625rem);--step-lead:clamp(1.5rem, 1.25rem + .9vw, 2.125rem);--step-head:clamp(2.25rem, 1.45rem + 2.4vw, 3.5rem);--step-display:clamp(3rem, 1.5rem + 4.4vw, 5.5rem);--margin:12px;--gap:12px;--inset:clamp(20px, 4vw, 56px);--axis:calc(var(--margin) + var(--inset));--radius:14px;--radius-panel:22px;--fade:1.4s;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-expo:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.76, 0, .24, 1);--ease-soft:cubic-bezier(.33, 1, .68, 1);--t-press:.14s;--t-hover:.18s;--t-open:1.1s;--stagger-line:90ms;--stagger-item:70ms}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font:400 var(--step-body) / 1.6 var(--font);-webkit-font-smoothing:antialiased;margin:0;overflow-x:clip}img,video{max-width:100%;height:auto;display:block}h1,h2,h3,p,ul{margin:0}p,li{text-wrap:pretty}h1,h2,h3{font-family:var(--serif);letter-spacing:-.01em;text-wrap:balance;font-weight:600;line-height:1.08}h1 em,h2 em{font:400 1.16em / .9 var(--script);letter-spacing:0;color:var(--gold-deep);font-style:normal}a{color:inherit}b{font-weight:600}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}::selection{background:var(--gold-soft);color:var(--ink)}.button{background:var(--gilded);color:#fffdf8;min-height:52px;font:600 .8125rem / 1 var(--font);letter-spacing:.1em;text-transform:uppercase;box-shadow:var(--shadow-gold);cursor:pointer;transition:transform var(--t-press) var(--ease-out), box-shadow var(--t-hover) ease, background-color var(--t-hover) ease;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:0 30px;text-decoration:none;display:inline-flex}.button-quiet{background:var(--white);border-color:color-mix(in srgb, var(--gold) 60%, transparent);color:var(--accent-ink);box-shadow:none}.split{gap:var(--gap);padding:var(--margin);grid-template-columns:1fr 1fr;align-items:start;display:grid}.column{min-width:0}.stage{top:var(--margin);height:calc(100svh - 2 * var(--margin));border-radius:var(--radius-panel);background:var(--surface);position:sticky;overflow:hidden}.layer{object-fit:cover;width:100%;height:100%;display:none;position:absolute;inset:0}.layer.is-on,.layer.was-on{display:block}.layer.was-on{z-index:1}.layer.is-on{z-index:2;animation:layer-in var(--fade) ease both}.cover.is-on,.cover.was-on{z-index:3}.cover.was-on{animation:.9s both layer-out}.layer.is-on.under,.layer.still{animation:none}@keyframes layer-in{0%{opacity:0}}@keyframes layer-out{to{opacity:0}}.card{min-height:calc(100svh - 2 * var(--margin));padding:72px var(--inset) 112px;border-radius:var(--radius-panel);background:var(--paper);color:var(--paper-ink);box-shadow:var(--shadow);text-align:center;flex-direction:column;justify-content:center;display:flex;position:relative;container-type:inline-size}.card:before,.card:after{content:"";pointer-events:none;border:1px solid color-mix(in srgb, var(--gold) 70%, transparent);border-radius:calc(var(--radius-panel) - 10px);position:absolute;inset:14px}.card:after{border-color:color-mix(in srgb, var(--gold) 35%, transparent);border-radius:calc(var(--radius-panel) - 14px);inset:19px}.card-body{flex-direction:column;align-items:center;display:flex}.card-mark{width:132px;height:auto}.wordmark{font:600 var(--step-lead) / 1.1 var(--serif);margin-top:10px}.card h1{font-size:min(var(--step-display), 12.4cqi);margin-top:40px;line-height:1.04}.card-line{max-width:34ch;color:var(--soft);text-wrap:balance;margin-top:28px}.card-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:36px;display:flex}.card-links{left:var(--inset);right:var(--inset);font-size:var(--step-small);color:var(--soft);flex-wrap:wrap;justify-content:center;gap:8px 32px;font-weight:500;display:flex;position:absolute;bottom:36px}.card-links a,.text-link{text-underline-offset:.3em;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:color-mix(in srgb, var(--gold) 55%, transparent);text-decoration-color:color-mix(in srgb, var(--gold) 55%, transparent);transition:text-decoration-color var(--t-hover) ease, color var(--t-hover) ease}.walk{padding:200px var(--inset) 160px}.walk h2{font-size:var(--step-head);margin-bottom:56px}.moment{max-width:580px}.moment+.moment{margin-top:96px}.moment>p{color:var(--soft)}.moment>p b{color:var(--ink)}.moment-frame{display:none}.evidence{width:100%;margin-top:24px}img.evidence{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius)}.frames{gap:var(--gap);grid-template-columns:repeat(3,1fr);display:grid}.frames img{aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius);width:100%}.try{border-radius:var(--radius);background:var(--paper);box-shadow:var(--shadow);margin-top:28px;padding:24px}.try label{margin-bottom:12px;display:block}.try-row{gap:10px;display:flex}.try input{border:1px solid var(--line);background:var(--bg);min-width:0;height:54px;color:var(--ink);font:400 var(--step-body) var(--font);transition:border-color var(--t-hover) ease, box-shadow var(--t-hover) ease;border-radius:999px;flex:1;padding:0 22px}.try input:focus{border-color:var(--gold);box-shadow:0 0 0 4px color-mix(in srgb, var(--gold) 18%, transparent);outline:none}.try button{background:var(--gilded);color:#fffdf8;max-width:62%;height:54px;font:600 .8125rem / 1 var(--font);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;box-shadow:var(--shadow-gold);cursor:pointer;transition:transform var(--t-press) var(--ease-out), box-shadow var(--t-hover) ease;border:0;border-radius:999px;flex:none;padding:0 24px;overflow:hidden}.try-link{font-size:var(--step-small);color:var(--soft);overflow-wrap:anywhere;margin-top:14px;padding-left:22px}.try-link span{color:var(--gold-deep);font-weight:600}.cover{color:#3d3530;background:#fff url(/assets/elegant-paper.jpg) 50%/520px;overflow:hidden;container-type:size}.cv-frame{border:1px solid #c9a96abf;position:absolute;inset:2.2cqmin}.cv-frame:after{content:"";border:1px solid #c9a96a66;position:absolute;inset:5px}.cv-orn{aspect-ratio:1;background:url(/assets/elegant-ornament.webp) 50%/contain no-repeat;width:min(36cqw,30cqh);position:absolute}.cv-orn.tl{top:0;left:0}.cv-orn.tr{top:0;right:0;transform:scaleX(-1)}.cv-orn.bl{bottom:0;left:0;transform:scaleY(-1)}.cv-orn.br{bottom:0;right:0;transform:scale(-1)}.cv-content{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:8cqh 9cqw 22cqh;display:flex;position:absolute;inset:0}.cv-label{font:500 max(9px, 1.55cqmin) / 1.4 var(--font);letter-spacing:.34em;text-transform:uppercase;color:#8a6b37}.cv-guest{letter-spacing:0;color:#8a6b37;overflow-wrap:anywhere;text-wrap:balance;max-width:100%;margin-top:.6cqh;font:400 6cqmin/1.3 Great Vibes,cursive}.cv-sub{letter-spacing:0;color:#3d3530cc;font:italic 400 2.6cqmin/1.4 Cormorant Garamond,serif}.cv-names{letter-spacing:0;color:#a3803f;flex-direction:column;align-items:center;margin:2.4cqh 0 1.6cqh;font:400 11cqmin/1.05 Great Vibes,cursive;display:flex}.cv-names em{font-size:.6em;font-style:normal;line-height:1}.cv-date{align-items:center;gap:3cqmin;display:flex}.cv-date b{color:#8a6b37;font:500 9cqmin/1 Cormorant Garamond,serif}.cv-side{min-width:12.5cqmin;font:500 max(9px, 1.55cqmin) / 1.5 var(--font);letter-spacing:.24em;text-transform:uppercase;border-block:1px solid #c9a96ab3;padding:1cqmin 0}.cv-time{margin-top:2cqh}.cv-venue{letter-spacing:0;margin-top:.8cqmin;font:500 2.8cqmin/1.4 Cormorant Garamond,serif}.cv-seal{aspect-ratio:1;width:13cqmin;position:absolute;bottom:9cqh;left:50%;translate:-50%}.cv-seal img{width:100%;height:100%}.cv-seal i{color:#6f5022;font:400 3.6cqmin/1 Great Vibes,cursive;position:absolute;translate:-50% -50%}.cv-seal .m0{top:40%;left:40%}.cv-seal .m1{top:60%;left:60%}.cv-seal .amp{font-size:1.66cqmin;top:51%;left:50%}.cv-hint{text-align:center;font-size:max(9px,1.4cqmin);position:absolute;bottom:4.5cqh;left:0;right:0}main{padding:0 var(--margin)}.wall{gap:var(--gap);grid-template-columns:repeat(4,1fr);margin-top:120px;display:grid}.tile{aspect-ratio:1;object-fit:cover;border-radius:var(--radius);text-align:center;justify-content:center;align-items:center;width:100%;height:auto;display:flex;position:relative}.tile b{font:600 var(--step-display) / 1 var(--serif);letter-spacing:-.01em}.tile b.hand{font:400 var(--step-display) / 1.2 var(--script);letter-spacing:0;color:var(--gold-deep)}.tile>span{font-size:var(--step-small);color:var(--soft);font-weight:500;line-height:1.4;position:absolute;bottom:18px;left:16px;right:16px}.tile-head{background:var(--paper);color:var(--paper-ink);box-shadow:var(--shadow);text-align:left;justify-content:flex-start;align-items:flex-start;padding:28px}.tile-head h2{font-size:var(--step-head)}.t-paper{background:var(--surface);color:var(--ink)}.t-surface{background:var(--paper);color:var(--ink);box-shadow:var(--shadow)}.t-stone{background:var(--champagne);color:var(--ink)}.tile-seal img{width:46%;height:auto}.halls{border-radius:var(--radius-panel);background:var(--surface);grid-template-columns:1fr 1fr;min-height:88svh;margin-top:200px;display:grid}.halls-plate{padding:var(--inset);justify-content:center;align-items:center;display:flex}.hall-frame{border-radius:var(--radius);width:100%;position:relative;overflow:clip}.hall-frame img{aspect-ratio:1;object-fit:cover;width:100%}.hall-ghost{pointer-events:none;height:100%;position:absolute;inset:0}.hall-ghost.is-going{animation:.5s forwards layer-out}.halls-text{padding:var(--inset) var(--inset) var(--inset) 0;flex-direction:column;justify-content:space-between;gap:48px;display:flex}.halls-text h2{font-size:var(--step-head)}.tabs{flex-wrap:wrap;gap:8px 28px;margin-top:32px;display:flex}.tabs button{color:var(--soft);font:500 var(--step-body) / 1.3 var(--font);text-underline-offset:.5em;cursor:pointer;transition:color var(--t-hover) ease, text-decoration-color var(--t-hover) ease;background:0 0;border:0;padding:6px 0;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:2px}.tabs button[aria-selected=true]{color:var(--ink);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.hall-copy h3{font-size:var(--step-lead);max-width:24ch}.hall-copy p{max-width:38ch;color:var(--soft);margin-top:40px}.cells{flex-wrap:wrap;gap:12px;display:flex}.cell{flex:1 1 0}.yours{column-gap:var(--gap);padding:120px var(--inset) 160px;border-radius:var(--radius-panel);background:var(--paper);color:var(--paper-ink);box-shadow:var(--shadow);grid-template-columns:repeat(12,1fr);margin-top:200px;display:grid}.yours>h2{font-size:var(--step-display);grid-column:1/6;align-self:start;max-width:9ch;line-height:1;position:sticky;top:40px}.blocks{grid-column:7/13;gap:120px;display:grid}.block h3{font-size:var(--step-lead)}.block-row{grid-template-columns:minmax(0,5fr) minmax(0,4fr);align-items:start;gap:32px;margin-top:28px;display:grid}.block-flip .block-row{grid-template-columns:minmax(0,4fr) minmax(0,5fr)}.block-flip .block-row img{order:2}.block-row img{aspect-ratio:3/4;object-fit:cover;border-radius:var(--radius);width:100%}.block-row img.cutout{object-fit:contain;object-position:50% 100%;border-radius:0}.block-row ul{font-size:var(--step-body);gap:14px;padding:0;line-height:1.45;list-style:none;display:grid}.block-row li{padding-left:22px;position:relative}.block-row li:before{content:"";background:var(--gold);width:6px;height:6px;position:absolute;top:.62em;left:2px;transform:rotate(45deg)}.faq{column-gap:var(--gap);padding:0 var(--inset);grid-template-columns:repeat(12,1fr);margin-top:200px;display:grid}.faq>h2{font-size:var(--step-head);grid-column:1/4;max-width:10ch}.answers{columns:2;grid-column:5/13;column-gap:56px}.answers p{break-inside:avoid;color:var(--soft);margin-bottom:24px}.answers b{font:600 1.375rem / 1.25 var(--serif);color:var(--ink);margin-bottom:4px;display:block}.close{padding:18svh var(--inset) 16svh;border-radius:var(--radius-panel);background:var(--surface);text-align:center;flex-direction:column;align-items:center;margin-top:200px;display:flex}.close-mark{width:132px;height:auto;margin-bottom:36px}.close h2{font-size:var(--step-head)}.close p{max-width:34ch;color:var(--soft);margin-top:20px}.close-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:16px 28px;margin-top:36px;display:flex}.text-link{color:var(--accent-ink);font-weight:600}.footer{gap:var(--gap);min-height:100svh;padding:var(--margin);grid-template-columns:1fr 1fr;display:grid}.footer-photo{width:100%;height:100%;min-height:calc(100svh - 2 * var(--margin));border-radius:var(--radius-panel);object-fit:cover;object-position:50% 28%}.footer-side{padding:80px var(--inset) 28px;border-radius:var(--radius-panel);background:var(--paper);box-shadow:var(--shadow);flex-direction:column;display:flex}.footer-mark{font:600 var(--step-lead) / 1 var(--serif);align-items:center;gap:12px;display:flex}.footer-mark img{width:46px;height:auto}.footer-menu{justify-items:start;gap:22px;margin-top:48px;display:grid}.footer-menu a{font:600 var(--step-head) / 1.05 var(--serif);text-underline-offset:.16em;transition:text-decoration-color var(--t-hover) ease, color var(--t-hover) ease;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:1px}.footer-notes{max-width:600px;font-size:var(--step-small);color:var(--soft);grid-template-columns:1fr 1fr;gap:32px;margin-top:64px;display:grid}.footer-legal{font-size:var(--step-small);color:var(--muted);margin-top:auto;padding-top:48px}@media (width<=1099px){.yours>h2{grid-column:1/5}.blocks{grid-column:5/13}.block-row,.block-flip .block-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.answers{grid-column:4/13}}@media (width<=899px){.split{grid-template-columns:1fr}.stage{z-index:0;order:-1;height:48svh;position:relative;top:0}.card{z-index:1;min-height:0;margin-top:-36px;padding:40px 20px 32px}.card-mark{width:104px}.card h1{font-size:min(var(--step-display), 13.4cqi);margin-top:28px}.card-line{margin-top:20px}.card-actions{flex-direction:column;align-self:stretch;margin-top:28px}.card-links{gap:12px 24px;margin-top:28px;position:static}.walk{padding:120px 8px 40px}.walk h2{margin-bottom:40px}.moment+.moment{margin-top:72px}.moment-frame{aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius);background:var(--surface);width:100%;height:auto;margin-bottom:24px;display:block;position:relative;overflow:hidden}.moment-frame .cover{animation:none;display:block}.try{padding:18px}.try-row{flex-direction:column}.try input{flex:none}.try button{max-width:none}.try-link{padding-left:4px}.wall{grid-template-columns:1fr 1fr;gap:8px;margin-top:96px}.tile b{font-size:var(--step-display)}.tile>span{bottom:12px;left:10px;right:10px}.tile-head{padding:16px}.tile-head h2{font-size:1.875rem}.halls{grid-template-columns:1fr;min-height:0;margin-top:120px}.halls-plate{padding:16px 16px 0}.halls-text{gap:32px;padding:32px 16px 16px}.hall-copy p{margin-top:24px}.cells{flex-direction:column}.cell{flex:none}.yours{margin-top:120px;padding:0 20px 72px;display:block}.yours>h2{max-width:none;font-size:var(--step-head);padding-top:20px;position:static}.blocks{gap:72px;margin-top:32px}.block-row,.block-flip .block-row{grid-template-columns:1fr;gap:20px;margin-top:20px}.block-flip .block-row img{order:0}.block-row img{aspect-ratio:4/3;object-position:50% 12%}.faq{margin-top:120px;padding:0 8px;display:block}.faq>h2{max-width:none;margin-bottom:32px}.answers{columns:1}.answers p{margin-bottom:18px}.close{margin-top:120px;padding:96px 20px 88px}.close-mark{width:104px}.footer{grid-template-columns:1fr;min-height:0}.footer-photo{height:50svh;min-height:0}.footer-side{padding:40px 20px 24px}.footer-menu{gap:20px;margin-top:32px}.footer-notes{grid-template-columns:1fr;gap:12px;margin-top:48px}}@media (width>=600px) and (width<=899px){.walk{padding-inline:20px}.moment{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;column-gap:24px;max-width:none;display:grid}.moment-frame{grid-row:1/span 3;margin-bottom:0}.moment>:not(.moment-frame){grid-column:2}.evidence{margin-top:20px}.wall{grid-template-columns:repeat(3,1fr)}.halls{grid-template-columns:1fr 1fr}.halls-plate{padding:16px}.halls-text{padding:16px 16px 16px 0}.block-row,.block-flip .block-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}.block-flip .block-row img{order:2}.block-row img{aspect-ratio:3/4;object-position:50% 50%}.answers{columns:2;column-gap:32px}}.lines,.is-split{display:flow-root}.lines .line,.is-split .line{margin:-.16em 0 -.12em;padding:.16em 0 .12em;display:block;overflow:clip}.lines [data-line],.is-split .line>span{display:block}.roll-digits{display:inline-flex}.roll-col{height:1em;position:relative;overflow:clip}.roll-size{visibility:hidden}.roll-strip{transform:translateY(calc(var(--n) * -1em));flex-direction:column;align-items:center;display:flex;position:absolute;inset:0 0 auto}.roll-strip>span{height:1em}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:no-preference){.js [data-load]{animation:rise-small .6s var(--ease-out) var(--d,0s) backwards}.js [data-load=press]{animation:press .8s var(--ease-out) backwards}.js .lines [data-line]{animation:line-up .9s var(--ease-expo) calc(.12s + var(--i) * var(--stagger-line)) backwards}.js .stage{animation:doors var(--t-open) var(--ease-in-out) .15s backwards}.js .stage>.still{animation:settle-in 1.4s var(--ease-soft) .1s backwards}.js [data-reveal].is-armed:not(.is-in){opacity:0}.js [data-reveal].is-in{animation:rise .8s var(--ease-expo) var(--d,0s) backwards}.js [data-reveal=row].is-in{animation:rise-small .6s var(--ease-out) var(--d,0s) backwards}.js [data-reveal=settle].is-in{animation:settle 1.1s var(--ease-soft) var(--d,0s) backwards}.js [data-reveal=press].is-in{animation:press .8s var(--ease-out) var(--d,0s) backwards}.js [data-reveal=wipe].is-in,.js [data-reveal=shutter].is-in{animation:wipe var(--t-open) var(--ease-expo) var(--d,0s) backwards}.js [data-reveal=shutter].is-in>img:first-child{animation:settle-in 1.5s var(--ease-soft) var(--d,0s) backwards}.js .is-split:not(.is-in) .line>span{transform:translateY(118%)}.js .is-split.is-in .line>span{transition:transform .9s var(--ease-expo) calc(var(--d,0s) + var(--i) * var(--stagger-line))}.js .is-armed:not(.is-in) .roll-strip{transform:none}.js .is-in .roll-strip{transition:transform 1.1s var(--ease-expo) calc(var(--d,0s) + .2s + var(--c) * var(--stagger-item))}.button:active,.try button:active{transform:scale(.97)}}@media (hover:hover) and (pointer:fine){.button:hover,.try button:hover{box-shadow:var(--shadow-gold-hover);transform:translateY(-1px)}.button:hover:active,.try button:hover:active{transform:scale(.97)}.button-quiet:hover{background:var(--champagne);box-shadow:none}.card-links a:hover,.text-link:hover{color:var(--accent-ink);text-decoration-color:currentColor}.footer-menu a:hover{color:var(--gold-deep);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.tabs button[aria-selected=false]:hover{color:var(--ink)}}@keyframes rise{0%{opacity:0;transform:translateY(28px)}}@keyframes rise-small{0%{opacity:0;transform:translateY(12px)}}@keyframes press{0%{opacity:0;transform:scale(1.14)}}@keyframes settle{0%{opacity:0;transform:scale(1.04)}}@keyframes settle-in{0%{transform:scale(1.1)}}@keyframes line-up{0%{transform:translateY(118%)}}@keyframes doors{0%{clip-path:inset(0 50%)}to{clip-path:inset(0)}}@keyframes wipe{0%{opacity:1;clip-path:inset(0 0 100%)}to{clip-path:inset(0)}}
