/* ============================================================
   SwiftWizz Consulting — "Take Flight" design system
   Palette derived from the phoenix brand mark.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,600;12..96,700;12..96,800&family=Inter:wght@400;500;600;700&family=Space+Mono:wght@400;700&display=swap');

:root{
  /* Ground */
  --void:      #0A0819;
  --void-2:    #100C26;
  --surface:   #17122E;
  --surface-2: #1E1740;
  --line:      #2A2350;
  --line-soft: #221C43;

  /* Phoenix plumage */
  --gold:    #FFCE4B;
  --ember:   #FF8B5B;
  --rose:    #F95C97;
  --crimson: #D3226F;
  --violet:  #B222D3;
  --indigo:  #6C3CE9;
  --azure:   #29C4FF;
  --deep:    #00478F;

  /* Ink */
  --ink:   #F3F0FF;
  --ink-2: #ADA6CF;
  --ink-3: #736C99;

  --plume: linear-gradient(115deg,#FFCE4B 0%,#F95C97 28%,#D3226F 46%,#B222D3 64%,#6C3CE9 80%,#29C4FF 100%);
  --plume-warm: linear-gradient(115deg,#FFCE4B,#FF8B5B 40%,#F95C97 75%,#D3226F);
  --plume-cool: linear-gradient(115deg,#B222D3,#6C3CE9 50%,#29C4FF);
  --glow: 0 0 0 1px rgba(178,34,211,.0), 0 24px 60px -20px rgba(108,60,233,.55);

  --f-display: 'Bricolage Grotesque', sans-serif;
  --f-body: 'Inter', sans-serif;
  --f-mono: 'Space Mono', monospace;

  --r: 18px;
  --r-sm: 12px;
  --maxw: 1200px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  background:var(--void);
  color:var(--ink);
  font-family:var(--f-body);
  line-height:1.7;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }
img,svg{ max-width:100%; display:block; }
::selection{ background:rgba(249,92,151,.35); color:#fff; }

/* Ambient page grain / aurora that sits behind everything */
body::before{
  content:''; position:fixed; inset:0; z-index:-2; pointer-events:none;
  background:
    radial-gradient(700px 500px at 82% -6%, rgba(178,34,211,.20), transparent 60%),
    radial-gradient(650px 520px at 8% 8%, rgba(41,196,255,.14), transparent 60%),
    radial-gradient(600px 600px at 60% 108%, rgba(249,92,151,.15), transparent 60%);
}
body::after{
  content:''; position:fixed; inset:0; z-index:-1; pointer-events:none; opacity:.5;
  background-image:radial-gradient(rgba(255,255,255,.035) 1px, transparent 1px);
  background-size:3px 3px;
  mix-blend-mode:overlay;
}

h1,h2,h3,h4{ font-family:var(--f-display); font-weight:700; letter-spacing:-.02em; line-height:1.06; color:var(--ink); }

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

/* ---- utility type ---- */
.eyebrow{
  font-family:var(--f-mono); font-weight:700; font-size:12px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-3); display:inline-flex; align-items:center; gap:10px; margin-bottom:20px;
}
.eyebrow::before{ content:''; width:26px; height:2px; background:var(--plume); border-radius:2px; }
.eyebrow.center{ justify-content:center; }
.grad{
  background:var(--plume); -webkit-background-clip:text; background-clip:text; color:transparent;
  background-size:200% 100%; animation:shimmer 8s linear infinite;
}
@keyframes shimmer{ to{ background-position:200% 0; } }

/* ---- buttons ---- */
.btn{
  display:inline-flex; align-items:center; gap:9px; font-family:var(--f-body); font-weight:600; font-size:15px;
  padding:14px 26px; border-radius:12px; cursor:pointer; border:1px solid transparent;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s, border-color .25s;
  will-change:transform;
}
.btn .arw{ transition:transform .25s var(--ease); }
.btn:hover .arw{ transform:translateX(4px); }
.btn-primary{ color:#12071f; background:var(--plume); background-size:180% 100%; box-shadow:0 14px 34px -12px rgba(178,34,211,.7); }
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 20px 44px -12px rgba(178,34,211,.85); background-position:100% 0; }
.btn-ghost{ color:var(--ink); border-color:var(--line); background:rgba(255,255,255,.02); }
.btn-ghost:hover{ transform:translateY(-2px); border-color:var(--violet); background:rgba(178,34,211,.08); }

/* ============================================================
   NAV
   ============================================================ */
header{
  position:sticky; top:0; z-index:200;
  backdrop-filter:blur(16px) saturate(140%);
  background:rgba(10,8,25,.66);
  border-bottom:1px solid var(--line-soft);
}
.nav{ display:flex; align-items:center; justify-content:space-between; gap:20px; max-width:var(--maxw); margin:0 auto; padding:14px 28px; }
.brand img{ height:34px; width:auto; }
.nav-links{ display:flex; gap:4px; align-items:center; }
.nav-links > li{ position:relative; }
.nav-links > li > a{
  display:inline-block; font-size:14.5px; font-weight:500; color:var(--ink-2);
  padding:9px 14px; border-radius:9px; transition:color .18s, background .18s;
}
.nav-links > li > a:hover, .nav-links > li > a.active{ color:var(--ink); background:rgba(255,255,255,.05); }
.nav-links > li > a.active{ background:linear-gradient(rgba(178,34,211,.12),rgba(41,196,255,.08)); }
.has-drop:hover .drop{ opacity:1; visibility:visible; transform:translateY(0); }
.drop{
  position:absolute; top:calc(100% + 8px); left:0; min-width:262px; padding:8px;
  background:rgba(23,18,46,.96); backdrop-filter:blur(14px); border:1px solid var(--line);
  border-radius:14px; box-shadow:0 24px 60px rgba(0,0,0,.6);
  opacity:0; visibility:hidden; transform:translateY(8px); transition:all .22s var(--ease);
}
.drop a{ display:flex; align-items:center; gap:10px; padding:11px 12px; font-size:14px; color:var(--ink-2); border-radius:9px; transition:background .16s,color .16s; }
.drop a:hover{ background:rgba(255,255,255,.05); color:var(--ink); }
.drop a .dot{ width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.nav-right{ display:flex; align-items:center; gap:12px; }
.menu-btn{ display:none; background:none; border:1px solid var(--line); color:var(--ink); width:42px; height:42px; border-radius:10px; font-size:20px; cursor:pointer; }
.mobile-nav{ display:none; flex-direction:column; padding:8px 28px 22px; border-bottom:1px solid var(--line); background:var(--void-2); }
.mobile-nav a{ padding:13px 4px; color:var(--ink-2); border-bottom:1px solid var(--line-soft); font-size:15px; }
.mobile-nav a.active{ color:var(--ink); }
.mobile-nav a.sub{ padding-left:20px; color:var(--ink-3); font-size:14px; }
.mobile-nav.open{ display:flex; }

/* scroll progress bar */
.progress{ position:fixed; top:0; left:0; height:3px; width:0; z-index:300; background:var(--plume); box-shadow:0 0 12px rgba(249,92,151,.6); }

/* ============================================================
   HERO
   ============================================================ */
.hero{ position:relative; padding:70px 0 40px; overflow:hidden; }
.hero-grid{ display:grid; grid-template-columns:1.02fr .98fr; gap:40px; align-items:center; }
.hero-badge{
  display:inline-flex; align-items:center; gap:9px; font-family:var(--f-mono); font-size:11.5px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--ink-2); padding:7px 14px; border:1px solid var(--line);
  border-radius:100px; background:rgba(255,255,255,.02); margin-bottom:24px;
}
.hero-badge .pulse{ width:8px; height:8px; border-radius:50%; background:var(--gold); box-shadow:0 0 0 0 rgba(255,206,75,.7); animation:pulse 2.4s infinite; }
@keyframes pulse{ 70%{ box-shadow:0 0 0 8px rgba(255,206,75,0); } 100%{ box-shadow:0 0 0 0 rgba(255,206,75,0); } }
.hero h1{ font-size:clamp(38px,5.4vw,68px); font-weight:800; margin-bottom:22px; }
.hero p.lead{ font-size:18px; color:var(--ink-2); max-width:520px; margin-bottom:32px; }
.hero-cta{ display:flex; gap:14px; flex-wrap:wrap; }
.hero-chips{ display:flex; gap:8px; flex-wrap:wrap; margin-top:34px; }
.chip{ font-family:var(--f-mono); font-size:12px; color:var(--ink-2); padding:7px 13px; border:1px solid var(--line); border-radius:100px; background:rgba(255,255,255,.02); }

/* phoenix stage */
.stage{ position:relative; display:flex; align-items:center; justify-content:center; min-height:420px; }
.stage .halo{
  position:absolute; width:min(520px,90%); aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle, rgba(178,34,211,.34), rgba(41,196,255,.10) 45%, transparent 70%);
  filter:blur(6px); animation:breathe 7s ease-in-out infinite;
}
@keyframes breathe{ 50%{ transform:scale(1.08); opacity:.85; } }
.stage .ember-canvas{ position:absolute; inset:0; z-index:1; pointer-events:none; }
.phoenix{ position:relative; z-index:2; width:min(430px,86%); filter:drop-shadow(0 30px 60px rgba(211,34,111,.35)); animation:float 6s ease-in-out infinite; will-change:transform; }
@keyframes float{ 50%{ transform:translateY(-16px); } }
.orbit{ position:absolute; border:1px dashed rgba(173,166,207,.18); border-radius:50%; z-index:0; }
.orbit.o1{ width:min(560px,96%); aspect-ratio:1; animation:spin 40s linear infinite; }
.orbit.o2{ width:min(400px,70%); aspect-ratio:1; animation:spin 28s linear infinite reverse; }
@keyframes spin{ to{ transform:rotate(360deg); } }
.orbit .node{ position:absolute; top:-5px; left:50%; width:10px; height:10px; border-radius:50%; background:var(--gold); box-shadow:0 0 14px var(--gold); }
.orbit.o2 .node{ background:var(--azure); box-shadow:0 0 14px var(--azure); }

/* hero stat strip */
.hero-stats{ display:grid; grid-template-columns:repeat(4,1fr); margin-top:56px; border:1px solid var(--line); border-radius:var(--r); overflow:hidden; background:rgba(255,255,255,.015); }
.hstat{ padding:26px 22px; text-align:center; border-right:1px solid var(--line-soft); }
.hstat:last-child{ border-right:none; }
.hstat .n{ font-family:var(--f-display); font-weight:800; font-size:34px; }
.hstat .l{ font-family:var(--f-mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-3); margin-top:4px; }

/* ============================================================
   SECTIONS
   ============================================================ */
.section{ padding:104px 0; position:relative; }
.section.tight{ padding:76px 0; }
.sec-head{ max-width:680px; margin-bottom:56px; }
.sec-head.center{ margin-inline:auto; text-align:center; }
.sec-head h2{ font-size:clamp(30px,3.6vw,46px); font-weight:800; margin-bottom:16px; }
.sec-head p{ color:var(--ink-2); font-size:17px; }

/* marquee trust bar */
.marquee{ border-block:1px solid var(--line-soft); padding:26px 0; overflow:hidden; background:rgba(255,255,255,.012); position:relative; }
.marquee::before,.marquee::after{ content:''; position:absolute; top:0; width:120px; height:100%; z-index:2; }
.marquee::before{ left:0; background:linear-gradient(90deg,var(--void),transparent); }
.marquee::after{ right:0; background:linear-gradient(-90deg,var(--void),transparent); }
.marquee-track{ display:flex; gap:56px; width:max-content; animation:slide 32s linear infinite; }
.marquee-track span{ font-family:var(--f-display); font-weight:700; font-size:22px; color:var(--ink-3); white-space:nowrap; display:inline-flex; align-items:center; gap:56px; }
.marquee-track span::after{ content:'✦'; color:var(--violet); font-size:12px; }
@keyframes slide{ to{ transform:translateX(-50%); } }

/* service / feature cards */
.grid{ display:grid; gap:20px; }
.grid.c2{ grid-template-columns:repeat(2,1fr); }
.grid.c3{ grid-template-columns:repeat(3,1fr); }
.grid.c4{ grid-template-columns:repeat(4,1fr); }

.card{
  position:relative; background:linear-gradient(160deg,var(--surface),var(--void-2));
  border:1px solid var(--line); border-radius:var(--r); padding:30px;
  transition:transform .3s var(--ease), border-color .3s, box-shadow .3s;
  overflow:hidden;
}
.card::after{
  content:''; position:absolute; inset:0; border-radius:inherit; padding:1px; opacity:0; transition:opacity .3s;
  background:var(--plume); -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none;
}
.card:hover{ transform:translateY(-6px); box-shadow:0 30px 60px -30px rgba(108,60,233,.6); }
.card:hover::after{ opacity:1; }
.card .ico{
  width:52px; height:52px; border-radius:14px; display:flex; align-items:center; justify-content:center;
  font-size:24px; margin-bottom:20px; color:#12071f; background:var(--plume);
  box-shadow:0 12px 26px -10px rgba(178,34,211,.7);
}
.card h3{ font-size:19px; margin-bottom:10px; }
.card p{ font-size:14.5px; color:var(--ink-2); }
.card .more{ display:inline-flex; gap:7px; margin-top:16px; font-family:var(--f-mono); font-size:12.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--rose); }
.card .more .arw{ transition:transform .2s var(--ease); }
.card:hover .more .arw{ transform:translateX(4px); }
.card .num-tag{ position:absolute; top:22px; right:26px; font-family:var(--f-mono); font-size:13px; color:var(--ink-3); }

