/* ═══════════════════════════════════════════════════════════
   幽境塔罗 · Apple-Level Design System + Liquid Glass
   ═══════════════════════════════════════════════════════════ */

/* ─── Extended Design Tokens ────────────────────────────── */
:root {
  /* Glass System */
  --glass-01: rgba(255,255,255,0.04);
  --glass-02: rgba(255,255,255,0.07);
  --glass-03: rgba(255,255,255,0.11);
  --glass-edge: rgba(255,255,255,0.18);
  --glass-shine: rgba(255,255,255,0.28);
  --glass-shadow: 0 20px 60px rgba(0,0,0,0.5), 0 8px 24px rgba(0,0,0,0.3);
  --glass-inner: inset 0 1px 0 rgba(255,255,255,0.15), inset 0 -1px 0 rgba(0,0,0,0.1);

  /* Apple Easing */
  --spring:     cubic-bezier(0.16, 1, 0.3, 1);
  --spring-sm:  cubic-bezier(0.34, 1.56, 0.64, 1);
  --apple-ease: cubic-bezier(0.25, 0.1, 0.25, 1);
  --smooth:     cubic-bezier(0.4, 0, 0.2, 1);

  /* Forest Glass Tints */
  --glass-forest: rgba(36, 89, 40, 0.15);
  --glass-gold:   rgba(201,168,76,0.12);
  --glass-moon:   rgba(200,192,168,0.08);

  /* Mouse position (updated by JS) */
  --mouse-x: 50%;
  --mouse-y: 50%;
}

/* ═══════════════════════════════════════════════════════════
   SCROLL PROGRESS BAR
   ═══════════════════════════════════════════════════════════ */
.scroll-progress-bar {
  position: fixed;
  top: 0; left: 0;
  width: 100%;
  height: 2px;
  z-index: 9999;
  pointer-events: none;
}

.scroll-progress-fill {
  height: 100%;
  background: linear-gradient(90deg,
    var(--forest-light) 0%,
    var(--gold) 50%,
    var(--mint) 100%);
  transform-origin: left;
  transform: scaleX(0);
  transition: transform 0.08s linear;
  box-shadow: 0 0 8px rgba(201,168,76,0.6);
}

/* ═══════════════════════════════════════════════════════════
   LIQUID GLASS BASE COMPONENTS
   ═══════════════════════════════════════════════════════════ */

/* Base glass panel */
.glass {
  background: var(--glass-02);
  backdrop-filter: blur(40px) saturate(1.8) brightness(1.05);
  -webkit-backdrop-filter: blur(40px) saturate(1.8) brightness(1.05);
  border: 0.5px solid var(--glass-edge);
  border-radius: var(--radius-lg);
  box-shadow: var(--glass-shadow), var(--glass-inner);
  position: relative;
  overflow: hidden;
}

/* Iridescent layer – follows cursor */
.glass::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(
    ellipse 80% 60% at var(--mouse-x) var(--mouse-y),
    rgba(201,168,76,0.12) 0%,
    rgba(142,207,148,0.06) 40%,
    rgba(100,160,220,0.04) 70%,
    transparent 100%
  );
  border-radius: inherit;
  pointer-events: none;
  transition: opacity 0.4s ease;
}

/* Top edge highlight (liquid glass signature) */
.glass::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg,
    transparent,
    rgba(255,255,255,0.3) 20%,
    rgba(255,255,255,0.5) 50%,
    rgba(255,255,255,0.3) 80%,
    transparent);
  pointer-events: none;
}

.glass-heavy {
  background: rgba(6,15,7,0.7);
  backdrop-filter: blur(50px) saturate(2) brightness(1.1);
  -webkit-backdrop-filter: blur(50px) saturate(2) brightness(1.1);
}

.glass-card {
  background: var(--glass-01);
  backdrop-filter: blur(30px) saturate(1.6);
  -webkit-backdrop-filter: blur(30px) saturate(1.6);
  border: 0.5px solid var(--glass-edge);
  border-radius: var(--radius-xl);
  box-shadow: var(--glass-shadow), var(--glass-inner);
  transition: all 0.5s var(--spring);
  position: relative;
  overflow: hidden;
}

.glass-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(
    ellipse 80% 60% at var(--mouse-x) var(--mouse-y),
    rgba(201,168,76,0.08) 0%,
    transparent 60%
  );
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.4s ease;
}

