/* =========================================================
   LUXURY ISLAMIC GEOMETRIC WEDDING INVITATION
   Md Rofi Uddin Jamil & Salma Sultana
   Inspiration: Islamic Geometric Seamless Pattern with Stroke Combination
   ========================================================= */

:root {
  --wine-950: #1b0308;
  --wine-900: #2d060f;
  --wine-850: #420a16;
  --wine-800: #590f1f;
  --wine-700: #73172a;
  --wine-600: #8f1f35;
  --wine-500: #ad2743;
  
  --gold-200: #fef8d3;
  --gold-300: #fbf0b8;
  --gold-400: #f3d473;
  --gold-500: #d4af37;
  --gold-600: #b8860b;
  --gold-700: #8a6406;
  
  --paper-ivory: #fcf9f2;
  --paper-cream: #f6efe2;
  --paper-warm: #eee2ce;
  
  --font-arabic: 'Amiri', serif;
  --font-script: 'Great Vibes', cursive;
  --font-serif: 'Cormorant Garamond', Georgia, serif;
  --font-display: 'Cinzel', Georgia, serif;
  --font-sans: 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif;
  
  --gold-gradient: linear-gradient(135deg, #a17424 0%, #d4af37 35%, #f9e8a2 50%, #d4af37 65%, #8f651b 100%);
  --gold-foil-border: linear-gradient(135deg, #c59b27, #f7e9a8, #b0821c);
  --wine-gradient: linear-gradient(145deg, #73172a 0%, #420a16 100%);
  
  --app-max-width: 440px;
}

/* Reset */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  -webkit-tap-highlight-color: transparent;
}

html, body {
  width: 100%;
  height: 100%;
  overflow: hidden;
  background-color: var(--wine-950);
  font-family: var(--font-serif);
  color: var(--wine-900);
  -webkit-font-smoothing: antialiased;
}

/* =========================================================
   RICH ISLAMIC GEOMETRIC BACKGROUND ATMOSPHERE
   ========================================================= */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  background-color: var(--wine-950);
  background-image: 
    radial-gradient(circle at 50% 12%, rgba(173, 39, 67, 0.45) 0%, transparent 65%),
    radial-gradient(circle at 85% 85%, rgba(212, 175, 55, 0.25) 0%, transparent 55%),
    radial-gradient(circle at 15% 85%, rgba(115, 23, 42, 0.35) 0%, transparent 50%),
    url('islamic-geometric-pattern.svg');
  background-size: auto, auto, auto, 160px 160px;
  background-repeat: no-repeat, no-repeat, no-repeat, repeat;
  background-blend-mode: normal, normal, normal, overlay;
  opacity: 0.95;
  z-index: -2;
  pointer-events: none;
}

/* Subtle Shimmer Dust Canvas */
#confettiCanvas {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  pointer-events: none;
  z-index: 900;
}

/* =========================================================
   1. 3D FRENCH DOUBLE DOORS STAGE (ISLAMIC GEOMETRIC JALI)
   ========================================================= */
.doors-stage {
  position: fixed;
  inset: 0;
  z-index: 500;
  background: rgba(18, 4, 8, 0.9);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  display: flex;
  align-items: center;
  justify-content: center;
  perspective: 1400px;
  transition: opacity 0.75s cubic-bezier(0.16, 1, 0.3, 1) 0.9s, visibility 0.75s 0.9s;
}

.doors-stage.opened {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.doors-wrapper {
  position: relative;
  width: 100%;
  max-width: var(--app-max-width);
  height: 100%;
  max-height: 860px;
  overflow: hidden;
  display: flex;
  box-shadow: 0 35px 90px rgba(0, 0, 0, 0.85);
  transform-style: preserve-3d;
  perspective: 1400px;
}

/* Top Envelope Triangular Flap with 24K Gold Embroidery Point */
.envelope-top-flap {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 84px;
  z-index: 25;
  pointer-events: none;
  filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.65));
  transform-origin: top center;
  transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.7s ease;
}

.doors-stage.opened .envelope-top-flap {
  transform: rotateX(105deg);
  opacity: 0;
}

.envelope-flap-svg {
  width: 100%;
  height: 100%;
  display: block;
}

.flap-bg-poly {
  fill: #5b091a;
}

.flap-inner-poly {
  fill: #781226;
}

.flap-gold-edge {
  stroke: #d4af37;
  stroke-width: 2.4;
}

.flap-gold-dot {
  fill: #fff7d6;
  stroke: #b8860b;
  stroke-width: 1.5;
  filter: drop-shadow(0 0 6px rgba(212, 175, 55, 0.85));
}