/* tilt wrapper */
.tilt{ transform-style:preserve-3d; will-change:transform; }

/* ============================================================
   FLIGHT PATH (signature)
   ============================================================ */
.flight{ position:relative; }
.flight-svg{ position:absolute; left:0; top:0; width:100%; height:100%; pointer-events:none; z-index:0; overflow:visible; }
.flight-svg path{ fill:none; stroke:url(#pathgrad); stroke-width:2.4; stroke-linecap:round; }
.flight-steps{ position:relative; z-index:1; display:flex; flex-direction:column; gap:70px; }
.fstep{ display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; }
.fstep:nth-child(even){ direction:rtl; }
.fstep:nth-child(even) .fstep-body{ direction:ltr; }
.fstep-body{ max-width:440px; }
.fstep .idx{ font-family:var(--f-mono); font-size:13px; color:var(--rose); letter-spacing:.1em; margin-bottom:12px; }
.fstep h3{ font-size:26px; margin-bottom:12px; }
.fstep p{ color:var(--ink-2); font-size:15.5px; }
.fstep-visual{ display:flex; justify-content:center; }
.fmark{
  width:88px; height:88px; border-radius:24px; display:flex; align-items:center; justify-content:center;
  font-family:var(--f-display); font-weight:800; font-size:30px; color:var(--ink);
  background:linear-gradient(160deg,var(--surface-2),var(--surface)); border:1px solid var(--line);
  position:relative; direction:ltr;
}
.fmark::before{ content:''; position:absolute; inset:-1px; border-radius:inherit; padding:1px; background:var(--plume);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; }

/* metric cases */
.mcase{ background:linear-gradient(160deg,var(--surface),var(--void-2)); border:1px solid var(--line); border-radius:var(--r); padding:32px; position:relative; overflow:hidden; }
.mcase::before{ content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--plume); }
.mcase .big{ font-family:var(--f-display); font-weight:800; font-size:46px; background:var(--plume); -webkit-background-clip:text; background-clip:text; color:transparent; line-height:1; }
.mcase .cap{ font-family:var(--f-mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-3); margin:8px 0 18px; }
.mcase .tag{ display:inline-block; font-family:var(--f-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--rose); margin-bottom:10px; }
.mcase h3{ font-size:18px; margin-bottom:10px; line-height:1.35; }
.mcase p{ font-size:14px; color:var(--ink-2); }

/* tech columns */
.tech-cols{ display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
.tcol h4{ font-family:var(--f-mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-3); margin-bottom:16px; }
.tcol .tchips{ display:flex; flex-wrap:wrap; gap:8px; }
.tchip{ font-size:13px; font-weight:500; color:var(--ink-2); padding:8px 14px; border-radius:10px; border:1px solid var(--line); background:rgba(255,255,255,.02); transition:all .2s var(--ease); }
.tchip:hover{ color:var(--ink); border-color:var(--violet); transform:translateY(-2px); background:rgba(178,34,211,.08); }

/* testimonials */
.testi{ background:linear-gradient(160deg,var(--surface),var(--void-2)); border:1px solid var(--line); border-radius:var(--r); padding:30px; }
.testi .q{ font-family:var(--f-display); font-weight:600; font-size:18px; line-height:1.5; color:var(--ink); margin-bottom:22px; }
.testi .q::before{ content:'“'; font-size:40px; color:var(--violet); line-height:0; vertical-align:-14px; margin-right:4px; }
.testi .who{ display:flex; align-items:center; gap:12px; }
.testi .av{ width:44px; height:44px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-family:var(--f-mono); font-weight:700; font-size:14px; color:#12071f; background:var(--plume); }
.testi .who .nm{ font-weight:600; font-size:14.5px; }
.testi .who .rl{ font-size:12.5px; color:var(--ink-3); }

.note{ font-family:var(--f-mono); font-size:12px; color:var(--ink-3); margin-top:18px; }

/* CTA banner */
.cta{ position:relative; border-radius:26px; padding:72px 40px; text-align:center; overflow:hidden;
  background:linear-gradient(160deg,var(--surface-2),var(--void-2)); border:1px solid var(--line); }
.cta::before{ content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse 60% 90% at 15% -10%, rgba(178,34,211,.4), transparent 55%),
             radial-gradient(ellipse 60% 90% at 85% 110%, rgba(41,196,255,.28), transparent 55%); }
.cta > *{ position:relative; z-index:1; }
.cta .bird-ghost{ position:absolute; right:-30px; bottom:-30px; width:220px; opacity:.14; z-index:0; transform:rotate(-8deg); }
.cta h2{ font-size:clamp(28px,4vw,44px); font-weight:800; margin-bottom:14px; }
.cta p{ color:var(--ink-2); font-size:17px; max-width:560px; margin:0 auto 30px; }
.cta .hero-cta{ justify-content:center; }

/* ============================================================
   PAGE HERO (inner pages)
   ============================================================ */
.phero{ position:relative; padding:72px 0 60px; overflow:hidden; }
.phero-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:40px; align-items:center; }
.phero h1{ font-size:clamp(32px,4.4vw,52px); font-weight:800; margin-bottom:18px; }
.phero p.lead{ font-size:17px; color:var(--ink-2); max-width:540px; margin-bottom:28px; }
.phero .stage{ min-height:320px; }
.phero .phoenix{ width:min(320px,80%); }
.crumbs{ font-family:var(--f-mono); font-size:12px; letter-spacing:.06em; color:var(--ink-3); margin-bottom:22px; text-transform:uppercase; }
.crumbs a{ color:var(--ink-2); }
.crumbs span{ color:var(--violet); margin:0 8px; }

/* capabilities list (service pages) */
.cap-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.cap{ display:flex; gap:16px; padding:24px; border:1px solid var(--line); border-radius:var(--r); background:rgba(255,255,255,.015); transition:border-color .25s, transform .25s var(--ease); }
.cap:hover{ border-color:var(--violet); transform:translateY(-3px); }
.cap .cap-ico{ width:40px; height:40px; border-radius:11px; flex-shrink:0; display:flex; align-items:center; justify-content:center; background:linear-gradient(160deg,var(--surface-2),var(--surface)); border:1px solid var(--line); }
.cap .cap-ico i{ width:12px; height:12px; border-radius:50%; background:var(--plume); display:block; }
.cap h4{ font-size:16px; margin-bottom:6px; }
.cap p{ font-size:14px; color:var(--ink-2); }

/* two column info (solutions / use cases) */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.panel{ background:linear-gradient(160deg,var(--surface),var(--void-2)); border:1px solid var(--line); border-radius:var(--r); padding:32px; }
.panel h4{ font-family:var(--f-mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-3); margin-bottom:20px; }
.panel ul{ display:flex; flex-direction:column; gap:14px; }
.panel ul li{ position:relative; padding-left:26px; font-size:15px; color:var(--ink-2); }
.panel ul li::before{ content:''; position:absolute; left:0; top:9px; width:9px; height:9px; border-radius:50%; background:var(--plume); }
.panel ul li strong{ color:var(--ink); font-weight:600; }
.usecase{ margin-bottom:18px; }
.usecase h5{ font-family:var(--f-body); font-size:15px; font-weight:600; margin-bottom:4px; color:var(--ink); }
.usecase p{ font-size:14px; color:var(--ink-2); }

/* FAQ */
.faq{ display:flex; flex-direction:column; gap:12px; }
.faq details{ background:linear-gradient(160deg,var(--surface),var(--void-2)); border:1px solid var(--line); border-radius:var(--r-sm); overflow:hidden; transition:border-color .2s; }
.faq details[open]{ border-color:var(--violet); }
.faq summary{ list-style:none; cursor:pointer; padding:20px 24px; font-weight:600; font-size:16px; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:'+'; font-size:22px; color:var(--rose); font-weight:400; transition:transform .2s; }
.faq details[open] summary::after{ transform:rotate(45deg); }
.faq .ans{ padding:0 24px 22px; color:var(--ink-2); font-size:15px; }

/* case card (service pages) */
.scase{ background:linear-gradient(160deg,var(--surface),var(--void-2)); border:1px solid var(--line); border-radius:var(--r); padding:28px; }
.scase .tag{ font-family:var(--f-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--rose); margin-bottom:12px; display:block; }
.scase h3{ font-size:17px; margin-bottom:16px; line-height:1.4; }
.scase .fld{ margin-bottom:12px; }
.scase .fld .k{ font-family:var(--f-mono); font-size:11px; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-3); }
.scase .fld .v{ font-size:14px; color:var(--ink-2); }

