/* ==========================================================================
   QUANTUMprogrammers, main stylesheet
   Design system: deep indigo panels, electric violet indicators, Sora
   display type with IBM Plex engineering body. Signature element: the live
   benchmark strip.
   ========================================================================== */

:root{
  --ink:#131028;
  --panel:#191442;
  --panel-2:#221b58;
  --surface:#f2f1f7;
  --card:#ffffff;
  --line:#dcd9e8;
  --line-dark:rgba(255,255,255,.12);
  --text:#2a2540;
  --muted:#645e7e;
  --muted-dark:#9a92bd;
  --amber:#8b6cff;
  --amber-deep:#5f3fe4;
  --ok:#35c08e;
  --font-display:"Sora",system-ui,sans-serif;
  --font-body:"IBM Plex Sans",system-ui,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,monospace;
  --maxw:1180px;
  --radius:10px;
  --shadow:0 1px 2px rgba(11,29,42,.06),0 8px 28px -12px rgba(11,29,42,.18);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;
  font-family:var(--font-body);
  font-size:1.0625rem;
  line-height:1.65;
  color:var(--text);
  background:var(--surface);
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;height:auto;display:block}
a{color:var(--ink);text-decoration-color:rgba(11,29,42,.3);text-underline-offset:3px}
a:hover{text-decoration-color:var(--amber-deep)}
:focus-visible{outline:3px solid var(--amber);outline-offset:2px;border-radius:2px}

h1,h2,h3,h4{
  font-family:var(--font-display);
  color:var(--ink);
  line-height:1.12;
  letter-spacing:-.015em;
  margin:0 0 .5em;
  font-weight:700;
  text-wrap:balance;
}
h1{font-size:clamp(2.1rem,4.6vw,3.4rem);font-weight:800}
h2{font-size:clamp(1.6rem,3vw,2.25rem)}
h3{font-size:1.25rem}
p{margin:0 0 1.1em}
.lead{font-size:clamp(1.1rem,1.9vw,1.3rem);color:var(--muted);max-width:52ch}

.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:clamp(1.1rem,4vw,2rem)}
.section{padding-block:clamp(3rem,7vw,5.5rem)}
.section-tight{padding-block:clamp(2rem,5vw,3.5rem)}

/* --- mono eyebrow / channel labels ------------------------------------- */
.eyebrow{
  font-family:var(--font-mono);
  font-size:.78rem;
  font-weight:500;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--amber-deep);
  display:flex;align-items:center;gap:.6rem;
  margin-bottom:1rem;
}
.eyebrow::before{
  content:"";width:.55rem;height:.55rem;border-radius:50%;
  background:var(--amber);box-shadow:0 0 0 3px rgba(139,108,255,.25);
  flex:none;
}
.on-dark .eyebrow{color:var(--amber)}