/* The Vibrant Turkish Velvet Double Envelope Doors */
.door-panel {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 50%;
  height: 100%;
  background: linear-gradient(155deg, #781226 0%, #540918 55%, #35040d 100%);
  transform-style: preserve-3d;
  transition: transform 1.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 1.4s ease;
  box-shadow: inset 0 0 50px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(212, 175, 55, 0.4);
  will-change: transform;
}

.door-left {
  left: 0;
  transform-origin: left center;
  border-right: 2px solid rgba(212, 175, 55, 0.85);
}

.door-right {
  right: 0;
  transform-origin: right center;
  border-left: 2px solid rgba(212, 175, 55, 0.85);
}

/* Door Opening 3D Transform */
.doors-stage.opened .door-left {
  transform: perspective(1400px) rotateY(-118deg);
  box-shadow: inset -20px 0 50px rgba(45, 6, 15, 0.5);
}

.doors-stage.opened .door-right {
  transform: perspective(1400px) rotateY(118deg);
  box-shadow: inset 20px 0 50px rgba(45, 6, 15, 0.5);
}

.door-inner-texture {
  position: relative;
  width: 100%;
  height: 100%;
  padding: 16px;
  pointer-events: none;
  overflow: hidden;
}

/* Carved Gold Foil Geometric Pattern Overlay on Velvet Doors */
.door-geometric-overlay {
  position: absolute;
  inset: 0;
  background-image: url('islamic-geometric-pattern.svg');
  background-size: 140px 140px;
  background-repeat: repeat;
  opacity: 0.35;
  mix-blend-mode: screen;
  filter: drop-shadow(0 0 4px rgba(245, 215, 127, 0.4));
}

/* Embossed Filigree Corners on the Doors */
.door-filigree {
  position: absolute;
  width: 85px;
  height: 85px;
  background-size: contain;
  background-repeat: no-repeat;
  opacity: 0.55;
  z-index: 2;
}

.door-filigree-tl {
  top: 18px;
  left: 14px;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 10 Q 50 10 90 50 Q 50 90 10 90' fill='none' stroke='%23b8860b' stroke-width='2'/%3E%3Cpolygon points='30,20 40,30 30,40 20,30' fill='%23d4af37' fill-opacity='0.6'/%3E%3C/svg%3E");
}

.door-filigree-bl {
  bottom: 18px;
  left: 14px;
  transform: scaleY(-1);
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 10 Q 50 10 90 50 Q 50 90 10 90' fill='none' stroke='%23b8860b' stroke-width='2'/%3E%3Cpolygon points='30,20 40,30 30,40 20,30' fill='%23d4af37' fill-opacity='0.6'/%3E%3C/svg%3E");
}

.door-filigree-tr {
  top: 18px;
  right: 14px;
  transform: scaleX(-1);
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 10 Q 50 10 90 50 Q 50 90 10 90' fill='none' stroke='%23b8860b' stroke-width='2'/%3E%3Cpolygon points='30,20 40,30 30,40 20,30' fill='%23d4af37' fill-opacity='0.6'/%3E%3C/svg%3E");
}

.door-filigree-br {
  bottom: 18px;
  right: 14px;
  transform: scale(-1, -1);
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 10 Q 50 10 90 50 Q 50 90 10 90' fill='none' stroke='%23b8860b' stroke-width='2'/%3E%3Cpolygon points='30,20 40,30 30,40 20,30' fill='%23d4af37' fill-opacity='0.6'/%3E%3C/svg%3E");
}

.door-bevel-edge {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 18px;
  pointer-events: none;
}

.door-left .door-bevel-edge {
  right: 0;
  background: linear-gradient(90deg, transparent, rgba(70, 15, 25, 0.18));
}

.door-right .door-bevel-edge {
  left: 0;
  background: linear-gradient(-90deg, transparent, rgba(70, 15, 25, 0.18));
}

/* Center Geometric Rosette & Round Medallion Seal (ZERO OVERLAPPING) */
.doors-center-control {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 30;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px; /* Guaranteed clean spacing between seal and prompt */
  width: 100%;
  max-width: 320px;
  transition: transform 0.65s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.5s ease;
  will-change: transform, opacity;
  pointer-events: auto;
}

.doors-stage.opened .doors-center-control {
  opacity: 0;
  transform: translate(-50%, -50%) scale(1.18);
  pointer-events: none;
}

/* Dedicated Interactive Seal Anchor */
.seal-interactive-anchor {
  position: relative;
  width: 104px;
  height: 104px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

/* 8-Pointed Star Rosette precisely centered behind seal */
.seal-geometric-rosette {
  position: absolute;
  inset: -22px;
  width: calc(100% + 44px);
  height: calc(100% + 44px);
  pointer-events: none;
  animation: spinSlow 40s linear infinite;
  transition: transform 0.75s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.5s ease;
}

.doors-stage.opened .seal-geometric-rosette {
  opacity: 0;
  transform: scale(1.35) rotate(90deg);
}

@keyframes spinSlow {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.rosette-svg {
  width: 100%;
  height: 100%;
  filter: drop-shadow(0 0 12px rgba(212, 175, 55, 0.55));
}

.star-outer-stroke {
  fill: rgba(254, 248, 211, 0.35);
  stroke: #b8860b;
  stroke-width: 2;
}

.star-inner-stroke {
  fill: none;
  stroke: #d4af37;
  stroke-width: 1.2;
  stroke-dasharray: 4, 3;
}

.rosette-circle-outer {
  fill: none;
  stroke: #b8860b;
  stroke-width: 1;
}

.rosette-circle-inner {
  fill: rgba(115, 23, 42, 0.1);
  stroke: #d4af37;
  stroke-width: 1.5;
}

/* Round Turkish Wax Seal Button */
.round-seal-btn,
.oval-seal-btn {
  position: relative;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  background: none;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  outline: none;
  transition: transform 0.25s ease;
  z-index: 5;
}

.round-seal-btn:hover,
.oval-seal-btn:hover {
  transform: scale(1.06);
}

.round-seal-btn:active,
.oval-seal-btn:active {
  transform: scale(0.95);
}

.round-seal-frame,
.oval-seal-frame {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #ffffff 0%, #f7ecd9 55%, #d8be96 100%);
  border: 3px solid #b8860b;
  box-shadow: 
    0 16px 36px rgba(0, 0, 0, 0.55),
    0 3px 8px rgba(0, 0, 0, 0.3),
    inset 0 3px 6px rgba(255, 255, 255, 0.95),
    inset 0 -4px 10px rgba(110, 70, 20, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
}

.round-seal-frame::before,
.oval-seal-frame::before {
  content: "";
  position: absolute;
  inset: 4px;
  border: 1px dashed rgba(184, 134, 11, 0.65);
  border-radius: 50%;
}

.round-seal-content,
.oval-seal-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: var(--wine-800);
}

.olive-branch-svg {
  width: 28px;
  height: 28px;
  color: var(--gold-600);
  margin-bottom: 2px;
}

.seal-initials {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: 2px;
  color: var(--wine-800);
  background: var(--gold-gradient);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.seal-pulse-glow {
  position: absolute;
  inset: -10px;
  border-radius: 50%;
  border: 2px solid rgba(212, 175, 55, 0.7);
  animation: pulseRound 2.4s infinite ease-out;
  pointer-events: none;
}

@keyframes pulseRound {
  0% { transform: scale(0.95); opacity: 0.9; }
  100% { transform: scale(1.26); opacity: 0; }
}

/* Prompt Under Seal (Zero Overlap with Seal) */
.doors-tap-prompt {
  text-align: center;
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  position: relative;
  z-index: 5;
}

.prompt-title {
  display: block;
  font-family: var(--font-sans);
  font-size: 0.72rem;
  letter-spacing: 3px;
  color: var(--gold-300);
  font-weight: 800;
  text-transform: uppercase;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.7);
}

.prompt-subtitle {
  display: block;
  font-family: var(--font-display);
  font-size: 1.22rem;
  font-weight: 700;
  color: #ffffff;
  margin: 0 0 4px;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.8);
}

/* Tap to Open Action Pill (Tapable Button) */
.prompt-action-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--wine-gradient);
  color: #ffffff;
  padding: 10px 24px;
  border-radius: 9999px;
  font-family: var(--font-sans);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  box-shadow: 0 6px 20px rgba(115, 23, 42, 0.45), 0 0 0 1px rgba(212, 175, 55, 0.5);
  border: 1px solid var(--gold-400);
  cursor: pointer;
  outline: none;
  animation: bounceHint 2.2s infinite ease-in-out;
  transition: transform 0.2s, box-shadow 0.2s;
}

