.gv-stage{background:var(--gv-shell);min-height:100dvh;color:var(--gv-body);font-family:var(--font-cormorant), "Cormorant Garamond", serif;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;position:relative}.gv-column{background:var(--gv-halo), var(--gv-paper);width:min(100%,520px);box-shadow:var(--gv-piece-shadow);margin-inline:auto;position:relative;overflow:hidden}.gv-column.is-locked{max-height:100dvh;overflow:hidden}.gv-section{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:clamp(78px,16vw,108px) clamp(26px,7vw,40px);display:flex;position:relative}.gv-section--airy{padding-block:clamp(86px,18vw,120px)}.gv-eyebrow{font-family:var(--font-montserrat), "Montserrat", sans-serif;letter-spacing:.22em;text-transform:uppercase;color:var(--gv-label);margin:0;font-size:.83rem;font-weight:500}.gv-title{letter-spacing:.12em;text-transform:uppercase;text-wrap:balance;color:var(--gv-ink);margin:12px 0 0;font-size:clamp(1.6rem,6.3vw,2rem);font-weight:300;line-height:1.38}.gv-title:first-child{margin-top:0}.gv-title--sm{letter-spacing:.14em;font-size:1.24rem}.gv-prose{color:var(--gv-body);text-wrap:pretty;margin:0;font-size:1.34rem;font-weight:300;line-height:1.68}.gv-prose--lead{font-size:1.46rem;font-style:italic;line-height:1.68}.gv-prose--quote{font-size:1.44rem;font-style:italic;line-height:1.66}.gv-prose--sm{color:var(--gv-label);font-size:1.12rem;line-height:1.6}.gv-script{font-family:var(--font-pinyon-script), "Pinyon Script", cursive;color:var(--gv-ink);margin:0;font-weight:400}.gv-wrap{width:min(100%,390px);margin-inline:auto}.gv-wrap--narrow{width:min(100%,340px);margin-inline:auto}.gv-wrap--mid{width:min(100%,368px);margin-inline:auto}.gv-card{background:var(--gv-glass);border:1px solid var(--gv-glass-border);-webkit-backdrop-filter:blur(18px);width:min(100%,390px);box-shadow:var(--gv-glass-shadow);text-align:left;border-radius:22px;margin-inline:auto;padding:20px 22px}.gv-card--soft{background:var(--gv-glass-soft);border-color:var(--gv-glass-border-soft);-webkit-backdrop-filter:none;padding:22px}.gv-card--center{text-align:center}.gv-cards{margin-inline:auto;flex-direction:column;gap:14px;width:min(100%,390px);margin-top:26px;display:flex}.gv-row{align-items:center;gap:18px;display:flex}.gv-row-ic{flex:none;width:auto;height:44px;display:block}.gv-row--stacked{border-top:1px solid var(--gv-glass-border);margin-top:16px;padding-top:16px}.gv-row-label{font-family:var(--font-montserrat), "Montserrat", sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--gv-label);margin:0;font-size:.8rem;font-weight:500}.gv-row-main{color:var(--gv-ink);margin:6px 0 0;font-size:1.36rem;line-height:1.32}.gv-row-note{color:var(--gv-muted);margin:3px 0 0;font-size:1.18rem;line-height:1.55}.gv-btn,.gv-btn--ghost{background:var(--gv-btn);min-height:56px;color:var(--gv-on-accent);font-family:var(--font-montserrat), "Montserrat", sans-serif;letter-spacing:.18em;text-transform:uppercase;text-align:center;cursor:pointer;box-shadow:var(--gv-btn-shadow);border:0;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:0 34px;font-size:.75rem;font-weight:500;transition:transform .18s ease-out,background-color .3s,filter .3s;display:inline-flex}.gv-btn--ghost{border:1px solid var(--gv-line);background:var(--gv-glass-soft);min-height:52px;color:var(--gv-ink);letter-spacing:.16em;box-shadow:none;padding:0 26px;font-size:.82rem}.gv-btn:hover,.gv-btn--ghost:hover{filter:brightness(1.03);transform:translateY(-1px)}.gv-btn:active,.gv-btn--ghost:active{transform:scale(.975)}.gv-btnstack{flex-direction:column;align-items:center;gap:12px;margin-top:22px;display:flex}.gv-btnstack--start{align-items:stretch}.gv-linklike{color:var(--gv-label);font-family:var(--font-montserrat), "Montserrat", sans-serif;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;margin-top:16px;padding:8px;font-size:.68rem}.gv-divider{width:min(72%,272px);height:auto;margin:18px auto 30px;display:block}.gv-divider--slim{width:min(62%,206px);margin:20px auto 0}.gv-divider--leaf{width:min(74%,258px);margin:26px auto 34px}.gv-branch{pointer-events:none;transform-origin:bottom;width:148px;position:absolute}.gv-branch-img{opacity:.28;width:100%;height:auto;display:block}.gv-branch--details{top:3%;right:-56px}.gv-branch--details .gv-branch-img{animation:11s ease-in-out infinite alternate gv-breath-a}.gv-branch--parents{top:11%;left:-62px}.gv-branch--parents .gv-branch-img{opacity:.26;animation:12s ease-in-out infinite alternate gv-breath}.gv-branch--dress{width:132px;bottom:-18px;right:-46px}.gv-branch--dress .gv-branch-img{opacity:.24;animation:12s ease-in-out infinite alternate gv-breath-b}.gv-branch--gifts{bottom:7%;right:-56px}.gv-branch--gifts .gv-branch-img{animation:13s ease-in-out infinite alternate gv-breath-b}.gv-branch--family{width:132px;bottom:6%;left:-58px}.gv-branch--family .gv-branch-img{opacity:.24;animation:13s ease-in-out infinite alternate gv-breath}.gv-botanical{pointer-events:none;opacity:.9;width:112%;height:auto;position:absolute;left:-6%}.gv-botanical--bottom{bottom:-56px}.gv-botanical--top{opacity:.88;top:-40px}.gv-flake{opacity:.26;pointer-events:none;width:30px;height:auto;display:block;position:absolute}.gv-flake--dress{top:7%;left:9%}.gv-flake--rsvp{opacity:.3;width:36px;top:9%;left:8%}.gv-frost{pointer-events:none;z-index:102;width:min(100%,520px);margin-inline:auto;position:fixed;inset:0;overflow:hidden}.gv-frost-texture{opacity:0;will-change:transform;animation:1.8s ease-out .3s both gv-frost-in,22s ease-in-out 2.2s infinite alternate gv-frost-drift;position:absolute;inset:0}.gv-frost-texture img{object-fit:cover}.gv-frost-flake{opacity:0;height:auto;position:absolute;top:0}.gv-frost-flake--a{width:26px;animation:26s linear infinite gv-drift-a;left:11%}.gv-frost-flake--b{filter:blur(1.5px);width:16px;animation:38s linear -14s infinite gv-drift-c;left:58%}.gv-frost-flake--c{width:21px;animation:33s linear -21s infinite gv-drift-b;left:82%}.gv-soundbar{z-index:80;pointer-events:none;justify-content:flex-end;width:min(100%,520px);height:0;margin-inline:auto;padding-inline:22px;display:flex;position:fixed;top:20px;left:0;right:0}.gv-sound{pointer-events:auto;border:1px solid var(--gv-glass-border);background:var(--gv-field-focus-bg);-webkit-backdrop-filter:blur(14px);width:40px;height:40px;color:var(--gv-muted);cursor:pointer;box-shadow:var(--gv-fab-shadow);border-radius:999px;justify-content:center;align-items:center;font-size:15px;line-height:1;transition:transform .18s ease-out,background-color .3s;display:flex;position:relative}.gv-sound:active{transform:scale(.94)}.gv-sound-note{animation:2.4s ease-in-out infinite paused gv-note}.gv-sound.is-on .gv-sound-note{animation-play-state:running}.gv-sound-strike{background:var(--gv-strike);height:1px;position:absolute;top:19px;left:9px;right:9px;transform:rotate(-38deg)}.gv-sound.is-on .gv-sound-strike{display:none}.gv-hero{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:clamp(72px,16vw,104px) clamp(26px,7vw,40px) clamp(215px,42vw,265px);display:flex;position:relative}.gv-hero-monogram{width:min(58%,212px);height:auto;margin-bottom:14px;display:block}.gv-hero-kicker{font-family:var(--font-montserrat), "Montserrat", sans-serif;letter-spacing:.24em;text-transform:uppercase;color:var(--gv-label);margin:0;font-size:.85rem;font-weight:500}.gv-hero-name{margin:-6px 0 0;padding-bottom:8px;font-size:clamp(4.3rem,18vw,6.2rem);line-height:1.06}.gv-hero-art{width:min(88%,380px);height:auto;margin:4px auto 0;display:block}.gv-hero-quote{width:min(100%,368px);margin-inline:auto}.gv-data{font-family:var(--font-montserrat), "Montserrat", sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--gv-muted);flex-direction:column;gap:7px;margin-top:34px;font-size:.9rem;font-weight:500;display:flex}.gv-scroll{flex-direction:column;align-items:center;gap:8px;margin-top:44px;display:flex}.gv-scroll span:first-child{font-family:var(--font-montserrat), "Montserrat", sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--gv-label);font-size:.8rem;font-weight:500}.gv-scroll-line{background:var(--gv-scroll-line);width:1px;height:34px;animation:3.4s ease-in-out infinite gv-pulse}.gv-count{margin-inline:auto;background:var(--gv-glass);border:1px solid var(--gv-glass-border);-webkit-backdrop-filter:blur(18px);width:min(100%,360px);box-shadow:var(--gv-glass-shadow);border-radius:22px;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:34px;padding:20px 14px;display:grid}.gv-count-cell{flex-direction:column;gap:6px;display:flex}.gv-count-num{color:var(--gv-ink);font-variant-numeric:tabular-nums;font-size:2.15rem;font-weight:400;line-height:1}.gv-count-label{font-family:var(--font-montserrat), "Montserrat", sans-serif;letter-spacing:.17em;text-transform:uppercase;color:var(--gv-label);font-size:.8rem;font-weight:500}.gv-map{border:1px solid var(--gv-glass-border);background:var(--gv-field);border-radius:18px;margin-top:18px;overflow:hidden}.gv-map iframe{border:0;width:100%;height:190px;display:block}.gv-timeline{margin-inline:auto;flex-direction:column;align-items:center;gap:16px;width:min(100%,390px);margin-top:26px;display:flex}.gv-tl-sep{opacity:.4;width:18px;height:auto;display:block}.gv-tl-when{color:var(--gv-ink);margin:0;font-size:2.15rem;font-weight:400;line-height:1}.gv-tl-title{font-family:var(--font-montserrat), "Montserrat", sans-serif;letter-spacing:.17em;text-transform:uppercase;color:var(--gv-label);margin:8px 0 0;font-size:.8rem;font-weight:500}.gv-tl-text{color:var(--gv-body);text-wrap:pretty;margin:10px 0 0;font-size:1.26rem;font-weight:300;line-height:1.62}.gv-program{margin-inline:auto;flex-direction:column;gap:14px;width:min(100%,390px);margin-top:26px;display:flex}.gv-prog-row{text-align:left;grid-template-columns:minmax(72px,auto) 1fr;align-items:baseline;gap:18px;display:grid}.gv-prog-time{color:var(--gv-ink);font-variant-numeric:tabular-nums;margin:0;font-size:1.62rem;line-height:1.1}.gv-prog-label{font-family:var(--font-montserrat), "Montserrat", sans-serif;letter-spacing:.17em;text-transform:uppercase;color:var(--gv-label);margin:0;font-size:.8rem;font-weight:500}.gv-dress-sub{color:var(--gv-muted);margin:14px 0 0;font-size:1.76rem;font-style:italic;font-weight:300;line-height:1.34}.gv-swatches{margin-inline:auto;grid-template-columns:repeat(3,minmax(0,1fr));justify-items:center;gap:clamp(22px,6vw,32px) clamp(12px,4vw,24px);width:min(100%,340px);margin-top:22px;display:grid}.gv-swatch{flex-direction:column;align-items:center;gap:12px;display:flex}.gv-swatch-dot{border:1px solid var(--gv-glass-border);width:clamp(50px,13vw,64px);height:clamp(50px,13vw,64px);box-shadow:var(--gv-swatch-shadow);border-radius:999px;position:relative}.gv-swatch-name{font-family:var(--font-montserrat), "Montserrat", sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--gv-label);text-align:center;font-size:.8rem;font-weight:500}.gv-gallery{margin-inline:auto;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(10px,3vw,14px);width:min(100%,390px);margin-top:24px;display:grid}.gv-gallery-item{aspect-ratio:3/4;border:1px solid var(--gv-glass-border);box-shadow:var(--gv-swatch-shadow);background:var(--gv-field);border-radius:22px;position:relative;overflow:hidden}.gv-gallery-item img{object-fit:cover}.gv-gallery.is-single{grid-template-columns:minmax(0,1fr);max-width:260px;margin-inline:auto}.gv-names{flex-direction:column;gap:10px;margin-top:22px;display:flex}.gv-name-line{color:var(--gv-ink);margin:0;font-size:1.36rem;line-height:1.4}.gv-guests{margin-inline:auto;grid-template-columns:repeat(3,minmax(0,1fr));justify-items:center;gap:clamp(20px,5vw,28px) clamp(12px,4vw,20px);width:min(100%,340px);margin-top:22px;display:grid}.gv-guest{flex-direction:column;align-items:center;gap:10px;display:flex}.gv-guest-photo{border:1px solid var(--gv-glass-border);width:clamp(50px,13vw,64px);height:clamp(50px,13vw,64px);box-shadow:var(--gv-swatch-shadow);background:var(--gv-field);border-radius:999px;position:relative;overflow:hidden}.gv-guest-photo img{object-fit:cover}.gv-guest-name{font-family:var(--font-montserrat), "Montserrat", sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--gv-label);text-align:center;font-size:.8rem;font-weight:500}.gv-letter{color:var(--gv-body);text-wrap:pretty;flex-direction:column;gap:18px;margin-top:20px;font-size:1.36rem;font-weight:300;line-height:1.74;display:flex}.gv-letter p{margin:0}.gv-letter-vocative{font-size:2.2rem;line-height:1.2}.gv-letter-sign{color:var(--gv-label);margin:30px 0 0;font-size:1.3rem;font-style:italic;font-weight:300;line-height:1.5}.gv-meaning{color:var(--gv-label);margin:0;font-size:1.52rem;font-style:italic;font-weight:300;line-height:1.5}.gv-meaning-ref{font-family:var(--font-montserrat), "Montserrat", sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--gv-muted);margin:8px 0 0;font-size:.78rem;font-weight:500}.gv-icon{width:auto;height:66px;margin:0 auto 12px;display:block}.gv-icon--lg{height:78px;animation:9s ease-in-out infinite alternate gv-breath}.gv-form{margin-inline:auto;text-align:left;width:min(100%,390px);margin-top:26px}.gv-form input,.gv-form textarea,.gv-form select{color:var(--gv-ink);background:var(--gv-field);border:1px solid var(--gv-field-border);border-radius:18px;font-family:inherit;font-size:1.2rem;transition:border-color .3s,background-color .3s}.gv-form input,.gv-form select{min-height:54px;padding:0 20px}.gv-form textarea{resize:none;min-height:110px;padding:16px 20px;line-height:1.6}.gv-form input::placeholder,.gv-form textarea::placeholder{color:var(--gv-placeholder)}.gv-form input:focus,.gv-form textarea:focus,.gv-form select:focus{border-color:var(--gv-field-focus);background:var(--gv-field-focus-bg);outline:none}.gv-form label{font-family:var(--font-montserrat), "Montserrat", sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--gv-label);font-size:.81rem;font-weight:500}.gv-form button[type=submit]{background:var(--gv-btn);min-height:56px;color:var(--gv-on-accent);font-family:var(--font-montserrat), "Montserrat", sans-serif;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;box-shadow:var(--gv-btn-shadow);border:0;border-radius:999px;font-size:.75rem;font-weight:500;transition:transform .18s ease-out,filter .3s}.gv-form button[type=submit]:hover{filter:brightness(1.03);transform:translateY(-1px)}.gv-form button[type=submit]:active{transform:scale(.975)}.gv-notes{margin-inline:auto;text-align:left;flex-direction:column;gap:12px;width:min(100%,390px);margin-top:22px;display:flex}.gv-note{background:var(--gv-glass-soft);border:1px solid var(--gv-glass-border-soft);border-radius:22px;padding:22px}.gv-note-text{color:var(--gv-body);text-wrap:pretty;margin:0;font-size:1.26rem;font-weight:300;line-height:1.62}.gv-note-by{font-family:var(--font-montserrat), "Montserrat", sans-serif;letter-spacing:.19em;text-transform:uppercase;color:var(--gv-label);margin:12px 0 0;font-size:.8rem;font-weight:500}.gv-note-date{font-family:var(--font-montserrat), "Montserrat", sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--gv-muted);margin:4px 0 0;font-size:.68rem}.gv-wall-foot{color:var(--gv-muted);max-width:min(100%,340px);margin:18px 0 0;font-size:1.02rem;line-height:1.5}.gv-accordion{margin-inline:auto;text-align:left;flex-direction:column;gap:12px;width:min(100%,390px);margin-top:26px;display:flex}.gv-acc-item{background:var(--gv-glass);border:1px solid var(--gv-glass-border);-webkit-backdrop-filter:blur(18px);box-shadow:var(--gv-glass-shadow);border-radius:22px;overflow:hidden}.gv-acc-q{width:100%;color:var(--gv-ink);text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:14px;padding:20px 22px;font-family:inherit;font-size:1.28rem;line-height:1.45;list-style:none;display:flex}.gv-acc-q::-webkit-details-marker{display:none}.gv-acc-sign{font-family:var(--font-montserrat), "Montserrat", sans-serif;color:var(--gv-label);flex:none;font-size:1rem;transition:transform .3s}.gv-acc-item[open] .gv-acc-sign{transform:rotate(45deg)}.gv-acc-a{padding:0 22px 20px}.gv-acc-a p{color:var(--gv-body);margin:0;font-size:1.22rem;font-weight:300;line-height:1.62}.gv-lodging-meta{font-family:var(--font-montserrat), "Montserrat", sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--gv-muted);margin:6px 0 0;font-size:.76rem;font-weight:500}.gv-hashtag{word-break:break-word;margin:12px 0 0;font-size:2.2rem;line-height:1.2}.gv-closing{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:clamp(300px,58vw,360px) clamp(26px,7vw,40px) clamp(64px,14vw,88px);display:flex;position:relative}.gv-closing-flower{width:min(50%,180px);height:auto;margin:34px auto 10px;animation:11s ease-in-out infinite alternate gv-breath;display:block}.gv-closing-name{font-size:3.2rem;line-height:1.2}.gv-closing-date{font-family:var(--font-montserrat), "Montserrat", sans-serif;letter-spacing:.22em;text-transform:uppercase;color:var(--gv-label);margin:10px 0 0;font-size:.81rem;font-weight:500}.gv-closing-ig{font-family:var(--font-montserrat), "Montserrat", sans-serif;letter-spacing:.19em;text-transform:uppercase;color:var(--gv-label);margin-top:34px;font-size:.81rem;font-weight:500;text-decoration:none;transition:color .3s;display:inline-block}.gv-closing-ig:hover{color:var(--gv-serenity)}.gv-closing-note{color:var(--gv-muted);margin:18px 0 0;font-size:1.08rem;line-height:1.6}.gv-rich{color:var(--gv-body);text-wrap:pretty;margin-top:18px;font-size:1.3rem;font-weight:300;line-height:1.7}.gv-rich p{margin:0 0 14px}.gv-rich p:last-child{margin-bottom:0}.gv-rich a{color:var(--gv-link);text-underline-offset:3px;text-decoration:underline}.gv-rich a:hover{color:var(--gv-serenity)}.gv-rich strong{color:var(--gv-ink);font-weight:600}.gv-rich ul,.gv-rich ol{text-align:left;margin:0 0 14px;padding-left:1.3em}.gv-rich li{margin-bottom:6px}.gv-custom--aviso .gv-custom-card{background:var(--gv-glass);border:1px solid var(--gv-glass-border);-webkit-backdrop-filter:blur(18px);width:min(100%,390px);box-shadow:var(--gv-glass-shadow);border-radius:22px;padding:26px 24px}.gv-editable-photos{margin-inline:auto;width:min(100%,390px);color:var(--gv-label);margin-top:22px}.gv-reveal{width:100%;transition:opacity .85s ease-out,transform 1.1s cubic-bezier(.22,1,.36,1),filter .8s ease-out}.gv-reveal.gv-branch{width:148px}.gv-reveal.gv-branch--dress,.gv-reveal.gv-branch--family{width:132px}.gv-reveal.is-armed{opacity:0;filter:blur(5px);transform:translateY(22px)}.gv-reveal.is-in{opacity:1;filter:none;transform:none}.gv-reveal--card.is-armed{filter:blur(6px);transform:translateY(20px)scale(.985)}.gv-reveal--card{transition:opacity .8s ease-out,transform .85s cubic-bezier(.22,1,.36,1),filter .75s ease-out}.gv-reveal--divider{transition:opacity .7s ease-out,transform .9s cubic-bezier(.22,1,.36,1)}.gv-reveal--divider.is-armed{opacity:0;transform-origin:50%;filter:none;transform:scaleX(.2)}.gv-reveal--name{transition:clip-path 1.6s cubic-bezier(.22,1,.36,1),opacity .7s ease-out,transform 1.2s cubic-bezier(.22,1,.36,1)}.gv-reveal--name.is-armed{opacity:0;clip-path:inset(0 100% 0 0);filter:none;transform:translateY(10px)}.gv-reveal--name.is-in{clip-path:inset(0)}.gv-reveal--branch{transition:opacity 1.4s ease-out,transform 1.6s cubic-bezier(.16,1,.3,1)}.gv-reveal--branch.is-armed{opacity:0;transform-origin:bottom;filter:none;transform:scale(.94)rotate(-3deg)}.gv-reveal{transition-delay:var(--gv-delay,0s)}@keyframes gv-breath{0%{transform:translate(0,0)rotate(-.5deg)scale(1)}to{transform:translateY(-6px)rotate(.5deg)scale(1.008)}}@keyframes gv-breath-a{0%{transform:rotate(13deg)translate(0,0)}to{transform:rotate(15deg)translateY(-6px)}}@keyframes gv-breath-b{0%{transform:scaleX(-1)rotate(7deg)translate(0,0)}to{transform:scaleX(-1)rotate(9deg)translateY(-6px)}}@keyframes gv-hero-in{0%{opacity:0;filter:blur(8px);transform:translateY(18px)scale(.93)rotate(-2deg)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)rotate(0)}}@keyframes gv-rise{0%{opacity:0;filter:blur(5px);transform:translateY(16px)}to{opacity:1;filter:blur();transform:none}}@keyframes gv-grow{0%{opacity:0;transform:scale(.94)rotate(-3deg)}to{opacity:1;transform:none}}@keyframes gv-grow-mirror{0%{opacity:0;transform:scaleX(-1)scale(.94)rotate(3deg)}to{opacity:1;transform:scaleX(-1)}}@keyframes gv-name-in{0%{opacity:0;clip-path:inset(0 100% 0 0);transform:translateY(10px)}to{opacity:1;clip-path:inset(0);transform:none}}@keyframes gv-seal-in{0%{opacity:0;filter:blur(5px);transform:scale(.84)rotate(-5deg)}to{opacity:1;filter:blur();transform:scale(1)rotate(0)}}@keyframes gv-seal-float{0%{transform:translate(0,0)}to{transform:translateY(-2.5px)}}@keyframes gv-tap-breath{0%,to{opacity:.52}50%{opacity:.95}}@keyframes gv-star-breath{0%,to{opacity:.35;transform:scale(.75)}50%{opacity:.85;transform:scale(1)}}@keyframes gv-pulse{0%,to{opacity:.45}50%{opacity:1}}@keyframes gv-note{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes gv-bob{0%{transform:translateY(0)}45%{transform:translateY(-5px)}to{transform:translateY(0)}}@keyframes gv-wash{0%{opacity:0}42%{opacity:1}to{opacity:0}}@keyframes gv-frost-in{0%{opacity:0}to{opacity:.09}}@keyframes gv-frost-drift{0%{transform:translate(-4px,-8px)scale(1.06)}50%{transform:translate(5px,5px)scale(1.06)}to{transform:translate(-2px,14px)scale(1.06)}}@keyframes gv-drift-a{0%{opacity:0;transform:translateY(-8vh)rotate(0)}12%{opacity:.18}88%{opacity:.18}to{opacity:0;transform:translate(22px,108vh)rotate(200deg)}}@keyframes gv-drift-b{0%{opacity:0;transform:translateY(-8vh)rotate(0)}14%{opacity:.12}86%{opacity:.12}to{opacity:0;transform:translate(-14px,108vh)rotate(160deg)}}@keyframes gv-drift-c{0%{opacity:0;transform:translateY(-8vh)rotate(0)}16%{opacity:.08}84%{opacity:.08}to{opacity:0;transform:translate(9px,108vh)rotate(120deg)}}.gv-opener{z-index:100;text-align:center;background:var(--gv-halo-opener), var(--gv-paper);flex-direction:column;justify-content:safe center;align-items:center;transition:opacity 1s ease-out,filter 1s ease-out;display:flex;position:fixed;inset:0;overflow:hidden}.gv-opener.is-opening{opacity:0;filter:blur(10px);pointer-events:none;transition-delay:.3s}.gv-opener-hit{cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;width:100%;height:100%;margin:0;padding:0;display:flex}.gv-opener-piece{will-change:transform, opacity;flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:min(100%,560px);height:100%;padding:clamp(28px,9vw,52px) clamp(26px,7vw,40px);display:flex;position:relative}.gv-opener.is-opening .gv-opener-piece{animation:1.53s both gv-opener-out}@keyframes gv-opener-out{0%{animation-timing-function:cubic-bezier(.22,1,.36,1);transform:scale(1)}17%{transform:scale(.955)}18.3%{animation-timing-function:cubic-bezier(.22,1,.36,1);transform:scale(.955)}to{transform:scale(1.1)}}.gv-opener-art{object-fit:contain;width:100%;max-width:min(100%,560px);height:100%;animation:1.8s cubic-bezier(.22,1,.36,1) .25s both gv-hero-in;display:block}.gv-opener-branch{opacity:.26;pointer-events:none;width:132px;height:auto;animation:1.3s cubic-bezier(.16,1,.3,1) .5s both gv-grow;position:absolute;top:12%}.gv-opener-branch--left{left:-34px}.gv-opener-branch--right{animation-name:gv-grow-mirror;right:-34px}.gv-opener-kicker{font-family:var(--font-montserrat), "Montserrat", sans-serif;letter-spacing:.32em;text-transform:uppercase;color:var(--gv-label);margin:0;font-size:.85rem;font-weight:500;animation:.9s ease-out 1.45s both gv-rise}.gv-opener-name{margin:6px 0 0;padding-bottom:10px;font-size:clamp(3.6rem,16vw,5.2rem);line-height:1.06;animation:1.6s cubic-bezier(.22,1,.36,1) 1.6s both gv-name-in}.gv-opener-bouquet-wrap{width:min(96%,420px);margin-top:8px;display:block;position:relative}.gv-opener-bouquet{width:100%;height:auto;animation:1.8s cubic-bezier(.22,1,.36,1) .75s both gv-hero-in,9s ease-in-out 2.6s infinite alternate gv-breath;display:block}.gv-opener-seal{width:clamp(88px,24vw,122px);animation:1.1s cubic-bezier(.22,1,.36,1) 1.15s both gv-seal-in,10s ease-in-out 2.4s infinite alternate gv-seal-float;position:absolute;top:50%;left:50%;translate:-50% -50%}.gv-opener-seal img,.gv-opener-seal svg{width:100%;height:auto;display:block}.gv-opener-foot{flex-direction:column;align-items:center;gap:10px;margin-top:auto;padding-top:clamp(18px,6vw,28px);animation:.9s ease-out 2.2s both gv-rise;display:flex}.gv-opener-tap{font-family:var(--font-montserrat), "Montserrat", sans-serif;letter-spacing:.24em;text-transform:uppercase;color:var(--gv-muted);margin:0;font-size:.8rem;font-weight:500;animation:2.8s ease-in-out 3.1s infinite gv-tap-breath}.gv-opener-star{width:22px;height:auto;animation:2.8s ease-in-out 3.1s infinite gv-star-breath;display:block}.gv-opener-divider{opacity:.75;width:min(52%,190px);height:auto;margin:0 auto;animation:.9s ease-out 1.3s both gv-rise;display:block}.gv-seal-wax{fill:var(--gv-serenity);stroke:var(--gv-line);stroke-width:.6px}.gv-seal-ring{fill:none;stroke:var(--gv-paper);stroke-width:1.2px;opacity:.6}.gv-seal-initial{fill:var(--gv-paper);font-family:var(--font-pinyon-script), "Pinyon Script", cursive}.gv-mono-wreath{fill:none;stroke:var(--gv-serenity);stroke-width:1px;opacity:.55}.gv-mono-leaf{fill:var(--gv-ice);opacity:.85}.gv-mono-initial{fill:var(--gv-ink);font-family:var(--font-pinyon-script), "Pinyon Script", cursive}.gv-wash{z-index:101;opacity:0;pointer-events:none;background:var(--gv-wash);position:fixed;inset:0}.gv-wash.is-on{animation:1.3s ease-out .15s both gv-wash}.gv-pin.is-bobbing{animation:.45s ease-out gv-bob}.gv-toast{z-index:90;background:var(--gv-glass);border:1px solid var(--gv-glass-border);-webkit-backdrop-filter:blur(18px);max-width:min(88vw,340px);box-shadow:var(--gv-glass-shadow);color:var(--gv-ink);font-family:var(--font-montserrat), "Montserrat", sans-serif;letter-spacing:.14em;text-transform:uppercase;text-align:center;opacity:0;pointer-events:none;border-radius:999px;padding:14px 22px;font-size:.76rem;transition:opacity .3s,translate .3s;position:fixed;bottom:26px;left:50%;translate:-50% 12px}.gv-toast.is-on{opacity:1;translate:-50%}.gv-stage a{color:var(--gv-link);text-decoration:none}.gv-stage a:hover{color:var(--gv-serenity)}.gv-stage :focus-visible{outline:2px solid var(--gv-ink);outline-offset:3px;border-radius:6px}.gv-page{background:var(--gv-shell);min-height:100dvh;color:var(--gv-body);font-family:var(--font-cormorant), "Cormorant Garamond", serif;-webkit-font-smoothing:antialiased;padding:0 0 60px;position:relative}.gv-page-column{background:var(--gv-halo), var(--gv-paper);width:min(100%,520px);box-shadow:var(--gv-piece-shadow);margin:0 auto;padding:0 0 40px;position:relative;overflow:hidden}.gv-page-hero{text-align:center;padding:clamp(44px,12vw,64px) clamp(26px,7vw,40px) clamp(28px,8vw,40px);position:relative}.gv-page-back{font-family:var(--font-montserrat), "Montserrat", sans-serif;letter-spacing:.22em;text-transform:uppercase;color:var(--gv-label);align-items:center;gap:8px;margin:0 0 18px;font-size:.72rem;font-weight:500;display:inline-flex}.gv-page-back:hover{color:var(--gv-serenity)}.gv-page-body{padding:8px clamp(20px,6vw,30px) 0}.gv-page-panel{background:var(--gv-glass);border:1px solid var(--gv-glass-border);-webkit-backdrop-filter:blur(18px);box-shadow:var(--gv-glass-shadow);border-radius:22px;padding:24px 20px}.gv-badge{border:1px solid var(--gv-glass-border);background:var(--gv-field);font-family:var(--font-montserrat), "Montserrat", sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--gv-label);border-radius:999px;align-items:center;padding:6px 14px;font-size:.68rem;font-weight:500;display:inline-flex}.gv-rule{background:var(--gv-glass-border);width:100%;height:1px;display:block}.gv-page :focus-visible{outline:2px solid var(--gv-ink);outline-offset:3px;border-radius:6px}.gv-page a{color:var(--gv-link);text-decoration:none}.gv-page a:hover{color:var(--gv-serenity)}@media (prefers-reduced-motion:reduce){.gv-page *,.gv-page :before,.gv-page :after{transition-duration:.01ms!important;animation:none!important}}@media (max-width:460px){.gv-count{gap:4px;padding:18px 10px}.gv-count-num{font-size:1.9rem}.gv-count-label{letter-spacing:.12em;font-size:.72rem}.gv-prog-row{grid-template-columns:minmax(64px,auto) 1fr;gap:14px}.gv-row{gap:14px}}@media (min-width:768px){.gv-map iframe{height:220px}}@media (prefers-reduced-motion:reduce){.gv-stage *,.gv-stage :before,.gv-stage :after,.gv-opener,.gv-opener *,.gv-frost *,.gv-wash{scroll-behavior:auto!important;transition-duration:.01ms!important;animation:none!important}.gv-frost-texture{opacity:.09}.gv-frost-flake{opacity:.1}}