/* ================================================================
   pk-animations.css — Mealful Kitchen Premium Layer
   Scroll reveal · Hero canvas · Button glow · 3D card tilt
   Nav shrink · Scroll progress · Magnetic buttons · Line reveal
   ================================================================ */

/* ── Custom Scrollbar ───────────────────────────────────────── */
::-webkit-scrollbar { width: 3px; height: 3px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #6db87a; border-radius: 2px; }
::-webkit-scrollbar-thumb:hover { background: #4a9158; }

/* ── Text Selection ─────────────────────────────────────────── */
::selection        { background: #d4f0da; color: #1c2016; }
::-moz-selection   { background: #d4f0da; color: #1c2016; }

/* ── Scroll Progress Bar ────────────────────────────────────── */
#pk-progress-bar {
  position: fixed;
  top: 0; left: 0;
  height: 2px;
  width: 100%;
  background: linear-gradient(90deg, #6db87a 0%, #f7a98a 55%, #c5b8f0 100%);
  transform-origin: left center;
  transform: scaleX(0);
  z-index: 9999;
  pointer-events: none;
}

/* ── Focus ring ─────────────────────────────────────────────── */
:focus-visible {
  outline: 2px solid #6db87a;
  outline-offset: 3px;
  border-radius: 4px;
}

@media (prefers-reduced-motion: no-preference) {

/* ── Scroll Reveal ──────────────────────────────────────────── */
.pk-reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .72s cubic-bezier(.16,1,.3,1),
              transform .72s cubic-bezier(.16,1,.3,1);
}
.pk-reveal-left {
  opacity: 0;
  transform: translateX(-32px);
  transition: opacity .72s cubic-bezier(.16,1,.3,1),
              transform .72s cubic-bezier(.16,1,.3,1);
}
.pk-reveal-scale {
  opacity: 0;
  transform: scale(.93) translateY(14px);
  transition: opacity .65s cubic-bezier(.16,1,.3,1),
              transform .65s cubic-bezier(.16,1,.3,1);
}
.pk-reveal.pk-visible,
.pk-reveal-left.pk-visible,
.pk-reveal-scale.pk-visible {
  opacity: 1;
  transform: none;
}

/* ── Hero Line Reveal (injected by JS) ──────────────────────── */
.pk-line {
  display: block;
  overflow: hidden;
  padding-bottom: .04em;
}
.pk-line-inner {
  display: block;
  transform: translateY(115%);
  opacity: 0;
  transition: transform .92s cubic-bezier(.16,1,.3,1),
              opacity   .65s ease;
}
.pk-line-inner.pk-line-visible {
  transform: translateY(0);
  opacity: 1;
}

/* ── Nav Scroll Shrink ──────────────────────────────────────── */
nav {
  transition: height .35s cubic-bezier(.16,1,.3,1),
              box-shadow .3s,
              background .3s !important;
}
nav.pk-nav-scrolled {
  height: 52px !important;
  box-shadow: 0 1px 0 rgba(28,32,22,.07), 0 4px 24px rgba(28,32,22,.06) !important;
  background: rgba(250,248,243,.99) !important;
}

/* ── Button Pulse Glow ──────────────────────────────────────── */
.pk-btn-glow {
  animation: pkBtnPulse 3.2s ease infinite;
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.pk-btn-glow::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(
    ellipse at var(--bx, 50%) var(--by, 50%),
    rgba(255,255,255,.3) 0%,
    transparent 65%
  );
  opacity: 0;
  transition: opacity .3s;
  pointer-events: none;
  z-index: 1;
}
.pk-btn-glow:hover::before { opacity: 1; }
.pk-btn-glow:hover { animation: none; }
@keyframes pkBtnPulse {
  0%, 100% { box-shadow: 0 4px 16px rgba(109,184,122,.35); }
  50%       { box-shadow: 0 6px 28px rgba(109,184,122,.62),
                          0 0 0 5px rgba(109,184,122,.09); }
}

/* ── Magnetic button (JS adds .pk-magnetic) ─────────────────── */
.pk-magnetic {
  transition: transform .45s cubic-bezier(.34,1.56,.64,1),
              background .25s,
              box-shadow .25s !important;
}

/* ── Card Shine Overlay ─────────────────────────────────────── */
.pk-card-shine {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 10;
  transition: background .08s;
  border-radius: inherit;
}

/* ── Hero Canvas ─────────────────────────────────────────────── */
#pk-orb-canvas {
  position: absolute !important;
  top: 0 !important; left: 0 !important;
  width: 100% !important; height: 100% !important;
  pointer-events: none !important;
  z-index: 0 !important;
}
.hero { position: relative; }
.hero > *:not(#pk-orb-canvas) { position: relative; z-index: 1; }
.blog-hero { position: relative; }
.blog-hero > *:not(#pk-orb-canvas) { position: relative; z-index: 1; }

/* ── Premium card shadow system ─────────────────────────────── */
.recipe-card {
  box-shadow:
    0 1px 2px rgba(28,32,22,.04),
    0 3px 12px rgba(28,32,22,.05) !important;
  transition:
    transform .4s cubic-bezier(.34,1.56,.64,1),
    box-shadow .35s ease,
    border-color .3s ease !important;
  will-change: transform;
}
.recipe-card:hover {
  box-shadow:
    0 2px 4px rgba(28,32,22,.04),
    0 10px 28px rgba(28,32,22,.1),
    0 28px 56px rgba(28,32,22,.08) !important;
  border-color: rgba(109,184,122,.45) !important;
}

/* ── Blog post cards ────────────────────────────────────────── */
.post-card {
  box-shadow:
    0 1px 3px rgba(28,32,22,.04),
    0 4px 18px rgba(28,32,22,.05) !important;
  transition:
    transform .4s cubic-bezier(.34,1.56,.64,1),
    box-shadow .35s ease,
    border-color .3s !important;
  will-change: transform;
}
.post-card:hover {
  box-shadow:
    0 2px 4px rgba(28,32,22,.04),
    0 12px 36px rgba(28,32,22,.1),
    0 32px 64px rgba(28,32,22,.07) !important;
  border-color: rgba(109,184,122,.35) !important;
}

/* ── Stat pill micro-hover ──────────────────────────────────── */
.stat-pill {
  cursor: default;
  transition: transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .3s !important;
}
.stat-pill:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 8px 24px rgba(28,32,22,.09) !important;
}

/* ── Diet pill bounce ───────────────────────────────────────── */
.diet-pill {
  transition: all .25s cubic-bezier(.34,1.56,.64,1) !important;
}
.diet-pill.active {
  box-shadow:
    0 6px 20px rgba(109,184,122,.38),
    0 0 0 1px rgba(109,184,122,.15) !important;
}

/* ── Float cards ────────────────────────────────────────────── */
.float-card  { will-change: transform; }
.float-card:hover {
  transform: translateY(-8px) scale(1.025) !important;
  box-shadow: 0 20px 50px rgba(28,32,22,.16) !important;
}

/* ── CTA block depth ────────────────────────────────────────── */
.recipe-cta {
  background: linear-gradient(135deg, #6db87a 0%, #4a9158 55%, #3d7b4a 100%) !important;
  box-shadow: 0 10px 40px rgba(74,145,88,.28), 0 2px 8px rgba(28,32,22,.08) !important;
  transition: transform .3s, box-shadow .3s !important;
}
.recipe-cta:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 18px 56px rgba(74,145,88,.32), 0 4px 14px rgba(28,32,22,.1) !important;
}

/* ── Callout quote decoration ───────────────────────────────── */
.callout {
  position: relative;
  overflow: hidden;
}
.callout::after {
  content: '\201C';
  position: absolute;
  top: -.25em; right: .5em;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 7rem;
  font-weight: 300;
  font-style: italic;
  line-height: 1;
  color: rgba(109,184,122,.14);
  pointer-events: none;
  z-index: 0;
}
.callout > * { position: relative; z-index: 1; }

/* ── Next post card ─────────────────────────────────────────── */
.next-card {
  transition: transform .4s cubic-bezier(.34,1.56,.64,1),
              box-shadow .3s, border-color .3s !important;
}
.next-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 16px 40px rgba(28,32,22,.12) !important;
  border-color: rgba(109,184,122,.35) !important;
}

/* ── Activity box ───────────────────────────────────────────── */
.activity-box {
  box-shadow:
    0 4px 24px rgba(28,32,22,.06),
    0 1px 4px rgba(28,32,22,.04) !important;
}

/* ── Snack pills hover ──────────────────────────────────────── */
.snack-pill {
  transition: all .2s cubic-bezier(.34,1.56,.64,1) !important;
}
.snack-pill:hover {
  border-color: rgba(109,184,122,.6) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 14px rgba(28,32,22,.08) !important;
}

/* ── Outline button refinement ──────────────────────────────── */
.btn-outline {
  transition: border-color .25s, background .25s, transform .25s,
              box-shadow .25s !important;
}
.btn-outline:hover { box-shadow: 0 4px 14px rgba(28,32,22,.08) !important; }

/* ── Button press ───────────────────────────────────────────── */
.btn:active { transform: scale(.97) !important; }

/* ── GPU compositing hints ──────────────────────────────────── */
.recipe-card, .post-card, .float-card,
.marquee-track, .nav-search-panel { will-change: transform; }

/* ── Smooth anchor scroll ───────────────────────────────────── */
html { scroll-behavior: smooth; }

} /* /prefers-reduced-motion */
