:root{--bg:#faf8f5;--surface:#fff;--ink:#201d1b;--muted:#6f6862;--line:#e6e0d9;--accent:#46647e;--accent-ink:#fff;--measure:44rem;--radius:10px;--font-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-serif:ui-serif, Georgia, Cambria, "Times New Roman", serif}@media (prefers-color-scheme:dark){:root{--bg:#1a1817;--surface:#22201e;--ink:#ece7e1;--muted:#a39b93;--line:#322e2b;--accent:#9db8cc;--accent-ink:#1a1817}}*,:before,:after{box-sizing:border-box}html{color-scheme:light dark}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:1rem;line-height:1.65}h1,h2,h3{font-family:var(--font-serif);letter-spacing:-.01em;font-weight:600;line-height:1.2}a{color:var(--accent);text-underline-offset:.15em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}.muted{color:var(--muted)}.site-header,main,.site-footer{max-width:var(--measure);margin-inline:auto;padding-inline:1.25rem}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:1rem;padding-block:1.5rem;display:flex}.site-title{font-family:var(--font-serif);color:var(--ink);font-size:1.05rem;font-weight:600;text-decoration:none}.site-header nav{gap:1.1rem;font-size:.95rem;display:flex}.site-header nav a{color:var(--muted);text-decoration:none}.site-header nav a:hover,.site-header nav a[aria-current=page]{color:var(--ink)}main{padding-block:3rem 4rem}.hero h1{text-wrap:balance;margin:0 0 1rem;font-size:clamp(1.9rem,5vw,2.7rem)}.lede{color:var(--muted);max-width:36rem;font-size:1.15rem}.links{flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin-top:1.75rem;display:flex}.button{border-radius:var(--radius);background:var(--accent);color:var(--accent-ink);padding:.5rem 1rem;font-size:.95rem;text-decoration:none;display:inline-block}section+section{margin-top:3.5rem}h2{margin:0 0 1.5rem;font-size:1.4rem}.timeline{border-left:1px solid var(--line);margin:0;padding:0 0 0 1.5rem;list-style:none}.timeline__item{padding-bottom:2.25rem;position:relative}.timeline__item:last-child{padding-bottom:0}.timeline__item:before{content:"";background:var(--accent);border-radius:50%;width:9px;height:9px;margin-left:-5px;position:absolute;top:.5rem;left:-1.5rem}.timeline__when{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.85rem}.timeline__chapter{font-family:var(--font-serif);color:var(--ink);margin:.15rem 0 .35rem;font-size:1.05rem}.timeline__body h3{font-size:1.05rem;font-family:var(--font-sans);margin:0}.timeline__body ul{color:var(--muted);margin:.6rem 0 0;padding-left:1.1rem}.timeline__aside{border-left:2px solid var(--line);color:var(--muted);margin:.85rem 0 0;padding-left:.85rem;font-style:italic}.resume-header{text-align:center;margin-bottom:2rem}.resume-header h1{font-family:var(--font-sans);letter-spacing:-.01em;margin:0;font-size:2rem;font-weight:700}.resume-label{color:var(--muted);margin:.2rem 0 0}.resume-contact{color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.3rem .6rem;margin:.7rem 0 0;font-size:.95rem;display:flex}.resume-contact .sep{color:var(--line)}.resume-section+.resume-section{margin-top:1.8rem}.resume-section>h2{border-bottom:1.5px solid var(--accent);font-family:var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 .75rem;padding-bottom:.2rem;font-size:.78rem;font-weight:700}.resume-summary{margin:0 0 .5rem}.resume-summary:last-child{margin-bottom:0}.entries{margin:0;padding:0;list-style:none}.entries>li+li{margin-top:1.3rem}.entry__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.1rem 1rem;display:flex}.entry__title{font-family:var(--font-sans);margin:0;font-size:1rem;font-weight:700}.entry__company{font-weight:400}.entry__company:before{content:", "}.entry__location{color:var(--muted);font-weight:400}.entry__location:before{content:" – "}.entry__when{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;font-size:.85rem}.entry__points{margin:.45rem 0 0;padding-left:1.15rem;list-style:outside}.entry__points li+li{margin-top:.2rem}.company__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.1rem 1rem;display:flex}.company__name{font-family:var(--font-sans);margin:0;font-size:1rem;font-weight:700}.company__location{color:var(--muted);font-weight:400}.company__location:before{content:" — "}.company__tenure{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:400}.company__tenure:before{content:" · "}.roles{margin:.35rem 0 0;padding:0;list-style:none}.role+.role{margin-top:.5rem}.role__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.1rem 1rem;display:flex}.role__title{font-family:var(--font-sans);margin:0;font-size:.95rem;font-weight:600}.role__when{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;font-size:.82rem}.role__points{margin:.3rem 0 0;padding-left:1.15rem;list-style:outside}.role__points li+li{margin-top:.2rem}.skills{margin:0;padding:0;list-style:none}.skills li+li{margin-top:.2rem}.skills strong{font-weight:700}.site-footer{border-top:1px solid var(--line);color:var(--muted);padding-block:2rem 3rem;font-size:.875rem}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.timeline__item{animation:linear both rise view();animation-range:entry entry 35%}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}}}@page{size:Letter;margin:.5in .6in}@media print{:root{--bg:#fff;--surface:#fff;--ink:#000;--muted:#444;--line:#bbb;--accent:#2b6cb0}html{color-scheme:light}body{color:#000;background:#fff;font-size:10pt;line-height:1.38}.site-header,.site-footer,.links,.button,astro-dev-toolbar{display:none!important}main{max-width:none;padding:0}a{color:#000;text-decoration:none}.resume-header{margin-bottom:.85rem}.resume-header h1{font-size:21pt}.resume-label{font-size:10.5pt}.resume-contact{margin-top:.35rem;font-size:9.5pt}.resume-section+.resume-section{margin-top:.95rem}.resume-section>h2{break-after:avoid;border-bottom-width:1.25px;margin:0 0 .45rem;padding-bottom:.1rem;font-size:9pt}.resume-summary{margin-bottom:.4rem}.entries>li+li{margin-top:.65rem}.entry,.role{break-inside:avoid}.entry__title,.company__name{font-size:10.5pt}.entry__when,.role__when{font-size:9pt}.entry__points,.role__points{margin-top:.25rem;padding-left:1rem}.entry__points li+li,.role__points li+li{margin-top:.08rem}.roles{margin-top:.3rem}.role+.role{margin-top:.4rem}.role__title{font-size:10pt}.skills{font-size:9.5pt}}body.sketch{--paper:#f6efdb;--paper-2:#fffdf4;--ink:#2e2a23;--ink-soft:#4c4438;--muted:#776c5c;--line:#2e2a23;--accent:#2f5d7c;--redline:#b3402e;--grid-minor:#604e3421;--grid-major:#604e343d;--font-hand:"Amatic SC", "Arial Narrow", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;background-color:var(--paper);color:var(--ink);background-image:radial-gradient(#604e341a 1px,#0000 1.2px);background-size:28px 28px;font-size:1rem;line-height:1.65}body.sketch h1,body.sketch h2,body.sketch .site-title{font-family:var(--font-hand);text-transform:uppercase;letter-spacing:.04em;font-weight:700;line-height:1}body.sketch h2{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='5' viewBox='0 0 240 5'%3E%3Cpath d='M1 3 C 60 1.5, 160 3.8, 239 2.2' fill='none' stroke='%232e2a23' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") 0 100%/100% 5px no-repeat;border-bottom:0;padding-bottom:.45rem;font-size:2rem}body.sketch .site-header{border-bottom:0;padding-block:1.1rem 1.5rem;position:relative}body.sketch .site-header:after{content:"";background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='5' viewBox='0 0 240 5'%3E%3Cpath d='M1 2.5 C 80 1.5, 160 3.5, 239 2.4' fill='none' stroke='%232e2a23' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") 0/240px 5px repeat-x;height:5px;position:absolute;bottom:.5rem;left:1.25rem;right:1.25rem}body.sketch .site-title{font-size:1.6rem;text-decoration:none;display:inline-block}body.sketch .site-header nav{gap:.6rem}body.sketch .site-header nav a{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;border:1.5px solid var(--ink);background:0 0;border-radius:2px;padding:.3rem .7rem;font-size:.72rem;font-weight:500;text-decoration:none;display:inline-block}body.sketch .site-header nav a[aria-current=page]{background:var(--ink);color:var(--paper)}body.sketch .hero h1{max-width:16ch;font-size:clamp(2.8rem,7vw,4.2rem)}body.sketch .lede{color:var(--ink-soft);max-width:42rem;font-size:1.1rem}body.sketch .hand-underline{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.12em;text-decoration-thickness:3px}body.sketch .marker{border-bottom:3px solid var(--accent);background:0 0;padding-inline:0}body.sketch .marker--pink{border-bottom:3px solid var(--redline);background:0 0;padding-inline:0}body.sketch .button{color:var(--ink);background:var(--paper-2);border:1.5px solid var(--ink);box-shadow:3px 3px 0 var(--ink);font-size:.95rem;font-weight:600;line-height:1.4;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;border-radius:5px 4px 6px/4px 6px 4px 5px;transition:transform .12s,box-shadow .12s}body.sketch .button:hover{box-shadow:4px 4px 0 var(--ink);text-decoration:none;transform:translate(-1px,-1px)}body.sketch .links a:not(.button){font-size:.95rem;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;text-underline-offset:.25em;text-decoration:underline 1.5px}body.sketch .doodle{color:var(--redline)}body.sketch .timeline{border-left:0;padding-left:0;position:relative}body.sketch .timeline:before{content:"";background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='3' height='140' viewBox='0 0 3 140'%3E%3Cpath d='M1.5 0 C 1.4 50, 1.6 90, 1.5 140' fill='none' stroke='%232e2a23' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") top/3px 140px repeat-y;width:3px;position:absolute;top:8px;bottom:8px;left:4px}body.sketch .timeline:after{content:"";background:linear-gradient(var(--ink), var(--ink)) left 2px top 0 / 9px 1.8px no-repeat, linear-gradient(var(--ink), var(--ink)) left 0 bottom 0 / 9px 1.8px no-repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='100' viewBox='0 0 12 100' preserveAspectRatio='none'%3E%3Cpath d='M3 0 C 8 28, 0.5 55, 6 78 S 4 92, 7 100' fill='none' stroke='%232e2a23' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") left top / 12px 100% no-repeat;width:12px;height:54%;position:absolute;top:30%;left:5px}body.sketch .timeline__item{background:var(--paper-2);border:1.5px solid var(--ink);box-shadow:none;border-radius:6px 5px 7px/5px 7px 5px 6px;margin-bottom:1.25rem;margin-left:1.75rem;padding:1rem 1.25rem 1.15rem 1.5rem;position:relative}body.sketch .timeline__item:nth-child(odd),body.sketch .timeline__item:nth-child(2n){border-radius:6px 5px 7px/5px 7px 5px 6px;transform:none}body.sketch .timeline__item:before{content:"";background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='4' viewBox='0 0 22 4'%3E%3Cpath d='M1 2.2 C 8 1.4, 15 2.8, 21 1.8' fill='none' stroke='%232e2a23' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") 50%/22px 4px no-repeat;border:0;border-radius:0;width:22px;height:4px;margin-left:0;top:1.55rem;left:-1.75rem}body.sketch .timeline__item:after{content:"";background:var(--paper);border:2px solid var(--ink);border-radius:46% 54% 52% 48%/55% 45% 58% 42%;width:9px;height:9px;position:absolute;top:calc(1.55rem - 4px);left:-1.75rem}body.sketch .timeline__when{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:.72rem;display:inline-block}body.sketch .timeline__chapter{font-size:1.6rem}body.sketch .timeline__body h3{font-size:1.05rem}body.sketch .timeline__aside{border-left:3px solid var(--redline);color:var(--ink-soft);background:0 0;padding:0 0 0 .75rem;font-style:normal;display:block}body.sketch .site-footer{font-size:.875rem;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;border-top:0;padding-top:1.25rem;font-size:.72rem;position:relative}body.sketch .site-footer:before{content:"";background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='5' viewBox='0 0 240 5'%3E%3Cpath d='M1 2.8 C 80 1.8, 160 3.6, 239 2.3' fill='none' stroke='%232e2a23' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") 0/240px 5px repeat-x;height:5px;position:absolute;top:0;left:1.25rem;right:1.25rem}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){body.sketch .timeline__item{animation:linear both sheet-in view();animation-range:entry entry 30%}@keyframes sheet-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}}}
