/* Self-hosted fonts (latin + latin-ext only) — generated by .build-tmp/extract-fonts.mjs.
   Replaces the render-blocking Google Fonts <link>. */
/* Fraunces 300 normal — latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/fonts/fraunces-300-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Fraunces 300 normal — latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/fonts/fraunces-300-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Fraunces 400 normal — latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/fraunces-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Fraunces 400 normal — latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/fraunces-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Fraunces 500 normal — latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/fraunces-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Fraunces 500 normal — latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/fraunces-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Fraunces 600 normal — latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/fraunces-600-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Fraunces 600 normal — latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/fraunces-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Inter 300 normal — latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/fonts/inter-300-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Inter 300 normal — latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/fonts/inter-300-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Inter 400 normal — latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/inter-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Inter 400 normal — latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/inter-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Inter 500 normal — latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/inter-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Inter 500 normal — latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/inter-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Inter 600 normal — latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/inter-600-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Inter 600 normal — latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/inter-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* JetBrains Mono 400 normal — latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/jetbrains-mono-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* JetBrains Mono 400 normal — latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/jetbrains-mono-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* JetBrains Mono 500 normal — latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/jetbrains-mono-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* JetBrains Mono 500 normal — latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/jetbrains-mono-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* ============================================================
   Adsin Group — Website UI Kit styles
   Lifted 1:1 from adsin-group-hub.html + the squad page template.
   Accent color is driven by --v (set per-page on the wrapper);
   the group hub uses navy as its accent.
   ============================================================ */
