:root{--teal:#02aab0;--mint:#00cdac;--bg:#0b0b14;--panel:#14121f;--panel-2:#1a1730;--ink:#f2f4f8;--muted:#a7adc0;--faint:#6b7186;--ink-strong:#fff;--accent-ink:#16c0c6;--line:#ffffff1a;--line-2:#ffffff29;--chip-bg:#ffffff0a;--stat-bg:#ffffff08;--bar-bg:#0b0b14d1;--grad:linear-gradient(120deg, #02aab0, #00cdac);--serif:"Fraunces", Georgia, serif;--mono:"JetBrains Mono", ui-monospace, Menlo, monospace;--sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}:root[data-theme=light]{--bg:#f7f8fb;--panel:#fff;--panel-2:#f0f2f6;--ink:#1a1e2b;--muted:#566072;--faint:#8a93a3;--ink-strong:#0b0e17;--accent-ink:#06868b;--line:#0f16281a;--line-2:#0f162826;--chip-bg:#eef1f6;--stat-bg:#f4f6fa;--bar-bg:#f7f8fbe0}.theme-toggle{border:1px solid var(--line-2);cursor:pointer;width:36px;height:36px;color:var(--muted);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:color .3s,border-color .3s,background .3s,transform .3s cubic-bezier(.16,1,.3,1);display:flex}.theme-toggle:hover{color:var(--ink);border-color:var(--accent-ink);background:var(--panel-2);transform:rotate(20deg)scale(1.08)}.theme-toggle__icon{will-change:transform;justify-content:center;align-items:center;animation:.45s cubic-bezier(.16,1,.3,1) theme-icon-in;display:inline-flex}@keyframes theme-icon-in{0%{opacity:0;transform:rotate(-140deg)scale(.3)}to{opacity:1;transform:rotate(0)scale(1)}}@keyframes theme-reveal{0%{clip-path:circle(0% at var(--theme-x,50%) var(--theme-y,0))}to{clip-path:circle(150% at var(--theme-x,50%) var(--theme-y,0))}}html.theme-transition::view-transition-old(root){animation:none}html.theme-transition::view-transition-new(root){animation:.5s cubic-bezier(.16,1,.3,1) theme-reveal}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--sans);color:var(--ink);background:radial-gradient(1100px 620px at 12% -6%, #02aab01f, transparent 60%), radial-gradient(900px 560px at 92% 4%, #00cdac17, transparent 60%), var(--bg);padding-bottom:4rem;line-height:1.6}a{color:var(--accent-ink);text-decoration:none}a:hover{color:var(--accent-ink);text-decoration:underline}.grad{background:var(--grad);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.bar{z-index:10;background:var(--bar-bg);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:.75rem 1.25rem;display:flex;position:sticky;top:0}.bar__back{font-family:var(--mono);color:var(--muted);letter-spacing:.02em;font-size:.8rem}.bar__actions{gap:.6rem;display:flex}.btn{font-family:var(--mono);letter-spacing:.03em;white-space:nowrap;cursor:pointer;border:1px solid var(--line-2);border-radius:99px;align-items:center;gap:.4rem;padding:.55rem 1rem;font-size:.78rem;font-weight:600;transition:transform .2s,box-shadow .2s;display:inline-flex}.btn--solid{background:var(--grad);color:#04121a;border-color:#0000}.btn--ghost{color:var(--ink);background:0 0}.btn:hover{text-decoration:none;transform:translateY(-1px)}.btn--solid:hover{color:#04121a;box-shadow:0 6px 18px #02aab059}.resume{max-width:920px;margin:0 auto;padding:2.5rem 1.5rem 0}.head{border-bottom:1px solid var(--line);align-items:flex-start;gap:1.6rem;padding-bottom:2rem;display:flex}.head__photo{object-fit:cover;border:2px solid var(--teal);border-radius:50%;flex:none;width:112px;height:112px;box-shadow:0 0 0 4px #02aab024}.head__name{font-family:var(--serif);letter-spacing:-.01em;font-size:2.6rem;font-weight:600;line-height:1.05}.head__name em{background:var(--grad);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-style:italic}.head__title{font-family:var(--mono);color:var(--muted);letter-spacing:.01em;margin-top:.35rem;font-size:.95rem}.head__lede{color:var(--ink);max-width:60ch;margin-top:.7rem;font-size:1.05rem}.head__meta{color:var(--muted);flex-wrap:wrap;gap:.5rem 1.1rem;margin-top:.9rem;font-size:.85rem;list-style:none;display:flex}.head__meta .pr{color:var(--ink)}.head__meta .open{color:var(--accent-ink);font-weight:600}.head__contact{font-family:var(--mono);flex-wrap:wrap;gap:.4rem 1.1rem;margin-top:.8rem;font-size:.82rem;list-style:none;display:flex}.stats{grid-template-columns:repeat(4,1fr);gap:1rem;margin:1.8rem 0;display:grid}.stat{border:1px solid var(--line);background:var(--stat-bg);border-radius:12px;padding:1rem 1.1rem}.stat b{font-family:var(--serif);background:var(--grad);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.9rem;font-weight:600;line-height:1;display:block}.stat span{color:var(--muted);margin-top:.3rem;font-size:.78rem;display:block}.block{border-top:1px solid var(--line);padding:1.6rem 0}.h2{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent-ink);margin-bottom:1.1rem;font-size:.82rem;font-weight:700}.summary{color:var(--ink);max-width:72ch;font-size:1.05rem}.summary strong,.job__bullets strong,.awards strong,.earlier__row strong{color:var(--ink-strong);font-weight:700}.skills{flex-direction:column;gap:.7rem;display:flex}.skills__row{grid-template-columns:190px 1fr;align-items:baseline;gap:1rem;display:grid}.skills__label{font-family:var(--mono);color:var(--muted);font-size:.8rem}.skills__chips{flex-wrap:wrap;gap:.4rem;display:flex}.chip{font-family:var(--mono);border:1px solid var(--line-2);color:var(--ink);background:var(--chip-bg);border-radius:6px;padding:.25rem .6rem;font-size:.76rem}.timeline{border-left:2px solid var(--line);flex-direction:column;gap:1.6rem;margin-left:.3rem;padding-left:1.4rem;display:flex}.job{position:relative}.job:before{content:"";background:var(--grad);width:9px;height:9px;box-shadow:0 0 0 3px var(--bg);border-radius:50%;position:absolute;top:.45rem;left:calc(-1.4rem - 5px)}.job__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.job__role{color:var(--ink-strong);font-size:1.12rem;font-weight:700}.job__at{color:var(--faint)}.job__co{color:var(--accent-ink)}.job__clients{font-family:var(--mono);color:var(--muted);font-size:.8rem}.job__when{font-family:var(--mono);color:var(--muted);white-space:nowrap;font-size:.78rem}.job__bullets{flex-direction:column;gap:.4rem;margin:.6rem 0 0;list-style:none;display:flex}.job__bullets li{color:var(--ink);padding-left:1.1rem;font-size:.95rem;position:relative}.job__bullets li:before{content:"▹";color:var(--accent-ink);position:absolute;left:0}.job__tags{flex-wrap:wrap;gap:.35rem;margin-top:.7rem;display:flex}.tag{font-family:var(--mono);color:var(--muted);background:#02aab014;border:1px solid #02aab02e;border-radius:5px;padding:.18rem .5rem;font-size:.72rem}.earlier{border-top:1px dashed var(--line);margin-top:1.6rem;padding-top:1.2rem}.earlier__title{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.7rem;font-size:.78rem}.earlier__row{color:var(--muted);margin-bottom:.7rem;font-size:.92rem}.earlier__row strong{color:var(--ink)}.earlier__when{font-family:var(--mono);color:var(--faint);font-size:.76rem}.two-col{grid-template-columns:1.2fr 1fr;gap:2rem;display:grid}.two-col .block{border-top:1px solid var(--line)}.awards{flex-direction:column;gap:.7rem;list-style:none;display:flex}.awards li{color:var(--ink);gap:.7rem;font-size:.95rem;display:flex}.awards__ic{flex:none}.edu{color:var(--muted);margin-bottom:.9rem;font-size:.92rem}.edu strong{color:var(--ink)}.certs{font-family:var(--mono);color:var(--muted);flex-direction:column;gap:.35rem;font-size:.8rem;list-style:none;display:flex}.certs li:before{content:"✓ ";color:var(--accent-ink)}.foot{border-top:1px solid var(--line);text-align:center;margin-top:1rem;padding:2.2rem 0 0}.foot__q{font-family:var(--serif);color:var(--ink);margin-bottom:1.2rem;font-size:1.5rem;font-style:italic}.foot__actions{flex-wrap:wrap;justify-content:center;gap:.7rem;display:flex}.bar__back-short{display:none}@media (width<=720px){.head{flex-direction:column;gap:1rem}.stats{grid-template-columns:1fr 1fr}.skills__row{grid-template-columns:1fr;gap:.35rem}.job__when{white-space:normal}.two-col{grid-template-columns:1fr;gap:0}.head__name{font-size:2.1rem}}@media (width<=480px){.bar{gap:.5rem;padding:.6rem .9rem}.bar__back-full{display:none}.bar__back-short{display:inline}.bar__actions .btn--ghost{display:none}.btn{padding:.5rem .85rem;font-size:.73rem}.resume{padding:1.6rem 1.1rem 0}.job__head{gap:.2rem}}@media print{@page{margin:14mm}:root{--ink:#111;--ink-strong:#000;--muted:#444;--faint:#666;--accent-ink:#0a7f83;--line:#ddd;--line-2:#ddd;--chip-bg:#f3f3f3;--stat-bg:#fafafa}.bar,.foot__actions{display:none!important}body{color:#111;padding:0;background:#fff!important}.resume{max-width:none;padding:0}a{color:#111;text-decoration:none}.grad,.head__name em,.stat b,.job__co{-webkit-text-fill-color:#0a7f83;color:#0a7f83;background:0 0}.head,.block,.two-col .block,.foot{border-color:#ddd!important}.head__lede,.summary,.job__bullets li,.awards li{color:#222}.summary strong,.job__bullets strong,.awards strong,.job__role{color:#000}.head__meta{color:#444}.head__meta .pr{color:#111}.head__meta .open{color:#0a7f83}.head__contact,.skills__label,.edu,.certs,.earlier__row{color:#333}.edu strong,.earlier__row strong{color:#000}.job__when,.job__clients,.earlier__when,.certs,.stat span{color:#555}.h2,.earlier__title{color:#0a7f83}.chip,.tag{color:#333!important;background:#f3f3f3!important;border-color:#ddd!important}.stat{background:#fafafa!important;border-color:#ddd!important}.job:before,.timeline,.job{break-inside:avoid}.head__photo{box-shadow:none;border-color:#0a7f83}.two-col{display:block}.foot__q{color:#111}.block,.timeline{break-inside:auto!important;page-break-inside:auto!important}.job,.skills__row,.earlier__row{break-inside:avoid;page-break-inside:avoid}.h2,.job__head{break-after:avoid;page-break-after:avoid}}@font-face{font-family:Montserrat;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/montserrat.woff2)format("woff2")}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/fraunces.woff2)format("woff2")}@font-face{font-family:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(/fonts/fraunces-italic.woff2)format("woff2")}
