/* ==========================================================================
   Resume page — layered on base.css (tokens, chrome, .win, .card, .chip, .h2, .foot)
   ========================================================================== */

[hidden]{display:none !important}

/* placeholders: obvious on screen, blocked from deploy by tools/preflight.sh */
.ph{color:rgb(var(--warn));border-bottom:1px dashed rgb(var(--warn) / .55)}

/* ---- header --------------------------------------------------------------- */
.rhero{padding:clamp(36px,7vh,76px) 0 clamp(22px,4vh,40px)}
.rhero h1{margin:0;font:600 clamp(40px,7.4vw,84px)/1 var(--sans);letter-spacing:-.04em;color:rgb(var(--hi))}
.role{margin-top:16px;font:500 clamp(15px,2vw,20px)/1.4 var(--mono);color:rgb(var(--acc))}
.role::before{content:"> ";color:rgb(var(--dim))}
.role::after{content:"";display:inline-block;width:.55em;height:1.05em;margin-left:6px;vertical-align:-.16em;background:rgb(var(--acc));animation:blink 1.1s steps(1) infinite}
.summary{max-width:64ch;margin-top:22px;font:400 clamp(15.5px,1.8vw,18px)/1.7 var(--sans);color:rgb(var(--fg))}
.summary strong{color:rgb(var(--hi));font-weight:600}
.rhero .links{margin-top:26px}

/* ---- two-column body ------------------------------------------------------ */
.rgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,330px);gap:clamp(24px,4vw,48px);align-items:start;padding-bottom:44px}
.rmain{display:grid;gap:44px;min-width:0}
.rside{display:grid;gap:14px;position:sticky;top:78px}
.sec .h2{margin-bottom:18px}

/* ---- git-log career timeline --------------------------------------------- */
.gitlog{padding:8px 18px 18px 14px;font-size:13.5px}
.commits{position:relative;display:grid}
.commit{position:relative;padding:16px 0 18px 30px}
.commit::before{content:"";position:absolute;left:6px;top:0;bottom:0;width:2px;background:linear-gradient(180deg,rgb(var(--acc) / .55),rgb(var(--acc) / .18))}
.commit:first-child::before{top:26px}
.commit:last-child::before{bottom:calc(100% - 26px);background:rgb(var(--acc) / .5)}
.commit::after{content:"";position:absolute;left:0;top:23px;width:14px;height:14px;border-radius:50%;background:rgb(var(--bg));border:2px solid rgb(var(--acc));box-shadow:0 0 14px rgb(var(--acc) / .55)}
.commit:first-child::after{background:rgb(var(--acc))}
.commit + .commit{border-top:1px dashed rgb(var(--acc) / .12)}
.cm-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;font-size:12px}
.cm-hash{color:rgb(var(--warn))}
.cm-ref{color:rgb(var(--acc2))}
.cm-ref b{font-weight:500;color:rgb(var(--acc))}
.cm-t{margin:8px 0 2px;font:600 clamp(16px,1.9vw,19px)/1.35 var(--sans);color:rgb(var(--hi))}
.cm-meta{font-size:12px;color:rgb(var(--dim))}
.cm-b{display:grid;gap:7px;margin-top:12px;font:400 14.5px/1.6 var(--sans);color:rgb(var(--fg))}
.cm-b li{position:relative;padding-left:20px}
.cm-b li::before{content:"+";position:absolute;left:2px;color:rgb(var(--acc));font:500 13px/1.75 var(--mono)}
.cm-end{padding:4px 0 0 30px;font-size:12px;color:rgb(var(--dim))}
.sec-note{margin-top:14px;font:400 13px/1.6 var(--mono);color:rgb(var(--dim))}
.sec-note a{color:rgb(var(--acc));text-decoration:underline;text-decoration-color:rgb(var(--acc) / .4);text-underline-offset:3px}
.sec-note a:hover{text-decoration-color:currentColor}