/* contact */
.contact-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:32px; }
.form-panel{ background:linear-gradient(160deg,var(--surface),var(--void-2)); border:1px solid var(--line); border-radius:var(--r); padding:36px; }
.form-panel h3{ font-size:20px; margin-bottom:24px; }
.fgroup{ margin-bottom:18px; }
.fgroup label{ display:block; font-family:var(--f-mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-3); margin-bottom:8px; }
.fgroup input,.fgroup select,.fgroup textarea{
  width:100%; font-family:var(--f-body); font-size:15px; color:var(--ink); background:var(--void);
  border:1px solid var(--line); border-radius:11px; padding:13px 15px; transition:border-color .2s, box-shadow .2s;
}
.fgroup input:focus,.fgroup select:focus,.fgroup textarea:focus{ outline:none; border-color:var(--violet); box-shadow:0 0 0 3px rgba(178,34,211,.18); }
.fgroup textarea{ resize:vertical; min-height:120px; }
.info-card{ background:linear-gradient(160deg,var(--surface),var(--void-2)); border:1px solid var(--line); border-radius:var(--r); padding:28px; margin-bottom:16px; }
.info-card .row{ display:flex; gap:14px; align-items:flex-start; margin-bottom:18px; }
.info-card .row:last-child{ margin-bottom:0; }
.info-card .row .ico{ width:40px; height:40px; border-radius:11px; flex-shrink:0; display:flex; align-items:center; justify-content:center; background:linear-gradient(160deg,var(--surface-2),var(--surface)); border:1px solid var(--line); font-size:17px; }
.info-card .row .k{ font-family:var(--f-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-3); }
.info-card .row .v{ font-size:15px; color:var(--ink); }

