:root{color-scheme:light;--cv-bg: #ffffff;--cv-surface: #f5f5f4;--cv-ink: #1c1b1a;--cv-muted: #57534e;--cv-accent: #1c1b1a;--cv-onAccent: #ffffff;--cv-ornament: #8c8781;--cv-font-display: Georgia, serif;--cv-font-body: system-ui, sans-serif;--cv-font-script: Georgia, serif;--cv-column: 480px;--cv-shadow-float: 0 6px 20px -8px rgb(28 27 26 / .35);--cv-draft-bg: #7a2e0e;--cv-draft-ink: #fff7ed;--cv-z-global: 10;--cv-z-music: 20;--cv-z-draft: 30;--cv-z-skip: 40;--cv-demo-bg: #f4f5f8;--cv-demo-ink: #0d0f14;--cv-demo-line: #c4c9d3}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}html.inv-locked{overflow:hidden}body{margin:0;background-color:var(--cv-bg);color:var(--cv-ink);font-family:var(--cv-font-body);line-height:1.5;overflow-wrap:anywhere;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:block}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--cv-accent);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cv-demo-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;padding:.75rem max(1rem,calc((100% - 72rem)/2));border-bottom:1px solid var(--cv-demo-line);background:var(--cv-demo-bg);color:var(--cv-demo-ink);font-family:system-ui,sans-serif;font-size:.875rem}.cv-demo-nav>*{min-width:0;max-width:100%}.cv-demo-nav>span{flex:1 1 10rem;text-align:center}.cv-demo-nav a{display:inline-flex;align-items:center;min-height:2.75rem;color:inherit;text-underline-offset:.2em}.cv-demo-nav .cv-demo-start{justify-content:center;border-radius:999px;padding:.625rem 1rem;background:var(--cv-demo-ink);color:var(--cv-demo-bg);font-weight:600;text-decoration:none}@media (max-width: 30rem){.cv-demo-nav>span{flex-basis:100%;order:-1;text-align:start}}.cv-column{container-type:inline-size;position:relative;width:100%;max-width:var(--cv-column);margin-inline:auto}.cv-main:focus{outline:none}.cv-section{position:relative;isolation:isolate;container-type:inline-size;height:var(--cv-h);overflow:hidden;overflow:clip}.cv-section{--cv-bga-on: var(--cv-bga, none)}html.js .cv-section:not([data-near]){--cv-bga-on: none}html.js .cv-section:not([data-near]) :is(.cv-tint,.cv-frame--asset){-webkit-mask-image:none;mask-image:none;visibility:hidden}.cv-section[data-cv-auto]{height:auto;min-height:var(--cv-h)}.cv-flow{display:flow-root}.cv-el{position:absolute;translate:var(--px, 0) var(--py, 0);scale:var(--ps, 1);rotate:var(--pr, 0deg)}.cv-el__in{width:100%;height:100%;opacity:var(--cv-o, 1);rotate:var(--cv-r, 0deg);scale:var(--cv-fx, 1) var(--cv-fy, 1)}.cv-el--block{position:relative}.cv-el--block>.cv-el__in{height:auto}.cv-el--text>.cv-el__in{white-space:normal}.cv-img,.cv-tint{display:block;width:100%;height:100%}.cv-img{object-fit:fill}.cv-tint{-webkit-mask-image:var(--cv-mask);mask-image:var(--cv-mask);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-position:center;mask-position:center}.cv-frame{position:relative;width:100%;height:100%;overflow:hidden}.cv-frame--circle,.cv-frame--oval{border-radius:50%}.cv-frame--asset{-webkit-mask-image:var(--cv-mask);mask-image:var(--cv-mask);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%}.cv-frame img{width:100%;height:100%;object-fit:cover}.cv-photo-empty{display:block;width:100%;height:100%;background:var(--cv-surface)}.cv-shade{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.cv-button{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:0 3.0769cqw;border:1px solid var(--cv-accent);font-family:var(--cv-font-body);font-size:3.8462cqw;line-height:1.2;text-align:center;text-decoration:none;cursor:pointer;touch-action:manipulation}.cv-button--solid{background:var(--cv-accent);color:var(--cv-onAccent)}.cv-button--outline{background:transparent;color:var(--cv-accent)}.cv-button--pill{border-radius:999px}.cv-button--rounded{border-radius:2.5641cqw}.cv-button--square{border-radius:0}.cv-block{--u: calc(100cqw / 390);--cv-line: color-mix(in srgb, var(--cv-ink) 16%, transparent);--cv-line-strong: color-mix(in srgb, var(--cv-ink) 32%, transparent);color:var(--cv-ink);font-family:var(--cv-font-body);font-size:max(.875rem,calc(15 * var(--u)));line-height:1.55;text-align:left}:where(.cv-block) :where(p,h3,ol,ul,figure){margin:0}:where(.cv-block) :where(ol,ul){padding:0;list-style:none}.cv-block a{color:inherit}.cv-icon{flex:none;width:1.125em;height:1.125em}.cv-lead,.cv-empty{color:var(--cv-muted)}.cv-lead{margin-bottom:calc(20 * var(--u))}.cv-quiet{display:inline-flex;gap:.5em;align-items:center;min-height:2.75rem;padding:.5em 1em;border:1px solid var(--cv-line-strong);border-radius:999px;background:transparent;color:var(--cv-ink);font-size:max(.8125rem,calc(14 * var(--u)));line-height:1.2;text-decoration:none;cursor:pointer;touch-action:manipulation}.cv-quiet:hover{border-color:var(--cv-ink)}.cv-events__list{border-top:1px solid var(--cv-line)}.cv-event{display:grid;gap:.25em;padding:calc(26 * var(--u)) 0;border-bottom:1px solid var(--cv-line)}.cv-event__body{display:grid;gap:.25em;min-width:0}.cv-event__name{margin-bottom:.25em;font-family:var(--cv-font-display);font-size:max(1.375rem,calc(28 * var(--u)));font-weight:400;line-height:1.1}.cv-event__date,.cv-event__venue{font-weight:500}.cv-event__time,.cv-event__address{color:var(--cv-muted);font-variant-numeric:tabular-nums}.cv-event__venue{margin-top:.5em}.cv-events--timeline .cv-events__list{border-top:0}.cv-events--timeline .cv-event{grid-template-columns:calc(84 * var(--u)) minmax(0,1fr);column-gap:calc(16 * var(--u));padding:0;border-bottom:0}.cv-timeline__time{display:grid;align-content:start;justify-items:end;gap:.375em}.cv-timeline__clock{white-space:nowrap;font-family:var(--cv-font-display);font-size:max(1.375rem,calc(26 * var(--u)));font-variant-numeric:tabular-nums;line-height:1}.cv-timeline__zone{color:var(--cv-muted);font-size:.75em;font-weight:500;letter-spacing:.14em}.cv-events--timeline .cv-event__body{position:relative;padding:0 0 calc(40 * var(--u)) calc(22 * var(--u));border-left:1px solid var(--cv-line-strong)}.cv-events--timeline .cv-event:last-child .cv-event__body{padding-bottom:0;border-left-color:transparent}.cv-events--timeline .cv-event__body:before{position:absolute;top:.5em;left:-.375rem;width:.6875rem;height:.6875rem;content:"";border-radius:50%;background:var(--cv-accent);box-shadow:0 0 0 .25rem var(--cv-bg)}.cv-locations{display:grid;gap:calc(40 * var(--u))}.cv-venue__events{margin-bottom:.5em;color:var(--cv-muted);font-size:.8125em;letter-spacing:.1em;text-transform:uppercase}.cv-venue__name{font-family:var(--cv-font-display);font-size:max(1.375rem,calc(26 * var(--u)));font-weight:400;line-height:1.15}.cv-venue__address{margin-top:.375em;color:var(--cv-muted)}.cv-venue__map{margin-top:calc(18 * var(--u));aspect-ratio:4 / 3;overflow:hidden;border:1px solid var(--cv-line);background:var(--cv-surface)}.cv-venue__map[hidden]{display:none}.cv-venue__map iframe{display:block;width:100%;height:100%;border:0}.cv-venue__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:calc(18 * var(--u))}.cv-gallery__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:calc(8 * var(--u))}.cv-gallery__item,.cv-strip__item{overflow:hidden;background:var(--cv-surface)}.cv-gallery__item:nth-child(3n+1){grid-column:span 2}.cv-gallery__item img,.cv-strip__item img{width:100%;height:100%;object-fit:cover}.cv-gallery__item img{aspect-ratio:1}.cv-gallery__item:nth-child(3n+1) img{aspect-ratio:3 / 2}.cv-gallery__hint{margin-bottom:calc(12 * var(--u));color:var(--cv-muted);font-size:.875em}.cv-strip{padding-bottom:calc(8 * var(--u));overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--cv-line-strong) transparent}.cv-strip:focus-visible{outline-offset:-2px}.cv-strip__list{display:flex;gap:calc(12 * var(--u))}.cv-strip__item{flex:0 0 78%;scroll-snap-align:start}.cv-strip__item img{aspect-ratio:4 / 5}.cv-gift__list{display:grid;gap:calc(14 * var(--u))}.cv-account{display:grid;gap:.25em;padding:calc(22 * var(--u));border:1px solid var(--cv-line);background:var(--cv-surface)}.cv-account__bank{color:var(--cv-muted);font-size:.8125em;letter-spacing:.1em;text-transform:uppercase}.cv-account__number{font-family:var(--cv-font-display);font-size:max(1.25rem,calc(22 * var(--u)));font-variant-numeric:tabular-nums;letter-spacing:.04em}.cv-account__holder{color:var(--cv-muted)}.cv-account .cv-quiet{justify-self:start;margin-top:.75em}.cv-qris{max-width:calc(240 * var(--u));margin-top:calc(28 * var(--u))}.cv-qris img{width:100%;height:auto;padding:calc(10 * var(--u));border:1px solid var(--cv-line);background:var(--cv-surface)}.cv-qris figcaption{margin-top:.75em;color:var(--cv-muted);font-size:.875em}.cv-countdown{text-align:center}.cv-countdown__clock{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:calc(8 * var(--u))}.cv-countdown__unit{display:grid;gap:.375em;padding:calc(14 * var(--u)) .25em;border:1px solid var(--cv-line);background:var(--cv-surface)}.cv-countdown__value{font-family:var(--cv-font-display);font-size:max(1.5rem,calc(34 * var(--u)));font-variant-numeric:tabular-nums;line-height:1}.cv-countdown__label{color:var(--cv-muted);font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.cv-countdown__done{font-family:var(--cv-font-display);font-size:max(1.375rem,calc(26 * var(--u)));line-height:1.2}.cv-countdown__note{margin-top:.5em;color:var(--cv-muted)}.cv-story p+p{margin-top:1em}.cv-form__body,.cv-field{min-width:0;margin:0;padding:0;border:0}.cv-form__body{display:grid;gap:calc(20 * var(--u))}.cv-field{display:grid;gap:.5em}.cv-field__label{padding:0;font-size:.9375em;font-weight:500}.cv-field__optional{color:var(--cv-muted);font-weight:400}.cv-field__input{width:100%;min-height:3rem;padding:.75rem 1rem;border:1px solid var(--cv-line-strong);border-radius:0;background:var(--cv-bg);color:var(--cv-ink);font:inherit;font-size:max(1rem,calc(15 * var(--u)))}.cv-field__input:hover{border-color:var(--cv-ink)}textarea.cv-field__input{min-height:7rem;resize:vertical}.cv-choices{display:flex;flex-wrap:wrap;gap:.5rem}.cv-choice{position:relative;display:inline-flex}.cv-choice input{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;opacity:0;cursor:pointer}.cv-choice span{display:inline-flex;align-items:center;min-height:2.75rem;padding:.5rem 1.125rem;border:1px solid var(--cv-line-strong);border-radius:999px}.cv-choice input:checked+span{border-color:var(--cv-accent);background:var(--cv-accent);color:var(--cv-onAccent)}.cv-choice input:focus-visible+span{outline:2px solid var(--cv-accent);outline-offset:2px}.cv-field__error{color:var(--cv-ink);font-size:.875em;font-weight:500}.cv-field__input[aria-invalid=true],.cv-choice input[aria-invalid=true]+span{border-width:2px;border-color:var(--cv-accent)}.cv-notice{margin-bottom:calc(20 * var(--u));padding:calc(18 * var(--u));border:1px solid var(--cv-line-strong);border-left:4px solid var(--cv-accent);background:var(--cv-surface)}.cv-notice:focus{outline:none}.cv-notice__title{font-weight:600}.cv-notice__title+p{margin-top:.25em;color:var(--cv-muted)}.cv-notice__list{margin-top:.5em;padding-left:1.125em;list-style:disc}.cv-form__body:disabled .cv-field__input,.cv-form__body:disabled .cv-choice{opacity:.6;cursor:not-allowed}.cv-form__note{margin-top:1em;color:var(--cv-muted);font-size:.875em}.cv-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.cv-submit{height:auto;min-height:3rem;padding-block:.75rem}.cv-submit:disabled{cursor:not-allowed;opacity:.5}.cv-wishes__list{border-top:1px solid var(--cv-line)}.cv-wish{padding:calc(18 * var(--u)) 0;border-bottom:1px solid var(--cv-line)}.cv-wish__meta{display:flex;flex-wrap:wrap;gap:.25em .75em;margin-top:.5em;color:var(--cv-muted);font-size:.875em}.cv-wish__name{color:var(--cv-ink);font-weight:500}.cv-global{position:fixed;top:0;bottom:0;left:50%;z-index:var(--cv-z-global);width:min(100%,var(--cv-column));container-type:inline-size;overflow:hidden;overflow:clip;transform:translate(-50%);pointer-events:none}.cv-global .cv-el--button{pointer-events:auto}.inv-skip{position:absolute;top:.75rem;left:.75rem;z-index:var(--cv-z-skip);max-width:calc(100% - 1.5rem);padding:.75rem 1rem;background:var(--cv-accent);color:var(--cv-onAccent);transform:translateY(-200%)}.inv-skip:focus-visible{transform:none}.inv-draft{position:fixed;top:max(.75rem,env(safe-area-inset-top));left:50%;z-index:var(--cv-z-draft);display:flex;gap:.5rem;align-items:center;margin:0;padding:.375rem .875rem;background:var(--cv-draft-bg);color:var(--cv-draft-ink);font-family:system-ui,sans-serif;font-size:.8125rem;white-space:nowrap;border-radius:999px;transform:translate(-50%);pointer-events:none}.inv-draft strong{letter-spacing:.12em}.inv-music{position:fixed;right:max(1rem,env(safe-area-inset-right),calc((100vw - var(--cv-column)) / 2 + 1rem));bottom:max(1rem,env(safe-area-inset-bottom));z-index:var(--cv-z-music);display:grid;place-items:center;width:3rem;height:3rem;border:1px solid var(--cv-muted);border-radius:999px;background:var(--cv-bg);color:var(--cv-ink);cursor:pointer;box-shadow:var(--cv-shadow-float);touch-action:manipulation}.inv-music[hidden]{display:none}.inv-music>span:not(.sr-only){display:grid}.inv-music[aria-pressed=true] .inv-music__play,.inv-music[aria-pressed=false] .inv-music__pause{display:none}.cv-footer{padding:2.5rem 1.5rem calc(2.5rem + env(safe-area-inset-bottom));background:var(--cv-bg);color:var(--cv-muted);font-size:.8125rem;text-align:center}.cv-footer p{margin:.25rem 0 0}.cv-ended{display:grid;grid-template-rows:1fr auto;min-height:100vh;min-height:100dvh;padding:3rem 1.5rem 2rem;text-align:center}.cv-ended__sheet{display:grid;gap:1.25rem;align-content:center;justify-items:center;width:100%;max-width:30rem;margin-inline:auto}.cv-ended p,.cv-ended h1{margin:0}.cv-ended__eyebrow{color:var(--cv-muted);font-size:.8125rem;letter-spacing:.16em;text-transform:uppercase}.cv-ended__names{display:grid;gap:.25rem;font-family:var(--cv-font-display);font-size:clamp(2.5rem,13vw,4.25rem);font-weight:400;line-height:1;text-wrap:balance}.cv-ended__amp{color:var(--cv-accent);font-family:var(--cv-font-script);font-size:.6em}.cv-ended__date{color:var(--cv-muted);font-variant-numeric:tabular-nums}.cv-ended__rule{width:3rem;height:1px;margin:.75rem 0;border:0;background:var(--cv-ornament)}.cv-ended__thanks{text-wrap:pretty}.cv-ended__note,.cv-ended__credit{color:var(--cv-muted);font-size:.875rem}@keyframes cv-sway{0%{transform:rotate(calc(var(--loop-amount, .5) * -8deg))}to{transform:rotate(calc(var(--loop-amount, .5) * 8deg))}}@keyframes cv-float{0%{transform:translateY(calc(var(--loop-amount, .5) * 1.5cqw))}to{transform:translateY(calc(var(--loop-amount, .5) * -1.5cqw))}}@keyframes cv-pulse{0%{transform:scale(1)}to{transform:scale(calc(1 + var(--loop-amount, .5) * .12))}}@keyframes cv-spin{to{transform:rotate(360deg)}}@keyframes cv-reveal{to{opacity:1;transform:none}}[data-loop]>.cv-el__in{animation-duration:var(--loop-period, 6s);animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate;will-change:transform}[data-loop=sway]>.cv-el__in{animation-name:cv-sway}[data-loop=float]>.cv-el__in{animation-name:cv-float}[data-loop=pulse]>.cv-el__in{animation-name:cv-pulse}[data-loop=spin]>.cv-el__in{animation-name:cv-spin;animation-timing-function:linear;animation-direction:normal}.cv-section.is-off [data-loop]>.cv-el__in{animation-play-state:paused}@media (prefers-reduced-motion: no-preference){html.js [data-enter]{--en-x: 0cqw;--en-y: 0cqw;--en-s: 1;opacity:0;transform:translate(var(--en-x),var(--en-y)) scale(var(--en-s))}html.js [data-enter=slide-left]{--en-x: -10cqw}html.js [data-enter=slide-right]{--en-x: 10cqw}html.js [data-enter=slide-up]{--en-y: 10cqw}html.js [data-enter=slide-down]{--en-y: -10cqw}html.js [data-enter=zoom]{--en-s: .8}html.js [data-enter][data-still]{--en-x: 0cqw;--en-y: 0cqw;--en-s: 1}html.js [data-enter].is-in{opacity:1;transform:none;transition:opacity var(--en-d, .7s) cubic-bezier(.22,.61,.36,1) var(--en-w, 0ms),transform var(--en-d, .7s) cubic-bezier(.22,.61,.36,1) var(--en-w, 0ms)}html.js:not(.cv-ready) [data-enter]:not(.is-in){animation:cv-reveal .01s 3s forwards}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}[data-enter]{opacity:1;transform:none;transition:none}[data-loop]>.cv-el__in{animation:none}.cv-el{translate:none;scale:none;rotate:none}}