.prompt-action-pill:hover,
.prompt-action-pill:active {
  transform: scale(1.05);
  box-shadow: 0 8px 25px rgba(212, 175, 55, 0.6);
}

@keyframes bounceHint {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}

/* =========================================================
   2. MAIN APPLICATION VIEWPORT & TOP NAV
   ========================================================= */
.wedding-app-viewport {
  width: 100%;
  height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: env(safe-area-inset-top, 8px) 12px env(safe-area-inset-bottom, 10px);
  position: relative;
}

.top-nav-bar {
  width: 100%;
  max-width: var(--app-max-width);
  height: 46px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 12px;
  z-index: 100;
}

.top-nav-brand {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #fff;
}

.monogram-txt {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1rem;
  background: var(--gold-gradient);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing: 1.5px;
}

.nav-sep {
  color: var(--gold-500);
  font-size: 0.65rem;
}

.date-txt {
  font-family: var(--font-sans);
  font-size: 0.74rem;
  color: rgba(255, 255, 255, 0.8);
  letter-spacing: 1px;
}

.top-nav-right {
  display: flex;
  align-items: center;
  gap: 8px;
}

.admin-badge-pill,
.sender-badge-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(89, 15, 31, 0.85);
  border: 1px solid rgba(212, 175, 55, 0.65);
  border-radius: 9999px;
  padding: 5px 14px;
  color: var(--gold-300);
  font-family: var(--font-sans);
  font-size: 0.74rem;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.45);
  text-decoration: none;
  transition: all 0.2s;
}

.admin-badge-pill:hover,
.sender-badge-pill:hover {
  background: rgba(115, 23, 42, 0.95);
  border-color: var(--gold-400);
}

.badge-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gold-400);
  box-shadow: 0 0 6px var(--gold-400);
}

.icon-round-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(212, 175, 55, 0.4);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s;
}

.icon-round-btn:hover {
  background: var(--wine-gradient);
  border-color: var(--gold-400);
}

/* =========================================================
   3. LUXURY RECTANGULAR CARD CANVAS WITH ISLAMIC GEOMETRIC STRAPWORK
   ========================================================= */
.card-canvas-container,
.arch-invitation-container {
  width: 100%;
  max-width: var(--app-max-width);
  flex: 1;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
  max-height: min(calc(100vh - 58px), 720px);
}

