/* VEXIS site styles - extracted faithfully from the original Coming Soon bundle,
   extended with nav + blog styles in the same design language.
   Green #81b338. Inter body, JetBrains Mono utility. */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;700&display=swap');

:root{
  --bg:#000; --fg:#f9f9f9; --body:#cfd1d6; --muted:#8a8d94; --line:#1e1f24;
  --green:#81b338; --green-lo:#5d8228; --green-deep:#3a5120; --green-hi:#9fd84a;
  --card:#0c0c0d; --card-line:#2a2c31;
  --font:'Inter',system-ui,-apple-system,sans-serif; --mono:'JetBrains Mono',ui-monospace,monospace;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{background:var(--bg);-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{font-family:var(--font);background:var(--bg);color:var(--body);-webkit-font-smoothing:antialiased;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;overflow-x:hidden;}
a{color:inherit;text-decoration:none;}
img{display:block;}
.wrap{width:100%;max-width:1080px;margin:0 auto;padding:0 32px;}

/* top bar + nav */
header.top{padding:34px 0 0;}
.topin{display:flex;align-items:center;gap:18px;}
.topin .mark{height:46px;}
.topin .mark img{height:100%;width:auto;}
.nav{margin-left:auto;display:flex;align-items:center;gap:26px;}
.nav a{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);transition:color .15s;}
.nav a:hover,.nav a.active{color:var(--green);}
.topin .status{display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:8px 15px;}
.topin .status .dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 0 rgba(129,179,56,.6);animation:pulse 2.6s ease-out infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(129,179,56,.5);}70%{box-shadow:0 0 0 8px rgba(129,179,56,0);}100%{box-shadow:0 0 0 0 rgba(129,179,56,0);}}

/* hero centerpiece (landing) */
main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:56px 32px 40px;}
.kick{font-family:var(--mono);font-size:13px;letter-spacing:.28em;text-transform:uppercase;color:var(--green);}
h1{font-weight:800;letter-spacing:-.028em;line-height:1.04;color:var(--fg);font-size:clamp(34px,5.6vw,62px);max-width:16ch;margin-top:22px;text-wrap:balance;}
h1 .g{color:var(--green);}
.speed{display:flex;gap:13px;margin-top:30px;}
.speed i{display:block;width:20px;height:80px;border-radius:5px;transform:skewX(-16deg);}
.speed .s1{background:var(--green-deep);} .speed .s2{background:var(--green-lo);} .speed .s3{background:var(--green);}
.sub{font-size:clamp(16px,2.1vw,21px);color:var(--muted);margin-top:28px;max-width:42ch;}

/* rollout flow */
.flow{display:flex;align-items:flex-start;justify-content:center;gap:clamp(18px,3.4vw,40px);margin-top:54px;flex-wrap:wrap;}
.flow .node{display:flex;flex-direction:column;align-items:center;gap:13px;width:clamp(150px,16vw,184px);}
.flow .node img{height:clamp(26px,3.4vw,36px);width:auto;}
.flow .node .st{font-family:var(--mono);font-size:clamp(11px,1.4vw,13px);letter-spacing:.16em;text-transform:uppercase;}
.flow .node .desc{font-size:13px;line-height:1.45;color:var(--muted);max-width:20ch;text-wrap:balance;}
.flow .node.lead .st{color:var(--green);}
.flow .node.lead .desc{color:var(--body);}
.flow .node.soon{opacity:.5;}
.flow .node.soon .st{color:var(--body);}
.flow .arw{color:var(--green);font-size:32px;font-weight:300;line-height:1;margin-top:5px;align-self:flex-start;}
.flow .arw.dim{color:var(--green-lo);}
@media(max-width:620px){
  main{justify-content:flex-start;padding:44px 24px 36px;}
  .flow{flex-direction:column;flex-wrap:nowrap;align-items:center;gap:0;margin-top:42px;}
  .flow .node{width:100%;max-width:340px;gap:12px;}
  .flow .arw{transform:rotate(90deg);margin:20px 0;align-self:center;}
  .signup{margin-top:46px;}
  .nav{gap:16px;}
}

/* signup */
.signup{margin-top:58px;width:100%;max-width:500px;}
.signup .lbl{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:13px;}
.bh-embed{max-width:500px;margin:0 auto;min-height:60px;}
.micro{margin-top:12px;font-size:12.5px;color:var(--muted);}