:root {
  --bg:#fafaf7; --bg-soft:#f4f3ee;
  --ink:#0a0f1c;
  --ink-80:rgba(10,15,28,0.8); --ink-60:rgba(10,15,28,0.6); --ink-40:rgba(10,15,28,0.4);
  --ink-20:rgba(10,15,28,0.2); --ink-15:rgba(10,15,28,0.15); --ink-08:rgba(10,15,28,0.08); --ink-04:rgba(10,15,28,0.04);
  --brand:#002F6C; --brand-light:#7393c4; --brand-soft:#dde5f2; --brand-glow:rgba(0,47,108,0.12);
  --v-tech:#4338ca; --v-tech-soft:#f2f1fb;
  --v-build:#8b5a2b; --v-build-soft:#faf3ea;
  --v-schools:#7a1f3d; --v-schools-soft:#f8eaef;
  --v-health:#3d6b5a; --v-health-soft:#eaf2ee;
  --v-services:#334155; --v-services-soft:#eff1f5;
  --v-factory:#c2410c; --v-factory-soft:#fef2ec;
  --green:#16a34a;
  --serif:'Fraunces','Times New Roman',serif;
  --sans:'Inter',-apple-system,sans-serif;
  --mono:'JetBrains Mono',monospace;
  /* defaults; overridden per page */
  --v:#002F6C; --v-light:#7393c4; --v-soft:#dde5f2; --v-glow:rgba(0,47,108,0.12);
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { background:var(--bg); color:var(--ink); font-family:var(--sans); -webkit-font-smoothing:antialiased; line-height:1.5; }

.bg-grid { position:fixed; inset:0; pointer-events:none; z-index:0; background-image:linear-gradient(var(--ink-04) 1px,transparent 1px),linear-gradient(90deg,var(--ink-04) 1px,transparent 1px); background-size:48px 48px; mask-image:radial-gradient(ellipse at top,black 30%,transparent 80%); -webkit-mask-image:radial-gradient(ellipse at top,black 30%,transparent 80%); }
.bg-noise { position:fixed; inset:0; pointer-events:none; z-index:1; opacity:0.025; mix-blend-mode:multiply; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E"); }

.container { max-width:1280px; margin:0 auto; padding:0 64px; position:relative; z-index:2; }
@media (max-width:768px) { .container { padding:0 24px; } }

/* Nav */
.nav { position:fixed; top:0; left:0; right:0; z-index:100; padding:20px 0; background:rgba(250,250,247,0.75); backdrop-filter:blur(20px); border-bottom:1px solid transparent; transition:all 0.3s; }
.nav.scrolled { border-bottom-color:var(--ink-08); padding:14px 0; }
.nav-inner { display:flex; justify-content:space-between; align-items:center; }
.logo-lockup { display:flex; text-decoration:none; cursor:pointer; }
.logo-lockup svg { height:46px; width:auto; }
.nav-links { display:flex; gap:28px; align-items:center; }
.nav-link { font-size:13px; color:var(--ink-60); text-decoration:none; transition:color 0.2s; cursor:pointer; }
.nav-link:hover { color:var(--ink); }
.nav-back { font-family:var(--mono); font-size:11px; color:var(--ink-40); text-decoration:none; letter-spacing:0.12em; text-transform:uppercase; cursor:pointer; }
.nav-back:hover { color:var(--v); }
.nav-cta { background:var(--ink); color:#fff; padding:10px 18px; border-radius:100px; font-size:13px; font-weight:500; text-decoration:none; transition:all 0.3s; display:inline-flex; align-items:center; gap:8px; cursor:pointer; }
.nav-cta:hover { background:var(--brand); transform:translateY(-1px); }
.nav-cta.accent { background:var(--v); } .nav-cta.accent:hover { background:var(--ink); }
@media (max-width:900px) { .nav-links { display:none; } }

h1, h2, h3 { font-family:var(--serif); font-weight:300; letter-spacing:-0.03em; line-height:1.05; color:var(--ink); }
h1 em, h2 em, h3 em { font-style:italic; font-weight:400; color:var(--v); }

.eyebrow { display:inline-flex; align-items:center; gap:10px; font-family:var(--mono); font-size:11px; color:var(--ink-60); text-transform:uppercase; letter-spacing:0.14em; padding:8px 14px; background:var(--bg-soft); border:1px solid var(--ink-08); border-radius:100px; margin-bottom:28px; }
.eyebrow::before { content:''; width:16px; height:1px; background:var(--ink-40); }
.eyebrow.accent { color:var(--v); background:var(--v-soft); border-color:color-mix(in srgb,var(--v) 15%,transparent); }
.eyebrow.accent::before { background:var(--v); opacity:0.4; }

.section-num { font-family:var(--mono); font-size:11px; color:var(--ink-40); letter-spacing:0.14em; text-transform:uppercase; margin-bottom:20px; display:flex; align-items:center; gap:12px; }
.section-num::before { content:''; width:24px; height:1px; background:var(--ink-20); }

.btn-primary { background:var(--ink); color:#fff; padding:16px 28px; border-radius:100px; font-size:14px; font-weight:500; border:none; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; gap:10px; transition:all 0.3s; }
.btn-primary:hover { background:var(--brand); transform:translateY(-1px); }
.btn-primary.accent:hover { background:var(--v); }
.btn-primary svg { transition:transform 0.3s; }
.btn-primary:hover svg { transform:translateX(3px); }
.btn-secondary { color:var(--ink); font-size:14px; font-weight:500; text-decoration:none; padding:16px 20px; border-bottom:1px solid var(--ink-15); transition:all 0.3s; cursor:pointer; }
.btn-secondary:hover { color:var(--v); border-color:var(--v); }
.hero-cta { display:flex; gap:16px; align-items:center; flex-wrap:wrap; }

section { padding:120px 0; position:relative; }
.section-header { margin-bottom:72px; max-width:720px; }
.section-header h2 { font-size:clamp(36px,4vw,52px); margin-bottom:20px; }
.section-header p { font-size:17px; color:var(--ink-60); line-height:1.55; max-width:620px; }

/* ---------- HUB hero ---------- */
.hero { padding:180px 0 100px; min-height:100vh; display:flex; align-items:center; }
.hero-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:80px; align-items:center; width:100%; }
.hero-content { opacity:1; }
.hero h1 { font-size:clamp(44px,5.4vw,72px); margin-bottom:28px; }
.hero h1 em { position:relative; }
.hero h1 em::after { content:''; position:absolute; left:0; right:0; bottom:0.08em; height:0.45em; background:var(--brand-soft); z-index:-1; opacity:0.5; }
.hero-lede { font-size:17px; line-height:1.55; color:var(--ink-60); max-width:460px; margin-bottom:40px; }
.hero-visual { position:relative; aspect-ratio:1/1; width:100%; max-width:620px; margin-left:auto; opacity:1; }
.hero-visual svg { width:100%; height:100%; overflow:visible; }
.pulse-label { position:absolute; font-family:var(--mono); font-size:10px; text-transform:uppercase; letter-spacing:0.12em; background:var(--bg); padding:6px 10px; border:1px solid var(--ink-08); border-radius:100px; white-space:nowrap; opacity:0; animation:labelIn 0.6s cubic-bezier(0.22,1,0.36,1) forwards; box-shadow:0 2px 8px rgba(10,15,28,0.04); z-index:2; }
@keyframes labelIn { to { opacity:1; } }
.pulse-label::before { content:''; display:inline-block; width:6px; height:6px; border-radius:50%; margin-right:8px; vertical-align:middle; }
.pl-tech { left:30%; top:34%; transform:translate(-100%,-50%); animation-delay:0.8s; color:var(--v-tech); }
.pl-tech::before { background:var(--v-tech); }
.pl-services { right:30%; top:34%; transform:translate(100%,-50%); animation-delay:1.2s; color:var(--v-services); }
.pl-services::before { background:var(--v-services); }
.pl-build { left:22%; top:50%; transform:translate(-100%,-50%); animation-delay:1.6s; color:var(--v-build); }
.pl-build::before { background:var(--v-build); }
.pl-factory { right:22%; top:50%; transform:translate(100%,-50%); animation-delay:2.0s; color:var(--v-factory); }
.pl-factory::before { background:var(--v-factory); }
.pl-schools { left:30%; top:66%; transform:translate(-100%,-50%); animation-delay:2.4s; color:var(--v-schools); }
.pl-schools::before { background:var(--v-schools); }
.pl-health { right:30%; top:66%; transform:translate(100%,-50%); animation-delay:2.8s; color:var(--v-health); }
.pl-health::before { background:var(--v-health); }
@media (max-width:960px) { .pulse-label { display:none; } }
@media (max-width:960px) { .hero-grid { grid-template-columns:1fr; gap:48px; } .hero-visual { max-width:460px; margin:0 auto; } }

/* ---------- Squad hero ---------- */
.shero { padding:160px 0 80px; min-height:100vh; display:flex; align-items:center; position:relative; }
.shero-content { opacity:1; max-width:900px; }
.shero h1 { font-size:clamp(44px,5.4vw,68px); margin-bottom:32px; max-width:780px; }
.shero h1 em { position:relative; }
.shero h1 em::after { content:''; position:absolute; left:0; right:0; bottom:0.08em; height:0.4em; background:var(--v-soft); z-index:-1; opacity:0.7; }
.shero-lede { font-size:18px; line-height:1.55; color:var(--ink-60); max-width:620px; margin-bottom:40px; }
.hero-quote { background:var(--v-soft); border-left:3px solid var(--v); border-radius:0 12px 12px 0; padding:24px 28px; max-width:580px; margin-bottom:40px; }
.hero-quote p { font-family:var(--serif); font-style:italic; font-size:18px; line-height:1.5; color:var(--ink); margin-bottom:12px; }
.hero-quote cite { font-family:var(--mono); font-size:10px; color:var(--ink-60); text-transform:uppercase; letter-spacing:0.14em; font-style:normal; }
.hero-sigil { position:absolute; top:58%; right:60px; transform:translateY(-50%); width:360px; opacity:0.9; pointer-events:none; }
.hero-sigil svg { width:100%; height:auto; overflow:visible; }
@media (max-width:1100px) { .hero-sigil { display:none; } }

/* ---------- Squads grid (hub) ---------- */
.squads { background:linear-gradient(180deg,transparent,var(--bg-soft) 40%,var(--bg-soft) 60%,transparent); }
.squad-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-bottom:20px; }
.squad-card { background:var(--bg); border:1px solid var(--ink-08); border-radius:16px; overflow:hidden; text-decoration:none; color:var(--ink); transition:all 0.3s; display:flex; flex-direction:column; position:relative; cursor:pointer; }
.squad-card:hover { transform:translateY(-6px); box-shadow:0 40px 60px -30px rgba(10,15,28,0.18); }
.squad-card[data-v="tech"]:hover { border-color:var(--v-tech); }
.squad-card[data-v="build"]:hover { border-color:var(--v-build); }
.squad-card[data-v="schools"]:hover { border-color:var(--v-schools); }
.squad-card[data-v="health"]:hover { border-color:var(--v-health); }
.squad-card[data-v="services"]:hover { border-color:var(--v-services); }
.squad-card[data-v="factory"]:hover { border-color:var(--v-factory); }
.squad-visual { aspect-ratio:1.4; padding:40px; display:flex; align-items:center; justify-content:center; position:relative; }
.squad-visual[data-v="tech"] { background:var(--v-tech-soft); }
.squad-visual[data-v="build"] { background:var(--v-build-soft); }
.squad-visual[data-v="schools"] { background:var(--v-schools-soft); }
.squad-visual[data-v="health"] { background:var(--v-health-soft); }
.squad-visual[data-v="services"] { background:var(--v-services-soft); }
.squad-visual[data-v="factory"] { background:var(--v-factory-soft); }
.squad-logo-wrap { width:100%; max-width:280px; display:flex; align-items:center; justify-content:center; }
.squad-logo-wrap svg { width:100%; height:auto; }
.squad-corner { position:absolute; top:16px; right:16px; font-family:var(--mono); font-size:9px; text-transform:uppercase; letter-spacing:0.14em; padding:4px 10px; border-radius:4px; }
.squad-visual[data-v="tech"] .squad-corner { color:var(--v-tech); background:rgba(67,56,202,0.08); }
.squad-visual[data-v="build"] .squad-corner { color:var(--v-build); background:rgba(139,90,43,0.08); }
.squad-visual[data-v="schools"] .squad-corner { color:var(--v-schools); background:rgba(122,31,61,0.08); }
.squad-visual[data-v="health"] .squad-corner { color:var(--v-health); background:rgba(61,107,90,0.08); }
.squad-visual[data-v="services"] .squad-corner { color:var(--v-services); background:rgba(51,65,85,0.08); }
.squad-visual[data-v="factory"] .squad-corner { color:var(--v-factory); background:rgba(194,65,12,0.08); }
.squad-body { padding:28px; flex:1; display:flex; flex-direction:column; }
.squad-name { font-family:var(--serif); font-weight:400; font-size:22px; letter-spacing:-0.02em; margin-bottom:6px; }
.squad-name em { font-style:italic; }
.squad-tagline { font-family:var(--mono); font-size:10px; text-transform:uppercase; letter-spacing:0.12em; color:var(--ink-60); margin-bottom:16px; }
.squad-desc { font-size:14px; color:var(--ink-60); line-height:1.55; margin-bottom:20px; flex:1; }
.squad-meta { display:flex; gap:16px; padding-top:16px; border-top:1px solid var(--ink-08); font-family:var(--mono); font-size:10px; color:var(--ink-40); text-transform:uppercase; letter-spacing:0.12em; }
.squad-meta strong { display:block; font-family:var(--serif); font-style:italic; font-weight:400; font-size:13px; color:var(--ink); text-transform:none; letter-spacing:-0.005em; margin-top:2px; }
.squad-arrow { position:absolute; bottom:28px; right:28px; width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; border:1px solid var(--ink-15); transition:all 0.3s; color:var(--ink-40); }
.squad-card:hover .squad-arrow { transform:translateX(4px); }
@media (max-width:900px) { .squad-grid { grid-template-columns:1fr; } }

/* ---------- Method (shared) ---------- */
.method-wrap { padding:40px 0; }
.method { background:var(--ink); color:var(--bg); margin:40px 0; border-radius:24px; padding:100px 64px; position:relative; overflow:hidden; }
.method::before { content:''; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,0.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.02) 1px,transparent 1px); background-size:48px 48px; }
.method .section-num { color:rgba(255,255,255,0.4); }
.method .section-num::before { background:rgba(255,255,255,0.2); }
.method h2 { color:var(--bg); margin-bottom:20px; font-size:clamp(36px,4vw,52px); }
.method h2 em { color:var(--v-light); }
.method-lede { color:rgba(255,255,255,0.65); font-size:17px; line-height:1.55; max-width:620px; margin-bottom:72px; }
.method-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:32px; position:relative; }
.method-steps::before { content:''; position:absolute; top:32px; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,rgba(255,255,255,0.15) 10%,rgba(255,255,255,0.15) 90%,transparent); }
.mstep { position:relative; z-index:1; }
.mstep-marker { width:64px; height:64px; background:var(--ink); border:1px solid rgba(255,255,255,0.2); border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-style:italic; font-size:22px; color:rgba(255,255,255,0.95); margin-bottom:24px; }
.mstep h3 { font-weight:400; font-size:18px; margin-bottom:10px; letter-spacing:-0.015em; color:var(--bg); }
.mstep p { font-size:13.5px; color:rgba(255,255,255,0.6); line-height:1.55; }
@media (max-width:900px) { .method { padding:60px 32px; margin:24px 0; } .method-steps { grid-template-columns:1fr; gap:32px; } .method-steps::before { display:none; } }

