:root{
  --bg: #12181F;
  --panel: #1B232D;
  --line: #2A3543;
  --text: #E4E7EA;
  --text-dim: #8A95A1;
  --accent: #C9812F;
  --accent-hover: #dd9445;
  --accent-soft: #C9812F26;
  --serif: 'Source Serif 4', Georgia, serif;
  --sans: 'Source Sans 3', -apple-system, 'Segoe UI', sans-serif;
  --mono: 'IBM Plex Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;
  --header-h: 64px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%; scroll-padding-top:calc(var(--header-h) + 16px);}
body{
  background:var(--bg); color:var(--text); font-family:var(--sans);
  font-size:17px; line-height:1.6; overflow-wrap:break-word;
  background-image:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size:64px 64px; background-attachment:fixed;
}
::selection{background:var(--accent); color:var(--bg);}
a{color:inherit;}
:focus-visible{outline:2px solid var(--accent); outline-offset:3px;}
.wrap{max-width:1120px; margin:0 auto; padding:0 28px;}
.skip-link{position:absolute; left:-9999px; top:8px; z-index:100; background:var(--accent); color:var(--bg); padding:10px 16px; font-family:var(--mono); font-size:13px;}
.skip-link:focus{left:8px;}

/* ---------- Header + navigation ---------- */
header{position:sticky; top:0; z-index:50; background:rgba(18,24,31,0.94); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); border-bottom:1px solid var(--line);}
header .wrap{display:flex; align-items:center; justify-content:space-between; height:var(--header-h);}
.logo{font-family:var(--mono); font-size:15px; text-decoration:none; white-space:nowrap;}
.logo span{color:var(--accent);}
nav{display:flex; align-items:center; gap:24px; font-family:var(--mono); font-size:13px; color:var(--text-dim);}
nav a, .dropdown-toggle{text-decoration:none; color:var(--text-dim);}
nav a:hover, nav a.active, .dropdown-toggle:hover, .dropdown.active .dropdown-toggle, .dropdown:focus-within .dropdown-toggle{color:var(--text);}
nav a[aria-current="page"]{color:var(--accent);}
.dropdown{position:relative; display:flex; align-items:center; height:var(--header-h);}
.dropdown-toggle{background:none; border:none; padding:0; width:auto; font:inherit; cursor:pointer; font-weight:400;}
.dropdown-toggle:hover{background:none;}
.dropdown-toggle::after{content:""; display:inline-block; width:5px; height:5px; margin-left:8px; border-right:1px solid currentColor; border-bottom:1px solid currentColor; transform:translateY(-2px) rotate(45deg);}
.dropdown-menu{display:none; position:absolute; top:100%; left:-16px; min-width:230px; background:var(--panel); border:1px solid var(--line); border-top:2px solid var(--accent); padding:6px 0;}
.dropdown-menu a{display:block; padding:10px 18px; white-space:nowrap;}
.dropdown-menu a:hover{background:var(--accent-soft); color:var(--text);}
.dropdown:hover .dropdown-menu, .dropdown:focus-within .dropdown-menu, .dropdown.open .dropdown-menu{display:block;}
.nav-cta{border:1px solid var(--accent); color:var(--accent) !important; padding:6px 14px; border-radius:2px;}
.nav-cta:hover{background:var(--accent-soft);}
.nav-toggle{display:none; background:none; border:1px solid var(--line); width:44px; height:40px; padding:0; position:relative; border-radius:2px;}
.nav-toggle:hover{background:none; border-color:var(--text-dim);}
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{position:absolute; left:11px; width:20px; height:2px; background:var(--text); content:"";}
.nav-toggle span{top:18px;}
.nav-toggle span::before{left:0; top:-6px;}
.nav-toggle span::after{left:0; top:6px;}

/* ---------- Typography ---------- */
section{padding:72px 0;}
section + section{border-top:1px solid var(--line);}
.hero{padding:80px 0 64px;}
.eyebrow{font-family:var(--mono); font-size:13px; color:var(--accent); margin-bottom:14px;}
h1{font-family:var(--serif); font-weight:600; font-size:clamp(32px,5vw,50px); line-height:1.15; margin-bottom:22px; max-width:26ch;}
h2{font-family:var(--serif); font-weight:600; font-size:clamp(24px,3.4vw,28px); line-height:1.25; margin-bottom:32px; max-width:34ch;}
h2.long{max-width:52ch; font-size:clamp(22px,3vw,26px); line-height:1.35;}
h3{font-family:var(--sans); font-weight:600; font-size:17px; line-height:1.35;}
p{color:var(--text-dim);}
p.lede{font-size:19px; color:var(--text-dim); max-width:68ch;}
p.lede + p.lede{margin-top:16px;}
h2 + .sub{margin-top:-18px; margin-bottom:32px; max-width:60ch;}
.prose p{max-width:72ch;}
.prose p + p{margin-top:16px;}
.prose h2{max-width:none;}
.prose strong, p strong{color:var(--text); font-weight:600;}
.small{font-size:14px;}
nav.crumbs{display:block; gap:0; font-family:var(--mono); font-size:12px; color:var(--text-dim); margin-bottom:28px;}
.crumbs a{text-decoration:none;}
.crumbs a:hover{color:var(--text);}
.crumbs span[aria-hidden]{margin:0 8px; color:var(--line);}

