:root{color-scheme:dark;--color-bg-primary: #040405;--color-bg-secondary: #000;--color-surface-elevated: #111216;--color-surface-mid: #292b34;--color-surface-light: #666871;--color-text-primary: #f2f2f7;--color-text-secondary: #9e9eab;--color-text-tertiary: #6b6b75;--color-border-default: #4a4a52;--color-border-subtle: #1f1f24;--color-accent-primary: #8c9eb8;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--space-16: 64px;--space-24: 96px;--space-32: 128px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 14px;--border-width: 1px;--container-max: 1320px;--page-padding: clamp(32px, 4.17vw, 60px);--grid-gutter: clamp(20px, 1.67vw, 24px);--section-compact: clamp(24px, 2.8vw, 40px);--section-standard: clamp(40px, 4.5vw, 64px);--section-chapter: clamp(56px, 6.7vw, 96px);--footer-separation: clamp(48px, 5.5vw, 80px);--header-height: 74px;--footer-height: 62px;--font-sans: Inter, "Noto Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--text-display: clamp(2.5rem, 5vw, 4.5rem);--text-h1: clamp(2rem, 3.35vw, 3rem);--text-h2: clamp(1.5rem, 2.25vw, 2rem);--text-h3: 1.25rem;--text-body-lg: 1.125rem;--text-body: 1rem;--text-caption: .875rem;--text-meta: .8125rem;--text-nav: .8125rem}*,*:before,*:after{box-sizing:border-box}html{background:var(--color-bg-primary);scroll-behavior:smooth}html::-webkit-scrollbar{width:6px;height:6px}html::-webkit-scrollbar-track{background:transparent}html::-webkit-scrollbar-thumb{background:var(--color-text-tertiary);border-radius:999px}html::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}html::-webkit-scrollbar-button{display:none;width:0;height:0}html::-webkit-scrollbar-corner{background:transparent}@supports not selector(::-webkit-scrollbar){html{scrollbar-width:thin;scrollbar-color:var(--color-text-tertiary) transparent}}body{margin:0;min-width:0;overflow-x:clip;background:var(--color-bg-primary);color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--text-body);line-height:1.65}body.menu-open{overflow:hidden}img,video{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{color:inherit;font:inherit}h1,h2,h3,p,dl,dd,figure,ul{margin:0}ul{padding:0;list-style:none}h1,h2,h3{font-weight:500}:focus-visible{outline:1px solid var(--color-text-primary);outline-offset:5px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:100;top:var(--space-4);left:var(--space-4);padding:var(--space-2) var(--space-3);transform:translateY(-200%);background:var(--color-text-primary);color:var(--color-bg-secondary)}.skip-link:focus{transform:none}.site-shell{min-height:100dvh;display:flex;flex-direction:column}main{flex:1}.container{width:min(calc(100% - (var(--page-padding) * 2)),var(--container-max));margin-inline:auto;min-width:0}.stack-lg{display:grid;gap:clamp(24px,2.2vw,32px)}.stack-xl{display:grid;gap:clamp(32px,3.35vw,48px)}.brand{font-size:var(--text-nav);font-weight:500;letter-spacing:.04em;white-space:nowrap}.site-header{position:sticky;z-index:40;top:0;height:var(--header-height);display:flex;align-items:center;isolation:isolate;background:transparent}.site-header:before{position:absolute;z-index:0;inset:0;background:linear-gradient(to bottom,rgba(4,4,5,.96) 0%,rgba(4,4,5,.78) 56%,rgba(4,4,5,.18) 88%,transparent 100%);content:"";opacity:1;pointer-events:none;transition:opacity .28s cubic-bezier(.22,1,.36,1)}.page-home .site-header{position:fixed;right:0;left:0}.page-home .site-header:before{bottom:-24px;background:linear-gradient(to bottom,rgba(0,0,0,.96) 0%,rgba(0,0,0,.84) 58%,rgba(0,0,0,.28) 84%,transparent 100%);opacity:var(--home-header-surface-opacity, 0);transition-duration:80ms}.header-layout{position:relative;z-index:1;display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.desktop-nav{display:flex;align-items:center;gap:clamp(16px,2vw,24px)}.desktop-nav a,.resume-link,.menu-trigger{color:var(--color-text-secondary);font-size:var(--text-nav);font-weight:500;letter-spacing:.04em;line-height:1.2}.desktop-nav a{position:relative;padding-bottom:7px;transition:color .22s ease}.desktop-nav a:after{position:absolute;right:0;bottom:1px;left:0;height:1px;background:currentColor;content:"";opacity:0;transform:scaleX(.35);transform-origin:center;transition:opacity .22s ease,transform .26s cubic-bezier(.16,1,.3,1)}.desktop-nav a:is(:hover,:focus-visible),.desktop-nav a[aria-current=page]{color:var(--color-text-primary)}.desktop-nav a:is(:hover,:focus-visible):after,.desktop-nav a[aria-current=page]:after{opacity:1;transform:scaleX(1)}.desktop-resume{justify-self:end}.menu-trigger{display:none;min-height:44px;justify-self:end;padding:var(--space-3) 0;border:0;background:none;text-decoration:underline;text-underline-offset:4px;cursor:pointer}.mobile-menu{position:fixed;z-index:50;inset:0;background:var(--color-bg-secondary)}.mobile-menu[hidden]{display:none}.mobile-menu-layout{display:flex;min-height:100dvh;flex-direction:column}.mobile-menu-top{height:52px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--color-border-subtle)}.menu-close{min-height:44px;padding:var(--space-3) 0;border:0;background:none;color:var(--color-text-secondary);font-size:var(--text-nav);cursor:pointer}.mobile-menu nav{display:grid;margin-block:auto}.mobile-menu nav a{padding-block:var(--space-3);color:var(--color-text-secondary);font-size:2rem;line-height:1.2}.mobile-menu nav a[aria-current=page]{color:var(--color-text-primary)}.site-footer{border-top:1px solid var(--color-border-subtle)}.footer-layout{min-height:62px;display:flex;align-items:center;justify-content:center;gap:var(--space-4)}.footer-layout p{color:var(--color-text-tertiary);font-size:.6875rem;letter-spacing:.02em;white-space:nowrap;text-align:center}.hero-section{position:relative;overflow:hidden;background:var(--color-bg-secondary)}.page-home .hero-section{position:sticky;z-index:0;top:0;background:transparent}.page-home .hero-artwork{height:100svh}.page-home .site-shell{isolation:isolate;background:#000}.page-home .site-shell:before{position:fixed;z-index:0;inset:0;background:linear-gradient(#0000000f,#00000024),url(/media/hero-dark-collage-test.jpg) center / cover no-repeat;content:"";pointer-events:none}.page-home .home-content-surface{position:relative;z-index:4;isolation:isolate;background:transparent}.page-home .home-content-surface:before{position:absolute;z-index:0;inset:0;background:linear-gradient(to bottom,#08090c1f,#08090c8f 120px,#08090c99);-webkit-backdrop-filter:blur(12px) saturate(.72) brightness(1.28);backdrop-filter:blur(12px) saturate(.72) brightness(1.28);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 96px);mask-image:linear-gradient(to bottom,transparent,#000 96px);content:"";pointer-events:none}.page-home .home-content-surface>.section{position:relative;z-index:1;background:transparent}.page-home .site-footer{position:relative;z-index:4;isolation:isolate;border-top-color:transparent;background:transparent}.page-home .site-footer:before{position:absolute;z-index:0;inset:-96px 0 0;background:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.18) 26%,rgba(0,0,0,.72) 68%,rgba(0,0,0,.985) 100%);-webkit-backdrop-filter:blur(12px) saturate(.72) brightness(1.12);backdrop-filter:blur(12px) saturate(.72) brightness(1.12);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.3) 28%,#000 64%);mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.3) 28%,#000 64%);content:"";pointer-events:none}.page-home .footer-layout{position:relative;z-index:1}.hero-artwork{position:relative;width:100%;max-width:none;height:calc(100svh - var(--header-height));min-height:0;padding-inline:0;overflow:hidden}.hero-artwork>img{position:absolute;z-index:0;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;opacity:.72;-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 4%,#000 96%,transparent 100%);mask-image:linear-gradient(to right,transparent 0%,#000 4%,#000 96%,transparent 100%)}.page-home .hero-artwork>img{display:none}.hero-stars{z-index:2!important;inset:0}.page-home .hero-stars,.page-home .hero-wordmark,.page-home .hero-spotlight{opacity:var(--home-hero-foreground-opacity, 1)}.hero-wordmark{position:absolute;z-index:3;top:44%;left:50%;width:min(44%,620px);text-align:center;transform:translate(-50%,-50%);pointer-events:none}.hero-wordmark-image{width:100%;mix-blend-mode:screen}.hero-wordmark p{margin-top:var(--space-3);color:var(--color-text-secondary);font-size:.75rem;font-weight:600;letter-spacing:.12em}.hero-spotlight{--spotlight-x: 50%;--spotlight-y: 50%;position:absolute;z-index:1;inset:0;background:#000;opacity:1;pointer-events:none;transition:opacity 255ms cubic-bezier(.22,1,.36,1);will-change:opacity}.hero-spotlight.has-pointer{background:radial-gradient(circle clamp(130px,14vw,230px) at var(--spotlight-x) var(--spotlight-y),transparent 0%,rgba(0,0,0,.06) 44%,rgba(0,0,0,.42) 64%,rgba(0,0,0,.9) 84%,#000 100%)}.hero-spotlight.is-revealing,.hero-spotlight.is-revealed{opacity:0}.hero-spotlight.is-revealed{visibility:hidden}.section{padding-block:var(--section-compact)}.section h2{font-size:var(--text-h2);line-height:1.2}.section--projects{padding-top:max(var(--section-standard),calc(var(--header-height) + var(--space-6)));padding-bottom:var(--footer-separation);background:var(--color-bg-secondary)}.section--capabilities{padding-block:var(--section-chapter) var(--footer-separation);background:var(--color-bg-secondary)}.projects-heading{display:flex;align-items:end;justify-content:space-between;gap:var(--space-8)}.project-filters{display:flex;align-items:center;gap:clamp(14px,1.65vw,24px);overflow-x:auto;scrollbar-width:none}.project-filters::-webkit-scrollbar{display:none}.project-filter{position:relative;min-height:36px;padding:0 0 8px;border:0;background:transparent;color:var(--color-text-tertiary);font-size:.6875rem;font-weight:600;letter-spacing:.08em;cursor:pointer}.project-filter:after{position:absolute;right:0;bottom:2px;left:0;height:1px;background:currentColor;content:"";opacity:0;transform:scaleX(.35);transition:opacity .18s ease,transform .18s ease}.project-filter:hover,.project-filter.is-active{color:var(--color-text-primary)}.project-filter.is-active:after{opacity:1;transform:scaleX(1)}.project-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,1.67vw,24px)}.project-card{container-type:inline-size}.project-card[hidden]{display:none}.project-card-link{display:block}.project-card-visual{position:relative;overflow:hidden;isolation:isolate;aspect-ratio:4 / 3}.project-card-visual:after{position:absolute;z-index:1;inset:38% 0 0;background:linear-gradient(to top,rgba(0,0,0,.94) 0%,rgba(0,0,0,.7) 35%,rgba(0,0,0,.24) 72%,transparent 100%);content:"";opacity:.9;pointer-events:none;transition:opacity .26s cubic-bezier(.16,1,.3,1)}.project-card .media{height:100%;aspect-ratio:auto;transition:transform .36s cubic-bezier(.16,1,.3,1),filter .26s ease}.project-card-copy{position:absolute;z-index:2;right:0;bottom:0;left:0;display:grid;gap:var(--space-1);min-width:0;padding:clamp(14px,1.25vw,18px);text-shadow:0 2px 12px rgba(0,0,0,.82)}.project-card-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-4);align-items:end;min-width:0}.project-card h3{color:#f2f2f7e0;font-size:var(--text-h3);line-height:1.08;overflow-wrap:normal;word-break:keep-all;transition:color .22s ease}.project-card p{color:var(--color-text-secondary);font-size:var(--text-meta);line-height:1.3;transition:color .22s ease}.project-card-summary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-card-meta{justify-self:end;white-space:nowrap;text-align:right}.project-card-arrow{position:absolute;z-index:3;top:clamp(12px,1.2vw,18px);right:clamp(12px,1.2vw,18px);display:grid;width:28px;height:28px;place-items:center;color:var(--color-text-primary);opacity:.48;filter:drop-shadow(0 2px 8px rgba(0,0,0,.72));transition:opacity .18s ease}.project-card-arrow svg{width:18px;height:18px;overflow:visible;fill:none;stroke:currentColor;stroke-linecap:square;stroke-linejoin:miter;stroke-width:1.2;transition:transform .26s cubic-bezier(.16,1,.3,1)}.project-card-link:is(:hover,:focus-visible) .media{transform:scale(1.025);filter:brightness(1.05)}.project-card-link:is(:hover,:focus-visible) .project-card-visual:after{opacity:.88}.project-card-link:is(:hover,:focus-visible) .project-card-arrow{opacity:1}.project-card-link:is(:hover,:focus-visible) .project-card-arrow svg{transform:translate(2px) rotate(45deg)}.project-card-link:is(:hover,:focus-visible) .project-card-copy h3{color:var(--color-text-primary)}.project-card-link:is(:hover,:focus-visible) .project-card-copy p{color:#f2f2f7d1}.project-filter-empty{color:var(--color-text-secondary);font-size:var(--text-caption)}.capabilities-layout{display:grid;gap:clamp(32px,3.2vw,44px)}.capabilities-heading{text-align:center}.capabilities-heading h2{max-width:none;font-size:clamp(2.25rem,3vw,3.25rem);font-weight:400;line-height:.92;letter-spacing:-.035em}.capability-index{border-top:0}.capability-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,34%) minmax(0,1fr);column-gap:var(--grid-gutter);row-gap:0;align-items:center;min-height:clamp(84px,7.5vw,112px);padding:clamp(18px,1.8vw,26px) clamp(14px,1.5vw,22px);border-bottom:1px solid rgba(158,158,171,.18);outline:none;transition:border-color .22s ease}.capability-row-left{display:grid;grid-template-columns:20px minmax(0,1fr);gap:clamp(10px,.8vw,14px);min-width:0}.capability-row-number{margin-top:.42em;color:var(--color-text-tertiary);font-size:.6875rem;font-weight:600;letter-spacing:.08em;font-variant-numeric:tabular-nums}.capability-row h3{color:var(--color-text-primary);font-size:clamp(1.5rem,1.8vw,2.125rem);font-weight:400;line-height:1;letter-spacing:-.025em;white-space:nowrap}.capability-row-description-wrap{display:grid;grid-column:1 / -1;grid-template-rows:0fr;min-width:0;overflow:hidden;transition:grid-template-rows .42s cubic-bezier(.16,1,.3,1)}.capability-row-description{min-height:0;max-width:none;margin-left:calc(20px + clamp(10px,.8vw,14px));padding-top:var(--space-4);overflow:hidden;color:var(--color-text-secondary);font-size:.8125rem;line-height:1.65;opacity:0;transform:translateY(8px);transition:opacity .22s ease,transform .42s cubic-bezier(.16,1,.3,1)}.capability-row-scope,.capability-row-tools{color:#bcbcc7c7;font-size:.75rem;line-height:1.45;transition:color .24s ease}.capability-row-scope{justify-self:center;text-align:center}.capability-row-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:clamp(12px,1.1vw,18px);justify-self:end;list-style:none;text-align:center}.capability-tool{display:grid;min-width:50px;justify-items:center;gap:5px}.capability-tool-icon{display:grid;width:30px;height:30px;place-items:center;color:#bcbcc7c2}.capability-tool-icon img{width:26px;height:26px;object-fit:contain;filter:grayscale(1);opacity:.72;transition:filter .22s ease,opacity .22s ease}.capability-tool-icon img[src*=cinema4d],.capability-tool-icon img[src*=octane],.capability-tool-icon img[src*=openai]{filter:brightness(0) invert(.64)}.capability-tool-icon img[src*=jimeng]{mix-blend-mode:screen}.capability-tool-icon>span{display:grid;width:26px;height:26px;place-items:center;color:#bcbcc7cc;font-size:.8125rem;font-weight:600;letter-spacing:-.015em;line-height:1}.capability-tool-label{color:#bcbcc7ad;font-size:.625rem;line-height:1.15;white-space:nowrap;transition:color .22s ease}@media(hover:hover)and (pointer:fine){.capability-row:is(:hover,:focus-visible){border-color:#9e9eab47}.capability-row:is(:hover,:focus-visible) .capability-row-description-wrap{grid-template-rows:1fr}.capability-row:is(:hover,:focus-visible) .capability-row-description{opacity:1;transform:translateY(0)}.capability-row:is(:hover,:focus-within) .capability-row-scope,.capability-row:is(:hover,:focus-within) .capability-row-tools{color:#f2f2f7d1}.capability-row:is(:hover,:focus-within) .capability-tool-icon img{opacity:.9}.capability-row:is(:hover,:focus-within) .capability-tool-icon img[src*=cinema4d],.capability-row:is(:hover,:focus-within) .capability-tool-icon img[src*=octane],.capability-row:is(:hover,:focus-within) .capability-tool-icon img[src*=openai]{filter:brightness(0) invert(.88);opacity:1}.capability-row:is(:hover,:focus-within) .capability-tool-icon>span{color:#f2f2f7e6}.capability-row:is(:hover,:focus-within) .capability-tool-label{color:#f2f2f7c2}}.media{width:100%;overflow:hidden;aspect-ratio:var(--media-ratio);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);background:var(--color-surface-mid)}.media--light{background:var(--color-surface-light)}.media--dark{background:var(--color-surface-elevated)}.media>img,.media>video{width:100%;height:100%;object-fit:cover}.media--portrait{width:min(440px,100%);margin-inline:auto}.media>video:fullscreen,.media>video:-webkit-full-screen{width:100%;height:100%;object-fit:contain;background:#000}@media(min-width:768px){.project-intro .media--detail,.detail-media .media--detail{position:relative;width:min(100%,1120px,calc((100dvh - 160px) * var(--media-ratio-number)));margin-inline:auto}.project-intro .media--detail.media--portrait,.detail-media .media--detail.media--portrait{width:min(100%,560px,calc((100dvh - 160px) * var(--media-ratio-number)))}.media--detail>img,.media--detail>video{object-fit:contain}.detail-gallery-grid .media--detail{aspect-ratio:4 / 3}.media-zoom{position:absolute;right:12px;bottom:12px;z-index:1;padding:8px 12px;border:1px solid rgba(242,242,247,.42);border-radius:4px;background:#08080ad1;color:var(--color-text-primary);font:inherit;font-size:12px;cursor:pointer}.media-zoom:is(:hover,:focus-visible){background:#19191ef5}}.media-lightbox{width:min(92vw,1100px);max-width:92vw;max-height:90dvh;padding:16px;overflow:auto;border:1px solid var(--color-border-default);border-radius:8px;background:#09090b;color:var(--color-text-primary)}.media-lightbox::backdrop{background:#000000e0}.media-lightbox img{display:block;width:100%;height:auto;max-width:none;object-fit:contain}.media-lightbox-close{position:sticky;top:0;z-index:2;display:block;margin:0 0 12px auto;padding:8px 12px;border:1px solid var(--color-border-default);border-radius:4px;background:#17171b;color:inherit;font:inherit;cursor:pointer}@media(max-width:767px){.media-zoom,.media-lightbox{display:none}}.about-intro-layout{position:relative;min-height:clamp(340px,31vw,446px);display:flex;align-items:center;overflow:hidden}.about-copy{position:relative;z-index:1;display:grid;gap:clamp(32px,4.45vw,64px);width:min(55%,660px)}.about-copy h1{font-size:clamp(3.5rem,4.45vw,4rem);line-height:.98;letter-spacing:-.01em}.about-copy p{color:var(--color-text-secondary);font-size:var(--text-body-lg);line-height:1.65}.wireframe{position:absolute;right:2%;top:50%;width:34%;aspect-ratio:1.5;transform:translateY(-50%) rotate(-8deg);opacity:.75}.wireframe:before,.wireframe:after,.wireframe span{content:"";position:absolute;inset:15% 10%;border:1px solid var(--color-text-secondary);transform:skew(-24deg) rotate(var(--rotate, 0deg));transform-origin:center}.wireframe:after{--rotate: 28deg;inset:24% 20%}.wireframe span:nth-child(1){--rotate: 8deg;inset:20% 15%}.wireframe span:nth-child(2){--rotate: 16deg;inset:25% 20%}.wireframe span:nth-child(3){--rotate: 24deg;inset:30% 25%}.wireframe span:nth-child(4){--rotate: 32deg;inset:35% 30%}.wireframe span:nth-child(5){--rotate: 40deg;inset:40% 35%}.about-columns-layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--grid-gutter);padding-block:var(--section-standard)}.about-columns-layout--single{grid-template-columns:minmax(0,760px);padding-bottom:var(--footer-separation)}.about-column{display:grid;align-content:start;gap:clamp(24px,2.2vw,32px);min-width:0}.about-column h2{font-size:var(--text-caption);line-height:1.2}.experience-list,.capability-list{display:grid;gap:var(--space-3)}.experience-item{display:grid;grid-template-columns:165px minmax(0,1fr);gap:var(--space-6);align-items:start}.experience-item span,.capability-list dt{color:var(--color-text-secondary);font-size:var(--text-meta);line-height:1.35}.experience-item p,.capability-list dd{color:var(--color-text-primary);font-size:var(--text-caption);line-height:1.35}.capability-list>div{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--space-6)}.tools-section{padding-block:var(--section-standard) var(--footer-separation)}.tools-layout{display:grid;grid-template-columns:minmax(140px,165px) minmax(0,1fr);gap:clamp(24px,3.35vw,48px);align-items:start}.tools-layout h2{font-size:var(--text-h3);line-height:1.15}.tools-list{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-3);color:var(--color-text-secondary);font-size:var(--text-caption);line-height:1.4}.tools-list li:not(:last-child):after{content:"·";margin-left:var(--space-3);color:var(--color-text-tertiary)}.site-shell>main:has(>.contact-section){display:flex}.contact-section{position:relative;min-height:clamp(420px,calc(100svh - var(--header-height) - var(--footer-height)),680px);display:flex;flex:1;align-items:center;overflow:hidden}.contact-rule{position:absolute;left:50%;top:50%;width:min(calc(100% - (var(--page-padding) * 2)),var(--container-max));height:1px;transform:translate(-50%,-50%);background:var(--color-border-subtle)}.contact-orb{position:absolute;top:25px;left:calc(50% + 64px);width:500px;aspect-ratio:1;border:2px solid #252832;border-radius:50%;opacity:.8}.contact-layout{position:relative;z-index:1}.email-link{display:flex;width:max-content;max-width:100%;align-items:center;gap:var(--space-8);margin-left:336px;padding-block:var(--space-3);font-size:var(--text-h1);line-height:1.2}.mail-icon{width:64px;height:auto;flex:0 0 auto;fill:none;stroke:currentColor;stroke-linecap:square;stroke-linejoin:miter;stroke-width:4}.mail-icon rect,.mail-icon path{vector-effect:non-scaling-stroke}.project-intro{padding-block:var(--section-compact) 0}.back-link{display:grid;width:44px;height:44px;padding:0;place-items:center;border:1px solid var(--color-border-default);border-radius:50%;background:transparent;color:inherit;font-size:1.4rem;line-height:1;cursor:pointer}.project-intro-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(220px,1fr);gap:var(--grid-gutter)}.project-title-block{display:grid;align-content:start;gap:var(--space-4)}.project-title-block h1{font-size:var(--text-display);line-height:1;letter-spacing:-.02em}.project-title-block p{max-width:68ch;color:var(--color-text-secondary)}.project-meta{display:grid;align-content:start;gap:var(--space-6)}.project-meta div{display:grid;gap:var(--space-1)}.project-meta dt{color:var(--color-text-secondary);font-size:var(--text-meta);letter-spacing:.04em}.project-meta dd{font-size:var(--text-meta)}.project-media-section{padding-block:var(--section-standard)}.project-media-flow{display:grid;gap:var(--section-standard)}.media--narrow{width:min(860px,100%);justify-self:center}.project-navigation-section{padding-block:var(--section-standard) var(--section-compact)}.project-navigation{display:flex;align-items:start;justify-content:space-between;border-top:1px solid var(--color-border-subtle)}.project-navigation a{display:inline-flex;align-items:center;gap:var(--space-4);padding-block:var(--space-8);color:var(--color-text-secondary);font-size:var(--text-meta)}@media(min-width:1024px){.project-intro .stack-xl{gap:36px}.project-intro-grid{grid-template-columns:minmax(0,2fr) minmax(220px,1fr)}.project-title-block{gap:12px}.project-title-block h1{font-size:clamp(2.75rem,4.2vw,3.75rem);line-height:1.05}.project-title-block p{max-width:52ch;line-height:1.55}.project-meta{gap:16px}.project-meta dt{font-size:11px;line-height:1.3}.project-meta dd{font-size:14px;line-height:1.45}}@media(max-width:1199px){:root{--container-max: 960px;--page-padding: clamp(24px, 3.125vw, 32px);--grid-gutter: clamp(16px, 1.95vw, 20px)}.hero-wordmark{left:50%;width:min(52%,520px)}.contact-orb{left:calc(50% + 38px);width:360px;top:40px}.email-link{margin-left:clamp(0px,20.5vw,210px);font-size:clamp(2rem,3.5vw,2.5rem)}.mail-icon{width:52px;stroke-width:3}.about-copy h1{font-size:3.5rem}.experience-item{grid-template-columns:140px minmax(0,1fr)}.capability-list>div{grid-template-columns:170px minmax(0,1fr)}}@media(min-width:768px)and (max-width:959px){.project-grid{width:100%;grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:767px){:root{--container-max: 100%;--page-padding: clamp(16px, 6.15vw, 24px);--grid-gutter: 16px;--section-compact: clamp(20px, 6.15vw, 24px);--section-standard: clamp(32px, 10.25vw, 40px);--section-chapter: clamp(40px, 12.3vw, 48px);--footer-separation: clamp(40px, 12.3vw, 48px);--header-height: 52px;--footer-height: 32px}.desktop-nav,.desktop-resume{display:none}.header-layout{display:flex;justify-content:space-between}.menu-trigger{display:block}.footer-layout{min-height:32px}.footer-layout p{font-size:.55rem}.page-home .site-footer:before{inset-block-start:-64px}.hero-artwork{width:100%;height:275px;min-height:0}.hero-artwork>img{top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:42% center;opacity:.68}.hero-stars{opacity:.58;pointer-events:none!important;touch-action:pan-y!important}.hero-wordmark{top:30px;right:-5%;left:auto;width:min(110%,500px);text-align:right;transform:none}.hero-wordmark p{font-size:.56rem}.section{padding-block:var(--section-compact)}.projects-heading{display:grid;align-items:start;gap:var(--space-4)}.project-filters{width:calc(100vw - (var(--page-padding) * 2));justify-content:flex-start}.section--projects{padding-top:calc(var(--header-height) + var(--space-6))}.project-grid{width:100%;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--space-4);row-gap:var(--space-6)}.project-card-copy{gap:var(--space-1);padding:12px}.project-card-footer{gap:var(--space-2)}.project-card h3{font-size:clamp(.875rem,4.1vw,1rem)}.project-card p{font-size:.625rem}.project-card-arrow{top:8px;right:8px;width:26px;height:26px}.project-card-arrow svg{width:16px;height:16px}.capabilities-layout{gap:clamp(22px,6vw,32px)}.capabilities-heading h2{font-size:clamp(1.875rem,7vw,2.25rem)}.capability-row{grid-template-columns:1fr;gap:10px;min-height:0;padding:clamp(20px,5.5vw,26px) 4px;cursor:pointer}.capability-row-left{grid-template-columns:22px minmax(0,1fr) auto;gap:12px;align-items:center}.capability-row-left:after{content:"+";align-self:center;color:var(--color-text-tertiary);font-size:1rem;font-weight:400;line-height:1;transition:color .22s ease,transform .32s cubic-bezier(.16,1,.3,1)}.capability-row-number{margin-top:0}.capability-row h3{font-size:clamp(1.25rem,5.6vw,1.625rem);line-height:1.05;white-space:normal}.capability-row-description-wrap{grid-column:1;grid-template-rows:0fr;order:1}.capability-row-description{max-width:34ch;margin-left:34px;padding-top:2px;opacity:0;transform:translateY(6px)}.capability-row-scope,.capability-row-tools{margin-left:34px;padding-top:0;justify-self:start;text-align:left}.capability-row-scope{order:2;color:#bcbcc7ad}.capability-row-tools{order:3;justify-content:flex-start;gap:14px;padding-top:2px}.capability-tool{min-width:44px;justify-items:start;gap:4px}.capability-tool-icon{width:26px;height:26px}.capability-tool-icon img,.capability-tool-icon>span{width:23px;height:23px}.capability-row:is(:focus,:focus-within){border-color:#9e9eab4d}.capability-row:is(:focus,:focus-within) .capability-row-left:after{color:var(--color-text-primary);transform:rotate(45deg)}.capability-row:is(:focus,:focus-within) .capability-row-description-wrap{grid-template-rows:1fr}.capability-row:is(:focus,:focus-within) .capability-row-description{opacity:1;transform:translateY(0)}.capability-row:focus-visible{outline:1px solid rgba(242,242,247,.34);outline-offset:-1px}.about-intro-layout{min-height:clamp(280px,81.5vw,318px);align-items:start;padding-block:var(--section-standard)}.about-copy{gap:var(--space-8);width:100%}.about-copy h1{font-size:clamp(2rem,8.2vw,2.5rem);line-height:1}.about-copy p{font-size:var(--text-body);max-width:33ch}.wireframe{top:67px;right:-4%;width:57%;transform:rotate(-8deg);opacity:.34}.about-columns-layout{grid-template-columns:1fr;gap:var(--section-standard);padding-block:var(--section-standard)}.about-column{gap:var(--space-8)}.experience-list,.capability-list{gap:var(--space-4)}.experience-item,.capability-list>div{grid-template-columns:minmax(0,.95fr) minmax(0,1.55fr);gap:var(--space-4)}.experience-item span,.experience-item p,.capability-list dt,.capability-list dd{font-size:.75rem}.tools-layout{grid-template-columns:1fr;gap:var(--space-6)}.tools-list{gap:var(--space-2) var(--space-3)}.contact-section{min-height:clamp(420px,calc(100svh - var(--header-height) - var(--footer-height)),600px);align-items:center}.contact-rule{width:calc(100% - (var(--page-padding) * 2))}.contact-orb{top:120px;left:90px;width:260px}.email-link{gap:var(--space-4);margin-left:0;font-size:1.5rem;overflow-wrap:anywhere}.mail-icon{width:32px;stroke-width:2}.project-intro{padding-top:var(--space-3)}.stack-xl{gap:var(--space-8)}.project-intro-grid{grid-template-columns:1fr;gap:var(--space-6)}.project-title-block h1{font-size:2.5rem}.project-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6)}.project-media-section{padding-block:var(--section-standard)}.project-media-flow{gap:var(--section-standard)}.project-navigation-section{padding-top:var(--space-6)}.project-navigation{align-items:start}.project-navigation a{min-width:0;gap:var(--space-3);padding-block:var(--space-6);font-size:.65rem}}@media(max-width:479px){.project-grid{grid-template-columns:1fr}.project-card-summary{display:none}.project-card-footer{grid-template-columns:1fr;gap:var(--space-1)}.project-card-meta{justify-self:end}}@container (max-width: 300px){.project-card-footer{grid-template-columns:1fr;gap:var(--space-1)}.project-card-meta{justify-self:start;text-align:left}}@media(max-width:359px){:root{--page-padding: 16px}.footer-layout{align-items:center;padding-block:6px}.footer-layout p{white-space:nowrap;text-align:center;line-height:1.25}.experience-item,.capability-list>div{gap:var(--space-3)}.email-link{font-size:1.3rem}.contact-orb{left:52px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-spotlight{display:none}.capability-row h3,.capability-row-info p{transition:none}}@media(hover:none),(pointer:coarse){.hero-spotlight{display:none}}@media(max-width:767px){.hero-spotlight{display:none}}@media(max-width:767px){.hero-wordmark{right:3%!important;width:min(90%,500px)!important}}@media(min-width:1200px){.page-home .brand,.page-home .desktop-nav a,.page-home .resume-link{font-size:.75rem;font-weight:600;letter-spacing:.075em}.section--projects:before{content:"";position:absolute;z-index:2;top:0;left:50%;width:min(calc(100% - (var(--page-padding) * 2)),var(--container-max));height:1px;transform:translate(-50%);background:linear-gradient(90deg,transparent,rgba(158,158,171,.42) 18%,rgba(242,242,247,.7) 50%,rgba(158,158,171,.42) 82%,transparent)}.section--projects{position:relative;padding-top:clamp(96px,8vw,120px);padding-bottom:clamp(44px,4vw,60px)}.section--capabilities{position:relative;padding-top:clamp(44px,4vw,60px)}.capabilities-heading{width:100%}.section--projects .stack-lg{gap:clamp(32px,3.2vw,44px)}.section--projects h2{max-width:9ch;font-size:clamp(2.625rem,3vw,3.25rem);font-weight:400;line-height:.92;letter-spacing:-.035em}.projects-heading{align-items:baseline;padding-bottom:0}.project-filter{font-size:.75rem;font-weight:500;letter-spacing:.07em}.project-grid{column-gap:clamp(20px,2vw,28px);row-gap:clamp(24px,2vw,32px)}.project-card .media{border-color:#9e9eab57;border-radius:0}.project-card h3{font-size:clamp(1rem,1.1vw,1.125rem);font-weight:500;line-height:1.05;letter-spacing:-.01em}.project-card p{font-size:.75rem;font-weight:400;letter-spacing:.01em;line-height:1.35;text-transform:none}}@media(hover:none),(pointer:coarse){.project-card-visual:after{opacity:.72}.project-card h3{color:var(--color-text-primary)}.project-card p{color:#f2f2f7b8}.project-card-arrow{opacity:.68}}@media(prefers-reduced-motion:reduce){.project-card .media,.project-card-arrow svg{transition:none}.project-card-link:is(:hover,:focus-visible) .media{transform:none}}.capability-row-left{width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.capability-row.is-expanded .capability-row-description-wrap{grid-template-rows:1fr}.capability-row.is-expanded .capability-row-description{opacity:1;transform:translateY(0)}.capability-row-left:focus-visible{outline:1px solid rgba(242,242,247,.5);outline-offset:6px}@media(max-width:767px){.page-home .hero-section{position:relative}.page-home .site-shell:before{background-image:linear-gradient(to bottom,#00000014,#0003 48%,#000 78%),url(/media/hero-dark-collage-test.jpg);background-size:100% 100%,auto 540px;background-position:center,center -140px;background-repeat:no-repeat}.page-home .hero-artwork{height:auto;padding-top:calc(var(--header-height) + 14px)}.hero-wordmark{position:relative;top:auto;right:auto!important;left:auto;width:min(calc(100% - 40px),450px)!important;margin-inline:auto;text-align:center;transform:none}.hero-wordmark p{display:none}.section--projects{padding-top:4px;scroll-margin-top:var(--header-height)}.projects-heading{gap:var(--space-3)}.section--projects .stack-lg{gap:10px}.project-filters{gap:var(--space-2)}.project-filter{min-width:44px;min-height:44px;padding-inline:0;font-size:.75rem;text-align:left}.section--projects h2,.capabilities-heading h2{font-size:clamp(1.875rem,7vw,2.25rem);font-weight:400;line-height:1.05;letter-spacing:-.035em}.capability-row{gap:8px;padding-block:18px;cursor:default}.capability-row-left{min-height:44px}.capability-row h3{font-size:clamp(1.125rem,5vw,1.375rem)}.capability-row.is-expanded .capability-row-left:after{color:var(--color-text-primary);transform:rotate(45deg)}.capability-row:not(.is-expanded):focus-within .capability-row-description-wrap{grid-template-rows:0fr}.capability-row:not(.is-expanded):focus-within .capability-row-description{opacity:0;transform:translateY(6px)}.capability-row:not(.is-expanded):focus-within .capability-row-left:after{color:var(--color-text-tertiary);transform:none}}@media(max-width:479px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px;row-gap:20px}.project-card-visual{display:grid;align-content:start;gap:9px;overflow:visible;aspect-ratio:auto}.project-card-visual:after{display:none}.project-card .media{height:auto;aspect-ratio:4 / 3;border-radius:8px}.project-card-copy{position:static;padding:0;text-shadow:none}.project-card-footer{grid-template-columns:minmax(0,1fr);align-items:start;gap:4px}.project-card h3{font-size:clamp(.8125rem,3.7vw,.9375rem);line-height:1.2;overflow-wrap:anywhere}.project-card p{font-size:.6875rem;line-height:1.35}.project-card-meta{justify-self:start;white-space:normal;text-align:left}.project-card-arrow{display:none}}.capability-row-title{display:block;color:var(--color-text-primary);font-size:clamp(1.5rem,1.8vw,2.125rem);font-weight:400;line-height:1;letter-spacing:-.025em;white-space:nowrap}@media(max-width:767px){.capability-row-title{font-size:clamp(1.125rem,5vw,1.375rem);line-height:1.05;white-space:normal}}@media(max-width:767px){.page-home{--mobile-section-title: 1.296875rem;--mobile-item-title: 11px;--mobile-item-meta: 9px}.project-card h3{font-size:var(--mobile-item-title)}.project-card p{font-size:var(--mobile-item-meta)}.project-card .project-card-meta{font-size:8px}.section--projects h2,.capabilities-heading h2{font-size:var(--mobile-section-title);font-weight:400;line-height:1.2;letter-spacing:-.025em;text-align:left}.capabilities-heading,.capabilities-heading h2{text-align:center}.capabilities-heading h2{color:#9999a5;background:linear-gradient(to bottom,#b4b4bf,#797985);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-transform:uppercase;letter-spacing:.03em}.capabilities-layout{gap:16px}.projects-heading{position:sticky;z-index:5;top:var(--header-height);gap:12px;margin-inline:calc(-1 * var(--page-padding));padding-inline:var(--page-padding);isolation:isolate}.projects-heading:before{position:absolute;z-index:-1;inset:-8px 0 -12px;background:#050507e0;backdrop-filter:blur(10px);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 8px,#000 calc(100% - 12px),transparent);mask-image:linear-gradient(to bottom,transparent,#000 8px,#000 calc(100% - 12px),transparent);content:"";pointer-events:none}.section--projects #projects-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.project-filters{justify-content:center;gap:24px}.project-filter{display:flex;flex:0 0 auto;align-items:flex-start;min-width:0;padding:6px 0 0;font-size:10px;letter-spacing:.04em}.project-filter:after{bottom:12px}.capability-row{display:flex;flex-direction:column;align-items:stretch;gap:0;min-height:0;padding:8px 0 12px}.capability-row-left{order:0}.capability-row-scope{order:1}.capability-row-description-wrap{order:2}.capability-row-tools{order:3}.capability-row-number,.capability-tool-icon{display:none}.capability-row-left{grid-template-columns:minmax(0,1fr) 44px;gap:8px;min-height:44px;align-items:center}.capability-row-title{align-self:center;font-size:var(--mobile-item-title);font-weight:400;line-height:18px;letter-spacing:-.02em}.capability-row-left:after{display:grid;width:44px;height:44px;place-items:center;font-size:20px}.capability-row-scope{margin:-11px 0 0;color:var(--color-text-secondary);font-size:8px;line-height:16px;text-align:left}.capability-row-description-wrap,.capability-row-tools{display:none}.capability-row.is-expanded .capability-row-description-wrap{display:block}.capability-row.is-expanded .capability-row-description{max-width:none;margin:0;padding-top:12px;font-size:7.5px;line-height:1.6;opacity:1;transform:none;transition:none}.capability-row.is-expanded .capability-row-tools{display:flex;margin:10px 0 0;padding:0;gap:8px;justify-content:flex-start}.capability-tool{display:flex;min-width:0;gap:8px}.capability-tool:not(:last-child):after{content:"/";color:var(--color-text-tertiary);font-size:8px;line-height:1.5}.capability-tool-label{color:var(--color-text-secondary);font-size:8px;line-height:1.5;white-space:normal}.capability-row.is-expanded .capability-row-left:after{content:"−";transform:none;color:var(--color-text-primary)}.capability-row:not(.is-expanded) .capability-row-left:after{content:"+";transform:none}}@media(max-width:767px){.mobile-menu{background:#00000052;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:menu-backdrop-in .24s ease-out both}.mobile-menu-layout{width:min(80vw,340px);height:100dvh;min-height:0;margin:0 0 0 auto;padding:env(safe-area-inset-top) 24px max(24px,env(safe-area-inset-bottom));overflow-y:auto;background:var(--color-bg-primary);border-left:1px solid var(--color-border-subtle);animation:menu-drawer-in .32s cubic-bezier(.16,1,.3,1) both}.mobile-menu-top{min-height:64px;height:auto;gap:12px;flex-shrink:0;border-bottom:0}.mobile-menu-top .brand,.mobile-menu-top .menu-close{font-size:9px;letter-spacing:.04em;white-space:nowrap}.menu-close{min-height:44px}.mobile-menu nav{margin-block:32px auto;gap:4px}.mobile-menu nav a{font-size:13px;min-height:44px}.mobile-menu nav a[aria-current=page]{font-size:18px}@keyframes menu-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes menu-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}}@media(max-width:767px)and (prefers-reduced-motion:reduce){.mobile-menu,.mobile-menu-layout{animation:none}}@media(max-width:767px){.email-link{width:max-content;max-width:100%;gap:12px;margin-left:0;font-size:clamp(1rem,5vw,1.5rem);white-space:nowrap;overflow-wrap:normal;min-height:44px}.contact-layout .email-link{margin-inline:auto}.email-link>span{flex:0 0 auto}.email-link .mail-icon{width:24px;stroke-width:1.5}.email-link>span[aria-hidden]{font-size:20px;line-height:1}}@media(min-width:768px){.page-home .hero-wordmark{top:46%;width:min(35.2%,496px)}.page-home .hero-wordmark p{font-size:.6875rem}.page-home .section--projects h2,.page-home .capabilities-heading h2{font-size:clamp(2rem,2.4vw,2.6rem)}.page-home .capability-row-title,.page-home .capability-row h3{font-size:clamp(1.25rem,1.44vw,1.7rem)}.contact-layout .email-link{gap:clamp(16px,1.7vw,24px);margin-inline:auto;font-size:clamp(1.75rem,2.8vw,2.25rem)}.contact-layout .mail-icon{width:clamp(38px,3.3vw,44px);stroke-width:2.5}.contact-layout .email-link>span[aria-hidden]{font-size:.85em}}@media(min-width:768px){.project-card .media{border-radius:0}.project-card .media img,.project-card .media video{object-position:center}@container (max-width: 300px){.project-card h3{font-size:14px;line-height:1.1;font-weight:500;letter-spacing:-.01em}.project-card p{font-size:10px;line-height:1.35}.project-card-copy{padding:14px}.project-card-footer{gap:8px}}@container (min-width: 260px) and (max-width: 300px){.project-card-footer{grid-template-columns:minmax(0,1fr) auto}.project-card-meta{justify-self:end;text-align:right}}@container (max-width: 259px){.project-card-footer{grid-template-columns:1fr;gap:4px}.project-card-meta{justify-self:start;text-align:left}}}@media(max-width:767px){.project-intro .back-link{width:44px;height:44px;font-size:20px}.project-intro{padding-top:4px}.project-intro .stack-xl{gap:8px}.project-intro-grid{gap:20px;margin-bottom:16px}.project-title-block{gap:10px}.project-title-block h1{font-size:clamp(24px,6.7vw,28px);line-height:1.12}.project-title-block p{max-width:42ch;font-size:clamp(12px,3.3vw,13px);line-height:1.6}.project-meta{gap:16px 12px}.project-meta div:first-child{grid-column:1 / -1}.project-meta dt{font-size:clamp(10px,2.8vw,11px);line-height:1.3}.project-meta dd{font-size:clamp(11px,3.1vw,12px);line-height:1.5}}@media(max-width:767px){.site-header .brand,.site-header .menu-trigger{font-size:9px;letter-spacing:.04em}.site-footer .footer-layout p{font-size:6px;letter-spacing:.01em}.project-intro .back-link{position:relative;isolation:isolate;width:44px;height:44px;border:0;font-size:16px;background:transparent;box-shadow:none;backdrop-filter:none}.project-intro .back-link:before{content:"";position:absolute;inset:6px;z-index:-1;border:1px solid var(--color-border-default);border-radius:50%;background:#08080ae6}}