/* footer */
footer{padding:26px 0 36px;}
.footin{display:flex;align-items:center;gap:18px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:24px;}
.footin .tagline{font-family:var(--mono);font-size:13px;color:var(--muted);letter-spacing:.02em;}
.footin .tagline b{color:var(--green);font-weight:700;}
.footin .social{display:inline-flex;align-items:center;gap:14px;}
.footin .social a{display:inline-flex;align-items:center;justify-content:center;color:var(--muted);transition:color .15s;}
.footin .social a:hover{color:var(--green);}
.footin .social svg{display:block;}
.footin .meta{margin-left:auto;font-family:var(--mono);font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);}
@media(max-width:560px){.footin{flex-direction:column;align-items:center;text-align:center;gap:10px;}.footin .meta{margin-left:0;}}

/* ============ BLOG ============ */
/* blog index + article share the same shell; main is left-aligned for reading */
main.doc{align-items:stretch;text-align:left;justify-content:flex-start;padding:56px 0 48px;}
.doc .wrap{max-width:760px;}
.doc.index .wrap{max-width:1080px;}

/* ---- blog masthead ---- */
.blog-head{margin-bottom:40px;padding-bottom:38px;border-bottom:1px solid var(--line);}
.blog-head .kick{color:var(--green);}
.blog-head h1{font-size:clamp(32px,5vw,54px);max-width:none;margin-top:16px;text-align:left;}
.blog-head p{color:var(--muted);margin-top:18px;font-size:clamp(15px,1.8vw,18px);line-height:1.6;max-width:56ch;}

/* topic chips */
.topics{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px;}
.topics .chip{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border:1px solid var(--card-line);border-radius:999px;padding:8px 15px;cursor:pointer;transition:color .15s,border-color .15s;background:none;}
.topics .chip::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--green-deep);}
.topics .chip.on{color:var(--green);border-color:var(--green-lo);}
.topics .chip.on::before{background:var(--green);}
.topics .chip:hover{color:var(--fg);border-color:var(--muted);}

/* ---- featured (newest) post ---- */
.section-label{display:flex;align-items:center;gap:14px;margin:44px 0 20px;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);}
.section-label::after{content:"";flex:1;height:1px;background:var(--line);}

.featured{display:grid;grid-template-columns:1.15fr .85fr;border:1px solid var(--card-line);border-radius:20px;overflow:hidden;background:var(--card);transition:border-color .18s;}
.featured:hover{border-color:var(--green-lo);}
.featured .fx-body{padding:clamp(30px,4vw,48px);display:flex;flex-direction:column;}
.featured .meta{display:flex;flex-wrap:wrap;gap:12px;align-items:center;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:20px;white-space:nowrap;}
.featured .pill{border:1px solid var(--green-lo);border-radius:999px;padding:4px 12px;color:var(--green);}
.featured .dot-sep{width:3px;height:3px;border-radius:50%;background:var(--muted);}
.featured h2{font-size:clamp(24px,3vw,36px);font-weight:800;letter-spacing:-.02em;color:var(--fg);line-height:1.1;text-wrap:balance;}
.featured:hover h2{color:var(--green-hi);}
.featured .excerpt{color:var(--body);margin-top:16px;font-size:16px;line-height:1.62;max-width:48ch;}
.featured .more{display:inline-flex;align-items:center;gap:9px;margin-top:auto;padding-top:28px;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--green);}
.featured .more span{transition:transform .18s;}
.featured:hover .more span{transform:translateX(5px);}

/* graphic panel echoing the landing speed-bars */
.featured .fx-art{position:relative;background:#070707;border-left:1px solid var(--card-line);display:flex;flex-direction:column;padding:clamp(28px,3.4vw,40px);overflow:hidden;min-height:300px;}
.featured .fx-art::before{content:"";position:absolute;left:50%;top:54%;width:min(340px,82%);aspect-ratio:1;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(129,179,56,.20),rgba(129,179,56,.04) 48%,transparent 70%);pointer-events:none;z-index:0;}
.featured .fx-art .issue{font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);position:relative;z-index:1;}
.featured .fx-art .issue b{color:var(--green);font-weight:700;}
.featured .fx-bars{display:flex;gap:14px;position:relative;z-index:1;margin:auto;}
.featured .fx-bars i{display:block;width:clamp(20px,2.4vw,30px);height:clamp(110px,15vw,168px);border-radius:6px;transform:skewX(-16deg);}
.featured .fx-bars i:nth-child(1){background:var(--green-deep);}
.featured .fx-bars i:nth-child(2){background:var(--green-lo);}
.featured .fx-bars i:nth-child(3){background:var(--green);}

