.hero{padding:clamp(40px,6vw,80px) 0 0}.hero-id{display:grid;gap:12px;align-content:start}.hero-id img{width:100%;max-width:160px;aspect-ratio:1;-o-object-fit:cover;object-fit:cover;border:1px solid var(--fg)}.hero-id b{display:block;font-weight:600;letter-spacing:-.01em}.hero .status{margin-bottom:24px}.hero-ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px;align-items:center}.copied{color:oklch(36% .1 152)!important}.spec{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:clamp(40px,6vw,72px) 0 0;border-top:1px solid var(--fg)}.spec>div{padding:14px 16px 18px 0;min-width:0}.spec>div+div{padding-left:16px;border-left:1px solid var(--rule)}.spec dt{font:500 11px/1.4 var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px}.spec dd{margin:0;font-size:14px;font-weight:500;line-height:1.4}.jump{position:sticky;top:56px;z-index:10;background:color-mix(in oklch,var(--bg) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--fg)}.jump nav{display:flex}.jump a{flex:0 0 auto;display:flex;align-items:center;min-height:44px;padding:0 20px;text-decoration:none;border-right:1px solid var(--rule);font:500 12px/1 var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.sec[id]{scroll-margin-top:calc(113px - clamp(28px,4vw,40px))}.jump a:first-child{border-left:1px solid var(--rule)}.jump a:hover{color:var(--fg);background:var(--sunk)}.jump a[aria-current=true]{color:var(--fg);box-shadow:inset 0 -2px 0 var(--fg)}.job{display:grid;grid-template-columns:170px minmax(0,1fr) 200px;gap:32px;padding:28px 0}.job-when{font:500 13px/1.5 var(--font-mono);color:var(--muted)}.job-when b{display:block;color:var(--fg);font:600 17px/1.3 var(--font-display);letter-spacing:-.01em;margin-bottom:4px}.job ul.duties{margin:12px 0 16px;padding-left:18px;color:var(--fg-2)}.job ul.duties li{margin:6px 0;max-width:62ch}.job ul.duties li::marker{content:"— ";color:var(--muted)}.job-figs{display:grid;align-content:start;border-left:1px solid var(--rule);padding-left:20px}.job-figs div+div{margin-top:16px;padding-top:16px;border-top:1px solid var(--rule)}.job-figs strong{display:block;font:600 28px/1 var(--font-mono);letter-spacing:-.03em;font-variant-numeric:tabular-nums}.job-figs span{display:block;margin-top:6px;font-size:13px;color:var(--muted);line-height:1.4}.proj{display:grid;grid-template-columns:240px minmax(0,1fr) 240px;gap:28px;padding:24px 0;text-decoration:none;align-items:start;transition:background .15s ease}.proj:hover{background:var(--sunk)}.proj-art{aspect-ratio:16 / 10;border:1px solid var(--fg);background:var(--sunk);position:relative;overflow:hidden}.proj-art img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.proj-art svg{position:absolute;inset:0;width:100%;height:100%}.proj-main p{margin:8px 0 0;color:var(--fg-2);font-size:15px}.proj-side{display:grid;gap:14px;align-content:start}.proj-side .stackline{justify-content:flex-end}.proj-side .go{justify-self:end}.proj-side .stackline li{white-space:nowrap}.proj-side .stackline li+li:before{content:none}.proj-side .stackline li:not(:last-child):after{content:"/";margin:0 8px;color:var(--rule)}.go{font:500 12px/1 var(--font-mono);text-transform:uppercase;letter-spacing:.06em;display:inline-flex;gap:8px;align-items:center}.go:after{content:"→";transition:transform .15s ease}.proj:hover .go:after,.minor:hover .go:after{transform:translate(4px)}.minor{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto;gap:28px;padding:14px 0;text-decoration:none;align-items:baseline}.minor:hover{background:var(--sunk)}.minor b{font-weight:600;font-size:15px}.minor .go:after{content:"↗"}.stack-row{display:grid;grid-template-columns:170px minmax(0,1fr);gap:32px;padding:14px 0;align-items:baseline}.stack-row .stackline{color:var(--fg);font-size:14px}.about{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(28px,4vw,48px);align-items:start}.about-photo{border:1px solid var(--fg);aspect-ratio:3 / 2;overflow:hidden}.about-photo img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.about-photo+.cap{margin-top:8px}.contact{background:var(--fg);color:var(--surface);border-top:0}.contact .label{color:#999fa6}.contact p{color:#bfc5ca}.contact-list{margin-top:36px;border-top:1px solid oklch(100% 0 0 / .35)}.contact-row{display:grid;grid-template-columns:140px minmax(0,1fr) auto;gap:24px;align-items:center;min-height:60px;padding:8px 0;border-bottom:1px solid oklch(100% 0 0 / .14);text-decoration:none;color:inherit;width:100%;background:none;border-left:0;border-right:0;border-top:0;font:inherit;text-align:left;cursor:pointer}.contact-row:hover{background:#1a2026}.contact-row dt,.contact-row .k{font:500 12px/1 var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:#999fa6}.contact-row .v{font-size:clamp(16px,2vw,22px);font-weight:500;letter-spacing:-.01em;overflow-wrap:anywhere}.contact-row .go{color:#bfc5ca}.contact-row.primary .v{font-size:clamp(18px,2.6vw,28px)}.contact+.foot{border-top:0}@media (max-width: 1080px){.job{grid-template-columns:150px minmax(0,1fr)}.job-figs{grid-column:2;grid-template-columns:1fr 1fr;border-left:0;padding-left:0;border-top:1px solid var(--rule);padding-top:16px;gap:0 20px}.job-figs div+div{margin-top:0;padding-top:0;border-top:0;border-left:1px solid var(--rule);padding-left:20px}.proj{grid-template-columns:180px minmax(0,1fr)}.proj-side{grid-column:2}}@media (max-width: 760px){.jump a{flex:1 1 0;justify-content:center;padding:0 8px}.spec{grid-template-columns:1fr 1fr}.spec>div:nth-child(n){border-left:0;padding-left:0;border-top:1px solid var(--rule)}.spec>div:nth-child(2n){border-left:1px solid var(--rule);padding-left:16px}.spec>div:nth-child(-n+2){border-top:0}.hero-id{grid-template-columns:72px 1fr;align-items:center;margin-bottom:24px}.job{grid-template-columns:1fr;gap:12px}.job-figs{grid-column:1}.proj{grid-template-columns:1fr;gap:14px}.proj-side{grid-column:1}.minor{grid-template-columns:minmax(0,1fr) auto;gap:4px 16px}.minor .small{grid-column:1;grid-row:2}.minor .go{grid-row:1 / span 2;align-self:center}.stack-row{grid-template-columns:1fr;gap:6px}.about{grid-template-columns:1fr}.contact-row{grid-template-columns:1fr auto;gap:4px 16px;padding:12px 0}.contact-row .k,.contact-row .v{grid-column:1}.contact-row .go{grid-column:2;grid-row:1 / span 2}}
