/* ============================================================
   WeatherStudioPRO — Marketing Site
   Design System & Styles
   ============================================================ */

/* ---------- Fonts ---------- */
@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,400;0,500;0,600;0,700;1,700;1,800;1,900&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap');

/* ---------- Tokens ---------- */
:root{
  /* Brand orange system (from brand kit) */
  --orange:#FF7A00;
  --orange-hi:#FFB347;
  --orange-glow:#FF8C00;
  --orange-dk:#FF5500;
  --amber:#FFD060;

  /* Navy / dark system */
  --navy:#02050E;
  --navy-2:#070D1B;
  --navy-3:#010206;
  --panel:#0A1120;
  --panel-2:#0E1626;
  --panel-hi:#141F35;

  /* Metallic silver (wordmark) */
  --silver:#B4BAC4;
  --silver-2:#9AA3B0;
  --steel:#5E6b7d;

  /* Text */
  --ink:#E3E9F2;
  --ink-2:#AEB9C9;
  --muted:rgba(180,195,215,0.58);
  --faint:rgba(180,195,215,0.35);

  /* Structural */
  --line:rgba(255,255,255,0.07);
  --line-2:rgba(255,255,255,0.12);
  --radar-green:#39d353;
  --radar-red:#ff3b30;

  --mono:'JetBrains Mono',ui-monospace,monospace;
  --cond:'Barlow Condensed',sans-serif;
  --sans:'Inter',system-ui,sans-serif;

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

/* ---------- Reset ---------- */
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  background:var(--navy-3);
  color:var(--ink);
  font-family:var(--sans);
  line-height:1.65;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
ul{list-style:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
::selection{background:var(--orange);color:#0a0400;}

/* Global ambient background */
body::before{
  content:"";position:fixed;inset:0;z-index:-2;
  background:
    radial-gradient(1200px 700px at 78% -8%, rgba(255,122,0,.10), transparent 60%),
    radial-gradient(1000px 800px at 10% 20%, rgba(30,90,180,.10), transparent 55%),
    linear-gradient(180deg,#050912 0%, var(--navy) 40%, var(--navy-3) 100%);
}
/* subtle grid texture */
body::after{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);
  background-size:52px 52px;
  mask-image:radial-gradient(ellipse at 50% 30%,#000 20%,transparent 80%);
}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}

/* ---------- Typography helpers ---------- */
.eyebrow{
  font-family:var(--mono);font-size:12px;letter-spacing:3.5px;text-transform:uppercase;
  color:var(--orange);display:inline-flex;align-items:center;gap:9px;margin-bottom:20px;font-weight:500;
}
.eyebrow::before{content:"";width:26px;height:1px;background:linear-gradient(90deg,transparent,var(--orange));}
.eyebrow.center{justify-content:center;}
.eyebrow.center::after{content:"";width:26px;height:1px;background:linear-gradient(90deg,var(--orange),transparent);}

h1,h2,h3{font-family:var(--cond);line-height:1.02;letter-spacing:-.5px;}
.h2{
  font-size:clamp(34px,5vw,62px);font-weight:700;text-transform:uppercase;
  color:#fff;letter-spacing:-.5px;
}
.h2 .accent{color:var(--orange);text-shadow:0 0 30px rgba(255,90,0,.45);}
.lead{color:var(--ink-2);font-size:clamp(16px,1.6vw,19px);max-width:640px;line-height:1.7;}
.section-head{max-width:760px;margin-bottom:52px;}
.section-head.center{margin:0 auto 60px;text-align:center;}
.section-head.center .lead{margin:0 auto;}

/* Wordmark treatment (matches brand kit) */
.wm{font-family:var(--cond);font-weight:800;font-style:italic;line-height:1;display:inline-flex;align-items:baseline;}
.wm .a{color:var(--silver);}
.wm .b{color:var(--orange);font-weight:900;text-shadow:0 0 18px rgba(255,90,0,.55);}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);
  font-size:13px;letter-spacing:1.5px;text-transform:uppercase;font-weight:500;
  padding:15px 26px;border-radius:6px;transition:.25s var(--ease);position:relative;
  /* Buttons are fixed-label CTAs; never let the label break onto a second line. */
  white-space:nowrap;
}
.btn-primary{
  background:linear-gradient(180deg,var(--orange-glow),var(--orange-dk));
  color:#180a00;font-weight:700;
  box-shadow:0 6px 24px rgba(255,90,0,.35),inset 0 1px 0 rgba(255,220,160,.5);
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 34px rgba(255,90,0,.5),inset 0 1px 0 rgba(255,220,160,.6);}
.btn-ghost{
  background:rgba(255,255,255,.03);border:1px solid var(--line-2);color:var(--ink);
  backdrop-filter:blur(6px);
}
.btn-ghost:hover{border-color:var(--orange);color:#fff;background:rgba(255,122,0,.08);}
.btn svg{width:15px;height:15px;}

/* ============================================================
   NAV
   ============================================================ */
header.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  transition:.35s var(--ease);
  border-bottom:1px solid transparent;
}
header.nav.scrolled{
  background:rgba(4,7,15,.82);backdrop-filter:blur(16px) saturate(140%);
  border-bottom:1px solid var(--line);
}
.nav-inner{max-width:var(--maxw);margin:0 auto;padding:16px 32px;display:flex;align-items:center;justify-content:space-between;}
.brand{display:flex;align-items:center;gap:12px;flex:none;}
.brand img{width:38px;height:38px;flex:none;filter:drop-shadow(0 0 10px rgba(255,120,0,.4));}
/* WeatherStudioPRO is one word — never break the wordmark. */
.brand .wm{white-space:nowrap;}
.brand .wm{font-size:23px;}
/* 9 items must fit the 1176px content box alongside the brand (~205px) and the
   CTA (~145px). That leaves ~826px; the labels themselves need ~612px, so the
   gap has to stay near 20px for the row to breathe at every desktop width. */
.nav-links{display:flex;align-items:center;gap:20px;}
.nav-links a{
  font-family:var(--mono);font-size:12.5px;letter-spacing:1px;text-transform:uppercase;
  color:var(--ink-2);transition:.2s;position:relative;
  /* Keep each item on one line. With the Showcase entry the bar is close to
     its width budget, and wrapping "Sign Up" doubles the header height. */
  white-space:nowrap;
}
.nav-links a:hover{color:#fff;}
.nav-links a::after{content:"";position:absolute;left:0;bottom:-6px;height:2px;width:0;background:var(--orange);transition:.25s var(--ease);}
.nav-links a:hover::after{width:100%;}
/* Guarantee breathing room either side of the link row so the wordmark and the
   Get Started button can never sit flush against it. */
.nav-links{margin:0 28px;}
.nav-cta{display:flex;align-items:center;gap:14px;flex:none;}
.nav-cta .btn{padding:11px 20px;}
.burger{display:none;flex-direction:column;gap:5px;padding:8px;}
.burger span{width:24px;height:2px;background:var(--ink);transition:.3s;}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;padding:170px 0 90px;overflow:hidden;text-align:center;}
.hero-radar{
  position:absolute;top:-120px;left:50%;transform:translateX(-50%);
  width:min(1100px,120vw);aspect-ratio:1;pointer-events:none;z-index:0;opacity:.5;
}
/* animated radar sweep rings */
.ring{position:absolute;inset:0;margin:auto;border-radius:50%;border:1px solid rgba(255,122,0,.10);}
.ring.r1{width:30%;height:30%;} .ring.r2{width:55%;height:55%;} .ring.r3{width:80%;height:80%;} .ring.r4{width:100%;height:100%;}
.sweep{
  position:absolute;inset:0;margin:auto;width:100%;height:100%;border-radius:50%;
  background:conic-gradient(from 0deg, transparent 0deg, rgba(255,122,0,.22) 40deg, transparent 75deg);
  animation:sweep 6s linear infinite;
}
@keyframes sweep{to{transform:rotate(360deg);}}

.hero .wrap{position:relative;z-index:2;}
.hero-badge{
  display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:11.5px;
  letter-spacing:2px;text-transform:uppercase;color:var(--amber);
  background:rgba(255,140,0,.08);border:1px solid rgba(255,140,0,.25);
  padding:8px 16px;border-radius:100px;margin-bottom:34px;
}
.pulse-dot{width:7px;height:7px;border-radius:50%;background:var(--radar-green);box-shadow:0 0 0 rgba(57,211,83,.6);animation:pulse 2s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(57,211,83,.5);}70%{box-shadow:0 0 0 8px rgba(57,211,83,0);}100%{box-shadow:0 0 0 0 rgba(57,211,83,0);}}

