/* ============ KEYFRAMES ============ */
@keyframes pulse {
  0%   { box-shadow: 0 0 0 0    rgba(196,163,115,.5); }
  70%  { box-shadow: 0 0 0 10px rgba(196,163,115,0); }
  100% { box-shadow: 0 0 0 0    rgba(196,163,115,0); }
}

@keyframes heroBreath {
  0%, 100% { filter: brightness(1) saturate(1); }
  50%       { filter: brightness(1.08) saturate(1.05); }
}

@keyframes lightWander {
  0%   { transform: translate3d(0,0,0)        scale(1)    rotate(0deg); }
  20%  { transform: translate3d(-3.5%,1.5%,0) scale(1.06) rotate(-1.2deg); }
  40%  { transform: translate3d(2.5%,3%,0)    scale(1.12) rotate(.8deg); }
  60%  { transform: translate3d(4%,-1.5%,0)   scale(1.07) rotate(1.4deg); }
  80%  { transform: translate3d(-1.5%,-3%,0)  scale(1.1)  rotate(-.6deg); }
  100% { transform: translate3d(0,0,0)        scale(1)    rotate(0deg); }
}

@keyframes lightCounter {
  0%, 100% { transform: translate3d(0,0,0)    scale(1);    opacity: .7; }
  33%       { transform: translate3d(-6%,-4%,0) scale(1.18); opacity: 1; }
  66%       { transform: translate3d(5%,3%,0)   scale(.92);  opacity: .55; }
}

@keyframes rayShimmer {
  0%, 100% { transform: translateX(-12%) rotate(0deg); opacity: .8; }
  50%       { transform: translateX(10%)  rotate(2deg);  opacity: 1; }
}

@keyframes drop { 0% { top: -100%; } 60%, 100% { top: 100%; } }

@keyframes rise {
  from { opacity: 0; transform: translateY(26px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes sheen {
  0%, 100% { background-position: 0% 0; }
  50%       { background-position: 100% 0; }
}

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

@keyframes dividerPulse {
  0%, 100% { box-shadow: 0 0 10px 2px rgba(168,128,79,.4); }
  50%       { box-shadow: 0 0 20px 5px rgba(168,128,79,.7); }
}

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes drawLine {
  from { width: 0; }
  to   { width: 34px; }
}

/* ============ SCROLL REVEAL ============ */
.reveal    { opacity: 0; transform: translateY(36px); transition: opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1); }
.reveal.in { opacity: 1; transform: none; }

/* Eyebrow line draws in */
.reveal .sec-eyebrow::before     { width: 0; transition: width 1s cubic-bezier(.2,.7,.2,1) .25s; }
.reveal.in .sec-eyebrow::before  { width: 34px; }

/* ============ FANCY EFFECTS ============ */

/* Floating hero button */
.hero-actions .btn-primary { animation: floatSoft 5s ease-in-out 2s infinite; }

/* Glint sweep on buttons */
.btn-primary::after,
.nav-cta::after {
  content: ""; position: absolute; top: 0; left: -80%; width: 55%; height: 100%;
  background: linear-gradient(105deg, transparent, rgba(255,255,255,.5), transparent);
  transform: skewX(-20deg);
  transition: left .75s cubic-bezier(.2,.7,.2,1);
  pointer-events: none;
}
.btn-primary:hover::after,
.nav-cta:hover::after { left: 150%; }

/* Card children sit above pseudo-element overlays */
.way > *,
.art-card > * { position: relative; z-index: 2; }

/* Gold border glow */
.way::after,
.art-card::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px;
  background: linear-gradient(135deg, rgba(196,163,115,.95), transparent 38%, transparent 62%, rgba(196,163,115,.6));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  opacity: 0; transition: opacity .55s ease;
  pointer-events: none; z-index: 3;
}
.way:hover::after,
.art-card:hover::before { opacity: 1; }

/* Glint sweep on cards */
.way .glint,
.art-card .glint {
  position: absolute; top: 0; left: -65%; width: 48%; height: 100%;
  background: linear-gradient(105deg, transparent, rgba(255,255,255,.42), transparent);
  transform: skewX(-18deg); z-index: 4; pointer-events: none;
  transition: left .9s cubic-bezier(.2,.7,.2,1);
}
.way:hover .glint,
.art-card:hover .glint { left: 135%; }

/* Stat numbers & hero year: gold gradient */
.stat .n,
.hero-meta .big {
  background: linear-gradient(180deg, var(--paper) 0%, #dccba8 130%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* ============ REDUCED MOTION ============ */
@media (prefers-reduced-motion: reduce) {
  .hero h1 span { animation: rise 1.1s forwards !important; }
  .hero-media, .hero-media::before, .hero::before, .hero::after { animation: none !important; }
  .hero-actions .btn-primary { animation: none; }
  .way .glint, .art-card .glint, .btn-primary::after, .nav-cta::after { display: none; }
  .lux-divider::after { animation: none; }
  .reveal { opacity: 1; transform: none; transition: none; }
}