.glass-card:hover::before { opacity: 1; }

.glass-card:hover {
  border-color: rgba(255,255,255,0.22);
  box-shadow: 0 30px 80px rgba(0,0,0,0.5), 0 0 0 0.5px rgba(255,255,255,0.12), var(--glass-inner);
  transform: translateY(-6px) scale(1.01);
}

/* ═══════════════════════════════════════════════════════════
   LIQUID GLASS BUTTONS
   ═══════════════════════════════════════════════════════════ */

.btn-glass {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.9rem 2.2rem;
  border-radius: 100px;
  font-family: 'Cinzel', serif;
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
  color: var(--cream);
  border: none;
  outline: none;

  /* Glass base */
  background: rgba(255,255,255,0.08);
  backdrop-filter: blur(24px) saturate(1.6);
  -webkit-backdrop-filter: blur(24px) saturate(1.6);
  border: 0.5px solid rgba(255,255,255,0.2);

  /* Depth layers */
  box-shadow:
    0 0 0 0.5px rgba(255,255,255,0.08) inset,
    0 1px 0 rgba(255,255,255,0.2) inset,
    0 -1px 0 rgba(0,0,0,0.12) inset,
    0 8px 32px rgba(0,0,0,0.25),
    0 2px 8px rgba(0,0,0,0.15);

  transition:
    transform 0.35s var(--spring),
    box-shadow 0.35s var(--spring),
    background 0.3s ease,
    border-color 0.3s ease;

  overflow: hidden;
  isolation: isolate;
}

/* Iridescent cursor-tracking layer */
.btn-glass::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(
    circle at var(--btn-mouse-x, 50%) var(--btn-mouse-y, 50%),
    rgba(255,255,255,0.22) 0%,
    rgba(201,168,76,0.15) 30%,
    rgba(142,207,148,0.08) 60%,
    transparent 80%
  );
  border-radius: inherit;
  opacity: 0;
  transition: opacity 0.3s ease;
  pointer-events: none;
}

/* Specular top highlight */
.btn-glass::after {
  content: '';
  position: absolute;
  top: 1px;
  left: 12%;
  right: 12%;
  height: 38%;
  background: linear-gradient(
    180deg,
    rgba(255,255,255,0.3) 0%,
    rgba(255,255,255,0.08) 70%,
    transparent 100%
  );
  border-radius: 100px 100px 40% 40% / 100px 100px 60% 60%;
  pointer-events: none;
}

.btn-glass:hover {
  transform: translateY(-3px) scale(1.03);
  border-color: rgba(255,255,255,0.3);
  box-shadow:
    0 0 0 0.5px rgba(255,255,255,0.12) inset,
    0 1px 0 rgba(255,255,255,0.25) inset,
    0 -1px 0 rgba(0,0,0,0.08) inset,
    0 16px 48px rgba(0,0,0,0.3),
    0 4px 16px rgba(0,0,0,0.2),
    0 0 30px rgba(201,168,76,0.15);
}

.btn-glass:hover::before { opacity: 1; }

.btn-glass:active {
  transform: translateY(-1px) scale(0.98);
  box-shadow:
    0 0 0 0.5px rgba(255,255,255,0.08) inset,
    0 4px 12px rgba(0,0,0,0.25);
  transition-duration: 0.1s;
}

/* Primary glass (gold tint) */
.btn-glass-primary {
  background: linear-gradient(
    135deg,
    rgba(201,168,76,0.35) 0%,
    rgba(160,120,48,0.25) 100%
  );
  border-color: rgba(201,168,76,0.45);
  color: var(--gold-light);
  box-shadow:
    0 0 0 0.5px rgba(201,168,76,0.25) inset,
    0 1px 0 rgba(255,255,255,0.2) inset,
    0 -1px 0 rgba(0,0,0,0.15) inset,
    0 8px 32px rgba(0,0,0,0.3),
    0 0 20px rgba(201,168,76,0.2);
}

.btn-glass-primary:hover {
  background: linear-gradient(
    135deg,
    rgba(201,168,76,0.45) 0%,
    rgba(160,120,48,0.35) 100%
  );
  border-color: rgba(201,168,76,0.6);
  box-shadow:
    0 0 0 0.5px rgba(201,168,76,0.3) inset,
    0 1px 0 rgba(255,255,255,0.25) inset,
    0 16px 48px rgba(0,0,0,0.35),
    0 0 40px rgba(201,168,76,0.3);
}