/* ---------- Platform availability badge ---------- */
.os-badge{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center;
  width:fit-content;max-width:100%;
  font-family:var(--mono);font-size:11.5px;letter-spacing:1.4px;text-transform:uppercase;
  color:var(--amber);background:rgba(255,140,0,.08);border:1px solid rgba(255,140,0,.25);
  padding:8px 16px;border-radius:100px;margin:-22px auto 34px;
}
.os-badge svg{flex:none;}
.os-badge-div{width:1px;height:13px;background:rgba(255,208,96,.3);}
.os-badge-soon{color:var(--ink-2);letter-spacing:1.2px;}
@media(max-width:640px){
  .os-badge{font-size:10px;letter-spacing:1px;gap:8px;padding:8px 13px;}
  .os-badge-div{display:none;}
}

/* ---------- Footer system requirements ---------- */
.foot-req{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  font-family:var(--mono);font-size:11px;letter-spacing:.9px;text-transform:uppercase;
  color:var(--muted);margin-top:18px;
}
.foot-req svg{flex:none;}
.foot-req .ok{color:var(--radar-green);}

.hero h1{
  font-size:clamp(46px,8.5vw,120px);font-weight:800;font-style:italic;line-height:.92;
  display:flex;justify-content:center;flex-wrap:wrap;align-items:baseline;
  filter:drop-shadow(0 6px 30px rgba(0,0,0,.6));
}
.hero h1 .a{color:var(--silver);text-shadow:0 0 40px rgba(180,190,200,.15);}
.hero h1 .b{color:var(--orange);font-weight:900;text-shadow:0 0 30px rgba(255,90,0,.65),0 0 70px rgba(255,85,0,.3);}
.hero .tagline{
  font-family:var(--mono);font-size:clamp(12px,1.5vw,15px);letter-spacing:5px;text-transform:uppercase;
  color:var(--orange-hi);margin-top:24px;
}
.hero .promise{
  color:var(--ink-2);font-size:clamp(17px,2vw,21px);max-width:680px;margin:30px auto 0;line-height:1.6;
}
.hero .promise strong{color:#fff;font-weight:600;}
.hero-actions{display:flex;gap:16px;justify-content:center;margin-top:42px;flex-wrap:wrap;}

/* hero screenshot frame */
.hero-shot{
  position:relative;z-index:2;max-width:1080px;margin:70px auto 0;
  border-radius:14px;overflow:hidden;border:1px solid var(--line-2);
  box-shadow:0 40px 120px rgba(0,0,0,.6),0 0 0 1px rgba(255,122,0,.06),0 0 80px rgba(255,120,0,.08);
  transform:perspective(1600px) rotateX(6deg);transform-origin:center bottom;
}
.hero-shot img{width:100%;display:block;}
.hero-shot::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(1,2,6,.5));pointer-events:none;}

