.resume-page { min-height: 100vh; padding: 24px clamp(18px, 5vw, 72px) 64px; }
.resume-nav, .resume-document { width: min(100%, 1180px); margin-inline: auto; }
.resume-nav { display:flex; justify-content:space-between; align-items:center; gap:24px; padding: 8px 0 30px; }
.resume-wordmark { color:var(--text); font-size:13px; font-weight:700; letter-spacing:.08em; text-decoration:none; }
.resume-back { color:var(--lime); font-size:14px; text-decoration:none; }
.resume-back span { margin-left:8px; }
.resume-document { display:grid; gap:34px; }
.resume-sheet { position:relative; padding:clamp(24px, 5vw, 64px); border:1px solid rgba(235,239,239,.24); border-radius:20px; background:linear-gradient(145deg,rgba(30,33,34,.94),rgba(19,20,21,.96)); box-shadow:0 24px 70px rgba(0,0,0,.2); }
.resume-masthead { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:32px; padding-bottom:30px; border-bottom:1px solid var(--line); }
.resume-year { margin:0 0 22px; color:var(--muted); font-size:12px; letter-spacing:.12em; text-transform:uppercase; }
.resume-year span { margin-left:12px; color:var(--lime); }
.resume-masthead h1, .resume-masthead h2 { margin:0; text-transform:uppercase; font:800 clamp(42px,7vw,88px)/.84 'Proxima Nova',ProximaNova,Arial,sans-serif; letter-spacing:0; }
.resume-masthead h1 span, .resume-masthead h2 span { color:var(--lime); }
.resume-title { margin:22px 0 0; font-size:clamp(14px,1.8vw,19px); }
.resume-title b { padding:0 5px; color:var(--lime); }
.resume-contact { display:grid; gap:7px; font-size:14px; font-style:normal; text-align:right; }
.resume-contact a, .reference-list a { color:var(--muted); text-decoration:none; }
.resume-contact a:hover, .reference-list a:hover { color:var(--lime); }
.resume-section { display:grid; grid-template-columns:minmax(170px,.34fr) minmax(0,1fr); gap:28px; padding:25px 0; border-bottom:1px solid rgba(235,239,239,.18); }
.resume-section > h2 { margin:0; font:700 16px/1.25 'Proxima Nova',ProximaNova,Arial,sans-serif; text-transform:uppercase; }
.resume-section > h2 span { display:block; margin-bottom:8px; color:var(--lime); font-size:12px; letter-spacing:.1em; }
.resume-section > h2 em { color:var(--muted); font-size:12px; font-style:normal; text-transform:none; }
.resume-copy p { max-width:760px; margin:0 0 12px; color:#dedfdf; font-size:14px; line-height:1.65; }
.resume-copy p:last-child { margin-bottom:0; }
.resume-skills { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px 22px; margin:0; padding:0; list-style:none; color:#dedfdf; font-size:14px; line-height:1.45; }
.resume-skills li::before { content:'—'; padding-right:9px; color:var(--lime); }
.technical-skill-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:34px 28px; margin:0; padding:0; list-style:none; }
.technical-skill-grid li { min-width:0; }
.technical-skill-heading { display:grid; grid-template-columns:76px minmax(0,1fr); align-items:center; gap:13px; min-height:76px; }
.skill-icon { display:grid; place-items:center; width:76px; aspect-ratio:1; border:1.5px solid var(--text); border-radius:50%; color:var(--lime); font-size:36px; font-weight:700; letter-spacing:-.06em; }
.skill-icon-office { border:1.5px solid var(--text); border-radius:50%; font-size:40px; letter-spacing:0; }
.skill-icon-print svg { width:47px; height:47px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:2.5; }
.technical-skill-heading h3 { margin:0; font-size:15px; line-height:1.25; text-transform:uppercase; }
.skill-meter { display:block; height:8px; margin:18px 0 0; overflow:hidden; border-radius:999px; background:rgba(245,245,244,.25); }
.skill-meter span { display:block; width:var(--skill-level,100%); height:100%; border-radius:inherit; background:var(--lime); }
@media (prefers-reduced-motion:no-preference) {
  .technical-skills-section { animation: skills-section-enter .7s ease-out both; }
  .technical-skill-grid li { animation: skills-item-enter .5s ease-out both; }
  .technical-skill-grid li:nth-child(2) { animation-delay:.08s; }
  .technical-skill-grid li:nth-child(3) { animation-delay:.16s; }
  .technical-skill-grid li:nth-child(4) { animation-delay:.24s; }
  .technical-skill-grid li:nth-child(5) { animation-delay:.32s; }
  .technical-skill-grid li:nth-child(6) { animation-delay:.4s; }
  .skill-meter span { animation: skill-bar-fill .8s cubic-bezier(.2,.75,.25,1) .35s both; }
}
@keyframes skills-section-enter { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }
@keyframes skills-item-enter { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@keyframes skill-bar-fill { from { width:0; } to { width:var(--skill-level,100%); } }
.experience-section { padding-bottom:20px; }
.resume-sheet > .experience-section:not(.continued-section) { border-bottom:0; }
.resume-role { min-width:0; }
.role-heading { display:flex; justify-content:space-between; gap:24px; align-items:baseline; margin-bottom:10px; }
.role-heading h3, .education-entry h3 { margin:0; font-size:19px; font-weight:700; text-transform:uppercase; }
.role-heading > span { flex:none; color:var(--lime); font-size:14px; }
.role-heading p { margin:4px 0 0; color:var(--muted); font-size:15px; }
.role-intro, .resume-role li, .education-entry p, .portfolio-section > p { color:#dedfdf; font-size:13px; line-height:1.55; }
.role-intro { margin:12px 0 8px; }
.resume-role ul { margin:0; padding-left:18px; }
.resume-role li { padding:2px 0 2px 2px; }
.resume-role li::marker { color:var(--lime); }
.references-section { padding-bottom:22px; }
.reference-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.reference-list p { display:grid; gap:5px; margin:0; font-size:14px; }
.reference-list strong { font-weight:600; }
.reference-title { color:var(--muted); }
.resume-page-footer { display:flex; justify-content:space-between; padding-top:18px; color:var(--muted); font-size:12px; }
.resume-sheet-two { padding-top:clamp(24px,4vw,48px); }
.resume-masthead-compact { padding-bottom:22px; }
.resume-masthead-compact .resume-year { margin-bottom:14px; }
.resume-masthead-compact h2 { font-size:clamp(34px,5vw,58px); }
.resume-masthead-compact .resume-title { margin-top:14px; font-size:15px; }
.resume-masthead-compact .resume-contact { font-size:13px; }
.continued-section { position:relative; padding-top:22px; }
.continued-section::before { content:""; grid-column:2; width:100%; border-top:1px solid rgba(235,239,239,.18); }
.continued-section .compact-role { grid-column:2; }
.compact-role { padding:0 0 18px; margin-bottom:16px; border-bottom:1px solid rgba(235,239,239,.12); }
.compact-role:last-child { margin:0; padding:0; border:0; }
.compact-role .role-heading h3 { font-size:17px; }
.compact-role .role-intro { margin:8px 0 6px; }
.resume-two-column { display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.resume-two-column .resume-section { grid-template-columns:140px minmax(0,1fr); gap:20px; }
.simple-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 16px; margin:0; padding:0; list-style:none; color:#dedfdf; font-size:14px; }
.simple-list li::before { content:'—'; padding-right:8px; color:var(--lime); }
.education-entry h3 { font-size:16px; line-height:1.35; text-transform:none; }
.education-entry h3 span { font-weight:400; }
.education-entry p { margin:8px 0 0; }
.education-entry p b { color:var(--lime); }
.portfolio-section > p { margin:0 0 12px; }
.resume-portfolio-link { display:grid; width:max-content; gap:4px; color:var(--lime); font-size:17px; font-weight:700; text-decoration:none; }
.resume-portfolio-link span { display:inline-block; margin-left:7px; }
.resume-portfolio-link small { color:var(--muted); font-size:12px; font-weight:400; }
@media (max-width:700px) {
  .resume-page { padding-inline:14px; }
  .resume-nav { padding-bottom:20px; }
  .resume-sheet { padding:24px 20px; border-radius:14px; }
  .resume-masthead { grid-template-columns:1fr; align-items:start; gap:20px; }
  .resume-masthead h1 { font-size:clamp(40px,12vw,68px); }
  .resume-contact { text-align:left; }
  .resume-section { grid-template-columns:1fr; gap:14px; }
  .resume-section > h2 span { display:inline; margin:0 9px 0 0; }
  .resume-skills { grid-template-columns:1fr; }
  .technical-skill-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 18px; }
  .technical-skill-heading { grid-template-columns:60px minmax(0,1fr); gap:10px; min-height:60px; }
  .skill-icon { width:60px; font-size:29px; }
  .skill-icon-office { font-size:32px; }
  .skill-icon-print svg { width:38px; height:38px; }
  .technical-skill-heading h3 { font-size:13px; }
  .role-heading { align-items:flex-start; }
  .role-heading h3 { font-size:17px; }
  .reference-list { grid-template-columns:1fr; gap:13px; }
  .resume-two-column { grid-template-columns:1fr; gap:0; }
  .resume-two-column .resume-section { grid-template-columns:1fr; gap:14px; }
  .simple-list { grid-template-columns:1fr 1fr; }
  .resume-masthead-compact h2 { font-size:clamp(38px,10vw,56px); }
}
@media (max-width:420px) { .technical-skill-grid { grid-template-columns:1fr; } }
@media print {
  @page { size:A4; margin:14mm; }
  body.resume-page { padding:0; color:#151617; background:#fff; print-color-adjust:exact; -webkit-print-color-adjust:exact; }
  .resume-nav { display:none; }
  .resume-document { display:block; width:100%; }
  .resume-sheet { min-height:269mm; margin:0; padding:14mm; border:0; border-radius:0; box-shadow:none; break-after:page; }
  .resume-sheet:last-child { break-after:auto; }
  .resume-masthead h1, .resume-masthead h2, .resume-section > h2, .role-heading h3, .education-entry h3, .reference-list strong { color:#151617; }
  .resume-year span, .resume-masthead h1 span, .resume-masthead h2 span, .resume-section > h2 span, .role-heading > span, .resume-role li::marker, .simple-list li::before { color:#78b900; }
  .resume-copy p, .resume-skills, .role-intro, .resume-role li, .education-entry p, .portfolio-section > p, .simple-list { color:#2b2d2e; }
  .resume-contact a, .reference-list a, .resume-page-footer { color:#555; }
}
