@media (prefers-reduced-motion:no-preference){html:has(.home-v2-root){scroll-snap-type:y mandatory}}body:has(.home-v2-root){color:var(--page-ink);transition:color var(--dur-ink-flip) var(--ease-ink-flip) var(--delay-ink-flip)}body:has(.home-v2-root){--right-rail:var(--page-gutter-right)}@property --ground-lead{syntax:"<length>";inherits:true;initial-value:0}html:has(.home-v2-root){--project-max:42rem;--chapter-gap:clamp(var(--space-9), 11svh, var(--space-10));--fade-ramp:var(--space-8);--ground-lead:calc(var(--chapter-gap) + var(--fade-ramp));--fade-arrive:cover calc(50dvh - var(--chapter-gap) / 2 - var(--fade-ramp)) cover calc(50dvh - var(--chapter-gap) / 2 + var(--fade-ramp));--fade-leave:cover calc(100% - 50dvh + var(--chapter-gap) / 2 - var(--fade-ramp)) cover calc(100% - 50dvh + var(--chapter-gap) / 2 + var(--fade-ramp));--ruler-line-rest:1.5rem;--ruler-line-hover:2.25rem;--ruler-line-active:3.75rem;--ruler-line-weight:var(--hairline-width);--doorlist-ambient-blur:3.75rem;--doorlist-ambient-opacity:.92;--neuralyfe-ambient-blur:2.75rem;--neuralyfe-ambient-zoom:1.5;--phantom-ambient-blur:4.25rem;--phantom-ambient-zoom:1.6;--onramp-ambient-blur:5rem;--onramp-ambient-zoom:1.35;--onramp-ambient-opacity:.82;--onramp-ambient-wash-top:38%;--onramp-ambient-wash-bottom:48%}.ambient-backdrop{z-index:var(--z-base);pointer-events:none;position:fixed;inset:0;overflow:hidden}.ambient-copy{opacity:0;visibility:hidden;transition:opacity var(--dur-ambient) var(--ease-ambient);position:absolute;inset:0}.ambient-copy.is-mounted{visibility:visible;will-change:opacity}.ambient-copy.is-visible{opacity:1}.ambient-copy[data-ambient-theme=neutral]{background:var(--bg)}.ambient-copy[data-ambient-theme=play]{background:var(--surface)}.ambient-copy[data-ambient-theme=doorlist]{background:var(--doorlist-blue-deep);overflow:hidden}.ambient-copy[data-ambient-theme=doorlist]:before,.ambient-copy[data-ambient-theme=doorlist]:after{content:"";position:absolute;inset:0}.ambient-copy[data-ambient-theme=doorlist]:before{inset:calc(var(--doorlist-ambient-blur) * -1);filter:saturate(1.22)brightness(.94);opacity:var(--doorlist-ambient-opacity);background-image:url(/assets/doorlist-ambient.webp);background-position:50%;background-size:cover;transform:scale(1.08)}.ambient-copy[data-ambient-theme=doorlist]:after{background:linear-gradient(180deg, color-mix(in srgb, var(--doorlist-blue-deep) 28%, transparent), color-mix(in srgb, var(--doorlist-blue-bright) 14%, transparent)), color-mix(in srgb, var(--doorlist-blue-deep) 20%, transparent)}.home-save-data .ambient-copy[data-ambient-theme=doorlist]:before{background-image:none}.ambient-copy[data-ambient-theme=optimizely]{background:var(--onramp-mint);overflow:hidden}.ambient-copy[data-ambient-theme=optimizely] .ambient-video{inset:calc(var(--onramp-ambient-blur) * -1);width:calc(100% + (var(--onramp-ambient-blur) * 2));height:calc(100% + (var(--onramp-ambient-blur) * 2));object-position:center;transform:scale(var(--onramp-ambient-zoom));transform-origin:50%;filter:saturate(.9)brightness(1.04);opacity:var(--onramp-ambient-opacity)}.ambient-copy[data-ambient-theme=optimizely]:after{content:"";background:linear-gradient(180deg, color-mix(in srgb, var(--onramp-mint) var(--onramp-ambient-wash-top), transparent), color-mix(in srgb, var(--onramp-mint) var(--onramp-ambient-wash-bottom), transparent));position:absolute;inset:0}.ambient-copy[data-ambient-theme=neuralyfe],.ambient-copy[data-ambient-theme=phantom]{background:var(--backdrop-ink);overflow:hidden}.ambient-video{inset:calc(var(--neuralyfe-ambient-blur) * -1);width:calc(100% + (var(--neuralyfe-ambient-blur) * 2));height:calc(100% + (var(--neuralyfe-ambient-blur) * 2));object-fit:cover;object-position:43% 44%;filter:saturate(1.72)brightness(.88);transform:scale(var(--neuralyfe-ambient-zoom));transform-origin:43% 44%;position:absolute}.ambient-copy[data-ambient-theme=neuralyfe]:after{content:"";background:radial-gradient(circle at 68% 38%, color-mix(in srgb, var(--neuralyfe-coral) 46%, transparent), transparent 72%), radial-gradient(120% 86% at 50% 50%, transparent 30%, color-mix(in srgb, var(--backdrop-ink) 68%, transparent) 100%), linear-gradient(180deg, color-mix(in srgb, var(--neuralyfe-coral) 26%, transparent), color-mix(in srgb, var(--backdrop-ink) 30%, transparent));position:absolute;inset:0}.ambient-copy[data-ambient-theme=phantom] .ambient-video{inset:calc(var(--phantom-ambient-blur) * -1);width:calc(100% + (var(--phantom-ambient-blur) * 2));height:calc(100% + (var(--phantom-ambient-blur) * 2));object-position:center;filter:saturate(1.45)brightness(1.1)contrast(.62);transform:scale(var(--phantom-ambient-zoom));transform-origin:50%}.ambient-copy[data-ambient-theme=phantom]:after{content:"";background:radial-gradient(circle at 56% 46%, color-mix(in srgb, var(--surface) 26%, transparent), transparent 56%),  linear-gradient(to right, color-mix(in srgb, var(--backdrop-ink) 30%, transparent), transparent 42%), linear-gradient(180deg, transparent 46%, color-mix(in srgb, var(--backdrop-ink) 26%, transparent)),  linear-gradient(color-mix(in srgb, var(--surface) 10%, transparent), color-mix(in srgb, var(--surface) 10%, transparent));position:absolute;inset:0}#intro,#neuralyfe,#phantom,#doorlist,#optimizely,#play,#about,#resume,#contact{scroll-snap-align:center}#intro{scroll-snap-align:start}.shell-content:has(.home-v2-root)>.shell-footer-narrow{display:none}.home-chapters{z-index:var(--z-base);isolation:isolate;gap:var(--chapter-gap);flex-direction:column;padding-block-end:max(0px, calc(50dvh - var(--tail-half,0px)));display:flex;position:relative}.chapter--hero{place-items:center;min-height:80svh;padding-block-start:20svh;display:grid}.hero-copy{text-align:center;width:min(100%,52rem);margin-inline:auto}.hero-title{max-width:20ch;color:var(--ink);font-size:clamp(2.5rem, 4.8vw, var(--text-display-size));font-weight:var(--weight-hero);letter-spacing:-.06em;text-wrap:balance;margin:0 auto;line-height:.98}.claim-accent{font-family:"Bodoni 72",Didot,Times New Roman,serif;font-size:1.3em;font-style:italic;font-weight:var(--weight-medium);letter-spacing:-.035em;white-space:nowrap;display:inline-block}.hero-support{max-width:50rem;margin:var(--space-4) auto 0;color:var(--page-muted);font-size:clamp(1rem,1.45vw,1.25rem);font-weight:var(--weight-light);text-wrap:balance;transition:color var(--dur-ink-flip) var(--ease-ink-flip) var(--delay-ink-flip);line-height:1.48}.hero-affiliation{margin:var(--space-5) auto 0;color:var(--page-muted);font-size:var(--text-ui-size);line-height:var(--text-ui-lh);letter-spacing:var(--text-ui-ls);font-weight:var(--weight-light);align-items:center;gap:.45em;display:inline-flex}.hero-affiliation-name{color:var(--page-ink);font-weight:var(--weight-medium)}.hero-affiliation-chip{border-radius:var(--radius-sm);object-fit:contain;width:1.125rem;height:1.125rem}.project{width:min(100%, var(--project-max));margin-inline:auto;container:card/inline-size}.project-link{color:inherit;text-decoration:none;display:block}.project-link:focus-visible{outline:var(--focus-ring);outline-offset:var(--space-2);border-radius:var(--radius-lg)}@keyframes section-arrive{0%{opacity:0}12.5%{opacity:.0086}25%{opacity:.0452}37.5%{opacity:.1808}50%{opacity:.5}62.5%{opacity:.8192}75%{opacity:.9548}87.5%{opacity:.9914}to{opacity:1}}@keyframes section-leave{0%{opacity:1}12.5%{opacity:.9914}25%{opacity:.9548}37.5%{opacity:.8192}50%{opacity:.5}62.5%{opacity:.1808}75%{opacity:.0452}87.5%{opacity:.0086}to{opacity:0}}@keyframes hero-lift{0%{transform:translate(0,0)}to{transform:translate3d(0, calc(-1 * var(--hero-lift)), 0)}}.home-chapters .is-faded-out{pointer-events:none}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.project,#about,.resume,.contact{animation:linear backwards section-arrive,linear forwards section-leave;animation-timeline:view(),view();animation-range:var(--fade-arrive), var(--fade-leave)}.chapter--hero+.chapter .project{animation:linear forwards section-leave;animation-timeline:view();animation-range:var(--fade-leave)}.hero-copy{--hero-lift:var(--space-9);animation:linear forwards section-leave,linear forwards hero-lift;animation-timeline:view(),view();animation-range:var(--fade-leave), var(--fade-leave)}}}.project-frame{border-radius:var(--radius-lg);box-shadow:0 .35rem 1rem color-mix(in srgb, var(--ink) 14%, transparent), 0 2rem 5.5rem color-mix(in srgb, var(--ink) 24%, transparent);transition:box-shadow var(--dur-5) var(--ease-out-expo);--glass-lead:64px;--glass-over:96px;--glass-blur:.5px;--work-aspect:3 / 2;position:relative;overflow:hidden}.project-media{aspect-ratio:var(--work-aspect);border-radius:var(--radius-lg);background:var(--surface-sunken);position:relative;overflow:hidden}.media-doorlist{background:var(--doorlist-blue-deep)}.media-neuralyfe,.media-phantom{background:var(--backdrop-ink)}.media-optimizely{background:var(--onramp-mint)}.doorlist-video,.neuralyfe-video,.phantom-video,.optimizely-video{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.optimizely-video{transform:translateY(-8%)}.project-media>img{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.project-meta{padding-bottom:var(--space-6);flex-direction:column;align-items:flex-start;display:flex}.project-caption{inset-inline:0;padding:var(--glass-lead) var(--space-6) var(--space-5);align-items:flex-start;gap:var(--space-2);flex-direction:column;display:flex;position:absolute;bottom:0}.project-caption .project-eyebrow,.project-caption .project-title{position:relative}.project-caption .project-type{color:var(--ink-on-media-muted)}.project-caption .project-title{color:var(--ink-on-media);margin:0}.glass{bottom:0;left:0;right:0;top:calc(-1 * var(--glass-over));pointer-events:none;position:absolute}.glass>i{display:block;position:absolute;inset:0}.glass>i:first-child{-webkit-backdrop-filter:blur(calc(var(--glass-blur) * 1));backdrop-filter:blur(calc(var(--glass-blur) * 1));-webkit-mask-image:linear-gradient(#0000 0%,#00000028 7.143%,#00000080 14.286%,#000000d7 21.429%,#000 28.571%);mask-image:linear-gradient(#0000 0%,#00000028 7.143%,#00000080 14.286%,#000000d7 21.429%,#000 28.571%)}.glass>i:nth-child(2){-webkit-backdrop-filter:blur(calc(var(--glass-blur) * 2));backdrop-filter:blur(calc(var(--glass-blur) * 2));-webkit-mask-image:linear-gradient(#0000 14.286%,#00000028 21.429%,#00000080 28.571%,#000000d7 35.714%,#000 42.857%);mask-image:linear-gradient(#0000 14.286%,#00000028 21.429%,#00000080 28.571%,#000000d7 35.714%,#000 42.857%)}.glass>i:nth-child(3){-webkit-backdrop-filter:blur(calc(var(--glass-blur) * 4));backdrop-filter:blur(calc(var(--glass-blur) * 4));-webkit-mask-image:linear-gradient(#0000 28.571%,#00000028 35.714%,#00000080 42.857%,#000000d7 50%,#000 57.143%);mask-image:linear-gradient(#0000 28.571%,#00000028 35.714%,#00000080 42.857%,#000000d7 50%,#000 57.143%)}.glass>i:nth-child(4){-webkit-backdrop-filter:blur(calc(var(--glass-blur) * 8));backdrop-filter:blur(calc(var(--glass-blur) * 8));-webkit-mask-image:linear-gradient(#0000 42.857%,#00000028 50%,#00000080 57.143%,#000000d7 64.286%,#000 71.429%);mask-image:linear-gradient(#0000 42.857%,#00000028 50%,#00000080 57.143%,#000000d7 64.286%,#000 71.429%)}.glass>i:nth-child(5){-webkit-backdrop-filter:blur(calc(var(--glass-blur) * 16));backdrop-filter:blur(calc(var(--glass-blur) * 16));-webkit-mask-image:linear-gradient(#0000 57.143%,#00000028 64.286%,#00000080 71.429%,#000000d7 78.571%,#000 85.714%);mask-image:linear-gradient(#0000 57.143%,#00000028 64.286%,#00000080 71.429%,#000000d7 78.571%,#000 85.714%)}.glass>i:nth-child(6){-webkit-backdrop-filter:blur(calc(var(--glass-blur) * 32));backdrop-filter:blur(calc(var(--glass-blur) * 32));-webkit-mask-image:linear-gradient(#0000 71.429%,#00000028 78.571%,#00000080 85.714%,#000000d7 92.857%,#000 100%);mask-image:linear-gradient(#0000 71.429%,#00000028 78.571%,#00000080 85.714%,#000000d7 92.857%,#000 100%)}.glass-scrim{bottom:0;left:0;right:0;top:calc(-1 * var(--glass-over));background:var(--media-scrim);pointer-events:none;position:absolute;-webkit-mask-image:linear-gradient(#0000 0%,#00000028 12.5%,#00000080 25%,#000000d7 37.5%,#000 50%);mask-image:linear-gradient(#0000 0%,#00000028 12.5%,#00000080 25%,#000000d7 37.5%,#000 50%)}#optimizely .glass-scrim{background:var(--onramp-media-scrim)}#optimizely .project-caption .project-title{color:var(--ink)}#optimizely .project-caption .project-type{color:var(--ink-body)}.project-eyebrow{align-items:center;gap:var(--space-2);display:flex}.project-type-part{white-space:nowrap}.logo-chip{width:var(--space-5);height:var(--space-5);flex:none;place-items:center;display:grid}.logo-chip--tile{background:var(--bg);border-radius:var(--radius-sm)}.logo-chip--tile img{object-fit:contain;width:1.125rem;height:1.125rem;display:block}.logo-chip--bleed img{object-fit:contain;width:100%;height:100%;display:block}.project-meta .logo-chip{width:auto;height:auto}.project-meta .logo-chip--tile{background:0 0}@container card (max-width:420px){.project-caption{padding:calc(var(--glass-lead) / 2) var(--space-4) var(--space-4)}}.project-type{color:var(--page-muted);font-family:var(--font-sans);font-size:var(--text-label-size);line-height:var(--text-label-lh);letter-spacing:var(--text-label-ls);font-weight:var(--weight-medium);text-transform:uppercase;transition:color var(--dur-ink-flip) var(--ease-ink-flip) var(--delay-ink-flip);order:1;margin:0}.project-title{width:100%;margin:var(--space-2) 0 0;color:var(--page-ink);font-size:var(--text-h3-size);font-weight:var(--weight-medium);letter-spacing:var(--text-h3-ls);text-wrap:balance;transition:color var(--dur-ink-flip) var(--ease-ink-flip) var(--delay-ink-flip);order:2;line-height:1.25}.play-title-link{color:inherit;text-decoration:none}.play-title-link:focus-visible{outline:var(--focus-ring);outline-offset:var(--space-2);border-radius:var(--radius-sm)}.card-media{background-color:var(--surface);border:var(--hairline-width) solid var(--line);border-radius:var(--radius-lg);place-items:center;width:100%;display:grid;overflow:hidden}.card-media--empty{background-color:var(--surface-sunken)}.card-media-img{object-fit:cover;width:100%;height:100%;display:block}.card-media-fallback{font-family:var(--font-sans);font-size:var(--text-label-size);line-height:var(--text-label-lh);letter-spacing:var(--text-label-ls);font-weight:var(--weight-medium);color:var(--ink-muted)}.ruler{z-index:var(--z-rail);top:50%;right:var(--edge-inset);width:min(6rem, calc(var(--right-rail) - 1rem));align-items:flex-end;gap:var(--space-1);flex-direction:column;display:flex;position:fixed;transform:translateY(-50%)}.ruler-point{--marker-width:var(--ruler-line-rest);width:100%;min-height:1.5rem;color:var(--page-muted);cursor:pointer;background:0 0;border:0;justify-content:flex-end;align-items:center;padding:0;display:flex;position:relative}.ruler-point:focus-visible{outline:2px solid var(--page-ink);outline-offset:.3rem}.ruler-point:hover{--marker-width:var(--ruler-line-hover)}.ruler-point[aria-current=true]{--marker-width:var(--ruler-line-active)}.ruler-marker{width:var(--marker-width);height:var(--ruler-line-weight);border-radius:var(--radius-full);background:var(--ruler-line);transform-origin:100%;transition:width var(--dur-3) var(--ease-out-expo), background-color var(--dur-3) var(--ease-out-expo);flex:none;position:relative}.ruler-point[aria-current=true] .ruler-marker{background:var(--page-ink)}.about{width:min(100%, var(--width-content));align-items:flex-start;gap:var(--space-7);margin-inline:auto;display:flex}.about-photo{aspect-ratio:3/4;object-fit:cover;object-position:top;border-radius:var(--radius-lg);border:var(--hairline-width) solid var(--line);flex:none;width:13rem}.about-copy{flex-direction:column;align-items:flex-start;max-width:60ch;display:flex}.about-type{color:var(--page-muted);font-family:var(--font-sans);font-size:var(--text-label-size);line-height:var(--text-label-lh);letter-spacing:var(--text-label-ls);font-weight:var(--weight-medium);text-transform:uppercase;margin:0}.about-title{margin:var(--space-3) 0 0;color:var(--page-ink);font-size:var(--text-h3-size);font-weight:var(--weight-medium);letter-spacing:var(--text-h3-ls);text-wrap:balance;line-height:1.25}.about-belief{margin:var(--space-4) 0 0;color:var(--page-ink);font-size:var(--text-reading-size);line-height:var(--text-reading-lh);letter-spacing:var(--text-reading-ls);text-wrap:pretty}.about-quote{margin:var(--space-5) 0 0;border-inline-start:var(--hairline-width) solid var(--line-strong);padding-inline-start:var(--space-4)}.about-quote p{color:var(--page-ink);font-family:var(--font-serif);font-size:var(--text-h3-size);line-height:var(--text-body-lh);letter-spacing:0;text-wrap:pretty;margin:0;font-style:italic}.about-moments{width:min(100%, var(--width-content));margin-inline:auto;margin-top:var(--space-6);gap:var(--space-3);grid-template-columns:repeat(3,1fr);display:grid}.about-moment{aspect-ratio:4/3;object-fit:cover;object-position:center;border-radius:var(--radius-lg);border:var(--hairline-width) solid var(--line);width:100%;display:block}.about-attribution{margin-top:var(--space-3);color:var(--page-muted);font-family:var(--font-sans);font-size:var(--text-ui-size);line-height:var(--text-ui-lh);letter-spacing:0;font-style:normal;display:block}.resume{--resume-measure:42rem;width:min(100%, var(--resume-measure));font-variant-numeric:tabular-nums;margin-inline:auto}.resume-header{justify-content:space-between;align-items:baseline;gap:var(--space-5);flex-wrap:wrap;display:flex}.resume-heading{color:var(--page-ink);font-size:var(--text-h3-size);font-weight:var(--weight-medium);letter-spacing:var(--text-h3-ls);margin:0;line-height:1.25}.resume-download-wrap{flex:none;display:flex}.resume-download{align-items:center;gap:var(--space-2);color:var(--link);font-family:var(--font-sans);font-size:var(--text-ui-size);line-height:var(--text-ui-lh);letter-spacing:var(--text-ui-ls);font-weight:var(--weight-medium);-webkit-text-decoration-color:var(--page-line);text-decoration-color:var(--page-line);text-decoration-line:underline;text-decoration-thickness:var(--hairline-width);text-underline-offset:.32em;transition:color var(--dur-2) var(--ease-out-quart), text-decoration-color var(--dur-2) var(--ease-out-quart);display:inline-flex}.resume-download:hover,.resume-download:focus-visible{color:var(--link-hover);text-decoration-color:currentColor}.resume-download:focus-visible{outline:var(--focus-ring);outline-offset:var(--space-2)}.resume-summary-list{gap:var(--space-4);margin:var(--space-6) 0 0;padding:0;list-style:none;display:grid}.resume-entry{gap:var(--space-5);grid-template-columns:minmax(0,1fr) auto;align-items:baseline;display:grid}.resume-entry-date{color:var(--page-muted);font-family:var(--font-sans);font-size:var(--text-ui-size);line-height:var(--text-ui-lh);letter-spacing:var(--text-ui-ls);font-weight:var(--weight-regular);white-space:nowrap}.resume-entry-role{color:var(--page-ink);font-size:var(--text-body-size);line-height:var(--text-body-lh);font-weight:var(--weight-regular);margin:0}.resume-logo{border-radius:var(--radius-sm);object-fit:contain;vertical-align:middle;width:1.125rem;height:1.125rem;margin-inline:.1em;display:inline-block}.resume-block{gap:var(--space-4);margin-top:var(--space-5);padding-top:var(--space-4);border-top:var(--hairline-width) solid var(--line);display:grid}.resume-eyebrow{color:var(--page-muted);font-family:var(--font-sans);font-size:var(--text-label-size);line-height:var(--text-label-lh);letter-spacing:var(--text-label-ls);font-weight:var(--weight-medium);text-transform:uppercase;margin:0}.resume-summary-list--tight{margin-top:0}.contact{width:min(100%, var(--project-max));margin-inline:auto}.contact-card{text-align:center;flex-direction:column;align-items:center;display:flex}.contact-heading{max-width:15ch;color:var(--page-ink);font-size:clamp(2.5rem, 4.8vw, var(--text-display-size));font-weight:var(--weight-hero);letter-spacing:-.06em;text-wrap:balance;margin:0;line-height:.98}.contact-address{margin:var(--space-7) 0 0;color:var(--page-ink);font-size:var(--text-body-size);line-height:var(--text-body-lh);letter-spacing:var(--text-body-ls)}.contact-pill{align-items:center;gap:var(--space-3);margin-top:var(--space-7);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-5);color:var(--page-ink);font-family:var(--font-sans);font-size:var(--text-body-size);letter-spacing:var(--text-body-ls);background:var(--bg);border-radius:var(--radius-full);outline:var(--hairline-width) solid transparent;box-shadow:var(--elev-1);cursor:pointer;transition:transform var(--dur-2) var(--ease-out-quart), box-shadow var(--dur-2) var(--ease-out-quart);border:0;line-height:1.4;display:inline-flex}.contact-pill:hover{box-shadow:var(--elev-2);transform:translateY(-1px)}.contact-pill:focus-visible{outline:var(--focus-ring);outline-offset:var(--space-1)}.contact-pill-text{-webkit-user-select:text;user-select:text;text-align:left;height:1.4em;display:grid;overflow:hidden}.contact-pill-text>span{white-space:nowrap;transition:transform var(--dur-4) var(--ease-out-expo), opacity var(--dur-3) var(--ease-out-quart);grid-area:1/1}.contact-pill-done{opacity:0;transform:translateY(110%)}.contact-pill-icon{width:2rem;height:2rem;color:var(--page-muted);background:var(--surface-sunken);border-radius:var(--radius-full);transition:color var(--dur-2) var(--ease-out-quart), background var(--dur-2) var(--ease-out-quart);place-items:center;display:grid}.contact-pill-icon svg{width:15px;height:15px;transition:opacity var(--dur-2) var(--ease-out-quart), transform var(--dur-3) var(--ease-out-expo);grid-area:1/1}.contact-pill-check{opacity:0;transform:scale(.6)}.contact-pill:hover .contact-pill-icon,.contact-pill[data-copied] .contact-pill-icon{color:var(--bg);background:var(--page-ink)}.contact-pill[data-copied] .contact-pill-rest{opacity:0;transform:translateY(-110%)}.contact-pill[data-copied] .contact-pill-done{opacity:1;transform:none}.contact-pill[data-copied] .contact-pill-glyph{opacity:0;transform:scale(.6)}.contact-pill[data-copied] .contact-pill-check{opacity:1;transform:none}.contact-social{margin-top:var(--space-6);justify-content:center;display:flex}.contact-status{margin:var(--space-3) 0 0;color:var(--page-muted);font-size:var(--text-ui-size);line-height:var(--text-ui-lh);letter-spacing:var(--text-ui-ls)}.contact-status:empty{margin:0}.contact-status-sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){#contact{view-timeline-name:--contact-arrival}.contact .claim-accent{animation:linear both accent-land;animation-timeline:--contact-arrival;animation-range:cover calc(50dvh - var(--chapter-gap) / 2 + var(--fade-ramp)) cover 50%}}}@keyframes accent-land{0%{opacity:0;transform:translateY(.12em)}to{opacity:1;transform:none}}@media not (min-width:58rem){.ruler{display:none}#resume{scroll-margin-block:var(--space-8)}.about{gap:var(--space-5);flex-direction:column}.about-photo{width:9rem}.about-moments{margin-top:var(--space-5);gap:var(--space-2)}}@media not (min-width:36rem){.project-frame{--work-aspect:1 / 1;--glass-over:160px;background:var(--caption-ground)}#neuralyfe .project-frame,#phantom .project-frame,#doorlist .project-frame{--caption-ground:var(--backdrop-ink)}#optimizely .project-frame{--caption-ground:var(--onramp-mint)}.project-media{border-radius:0}.project-caption{padding:var(--space-2) var(--space-5) var(--space-5);position:relative;inset:auto}.project-caption .glass,.project-caption .glass-scrim{bottom:100%}.project-caption .glass-scrim,#optimizely .project-caption .glass-scrim{background:linear-gradient(to bottom, transparent 0%, color-mix(in srgb, var(--caption-ground) 15.6%, transparent) 25%, color-mix(in srgb, var(--caption-ground) 50%, transparent) 50%, color-mix(in srgb, var(--caption-ground) 84.4%, transparent) 75%, var(--caption-ground) 100%);-webkit-mask-image:none;mask-image:none}.optimizely-video{transform:none}.ruler{top:auto;left:50%;right:auto;bottom:calc(env(safe-area-inset-bottom,0px) + var(--space-3));--ruler-line-rest:var(--space-2);--ruler-line-hover:var(--space-2);--ruler-line-active:var(--space-5);--ruler-line-weight:calc(var(--hairline-width) * 2);flex-direction:row;align-items:flex-end;gap:0;width:auto;display:flex;transform:translate(-50%)}.ruler-point{width:1.5rem;min-height:2.25rem;padding-bottom:var(--space-2);justify-content:center;align-items:flex-end}.ruler-marker{width:var(--ruler-line-weight);height:var(--marker-width);transform-origin:bottom;transition:height var(--dur-3) var(--ease-out-expo), background-color var(--dur-3) var(--ease-out-expo)}.hero-title,.contact-heading{font-size:clamp(2.2rem, 11.5vw, var(--text-display-size))}.resume-entry{gap:var(--space-2);grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.hero-support,.project-type,.project-title,.project-frame,.ambient-copy,.ruler-marker,.ruler-marker:after{transition:none}body:has(.home-v2-root){transition:none}}
.play-wall{--row-h:21cqi;gap:var(--space-5);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex;container-type:inline-size}.wall-tile{flex:var(--tile-ratio,1.7778) 1 calc(var(--tile-ratio,1.7778) * var(--row-h));min-width:0}.wall-tile-link{color:inherit;text-decoration:none;display:block}.wall-tile-link:focus-visible{outline:var(--focus-ring);outline-offset:var(--space-2);border-radius:var(--radius-md)}.play-card-media{aspect-ratio:var(--card-aspect,16 / 9);border-radius:var(--radius-md);background:var(--surface-sunken);transition:transform var(--dur-2) var(--ease-out-quart);display:block;position:relative;overflow:hidden}.play-card-video{object-fit:cover;width:100%;height:100%;display:block}.wall-tile-link:hover .play-card-media,.wall-tile-link:focus-visible .play-card-media{transform:translateY(-2px)}@media not (min-width:36rem){.play-wall{column-gap:var(--space-4);grid-template-columns:1fr 1fr;grid-auto-rows:1cqi;grid-auto-flow:dense;row-gap:0;display:grid}.wall-tile{grid-row:span var(--tile-rows,31);align-self:start}}
.play-sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.play-cta{align-items:center;gap:var(--space-2);width:fit-content;padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--page-ink);color:var(--bg);font-family:var(--font-sans);font-size:var(--text-ui-size);line-height:var(--text-ui-lh);font-weight:var(--weight-medium);transition:background var(--dur-2) var(--ease-out-expo), transform var(--dur-1) var(--ease-out-quart);text-decoration:none;display:inline-flex}.play-cta:hover{background:color-mix(in srgb, var(--page-ink) 90%, transparent);transform:translateY(-1px)}.play-cta:focus-visible{outline:2px solid var(--page-ink);outline-offset:var(--focus-offset)}.play-link{color:var(--link);font-size:var(--text-ui-size);line-height:var(--text-ui-lh);font-weight:var(--weight-medium);text-underline-offset:.18em;text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);transition:color var(--dur-1) var(--ease-out-quart)}.play-link:hover,.play-link:focus-visible{color:var(--link-hover);-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.play-scrim{z-index:var(--z-overlay);padding:var(--space-8) var(--space-5);background:color-mix(in srgb, var(--ink) 50%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;transition:opacity var(--dur-2) var(--ease-out-expo);justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}.play-scrim.is-open{opacity:1;transition:opacity var(--dur-3) var(--ease-out-expo)}.play-panel{width:min(92vw, var(--width-wide));max-width:var(--width-wide);background:var(--bg);border:var(--hairline-width) solid var(--line-strong);border-radius:var(--radius-lg);opacity:0;transform:translateY(var(--space-3));transition:opacity var(--dur-2) var(--ease-out-expo), transform var(--dur-2) var(--ease-out-expo);position:relative;overflow:hidden}.play-scrim.is-open .play-panel{opacity:1;transition:opacity var(--dur-3) var(--ease-out-expo), transform var(--dur-3) var(--ease-out-expo);transform:translateY(0)}.play-close{top:var(--space-4);right:var(--space-4);z-index:var(--z-sticky);padding:var(--space-3);border-radius:var(--radius-full);background:var(--surface);color:var(--ink-muted);cursor:pointer;transition:color var(--dur-1) var(--ease-out-quart), background var(--dur-1) var(--ease-out-quart);border:0;place-items:center;display:grid;position:absolute}.play-close:hover{color:var(--ink);background:var(--surface-sunken)}.play-panel-head{padding:var(--space-8) var(--space-7) var(--space-6)}.play-panel-hook{padding-right:var(--space-8);font-size:var(--text-h1-size);line-height:var(--text-h1-lh);letter-spacing:var(--text-h1-ls);font-weight:var(--weight-semibold);color:var(--ink);text-wrap:balance;margin:0}.play-panel-story{margin:var(--space-5) 0 0;max-width:var(--measure-prose);font-size:var(--text-reading-size);line-height:var(--text-reading-lh);color:var(--ink-body);text-wrap:pretty}.play-panel-actions{align-items:center;gap:var(--space-5);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.play-embed{height:min(60vh,60rem);margin:0 var(--space-6) var(--space-8);border:var(--hairline-width) solid var(--line);border-radius:var(--radius-md);background:var(--surface-sunken);position:relative;overflow:hidden}.play-embed-frame{border:0;width:100%;height:100%;display:block}.play-embed--film{align-items:center;width:fit-content;height:auto;margin-inline:auto;display:flex}.play-embed-film{width:auto;height:auto;max-width:calc(100vw - 2 * var(--space-6));object-fit:contain;background:var(--surface-sunken);max-height:min(60vh,60rem);display:block}.play-embed-cover{justify-content:center;align-items:center;gap:var(--space-5);padding:var(--space-6);text-align:center;background:var(--surface-sunken);flex-direction:column;display:flex;position:absolute;inset:0}.play-embed-cover.is-hidden{display:none}.play-embed-caption,.play-embed-fallback-line{font-family:var(--font-sans);font-size:var(--text-ui-size);line-height:var(--text-ui-lh);color:var(--ink-muted);margin:0}.play-embed-pulse{animation:play-pulse 1.6s var(--ease-linear) infinite alternate}@keyframes play-pulse{0%{opacity:1}to{opacity:.55}}@media not (min-width:58rem){.play-scrim{padding:0}.play-panel{border:0;border-radius:0;width:100vw;max-width:none;min-height:100dvh}.play-panel-head{padding:var(--space-7) var(--space-5) var(--space-5)}.play-embed{height:70vh;margin:0 var(--space-4) var(--space-6)}.play-embed--film{height:auto;margin-inline:auto}.play-embed-film{max-width:calc(100vw - 2 * var(--space-4))}}.play-focus-guard{clip-path:inset(50%);outline:none;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.play-embed-pulse{animation:none}}