/* Forest glass (green tint) */
.btn-glass-forest {
  background: linear-gradient(
    135deg,
    rgba(36,89,40,0.4) 0%,
    rgba(26,61,28,0.3) 100%
  );
  border-color: rgba(90,160,96,0.4);
  color: var(--mint);
}

.btn-glass-forest:hover {
  box-shadow:
    0 0 0 0.5px rgba(90,160,96,0.25) inset,
    0 1px 0 rgba(255,255,255,0.2) inset,
    0 16px 48px rgba(0,0,0,0.3),
    0 0 40px rgba(90,160,96,0.25);
}

/* Ghost glass */
.btn-glass-ghost {
  background: rgba(255,255,255,0.04);
  border-color: rgba(255,255,255,0.12);
  color: var(--text-dim);
}

.btn-glass-ghost:hover {
  background: rgba(255,255,255,0.07);
  color: var(--cream);
}

/* Button sizes */
.btn-glass-sm { padding: 0.6rem 1.4rem; font-size: 0.68rem; }
.btn-glass-lg { padding: 1.1rem 2.8rem; font-size: 0.85rem; }

/* Ripple effect on click */
.btn-glass .ripple {
  position: absolute;
  border-radius: 50%;
  background: rgba(255,255,255,0.25);
  transform: scale(0);
  animation: rippleAnim 0.6s linear;
  pointer-events: none;
}

@keyframes rippleAnim {
  to { transform: scale(4); opacity: 0; }
}

/* ═══════════════════════════════════════════════════════════
   APPLE-STYLE TYPOGRAPHY
   ═══════════════════════════════════════════════════════════ */

.hero h1 {
  font-size: clamp(3.2rem, 9vw, 7.5rem);
  letter-spacing: -0.04em;
  line-height: 1.03;
  font-weight: 700;
  background: linear-gradient(
    135deg,
    var(--cream) 0%,
    var(--gold-light) 45%,
    var(--mint) 100%
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  padding-bottom: 0.05em;
}

.display-text {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2.5rem, 6vw, 5.5rem);
  letter-spacing: -0.03em;
  line-height: 1.08;
  font-weight: 700;
}

/* ═══════════════════════════════════════════════════════════
   APPLE SCROLL ANIMATIONS
   ═══════════════════════════════════════════════════════════ */

[data-reveal] {
  opacity: 0;
  transition:
    opacity 0.9s var(--spring),
    transform 0.9s var(--spring),
    filter 0.9s var(--spring);
}

[data-reveal="up"]     { transform: translateY(50px); filter: blur(4px); }
[data-reveal="down"]   { transform: translateY(-30px); filter: blur(4px); }
[data-reveal="left"]   { transform: translateX(50px); filter: blur(4px); }
[data-reveal="right"]  { transform: translateX(-50px); filter: blur(4px); }
[data-reveal="scale"]  { transform: scale(0.88); filter: blur(8px); }
[data-reveal="fade"]   { }

[data-reveal].revealed {
  opacity: 1;
  transform: none;
  filter: none;
}

/* Stagger children */
[data-stagger] > * {
  opacity: 0;
  transform: translateY(40px);
  filter: blur(4px);
  transition:
    opacity 0.7s var(--spring),
    transform 0.7s var(--spring),
    filter 0.7s var(--spring);
}

[data-stagger].staggered > *:nth-child(1)  { transition-delay: 0.05s; }
[data-stagger].staggered > *:nth-child(2)  { transition-delay: 0.12s; }
[data-stagger].staggered > *:nth-child(3)  { transition-delay: 0.19s; }
[data-stagger].staggered > *:nth-child(4)  { transition-delay: 0.26s; }
[data-stagger].staggered > *:nth-child(5)  { transition-delay: 0.33s; }
[data-stagger].staggered > *:nth-child(6)  { transition-delay: 0.40s; }
[data-stagger].staggered > *:nth-child(n+7){ transition-delay: 0.47s; }

[data-stagger].staggered > * {
  opacity: 1;
  transform: none;
  filter: none;
}

/* ═══════════════════════════════════════════════════════════
   ENHANCED NAVIGATION
   ═══════════════════════════════════════════════════════════ */
