:root{
  --bg:#0b0c0e; --panel:#121417; --line:#23272c;
  --text:#e8eaec; --dim:#9aa1a9; --faint:#5a6068;
  --accent:#ff9d3d; --ok:#5eead4;
  --mono:'JetBrains Mono', ui-monospace, monospace;
  --sans:'Inter', system-ui, sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--sans);line-height:1.6;min-height:100vh}
a{color:var(--ok);text-decoration:none}
a:hover{text-decoration:underline}
header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;
  padding:18px 32px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:13px}
header .brand{color:var(--text);font-weight:700;text-decoration:none}
header .brand span{color:var(--accent)}
nav{display:flex;gap:20px;flex-wrap:wrap}
nav a{color:var(--dim);text-decoration:none}
nav a.active,nav a:hover{color:var(--accent)}
main{max-width:960px;margin:0 auto;padding:56px 32px 80px}
.tag-line{font-family:var(--mono);font-size:12px;color:var(--accent);text-transform:uppercase;letter-spacing:.08em;margin-bottom:14px}
h1{font-family:var(--mono);font-size:clamp(28px,5vw,48px);line-height:1.1;margin-bottom:18px}
h2{font-family:var(--mono);font-size:22px;margin:56px 0 18px;padding-top:8px;border-top:1px solid var(--line)}
h3{font-family:var(--mono);font-size:17px;margin-bottom:6px}
p{color:var(--dim);margin-bottom:14px;max-width:720px}
strong{color:var(--text)}
ul{color:var(--dim);margin:0 0 14px 20px;max-width:720px}
li{margin-bottom:6px}
.lead{font-size:17px;max-width:640px}
.pill{display:inline-block;font-family:var(--mono);font-size:12px;color:var(--ok);border:1px solid rgba(94,234,212,.3);padding:4px 10px;border-radius:20px;margin-bottom:24px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:36px 0}
.stat{background:var(--bg);padding:22px}
.stat b{display:block;font-family:var(--mono);font-size:28px;color:var(--accent)}
.stat span{font-family:var(--mono);font-size:11px;color:var(--faint);text-transform:uppercase}
.card{border:1px solid var(--line);background:var(--panel);padding:26px;margin-bottom:18px;scroll-margin-top:90px}
.card .meta{font-family:var(--mono);font-size:12px;color:var(--faint);margin-bottom:8px}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.tag{font-family:var(--mono);font-size:11px;color:var(--dim);border:1px solid var(--line);padding:3px 8px;border-radius:3px}
.links{font-family:var(--mono);font-size:13px;display:flex;gap:18px;flex-wrap:wrap;margin-top:10px}
.todo{color:var(--accent);font-family:var(--mono);font-size:12px}
.post-list a.post{display:block;border:1px solid var(--line);background:var(--panel);padding:20px 22px;margin-bottom:14px;color:var(--text);text-decoration:none}
.post-list a.post:hover{border-color:var(--accent)}
.post-list .date{font-family:var(--mono);font-size:12px;color:var(--faint)}
.post-list .summary{color:var(--dim);font-size:14px;margin-top:6px}
.prose h2{border:none;margin-top:36px}
.prose pre{background:#000;border:1px solid var(--line);padding:14px;overflow-x:auto;font-family:var(--mono);font-size:13px;margin-bottom:14px}
.prose code{font-family:var(--mono);font-size:13px;color:var(--accent)}
.prose p,.prose li{max-width:none}
footer{border-top:1px solid var(--line);padding:22px 32px;font-family:var(--mono);font-size:12px;color:var(--faint);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
@media (max-width:700px){.stats{grid-template-columns:1fr}header{padding:14px 20px}main{padding:40px 20px}}
@media print{
  header,footer,.noprint{display:none}
  body{background:#fff;color:#000}
  p,ul,li,strong,h1,h2,h3{color:#000}
  .card{border:none;background:none;padding:0}
  h2{margin-top:18px}
}

/* ---- home page sections ---- */
.domains{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:24px}
.domain{background:var(--bg);padding:20px;text-decoration:none;color:var(--text);display:block}
.domain:hover{background:var(--panel)}
.domain .meta{font-family:var(--mono);font-size:11px;color:var(--accent);margin-bottom:6px}
.domain h3{font-size:15px;margin-bottom:6px}
.domain p{font-size:13px;margin:0}
.card h3 a{color:var(--text);text-decoration:none}
.card h3 a:hover{color:var(--accent)}
.skills{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:24px}
.skill-group{background:var(--bg);padding:20px}
.skill-group .meta{font-family:var(--mono);font-size:11px;color:var(--accent);margin-bottom:8px}
.skill-group p{font-size:14px;margin:0;max-width:none}

/* ---- 3D reel ---- */
.reel{border:1px solid var(--line);background:var(--panel);margin-bottom:24px}
.reel video{display:block;width:100%;max-height:70vh;background:#000}
.reel-caption{padding:16px 20px}
.reel-caption .meta{font-family:var(--mono);font-size:11px;color:var(--accent);margin-bottom:4px}
.reel-caption p{font-size:14px;margin:0}

.video-wrap {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  margin: 16px 0;
  border-radius: 8px;
  overflow: hidden;
  background: #000;
}
.video-wrap iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* Sticky header: hides on scroll down, reappears on scroll up */
header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--bg);
  transition: transform 0.25s ease;
}
header.is-hidden {
  transform: translateY(-100%);
}