/* ---------- Currículum / Résumé page — extends style.css ---------- */
.topnav nav a.current{color:var(--teal-strong); border-color:var(--teal-strong);}

.cv-hero{
  max-width:1080px; margin:0 auto; padding:56px 32px 44px;
  display:grid; grid-template-columns:1.35fr .65fr; gap:52px; align-items:start;
}
.cv-hero h1{font-size:clamp(2.2rem,4.6vw,3.2rem); font-weight:600; line-height:1.04; margin-bottom:16px;}
.cv-hero .tagline{font-family:'IBM Plex Mono',monospace; font-size:.8rem; color:var(--teal-strong); line-height:1.55; margin:0 0 18px;}
.cv-hero .lede{font-size:1.02rem; line-height:1.7; color:var(--ink-2); max-width:60ch; margin:0 0 14px;}
.cv-hero .lede.soft{color:var(--ink-soft); font-size:.96rem;}

.id-card{
  background:var(--paper-3); border:1px solid var(--line); border-radius:8px; overflow:hidden;
  box-shadow:0 12px 30px -16px rgba(0,0,0,.35);
}
.id-card .photo{aspect-ratio:4/5; border-bottom:1px solid var(--line);}
.id-card dl{margin:0; padding:16px 18px 6px; display:grid; grid-template-columns:auto 1fr; gap:8px 14px;}
.id-card dt{font-family:'IBM Plex Mono',monospace; font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; color:var(--clay-strong); padding-top:2px;}
.id-card dd{margin:0; font-size:.84rem; color:var(--ink-2); line-height:1.45;}
.id-card dd a{text-decoration:none; border-bottom:1px solid var(--line);}
.id-card dd a:hover{color:var(--teal-strong); border-color:var(--teal-strong);}
.id-card .actions{padding:12px 18px 18px; display:flex; flex-wrap:wrap; gap:8px;}
.btn{
  display:inline-flex; align-items:center; gap:8px; cursor:pointer;
  font-family:'IBM Plex Mono',monospace; font-size:.7rem; letter-spacing:.06em; text-transform:uppercase;
  text-decoration:none; color:var(--paper-3); background:var(--teal-strong);
  border:1.5px solid var(--teal-strong); border-radius:22px; padding:8px 15px; transition:background .2s, color .2s;
}
.btn:hover{background:transparent; color:var(--teal-strong);}
.btn.ghost{background:transparent; color:var(--ink-soft); border-color:var(--line);}
.btn.ghost:hover{color:var(--teal-strong); border-color:var(--teal-strong);}

/* ---------- blocks ---------- */
.cv-block{max-width:1080px; margin:0 auto 72px; padding:0 32px;}
.cv-block > .section-head{padding:0; margin-bottom:28px;}
.kicker{font-family:'IBM Plex Mono',monospace; font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--clay-strong); margin:0 0 8px; display:block;}

/* expertise chips */
.chips{display:flex; flex-wrap:wrap; gap:8px; list-style:none; margin:0; padding:0;}
.chips li{
  font-size:.84rem; color:var(--ink-2); background:var(--paper-3);
  border:1px solid var(--line); border-radius:20px; padding:7px 14px; line-height:1.3;
}

