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

:root {
  --ink:#071115; --ink-soft:#0b171c; --panel:#102127; --panel-hi:#142a31;
  --line:#294248; --paper:#ecf7f4; --muted:#9eb6b5; --cyan:#35e7e0;
  --cyan-deep:#19bcb8; --amber:#f1b95b; --max:1180px;
  /* dark is the default; the light block below overrides these */
  --fill:#35e7e0; --line-hi:#3a666d; --faint:#6c8588; --field:#09181d;
  --header-bg:rgb(7 17 21 / .94); --hero-a:#071115; --hero-b:#123239; --footer-bg:#050c0f;
  --grid-opacity:.18; --show-ondark:block; --show-onlight:none;
  color-scheme:dark;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--paper); background:var(--ink); font:16px/1.65 Manrope,Arial,sans-serif; -webkit-font-smoothing:antialiased; }
a { color:inherit; }
.shell { width:min(var(--max),calc(100% - 48px)); margin:auto; }
.narrow { max-width:820px; }
header { position:sticky; z-index:20; top:0; background:var(--header-bg); border-bottom:1px solid var(--line); backdrop-filter:blur(14px); }
[data-site-header] { min-height:74px; display:flex; align-items:center; justify-content:flex-start; gap:26px; }
.brand img, footer img { width:176px; height:auto; display:block; }
.logo-ondark { display:var(--show-ondark)!important; }
.logo-onlight { display:var(--show-onlight)!important; }
.header-tools { display:flex; align-items:center; gap:12px; }
.theme-toggle { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; padding:0; border:1px solid var(--line); background:transparent; color:var(--paper); cursor:pointer; transition:border-color .15s,color .15s; }
.theme-toggle:hover { border-color:var(--cyan); color:var(--cyan); }
.theme-toggle svg { width:18px; height:18px; }
.theme-toggle .i-sun { display:var(--show-ondark); }
.theme-toggle .i-moon { display:var(--show-onlight); }
header nav { display:flex; gap:20px; align-items:center; margin-left:auto; }
nav a,.footer-links a { color:var(--muted); text-decoration:none; font-size:.84rem; font-weight:600; }
nav a:hover,nav a[aria-current="page"],.footer-links a:hover { color:var(--cyan); }
.menu-toggle { display:none; }
.eyebrow,.meta,.kicker { font:600 .72rem/1.3 'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.14em; color:var(--cyan); }
h1,h2,h3 { line-height:1.06; margin:0; letter-spacing:-.045em; text-wrap:balance; }
h1 { max-width:950px; font-size:clamp(3.15rem,7.6vw,7.4rem); }
h2 { font-size:clamp(2rem,4.2vw,3.8rem); }
h3 { font-size:1.28rem; }
p { color:var(--muted); }
.lede { max-width:680px; font-size:clamp(1.05rem,1.6vw,1.28rem); }
.hero,.page-hero { position:relative; overflow:hidden; background:linear-gradient(125deg,var(--hero-a) 35%,var(--hero-b)); }
.hero { min-height:720px; padding:clamp(105px,13vw,170px) 0 100px; display:flex; align-items:center; }
.page-hero { padding:105px 0 76px; }
.hero::before,.page-hero::before { content:''; position:absolute; inset:28px 34px; pointer-events:none; opacity:.7; background:linear-gradient(var(--cyan),var(--cyan)) left top/30px 1px no-repeat,linear-gradient(var(--cyan),var(--cyan)) left top/1px 30px no-repeat,linear-gradient(var(--cyan),var(--cyan)) right top/30px 1px no-repeat,linear-gradient(var(--cyan),var(--cyan)) right top/1px 30px no-repeat,linear-gradient(var(--cyan),var(--cyan)) left bottom/30px 1px no-repeat,linear-gradient(var(--cyan),var(--cyan)) left bottom/1px 30px no-repeat,linear-gradient(var(--cyan),var(--cyan)) right bottom/30px 1px no-repeat,linear-gradient(var(--cyan),var(--cyan)) right bottom/1px 30px no-repeat; }
.hero::after,.page-hero::after { content:''; position:absolute; right:-5vw; top:12%; width:min(48vw,620px); aspect-ratio:1.42; opacity:var(--grid-opacity); background-image:linear-gradient(var(--cyan) 1px,transparent 1px),linear-gradient(90deg,var(--cyan) 1px,transparent 1px); background-size:58px 58px; transform:rotate(-7deg); }
.hero-content,.page-hero .shell { position:relative; z-index:1; }
.hero p,.page-hero p { max-width:690px; font-size:1.12rem; }
.actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:32px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px; padding:11px 19px; border:1px solid var(--fill); background:var(--fill); color:#032022; font-weight:800; text-decoration:none; transition:background .15s,border-color .15s,color .15s,transform .15s; }
.button:hover { background:#82fff9; transform:translateY(-1px); }
.button.alt { background:transparent; color:var(--paper); border-color:var(--line); }
.button.alt:hover { border-color:var(--cyan); color:var(--cyan); }
.button.small { min-height:40px; padding:8px 13px; font-size:.86rem; }

/* Buttons inside cards: .card a (cyan text) must not override the button's dark-on-cyan text */
.card a.button,.product-card a.button { color:#032022; }
.card a.button:hover,.product-card a.button:hover { color:#032022; text-decoration:none; }
.card a.button.alt,.product-card a.button.alt { color:var(--paper); }
.card a.button.alt:hover,.product-card a.button.alt:hover { color:var(--cyan); }
section { padding:88px 0; border-top:1px solid var(--line); }
.section-heading { max-width:720px; margin-bottom:36px; }
.section-heading p { max-width:620px; }
.card-grid,.grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.card,.product-card { min-height:230px; padding:28px; background:var(--panel); border:1px solid var(--line); display:flex; flex-direction:column; align-items:flex-start; transition:border-color .15s,transform .15s,background .15s; }
.card:hover,.product-card:hover { border-color:var(--line-hi); background:var(--panel-hi); }
.product-card { position:relative; overflow:hidden; }
.product-card::after { content:''; position:absolute; width:58px; height:58px; right:-1px; top:-1px; border-top:1px solid var(--cyan); border-right:1px solid var(--cyan); opacity:.3; }
.card p,.product-card p { margin:.7rem 0 1.25rem; }
.card a,.product-card a,.text-link { margin-top:auto; color:var(--cyan); font-weight:700; text-decoration:none; }
.card .meta,.product-card .meta { margin-bottom:13px; }
.split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; align-items:start; }
.workflow { list-style:none; padding:0; margin:0; counter-reset:flow; }
.workflow li { position:relative; padding:20px 0 20px 58px; border-top:1px solid var(--line); color:var(--muted); counter-increment:flow; }
.workflow li::before { content:counter(flow,decimal-leading-zero); position:absolute; left:0; top:20px; color:var(--cyan); font:600 .78rem 'IBM Plex Mono',monospace; }
.workflow strong { display:block; color:var(--paper); }
.feature-list,.check-list { list-style:none; padding:0; margin:20px 0 0; }
.feature-list li,.check-list li { position:relative; padding:11px 0 11px 24px; border-top:1px solid var(--line); color:var(--muted); }
.feature-list li::before,.check-list li::before { content:'+'; position:absolute; left:0; color:var(--cyan); font-family:'IBM Plex Mono',monospace; }
.stat-strip { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line); margin-top:54px; }
.stat-strip div { padding:22px; border-right:1px solid var(--line); }
.stat-strip div:last-child { border-right:0; }
.stat-strip strong { display:block; font-size:1.05rem; }
.stat-strip span { color:var(--muted); font-size:.82rem; }
.cta-band { background:var(--fill); color:#042124; }
.cta-band p { color:#23484b; }
.cta-band .button { background:#071115; border-color:#071115; color:#ecf7f4; }
.cta-band .button.alt { background:transparent; border-color:#3b8d8a; color:#073032; }
.subnav { display:flex; flex-wrap:wrap; gap:9px; margin-top:28px; }
.subnav a { padding:8px 11px; border:1px solid var(--line); color:var(--muted); text-decoration:none; font:500 .75rem 'IBM Plex Mono',monospace; }
.subnav a:hover { color:var(--cyan); border-color:var(--cyan); }
.utility-section { scroll-margin-top:90px; }
.utility-section .split { align-items:center; }
.utility-index { display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.utility-index a { min-height:96px; padding:17px; background:var(--ink-soft); text-decoration:none; font-weight:700; }
.utility-index a span { display:block; color:var(--cyan); font:500 .68rem 'IBM Plex Mono',monospace; margin-bottom:7px; }
.download-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.download-card { min-height:330px; }
.download-card.recommended { border-color:var(--cyan); }
.download-card .file-note { font:500 .72rem/1.5 'IBM Plex Mono',monospace; color:var(--faint); }
.badge { display:inline-block; padding:5px 8px; background:var(--fill); color:#042124; font:700 .65rem 'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.08em; }
.help-search { display:block; max-width:720px; margin-top:34px; }
.help-search span,label > span { display:block; margin-bottom:8px; color:var(--paper); font-weight:700; }
input[type="search"],select { width:100%; min-height:52px; padding:12px 14px; border:1px solid var(--line); border-radius:0; background:var(--field); color:var(--paper); font:inherit; }
input[type="search"]:focus,select:focus { border-color:var(--cyan); outline:2px solid transparent; }
.search-status { min-height:1.5em; color:var(--muted); font-size:.85rem; }
.guide-layout { display:grid; grid-template-columns:250px minmax(0,1fr); gap:68px; align-items:start; }
.guide-nav { display:block; position:sticky; top:100px; }
.guide-nav a { display:block; padding:9px 0; border-bottom:1px solid var(--line); color:var(--muted); text-decoration:none; font-size:.84rem; }
.guide-nav a:hover { color:var(--cyan); }
.guide-content article { padding:0 0 58px; margin-bottom:58px; border-bottom:1px solid var(--line); scroll-margin-top:100px; }
.guide-content article:last-child { border-bottom:0; }
.guide-content h2 { margin-bottom:18px; font-size:clamp(1.8rem,3.4vw,3rem); }
.guide-content h3 { margin-top:28px; }
.guide-content ol,.guide-content ul { color:var(--muted); }
.guide-content code { color:var(--cyan); }
.guide-content table { width:100%; border-collapse:collapse; margin:18px 0; color:var(--muted); font-size:.95rem; }
.guide-content th,.guide-content td { text-align:left; vertical-align:top; padding:9px 12px; border-bottom:1px solid var(--line); }
.guide-content th { color:var(--text, inherit); font-weight:600; }
.note { padding:18px 20px; border-left:3px solid var(--cyan); background:var(--panel); color:var(--muted); }
.support-panel { padding:34px; background:var(--panel); border:1px solid var(--line); }
.support-panel .button { margin-top:22px; }
.faq details { border-top:1px solid var(--line); padding:18px 0; }
summary { cursor:pointer; font-weight:700; }
[hidden] { display:none!important; }
footer { padding:50px 0 24px; background:var(--footer-bg); }
[data-site-footer] { display:grid; grid-template-columns:1.5fr 1fr; gap:28px; }
footer p { margin:.8rem 0 0; font-size:.84rem; }
.footer-links { display:flex; flex-wrap:wrap; gap:10px 18px; align-content:start; }
footer small { grid-column:1/-1; color:var(--faint); font:400 .68rem 'IBM Plex Mono',monospace; border-top:1px solid var(--line); padding-top:20px; }
:focus-visible { outline:3px solid var(--cyan); outline-offset:4px; }

/* Light theme: follows the system until the visitor picks one with the header toggle,
   which sets data-theme on <html> and wins either way. */
@media (prefers-color-scheme: light) { :root:not([data-theme="dark"]) { --ink:#f6fafa; --ink-soft:#eef4f4; --panel:#ffffff; --panel-hi:#f2f8f8; --line:#cfdcdc; --line-hi:#8fb3b3; --paper:#0b1b20; --muted:#4a6266; --faint:#62797c; --cyan:#0b7f7b; --field:#ffffff; --header-bg:rgb(246 250 250 / .92); --hero-a:#f6fafa; --hero-b:#dcefee; --footer-bg:#e9f1f1; --grid-opacity:.12; --show-ondark:none; --show-onlight:block; color-scheme:light; } }
:root[data-theme="light"] { --ink:#f6fafa; --ink-soft:#eef4f4; --panel:#ffffff; --panel-hi:#f2f8f8; --line:#cfdcdc; --line-hi:#8fb3b3; --paper:#0b1b20; --muted:#4a6266; --faint:#62797c; --cyan:#0b7f7b; --field:#ffffff; --header-bg:rgb(246 250 250 / .92); --hero-a:#f6fafa; --hero-b:#dcefee; --footer-bg:#e9f1f1; --grid-opacity:.12; --show-ondark:none; --show-onlight:block; color-scheme:light; }

@media (max-width:900px) {
  .card-grid,.grid { grid-template-columns:repeat(2,1fr); }
  .utility-index { grid-template-columns:repeat(2,1fr); }
  .guide-layout { grid-template-columns:1fr; gap:32px; }
  .guide-nav { position:static; display:grid; grid-template-columns:repeat(2,1fr); }
  .guide-nav a { padding:10px; border:1px solid var(--line); }
}
@media (max-width:720px) {
  .shell { width:min(100% - 32px,var(--max)); }
  [data-site-header] { min-height:68px; }
  .menu-toggle { display:block; padding:9px 0; background:none; border:0; color:var(--paper); font:600 .75rem 'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.1em; }
  header nav { display:none; position:absolute; inset:68px 0 auto; padding:20px 16px; background:var(--ink); border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch; }
  header nav.is-open { display:flex; }
  .header-tools { margin-left:auto; }
  .card-grid,.grid,.split,.download-grid,[data-site-footer],.stat-strip { grid-template-columns:1fr; }
  section { padding:64px 0; }
  .hero { min-height:650px; padding:105px 0 78px; }
  .hero::before,.page-hero::before { inset:18px; }
  .hero::after,.page-hero::after { width:95vw; right:-40vw; }
  .stat-strip div { border-right:0; border-bottom:1px solid var(--line); }
  .stat-strip div:last-child { border-bottom:0; }
  .utility-index { grid-template-columns:1fr; }
  .guide-nav { grid-template-columns:1fr; }
}
@media print { header,footer,.actions,.help-search,.guide-nav { display:none!important; } body { color:#111; background:#fff; } p,li { color:#333!important; } section { border-color:#ccc; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; animation:none!important; } }