/* ---- projects ------------------------------------------------------------- */
.projs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:14px}
.proj{padding:18px 20px}
.proj h3{display:flex;align-items:center;gap:10px;margin-bottom:8px;font:600 15px/1.3 var(--mono);color:rgb(var(--hi))}
.proj h3 span{color:rgb(var(--acc))}
.proj p{font:400 14.5px/1.65 var(--sans);color:rgb(var(--fg))}
.proj .tags{margin-top:12px}

/* ---- sidebar -------------------------------------------------------------- */
.print-only{display:none}
.contact{display:grid;gap:10px;font-size:13px}
.contact a{display:flex;align-items:center;gap:10px;color:rgb(var(--hi));word-break:break-all}
.contact svg{width:15px;height:15px;flex:none;fill:currentColor;color:rgb(var(--acc))}
.contact svg.st{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sk{display:grid;gap:14px}
.sk h3{margin-bottom:7px;font:500 11.5px/1.2 var(--mono);letter-spacing:.06em;color:rgb(var(--dim))}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{padding:4px 9px;border-radius:6px;font:400 12px/1.4 var(--mono);color:rgb(var(--hi));background:rgb(var(--acc) / .07);border:1px solid rgb(var(--acc) / .2)}
.plain{display:grid;gap:8px;font:400 14px/1.55 var(--sans);color:rgb(var(--fg))}

/* ---- responsive ----------------------------------------------------------- */
@media (max-width:980px){
  .rgrid{grid-template-columns:minmax(0,1fr)}
  .rside{position:static}
}
@media (max-width:720px){
  .gitlog{padding-right:12px;font-size:13px}
  .commit{padding-left:26px}
}

/* ---- print: a clean one-column CV, no chrome, ink-friendly ---------------- */
@media print{
  @page{margin:.55in}
  :root,:root[data-theme]{--bg:255 255 255;--fg:34 40 48;--hi:0 0 0;--dim:98 108 120;--acc:0 104 66;--acc2:0 88 138;--warn:150 88 0;--err:170 30 40;color-scheme:light}
  html{background:#fff}
  body{padding:0;font-size:10pt;overflow:visible}
  .bg,.bg-glow,.bg-vig,.crt,.topbar,.tmux,.skip,.no-print,.win-bar,.dots,.role::after,.cm-head,.cm-end,.rhero .links,.rhero .eyebrow{display:none !important}
  .print-only{display:block}
  .wrap{max-width:none;padding:0}
  .rv{opacity:1 !important;transform:none !important;animation:none !important}
  [data-spot]::before{display:none}
  .win,.card{background:none !important;box-shadow:none !important;-webkit-backdrop-filter:none;backdrop-filter:none;border:1px solid #d5dae0 !important;border-radius:6px}
  .rhero{padding:0 0 14px}
  .rhero h1{font-size:30pt}
  .role{font-size:12pt}
  .summary{font-size:10.5pt;max-width:none}
  .rgrid{grid-template-columns:minmax(0,1fr) 2.35in;gap:18px;padding-bottom:0}
  .rside{position:static}
  .rmain{gap:22px}
  .h2{margin-bottom:10px;font-size:14pt}
  .commit{break-inside:avoid;padding:10px 0 10px 24px}
  .commit::after{box-shadow:none;top:15px}
  .commit::before{background:#b9c1ca}
  .gitlog{padding:4px 12px 8px 10px}
  .cm-b{font-size:10pt;gap:4px;margin-top:6px}
  .sec-note{margin-top:8px;font-size:9pt}
  .proj{break-inside:avoid;padding:10px 12px}
  .proj p{font-size:10pt}
  .tag{border-color:#c5ccd4;background:none;color:#000}
  .contact{font-size:8pt;gap:8px}
  .contact a{color:#000;word-break:normal;overflow-wrap:anywhere}
  .contact a::after{content:none}
  .contact svg{display:none}
  .foot{border-top:1px solid #d5dae0;padding:10px 0 0}
  .foot a{text-decoration:none;color:inherit}
  a{color:inherit}
  .ph{border-bottom:none}
}

@media (prefers-reduced-motion:reduce){
  .role::after{animation:none}
}