/* ---------- Marquee stat strip ---------- */
.strip{
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  background:rgba(255,255,255,.015);overflow:hidden;
}
.strip-track{display:flex;gap:0;animation:scroll 34s linear infinite;width:max-content;}
.strip:hover .strip-track{animation-play-state:paused;}
.strip-item{
  display:flex;align-items:center;gap:14px;padding:20px 42px;white-space:nowrap;
  font-family:var(--cond);font-size:22px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--ink-2);
}
.strip-item b{color:#fff;}
.strip-item .dot{width:6px;height:6px;border-radius:50%;background:var(--orange);}
@keyframes scroll{to{transform:translateX(-50%);}}

/* ============================================================
   SECTION SHELL
   ============================================================ */
section.block{padding:100px 0;position:relative;}
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
.split.rev .txt{order:2;}
.split.rev .media{order:1;}

/* Media frame with UI chrome */
.frame{
  position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--line-2);
  background:var(--panel);
  box-shadow:0 30px 70px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.02);
  transition:.5s var(--ease);
}
.frame:hover{transform:translateY(-6px);box-shadow:0 44px 90px rgba(0,0,0,.6),0 0 60px rgba(255,120,0,.09);}
.frame-bar{
  display:flex;align-items:center;gap:7px;padding:11px 14px;background:rgba(0,0,0,.35);border-bottom:1px solid var(--line);
}
.frame-bar i{width:11px;height:11px;border-radius:50%;display:block;}
.frame-bar i:nth-child(1){background:#ff5f57;} .frame-bar i:nth-child(2){background:#febc2e;} .frame-bar i:nth-child(3){background:#28c840;}
.frame-bar span{margin-left:12px;font-family:var(--mono);font-size:11px;color:var(--faint);letter-spacing:1px;}
.frame img{width:100%;display:block;}
.frame.glow::before{
  content:"";position:absolute;inset:-1px;border-radius:12px;padding:1px;z-index:2;pointer-events:none;
  background:linear-gradient(135deg,rgba(255,122,0,.5),transparent 40%,transparent 60%,rgba(255,122,0,.25));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
}

/* Feature bullet list */
.feats{margin-top:30px;display:flex;flex-direction:column;gap:16px;}
.feat{display:flex;gap:15px;align-items:flex-start;}
.feat .ic{
  flex:0 0 auto;width:34px;height:34px;border-radius:8px;display:grid;place-items:center;margin-top:2px;
  background:linear-gradient(180deg,rgba(255,140,0,.16),rgba(255,85,0,.06));border:1px solid rgba(255,122,0,.3);
}
.feat .ic svg{width:17px;height:17px;stroke:var(--orange-hi);}
.feat h4{font-family:var(--sans);font-size:16px;font-weight:600;color:#fff;letter-spacing:0;margin-bottom:2px;}
.feat p{color:var(--muted);font-size:14.5px;line-height:1.55;}

/* ============================================================
   STAT / VALUE PILLARS
   ============================================================ */
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:16px;}
.pillar{
  padding:30px 26px;border-radius:14px;border:1px solid var(--line);
  background:linear-gradient(180deg,var(--panel-2),rgba(10,17,32,.4));position:relative;overflow:hidden;transition:.4s var(--ease);
}
.pillar:hover{border-color:rgba(255,122,0,.35);transform:translateY(-5px);}
.pillar::before{content:"";position:absolute;top:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,var(--orange),transparent);}
.pillar .pic{width:44px;height:44px;border-radius:10px;display:grid;place-items:center;margin-bottom:18px;
  background:radial-gradient(circle,rgba(255,122,0,.2),rgba(255,85,0,.04));border:1px solid rgba(255,122,0,.3);}
