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

:root{
  --bg:#05060c;
  --bg2:#0b0d1a;
  --panel:rgba(18,20,40,.72);
  --line:rgba(120,140,255,.16);
  --text:#d6dbf5;
  --muted:#8a91b8;
  --cyan:#22e6ff;
  --violet:#a46bff;
  --white:#f4f6ff;
  --mono:'JetBrains Mono',ui-monospace,Consolas,monospace;
  --sans:'Sora',system-ui,-apple-system,Segoe UI,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;font-family:var(--sans);font-weight:300;font-size:17px;line-height:1.75;color:var(--text);
  background-color:var(--bg);
  background-image:
    radial-gradient(1px 1px at 12% 18%,#fff8,transparent 60%),
    radial-gradient(1px 1px at 72% 9%,#fff6,transparent 60%),
    radial-gradient(1.5px 1.5px at 38% 62%,#9ff4ff88,transparent 60%),
    radial-gradient(1px 1px at 88% 44%,#fff7,transparent 60%),
    radial-gradient(1px 1px at 22% 83%,#d9c4ff88,transparent 60%),
    radial-gradient(1px 1px at 58% 31%,#fff5,transparent 60%),
    radial-gradient(1.5px 1.5px at 93% 78%,#fff6,transparent 60%),
    radial-gradient(900px 600px at 85% -10%,rgba(164,107,255,.18),transparent 70%),
    radial-gradient(800px 500px at -10% 30%,rgba(34,230,255,.10),transparent 70%);
  background-size:420px 420px,420px 420px,420px 420px,420px 420px,420px 420px,420px 420px,420px 420px,100% 100%,100% 100%;
  background-attachment:fixed;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--cyan);text-decoration:underline;text-decoration-color:rgba(34,230,255,.4);text-underline-offset:3px}
a:hover{color:var(--white);text-decoration-color:var(--violet)}

/* header */
.site-header{position:sticky;top:0;z-index:20;background:rgba(5,6,12,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.bar{max-width:1240px;margin:0 auto;padding:.7rem 1.25rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}
.logo{display:inline-flex;background:#fff;border-radius:8px;padding:6px 10px;box-shadow:0 0 0 1px var(--line),0 0 24px rgba(34,230,255,.18)}
.logo img{height:30px;width:auto}
.nav-toggle{display:none}
.nav-label{display:none;font-family:var(--mono);font-size:.8rem;color:var(--cyan);border:1px solid var(--line);padding:.35rem .7rem;border-radius:6px;cursor:pointer}
.main-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:.3rem;flex-wrap:wrap}
.main-nav a{display:block;font-family:var(--mono);font-size:.78rem;letter-spacing:.02em;color:var(--muted);text-decoration:none;padding:.45rem .75rem;border-radius:6px}
.main-nav a:hover,.main-nav a[aria-current="page"]{color:var(--cyan);background:rgba(34,230,255,.07)}
@media (max-width:900px){
  .nav-label{display:inline-block}
  .main-nav{width:100%;display:none}
  .nav-toggle:checked ~ .main-nav{display:block}
  .main-nav ul{flex-direction:column;padding:.5rem 0}
}

/* hero */
.hero{max-width:1240px;margin:0 auto;padding:3.5rem 1.25rem 2rem;display:grid;grid-template-columns:1.4fr 1fr;gap:2.5rem;align-items:center}
.kicker{font-family:var(--mono);font-size:.78rem;color:var(--violet);letter-spacing:.14em;text-transform:uppercase}
.kicker::before{content:"// ";color:var(--cyan)}
h1,h2,h3{font-family:var(--sans);color:var(--white);line-height:1.2}
h1{font-size:clamp(2rem,4.6vw,3.3rem);font-weight:800;margin:.5rem 0 1rem;letter-spacing:-.02em}
h1 .glow{background:linear-gradient(90deg,var(--cyan),var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}
.lede{font-size:1.12rem;color:var(--text);max-width:40em}
.hero-media{border-radius:18px;overflow:hidden;border:1px solid var(--line);box-shadow:0 0 60px rgba(164,107,255,.25)}
.hero-media img{width:100%;aspect-ratio:4/5;object-fit:cover}
.page-hero{max-width:1240px;margin:0 auto;padding:3rem 1.25rem 1rem}

/* layout with sidebar toc */
.layout{max-width:1240px;margin:0 auto;padding:1rem 1.25rem 4rem;display:grid;grid-template-columns:250px minmax(0,1fr);gap:3rem;align-items:start}
.toc{position:sticky;top:88px;border:1px solid var(--line);background:var(--panel);border-radius:14px;padding:1.1rem 1rem}
.toc-title{font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan);margin:0 0 .6rem}
.toc ol{list-style:none;margin:0;padding:0;counter-reset:t}
.toc li{counter-increment:t}
.toc a{display:flex;gap:.55rem;font-size:.86rem;line-height:1.4;color:var(--muted);text-decoration:none;padding:.4rem .3rem;border-left:2px solid transparent}
.toc a::before{content:counter(t,decimal-leading-zero);font-family:var(--mono);font-size:.72rem;color:var(--violet);padding-top:.1rem}
.toc a:hover{color:var(--white);border-left-color:var(--cyan)}
article{max-width:760px}
article h2{font-size:clamp(1.4rem,2.6vw,1.85rem);font-weight:700;margin:2.8rem 0 .8rem;padding-top:.4rem;scroll-margin-top:90px}
article h2::before{content:"";display:block;width:44px;height:3px;margin-bottom:.9rem;background:linear-gradient(90deg,var(--cyan),var(--violet));border-radius:2px}
article h3{font-size:1.15rem;font-weight:600;margin:1.8rem 0 .4rem;color:var(--cyan)}
article p,article li{color:var(--text)}
article strong{color:var(--white);font-weight:600}
article ul{padding-left:1.2rem}
article li::marker{color:var(--violet)}
.figure{margin:2.2rem 0;border-radius:14px;overflow:hidden;border:1px solid var(--line)}
.figure img{width:100%;object-fit:cover;max-height:460px}
.spec{border:1px solid var(--line);border-left:3px solid var(--cyan);background:var(--panel);border-radius:10px;padding:1rem 1.2rem;margin:1.6rem 0;font-size:.97rem}
.spec code,code{font-family:var(--mono);font-size:.85em;color:var(--cyan)}
.table-wrap{overflow-x:auto;margin:1.6rem 0;border:1px solid var(--line);border-radius:12px}
table{border-collapse:collapse;width:100%;min-width:520px;font-size:.92rem}
th,td{padding:.75rem .9rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
th{font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--violet);background:rgba(164,107,255,.06)}
tr:last-child td{border-bottom:0}
@media (max-width:900px){
  .hero{grid-template-columns:1fr;padding-top:2.2rem}
  .hero-media img{aspect-ratio:16/10}
  .layout{grid-template-columns:1fr;gap:1.5rem}
  .toc{position:static}
}

/* footer */
.site-footer{border-top:1px solid var(--line);background:linear-gradient(180deg,rgba(11,13,26,.6),#03040a)}
.foot{max-width:1240px;margin:0 auto;padding:3rem 1.25rem 1.5rem;display:grid;grid-template-columns:1.1fr 1fr 1.3fr;gap:2rem}
.foot h2{font-family:var(--mono);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);margin:0 0 .8rem}
.foot p,.foot li{font-size:.92rem;color:var(--muted);margin:.3rem 0}
.foot ul{list-style:none;padding:0;margin:0}
.foot a{color:var(--muted);text-decoration:none}
.foot a:hover{color:var(--cyan)}
.foot .logo{margin-bottom:.9rem}
.map{border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-top:.8rem}
.map iframe{display:block;width:100%;height:200px;border:0;filter:invert(.9) hue-rotate(190deg) saturate(.8)}
.copy{max-width:1240px;margin:0 auto;padding:1rem 1.25rem 2rem;border-top:1px solid var(--line);font-family:var(--mono);font-size:.75rem;color:var(--muted)}
@media (max-width:900px){.foot{grid-template-columns:1fr}}
@media (max-width:400px){body{font-size:16px}.bar{padding:.6rem .9rem}.layout,.hero,.page-hero,.foot{padding-left:.9rem;padding-right:.9rem}}

/* single-column content after sidebar removal */
.layout{grid-template-columns:minmax(0,1fr);max-width:900px;margin-inline:auto}
