
:root{
  /* Color palette with WCAG AA compliant contrast ratios */
  --navy:#0B1C2D;      /* Primary dark - 13.2:1 on white */
  --navy2:#071422;     /* Darker variant - 15.1:1 on white */
  --gold:#C9A24D;      /* Accent gold - 4.6:1 on navy */
  --silver:#D1D7DD;    /* Light gray - 9.4:1 on navy */
  --ink:#111418;       /* Text black - 16.7:1 on white */
  --muted:#5b6773;     /* Muted text - 7.4:1 on white */
  --soft:#F4F6F8;      /* Soft background */
  --white:#FFFFFF;     /* Pure white */
  --radius:18px;
  --shadow: 0 12px 30px rgba(0,0,0,.10);
  --shadow2: 0 10px 20px rgba(0,0,0,.08);
}

/* Utility: visually-hidden (screen-reader only) */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Skip link for keyboard navigation */
.skip-link{
  position:absolute;
  top:-40px;
  left:0;
  background:var(--navy);
  color:var(--white);
  padding:12px 20px;
  text-decoration:none;
  font-weight:700;
  font-size:14px;
  z-index:100;
  border-radius:0 0 8px 0;
  transition:top 0.2s ease;
}
.skip-link:focus{
  top:0;
  outline:3px solid var(--gold);
  outline-offset:2px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:hidden}

/* Mobile performance optimization: disable smooth scroll on mobile */
@media (max-width: 768px) {
  html{scroll-behavior:auto}
}

body{
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-display: swap;
  /* Font metric overrides to reduce CLS */
  size-adjust: 100%;
  ascent-override: 90%;
  descent-override: 22%;
  line-gap-override: 0%;
  color:var(--ink);
  background:var(--white);
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  /* Mobile performance: use GPU acceleration sparingly */
  -webkit-transform:translateZ(0);
  transform:translateZ(0);
}

a{color:inherit;text-decoration:none}

/* Focus indicators for keyboard navigation */
a:focus-visible, button:focus-visible{
  outline:3px solid var(--gold);
  outline-offset:3px;
  border-radius:4px;
}
.btn:focus-visible{
  outline:3px solid var(--gold);
  outline-offset:4px;
}
.nav a:focus-visible{
  outline:2px solid var(--navy);
  outline-offset:2px;
}

img{max-width:100%;height:auto;display:block}
.container{max-width:1180px;margin:0 auto;padding:0 20px;width:100%}

/* HEADER (below hero; sticky) */
.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(255,255,255,.85);
  backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid rgba(209,215,221,.75);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px 0;
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
}
.brand img{height:40px;width:auto}
.brand .brand-text{
  display:flex;flex-direction:column;line-height:1.1
}
.brand .brand-text strong{font-size:14px;letter-spacing:.6px;color:var(--navy)}
.brand .brand-text span{font-size:12px;color:var(--muted)}

.nav{
  display:flex;align-items:center;gap:22px;
}
.nav a{
  text-decoration:none;
  color:var(--ink);
  font-weight:600;
  font-size:14px;
  opacity:.86;
}
.nav a:hover{opacity:1;color:var(--navy)}
.nav .cta{
  padding:10px 14px;
  border-radius:999px;
  background:var(--navy);
  color:var(--white);
  box-shadow:var(--shadow2);
  position:relative;
  overflow:hidden;
}
.nav .cta:hover{background:var(--navy2);color:var(--white)}

/* Header CTA sparkle sweep */
.nav .cta.sparkle::after{
  content:"";
  position:absolute;top:-20%;bottom:-20%;left:-40%;width:60%;
  background:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.7) 50%, rgba(255,255,255,0) 100%);
  filter:blur(2px);
  will-change:transform, opacity;
  pointer-events:none;
  transform:translateX(-60%) skewX(-12deg);
  animation:sparkleSweep .7s ease-out forwards;
}

/* HERO (top) */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:center;
  overflow:hidden;
  color:var(--white);
  width:100%;
  /* layered overlays above the background image (reduced opacity so image is visible) */
  background-image:
    radial-gradient(1200px 700px at 20% 30%, rgba(201,162,77,.10), transparent 55%),
    radial-gradient(900px 600px at 80% 20%, rgba(209,215,221,.06), transparent 55%),
    linear-gradient(120deg, rgba(11,28,45,.45), rgba(7,20,34,.35)),
    url("../images/hero-bg.webp");
  background-position: center center, center center, center center, center center;
  background-size: cover, cover, cover, cover;
  background-repeat: no-repeat, no-repeat, no-repeat, no-repeat;
  background-blend-mode: multiply;
}
.hero::after{
  content:"";
  position:absolute;inset:-30%;
  background:radial-gradient(circle at 20% 30%, rgba(201,162,77,.12), transparent 40%);
  transform:translateZ(0);
  pointer-events:none;
}
.hero.burst::after{animation:heroGlow 1.2s cubic-bezier(0.25, 0.85, 0.3, 1) forwards}

