.sv-html { color-scheme: light; background: white; }
.sv-html.sv-locked { overflow: hidden; }
.sv-body { margin: 0; background: white; }
.sq-html { --sq-accent: #920f0f; --sq-paper: #f3f0e9; }
.sv-content { display: none; }
.sv-opened .sv-content, .sv-preview .sv-content { display: block; }
#sv-envelope { cursor: pointer; touch-action: none; }
#sv-envelope [data-sv-envelope-flap] { transition: transform 2.5s ease-in-out; }
#sv-envelope [data-sv-envelope-bottom] { transition: bottom 2.5s .5s ease-in-out; }
#sv-envelope.sv-opening [data-sv-envelope-flap] { transform: translateX(-50%) translateY(-200%) rotate(45deg) !important; }
#sv-envelope.sv-opening [data-sv-envelope-bottom] { bottom: -100% !important; }
#sv-envelope.sv-opening { pointer-events: none; }
.sv-tools { position: fixed; z-index: 60; bottom: 16px; width: min(100%,448px); left: 50%; transform: translateX(-50%); display: flex; align-items: flex-end; flex-direction: column; gap: 16px; pointer-events: none; }
.sv-tools > button { border: 0; border-radius: 50%; width: 32px; height: 32px; padding: 4px; margin-right: 20px; color: white; background: #575757; display: grid; place-items: center; cursor: pointer; pointer-events: auto; }
.sv-tools > button[hidden] { display: none; }
#sv-music { padding: 0; }
.sv-scroll-hint { position: fixed; left: max(calc(50% - 204px),20px); bottom: 16px; z-index: 50; pointer-events: none; }
.sv-scroll-hint svg { animation: sv-scroll-hand 2s infinite; }
.sv-locked .sv-scroll-hint,.sv-preview .sv-scroll-hint,.iv-editing .sv-scroll-hint { display: none; }
@keyframes sv-scroll-hand { 0%,100% { transform:translateY(0) rotate(-25deg); } 50% { transform:translateY(-10px) rotate(-10deg); } }
.sv-locked .sv-tools { bottom: 64px; }
.sv-locked #sv-music { display: none; }
#sv-swatches { position: absolute; right: 60px; bottom: 48px; padding: 8px; gap: 8px; background: white; box-shadow: 0 2px 12px #0003; border-radius: 6px; pointer-events: auto; }
#sv-swatches:not([hidden]) { display: flex; }
#sv-swatches button { border: 2px solid white; width: 28px; height: 28px; border-radius: 50%; outline: 1px solid #ddd; cursor: pointer; }
#sv-swatches button[aria-pressed="true"] { outline: 2px solid #575757; outline-offset: 2px; }
.sv-map-dialog,.sv-rsvp-dialog,.sv-gift-dialog { position: fixed; border: 0; padding: 16px; border-radius: 4px; color: #000; background: #fff; z-index: 100; box-sizing: border-box; font-size: 16px; line-height: 24px; }
.sv-map-dialog::backdrop,.sv-rsvp-dialog::backdrop,.sv-gift-dialog::backdrop { background: #0005; }
.sv-rsvp-dialog,.sv-gift-dialog { top: 16px; margin: 0 auto; width: calc(100% - 32px); max-width: 1024px; max-height: calc(100dvh - 32px); overflow-y: auto; }
.sq-body #sv-rsvp { font-family: __contentFont_293c32,__contentFont_Fallback_293c32,Arial,sans-serif; }
.sq-body .sv-gift-dialog { font-family: ui-sans-serif,system-ui,sans-serif; }
.sv-rsvp-header { padding-bottom: 8px; border-bottom: 1px solid #e2e8f0; position: relative; text-align: left; }
.sv-rsvp-header button { position: absolute; top: -3px; right: 0; font: 25px/25px Arial,sans-serif; cursor: pointer; }
#sv-rsvp .sv-rsvp-header .sv-rsvp-close { position: static; font: inherit; }
#sv-rsvp .sv-rsvp-submit svg { width: 20px; height: 20px; }
.sv-map-dialog { top: 16px; bottom: auto; margin: 0 auto; width: calc(100% - 32px); max-width: 1024px; max-height: calc(100dvh - 32px); padding: 8px 16px 16px; overflow-y: auto; font-family: ui-sans-serif,system-ui,sans-serif; }
.sv-map-dialog iframe { border: 0; width: 100%; height: 80vh; }
.sv-map-dialog [data-sv-close] { display: flex; align-items: center; justify-content: center; width: 16px; height: 16px; padding: 0; margin: 0; cursor: pointer; }
.sv-map-dialog [data-sv-close] svg { width: 16px; height: 16px; }
.sv-gift-dialog { padding-top: 8px; }
.sv-gift-dialog [data-sv-close] { cursor: pointer; }
.sv-gift-dialog [data-sv-copy] { background: var(--sq-accent); color: var(--sq-paper); }
.sv-body .iv-toast { position: fixed; bottom: 30px; left: 50%; transform: translateX(-50%) translateY(15px); opacity: 0; background: #252525; color: #fff; border-radius: 6px; padding: 10px 18px; font: 14px/1.5 Arial,sans-serif; pointer-events: none; z-index: 100; transition: .2s; }
.sv-body .iv-toast.is-show { opacity: 1; transform: translateX(-50%); }
.sv-body [data-sv-text] { font-kerning: none; }
.sv-letter { opacity: 0; animation: sv-text-rise .3s both; animation-delay: var(--sv-delay,0s); }
[data-sv-text="blur"] .sv-letter { animation-name: sv-text-blur; }
.sv-wait .sv-letter { animation-play-state: paused; }
.sv-preview .sv-letter { opacity: 1; animation: none; }
@keyframes sv-text-rise { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes sv-text-blur { from { opacity: 0; filter: blur(12px); transform: translateY(20px); } to { opacity: 1; filter: blur(0); transform: translateY(0); } }
.sq-body [data-sv-reveal] { transition-property: opacity,transform,filter; transition-duration: var(--sv-duration,1.5s); transition-delay: var(--sv-reveal-delay,.3s); transition-timing-function: ease-out; }
.sq-body [data-sv-reveal].sv-reveal-wait { opacity: var(--sv-from-opacity,0) !important; filter: var(--sv-from-filter,none) !important; }
.sq-body [data-sv-reveal].sv-revealed { opacity: var(--sv-to-opacity,1) !important; filter: none !important; }
.sq-body [data-sv-reveal]:not([data-sv-reveal="icon"]).sv-reveal-wait { transform: var(--sv-from-transform,none) !important; }
.sq-body [data-sv-reveal]:not([data-sv-reveal="icon"]).sv-revealed { transform: var(--sv-to-transform,none) !important; }
.sq-body [data-sv-reveal="icon"] { transition-property: opacity,scale; }
.sq-body [data-sv-reveal="icon"].sv-reveal-wait { scale: .9; }
.sq-body [data-sv-reveal="icon"].sv-revealed { scale: 1; }
.sq-body [data-sv-draw] { transition-property: stroke-dasharray,opacity; transition-timing-function: ease-in-out; }
.sq-body .sv-opening + .sv-content { display: block; }
.sq-body [data-sv-stack] { touch-action: pan-y; }
.sq-body [data-sv-card] { transition: transform .4s ease-out,opacity .3s ease-out; }
.sq-body [data-sv-card] > div { transition: transform .4s ease-out; }
.sq-body [data-sv-card].sv-card-dragging { transition: none; cursor: grabbing; }
.sq-body [data-sv-digit] { height: 36px; width: 1ch; position: relative; display: inline-block; overflow: hidden; line-height: 1; font-variant-numeric: tabular-nums; }
.sq-body [data-sv-digit] > span { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.sq-body [data-sv-digit] > div { visibility: hidden; padding: .1em 0; }
.sv-body.iv-editing #sv-envelope, .sv-body.iv-editing .sv-tools { display: none; }
.sv-body.iv-editing [data-sv-text] { opacity: 1 !important; }
.sv-body.iv-editing #iv-content { display: block; }
.sv-body.iv-editing .iv-photo { cursor: pointer; }
.sq-body.iv-editing [data-sv-reveal],.sq-body.sv-preview [data-sv-reveal],.sq-html.sv-preview [data-sv-reveal] { opacity: var(--sv-to-opacity,1) !important; transform: var(--sv-to-transform,none) !important; filter: none !important; }
.sq-body.iv-editing [data-sv-reveal="icon"],.sq-html.sv-preview [data-sv-reveal="icon"] { scale: 1; }
@media (prefers-reduced-motion: reduce) {
  .sv-letter { animation: none; opacity: 1; }
  #sv-envelope * { transition-duration: .01ms !important; transition-delay: 0s !important; }
  .sq-body [data-sv-reveal],.sq-body [data-sv-card],.sq-body [data-sv-card] > div,.sq-body [data-sv-digit] > span { transition: none !important; }
  .sq-body [class*="animate-"],.sv-scroll-hint svg { animation: none !important; }
}

/* Vietnamese script and serif equivalents for the source's Latin-only fonts. */
@font-face { font-family: 'SQ Lora'; src: url('../../fonts/orig/bh/8496af-lora.ttf') format('truetype'); font-display: swap; }
.sq-body .__className_717cf4 { font-family: 'Imperial Script', cursive; }
.sq-body .__className_293c32, .sq-body #sv-rsvp { font-family: 'SQ Lora', Georgia, serif; }
.sq-body .__className_717cf4.text-6xl { font-size: clamp(38px,13.3vw,58px); line-height: 1.3; }
.sq-body .__className_293c32 { letter-spacing: normal; }
.sq-body .sp-local-gallery { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; padding-top: 24px; }
.sq-body .sp-local-gallery a { display: block; overflow: hidden; border-radius: 6px; }
.sq-body .sp-local-gallery img { display: block; width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.sq-body.sv-preview #sv-envelope, .sq-body.sv-preview .sv-tools { display: none !important; }
.sq-body.sv-preview [data-sv-reveal] { transition: none !important; }