/* ---------- Buttons ---------- */
.btn-row{display:flex; gap:16px; flex-wrap:wrap; margin-top:32px;}
.btn, .cta-button{display:inline-block; font-family:var(--mono); font-size:14px; padding:12px 22px; border-radius:2px; text-decoration:none; line-height:1.4;}
.cta-button, .btn-primary{background:var(--accent); color:#12181F; font-weight:500;}
.cta-button:hover, .btn-primary:hover{background:var(--accent-hover);}
.btn-secondary{border:1px solid var(--line); color:var(--text);}
.btn-secondary:hover{border-color:var(--text-dim);}
.hero .cta-button, .cta .cta-button{margin-top:28px;}
.btn-row .cta-button{margin-top:0;}

/* ---------- Cards + grids ---------- */
.card-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.card-grid.two{grid-template-columns:repeat(2,1fr);}
.grid{display:grid; grid-template-columns:repeat(2,1fr); gap:24px;}
.grid > .card:last-child:nth-child(odd){grid-column:1 / -1;}
.card{border:1px solid var(--line); border-radius:2px; padding:28px; background:var(--panel);}
.card h3{margin-bottom:10px;}
.card p{font-size:15px;}
.card p + p{margin-top:10px;}
.card p.plain{color:var(--text);}
.card a.card-link{display:inline-block; margin-top:16px; font-family:var(--mono); font-size:13px; color:var(--accent); text-decoration:none;}
.card a.card-link:hover{text-decoration:underline; text-underline-offset:4px;}
.card-num{font-family:var(--mono); color:var(--accent); font-size:14px; margin-bottom:10px; display:block;}
.card ul{margin-top:4px;}
.tag{font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--accent); margin:18px 0 6px;}
.card h3 + .tag{margin-top:2px;}
.lede-after{margin-top:32px;}
.card-grid + .lede{margin-top:32px;}

/* ---------- Lists ---------- */
.list{list-style:none; margin-top:20px;}
.list li{position:relative; padding:0 0 0 28px; margin-bottom:14px; color:var(--text-dim); max-width:72ch;}
.list li::before{content:"//"; position:absolute; left:0; top:0; font-family:var(--mono); font-size:13px; color:var(--accent); line-height:1.75;}
.list li strong{color:var(--text);}
ol.list{counter-reset:li;}
ol.list li{counter-increment:li; padding-left:36px;}
ol.list li::before{content:counter(li,decimal-leading-zero); }
.card .list{margin-top:6px;}
.card .list li{font-size:15px; margin-bottom:10px;}

/* ---------- Callout ---------- */
.box{border:1px solid var(--line); border-left:3px solid var(--accent); background:var(--panel); padding:22px 26px; margin:28px 0; max-width:66ch;}
.box p{color:var(--text); max-width:none;}

/* ---------- Steps ---------- */
.steps{list-style:none; counter-reset:step; margin-top:8px;}
.steps li{counter-increment:step; display:grid; grid-template-columns:56px 1fr; column-gap:24px; padding:26px 0; border-top:1px solid var(--line);}
.steps li:last-child{border-bottom:1px solid var(--line);}
.steps li::before{content:counter(step,decimal-leading-zero); grid-row:1 / span 3; font-family:var(--mono); color:var(--accent); font-size:14px; padding-top:3px;}
.steps li > *{grid-column:2;}
.steps b{font-weight:600; font-size:17px; display:block; margin-bottom:6px;}
.steps span{display:block; font-size:15px; color:var(--text-dim); max-width:80ch;}
.steps .plain{color:var(--text);}
.steps .technical{margin-top:10px; padding-left:14px; border-left:2px solid var(--line); font-size:14px;}

/* ---------- Layout helpers ---------- */
.two-col{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start;}