.card-canvas-frame,
.arch-card-frame {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 16px;
  background: linear-gradient(180deg, #fffdf8 0%, #fdf8ee 50%, #f7eedd 100%);
  border: 2px solid var(--gold-500);
  box-shadow: 
    0 25px 70px rgba(0, 0, 0, 0.75),
    0 0 0 1px rgba(255, 255, 255, 0.15),
    inset 0 0 45px rgba(212, 175, 55, 0.15);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.6s ease;
}

/* Rich Islamic Geometric Pattern Watermark inside the card */
.card-geometric-bg {
  position: absolute;
  inset: 0;
  background-image: url('islamic-geometric-pattern.svg');
  background-size: 150px 150px;
  background-repeat: repeat;
  opacity: 0.16; /* Visible geometric presence while keeping text 100% crisp */
  pointer-events: none;
  z-index: 1;
}

/* Rectangular Inner Gold Accent Dashed Border */
.card-inner-border,
.arch-inner-border {
  position: absolute;
  inset: 8px;
  border: 1.5px dashed rgba(212, 175, 55, 0.55);
  border-radius: 12px;
  pointer-events: none;
  z-index: 2;
}

/* 4 Islamic Geometric Strapwork Corner Ornaments */
.corner-strapwork {
  position: absolute;
  width: 72px;
  height: 72px;
  pointer-events: none;
  z-index: 3;
  opacity: 0.75;
  background-size: contain;
  background-repeat: no-repeat;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 8 L72 8 M8 8 L8 72' fill='none' stroke='%23b8860b' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M14 14 L55 14 M14 14 L14 55' fill='none' stroke='%23d4af37' stroke-width='1.2' stroke-dasharray='3,2'/%3E%3Cpolygon points='8,8 24,8 28,16 20,24 16,28 8,24' fill='%23d4af37' fill-opacity='0.25' stroke='%23b8860b' stroke-width='1'/%3E%3Cpolygon points='28,16 38,16 34,26 24,26' fill='%23fef8d3' fill-opacity='0.4' stroke='%23d4af37' stroke-width='0.8'/%3E%3Cpolygon points='16,28 16,38 26,34 26,24' fill='%23fef8d3' fill-opacity='0.4' stroke='%23d4af37' stroke-width='0.8'/%3E%3Ccircle cx='18' cy='18' r='3.5' fill='%23b8860b'/%3E%3Ccircle cx='18' cy='18' r='1.8' fill='%23fffdf8'/%3E%3C/svg%3E");
}

.corner-strapwork-tl {
  top: 10px;
  left: 10px;
}

.corner-strapwork-tr {
  top: 10px;
  right: 10px;
  transform: scaleX(-1);
}

.corner-strapwork-bl {
  bottom: 56px;
  left: 10px;
  transform: scaleY(-1);
}

.corner-strapwork-br {
  bottom: 56px;
  right: 10px;
  transform: scale(-1, -1);
}

/* Fallback for frame florales */
.frame-floral {
  display: none;
}

/* =========================================================
   4. SLIDES VIEWPORT (VERTICAL CARD NAVIGATION)
   ========================================================= */
.slides-viewport {
  flex: 1;
  width: 100%;
  height: 100%;
  overflow-y: scroll;
  scroll-snap-type: y mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  position: relative;
  z-index: 10;
  outline: none;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: contain;
}

.slides-viewport::-webkit-scrollbar {
  display: none;
}

.invitation-slide {
  width: 100%;
  height: 100%;
  min-height: 100%;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px 18px 66px;
  text-align: center;
  position: relative;
}

.slide-content {
  width: 100%;
  max-width: 360px;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-evenly;
}

/* VIP Guest Tag */
.vip-guest-tag {
  background: linear-gradient(135deg, rgba(115, 23, 42, 0.09), rgba(212, 175, 55, 0.16));
  border: 1.5px dashed var(--gold-500);
  border-radius: 10px;
  padding: 8px 16px;
  margin-bottom: 12px;
  width: 100%;
  box-shadow: 0 4px 12px rgba(115, 23, 42, 0.06);
}

.vip-tag-label {
  font-family: var(--font-sans);
  font-size: 0.65rem;
  letter-spacing: 2.5px;
  color: var(--wine-700);
  font-weight: 700;
  display: block;
}

.vip-tag-name {
  font-family: var(--font-display);
  font-size: 1.2rem;
  color: var(--wine-950);
  font-weight: 700;
  margin-top: 2px;
}

/* Slide Typography */
.slide-eyebrow {
  font-family: var(--font-sans);
  font-size: 0.7rem;
  letter-spacing: 2.5px;
  color: var(--gold-700);
  text-transform: uppercase;
  font-weight: 800;
  margin-bottom: 4px;
}

.slide-title {
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 4vw, 1.55rem);
  color: var(--wine-800);
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: 12px;
}

/* Spiritual Header Group (Bismillah, Ayah, & Divider) */
.spiritual-header-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  gap: 3px;
  margin: 0;
}

/* Bismillah with Geometric Crest */
.bismillah-geometric-crest {
  position: relative;
  width: 100%;
  display: flex;
  justify-content: center;
  margin-bottom: 0;
}

.bismillah-wrap {
  width: 100%;
  max-width: 250px;
}

