/* ===========================================================
   INVANTAGE — styles
   Concept C, edge-anchored. Static, dependency-free.
   Palette: near-black #04060c, cyan accent #43e0ff.
   Type: Space Grotesk (headings) + Space Mono (labels).
   =========================================================== */

:root{
  --bg:#04060c;
  --bg2:#070a12;
  --text:#eaf2ff;
  --dim:#8fa3c8;
  --accent:#43e0ff;
  --line:rgba(120,160,210,.16);
}

/* light theme overrides (toggled via data-theme="light" on <html>) */
[data-theme="light"]{
  --bg:#eef2f8;
  --bg2:#ffffff;
  --text:#0c1726;
  --dim:#56657f;
  --accent:#0c8aa8;
  --line:rgba(20,45,80,.14);
}
[data-theme="light"] nav.scrolled{background:rgba(238,242,248,.85);}
[data-theme="light"] .nlinks.open{background:rgba(238,242,248,.97);}
[data-theme="light"] .heroFade{
  background:radial-gradient(ellipse 72% 70% at 40% 55%,transparent 36%,rgba(238,242,248,.55)),
  linear-gradient(180deg,rgba(238,242,248,.45),transparent 24%,transparent 56%,var(--bg) 94%);}
[data-theme="light"] .b1{color:#fff;box-shadow:0 0 26px rgba(12,138,168,.3);}
[data-theme="light"] .ncta{color:#fff;}
[data-theme="light"] .b2{color:var(--text);border-color:rgba(20,45,80,.28);}
[data-theme="light"] .card,
[data-theme="light"] .step,
[data-theme="light"] .mem,
[data-theme="light"] .briefCard{background:#fff;}
[data-theme="light"] #articleBody{color:#26344a;}
[data-theme="light"] #articleBody code{background:rgba(20,45,80,.08);}

/* copy-to-clipboard toast (mailto fallback) */
#toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,12px);background:var(--bg2);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:12px 18px;font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.5px;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;z-index:999;box-shadow:0 8px 30px rgba(0,0,0,.25);}
#toast.show{opacity:1;transform:translate(-50%,0);}
#toast b{color:var(--accent);font-weight:400;}

/* theme toggle button */
.navctrls{display:flex;align-items:center;gap:12px;}
.themeToggle{background:none;border:1px solid var(--line);color:var(--text);width:38px;height:38px;border-radius:8px;display:grid;place-items:center;cursor:pointer;transition:border-color .2s,color .2s;}
.themeToggle:hover{border-color:var(--accent);color:var(--accent);}
.themeToggle svg{width:18px;height:18px;}
.themeToggle .t-moon{display:none;}
[data-theme="light"] .themeToggle .t-sun{display:none;}
[data-theme="light"] .themeToggle .t-moon{display:block;}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'Space Grotesk',system-ui,sans-serif;
  overflow-x:hidden;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
.mono{font-family:'Space Mono',ui-monospace,monospace;}
a{color:inherit;}
::selection{background:var(--accent);color:var(--bg);}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px;}

/* skip link for keyboard users */
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--accent);color:var(--bg);padding:10px 16px;font-weight:600;border-radius:0 0 6px 0;}
.skip:focus{left:0;}

/* ---------- shared section scaffold (edge-anchored) ---------- */
section{position:relative;z-index:2;}
.sec{padding:120px 6vw 120px 5vw;display:grid;grid-template-columns:140px minmax(0,1fr);gap:46px;}
.rail{position:relative;}
.rail .n{font-family:'Space Mono',monospace;font-size:28px;font-weight:700;color:var(--accent);line-height:1;}
.rail .vt{writing-mode:vertical-rl;text-transform:uppercase;letter-spacing:4px;font-size:11px;color:var(--dim);margin-top:18px;font-family:'Space Mono',monospace;}
.rail::after{content:'';position:absolute;left:6px;top:64px;bottom:8px;width:1px;background:linear-gradient(var(--accent),transparent);opacity:.5;}
.content{max-width:1100px;}
.h2{font-weight:600;font-size:clamp(2rem,4.6vw,3.5rem);line-height:1.03;letter-spacing:-1.5px;margin-bottom:18px;}
.h2 em{font-style:normal;color:var(--accent);}
.intro{color:var(--dim);max-width:58ch;font-size:1.1rem;margin-bottom:50px;}

.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);}
.reveal.in{opacity:1;transform:none;}

