@font-face{font-family:Newsreader;font-style:normal;font-display:swap;font-weight:400;src:url(../media/newsreader-latin-400-normal.1zqdvo8tou4dd.woff2)format("woff2"),url(../media/newsreader-latin-400-normal.2x2izcfi0mi2e.woff)format("woff")}
@font-face{font-family:Newsreader;font-style:italic;font-display:swap;font-weight:400;src:url(../media/newsreader-latin-400-italic.16x4cwd-g31qo.woff2)format("woff2"),url(../media/newsreader-latin-400-italic.42v2plbks4jvz.woff)format("woff")}
@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(../media/hanken-grotesk-latin-400-normal.18lpns2xtfj9z.woff2)format("woff2"),url(../media/hanken-grotesk-latin-400-normal.1m1yv-g7__21o.woff)format("woff")}
@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(../media/hanken-grotesk-latin-500-normal.2om_jlrhbwq6l.woff2)format("woff2"),url(../media/hanken-grotesk-latin-500-normal.3bq4ckd-nwon7.woff)format("woff")}
@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(../media/hanken-grotesk-latin-600-normal.0c7b5n7trqal9.woff2)format("woff2"),url(../media/hanken-grotesk-latin-600-normal.059oydah0bc9-.woff)format("woff")}
@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/jetbrains-mono-latin-400-normal.3crsbyy6lh6yf.woff2)format("woff2"),url(../media/jetbrains-mono-latin-400-normal.2-1gwgi1uvl-u.woff)format("woff")}
@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/jetbrains-mono-latin-500-normal.2h52d08o60qht.woff2)format("woff2"),url(../media/jetbrains-mono-latin-500-normal.2uxjaecu1qvdf.woff)format("woff")}
:root{--bg:#f3f4f1;--fg:#15171a;--muted:#5e6460;--body:#3e433f;--rule:#d5d8d1;--chip:#c9cdc5;--accent:#2b4acb;--card:#fff;--card-rule:#dde0d9;--pill:#e4e8fa;--inv-bg:#15171a;--inv-fg:#e9ebe6;--inv-muted:#9aa09b;--inv-body:#c3c8c2;--inv-chip:#3a3f3b;--btn-bg:#15171a;--btn-fg:#f3f4f1;--serif:"Newsreader", Georgia, "Times New Roman", serif;--sans:"Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;--gutter:clamp(20px, 7vw, 120px);--max:1040px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#111312;--fg:#e9ebe6;--muted:#8f9690;--body:#b9beb8;--rule:#2a2e2b;--chip:#3a3f3b;--accent:#93a5ff;--card:#181b19;--card-rule:#2a2e2b;--pill:#232a47;--inv-bg:#1b1f2e;--inv-fg:#e9ebe6;--inv-muted:#9aa3bf;--inv-body:#c3c9da;--inv-chip:#343a52;--btn-bg:#e9ebe6;--btn-fg:#111312;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.55;transition:background-color .25s,color .25s;overflow-x:hidden}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}h1,h2,p{margin:0}ul{margin:0;padding:0;list-style:none}.mono{font-family:var(--mono);font-size:13px}.muted{color:var(--muted)}.small{font-size:14px}.page{max-width:calc(var(--max) + 2 * var(--gutter));padding:32px var(--gutter) 56px;margin:0 auto}.nav{justify-content:space-between;align-items:center;gap:16px;min-height:44px;display:flex}.brand{letter-spacing:-.01em;font-weight:600}.nav-links{align-items:center;gap:clamp(16px,3vw,32px);font-size:15px;display:flex}.nav-links a{color:var(--muted)}.nav-links a:hover{color:var(--fg)}.theme-toggle{border:1px solid var(--chip);width:44px;height:44px;color:var(--fg);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle:hover{border-color:var(--fg)}.hero{flex-direction:column;gap:32px;padding:clamp(72px,12vw,140px) 0 clamp(64px,9vw,104px);display:flex}.eyebrow{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);font-size:13px}.hero h1{font-family:var(--serif);letter-spacing:-.025em;text-wrap:balance;max-width:1000px;font-size:clamp(44px,7.4vw,88px);font-weight:400;line-height:1.02}.hero h1 em{color:var(--accent)}.lede{max-width:640px;color:var(--body);font-size:clamp(17px,1.6vw,20px);line-height:1.55}.cta-row{flex-wrap:wrap;gap:12px;font-size:15px;display:flex}.btn{border-radius:999px;align-items:center;min-height:46px;padding:0 22px;display:inline-flex}.btn-solid{background:var(--btn-bg);color:var(--btn-fg)}.btn-solid:hover{color:var(--btn-fg);opacity:.88}.btn-ghost{border:1px solid var(--chip)}.shifts{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.shift{border-right:1px solid var(--rule);flex-direction:column;gap:18px;padding:44px 48px 48px 0;display:flex}.shift p{color:var(--body);line-height:1.6}.shift-meta{font-family:var(--mono);text-transform:uppercase;color:var(--muted);justify-content:space-between;font-size:13px;display:flex}.shift-title{font-family:var(--serif);font-size:clamp(30px,3vw,36px);font-weight:400;line-height:1.15}.shift-night{background:var(--inv-bg);color:var(--inv-fg);border-right:0;padding:44px 48px 48px}.shift-night p{color:var(--inv-body)}.shift-night .shift-meta{color:var(--inv-muted)}.shift-night .tags li{border-color:var(--inv-chip)}.tags{font-family:var(--mono);flex-wrap:wrap;gap:8px;font-size:13px;display:flex}.tags li{border:1px solid var(--chip);border-radius:6px;padding:5px 10px}.tags-sm{color:var(--body);font-size:12.5px}.tags-sm li{padding:4px 9px}.section-title{font-family:var(--serif);letter-spacing:-.015em;font-size:clamp(34px,4vw,44px);font-weight:400;line-height:1.1}.split{grid-template-columns:280px minmax(0,1fr);gap:40px;padding-top:clamp(72px,9vw,104px);display:grid}.split-head{flex-direction:column;gap:14px;display:flex}.split-head p{font-size:15px;line-height:1.6}.stack{flex-direction:column;gap:16px;min-width:0;display:flex}.job{background:var(--card);border:1px solid var(--card-rule);border-radius:16px;transition:background-color .25s,border-color .25s}.job-head{all:unset;box-sizing:border-box;cursor:pointer;border-radius:16px;flex-direction:column;gap:14px;width:100%;padding:30px 32px;display:flex}.job-head:disabled{cursor:default}.job-head:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.job-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.job-company{letter-spacing:-.01em;color:var(--fg);font-size:clamp(21px,2.2vw,26px);font-weight:600}.job-badges{flex-shrink:0;align-items:center;gap:14px;display:inline-flex}.pill{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border:1px solid var(--chip);white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:12px}.pill-accent{color:var(--accent);background:var(--pill);border-color:#0000}.chev{border:1px solid var(--chip);width:36px;height:36px;color:var(--fg);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.chev svg{transition:transform .25s}.job.is-open .chev svg{transform:rotate(180deg)}.job-role{color:var(--body);flex-wrap:wrap;align-items:baseline;font-size:17px}.job-role .mono{font-size:14px}.job-summary{color:var(--body);border-top:1px solid var(--card-rule);padding-top:14px;font-size:16px;line-height:1.6}.job-toggle{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);font-size:12px}.job-panel{grid-template-rows:0fr;transition:grid-template-rows .3s;display:grid}.job.is-open .job-panel{grid-template-rows:1fr}.job-panel-inner{visibility:hidden;flex-direction:column;gap:18px;min-height:0;padding:0 32px;transition:padding .3s,visibility .3s;display:flex;overflow:hidden}.job.is-open .job-panel-inner{visibility:visible;padding:0 32px 30px}.metrics{border-top:1px solid var(--card-rule);border-bottom:1px solid var(--card-rule);grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:0;padding:18px 0;display:grid}.metrics>div{flex-direction:column-reverse;justify-content:flex-end;gap:4px;display:flex}.metrics dd{font-family:var(--serif);color:var(--fg);margin:0;font-size:clamp(26px,2.6vw,32px);line-height:1.1}.metrics dt{color:var(--muted);font-size:13px;line-height:1.4}.bullets{color:var(--body);flex-direction:column;gap:8px;font-size:15px;line-height:1.55;display:flex}.bullets li{grid-template-columns:14px 1fr;gap:10px;display:grid}.bullets li:before{content:"–";color:var(--accent)}.job-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.award{color:var(--accent);align-items:center;gap:8px;font-size:14px;font-weight:600;display:inline-flex}.sub-head{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:16px;padding:18px 0 2px;font-size:12px;display:flex}.certs{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.cert{border:1px solid var(--card-rule);border-radius:16px;flex-direction:column;gap:6px;padding:20px 22px;display:flex}.cert-issuer{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:11.5px}.cert-name{font-size:17px;font-weight:600;line-height:1.3}.cert-when{font-family:var(--mono);color:var(--muted);font-size:12px}.projects{flex-direction:column;padding-top:clamp(72px,9vw,104px);display:flex}.projects-head{justify-content:space-between;align-items:baseline;padding-bottom:28px;display:flex}.project{border-top:1px solid var(--rule);grid-template-columns:280px minmax(0,1fr) 220px;align-items:start;gap:40px;padding:32px 0;display:grid}.project:last-child{border-bottom:1px solid var(--rule)}.project:hover .project-name>span:first-child{color:var(--accent)}.project:hover{color:inherit}.project-name{flex-direction:column;gap:6px;display:flex}.project-name>span:first-child{letter-spacing:-.01em;font-size:clamp(22px,2.2vw,26px);font-weight:600;transition:color .2s}.project-text{color:var(--body);line-height:1.6}.project-facts{font-family:var(--mono);color:var(--body);flex-direction:column;gap:8px;font-size:13px;display:flex}.live{color:var(--accent);align-items:center;gap:8px;display:inline-flex}.dot{background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 0 var(--accent);border-radius:50%;animation:2.4s ease-out infinite pulse}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 45%, transparent)}to{box-shadow:0 0 0 8px #0000}}.notes{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.note{background:var(--card);border:1px solid var(--card-rule);border-radius:16px;flex-direction:column;gap:10px;padding:24px;display:flex}.note-title{font-family:var(--serif);font-size:24px;line-height:1.25}.footer{border-top:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:32px;margin-top:clamp(80px,10vw,120px);padding-top:56px;display:flex}.footer-hello{flex-direction:column;gap:14px;display:flex}.footer-title{font-family:var(--serif);letter-spacing:-.02em;font-size:clamp(38px,4.4vw,48px);line-height:1.05}.email{font-family:var(--mono);flex-wrap:wrap;align-items:center;gap:12px;font-size:16px;display:inline-flex}.copy{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--fg);border:1px solid var(--chip);cursor:pointer;background:0 0;border-radius:999px;padding:5px 12px;font-size:12px}.copy:hover{border-color:var(--fg)}.footer-links{gap:28px;font-size:15px;display:flex}@media (max-width:960px){.split{grid-template-columns:1fr;gap:24px}.project{grid-template-columns:1fr;gap:14px}.project-facts{flex-flow:wrap;gap:8px 20px}.certs{grid-template-columns:1fr}}@media (max-width:720px){.nav-links a{display:none}.shifts{grid-template-columns:1fr}.shift{border-right:0;padding:36px 0}.shift-night{padding:36px 24px 40px}.job-head{padding:24px 20px}.job-panel-inner,.job.is-open .job-panel-inner{padding-left:20px;padding-right:20px}.job.is-open .job-panel-inner{padding-bottom:24px}.job-row{align-items:flex-start}.job-badges .pill{display:none}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.notes{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}html{scroll-behavior:auto}}