.pillar .pic svg{width:22px;height:22px;stroke:var(--orange-hi);}
.pillar h3{font-size:26px;font-weight:700;text-transform:uppercase;color:#fff;margin-bottom:8px;}
.pillar p{color:var(--muted);font-size:14px;line-height:1.5;}

/* ============================================================
   FEATURE CARD GRID
   ============================================================ */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.card{
  border-radius:14px;border:1px solid var(--line);overflow:hidden;
  background:linear-gradient(180deg,var(--panel-2),rgba(8,13,24,.6));transition:.4s var(--ease);position:relative;
}
.card:hover{border-color:rgba(255,122,0,.3);transform:translateY(-6px);box-shadow:0 30px 60px rgba(0,0,0,.45);}
.card .shot{aspect-ratio:16/10;overflow:hidden;position:relative;border-bottom:1px solid var(--line);}
.card .shot img{width:100%;height:100%;object-fit:cover;transition:.6s var(--ease);}
.card:hover .shot img{transform:scale(1.06);}
.card .shot::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(8,13,24,.85));}
.card .body{padding:24px 24px 28px;}
.card .tag{font-family:var(--mono);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--orange);margin-bottom:10px;display:block;}
.card h3{font-size:23px;font-weight:600;color:#fff;text-transform:uppercase;margin-bottom:9px;letter-spacing:-.3px;}
.card p{color:var(--muted);font-size:14.5px;line-height:1.55;}

/* ============================================================
   DATA OPTIONS
   ============================================================ */
.data-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.data-item{
  padding:24px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.015);
  transition:.3s var(--ease);display:flex;gap:16px;align-items:flex-start;
}
.data-item:hover{border-color:rgba(255,122,0,.3);background:rgba(255,122,0,.03);}
.data-item .ic{flex:0 0 auto;width:42px;height:42px;border-radius:10px;display:grid;place-items:center;
  background:linear-gradient(180deg,rgba(255,140,0,.14),rgba(255,85,0,.04));border:1px solid rgba(255,122,0,.25);}