.nav {
  background: rgba(3,11,4,0.55) !important;
  backdrop-filter: blur(50px) saturate(2) brightness(1.08) !important;
  -webkit-backdrop-filter: blur(50px) saturate(2) brightness(1.08) !important;
  border-bottom: 0.5px solid rgba(255,255,255,0.08) !important;
  transition: all 0.5s var(--apple-ease) !important;
}

.nav.scrolled {
  background: rgba(3,11,4,0.82) !important;
  border-bottom-color: rgba(255,255,255,0.12) !important;
}

/* Nav logo hover */
.nav-logo { transition: opacity 0.3s ease; }
.nav-logo:hover { opacity: 0.75; }

/* Nav link hover animation */
.nav-links a {
  position: relative;
  transition: color 0.3s ease;
}

.nav-links a::after {
  transition: transform 0.4s var(--spring), opacity 0.4s ease;
}

/* ═══════════════════════════════════════════════════════════
   CARD 3D TILT
   ═══════════════════════════════════════════════════════════ */
.tilt-card {
  transform-style: preserve-3d;
  transition: transform 0.4s var(--spring);
  will-change: transform;
}

.tilt-card .tilt-shine {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: radial-gradient(
    circle at var(--tilt-x, 50%) var(--tilt-y, 50%),
    rgba(255,255,255,0.12) 0%,
    transparent 60%
  );
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.4s ease;
  z-index: 10;
}

.tilt-card:hover .tilt-shine { opacity: 1; }

/* ═══════════════════════════════════════════════════════════
   MAGNETIC BUTTON WRAPPER
   ═══════════════════════════════════════════════════════════ */
.magnetic-wrap {
  display: inline-block;
  transition: transform 0.4s var(--spring);
}

/* ═══════════════════════════════════════════════════════════
   FOREST ENHANCEMENTS
   ═══════════════════════════════════════════════════════════ */

/* Fog layers */
.fog-container {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  overflow: hidden;
}

.fog-layer {
  position: absolute;
  left: -20%;
  right: -20%;
  border-radius: 50%;
  filter: blur(60px);
}

.fog-layer-1 {
  bottom: -10%;
  height: 35%;
  background: rgba(15,36,18,0.8);
  animation: fogDrift1 18s ease-in-out infinite;
}

.fog-layer-2 {
  bottom: -5%;
  height: 25%;
  background: rgba(10,26,12,0.6);
  animation: fogDrift2 24s ease-in-out infinite;
  animation-delay: -8s;
}

.fog-layer-3 {
  bottom: 5%;
  height: 20%;
  background: rgba(20,50,24,0.35);
  animation: fogDrift3 30s ease-in-out infinite;
  animation-delay: -15s;
}

@keyframes fogDrift1 {
  0%,100% { transform: translateX(0) scaleY(1); opacity: 0.9; }
  33%      { transform: translateX(-5%) scaleY(1.08); opacity: 1; }
  66%      { transform: translateX(8%) scaleY(0.95); opacity: 0.85; }
}
@keyframes fogDrift2 {
  0%,100% { transform: translateX(0) scaleY(1); opacity: 0.7; }
  40%     { transform: translateX(7%) scaleY(1.1); opacity: 0.85; }
  70%     { transform: translateX(-4%) scaleY(0.9); opacity: 0.6; }
}
@keyframes fogDrift3 {
  0%,100% { transform: translateX(0); opacity: 0.4; }
  50%     { transform: translateX(-6%); opacity: 0.6; }
}

/* Dappled sunlight */
.dappled-light {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  mix-blend-mode: screen;
  animation: dapple ease-in-out infinite;
}

.dapple-1 {
  width: 300px; height: 200px;
  top: 10%; left: 15%;
  background: radial-gradient(ellipse, rgba(255,240,180,0.06) 0%, transparent 70%);
  animation-duration: 10s;
  animation-delay: 0s;
}

.dapple-2 {
  width: 250px; height: 180px;
  top: 25%; right: 20%;
  background: radial-gradient(ellipse, rgba(200,255,200,0.04) 0%, transparent 70%);
  animation-duration: 14s;
  animation-delay: -5s;
}

.dapple-3 {
  width: 180px; height: 140px;
  top: 50%; left: 40%;
  background: radial-gradient(ellipse, rgba(255,240,180,0.03) 0%, transparent 70%);
  animation-duration: 8s;
  animation-delay: -3s;
}