/* partner badge */
.partner{ display:inline-flex; align-items:center; gap:14px; padding:14px 20px; border:1px solid var(--line); border-radius:14px; background:rgba(255,255,255,.03); }
.partner img{ height:44px; }
.partner .t{ font-size:13px; color:var(--ink-2); max-width:170px; line-height:1.4; }

/* vision breaker */
.breaker{ padding:120px 0; text-align:center; position:relative; }
.breaker h2{ font-size:clamp(28px,3.8vw,44px); max-width:820px; margin:0 auto 18px; font-weight:800; }
.breaker p{ font-size:18px; color:var(--ink-2); max-width:640px; margin:0 auto; }

/* ============================================================
   FOOTER
   ============================================================ */
footer.site{ background:var(--void-2); border-top:1px solid var(--line); padding:64px 0 30px; margin-top:40px; }
.foot-grid{ display:grid; grid-template-columns:1.5fr repeat(3,1fr); gap:40px; margin-bottom:44px; }
.foot-col .brand img{ height:32px; margin-bottom:18px; }
.foot-col p{ font-size:14px; color:var(--ink-2); max-width:300px; }
.foot-col h4{ font-family:var(--f-mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-3); margin-bottom:16px; }
.foot-col ul{ display:flex; flex-direction:column; gap:11px; }
.foot-col ul a{ font-size:14px; color:var(--ink-2); transition:color .16s; }
.foot-col ul a:hover{ color:var(--ink); }
.foot-bottom{ border-top:1px solid var(--line-soft); padding-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-family:var(--f-mono); font-size:12px; color:var(--ink-3); }