/* --- header -------------------------------------------------------------- */
.site-header{
  position:sticky;top:0;z-index:60;
  background:rgba(11,29,42,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-dark);
  transition:box-shadow .25s;
}
.site-header.is-stuck{box-shadow:0 6px 24px -8px rgba(0,0,0,.45)}
.nav-bar{display:flex;align-items:center;gap:1.2rem;min-height:70px}
.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;margin-right:auto}
.brand-mark{flex:none;color:#fff;display:block}
.site-footer .brand-mark{color:#fff}
.brand-name{font-family:var(--font-display);font-weight:800;font-size:1.05rem;color:#fff;letter-spacing:.01em}
.brand-name span{color:var(--amber);font-weight:600}

.nav-links{display:flex;align-items:center;gap:.25rem;list-style:none;margin:0;padding:0}
.nav-links>li{position:relative}
.nav-links a,.nav-links button{
  font:500 .95rem/1 var(--font-body);
  color:#dbe6ec;text-decoration:none;background:none;border:0;cursor:pointer;
  padding:.8rem .85rem;border-radius:7px;display:flex;align-items:center;gap:.35rem;
}
.nav-links a:hover,.nav-links button:hover,.nav-links a[aria-current="page"]{color:#fff;background:rgba(255,255,255,.08)}
.nav-links .caret{width:.55em;height:.55em;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s}
.has-menu.open>button .caret{transform:rotate(225deg) translateY(-1px)}
.dropdown{
  position:absolute;top:calc(100% + .4rem);left:0;min-width:250px;
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:.45rem;list-style:none;margin:0;
  opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity .18s,transform .18s,visibility .18s;
}
.has-menu.open .dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.dropdown a{color:var(--text);padding:.6rem .75rem;border-radius:7px;display:block;font-weight:500}
.dropdown a:hover{background:var(--surface);color:var(--ink)}
.dropdown .dd-label{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:.55rem .75rem .2rem}

.btn{
  display:inline-flex;align-items:center;gap:.5rem;
  font:600 .95rem/1 var(--font-body);
  padding:.85rem 1.35rem;border-radius:8px;text-decoration:none;
  border:1px solid transparent;cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s;
}
.btn:hover{transform:translateY(-1px)}
.btn-amber{background:var(--amber);color:#fff;box-shadow:0 4px 14px -4px rgba(139,108,255,.6)}
.btn-amber:hover{background:#9d82ff}
.btn-ghost{border-color:rgba(255,255,255,.35);color:#fff}
.btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.07)}
.btn-outline{border-color:var(--ink);color:var(--ink)}
.btn-outline:hover{background:var(--ink);color:#fff}
.nav-cta{margin-left:.4rem}

.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:.5rem;margin-left:auto}
.nav-toggle span{display:block;width:24px;height:2px;background:#fff;margin:5px 0;transition:transform .25s,opacity .2s}

@media (max-width:920px){
  .nav-toggle{display:block}
  .brand{margin-right:0}
  .nav-bar{justify-content:space-between}
  .nav-links{
    position:fixed;inset:70px 0 0 0;flex-direction:column;align-items:stretch;
    background:var(--ink);padding:1rem 1.2rem 2rem;gap:.15rem;overflow-y:auto;
    transform:translateX(100%);transition:transform .28s;
  }
  body.nav-open .nav-links{transform:translateX(0)}
  body.nav-open{overflow:hidden}
  body.nav-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  body.nav-open .nav-toggle span:nth-child(2){opacity:0}
  body.nav-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .nav-links a,.nav-links button{width:100%;padding:.95rem .6rem;font-size:1.05rem}
  .dropdown{position:static;opacity:1;visibility:visible;transform:none;background:transparent;border:0;box-shadow:none;display:none;padding:0 0 .4rem .9rem}
  .has-menu.open .dropdown{display:block}
  .dropdown a{color:#c6d4dc}
  .dropdown a:hover{background:rgba(255,255,255,.07);color:#fff}
  .dropdown .dd-label{color:var(--muted-dark)}
  .nav-cta{margin:1rem .6rem 0;justify-content:center}
}

/* --- hero ---------------------------------------------------------------- */
.hero{
  background:
    linear-gradient(115deg,rgba(11,29,42,.96) 34%,rgba(15,38,53,.82) 60%,rgba(15,38,53,.55)),
    var(--panel) center/cover no-repeat;
  color:#e8f0f4;
  position:relative;
  overflow:hidden;
}
.hero .wrap{position:relative;z-index:1}
.hero-grid{position:absolute;inset:0;opacity:.35;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:44px 44px;
}
.hero-inner{padding-block:clamp(4rem,9vw,7.5rem) clamp(3rem,6vw,5rem);max-width:760px}
.hero h1{color:#fff;margin-bottom:.5em}
.hero h1 em{font-style:normal;color:var(--amber)}
.hero .lead{color:#b9c9d3}
.hero-actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2rem}

.page-hero{background:linear-gradient(120deg,var(--ink),var(--panel-2));color:#e8f0f4;position:relative;overflow:hidden}
.page-hero .hero-inner{padding-block:clamp(3rem,6vw,4.5rem) clamp(2.2rem,5vw,3.2rem)}
.page-hero h1{color:#fff}
.page-hero .lead{color:#b9c9d3}

/* --- telemetry strip (signature) ----------------------------------------- */
.telemetry{
  background:var(--ink);
  border-top:1px solid var(--line-dark);
  border-bottom:2px solid var(--amber);
  overflow:hidden;
  font-family:var(--font-mono);
  font-size:.82rem;
  color:var(--muted-dark);
  position:relative;
}
.telemetry-track{display:flex;gap:3rem;white-space:nowrap;padding:.7rem 0;width:max-content;animation:tel-scroll 55s linear infinite}
.telemetry:hover .telemetry-track{animation-play-state:paused}
.telemetry .t-item{display:inline-flex;align-items:center;gap:.55rem}
.telemetry .t-key{color:#7d93a1;letter-spacing:.08em}
.telemetry .t-val{color:#e8f0f4;font-weight:500}
.telemetry .t-dot{width:.45rem;height:.45rem;border-radius:50%;background:var(--ok);animation:blink 2.4s ease-in-out infinite}
.telemetry .t-dot.warn{background:var(--amber)}
@keyframes tel-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){
  .telemetry-track{animation:none}
  .telemetry .t-dot{animation:none}
}

/* --- breadcrumbs ---------------------------------------------------------- */
.crumbs{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.05em;color:var(--muted-dark);margin-bottom:1.4rem}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.45rem;margin:0;padding:0}
.crumbs li+li::before{content:"/";margin-right:.45rem;color:rgba(255,255,255,.3)}
.crumbs a{color:var(--muted-dark);text-decoration:none}
.crumbs a:hover{color:var(--amber)}
.crumbs [aria-current]{color:#e8f0f4}

/* --- cards & grids --------------------------------------------------------- */
.grid{display:grid;gap:1.4rem}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}

.card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:1.7rem;position:relative;display:flex;flex-direction:column;gap:.4rem;
  transition:transform .2s,box-shadow .2s,border-color .2s;
}
a.card{text-decoration:none;color:inherit}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:#c3ced5}
.card .mono-tag{
  font-family:var(--font-mono);font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--muted);margin-bottom:.55rem;
}
.card h3{margin-bottom:.3rem}
.card p{color:var(--muted);font-size:.98rem;margin:0}
.card .card-link{margin-top:auto;padding-top:1rem;font:600 .9rem var(--font-body);color:var(--amber-deep);display:inline-flex;align-items:center;gap:.35rem}
.card:hover .card-link{color:var(--ink)}
.card .card-link::after{content:"→";transition:transform .2s}
.card:hover .card-link::after{transform:translateX(4px)}

.card-media{margin:-1.7rem -1.7rem 1.2rem;border-radius:var(--radius) var(--radius) 0 0;overflow:hidden;aspect-ratio:16/9}
.card-media img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.card:hover .card-media img{transform:scale(1.045)}

/* --- section headers -------------------------------------------------------- */
.section-head{max-width:680px;margin-bottom:2.4rem}
.section-head.center{margin-inline:auto;text-align:center}
.section-head.center .eyebrow{justify-content:center}
.section-head p{color:var(--muted)}

/* --- dark band --------------------------------------------------------------- */
.band-dark{background:var(--panel);color:#dbe6ec}
.band-dark h2,.band-dark h3{color:#fff}
.band-dark p{color:#b9c9d3}
.band-dark .card{background:var(--panel-2);border-color:var(--line-dark)}
.band-dark .card p{color:#a8bcc7}
.band-dark .card h3{color:#fff}
.band-dark a.card:hover{border-color:rgba(139,108,255,.55)}

/* --- split layout ------------------------------------------------------------- */
.split{display:grid;gap:clamp(2rem,5vw,4rem);align-items:center}
@media (min-width:880px){.split{grid-template-columns:1fr 1fr}.split.rev>.split-media{order:2}}
.split-media{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.split-media img{width:100%;height:100%;object-fit:cover}

/* --- prose (articles / long content) ------------------------------------------ */
.prose{max-width:720px}
.prose h2{margin-top:2.2em;font-size:1.6rem}
.prose h3{margin-top:1.8em}
.prose ul{padding-left:1.3rem}
.prose li{margin-bottom:.5em}
.prose blockquote{
  margin:1.6em 0;padding:1.1rem 1.4rem;border-left:3px solid var(--amber);
  background:var(--card);border-radius:0 var(--radius) var(--radius) 0;color:var(--muted);
}
.prose pre{
  background:var(--ink);color:#d8e6ee;border-radius:var(--radius);
  padding:1.2rem 1.4rem;overflow-x:auto;font-family:var(--font-mono);font-size:.85rem;line-height:1.55;
}
.prose code{font-family:var(--font-mono);font-size:.9em}
.prose img{border-radius:var(--radius);margin:1.5em 0}
.article-meta{
  display:flex;flex-wrap:wrap;gap:1.4rem;align-items:center;
  font-family:var(--font-mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-dark);
}
.tag-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.2rem}
.tag{
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  padding:.35rem .7rem;border:1px solid var(--line);border-radius:99px;color:var(--muted);text-decoration:none;background:var(--card);
}
.tag:hover{border-color:var(--amber-deep);color:var(--ink)}

/* --- feature list rows ---------------------------------------------------------- */
.feature-row{display:grid;gap:1rem;padding:1.6rem 0;border-top:1px solid var(--line)}
.feature-row:last-child{border-bottom:1px solid var(--line)}
@media (min-width:760px){.feature-row{grid-template-columns:220px 1fr;gap:2.5rem}}
.feature-row h3{font-size:1.1rem;margin:0}
.feature-row p{color:var(--muted);margin:0}
.feature-row .mono-tag{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.12em;color:var(--amber-deep);text-transform:uppercase;display:block;margin-bottom:.4rem}

/* --- CTA band ---------------------------------------------------------------------- */
.cta-band{background:linear-gradient(120deg,var(--ink),var(--panel-2));color:#fff;border-radius:var(--radius);padding:clamp(2.2rem,5vw,3.8rem);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem;position:relative;overflow:hidden}
.cta-band::after{content:"";position:absolute;right:-80px;top:-80px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(139,108,255,.3),transparent 65%)}
.cta-band h2{color:#fff;margin:0 0 .3em}
.cta-band p{color:#b9c9d3;margin:0;max-width:46ch}
.cta-band .btn{position:relative;z-index:1}

/* --- pill nav (related links) -------------------------------------------------------- */
.related-box{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);padding:1.5rem 1.7rem;margin-top:2.5rem}
.related-box h3{font-size:.95rem;font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:500}
.related-box ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}
.related-box a{font-weight:500}

/* --- footer ------------------------------------------------------------------------------ */
.site-footer{background:var(--ink);color:#a8bcc7;font-size:.95rem}
.footer-grid{display:grid;gap:2.4rem;padding-block:3.4rem 2.4rem;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.site-footer h4{color:#fff;font-size:.82rem;font-family:var(--font-mono);font-weight:500;letter-spacing:.14em;text-transform:uppercase;margin-bottom:1rem}
.site-footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}
.site-footer a{color:#a8bcc7;text-decoration:none}
.site-footer a:hover{color:var(--amber)}
.footer-brand p{max-width:32ch;margin-top:.8rem}
.footer-bottom{border-top:1px solid var(--line-dark);padding-block:1.4rem;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;font-size:.85rem;color:#6d8290}
.footer-bottom a{color:#8fa4b0}

/* --- reveal animation ----------------------------------------------------------------------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* --- misc ------------------------------------------------------------------------------------- */
.notice{border:1px solid var(--line);border-left:4px solid var(--amber);background:var(--card);border-radius:8px;padding:1.2rem 1.4rem;color:var(--muted)}
.contact-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}
.contact-list strong{display:block;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--amber);color:var(--ink);padding:.7rem 1.2rem;z-index:100;font-weight:600;border-radius:0 0 8px 0}
.skip-link:focus{left:0}
.sector-chip{display:flex;align-items:center;gap:.8rem;padding:1.05rem 1.2rem;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;color:var(--ink);font-weight:600;transition:transform .18s,border-color .18s,box-shadow .18s}
.sector-chip:hover{transform:translateY(-3px);border-color:var(--amber-deep);box-shadow:var(--shadow)}
.sector-chip .mono-tag{font-family:var(--font-mono);font-size:.68rem;color:var(--muted);letter-spacing:.1em}
.quote-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.8rem;display:flex;flex-direction:column;gap:1rem}
.quote-card p{color:var(--text);font-size:1rem;margin:0}
.quote-card footer{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--amber-deep)}
