/* ===========================================================
   Zexify Tech — shared stylesheet
   Tokens: teal (brand) / coral (accent) / gold (highlight)
=========================================================== */
:root{
  --teal-900:#0B2E2A;
  --teal-800:#0F3934;
  --teal-700:#124A43;
  --coral-500:#FF6B4A;
  --coral-400:#FF8666;
  --gold-400:#FFC857;
  --cream-50:#FBF9F4;
  --cream-100:#F2F5F1;
  --ink-900:#101614;
  --ink-700:#1B2624;
  --slate-500:#5B6B67;
  --slate-300:#9CACA8;
  --line: rgba(16,22,20,0.10);
  --line-dark: rgba(255,255,255,0.12);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter', sans-serif;
  background:var(--cream-50);
  color:var(--ink-900);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img,svg{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
h1,h2,h3{font-family:'Space Grotesk', sans-serif; letter-spacing:-0.01em;}
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.eyebrow::before{
  content:"";
  width:6px; height:6px; border-radius:50%;
  background:var(--coral-500);
  display:inline-block;
}
.eyebrow.on-dark{color:var(--gold-400);}
.eyebrow.on-light{color:var(--coral-500);}

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  font-weight:600; font-size:14.5px;
  padding:11px 20px; border-radius:8px;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
  font-family:'Inter', sans-serif;
}
.btn-primary{background:var(--coral-500); color:#fff;}
.btn-primary:hover{transform:translateY(-1px); box-shadow:0 10px 24px -8px rgba(255,107,74,0.55);}
.btn-ghost{border-color:var(--line); color:var(--ink-900); background:transparent;}
.btn-ghost:hover{border-color:var(--ink-900);}
.btn-on-dark{border-color:var(--line-dark); color:#fff;}
.btn-on-dark:hover{border-color:#fff;}
.btn-sm{padding:8px 14px; font-size:13.5px;}

/* ---------- HEADER / NAV ---------- */
header.site-header{
  position:sticky; top:0; z-index:60;
  background:rgba(251,249,244,0.9);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
nav.nav-wrap{
  display:flex; align-items:center; justify-content:space-between;
  height:76px; position:relative;
}
.logo{
  font-family:'Space Grotesk', sans-serif;
  font-weight:700;
  font-size:19px;
  display:flex; align-items:center; gap:9px;
}
.logo-mark{
  width:34px; height:34px;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}

/* Bas is section me badlav karna hai */
.logo-mark img{
  width:100%; 
  height:100%; 
  object-fit: cover;   /* contain ko badal kar cover kiya hai */
  border-radius: 50%;  /* Image ko round karne ke liye */
}

.logo-mark svg{width:14px; height:14px;}
/* LOGO PLACEHOLDER: replace .logo-mark contents (svg) with <img src="assets/logo.png" alt="Zexify Tech logo"> once you have your logo file */

.nav-links{display:none; gap:30px; font-size:14.5px; font-weight:500; color:var(--ink-700);}
.nav-links a{position:relative; padding:4px 0;}
.nav-links a:hover, .nav-links a.active{color:var(--ink-900);}
.nav-links a::after{
  content:""; position:absolute; left:0; bottom:0; width:0; height:1.5px;
  background:var(--coral-500); transition:width .25s ease;
}
.nav-links a:hover::after, .nav-links a.active::after{width:100%;}
.nav-cta{display:none;}
.nav-toggle{
  display:flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:8px; border:1px solid var(--line);
  background:transparent; cursor:pointer;
}
.nav-toggle svg{width:18px; height:18px;}
.mobile-menu{
  display:none; flex-direction:column; gap:2px;
  position:absolute; top:76px; left:0; right:0;
  background:var(--cream-50); border-bottom:1px solid var(--line);
  padding:12px 32px 20px;
}
.mobile-menu.open{display:flex;}
.mobile-menu a{padding:12px 0; font-size:15px; font-weight:500; border-bottom:1px solid var(--line);}
.mobile-menu a:last-child{border-bottom:none;}

@media(min-width:900px){
  .nav-links{display:flex;}
  .nav-cta{display:inline-flex;}
  .nav-toggle{display:none;}
}

/* Services dropdown (desktop) */
.has-dropdown{position:relative;}
.dropdown{
  display:none; position:absolute; top:100%; left:-16px; margin-top:14px;
  background:#fff; border:1px solid var(--line); border-radius:12px;
  box-shadow:0 20px 40px -16px rgba(16,22,20,0.18);
  padding:10px; min-width:240px; z-index:70;
}
.has-dropdown:hover .dropdown{display:block;}
.dropdown a{
  display:block; padding:10px 12px; border-radius:8px; font-size:14px; color:var(--ink-700);
}
.dropdown a:hover{background:var(--cream-100); color:var(--ink-900);}
.dropdown a::after{display:none;}

/* ---------- BREADCRUMB / INNER HERO ---------- */
.crumb{
  font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:.04em;
  color:rgba(255,255,255,0.55); display:flex; gap:8px; margin-bottom:22px;
}
.crumb a:hover{color:#fff;}
.inner-hero{
  background:radial-gradient(ellipse 120% 90% at 20% -10%, var(--teal-700), var(--teal-900) 60%);
  color:#fff; padding:64px 0 72px;
}
.inner-hero h1{font-size:clamp(30px,4.6vw,48px); font-weight:700; max-width:720px; margin-bottom:16px;}
.inner-hero p.lead{font-size:16.5px; color:rgba(255,255,255,0.75); max-width:560px; margin-bottom:28px;}
.inner-hero .hero-actions{display:flex; gap:14px; flex-wrap:wrap;}

/* ---------- SECTION shared ---------- */
section{padding:88px 0;}
section.tight{padding:64px 0;}
.section-head{max-width:600px; margin-bottom:52px;}
.section-head h2{font-size:clamp(24px,3.2vw,34px); font-weight:700; margin-top:16px; color:var(--ink-900);}
.section-head p{color:var(--slate-500); font-size:16px; margin-top:14px;}
.alt-bg{background:var(--cream-100);}

/* ---------- HOME HERO map/pin visual ---------- */
.hero{background:radial-gradient(ellipse 120% 90% at 20% -10%, var(--teal-700), var(--teal-900) 60%); color:#fff; overflow:hidden; position:relative;}
.hero .wrap{display:grid; grid-template-columns:1fr; gap:56px; padding-top:88px; padding-bottom:80px;}
@media(min-width:900px){.hero .wrap{grid-template-columns:1.05fr 0.95fr; align-items:center; padding-top:100px; padding-bottom:96px;}}
.hero h1{font-size:clamp(34px, 5.2vw, 52px); line-height:1.06; font-weight:700; margin:20px 0 22px; max-width:640px;}
.hero h1 em{font-style:normal; color:var(--gold-400);}
.hero p.lead{font-size:17.5px; color:rgba(255,255,255,0.78); max-width:480px; margin-bottom:34px;}
.hero-actions{display:flex; flex-wrap:wrap; gap:14px; margin-bottom:44px;}
.hero-stats{display:flex; gap:34px; flex-wrap:wrap;}
.hero-stat b{display:block; font-family:'Space Grotesk',sans-serif; font-size:22px; color:#fff;}
.hero-stat span{font-size:12.5px; color:rgba(255,255,255,0.55); font-family:'IBM Plex Mono', monospace;}

.map-visual{position:relative; aspect-ratio:1/1; max-width:460px; margin:0 auto;}
.map-visual svg{width:100%; height:100%;}
.grid-line{stroke:rgba(255,255,255,0.09); stroke-width:1;}
.road-line{stroke:rgba(255,255,255,0.16); stroke-width:1.4; stroke-dasharray:3 6;}
.block{fill:rgba(255,255,255,0.045); stroke:rgba(255,255,255,0.08); stroke-width:1;}
.storefront{fill:var(--teal-800); stroke:rgba(255,255,255,0.18); stroke-width:1; opacity:0; transform-origin:center; animation:popIn .5s ease forwards;}
.storefront.lit{fill:var(--gold-400); stroke:none;}
.pin-group{animation:pinDrop 1.1s cubic-bezier(.32,1.6,.5,1) forwards;}
.pin-shadow{fill:rgba(0,0,0,0.35); animation:shadowGrow 1.1s ease forwards;}
.ring{fill:none; stroke:var(--coral-400); stroke-width:1.6; transform-origin:center; opacity:0;}
.ring1{animation:ringPulse 2.6s ease-out 1.15s infinite;}
.ring2{animation:ringPulse 2.6s ease-out 2.35s infinite;}
@keyframes pinDrop{0%{transform:translateY(-140px); opacity:0;}55%{opacity:1;}70%{transform:translateY(4px);}85%{transform:translateY(-8px);}100%{transform:translateY(0); opacity:1;}}
@keyframes shadowGrow{0%{opacity:0; transform:scale(0.3);}70%{opacity:0;}100%{opacity:0.35; transform:scale(1);}}
@keyframes ringPulse{0%{opacity:0.55; transform:scale(0.3);}100%{opacity:0; transform:scale(2.6);}}
@keyframes popIn{to{opacity:1; transform:scale(1);} from{transform:scale(0.4);}}
.storefront:nth-of-type(1){animation-delay:1.3s;} .storefront:nth-of-type(2){animation-delay:1.42s;}
.storefront:nth-of-type(3){animation-delay:1.54s;} .storefront:nth-of-type(4){animation-delay:1.66s;}
.storefront:nth-of-type(5){animation-delay:1.78s;} .storefront:nth-of-type(6){animation-delay:1.9s;}
.storefront:nth-of-type(7){animation-delay:2.02s;} .storefront:nth-of-type(8){animation-delay:2.14s;}
@media (prefers-reduced-motion: reduce){.pin-group,.pin-shadow,.storefront,.ring1,.ring2{animation:none !important; opacity:1 !important; transform:none !important;}}

/* ---------- SERVICES GRID (home) ---------- */
.featured-service{
  display:grid; grid-template-columns:1fr; gap:32px; align-items:center;
  background:var(--teal-900); color:#fff; border-radius:20px; padding:48px; margin-bottom:1px;
}
@media(min-width:860px){.featured-service{grid-template-columns:1.1fr 0.9fr; padding:56px;}}
.featured-service .eyebrow{color:var(--gold-400);}
.featured-service h3{font-size:clamp(22px,3vw,30px); font-weight:700; margin:14px 0 14px;}
.featured-service p{color:rgba(255,255,255,0.75); font-size:15.5px; margin-bottom:24px; max-width:460px;}
.featured-visual{
  border:1px solid var(--line-dark); border-radius:14px; background:var(--teal-800);
  padding:22px; font-family:'IBM Plex Mono',monospace; font-size:12.5px; color:var(--slate-300);
}
.browser-bar{display:flex; gap:6px; margin-bottom:16px;}
.browser-dot{width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,0.18);}
.mock-block{height:14px; border-radius:4px; background:rgba(255,255,255,0.08); margin-bottom:10px;}
.mock-block.w60{width:60%;} .mock-block.w80{width:80%;} .mock-block.w40{width:40%;}
.mock-cta{margin-top:16px; display:inline-block; background:var(--coral-500); color:#fff; padding:8px 16px; border-radius:6px; font-family:'Inter',sans-serif; font-weight:600; font-size:12.5px;}

.services-grid{
  display:grid; grid-template-columns:1fr; gap:1px;
  background:var(--line); border:1px solid var(--line); border-radius:16px; overflow:hidden; margin-top:1px;
}
@media(min-width:720px){.services-grid{grid-template-columns:1fr 1fr;}}
@media(min-width:1040px){.services-grid{grid-template-columns:1fr 1fr 1fr;}}
.service-card{background:var(--cream-50); padding:34px 30px; transition:background .25s ease; display:flex; flex-direction:column;}
.service-card:hover{background:#fff;}
.service-icon{width:42px; height:42px; border-radius:10px; background:var(--teal-900); display:flex; align-items:center; justify-content:center; margin-bottom:20px;}
.service-icon svg{width:21px; height:21px; stroke:var(--gold-400);}
.service-card h3{font-size:18px; font-weight:600; margin-bottom:9px;}
.service-card p{font-size:14.3px; color:var(--slate-500); flex-grow:1;}
.service-tag{font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--coral-500); text-transform:uppercase; letter-spacing:0.08em; display:block; margin-bottom:10px;}
.service-link{margin-top:16px; font-size:13.5px; font-weight:600; color:var(--teal-900); display:inline-flex; align-items:center; gap:6px;}
.service-link svg{width:13px; height:13px; transition:transform .2s ease;}
.service-card:hover .service-link svg{transform:translateX(3px);}

/* ---------- FEATURE GRID (service pages) ---------- */
.feature-grid{display:grid; grid-template-columns:1fr; gap:26px;}
@media(min-width:700px){.feature-grid{grid-template-columns:1fr 1fr;}}
.feature-card{border:1px solid var(--line); border-radius:14px; padding:26px; background:#fff;}
.feature-card .service-icon{margin-bottom:16px;}
.feature-card h3{font-size:16.5px; font-weight:600; margin-bottom:8px;}
.feature-card p{font-size:14px; color:var(--slate-500);}

/* ---------- TIMELINE (process pages / how it works) ---------- */
.timeline-section{background:var(--ink-900); color:#fff;}
.timeline{position:relative; padding-left:34px; margin-top:48px;}
.timeline::before{content:""; position:absolute; left:5px; top:6px; bottom:6px; width:1px; background:var(--line-dark);}
.timeline-item{position:relative; padding-bottom:44px;}
.timeline-item:last-child{padding-bottom:0;}
.timeline-dot{position:absolute; left:-34px; top:4px; width:11px; height:11px; border-radius:50%; background:#7C6CF5; box-shadow:0 0 0 4px rgba(124,108,245,0.18);}
.timeline-item .step-label{font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:.1em; color:var(--slate-300); text-transform:uppercase; margin-bottom:8px; display:block;}
.timeline-item h3{font-size:19px; font-weight:600; margin-bottom:8px;}
.timeline-item p{font-size:14.5px; color:rgba(255,255,255,0.65); max-width:520px;}

/* compact timeline used inline on light bg (service pages "How it works") */
.timeline.on-light{color:var(--ink-900);}
.timeline.on-light::before{background:var(--line);}
.timeline.on-light .timeline-dot{background:var(--coral-500); box-shadow:0 0 0 4px rgba(255,107,74,0.14);}
.timeline.on-light .step-label{color:var(--slate-500);}
.timeline.on-light .timeline-item p{color:var(--slate-500);}

/* ---------- FAQ ---------- */
.faq-list{display:flex; flex-direction:column; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:14px; overflow:hidden;}
.faq-item{background:var(--cream-50);}
.faq-item summary{
  list-style:none; cursor:pointer; padding:22px 26px; font-weight:600; font-size:15.5px;
  display:flex; justify-content:space-between; align-items:center; gap:16px;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+"; font-size:20px; color:var(--coral-500); font-weight:400; flex-shrink:0;}
.faq-item[open] summary::after{content:"–";}
.faq-item p{padding:0 26px 22px; font-size:14.3px; color:var(--slate-500); max-width:640px;}

/* ---------- WHO IT'S FOR list ---------- */
.tick-list{display:flex; flex-direction:column; gap:16px;}
.tick-list li{display:flex; gap:12px; font-size:15px; color:var(--ink-700);}
.tick-list svg{flex-shrink:0; width:19px; height:19px; stroke:var(--coral-500); margin-top:2px;}

/* ---------- STATS / WHY US ---------- */
.stat-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:32px;}
@media(min-width:700px){.stat-grid{grid-template-columns:repeat(4,1fr);}}
.stat-card b{font-family:'Space Grotesk',sans-serif; font-size:32px; font-weight:700; color:var(--teal-900); display:block; margin-bottom:6px;}
.stat-card span{font-size:13px; color:var(--slate-500); font-family:'IBM Plex Mono',monospace;}

.value-grid{display:grid; grid-template-columns:1fr; gap:32px;}
@media(min-width:820px){.value-grid{grid-template-columns:repeat(3,1fr);}}
.value-card b.why-num{font-family:'Space Grotesk',sans-serif; font-size:32px; font-weight:700; color:var(--teal-900); display:block; margin-bottom:10px;}
.value-card h3{font-size:16.5px; font-weight:600; margin-bottom:8px;}
.value-card p{font-size:14.3px; color:var(--slate-500);}

/* ---------- GOOGLE / SEO band ---------- */
.gb-band{background:var(--teal-900); color:#fff; border-radius:20px; padding:52px; display:grid; grid-template-columns:1fr; gap:40px; align-items:center;}
@media(min-width:900px){.gb-band{grid-template-columns:1.1fr 0.9fr; padding:60px;}}
.gb-band .eyebrow{color:var(--gold-400);}
.gb-band h2{font-size:clamp(22px,2.8vw,30px); margin:14px 0 14px; font-weight:700;}
.gb-band p{color:rgba(255,255,255,0.75); font-size:15px; margin-bottom:24px; max-width:460px;}
.gb-list{display:flex; flex-direction:column; gap:13px; margin-bottom:26px;}
.gb-list li{display:flex; gap:12px; font-size:14.3px; color:rgba(255,255,255,0.88);}
.gb-list svg{flex-shrink:0; width:18px; height:18px; stroke:var(--gold-400); margin-top:1px;}
.gb-card{background:var(--teal-800); border:1px solid var(--line-dark); border-radius:14px; padding:24px;}
.gb-card-top{display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:16px;}
.gb-card-name{font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:15.5px;}
.gb-badge{font-family:'IBM Plex Mono', monospace; font-size:10.5px; background:rgba(255,200,87,0.15); color:var(--gold-400); padding:3px 8px; border-radius:6px; letter-spacing:0.05em;}
.stars{display:flex; gap:3px; margin-bottom:8px;}
.stars svg{width:14px; height:14px; fill:var(--gold-400);}
.gb-card-sub{font-size:12px; color:rgba(255,255,255,0.55); font-family:'IBM Plex Mono', monospace;}

/* ---------- CTA BAND (legacy, still used if referenced) ---------- */
.cta-band{background:var(--ink-900); color:#fff; border-radius:20px; padding:60px 46px; text-align:center;}
.cta-band h2{font-size:clamp(24px,3.4vw,36px); font-weight:700; margin-bottom:14px;}
.cta-band p{color:rgba(255,255,255,0.65); max-width:460px; margin:0 auto 30px; font-size:15px;}
.cta-actions{display:flex; justify-content:center; gap:14px; flex-wrap:wrap; margin-bottom:36px;}
.contact-row{display:flex; justify-content:center; gap:32px; flex-wrap:wrap; font-family:'IBM Plex Mono', monospace; font-size:13px; color:rgba(255,255,255,0.7); padding-top:28px; border-top:1px solid var(--line-dark);}
.contact-row a:hover{color:#fff;}

/* ---------- LET'S CONNECT band ---------- */
.connect-band{background:var(--ink-900); color:#fff; border-radius:20px; padding:52px;}
@media(min-width:700px){.connect-band{padding:60px;}}
.connect-grid{display:grid; grid-template-columns:1fr; gap:44px;}
@media(min-width:900px){.connect-grid{grid-template-columns:1fr 1fr; gap:56px; align-items:start;}}
.connect-pill{
  display:inline-block; font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--gold-400); border:1px solid var(--line-dark);
  border-radius:999px; padding:7px 16px; margin-bottom:22px;
}
.connect-left h2{font-size:clamp(24px,3.2vw,34px); font-weight:700; margin-bottom:14px; max-width:440px;}
.connect-left .sub{color:rgba(255,255,255,0.62); font-size:15px; max-width:420px; margin-bottom:28px;}
.connect-info{display:flex; flex-direction:column; gap:15px; margin-bottom:30px;}
.connect-info-row{display:flex; align-items:center; gap:12px; font-size:14.5px; color:rgba(255,255,255,0.85);}
.connect-info-row svg{width:18px; height:18px; stroke:var(--gold-400); flex-shrink:0;}
.connect-info-row a:hover{color:#fff;}
.whatsapp-btn{
  display:inline-flex; align-items:center; gap:10px; background:#25D366; color:#fff;
  font-weight:700; padding:13px 22px; border-radius:10px; font-size:14.5px;
  transition:transform .2s ease, box-shadow .2s ease;
}
.whatsapp-btn svg{width:18px; height:18px;}
.whatsapp-btn:hover{transform:translateY(-1px); box-shadow:0 10px 24px -8px rgba(37,211,102,0.5);}

.connect-form{background:rgba(255,255,255,0.045); border:1px solid var(--line-dark); border-radius:16px; padding:28px;}
.form-row{margin-bottom:18px;}
.form-row:last-of-type{margin-bottom:22px;}
.form-row label{
  display:block; font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:.05em;
  text-transform:uppercase; color:rgba(255,255,255,0.55); margin-bottom:8px;
}
.form-row input, .form-row select, .form-row textarea{
  width:100%; background:rgba(255,255,255,0.05); border:1px solid var(--line-dark);
  border-radius:8px; padding:12px 14px; color:#fff; font-family:'Inter',sans-serif; font-size:14.5px;
}
.form-row input::placeholder, .form-row textarea::placeholder{color:rgba(255,255,255,0.32);}
.form-row input:focus, .form-row select:focus, .form-row textarea:focus{outline:none; border-color:var(--coral-500);}
.form-row select option{background:var(--ink-900); color:#fff;}
.form-row textarea{min-height:96px; resize:vertical; font-family:'Inter',sans-serif;}
.form-submit{
  width:100%; border:none; cursor:pointer; color:#fff; font-weight:700; font-size:15px;
  padding:14px; border-radius:8px; background:linear-gradient(90deg, var(--teal-700), var(--coral-500));
  transition:opacity .2s ease, transform .2s ease; font-family:'Inter',sans-serif;
}
.form-submit:hover{opacity:0.92; transform:translateY(-1px);}


/* ---------- FOOTER ---------- */
footer.site-footer{background:var(--teal-900); color:rgba(255,255,255,0.75); padding-top:64px;}
.footer-grid{display:grid; grid-template-columns:1fr; gap:40px; padding-bottom:44px; border-bottom:1px solid var(--line-dark);}
@media(min-width:800px){.footer-grid{grid-template-columns:1.3fr 1fr 1fr 1fr;}}
.footer-brand .logo{color:#fff; margin-bottom:14px;}
.footer-brand p{font-size:14px; color:rgba(255,255,255,0.55); max-width:280px; margin-bottom:20px;}
.footer-social{display:flex; gap:10px;}
.footer-social a{width:36px; height:36px; border-radius:8px; border:1px solid var(--line-dark); display:flex; align-items:center; justify-content:center; transition:border-color .2s ease, background .2s ease;}
.footer-social a:hover{border-color:#fff; background:rgba(255,255,255,0.06);}
.footer-social svg{width:16px; height:16px; stroke:#fff;}
.footer-col h4{font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-400); margin-bottom:18px;}
.footer-col a{display:block; font-size:14px; color:rgba(255,255,255,0.68); margin-bottom:12px;}
.footer-col a:hover{color:#fff;}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; padding:24px 0; font-size:12.5px; color:rgba(255,255,255,0.45); font-family:'IBM Plex Mono',monospace;}

/* ---------- reveal on scroll ---------- */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:translateY(0);}
@media (prefers-reduced-motion: reduce){.reveal{opacity:1; transform:none; transition:none;}}