/* ---- post grid (older posts) ---- */
.post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;margin-top:20px;}
.card{display:flex;flex-direction:column;border:1px solid var(--card-line);border-radius:16px;background:var(--card);padding:26px 26px 24px;transition:border-color .18s,transform .18s;}
.card:hover{border-color:var(--green-lo);transform:translateY(-3px);}
.card .meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:15px;}
.card .pill{border:1px solid var(--card-line);border-radius:999px;padding:3px 10px;color:var(--green);}
.card h3{font-size:19px;font-weight:700;color:var(--fg);line-height:1.22;letter-spacing:-.01em;}
.card:hover h3{color:var(--green-hi);}
.card .excerpt{color:var(--muted);margin-top:11px;font-size:14px;line-height:1.55;flex:1;}
.card .more{margin-top:18px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--green);}

/* soon tile (placeholder while the archive is small) */
.card.soon{align-items:flex-start;justify-content:center;border-style:dashed;background:transparent;}
.card.soon:hover{transform:none;border-color:var(--card-line);}
.card.soon .st{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--green);margin-bottom:12px;}
.card.soon p{color:var(--muted);font-size:14px;line-height:1.55;}

/* filter states (topic chips) */
.card.hide,.featured.hide{display:none;}
.lane-empty{display:none;border:1px dashed var(--card-line);border-radius:16px;padding:30px 26px;background:transparent;grid-column:1/-1;}
.lane-empty.show{display:block;}
.lane-empty .st{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--green);margin-bottom:12px;}
.lane-empty p{color:var(--muted);font-size:14px;line-height:1.55;}

/* ---- newsletter band (index) ---- */
.news-band{position:relative;margin-top:56px;border:1px solid rgba(129,179,56,.24);border-radius:20px;background:#000;padding:clamp(32px,4vw,52px);display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;overflow:hidden;}
.news-band::before{content:"";position:absolute;right:-6%;top:-40%;width:min(460px,70%);aspect-ratio:1;background:radial-gradient(circle,rgba(129,179,56,.20),rgba(129,179,56,.04) 46%,transparent 70%);pointer-events:none;z-index:0;}
.news-band>*{position:relative;z-index:1;}
.news-band .nb-copy .kick{color:var(--green);}
.news-band .nb-copy h2{font-size:clamp(22px,2.6vw,30px);font-weight:800;letter-spacing:-.02em;color:var(--fg);margin-top:14px;line-height:1.12;text-wrap:balance;}
.news-band .nb-copy p{color:var(--muted);margin-top:14px;font-size:15px;line-height:1.6;max-width:40ch;}
.news-band .nb-form .lbl{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:13px;}
.news-band .nb-form .bh-embed{min-height:60px;}
.news-band .nb-form .micro{margin-top:12px;font-size:12.5px;color:var(--muted);}

/* ---- reading progress bar (article) ---- */
.rp{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--green-lo),var(--green-hi));z-index:50;transition:width .05s linear;}

