:root,:root[data-theme=dark]{--bg:#0d1420;--panel:#101a2b;--border:#21304a;--border-strong:#2a3a52;--text:#e7ecf5;--text-soft:#b9c6da;--muted:#8fa0b8;--faint:#8190a8;--accent:#7ee0a3;--accent-bright:#a5efc1;--pill-border:#24344e;--pill-text:#9fb0c8}:root[data-theme=light]{--bg:#f4f6f9;--panel:#fff;--border:#d8dfe9;--border-strong:#c9d2df;--text:#16202e;--text-soft:#33415c;--muted:#5a6b84;--faint:#59677c;--accent:#177a4c;--accent-bright:#0f5e39;--pill-border:#c9d2df;--pill-text:#4a5a73}*{box-sizing:border-box}html{background:var(--bg);overflow-x:clip}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.6}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-bright)}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.skip-link{z-index:100;background:var(--panel);color:var(--text);border-radius:6px;padding:8px 12px;position:fixed;top:8px;left:8px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.mono{font-family:ui-monospace,Menlo,Consolas,monospace}.page{flex-direction:column;max-width:880px;min-height:100dvh;margin:0 auto;padding:0 48px 40px;display:flex}@media (min-width:1440px){.page{max-width:1140px}}@media (min-width:1920px){.page{max-width:1380px}}@media (min-width:2400px){.page{max-width:1560px}}@media (max-width:720px){.page{padding:0 20px 32px}.nav{padding:18px 0 12px}.page .fill-main.centered{padding-top:0}.pill-rows{flex-wrap:wrap;flex-direction:row!important}.pill-rows>div{display:contents!important}.whoami{overflow-x:visible}.hero-media{align-items:center;width:100%;padding:8px 0 4px}.hero-media .headshot-card,.hero-media .status-line{width:min(72%,280px)}.hero-media .headshot-card{aspect-ratio:235/287;height:auto}.page .skills-grid{grid-template-columns:96px 1fr!important}.job-sep{display:none}.job-title .job-role{margin-top:2px;display:block}.whoami .whoami-body{row-gap:12px}.footer-location-full{display:none}}@media (min-width:721px){.footer-location-short{display:none}}.whoami-body{grid-template-columns:max-content 1fr;gap:2px 2ch;margin-top:4px;display:grid}.whoami-body .k{color:var(--faint)}.whoami-body .v{overflow-wrap:anywhere}.fill-main{flex-direction:column;flex-grow:1;display:flex}.fill-main.centered{padding-top:clamp(8px,8vh,96px)}.hero-name{letter-spacing:-.02em;margin:0;font-size:clamp(34px,8vw,46px);font-weight:700;line-height:1.05}.page-title{letter-spacing:-.02em;margin:0;font-size:clamp(28px,7vw,34px);font-weight:700}.headshot-card{border-radius:14px;flex-shrink:0;width:235px;height:287px;position:relative;overflow:hidden}@media (min-width:1440px){.headshot-card{width:295px;height:360px}}@media (min-width:1920px){.headshot-card{width:330px;height:403px}}.whoami{color:var(--text-soft);margin-top:16px;padding:16px 20px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.75;overflow-x:auto}@media (max-width:480px){.whoami{padding:14px 16px;font-size:11px}.page .nav{gap:10px}.page .nav-prompt{font-size:12px}.page .nav-links{gap:10px;font-size:12.5px}.page .theme-toggle{width:28px;height:28px}}.nav{z-index:40;background:color-mix(in srgb, var(--bg) 90%, transparent);-webkit-backdrop-filter:blur(10px);justify-content:space-between;align-items:center;gap:16px;padding:30px 0 14px;display:flex;position:sticky;top:0}.nav-prompt{color:var(--accent);font-size:14px}.nav-links{color:var(--muted);align-items:center;gap:28px;font-size:13px;display:flex}.nav-links a{color:var(--muted)}.nav-links a.active,.nav-links a:hover{color:var(--text)}.theme-toggle{border:1px solid var(--border-strong);width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;padding:0;display:flex}.theme-toggle:hover{color:var(--text);border-color:var(--faint)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px}.prompt-line{color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px}.references-copy a{text-underline-offset:.18em;text-decoration:underline}.pill{border:1px solid var(--pill-border);color:var(--pill-text);white-space:nowrap;border-radius:999px;padding:5px 12px;font-size:12px}a.pill{color:var(--pill-text);background-image:linear-gradient(color-mix(in oklab, var(--accent) 14%, transparent), color-mix(in oklab, var(--accent) 14%, transparent));background-repeat:no-repeat;background-size:0% 100%;transition:background-size .22s ease-out,color .22s,border-color .22s}a.pill:hover,a.pill:focus-visible{color:var(--accent);border-color:color-mix(in oklab, var(--accent) 45%, transparent);background-size:100% 100%}.status-line{color:var(--muted);text-align:right;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px}.status-line .val{color:var(--accent)}.spin-line:after{content:"-";text-align:left;width:1ch;color:var(--accent);animation:.52s step-end infinite spin-line;display:inline-block}@keyframes spin-line{0%{content:"-"}25%{content:"\\"}50%{content:"|"}75%{content:"/"}}@property --beam{syntax:"<angle>";inherits:false;initial-value:0deg}.btn-beam{position:relative}.btn-beam:before{content:"";background:conic-gradient(from var(--beam), transparent 0deg 300deg, var(--accent) 340deg, transparent 360deg);-webkit-mask-composite:xor;opacity:0;pointer-events:none;border-radius:8px;padding:3px;transition:opacity .2s;position:absolute;inset:-3px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.btn-beam:hover:before,.btn-beam:focus-visible:before{opacity:1;animation:2.2s linear infinite beam-orbit}@keyframes beam-orbit{to{--beam:360deg}}@media (prefers-reduced-motion:reduce){.spin-line:after{animation:none}.btn-accent,.btn-accent .btn-icon{transition:none;transform:none}.btn-beam:hover:before,.btn-beam:focus-visible:before{opacity:1;background:color-mix(in oklab, var(--accent) 50%, transparent);animation:none}}.btn{cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:8px;padding:11px 18px;font-family:inherit;font-size:14px;display:inline-flex}.btn-accent{border:1px solid var(--accent);color:var(--accent);font-weight:600;transition:transform .15s,box-shadow .25s;position:relative}.btn-accent:hover,.btn-accent:focus-visible{color:var(--accent-bright);border-color:var(--accent-bright);box-shadow:0 0 20px -6px color-mix(in oklab, var(--accent) 55%, transparent);transform:translateY(-1px)}.btn-accent:active{transform:translateY(0)scale(.98)}.btn-accent .btn-icon{transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.btn-accent:hover .btn-icon,.btn-accent:focus-visible .btn-icon{transform:scale(1.25)}.btn-plain{border:1px solid var(--border-strong);color:var(--text)}.cursor{background:var(--accent);vertical-align:text-bottom;width:8px;height:15px;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}@media (prefers-reduced-motion:reduce){.cursor{animation:none}}.current-dot{background:var(--accent);vertical-align:1px;border-radius:50%;width:7px;height:7px;margin-right:7px;animation:2s ease-out infinite current-pulse;display:inline-block}@keyframes current-pulse{0%{box-shadow:0 0 0 0 color-mix(in oklab, var(--accent) 45%, transparent)}70%{box-shadow:0 0 0 7px #0000}to{box-shadow:0 0 #0000}}@media (prefers-reduced-motion:reduce){.current-dot{animation:none}}.job-card{flex-direction:column;gap:10px;padding:20px 24px;display:flex}.job-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.job-title{margin:0;font-size:16.5px;font-weight:700}.job-role{color:var(--accent);font-weight:500}.job-focus{color:var(--faint);margin-top:3px;font-size:12px;font-style:italic}.job-meta{color:var(--faint);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px}.job-blurb{color:var(--muted);font-size:13px;font-style:italic;line-height:1.6}.job-intro{color:var(--text-soft);font-size:13.5px}.bullets{color:var(--muted);flex-direction:column;gap:7px;margin:0;padding:0;font-size:13px;line-height:1.55;list-style:none;display:flex}.bullet{gap:10px;display:flex}.bullet-marker{color:var(--accent)}@page{size:A4;margin:40px 0}@page:first{margin-top:0}.print-only{display:none}@media print{:root,:root[data-theme=dark],:root[data-theme=light]{--bg:#fff;--panel:#fff;--border:#0000;--border-strong:#0000;--text:#111418;--text-soft:#33415c;--muted:#444b55;--faint:#6b7280;--accent:#1a2537;--accent-bright:#1a2537;--pill-border:#0000;--pill-text:#33415c}html,body{background:#fff!important}body{font-size:10.5pt;line-height:1.5}.no-print,.skip-link,.nav,.site-footer,.current-dot{display:none!important}.print-only{display:block}.page{max-width:none;min-height:0;padding:0 53px 30px;display:block}.print-break{break-before:page}.tombstones>div{min-width:0;flex:1 1 0!important}.credentials-layout,.credentials-layout>section{display:block!important}.credentials-layout>section+section{margin-top:10pt}.page .skills-grid{grid-template-columns:112px 1fr!important;gap:5px 18px!important;padding:10px 16px!important}.page .education-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8pt 20pt!important;padding:6pt 16pt 0!important;display:grid!important}.panel{border:none;border-radius:0}.job-card{break-inside:avoid;padding:0 0 14pt}.job-blurb{font-size:9.5pt}.job-focus{font-size:9pt}.bullets,.job-intro{color:#2a2f36;font-size:10pt}.prompt-line{display:none}.print-letterhead{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#0d1420;border-radius:0;flex-direction:column;gap:5pt;margin:0 -53px 16pt;padding:44px 53px 26px;display:flex}.print-letterhead .name{letter-spacing:-.02em;color:#fff;font-size:22pt;font-weight:700}.print-letterhead .byline{color:#b9c6da;font-size:10pt}.print-letterhead .contact{color:#8fa0b8;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:8.5pt}.print-section-heading{letter-spacing:.14em;color:#1a2537;border-bottom:1.5pt solid #1a2537;margin:8pt 0;padding-bottom:3pt;font-size:10pt;font-weight:700}.skills-grid>div,.education-list>li{break-inside:avoid}}