/* ---------- Why (hub) ---------- */
.why-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--ink-08); border:1px solid var(--ink-08); border-radius:16px; overflow:hidden; }
.why-card { background:var(--bg); padding:48px 40px; }
.why-card-num { font-family:var(--mono); font-size:11px; color:var(--ink-40); letter-spacing:0.14em; margin-bottom:20px; }
.why-card h3 { font-weight:400; font-size:24px; margin-bottom:12px; letter-spacing:-0.02em; }
.why-card h3 em { font-style:italic; color:var(--brand); }
.why-card p { color:var(--ink-60); font-size:14.5px; line-height:1.6; }
@media (max-width:768px) { .why-grid { grid-template-columns:1fr; } }

/* ---------- Cases (hub) ---------- */
.cases { background:var(--bg-soft); border-top:1px solid var(--ink-08); border-bottom:1px solid var(--ink-08); }
.cases-list { display:grid; grid-template-columns:1fr; gap:20px; margin-top:40px; }
.case-row { background:var(--bg); border:1px solid var(--ink-08); border-radius:16px; padding:32px 40px; display:grid; grid-template-columns:auto 1.2fr 2fr auto; gap:40px; align-items:center; transition:all 0.3s; }
.case-row:hover { box-shadow:0 16px 32px -16px rgba(10,15,28,0.1); }
.case-vertical { font-family:var(--mono); font-size:10px; text-transform:uppercase; letter-spacing:0.14em; padding:6px 12px; border-radius:4px; white-space:nowrap; }
.case-vertical.tech { color:var(--v-tech); background:rgba(67,56,202,0.08); }
.case-vertical.build { color:var(--v-build); background:rgba(139,90,43,0.08); }
.case-vertical.schools { color:var(--v-schools); background:rgba(122,31,61,0.08); }
.case-vertical.health { color:var(--v-health); background:rgba(61,107,90,0.08); }
.case-vertical.services { color:var(--v-services); background:rgba(51,65,85,0.08); }
.case-vertical.factory { color:var(--v-factory); background:rgba(194,65,12,0.08); }
.case-name { font-family:var(--serif); font-weight:400; font-size:20px; letter-spacing:-0.015em; }
.case-name em { font-style:italic; color:var(--ink-60); font-size:13px; display:block; margin-top:2px; font-weight:400; }
.case-result { font-family:var(--serif); font-style:italic; font-size:16px; color:var(--ink-60); line-height:1.4; }
.case-metric { font-family:var(--serif); font-size:36px; font-weight:400; letter-spacing:-0.02em; color:var(--brand); text-align:right; line-height:1; }
.case-metric em { font-style:italic; color:var(--ink); font-size:12px; font-weight:400; display:block; margin-top:4px; }
@media (max-width:900px) { .case-row { grid-template-columns:1fr; gap:16px; padding:24px; } .case-metric { text-align:left; } }