.data-item .ic svg{width:20px;height:20px;stroke:var(--orange-hi);}
.data-item h4{font-size:16px;font-weight:600;color:#fff;margin-bottom:5px;}
.data-item p{color:var(--muted);font-size:13.5px;line-height:1.5;}

/* ============================================================
   INTEGRATIONS
   ============================================================ */
.integ{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.integ-card{
  padding:38px;border-radius:16px;border:1px solid var(--line-2);position:relative;overflow:hidden;
  background:linear-gradient(160deg,var(--panel-hi),rgba(10,17,32,.5));transition:.4s var(--ease);
}
.integ-card:hover{border-color:rgba(255,122,0,.4);transform:translateY(-5px);}
.integ-card .badge{font-family:var(--mono);font-size:11px;letter-spacing:2px;color:var(--amber);text-transform:uppercase;margin-bottom:16px;display:inline-block;
  padding:5px 12px;border:1px solid rgba(255,140,0,.25);border-radius:100px;background:rgba(255,140,0,.06);}
.integ-card h3{font-size:30px;font-weight:700;color:#fff;text-transform:uppercase;margin-bottom:12px;}
.integ-card p{color:var(--ink-2);font-size:15px;line-height:1.65;}
.integ-card .glow-orb{position:absolute;top:-60px;right:-60px;width:200px;height:200px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,122,0,.18),transparent 70%);pointer-events:none;}

/* ============================================================
   ALERT SHOWCASE
   ============================================================ */
.alert-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px;}
.atag{font-family:var(--mono);font-size:12px;letter-spacing:.5px;padding:8px 14px;border-radius:6px;border:1px solid var(--line-2);
  background:rgba(255,255,255,.02);color:var(--ink-2);transition:.25s;}
