@font-face{font-family:Silver;src:url('./silver.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
:root{--bg:#191c1b;--panel:#1d201f;--ink:#e1e0d6;--muted:#9b9f97;--dim:#737d74;--accent:#b4d8ac;--line:#414b43;--soft:#282f29;--font:Silver,'Courier New',monospace;color-scheme:dark;font-family:var(--font);font-synthesis:none;font-weight:400;font-size:26px;line-height:1.1;background:var(--bg);color:var(--ink)}
*{box-sizing:border-box}html{scroll-padding-top:24px}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button{border:0;border-radius:0;background:none}a,button{touch-action:manipulation}button:disabled{opacity:.35;cursor:default}img{max-width:100%;display:block}p,h1,h2,h3,figure,dl,dd{margin:0}h1,h2,h3{font-weight:400}::selection{background:var(--accent);color:var(--bg)}:focus-visible{outline:2px solid var(--accent);outline-offset:5px}[hidden]{display:none!important}.muted{color:var(--muted)}.skip-link{position:fixed;top:8px;left:8px;transform:translateY(-160%);z-index:20;background:var(--accent);color:var(--bg);padding:12px}.skip-link:focus{transform:translateY(0)}
.layout{max-width:1720px;margin:auto;padding:28px 40px 28px 28px;display:grid;grid-template-columns:244px minmax(0,1fr);gap:48px;align-items:start}.sidebar{position:sticky;top:28px;height:calc(100dvh - 56px);min-height:570px;border:1px solid var(--line);background:var(--panel);padding:28px 21px;display:flex;flex-direction:column}.identity{display:block}.monogram{display:block;font-size:48px;line-height:1;color:var(--accent)}nav{margin:36px -10px 0}nav a{display:grid;grid-template-columns:30px 1fr 18px;align-items:center;gap:4px;padding:12px 9px;border:1px solid transparent;font-size:27px;color:var(--muted)}.nav-index{font-size:20px;color:var(--dim)}.nav-arrow{visibility:hidden}nav a[aria-current=page]{color:var(--accent);border-color:var(--line);background:var(--soft)}nav a[aria-current=page] .nav-arrow{visibility:visible}nav a:hover{color:var(--accent)}.sidebar-bottom{margin-top:auto;padding-top:34px;font-size:22px;line-height:1.15}.side-email{color:var(--accent);font-size:22px;white-space:nowrap}.side-email:hover{text-decoration:underline}.sidebar-bottom p{color:var(--dim);margin-top:12px}main{min-width:0;min-height:calc(100dvh - 56px);display:flex;flex-direction:column;outline:0}.page-section{margin-bottom:64px}.js .page-section{display:none}.js .page-section.is-active{display:block}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;padding:38px 0 28px}h1{font-size:64px;line-height:1.05;letter-spacing:.3px}.terminal-cursor{color:var(--accent);margin-left:7px}
.text-link{color:var(--accent);font-size:24px;display:inline-flex;gap:22px;align-items:center}.text-link:hover{text-decoration:underline;text-underline-offset:5px}.project-row{border-top:1px solid var(--line);display:grid;grid-template-columns:28px minmax(0,1.233333fr) minmax(0,.766667fr) 17px;gap:24px;align-items:center;padding:28px 4px;position:relative}.project-row:last-child{border-bottom:1px solid var(--line)}.row-number{align-self:start;font-size:21px;padding-top:3px;color:var(--dim)}.project-row h3{font-size:33px;line-height:1.05;margin-bottom:7px}.project-row p{font-size:23px;line-height:1.1;color:var(--muted);max-width:520px;margin-bottom:10px}.stack{font-size:20px;color:var(--dim)}.row-image{width:100%;height:auto;max-height:293.333px;object-fit:contain}.row-arrow{align-self:start;color:var(--dim);font-size:27px}.project-row:hover{background:var(--panel)}.project-row:hover h3,.project-row:hover .row-arrow{color:var(--accent)}.footer{margin-top:auto;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:15px;padding-top:19px;font-size:20px;color:var(--dim)}.footer a:hover{color:var(--accent)}
.prose{max-width:1050px}.profile-intro{display:grid;grid-template-columns:1fr 1.25fr;gap:48px;padding:34px 0 50px;align-items:start}.profile-intro .large-text{font-size:40px;line-height:1.1;color:var(--ink)}.profile-intro>p:last-child{font-size:29px;color:var(--muted);line-height:1.2}.ruled-heading{padding:17px 0;border-bottom:1px solid var(--line);color:var(--accent);font-size:28px}.skills{margin-bottom:36px}.skills>div{display:grid;grid-template-columns:200px 1fr;gap:25px;padding:18px 0;border-bottom:1px solid var(--soft);font-size:26px;line-height:1.2}.skills dt{color:var(--dim)}.skills dd{color:var(--muted)}.education{display:grid;grid-template-columns:200px 1fr;gap:25px;padding:26px 0 42px}.education h3{font-size:32px;margin-bottom:9px}.education p{color:var(--muted)}.timeline article{display:grid;grid-template-columns:230px 1fr;gap:30px;padding:34px 0;border-bottom:1px solid var(--line)}.period{font-size:23px;color:var(--dim);padding-top:6px}.timeline h2{font-size:37px}.job-role{font-size:25px;color:var(--accent);margin:8px 0 22px}.timeline article p:last-child{font-size:27px;line-height:1.2;color:var(--muted);max-width:640px}.contact-email{position:relative;padding:32px 0 36px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.contact-email>a{font-size:clamp(30px,3.5vw,52px);color:var(--accent);overflow-wrap:anywhere;display:inline-block}.contact-email>a:hover{text-decoration:underline;text-underline-offset:6px}.copy-button{border:1px solid var(--line);padding:7px 12px;margin:15px 15px 0 0;color:var(--muted);font-size:23px;display:block}.copy-button:hover{color:var(--accent);border-color:var(--accent)}.copy-status{font-size:21px;color:var(--accent);display:block;min-height:0}.contact-details{margin-top:25px}.contact-details a:hover{color:var(--accent)}
.back-link{display:inline-block;margin-top:30px;font-size:23px;color:var(--muted)}.back-link:hover{color:var(--accent)}.case .section-heading{padding-top:28px;align-items:flex-start}.case h1{font-size:58px;overflow-wrap:anywhere}.case-description{max-width:850px;font-size:30px;line-height:1.2;color:var(--muted)}.case-stack{font-size:23px;color:var(--accent);margin:24px 0}.project-points{padding:0 0 0 25px;max-width:850px;color:var(--muted);font-size:27px;line-height:1.2}.project-points li{padding-left:6px;margin:14px 0}.project-points li::marker{content:'— ';color:var(--dim)}.case-links{margin:25px 0}.gallery{margin-top:40px;display:grid;gap:36px}.gallery figure{min-width:0}.gallery-image{display:block;border:1px solid var(--line);padding:12px;background:var(--panel);cursor:zoom-in}.gallery-image img{margin:auto;max-height:80vh;width:auto;height:auto;object-fit:contain}.gallery-image:hover{border-color:var(--accent)}figcaption{display:flex;justify-content:space-between;gap:15px;color:var(--dim);font-size:20px;margin-top:10px}.next-project{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:28px 0;margin:55px 0 28px;gap:25px;font-size:29px}.next-project .muted{font-size:23px}.next-project:hover{color:var(--accent)}.lightbox{padding:18px 24px;border:1px solid var(--line);background:var(--bg);color:var(--ink);width:min(96vw,1700px);max-width:96vw;max-height:96dvh}.lightbox::backdrop{background:#090d0bef}.lightbox-toolbar,.lightbox-controls{display:flex;justify-content:space-between;align-items:center;font-size:23px;gap:20px}.lightbox-toolbar{margin-bottom:16px;color:var(--muted)}.lightbox-controls{margin-top:16px}.lightbox button{padding:6px;color:var(--accent)}.lightbox>img{width:auto;height:auto;max-height:calc(94dvh - 145px);margin:auto;object-fit:contain}.key{font-size:19px;color:var(--dim);border:1px solid var(--line);padding:0 5px;margin-left:10px}
@media(min-width:1500px){.layout{gap:60px;padding-right:55px}.project-row{grid-template-columns:34px minmax(0,1.233333fr) minmax(0,.766667fr) 20px;padding:30px 6px}.project-row h3{font-size:36px}}
@media(max-width:1100px){.layout{padding:22px;grid-template-columns:212px minmax(0,1fr);gap:28px}.sidebar{top:22px;height:calc(100dvh - 44px);padding:24px 16px}.side-email{font-size:19px}nav a{font-size:25px}.project-row{grid-template-columns:23px minmax(0,1fr) 15px;gap:16px}.row-description{grid-column:2}.row-image{grid-column:2 / -1;grid-row:2}.row-arrow{grid-column:3;grid-row:1}.project-row h3{font-size:30px}.section-heading{gap:15px}.profile-intro{grid-template-columns:1fr;gap:25px}.skills>div,.education{grid-template-columns:155px 1fr;gap:20px}.timeline article{grid-template-columns:1fr;gap:15px}.timeline h2{font-size:34px}.case h1{font-size:48px}}
@media(max-width:760px){:root{font-size:24px}.layout{display:block;padding:16px}.sidebar{position:relative;top:0;min-height:0;height:auto;display:grid;grid-template-columns:1fr auto;padding:18px;margin-bottom:24px;gap:0 20px}.identity{display:flex;gap:16px;align-items:center}.monogram{font-size:44px;margin:0}nav{grid-column:1/-1;display:flex;justify-content:space-between;margin:20px 0 0;border-top:1px solid var(--line);padding-top:12px;gap:4px}nav a{display:flex;justify-content:center;flex:1;gap:5px;font-size:23px;padding:9px 5px}.nav-index{font-size:17px}.nav-arrow{display:none}.sidebar-bottom{display:none}main{min-height:calc(100dvh - 198px)}.section-heading{padding:29px 0 23px}h1{font-size:52px}.project-row{grid-template-columns:22px minmax(0,1fr);gap:16px 10px;padding:24px 0}.row-arrow{display:none}.row-image{grid-column:1 / -1}.project-row h3{font-size:28px}.project-row p{font-size:23px}.stack{font-size:19px}.row-number{font-size:19px}.footer{font-size:19px;padding-top:15px}.footer .muted{display:none}.page-section{margin-bottom:40px}.profile-intro{padding-top:20px;padding-bottom:30px;gap:24px}.profile-intro .large-text{font-size:35px}.profile-intro>p:last-child{font-size:27px}.skills>div,.education{grid-template-columns:125px minmax(0,1fr);font-size:24px;gap:15px}.skills>div{padding:17px 0}.skills dd{overflow-wrap:anywhere}.contact-email{padding:25px 0}.contact-email>a{font-size:36px}.case .section-heading{display:block}.case h1{font-size:46px}.case-description{font-size:27px}.case-stack{font-size:23px;line-height:1.2}.gallery{margin-top:30px;gap:25px}.gallery-image{padding:6px}.next-project{display:grid;gap:14px;font-size:27px}.lightbox{padding:12px}.lightbox-toolbar,.lightbox-controls{font-size:21px}.key{display:none}.project-points{font-size:25px}}
@media(max-width:390px){.layout{padding:12px}.sidebar{padding:14px}nav a{font-size:21px}.nav-index{display:none}h1{font-size:47px}.project-row{grid-template-columns:19px minmax(0,1fr);gap:9px}.contact-email>a{font-size:31px}.skills>div,.education{grid-template-columns:1fr;gap:8px}}
#main:focus-visible{outline:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}

.project-row:not(.has-image) .row-description{grid-column:2 / -1;padding-right:24px}.project-row:not(.has-image) .row-arrow{position:absolute;right:4px;top:22px}
.project-row h3{overflow-wrap:anywhere}
@media(max-width:1100px){.row-image{max-height:440px}}
