.playground-page{--playground-blue:#4f7fa4;--playground-cyan:#7fb8c6;--playground-amber:#d49a4a;--playground-green:#6f9c68;--playground-ink:color-mix(in srgb,var(--foreground) 88%,#263d50 12%);--playground-muted:color-mix(in srgb,var(--foreground) 54%,#6f8d99 46%);background:radial-gradient(70% 42% at 50% 0,rgba(127,184,198,.14) 0,transparent 72%),linear-gradient(180deg,rgba(255,255,255,.2) 0,rgba(var(--background-rgb),0) 34%)}.archive-glow{opacity:.5;background-image:radial-gradient(52rem 24rem at 54% 0,rgba(127,184,198,.24) 0,transparent 70%),radial-gradient(34rem 18rem at 34% 10%,rgba(212,154,74,.15) 0,transparent 74%),linear-gradient(90deg,rgba(79,127,164,.07) 1px,transparent 0),linear-gradient(180deg,rgba(79,127,164,.055) 1px,transparent 0);background-size:auto,auto,48px 48px,48px 48px}@media (prefers-reduced-motion:reduce){.playground-gallery-media,.playground-gallery-tile{transition:none}}.playground-gallery{width:100%;margin-top:clamp(1.4rem,3vw,3rem)}.playground-gallery-shell{position:relative;isolation:isolate;overflow:hidden;min-height:min(72rem,calc(100vh - 5.25rem));padding:clamp(.55rem,1vw,.82rem);border-radius:clamp(22px,3vw,48px);background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(250,249,248,.98)),#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.96),0 0 0 1px rgba(46,42,37,.045),0 42px 90px -72px rgba(45,39,32,.34)}.playground-gallery-shell:after,.playground-gallery-shell:before{position:absolute;content:"";pointer-events:none}.playground-gallery-shell:before{inset:0;z-index:-2;background:radial-gradient(45rem 24rem at 16% 14%,rgba(255,255,255,.9),transparent 72%),radial-gradient(52rem 26rem at 80% 12%,rgba(241,236,237,.72),transparent 70%)}.playground-gallery-shell:after{inset:auto 2.2rem 0;z-index:4;height:4rem;background:linear-gradient(180deg,transparent,rgba(255,255,255,.86))}.playground-gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:clamp(20rem,25vw,34rem);gap:clamp(.55rem,1vw,.82rem)}.playground-gallery-tile{position:relative;display:block;min-width:0;overflow:hidden;border-radius:8px;background:radial-gradient(18rem 12rem at 50% 40%,rgba(255,255,255,.64),transparent 68%),linear-gradient(180deg,rgba(246,243,243,.96),rgba(241,238,238,.92));box-shadow:inset 0 0 0 1px rgba(255,255,255,.82),0 0 0 1px rgba(60,52,46,.035);color:var(--playground-ink);outline-offset:4px;transition:box-shadow .18s cubic-bezier(.2,0,0,1),filter .18s cubic-bezier(.2,0,0,1),transform .18s cubic-bezier(.2,0,0,1)}.playground-gallery-tile:before{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(255,255,255,.5),transparent 24%,transparent 72%,rgba(255,255,255,.44)),radial-gradient(14rem 8rem at 50% 0,rgba(255,255,255,.48),transparent 74%);content:"";opacity:.86;pointer-events:none}.playground-gallery-tile:focus-visible,.playground-gallery-tile:hover{box-shadow:inset 0 0 0 1px rgba(255,255,255,.9),0 0 0 1px rgba(60,52,46,.07),0 22px 48px -38px rgba(42,37,32,.34);filter:saturate(1.025);transform:translateY(-2px)}.playground-gallery-tile:active{transform:translateY(0) scale(.98)}.playground-gallery-caption,.playground-gallery-title{position:absolute;right:1rem;left:1rem;z-index:3;display:flex;min-width:0;justify-content:space-between;gap:.7rem;color:rgba(66,61,56,.46);font-family:var(--font-geist-mono),"Geist Mono",ui-monospace,monospace;font-size:.53rem;font-weight:700;letter-spacing:.09em;line-height:1;text-transform:uppercase;transition:color .16s cubic-bezier(.2,0,0,1)}.playground-gallery-caption{justify-content:flex-end;top:.9rem}.playground-gallery-title{bottom:.9rem;opacity:0}.playground-gallery-title span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playground-gallery-tile:focus-visible .playground-gallery-caption,.playground-gallery-tile:focus-visible .playground-gallery-title,.playground-gallery-tile:hover .playground-gallery-caption,.playground-gallery-tile:hover .playground-gallery-title{color:rgba(48,44,39,.74);opacity:1}.playground-gallery-media{position:absolute;z-index:2;display:block;overflow:hidden;border-radius:8px;box-shadow:0 18px 42px -32px rgba(35,31,27,.42),0 0 0 1px rgba(255,255,255,.7);transition:box-shadow .22s cubic-bezier(.2,0,0,1),transform .22s cubic-bezier(.2,0,0,1)}.playground-gallery-tile:focus-visible .playground-gallery-media,.playground-gallery-tile:hover .playground-gallery-media{box-shadow:0 26px 52px -34px rgba(35,31,27,.5),0 0 0 1px rgba(255,255,255,.82)}.playground-gallery-image{-o-object-fit:cover;object-fit:cover}.playground-gallery-tile-portrait .playground-gallery-media{top:17%;bottom:20%;left:29%;width:42%}.playground-gallery-tile-feature .playground-gallery-media{right:17%;bottom:0;left:17%;height:72%}.playground-gallery-tile-browser .playground-gallery-media,.playground-gallery-tile-document .playground-gallery-media{right:15%;left:15%;height:52%;background:rgba(255,255,255,.88)}.playground-gallery-tile-browser .playground-gallery-media{top:24%}.playground-gallery-tile-document .playground-gallery-media{top:14%}.playground-gallery-tile-browser .playground-gallery-media:before,.playground-gallery-tile-document .playground-gallery-media:before{position:absolute;inset:0 0 auto;z-index:2;height:1.05rem;background:radial-gradient(circle at .62rem 50%,#ff6b5f 0 .15rem,transparent .16rem),radial-gradient(circle at 1.12rem 50%,#f5bf4f 0 .15rem,transparent .16rem),radial-gradient(circle at 1.62rem 50%,#67c16f 0 .15rem,transparent .16rem),rgba(255,255,255,.86);box-shadow:0 1px 0 rgba(42,37,32,.05);content:""}.playground-gallery-tile-browser .playground-gallery-image,.playground-gallery-tile-document .playground-gallery-image{-o-object-fit:contain;object-fit:contain;padding:1.3rem .7rem .5rem}.playground-gallery-tile-phone .playground-gallery-media{top:19%;bottom:-8%;left:26%;width:48%;border-radius:22px 22px 8px 8px}.playground-gallery-tile-stack .playground-gallery-media{top:35%;right:18%;left:18%;height:28%;border-radius:18px}.playground-gallery-tile-stack .playground-gallery-media:after,.playground-gallery-tile-stack .playground-gallery-media:before{position:absolute;top:10%;bottom:10%;z-index:-1;width:42%;border-radius:inherit;background:rgba(38,34,29,.16);content:""}.playground-gallery-tile-stack .playground-gallery-media:before{left:-18%;transform:rotate(-7deg)}.playground-gallery-tile-stack .playground-gallery-media:after{right:-18%;transform:rotate(7deg)}.playground-gallery-tile-address .playground-gallery-media{top:46%;right:22%;left:22%;height:14%;border-radius:8px;background:rgba(255,255,255,.94)}.playground-gallery-tile-address .playground-gallery-image{-o-object-fit:contain;object-fit:contain;padding:.45rem 1rem}.playground-gallery-tile-print .playground-gallery-media{right:24%;bottom:18%;left:24%;height:46%}@media (min-width:641px){.playground-gallery-project-grand-teton-wallet.playground-gallery-tile-stack .playground-gallery-media{top:36%;right:17%;left:17%;height:30%;border-radius:10px}.playground-gallery-project-grand-teton-wallet.playground-gallery-tile-stack .playground-gallery-media:after,.playground-gallery-project-grand-teton-wallet.playground-gallery-tile-stack .playground-gallery-media:before{opacity:0}.playground-gallery-project-grand-teton-wallet .playground-gallery-image{-o-object-fit:cover;object-fit:cover;-o-object-position:50% 77%;object-position:50% 77%;transform:scale(2.25);transform-origin:50% 77%}.playground-gallery-project-mountain.playground-gallery-tile-address .playground-gallery-media{top:29%;right:12%;left:12%;height:45%;border-radius:10px}.playground-gallery-project-mountain.playground-gallery-tile-address .playground-gallery-image{-o-object-fit:cover;object-fit:cover;-o-object-position:50% 62%;object-position:50% 62%;padding:0}.playground-gallery-project-sunset-graphic.playground-gallery-tile-print .playground-gallery-media{right:7%;bottom:26%;left:7%;height:38%;border-radius:10px}.playground-gallery-project-sunset-graphic .playground-gallery-image{-o-object-fit:cover;object-fit:cover;-o-object-position:50% 50%;object-position:50% 50%}}@media (min-width:1025px){.playground-page{height:calc(100dvh - 5.25rem);min-height:0;overflow:hidden;padding-bottom:0!important}.playground-gallery{width:96%;margin-right:auto;margin-left:auto;margin-top:clamp(.8rem,1.45vw,1.35rem)}.playground-gallery-shell{height:clamp(28rem,calc(100dvh - 15.25rem),60rem);min-height:0}.playground-gallery-grid{height:100%;grid-template-rows:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr)}}@media (max-width:1024px){.playground-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(15rem,42vw,25rem)}}@media (max-width:640px){.playground-gallery{margin-top:.8rem}.playground-gallery-shell{min-height:auto;padding:.48rem;border-radius:22px}.playground-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(12rem,52vw,15rem);gap:.48rem}.playground-gallery-caption,.playground-gallery-title{right:.72rem;left:.72rem;font-size:.48rem;letter-spacing:.07em}.playground-gallery-caption{top:.72rem}.playground-gallery-title{bottom:.72rem;opacity:1}.playground-gallery-tile-portrait .playground-gallery-media{top:2.35rem;bottom:2.75rem;left:27%;width:46%}.playground-gallery-tile-feature .playground-gallery-media{top:2.35rem;right:15%;bottom:2.75rem;left:15%;height:auto}.playground-gallery-tile-browser .playground-gallery-media,.playground-gallery-tile-document .playground-gallery-media{top:2.35rem;right:10%;bottom:2.75rem;left:10%;height:auto}.playground-gallery-tile-phone .playground-gallery-media{top:2.35rem;bottom:2.75rem;left:21%;width:58%;border-radius:18px 18px 8px 8px}.playground-gallery-tile-stack .playground-gallery-media{top:39%;height:25%}.playground-gallery-tile-address .playground-gallery-media{top:47%;height:14%}.playground-gallery-tile-print .playground-gallery-media{right:15%;bottom:2.75rem;left:15%;height:43%}.playground-gallery-tile:focus-visible,.playground-gallery-tile:hover{transform:none}}@media (hover:none) and (pointer:coarse){.hover-only:hover{transform:none!important}a,button,input,select,textarea{min-height:44px;min-width:44px}*{-webkit-tap-highlight-color:rgba(0,0,0,.1)}}@media (min-resolution:192dpi){body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media screen and (orientation:landscape) and (max-height:500px){.landscape-reduce-padding{padding-top:1rem!important;padding-bottom:1rem!important}}@supports (padding:env(safe-area-inset-top)){.safe-area-padding{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}}.scroll-smooth{scroll-behavior:auto}@container (max-width: 640px){.container-responsive{font-size:.8125rem}}.full-viewport-height{height:100vh;height:100dvh}.full-viewport-width{width:100vw;width:100dvw}.focus-visible:focus-visible{outline:2px solid var(--ring);outline-offset:2px}::selection{background:rgba(35,131,226,.15);color:inherit}::-moz-selection{background:rgba(35,131,226,.15);color:inherit}::-webkit-selection{background:rgba(35,131,226,.15);color:inherit}body{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input,select,textarea{font-size:16px}@media screen and (max-width:767px){input,select,textarea{font-size:16px!important}}:root{color-scheme:dark;--background:#111214;--background-rgb:17,18,20;--foreground:#edf0f5;--card:#191b1f;--card-foreground:var(--foreground);--primary:var(--foreground);--primary-foreground:var(--background);--secondary:#22252b;--secondary-foreground:var(--foreground);--muted:var(--secondary);--muted-foreground:#aaafb9;--subtle-foreground:#9299a6;--accent:#a9c1ff;--accent-foreground:#111a30;--accent-subtle:#242e45;--accent-muted:#8da5df;--accent-blue:var(--accent);--accent-green:#9bc9b1;--destructive:#f3a6a6;--border:#343840;--input:#737b89;--ring:var(--accent);--surface-warm-rgb:34,37,43;--surface-paper-rgb:25,27,31;--grain-rgb:237,240,245;--ink-underline:var(--accent);--contact-accent:var(--accent);--contact-accent-soft:var(--accent-subtle);--contact-accent-rgb:169,193,255;--contact-email-accent:var(--accent);--contact-email-accent-soft:var(--accent-subtle);--contact-email-ink:var(--foreground);--contact-paper:var(--card);--contact-paper-hover:var(--secondary);--contact-rule:var(--border);--surface-glass-soft:rgba(var(--surface-paper-rgb),0.94);--surface-glass-soft-border:var(--border);--surface-glass-soft-shadow:inset 0 1px #ffffff05,0 2px 8px #0002;--surface-glass-chrome:var(--card);--surface-glass-chrome-hover:var(--secondary);--surface-glass-chrome-dark:var(--card);--surface-glass-chrome-shadow:inset 0 1px #ffffff05;--surface-glass-chrome-shadow-hover:inset 0 1px #ffffff08,0 3px 9px #0002;--surface-glass-chrome-shadow-active:inset 0 1px 3px #0003;--shadow-raised:0 0 0 1px var(--border),0 3px 10px #0002;--shadow-raised-subtle:0 0 0 1px var(--border);--shadow-hover:0 0 0 1px var(--input),0 8px 24px #0003;--font-display:var(--font-dm-sans),Arial,sans-serif}body{line-height:1.5}:focus-visible{outline:2px solid var(--ring);outline-offset:4px}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--ring)!important;outline-offset:4px;--tw-ring-color:var(--ring)}.chrome-pill,.chrome-pill-contact-accent,.chrome-scroll-top{color:var(--foreground);border:1px solid var(--border);border-radius:8px;background:var(--surface-glass-chrome);box-shadow:var(--surface-glass-chrome-shadow)}.chrome-pill .chrome-pill-icon,.chrome-pill .chrome-pill-label{color:var(--foreground);text-shadow:none;filter:none}.chrome-pill:after,.chrome-pill:before,.chrome-scroll-top:after,.chrome-scroll-top:before{opacity:0}.chrome-pill:hover,.chrome-scroll-top:hover{background:var(--surface-glass-chrome-hover);box-shadow:var(--surface-glass-chrome-shadow-hover)}.chrome-pill:active,.chrome-scroll-top:active{box-shadow:var(--surface-glass-chrome-shadow-active)}.portfolio-wordmark{font-family:var(--font-geist-mono);font-size:18px;font-weight:500;letter-spacing:-.04em}.brand-period{color:var(--accent)}article header h1{font-family:var(--font-display);font-size:clamp(36px,6vw,56px);line-height:1.1;font-weight:550;letter-spacing:-.035em}.prose :is(h2,h3){font-family:var(--font-display);font-weight:550}.prose h2{font-size:32px}.prose h3{font-size:26px}.playground-page{--playground-blue:#a9c1ff;--playground-cyan:#8ac7d5;--playground-amber:#d8b98d;--playground-green:#9bc9b1;--playground-ink:var(--foreground);--playground-muted:var(--muted-foreground);background:radial-gradient(70% 42% at 50% 0,color-mix(in srgb,var(--accent-blue) 10%,transparent) 0,transparent 72%),linear-gradient(180deg,color-mix(in srgb,var(--card) 42%,transparent) 0,transparent 34%)}.archive-glow{opacity:.32;background-image:radial-gradient(52rem 24rem at 54% 0,color-mix(in srgb,var(--accent-blue) 12%,transparent) 0,transparent 70%),radial-gradient(34rem 18rem at 34% 10%,color-mix(in srgb,var(--contact-accent) 8%,transparent) 0,transparent 74%),linear-gradient(90deg,color-mix(in srgb,var(--border) 28%,transparent) 1px,transparent 1px),linear-gradient(180deg,color-mix(in srgb,var(--border) 22%,transparent) 1px,transparent 1px)}.playground-gallery-shell{background:var(--card);box-shadow:var(--shadow-raised)}.playground-gallery-shell:before{background:radial-gradient(45rem 24rem at 16% 14%,color-mix(in srgb,var(--muted) 55%,transparent),transparent 72%),radial-gradient(52rem 26rem at 80% 12%,color-mix(in srgb,var(--accent-subtle) 40%,transparent),transparent 70%)}.playground-gallery-shell:after{background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--card) 88%,transparent))}.playground-gallery-tile{background:var(--muted);box-shadow:var(--shadow-raised-subtle);color:var(--foreground)}.playground-gallery-tile:before{background:linear-gradient(180deg,color-mix(in srgb,var(--card) 42%,transparent),transparent 24%,transparent 72%,color-mix(in srgb,var(--card) 38%,transparent)),radial-gradient(14rem 8rem at 50% 0,color-mix(in srgb,var(--card) 28%,transparent),transparent 74%);opacity:.7}.playground-gallery-tile:focus-visible,.playground-gallery-tile:hover{box-shadow:var(--shadow-hover);filter:saturate(1.02)}.playground-gallery-caption,.playground-gallery-title{color:var(--muted-foreground)}.playground-gallery-tile:focus-visible .playground-gallery-caption,.playground-gallery-tile:focus-visible .playground-gallery-title,.playground-gallery-tile:hover .playground-gallery-caption,.playground-gallery-tile:hover .playground-gallery-title{color:var(--foreground)}.playground-gallery-media{box-shadow:0 18px 42px -32px #0008,0 0 0 1px color-mix(in srgb,var(--border) 72%,transparent)}.playground-gallery-tile:focus-visible .playground-gallery-media,.playground-gallery-tile:hover .playground-gallery-media{box-shadow:0 26px 52px -34px #000a,0 0 0 1px color-mix(in srgb,var(--ring) 28%,var(--border))}.playground-gallery-tile-address .playground-gallery-media,.playground-gallery-tile-browser .playground-gallery-media,.playground-gallery-tile-document .playground-gallery-media{background:var(--secondary)}.playground-gallery-tile-browser .playground-gallery-media:before,.playground-gallery-tile-document .playground-gallery-media:before{background:radial-gradient(circle at .62rem 50%,#ff6b5f 0 .15rem,transparent .16rem),radial-gradient(circle at 1.12rem 50%,#f5bf4f 0 .15rem,transparent .16rem),radial-gradient(circle at 1.62rem 50%,#67c16f 0 .15rem,transparent .16rem),var(--muted);box-shadow:0 1px 0 color-mix(in srgb,var(--border) 55%,transparent)}:root{--home-content-width:42rem;--font-editorial:var(--font-dm-sans),Arial,sans-serif}.home-editorial-content,[data-home-editorial=true]>div{max-width:var(--home-content-width)}.home-editorial-sections{margin-block-start:3rem}.home-editorial-sections>*+*{margin-block-start:5rem}.home-editorial :is(#home,#projects,#playground,#background){scroll-margin-top:calc(7rem + env(safe-area-inset-top))}.home-editorial-kicker,.home-section-meta{color:var(--subtle-foreground);font-family:var(--font-editorial);font-size:.875rem;font-weight:400;letter-spacing:.1em;line-height:1.5;text-transform:uppercase}.home-editorial-kicker{color:var(--foreground)}.home-editorial #home h1{font-family:var(--font-editorial);font-size:clamp(2.25rem,6vw,3.5rem);font-weight:400;letter-spacing:-.035em;line-height:1.15;text-transform:none;text-wrap:balance}.home-editorial #home .font-header,.home-editorial-philosophy .font-header{font-family:var(--font-editorial);letter-spacing:0;line-height:1.6}.home-editorial-intro{max-width:33rem}.home-editorial .home-editorial-intro p{font-size:1.143rem}.home-editorial-details{max-width:33rem;font-family:var(--font-editorial);font-size:1rem;line-height:1.5}.home-editorial-details>div{display:grid;grid-template-columns:7rem minmax(0,1fr);gap:1rem;padding-block:.9rem;border-block-start:1px solid var(--border)}.home-editorial-details dt{color:var(--muted-foreground)}.home-editorial-details dd{color:var(--foreground);font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible;white-space:normal}.home-editorial-details dd span{letter-spacing:0;text-transform:none}.home-editorial-details time{font-family:var(--font-editorial);letter-spacing:0}.home-editorial #contact a[target=_blank],.home-editorial-link{font-family:var(--font-editorial);font-size:11px;font-weight:400;letter-spacing:.08em;text-decoration:underline;text-decoration-color:var(--border);text-decoration-thickness:from-font;text-underline-offset:.4em;text-transform:uppercase}.home-editorial #contact a[target=_blank]:hover,.home-editorial-link:hover{text-decoration-color:currentColor}.home-editorial-philosophy{display:grid;gap:1rem;padding-block-start:1.5rem;border-block-start:1px solid var(--border)}.home-editorial-philosophy>p{font-family:var(--font-editorial);font-size:11px;letter-spacing:.1em;line-height:1.5}.home-philosophy-note{max-width:34rem}.home-editorial .home-section-heading h2{color:var(--foreground);font-family:var(--font-editorial);font-size:1.625rem;font-weight:400;letter-spacing:-.025em;line-height:1.3;text-transform:none;text-wrap:balance}.home-editorial .featured-project-list .featured-text-row{gap:1.25rem;grid-template-columns:3.5rem minmax(0,1fr) auto;padding-block:1.5rem}.home-editorial #projects .featured-project-list[data-density=default]>.featured-project-row:first-child .featured-text-row,.home-editorial .home-endeavor-list>.home-endeavor-row:first-child>div{border-block-start:0}.home-editorial .featured-project-list .featured-text-row-meta{padding-block-start:.35rem;font-family:var(--font-editorial);font-size:.875rem;line-height:1.5}.home-editorial .featured-project-list h3{font-family:var(--font-editorial);font-size:1.143rem;font-weight:400;letter-spacing:-.02em;line-height:1.3}.home-editorial .featured-text-row-copy>p{font-family:var(--font-editorial);font-size:1rem;line-height:1.6}.home-editorial #projects .featured-project-list[data-density=default] .featured-text-row{grid-template-columns:minmax(0,1fr) auto;-moz-column-gap:1.5rem;column-gap:1.5rem;row-gap:1.75rem;padding-block:1.75rem 2rem;border-color:color-mix(in srgb,var(--foreground) 28%,var(--background))}.home-editorial #projects .featured-project-list[data-density=default] .featured-text-row-copy{grid-area:1/1;padding-inline-end:0}.home-editorial #projects .featured-project-list[data-density=default] .featured-text-row-arrow{grid-area:1/2}.home-editorial #projects .featured-project-list[data-density=default] .featured-text-row-meta{grid-area:2/2;padding:0;color:var(--muted-foreground);letter-spacing:.08em;text-align:end}.home-editorial .featured-text-row-discipline{grid-area:2/1;color:var(--muted-foreground);font-family:var(--font-editorial);font-size:.875rem;font-weight:400;letter-spacing:.1em;line-height:1.5;text-transform:uppercase}.home-editorial .featured-project-list[data-density=quiet] .featured-text-row{padding-block:1rem}.home-editorial .featured-project-list[data-density=quiet] h3{font-size:14px}.home-editorial .featured-project-row:before{background:transparent;border-radius:0}.home-editorial .featured-project-row .featured-text-row-copy{transform:none}.home-editorial .featured-project-row :is(a:hover,a:focus-visible) h3{text-decoration:underline;text-decoration-thickness:from-font;text-underline-offset:.22em}.home-editorial .featured-text-row-arrow{color:var(--muted-foreground);font-size:14px;opacity:.8}.home-editorial #background .font-header{font-family:var(--font-editorial);font-size:14px;line-height:1.4}[data-home-editorial=true] .home-brand-link{font-family:var(--font-editorial);font-size:11px;letter-spacing:.08em;text-transform:uppercase}[data-home-editorial=true] nav[aria-label="On this page"] a{min-height:44px;border-radius:0;background:transparent;box-shadow:none;font-family:var(--font-editorial);font-size:11px;font-weight:400;letter-spacing:.06em;text-transform:uppercase}[data-home-editorial=true] nav[aria-label="On this page"] a:is([aria-current],:hover){text-decoration:underline;text-decoration-thickness:from-font;text-underline-offset:.4em}footer[data-home-editorial=true] p{font-family:var(--font-geist-mono);font-size:12px}@media (min-width:640px){.home-editorial-sections{margin-block-start:4rem}.home-editorial-sections>*+*{margin-block-start:6.5rem}.home-editorial :is(#home,#projects,#playground,#background){scroll-margin-top:10rem}.home-editorial-philosophy{grid-template-columns:7rem minmax(0,1fr);gap:2rem}.home-editorial .home-section-heading h2{font-size:1.875rem}.home-editorial .featured-project-list .featured-text-row{grid-template-columns:4rem minmax(0,1fr) auto;gap:1.75rem}.home-editorial .featured-project-list h3{font-size:1.286rem}}.home-masthead,.home-statement{--home-content-width:1200px;--home-grid-columns:4;--home-grid-gap:16px;padding-inline:max(24px,env(safe-area-inset-left)) max(24px,env(safe-area-inset-right))}.home-statement .home-editorial-content{padding-block-start:72px}.home-masthead{position:absolute;inset:0 0 auto;z-index:40;padding-block-start:calc(24px + env(safe-area-inset-top, 0px));font:12px/1.5 var(--font-geist-mono)}.home-masthead-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:var(--home-content-width);margin-inline:auto}.home-masthead-name{display:inline-flex;align-items:center;min-height:44px;color:var(--foreground);font-family:var(--font-display);font-size:18px;font-weight:500;letter-spacing:-.04em;white-space:nowrap}.home-masthead time{color:var(--muted-foreground);white-space:nowrap;font-variant-numeric:tabular-nums}.home-masthead-name:focus-visible{outline:2px solid var(--ring);outline-offset:5px}.home-grid-section,.home-hero-grid{display:grid;grid-template-columns:repeat(var(--home-grid-columns),minmax(0,1fr));-moz-column-gap:var(--home-grid-gap);column-gap:var(--home-grid-gap);row-gap:24px}.home-grid-section>*,.home-hero-grid>*{grid-column:1/-1;min-width:0}.home-statement #home h1{margin:0;font-family:var(--font-display);font-size:clamp(36px,9.6vw,52px);font-weight:500;line-height:1.12;letter-spacing:-.045em;text-wrap:balance}.michelangelus-lettering{display:inline-block;max-width:100%;vertical-align:middle;line-height:0}.michelangelus-lettering svg{display:block;max-width:100%;overflow:visible}.michelangelus-nav-name{font-size:21px}.home-statement-title .michelangelus-lettering{vertical-align:top}.home-statement-meta{margin:0;color:var(--muted-foreground);font:12px/1.6 var(--font-editorial);letter-spacing:0}.home-statement #contact{margin-block-start:24px}.home-statement .home-contact-links{display:grid;grid-template-columns:repeat(2,minmax(0,max-content));gap:8px 16px;align-items:center}.home-statement #home .home-contact-links>a{font-size:14px;letter-spacing:0}.home-statement #contact a[href^="mailto:"],.home-statement #home a[href="/cv"]{min-width:0;padding-inline:16px;border-radius:8px}.home-statement #contact a[target=_blank]{width:-moz-max-content;width:max-content;font-size:12px;text-decoration-color:var(--muted-foreground)}.home-statement .home-editorial-sections{margin-block-start:48px}.home-statement .home-editorial-sections>*+*{margin-block-start:64px}.home-statement .home-grid-section{padding-block-start:16px;border-block-start:1px solid var(--border)}.home-statement .home-section-rule{display:none}.home-statement .home-section-heading h2,.home-statement .home-section-meta{font-size:12px;line-height:1.5;letter-spacing:0}.home-statement .home-section-heading h2{color:var(--foreground);font-family:var(--font-geist-mono)}.home-statement .home-section-meta{color:var(--muted-foreground);font-family:var(--font-geist-mono)}.home-statement .home-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px 24px}.home-statement #projects .featured-project-list[data-density=default]{display:grid;gap:32px var(--home-grid-gap)}.home-statement #projects .featured-project-list[data-density=default] .featured-project-with-image .featured-text-row{grid-template-columns:minmax(0,1fr) auto;padding:0;border:0;-moz-column-gap:16px;column-gap:16px;row-gap:16px}.home-statement #projects .featured-project-image{position:relative;grid-area:1/1/auto/-1;aspect-ratio:4/3;overflow:hidden;background:var(--card)}.home-statement .featured-project-image img{-o-object-fit:cover;object-fit:cover;transition:transform .76s cubic-bezier(.22,1,.36,1)}.home-statement #projects .featured-project-card{animation:none}.home-statement #projects .featured-text-row h3{text-decoration:none}.home-statement #projects .featured-text-row h3>span{background:linear-gradient(currentColor,currentColor) no-repeat 0 100% /0 1px;transition:background-size .42s cubic-bezier(.22,1,.36,1)}.home-statement #projects .featured-text-row:focus-visible h3>span{background-size:100% 1px}.home-statement #projects .featured-text-row-arrow{transition:transform .42s cubic-bezier(.22,1,.36,1),opacity .24s ease,color .24s ease}.home-statement #projects .featured-project-list[data-density=default] .featured-project-with-image .featured-text-row-copy{grid-area:2/1}.home-statement #projects .featured-project-list[data-density=default] .featured-project-with-image .featured-text-row-arrow{grid-area:2/2}.home-statement #projects .featured-project-list[data-density=default] .featured-project-with-image .featured-text-row-meta{grid-area:3/2;align-self:center;font-size:12px;font-family:var(--font-geist-mono);letter-spacing:0}.home-statement #projects .featured-project-list[data-density=default] .featured-project-with-image .featured-text-row-discipline{grid-area:3/1;justify-self:start;font-size:12px;font-family:var(--font-geist-mono);letter-spacing:0}.home-statement #projects .featured-project-list[data-density=default] .featured-project-with-image h3{font-family:var(--font-display);font-size:23px;line-height:1.2;letter-spacing:-.03em;font-weight:500}.home-statement #projects .featured-text-row-copy>p{font-size:12px;color:var(--muted-foreground)}.home-statement .home-endeavor-list .featured-text-row{-moz-column-gap:16px;column-gap:16px;padding-block:24px}.home-statement .home-endeavor-list .featured-text-row-meta{font-size:11px}.home-statement .home-endeavor-list .featured-text-row-copy>p{font-size:12px}.home-background-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));-moz-column-gap:var(--home-grid-gap);column-gap:var(--home-grid-gap);row-gap:8px;padding-block:24px;border-block-end:1px solid var(--border);font:12px/1.6 var(--font-editorial)}.home-background-row:first-child{padding-block-start:0}.home-background-row>*{grid-column:1/-1}.home-background-date{color:var(--muted-foreground);font-size:11px;font-variant-numeric:tabular-nums}.home-background-row h3{font-size:14px;color:var(--foreground);font-weight:400}.home-background-description{color:var(--muted-foreground)}.home-statement .home-playground-collage{max-inline-size:720px;margin-inline:auto}@media (hover:hover) and (pointer:fine){.home-statement #projects .featured-text-row:hover h3>span{background-size:100% 1px}}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.home-statement .featured-project-with-image a:is(:hover,:focus-visible) img{transform:scale(1.035)}}@media (prefers-reduced-motion:reduce){.home-statement .featured-project-image img{transition:none}.home-statement [data-home-reveal],.home-statement [data-project-revealed],.route-scene{opacity:1!important;transform:none!important}}@media (scripting:none){.home-statement [data-home-reveal],.home-statement [data-project-revealed]{opacity:1!important;transform:none!important}}@media (min-width:640px){.home-masthead,.home-statement{--home-grid-columns:6;--home-grid-gap:24px;padding-inline:40px}.home-masthead{padding-block-start:32px;font-size:13px}.home-statement .home-editorial-content{padding-block-start:80px}.home-statement #home h1{font-size:clamp(44px,4.5vw,60px)}.home-statement-meta{font-size:13px}.home-statement .home-editorial-sections{margin-block-start:48px}.home-statement .home-editorial-sections>*+*{margin-block-start:80px}.home-statement #projects .featured-project-list[data-density=default]{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:40px}.home-background-row{grid-template-columns:repeat(6,minmax(0,1fr));row-gap:4px}.home-background-date{grid-column:1/3;grid-row:1/3}.home-background-description,.home-background-row h3{grid-column:3/-1}}@media (min-width:768px){.home-hero-grid{align-items:end}.home-hero-heading{grid-column:1/5}.home-hero-aside{grid-column:5/-1}}@media (min-width:1024px){.home-masthead,.home-statement{--home-grid-columns:12;padding-inline:56px}.home-hero-heading{grid-column:1/9}.home-hero-aside{grid-column:9/-1;padding-block-end:4px}.home-statement .home-editorial-sections{margin-block-start:56px}.home-statement .home-editorial-sections>*+*{margin-block-start:96px}.home-statement .home-grid-section{padding-block-start:24px}.home-statement #projects .featured-project-list[data-density=default]{grid-template-columns:repeat(3,minmax(0,1fr))}.home-background-row{grid-template-columns:repeat(12,minmax(0,1fr));row-gap:0}.home-background-date{grid-column:1/3;grid-row:auto}.home-background-row h3{grid-column:3/7}.home-background-description{grid-column:7/-1}}@media (max-width:639px){.home-masthead time{display:none}}body .home-masthead *,body .home-statement *{text-transform:none!important}.home-statement-title span{color:var(--muted-foreground)}.home-statement .home-statement-meta{font-size:14px;line-height:1.65}.home-statement #projects .featured-project-image{border-radius:6px;outline:1px solid rgb(255 255 255/.12);outline-offset:-1px}.home-statement #projects .featured-text-row-copy>p{font-size:14px;line-height:1.6}.home-statement .home-section-heading h2{font-size:13px}.home-statement .home-section-meta{font-size:12px}.home-statement .home-endeavor-list h3{font-family:var(--font-display);font-size:22px;font-weight:500;line-height:1.2}.home-statement .home-endeavor-list .featured-text-row-copy>p{font-size:13px}.home-statement .home-background-row h3{font-size:15px}.home-statement .home-background-description{font-size:13px}.home-statement #home .home-contact-links>a,.home-statement .featured-project-list[data-density=quiet] h3{font-family:var(--font-editorial)}@media (min-width:640px){.home-masthead-name{font-size:20px}}.home-statement .featured-text-row-meta{color:var(--muted-foreground)}.home-masthead-name{font-family:var(--font-geist-mono)}.home-masthead-inner{padding-block-end:16px;border-block-end:1px solid var(--border)}.home-masthead-tools{display:flex;align-items:center;gap:32px}.home-masthead-nav{display:none;align-items:center;gap:24px}.home-masthead-nav a{display:inline-flex;align-items:center;min-height:44px;color:var(--muted-foreground)}.home-masthead-nav a:hover{color:var(--accent)}.home-hero-role{margin:0 0 20px;color:var(--subtle-foreground);font:12px/1.5 var(--font-geist-mono);letter-spacing:.02em}.home-section-index{margin-inline-end:12px;color:var(--subtle-foreground);font-variant-numeric:tabular-nums}.home-statement .home-background-date,.home-statement .home-endeavor-list .featured-text-row-meta{font-family:var(--font-geist-mono);font-size:12px}.home-statement #contact a[target=_blank]{font-family:var(--font-geist-mono);color:var(--muted-foreground)}.home-statement #contact a[target=_blank]:hover{color:var(--accent)}@media (min-width:640px){.home-masthead-nav{display:flex}}@media (max-width:639px){.home-masthead-tools{gap:8px}}@media (max-width:380px){.home-masthead-name{font-size:16px}.home-masthead-inner{gap:8px}}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-northeast-500.woff2) format("woff2");unicode-range:u+2197}html:root[data-home-showcase]{color-scheme:light;background-color:#f7f7f5;scrollbar-gutter:auto}html[data-home-showcase] body{background-color:#f7f7f5!important;color:#0a0a0a;padding:0!important}html[data-home-showcase] #main-content{padding-top:0!important}html[data-home-showcase] .site-intro-loader,html[data-home-showcase] [data-site-chrome]{display:none!important}html[data-home-showcase] ::-moz-selection{background-color:rgba(10,10,10,.12)!important;color:inherit!important}html[data-home-showcase] ::-moz-selection,html[data-home-showcase] ::selection{background-color:rgba(10,10,10,.12)!important;color:inherit!important}@media (min-width:821px){html[data-home-showcase],html[data-home-showcase] body{height:100%;overflow:hidden}html[data-home-showcase][data-cv-showcase],html[data-home-showcase][data-cv-showcase] body,html[data-home-showcase][data-not-found-showcase],html[data-home-showcase][data-not-found-showcase] body,html[data-home-showcase][data-playground-showcase],html[data-home-showcase][data-playground-showcase] body{height:auto;min-height:100%;overflow:auto}}html[data-home-showcase] .home-showcase,html[data-home-showcase] .home-showcase :after,html[data-home-showcase] .home-showcase :before,html[data-home-showcase] .home-showcase :not(input):not(textarea):not(select){text-transform:uppercase!important}.home-showcase{--showcase-bg:#f7f7f5;--showcase-ink:#0a0a0a;--showcase-mute:#8a8a86;--showcase-line:#e4e4e0;display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:48px;height:100dvh;min-height:0;padding:max(48px,env(safe-area-inset-top)) max(48px,env(safe-area-inset-right)) max(48px,env(safe-area-inset-bottom)) max(48px,env(safe-area-inset-left));background:var(--showcase-bg);color:var(--showcase-ink);font-weight:500;font-size:11px;line-height:1.45;letter-spacing:.01em;-webkit-font-smoothing:antialiased}.home-showcase,.home-showcase *{box-sizing:border-box}.home-showcase a,.home-showcase button,.home-showcase h1,.home-showcase li,.home-showcase p,.home-showcase ul{margin:0;font:inherit;letter-spacing:inherit;color:inherit}.home-showcase a{text-decoration:none}.home-showcase-aside{display:flex;flex-direction:column;justify-content:space-between;min-height:0;min-width:0}.home-showcase-identity{display:grid;gap:8px}.home-showcase-mute{color:var(--showcase-mute)}.home-showcase-place{display:flex;justify-content:space-between;align-items:baseline;gap:12px;width:100%}.home-showcase-clock,.home-showcase-place>span{white-space:nowrap}.home-showcase-clock{color:var(--showcase-mute);font-variant-numeric:tabular-nums}.home-showcase-bottom{display:grid;gap:24px}.home-showcase-bio{display:grid;gap:8px;max-width:280px}.home-showcase-label{margin-bottom:4px;color:var(--showcase-mute)}.home-showcase-list{display:grid;gap:4px;list-style:none;padding:0}.home-showcase-list a{display:inline-flex;align-items:center;min-height:24px}.home-showcase-list a:hover{color:var(--showcase-mute);filter:none}.home-showcase-actions{align-items:center}.home-showcase-actions,.home-showcase-links{display:flex;flex-wrap:wrap;gap:8px}.home-showcase-pill{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:24px;min-height:36px;height:36px;padding:8px 16px;border:0;border-radius:64px;background:#ebebe8;color:var(--showcase-ink);white-space:nowrap;cursor:pointer;transition:background-color .4s cubic-bezier(.44,0,.56,1),color .4s cubic-bezier(.44,0,.56,1)}.home-showcase-pill.is-primary{background:var(--showcase-ink);color:var(--showcase-bg)}.home-showcase-pill:hover{background:#e1e1dd;color:var(--showcase-ink);filter:none}.home-showcase-pill.is-primary:hover{background:#2a2a2a;color:var(--showcase-bg)}.home-showcase-arrow{display:inline-block;margin-left:.22em;color:inherit;font-family:inherit;font-style:normal;font-weight:inherit;font-size:.86em;font-variant-emoji:text;line-height:1;vertical-align:.06em;transition:transform .15s cubic-bezier(.22,1,.36,1)}.home-showcase a:focus-visible .home-showcase-arrow,.home-showcase a:hover .home-showcase-arrow,.not-found-showcase a:focus-visible .home-showcase-arrow,.not-found-showcase a:hover .home-showcase-arrow{transform:translate(2px,-2px)}html[data-home-showcase] .home-showcase .home-showcase-arrow,html[data-not-found-showcase] .not-found-showcase .home-showcase-arrow{text-transform:none!important}.home-showcase-stage{display:flex;min-height:0;min-width:0;flex-direction:column;gap:24px}.home-showcase-panel{position:relative;flex:1;min-height:0;overflow:hidden;border:0;border-radius:0;background:var(--showcase-bg);outline:none}.home-showcase-panel:after,.home-showcase-panel:before{content:"";position:absolute;z-index:3;top:0;bottom:0;width:clamp(40px,18%,168px);pointer-events:none}.home-showcase-panel:before{left:0;background:linear-gradient(90deg,#f7f7f5 0,rgba(247,247,245,.82) 18%,rgba(247,247,245,.35) 55%,rgba(247,247,245,0))}.home-showcase-panel:after{right:0;background:linear-gradient(270deg,#f7f7f5 0,rgba(247,247,245,.82) 18%,rgba(247,247,245,.35) 55%,rgba(247,247,245,0))}.home-showcase-panel:focus-within{outline:1px solid var(--showcase-ink);outline-offset:3px}.home-showcase-slide{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;transform:none;pointer-events:none}.home-showcase-slide[data-pos=current]{opacity:1;pointer-events:auto;z-index:1}.home-showcase-slide a{display:flex;width:100%;height:100%;align-items:center;justify-content:center}.home-showcase-frame{position:relative;display:grid;width:100%;height:100%;place-items:center}.home-showcase-slide img,.home-showcase-slide video{position:absolute;z-index:1;inset:0;display:block;width:100%;height:100%;-o-object-fit:contain;object-fit:contain;background:transparent;border-radius:0;box-shadow:none;transition:none}.home-showcase-slide .home-showcase-motion{z-index:1;opacity:1}.home-showcase-slide .home-showcase-still{z-index:2;transition:opacity .28s ease-out}.home-showcase-slide .home-showcase-motion[data-ready=true]~.home-showcase-still{opacity:0}.home-showcase-bar{display:flex;align-items:center;justify-content:space-between;gap:16px}.home-showcase-caption{min-height:1.45em;min-width:0}.home-showcase-dots{display:flex;align-items:center;gap:1px}.home-showcase-dot{display:grid;width:24px;height:24px;place-items:center;padding:0;border:0;background:transparent;cursor:pointer}.home-showcase-dot:before{width:4px;height:4px;border-radius:50%;background:#d6d6d1;content:"";transition:background-color .4s cubic-bezier(.44,0,.56,1)}.home-showcase-dot[aria-current=true]:before{background:var(--showcase-ink)}.home-showcase-controls{display:flex;gap:8px}.home-showcase-controls button{cursor:pointer}.home-showcase a:focus-visible,.home-showcase button:focus-visible{outline:1px solid var(--showcase-ink)!important;outline-offset:3px;filter:none}.home-showcase-panel a:focus-visible{outline:none!important}@media (hover:none) and (pointer:coarse){.home-showcase a,.home-showcase button{min-width:0;min-height:0}.home-showcase .home-showcase-pill,.home-showcase-controls button{min-width:36px;min-height:36px}.home-showcase-list a{min-height:24px}}@media (max-width:820px){.home-showcase{display:block;height:auto;padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left))}.home-showcase-aside{gap:16px;margin-bottom:8px;justify-content:flex-start}.home-showcase-bottom{gap:16px}.home-showcase-bio{max-width:none}.home-showcase-panel{flex:none;aspect-ratio:4/3.4}.home-showcase-dots{display:none}.home-showcase-bar{flex-wrap:wrap;justify-content:flex-start;row-gap:10px}.home-showcase-caption{flex:1 1 100%}}@keyframes home-showcase-enter{0%{opacity:0}to{opacity:1}}.home-showcase-veil{position:absolute;z-index:4;inset:0;background:var(--showcase-bg);pointer-events:none;animation:home-showcase-enter 2s cubic-bezier(.44,0,.56,1) reverse both}.home-showcase-identity{animation:home-showcase-enter 1.2s cubic-bezier(.44,0,.56,1) .2s both}.home-showcase-bio,.home-showcase-endeavors{animation:home-showcase-enter 1.2s cubic-bezier(.44,0,.56,1) .4s both}.home-showcase-actions,.home-showcase-bar{animation:home-showcase-enter 1s cubic-bezier(.44,0,.56,1) .8s both}.home-work-strip{animation:home-showcase-enter 1.2s cubic-bezier(.44,0,.56,1) 1.2s both}@media (hover:hover) and (pointer:fine){.home-showcase-bio,.home-showcase-caption,.home-showcase-controls,.home-showcase-dots,.home-showcase-endeavors,.home-showcase-identity,.home-showcase-label,.home-showcase-links,.home-showcase-list li,.home-showcase-panel{transition:filter .28s ease-out,opacity .28s ease-out}.home-showcase:has(.home-showcase-list li:hover) .home-showcase-bio,.home-showcase:has(.home-showcase-list li:hover) .home-showcase-caption,.home-showcase:has(.home-showcase-list li:hover) .home-showcase-controls,.home-showcase:has(.home-showcase-list li:hover) .home-showcase-dots,.home-showcase:has(.home-showcase-list li:hover) .home-showcase-identity,.home-showcase:has(.home-showcase-list li:hover) .home-showcase-label,.home-showcase:has(.home-showcase-list li:hover) .home-showcase-links,.home-showcase:has(.home-showcase-list li:hover) .home-showcase-list li:not(:hover),.home-showcase:has(.home-showcase-list li:hover) .home-showcase-panel,.home-showcase:has(.home-showcase-panel:hover) .home-showcase-bio,.home-showcase:has(.home-showcase-panel:hover) .home-showcase-caption,.home-showcase:has(.home-showcase-panel:hover) .home-showcase-controls,.home-showcase:has(.home-showcase-panel:hover) .home-showcase-dots,.home-showcase:has(.home-showcase-panel:hover) .home-showcase-endeavors,.home-showcase:has(.home-showcase-panel:hover) .home-showcase-identity,.home-showcase:has(.home-showcase-panel:hover) .home-showcase-links{filter:blur(4px);opacity:.82!important}.home-showcase:has(.home-showcase-list li:hover) .home-showcase-controls:focus-within,.home-showcase:has(.home-showcase-list li:hover) .home-showcase-dots:focus-within,.home-showcase:has(.home-showcase-list li:hover) .home-showcase-links:focus-within,.home-showcase:has(.home-showcase-list li:hover) .home-showcase-list li:focus-within,.home-showcase:has(.home-showcase-list li:hover) .home-showcase-panel:focus-within,.home-showcase:has(.home-showcase-panel:hover) .home-showcase-controls:focus-within,.home-showcase:has(.home-showcase-panel:hover) .home-showcase-dots:focus-within,.home-showcase:has(.home-showcase-panel:hover) .home-showcase-links:focus-within{filter:none;opacity:1!important}}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:reduce){.home-showcase-bio,.home-showcase-caption,.home-showcase-controls,.home-showcase-dots,.home-showcase-endeavors,.home-showcase-identity,.home-showcase-label,.home-showcase-links,.home-showcase-list li,.home-showcase-panel{transition:none}.home-showcase:has(.home-showcase-list li:hover) .home-showcase-bio,.home-showcase:has(.home-showcase-list li:hover) .home-showcase-caption,.home-showcase:has(.home-showcase-list li:hover) .home-showcase-controls,.home-showcase:has(.home-showcase-list li:hover) .home-showcase-dots,.home-showcase:has(.home-showcase-list li:hover) .home-showcase-identity,.home-showcase:has(.home-showcase-list li:hover) .home-showcase-label,.home-showcase:has(.home-showcase-list li:hover) .home-showcase-links,.home-showcase:has(.home-showcase-list li:hover) .home-showcase-list li:not(:hover),.home-showcase:has(.home-showcase-list li:hover) .home-showcase-panel,.home-showcase:has(.home-showcase-panel:hover) .home-showcase-bio,.home-showcase:has(.home-showcase-panel:hover) .home-showcase-caption,.home-showcase:has(.home-showcase-panel:hover) .home-showcase-controls,.home-showcase:has(.home-showcase-panel:hover) .home-showcase-dots,.home-showcase:has(.home-showcase-panel:hover) .home-showcase-endeavors,.home-showcase:has(.home-showcase-panel:hover) .home-showcase-identity,.home-showcase:has(.home-showcase-panel:hover) .home-showcase-links{filter:none;opacity:.72!important}.home-showcase:has(.home-showcase-list li:hover) .home-showcase-controls:focus-within,.home-showcase:has(.home-showcase-list li:hover) .home-showcase-dots:focus-within,.home-showcase:has(.home-showcase-list li:hover) .home-showcase-links:focus-within,.home-showcase:has(.home-showcase-list li:hover) .home-showcase-list li:focus-within,.home-showcase:has(.home-showcase-list li:hover) .home-showcase-panel:focus-within,.home-showcase:has(.home-showcase-panel:hover) .home-showcase-controls:focus-within,.home-showcase:has(.home-showcase-panel:hover) .home-showcase-dots:focus-within,.home-showcase:has(.home-showcase-panel:hover) .home-showcase-links:focus-within{opacity:1!important}}@media (prefers-reduced-motion:reduce){.home-showcase-arrow,.home-showcase-frame,.home-showcase-motion,.home-showcase-shot,.home-showcase-slide{transform:none!important;transition:none!important}.home-showcase-actions,.home-showcase-bar,.home-showcase-bio,.home-showcase-endeavors,.home-showcase-identity,.home-showcase-panel,.home-work-strip{animation:none!important;opacity:1!important;transform:none!important}.home-showcase-veil{animation:none!important;opacity:0!important}}html[data-playground-showcase] .playground-showcase,html[data-playground-showcase] .playground-showcase :after,html[data-playground-showcase] .playground-showcase :before,html[data-playground-showcase] .playground-showcase :not(input,textarea,select){text-transform:uppercase!important}.playground-showcase{--showcase-bg:#f7f7f5;--showcase-ink:#0a0a0a;--showcase-mute:#8a8a86;--showcase-line:#e4e4e0;display:flex;flex-direction:column;min-height:100dvh;padding:max(28px,env(safe-area-inset-top)) max(28px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(28px,env(safe-area-inset-left));background:var(--showcase-bg);color:var(--showcase-ink);font-weight:500;font-size:11px;line-height:1.45;letter-spacing:.01em;-webkit-font-smoothing:antialiased}.playground-showcase,.playground-showcase *{box-sizing:border-box}.playground-showcase a,.playground-showcase button,.playground-showcase h1,.playground-showcase li,.playground-showcase p,.playground-showcase ul{margin:0;font:inherit;letter-spacing:inherit;color:inherit}.playground-showcase a{text-decoration:none}.playground-showcase a:hover,.playground-showcase button:focus-visible,.playground-showcase button:hover{color:var(--showcase-mute);filter:none}.playground-showcase a:focus-visible,.playground-showcase button:focus-visible{outline:1px solid var(--showcase-ink);outline-offset:3px}.playground-showcase-bar,.playground-showcase-tools{display:flex;align-items:baseline}.playground-showcase-bar{justify-content:space-between;gap:16px}.playground-showcase-tools{gap:16px}.playground-showcase h1{margin-top:22px}.playground-showcase-orbit{position:relative;flex:1 1 auto;min-height:min(520px,calc(100dvh - 120px))}.playground-showcase-ring{width:calc(var(--orbit-radius) * 2);height:calc(var(--orbit-radius) * 2);border:1px solid var(--showcase-line);border-radius:50%}.playground-showcase-center,.playground-showcase-ring{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.playground-showcase-center{z-index:5;width:min(28ch,42vw);text-align:center;pointer-events:none}.playground-showcase-caption-stack{display:grid;min-height:2.9em;align-items:center}.playground-showcase-caption{grid-area:1/1;pointer-events:auto}.playground-showcase-caption.is-entering{animation:playground-caption-in .22s ease-out both}.playground-showcase-caption.is-leaving{animation:playground-caption-out .22s ease-out both;pointer-events:none}@keyframes playground-caption-in{0%{opacity:0;filter:blur(4px)}to{opacity:1;filter:blur(0)}}@keyframes playground-caption-out{0%{opacity:1;filter:blur(0)}to{opacity:0;filter:blur(4px)}}.playground-showcase-orbit-card{position:absolute;left:50%;top:50%}.playground-showcase-thumb,.playground-showcase-thumb-link{display:block}.playground-showcase-thumb{position:relative;overflow:hidden;aspect-ratio:1;border:1px solid var(--showcase-line);border-radius:8px;background:var(--showcase-bg)}.playground-showcase-thumb img{-o-object-fit:cover;object-fit:cover;transition:none}.playground-showcase-arrow{display:inline-block;margin-left:.22em;color:inherit;font-family:inherit;font-style:normal;font-weight:inherit;font-size:.86em;font-variant-emoji:text;line-height:1;vertical-align:.06em}html[data-playground-showcase] .playground-showcase .playground-showcase-arrow{text-transform:none!important}.playground-showcase-list{display:none;margin:0;padding:0;list-style:none}.playground-showcase-row{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--showcase-line)}.playground-showcase-row .playground-showcase-thumb{width:72px}@media (max-width:820px){.playground-showcase{padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}.playground-showcase-orbit{flex:none;height:calc(100dvh - 108px);min-height:calc(100dvh - 108px)}.playground-showcase-list{display:block;margin-top:18px}}@media (prefers-reduced-motion:reduce){.playground-showcase-caption.is-entering{animation:playground-caption-fade-in .18s ease-out both}.playground-showcase-caption.is-leaving{animation:playground-caption-fade-out .18s ease-out both}}@keyframes playground-caption-fade-in{0%{opacity:0}to{opacity:1}}@keyframes playground-caption-fade-out{0%{opacity:1}to{opacity:0}}html[data-cv-showcase] .cv-showcase,html[data-cv-showcase] .cv-showcase *,html[data-cv-showcase] .cv-showcase :after,html[data-cv-showcase] .cv-showcase :before{text-transform:uppercase!important}.cv-showcase{--showcase-bg:#f7f7f5;--showcase-ink:#0a0a0a;--showcase-mute:#8a8a86;--showcase-line:#e4e4e0;min-height:100dvh;padding:max(28px,env(safe-area-inset-top)) max(28px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(28px,env(safe-area-inset-left));background:var(--showcase-bg);color:var(--showcase-ink);font-weight:500;font-size:11px;line-height:1.45;letter-spacing:.01em;-webkit-font-smoothing:antialiased}.cv-showcase,.cv-showcase *{box-sizing:border-box}.cv-showcase a,.cv-showcase button,.cv-showcase h1,.cv-showcase h2,.cv-showcase p{margin:0;font:inherit;letter-spacing:inherit;color:inherit}.cv-showcase a{text-decoration:none}.cv-showcase a:hover,.cv-showcase button:focus-visible,.cv-showcase button:hover{color:var(--showcase-mute);filter:none}.cv-showcase a:focus-visible,.cv-showcase button:focus-visible{outline:1px solid var(--showcase-ink);outline-offset:3px}.cv-showcase-sheet{width:min(640px,100%)}.cv-showcase-bar,.cv-showcase-tools{display:flex;align-items:baseline}.cv-showcase-bar{justify-content:space-between;gap:16px}.cv-showcase-tools{gap:16px}.cv-showcase-print{margin:-6px -2px;padding:6px 2px;border:0;background:transparent;color:inherit;cursor:pointer}.cv-showcase .cv-showcase-print:focus-visible,.cv-showcase .cv-showcase-print:hover{color:var(--showcase-ink)}.cv-showcase-role{margin-top:22px}.cv-showcase-contact{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35em .75em;margin-top:8px}.cv-showcase .cv-showcase-dot{color:var(--showcase-mute)}.cv-showcase-section{margin-top:22px;padding-top:14px;border-top:1px solid var(--showcase-line)}.cv-showcase .cv-showcase-section h2{margin-bottom:12px;color:var(--showcase-mute)}.cv-showcase-entry+.cv-showcase-entry{margin-top:14px}.cv-showcase-line{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.cv-showcase-title{min-width:0}.cv-showcase p.cv-showcase-dates{flex:none;color:var(--showcase-mute);font-variant-numeric:tabular-nums;white-space:nowrap}html[data-cv-showcase] .cv-showcase p.cv-showcase-detail{margin-top:2px;color:var(--showcase-mute);text-transform:none!important}@media (max-width:820px){.cv-showcase{padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}}@media print{html[data-cv-showcase],html[data-cv-showcase] body{height:auto!important;min-height:0!important;overflow:visible!important;background:#fff!important;color:#000!important}.cv-showcase{--showcase-bg:#fff;--showcase-ink:#000;--showcase-mute:#222;--showcase-line:#d4d4d4;min-height:0;padding:0;background:#fff!important;color:#000!important}.cv-showcase-sheet{width:100%}.cv-showcase-tools{display:none!important}.cv-showcase a{color:#000!important;text-decoration:none!important}.cv-showcase-section{margin-top:12px;padding-top:8px}.cv-showcase-entry,.cv-showcase-section{-moz-column-break-inside:avoid;break-inside:avoid}.cv-showcase-entry+.cv-showcase-entry{margin-top:8px}}html[data-not-found-showcase] .not-found-showcase,html[data-not-found-showcase] .not-found-showcase :after,html[data-not-found-showcase] .not-found-showcase :before,html[data-not-found-showcase] .not-found-showcase :not(input):not(textarea):not(select){text-transform:uppercase!important}.not-found-showcase{--showcase-bg:#f7f7f5;--showcase-ink:#0a0a0a;--showcase-mute:#8a8a86;--showcase-line:#e4e4e0;display:flex;flex-direction:column;min-height:100dvh;padding:max(28px,env(safe-area-inset-top)) max(28px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(28px,env(safe-area-inset-left));background:var(--showcase-bg);color:var(--showcase-ink);font-weight:500;font-size:11px;line-height:1.45;letter-spacing:.01em;-webkit-font-smoothing:antialiased}.not-found-showcase,.not-found-showcase *{box-sizing:border-box}.not-found-showcase a,.not-found-showcase button,.not-found-showcase h1,.not-found-showcase p{margin:0;font:inherit;letter-spacing:inherit;color:inherit}.not-found-showcase-copy{display:flex;flex:1;flex-direction:column;justify-content:center;gap:10px;width:min(28rem,100%)}.not-found-showcase h1{letter-spacing:.08em}.not-found-showcase-copy p{color:var(--showcase-mute)}.not-found-showcase a{width:-moz-fit-content;width:fit-content;margin-top:6px;padding-bottom:1px;border-bottom:1px solid var(--showcase-line);text-decoration:none}.not-found-showcase a:focus-visible,.not-found-showcase a:hover{color:var(--showcase-mute)}.not-found-showcase a:focus-visible,.not-found-showcase button:focus-visible{outline:1px solid var(--showcase-ink);outline-offset:3px}.email-copy-toast{position:fixed;z-index:30;left:50%;bottom:max(22px,env(safe-area-inset-bottom));margin:0;padding:7px 12px;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--showcase-ink,#0a0a0a);font:inherit;font-size:11px;font-weight:500;letter-spacing:.08em;line-height:1.45;white-space:nowrap;opacity:0;pointer-events:none;transform:translateX(-50%)}html[data-home-showcase] .email-copy-toast{text-transform:uppercase!important}.email-copy-toast[data-visible=true]{border-color:var(--showcase-line,#e4e4e0);background:color-mix(in srgb,var(--showcase-bg,#f7f7f5) 78%,transparent);backdrop-filter:blur(8px) saturate(1.2);animation:email-copy-toast 1.8s ease both}@keyframes email-copy-toast{0%{opacity:0}12%{opacity:1}70%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.email-copy-toast[data-visible=true]{animation:none;opacity:1}}@media (max-width:820px){.not-found-showcase{padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}}.home-showcase-bar{flex:0 0 auto}.home-work-strip{flex:0 0 auto;display:flex;flex-direction:column;gap:6px;min-width:0}.home-work-strip-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.home-work-strip-head .home-showcase-label{margin:0;font-size:9px;line-height:1;letter-spacing:.08em}.home-work-strip-nav{display:flex;gap:8px}.home-work-strip-nav button{width:24px;height:24px;min-width:24px;min-height:24px;padding:0;border:0;border-radius:64px;background:#ebebe8;color:var(--showcase-ink);cursor:pointer;font-size:11px;line-height:1;transition:background-color .4s cubic-bezier(.44,0,.56,1)}.home-work-strip-nav button:hover:not(:disabled){background:#e1e1dd;filter:none}.home-work-strip-nav button:disabled{color:var(--showcase-line);cursor:default}.home-work-strip-frame{position:relative;height:52px;min-width:0}.home-work-strip-scroller{height:100%;overflow:hidden;overscroll-behavior-x:contain;scrollbar-width:none;cursor:grab}.home-work-strip-scroller.is-static{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:2px}.home-work-strip-scroller.is-marquee{touch-action:pan-y}.home-work-strip-scroller::-webkit-scrollbar{display:none}.home-work-strip-scroller.is-dragging{cursor:grabbing;scroll-snap-type:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.home-work-strip-track{display:flex;gap:6px;height:100%;width:-moz-max-content;width:max-content}.home-work-strip-track.is-marquee{will-change:transform}.home-work-strip-set{display:flex;gap:6px;height:100%}.home-work-strip-edge{position:absolute;z-index:3;top:0;bottom:0;width:56px;pointer-events:none}.home-work-strip-edge.is-left{left:0}.home-work-strip-edge.is-right{right:0;transform:scaleX(-1)}.home-work-strip-edge span{position:absolute;inset:0;backdrop-filter:blur(var(--blur));-webkit-mask-image:linear-gradient(to right,#000 0,#000 var(--stop),transparent var(--end));mask-image:linear-gradient(to right,#000 0,#000 var(--stop),transparent var(--end))}.home-work-strip-edge span:first-child{--blur:1px;--stop:0%;--end:100%}.home-work-strip-edge span:nth-child(2){--blur:2px;--stop:0%;--end:72%}.home-work-strip-edge span:nth-child(3){--blur:4px;--stop:0%;--end:46%}.home-work-strip-edge span:nth-child(4){--blur:7px;--stop:0%;--end:24%}.home-work-strip-edge span.is-fade{--blur:0px;background:linear-gradient(90deg,#f7f7f5 0,rgba(247,247,245,.55) 32%,rgba(247,247,245,0));backdrop-filter:none;-webkit-mask-image:none;mask-image:none}.home-work-strip-item{position:relative;flex:0 0 auto;height:100%;aspect-ratio:16/10;margin:0;padding:0;border:0;border-radius:4px;background:#e7e7e4;overflow:hidden;scroll-snap-align:start;cursor:pointer}.home-work-strip-item[aria-current=true]{z-index:1}.home-showcase .home-work-strip-item:focus-visible:after,.home-work-strip-item.is-active:after,.home-work-strip-item[aria-current=true]:after{content:"";position:absolute;inset:0;z-index:2;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 0 2px var(--showcase-ink),inset 0 0 0 3px #f7f7f5}.home-showcase .home-work-strip-item:focus-visible{outline:none!important}.home-work-strip-media{position:absolute;inset:0;display:block;background:#e7e7e4}.home-work-strip-media img,.home-work-strip-media video{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.home-work-strip-media video{position:absolute;inset:0;opacity:0;transition:opacity .28s ease-out}.home-work-strip-media video[data-ready=true]{opacity:1}.home-work-strip-tag{position:absolute;z-index:5;top:calc(100% + 6px);left:0;color:var(--showcase-ink);font-size:11px;font-weight:500;line-height:1.2;letter-spacing:.01em;white-space:nowrap;pointer-events:none;opacity:0;transform:translate(-50%,4px);transition:opacity .2s ease,transform .2s ease}.home-work-strip-tag.is-on{opacity:1;transform:translate(-50%)}.home-grid-lightbox{position:fixed;z-index:40;inset:0;display:grid;place-items:center;background:color-mix(in srgb,var(--showcase-bg) 92%,#000);color:var(--showcase-ink)}.home-grid-lightbox-figure{display:grid;justify-items:center;gap:12px;margin:0;max-width:min(92vw,1100px)}.home-grid-lightbox-media{display:grid;place-items:center;background:#e7e7e4}.home-grid-lightbox-media img,.home-grid-lightbox-media video{display:block;width:auto;height:auto;max-width:min(92vw,1100px);max-height:78vh;-o-object-fit:contain;object-fit:contain}.home-grid-lightbox figcaption{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.home-grid-lightbox-close,.home-grid-lightbox-nav{position:absolute;display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;padding:8px 16px;border:0;border-radius:64px;background:#ebebe8;color:var(--showcase-ink);cursor:pointer;transition:background-color .4s cubic-bezier(.44,0,.56,1)}.home-grid-lightbox-close:hover,.home-grid-lightbox-nav:hover{background:#e1e1dd}.home-grid-lightbox-close{top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right))}.home-grid-lightbox-nav.is-prev{left:max(12px,env(safe-area-inset-left))}.home-grid-lightbox-nav.is-next{right:max(12px,env(safe-area-inset-right))}.home-grid-lightbox-nav{top:50%;transform:translateY(-50%)}@media (max-width:820px){.home-showcase-stage{gap:8px}.home-showcase-caption,.home-showcase-links,.home-showcase-list li,.home-showcase-place{min-width:0}.home-showcase-bio,.home-showcase-caption{overflow-wrap:break-word}html[data-home-showcase],html[data-home-showcase] body{overflow-x:clip}.home-work-strip{margin-top:0}.home-showcase .home-grid-lightbox-nav,.home-showcase .home-showcase-controls button,.home-showcase .home-showcase-pill{min-width:36px;min-height:36px}.home-showcase .home-grid-lightbox-close{min-height:40px;padding:0 12px}.home-work-strip-edge{width:28px}.home-work-strip-edge span:nth-child(4){--blur:5px}}@media (max-width:640px){.home-work-strip-nav{display:none}}@media (prefers-reduced-motion:reduce){.home-work-strip-media video,.home-work-strip-tag{transition:none}.home-work-strip-tag,.home-work-strip-tag.is-on{transform:translate(-50%)}}.portfolio-loading-indicator,.portfolio-loading-indicator-screen{display:grid;place-items:center;color:var(--foreground)}.portfolio-loading-indicator-screen,.site-intro-loader{position:fixed;inset:0;z-index:80;display:grid;place-items:center;background:var(--background)}.portfolio-loading-indicator__content{display:grid;justify-items:center;gap:26px;max-width:calc(100vw - 48px);text-align:center}.portfolio-loading-indicator__identity{display:grid;gap:13px}.portfolio-loading-indicator__name{display:block;font-family:var(--font-display);font-size:clamp(30px,8.6vw,42px);font-weight:500;font-style:normal;font-kerning:normal;line-height:1.05;letter-spacing:-.03em;text-transform:none!important}.portfolio-loading-indicator__caption{font-family:var(--font-paper-mono),ui-monospace,monospace;font-size:9px;font-weight:400;line-height:1.4;letter-spacing:.08em;color:var(--muted-foreground);text-transform:none!important}.portfolio-loading-indicator__line{position:relative;display:block;width:64px;height:1px;overflow:hidden;background:color-mix(in srgb,currentColor 18%,transparent)}.portfolio-loading-indicator__line:after{content:"";position:absolute;inset:0;background:currentColor;transform-origin:left center;animation:editorial-loading-pass 1.5s cubic-bezier(.65,0,.35,1) infinite}.site-intro-loader .portfolio-loading-indicator__identity{animation:editorial-loading-name .24s ease-out both}.site-intro-loader .portfolio-loading-indicator__line:after{animation:editorial-loading-draw .36s cubic-bezier(.22,1,.36,1) both}.site-intro-loader{pointer-events:none;animation:site-intro-reveal .36s cubic-bezier(.22,1,.36,1) .2s forwards}body:has(:focus-visible) .site-intro-loader{display:none}@keyframes editorial-loading-name{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes editorial-loading-draw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes editorial-loading-pass{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes site-intro-reveal{0%{opacity:1;visibility:visible}to{opacity:0;visibility:hidden}}@media (prefers-reduced-motion:reduce){.site-intro-loader{display:none}.portfolio-loading-indicator__identity,.portfolio-loading-indicator__line:after{animation:none;transform:none;opacity:1}}