@keyframes dapple {
  0%,100% { transform: scale(1) translate(0,0); opacity: 1; }
  33%      { transform: scale(1.15) translate(10px,-8px); opacity: 0.7; }
  66%      { transform: scale(0.9) translate(-8px,5px); opacity: 0.9; }
}

/* Ground cover (ferns as css shapes) */
.ground-cover {
  position: absolute;
  bottom: 0;
  width: 100%;
  height: 80px;
  pointer-events: none;
}

.fern {
  position: absolute;
  bottom: 0;
}

.fern-blade {
  position: absolute;
  bottom: 0;
  transform-origin: bottom center;
  background: linear-gradient(to top, #0a1a0c, #162b18);
  border-radius: 50% 50% 0 50% / 30% 30% 0 70%;
}

/* Pine trees */
.tree-pine {
  position: absolute;
  bottom: 0;
}

.pine-layer {
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

.pine-trunk-r {
  background: linear-gradient(to top, #06100a, #0a1a0c);
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}

/* Enhanced forest silhouette */
.forest-silhouette {
  z-index: 2;
}

/* Moon glow enhancement */
.hero-moon {
  position: relative;
}

.moon-glow-ring {
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(200,192,168,0.08);
  top: 50%; left: 50%;
  transform: translate(-50%,-50%);
  animation: moonRing 4s ease-in-out infinite;
}

.moon-glow-ring:nth-child(1) { width: 220px; height: 220px; animation-delay: 0s; }
.moon-glow-ring:nth-child(2) { width: 280px; height: 280px; animation-delay: 1s; opacity: 0.6; }
.moon-glow-ring:nth-child(3) { width: 360px; height: 360px; animation-delay: 2s; opacity: 0.3; }

@keyframes moonRing {
  0%,100% { transform: translate(-50%,-50%) scale(1); opacity: var(--ring-opacity, 0.3); }
  50%      { transform: translate(-50%,-50%) scale(1.05); opacity: 0.15; }
}

/* ═══════════════════════════════════════════════════════════
   ENHANCED SERVICE CARDS
   ═══════════════════════════════════════════════════════════ */
.service-card {
  background: var(--glass-01) !important;
  backdrop-filter: blur(30px) saturate(1.5) !important;
  -webkit-backdrop-filter: blur(30px) saturate(1.5) !important;
  border: 0.5px solid var(--glass-edge) !important;
  box-shadow: var(--glass-shadow), var(--glass-inner) !important;
  transition: all 0.5s var(--spring) !important;
}

.service-card::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg,
    transparent,
    rgba(255,255,255,0.25) 30%,
    rgba(255,255,255,0.4) 50%,
    rgba(255,255,255,0.25) 70%,
    transparent);
}

.service-card:hover {
  transform: translateY(-10px) scale(1.015) !important;
  border-color: rgba(255,255,255,0.2) !important;
  box-shadow:
    0 40px 80px rgba(0,0,0,0.55),
    0 0 0 0.5px rgba(255,255,255,0.12),
    inset 0 1px 0 rgba(255,255,255,0.2) !important;
}

/* ═══════════════════════════════════════════════════════════
   ENHANCED TESTIMONIALS
   ═══════════════════════════════════════════════════════════ */
.testimonial-card {
  background: var(--glass-01) !important;
  backdrop-filter: blur(20px) saturate(1.4) !important;
  -webkit-backdrop-filter: blur(20px) saturate(1.4) !important;
  border: 0.5px solid var(--glass-edge) !important;
  transition: all 0.5s var(--spring) !important;
}

.testimonial-card:hover {
  transform: translateY(-4px) !important;
  border-color: rgba(255,255,255,0.2) !important;
}

/* ═══════════════════════════════════════════════════════════
   ENHANCED FEATURE ITEMS
   ═══════════════════════════════════════════════════════════ */
.feature-item {
  background: var(--glass-01) !important;
  backdrop-filter: blur(20px) saturate(1.5) !important;
  -webkit-backdrop-filter: blur(20px) saturate(1.5) !important;
  border: 0.5px solid var(--glass-edge) !important;
  transition: all 0.5s var(--spring) !important;
}

.feature-item:hover {
  transform: translateY(-6px) scale(1.02) !important;
  border-color: rgba(255,255,255,0.2) !important;
  box-shadow: 0 20px 50px rgba(0,0,0,0.4), var(--glass-inner) !important;
}

/* ═══════════════════════════════════════════════════════════
   SPREAD OPTIONS
   ═══════════════════════════════════════════════════════════ */
.spread-option {
  background: var(--glass-01) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  border: 0.5px solid var(--glass-edge) !important;
  transition: all 0.4s var(--spring) !important;
}

.spread-option:hover,
.spread-option.selected {
  border-color: rgba(201,168,76,0.5) !important;
  background: rgba(201,168,76,0.08) !important;
  transform: translateY(-3px) scale(1.02) !important;
  box-shadow: 0 12px 40px rgba(0,0,0,0.35), 0 0 20px rgba(201,168,76,0.15) !important;
}

/* ═══════════════════════════════════════════════════════════
   MUSIC PLAYER GLASS
   ═══════════════════════════════════════════════════════════ */
#musicToggle {
  background: rgba(255,255,255,0.07) !important;
  backdrop-filter: blur(30px) saturate(1.5) !important;
  -webkit-backdrop-filter: blur(30px) saturate(1.5) !important;
  border: 0.5px solid rgba(255,255,255,0.18) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.2),
    0 8px 24px rgba(0,0,0,0.3) !important;
  transition: all 0.4s var(--spring) !important;
}

