:root{
  --bg:#0a0c10;--bg2:#11151c;--card:#141922;--line:#222a36;
  --text:#e6ebf2;--mute:#8b96a8;--green:#2fbf71;--lime:#9be15d;
  --amber:#f2b84b;--blue:#5aa9ff;--red:#ef6b6b;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:70px}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--lime);text-decoration:none}
a:hover{text-decoration:underline}
code{font-family:var(--mono);font-size:.88em;background:#1b2230;padding:.1em .35em;border-radius:5px}
main{max-width:1060px;margin:0 auto;padding:0 22px}
section{padding:64px 0;border-top:1px solid var(--line)}
section.hero{border-top:0}
h2{font-size:1.9rem;margin:0 0 12px;letter-spacing:-.02em}
h3{margin:0;font-size:1.15rem}
h3 small{display:block;color:var(--mute);font-weight:400;font-size:.8rem;font-family:var(--mono);margin-top:3px}
.sub{color:var(--mute)}

.nav{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:12px 22px;background:rgba(10,12,16,.82);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.brand{display:flex;gap:10px;align-items:center;color:var(--text);font-weight:700;font-size:1.1rem}
.brand:hover{text-decoration:none}
.nav nav{display:flex;gap:20px;font-size:.93rem}
.nav nav a{color:var(--mute)}
.nav nav a:hover{color:var(--text);text-decoration:none}
.nav .gh{color:var(--text)!important;border:1px solid var(--line);padding:4px 12px;border-radius:99px}

.hero{text-align:center;padding:90px 0 56px;background:radial-gradient(ellipse 60% 50% at 50% 30%,rgba(47,191,113,.16),transparent 70%)}
.hero-logo{border-radius:28px;box-shadow:0 0 80px rgba(47,191,113,.35)}
.hero h1{font-size:clamp(2.1rem,5.5vw,3.6rem);line-height:1.08;letter-spacing:-.035em;margin:28px 0 18px}
.hero h1 span{background:linear-gradient(90deg,var(--green),var(--lime));-webkit-background-clip:text;background-clip:text;color:transparent}
.lede{max-width:680px;margin:0 auto;color:#c3cbd8;font-size:1.13rem}
.cta{margin:30px 0 22px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.btn{padding:11px 22px;border-radius:10px;border:1px solid var(--line);color:var(--text);font-weight:600;background:var(--card)}
.btn:hover{text-decoration:none;border-color:#384355}
.btn.primary{background:linear-gradient(135deg,var(--green),#3fa65f);border:0;color:#06110a}
.etym{color:var(--mute);font-size:.88rem;margin:0}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:28px 0 56px;border-top:0}
.stats div{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;text-align:center}
.stats b{display:block;font-size:2rem;color:var(--lime);letter-spacing:-.03em}
.stats span{color:var(--mute);font-size:.86rem}

.device{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px;margin:16px 0}
.device.main{border-color:#2a4a37;background:linear-gradient(180deg,#15201a,var(--card) 40%)}
.dev-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}
.pill{font-size:.75rem;font-weight:700;padding:4px 10px;border-radius:99px;white-space:nowrap}
.pill.green{background:rgba(47,191,113,.15);color:var(--green)}
.pill.amber{background:rgba(242,184,75,.14);color:var(--amber)}
.pill.blue{background:rgba(90,169,255,.14);color:var(--blue)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px;margin:18px 0}
.grid div{font-size:.92rem;padding:8px 12px 8px 32px;border-radius:9px;background:#0f141b;position:relative}
.grid div::before{position:absolute;left:11px;font-weight:700}
.grid .ok::before{content:"✓";color:var(--green)}
.grid .wip::before{content:"◐";color:var(--amber)}
.grid .no::before{content:"✕";color:var(--red)}
.grid .no{color:var(--mute)}
.links{margin:6px 0 0;display:flex;gap:18px;flex-wrap:wrap;font-weight:600;font-size:.93rem}
.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.two .device{margin:0}

.chain{list-style:none;padding:0;margin:28px 0 0;display:grid;grid-template-columns:repeat(5,1fr);gap:10px;counter-reset:c}
.chain li{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 16px;position:relative;counter-increment:c}
.chain li::before{content:counter(c);font-family:var(--mono);color:var(--green);font-size:.8rem}
.chain li:not(:last-child)::after{content:"→";position:absolute;right:-12px;top:50%;transform:translateY(-50%);color:var(--green);font-weight:700;z-index:1}
.chain b{display:block;font-size:1.05rem;margin:4px 0 6px}
.chain span{color:var(--mute);font-size:.86rem;line-height:1.5;display:block}
.chain li:last-child{border-color:#2a4a37}

.callout{background:rgba(242,184,75,.07);border:1px solid rgba(242,184,75,.3);border-radius:12px;padding:16px 18px;margin:18px 0 28px;color:#e9dcc0}
.need{padding-left:20px;margin:10px 0 24px}
.need li{margin:6px 0}
.need.neg li::marker{color:var(--red)}
.steps{padding-left:22px}
.steps li{margin:14px 0}
.steps li::marker{color:var(--green);font-weight:700}
pre{background:#0d1117;border:1px solid var(--line);border-radius:10px;padding:14px 16px;overflow-x:auto;margin:10px 0 6px}
pre code{background:none;padding:0;font-size:.84rem;color:#cfe8d6}
.note{color:var(--mute);font-size:.86rem}

.repos,.credits{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin:20px 0 36px}
.repos a,.credits a{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;color:var(--text)}
.repos a:hover,.credits a:hover{text-decoration:none;border-color:var(--green)}
.repos b,.credits b{display:block;font-family:var(--mono);font-size:.92rem;color:var(--lime)}
.credits b{font-family:inherit}
.repos span,.credits span{color:var(--mute);font-size:.86rem}
.drivers{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin:18px 0}
.drivers div{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.drivers h4{margin:0 0 8px;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:var(--mute)}
.drivers a{display:inline-block;font-family:var(--mono);font-size:.82rem;margin:3px 6px 3px 0;padding:2px 8px;border-radius:6px;background:#0f141b;color:var(--text)}
.drivers a:hover{background:#18301f;text-decoration:none;color:var(--lime)}

.legal p{color:var(--mute);max-width:820px}
footer{text-align:center;color:var(--mute);font-size:.88rem;padding:30px 20px 44px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:center;align-items:center}

@media (max-width:860px){
  .chain{grid-template-columns:1fr}
  .chain li:not(:last-child)::after{content:"↓";right:auto;left:50%;top:auto;bottom:-15px;transform:translateX(-50%)}
  .two{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr}
  .nav nav a:not(.gh){display:none}
}
.timeline{list-style:none;padding:0;margin:20px 0 0;border-left:2px solid var(--line)}
.timeline li{position:relative;padding:0 0 22px 22px}
.timeline li::before{content:"";position:absolute;left:-7px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px var(--bg)}
.timeline li:last-child::before{background:var(--bg);border:2px solid var(--amber);width:8px;height:8px}
.timeline time{display:block;font-family:var(--mono);font-size:.82rem;color:var(--lime)}
.timeline span{color:#c3cbd8}
details{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 18px;margin:10px 0}
details summary{cursor:pointer;font-weight:600;list-style:none}
details summary::after{content:"+";float:right;color:var(--green);font-weight:700}
details[open] summary::after{content:"−"}
details p{color:var(--mute);margin:10px 0 0}
.banner{margin:8px 0 0}.banner img{width:100%;height:auto;border-radius:18px;border:1px solid var(--line);box-shadow:0 30px 80px rgba(0,0,0,.5)}