/* ---------- experience ledger ---------- */
.ledger{position:relative; list-style:none; margin:0; padding:0;}
.ledger::before{
  content:""; position:absolute; left:170px; top:8px; bottom:8px; width:2px;
  background:repeating-linear-gradient(var(--ink-soft) 0 6px, transparent 6px 11px); opacity:.35;
}
.entry{display:grid; grid-template-columns:170px 1fr; gap:0 38px; padding:0 0 30px; position:relative;}
.entry::after{
  content:""; position:absolute; left:165px; top:6px; width:11px; height:11px; border-radius:50%;
  background:var(--teal); border:3px solid var(--paper); box-sizing:content-box; transform:translateX(-3px);
}
.entry.now::after{background:var(--clay);}
.entry .when{font-family:'IBM Plex Mono',monospace; font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; color:var(--clay-strong); line-height:1.5; padding-top:2px; text-align:right; padding-right:8px;}
.entry .when small{display:block; color:var(--ink-soft); text-transform:none; letter-spacing:.02em; font-size:.66rem; margin-top:2px;}
.entry .body{
  background:var(--paper-3); border:1px solid var(--line); border-radius:6px; padding:18px 22px;
}
.entry h3{font-size:1.1rem; font-weight:600; margin-bottom:3px;}
.entry .org{font-size:.86rem; color:var(--ink-soft); font-weight:500; margin-bottom:10px;}
.entry .org b{color:var(--ink-2); font-weight:600;}
.entry ul{margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:7px;}
.entry li{font-size:.89rem; line-height:1.55; color:var(--ink-2); padding-left:18px; position:relative;}
.entry li::before{content:"→"; position:absolute; left:0; color:var(--clay-strong); font-size:.8rem; top:1px;}
.entry .sub-role{margin-top:14px; padding-top:12px; border-top:1px dashed var(--line);}
.entry .sub-role h4{font-family:'Fraunces',Georgia,serif; font-size:.98rem; font-weight:600; margin:0 0 2px;}
.entry .sub-role .dates{font-family:'IBM Plex Mono',monospace; font-size:.66rem; color:var(--clay-strong); letter-spacing:.05em; text-transform:uppercase; display:block; margin-bottom:8px;}

/* ---------- two-column cards (education, civic) ---------- */
.cards{display:grid; grid-template-columns:repeat(2,1fr); gap:12px;}
.cards.three{grid-template-columns:repeat(3,1fr);}
.card{background:var(--paper-3); border:1px solid var(--line); border-radius:6px; padding:18px 20px;}
.card .yr{font-family:'IBM Plex Mono',monospace; font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; color:var(--clay-strong); display:block; margin-bottom:6px;}
.card h3{font-size:1rem; font-weight:600; margin-bottom:3px; line-height:1.3;}
.card .org{font-size:.84rem; color:var(--ink-soft); font-weight:500; margin-bottom:8px;}
.card p{font-size:.86rem; line-height:1.55; color:var(--ink-2); margin:0;}
.card ul{margin:6px 0 0; padding-left:16px; font-size:.84rem; color:var(--ink-2); line-height:1.55;}

.lang-row{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:12px;}
.lang-row .card b{font-family:'Fraunces',serif; font-size:1.05rem;}
.lang-row .card span{display:block; font-size:.84rem; color:var(--ink-soft); margin-top:3px;}

.cv-cta{
  max-width:1080px; margin:0 auto 72px; padding:0 32px;
}
.cv-cta .inner{
  border:1.5px dashed var(--ink-soft); border-radius:10px; padding:28px 30px;
  display:flex; flex-wrap:wrap; gap:18px 28px; align-items:center; justify-content:space-between;
}
.cv-cta h2{font-size:1.35rem; margin-bottom:6px;}
.cv-cta p{margin:0; color:var(--ink-soft); font-size:.94rem; line-height:1.6; max-width:52ch;}
.cv-cta .actions{display:flex; flex-wrap:wrap; gap:8px;}

.updated{font-family:'IBM Plex Mono',monospace; font-size:.66rem; color:var(--ink-soft); letter-spacing:.04em; margin-top:18px;}