#musicToggle:hover {
  transform: scale(1.08) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.25),
    0 12px 32px rgba(0,0,0,0.35),
    0 0 20px rgba(201,168,76,0.2) !important;
}

.music-panel {
  background: rgba(6,15,7,0.7) !important;
  backdrop-filter: blur(50px) saturate(2) !important;
  -webkit-backdrop-filter: blur(50px) saturate(2) !important;
  border: 0.5px solid var(--glass-edge) !important;
  box-shadow: 0 20px 60px rgba(0,0,0,0.5), var(--glass-inner) !important;
}

/* ═══════════════════════════════════════════════════════════
   FORM INPUTS GLASS
   ═══════════════════════════════════════════════════════════ */
.form-input, .form-select, .form-textarea {
  background: rgba(255,255,255,0.04) !important;
  border: 0.5px solid rgba(255,255,255,0.12) !important;
  transition: all 0.35s var(--spring) !important;
  backdrop-filter: blur(10px) !important;
}

.form-input:focus, .form-select:focus, .form-textarea:focus {
  background: rgba(255,255,255,0.07) !important;
  border-color: rgba(201,168,76,0.5) !important;
  box-shadow: 0 0 0 3px rgba(201,168,76,0.08), var(--glass-inner) !important;
}

/* ═══════════════════════════════════════════════════════════
   PAGE TRANSITION OVERLAY
   ═══════════════════════════════════════════════════════════ */
.page-transition {
  position: fixed;
  inset: 0;
  background: var(--bg-darkest);
  z-index: 10000;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.4s var(--apple-ease);
}

.page-transition.out { opacity: 1; }
.page-transition.in  { opacity: 0; }

/* ═══════════════════════════════════════════════════════════
   HERO ENHANCEMENTS
   ═══════════════════════════════════════════════════════════ */
.hero-content {
  position: relative;
  z-index: 3;
}

.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.4rem 1.2rem;
  border-radius: 100px;
  background: rgba(201,168,76,0.1);
  backdrop-filter: blur(20px);
  border: 0.5px solid rgba(201,168,76,0.3);
  font-family: 'Cinzel', serif;
  font-size: 0.65rem;
  letter-spacing: 0.25em;
  color: var(--gold);
  margin-bottom: 1.5rem;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.15);
}

/* ═══════════════════════════════════════════════════════════
   MODAL GLASS
   ═══════════════════════════════════════════════════════════ */
.modal {
  background: rgba(8,20,10,0.85) !important;
  backdrop-filter: blur(60px) saturate(2) !important;
  -webkit-backdrop-filter: blur(60px) saturate(2) !important;
  border: 0.5px solid rgba(255,255,255,0.12) !important;
  box-shadow:
    0 40px 100px rgba(0,0,0,0.6),
    inset 0 1px 0 rgba(255,255,255,0.15),
    0 0 0 0.5px rgba(255,255,255,0.05) !important;
}

