/* ---------- design tokens + global resets ---------- */
:root{
  --bg:#fafafa;
  --surface:#ffffff;
  --ink:#111111;
  --ink-2:#555555;
  --ink-3:#999999;
  --line:#e2e2e2;
  --accent:#e3000b;
  --accent-soft:rgba(227,0,11,.07);
  --mono:'SF Mono',ui-monospace,'Cascadia Code',Menlo,Consolas,monospace;
  --sans:'Helvetica Neue',Helvetica,Inter,Arial,sans-serif;
}
[data-theme="dark"]{
  --bg:#0e0e0e;
  --surface:#161616;
  --ink:#f2f2f2;
  --ink-2:#b0b0b0;
  --ink-3:#6e6e6e;
  --line:#2a2a2a;
  --accent:#ff3b44;
  --accent-soft:rgba(255,59,68,.1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--bg);color:var(--ink);
  font-family:var(--sans);
  font-size:16px;line-height:1.6;
  transition:background .35s,color .35s;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}
::selection{background:var(--accent);color:#fff}
a{color:inherit}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}

/* ---------- section scaffolding ---------- */
section{padding:84px 0;border-bottom:1px solid var(--line);scroll-margin-top:72px}
header[id]{scroll-margin-top:60px}
.sec-head{display:flex;align-items:baseline;gap:18px;margin-bottom:46px}
.sec-num{font-family:var(--mono);color:var(--accent);font-size:.85rem}
h2{font-size:clamp(1.5rem,3.4vw,2.2rem);text-transform:uppercase;letter-spacing:-.01em}

@media(max-width:720px){
  section{padding:56px 0}
  .sec-head{margin-bottom:32px}
}
@media(max-width:480px){
  .wrap{padding:0 18px}
}

/* ---------- buttons (shared) ---------- */
.btn{
  display:inline-block;text-decoration:none;font-size:.8rem;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;padding:13px 26px;
  border:1px solid var(--ink);transition:all .2s;
}
.btn.primary{background:var(--ink);color:var(--bg)}
.btn.primary:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.ghost:hover{border-color:var(--accent);color:var(--accent)}

/* ---------- scroll reveal ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .bar i{transition:none}
  .job-body,.job-toggle,.job-toggle::before,.job-toggle::after,
  .nav-links,.nav-toggle span,.nav-links a::after{transition:none}
  .term-cursor{animation:none}
}
