:root{--ink:#152f3b;--muted:#62717a;--teal:#137a75;--paper:#fafaf7;--line:#dce2df;--accent:#c5e3d7}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.65}a{color:inherit;text-decoration:none}button,input{font:inherit}button,label{cursor:pointer}button{color:inherit}button:focus-visible,a:focus-visible,label:focus-within,summary:focus-visible{outline:3px solid #139f99;outline-offset:5px}h1,h2,h3,h4,p{margin-top:0}h2{font-size:clamp(30px,3.2vw,44px);line-height:1.15;letter-spacing:-1.5px;font-weight:600}h3{font-size:21px;line-height:1.35;letter-spacing:-.4px}header,main,footer{max-width:1200px;margin:auto}.topbar{height:108px;padding:0 48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font-size:25px;font-weight:800;letter-spacing:-1px}.brand span{font-size:10px;font-weight:600;letter-spacing:2px;margin-left:12px;vertical-align:middle}.topbar nav{display:flex;gap:30px;font-size:13px}.print-btn{border:1px solid var(--line);border-radius:4px;background:transparent;padding:10px 17px;font-size:12px}.hero{padding:74px 48px 62px;display:grid;grid-template-columns:1.4fr 1fr;gap:80px;align-items:center}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;display:flex;align-items:center;gap:9px;color:var(--teal);margin-bottom:25px}.eyebrow>span{height:7px;width:7px;background:var(--teal);border-radius:50%}h1{font-size:clamp(64px,7.7vw,96px);letter-spacing:-6px;line-height:.98;margin-bottom:25px;font-weight:700}h1 span{font-weight:400}h1 i{color:var(--teal);font-style:normal}.role{font-size:18px;margin-bottom:20px}.intro{font-size:15px;max-width:450px;color:var(--muted);line-height:1.8}.hero-actions{display:flex;align-items:center;gap:26px;margin-top:29px}.primary{background:var(--ink);color:white;border-radius:3px;padding:12px 20px;font-size:13px;display:flex;gap:28px}.text-link{font-size:12px;font-weight:600}.portrait-area{position:relative;text-align:center}.portrait{height:376px;background:#e0e8e1;position:relative;overflow:hidden;border-radius:3px;display:flex;align-items:center;justify-content:center}.portrait:before{content:'';position:absolute;width:330px;height:330px;border:1px solid #bed0c3;border-radius:50%;top:63px;left:43px}.portrait:after{content:'';position:absolute;width:240px;height:240px;border:1px solid #bed0c3;border-radius:50%;top:107px;left:87px}.portrait img{width:100%;height:100%;object-fit:cover;object-position:center;position:absolute;z-index:2;inset:0}.portrait-caption{position:absolute;z-index:3;bottom:0;left:0;right:0;padding:20px 24px;text-align:left;background:linear-gradient(transparent,#132b36df);color:white;display:flex;flex-direction:column}.portrait-caption span{font-size:11px;letter-spacing:2px}.portrait-caption small{font-size:11px;opacity:.8}.contact-strip{margin:0 48px;display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;font-size:12px}.contact-strip b{font-weight:400}.section{padding:86px 48px;display:grid;grid-template-columns:1fr 1.7fr;gap:85px}.section-intro p{max-width:250px;color:var(--muted);font-size:14px}.section-intro .text-link{display:inline-block;margin-top:10px}.timeline{border-left:1px solid var(--line);padding-left:30px}.job{position:relative;margin:0 0 32px;padding-bottom:30px;border-bottom:1px solid var(--line)}.job:before{content:'';position:absolute;left:-36px;top:7px;width:9px;height:9px;border-radius:50%;background:#b6c5bf;border:1px solid var(--paper)}.job.current:before{background:var(--teal);box-shadow:0 0 0 5px #e1eee6}.job-top{display:flex;gap:16px;justify-content:space-between;align-items:center}.date{font-size:11px;letter-spacing:1px;color:var(--muted);display:inline-block;margin-bottom:10px}.current .date{color:var(--teal);font-weight:600}.badge{font-size:8px;letter-spacing:1.2px;color:var(--teal);background:#e0eee6;padding:4px 8px;border-radius:3px;margin-bottom:10px}.job h3{margin-bottom:4px}.company{font-size:13px;font-weight:600;margin-bottom:16px}.job>p:not(.company),.job li{font-size:13px;color:var(--muted)}ul{padding-left:17px}li{margin:5px 0}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:20px}.tags span{border:1px solid var(--line);padding:3px 9px;font-size:10px;border-radius:3px;color:#54676b}.compact{padding-bottom:22px;margin-bottom:22px}.compact h3{font-size:18px}.compact .company{margin-bottom:8px}.compact p:last-child{margin-bottom:0}summary{cursor:pointer;list-style:none;font-size:13px;font-weight:600;display:flex;justify-content:space-between;gap:10px}summary::-webkit-details-marker{display:none}.earlier>summary{margin-bottom:24px}.earlier>summary span{font-size:10px;color:var(--muted)}.earlier .job:last-child{border:0;margin-bottom:0;padding-bottom:0}.skills-section{background:var(--ink);color:#f8faf7;padding:66px 48px}.skills-section .eyebrow{color:#9ccbb8}.skills-heading{display:flex;justify-content:space-between;gap:50px;align-items:end}.skills-heading p{font-size:14px;max-width:280px;color:#b8c9cc;margin-bottom:30px}.skill-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:30px}.skill-grid article{border-top:1px solid #4b5f68;padding-top:20px}.skill-no{font-size:10px;color:#8fbead}.skill-grid h3{font-size:17px;margin:20px 0 12px}.skill-grid p{font-size:12px;line-height:1.85;color:#b8c9cc;margin-bottom:0}.list-title{font-size:20px;margin-bottom:9px}.list-note{font-size:12px;color:var(--muted);margin-bottom:26px}.course-group{margin-bottom:28px}.course-group h4{font-size:10px;text-transform:uppercase;letter-spacing:1.4px;color:var(--teal);padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:8px}.course-group ul{list-style:none;padding:0;margin:0}.course-group li{font-size:13px;color:#4b5f66;padding:7px 0;border-bottom:1px solid #e9ece7;line-height:1.55}.education-title{margin-top:40px}.education article{border-bottom:1px solid var(--line);padding:20px 0}.education h4{font-size:14px;margin-bottom:5px}.education p{font-size:12px;color:var(--muted);margin:0}.other{margin-top:26px}.other p{font-size:12px;color:var(--muted);padding-top:12px}.contact-block{border-top:1px solid var(--line);margin:0 48px;padding:50px 0;display:flex;justify-content:space-between;gap:30px;align-items:center}.contact-block h2{font-size:38px;margin-bottom:10px}.contact-block h2 span{color:var(--teal)}.contact-block .eyebrow{margin-bottom:15px}.contact-block p{font-size:12px;color:var(--muted)}.contact-block>div:last-child{display:flex;flex-direction:column;gap:10px;font-size:16px}footer{border-top:1px solid var(--line);padding:25px 48px;display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}footer>div{display:flex;gap:20px}footer button{border:0;background:none;font-size:10px;padding:0}[hidden]{display:none!important}@media(max-width:850px){.topbar{padding:0 24px;height:80px}.topbar nav{display:none}.hero{padding:45px 24px;gap:30px;grid-template-columns:1.3fr 1fr}h1{font-size:68px;letter-spacing:-4px}.hero .eyebrow{font-size:8px;letter-spacing:1px}.portrait{height:310px}.hero-actions{gap:16px;flex-wrap:wrap}.contact-strip{margin:0 24px;flex-wrap:wrap}.section{padding:60px 24px;gap:35px;grid-template-columns:1fr 1.7fr}.skill-grid{grid-template-columns:repeat(2,1fr)}.skills-section{padding:45px 24px}.contact-block{margin:0 24px}.job-top{align-items:start;flex-direction:column;gap:0}}@media(max-width:580px){.brand span{font-size:8px}.print-btn{font-size:10px;padding:8px 10px}.hero{grid-template-columns:1fr;gap:35px}.portrait-area{max-width:320px;width:100%;margin:auto}.portrait{height:340px}h1{font-size:78px}.hero-content .intro{max-width:100%}.section{grid-template-columns:1fr;gap:30px}.section-intro p{max-width:100%}.section-intro h2 br{display:none}.section-intro .text-link{display:none}.section-intro h2{margin-bottom:15px}.timeline{margin-left:5px;padding-left:24px}.job:before{left:-30px}.skills-heading{display:block}.skills-heading p{max-width:100%}.skill-grid{gap:24px 18px}.contact-block{display:block}.contact-block>div:last-child{font-size:14px;margin-top:25px}footer{padding:22px 24px;flex-direction:column;gap:12px}.eyebrow{margin-bottom:18px}.contact-strip{font-size:11px}.section{padding-top:50px;padding-bottom:50px}}@media print{@page{size:A4;margin:14mm}body{background:white;font-size:10px;color:#162b35;print-color-adjust:exact;-webkit-print-color-adjust:exact}.topbar,nav,.hero-actions,footer{display:none!important}main{max-width:none}.hero{padding:0 0 20px;grid-template-columns:1fr 130px;gap:30px}.hero .eyebrow{font-size:8px;margin-bottom:12px}h1{font-size:43px;letter-spacing:-2px;margin-bottom:10px}h1 br{display:none}h1 span:before{content:' '}.role{font-size:13px;margin-bottom:10px}.intro{font-size:10px;max-width:none;margin:0}.portrait{height:160px}.portrait-caption{padding:10px}.portrait-caption span{font-size:7px}.portrait-caption small{font-size:7px}.contact-strip{margin:0;padding:10px 0;font-size:9px}.section{padding:25px 0;grid-template-columns:140px 1fr;gap:25px}.section-intro h2{font-size:23px}.section-intro p{font-size:10px}.section-intro .text-link{display:none}.eyebrow{font-size:8px;letter-spacing:1px;margin-bottom:12px}.job{break-inside:avoid;margin-bottom:18px;padding-bottom:16px}.job h3{font-size:15px}.job>p:not(.company),.job li{font-size:10px}.company{font-size:10px;margin-bottom:8px}.date{font-size:8px;margin-bottom:6px}.badge{font-size:6px}.tags{margin-top:10px}.tags span{font-size:7px}.earlier>summary{font-size:10px;margin-bottom:15px}.compact h3{font-size:13px}.skills-section{padding:24px;background:#eef2ee;color:var(--ink);break-inside:avoid}.skills-section .eyebrow{color:var(--teal)}.skills-heading{display:block}.skills-heading h2{font-size:23px}.skills-heading p{font-size:10px;color:var(--muted);max-width:none;margin:0}.skill-grid{grid-template-columns:repeat(4,1fr);gap:15px;margin-top:18px}.skill-grid h3{font-size:11px;margin:9px 0}.skill-grid p{font-size:9px;color:#455a62}.skill-grid article{padding-top:10px;border-color:#c4d1cb}.skill-no{color:var(--teal)}.list-title{font-size:15px}.list-note{font-size:9px}.course-group{break-inside:avoid;margin-bottom:18px}.course-group li{font-size:10px;padding:4px 0}.course-group h4{font-size:8px}.education-title{margin-top:20px}.education article{padding:12px 0;break-inside:avoid}.education h4{font-size:11px}.education p,.other p{font-size:9px}.other summary{font-size:10px}.contact-block{padding:20px 0;margin:0;break-inside:avoid}.contact-block h2{font-size:25px}.contact-block>div:last-child{font-size:11px}.contact-block p{font-size:9px}a{overflow-wrap:anywhere}}

/* Screen theme; retain the light palette for print and PDF. */
@media screen {
  :root {
    color-scheme: dark;
    --ink: #edf3f5;
    --muted: #acbac3;
    --teal: #6ed6c3;
    --paper: #10191f;
    --line: #30414a;
    --accent: #264c49;
  }
  body { background: var(--paper); }
  .topbar { background: #10191f; }
  .primary { background: var(--teal); color: #102723; }
  .primary:hover { background: #96e6d6; }
  .print-btn { background: #19272f; border-color: #42565f; }
  .print-btn:hover { background: #22373f; }
  .portrait { background: linear-gradient(145deg, #243d43, #17272e); border: 1px solid #3b565c; }
  .portrait:before, .portrait:after { border-color: #45686b; }
  
  .portrait-caption { background: linear-gradient(transparent, #0a151cf2); }
  .job:before { background: #718e99; }
  .job.current:before { box-shadow: 0 0 0 5px #203d3b; }
  .badge { background: #203d38; color: #93e4ce; }
  .tags span { background: #17262d; color: #c2d3da; border-color: #3a4e57; }
  .skills-section { background: #192a33; color: var(--ink); border-top: 1px solid #304750; border-bottom: 1px solid #304750; }
  .skills-section .eyebrow, .skill-no { color: var(--teal); }
  .skills-heading p, .skill-grid p { color: #bbcad1; }
  .skill-grid article { border-color: #425963; }
  .course-group li { color: #c4d0d6; border-color: #263740; }
  
  
  
  
  a:hover, .text-link:hover, footer button:hover { color: var(--teal); }
  .primary:hover { color: #102723; }
  
  button:focus-visible, a:focus-visible, summary:focus-visible { outline-color: #8be4d2; }
  
}

/* Permanent portrait: preserve the complete square composition. */
@media screen { .portrait { height: auto; aspect-ratio: 1; } .portrait img { object-fit: contain; object-position: center bottom; } }
@media print { .portrait img { object-fit: contain; object-position: center bottom; } }