/* ---------- Compare (hub) ---------- */
.compare-panel { background:var(--bg); border:1px solid var(--ink-08); border-radius:24px; overflow:hidden; display:grid; grid-template-columns:1fr 1fr; margin-top:40px; }
.compare-col { padding:48px; }
.compare-col.left { border-right:1px solid var(--ink-08); background:var(--bg-soft); }
.compare-col .compare-label { font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:0.14em; color:var(--ink-40); margin-bottom:20px; }
.compare-col h3 { font-weight:300; font-size:26px; letter-spacing:-0.02em; line-height:1.2; margin-bottom:24px; }
.compare-col h3 em { font-style:italic; font-weight:400; color:var(--brand); }
.compare-col.left h3 em { color:var(--ink-60); }
.compare-col ul { list-style:none; }
.compare-col li { padding:14px 0; border-top:1px solid var(--ink-08); display:flex; gap:12px; font-size:14px; color:var(--ink-80); line-height:1.5; }
.compare-col li::before { content:''; flex-shrink:0; width:18px; height:18px; border-radius:50%; margin-top:1px; }
.compare-col.right li::before { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' fill='none'%3E%3Ccircle cx='9' cy='9' r='8' stroke='%23002F6C' stroke-width='1' opacity='0.3'/%3E%3Cpath d='M5 9l2.5 2.5L13 6' stroke='%23002F6C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.compare-col.left li { color:var(--ink-40); text-decoration:line-through; text-decoration-color:var(--ink-15); }
.compare-col.left li::before { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' fill='none'%3E%3Ccircle cx='9' cy='9' r='8' stroke='rgba(10,15,28,0.15)' stroke-width='1'/%3E%3Cpath d='M5.5 5.5l7 7M12.5 5.5l-7 7' stroke='rgba(10,15,28,0.3)' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E"); }
@media (max-width:768px) { .compare-panel { grid-template-columns:1fr; } .compare-col.left { border-right:none; border-bottom:1px solid var(--ink-08); } .compare-col { padding:32px 24px; } }

/* ---------- Pain (squad) ---------- */
.pain { background:linear-gradient(180deg,transparent,var(--bg-soft) 40%,var(--bg-soft) 60%,transparent); }
.pain-statement { font-family:var(--serif); font-size:18px; font-style:italic; color:var(--ink-60); max-width:720px; margin-bottom:56px; line-height:1.6; }
.pain-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--ink-08); border:1px solid var(--ink-08); border-radius:16px; overflow:hidden; }
.pain-card { background:var(--bg); padding:36px 32px; transition:background 0.3s; }
.pain-card:hover { background:var(--v-soft); }
.pain-card-num { font-family:var(--mono); font-size:11px; color:var(--ink-40); letter-spacing:0.14em; margin-bottom:14px; }
.pain-card h3 { font-size:20px; font-weight:400; margin-bottom:10px; letter-spacing:-0.015em; }
.pain-card p { color:var(--ink-60); font-size:14px; line-height:1.55; }
@media (max-width:768px) { .pain-grid { grid-template-columns:1fr; } }

