:root{
  --bg:#0b0c10;
  --bg-soft:#111218;
  --ink:#e6e6e6;
  --muted:#a8a8b3;
  --red:#d21f26;
  --red-weak:#ff3b3b22;
  --line:#2a2c36;
  --card:#151722;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;line-height:1.5}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
main{display:block}

.rail{
  position:fixed;inset:0 auto 0 0;width:290px;background:linear-gradient(180deg,#0f1118, #0b0c10);
  border-right:1px solid var(--line);padding:22px 18px;display:flex;flex-direction:column;gap:8px;
}
.rail .brand{display:flex;align-items:center;gap:12px;margin-bottom:10px;padding:8px;border-radius:14px;background:#0f1118;border:1px solid var(--line)}
.rail .brand img{width:42px;height:42px}
.wordmark{font-weight:800;letter-spacing:.03em}
.rail a{padding:10px 12px;border-radius:12px;color:var(--muted)}
.rail a:hover{background:var(--red-weak);color:var(--ink)}
.rail a[aria-current="page"]{background:var(--red-weak);color:var(--ink)}

.viewport{margin-left:290px;min-height:100vh}
.site-foot{border-top:1px solid var(--line);padding:22px;margin-left:290px;background:var(--bg-soft);color:var(--muted)}

.home .hero{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;padding:60px 48px 20px}
.hero-copy h1{font-size:48px;line-height:1.05;margin:0 0 10px;font-weight:900;letter-spacing:.5px}
.hero-copy p{max-width:55ch;color:var(--muted)}
.cta{display:flex;gap:12px;margin-top:18px}
.btn{background:var(--red);color:white;padding:12px 16px;border-radius:14px;border:0;font-weight:700;cursor:pointer;display:inline-block}
.btn.ghost{background:transparent;border:1px solid var(--red)}
.btn:hover{filter:brightness(1.08)}

.hero-mark{position:relative;min-height:280px;background:radial-gradient(60% 60% at 55% 45%, #1b1e2a, #0b0c10);border:1px solid var(--line);border-radius:20px;overflow:hidden}
.pulse{position:absolute;inset:auto -40% -40% -40%;height:60%;background:conic-gradient(from 180deg at 50% 50%, #0000, var(--red-weak), #0000);filter:blur(30px);animation:pulse 4s infinite linear}
@keyframes pulse{to{transform:rotate(360deg)}}
.gridglobe{position:absolute;inset:0;background:
  radial-gradient(circle at 50% 50%, #ffffff0a 0 60%, transparent 60%),
  repeating-radial-gradient(circle at 50% 50%, transparent 0 10px, #ffffff07 10px 11px),
  repeating-linear-gradient(0deg, #ffffff07 0 1px, transparent 1px 36px),
  repeating-linear-gradient(90deg, #ffffff07 0 1px, transparent 1px 36px);
  mask:radial-gradient(circle at 50% 50%, #000 0 60%, transparent 60%);
}

.panels{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding:32px 48px 60px}
.panels article{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px}
.panels h3{margin:6px 0 6px}

.pagehead{padding:48px 48px 8px;border-bottom:1px solid var(--line);background:linear-gradient(0deg, #0e1016, #0b0c10)}
.pagehead h1{font-size:40px;margin:0 0 8px}
.pagehead p{color:var(--muted);margin:0 0 14px}

.text section{padding:22px 48px;max-width:1000px}
.checklist{list-style:none;padding-left:0}
.checklist li{padding-left:28px;position:relative;margin:8px 0}
.checklist li::before{content:"▸";position:absolute;left:0;color:var(--red)}

.cards .cardgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding:22px 48px 48px}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px}
.card.dark{background:#111318}

.notice{margin:8px 48px 32px;padding:16px;border:1px dashed var(--red);border-radius:12px;background:#1a0f12}

.muted{color:var(--muted)}

@media (max-width: 1024px){
  .home .hero{grid-template-columns:1fr}
  .panels{grid-template-columns:1fr}
  .cards .cardgrid{grid-template-columns:1fr}
  .rail{position:relative;width:100%;flex-direction:row;align-items:center;gap:6px;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}
  .rail .brand{margin:0}
  .viewport,.site-foot{margin-left:0}
  .pagehead,.text section,.cards .cardgrid,.panels{padding-left:18px;padding-right:18px}
}
