:root {
      --rose-primary: #ff2a70;
      --gold-accent: #fcd34d;
      --bg-dark: #070208;
    }

    * {
      -webkit-tap-highlight-color: transparent;
      user-select: none;
      box-sizing: border-box;
    }

    body {
      font-family: 'Plus Jakarta Sans', sans-serif;
      background-color: var(--bg-dark);
      color: #ffe4e6;
      overflow: hidden;
      width: 100vw;
      height: 100vh;
      height: 100dvh;
      position: fixed;
    }

    .font-romantic { font-family: 'Dancing Script', cursive; }
    .font-serif-lux { font-family: 'Playfair Display', serif; }
    .font-cinematic { font-family: 'Cinzel', serif; }
    .slow-spin { animation-duration: 25s; }

    /* Ultra Glassmorphism */
    .glass-card {
      background: rgba(22, 9, 23, 0.72);
      backdrop-filter: blur(24px);
      -webkit-backdrop-filter: blur(24px);
      border: 1px solid rgba(255, 255, 255, 0.12);
      box-shadow: 0 20px 50px rgba(0, 0, 0, 0.7), inset 0 1px 0 rgba(255, 255, 255, 0.2);
    }

    .glass-pill {
      background: rgba(255, 255, 255, 0.08);
      backdrop-filter: blur(12px);
      border: 1px solid rgba(255, 255, 255, 0.15);
    }

    /* 3D Perspective Scene */
    .perspective-stage {
      perspective: 1200px;
      perspective-origin: center center;
    }

    /* 3D Slide Transition States */
    .slide-3d {
      position: absolute;
      inset: 0;
      transition: all 1.2s cubic-bezier(0.2, 0.8, 0.2, 1);
      transform-style: preserve-3d;
      opacity: 0;
      pointer-events: none;
      transform: translate3d(0, 40px, -200px) rotateX(12deg) scale(0.9);
    }

    .slide-3d.active {
      opacity: 1;
      pointer-events: auto;
      transform: translate3d(0, 0, 0) rotateX(0deg) scale(1);
      z-index: 20;
    }

    .slide-3d.prev {
      opacity: 0;
      transform: translate3d(-100px, -30px, 150px) rotateY(-18deg) scale(1.1);
      z-index: 10;
    }

    /* Ken Burns zoom animation for images */
    @keyframes kenBurns {
      0% { transform: scale(1) translate(0, 0); }
      50% { transform: scale(1.09) translate(-1%, -1.5%); }
      100% { transform: scale(1.18) translate(1%, 1%); }
    }
    .ken-burns-img {
      animation: kenBurns 9s ease-in-out infinite alternate;
    }

    /* Scan fingerprint circular ripple */
    @keyframes scanWave {
      0% { transform: scale(0.9); opacity: 0.9; }
      100% { transform: scale(2.4); opacity: 0; }
    }
    .scan-wave-anim {
      animation: scanWave 1.4s infinite cubic-bezier(0.2, 0.8, 0.2, 1);
    }

    /* Flash Transition */
    .portal-flash {
      position: fixed;
      inset: 0;
      background: radial-gradient(circle, #fff, #ff85a2, transparent);
      z-index: 100;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.5s ease-out;
    }
    .portal-flash.trigger {
      opacity: 1;
    }

    /* Floating Tap Effect */
    .tap-sparkle {
      position: fixed;
      pointer-events: none;
      z-index: 9999;
      transform: translate(-50%, -50%);
      animation: floatUp 1s forwards ease-out;
    }
    @keyframes floatUp {
      0% { opacity: 1; transform: translate(-50%, -50%) scale(0.6); }
      100% { opacity: 0; transform: translate(-50%, -100px) scale(1.3) rotate(20deg); }
    }

    /* Glowing Text Gradient */
    .glow-gold-text {
      background: linear-gradient(135deg, #fff 0%, #fde68a 40%, #ff85a2 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      filter: drop-shadow(0 2px 12px rgba(253, 224, 71, 0.35));
    }

    .no-scrollbar::-webkit-scrollbar { display: none; }
    .no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