/* ---------- Capabilities (squad) ---------- */
.caps-list { border-top:1px solid var(--ink-08); margin-top:40px; }
.cap { display:grid; grid-template-columns:80px 1fr 2fr 60px; gap:32px; padding:32px 0; border-bottom:1px solid var(--ink-08); align-items:center; transition:all 0.3s; }
.cap:hover { padding:32px 16px; background:var(--v-soft); }
.cap-num { font-family:var(--mono); font-size:11px; color:var(--ink-40); letter-spacing:0.14em; }
.cap h3 { font-size:22px; font-weight:400; letter-spacing:-0.02em; }
.cap p { color:var(--ink-60); font-size:15px; line-height:1.55; }
.cap-arrow { text-align:right; color:var(--ink-40); transition:all 0.3s; }
.cap:hover .cap-arrow { color:var(--v); transform:translateX(4px); }
@media (max-width:768px) { .cap { grid-template-columns:1fr; gap:8px; padding:24px 0; } .cap-arrow { display:none; } }

/* ---------- Case (squad) ---------- */
.case-sec { background:var(--bg-soft); border-top:1px solid var(--ink-08); border-bottom:1px solid var(--ink-08); }
.case-tag { font-family:var(--mono); font-size:10px; color:var(--v); background:color-mix(in srgb,var(--v) 8%,transparent); padding:6px 12px; border-radius:4px; text-transform:uppercase; letter-spacing:0.14em; margin-bottom:16px; display:inline-block; }
.case-flow { display:grid; grid-template-columns:1fr auto 1fr auto 1fr; gap:20px; align-items:stretch; margin-top:40px; margin-bottom:40px; }
.case-step { background:var(--bg); border:1px solid var(--ink-08); border-radius:12px; padding:28px; }
.case-step.highlight { border-color:var(--v); box-shadow:0 8px 24px var(--v-glow); }
.case-step-label { font-family:var(--mono); font-size:10px; text-transform:uppercase; letter-spacing:0.14em; color:var(--ink-40); margin-bottom:12px; }
.case-step.highlight .case-step-label { color:var(--v); }
.case-step p { font-size:17px; font-weight:400; line-height:1.4; font-family:var(--serif); letter-spacing:-0.015em; }
.case-arrow { display:flex; align-items:center; color:var(--ink-40); }
.case-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--ink-08); border:1px solid var(--ink-08); border-radius:16px; overflow:hidden; }
.metric { background:var(--bg); padding:40px 32px; }
.metric-value { font-family:var(--serif); font-size:clamp(32px,4vw,48px); font-weight:400; letter-spacing:-0.03em; color:var(--v); line-height:1; margin-bottom:12px; font-style:italic; }
.metric-label { font-size:14px; color:var(--ink-60); line-height:1.4; }
.metric-label strong { display:block; color:var(--ink); font-weight:400; margin-bottom:4px; }
@media (max-width:900px) { .case-flow { grid-template-columns:1fr; } .case-arrow { transform:rotate(90deg); justify-content:center; padding:8px 0; } .case-metrics { grid-template-columns:1fr; } }

