/* Tidal — cinematic motion system for Wedding and six adapted event editions. */
.sig.sig-tidal-vows{
  --sv2-max:1180px;
  --sv2-radius:22px;
  --sv2-rail:rgba(185,138,88,.54);
  --sv2-hairline:rgba(20,59,56,.18);
  --sv2-surface:#fffaf1;
  --sv2-surface-strong:#fffdf8;
  --sv2-shadow:0 24px 68px -34px rgba(16,48,45,.48);
  --sig-button-ink:#fffdf5;
  background-color:#f4efe5;
  background-image:
    radial-gradient(circle at 18% 8%,rgba(255,255,255,.82),transparent 28%),
    repeating-linear-gradient(96deg,rgba(20,59,56,.018) 0 1px,transparent 1px 8px),
    linear-gradient(180deg,#f7f2e9,#edf1ea 48%,#f4efe5);
  color:#183431;
}

.sig.sig-tidal-vows::before{
  inset:12px;
  border:1px solid rgba(185,138,88,.3);
  border-radius:26px;
  opacity:.78;
}

.sig.sig-tidal-vows::after{
  display:none;
}

.sig.sig-tidal-vows .sig-concept-mark{color:#f2d9b7;opacity:.82}
.sig.sig-tidal-vows .wm-mono{color:#143b38;opacity:.026}

/* Entrance: full-screen portrait, bottom typography, and a vertical veil exit. */
.sig.sig-tidal-vows .gate{
  padding:0 25px max(30px,env(safe-area-inset-bottom));
  justify-content:flex-end;
  background:#143b38;
  opacity:1;
  transform:translate3d(0,0,0);
  transition:transform 1.3s ease,visibility 0s linear 1.3s;
  will-change:transform;
}
.sig.sig-tidal-vows .gate-portrait{transition:none}
.sig.sig-tidal-vows .gate-portrait img{
  object-position:50% 34%;
  filter:saturate(.74) contrast(1.05) brightness(.9);
  animation:tv-gate-zoom 15s ease-out both;
}
.sig.sig-tidal-vows .gate-vignette{
  background:
    linear-gradient(180deg,rgba(9,34,32,.12) 0 35%,rgba(8,31,29,.36) 58%,rgba(7,27,26,.96) 100%),
    linear-gradient(90deg,rgba(8,28,26,.23),transparent 48%,rgba(8,28,26,.16));
}
.sig.sig-tidal-vows .gate-inner{
  width:min(100%,410px);
  min-height:0;
  padding:0 14px 34px;
  justify-content:flex-end;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
  transition:opacity 520ms ease,transform 1250ms cubic-bezier(.22,1,.36,1);
}
.sig.sig-tidal-vows .gate-inner::before{
  left:50%;top:-22px;width:54px;height:1px;
  background:#dfc49d;
  transform:translateX(-50%);
}
.sig.sig-tidal-vows .gate-inner::after{display:none}
.sig.sig-tidal-vows .gate .frame{display:none}
.sig.sig-tidal-vows .gate .ey{
  margin:0 0 13px;
  color:#f1e5d2;
  font-size:.6rem;
  letter-spacing:.36em;
}
.sig.sig-tidal-vows .gate .names{font-size:clamp(2.5rem,12vw,4rem);line-height:.82;color:#fffaf1}
.sig.sig-tidal-vows .gate .names>span{display:block}
.sig.sig-tidal-vows .gate .names .scr{
  margin:8px 0 7px;
  color:#dfc49d;
  font:italic 400 .48em/1 'Cormorant Garamond',Georgia,serif;
}
.sig.sig-tidal-vows .gate .to{margin-top:23px;color:rgba(255,250,241,.7)}
.sig.sig-tidal-vows .gate .to b{color:#fffaf1;font-family:'Cormorant Garamond',Georgia,serif;font-size:1.25rem}
.sig.sig-tidal-vows .gate button{
  min-width:min(100%,252px);
  margin-top:20px;
  border:1px solid rgba(255,250,241,.65);
  border-radius:999px;
  background:rgba(20,59,56,.34);
  color:#fffaf1;
  box-shadow:0 18px 50px -26px rgba(0,0,0,.9);
  backdrop-filter:blur(12px);
  text-transform:uppercase;
  letter-spacing:.14em;
}
.sig.sig-tidal-vows .swipe-hint{color:rgba(255,250,241,.56)}
.sig.sig-tidal-vows .sig-gate-mechanism{display:block;position:absolute;inset:0;z-index:1;pointer-events:none}
.sig.sig-tidal-vows .sig-gate-piece{position:absolute;width:7px;height:7px;border-radius:50%;background:#dfc49d;opacity:.65;animation:tv-float 5.5s ease-in-out infinite}
.sig.sig-tidal-vows .sig-gate-piece.p1{left:12%;top:22%}
.sig.sig-tidal-vows .sig-gate-piece.p2{right:16%;top:31%;animation-delay:-1.2s}
.sig.sig-tidal-vows .sig-gate-piece.p3{left:22%;top:53%;width:4px;height:4px;animation-delay:-2.8s}
.sig.sig-tidal-vows .sig-gate-piece.p4{right:12%;top:62%;width:5px;height:5px;animation-delay:-4s}
.sig.sig-tidal-vows .sig-gate-symbol{display:none}
.sig.sig-tidal-vows .gate.opening{
  opacity:1;visibility:visible;pointer-events:none;
  transform:translate3d(0,101%,0);
}
.sig.sig-tidal-vows .gate.open{
  opacity:1;visibility:hidden;pointer-events:none;
  transform:translate3d(0,101%,0);
  transition:none;
}
.sig.sig-tidal-vows .gate.opening .gate-inner{opacity:1;transform:none}
.sig.sig-tidal-vows .gate.opening .gate-portrait{transform:none;filter:none}

/* Cinematic cover and layered moving currents. */
.sig.sig-tidal-vows .cover{min-height:100svh;padding:0;background:#102f2d;color:#fffaf1}
.sig.sig-tidal-vows .cover>.inner{width:100%;height:100%;min-height:100svh}
.sig.sig-tidal-vows .cover :is(.motif,.sig-concept-mark){display:none}
.sig.sig-tidal-vows .tv-hero{position:relative;width:100%;min-height:100svh;overflow:hidden;isolation:isolate}
.sig.sig-tidal-vows .tv-hero-photo{position:absolute;inset:0;margin:0;overflow:hidden}
.sig.sig-tidal-vows .tv-hero-photo .tv-slide{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 38%;
  filter:saturate(.82) contrast(1.04);
  transform:scale(1.025);
  opacity:0;
  transition:opacity 999ms ease;
  animation:tv-hero-breathe 16s ease-in-out infinite alternate;
}
.sig.sig-tidal-vows .tv-hero-photo .tv-slide.is-active{z-index:1;opacity:1}
.sig.sig-tidal-vows .tv-hero-shade{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(12,42,39,.1) 0 34%,rgba(10,37,35,.08) 48%,rgba(0,0,0,.72) 100%);
}
.sig.sig-tidal-vows .tv-hero-copy{
  position:absolute;z-index:3;left:0;right:0;bottom:66px;
  padding:38px 14px 12px;text-align:center;color:#fffaf1;
  background:linear-gradient(0deg,rgba(0,0,0,.42),transparent);
}
.sig.sig-tidal-vows .tv-hero-edition{display:none}
.sig.sig-tidal-vows .tv-hero-copy .ey{margin:0 0 11px;color:#fffaf1;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:none}
.sig.sig-tidal-vows .tv-hero-copy h1{
  display:flex;flex-direction:row;align-items:center;justify-content:center;gap:.2em;flex-wrap:wrap;
  margin:0;background:none;color:#fffaf1;-webkit-text-fill-color:#fffaf1;
  font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(2.35rem,12vw,4.7rem);font-weight:700;line-height:.92;
  animation:none;text-shadow:0 10px 34px rgba(0,0,0,.34);
}
.sig.sig-tidal-vows .tv-hero-copy h1 .scr{margin:0;color:#dfc49d;-webkit-text-fill-color:#dfc49d;font:italic 400 .72em/1 Georgia,serif}
.sig.sig-tidal-vows .tv-hero-copy .sub{max-width:32ch;margin:10px auto 0;color:rgba(255,250,241,.9);font-size:.72rem;line-height:1.45;letter-spacing:.03em;text-shadow:0 4px 16px rgba(0,0,0,.48)}
.sig.sig-tidal-vows.sig-is-open .tv-hero-copy h1>span:first-child{animation:tv-enter-from-left 2.5s both ease}
.sig.sig-tidal-vows.sig-is-open .tv-hero-copy h1>span:last-child{animation:tv-enter-from-right 2.5s both ease}
.sig.sig-tidal-vows.sig-is-open .tv-hero-copy h1>.scr{animation:tv-scale-in 2.5s both ease}
.sig.sig-tidal-vows .tv-save-date{
  display:block;margin-top:15px;color:#fffaf1;
  font:.68rem/1.35 system-ui,sans-serif;letter-spacing:.04em;
}
.sig.sig-tidal-vows.sig-is-open .tv-save-date{animation:tv-scale-in 2.5s both ease}
.sig.sig-tidal-vows .tv-save-date>span{display:block;font-weight:700}
.sig.sig-tidal-vows .tv-hero-copy .dt{margin-top:7px;color:rgba(255,250,241,.92);font-size:.66rem;letter-spacing:.04em}
.sig.sig-tidal-vows .tv-hero-countdown{display:flex;justify-content:center;gap:6px;margin-top:13px}
.sig.sig-tidal-vows .tv-hero-countdown .b{flex:0 0 57px;padding:5px 3px;border:0;border-radius:39%;background:rgba(20,59,56,.58);color:#fff;box-shadow:none;backdrop-filter:blur(5px)}
.sig.sig-tidal-vows .tv-hero-countdown .n{font-size:1.08rem;line-height:1.1;color:#fff}
.sig.sig-tidal-vows .tv-hero-countdown .l{font-size:.54rem;color:rgba(255,255,255,.9)}
.sig.sig-tidal-vows.sig-is-open .tv-hero-countdown .b:nth-child(odd){animation:tv-enter-from-right 2.5s both ease}
.sig.sig-tidal-vows.sig-is-open .tv-hero-countdown .b:nth-child(even){animation:tv-enter-from-left 2.5s both ease}
.sig.sig-tidal-vows .tv-waves{position:absolute;z-index:4;left:0;right:0;bottom:-1px;width:100%;height:69px;min-height:69px;overflow:hidden;pointer-events:none}
.sig.sig-tidal-vows .tv-wave-parallax>use{animation:tv-wave-move 25s cubic-bezier(.55,.5,.45,.5) infinite}
.sig.sig-tidal-vows .tv-wave-parallax>use:nth-child(1){fill:#b37646;animation-delay:-2s;animation-duration:7s}
.sig.sig-tidal-vows .tv-wave-parallax>use:nth-child(2){fill:#8f6849;animation-delay:-3s;animation-duration:10s}
.sig.sig-tidal-vows .tv-wave-parallax>use:nth-child(3){fill:#613c2c;animation-delay:-4s;animation-duration:13s}
.sig.sig-tidal-vows .tv-wave-parallax>use:nth-child(4){fill:#3d251b;animation-delay:-5s;animation-duration:20s}
.sig.sig-tidal-vows>.mq{display:none}

html.has-preview-toolbar .sig.sig-tidal-vows .cover>.inner,
html.has-preview-toolbar .sig.sig-tidal-vows .tv-hero{
  min-height:calc(100dvh - var(--preview-toolbar-h));
}

/* Warm limestone page with scalloped section rhythm. */
.sig.sig-tidal-vows .sec{overflow:visible;padding-block:clamp(62px,17vw,94px)}
.sig.sig-tidal-vows .sec.rv{transition-duration:2.5s}
.sig.sig-tidal-vows .sec+.sec{padding-top:clamp(64px,17vw,96px)}
.sig.sig-tidal-vows .sec+.sec::before{
  position:absolute;left:0;right:0;top:-18px;width:100%;height:36px;margin:0;
  background:radial-gradient(28px 22px at 28px 0,transparent 26px,#f4efe5 27px) 0 0/56px 36px repeat-x;
}
.sig.sig-tidal-vows .sec:nth-of-type(even){background:rgba(232,236,227,.6)}
.sig.sig-tidal-vows .kick{color:#9b6d40;font-weight:800;letter-spacing:.26em}
.sig.sig-tidal-vows :is(.sec h2,.scr-h){color:#143b38;font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(2rem,8vw,3.4rem);line-height:1.04}
.sig.sig-tidal-vows .sig-quote{padding-block:74px;background:#f4efe5}
.sig.sig-tidal-vows .sig-quote .orn svg{fill:none;stroke:#b98a58;stroke-width:1.2}
.sig.sig-tidal-vows .sig-quote p{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.05rem;line-height:1.75;color:#375651}

/* Two arched portrait cards. */
.sig.sig-tidal-vows .sig-couple{background:linear-gradient(180deg,#f4efe5,#e9eee8 52%,#f4efe5)}
.sig.sig-tidal-vows .pcouple{align-items:center;gap:10px;margin-top:34px}
.sig.sig-tidal-vows .pcard{
  max-width:165px;padding:9px 9px 20px;border-radius:80px 80px 24px 24px;
  background:rgba(255,253,248,.92);box-shadow:0 22px 55px -31px rgba(15,54,50,.62);
}
.sig.sig-tidal-vows .pframe{
  width:100%;height:auto;aspect-ratio:3/4;margin:0 auto 17px;
  border:1px solid rgba(185,138,88,.48);border-radius:76px 76px 18px 18px;
  box-shadow:0 18px 38px -28px rgba(10,43,40,.72);
}
.sig.sig-tidal-vows .pframe img{object-position:50% 32%!important}
.sig.sig-tidal-vows .pcard-groom{transform:translateY(19px)}
.sig.sig-tidal-vows .pcard-bride{transform:translateY(-19px)}
.sig.sig-tidal-vows.tv-motion-ready .pcard-groom:not(.tv-revealed),
.sig.sig-tidal-vows.tv-motion-ready .pcard-bride:not(.tv-revealed){opacity:0}
.sig.sig-tidal-vows .pcard-groom.tv-revealed{animation:tv-card-left 2.5s both ease}
.sig.sig-tidal-vows .pcard-bride.tv-revealed{animation:tv-card-right 2.5s both ease}
.sig.sig-tidal-vows .pamp{z-index:2;margin:0 -12px;padding:5px;color:#b98a58;font:italic 400 2.5rem/1 Georgia,serif}
.sig.sig-tidal-vows .plabel{font:800 .5rem/1 system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#9b6d40}
.sig.sig-tidal-vows .pcard .scr-nm{margin-top:7px;color:#143b38;font-family:'Cormorant Garamond',Georgia,serif;font-size:1.15rem;font-weight:700}
.sig.sig-tidal-vows .pcard .pr{font-size:.63rem;line-height:1.45;color:#627c75}

/* Countdown chips. */
.sig.sig-tidal-vows .sig-countdown{background:#143b38;color:#fffaf1}
.sig.sig-tidal-vows .sig-countdown :is(.kick,h2){color:#fffaf1}
.sig.sig-tidal-vows .sig-countdown .kick{color:#dfc49d}
.sig.sig-tidal-vows .cd{gap:7px;margin-top:24px;flex-wrap:nowrap}
.sig.sig-tidal-vows .cd .b{min-width:0;flex:1;padding:14px 4px;border:1px solid rgba(223,196,157,.44);border-radius:18px;background:rgba(255,250,241,.08);box-shadow:none;backdrop-filter:blur(8px)}
.sig.sig-tidal-vows .cd .n{color:#fffaf1;font-family:'Cormorant Garamond',Georgia,serif;font-size:1.85rem}
.sig.sig-tidal-vows .cd .l{color:rgba(255,250,241,.64);letter-spacing:.08em}

/* Alternating event ledger with vertical rails. */
.sig.sig-tidal-vows .sig-events{background:#edf1ea}
.sig.sig-tidal-vows .tline{max-width:390px;margin-top:28px}
.sig.sig-tidal-vows .tline::before{display:none}
.sig.sig-tidal-vows .tl-item{display:block;padding:9px 0}
.sig.sig-tidal-vows .tl-ico{position:absolute;z-index:3;top:26px;width:38px;height:38px;border:1px solid #b98a58;border-radius:50%;background:#143b38;color:#fffaf1}
.sig.sig-tidal-vows .tl-item:nth-child(odd) .tl-ico{left:-5px}
.sig.sig-tidal-vows .tl-item:nth-child(even) .tl-ico{right:-5px}
.sig.sig-tidal-vows .tl-card{
  position:relative;min-height:152px;padding:24px 26px;border:0;border-radius:22px;
  background:#fffdf8;box-shadow:0 24px 56px -38px rgba(10,48,45,.7);overflow:hidden;
}
.sig.sig-tidal-vows .tl-item:nth-child(odd) .tl-card{margin-left:14px;padding-left:52px;border-left:8px solid #143b38}
.sig.sig-tidal-vows .tl-item:nth-child(even) .tl-card{margin-right:14px;padding-right:52px;border-right:8px solid #b98a58;text-align:right}
.sig.sig-tidal-vows .tl-card::after{position:absolute;top:50%;font:800 .45rem/1 system-ui,sans-serif;letter-spacing:.25em;text-transform:uppercase;color:rgba(20,59,56,.42);writing-mode:vertical-rl;transform:translateY(-50%)}
.sig.sig-tidal-vows .tl-item:nth-child(1) .tl-card::after{content:"AKAD";left:14px}
.sig.sig-tidal-vows .tl-item:nth-child(2) .tl-card::after{content:"RESEPSI";right:14px}
.sig.sig-tidal-vows .tl-item:nth-child(3) .tl-card::after{content:"LOKASI";left:14px}
.sig.sig-tidal-vows .tl-t{color:#143b38;font-family:'Cormorant Garamond',Georgia,serif;font-size:1.55rem;font-weight:700}
.sig.sig-tidal-vows .tl-card .r{color:#627c75}
.sig.sig-tidal-vows .tl-card .r.v{color:#183431}
.sig.sig-tidal-vows .btn-i{border-radius:999px;background:#143b38;color:#fffdf8}
.sig.sig-tidal-vows .btn-i.o{border:1px solid #b98a58;background:transparent;color:#9b6d40}
.sig.sig-tidal-vows.tv-motion-ready .tl-item:not(.tv-revealed){opacity:0}
.sig.sig-tidal-vows .tl-item.tv-revealed:nth-child(odd){animation:tv-enter-from-left 2.5s both ease}
.sig.sig-tidal-vows .tl-item.tv-revealed:nth-child(even){animation:tv-enter-from-right 2.5s both ease}

/* High-contrast ivory timeline with flip-in cards. */
.sig.sig-tidal-vows .sec.sig-story{
  background:
    radial-gradient(circle at 84% 16%,rgba(185,138,88,.12),transparent 28%),
    linear-gradient(180deg,#f5f2e9,#e9eee7 58%,#f5f2e9);
  color:#183431;
}
.sig.sig-tidal-vows .sig-story :is(.scr-h,h2){color:#143b38;text-shadow:none}
.sig.sig-tidal-vows .sig-story .kick{color:#9b6d40;text-shadow:none}
.sig.sig-tidal-vows .sig-story-visual{width:min(100%,430px);border:1px solid rgba(223,196,157,.45);border-radius:120px 120px 20px 20px;box-shadow:0 28px 70px -34px #000}
.sig.sig-tidal-vows .sig-story-visual img{aspect-ratio:4/3;filter:saturate(.75) contrast(1.05)}
.sig.sig-tidal-vows .sig-story-visual figcaption{background:rgba(10,44,41,.72);color:#f4e5cf;border-radius:999px}
.sig.sig-tidal-vows .story{position:relative;max-width:390px;margin-top:25px;padding-left:26px}
.sig.sig-tidal-vows .story::before{content:"";position:absolute;left:8px;top:8px;bottom:8px;width:2px;background:linear-gradient(180deg,transparent,#b47b43 8% 92%,transparent)}
.sig.sig-tidal-vows .story .st{
  margin:0 0 14px;padding:18px 18px 18px 22px;border:1px solid rgba(20,59,56,.14);border-left:3px solid #b47b43;border-radius:0 18px 18px 0;
  background:rgba(255,253,248,.8);box-shadow:0 18px 42px -34px rgba(10,48,45,.52);backdrop-filter:blur(12px);transform:none;opacity:1;
}
.sig.sig-tidal-vows .story .st::before{left:-27px;top:22px;width:13px;height:13px;border:3px solid #143b38;background:#d5a15f;box-shadow:0 0 0 1px #b47b43}
.sig.sig-tidal-vows .story .st b{color:#9b622e;font-weight:850}
.sig.sig-tidal-vows .story .st p{color:#405f58;font-weight:560}
.sig.sig-tidal-vows.tv-motion-ready .story .st:not(.tv-revealed){opacity:0;transform:perspective(400px) rotateY(90deg)}
.sig.sig-tidal-vows .story .st.tv-revealed{animation:tv-flip-in-y 2.5s both ease}

/* Static responsive masonry; all five photos remain zoomable. */
.sig.sig-tidal-vows .sig-gallery{background:#f8f6f0}
.sig.sig-tidal-vows .sig-gallery-hint,.sig.sig-tidal-vows .moments-controls{display:none}
.sig.sig-tidal-vows .moments-region{width:min(100%,820px);margin-top:30px}
.sig.sig-tidal-vows .moments-viewport{min-height:0;overflow:visible;cursor:default}
.sig.sig-tidal-vows .moments-viewport::before,.sig.sig-tidal-vows .moments-viewport::after,.sig.sig-tidal-vows .moments-region::before{display:none}
.sig.sig-tidal-vows .sig-moments-v3 .moments-track.gal{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;
  width:100%;min-height:0;padding:0;transform:none!important;will-change:auto!important;
}
.sig.sig-tidal-vows .sig-moments-v3 .moment-slot{
  display:block;width:auto;min-height:0;padding:0;translate:0;rotate:0;transform:none!important;
}
.sig.sig-tidal-vows .sig-moments-v3 .moment-slot:nth-child(1){grid-row:span 2}
.sig.sig-tidal-vows .sig-moments-v3 .moment-slot:nth-child(4){grid-column:1/-1}
.sig.sig-tidal-vows .sig-moments-v3 .moment-frame{aspect-ratio:4/5;border:0;border-radius:20px;box-shadow:0 20px 45px -31px rgba(10,48,45,.58)}
.sig.sig-tidal-vows .sig-moments-v3 .moment-slot:nth-child(2) .moment-frame,.sig.sig-tidal-vows .sig-moments-v3 .moment-slot:nth-child(5) .moment-frame{aspect-ratio:1}
.sig.sig-tidal-vows .sig-moments-v3 .moment-slot:nth-child(4) .moment-frame{aspect-ratio:16/9}
.sig.sig-tidal-vows .sig-moments-v3 .moment-frame::before{inset:7px;border:1px solid rgba(255,253,248,.6);border-radius:15px}
.sig.sig-tidal-vows .sig-moments-v3 .moment-slot:nth-child(even){transform:translateY(16px)!important}
.sig.sig-tidal-vows.tv-motion-ready .sig-gallery .moment-slot:not(.tv-revealed){opacity:0;scale:0}
.sig.sig-tidal-vows .sig-gallery .moment-slot.tv-revealed{animation:tv-scale-in 2.5s both ease}

/* Forms, cards, closing, and fixed navigation stay in the same visual world. */
.sig.sig-tidal-vows :is(.frm,.gcard,.wish){border:1px solid rgba(20,59,56,.14);border-radius:20px;background:rgba(255,253,248,.88);box-shadow:0 20px 54px -39px rgba(10,48,45,.62)}
.sig.sig-tidal-vows .frm :is(input,textarea,select){border-radius:14px;border-color:rgba(20,59,56,.2);background:#f8f5ee}
.sig.sig-tidal-vows .wish::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(#143b38,#b98a58)}
.sig.sig-tidal-vows .gift{max-width:390px}
.sig.sig-tidal-vows .gcard .ic{border-radius:50%;background:#143b38}
.sig.sig-tidal-vows .closing{min-height:82svh}
.sig.sig-tidal-vows .closing img{object-position:50% 42%;filter:saturate(.78) contrast(1.04)}
.sig.sig-tidal-vows .closing-ov{padding-bottom:88px;background:linear-gradient(180deg,transparent 12%,rgba(8,34,32,.9))}
.sig.sig-tidal-vows .closing-nm{font-family:'Cormorant Garamond',Georgia,serif;font-size:3rem}
.sig.sig-tidal-vows .foot-i{padding-bottom:98px;background:#102f2d;color:#fffaf1}

.sig.sig-tidal-vows .sig-v2-dock{
  left:0;right:0;margin-inline:auto;transform:none;
  width:55px;max-width:calc(100vw - 28px);gap:0;min-height:58px;padding:6px 0;border:1px solid rgba(185,138,88,.42);border-radius:999px;
  background:rgba(247,242,233,.97);box-shadow:0 20px 60px -28px rgba(5,30,28,.78);backdrop-filter:none;
  overflow:visible;transition:width .5s ease,opacity .22s ease,transform .22s ease;
}
.sig.sig-tidal-vows .sig-v2-dock.is-prehero{transform:translateY(calc(100% + 28px))}
.sig.sig-tidal-vows .sig-v2-dock.tv-dock-expanded{width:333px}
.sig.sig-tidal-vows .sig-v2-dock :is(button,a){min-width:0;color:#183431}
.sig.sig-tidal-vows .sig-v2-dock [data-tv-dock-item]{width:0;max-width:0;min-width:0;padding-inline:0;opacity:0;overflow:hidden;pointer-events:none;transform:scaleX(0);transition:width .5s ease,max-width .5s ease,opacity .5s ease,transform .5s ease}
.sig.sig-tidal-vows .sig-v2-dock.tv-dock-expanded [data-tv-dock-item]{width:68px;max-width:68px;opacity:1;pointer-events:auto;transform:scaleX(1)}
.sig.sig-tidal-vows .sig-v2-dock [data-sig-menu]{flex:0 0 55px;width:55px;min-width:55px;height:55px;margin-block:-10px;padding:0;border-radius:50%;background:#fff;color:#143b38;box-shadow:0 0 12px 2px rgba(229,217,200,.7);font-size:1.2rem}
.sig.sig-tidal-vows .sig-v2-dock [data-sig-menu] small{display:none}
.sig.sig-tidal-vows .sig-v2-dock .tv-floating-control{position:fixed!important;z-index:47;right:9px;left:auto;top:50%;width:42px;min-width:42px;height:42px;min-height:42px;padding:0;border:1px solid rgba(20,59,56,.18);border-radius:50%;background:rgba(255,255,255,.94);box-shadow:0 8px 22px -14px rgba(0,0,0,.75);transform:translateY(-50%)}
.sig.sig-tidal-vows .sig-v2-dock .tv-floating-control small{display:none}
.sig.sig-tidal-vows .sig-v2-dock .tv-scroll-control{top:calc(50% + 51px)}
.sig.sig-tidal-vows>#music-btn{
  display:grid!important;place-items:center;position:fixed;z-index:47;right:9px;left:auto;top:50%;
  width:42px;height:42px;margin:0;border:1px solid rgba(20,59,56,.18);border-radius:50%;
  background:rgba(255,255,255,.94);color:#143b38;box-shadow:0 8px 22px -14px rgba(0,0,0,.75);
  transform:translateY(-50%);
}
.sig.sig-tidal-vows .sig-nav-sheet{border-radius:30px 30px 0 0;border-top-color:rgba(185,138,88,.5);background:rgba(247,242,233,.96)}
.sig.sig-tidal-vows .sig-v2-tap{width:28px;height:28px;border-color:#b98a58;box-shadow:0 0 0 0 rgba(185,138,88,.45);animation:tv-ripple .55s ease-out both}

@keyframes tv-gate-zoom{from{transform:scale(1.12)}to{transform:scale(1.025)}}
@keyframes tv-hero-breathe{from{transform:scale(1.025) translate3d(0,0,0)}to{transform:scale(1.075) translate3d(0,-.8%,0)}}
@keyframes tv-float{0%,100%{transform:translateY(0);opacity:.28}50%{transform:translateY(-19px);opacity:.8}}
@keyframes tv-enter-from-left{from{opacity:0;transform:translateX(-999px)}to{opacity:1;transform:translateX(0)}}
@keyframes tv-enter-from-right{from{opacity:0;transform:translateX(999px)}to{opacity:1;transform:translateX(0)}}
@keyframes tv-scale-in{from{opacity:0;scale:0}to{opacity:1;scale:1}}
@keyframes tv-copy-rise{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}
@keyframes tv-arrow{0%,100%{transform:translateY(-2px)}50%{transform:translateY(5px)}}
@keyframes tv-wave-move{from{transform:translate3d(-90px,0,0)}to{transform:translate3d(85px,0,0)}}
@keyframes tv-card-left{from{opacity:0;transform:translate(-999px,19px)}to{opacity:1;transform:translate(0,19px)}}
@keyframes tv-card-right{from{opacity:0;transform:translate(999px,-19px)}to{opacity:1;transform:translate(0,-19px)}}
@keyframes tv-flip-in-y{0%{opacity:0;transform:perspective(400px) rotateY(90deg)}40%{transform:perspective(400px) rotateY(-20deg)}60%{opacity:1;transform:perspective(400px) rotateY(10deg)}80%{transform:perspective(400px) rotateY(-5deg)}to{opacity:1;transform:perspective(400px)}}
@keyframes tv-gallery-rise{from{opacity:0;scale:.92;translate:0 24px}to{opacity:1;scale:1;translate:0 0}}
@keyframes tv-ripple{0%{opacity:0;transform:translate(-50%,-50%) scale(.25)}35%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(2.8);box-shadow:0 0 0 22px transparent}}

@media (min-width:768px){
  .sig.sig-tidal-vows .tv-hero-copy{left:0;right:0;width:auto;bottom:69px;padding-inline:8%}
  .sig.sig-tidal-vows .tv-hero-photo img{object-position:50% 41%}
  .sig.sig-tidal-vows .pcouple{gap:34px}.sig.sig-tidal-vows .pcard{max-width:235px;padding:13px 13px 28px}
  .sig.sig-tidal-vows .pamp{font-size:3.6rem;margin-inline:-20px}
  .sig.sig-tidal-vows .tline{max-width:760px}
  .sig.sig-tidal-vows .sig-moments-v3 .moments-track.gal{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
  .sig.sig-tidal-vows .sig-moments-v3 .moment-slot:nth-child(1){grid-row:span 2}.sig.sig-tidal-vows .sig-moments-v3 .moment-slot:nth-child(4){grid-column:2/4}
}

@media (min-width:1024px){
  .sig.sig-tidal-vows .sec{max-width:980px}
  .sig.sig-tidal-vows .tv-hero-copy h1{font-size:5.8rem}
  .sig.sig-tidal-vows .pcard{max-width:260px}
  .sig.sig-tidal-vows .tline{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:900px}
  .sig.sig-tidal-vows .tl-item{display:block}.sig.sig-tidal-vows .tl-card{height:100%;margin:0!important;text-align:left!important;padding:54px 24px 26px!important;border:0!important;border-top:7px solid #143b38!important}
  .sig.sig-tidal-vows .tl-item:nth-child(even) .tl-card{border-top-color:#b98a58!important}
  .sig.sig-tidal-vows .tl-ico,.sig.sig-tidal-vows .tl-item:nth-child(n) .tl-ico{left:24px;right:auto;top:21px}
  .sig.sig-tidal-vows .tl-card::after{display:none}
}

@media (max-width:374px){
  .sig.sig-tidal-vows .gate{padding-inline:18px}
  .sig.sig-tidal-vows .tv-hero-copy{padding-inline:22px}
  .sig.sig-tidal-vows .pcouple{gap:4px}.sig.sig-tidal-vows .pcard{padding-inline:7px}.sig.sig-tidal-vows .pamp{font-size:2rem;margin-inline:-10px}
  .sig.sig-tidal-vows .sig-v2-dock.tv-dock-expanded{width:calc(100vw - 20px)}
  .sig.sig-tidal-vows .sig-v2-dock.tv-dock-expanded [data-tv-dock-item]{width:59px;max-width:59px}
}

@media (prefers-reduced-motion:reduce){
  .sig.sig-tidal-vows *{scroll-behavior:auto}
  .sig.sig-tidal-vows :is(.gate,.gate-portrait,.gate-portrait img,.tv-hero-photo img,.tv-wave-parallax>use,.sig-gate-piece,.tv-save-date,.tv-hero-countdown .b){animation:none!important;transition-duration:.01ms!important}
  .sig.sig-tidal-vows :is(.pcard,.tl-item,.story .st,.sig-gallery .moment-slot,.tv-hero-copy h1>span){animation:none!important;opacity:1!important;transform:none!important;scale:1!important}
}

/* -------------------------------------------------------------------------
   Tidal Event Editions
   Struktur geraknya sama, tetapi tiap acara mempunyai atmosfer, gelombang,
   kartu, dan partikel pembuka sendiri. Selector memakai kelas capability agar
   tema baru tidak perlu menyalin hampir 400 baris Tidal Vows. */
.sig.sig-tidal-vows{
  --tv-deep:#143b38;--tv-deep-2:#102f2d;--tv-page:#f4efe5;
  --tv-event-bg:#edf1ea;--tv-card:#fffdf8;--tv-accent:#b98a58;
  --tv-soft:#dfc49d;--tv-ink:#183431;--tv-muted:#627c75;
  --tv-wave-1:#b37646;--tv-wave-2:#8f6849;--tv-wave-3:#613c2c;--tv-wave-4:#3d251b;
}
.sig.sig-tidal-vows.tidal-birthday{
  --tv-deep:#49304f;--tv-deep-2:#352438;--tv-page:#f8f0ed;--tv-event-bg:#f1e6ec;
  --tv-card:#fff9f7;--tv-accent:#c86f72;--tv-soft:#e9bd9e;--tv-ink:#3c293e;--tv-muted:#806b78;
  --tv-wave-1:#d97c76;--tv-wave-2:#b45872;--tv-wave-3:#773e67;--tv-wave-4:#432d50;
}
.sig.sig-tidal-vows.tidal-khitan{
  --tv-deep:#143f36;--tv-deep-2:#0f3029;--tv-page:#f4f1e8;--tv-event-bg:#e8efe9;
  --tv-card:#fffdf7;--tv-accent:#ba9550;--tv-soft:#e3cf9f;--tv-ink:#17372f;--tv-muted:#667d73;
  --tv-wave-1:#d2ad62;--tv-wave-2:#8c8450;--tv-wave-3:#28624f;--tv-wave-4:#123d32;
}
.sig.sig-tidal-vows.tidal-aqiqah{
  --tv-deep:#607b6b;--tv-deep-2:#405a4d;--tv-page:#f8f4ea;--tv-event-bg:#edf2eb;
  --tv-card:#fffdf8;--tv-accent:#b89a5d;--tv-soft:#e8d9b8;--tv-ink:#33473d;--tv-muted:#78887f;
  --tv-wave-1:#e0c88f;--tv-wave-2:#c6ad78;--tv-wave-3:#8da391;--tv-wave-4:#5d7868;
}
.sig.sig-tidal-vows.tidal-gratitude{
  --tv-deep:#4d5132;--tv-deep-2:#353921;--tv-page:#f7f1e5;--tv-event-bg:#eef0df;
  --tv-card:#fffaf2;--tv-accent:#c58b4b;--tv-soft:#e4c394;--tv-ink:#373a27;--tv-muted:#777663;
  --tv-wave-1:#d8a15b;--tv-wave-2:#b67b43;--tv-wave-3:#747b48;--tv-wave-4:#484d2e;
}
.sig.sig-tidal-vows.tidal-silaturahmi{
  --tv-deep:#123d32;--tv-deep-2:#0b2c24;--tv-page:#f5f0e5;--tv-event-bg:#e8efe9;
  --tv-card:#fffdf7;--tv-accent:#c79b4e;--tv-soft:#ead39c;--tv-ink:#16362e;--tv-muted:#647a70;
  --tv-wave-1:#d6ad5f;--tv-wave-2:#a17d3f;--tv-wave-3:#28624d;--tv-wave-4:#10392e;
}
.sig.sig-tidal-vows.tidal-graduation{
  --tv-deep:#142746;--tv-deep-2:#0d1b32;--tv-page:#f4f1e8;--tv-event-bg:#e9edf2;
  --tv-card:#fffdf8;--tv-accent:#c79c4d;--tv-soft:#ead297;--tv-ink:#172840;--tv-muted:#69758a;
  --tv-wave-1:#d6aa56;--tv-wave-2:#9b793d;--tv-wave-3:#31527b;--tv-wave-4:#152b4d;
}

.sig.sig-tidal-vows:not(.tidal-wedding){
  background-color:var(--tv-page);
  background-image:radial-gradient(circle at 18% 8%,rgba(255,255,255,.84),transparent 29%),repeating-linear-gradient(96deg,color-mix(in srgb,var(--tv-deep) 2%,transparent) 0 1px,transparent 1px 8px),linear-gradient(180deg,color-mix(in srgb,var(--tv-page) 92%,white),color-mix(in srgb,var(--tv-page) 88%,var(--tv-deep)) 48%,var(--tv-page));
  color:var(--tv-ink);
}
.sig.sig-tidal-vows::after{content:attr(data-signature-concept);color:color-mix(in srgb,var(--tv-deep) 42%,transparent)}
.sig.sig-tidal-vows .gate{background:var(--tv-deep)}
.sig.sig-tidal-vows .gate-vignette{background:linear-gradient(180deg,color-mix(in srgb,var(--tv-deep) 12%,transparent) 0 35%,color-mix(in srgb,var(--tv-deep-2) 40%,transparent) 58%,color-mix(in srgb,var(--tv-deep-2) 96%,transparent) 100%),linear-gradient(90deg,color-mix(in srgb,var(--tv-deep-2) 25%,transparent),transparent 48%,color-mix(in srgb,var(--tv-deep-2) 18%,transparent))}
.sig.sig-tidal-vows .gate-inner::before{background:var(--tv-soft)}
.sig.sig-tidal-vows .gate .names .scr{color:var(--tv-soft)}
.sig.sig-tidal-vows .gate button{background:color-mix(in srgb,var(--tv-deep) 38%,transparent)}
.sig.sig-tidal-vows .tv-hero-shade{background:linear-gradient(180deg,color-mix(in srgb,var(--tv-deep) 12%,transparent) 0 34%,color-mix(in srgb,var(--tv-deep) 8%,transparent) 48%,rgba(0,0,0,.74) 100%)}
.sig.sig-tidal-vows .tv-hero-copy h1 .scr{color:var(--tv-soft);-webkit-text-fill-color:var(--tv-soft)}
.sig.sig-tidal-vows .tv-hero-countdown .b{background:color-mix(in srgb,var(--tv-deep) 62%,transparent)}
.sig.sig-tidal-vows .tv-wave-parallax>use:nth-child(1){fill:var(--tv-wave-1)}
.sig.sig-tidal-vows .tv-wave-parallax>use:nth-child(2){fill:var(--tv-wave-2)}
.sig.sig-tidal-vows .tv-wave-parallax>use:nth-child(3){fill:var(--tv-wave-3)}
.sig.sig-tidal-vows .tv-wave-parallax>use:nth-child(4){fill:var(--tv-wave-4)}
.sig.sig-tidal-vows .sec+.sec::before{background:radial-gradient(28px 22px at 28px 0,transparent 26px,var(--tv-page) 27px) 0 0/56px 36px repeat-x}
.sig.sig-tidal-vows .sec:nth-of-type(even){background:color-mix(in srgb,var(--tv-event-bg) 72%,transparent)}
.sig.sig-tidal-vows .kick{color:color-mix(in srgb,var(--tv-accent) 82%,var(--tv-deep))}
.sig.sig-tidal-vows :is(.sec h2,.scr-h){color:var(--tv-deep)}
.sig.sig-tidal-vows .sig-quote{background:var(--tv-page)}
.sig.sig-tidal-vows .sig-quote .orn svg{stroke:var(--tv-accent)}
.sig.sig-tidal-vows .sig-quote p{color:color-mix(in srgb,var(--tv-ink) 84%,var(--tv-muted))}
.sig.sig-tidal-vows .sig-couple{background:linear-gradient(180deg,var(--tv-page),var(--tv-event-bg) 52%,var(--tv-page))}
.sig.sig-tidal-vows .sig-events{background:var(--tv-event-bg)}
.sig.sig-tidal-vows .btn-i{background:var(--tv-deep);color:#fffdf8}
.sig.sig-tidal-vows .btn-i.o{border-color:var(--tv-accent);background:transparent;color:color-mix(in srgb,var(--tv-accent) 82%,var(--tv-deep))}
.sig.sig-tidal-vows :is(.frm,.gcard,.wish){border-color:color-mix(in srgb,var(--tv-deep) 14%,transparent);background:color-mix(in srgb,var(--tv-card) 90%,transparent);box-shadow:0 20px 54px -39px color-mix(in srgb,var(--tv-deep) 65%,transparent)}
.sig.sig-tidal-vows .wish::before{background:linear-gradient(var(--tv-deep),var(--tv-accent))}
.sig.sig-tidal-vows .gcard .ic{background:var(--tv-deep)}
.sig.sig-tidal-vows .closing-ov{background:linear-gradient(180deg,transparent 12%,color-mix(in srgb,var(--tv-deep-2) 92%,transparent))}
.sig.sig-tidal-vows .foot-i{background:var(--tv-deep-2)}
.sig.sig-tidal-vows .sig-v2-dock{border-color:color-mix(in srgb,var(--tv-accent) 46%,transparent);background:color-mix(in srgb,var(--tv-page) 96%,white);box-shadow:0 20px 60px -28px color-mix(in srgb,var(--tv-deep-2) 80%,transparent)}
.sig.sig-tidal-vows .sig-v2-dock :is(button,a),.sig.sig-tidal-vows .sig-v2-dock [data-sig-menu]{color:var(--tv-ink)}

/* Single-subject event profile: a tall arched editorial card plus a lower
   landscape family card. Both remain individually replaceable in Studio. */
.sig.sig-tidal-vows:not(.tidal-wedding) .sig-couple>.person{
  position:relative;width:min(100%,340px);margin:28px auto 0;padding:12px 12px 25px;
  border:1px solid color-mix(in srgb,var(--tv-accent) 44%,transparent);border-radius:150px 150px 24px 24px;
  background:color-mix(in srgb,var(--tv-card) 93%,transparent);box-shadow:0 26px 65px -36px color-mix(in srgb,var(--tv-deep) 66%,transparent);
}
.sig.sig-tidal-vows:not(.tidal-wedding) .sig-couple>.person .pframe{width:100%;aspect-ratio:4/5;border:0;border-radius:140px 140px 18px 18px;overflow:hidden}
.sig.sig-tidal-vows:not(.tidal-wedding) .sig-couple>.person .pframe img{width:100%;height:100%;object-fit:cover}
.sig.sig-tidal-vows:not(.tidal-wedding) .sig-couple>.person .scr-nm,.sig.sig-tidal-vows:not(.tidal-wedding) .primary-speaker-name{margin-top:17px;color:var(--tv-deep);font-family:'Cormorant Garamond',Georgia,serif;font-size:1.65rem;font-weight:700}
.sig.sig-tidal-vows:not(.tidal-wedding) .sig-couple>.event-family-photo{width:min(100%,340px);max-width:340px;margin:28px auto 0;padding:12px 12px 25px;border:1px solid color-mix(in srgb,var(--tv-accent) 44%,transparent);border-radius:150px 150px 24px 24px;background:color-mix(in srgb,var(--tv-card) 93%,transparent);box-shadow:0 26px 65px -36px color-mix(in srgb,var(--tv-deep) 66%,transparent)}
.sig.sig-tidal-vows:not(.tidal-wedding) .sig-couple>.event-family-photo .pframe{width:100%;aspect-ratio:4/5;border:0;border-radius:140px 140px 18px 18px;overflow:hidden}
.sig.sig-tidal-vows:not(.tidal-wedding) .sig-couple>.event-family-photo :is(figcaption, .scr-nm, .pr){margin-top:17px;color:var(--tv-deep);font-family:'Cormorant Garamond',Georgia,serif;font-size:1.65rem;font-weight:700}
.sig.sig-tidal-vows:not(.tidal-wedding).tv-motion-ready .sig-couple>.person:not(.tv-revealed){opacity:0;transform:translateY(54px) scale(.94)}
.sig.sig-tidal-vows:not(.tidal-wedding) .sig-couple>.person.tv-revealed{animation:tv-event-profile-in 2.2s cubic-bezier(.22,1,.36,1) both}

/* Event cards outside the wedding timeline keep the alternating current. */
.sig.sig-tidal-vows .sig-events .ev{position:relative;width:min(100%,390px);margin:20px auto 0;padding:28px 25px;border:0;border-left:8px solid var(--tv-deep);border-radius:22px;background:var(--tv-card);box-shadow:0 24px 56px -38px color-mix(in srgb,var(--tv-deep) 72%,transparent);overflow:hidden;text-align:left}
.sig.sig-tidal-vows .sig-events .ev:nth-of-type(even){border-left:0;border-right:8px solid var(--tv-accent);text-align:right}
.sig.sig-tidal-vows .sig-events .ev::after{content:"EVENT";position:absolute;right:12px;top:50%;writing-mode:vertical-rl;transform:translateY(-50%);font:800 .43rem/1 system-ui,sans-serif;letter-spacing:.24em;color:color-mix(in srgb,var(--tv-deep) 38%,transparent)}
.sig.sig-tidal-vows .sig-events .ev:nth-of-type(even)::after{right:auto;left:12px}
.sig.sig-tidal-vows .sig-events .ev .t{color:var(--tv-deep);font-family:'Cormorant Garamond',Georgia,serif;font-size:1.6rem;font-weight:700}
.sig.sig-tidal-vows .sig-events .ev .r{color:var(--tv-muted)}
.sig.sig-tidal-vows .sig-events .ev .r.v{color:var(--tv-ink);font-weight:700}
.sig.sig-tidal-vows.tv-motion-ready .sig-events .ev:not(.tv-revealed){opacity:0}
.sig.sig-tidal-vows .sig-events .ev.tv-revealed:nth-of-type(odd){animation:tv-enter-from-left 2.5s both ease}
.sig.sig-tidal-vows .sig-events .ev.tv-revealed:nth-of-type(even){animation:tv-enter-from-right 2.5s both ease}

/* Four physical pieces are art-directed per event instead of using one generic
   sparkle: confetti, lantern glow, newborn stars, gratitude fireflies,
   crescent pearls, and graduation ribbons. */
.sig.sig-tidal-vows.tidal-fx-confetti .sig-gate-piece{width:7px;height:15px;border-radius:2px;background:var(--tv-accent);animation:tv-confetti-drift 4.8s ease-in-out infinite}
.sig.sig-tidal-vows.tidal-fx-confetti .sig-gate-piece:nth-child(even){background:#e9bd9e;rotate:35deg}
.sig.sig-tidal-vows.tidal-fx-lanterns .sig-gate-piece{width:12px;height:17px;border-radius:7px 7px 4px 4px;background:var(--tv-soft);box-shadow:0 0 18px 5px color-mix(in srgb,var(--tv-soft) 55%,transparent)}
.sig.sig-tidal-vows.tidal-fx-starlight .sig-gate-piece{width:12px;height:12px;border-radius:0;background:var(--tv-soft);clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%);animation:tv-star-pulse 3.2s ease-in-out infinite}
.sig.sig-tidal-vows.tidal-fx-fireflies .sig-gate-piece{width:5px;height:5px;background:#f5c975;box-shadow:0 0 17px 7px rgba(245,201,117,.46);animation:tv-firefly 4.4s ease-in-out infinite}
.sig.sig-tidal-vows.tidal-fx-crescent .sig-gate-piece{width:13px;height:13px;background:transparent;border:2px solid var(--tv-soft);border-right-color:transparent;box-shadow:-3px 0 13px color-mix(in srgb,var(--tv-soft) 55%,transparent);animation:tv-star-pulse 3.8s ease-in-out infinite}
.sig.sig-tidal-vows.tidal-fx-ribbons .sig-gate-piece{width:5px;height:28px;border-radius:4px;background:linear-gradient(var(--tv-soft),var(--tv-accent));animation:tv-ribbon-float 5.2s ease-in-out infinite}

@keyframes tv-event-profile-in{from{opacity:0;transform:translateY(54px) scale(.94);clip-path:inset(16% 8% 0 round 160px 160px 24px 24px)}to{opacity:1;transform:none;clip-path:inset(0 round 160px 160px 24px 24px)}}
@keyframes tv-confetti-drift{0%,100%{translate:0 -8px;rotate:-16deg;opacity:.28}50%{translate:10px 18px;rotate:140deg;opacity:.9}}
@keyframes tv-star-pulse{0%,100%{scale:.58;rotate:0deg;opacity:.28}50%{scale:1.2;rotate:45deg;opacity:.92}}
@keyframes tv-firefly{0%,100%{translate:0 8px;opacity:.18}45%{translate:14px -20px;opacity:1}70%{translate:-7px -28px;opacity:.5}}
@keyframes tv-ribbon-float{0%,100%{translate:0 -10px;rotate:-20deg;opacity:.3}50%{translate:12px 18px;rotate:28deg;opacity:.9}}

@media (min-width:768px){
  .sig.sig-tidal-vows:not(.tidal-wedding) .sig-couple>.person{width:370px;max-width:370px}
  .sig.sig-tidal-vows .sig-events .ev{width:min(100%,520px)}
}

@media (prefers-reduced-motion:reduce){
  .sig.sig-tidal-vows :is(.sig-couple>.person,.sig-events .ev){animation:none!important;opacity:1!important;transform:none!important;clip-path:none!important}
}

/* Center desktop canvas */
@media (min-width: 1024px) {
  .sig.sig-tidal-vows .sec {
    margin-inline: auto !important;
  }
}

/* Hide RSVP step indicators */
.rsvp-progress {
  display: none !important;
}

/* Hide avatar initial and status chip on wishes */
.wish .wish-avatar,
.wish .wish-chip,
.wish .sig-v2-avatar,
.wish .sig-v2-status {
  display: none !important;
}