.bismillah-svg {
  width: 100%;
  height: auto;
  overflow: visible;
}

.bismillah-arabic {
  font-family: var(--font-arabic);
  font-size: 38px;
  fill: var(--wine-700);
  font-weight: 700;
}

/* Ayah */
.ayah-block {
  margin: 2px 0 0;
}

.ayah-bracket-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.ayah-bracket {
  color: var(--gold-600);
  font-size: 0.75rem;
}

.ayah-text {
  font-family: var(--font-serif);
  font-size: clamp(1.02rem, 3.3vw, 1.18rem);
  font-style: italic;
  color: var(--wine-700);
  font-weight: 600;
  line-height: 1.3;
}

.ayah-ref {
  display: block;
  font-family: var(--font-serif);
  font-size: 0.88rem;
  font-style: italic;
  color: #6d4d54;
  margin-top: 1px;
}

/* Geometric Strapwork Divider */
.geometric-strapwork-divider {
  width: 100%;
  max-width: 180px;
  margin: 4px auto 0;
  opacity: 0.85;
}

.divider-svg {
  width: 100%;
  height: auto;
}

/* Inviter Announcement Block */
.inviter-block {
  margin: 0;
}

.inviter-heading {
  font-family: var(--font-serif);
  font-size: clamp(1.05rem, 3.6vw, 1.25rem);
  font-weight: 700;
  color: var(--wine-900);
  line-height: 1.25;
  max-width: 320px;
  margin: 0 auto 2px;
}

.invitation-lead {
  font-family: var(--font-serif);
  font-size: 0.95rem;
  font-style: italic;
  color: #55343c;
  margin: 1px 0;
}

.invitation-purpose {
  font-family: var(--font-serif);
  font-size: 1.02rem;
  font-style: italic;
  font-weight: 600;
  color: var(--wine-700);
}

/* Couple Names with Signature Scripts (Never Deformed) */
.couple-block {
  margin: 0;
}

.groom-name,
.bride-name {
  font-family: var(--font-script);
  font-size: clamp(1.95rem, 6.2vw, 2.65rem);
  color: var(--wine-700);
  line-height: 1.15;
  font-weight: normal;
  text-shadow: 0 1px 1px rgba(115, 23, 42, 0.1);
  white-space: nowrap;
}

.ampersand-wrap {
  display: flex;
  justify-content: center;
  margin: -6px 0;
}

.ampersand-rosette {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: radial-gradient(circle, #fffbf0 0%, #f6e6cd 100%);
  border: 1px solid var(--gold-500);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(184, 134, 11, 0.2);
}

.ampersand {
  font-family: var(--font-serif);
  font-size: 1.25rem;
  font-style: italic;
  color: var(--gold-700);
  font-weight: 600;
}

.bride-parents {
  margin-top: 6px;
}

.daughter-of {
  font-family: var(--font-serif);
  font-size: 0.95rem;
  font-style: italic;
  color: #6a474f;
  display: block;
}

.bride-parents-text {
  font-family: var(--font-serif);
  font-size: 1.12rem;
  font-style: italic;
  color: var(--wine-900);
  font-weight: 600;
}

/* =========================================================
   PAGE 2: ISLAMIC GEOMETRIC DATE MEDALLION BOX
   ========================================================= */
.date-geometric-medallion-box {
  position: relative;
  width: 100%;
  max-width: 300px;
  background: radial-gradient(circle at 50% 30%, #ffffff 0%, #faf1e1 100%);
  border: 2px solid var(--gold-500);
  border-radius: 24px;
  padding: 22px 18px;
  box-shadow: 
    0 16px 40px rgba(115, 23, 42, 0.14),
    inset 0 0 0 4px #fffdfa,
    inset 0 0 0 6px rgba(212, 175, 55, 0.45);
  margin-bottom: 16px;
  overflow: hidden;
}

/* 8-pointed star watermark in the date box */
.medallion-watermark-star {
  position: absolute;
  inset: 0;
  background-image: url('islamic-geometric-pattern.svg');
  background-size: 120px 120px;
  background-position: center;
  opacity: 0.15;
  pointer-events: none;
}

.medallion-label {
  display: block;
  font-family: var(--font-sans);
  font-size: 0.74rem;
  letter-spacing: 3px;
  color: var(--gold-700);
  font-weight: 800;
  margin-bottom: 6px;
}

.medallion-main-num {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  line-height: 1;
  color: var(--wine-800);
  font-family: var(--font-serif);
}

.medallion-main-num .big-day {
  font-size: 3.8rem;
  font-weight: 700;
  letter-spacing: -1px;
}

.medallion-main-num .day-suffix {
  font-size: 1.3rem;
  font-style: italic;
  margin-top: 6px;
  margin-left: 2px;
}

.medallion-month {
  font-family: var(--font-display);
  font-size: 1.45rem;
  letter-spacing: 3px;
  color: var(--wine-700);
  font-weight: 700;
  margin-top: 2px;
}

.medallion-year {
  font-family: var(--font-sans);
  font-size: 1.15rem;
  letter-spacing: 4px;
  color: var(--wine-900);
  font-weight: 700;
  margin-bottom: 16px;
}

.medallion-row-pills {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  position: relative;
  z-index: 2;
}

.medallion-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(115, 23, 42, 0.08);
  border: 1px solid rgba(212, 175, 55, 0.5);
  padding: 7px 14px;
  border-radius: 9999px;
  font-family: var(--font-sans);
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--wine-900);
}