/* ---------- background flow field ---------- */
#flow{position:fixed;inset:0;z-index:0;display:block;}
.heroFade{position:fixed;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(ellipse 72% 70% at 40% 55%,transparent 36%,rgba(4,6,12,.62)),
  linear-gradient(180deg,rgba(4,6,12,.45),transparent 24%,transparent 56%,var(--bg) 94%);}

/* ---------- nav ---------- */
nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:24px 5vw;transition:background .3s,padding .3s,border-color .3s;border-bottom:1px solid transparent;}
nav.scrolled{background:rgba(4,6,12,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:15px 5vw;border-color:var(--line);}
.brand{font-weight:700;letter-spacing:3px;font-size:18px;text-decoration:none;}
.brand b{color:var(--accent);}
.nlinks{display:flex;gap:30px;font-size:13px;letter-spacing:1px;text-transform:uppercase;}
.nlinks a{color:var(--dim);text-decoration:none;transition:color .2s;}
.nlinks a:hover{color:#fff;}
.ncta{font-size:13px;letter-spacing:.5px;font-weight:600;color:var(--bg);background:var(--accent);padding:11px 20px;border-radius:6px;text-decoration:none;transition:box-shadow .2s;}
.ncta:hover{box-shadow:0 0 24px rgba(67,224,255,.5);}
.menuBtn{display:none;background:none;border:none;color:var(--text);cursor:pointer;font-size:24px;line-height:1;}

/* ---------- hero (bottom-left anchored) ---------- */
header{position:relative;z-index:2;min-height:100vh;display:flex;align-items:flex-end;padding:0 6vw 13vh 5vw;}
.heroInner{max-width:780px;}
.kick{font-family:'Space Mono',monospace;font-size:12px;letter-spacing:4px;color:var(--accent);text-transform:uppercase;margin-bottom:20px;opacity:0;animation:fade 1s .3s forwards;}
h1{font-weight:600;font-size:clamp(2rem,min(6vw,6.4vh),5.2rem);line-height:1.02;letter-spacing:-2px;margin-bottom:26px;opacity:0;animation:fade 1s .5s forwards;}
h1 em{font-style:normal;color:var(--accent);}
.lede{font-size:clamp(1.05rem,1.6vw,1.3rem);color:var(--dim);max-width:50ch;margin-bottom:34px;opacity:0;animation:fade 1s .7s forwards;}
.hbtns{display:flex;gap:16px;flex-wrap:wrap;opacity:0;animation:fade 1s .9s forwards;}
@keyframes fade{to{opacity:1;}}

.b1{display:inline-block;font-weight:600;font-size:14px;letter-spacing:.5px;color:var(--bg);background:var(--accent);border:none;padding:15px 30px;border-radius:6px;cursor:pointer;text-decoration:none;box-shadow:0 0 30px rgba(67,224,255,.4);transition:transform .2s;}
.b1:hover{transform:translateY(-2px);}
.b2{display:inline-block;font-weight:500;font-size:14px;color:#fff;background:transparent;border:1px solid rgba(255,255,255,.25);padding:15px 30px;border-radius:6px;cursor:pointer;text-decoration:none;transition:border-color .2s,color .2s;}
.b2:hover{border-color:var(--accent);color:var(--accent);}

.heroMeta{position:absolute;right:5vw;bottom:13vh;text-align:right;font-family:'Space Mono',monospace;font-size:11px;letter-spacing:1px;color:var(--dim);line-height:2;}
.heroMeta .live i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent);margin-right:6px;animation:bl 1.8s infinite;}
@keyframes bl{0%,100%{opacity:1}50%{opacity:.25}}

/* ---------- services ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;}
.card{border:1px solid var(--line);border-radius:14px;padding:32px 28px;background:rgba(120,160,210,.03);transition:transform .3s,border-color .3s,background .3s;}
.card:hover{border-color:rgba(67,224,255,.45);transform:translateY(-6px);background:rgba(67,224,255,.04);}
.card .ico{width:48px;height:48px;display:grid;place-items:center;border-radius:11px;border:1px solid var(--line);background:rgba(67,224,255,.06);color:var(--accent);margin-bottom:20px;}
.card .ico svg{width:24px;height:24px;}
.card h3{font-weight:600;font-size:1.25rem;margin-bottom:11px;letter-spacing:-.5px;}
.card p{color:var(--dim);font-size:1rem;}
.card .tags{margin-top:16px;font-family:'Space Mono',monospace;font-size:11px;letter-spacing:1px;color:var(--accent);opacity:.8;}

/* ---------- about ---------- */
.about{background:var(--bg2);}
.aboutGrid{display:grid;grid-template-columns:1.15fr 1fr;gap:54px;align-items:center;}
.statement{font-weight:500;font-size:clamp(1.5rem,3vw,2.4rem);line-height:1.3;letter-spacing:-1px;max-width:24ch;margin-bottom:16px;}
.statement em{font-style:normal;color:var(--accent);}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:28px 20px;}
.stat .v{font-weight:700;font-size:clamp(2rem,3.6vw,3rem);letter-spacing:-1px;line-height:1;}
.stat .k{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:1.5px;color:var(--dim);text-transform:uppercase;margin-top:8px;}

