/* ============================================================
   CORTECH — Design. Develop. Deliver.
   ============================================================ */

:root{
  --navy:      #0D1117;
  --navy-2:    #0f151d;
  --navy-3:    #131b26;
  --blue:      #2563EB;
  --blue-lt:   #4f83ff;
  --cyan:      #06B6D4;
  --slate:     #6B7280;
  --light:     #F3F4F6;
  --white:     #ffffff;

  --ink:       #e8ecf3;
  --ink-dim:   #9aa6b8;
  --line:      rgba(255,255,255,0.08);
  --card:      rgba(255,255,255,0.028);
  --card-hi:   rgba(255,255,255,0.05);

  --grad:      linear-gradient(105deg, var(--blue) 0%, var(--cyan) 100%);
  --grad-soft: linear-gradient(105deg, #4f83ff 0%, #22d3ee 100%);

  --font:  'Inter', system-ui, 'Segoe UI', sans-serif;
  --disp:  'Space Grotesk', var(--font);
  --mono:  'JetBrains Mono', ui-monospace, monospace;

  --maxw: 1180px;
  --ease: cubic-bezier(.16,.84,.44,1);
  --radius: 20px;
}

/* ---- LIGHT THEME ---- */
:root[data-theme="light"]{
  --navy:      #f4f6fb;
  --navy-2:    #eef1f8;
  --navy-3:    #e6ebf4;
  --ink:       #0D1117;
  --ink-dim:   #4a5568;
  --line:      rgba(13,17,23,0.10);
  --card:      rgba(13,17,23,0.02);
  --card-hi:   rgba(13,17,23,0.045);
}

*{ margin:0; padding:0; box-sizing:border-box; }

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  font-family:var(--font);
  background:var(--navy);
  color:var(--ink);
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* subtle noise + vignette */
body::before{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:1;
  background:radial-gradient(120% 80% at 50% -10%, rgba(37,99,235,0.10), transparent 60%);
}

a{ color:inherit; text-decoration:none; }
img,svg{ display:block; max-width:100%; }
ul{ list-style:none; }

.container{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:clamp(20px,5vw,40px); position:relative; z-index:2; }

.grad{
  background:var(--grad-soft);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
}

/* ============================================================
   SCROLL PROGRESS + CURSOR
   ============================================================ */
.scroll-progress{
  position:fixed; top:0; left:0; height:3px; width:0%;
  background:var(--grad); z-index:1000; box-shadow:0 0 14px rgba(37,99,235,.6);
}

.cursor-dot,.cursor-ring{ position:fixed; top:0; left:0; z-index:9999; pointer-events:none; border-radius:50%; mix-blend-mode:difference; }
.cursor-dot{ width:7px; height:7px; background:#fff; transform:translate(-50%,-50%); }
.cursor-ring{ width:34px; height:34px; border:1.5px solid rgba(255,255,255,.6); transform:translate(-50%,-50%); transition:width .25s var(--ease), height .25s var(--ease), background .25s; }
.cursor-ring.is-hover{ width:56px; height:56px; background:rgba(255,255,255,.08); }
@media (hover:none),(max-width:900px){ .cursor-dot,.cursor-ring{ display:none; } }

/* ============================================================
   PRELOADER
   ============================================================ */
.preloader{
  position:fixed; inset:0; z-index:2000; background:#0D1117;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:26px;
  transition:opacity .6s ease, visibility .6s ease;
}
.preloader.done{ opacity:0; visibility:hidden; }
.preloader__logo svg{ animation:spinHex 2.4s var(--ease) infinite; }
.pre-c{ animation:pulseC 1.4s ease-in-out infinite; }
@keyframes spinHex{ 0%{transform:rotate(0) scale(1);} 50%{transform:rotate(180deg) scale(1.08);} 100%{transform:rotate(360deg) scale(1);} }
@keyframes pulseC{ 0%,100%{opacity:1;} 50%{opacity:.35;} }

/* ============================================================
   NAV
   ============================================================ */
.nav{ position:fixed; top:0; left:0; right:0; z-index:900; transition:all .4s var(--ease); }
.nav__inner{
  max-width:var(--maxw); margin-inline:auto; padding:18px clamp(20px,5vw,40px);
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.nav.scrolled{ backdrop-filter:blur(18px); background:rgba(13,17,23,.72); border-bottom:1px solid var(--line); }
.nav.scrolled .nav__inner{ padding-block:12px; }

.nav__brand{ display:flex; align-items:center; gap:12px; }
.nav__logo{ width:38px; height:38px; }
.nav__name{ font-family:var(--disp); font-weight:700; letter-spacing:.22em; font-size:1.05rem; }

.nav__links{ display:flex; align-items:center; gap:34px; }
.nav__links a{ font-size:.92rem; font-weight:500; color:var(--ink-dim); position:relative; transition:color .3s; }
.nav__links a:not(.nav__cta)::after{ content:""; position:absolute; left:0; bottom:-6px; height:2px; width:0; background:var(--grad); transition:width .3s var(--ease); }
.nav__links a:not(.nav__cta):hover{ color:var(--white); }
.nav__links a:not(.nav__cta):hover::after{ width:100%; }
.nav__cta{ background:var(--grad); color:#fff !important; padding:10px 20px; border-radius:100px; font-weight:600; box-shadow:0 8px 24px rgba(37,99,235,.32); transition:transform .3s var(--ease), box-shadow .3s; }
.nav__cta:hover{ transform:translateY(-2px); box-shadow:0 12px 30px rgba(37,99,235,.45); }

.nav__right{ display:flex; align-items:center; gap:10px; }
.theme-toggle{
  display:grid; place-items:center; width:42px; height:42px; border-radius:12px; cursor:pointer;
  background:var(--card); border:1px solid var(--line); color:var(--ink); transition:background .3s, border-color .3s, transform .3s var(--ease);
}
.theme-toggle:hover{ background:var(--card-hi); border-color:rgba(127,127,127,.3); transform:translateY(-2px); }
.theme-toggle svg{ fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.theme-toggle .icon-moon{ display:none; }
:root[data-theme="light"] .theme-toggle .icon-sun{ display:none; }
:root[data-theme="light"] .theme-toggle .icon-moon{ display:block; }

.nav__toggle{ display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:6px; }
.nav__toggle span{ width:26px; height:2px; background:#fff; border-radius:2px; transition:.35s var(--ease); }
.nav__toggle.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav__toggle.open span:nth-child(2){ opacity:0; }
.nav__toggle.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ============================================================
   HERO
   ============================================================ */
.hero{ position:relative; min-height:100svh; display:flex; align-items:center; overflow:hidden; padding-top:90px; }
.hero__bg{ position:absolute; inset:0; z-index:0; }
#heroCanvas{ position:absolute; inset:0; width:100%; height:100%; }

.orb{ position:absolute; border-radius:50%; filter:blur(90px); opacity:.5; }
.orb--blue{ width:520px; height:520px; background:radial-gradient(circle, rgba(37,99,235,.55), transparent 70%); top:-120px; right:-80px; animation:float1 14s ease-in-out infinite; }
.orb--cyan{ width:460px; height:460px; background:radial-gradient(circle, rgba(6,182,212,.42), transparent 70%); bottom:-140px; left:-100px; animation:float2 18s ease-in-out infinite; }
@keyframes float1{ 0%,100%{ transform:translate(0,0);} 50%{ transform:translate(-40px,40px);} }
@keyframes float2{ 0%,100%{ transform:translate(0,0);} 50%{ transform:translate(50px,-30px);} }

.grid-overlay{
  position:absolute; inset:0;
  background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size:60px 60px;
  mask-image:radial-gradient(120% 90% at 50% 20%, #000 20%, transparent 75%);
  -webkit-mask-image:radial-gradient(120% 90% at 50% 20%, #000 20%, transparent 75%);
  opacity:.6;
}

.hero__content{ position:relative; z-index:3; max-width:var(--maxw); margin-inline:auto; padding-inline:clamp(20px,5vw,40px); width:100%; }

.hero__badge{
  display:inline-flex; align-items:center; gap:10px; font-size:.82rem; font-weight:600; letter-spacing:.04em;
  padding:8px 16px; border:1px solid var(--line); border-radius:100px; background:var(--card); color:var(--ink-dim);
  margin-bottom:28px;
}
.pulse{ width:8px; height:8px; border-radius:50%; background:var(--cyan); box-shadow:0 0 0 0 rgba(6,182,212,.6); animation:pulse 2s infinite; }
@keyframes pulse{ 0%{ box-shadow:0 0 0 0 rgba(6,182,212,.6);} 70%{ box-shadow:0 0 0 12px rgba(6,182,212,0);} 100%{ box-shadow:0 0 0 0 rgba(6,182,212,0);} }

.hero__title{
  font-family:var(--disp); font-weight:700; line-height:.98; letter-spacing:-.02em;
  font-size:clamp(3.2rem, 11vw, 8.5rem); margin-bottom:28px;
}
.hero__title .line{ display:block; overflow:hidden; }
.hero__title .word{ display:inline-block; transform:translateY(110%); }

.hero__sub{ max-width:600px; font-size:clamp(1rem,2.2vw,1.22rem); color:var(--ink-dim); margin-bottom:38px; }

.hero__actions{ display:flex; flex-wrap:wrap; gap:16px; margin-bottom:56px; }

.btn{
  display:inline-flex; align-items:center; gap:10px; font-weight:600; font-size:.98rem;
  padding:15px 28px; border-radius:100px; cursor:pointer; transition:all .35s var(--ease); border:1px solid transparent; position:relative; overflow:hidden;
}
.btn--primary{ background:var(--grad); color:#fff; box-shadow:0 12px 34px rgba(37,99,235,.34); }
.btn--primary:hover{ transform:translateY(-3px); box-shadow:0 18px 44px rgba(37,99,235,.5); }
.btn--primary .btn__arrow{ transition:transform .35s var(--ease); }
.btn--primary:hover .btn__arrow{ transform:translateX(5px); }
.btn--ghost{ background:var(--card); border-color:var(--line); color:var(--ink); backdrop-filter:blur(6px); }
.btn--ghost:hover{ background:var(--card-hi); transform:translateY(-3px); border-color:rgba(255,255,255,.2); }

.hero__stats{ display:flex; flex-wrap:wrap; gap:clamp(28px,6vw,64px); }
.stat{ display:flex; flex-direction:column; }
.stat__num{ font-family:var(--disp); font-weight:700; font-size:clamp(1.9rem,4vw,2.6rem); line-height:1; background:var(--grad-soft); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.stat__label{ font-size:.82rem; color:var(--ink-dim); margin-top:8px; }

.hero__scroll{ position:absolute; bottom:32px; left:50%; transform:translateX(-50%); z-index:3; display:flex; flex-direction:column; align-items:center; gap:8px; }
.mouse{ width:24px; height:38px; border:2px solid rgba(255,255,255,.35); border-radius:14px; position:relative; }
.mouse::after{ content:""; position:absolute; top:7px; left:50%; transform:translateX(-50%); width:4px; height:7px; border-radius:3px; background:#fff; animation:scrolldot 1.8s infinite; }
@keyframes scrolldot{ 0%{ opacity:0; transform:translate(-50%,0);} 30%{opacity:1;} 60%{ opacity:1; transform:translate(-50%,12px);} 100%{ opacity:0; transform:translate(-50%,12px);} }
.hero__scroll-text{ font-size:.7rem; letter-spacing:.25em; text-transform:uppercase; color:var(--ink-dim); }

.hero__hex{ position:absolute; top:12%; right:-6%; width:min(46vw,540px); z-index:1; opacity:.9; animation:spin 40s linear infinite; }
@keyframes spin{ to{ transform:rotate(360deg); } }
@media (max-width:900px){ .hero__hex{ opacity:.4; right:-30%; top:auto; bottom:-6%; } }

/* ============================================================
   SECTIONS
   ============================================================ */
.section{ padding-block:clamp(80px,12vw,140px); position:relative; z-index:2; }
.section__head{ max-width:720px; margin-bottom:clamp(48px,7vw,76px); }
.eyebrow{ display:inline-block; font-family:var(--mono); font-size:.8rem; letter-spacing:.2em; text-transform:uppercase; color:var(--cyan); margin-bottom:18px; }
.eyebrow::before{ content:"// "; opacity:.6; }
.section__title{ font-family:var(--disp); font-weight:700; line-height:1.05; letter-spacing:-.02em; font-size:clamp(2.1rem,5.5vw,3.6rem); margin-bottom:20px; }
.section__lead{ font-size:clamp(1rem,2vw,1.15rem); color:var(--ink-dim); }

/* ---- SERVICES CARDS ---- */
.cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.card{
  position:relative; padding:34px 30px; border-radius:var(--radius); border:1px solid var(--line);
  background:var(--card); overflow:hidden; transition:transform .4s var(--ease), border-color .4s, background .4s;
  transform-style:preserve-3d;
}
.card:hover{ background:var(--card-hi); border-color:rgba(79,131,255,.35); transform:translateY(-6px); }
.card__icon{ width:56px; height:56px; border-radius:14px; display:grid; place-items:center; margin-bottom:22px; background:linear-gradient(135deg, rgba(37,99,235,.18), rgba(6,182,212,.12)); border:1px solid var(--line); }
.card__icon svg{ width:26px; height:26px; fill:none; stroke:var(--blue-lt); stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.card h3{ font-family:var(--disp); font-weight:600; font-size:1.28rem; margin-bottom:12px; }
.card p{ color:var(--ink-dim); font-size:.96rem; }
.card__glow{ position:absolute; width:220px; height:220px; border-radius:50%; background:radial-gradient(circle, rgba(37,99,235,.25), transparent 65%); top:var(--my,50%); left:var(--mx,50%); transform:translate(-50%,-50%); opacity:0; transition:opacity .4s; pointer-events:none; }
.card:hover .card__glow{ opacity:1; }

/* ---- PROCESS ---- */
.process__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.phase{
  position:relative; padding:40px 34px; border-radius:var(--radius); border:1px solid var(--line);
  background:linear-gradient(180deg, var(--card-hi), var(--card)); overflow:hidden; transition:transform .4s var(--ease), border-color .4s;
}
.phase::before{ content:""; position:absolute; inset:0 auto 0 0; width:3px; background:var(--grad); transform:scaleY(0); transform-origin:top; transition:transform .5s var(--ease); }
.phase:hover{ transform:translateY(-6px); border-color:rgba(79,131,255,.3); }
.phase:hover::before{ transform:scaleY(1); }
.phase__num{ font-family:var(--mono); font-size:.9rem; color:var(--cyan); letter-spacing:.1em; }
.phase h3{ font-family:var(--disp); font-weight:700; font-size:1.9rem; margin:14px 0 14px; }
.phase p{ color:var(--ink-dim); margin-bottom:22px; }
.phase ul li{ position:relative; padding-left:24px; margin-bottom:10px; font-size:.93rem; color:var(--ink); }
.phase ul li::before{ content:""; position:absolute; left:0; top:9px; width:8px; height:8px; border-radius:2px; background:var(--grad); }

/* ---- WHY ---- */
.why__inner{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(40px,6vw,80px); align-items:center; }
.why__list{ margin-top:32px; }
.why__list li{ display:flex; align-items:flex-start; gap:14px; margin-bottom:16px; font-size:1.02rem; }
.check{ flex:none; width:26px; height:26px; border-radius:8px; display:grid; place-items:center; background:linear-gradient(135deg, rgba(37,99,235,.25), rgba(6,182,212,.18)); color:var(--cyan); font-weight:700; font-size:.85rem; border:1px solid var(--line); }
.why__panel{ position:relative; padding:48px; border-radius:26px; border:1px solid var(--line); background:radial-gradient(120% 120% at 20% 0%, rgba(37,99,235,.14), transparent 60%), var(--card); display:flex; flex-direction:column; align-items:center; gap:36px; }
.why__hex-lg{ width:min(60%,260px); animation:spin 50s linear infinite; }
.why__panel-stats{ display:flex; gap:40px; text-align:center; flex-wrap:wrap; justify-content:center; }
.why__panel-stats small{ display:block; color:var(--ink-dim); font-size:.82rem; margin-top:6px; max-width:140px; }

/* ---- TIMELINE ---- */
.tl{ position:relative; }
.tl__line{ position:absolute; left:20px; top:8px; bottom:8px; width:2px; background:var(--line); border-radius:2px; }
.tl__progress{ position:absolute; inset:0 0 auto 0; width:100%; height:0%; background:var(--grad); border-radius:2px; box-shadow:0 0 12px rgba(37,99,235,.6); }
.tl__item{ position:relative; padding-left:64px; padding-bottom:42px; }
.tl__item:last-child{ padding-bottom:0; }
.tl__dot{ position:absolute; left:12px; top:6px; width:18px; height:18px; border-radius:50%; background:var(--navy); border:2px solid var(--slate); transition:all .4s var(--ease); z-index:2; }
.tl__item.active .tl__dot{ border-color:var(--cyan); background:var(--blue); box-shadow:0 0 0 6px rgba(37,99,235,.18), 0 0 20px rgba(6,182,212,.6); }
.tl__card{ padding:26px 30px; border-radius:16px; border:1px solid var(--line); background:var(--card); transition:transform .4s var(--ease), border-color .4s, background .4s; }
.tl__card:hover{ transform:translateX(6px); border-color:rgba(79,131,255,.3); background:var(--card-hi); }
.tl__step{ font-family:var(--mono); font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--cyan); }
.tl__card h3{ font-family:var(--disp); font-weight:600; font-size:1.35rem; margin:8px 0 8px; }
.tl__card p{ color:var(--ink-dim); font-size:.96rem; }

/* ---- CONTACT ---- */
.contact{ text-align:center; overflow:hidden; }
.contact__bg{ position:absolute; inset:0; z-index:0; opacity:.7; }
.contact__inner{ display:flex; flex-direction:column; align-items:center; }
.contact__title{ font-family:var(--disp); font-weight:700; font-size:clamp(2.2rem,6vw,4rem); line-height:1.04; letter-spacing:-.02em; max-width:900px; margin-bottom:20px; }
.contact__lead{ color:var(--ink-dim); font-size:clamp(1rem,2vw,1.2rem); margin-bottom:40px; max-width:560px; }
.contact__actions{ display:flex; flex-wrap:wrap; gap:16px; justify-content:center; margin-bottom:56px; }
.contact__cards{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; width:100%; max-width:820px; }
.contact__card{ display:flex; align-items:center; gap:16px; padding:22px 24px; border-radius:16px; border:1px solid var(--line); background:var(--card); text-align:left; transition:transform .4s var(--ease), border-color .4s, background .4s; }
.contact__card:hover{ transform:translateY(-5px); border-color:rgba(79,131,255,.35); background:var(--card-hi); }
.contact__card-icon{ font-size:1.4rem; width:48px; height:48px; flex:none; display:grid; place-items:center; border-radius:12px; background:linear-gradient(135deg, rgba(37,99,235,.2), rgba(6,182,212,.14)); border:1px solid var(--line); }
.contact__card small{ display:block; color:var(--ink-dim); font-size:.78rem; text-transform:uppercase; letter-spacing:.1em; }
.contact__card strong{ font-weight:600; font-size:1rem; }

/* ---- FOOTER ---- */
.footer{ border-top:1px solid var(--line); background:var(--navy-2); padding-top:64px; position:relative; z-index:2; }
.footer__inner{ display:grid; grid-template-columns:1.4fr 2fr; gap:48px; padding-bottom:48px; }
.footer__logo{ width:230px; margin-bottom:20px; }
.footer__brand p{ color:var(--ink-dim); font-size:.95rem; max-width:320px; }
.footer__cols{ display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
.footer__col h4{ font-family:var(--disp); font-size:.9rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink); margin-bottom:16px; }
.footer__col a{ display:block; color:var(--ink-dim); font-size:.92rem; margin-bottom:10px; transition:color .3s, transform .3s; }
.footer__col a:hover{ color:var(--white); transform:translateX(4px); }
.footer__bottom{ display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; padding-block:26px; border-top:1px solid var(--line); color:var(--ink-dim); font-size:.85rem; }

/* ============================================================
   REVEAL ANIMATION HELPERS
   ============================================================ */
.reveal-up{ opacity:0; transform:translateY(34px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal-up.in{ opacity:1; transform:none; }

/* ============================================================
   LIGHT THEME — targeted overrides for non-variable values
   ============================================================ */
:root[data-theme="light"] body::before{ background:radial-gradient(120% 80% at 50% -10%, rgba(37,99,235,0.08), transparent 60%); }
:root[data-theme="light"] .nav.scrolled{ background:rgba(244,246,251,0.82); }
:root[data-theme="light"] .orb{ opacity:.28; }
:root[data-theme="light"] .orb--blue{ background:radial-gradient(circle, rgba(37,99,235,.4), transparent 70%); }
:root[data-theme="light"] .orb--cyan{ background:radial-gradient(circle, rgba(6,182,212,.32), transparent 70%); }
:root[data-theme="light"] .hero__scroll .mouse{ border-color:rgba(13,17,23,.4); }
:root[data-theme="light"] .hero__scroll .mouse::after{ background:#0D1117; }
:root[data-theme="light"] .contact__bg{ opacity:.5; }
:root[data-theme="light"] .cursor-dot,
:root[data-theme="light"] .cursor-ring{ mix-blend-mode:normal; }
:root[data-theme="light"] .cursor-dot{ background:#2563EB; }
:root[data-theme="light"] .cursor-ring{ border-color:rgba(37,99,235,.5); }
:root[data-theme="light"] .card,
:root[data-theme="light"] .contact__card,
:root[data-theme="light"] .tl__card{ background:#ffffff; box-shadow:0 8px 30px rgba(13,17,23,.05); }
:root[data-theme="light"] .why__panel{ background:radial-gradient(120% 120% at 20% 0%, rgba(37,99,235,.1), transparent 60%), #ffffff; box-shadow:0 12px 40px rgba(13,17,23,.06); }
:root[data-theme="light"] .phase{ background:linear-gradient(180deg, #ffffff, #fbfcfe); box-shadow:0 8px 30px rgba(13,17,23,.05); }
:root[data-theme="light"] .why__hex-lg .hex-outer{ fill:rgba(13,17,23,0.12); }
:root[data-theme="light"] .hero__hex path[fill="rgba(255,255,255,0.06)"]{ fill:rgba(13,17,23,0.05); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1024px){
  .cards{ grid-template-columns:repeat(2,1fr); }
  .process__grid{ grid-template-columns:1fr; }
  .why__inner{ grid-template-columns:1fr; }
}

@media (max-width:820px){
  .nav__links{
    position:fixed; inset:0 0 0 auto; width:min(78vw,320px); flex-direction:column; align-items:flex-start; justify-content:center; gap:26px;
    background:rgba(13,17,23,.96); backdrop-filter:blur(20px); padding:40px; border-left:1px solid var(--line);
    transform:translateX(100%); transition:transform .45s var(--ease); z-index:850;
  }
  .nav__links.open{ transform:translateX(0); }
  :root[data-theme="light"] .nav__links{ background:rgba(244,246,251,0.97); }
  .nav__links a{ font-size:1.2rem; }
  .nav__toggle{ display:flex; z-index:860; }
  .footer__inner{ grid-template-columns:1fr; }
}

@media (max-width:620px){
  .cards{ grid-template-columns:1fr; }
  .contact__cards{ grid-template-columns:1fr; }
  .footer__cols{ grid-template-columns:1fr 1fr; }
  .hero__stats{ gap:24px; }
  .why__panel{ padding:32px; }
  .footer__bottom{ flex-direction:column; gap:8px; }
}

@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition-duration:.001ms !important; }
  .reveal-up{ opacity:1; transform:none; }
  .hero__title .word{ transform:none; }
}
