:root{
  --primary:#334155;
  --secondary:#1e293b;
  --accent:#f43f5e;
  --bg:#ffffff;
  --surface:#f8fafc;
  --surface-alt:#f1f5f9;
  --text:#1e293b;
  --muted:#64748b;
  --border:#cbd5e1;
  --row-alt:#f8fafc;
  --radius:4px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Helvetica Neue",Arial,sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.65;
  font-size:16px;
}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
img,svg{max-width:100%;height:auto;display:block}
.container{max-width:1080px;margin:0 auto;padding:0 20px}
/* Header */
.site-header{
  position:sticky;top:0;z-index:100;
  background:linear-gradient(135deg,var(--primary),var(--secondary));
  color:#fff;
  border-bottom:2px solid var(--accent);
  box-shadow:0 2px 8px rgba(0,0,0,0.12);
}
.site-header .container{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:14px;padding-bottom:14px}
.brand{display:flex;align-items:center;gap:12px;color:#fff}
.brand img{width:40px;height:40px}
.brand-name{font-weight:700;font-size:1.05rem;letter-spacing:0.02em}
.brand-tag{display:block;font-weight:400;font-size:0.72rem;color:#cbd5e1;letter-spacing:0.05em;text-transform:uppercase}
.site-nav{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}
.site-nav a{color:#e2e8f0;font-size:0.94rem;padding:6px 4px;border-radius:var(--radius);transition:color 0.18s}
.site-nav a:hover{color:var(--accent);text-decoration:none}
.site-nav a[aria-current="page"]{color:var(--accent);font-weight:600}
/* Hero */
.hero{
  background:linear-gradient(135deg,var(--primary),var(--secondary));
  color:#fff;
  padding:56px 0 48px;
  border-bottom:1px solid var(--border);
  position:relative;
  overflow:hidden;
}
.hero::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 15% 30%,rgba(244,63,94,0.18),transparent 55%),radial-gradient(circle at 85% 70%,rgba(244,63,94,0.12),transparent 60%);
  pointer-events:none;
}
.hero .container{position:relative;z-index:1}
.hero h1{font-size:2.1rem;margin:0 0 12px;line-height:1.2;color:#fff;font-weight:700}
.byline{color:#cbd5e1;font-size:0.9rem;margin:0 0 18px}
.byline strong{color:#fff}
.hero-lede p{font-size:1.08rem;margin:0.4em 0;color:#e2e8f0;max-width:750px}
.cta-row{margin-top:26px;display:flex;flex-wrap:wrap;gap:12px}
.btn{
  display:inline-block;
  padding:12px 26px;
  border-radius:999px;
  font-weight:600;
  font-size:0.96rem;
  border:2px solid transparent;
  transition:transform 0.14s,box-shadow 0.14s;
  cursor:pointer;
}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(244,63,94,0.35);text-decoration:none}
.btn-ghost{background:transparent;color:#fff;border-color:#cbd5e1}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}
/* Main content */
main{padding:40px 0 60px}
main h2{
  font-size:1.55rem;
  margin:2.2em 0 0.6em;
  padding:8px 0 8px 16px;
  border-left:4px solid var(--accent);
  background:var(--surface);
  color:var(--secondary);
  border-radius:0 var(--radius) var(--radius) 0;
  line-height:1.3;
}
main h3{font-size:1.18rem;margin:1.6em 0 0.4em;color:var(--secondary)}
main p{margin:0.8em 0}
main ul,main ol{margin:1em 0;padding-left:0;list-style:none}
main ul li{position:relative;padding:0.35em 0 0.35em 1.7em}
main ul li::before{
  content:"➤";
  position:absolute;left:0;top:0.35em;
  color:var(--accent);
  font-weight:700;
}
main ol{counter-reset:ol-counter}
main ol li{
  position:relative;counter-increment:ol-counter;
  padding:0.5em 0 0.5em 3em;
  min-height:2em;
}
main ol li::before{
  content:counter(ol-counter);
  position:absolute;left:0;top:0.3em;
  width:2em;height:2em;
  background:linear-gradient(135deg,var(--primary),var(--accent));
  color:#fff;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:0.95rem;
  box-shadow:0 2px 6px rgba(51,65,85,0.2);
}
/* Table */
.table-wrap{overflow-x:auto;margin:1.5em 0;border-radius:var(--radius);border:1px solid var(--border);background:#fff}
table{width:100%;border-collapse:collapse;min-width:520px}
thead th{
  background:linear-gradient(135deg,var(--primary),var(--secondary));
  color:#fff;
  text-align:left;
  padding:14px 16px;
  font-weight:600;
  font-size:0.94rem;
}
tbody td{padding:12px 16px;border-top:1px solid var(--border);font-size:0.95rem;vertical-align:top}
tbody tr:nth-child(even) td{background:var(--row-alt)}
/* ToC */
.toc{
  background:var(--surface-alt);
  border:1px solid var(--border);
  border-left:4px solid var(--accent);
  border-radius:var(--radius);
  padding:20px 26px;
  margin:1.6em 0 2em;
}
.toc-title{font-weight:700;margin:0 0 10px;color:var(--secondary);text-transform:uppercase;font-size:0.85rem;letter-spacing:0.06em}
.toc ol{margin:0;padding:0;list-style:none;counter-reset:toc-counter}
.toc ol li{padding:4px 0 4px 2em;min-height:0}
.toc ol li::before{
  content:counter(toc-counter) ".";
  counter-increment:toc-counter;
  background:none;color:var(--accent);
  width:auto;height:auto;
  box-shadow:none;
  position:absolute;left:0;
  font-weight:700;
  display:inline;
  border-radius:0;
  top:4px;
}
.toc a{color:var(--secondary);font-size:0.95rem}
.toc a:hover{color:var(--accent)}
/* Callout */
.callout{
  background:var(--surface);
  border:1px solid var(--border);
  border-left:4px solid var(--accent);
  padding:16px 20px;
  border-radius:var(--radius);
  margin:1.4em 0;
  font-size:0.96rem;
}
.callout strong{color:var(--secondary)}
/* FAQ accordion */
details{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  margin:10px 0;
  padding:0;
  transition:box-shadow 0.16s;
}
details[open]{box-shadow:0 3px 10px rgba(51,65,85,0.08);border-color:var(--accent)}
details summary{
  cursor:pointer;
  padding:14px 44px 14px 18px;
  font-weight:600;
  color:var(--secondary);
  position:relative;
  list-style:none;
  outline:none;
}
details summary::-webkit-details-marker{display:none}
details summary::after{
  content:"▼";
  position:absolute;right:16px;top:50%;
  transform:translateY(-50%);
  color:var(--accent);
  font-size:0.8rem;
  transition:transform 0.2s;
}
details[open] summary::after{transform:translateY(-50%) rotate(180deg)}
details p{padding:0 18px 16px;margin:0;color:var(--text)}
/* Author box */
.author-box{
  display:flex;flex-wrap:wrap;gap:20px;align-items:center;
  background:linear-gradient(135deg,var(--surface),var(--surface-alt));
  border:1px solid var(--border);
  border-left:4px solid var(--accent);
  border-radius:var(--radius);
  padding:22px 26px;
  margin:2.6em 0 1.5em;
}
.author-box img{width:80px;height:80px;border-radius:50%;border:2px solid var(--accent);background:#fff}
.author-box div{flex:1;min-width:220px}
.author-name{font-weight:700;margin:0;color:var(--secondary);font-size:1.05rem}
.author-role{margin:2px 0 8px;color:var(--muted);font-size:0.9rem;font-weight:500}
.author-bio{margin:0;font-size:0.94rem;color:var(--text)}
/* Illustration */
.illustration{margin:2em auto;max-width:640px}
.illustration figcaption{text-align:center;font-size:0.86rem;color:var(--muted);margin-top:8px;font-style:italic}
/* Footer */
.site-footer{
  background:var(--secondary);
  color:#cbd5e1;
  padding:36px 0 24px;
  margin-top:60px;
  font-size:0.92rem;
}
.site-footer a{color:#e2e8f0}
.site-footer a:hover{color:var(--accent)}
.footer-cols{display:grid;grid-template-columns:1fr;gap:24px;margin-bottom:24px}
.footer-cols h3{color:#fff;margin:0 0 8px;font-size:0.95rem;text-transform:uppercase;letter-spacing:0.06em}
.footer-cols ul{list-style:none;padding:0;margin:0}
.footer-cols li{padding:3px 0}
.footer-cols li::before{content:none}
.footer-bottom{border-top:1px solid #475569;padding-top:16px;font-size:0.86rem;color:#94a3b8;text-align:center}
/* Question-mark accent for FAQ hub feel */
.q-marker{display:inline-block;width:1.4em;height:1.4em;line-height:1.4em;text-align:center;background:var(--accent);color:#fff;border-radius:50%;font-weight:700;margin-right:0.5em;font-size:0.85em}
/* Responsive */
@media (min-width:700px){
  .hero{padding:72px 0 60px}
  .hero h1{font-size:2.6rem}
  main h2{font-size:1.75rem}
  .footer-cols{grid-template-columns:2fr 1fr 1fr;gap:36px}
}
@media (min-width:980px){
  .container{padding:0 30px}
  .hero h1{font-size:2.9rem;max-width:900px}
  main h2{font-size:1.85rem}
}

/* a11y additions */
.skip-link{position:absolute;left:-9999px;top:0;background:var(--primary);color:#fff;padding:10px 16px;border-radius:4px;z-index:1000;text-decoration:none;font-weight:700}
.skip-link:focus{left:12px;top:12px}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important}}