/* ═══════════════════════════════════════════════════════════
   TAROT CARD GLASS UPGRADE
   ═══════════════════════════════════════════════════════════ */
.card-back {
  background: linear-gradient(145deg,
    rgba(15,36,18,0.9),
    rgba(26,61,30,0.95),
    rgba(10,26,12,0.9)) !important;
  backdrop-filter: blur(10px);
}

.card-scene:hover .card-back {
  box-shadow:
    0 0 30px rgba(142,207,148,0.2),
    0 0 60px rgba(142,207,148,0.08),
    var(--glass-inner) !important;
}

/* ═══════════════════════════════════════════════════════════
   SCROLL INDICATOR (Apple style)
   ═══════════════════════════════════════════════════════════ */
.hero-scroll {
  animation: heroBounce 2.5s var(--spring) infinite !important;
}

@keyframes heroBounce {
  0%,100% { transform: translateX(-50%) translateY(0); opacity: 0.6; }
  50%      { transform: translateX(-50%) translateY(-10px); opacity: 1; }
}

/* ═══════════════════════════════════════════════════════════
   FOOTER GLASS
   ═══════════════════════════════════════════════════════════ */
.footer {
  background: rgba(2,7,3,0.95) !important;
  backdrop-filter: blur(30px) !important;
  border-top: 0.5px solid rgba(255,255,255,0.06) !important;
}

/* ═══════════════════════════════════════════════════════════
   SECTION DIVIDERS
   ═══════════════════════════════════════════════════════════ */
.section-divider {
  height: 1px;
  background: linear-gradient(90deg,
    transparent,
    rgba(255,255,255,0.08) 20%,
    rgba(201,168,76,0.2) 50%,
    rgba(255,255,255,0.08) 80%,
    transparent);
  margin: 0;
}

/* ═══════════════════════════════════════════════════════════
   HOVER UNDERLINE (Apple style)
   ═══════════════════════════════════════════════════════════ */
.hover-underline {
  position: relative;
  display: inline-block;
}

.hover-underline::after {
  content: '';
  position: absolute;
  left: 0; right: 0;
  bottom: -2px;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.4s var(--spring);
}

.hover-underline:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}

/* ═══════════════════════════════════════════════════════════
   PROCESS STEPS GLASS
   ═══════════════════════════════════════════════════════════ */
.step-number {
  background: rgba(255,255,255,0.04) !important;
  backdrop-filter: blur(20px) !important;
  border: 0.5px solid rgba(255,255,255,0.15) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.15) !important;
}

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE GLASS ADJUSTMENTS
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  .btn-glass { padding: 0.8rem 1.8rem; }
  .btn-glass-lg { padding: 1rem 2.2rem; }
  .hero h1 { letter-spacing: -0.03em; }
  .fog-layer { filter: blur(40px); }
}

/* Reduce blur on low-power devices */
@media (prefers-reduced-motion: reduce) {
  [data-reveal], [data-stagger] > * {
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }
  .fog-layer, .dappled-light, .moon-glow-ring {
    animation: none !important;
  }
}

/* ════════════════════════════════════════════════════════════
   PREMIUM GLASS MORPHISM UPGRADES
   ════════════════════════════════════════════════════════════ */

/* Enhanced glass panels with multiple depth layers */
.glass-premium {
  background: 
    linear-gradient(135deg, rgba(255,255,255,0.06) 0%, rgba(255,255,255,0.02) 100%),
    rgba(8,22,10,0.7);
  backdrop-filter: blur(40px) saturate(2) brightness(1.08);
  -webkit-backdrop-filter: blur(40px) saturate(2) brightness(1.08);
  border: 0.5px solid rgba(255,255,255,0.14);
  border-top: 0.5px solid rgba(255,255,255,0.22);
  border-radius: var(--radius-lg);
  box-shadow: 
    0 32px 64px rgba(0,0,0,0.5),
    0 8px 16px rgba(0,0,0,0.3),
    inset 0 1px 0 rgba(255,255,255,0.12),
    inset 0 -1px 0 rgba(0,0,0,0.08);
  position: relative;
  overflow: hidden;
  will-change: transform;
}

