:root {
  --bg:#07100a; --panel:#0b1710; --line:#203b29; --green:#8ef0a7;
  --bright:#b9ffc8; --dim:#789282; --text:#e4eee6; --orange:#f1a45c;
  --mono:"IBM Plex Mono",monospace; --sans:"Manrope",sans-serif;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--bg); color:var(--text); font-family:var(--sans); line-height:1.6; }
body::before { content:""; position:fixed; inset:0; pointer-events:none; background:radial-gradient(circle at 85% 0,rgba(74,180,101,.12),transparent 30%),linear-gradient(rgba(111,226,137,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(111,226,137,.025) 1px,transparent 1px); background-size:auto,72px 72px,72px 72px; z-index:-2; }
.noise { position:fixed; inset:0; opacity:.035; pointer-events:none; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E"); }
a { color:inherit; text-decoration:none; }
.resume-nav,main,footer { width:min(1180px,100%); margin-inline:auto; }
.resume-nav { min-height:78px; padding:18px 32px; display:flex; align-items:center; justify-content:space-between; gap:24px; border-bottom:1px solid var(--line); font:13px var(--mono); }
.brand { display:flex; gap:10px; align-items:center; color:var(--green); font-weight:600; }
.brand-mark { display:grid; place-items:center; width:34px; height:30px; background:var(--green); color:var(--bg); border-radius:3px; }
.nav-actions { display:flex; align-items:center; gap:24px; color:#9aafa0; }
.nav-actions a:hover { color:var(--green); }
.nav-actions button { border:1px solid var(--green); border-radius:3px; padding:9px 13px; background:transparent; color:var(--green); font:600 11px var(--mono); cursor:pointer; }
.nav-actions button:hover { background:var(--green); color:var(--bg); }
.resume-hero { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(260px,.65fr); gap:8vw; padding:100px 32px 110px; }
.eyebrow { margin:0 0 24px; color:var(--green); font:500 11px var(--mono); text-transform:uppercase; letter-spacing:.15em; }
.eyebrow span { margin-right:14px; color:var(--dim); }
h1 { margin:0; font-size:clamp(48px,7vw,88px); line-height:1; letter-spacing:-.06em; }
.role { margin:22px 0 0; color:var(--green); font:500 clamp(14px,2vw,18px) var(--mono); }
.summary { max-width:680px; margin:32px 0 0; color:#a7b7aa; font-size:18px; }
.profile-meta { align-self:end; border-top:1px solid var(--line); }
.profile-meta div { display:grid; grid-template-columns:80px 1fr; gap:16px; padding:14px 0; border-bottom:1px solid var(--line); }
.profile-meta span { color:var(--dim); font:10px var(--mono); text-transform:uppercase; letter-spacing:.1em; }
.profile-meta strong,.profile-meta a { overflow-wrap:anywhere; color:#c6d5c9; font:500 12px var(--mono); }
.profile-meta a:hover { color:var(--green); }
.print-url { display:none; }
.resume-section { display:grid; grid-template-columns:minmax(190px,.42fr) minmax(0,1fr); gap:7vw; padding:90px 32px; border-top:1px solid var(--line); }
.section-title { position:sticky; top:30px; align-self:start; }
.section-title h2 { margin:0; font-size:clamp(34px,4vw,54px); letter-spacing:-.05em; line-height:1; }
.entry-list { border-top:1px solid var(--line); }
.resume-entry { padding:32px 0 38px; border-bottom:1px solid var(--line); }
.entry-heading { display:flex; justify-content:space-between; gap:28px; }
.entry-heading h3 { margin:0; font-size:22px; letter-spacing:-.025em; }
.organization { margin:5px 0 0; color:var(--green); font:12px var(--mono); }
.entry-meta { flex:0 0 auto; text-align:right; }
.entry-meta time { display:block; color:var(--dim); font:11px var(--mono); }
.status { display:inline-flex; align-items:center; gap:7px; margin-top:8px; color:#aab9ad; font:10px var(--mono); text-transform:uppercase; letter-spacing:.08em; }
.status i { width:6px; height:6px; border-radius:50%; background:var(--orange); box-shadow:0 0 9px rgba(241,164,92,.55); }
.status.completed i { background:var(--green); box-shadow:0 0 9px rgba(142,240,167,.55); }
.status.in-progress i { background:#7daee8; box-shadow:0 0 9px rgba(125,174,232,.55); }
.entry-description { max-width:720px; margin:22px 0; color:#9fb0a3; }
.skill-tags { display:flex; flex-wrap:wrap; gap:7px; margin:0; padding:0; list-style:none; }
.skill-tags li { padding:5px 8px; border:1px solid #294634; color:#91b59a; font:10px var(--mono); }
footer { display:flex; justify-content:space-between; gap:20px; padding:30px 32px; border-top:1px solid var(--line); color:var(--dim); font:11px var(--mono); }
@media (max-width:760px) {
  .resume-nav { align-items:flex-start; }
  .nav-actions a { display:none; }
  .resume-hero,.resume-section { grid-template-columns:1fr; }
  .resume-hero { padding-block:70px; }
  .resume-section { gap:40px; padding-block:70px; }
  .section-title { position:static; }
}
@media (max-width:520px) {
  .resume-nav,.resume-hero,.resume-section,footer { padding-left:20px; padding-right:20px; }
  .brand span:last-child { display:none; }
  .entry-heading { display:block; }
  .entry-meta { margin-top:14px; text-align:left; }
  footer { flex-direction:column; }
}
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; } }
@media print {
  @page { size:A4; margin:0; }
  :root { --bg:#fff; --text:#111; --green:#176b35; --dim:#505852; --line:#cfd6d1; }
  * { box-shadow:none!important; text-shadow:none!important; }
  body { color:#111; background:#fff; font:10pt/1.42 "Open Sans",Arial,Helvetica,sans-serif; }
  body::before,.noise,.resume-nav { display:none; }
  main { width:100%; padding:14mm 16mm; box-decoration-break:clone; -webkit-box-decoration-break:clone; }
  .resume-hero { display:block; padding:0 0 20px; border-bottom:2px solid #176b35; }
  h1 { font-size:26pt; letter-spacing:-.03em; }
  .role { margin-top:6px; font:700 11pt "Open Sans",Arial,Helvetica,sans-serif; }
  .summary { max-width:none; margin:12px 0 14px; color:#222; font-size:9.5pt; }
  .profile-meta { display:grid; grid-template-columns:1fr; border:0; }
  .profile-meta div { display:grid; grid-template-columns:78px 1fr; gap:7px; padding:2px 0; border:0; }
  .profile-meta span { display:block; width:auto; color:#333; font:700 8.5pt "Open Sans",Arial,Helvetica,sans-serif; letter-spacing:0; }
  .profile-meta strong,.profile-meta a { color:#111; font:9pt "Open Sans",Arial,Helvetica,sans-serif; }
  .profile-meta .external-label { display:none; }
  .print-url { display:block; color:#333; font:8.5pt "Open Sans",Arial,Helvetica,sans-serif; overflow-wrap:anywhere; }
  .resume-section { display:block; padding:20px 0 0; border:0; }
  .section-title { position:static; }
  .section-title .eyebrow { display:none; }
  .section-title h2 { padding-bottom:5px; border-bottom:1px solid #176b35; font-size:15pt; letter-spacing:-.02em; }
  .entry-list { border:0; }
  .resume-entry { padding:12px 0; border-bottom:1px solid #dfe4e1; break-inside:avoid; }
  .entry-heading { display:block; }
  .entry-heading h3 { font-size:11.5pt; }
  .organization { margin-top:1px; font:700 9pt "Open Sans",Arial,Helvetica,sans-serif; }
  .entry-meta { display:flex; gap:12px; margin-top:3px; text-align:left; }
  .entry-meta time,.status { margin:0; color:#333; font:8.5pt "Open Sans",Arial,Helvetica,sans-serif; letter-spacing:0; }
  .status i { display:none; }
  .entry-description { max-width:none; margin:7px 0; color:#222; font-size:9pt; }
  .skill-tags { gap:0; }
  .skill-tags::before { content:"Skills: "; margin-right:4px; color:#333; font-weight:700; font-size:8.5pt; }
  .skill-tags li { padding:0; border:0; color:#222; font-size:8.5pt; }
  .skill-tags li:not(:last-child)::after { content:", "; white-space:pre; }
  footer { display:none; }
  a { color:inherit; }
}