/* ============================================================
   REVEAL / MOTION
   ============================================================ */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.reveal[data-d="1"]{ transition-delay:.08s; }
.reveal[data-d="2"]{ transition-delay:.16s; }
.reveal[data-d="3"]{ transition-delay:.24s; }
.reveal[data-d="4"]{ transition-delay:.32s; }

/* hero load choreography */
.load-up{ opacity:0; transform:translateY(24px); animation:loadUp .9s var(--ease) forwards; }
.load-up[style]{}
@keyframes loadUp{ to{ opacity:1; transform:none; } }
.phoenix.load-in{ opacity:0; animation:birdIn 1.4s var(--ease) .3s forwards; }
@keyframes birdIn{ 0%{ opacity:0; transform:translateY(40px) scale(.9) rotate(-4deg); } 100%{ opacity:1; transform:none; } }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1000px){
  .tech-cols{ grid-template-columns:repeat(2,1fr); row-gap:32px; }
  .grid.c4{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:860px){
  .nav-links{ display:none; }
  .nav-right .btn{ display:none; }
  .menu-btn{ display:flex; align-items:center; justify-content:center; }
  .hero-grid, .phero-grid{ grid-template-columns:1fr; }
  .stage{ min-height:320px; order:-1; }
  .hero-stats{ grid-template-columns:repeat(2,1fr); }
  .hstat:nth-child(2){ border-right:none; }
  .grid.c3{ grid-template-columns:1fr; }
  .grid.c2{ grid-template-columns:1fr; }
  .fstep, .fstep:nth-child(even){ grid-template-columns:1fr; direction:ltr; gap:18px; }
  .fstep-visual{ justify-content:flex-start; }
  .flight-svg{ display:none; }
  .split{ grid-template-columns:1fr; }
  .cap-grid{ grid-template-columns:1fr; }
  .contact-grid{ grid-template-columns:1fr; }
  .foot-grid{ grid-template-columns:1fr 1fr; gap:28px; }
  .section{ padding:76px 0; }
  .breaker{ padding:84px 0; }
}
@media (max-width:560px){
  .grid.c4{ grid-template-columns:1fr; }
  .tech-cols{ grid-template-columns:1fr; }
  .hero-stats{ grid-template-columns:1fr; }
  .hstat{ border-right:none; border-bottom:1px solid var(--line-soft); }
  .foot-grid{ grid-template-columns:1fr; }
}

@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; }
  .reveal{ opacity:1 !important; transform:none !important; }
  html{ scroll-behavior:auto; }
}