/* Service card glass enhancement */
.service-card {
  backdrop-filter: blur(20px) saturate(1.5);
  -webkit-backdrop-filter: blur(20px) saturate(1.5);
  will-change: transform;
}
.service-card.featured {
  background: linear-gradient(145deg, 
    rgba(30,60,25,0.5) 0%,
    rgba(42,21,64,0.3) 50%,
    rgba(15,36,18,0.6) 100%);
  backdrop-filter: blur(24px) saturate(1.8);
  -webkit-backdrop-filter: blur(24px) saturate(1.8);
  border-color: rgba(201,168,76,0.4);
  box-shadow: 0 0 30px rgba(201,168,76,0.1), 0 20px 50px rgba(0,0,0,0.4);
}

/* Testimonial card enhancement */
.testimonial-card {
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1), 
              border-color 0.3s ease,
              box-shadow 0.3s ease;
  will-change: transform;
}
.testimonial-card:hover {
  transform: translateY(-6px) translateZ(0);
  box-shadow: 0 24px 48px rgba(0,0,0,0.4), 0 0 20px rgba(201,168,76,0.08);
}

/* Modal glass enhancement */
.modal {
  backdrop-filter: blur(32px) saturate(1.8);
  -webkit-backdrop-filter: blur(32px) saturate(1.8);
  background: linear-gradient(145deg,
    rgba(12,28,14,0.95) 0%,
    rgba(8,18,10,0.98) 100%);
  border: 0.5px solid rgba(201,168,76,0.2);
  border-top: 0.5px solid rgba(201,168,76,0.3);
  box-shadow: 
    0 40px 80px rgba(0,0,0,0.7),
    0 0 60px rgba(201,168,76,0.05),
    inset 0 1px 0 rgba(201,168,76,0.1);
}

/* Premium button press effect */
.btn-primary {
  background: linear-gradient(135deg, 
    rgba(201,168,76,0.9) 0%,
    rgba(232,197,90,0.95) 50%,
    rgba(201,168,76,0.85) 100%);
  position: relative;
  overflow: hidden;
}
.btn-primary::before {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, 
    transparent, 
    rgba(255,255,255,0.25), 
    transparent);
  transition: left 0.5s ease;
}
.btn-primary:hover::before {
  left: 100%;
}

/* Deck pile premium style */
.deck-card {
  background: linear-gradient(145deg, 
    #0f2412 0%, 
    #1a3d1e 45%, 
    #142e17 70%,
    #0a1a0c 100%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.deck-card:nth-child(3) {
  box-shadow: 0 8px 24px rgba(0,0,0,0.5), 0 0 20px rgba(201,168,76,0.08);
}

/* Letter spacing tweaks for premium typography */
h1 { letter-spacing: -0.02em; }
h2 { letter-spacing: -0.01em; }
.section-label { letter-spacing: 0.35em; }
.tagline { letter-spacing: 0.04em; }
p, .feature-desc { letter-spacing: 0.01em; }

/* Gold gradient accent line */
.divider::before, .divider::after {
  background: linear-gradient(90deg, 
    transparent,
    rgba(201,168,76,0.4) 30%,
    rgba(232,213,163,0.6) 50%,
    rgba(201,168,76,0.4) 70%,
    transparent);
}

/* Card meaning panel typography */
.card-meaning-panel h3 {
  font-size: clamp(1.2rem, 3vw, 1.6rem);
  letter-spacing: -0.01em;
}
.card-meaning-panel .card-name-en {
  font-family: 'Cinzel', serif;
  font-size: 0.6rem;
  letter-spacing: 0.25em;
  color: var(--text-muted);
}

/* Reading theme — page-specific indigo tint */
.reading-page .phase-header h1,
.reading-page .phase-header h2 {
  background: linear-gradient(135deg, 
    var(--gold-light) 0%, 
    rgba(180,160,240,0.9) 40%,
    var(--gold-light) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Spread option hover */
.spread-option {
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
}
.spread-option:hover {
  transform: translateY(-4px) translateZ(0);
}
.spread-option.selected {
  transform: translateY(-2px) translateZ(0);
}

/* Philosophy card enhanced */
.philosophy-card {
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1),
              border-color 0.3s ease;
  will-change: transform;
}
.philosophy-card:hover {
  transform: translateY(-5px) translateZ(0);
  border-color: var(--border-strong);
}

/* Timeline dot animation */
.timeline-dot {
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.3s ease;
}
.timeline-item:hover .timeline-dot {
  transform: scale(1.15);
  box-shadow: 0 0 16px rgba(201,168,76,0.3);
}