/* article */
.article .kick{color:var(--green);text-align:left;}
.article h1{font-size:clamp(28px,4.2vw,46px);max-width:none;margin-top:14px;text-align:left;line-height:1.08;letter-spacing:-.025em;}
.article .lede{color:var(--muted);font-size:clamp(17px,2vw,20px);line-height:1.55;margin-top:20px;max-width:60ch;}
.article .byline{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:26px;padding-bottom:26px;border-bottom:1px solid var(--line);}
.article .byline .who{display:flex;align-items:center;gap:12px;}
.article .byline .avatar{width:40px;height:40px;border-radius:50%;background:var(--green-deep);display:flex;align-items:center;justify-content:center;border:1px solid var(--green-lo);overflow:hidden;}
.article .byline .avatar svg{width:22px;height:22px;display:block;}
.article .byline .name{display:block;font-size:14px;font-weight:600;color:var(--fg);}
.article .byline .sub{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:3px;}
.article .byline .tags{margin-left:auto;display:flex;gap:12px;align-items:center;white-space:nowrap;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}
.article .byline .pill{border:1px solid var(--green-lo);border-radius:999px;padding:3px 11px;color:var(--green);}
.article .body{margin-top:34px;font-size:17.5px;line-height:1.75;color:var(--body);}
.article .body>p:first-of-type::first-letter{font-size:58px;font-weight:800;float:left;line-height:.86;padding:4px 12px 0 0;color:var(--green);}
.article .body h2{font-family:var(--font);font-size:clamp(22px,2.7vw,30px);font-weight:800;color:var(--fg);letter-spacing:-.02em;margin:44px 0 16px;line-height:1.18;}
.article .body h3{font-size:19px;font-weight:600;color:var(--fg);margin:28px 0 12px;}
.article .body p{margin:0 0 22px;}
.article .body a{color:var(--green);border-bottom:1px solid rgba(129,179,56,.35);}
.article .body a:hover{border-bottom-color:var(--green);}
.article .body strong{color:var(--fg);font-weight:600;}
.article .body ul,.article .body ol{margin:0 0 22px 22px;}
.article .body li{margin-bottom:9px;}
.article .body blockquote{border-left:3px solid var(--green);padding:6px 0 6px 24px;margin:32px 0;color:var(--fg);font-size:clamp(20px,2.4vw,25px);font-weight:600;line-height:1.4;letter-spacing:-.01em;}
.article .cta-block{position:relative;margin-top:42px;padding:clamp(30px,3.4vw,42px) clamp(26px,4vw,48px);background:#000;border:1px solid rgba(129,179,56,.28);border-radius:22px;text-align:center;overflow:hidden;}
.article .cta-block::before{content:"";position:absolute;left:50%;top:-46%;width:min(560px,120%);aspect-ratio:1;transform:translateX(-50%);background:radial-gradient(circle,rgba(129,179,56,.22),rgba(129,179,56,.05) 46%,transparent 70%);pointer-events:none;z-index:0;}
.article .cta-block>*{position:relative;z-index:1;}
.article .cta-block .bars{display:flex;gap:8px;justify-content:center;margin-bottom:18px;}
.article .cta-block .bars i{display:block;width:15px;height:34px;border-radius:4px;transform:skewX(-16deg);}
.article .cta-block .bars i:nth-child(1){background:var(--green-deep);}
.article .cta-block .bars i:nth-child(2){background:var(--green-lo);}
.article .cta-block .bars i:nth-child(3){background:var(--green);}
.article .cta-block .lbl{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--green);margin-bottom:12px;}
.article .cta-block h3{font-size:clamp(24px,3.2vw,38px);font-weight:800;letter-spacing:-.025em;color:var(--fg);margin-bottom:10px;line-height:1.06;text-wrap:balance;}
.article .cta-block .cta-sub{font-size:clamp(14px,1.7vw,16px);color:var(--muted);line-height:1.55;max-width:44ch;margin:0 auto 20px;}
.article .cta-block .bh-embed{min-height:60px;max-width:440px;margin:0 auto;}

/* author bio card */
.author{display:flex;gap:18px;align-items:flex-start;margin-top:44px;padding:26px;border:1px solid var(--card-line);border-radius:16px;background:var(--card);}
.author .avatar{width:52px;height:52px;flex:none;border-radius:50%;background:var(--green-deep);display:flex;align-items:center;justify-content:center;border:1px solid var(--green-lo);overflow:hidden;}
.author .avatar svg{width:28px;height:28px;display:block;}
.author .who .name{font-size:15px;font-weight:700;color:var(--fg);}
.author .who .role{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--green);margin-top:3px;}
.author .who p{color:var(--muted);font-size:14px;line-height:1.6;margin-top:12px;}

/* post nav footer */
.postnav{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:40px;padding-top:26px;border-top:1px solid var(--line);}
.back-link{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
.back-link:hover{color:var(--green);}
.postnav .next{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--green);display:inline-flex;align-items:center;gap:8px;}

@media(max-width:820px){
  .featured{grid-template-columns:1fr;}
  .featured .fx-art{order:-1;border-left:none;border-bottom:1px solid var(--card-line);min-height:170px;flex-direction:row;align-items:flex-end;justify-content:space-between;}
  .featured .fx-bars{margin:0;}
  .featured .fx-bars i{height:clamp(72px,18vw,110px);}
  .news-band{grid-template-columns:1fr;gap:26px;}
}
@media(max-width:620px){
  main.doc{padding:40px 0 36px;}
  .doc .wrap,.doc.index .wrap{padding:0 22px;}
  .article .body>p:first-of-type::first-letter{font-size:48px;}
  .article .byline .tags{margin-left:0;width:100%;}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;}}