/* Hero glow burst on load */
@keyframes heroGlow{
  0%{opacity:0;filter:brightness(0.9);transform:scale(0.95)}
  45%{opacity:1;filter:brightness(1.08);transform:scale(1.06)}
  100%{opacity:0.85;filter:brightness(1);transform:scale(1)}
}
.hero-inner{position:relative;padding:0 0 80px}

/* Layout: logo on top, centered text below */
.hero-inner{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:0;text-align:center}
.hero-logo{flex:0 0 auto;display:flex;align-items:center;justify-content:center}
.hero-logo img{max-width:clamp(320px,45vw,500px);height:auto;display:block}
.hero-copy{flex:0 0 auto;text-align:center;max-width:740px}
.hero-copy .hero-actions{justify-content:center}

/* Mobile menu toggle */
.menu-toggle{display:none;background:transparent;border:none;color:var(--navy);cursor:pointer;font-size:16px}
.menu-toggle svg{display:block}

/* Mobile: show toggle and use a slide-down nav when open */
@media(max-width:980px){
  .menu-toggle{display:inline-flex;align-items:center;gap:10px}
  .nav{display:none}
  .nav{
    display:none;opacity:0;transform:translateY(-8px);transition:opacity .28s ease, transform .28s ease;
  }
  .nav.open{display:flex;flex-direction:column;position:fixed;inset:64px 18px auto 18px;padding:18px;border-radius:12px;background:var(--white);box-shadow:0 18px 40px rgba(0,0,0,.18);z-index:150;opacity:1;transform:translateY(0)}
  .nav.open a{padding:10px 6px;border-bottom:1px solid rgba(209,215,221,.9)}
  .nav.open a:last-child{border-bottom:none}
  .nav-close{display:none}
  .nav.open .nav-close{display:inline-flex;position:absolute;top:10px;right:12px;background:transparent;border:none;font-size:28px;color:var(--navy);cursor:pointer}
}

@media (prefers-reduced-motion: reduce){
  .nav, .nav.open{transition:none}
}

.eyebrow{
  display:inline-flex;gap:10px;align-items:center;
  padding:8px 12px;
  border:1px solid rgba(209,215,221,.35);
  border-radius:999px;
  font-size:13px;
  color:rgba(255,255,255,.85);
  background:rgba(255,255,255,.06);
}
.dot{width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 18px rgba(201,162,77,.6)}
.hero h1{
  margin-top:18px;
  font-size:52px;
  line-height:1.08;
  letter-spacing:-.8px;
  max-width:860px;
}
.hero p{
  margin-top:18px;
  max-width:680px;
  font-size:18px;
  color:rgba(209,215,221,.92);
}
.hero-actions{margin-top:30px;display:flex;gap:14px;flex-wrap:wrap}
.btn{
  border:none;
  cursor:pointer;
  font-weight:700;
  border-radius:999px;
  padding:14px 20px;
  font-size:14px;
  letter-spacing:.2px;
  transition:transform .2s cubic-bezier(0.34,1.56,0.64,1), box-shadow .2s ease, background .2s ease, color .2s ease;
}
.btn-primary{
  background:var(--gold);
  color:var(--navy2);
  box-shadow:0 10px 22px rgba(201,162,77,.25);
}
.btn-primary:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 16px 32px rgba(201,162,77,.35), 0 0 20px rgba(201,162,77,.15)}
.btn-ghost{
  background:rgba(255,255,255,.06);
  color:var(--white);
  border:1px solid rgba(209,215,221,.35);
  position:relative;
  overflow:hidden;
}
.btn-ghost:hover{transform:translateY(-2px) scale(1.02);background:rgba(255,255,255,.12);border-color:rgba(209,215,221,.5)}