.cal-actions-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  width: 100%;
  max-width: 300px;
}

.btn-medallion {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 14px;
  border-radius: 12px;
  font-family: var(--font-sans);
  font-size: 0.78rem;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.2s;
  min-height: 42px;
}

.btn-gold {
  background: var(--gold-gradient);
  color: var(--wine-900);
  border: 1px solid var(--gold-400);
  box-shadow: 0 4px 15px rgba(212, 175, 55, 0.3);
}

.btn-outline {
  background: #ffffff;
  border: 1.5px solid rgba(212, 175, 55, 0.6);
  color: var(--wine-900);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

/* =========================================================
   PAGE 3: VENUE & GOOGLE MAPS
   ========================================================= */
.venue-header-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: 100%;
  gap: 3px;
  margin: 0;
}

.venue-header-group .slide-title {
  margin-bottom: 2px;
}

.venue-address-line {
  font-family: var(--font-serif);
  font-size: 0.98rem;
  font-style: italic;
  color: #63434b;
  margin-bottom: 0;
  line-height: 1.35;
}

.map-card-container {
  width: 100%;
  max-width: 320px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.map-frame {
  border-radius: 18px;
  overflow: hidden;
  border: 2px solid var(--gold-500);
  box-shadow: 0 10px 28px rgba(115, 23, 42, 0.15);
}

.map-frame iframe {
  display: block;
}

/* Big Action Button (Matches Video "YOL TARİFİ AL") */
.btn-big-action {
  background: var(--wine-gradient);
  color: #ffffff;
  border: 1px solid var(--gold-400);
  border-radius: 9999px;
  padding: 12px 20px;
  font-family: var(--font-sans);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 1.5px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(115, 23, 42, 0.35);
  transition: transform 0.2s, filter 0.2s;
  min-height: 46px;
}

.btn-big-action:hover {
  filter: brightness(1.1);
  transform: translateY(-1px);
}

.btn-sub-action {
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(212, 175, 55, 0.5);
  color: var(--wine-900);
  border-radius: 9999px;
  padding: 9px 16px;
  font-family: var(--font-sans);
  font-size: 0.76rem;
  font-weight: 700;
  text-decoration: none;
}

/* =========================================================
   PAGE 4: GEOMETRIC COUNTDOWN CLOCK
   ========================================================= */
.countdown-slide-content {
  justify-content: center !important;
  gap: 14px;
  height: 100%;
}

.countdown-geometric-medallion {
  position: relative;
  width: 100%;
  max-width: 320px;
  background: radial-gradient(circle at 50% 30%, #ffffff 0%, #faf2e3 100%);
  border: 2px solid var(--gold-500);
  border-radius: 24px;
  padding: clamp(18px, 4vh, 26px) clamp(14px, 3.5vw, 20px);
  box-shadow: 
    0 16px 40px rgba(115, 23, 42, 0.12),
    inset 0 0 0 4px #fffdfa,
    inset 0 0 0 6px rgba(212, 175, 55, 0.45);
  overflow: hidden;
  box-sizing: border-box;
  margin: 0 auto;
}

.countdown-watermark-star {
  position: absolute;
  inset: 0;
  background-image: url('islamic-geometric-pattern.svg');
  background-size: 130px 130px;
  background-position: center;
  opacity: 0.14;
  pointer-events: none;
}

.countdown-hero-days {
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1;
  margin-bottom: 14px;
  position: relative;
  z-index: 2;
}

.hero-days-num {
  font-family: var(--font-display);
  font-size: 4rem;
  font-weight: 800;
  color: var(--wine-800);
  letter-spacing: -1px;
}

.hero-days-label {
  font-family: var(--font-sans);
  font-size: 0.74rem;
  letter-spacing: 3px;
  color: var(--gold-700);
  font-weight: 800;
  margin-top: 4px;
}

.countdown-sub-units {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 0;
  border-top: 1.5px solid rgba(212, 175, 55, 0.35);
  border-bottom: 1.5px solid rgba(212, 175, 55, 0.35);
  position: relative;
  z-index: 2;
}

.sub-unit {
  text-align: center;
  min-width: 52px;
}

.sub-num {
  display: block;
  font-family: var(--font-display);
  font-size: 1.4rem;
  font-weight: 800;
  color: var(--wine-800);
}

.sub-label {
  display: block;
  font-family: var(--font-sans);
  font-size: 0.6rem;
  letter-spacing: 1px;
  color: #7b5860;
  font-weight: 700;
}

.unit-sep {
  color: var(--gold-600);
  font-size: 0.75rem;
}

.countdown-quote {
  font-family: var(--font-serif);
  font-size: 0.98rem;
  font-style: italic;
  color: var(--wine-700);
  margin-top: 14px;
  line-height: 1.45;
  position: relative;
  z-index: 2;
}

/* =========================================================
   PAGE 5: RSVP DESK
   ========================================================= */
.rsvp-note {
  font-family: var(--font-serif);
  font-size: 1.02rem;
  font-style: italic;
  color: #6e4d55;
  margin-bottom: 10px;
}

.rsvp-cards-stack {
  width: 100%;
  max-width: 345px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.rsvp-pill-card {
  background: #ffffff;
  border: 1.5px solid rgba(212, 175, 55, 0.45);
  border-radius: 18px;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  box-shadow: 0 4px 16px rgba(115, 23, 42, 0.06);
  box-sizing: border-box;
}

.rsvp-person-info {
  display: flex;
  flex-direction: column;
  text-align: left;
  min-width: 0;
  flex: 1 1 auto;
}

.person-role {
  font-family: var(--font-sans);
  font-size: 0.68rem;
  letter-spacing: 1px;
  color: #8b6d74;
  text-transform: uppercase;
  font-weight: 600;
  white-space: nowrap;
}

.person-num {
  font-family: var(--font-sans);
  font-size: clamp(0.92rem, 3.8vw, 1.05rem);
  font-weight: 800;
  color: var(--wine-900);
  white-space: nowrap;
  letter-spacing: 0.3px;
}

.rsvp-card-btns {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-shrink: 0;
}

.action-circle-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 7px 11px;
  border-radius: 9999px;
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.2s;
  white-space: nowrap;
}

.call-btn {
  background: rgba(115, 23, 42, 0.08);
  color: var(--wine-700);
  border: 1px solid rgba(115, 23, 42, 0.25);
}

.call-btn:hover {
  background: var(--wine-gradient);
  color: #ffffff;
}

.wa-btn {
  background: #25d366;
  color: #ffffff;
  border: 1px solid #20ba59;
}

.wa-btn:hover {
  background: #1eb355;
}

.btn-replay-doors {
  margin-top: 14px;
  background: none;
  border: none;
  font-family: var(--font-sans);
  font-size: 0.76rem;
  color: var(--wine-700);
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* =========================================================
   5. FLOATING BOTTOM CONTROLS
   ========================================================= */
.card-floating-bottom,
.arch-floating-bottom {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 16px 12px;
  z-index: 50;
  background: linear-gradient(180deg, transparent 0%, rgba(253, 248, 238, 0.95) 45%, #f7eedd 100%);
  pointer-events: none;
}

.card-floating-bottom > *,
.arch-floating-bottom > * {
  pointer-events: auto;
}

.music-pill-btn {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(212, 175, 55, 0.5);
  color: var(--wine-700);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.soundwave-icon {
  display: flex;
  align-items: center;
  gap: 2.5px;
  height: 14px;
}

.soundwave-icon .bar {
  width: 2.5px;
  background: var(--wine-700);
  border-radius: 2px;
}

.bar-1 { height: 7px; }
.bar-2 { height: 14px; }
.bar-3 { height: 10px; }

.music-pill-btn.playing .bar-1 {
  animation: wave 0.8s ease infinite alternate;
}
.music-pill-btn.playing .bar-2 {
  animation: wave 0.6s ease infinite alternate 0.2s;
}
.music-pill-btn.playing .bar-3 {
  animation: wave 0.9s ease infinite alternate 0.4s;
}

@keyframes wave {
  from { height: 4px; }
  to { height: 14px; }
}

.scroll-down-pill {
  background: rgba(255, 255, 255, 0.94);
  border: 1.5px solid rgba(212, 175, 55, 0.6);
  border-radius: 9999px;
  padding: 8px 18px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-sans);
  font-size: 0.76rem;
  font-weight: 700;
  color: var(--wine-900);
  cursor: pointer;
  box-shadow: 0 4px 15px rgba(115, 23, 42, 0.1);
  transition: all 0.2s;
  animation: floatDownBtn 2.2s infinite ease-in-out;
}

@keyframes floatDownBtn {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}

.down-arrow-svg {
  color: var(--gold-600);
  animation: pulseArrow 1.5s infinite;
}

@keyframes pulseArrow {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(3px); }
}

.slide-dots-indicator {
  display: flex;
  align-items: center;
  gap: 5px;
  background: rgba(255, 255, 255, 0.85);
  padding: 6px 9px;
  border-radius: 9999px;
  border: 1px solid rgba(212, 175, 55, 0.4);
}

.slide-dots-indicator .dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: rgba(115, 23, 42, 0.25);
  transition: all 0.3s;
}

.slide-dots-indicator .dot.active {
  width: 15px;
  border-radius: 4px;
  background: var(--wine-700);
}

/* =========================================================
   6. SHARE MODAL STYLES
   ========================================================= */
.modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(14, 4, 8, 0.9);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  z-index: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.modal-backdrop.open {
  opacity: 1;
  visibility: visible;
}

.modal-card {
  background: #230810;
  background-image: 
    radial-gradient(circle at 80% 20%, rgba(173, 39, 67, 0.2), transparent 50%),
    url('islamic-geometric-pattern.svg');
  background-size: auto, 120px 120px;
  border: 1.5px solid rgba(212, 175, 55, 0.5);
  border-radius: 22px;
  width: 100%;
  max-width: 440px;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  box-shadow: 0 25px 60px rgba(0, 0, 0, 0.8);
  transform: scale(0.95) translateY(10px);
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
  overflow: hidden;
}

.modal-backdrop.open .modal-card {
  transform: scale(1) translateY(0);
}

.modal-header {
  padding: 16px 18px;
  border-bottom: 1px solid rgba(212, 175, 55, 0.25);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.modal-eyebrow {
  font-family: var(--font-sans);
  font-size: 0.65rem;
  letter-spacing: 2px;
  color: var(--gold-400);
  font-weight: 700;
}

.modal-title {
  font-family: var(--font-display);
  font-size: 1.2rem;
  color: #fff;
}

.modal-close-btn {
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.7);
  cursor: pointer;
  padding: 4px;
}

.modal-body {
  padding: 16px 18px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.modal-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.modal-label {
  font-family: var(--font-sans);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--gold-300);
}

.sender-selector-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}

.sender-radio-card {
  border: 1px solid rgba(212, 175, 55, 0.25);
  background: rgba(0, 0, 0, 0.35);
  border-radius: 12px;
  padding: 10px 12px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
  transition: all 0.2s;
}

.sender-radio-card:hover {
  background: rgba(212, 175, 55, 0.1);
}

.sender-radio-card.active {
  background: rgba(115, 23, 42, 0.55);
  border-color: var(--gold-500);
  box-shadow: 0 0 12px rgba(212, 175, 55, 0.3);
}

.sender-radio-card input[type="radio"] {
  accent-color: var(--gold-500);
  margin-top: 3px;
}

.sender-role-title {
  font-family: var(--font-sans);
  font-size: 0.74rem;
  font-weight: 700;
  color: var(--gold-400);
  text-transform: uppercase;
  display: block;
}

.sender-names-preview {
  font-family: var(--font-serif);
  font-size: 0.95rem;
  font-weight: 600;
  color: #ffffff;
  display: block;
}

.sender-sample-quote {
  font-family: var(--font-serif);
  font-size: 0.8rem;
  font-style: italic;
  color: rgba(255, 255, 255, 0.65);
}

.modal-input {
  background: rgba(0, 0, 0, 0.5);
  border: 1px solid rgba(212, 175, 55, 0.35);
  border-radius: 8px;
  padding: 9px 12px;
  font-family: var(--font-sans);
  font-size: 0.84rem;
  color: #fff;
  outline: none;
}

.modal-input:focus {
  border-color: var(--gold-500);
}

.modal-input-hint {
  font-family: var(--font-sans);
  font-size: 0.66rem;
  color: rgba(255, 255, 255, 0.55);
}

.link-preview-box {
  display: flex;
  gap: 6px;
}

.link-input-readonly {
  flex: 1;
  background: rgba(0, 0, 0, 0.5);
  border: 1px solid rgba(212, 175, 55, 0.25);
  border-radius: 8px;
  padding: 8px 10px;
  font-family: var(--font-sans);
  font-size: 0.72rem;
  color: rgba(255, 255, 255, 0.85);
  outline: none;
}

.btn-copy-link {
  background: var(--gold-gradient);
  border: none;
  color: var(--wine-900);
  font-family: var(--font-sans);
  font-size: 0.76rem;
  font-weight: 700;
  padding: 0 12px;
  border-radius: 8px;
  cursor: pointer;
}

.whatsapp-preview-card {
  background: rgba(18, 54, 34, 0.45);
  border: 1px dashed #25d366;
  border-radius: 8px;
  padding: 9px 12px;
  font-family: var(--font-sans);
  font-size: 0.74rem;
  color: #d1fae5;
  line-height: 1.4;
  white-space: pre-wrap;
  max-height: 90px;
  overflow-y: auto;
}

.modal-footer {
  padding: 12px 18px 16px;
  border-top: 1px solid rgba(212, 175, 55, 0.2);
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 8px;
}

.btn-secondary-action {
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  border: 1px solid rgba(212, 175, 55, 0.35);
  font-family: var(--font-sans);
  font-size: 0.8rem;
  font-weight: 600;
  padding: 10px;
  border-radius: 10px;
  cursor: pointer;
}

.btn-primary-action {
  background: #25d366;
  color: #fff;
  border: 1px solid #20ba59;
  font-family: var(--font-sans);
  font-size: 0.8rem;
  font-weight: 700;
  padding: 10px;
  border-radius: 10px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

/* Toast */
.app-toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%) translateY(100px);
  background: var(--wine-gradient);
  border: 1px solid var(--gold-400);
  color: #fff;
  font-family: var(--font-sans);
  font-size: 0.8rem;
  font-weight: 600;
  padding: 9px 18px;
  border-radius: 9999px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.6);
  z-index: 1000;
  pointer-events: none;
  opacity: 0;
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.app-toast.show {
  transform: translateX(-50%) translateY(0);
  opacity: 1;
}

/* Responsive adjustments */
@media (max-width: 375px) {
  .card-canvas-frame,
  .arch-card-frame {
    border-radius: 14px;
  }
  .card-inner-border,
  .arch-inner-border {
    border-radius: 10px;
  }
  .corner-strapwork {
    width: 58px;
    height: 58px;
  }
  .medallion-main-num .big-day {
    font-size: 3rem;
  }
  .countdown-hero-days .hero-days-num {
    font-size: 3.2rem;
  }
}
