@layer base,components;@font-face{font-family:Inter;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/InterVariable.woff2) format("woff2")}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/GeistMono-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/GeistMono-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--font-sans: -apple-system, BlinkMacSystemFont, "Inter", system-ui, sans-serif;--gear-glow: rgba(0, 0, 0, .055);--gear-card-bg: #ffffff;--gear-plate: #ffffff;--bg: #fafafa;--section-label-top: 52px;--text: #121212;--muted: #707070;--faint: #737373;--accent: #ff5b14;--border: rgba(0, 0, 0, .1);--hover: rgba(0, 0, 0, .03);--rule: linear-gradient( to right, transparent 0%, var(--border) 18%, var(--border) 82%, transparent 100% );--contrib-l0: #ebedf0;--contrib-l1: #9be9a8;--contrib-l2: #40c463;--contrib-l3: #30a14e;--contrib-l4: #216e39;--photos-date-color: rgba(240, 168, 92, .78);--mood-shadow: rgba(0, 0, 0, .12);--mood-shadow-strong: rgba(0, 0, 0, .16);--mood-note-bg: #f4efe6;--mood-note-border: rgba(0, 0, 0, .08);--mood-note-author: #1c1c1e;--mood-note-time: #8a8377;--mood-note-text: #3d3830;--mood-tag-bg: rgba(244, 239, 230, .9);--mood-tag-border: rgba(0, 0, 0, .1);--mood-tag-text: #2b2620;--header-offset: 72px;--bleed: 100vw}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #050505;--gear-card-bg: #171717;--text: #ffffff;--muted: #7e7e7e;--faint: #7a7a7a;--accent: #ff5b14;--border: rgba(255, 255, 255, .1);--hover: rgba(255, 255, 255, .03);--contrib-l0: #161b22;--contrib-l1: #0e4429;--contrib-l2: #006d32;--contrib-l3: #26a641;--contrib-l4: #39d353;--mood-shadow: rgba(0, 0, 0, .35);--mood-shadow-strong: rgba(0, 0, 0, .45);--mood-note-bg: #1c1c1e;--mood-note-border: rgba(255, 255, 255, .08);--mood-note-author: #fff;--mood-note-time: #8a8a8a;--mood-note-text: #d8d8d8;--mood-tag-bg: rgba(20, 20, 20, .82);--mood-tag-border: rgba(255, 255, 255, .1);--mood-tag-text: #f2f2f2}}:root[data-theme=dark]{color-scheme:dark;--bg: #050505;--gear-card-bg: #171717;--text: #ffffff;--muted: #7e7e7e;--faint: #7a7a7a;--accent: #ff5b14;--border: rgba(255, 255, 255, .1);--hover: rgba(255, 255, 255, .03);--contrib-l0: #161b22;--contrib-l1: #0e4429;--contrib-l2: #006d32;--contrib-l3: #26a641;--contrib-l4: #39d353;--mood-shadow: rgba(0, 0, 0, .35);--mood-shadow-strong: rgba(0, 0, 0, .45);--mood-note-bg: #1c1c1e;--mood-note-border: rgba(255, 255, 255, .08);--mood-note-author: #fff;--mood-note-time: #8a8a8a;--mood-note-text: #d8d8d8;--mood-tag-bg: rgba(20, 20, 20, .82);--mood-tag-border: rgba(255, 255, 255, .1);--mood-tag-text: #f2f2f2}:root[data-theme=light]{color-scheme:light}@layer base{*{box-sizing:border-box}html,body{overflow-x:clip;max-width:100%}body.is-scroll-locked{position:fixed;left:0;right:0;width:100%}html:has(>body.is-scroll-locked){overflow-y:scroll}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scrollbar-gutter:stable}body{margin:0;background-color:var(--bg);color:var(--text);font-family:var(--font-sans);font-weight:500;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-kerning:normal;font-optical-sizing:auto}.app-main{max-width:640px;margin:0 auto;padding:56px 24px 48px;min-height:100vh}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}::selection{background-color:color-mix(in srgb,var(--muted) 30%,transparent);color:var(--text)}::-moz-selection{background-color:color-mix(in srgb,var(--muted) 30%,transparent);color:var(--text)}mark{background-color:color-mix(in srgb,var(--accent) 18%,transparent);color:inherit;padding:.1em .3em;border-radius:.3em;box-decoration-break:clone;-webkit-box-decoration-break:clone}}@layer components{.mono{font-family:Geist Mono,ui-monospace,monospace;font-size:.72rem;letter-spacing:.02em;font-variant-numeric:tabular-nums}.section{padding-bottom:28px}.section:after{content:"";display:block;margin-top:48px;height:1px;background:var(--rule)}#moodboard:after{margin-top:76px}.section:last-of-type:after{display:none}.section:last-of-type{padding-bottom:0}#experience:after{margin-top:39px}#projects:after{display:none}#projects{padding-bottom:0}.projects-group:after{content:"";display:block;margin-top:48px;height:1px;background:var(--rule)}.projects-group{padding-bottom:28px}.section-label{font-family:Geist Mono,ui-monospace,monospace;font-size:.75rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;margin-top:0;color:var(--muted);position:sticky;top:var(--section-label-top, 52px);z-index:5;margin-bottom:22px;padding:10px 0;display:flex;align-items:center;gap:6px}.section-label:before{opacity:0;transition:opacity .18s ease}.section-label.is-stuck:before{opacity:1;transition:none}.section-label:before{content:"";position:absolute;top:calc(var(--section-label-top, 52px) * -1);bottom:0;left:50%;width:100vw;transform:translate(-50%);pointer-events:none;z-index:-1;background:var(--bg)}.section-action{margin-left:auto}section[id]{scroll-margin-top:var(--header-offset, 72px)}.reveal{opacity:0;transform:translateY(16px);filter:blur(6px);transition:opacity .6s cubic-bezier(.22,.61,.36,1),transform .6s cubic-bezier(.22,.61,.36,1),filter .6s cubic-bezier(.22,.61,.36,1)}.reveal.is-visible{opacity:1;transform:none;filter:none}.reveal-item{opacity:0;transform:translateY(14px);transition:opacity .5s cubic-bezier(.22,.61,.36,1) var(--reveal-delay, 0ms),transform .5s cubic-bezier(.22,.61,.36,1) var(--reveal-delay, 0ms)}.reveal.is-visible .reveal-item{opacity:1;transform:none}.muted{color:var(--muted)}.link{color:var(--text);text-decoration:none;transition:color .15s ease}.link:hover{color:var(--accent)}.link-arrow{display:inline-block;flex-shrink:0;margin-left:5px;color:var(--muted);font-size:.72rem;line-height:1;transition:transform .22s cubic-bezier(.22,.61,.36,1),color .22s cubic-bezier(.22,.61,.36,1)}a:hover .link-arrow,a:focus-visible .link-arrow{transform:translate(2px,-2px);color:var(--accent)}.link-underline{display:inline-block;color:var(--text);text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:.22em;transition:color .15s ease,text-decoration-color .15s ease;align-self:flex-start;width:-moz-max-content;width:max-content;max-width:100%}.link-underline:hover,.link-underline:focus-visible{color:var(--accent);text-decoration-color:var(--accent)}a:active,button:active{scale:.97}.row{transition:background-color .15s ease}.row:hover,.work-row.is-linked{background-color:var(--hover)}@media (hover: hover){.dim-group:has(.row:hover) .row:not(:hover):not(.is-linked),.dim-group:has(.row:focus-within) .row:not(:focus-within):not(.is-linked),.dim-group:has(.is-linked) .row:not(.is-linked){opacity:.45}.dim-group .row{position:relative;transition:background-color .15s ease,opacity .2s ease,margin .28s cubic-bezier(.22,.61,.36,1)}.dim-group .row:hover,.dim-group .row:focus-within,.dim-group .row.is-linked{margin-block:10px}.dim-group .row:first-child{margin-top:0}.dim-group .row:last-child{margin-bottom:0}.dim-group .row:hover:before{content:"";position:absolute;left:0;right:0;bottom:100%;height:10px}}@keyframes row-reveal-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.dim-group .row{opacity:0}.reveal.is-visible .dim-group .row{opacity:1;animation:row-reveal-in .5s cubic-bezier(.22,.61,.36,1) backwards;animation-delay:var(--reveal-delay, 0ms)}.dim-group .row:nth-child(1){--reveal-delay: 0ms}.dim-group .row:nth-child(2){--reveal-delay: 55ms}.dim-group .row:nth-child(3){--reveal-delay: .11s}.dim-group .row:nth-child(4){--reveal-delay: 165ms}.dim-group .row:nth-child(5){--reveal-delay: .22s}.dim-group .row:nth-child(6){--reveal-delay: 275ms}.dim-group .row:nth-child(7){--reveal-delay: .33s}.dim-group .row:nth-child(n+8){--reveal-delay: 385ms}.experience-row{padding:9px 12px;margin-left:-12px;margin-right:-12px;border-radius:6px}.row-line{display:flex;align-items:baseline;gap:7px}.experience-period{color:var(--muted);flex-shrink:0;white-space:nowrap;font-size:.7rem;line-height:1.5}.experience-body{min-width:0}.experience-title{flex:0 1 auto;min-width:0;font-weight:500;white-space:nowrap;font-size:.875rem}.row-leader{flex:1 1 0;min-width:0;height:3.5px;position:relative;bottom:.28em;background-image:radial-gradient(circle at center,var(--muted) .75px,transparent .8px);background-size:3.5px 3.5px;background-repeat:repeat-x;background-position:center;opacity:.65}.experience-note{margin:10px 0 0;max-width:62ch;text-align:left;font-size:.875rem;line-height:1.65}@media (hover: hover){.experience-note-wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s cubic-bezier(.22,.61,.36,1);min-width:0}.experience-note-wrap>.experience-note{min-height:0;overflow:hidden;margin-top:0;padding-top:10px;opacity:0;transition:opacity .2s ease .06s}.experience-row:hover .experience-note-wrap,.experience-row:focus-within .experience-note-wrap{grid-template-rows:1fr}.experience-row:hover .experience-note-wrap>.experience-note,.experience-row:focus-within .experience-note-wrap>.experience-note{opacity:1}}.hero-root{margin-top:44px;padding-bottom:28px}.hero-root:after{content:"";display:block;margin-top:48px;height:1px;background:var(--rule)}.hero-heading{display:flex;flex-direction:row;align-items:flex-start;gap:18px}@keyframes hero-word-in{0%{opacity:0;transform:translateY(14px);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}.hero-word,.hero-mount{animation:hero-word-in .5s cubic-bezier(.22,.61,.36,1) backwards;animation-delay:calc(var(--word-index, 0) * 28ms)}.hero-word{display:inline-block;white-space:pre}.hero-name-title{font-size:.875rem;font-weight:500;line-height:1.2;margin:0}.hero-role{margin-top:6px;color:var(--muted);font-size:.875rem}.hero-intro{max-width:46ch;white-space:pre-line;line-height:1.65;color:var(--text);font-size:.875rem}.hero-contact{margin-top:26px;font-family:var(--font-sans);color:var(--muted);font-size:.875rem}.hero-title{margin-top:15px;transform:translate(-122px,96px);transition:transform .25s cubic-bezier(.22,.61,.36,1)}.hero-heading.is-open .hero-title{transform:translate(-22px,12px)}.hero-contact-item+.hero-contact-item:before{content:"·";display:inline-block;margin:0 .5ch;color:var(--faint);text-decoration:none}.hero-location-pin{width:1em;height:1em;vertical-align:-.125em;color:var(--muted)}.verified-badge{display:inline-block;width:1.05em;height:1.05em;margin-left:.34em;vertical-align:-.16em;flex-shrink:0}.verified-badge-shape{fill:#1d9bf0}.verified-badge-check{fill:#fff}.profile-stack{position:relative;width:104px;min-height:116px;margin-top:22px;margin-bottom:20px;--stack-ease: cubic-bezier(.22, .61, .36, 1);--stack-bounce: cubic-bezier(.34, 1.26, .64, 1);--stack-duration: .45s;transition:width var(--stack-duration) var(--stack-ease),min-height var(--stack-duration) var(--stack-ease)}.profile-stack.is-open{width:72px;min-height:134px}.profile-trigger{position:relative;z-index:5;display:block;padding:0;border:0;border-radius:12px;background:transparent;cursor:pointer;transform-origin:top left;transition:transform var(--stack-duration) var(--stack-ease)}.profile-stack.is-open .profile-trigger{transform:scale(.7)}.profile-trigger:active{scale:none}.profile-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.profile-photo{position:relative;display:block;width:72px;height:72px;background:#fff;border-radius:50%}.profile-photo-img{-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:absolute;top:1.5px;right:1.5px;bottom:1.5px;left:1.5px;width:calc(100% - 3px);height:calc(100% - 3px);-o-object-fit:cover;object-fit:cover;border-radius:50%}.profile-photo-main{position:relative;z-index:5}.profile-extras{position:absolute;top:0;left:0;z-index:1;width:72px;height:72px;pointer-events:none}.profile-photo-extra{position:absolute;top:0;left:0;opacity:1;transform-origin:center center;transform:translate(calc(var(--profile-index) * 7px)) rotate(0);z-index:calc(4 - var(--profile-index));transition:opacity var(--stack-duration) var(--stack-ease),transform var(--stack-duration) var(--stack-bounce);will-change:transform,opacity}.profile-stack.is-open .profile-photo-extra{transition:opacity var(--stack-duration) var(--stack-ease),transform .32s var(--stack-bounce);transition-delay:calc((var(--profile-index) - 1) * .06s);transform:translate(calc((var(--profile-index) - 1) * 82px),62px) rotate(0)}.profile-stack:not(.is-open) .profile-photo-extra{transition-delay:calc((3 - var(--profile-index)) * .06s)}.profile-stack:not(.is-open):hover .profile-photo-extra,.profile-stack:not(.is-open):has(.profile-trigger:focus-visible) .profile-photo-extra{transform:translate(calc(var(--profile-index) * 20px)) rotate(20deg)}.profile-stack.is-open .profile-extras{top:0;left:0;pointer-events:auto}.profile-stack.is-open .profile-photo-extra:hover{z-index:6;transition:transform .18s var(--stack-ease);transform:translate(calc((var(--profile-index) - 1) * 82px),62px) rotate(0) scale(1.06)}.site-header{position:sticky;top:0;z-index:20;margin:-12px -12px 0;padding:12px;border-bottom:1px solid transparent;transition:border-color .18s ease;display:flex;flex-direction:column;color:var(--muted)}.site-header-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;position:relative;z-index:22}.nav-toggle{display:none;position:relative;width:34px;height:34px;margin:-6px -8px -6px 0;padding:0;background:none;border:0;color:var(--muted);cursor:pointer;touch-action:manipulation;transition:color .15s ease}.nav-toggle:hover,.nav-toggle[aria-expanded=true]{color:var(--text)}.nav-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.nav-toggle:active{scale:none}.nav-toggle-bar{position:absolute;left:50%;width:17px;height:1.5px;margin-left:-8.5px;background:currentColor;border-radius:1px;transition:transform .3s cubic-bezier(.22,1,.36,1),opacity .2s ease}.nav-toggle-bar:nth-child(1){transform:translateY(-3.5px)}.nav-toggle-bar:nth-child(2){transform:translateY(3.5px)}.nav-toggle[aria-expanded=true] .nav-toggle-bar:nth-child(1){transform:rotate(45deg)}.nav-toggle[aria-expanded=true] .nav-toggle-bar:nth-child(2){transform:rotate(-45deg)}.mobile-nav{display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:21;visibility:hidden;transform:translateY(-100%);transition:transform .4s cubic-bezier(.4,0,.9,.4),visibility 0s linear .4s;background-color:var(--bg)}.mobile-nav.is-open{visibility:visible;transform:none;transition:transform .44s cubic-bezier(.22,1,.36,1),visibility 0s}.mobile-nav-inner{display:flex;font-family:var(--font-sans);letter-spacing:normal;flex-direction:column;justify-content:flex-start;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:calc(78px + var(--bar-top, 0px)) max(24px,calc((100% - 592px)/2)) calc(20px + env(safe-area-inset-bottom))}.mobile-nav-link{flex:0 0 auto;display:flex;align-items:center;position:relative;padding:10px 0;font-size:.9375rem;color:var(--muted);opacity:0;transform:translateY(-10px);transition:opacity .2s ease,transform .2s ease,color .15s ease}.mobile-nav-link.is-group-start{margin-top:18px}.mobile-nav-link:active,.mobile-nav-link[aria-current]{color:var(--text)}.mobile-nav-link[aria-current]:before{content:"";position:absolute;top:10px;bottom:10px;left:-12px;width:1px;background:var(--accent)}.mobile-nav-index{width:16px;height:16px;flex:none;margin-right:14px;opacity:.5}.mobile-nav-link[aria-current] .mobile-nav-index{opacity:1}.mobile-nav.is-open .mobile-nav-link{opacity:1;transform:none;transition:opacity .3s ease,transform .42s cubic-bezier(.22,1,.36,1),color .15s ease;transition-delay:calc(.16s + var(--i) * 50ms)}@media (prefers-reduced-motion: reduce){.mobile-nav,.mobile-nav-link{transition:none}.mobile-nav.is-open{transform:none}.mobile-nav.is-open .mobile-nav-link{transform:none;opacity:1;transition-delay:0ms}}.site-header:before{content:"";position:absolute;top:0;bottom:-1px;left:50%;width:100vw;transform:translate(-50%);z-index:-1;pointer-events:none;border-bottom:1px solid transparent;transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease}.site-header.is-stuck{border-bottom-color:transparent}.site-header.is-stuck:before{background-color:var(--bg);border-bottom-color:var(--border);box-shadow:0 12px 28px #0000000f}.header-brand{margin-right:auto;white-space:nowrap;color:var(--text);text-decoration:none;display:inline-flex;align-items:center;line-height:1;height:1.2em}.terminal-cursor{display:inline-block;margin-left:1px;color:currentColor;animation:cursor-blink 1s steps(1,end) infinite}@keyframes cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}.header-nav{display:flex;align-items:center;gap:10px;color:var(--muted)}.header-mount{animation:hero-word-in .5s cubic-bezier(.22,.61,.36,1) backwards;animation-delay:calc(var(--word-index, 0) * 55ms)}.header-nav-link{color:inherit;font-size:.875rem;transition:color .15s ease;display:inline-flex;align-items:center;min-height:24px;padding:0 4px;margin:-6px 0;touch-action:manipulation}.header-nav-link:hover{color:var(--text)}.accolades-list{display:flex;flex-direction:column;gap:28px}.accolade-row{display:flex;justify-content:space-between;gap:16px;align-items:baseline}.accolade-title{margin:0;font-weight:500;font-size:.875rem}.accolade-org{margin:2px 0 0;font-size:.875rem}.accolade-main{position:relative;align-self:flex-start;display:block;margin:0;padding:0;border:0;background:none;font:inherit;color:inherit;text-align:left}.accolade-row.has-proof .accolade-main{cursor:pointer}.accolade-main:focus{outline:none}.accolade-main:focus-visible{outline:1px solid color-mix(in srgb,var(--text) 35%,transparent);outline-offset:6px;border-radius:4px}.accolade-proof{position:absolute;bottom:calc(100% + 10px);left:0;display:block;width:260px;max-width:min(260px,72vw);padding:7px 7px 9px;background:#fbfaf7;border:1px solid var(--border);border-radius:3px;box-shadow:0 14px 34px #00000042;pointer-events:none;opacity:0;transform:translateY(6px) scale(.97) rotate(-2.4deg);transform-origin:bottom left;transition:opacity .18s ease,transform .28s cubic-bezier(.22,1,.36,1);z-index:30}.accolade-proof img{display:block;width:100%;aspect-ratio:4 / 3;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;border-radius:1px;background:var(--hover)}.accolade-proof.is-below{bottom:auto;top:calc(100% + 10px);transform-origin:top left;transform:translateY(-6px) scale(.97) rotate(-2.4deg)}.accolade-row.has-proof .accolade-main:hover .accolade-proof,.accolade-row.has-proof .accolade-main:focus-visible .accolade-proof,.accolade-row.has-proof.is-open .accolade-proof{opacity:1;transform:translateY(0) scale(1) rotate(-2.4deg)}@media (hover: none){.accolade-row.has-proof.is-open .accolade-proof{pointer-events:auto}.accolade-proof,.accolade-proof.is-below{bottom:auto;top:calc(100% + 12px);transform-origin:top left;transform:translateY(-6px) scale(.97) rotate(-2.4deg);width:min(240px,62vw)}}@media (prefers-reduced-motion: reduce){.accolade-proof{transition:opacity .18s ease;transform:none}.accolade-proof.is-below{transform:none}.accolade-row.has-proof .accolade-main:hover .accolade-proof,.accolade-row.has-proof .accolade-main:focus-visible .accolade-proof,.accolade-row.has-proof.is-open .accolade-proof{transform:none}}.accolade-period{color:var(--muted);font-size:.72rem;flex-shrink:0}.accolade-more{align-self:flex-start;overflow:hidden;max-height:3em;transition:color .15s ease,border-color .15s ease,background-color .15s ease,max-height .4s cubic-bezier(.22,1,.36,1),margin .4s cubic-bezier(.22,1,.36,1),opacity .25s ease}.accolade-more.is-hidden{max-height:0;margin-top:-28px;opacity:0;pointer-events:none}.accolade-reveal{display:grid;grid-template-rows:0fr;margin-bottom:-28px;transition:grid-template-rows .4s cubic-bezier(.22,1,.36,1),margin-bottom .4s cubic-bezier(.22,1,.36,1)}.accolade-reveal.is-open{grid-template-rows:1fr;margin-bottom:0}.accolade-reveal-inner{overflow:hidden;opacity:0;transform:translateY(-6px);transition:opacity .3s ease .08s,transform .4s cubic-bezier(.22,1,.36,1) .08s}.accolade-reveal.is-open .accolade-reveal-inner{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion: reduce){.accolade-reveal,.accolade-reveal-inner{transition:none}}.marquee{overflow:hidden;position:relative;width:var(--bleed, 100vw);max-width:860px;left:50%;transform:translate(-50%);cursor:grab;touch-action:pan-y;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:44px 0 12px;margin-top:-44px;margin-bottom:-12px;-webkit-mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent)}.marquee:active{cursor:grabbing}.stack-grid-wrap{overflow:hidden;opacity:0;transition:max-height .34s cubic-bezier(.4,0,.2,1),opacity .26s ease;position:relative;width:100%}.stack-grid-wrap.is-open{opacity:1;transition:max-height .45s cubic-bezier(.4,0,.2,1),opacity .35s ease}.stack-groups{padding:30px 0 0;display:flex;flex-direction:column;gap:40px}.stack-group-title{margin:0 0 12px;font-size:.62rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:10px}.stack-group-title:after{content:"";flex:1;height:1px;background:var(--border)}.stack-grid{display:flex;flex-wrap:wrap;gap:8px}.stack-grid .tech-item{opacity:0;transform:translateY(14px);filter:blur(6px);transition:opacity .15s ease,transform .15s cubic-bezier(.4,0,.2,1),filter .15s ease}.stack-grid-wrap.is-open .tech-item{opacity:1;transform:translateY(0);filter:blur(0);transition:opacity .28s ease,transform .28s cubic-bezier(.4,0,.2,1),filter .22s ease;transition-delay:var(--reveal-delay, 0ms)}@media (prefers-reduced-motion: reduce){.stack-grid .tech-item{opacity:1;transform:none;filter:none}.stack-grid-wrap.is-open .tech-item{transition:none}}.marquee{transition:opacity .3s ease,max-height .45s cubic-bezier(.4,0,.2,1);max-height:176px}.marquee.is-hidden{opacity:0;max-height:0;padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;pointer-events:none}.stack-toggle,.mood-photos-link,.accolade-more{display:inline-flex;align-items:center;gap:.4em;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-decoration:none;white-space:nowrap;background:none;border:1px solid var(--border);border-radius:999px;padding:4px 10px;cursor:pointer;transition:color .15s ease,border-color .15s ease,background-color .15s ease}.stack-toggle:hover,.stack-toggle:focus-visible,.mood-photos-link:hover,.mood-photos-link:focus-visible,.accolade-more:hover,.accolade-more:focus-visible{color:var(--text);border-color:var(--accent);background:var(--hover)}.mood-photos-link span{transition:transform .15s ease}.mood-photos-link:hover span,.mood-photos-link:focus-visible span{transform:translate(2px)}.marquee-track{display:flex;align-items:center;gap:40px;width:-moz-max-content;width:max-content;will-change:transform}.tech-item{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.tech-item.is-labelled{flex-direction:row;gap:8px;max-width:100%;padding:6px 12px 6px 10px;border:1px solid var(--border);border-radius:999px;transition:border-color .15s ease,background-color .15s ease}a.tech-item.is-labelled{text-decoration:none;color:inherit}.tech-item.is-labelled:hover,.tech-item.is-labelled:focus-visible{border-color:var(--muted);background:var(--hover)}.tech-item.is-labelled:focus-visible{outline-offset:2px;border-radius:999px}.tech-label{font-size:.75rem;letter-spacing:0;line-height:1.3;white-space:nowrap;color:var(--text)}.tech-icon{display:block;width:30px;height:30px;flex-shrink:0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;color:var(--text);transition:transform .15s ease}.tech-item:hover .tech-icon{transform:scale(1.15)}.tech-item.is-labelled .tech-icon{width:16px;height:16px}.tech-item.is-labelled:hover .tech-icon,.tech-item.is-labelled:focus-visible .tech-icon{transform:none}.work-row{padding:9px 12px;margin-left:-12px;margin-right:-12px;border-radius:6px}.work-year{color:var(--muted);flex-shrink:0;font-size:.7rem;line-height:1.5}.work-body{min-width:0}.work-title{flex:0 1 auto;min-width:0;font-weight:500;white-space:nowrap;font-size:.875rem}.work-desc{margin:10px 0 0;max-width:62ch;text-align:left;font-size:.875rem;line-height:1.65}@media (hover: hover){.work-desc-wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s cubic-bezier(.22,.61,.36,1);min-width:0}.work-desc-wrap>.work-desc{min-height:0;overflow:hidden;margin-top:0;padding-top:10px;opacity:0;transition:opacity .2s ease .06s}.work-row:hover .work-desc-wrap,.work-row:focus-within .work-desc-wrap,.work-row.is-linked .work-desc-wrap{grid-template-rows:1fr}.work-row:hover .work-desc-wrap>.work-desc,.work-row:focus-within .work-desc-wrap>.work-desc,.work-row.is-linked .work-desc-wrap>.work-desc{opacity:1}}.tech-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(4px);white-space:nowrap;font-size:.64rem;letter-spacing:.04em;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:5px;padding:3px 7px;pointer-events:none;opacity:0;transition:opacity .15s ease,transform .15s ease;z-index:5}.tech-item:hover .tech-tooltip,.tech-item:focus-visible .tech-tooltip{opacity:1;transform:translate(-50%) translateY(0)}.tech-item:focus-visible{outline:1px solid var(--border);outline-offset:6px;border-radius:4px}.tech-item:focus-visible .tech-icon{transform:scale(1.15)}.section-info{position:relative;display:inline-flex;align-items:center;color:var(--faint);cursor:help;outline:none;transition:color .15s ease}.section-info:hover,.section-info:focus-visible{color:var(--text)}.section-info-icon{width:13px;height:13px}.section-info-tooltip{position:absolute;top:calc(100% + 8px);left:-2px;transform:translateY(-4px);width:-moz-max-content;width:max-content;max-width:240px;font-family:var(--font-sans);font-size:.66rem;line-height:1.4;letter-spacing:.01em;text-transform:none;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:6px 9px;box-shadow:0 8px 22px #0000001f;pointer-events:none;opacity:0;transition:opacity .15s ease,transform .15s ease;z-index:25}.section-info:hover .section-info-tooltip,.section-info:focus-visible .section-info-tooltip{opacity:1;transform:translateY(0)}.showcase-scene{--showcase-card-width: clamp(220px, 44vw, 300px);display:flex;align-items:center;justify-content:center;background:var(--bg);margin-top:62px;margin-bottom:12px;height:380px;min-height:380px;perspective:1800px;perspective-origin:50% 47%;width:var(--bleed, 100vw);max-width:1100px;position:relative;left:50%;transform:translate(-50%);transform-style:preserve-3d;overflow:hidden}.showcase-scene:before,.showcase-scene:after{display:none}.showcase-camera{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;width:100%;height:100%;transform-style:preserve-3d;z-index:1}.showcase-rail{position:relative;width:100%;height:100%;transform:translate(-4%,-3%);transform-style:preserve-3d}.showcase-slot{position:absolute;top:50%;left:50%;transform-style:preserve-3d;outline:none;transition:opacity .22s ease,transform .28s ease;will-change:transform}.showcase-slot:focus-visible .showcase-card{box-shadow:0 0 0 2px var(--accent)}.showcase-card{position:relative;width:var(--showcase-card-width);transform-style:preserve-3d;transform-origin:center center;border-radius:6px;overflow:hidden;box-shadow:0 0 0 1px var(--border);background:#151515;transition:filter .22s ease,transform .28s ease,box-shadow .22s ease;will-change:transform}.showcase-card img,.showcase-card video,.showcase-placeholder{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.showcase-placeholder{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:18px;padding:46px 38px;text-align:left}.contact-info{font-size:.875rem;line-height:1.5}.contact-intro{margin:0 0 22px;max-width:44ch;line-height:1.85;color:var(--muted)}.contact-primary{margin-bottom:30px}.contact-socials{display:flex;flex-wrap:wrap;align-items:baseline;gap:0}.contact-social{display:inline-flex;align-items:baseline}.contact-social-sep{padding:0 10px 0 5px;color:var(--faint)}.contact-primary,.contact-social-link{align-self:auto}.gear-grid{position:relative;width:100vw;max-width:620px;left:50%;transform:translate(-50%);padding:0 24px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.gear-card{position:relative;display:flex;flex-direction:column;justify-content:flex-start;gap:9px;padding:9px;border:1px solid var(--border);border-radius:7px;background:var(--gear-card-bg);overflow:hidden;color:inherit;opacity:0;transform:translateY(12px);transition:opacity .5s cubic-bezier(.22,.61,.36,1) var(--reveal-delay, 0ms),transform .5s cubic-bezier(.22,.61,.36,1) var(--reveal-delay, 0ms),border-color .25s ease}.reveal.is-visible .gear-card{opacity:1;transform:translateY(0)}.gear-card:hover{border-color:var(--muted)}a.gear-card:focus-visible{outline:1px solid var(--muted);outline-offset:2px}.gear-frame{position:relative;flex:0 0 auto;width:100%;aspect-ratio:4 / 3;display:flex;align-items:center;justify-content:center;min-height:0;background:var(--gear-plate);border-radius:4px;overflow:hidden}.gear-frame:before{content:"";position:absolute;left:50%;top:52%;width:62%;height:52%;transform:translate(-50%,-50%);border-radius:50%;background:var(--gear-glow);filter:blur(26px);pointer-events:none}.gear-frame img{position:relative;max-width:calc(66% * var(--gear-scale, 1));max-height:calc(74% * var(--gear-scale, 1));-o-object-fit:contain;object-fit:contain;transition:transform .32s cubic-bezier(.22,.61,.36,1)}.gear-card:hover .gear-frame img,.gear-card:focus-visible .gear-frame img{transform:translateY(-4px)}.gear-placeholder{width:66%;height:66%;border:1px dashed var(--border);border-radius:8px}.gear-meta{display:flex;flex-direction:column;gap:3px;text-align:left}.gear-text{display:flex;flex-direction:column;gap:3px;min-width:0}.gear-eyebrow{display:flex;align-items:baseline;color:var(--muted);font-size:.7rem;letter-spacing:0}.gear-eyebrow .gear-brand{order:0}.gear-eyebrow .gear-eyebrow-sep{order:1;margin:0 .4ch}.gear-eyebrow .gear-category{order:2}.gear-model{font-size:.8125rem;line-height:1.25;color:var(--text)}.gear-note{font-size:.7rem;line-height:1.3;color:var(--faint);margin-top:2px}@media (prefers-reduced-motion: reduce){.gear-card{opacity:1;transform:none;transition:border-color .25s ease}.gear-card:hover .gear-frame img,.gear-card:focus-visible .gear-frame img{transform:none}}@media (max-width: 760px){.gear-grid{grid-template-columns:repeat(2,1fr)}.gear-card{aspect-ratio:auto;min-height:0}}@media (max-width: 680px){.gear-grid{grid-template-columns:1fr;gap:8px;padding:0;width:100%;max-width:100%;left:0;transform:none}.gear-card{aspect-ratio:auto;min-height:0;flex-direction:row;align-items:center;gap:14px;padding:12px 14px}.gear-frame{flex:0 0 64px;width:64px;height:56px;aspect-ratio:auto;padding:6px}.gear-frame img{max-height:calc(46px * var(--gear-scale, 1));max-width:calc(100% * var(--gear-scale, 1))}.gear-frame:before{display:none}.gear-meta{flex:1;min-width:0;flex-direction:row;align-items:flex-start;justify-content:space-between;gap:14px}.gear-text{flex:1;min-width:0;order:0}.gear-eyebrow{flex-direction:column;align-items:flex-end;flex-shrink:0;text-align:right;font-size:.75rem;line-height:1.35;gap:4px;order:1}.gear-eyebrow-sep{display:none}.gear-placeholder{height:46px}}.mood-board img,.mood-board video{-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.mood-board{position:relative;width:100vw;max-width:800px;left:50%;transform:translate(-50%);aspect-ratio:19 / 9;margin-top:8px;touch-action:pan-y}.mood-scroller{position:relative}@media (max-width: 840px){.mood-scroller{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin-inline:-24px;padding-inline:24px;padding-block:24px;margin-top:-24px}.mood-scroller::-webkit-scrollbar{display:none}.mood-board{width:800px;max-width:none;left:0;transform:none;touch-action:auto}}.mood-item{position:absolute;transform:translate(var(--mood-dx, 0px),var(--mood-dy, 0px)) rotate(var(--mood-rot, 0deg));transform-origin:center center;transition:transform .32s cubic-bezier(.22,.61,.36,1),filter .2s ease;will-change:transform}.mood-board:not(.is-visible) .mood-item{transform:translate(calc(var(--mood-dx, 0px) + var(--mood-cxf, 0) * var(--mood-bw, 0px)),calc(var(--mood-dy, 0px) + var(--mood-cyf, 0) * var(--mood-bh, 0px))) rotate(0) scale(.18);opacity:0}.mood-board.is-visible .mood-item{opacity:1;transition:transform .62s cubic-bezier(.22,1,.36,1),opacity .42s ease;transition-delay:calc(var(--mood-i, 0) * 24ms)}@media (prefers-reduced-motion: reduce){.mood-board:not(.is-visible) .mood-item{transform:translate(var(--mood-dx, 0px),var(--mood-dy, 0px)) rotate(var(--mood-rot, 0deg));opacity:1}.mood-board.is-visible .mood-item{transition:none;transition-delay:0ms}}.mood-board.is-draggable .mood-item{cursor:grab}.mood-board.is-draggable .mood-item:hover{transform:translate(var(--mood-dx, 0px),calc(var(--mood-dy, 0px) - 6px)) rotate(var(--mood-rot, 0deg)) scale(1.03);filter:drop-shadow(0 14px 28px var(--mood-shadow-strong));transition-delay:0ms}.mood-board.is-draggable .mood-item.is-dragging{cursor:grabbing;transition:none;transform:translate(var(--mood-dx, 0px),var(--mood-dy, 0px)) rotate(var(--mood-rot, 0deg)) scale(1.04);filter:drop-shadow(0 18px 34px var(--mood-shadow-strong))}.mood-swipe-hint{display:none;margin:30px 0 0;text-align:center;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase}@media (max-width: 680px){.mood-swipe-hint{display:block}}.mood-swipe-hint span{position:relative;display:inline-block;color:var(--muted)}.mood-swipe-hint span:after{content:attr(data-text);position:absolute;top:0;right:0;bottom:0;left:0;color:transparent;background-image:linear-gradient(100deg,transparent 38%,var(--text) 50%,transparent 62%);background-size:300% 100%;background-repeat:no-repeat;-webkit-background-clip:text;background-clip:text;animation:mood-swipe-shimmer 3.4s linear infinite;pointer-events:none}.mood-swipe-arrow{display:inline-block;color:var(--muted);animation:mood-swipe-nudge 1.6s ease-in-out infinite}.mood-swipe-arrow.is-left{margin-right:.5em;animation-name:mood-swipe-nudge-left}.mood-swipe-arrow.is-right{margin-left:.5em}@keyframes mood-swipe-nudge{0%,to{transform:translate(0)}50%{transform:translate(4px)}}@keyframes mood-swipe-nudge-left{0%,to{transform:translate(0)}50%{transform:translate(-4px)}}@keyframes mood-swipe-shimmer{0%{background-position:150% 0}to{background-position:-150% 0}}@media (prefers-reduced-motion: reduce){.mood-swipe-hint span:after{display:none}.mood-swipe-arrow{animation:none;transform:none}}.mood-photo{position:relative;margin:0;padding:7px 7px 9px;background:#d8d8d8;border-radius:3px;box-shadow:0 8px 20px var(--mood-shadow)}.mood-photo img,.mood-photo video{display:block;width:100%;aspect-ratio:4 / 5;-o-object-fit:cover;object-fit:cover;border-radius:1px;background:#2a2a2a}.mood-photo-caption{margin-top:7px;font-family:Geist Mono,ui-monospace,monospace;font-size:.58rem;letter-spacing:.04em;color:#555;text-align:center}.mood-quote{margin:0;padding:16px 16px 18px;background:linear-gradient(150deg,#f06a1e,#d4520f);color:#fff;border-radius:6px;box-shadow:0 8px 20px var(--mood-shadow);text-align:left}.mood-quote p{margin:0;font-size:1.1rem;line-height:1.4;font-style:italic;font-weight:700}.mood-quote cite{display:block;margin-top:10px;font-size:.66rem;font-style:normal;opacity:.75;text-align:right}.mood-note{padding:11px 13px;background:var(--mood-note-bg);border:1px solid var(--mood-note-border);border-radius:12px;box-shadow:0 8px 20px var(--mood-shadow)}.mood-note-head{display:flex;align-items:baseline;gap:7px;margin:0 0 5px}.mood-note-author{font-size:.74rem;font-weight:500;color:var(--mood-note-author)}.mood-note-time{font-size:.6rem;color:var(--mood-note-time)}.mood-note-text{margin:0;font-size:.74rem;line-height:1.45;color:var(--mood-note-text)}.mood-note-text.is-quote{font-style:italic}.mood-sticker-wrap{position:relative;display:block}.mood-sticker{display:block;width:100%;height:auto;filter:drop-shadow(0 4px 10px var(--mood-shadow));-webkit-user-select:none;-moz-user-select:none;user-select:none}.mood-sticker-outlined{filter:drop-shadow(2px 0 0 #fff) drop-shadow(-2px 0 0 #fff) drop-shadow(0 2px 0 #fff) drop-shadow(0 -2px 0 #fff) drop-shadow(1.4px 1.4px 0 #fff) drop-shadow(-1.4px 1.4px 0 #fff) drop-shadow(1.4px -1.4px 0 #fff) drop-shadow(-1.4px -1.4px 0 #fff) drop-shadow(0 5px 9px var(--mood-shadow))}.mood-sticker-squircle,.mood-sticker-squircle-flush{aspect-ratio:1 / 1;-o-object-fit:contain;object-fit:contain;border-radius:22%;box-shadow:0 6px 16px var(--mood-shadow);filter:none}.mood-sticker-squircle{padding:18%;background:#1c1c1e;border:1px solid rgba(255,255,255,.08)}.mood-sticker-squircle-flush{-o-object-fit:cover;object-fit:cover;border:1px solid rgba(255,255,255,.08)}.mood-emoji{display:block;font-size:var(--mood-w, 40px);line-height:1;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;filter:drop-shadow(0 4px 10px var(--mood-shadow))}.mood-tag{position:absolute;width:-moz-max-content;width:max-content;max-width:160px;padding:6px 10px;font-size:.82rem;line-height:1.3;font-weight:500;font-style:italic;letter-spacing:.01em;color:var(--mood-tag-text);background:var(--mood-tag-bg);border:1px solid var(--mood-tag-border);border-radius:8px;box-shadow:0 6px 16px var(--mood-shadow-strong);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;transform:rotate(var(--mood-tag-rot, 0deg))}.mood-tag-left{right:calc(100% + 10px);top:50%;transform:translateY(-50%) rotate(var(--mood-tag-rot, 0deg));text-align:right}.mood-tag-right{left:calc(100% + 8px);top:50%;transform:translateY(-50%) rotate(var(--mood-tag-rot, 0deg))}.mood-tag-top{bottom:calc(100% + 8px);left:50%;transform:translate(-50%) rotate(var(--mood-tag-rot, 0deg));text-align:center}.mood-tag-bottom{top:calc(100% + 8px);left:50%;transform:translate(-50%) rotate(var(--mood-tag-rot, 0deg));text-align:center}@media (prefers-reduced-motion: reduce){.mood-item{transition:none}}.contrib{--contrib-cell: 11px;--contrib-gap: 3px}.contrib-grid{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;margin:0 -12px;padding:0 12px 2px}.contrib-grid::-webkit-scrollbar{display:none}.contrib-months{display:flex;gap:var(--contrib-gap);margin-bottom:6px;width:-moz-max-content;width:max-content}.contrib-month{width:var(--contrib-cell);font-family:Geist Mono,ui-monospace,monospace;font-size:.6rem;letter-spacing:.04em;color:var(--muted);white-space:nowrap;overflow:visible}.contrib-weeks{display:flex;gap:var(--contrib-gap);width:-moz-max-content;width:max-content}.contrib-week{display:flex;flex-direction:column;gap:var(--contrib-gap);opacity:0;transform:scale(.5)}.contrib-day{width:var(--contrib-cell);height:var(--contrib-cell);border-radius:2px;background:var(--contrib-l0)}.contrib.is-inview .contrib-week{animation:contrib-wave .3s cubic-bezier(.34,1.26,.64,1) forwards;animation-delay:calc(var(--wi) * 12ms)}@keyframes contrib-wave{to{opacity:1;transform:scale(1)}}.contrib-day[data-level="1"]{background:var(--contrib-l1)}.contrib-day[data-level="2"]{background:var(--contrib-l2)}.contrib-day[data-level="3"]{background:var(--contrib-l3)}.contrib-day[data-level="4"]{background:var(--contrib-l4)}.contrib-footer{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-top:16px}.contrib-total{font-size:.82rem}.contrib-count{display:inline-block;text-align:right;font-variant-numeric:tabular-nums}.contrib-link{color:var(--muted);font-size:.82rem}.contrib-link:hover{color:var(--accent)}.colophon-text{margin:0;max-width:44ch;line-height:1.85;color:var(--muted);font-size:inherit}.local-time{margin:0;color:var(--muted);font-size:.78rem;line-height:1.85}.site-footer:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--rule)}.site-footer{position:relative;margin-top:64px;padding-top:36px;display:grid;grid-template-columns:1fr auto;-moz-column-gap:24px;column-gap:24px;row-gap:44px;align-items:end;color:var(--muted);font-size:.8125rem}.site-footer .colophon-text{grid-column:1 / -1;grid-row:1;font-size:.875rem}.footer-copy,.footer-meta{grid-row:2}.footer-copy,.footer-meta{font-family:var(--font-sans);letter-spacing:.01em;line-height:1.5}.footer-meta{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.footer-commit{display:inline-flex;align-items:center;align-self:flex-end;gap:5px;color:inherit;letter-spacing:.02em;font-size:inherit}.footer-commit:hover{color:var(--accent)}.footer-commit-icon{opacity:.7;flex:none}.footer-commit:hover .footer-commit-icon{opacity:1}}@media (max-width: 1199px){.nav-toggle,.mobile-nav{display:block}.header-brand{font-family:var(--font-sans);font-size:.8125rem;font-weight:500;letter-spacing:normal}.site-header.is-menu-open{min-height:47px}.site-header.is-menu-open:not(.is-stuck){--bar-top: 44px}.site-header.is-menu-open .site-header-bar{position:fixed;top:var(--bar-top, 0px);left:0;right:0;padding:12px max(24px,calc((100% - 592px)/2));background-color:var(--bg)}}@media (max-width: 680px){.site-header.is-stuck:before,.section-label:before{background:none}.site-header.is-stuck{background-color:var(--bg);box-shadow:0 -100px 0 100px var(--bg)}.section-label.is-stuck{background-color:var(--bg)}.section-label{margin-inline:calc(50% - 50vw);padding-inline:calc(50vw - 50%)}:root{--section-label-top: 46px;--header-offset: 60px}.hero-contact-item{display:block}.hero-contact-item+.hero-contact-item{margin-top:12px}.hero-contact-item+.hero-contact-item:before{content:none}.stack-groups{padding:26px 0 0;gap:32px}.stack-grid{gap:6px}.tech-item.is-labelled{padding:5px 10px 5px 8px;gap:6px}.tech-label{font-size:.72rem}.experience-row{padding-top:16px!important;padding-bottom:16px!important}.row-line{flex-wrap:wrap;gap:2px!important}.experience-period,.work-year{flex-basis:100%;order:-1;width:auto!important;margin-bottom:0}.row-leader{display:none}.experience-body,.work-body{flex:1;min-width:0}.experience-title{display:block;white-space:normal!important;line-height:1.35}.work-row{padding-top:16px!important;padding-bottom:16px!important}.work-title{display:block;white-space:normal!important;line-height:1.35}.showcase-scene{--showcase-card-width: 220px;height:320px;min-height:320px}.showcase-placeholder{padding:34px 28px}.showcase-mobile{margin-top:40px;margin-bottom:12px}.showcase-track{--showcase-peek: 6px;display:flex;gap:14px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 -24px;padding:0 24px;scroll-padding:0 24px}.showcase-track::-webkit-scrollbar{display:none}.showcase-frame{position:relative;flex:0 0 calc(100% - 2 * (var(--showcase-peek) + 14px));scroll-snap-align:center;scroll-snap-stop:always;border-radius:8px;overflow:hidden;box-shadow:0 0 0 1px var(--border);background:#151515}.showcase-frame img,.showcase-frame video,.showcase-frame .showcase-placeholder{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}}@media (pointer: fine){.showcase-track{cursor:grab}.showcase-track.is-dragging{cursor:grabbing;scroll-snap-type:none}}.showcase-dot{position:relative;width:24px;height:24px;padding:0;border:0;background:none;cursor:pointer}.showcase-dot:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:7px;height:7px;border-radius:50%;background:var(--border)}.carousel-dots-row{display:flex;justify-content:center;margin-top:16px}.carousel-dots{position:relative;display:inline-flex;gap:8px}.carousel-dots-pill{position:absolute;top:50%;left:3px;width:18px;height:7px;border-radius:4px;background:var(--text);pointer-events:none;transition:transform .28s cubic-bezier(.65,0,.35,1)}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}.reveal,.reveal-item,.dim-group .row{opacity:1;transform:none}.experience-note-wrap{grid-template-rows:1fr}.experience-note-wrap>.experience-note{opacity:0}.experience-row:hover .experience-note-wrap>.experience-note,.experience-row:focus-within .experience-note-wrap>.experience-note{opacity:1}.work-desc-wrap{grid-template-rows:1fr}.work-desc-wrap>.work-desc{opacity:0}.work-row:hover .work-desc-wrap>.work-desc,.work-row:focus-within .work-desc-wrap>.work-desc,.work-row.is-linked .work-desc-wrap>.work-desc{opacity:1}.contrib-week{opacity:1;transform:none}a:active,button:active{scale:none}}.theme-switch{display:block;position:relative;flex:none;margin-left:16px;margin-right:4px;padding:0;border:0;background:none;color:var(--muted);line-height:0;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:color .18s ease}.theme-switch:after{content:"";position:absolute;top:-16px;right:-4px;bottom:-16px;left:-28px}.theme-switch:active{scale:none}.theme-switch:hover{color:var(--text)}.theme-switch-circle{display:block;transition:transform .28s cubic-bezier(.4,0,.2,1)}.theme-switch[aria-checked=true] .theme-switch-circle{transform:rotate(180deg)}.theme-switch:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media (min-width: 1200px){:root{--sidebar-lane: 168px;--bleed: calc(100vw - var(--sidebar-lane));--section-label-top: 16px;--header-offset: 36px}.app-main{margin-left:calc(var(--sidebar-lane) + (100% - var(--sidebar-lane) - 640px) / 2)}.site-header{position:fixed;top:0;bottom:0;left:0;width:var(--sidebar-lane);margin:0;padding:56px 24px 16px 28px;border-bottom:0;font-family:var(--font-sans);font-size:.8125rem;letter-spacing:normal}.site-header:before{content:none}.site-header:after{content:"";position:absolute;top:0;bottom:0;right:0;width:1px;pointer-events:none;background:linear-gradient(to bottom,transparent 0%,var(--border) 18%,var(--border) 82%,transparent 100%)}.site-header-bar{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:32px;height:100%}.header-brand{margin-right:0;font-size:.8125rem;font-weight:500}.header-brand-mark{width:.6em;height:.6em;margin-right:.4em;flex-shrink:0;transform:translateY(.09em)}.header-brand-avatar{flex-shrink:0;width:22px;height:22px;margin-right:8px;padding:1px;background:#fff;border-radius:50%;animation:header-avatar-in .5s cubic-bezier(.22,.61,.36,1) both}.header-brand-avatar img{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;border-radius:50%}@keyframes header-avatar-in{0%{width:0;margin-right:0;padding:0;opacity:0;transform:translate(-12px)}}@media (prefers-reduced-motion: reduce){.header-brand-avatar{animation:none}}.header-nav{position:relative;flex-direction:column;align-items:flex-start;gap:0}.header-nav-link{min-height:0;margin:0;padding:5px 0;font-size:.8125rem}.header-nav-link.is-group-start{margin-top:18px}.header-nav-link[aria-current]{color:var(--accent)}.header-nav-index{width:14px;height:14px;flex:none;margin-right:12px;opacity:.5;transition:opacity .15s ease}.header-nav-link:hover .header-nav-index,.header-nav-link[aria-current] .header-nav-index{opacity:1}.header-nav-marker{position:absolute;top:0;left:-16px;width:1px;background:var(--accent);opacity:0;pointer-events:none;transition:transform .35s cubic-bezier(.22,1,.36,1),height .35s cubic-bezier(.22,1,.36,1),opacity .2s ease}.header-nav-marker.is-visible{opacity:1}@media (prefers-reduced-motion: reduce){.header-nav-marker{transition:none}}.header-foot{display:flex;flex-direction:column;align-items:flex-start;margin-top:auto;color:var(--muted)}.header-foot .header-nav-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.header-foot .theme-switch{display:inline-flex;margin:0;font:inherit;line-height:inherit}.header-foot .theme-switch:after{content:none}.header-foot .theme-switch-circle{width:14px;height:14px;margin-right:12px;opacity:.5;transition:transform .28s cubic-bezier(.4,0,.2,1),opacity .15s ease}.header-foot .theme-switch:hover .theme-switch-circle{opacity:1}}