.atag:hover{border-color:var(--orange);color:#fff;}
.atag.red{border-color:rgba(255,59,48,.4);color:#ff8a82;background:rgba(255,59,48,.06);}
.atag.amber{border-color:rgba(255,180,50,.4);color:var(--amber);background:rgba(255,180,50,.06);}

/* ============================================================
   GALLERY
   ============================================================ */
.gallery{columns:3;column-gap:18px;}
.gallery .g{margin-bottom:18px;break-inside:avoid;border-radius:12px;overflow:hidden;border:1px solid var(--line);position:relative;transition:.4s var(--ease);}
.gallery .g:hover{border-color:rgba(255,122,0,.35);transform:scale(1.01);}
.gallery .g img{width:100%;display:block;transition:.6s var(--ease);}
.gallery .g:hover img{transform:scale(1.05);}
.gallery .g .cap{position:absolute;left:0;right:0;bottom:0;padding:16px 18px;
  background:linear-gradient(180deg,transparent,rgba(1,2,6,.9));font-family:var(--mono);font-size:11.5px;
  letter-spacing:1.5px;text-transform:uppercase;color:var(--ink);opacity:0;transform:translateY(8px);transition:.3s var(--ease);}
.gallery .g:hover .cap{opacity:1;transform:translateY(0);}

/* ============================================================
   COMMAND CENTER (quad pane visual)
   ============================================================ */
.cc-note{display:inline-flex;align-items:center;gap:10px;margin-top:24px;font-family:var(--mono);font-size:12px;
  letter-spacing:1px;color:var(--amber);text-transform:uppercase;}

/* ============================================================
   FINAL CTA
   ============================================================ */
.cta{
  position:relative;text-align:center;padding:110px 0;overflow:hidden;
  border-top:1px solid var(--line);
}
.cta::before{content:"";position:absolute;inset:0;z-index:0;
  background:radial-gradient(700px 400px at 50% 40%,rgba(255,122,0,.14),transparent 65%);}
.cta .wrap{position:relative;z-index:2;}
.cta h2{font-size:clamp(38px,6vw,80px);font-weight:800;font-style:italic;text-transform:uppercase;color:#fff;line-height:.95;}
.cta h2 .b{color:var(--orange);text-shadow:0 0 34px rgba(255,90,0,.55);}
.cta p{color:var(--ink-2);font-size:18px;max-width:560px;margin:24px auto 0;}
.cta-actions{display:flex;gap:16px;justify-content:center;margin-top:40px;flex-wrap:wrap;}
.soon{margin-top:30px;font-family:var(--mono);font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--faint);}

/* ============================================================
   FOOTER
   ============================================================ */
footer.foot{border-top:1px solid var(--line);padding:70px 0 40px;background:rgba(0,0,0,.3);}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1fr;gap:40px;margin-bottom:50px;}
.foot-brand .brand{margin-bottom:18px;}
.foot-brand p{color:var(--muted);font-size:14px;max-width:300px;line-height:1.6;}
.foot-col h5{font-family:var(--mono);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--orange);margin-bottom:18px;}
.foot-col a{display:block;color:var(--ink-2);font-size:14px;margin-bottom:11px;transition:.2s;}
.foot-col a:hover{color:#fff;padding-left:4px;}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:28px;border-top:1px solid var(--line);flex-wrap:wrap;gap:16px;}
.foot-bottom p{color:var(--faint);font-size:13px;font-family:var(--mono);letter-spacing:.5px;}
.foot-social{display:flex;gap:12px;}
.foot-social a{width:38px;height:38px;border-radius:9px;border:1px solid var(--line-2);display:grid;place-items:center;transition:.25s;}
.foot-social a:hover{border-color:var(--orange);background:rgba(255,122,0,.08);}
.foot-social svg{width:17px;height:17px;stroke:var(--ink-2);}
.foot-social a:hover svg{stroke:var(--orange-hi);}

/* ============================================================
   SCROLL REVEAL
   ============================================================ */
.reveal{opacity:0;transform:translateY(34px);transition:.8s var(--ease);}
.reveal.in{opacity:1;transform:none;}
.reveal.d1{transition-delay:.08s;} .reveal.d2{transition-delay:.16s;} .reveal.d3{transition-delay:.24s;} .reveal.d4{transition-delay:.32s;}

/* ============================================================
   RESPONSIVE
   ============================================================ */
/* The nav carries 9 items once Showcase is included. Step the gap down before
   the burger takes over so the bar never overflows or wraps. */
@media(max-width:1240px){
  .nav-links{gap:17px;margin:0 20px;}
  .nav-links a{font-size:12px;letter-spacing:.8px;}
}
/* Collapse to the burger menu while there is still slack in the bar. Previously
   this happened at 720px, which left the 8-item nav overflowing between roughly
   720px and 1030px; with 9 items that gap became visible earlier. */
@media(max-width:1100px){
  .nav-links{display:none;}
  .burger{display:flex;}
  header.nav.open .nav-links{
    display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;
    background:rgba(4,7,15,.97);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);padding:10px 0;
  }
  header.nav.open .nav-links a{padding:15px 32px;border-bottom:1px solid var(--line);font-size:12.5px;letter-spacing:1px;}
  header.nav.open .nav-links a::after{display:none;}
}

@media(max-width:1024px){
  .split{grid-template-columns:1fr;gap:40px;}
  .split.rev .txt{order:1;} .split.rev .media{order:2;}
  .pillars{grid-template-columns:repeat(2,1fr);}
  .grid-3{grid-template-columns:repeat(2,1fr);}
  .data-grid{grid-template-columns:repeat(2,1fr);}
  .gallery{columns:2;}
  .foot-grid{grid-template-columns:1fr 1fr;gap:34px;}
}
@media(max-width:720px){
  .wrap{padding:0 22px;}
  .hero{padding:130px 0 60px;}
  section.block{padding:64px 0;}
  .pillars,.grid-3,.data-grid,.integ{grid-template-columns:1fr;}
  .gallery{columns:1;}
  .foot-grid{grid-template-columns:1fr;}
  .hero-shot{transform:none;}
  .nav-cta .btn:not(.icon){display:none;}
  .strip-item{font-size:18px;padding:16px 26px;}
}
