.cv-page { background: var(--paper); }
.cv-page em,
.cv-page i { font-style: normal; }
.cv-page .floating-nav nav a.active { opacity: 1; color: var(--ink); }
.cv-section-label, .cv-kicker, .cv-hero-topline, .cv-entry-meta, .cv-capability-grid article > span {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.cv-hero {
  min-height: 100svh;
  display: grid;
  grid-template-columns: .8fr 1.4fr .8fr;
  grid-template-rows: auto 1fr auto;
  gap: 30px;
  padding: 90px 3vw 32px;
  background: var(--mauve);
}
.cv-hero-topline {
  grid-column: 1 / -1;
  display: flex;
  justify-content: space-between;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line);
}
.cv-hero-title { grid-column: 1 / 3; align-self: center; }
.cv-kicker { margin-bottom: 26px; }
.cv-hero h1, .cv-timeline h2, .cv-capabilities h2, .cv-contact-title {
  font-family: var(--display);
  font-weight: 650;
  letter-spacing: -.052em;
  line-height: .95;
}
.cv-hero h1 { font-size: clamp(100px, 17vw, 285px); }
.cv-hero h1 span { color: #7666ad; }
.cv-hero-intro {
  grid-column: 3;
  grid-row: 2;
  align-self: end;
  padding-bottom: 20px;
  font-size: clamp(20px, 2vw, 30px);
  font-weight: 550;
  letter-spacing: -.035em;
}
.cv-hero-intro .cv-links { margin-top: 28px; }

.cv-profile {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 6vw;
  padding: 140px 3vw;
  background: #fff;
}
.cv-profile figure { min-height: 660px; overflow: hidden; background: var(--soft); }
.cv-profile img { height: 100%; object-fit: cover; object-position: left center; }
.cv-profile-copy { display: flex; flex-direction: column; justify-content: space-between; padding: 4px 0; }
.cv-profile-lead {
  max-width: 950px;
  font-family: var(--display);
  font-size: clamp(55px, 7vw, 112px);
  font-weight: 620;
  letter-spacing: -.048em;
  line-height: .99;
}
.cv-profile-text { display: grid; grid-template-columns: 1fr 1fr; gap: 3vw; max-width: 850px; margin-top: 65px; }
.cv-profile-text p { font-size: 18px; }

.cv-timeline {
  display: grid;
  grid-template-columns: .72fr 1.28fr;
  gap: 7vw;
  padding: 130px 3vw 145px;
}
.cv-experience { color: var(--paper); background: var(--ink); }
.cv-education { background: var(--paper); }
.cv-timeline header { position: sticky; top: 110px; align-self: start; }
.cv-timeline h2 { margin-top: 35px; font-size: clamp(70px, 9vw, 150px); }
.cv-entry {
  display: grid;
  grid-template-columns: .4fr 1.6fr;
  gap: 3vw;
  padding: 38px 0 42px;
  border-top: 1px solid currentColor;
}
.cv-entry:last-child { border-bottom: 1px solid currentColor; }
.cv-entry-meta { display: flex; flex-direction: column; gap: 7px; opacity: .6; }
.cv-entry h3 {
  max-width: 850px;
  font-family: var(--display);
  font-size: clamp(34px, 4vw, 66px);
  font-weight: 620;
  letter-spacing: -.038em;
  line-height: .95;
}
.cv-entry p { max-width: 720px; margin-top: 25px; font-size: 18px; opacity: .75; }
.cv-entry-featured h3 { color: var(--acid); }
.cv-education .cv-entry-featured h3 { color: #7666ad; }

.cv-capabilities { padding: 125px 3vw 145px; background: var(--acid); }
.cv-capabilities header { display: grid; grid-template-columns: .4fr 1.6fr; gap: 5vw; margin-bottom: 75px; }
.cv-capabilities h2 { max-width: 1200px; font-size: clamp(70px, 10vw, 165px); }
.cv-capability-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--ink); border-left: 1px solid var(--ink); }
.cv-capability-grid article { min-height: 400px; padding: 24px; border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.cv-capability-grid article > span { display: block; margin-bottom: 55px; }
.cv-capability-grid article > p {
  padding: 12px 0;
  border-top: 1px solid rgba(23,23,23,.25);
  font-family: var(--display);
  font-size: clamp(21px, 2vw, 32px);
  font-weight: 600;
  letter-spacing: -.04em;
}
.cv-languages div { display: flex; align-items: baseline; justify-content: space-between; padding: 16px 0; border-top: 1px solid rgba(23,23,23,.25); }
.cv-languages strong { font-family: var(--display); font-size: clamp(38px, 4vw, 70px); letter-spacing: -.048em; }
.cv-languages small { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.cv-tools { margin-top: 75px; }
.cv-tools-heading {
  display: grid;
  grid-template-columns: .4fr 1.6fr;
  gap: 5vw;
  align-items: end;
  margin-bottom: 28px;
}
.cv-tools-heading span { font-size: 11px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.cv-tools-heading p { max-width: 760px; font-size: 18px; }
.cv-tools-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border-top: 1px solid var(--ink);
  border-left: 1px solid var(--ink);
}
.cv-tool {
  min-height: 230px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 22px;
  border-right: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
  transition: color .25s ease, background .25s ease;
}
.cv-tool svg {
  width: 68px;
  height: 68px;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform .3s ease;
}
.cv-tool:first-child svg circle { fill: currentColor; stroke: none; }
.cv-tool-letter svg text {
  fill: currentColor;
  stroke: none;
  font-family: var(--display);
  font-size: 25px;
  font-weight: 700;
  text-anchor: middle;
}
.cv-tool span {
  font-family: var(--display);
  font-size: clamp(21px, 2vw, 31px);
  font-weight: 620;
  letter-spacing: -.045em;
}
.cv-tool:hover { color: var(--acid); background: var(--ink); }
.cv-tool:hover svg { transform: translateY(5px) rotate(-4deg) scale(1.08); }

.cv-contact { padding: 125px 3vw 30px; color: var(--paper); background: var(--ink); }
.cv-contact > p:nth-child(2) { max-width: 480px; margin-top: 32px; font-size: 20px; }
.cv-contact-title { display: block; margin: 90px 0 100px; color: var(--paper); font-size: clamp(100px, 20vw, 335px); text-decoration: none; }
.cv-contact-title span { color: var(--acid); }
.cv-contact .contact-actions { margin: 0 0 56px; }
.cv-contact .contact-actions a,
.cv-contact .contact-actions span { min-height: 46px; padding: 12px 22px; font-size: 15px; }
.cv-contact footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 10px 20px;
  padding-top: 20px;
  border-top: 1px solid rgba(250,249,247,.3);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(250,249,247,.55);
}
.cv-contact footer a { color: inherit; }
.cv-contact footer a:hover { color: var(--acid); }

@media (max-width: 820px) {
  .cv-page .floating-nav nav { gap: 12px; }
  .cv-hero { min-height: 88svh; grid-template-columns: 1fr; padding: 85px 18px 24px; }
  .cv-hero-title, .cv-hero-intro { grid-column: 1; }
  .cv-hero-title { align-self: end; }
  .cv-hero-intro { grid-row: 3; padding: 0; }
  .cv-hero h1 { font-size: 25vw; }
  .cv-profile, .cv-timeline { grid-template-columns: 1fr; padding: 80px 18px 95px; }
  .cv-profile figure { min-height: auto; aspect-ratio: 1 / 1.15; }
  .cv-profile-copy { gap: 45px; }
  .cv-profile-lead { font-size: 15vw; }
  .cv-profile-text { grid-template-columns: 1fr; gap: 20px; margin-top: 0; }
  .cv-timeline header { position: static; margin-bottom: 45px; }
  .cv-timeline h2 { font-size: 18vw; }
  .cv-entry { grid-template-columns: 1fr; gap: 25px; }
  .cv-entry h3 { font-size: 11vw; }
  .cv-capabilities { padding: 80px 18px 95px; }
  .cv-capabilities header { grid-template-columns: 1fr; margin-bottom: 50px; }
  .cv-capabilities h2 { margin-top: 25px; font-size: 18vw; }
  .cv-capability-grid { grid-template-columns: 1fr; }
  .cv-capability-grid article { min-height: auto; }
  .cv-tools { margin-top: 50px; }
  .cv-tools-heading { grid-template-columns: 1fr; gap: 18px; }
  .cv-tools-grid { grid-template-columns: repeat(2, 1fr); }
  .cv-tool { min-height: 175px; padding: 16px; }
  .cv-tool svg { width: 54px; height: 54px; }
  .cv-tool span { font-size: 7vw; }
  .cv-contact { padding: 80px 18px 24px; }
  .cv-contact-title { margin: 70px 0 80px; font-size: 22vw; }
  .cv-contact footer { flex-direction: column; gap: 14px; }
}

@media print {
  @page { size: A4; margin: 15mm 14mm; }
  * { animation: none !important; transition: none !important; }
  body { background: #fff; font-size: 10.5pt; line-height: 1.35; }
  .floating-nav, .cv-hero-intro a, .cv-tool svg, .cv-tools, .cv-kicker { display: none !important; }
  .cv-page { background: #fff; }

  .cv-hero {
    min-height: auto;
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    gap: 4mm;
    padding: 0 0 8mm;
    background: #fff;
    border-bottom: 2px solid #000;
  }
  .cv-hero-topline { color: #000; border-color: #000; font-size: 9pt; }
  .cv-hero-title, .cv-hero-intro { grid-column: 1; }
  .cv-hero h1 { font-size: 30pt; letter-spacing: -.03em; line-height: 1; color: #000; }
  .cv-hero h1 span { color: #000; }
  .cv-hero-intro { font-size: 11pt; padding-bottom: 0; }

  .cv-profile { grid-template-columns: 1fr; gap: 4mm; padding: 8mm 0; background: #fff; }
  .cv-profile figure { display: none; }
  .cv-profile-lead { font-size: 15pt; line-height: 1.25; color: #000; }
  .cv-profile-text { grid-template-columns: 1fr 1fr; gap: 6mm; margin-top: 6mm; }
  .cv-profile-text p { font-size: 10pt; }

  .cv-timeline { grid-template-columns: 1fr; gap: 0; padding: 8mm 0; color: #000; background: #fff; }
  .cv-experience, .cv-education { color: #000; background: #fff; }
  .cv-timeline header { position: static; margin-bottom: 4mm; }
  .cv-timeline h2 { font-size: 16pt; margin-top: 2mm; }
  .cv-entry { grid-template-columns: 30mm 1fr; gap: 4mm; padding: 4mm 0; border-color: #000; page-break-inside: avoid; }
  .cv-entry-meta { opacity: 1; font-size: 8.5pt; }
  .cv-entry h3 { font-size: 12pt; color: #000 !important; }
  .cv-entry p { font-size: 9.5pt; margin-top: 3mm; opacity: 1; }

  .cv-capabilities { padding: 8mm 0; background: #fff; }
  .cv-capabilities header { grid-template-columns: 1fr; margin-bottom: 4mm; gap: 0; }
  .cv-capabilities h2 { font-size: 16pt; }
  .cv-capability-grid { grid-template-columns: repeat(2, 1fr); border-color: #000; }
  .cv-capability-grid article { min-height: auto; padding: 4mm; border-color: #000; }
  .cv-capability-grid article > span { margin-bottom: 3mm; font-size: 8pt; }
  .cv-capability-grid article > p { font-size: 9.5pt; padding: 2mm 0; }
  .cv-languages div { padding: 2mm 0; }
  .cv-languages strong { font-size: 11pt; }

  .cv-contact { padding: 8mm 0 0; color: #000; background: #fff; page-break-inside: avoid; }
  .cv-contact > p:nth-child(2) { font-size: 10pt; }
  .cv-contact-title { margin: 6mm 0; font-size: 22pt; color: #000; }
  .cv-contact-title span { color: #000; }
  .cv-contact .contact-actions { gap: 5mm; margin: 0 0 4mm; }
  .cv-contact .contact-actions a, .cv-contact .contact-actions span { min-height: auto; padding: 0; border: none; border-radius: 0; color: #000; font-size: 9.5pt; font-weight: 700; text-transform: none; }
  .cv-contact footer { grid-template-columns: repeat(3, auto); justify-content: flex-start; gap: 6mm; font-size: 8.5pt; border-color: #000; color: #000; }
}