/* ---------- approach ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.step{border:1px solid var(--line);border-radius:14px;padding:28px;transition:border-color .3s;}
.step:hover{border-color:rgba(67,224,255,.4);}
.step .sn{font-family:'Space Mono',monospace;color:var(--accent);font-size:13px;margin-bottom:16px;}
.step h4{font-weight:600;font-size:1.22rem;margin-bottom:10px;letter-spacing:-.5px;}
.step p{color:var(--dim);font-size:.98rem;}

/* ---------- team ---------- */
.team{background:var(--bg2);}
.members{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.mem{border:1px solid var(--line);border-radius:14px;padding:24px;transition:transform .3s,border-color .3s;}
.mem:hover{border-color:rgba(67,224,255,.4);transform:translateY(-4px);}
.mem .av{width:52px;height:52px;border-radius:50%;background:rgba(67,224,255,.08);display:grid;place-items:center;font-weight:700;color:var(--accent);border:1px solid var(--line);margin-bottom:16px;}
.mem .nm{font-weight:600;font-size:1.05rem;}
.mem .rl{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:1px;color:var(--dim);text-transform:uppercase;margin-top:4px;}

/* ---------- contact ---------- */
.contactWrap{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start;}
.cinfo p{color:var(--dim);margin-bottom:26px;font-size:1.1rem;max-width:42ch;}
.contactActions{display:flex;gap:16px;flex-wrap:wrap;}
.cdetail .item{font-family:'Space Mono',monospace;font-size:13px;color:var(--dim);padding:14px 0;border-top:1px solid var(--line);}
.cdetail .item b{color:var(--text);font-weight:500;display:block;margin-bottom:3px;letter-spacing:1px;text-transform:uppercase;font-size:11px;}
.cdetail .item a{color:var(--accent);text-decoration:none;}
.cdetail .item a:hover{text-decoration:underline;}

/* ---------- intelligence briefs ---------- */
.briefsTease{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;margin-bottom:28px;}
.briefMini{display:grid;gap:20px;}
.briefCard{display:flex;flex-direction:column;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:14px;padding:26px 26px 24px;background:rgba(120,160,210,.03);transition:transform .3s,border-color .3s,background .3s;}
.briefCard:hover{border-color:rgba(67,224,255,.45);transform:translateY(-5px);background:rgba(67,224,255,.04);}
.briefCard.feat{justify-content:flex-end;padding:32px 30px;min-height:300px;}
.briefCard .bmeta{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:1px;color:var(--accent);text-transform:uppercase;margin-bottom:12px;}
.briefCard h3{font-weight:600;letter-spacing:-.5px;line-height:1.18;margin-bottom:10px;font-size:1.15rem;}
.briefCard.feat h3{font-size:clamp(1.4rem,2.4vw,2rem);}
.briefCard p{color:var(--dim);font-size:.98rem;margin-bottom:16px;}
.briefCard .bmore{font-family:'Space Mono',monospace;font-size:12px;letter-spacing:1px;color:var(--accent);margin-top:auto;}
.viewall{display:inline-block;font-family:'Space Mono',monospace;font-size:13px;letter-spacing:1px;color:var(--text);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:5px;transition:gap .3s;}
.viewall:hover{color:var(--accent);}
@media(max-width:820px){.briefsTease{grid-template-columns:1fr;}.briefCard.feat{min-height:0;}}

/* ---------- briefs listing + article pages ---------- */
.subpage{padding-top:90px;}
/* reset the full-height hero behaviour inherited from the base `header` rule */
.pagehead{min-height:0;display:block;align-items:initial;padding:50px 5vw 30px;max-width:900px;}
.pagehead .kick{position:static;animation:none;opacity:1;}
.pagehead h1{font-size:clamp(2rem,5vw,3.4rem);animation:none;opacity:1;letter-spacing:-1.5px;margin-bottom:14px;}
.back{display:inline-block;font-family:'Space Mono',monospace;font-size:12px;letter-spacing:1px;color:var(--dim);text-decoration:none;margin-bottom:24px;}
.back:hover{color:var(--accent);}
.briefsListWrap{padding:10px 5vw 100px;}
#briefsList{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;max-width:1200px;}

.article{max-width:740px;margin:0 auto;padding:30px 6vw 90px;}
.article .ameta{font-family:'Space Mono',monospace;font-size:12px;letter-spacing:1px;color:var(--dim);text-transform:uppercase;margin-bottom:40px;padding-bottom:24px;border-bottom:1px solid var(--line);}
#articleBody{font-size:1.12rem;line-height:1.75;color:#cdd8ee;}
#articleBody h2{font-weight:600;font-size:1.6rem;letter-spacing:-.5px;color:var(--text);margin:38px 0 14px;}
#articleBody h3{font-weight:600;font-size:1.25rem;color:var(--text);margin:30px 0 12px;}
#articleBody p{margin-bottom:20px;}
#articleBody ul,#articleBody ol{margin:0 0 20px 22px;}
#articleBody li{margin-bottom:8px;}
#articleBody a{color:var(--accent);}
#articleBody strong{color:var(--text);font-weight:600;}
#articleBody code{font-family:'Space Mono',monospace;font-size:.9em;background:rgba(120,160,210,.1);padding:2px 6px;border-radius:4px;}
#articleBody blockquote{border-left:2px solid var(--accent);padding:6px 0 6px 22px;margin:26px 0;color:var(--text);font-size:1.25rem;line-height:1.5;}
#articleBody hr{border:none;border-top:1px solid var(--line);margin:36px 0;}
.articleFoot{max-width:740px;margin:0 auto;padding:0 6vw 90px;}
.articleFoot h4{font-family:'Space Mono',monospace;font-size:12px;letter-spacing:2px;color:var(--dim);text-transform:uppercase;margin-bottom:20px;}
#articleNext{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media(max-width:820px){#articleNext{grid-template-columns:1fr;}}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line);padding:46px 5vw;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:18px;font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.5px;color:var(--dim);}
footer .fb{font-family:'Space Grotesk',sans-serif;font-weight:700;letter-spacing:3px;color:var(--text);font-size:16px;}
footer .fb b{color:var(--accent);}
footer nav.fnav{position:static;padding:0;background:none;border:none;display:flex;gap:22px;}
footer .fnav a{color:var(--dim);text-decoration:none;}
footer .fnav a:hover{color:var(--text);}

/* ===========================================================
   RESPONSIVE
   =========================================================== */

/* laptop / mid-size tier — keep it from getting tight */
@media(max-width:1500px){
  .sec{padding:100px 5vw;grid-template-columns:110px minmax(0,1fr);gap:34px;}
  .content{max-width:1000px;}
  .h2{font-size:clamp(1.8rem,4vw,3rem);}
  .rail .n{font-size:24px;}
}

/* short viewports (laptops, 16") — hero already scales by vh; trim spacing */
@media(max-height:1000px){
  header{padding-bottom:8vh;}
  .heroInner{max-width:600px;}
  h1{margin-bottom:22px;}
  .lede{font-size:1.05rem;margin-bottom:24px;max-width:46ch;}
  .kick{margin-bottom:14px;}
  .hbtns .b1,.hbtns .b2{padding:13px 26px;}
}

/* tablet */
@media(max-width:980px){
  .steps{grid-template-columns:1fr;}
  .members{grid-template-columns:1fr 1fr;}
  .aboutGrid{grid-template-columns:1fr;gap:36px;}
  .contactWrap{grid-template-columns:1fr;gap:34px;}
}

/* mobile */
@media(max-width:820px){
  .sec{grid-template-columns:1fr;gap:24px;padding:90px 6vw;}
  .rail{display:flex;align-items:center;gap:16px;}
  .rail .vt{writing-mode:horizontal-tb;margin-top:0;}
  .rail::after{display:none;}
  .nlinks{display:none;}
  .menuBtn{display:block;}
  .nlinks.open{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:rgba(4,6,12,.96);backdrop-filter:blur(14px);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px 5vw;}
  .nlinks.open a{padding:14px 0;border-bottom:1px solid var(--line);}
  .nlinks.open a:last-child{border-bottom:none;}
  .heroMeta{display:none;}
  header{min-height:90vh;padding-bottom:12vh;}
}

/* accessibility: respect reduced motion */
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important;}
  .reveal{opacity:1;transform:none;}
  .kick,h1,.lede,.hbtns{opacity:1;animation:none;}
}