/* Hero ghost button sparkle */
.btn-ghost.sparkle::after{
  content:"";
  position:absolute;top:-20%;bottom:-20%;left:-40%;width:60%;
  background:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.7) 50%, rgba(255,255,255,0) 100%);
  filter:blur(2px);
  will-change:transform, opacity;
  pointer-events:none;
  transform:translateX(-60%) skewX(-12deg);
  animation:sparkleSweep .9s ease-out forwards;
}

/* CTA sparkle trail (layout-safe) */
@keyframes sparkleSweep{
  0%{opacity:0;transform:translateX(-60%) skewX(-12deg)}
  35%{opacity:.85}
  100%{opacity:0;transform:translateX(140%) skewX(-12deg)}
}
.btn-primary{position:relative;overflow:hidden}
.btn-primary.sparkle::after{
  content:"";
  position:absolute;top:-20%;bottom:-20%;left:-40%;width:60%;
  background:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.7) 50%, rgba(255,255,255,0) 100%);
  filter:blur(2px);
  will-change:transform, opacity;
  pointer-events:none;
  transform:translateX(-60%) skewX(-12deg);
  animation:sparkleSweep .9s ease-out forwards;
}

@media (max-width:900px){
  .hero-inner{padding:80px 0}
  .hero-logo img{max-width:340px}
  .hero h1{font-size:40px}
}

@media (max-width:640px){
  .hero-inner{padding:100px 0 40px}
  .hero h1{font-size:32px;line-height:1.15;word-wrap:break-word}
  .hero p{font-size:16px}
  .hero-logo img{max-width:260px}
  .eyebrow{font-size:12px;padding:6px 10px}
  .hero-actions{flex-direction:column;width:100%;gap:10px}
  .hero-actions .btn{width:100%;text-align:center;justify-content:center}
  .hero-metrics{gap:12px;margin-top:32px}
  .metric{padding:12px;word-wrap:break-word}
}

@media (max-width:480px){
  .hero h1{font-size:28px}
  .hero p{font-size:15px}
  .hero-logo img{max-width:160px}
  .container{padding:0 16px}
}

.hero-metrics{
  margin-top:44px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  max-width:760px;
}
.metric{
  border:1px solid rgba(209,215,221,.22);
  background:rgba(255,255,255,.05);
  border-radius:var(--radius);
  padding:16px 16px 14px;
}
.metric strong{display:block;font-size:18px}
.metric span{display:block;font-size:13px;color:rgba(209,215,221,.88)}

/* Sections */
.section{padding:88px 0}
.section.soft{background:var(--soft)}
.section-title{display:flex;flex-direction:column;gap:10px;max-width:760px}
.section-title h2{font-size:34px;letter-spacing:-.4px;color:var(--navy)}
.section-title p{color:var(--muted)}
.kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--gold);
  font-weight:800;
  letter-spacing:.8px;
  text-transform:uppercase;
  font-size:12px;
}
.rule{height:1px;background:linear-gradient(90deg, rgba(201,162,77,.9), rgba(209,215,221,.3), transparent);flex:1}

/* About grid */
.about-grid{
  margin-top:42px;
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:34px;
  align-items:center;
}
.about-copy{
  display:flex;flex-direction:column;gap:14px
}
.about-copy ul{margin-left:18px;color:var(--muted)}
.about-card{
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow);
  border:1px solid rgba(209,215,221,.7);
  background:var(--white);
}
.about-card img{width:100%;height:auto;display:block}.about-card video{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;border-radius:14px;border:1px solid rgba(209,215,221,.7)}.about-card .cap{padding:14px 16px;font-size:13px;color:var(--muted)}

/* Services cards */
.cards{
  margin-top:42px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
}
.card{
  border:1px solid rgba(209,215,221,.8);
  border-radius:var(--radius);
  padding:22px;
  background:var(--white);
  box-shadow: 0 8px 18px rgba(0,0,0,.05);
  transition:transform .25s cubic-bezier(0.34,1.56,0.64,1), box-shadow .25s ease, border-color .25s ease;
}
.card:hover{transform:translateY(-4px);box-shadow:0 20px 40px rgba(0,0,0,.12), 0 0 25px rgba(201,162,77,.06);border-color:rgba(201,162,77,.3)}
.card img{
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover;
  display:block;
  border-radius:14px;
  border:1px solid rgba(209,215,221,.7);
}
.card h3{margin-top:16px;color:var(--navy);font-size:18px}
.card h3 a{
  color:inherit;
  text-decoration:none;
  border-bottom:2px solid transparent;
  transition:border-color 0.2s ease, color 0.2s ease;
}
.card h3 a:hover{
  border-bottom-color:var(--navy);
  color:var(--gold);
}
.card p{margin-top:8px;color:var(--muted);font-size:14px}

