html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }
body { background: #faf7f1; color: #191710; overflow-x: hidden; }
::selection { background-color: #b8924a; color: #fff; }
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #faf7f1; }
::-webkit-scrollbar-thumb { background: #d9b876; border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: #b8924a; }

.noise-overlay {
  position: fixed; inset: 0; pointer-events: none; z-index: 40;
  opacity: 0.045; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.magnetic-btn { position: relative; overflow: hidden; transition: transform .4s cubic-bezier(.25,.46,.45,.94); }
.magnetic-btn:hover { transform: scale(1.03) translateY(-1px); }
.magnetic-btn:active { transform: scale(.98); }
.magnetic-btn::before {
  content:''; position:absolute; inset:0;
  background: linear-gradient(135deg, rgba(255,255,255,.18), rgba(255,255,255,0));
  transform: translateY(100%); transition: transform .5s cubic-bezier(.25,.46,.45,.94);
}
.magnetic-btn:hover::before { transform: translateY(0); }
.lift-on-hover { transition: transform .3s cubic-bezier(.25,.46,.45,.94); }
.lift-on-hover:hover { transform: translateY(-2px); }
.gradient-text {
  background: linear-gradient(135deg, #d9b876 0%, #b8924a 60%, #8f6f38 100%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.glass { background: rgba(250,247,241,.7); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border: 1px solid rgba(184,146,74,.18); }
.glass-dark { background: rgba(16,15,12,.75); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); }
.grid-bg {
  background-image: linear-gradient(rgba(184,146,74,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(184,146,74,.08) 1px, transparent 1px);
  background-size: 44px 44px;
}
.ring-pulse { box-shadow: 0 0 0 0 rgba(184,146,74,.6); animation: ring-pulse 2.4s infinite; }
@keyframes ring-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(184,146,74,.6); }
  70%  { box-shadow: 0 0 0 14px rgba(184,146,74,0); }
  100% { box-shadow: 0 0 0 0 rgba(184,146,74,0); }
}
@keyframes pillar-sweep {
  0% { transform: translateX(-100%); } 50% { transform: translateX(100%); } 100% { transform: translateX(100%); }
}
.pillar-sweep { animation: pillar-sweep 3.2s ease-in-out infinite; }

/* ---- Signature animation: leaves falling into Campbell Creek ---- */
@keyframes leaf-fall {
  0%   { transform: translate(-50%, -10px) rotate(0deg); opacity: 0; }
  12%  { opacity: 1; }
  82%  { opacity: 1; }
  100% { transform: translate(-50%, 118px) rotate(140deg); opacity: 0; }
}
@keyframes creek-ripple {
  0%   { transform: translateX(-50%) scale(.4); opacity: .85; }
  80%  { transform: translateX(-50%) scale(3.4); opacity: 0; }
  100% { transform: translateX(-50%) scale(3.4); opacity: 0; }
}
@keyframes sig-fadein { from { opacity:0; transform: translateY(2px);} to {opacity:1; transform: translateY(0);} }
.leaf-particle { position:absolute; top:0; animation: leaf-fall linear infinite; }
.creek-ripple { position:absolute; border:1px solid rgba(217,184,118,.55); border-radius:50%; width:26px; height:26px; animation: creek-ripple 2.6s ease-out infinite; }

/* sticky protocol stack */
.protocol-card { position: sticky; top: 6rem; }

/* page hero (subpages) */
.page-hero-title { line-height: 1.05; }

/* FAQ accordion */
.faq-answer { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
.faq-item.open .faq-answer { max-height: 400px; }
.faq-chevron { transition: transform .3s ease; }
.faq-item.open .faq-chevron { transform: rotate(180deg); }

/* cabin filter pills */
.filter-pill.active { background: #b8924a; border-color: #b8924a; color: #fff; }

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
}