/* ---------- responsive ---------- */
@media (max-width:860px){
  .cards.three{grid-template-columns:1fr 1fr;}
}
@media (max-width:760px){
  .cv-hero{grid-template-columns:1fr; padding:40px 20px 36px; gap:30px;}
  .id-card{max-width:420px; display:grid; grid-template-columns:130px 1fr;}
  .id-card .photo{aspect-ratio:auto; border-bottom:none; border-right:1px solid var(--line); grid-row:span 2;}
  .id-card dl{padding:14px 14px 4px; gap:6px 10px;}
  .id-card .actions{padding:8px 14px 14px;}
  .cv-block, .cv-cta{padding:0 20px; margin-bottom:56px;}
  .ledger::before{left:5px;}
  .entry{grid-template-columns:1fr; padding-left:28px; gap:6px;}
  .entry::after{left:0; top:4px; transform:none;}
  .entry .when{text-align:left; padding-right:0;}
  .entry .when small{display:inline; margin-left:6px;}
  .entry .body{padding:16px 16px;}
  .cards, .cards.three, .lang-row{grid-template-columns:1fr;}
  .cv-cta .inner{padding:22px 20px;}
}
@media (max-width:420px){
  .id-card{grid-template-columns:1fr;}
  .id-card .photo{aspect-ratio:auto; height:320px; border-right:none; border-bottom:1px solid var(--line);}
  .id-card .photo img{object-position:50% 25%;}
}

/* ---------- print: a clean, ink-friendly résumé ---------- */
@media print{
  @page{size:letter; margin:14mm 14mm 16mm;}
  :root, :root[data-theme="dark"], :root:not([data-theme="light"]){
    --paper:#fff; --paper-2:#fff; --paper-3:#fff; --ink:#111; --ink-2:#222; --ink-soft:#555;
    --teal:#1F4F43; --teal-strong:#1F4F43; --clay:#96501F; --clay-strong:#96501F; --line:rgba(0,0,0,.2);
  }
  body{background:#fff; font-size:10.5pt;}
  .topnav, .lang-btn, .menu-btn, .no-print, footer, .cv-cta{display:none!important;}
  .reveal{opacity:1!important; transform:none!important;}
  .cv-hero{padding:0 0 10px; grid-template-columns:1fr 150px; gap:24px;}
  .cv-hero h1{font-size:24pt; margin-bottom:6px;}
  .cv-hero .lede{font-size:10pt; line-height:1.5; margin-bottom:6px;}
  .cv-hero .lede.soft{display:none;}
  .eyebrow{display:none;}
  .id-card{box-shadow:none; border:none;}
  .id-card .photo{border:1px solid var(--line); border-radius:4px; overflow:hidden;}
  .id-card dl{padding:8px 0 0; grid-template-columns:1fr; gap:1px;}
  .id-card dt{display:none;}
  .id-card dd{font-size:8.5pt;}
  .id-card .actions{display:none;}
  .stats{display:none;}
  .cv-block{padding:0; margin:0 0 12px;}
  .cv-block > .section-head{margin-bottom:8px;}
  .section-head h2{font-size:13pt; border-bottom:1px solid var(--line); padding-bottom:3px; margin-bottom:0;}
  .section-head p{display:none;}
  .chips li{border:none; padding:0 8px 0 0; font-size:9pt;}
  .chips li::after{content:" ·"; color:var(--ink-soft);}
  .ledger::before, .entry::after{display:none;}
  .entry{grid-template-columns:100px 1fr; gap:0 14px; padding-bottom:8px; break-inside:auto;}
  .entry li, .entry h3, .entry .org{break-inside:avoid;}
  .entry:not(.long){break-inside:avoid;}
  .entry h3, .entry h4, .section-head h2{break-after:avoid;}
  .entry .sub-role{margin-top:6px; padding-top:6px;}
  .entry .when{text-align:left; font-size:7.5pt;}
  .entry .body{border:none; padding:0; background:none;}
  .entry h3{font-size:11pt;}
  .entry .org{font-size:9pt; margin-bottom:4px;}
  .entry li{font-size:8.8pt; line-height:1.36;}
  .entry ul{gap:2px;}
  .cards, .cards.three, .lang-row{grid-template-columns:1fr 1fr; gap:6px 16px;}
  .card{border:none; padding:0; break-inside:avoid;}
  .card p, .card ul{font-size:8.5pt; line-height:1.35;}
  .card h3{font-size:10pt;}
  .card .org{margin-bottom:2px;}
  .updated{display:none;}
  a{text-decoration:none!important; border:none!important;}
}