/* ---------- Diagrams ---------- */
.diagram{margin:40px 0 0; border:1px solid var(--line); background:var(--panel); padding:20px;}
.diagram-scroll{overflow-x:auto; -webkit-overflow-scrolling:touch;}
.diagram svg{display:block; min-width:560px; width:100%; height:auto; color:var(--accent);}
.diagram text{fill:var(--text); font-family:var(--sans);}
.diagram .box{fill:var(--bg); stroke:var(--text-dim); border:0; padding:0; margin:0; max-width:none; background:none;}
.diagram .note{stroke:var(--accent);}
.diagram .arrow{stroke:var(--accent);}
.diagram figcaption{font-family:var(--mono); font-size:12px; color:var(--text-dim); margin-top:14px;}

/* ---------- FAQ ---------- */
.faq{max-width:80ch;}
.faq details{border-top:1px solid var(--line);}
.faq details:last-child{border-bottom:1px solid var(--line);}
.faq summary{list-style:none; cursor:pointer; padding:20px 40px 20px 0; font-weight:600; font-size:17px; position:relative;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+"; position:absolute; right:4px; top:18px; font-family:var(--mono); color:var(--accent); font-size:20px;}
.faq details[open] summary::after{content:"\2212";}
.faq details p{padding:0 0 22px; max-width:62ch;}

/* ---------- CTA band ---------- */
.cta{background:rgba(27,35,45,.72);}
.cta .sub{margin-bottom:0;}

/* ---------- Forms (kept from original theme) ---------- */
form{display:flex; flex-direction:column; gap:14px; max-width:480px;}
label{font-family:var(--mono); font-size:12px; color:var(--text-dim);}
input, textarea, select{
  background:var(--panel); border:1px solid var(--line); color:var(--text);
  font-family:var(--sans); font-size:15px; padding:12px 14px; border-radius:2px; width:100%;
}
input:focus, textarea:focus{outline:2px solid var(--accent); outline-offset:1px;}
textarea{resize:vertical; min-height:100px;}
button{
  font-family:var(--mono); font-size:14px; background:var(--accent); color:#12181F;
  border:none; padding:13px 22px; border-radius:2px; cursor:pointer; font-weight:500; width:fit-content;
}
button:hover{background:var(--accent-hover);}

/* ---------- Footer ---------- */
footer{border-top:1px solid var(--line); padding:40px 0; background:rgba(18,24,31,.92);}
footer .wrap{display:flex; justify-content:space-between; font-family:var(--mono); font-size:12px; color:var(--text-dim); flex-wrap:wrap; gap:24px;}
footer .foot-col{display:flex; flex-direction:column; gap:8px;}
footer .foot-title{color:var(--text); margin-bottom:2px;}
footer a{text-decoration:none;}
footer a:hover{color:var(--text); text-decoration:underline; text-underline-offset:4px;}
footer .copy{flex-basis:100%; padding-top:20px; border-top:1px solid var(--line);}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .nav-toggle{display:block;}
  nav{display:none; position:absolute; top:var(--header-h); left:0; right:0; flex-direction:column; align-items:stretch; gap:0; background:var(--bg); border-bottom:1px solid var(--line); padding:8px 28px 24px; max-height:calc(100vh - var(--header-h)); overflow-y:auto;}
  nav.open{display:flex;}
  nav > a, .dropdown-toggle{padding:14px 0; border-bottom:1px solid var(--line); font-size:14px;}
  .dropdown{display:block; height:auto;}
  .dropdown-toggle{display:block; width:100%; text-align:left; pointer-events:none; color:var(--text);}
  .dropdown-toggle::after{display:none;}
  .dropdown-menu{display:block; position:static; border:0; background:none; padding:0 0 6px 14px; min-width:0;}
  .dropdown-menu a{padding:11px 0; color:var(--text-dim);}
  .nav-cta{margin-top:20px; text-align:center; padding:13px 14px;}
}
@media (max-width:760px){
  body{font-size:16px; background-attachment:scroll;}
  .wrap{padding:0 20px;}
  nav{padding-left:20px; padding-right:20px;}
  section{padding:56px 0;}
  .hero{padding:56px 0 48px;}
  .two-col, .card-grid, .card-grid.two, .grid{grid-template-columns:1fr; gap:20px;}
  .two-col{gap:32px;}
  .card{padding:22px;}
  p.lede{font-size:18px;}
  h1, h2{max-width:none;}
  .btn-row{flex-direction:column; align-items:stretch;}
  .btn-row .btn, .btn-row .cta-button{text-align:center;}
  .steps li{grid-template-columns:36px 1fr; column-gap:14px;}
  .diagram{padding:14px;}
  footer .wrap{flex-direction:column;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{transition:none !important; animation:none !important;}
}