/* Card Link Styles */
.card-link{
  color:inherit;
  text-decoration:none;
  display:inline-block;
  border-bottom:2px solid transparent;
  transition:border-color 0.2s ease, opacity 0.2s ease;
}
.card-link:hover{
  border-bottom-color:var(--gold);
}

/* Projects / Case Studies */
#projects{
  background:#000;
}
.section.soft#projects .section-title .kicker span,
.section.soft#projects .section-title h2,
.section.soft#projects .section-title p{
  color:rgba(209,215,221,.95);
}
.section.soft#projects .section-title .rule{background:rgba(209,215,221,.12)}
.case-grid{margin-top:30px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.case-card{background:rgba(255,255,255,.04);border-radius:16px;padding:0;border:1px solid rgba(209,215,221,.08);overflow:hidden;display:flex;flex-direction:column}
.case-card .case-thumb{width:100%;height:200px;object-fit:cover;display:block;margin-bottom:0;box-shadow:0 0 40px rgba(201,162,77,.8),0 0 60px rgba(201,162,77,.5),inset 0 0 25px rgba(201,162,77,.3)}
.case-card h3{color:var(--white);margin-bottom:10px;font-size:18px;padding:18px 18px 0 18px}
.case-card p{padding:0 18px;color:rgba(209,215,221,.9);font-size:14px;margin-bottom:8px}
.case-card p:first-of-type{padding-top:0}
.case-card .meta{color:var(--gold);font-size:13px;margin-bottom:8px;padding:18px 18px 0 18px}
.case-card .meta:first-child{padding-top:18px}
.case-card .outcome{font-weight:700;color:var(--white);padding-bottom:18px}

@media(max-width:980px){
  .case-grid{grid-template-columns:1fr}
}

@media(max-width:640px){
  .case-grid{gap:16px;margin-top:24px}
  .case-card h3{font-size:16px;padding:14px 14px 0 14px}
  .case-card p{font-size:13px;padding:0 14px}
  .case-card .meta{font-size:12px;padding:14px 14px 0 14px}
}

/* Contact */
.contact-wrap{
  margin-top:42px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px;
}
.contact-panel{
  border-radius:var(--radius);
  border:1px solid rgba(209,215,221,.85);
  background:var(--white);
  padding:22px;
  box-shadow:var(--shadow2);
}
.field{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
label{font-weight:700;font-size:13px;color:var(--navy)}
input, textarea{
  border:1px solid rgba(209,215,221,.95);
  border-radius:14px;
  padding:14px 14px;
  font-size:14px;
  outline:none;
}
input:focus, textarea:focus{border-color:rgba(201,162,77,.9); box-shadow:0 0 0 4px rgba(201,162,77,.18)}
textarea{min-height:120px;resize:vertical}
.helper{font-size:13px;color:var(--muted)}
.small-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:10px}
.badge{
  display:inline-flex;align-items:center;gap:10px;
  padding:10px 12px;border-radius:999px;
  background:var(--soft);border:1px solid rgba(209,215,221,.8);
  font-size:13px;color:var(--muted)
}

/* Footer */
.footer{
  background:var(--navy2);
  color:rgba(209,215,221,.92);
  padding:54px 0;
  border-top:1px solid rgba(201,162,77,.25);
}
@media (max-width:768px){
  .footer{padding:40px 0}
}
@media (max-width:480px){
  .footer{padding:32px 0}
}
.footer-top{display:flex;justify-content:center;align-items:center;gap:50px;flex-wrap:wrap;text-align:center}
.footer-brand{display:flex;align-items:center;gap:18px}
.footer-logo{height:46px;width:auto;display:block}
.footer-links{display:flex;flex-direction:column;align-items:center;gap:14px}
.footer-links .links{display:flex;gap:16px;font-weight:600;align-items:center}
.footer-links .links a{position:relative;padding:0 8px;overflow:hidden}
.footer-links .links a:not(:last-child)::after{content:"";position:absolute;right:-8px;width:1px;height:14px;background:rgba(209,215,221,.4)}
.footer .links a.sparkle::after{
  content:"";
  position:absolute;top:-20%;bottom:-20%;left:-40%;width:60%;
  background:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.7) 50%, rgba(255,255,255,0) 100%);
  filter:blur(2px);
  will-change:transform, opacity;
  pointer-events:none;
  transform:translateX(-60%) skewX(-12deg);
  animation:sparkleSweep .7s ease-out forwards;
}
.social{display:flex;gap:12px;align-items:center}
.social a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:transparent;border:1px solid rgba(255,255,255,.06);color:var(--gold);text-decoration:none;transition:transform .12s ease, background .12s ease, color .12s ease, box-shadow .12s ease;box-shadow:0 0 0 2px rgba(255,255,255,.95) inset, 0 0 0 2px rgba(255,255,255,.95)}
.social a svg{width:22px;height:22px}
.social a:hover{transform:translateY(-2px)}
.social a:focus{outline:none;box-shadow:0 0 0 3px rgba(201,162,77,.6)}
/* Brand colors */
.social a.facebook{background:#1877F2;color:#ffffff;border-color:transparent}
.social a.youtube{background:#FF0000;color:#ffffff;border-color:transparent}
.social a.twitter{background:#1DA1F2;color:#ffffff;border-color:transparent}
.social a.instagram{background:linear-gradient(45deg,#f58529,#dd2a7b,#8134af,#515bd4);color:#ffffff;border-color:transparent}
.social a.linkedin{background:#0A66C2;color:#ffffff;border-color:transparent}
.social a.tiktok{background:#000000;color:#ffffff;border-color:transparent}
@media (max-width:768px){
  .footer-top{flex-direction:column;gap:28px;padding:0 8px}
  .footer-brand{flex-direction:column;text-align:center;justify-content:center}
  .footer-links{flex-direction:column;align-items:center;gap:16px}
  .footer-links .links{gap:14px}
}

@media (max-width:640px){
  .footer-links .links{flex-wrap:wrap;justify-content:center;gap:10px}
  .footer-links .links a{padding:6px 10px;font-size:14px;min-height:44px;display:flex;align-items:center}
  .footer-links .links a:not(:last-child)::after{display:none}
}
@media (max-width:480px){
  .footer-logo{height:36px}
  .social a{width:38px;height:38px}
  .social a svg{width:18px;height:18px}
}
.footer small{color:rgba(209,215,221,.75);font-size:13px}
.footer a{color:rgba(209,215,221,.92);text-decoration:none;transition:color .15s ease, border-bottom-color .15s ease}
.footer-links .links a:hover{color:var(--gold);border-bottom:2px solid var(--gold);padding-bottom:2px}
.footer a:focus{outline:none;color:var(--gold)}
.footer-top a:focus-visible{outline:2px solid var(--gold);outline-offset:4px}

/* Reveal on scroll */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .55s ease, transform .55s ease}
.reveal.show{opacity:1;transform:translateY(0);animation:explodeIn .7s cubic-bezier(0.34,1.56,0.64,1) both}

/* Back to Top Button */
.back-to-top{
  position:fixed;
  left:22px;
  bottom:22px;
  height:46px;
  padding:0 14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:var(--navy);
  color:var(--white);
  border:1px solid rgba(209,215,221,.35);
  box-shadow:var(--shadow2);
  font-weight:700;
  font-size:13px;
  cursor:pointer;
  opacity:1;
  visibility:visible;
  transform:none;
  transition:background .2s ease;
  z-index:60;
}
.back-to-top:hover{background:var(--navy2)}
.back-to-top:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.back-to-top.show{opacity:1;visibility:visible;transform:none}

@media (max-width: 480px){
  body{padding-bottom:70px}
  .back-to-top{left:16px;bottom:16px;height:42px;padding:0 12px;font-size:12px}
}

/* Explosive but layout-safe entrance */
@keyframes explodeIn{
  0%{opacity:0;transform:scale(0.92) translateY(16px)}
  60%{opacity:1;transform:scale(1.08) translateY(-6px)}
  100%{opacity:1;transform:scale(1) translateY(0)}
}

/* Case thumbnail pop when card reveals */
.case-card.reveal.show .case-thumb{transform-origin:center;animation:thumbPop .7s cubic-bezier(0.34,1.56,0.64,1) both}
@keyframes thumbPop{
  0%{transform:scale(0.96);filter:brightness(0.96)}
  50%{transform:scale(1.06);filter:brightness(1.08)}
  100%{transform:scale(1);filter:brightness(1)}
}

/* Scripture Rotator */
#scriptureRotator{transition:opacity 0.6s ease-in-out}
#scriptureRotator.fade-out{opacity:0}
#scriptureRotator.fade-in{opacity:1}
#scriptureReference{transition:opacity 0.6s ease-in-out}
#scriptureReference.fade-out{opacity:0}
#scriptureReference.fade-in{opacity:1}

/* Hero Logo Animation */
@keyframes logoBounce{
  0%{opacity:0;transform:scale(0.78) translateY(24px)}
  50%{opacity:1;transform:scale(1.10) translateY(-10px)}
  100%{opacity:1;transform:scale(1) translateY(0)}
}
.hero-logo.animate{
  animation:logoBounce 1.0s cubic-bezier(0.34,1.56,0.64,1) forwards
}

/* Staggered Hero Animations */
.hero-anim-1{animation-delay:0.2s}
.hero-anim-2{animation-delay:0.35s}
.hero-anim-3{animation-delay:0.5s}
.hero-anim-4{animation-delay:0.65s}
.hero-anim-5{animation-delay:0.8s}

/* Header Slide In */
@keyframes slideDown{
  from{opacity:0;transform:translateY(-20px)}
  to{opacity:1;transform:translateY(0)}
}
.site-header{
  animation:slideDown 0.6s ease-out forwards
}

/* Pulse Dot Animation */
@keyframes pulseDot{
  0%, 100%{box-shadow:0 0 18px rgba(201,162,77,.6)}
  50%{box-shadow:0 0 28px rgba(201,162,77,.9), 0 0 12px rgba(201,162,77,.4)}
}
.pulse-dot{
  animation:pulseDot 2s ease-in-out infinite
}

/* Button Pulse on Primary CTA */
@keyframes subtlePulse{
  0%, 100%{box-shadow:0 10px 22px rgba(201,162,77,.25)}
  50%{box-shadow:0 10px 22px rgba(201,162,77,.35), 0 0 20px rgba(201,162,77,.2)}
}
.btn-pulse{
  animation:subtlePulse 2.5s ease-in-out infinite
}
.btn-pulse:hover{
  animation:none
}

/* Enhanced Card Hover with Glow */
@keyframes cardGlow{
  from{box-shadow:0 8px 18px rgba(0,0,0,.05)}
  to{box-shadow:0 18px 34px rgba(0,0,0,.10), 0 0 30px rgba(201,162,77,.08)}
}
.card:hover{
  animation:cardGlow 0.3s ease forwards
}

/* Badge Subtle Animation */
.badge{
  transition:transform 0.2s ease, box-shadow 0.2s ease
}
.badge:hover{
  transform:translateY(-1px);
  box-shadow:0 4px 12px rgba(201,162,77,.15)
}

/* Responsive */
@media(max-width:980px){
  .hero h1{font-size:40px}
  .hero-metrics{grid-template-columns:1fr;max-width:520px}
  .about-grid{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr}
  .contact-wrap{grid-template-columns:1fr}
  .nav{display:none}
}

@media(max-width:640px){
  .section{padding:48px 0}
  .section-title h2{font-size:28px}
  .section-title p{font-size:15px}
  .card{padding:18px}
  .card h3{font-size:17px}
  .card p{font-size:13px}
  .btn{padding:12px 18px;font-size:13px;min-height:44px}
  .badge{padding:8px 10px;font-size:12px}
  .about-card{padding:18px}
  .contact-panel{padding:18px}
}

@media(max-width:480px){
  .section{padding:40px 0}
  .section-title h2{font-size:24px;line-height:1.2}
  .section-title p{font-size:14px}
  .kicker span{font-size:11px}
  .cards{gap:16px}
  .card{padding:16px}
  .contact-wrap{gap:16px}
}

/* Accessibility: reduce motion when requested */
@media (prefers-reduced-motion: reduce){
  .site-header,
  .hero-logo.animate,
  .reveal,
  .reveal.show,
  .pulse-dot,
  .btn-pulse,
  .card:hover,
  .case-card.reveal.show .case-thumb,
  .back-to-top{
    animation:none !important;
    transition:none !important;
  }
}
/* Mobile performance: reduce animations and effects */
@media (max-width: 768px) {
  /* Disable expensive backdrop blur on mobile */
  .site-header{
    backdrop-filter:none;
    background:rgba(255,255,255,.95);
  }
  
  /* Reduce shadow complexity on mobile */
  .card:hover{
    box-shadow:0 8px 18px rgba(0,0,0,.08);
  }
}