/* ---------- FAQ (squad) ---------- */
.faq-list { margin-top:40px; border-top:1px solid var(--ink-08); }
.faq-item { border-bottom:1px solid var(--ink-08); }
.faq-question { width:100%; background:none; border:none; text-align:left; padding:28px 0; font-family:var(--serif); font-size:21px; font-weight:400; color:var(--ink); cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:24px; letter-spacing:-0.015em; transition:color 0.3s; }
.faq-question:hover { color:var(--v); }
.faq-icon { width:36px; height:36px; border-radius:50%; border:1px solid var(--ink-15); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:all 0.4s; color:var(--ink); font-size:14px; }
.faq-item.open .faq-icon { background:var(--v); color:#fff; border-color:var(--v); transform:rotate(45deg); }
.faq-answer { max-height:0; overflow:hidden; transition:max-height 0.4s cubic-bezier(0.22,1,0.36,1); }
.faq-answer-inner { padding:0 0 32px; color:var(--ink-60); font-size:16px; line-height:1.6; max-width:720px; }
.faq-item.open .faq-answer { max-height:260px; }

/* ---------- Final CTA ---------- */
.final-cta { text-align:center; padding:140px 0 120px; }
.final-cta h2 { font-size:clamp(40px,5vw,64px); margin-bottom:24px; }
.final-cta p { color:var(--ink-60); font-size:17px; line-height:1.55; max-width:560px; margin:0 auto 40px; }
.final-cta-buttons { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-bottom:32px; }
.final-cta-trust { display:flex; justify-content:center; gap:32px; flex-wrap:wrap; font-family:var(--mono); font-size:11px; color:var(--ink-40); text-transform:uppercase; letter-spacing:0.14em; }
.final-cta-trust span::before { content:'◆'; color:var(--v); margin-right:8px; font-size:8px; vertical-align:middle; }

/* ---------- Lead form ---------- */
.lead-form-section h2 { font-size:clamp(32px,4vw,48px); margin-bottom:20px; }
.lead-form-section > .container > .reveal > p { color:var(--ink-60); font-size:17px; line-height:1.55; max-width:560px; margin-bottom:32px; }
.lead-form { max-width:620px; }
.lead-form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
.lead-form-field { display:flex; flex-direction:column; gap:8px; }
.lead-form-field label { font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:0.12em; color:var(--ink-60); }
.lead-form-field input { width:100%; font-family:var(--sans); font-size:15px; color:var(--ink); background:var(--bg); border:1px solid var(--ink-15); border-radius:10px; padding:14px 16px; transition:border-color 0.2s, box-shadow 0.2s; }
.lead-form-field input::placeholder { color:var(--ink-40); }
.lead-form-field input:focus { outline:none; border-color:var(--v); box-shadow:0 0 0 3px var(--v-glow); }
.lead-form .btn-primary { margin-top:8px; font-family:var(--sans); }
.lead-form-error { background:rgba(185,28,28,0.06); border:1px solid rgba(185,28,28,0.25); color:#b91c1c; font-size:14px; padding:12px 16px; border-radius:10px; margin-bottom:16px; }
.lead-form-success { border:1px solid var(--ink-08); background:var(--bg); border-radius:16px; padding:48px 32px; max-width:620px; text-align:center; }
.lead-form-success h3 { font-family:var(--serif); font-weight:300; font-size:28px; letter-spacing:-0.02em; margin-bottom:12px; }
.lead-form-success p { color:var(--ink-60); font-size:16px; line-height:1.55; max-width:420px; margin:0 auto; }
@media (max-width:600px) { .lead-form-row { grid-template-columns:1fr; } }

/* ---------- Footer ---------- */
footer { background:var(--ink); color:var(--bg); padding:80px 0 40px; }
.footer-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:48px; margin-bottom:60px; }
.footer-brand-logo svg { height:56px; width:auto; }
.footer-tagline { color:rgba(255,255,255,0.5); font-size:14px; line-height:1.55; margin-top:24px; max-width:300px; }
.footer-col h3 { font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:0.14em; color:rgba(255,255,255,0.5); margin-bottom:20px; font-weight:500; }
.footer-col a, .footer-col p { color:rgba(255,255,255,0.85); font-size:14px; line-height:1.8; text-decoration:none; }
.footer-col a { display:block; transition:color 0.3s; cursor:pointer; }
.footer-col a:hover { color:var(--v-light); }
.footer-col a.current { color:var(--v-light); }
.footer-bottom { border-top:1px solid rgba(255,255,255,0.08); padding-top:32px; display:flex; justify-content:space-between; font-family:var(--mono); font-size:11px; color:rgba(255,255,255,0.6); text-transform:uppercase; letter-spacing:0.12em; flex-wrap:wrap; gap:16px; }
.footer-status::before { content:''; display:inline-block; width:6px; height:6px; background:var(--green); border-radius:50%; margin-right:8px; vertical-align:middle; animation:livePulse 1.8s ease-in-out infinite; }
@keyframes livePulse { 0%,100% { opacity:1; } 50% { opacity:0.4; } }
@media (max-width:900px) { .footer-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:600px) { .footer-grid { grid-template-columns:1fr; } section { padding:72px 0; } }

.reveal { opacity:0; transform:translateY(20px); transition:opacity 0.8s cubic-bezier(0.22,1,0.36,1),transform 0.8s cubic-bezier(0.22,1,0.36,1); }
.reveal.in { opacity:1; transform:translateY(0); }
