@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Instrument Serif";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-ext-400-normal-C2je3j2s.woff2) format("woff2"),url(/assets/instrument-serif-latin-ext-400-normal-CFCUzsTy.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Instrument Serif";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-400-normal-DnYpCC2O.woff2) format("woff2"),url(/assets/instrument-serif-latin-400-normal-BVbkICAY.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Instrument Serif";font-style:italic;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-ext-400-italic-C9HzH3YL.woff2) format("woff2"),url(/assets/instrument-serif-latin-ext-400-italic-D7-lnxEk.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Instrument Serif";font-style:italic;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-400-italic-DKMiL14s.woff2) format("woff2"),url(/assets/instrument-serif-latin-400-italic-u__WvvIK.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #080808;--surface: #111111;--surface-2: #161616;--text: #f2f0eb;--text-2: #aaa8a3;--rule: #303030;--accent: #ed655d;--accent-hi: #ff8b81;--accent-ink: #080808;--sans: "Geist Variable", "Helvetica Neue", Helvetica, Arial, sans-serif;--serif: "Instrument Serif", "Iowan Old Style", "Times New Roman", serif;--margin: clamp(16px, 2.2vw, 32px);--gutter: clamp(12px, 1.5vw, 22px);--section: clamp(96px, 16vh, 200px);--fs-meta: .8125rem;--fs-body: 1.0625rem;--fs-lead: clamp(1.2rem, 1.02rem + .55vw, 1.5rem);--fs-h2: clamp(2rem, 1.3rem + 2.6vw, 3.6rem);--fs-display: clamp(3.2rem, 1rem + 6vw, 7rem);--ease: cubic-bezier(.16, 1, .3, 1);--ease-soft: cubic-bezier(.22, .8, .24, 1);--ease-io: cubic-bezier(.76, 0, .24, 1);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:var(--fs-body);line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:clip}img,video,picture,svg{display:block;max-width:100%}img{height:auto}h1,h2,h3,p,ul,ol,dl,dd,figure,blockquote{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}em{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:0}::selection{background:var(--accent);color:var(--accent-ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}[tabindex="-1"]:focus{outline:none}[id]{scroll-margin-top:16px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:12px;left:12px;z-index:100;padding:12px 16px;background:var(--accent);color:var(--accent-ink);font-size:var(--fs-meta);transform:translateY(-200%)}.skip-link:focus{transform:none}.meta{font-size:var(--fs-meta);line-height:1.45;color:var(--text-2)}.micro{font-size:.6875rem;line-height:1.3;color:var(--text-2)}.label{font-size:var(--fs-meta);line-height:1.45;font-weight:500;letter-spacing:.01em}.num{font-variant-numeric:tabular-nums;color:var(--text-2);font-weight:400}.body-text{max-width:62ch;color:var(--text-2)}.body-text+.body-text{margin-top:1em}.lead-serif{font-family:var(--serif);font-size:var(--fs-h2);line-height:1.04;letter-spacing:-.005em}.link{display:inline-flex;align-items:center;min-height:44px;background:linear-gradient(currentColor,currentColor) left calc(50% + .72em) / 100% 1px no-repeat;transition:background-size .5s var(--ease)}.link:hover{background-size:0 1px;background-position:right calc(50% + .72em)}.inline-links{display:flex;flex-wrap:wrap;gap:4px 28px}.inline-links .link:after{content:none;margin-left:.4em}.inline-links a[target=_blank].link:after{content:none}.glyph{display:inline-block;width:.62em;height:.62em;margin-right:.3em;background:currentColor;vertical-align:.02em}.glyph-circle{border-radius:50%}.glyph-triangle{clip-path:polygon(50% 0,100% 100%,0 100%)}.corners{position:absolute;inset:-22px -40px;pointer-events:none}.corners span{position:absolute;width:5px;height:5px;background:var(--text)}.corners span:nth-child(1){top:0;left:0}.corners span:nth-child(2){top:0;right:0}.corners span:nth-child(3){bottom:0;left:0}.corners span:nth-child(4){bottom:0;right:0}.rivets{--rv: radial-gradient(circle, transparent 1.4px, currentColor 1.6px 2.3px, transparent 2.6px);background-image:var(--rv),var(--rv),var(--rv),var(--rv);background-size:7px 7px;background-repeat:no-repeat;background-position:left 3px top 3px,right 3px top 3px,left 3px bottom 3px,right 3px bottom 3px}.pill{display:inline-flex;align-items:center;gap:.5em;min-height:44px;padding:0 20px;background-color:var(--surface);border:1px solid var(--rule);font-size:.875rem;transition:background-color .2s,border-color .2s}.pill:hover{background-color:var(--surface-2);border-color:#474747}.pill span{transition:transform .45s var(--ease)}.pill:hover span{transform:translate(3px)}.pill[href^="#"]:hover span,.pill[href$="#work"]:hover span{transform:translateY(2px)}.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);padding-inline:var(--margin)}.grid .grid{padding-inline:0}.lines{display:block}.line{display:block;overflow:hidden;padding:.04em .08em .12em;margin:-.04em -.08em -.12em}.line>span{display:inline-block}.lines-narrow{display:none}@media(max-width:767px){.lines-wide{display:none}.lines-narrow{display:block}}.site-header{position:relative;z-index:5;align-items:start;padding-top:16px;padding-bottom:16px}.site-header--home{position:absolute;inset:0 0 auto}.header-mark{grid-column:1 / span 2;display:inline-flex;align-self:start;justify-self:start;min-width:44px;min-height:44px}.header-mark img{width:auto;height:44px}.site-header--home .header-mark img{height:clamp(56px,7vw,96px)}.hero-nav{grid-column:3 / span 6;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--gutter)}.hero-nav-head{font-size:.9375rem;line-height:1.4;margin-bottom:2px}.hero-nav .link{min-height:28px;font-size:.9375rem;background-position:left calc(50% + .62em)}.hero-nav .link:hover{background-position:right calc(50% + .62em)}.hero-time{grid-column:9 / span 1;display:grid;justify-items:start;gap:4px;font-size:.5625rem;line-height:1.2;letter-spacing:.04em;text-transform:uppercase;color:var(--text-2)}.hero-scroll{grid-column:11 / span 2;justify-self:end;display:grid;justify-items:end;gap:8px;font-size:.75rem;color:var(--text-2)}.hero-scroll:after{content:"";width:1px;height:92px;background:var(--rule)}.site-nav{grid-column:5 / span 8;justify-self:end}.site-nav ul{display:flex;gap:clamp(16px,2.4vw,36px)}.nav-link{display:inline-flex;align-items:center;min-height:44px;font-size:.9375rem;color:var(--text-2);transition:color .2s}.nav-link:hover,.nav-link.active{color:var(--text)}.menu-btn{display:none;grid-column:7 / span 6;justify-self:end;align-items:center;gap:10px;min-height:44px;padding-inline:4px;font-size:.9375rem}.menu-btn:after{content:"";width:18px;height:7px;border-block:1px solid currentColor}@media(max-width:1023px){.hero-nav,.hero-time,.hero-scroll,.site-nav{display:none}.menu-btn{display:inline-flex}.header-mark{grid-column:1 / span 6}.site-header--home .header-mark img{height:48px}}.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;padding:96px var(--margin) 24px;overflow:hidden}.lockup{--size: min(38vh, 29vw);display:flex;justify-content:space-between;align-items:center;margin-block:auto;font-size:var(--size);font-weight:430;line-height:.78;letter-spacing:-.045em;-webkit-user-select:none;user-select:none}.lockup-item{display:block;overflow:hidden;padding:.04em .02em .02em;will-change:transform}.lockup-item>span{display:block}.lockup-mark img{height:.72em;width:auto}.hero-text{position:relative;align-self:center;margin-top:40px;text-align:center;font-size:clamp(1.3rem,1rem + .9vw,1.85rem);line-height:1.14;letter-spacing:-.02em}.hero-name{font:inherit}.hero-support{margin-top:1.1em;font-size:var(--fs-meta);letter-spacing:0;color:var(--text-2)}.hero-ctas{display:flex;flex-wrap:wrap;gap:8px;margin-top:40px}@media(min-width:1024px)and (min-aspect-ratio:6 / 5){.hero{display:block;min-height:max(100svh,620px);padding:0}.lockup{position:absolute;left:0;right:0;top:max(150px,23vh);margin:0;padding-inline:var(--margin)}.hero-text{position:absolute;left:50%;bottom:max(56px,8vh);margin:0;transform:translate(-50%);white-space:nowrap}.hero-ctas{position:absolute;left:var(--margin);bottom:var(--margin);flex-direction:column;align-items:flex-start;margin:0}}@media(max-width:599px){.lockup{--size: min(38vh, 34vw)}}@media(max-width:1023px),(max-aspect-ratio:6 / 5){.hero-text .corners{inset:-18px -16px}}.intro-wait .lockup,.intro-running .site-header--home,.intro-running .hero-text,.intro-running .hero-ctas{opacity:0}.motion.intro-done .site-header--home,.motion.intro-done .hero-text,.motion.intro-done .hero-ctas{animation:chrome-in .8s var(--ease-soft) both}.motion.intro-done .hero-text{animation-delay:.12s}.motion.intro-done .hero-ctas{animation-delay:.24s}@keyframes chrome-in{0%{opacity:0;transform:translateY(10px)}}.motion.intro-done .hero-text{animation-name:chrome-in-centered}@keyframes chrome-in-centered{0%{opacity:0;translate:0 10px}}.perspective{display:grid;justify-items:center;gap:clamp(56px,9vh,104px);padding:calc(var(--section) * .9) var(--margin) calc(var(--section) * .8)}.persp{display:grid;grid-template-columns:5px minmax(0,1fr) 5px;align-items:start;column-gap:clamp(24px,6vw,96px);width:min(100%,860px)}.persp-mark{width:5px;height:5px;margin-top:.75em;background:var(--text);font-size:clamp(1.45rem,1rem + 1.3vw,2.25rem)}.persp-text{text-align:center;font-size:clamp(1.45rem,1rem + 1.3vw,2.25rem);line-height:1.12;letter-spacing:-.022em}.persp-text em{font-size:1.12em;line-height:.9}@media(max-width:599px){.persp{column-gap:14px}}.work{padding-bottom:var(--section)}.work-meta{align-items:start;row-gap:8px;font-size:var(--fs-meta)}.work-meta .micro{grid-column:1 / span 2}.work-meta-label{grid-column:3 / span 4}.work-meta-range{grid-column:7 / span 6}.work-head{margin-top:clamp(64px,12vh,150px);margin-bottom:18px}.work-title{grid-column:7 / span 6;font-size:1rem;font-weight:400;line-height:1.3}.work-title em{font-size:1.3em}.work-sub{display:block;color:var(--text-2)}.work-grid{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:3px;row-gap:clamp(56px,11vh,140px);padding-inline:var(--margin)}.tile-wide{grid-column:span 2}.tile-link{display:grid;gap:12px}.tile-link:focus-visible{outline-offset:4px}.tile-plate{display:grid;place-items:center;height:clamp(260px,33vw,540px);overflow:hidden;background:var(--surface);transition:background-color .4s var(--ease-soft)}.tile-plate .project-logo{color:var(--text);transition:transform .9s var(--ease)}.project-logo.logo-symbol{width:clamp(52px,6.4vw,96px);height:auto}.project-logo.logo-stack{width:clamp(92px,10.5vw,160px);height:auto}.tile-caption{display:grid;font-size:1.0625rem;line-height:1.3}.tile-role{color:var(--text-2)}.tile-status{margin-top:4px;font-size:var(--fs-meta);color:var(--text-2)}@media(hover:hover){.tile-link:hover .tile-plate{background-color:var(--surface-2)}.tile-link:hover .project-logo{transform:scale(1.025)}.tile-link:hover .tile-title{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}}.cursor-tag{position:fixed;top:0;left:0;z-index:60;display:inline-flex;gap:.4em;padding:6px 10px;background:var(--accent);color:var(--accent-ink);font-size:.75rem;line-height:1.2;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .18s}.cursor-tag[data-show=true]{opacity:1}@media(hover:none){.cursor-tag{display:none}}.work-all{margin-top:clamp(56px,10vh,120px);padding-inline:var(--margin)}@media(max-width:1023px){.work-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:48px}.tile-plate{height:auto;aspect-ratio:3 / 4}.tile-wide .tile-plate{aspect-ratio:16 / 9}.work-title{grid-column:5 / span 8}}@media(max-width:599px){.work-meta .micro{grid-column:1 / span 4}.work-meta-label{grid-column:5 / span 4}.work-meta-range{grid-column:9 / span 4}.work-title{grid-column:1 / -1}.tile-caption{font-size:.9375rem}.project-logo.logo-symbol{width:44px}.project-logo.logo-stack{width:84px}}.site-footer{position:relative;padding:calc(var(--section) * .9) var(--margin) 0;border-top:1px solid var(--rule)}.footer-title{font-family:var(--serif);font-weight:400;font-size:clamp(3rem,1rem + 6.6vw,8.5rem);line-height:.94;letter-spacing:-.012em;text-align:center}.footer-note{max-width:46ch;margin:24px auto 0;text-align:center;font-size:.9375rem;color:var(--text-2)}.footer-grid{--dot: linear-gradient(var(--text) 0 0);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:clamp(64px,12vh,140px);background-image:var(--dot),var(--dot),var(--dot),var(--dot),var(--dot),var(--dot),var(--dot),var(--dot),var(--dot);background-size:5px 5px;background-repeat:no-repeat;background-position:0 0,50% 0,100% 0,0 50%,50% 50%,100% 50%,0 100%,50% 100%,100% 100%}.footer-cell{display:grid;place-items:center;min-height:clamp(120px,18vh,170px);padding:16px}.footer-link{display:inline-flex;align-items:center;gap:.4em;min-height:44px;font-size:clamp(1.05rem,.9rem + .6vw,1.45rem);letter-spacing:-.01em}.footer-link span{transition:transform .45s var(--ease)}.footer-link:hover span{transform:translate(4px)}.footer-link[target=_blank]:hover span{transform:translate(3px,-3px)}.footer-end{margin-top:clamp(64px,12vh,150px);text-align:center}.footer-mark{display:inline-block}.footer-mark img{height:26px;width:auto}.signature{margin-top:18px;font-weight:460;font-size:calc((100vw - 2 * var(--margin)) * .2);line-height:.82;letter-spacing:-.055em;white-space:nowrap;-webkit-user-select:none;user-select:none}.footer-bar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;margin-top:20px;padding-block:12px;font-size:var(--fs-meta);line-height:1.3;color:var(--text-2);text-align:center}.footer-bar>*+*{border-left:1px solid var(--rule)}.to-top{display:inline-flex;justify-content:center;align-items:center;gap:.4em;min-height:44px;color:var(--text)}.to-top span{transition:transform .45s var(--ease)}.to-top:hover span{transform:translateY(-3px)}.footer-copy{padding:8px 0 24px;font-size:.75rem;color:var(--text-2);text-align:left}@media(max-width:767px){.footer-grid{grid-template-columns:1fr;background-image:var(--dot),var(--dot),var(--dot),var(--dot),var(--dot),var(--dot),var(--dot),var(--dot),var(--dot),var(--dot);background-position:0 0,100% 0,0 33.333%,100% 33.333%,0 66.666%,100% 66.666%,0 100%,100% 100%,0 0,0 0}.footer-grid .footer-cell{min-height:96px}.footer-bar{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:8px}.footer-bar>*:nth-child(3){border-left:0}}.backdrop{position:fixed;inset:0;z-index:40;background:#08080880;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;visibility:hidden;transition:opacity .3s var(--ease-soft),visibility 0s linear .3s}.backdrop[data-open=true]{opacity:1;visibility:visible;transition:opacity .3s var(--ease-soft),visibility 0s}.dock{position:fixed;left:50%;bottom:max(16px,env(safe-area-inset-bottom));z-index:50;width:min(336px,calc(100vw - 2 * var(--margin)));transform:translate(-50%,calc(100% + 32px));transition:transform .52s var(--ease)}.dock[data-visible=true]{transform:translate(-50%)}.intro-running .dock{visibility:hidden}.dock-bar{position:relative;z-index:2;display:grid;grid-template-columns:44px minmax(0,1fr) minmax(0,1fr);gap:3px;height:44px}.dock-mark,.dock-toggle,.dock-resume,.directory-tile{background-color:var(--accent);color:var(--accent-ink);transition:background-color .18s}.dock-mark:hover,.dock-toggle:hover,.dock-resume:hover,.directory-tile:hover{background-color:var(--accent-hi)}.dock-mark{display:grid;place-items:center}.dock-mark img{height:22px;width:auto;filter:brightness(0)}.dock-toggle,.dock-resume{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 14px;font-size:.8125rem;text-align:left}.dock-icon{position:relative;width:16px;height:7px}.dock-icon:before,.dock-icon:after{content:"";position:absolute;left:0;right:0;height:1px;background:currentColor;transition:transform .32s var(--ease)}.dock-icon:before{top:0}.dock-icon:after{bottom:0}.dock[data-open=true] .dock-icon:before{transform:translateY(3px) rotate(45deg)}.dock[data-open=true] .dock-icon:after{transform:translateY(-3px) rotate(-45deg)}.dock :focus-visible{outline:2px solid var(--text);outline-offset:2px}.directory{position:absolute;left:0;right:0;bottom:calc(100% + 3px);display:grid;gap:3px;visibility:hidden;transition:visibility 0s linear .36s}.dock[data-open=true] .directory{visibility:visible;transition:visibility 0s}.directory-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}.directory li{opacity:0;transform:translateY(18px);transition:opacity .22s var(--ease-soft),transform .38s var(--ease)}.dock[data-open=true] .directory li{opacity:1;transform:none;transition-delay:calc(var(--i) * 26ms)}.directory-tile{display:grid;grid-template-rows:1fr auto;aspect-ratio:1 / .82;padding:10px 12px;font-size:.8125rem;line-height:1.2}.directory-arrow{justify-self:end;transition:transform .35s var(--ease)}.directory-tile:hover .directory-arrow{transform:translate(3px)}.page-head{padding-top:clamp(40px,8vh,96px);padding-bottom:clamp(56px,10vh,120px);row-gap:18px}.page-head .label{grid-column:2 / -1}.page-title{grid-column:2 / -1;font-family:var(--serif);font-weight:400;font-size:var(--fs-display);line-height:.92;letter-spacing:-.012em}.page-lead{grid-column:5 / span 6;font-size:var(--fs-lead);line-height:1.28;letter-spacing:-.012em}.not-found{min-height:60vh}@media(max-width:767px){.page-head .label,.page-title,.page-lead{grid-column:1 / -1}}.index-list{padding-inline:var(--margin);padding-bottom:var(--section)}.index-list>li:not(.index-row-head){border-top:1px solid var(--rule)}.index-list>li:last-child{border-bottom:1px solid var(--rule)}.index-row{padding-inline:0;align-items:center;min-height:112px;padding-block:14px;font-size:.9375rem;line-height:1.4}.index-row-head{min-height:0;padding-block:0 10px;font-size:.75rem;color:var(--text-2)}.index-num{grid-column:1 / span 1}.index-thumb{grid-column:2 / span 2;display:grid;place-items:center;aspect-ratio:4 / 3;background:var(--surface);transition:background-color .3s}.index-thumb .project-logo.logo-symbol{width:30%}.index-thumb .project-logo.logo-stack{width:40%}.index-row-head .index-title{grid-column:2 / span 5}.index-title{grid-column:4 / span 3;display:grid;gap:4px;font-size:1.2rem;letter-spacing:-.01em;line-height:1.2}.index-row-head .index-title{font-size:inherit}.index-title em{font-size:1.1em;color:var(--text-2)}.index-desc{font-size:.875rem;line-height:1.45;color:var(--text-2);letter-spacing:0}.index-role{grid-column:7 / span 2}.index-status{grid-column:9 / span 2}.index-year{grid-column:11 / span 2;display:flex;justify-content:space-between;gap:12px;color:var(--text-2)}.index-key{display:none}.arrow{display:inline-block;transition:transform .5s var(--ease)}@media(hover:hover){a.index-row:hover .index-thumb{background:var(--surface-2)}a.index-row:hover .arrow{transform:translate(5px)}}@media(max-width:899px){.index-row-head{display:none}.index-row{row-gap:8px;align-items:start}.index-num{grid-column:1 / span 12}.index-thumb{grid-column:1 / span 4;grid-row:2 / span 3}.index-title,.index-role,.index-status,.index-year{grid-column:5 / span 8}.index-key{display:inline;color:var(--text-2)}}.cs-head{padding-top:clamp(40px,8vh,96px);row-gap:10px;align-items:end}.cs-crumb{grid-column:2 / span 5;font-size:var(--fs-meta)}.cs-crumb-right{grid-column:7 / span 6}.cs-title{grid-column:2 / -1;margin-top:clamp(24px,5vh,56px);font-family:var(--serif);font-weight:400;font-size:var(--fs-display);line-height:.92;letter-spacing:-.012em}.cs-subtitle{grid-column:2 / -1;font-size:clamp(1.6rem,1rem + 2.4vw,3.4rem);line-height:1;color:var(--text-2)}.cs-side{grid-column:1 / span 3;margin-top:clamp(40px,9vh,110px)}.cs-summary{grid-column:5 / span 5;margin-top:clamp(40px,9vh,110px);font-size:var(--fs-lead);line-height:1.32;letter-spacing:-.01em}.cs-plate{margin:clamp(48px,9vh,110px) var(--margin) 0}.cs-plate-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:32px;font-size:.75rem;color:var(--text-2)}.cs-plate-link{display:inline-flex;align-items:center;gap:.35em;min-height:44px;color:var(--text)}.cs-plate-logo{display:grid;place-items:center;height:clamp(280px,56vh,640px);background:var(--surface)}.cs-plate-logo .project-logo.logo-symbol{width:clamp(72px,9vw,140px)}.cs-plate-logo .project-logo.logo-stack{width:clamp(120px,14vw,210px)}.cs-overview{margin-top:28px;margin-bottom:clamp(80px,13vh,160px);align-items:start;row-gap:14px}.cs-overview .label{grid-column:1 / span 3}.cs-facts{grid-column:7 / span 6;border-top:1px solid var(--rule)}.cs-facts>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:var(--gutter);padding:9px 0;border-bottom:1px solid var(--rule);font-size:var(--fs-meta);line-height:1.4}.cs-facts dt{color:var(--text-2)}@media(max-width:1023px){.cs-summary,.cs-facts{grid-column:4 / span 9}}@media(max-width:767px){.cs-crumb{grid-column:1 / span 7}.cs-crumb-right{grid-column:8 / span 5;justify-self:end}.cs-title,.cs-subtitle,.cs-summary,.cs-facts,.cs-overview .label{grid-column:1 / -1}.cs-side{display:none}.cs-summary{margin-top:32px}}.cs-hero{margin-top:clamp(48px,9vh,110px)}.media-block{row-gap:32px;margin-bottom:clamp(72px,12vh,150px)}.figure{display:grid;gap:10px}.figure-frame{position:relative;overflow:hidden;background:var(--surface)}.figure-frame img,.figure-frame video{width:100%;height:auto}.figure-caption .num{flex:none;white-space:nowrap}.figure-caption{display:flex;gap:16px;font-size:var(--fs-meta);line-height:1.4;color:var(--text-2)}.media-full .figure{grid-column:1 / -1}.media-pair .figure:nth-child(1){grid-column:1 / span 6}.media-pair .figure:nth-child(2){grid-column:7 / span 6}.media-plates .figure-frame{padding:clamp(24px,5vw,72px)}.media-plates .figure-frame img{max-height:78vh;width:auto;margin-inline:auto}.media-phones .figure{grid-column:span 4}.media-phones .figure-frame{padding:clamp(20px,3.4vw,52px) clamp(20px,3.6vw,56px)}.media-phones .figure-frame img{max-height:72vh;width:auto;margin-inline:auto}@media(max-width:767px){.media-pair .figure:nth-child(n){grid-column:1 / -1}.media-phones{grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:72%;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;padding-bottom:8px}.media-phones .figure{grid-column:auto;scroll-snap-align:start}}.video{position:relative}.video video{display:block;width:100%;height:auto}.cs-section{row-gap:18px;margin-inline:var(--margin);padding-inline:0;padding-top:22px;margin-bottom:clamp(80px,14vh,170px);border-top:1px solid var(--rule)}.cs-label{grid-column:1 / span 3}.cs-label .num{margin-right:.35em}.cs-body{grid-column:5 / span 7;display:grid;gap:20px;justify-items:start}.cs-body-wide{grid-column:5 / span 8}.cs-heading{font-family:var(--serif);font-weight:400;font-size:var(--fs-h2);line-height:1.02;letter-spacing:-.005em;margin-bottom:8px;max-width:24ch}.cs-body .body-text+.body-text{margin-top:0}.cs-note .cs-heading{color:var(--text)}.cs-note .body-text{color:var(--text);opacity:.86}.rule-list{width:100%;max-width:70ch;border-top:1px solid var(--rule)}.rule-list li{padding:12px 0;border-bottom:1px solid var(--rule);color:var(--text-2);line-height:1.5}.decisions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px var(--gutter);margin-top:8px}.decisions li{display:grid;align-content:start;gap:8px;padding-top:14px;border-top:1px solid var(--rule)}.decisions h3{font-size:1.1875rem;font-weight:500;line-height:1.25;letter-spacing:-.01em}.decisions p{color:var(--text-2);font-size:.9875rem;line-height:1.55;max-width:46ch}.decisions .num{font-size:var(--fs-meta)}.evidence{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px var(--gutter);margin-top:8px}.evidence-col{padding-top:14px;border-top:1px solid var(--text)}.evidence-col:nth-child(2){border-top-style:dashed;border-top-color:var(--text-2)}.evidence-col:nth-child(3){border-top-color:var(--rule)}.evidence-head{font-size:var(--fs-meta);font-weight:500;margin-bottom:12px}.evidence li{font-size:.9375rem;line-height:1.5;color:var(--text-2)}.evidence li+li{margin-top:10px}.compare{width:100%;border-top:1px solid var(--rule)}.compare-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gutter);padding:18px 0;border-bottom:1px solid var(--rule)}.compare-row p:first-child{color:var(--text-2)}.compare-key{display:block;font-size:var(--fs-meta);color:var(--text-2);margin-bottom:6px}.cs-quote{margin-bottom:clamp(80px,14vh,170px);row-gap:18px}.cs-quote blockquote{grid-column:3 / span 9;font-family:var(--serif);font-size:clamp(1.75rem,1rem + 2.4vw,3.2rem);line-height:1.1;letter-spacing:-.005em}.cs-quote figcaption{grid-column:3 / span 9}@media(max-width:1023px){.cs-label,.cs-body,.cs-body-wide{grid-column:1 / -1}.cs-quote blockquote,.cs-quote figcaption{grid-column:1 / -1}}@media(max-width:767px){.decisions,.evidence,.compare-row{grid-template-columns:1fr}}.cs-next{margin-inline:var(--margin);padding-inline:0;padding-top:22px;padding-bottom:var(--section);border-top:1px solid var(--rule);row-gap:18px;align-items:start}.cs-next .label{grid-column:1 / span 3}.cs-next-link{grid-column:4 / span 7;display:grid;gap:6px}.cs-next-title{font-family:var(--serif);font-size:clamp(3rem,1rem + 6vw,7.5rem);line-height:.95;letter-spacing:-.012em}.cs-next-title span{display:inline-block;font-family:var(--sans);font-size:.5em;transition:transform .5s var(--ease)}.cs-next-link:hover .cs-next-title span{transform:translate(8px)}.cs-all{grid-column:11 / span 2;justify-self:end}.cs-all:after{content:none;margin-left:.4em}@media(max-width:767px){.cs-next .label,.cs-next-link,.cs-all{grid-column:1 / -1;justify-self:start}}.story{row-gap:40px;align-items:start;padding-bottom:var(--section)}.story-portrait{grid-column:1 / span 4;margin-top:clamp(40px,12vh,160px);display:grid;gap:10px}.story-text{grid-column:6 / span 7;display:grid;gap:clamp(28px,5vh,48px)}.story-lead{max-width:20ch}.story-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px var(--gutter)}.story-body .body-text+.body-text{margin-top:0}.story-body .body-text:first-child{grid-column:1 / -1;color:var(--text);max-width:54ch}.story-facts{border-top:1px solid var(--rule)}.fact-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,3fr);gap:var(--gutter);padding:12px 0;border-bottom:1px solid var(--rule);font-size:.9375rem;line-height:1.45}.fact-row dt{color:var(--text-2)}.field{row-gap:32px;align-items:start;padding-bottom:var(--section)}.field-item{display:grid;gap:10px}.field-item img{width:100%}.field-1{grid-column:1 / span 3;margin-top:18vh}.field-2{grid-column:5 / span 5}.field-3{grid-column:10 / span 3;margin-top:30vh}.experience{row-gap:24px;margin-inline:var(--margin);padding-inline:0;padding-top:22px;padding-bottom:clamp(72px,12vh,140px);border-top:1px solid var(--rule)}.experience-side{grid-column:1 / span 3;display:grid;align-content:start;gap:6px}.experience-main{grid-column:4 / span 9}.roles{border-top:1px solid var(--rule)}.role{display:grid;gap:10px;padding:18px 0 20px;border-bottom:1px solid var(--rule)}.role-head{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,4fr) minmax(0,3fr);gap:4px var(--gutter);align-items:baseline}.role-org{font-size:1.125rem;font-weight:500;line-height:1.3;letter-spacing:-.01em}.role-title,.role-date{font-size:.9375rem;color:var(--text-2)}.role-date{text-align:right;font-variant-numeric:tabular-nums}.role-loc{white-space:nowrap}.role-points{max-width:76ch;display:grid;gap:6px;font-size:.9375rem;line-height:1.55;color:var(--text-2)}.role-points li{position:relative;padding-left:18px}.role-points li:before{content:"";position:absolute;left:0;top:.75em;width:8px;height:1px;background:var(--text-2)}.role-plain{display:block}.role-link{justify-self:start;min-height:36px;font-size:.9375rem}.role-link:after{content:none;margin-left:.4em}.skills{margin-top:28px}@media(max-width:1023px){.story-portrait{grid-column:1 / span 5;margin-top:0}.story-text{grid-column:7 / span 6}.story-body{grid-template-columns:1fr}.experience-side,.experience-main{grid-column:1 / -1}}@media(max-width:767px){.story-portrait{grid-column:1 / span 9}.story-text{grid-column:1 / -1}.field-1,.field-3{grid-column:span 6;margin-top:0}.field-2{grid-column:1 / -1;grid-row:1}.role-head{grid-template-columns:1fr}.role-date{text-align:left}.fact-row{grid-template-columns:1fr;gap:2px}}.case .cs-hero{margin-top:0}.page{outline:none}.motion .page{animation:page-in .28s var(--ease-soft) backwards}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}}.motion .is-intro .line>span{animation:line-in .9s var(--ease) both;animation-delay:calc(var(--d, .1s) + var(--i, 0) * 90ms)}@keyframes line-in{0%{transform:translateY(110%)}}.motion [data-reveal=lines] .line>span{transition:transform .76s var(--ease);transition-delay:calc(var(--d, 0ms) + var(--i, 0) * 85ms)}.motion [data-reveal=lines]:not([data-revealed]) .line>span{transform:translateY(110%)}.motion [data-reveal=fade]{transition:opacity .65s var(--ease-soft),transform .65s var(--ease);transition-delay:var(--d, 0ms)}.motion [data-reveal=fade]:not([data-revealed]){opacity:0;transform:translateY(20px)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important;transition-delay:0ms!important;scroll-behavior:auto!important}.tile-link:hover .project-logo{transform:none}}:root{--paper: #eceae5;--ink: #0b0b0b;--ink-2: #5b5955;--rule-light: #c8c5bf;--intro-f: min(27vh, 23vw)}.hero{display:block;min-height:max(100svh,560px);padding:0;background:var(--bg)}.hero-text{position:absolute;left:50%;bottom:max(56px,8vh);width:max-content;max-width:calc(100% - 2 * var(--margin) - 48px);margin:0;transform:translate(-50%);white-space:normal;text-shadow:0 1px 18px rgb(0 0 0 / .45)}.hero-support{color:#d8d6d1}.hero-ctas{position:absolute;left:var(--margin);bottom:var(--margin);z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin:0}@media(max-width:767px){.hero-text{bottom:132px;width:calc(100% - 2 * var(--margin) - 24px)}.hero-ctas{flex-direction:row}}.intro{position:fixed;inset:0;z-index:70;pointer-events:none}.intro-wait .intro{opacity:0}.intro-letter,.intro-mark{position:absolute;top:0;left:0;transform-origin:50% 50%;will-change:transform}.intro-letter{z-index:1;padding:.05em .02em 0;font-size:var(--intro-f);font-weight:430;line-height:.74;letter-spacing:-.04em;color:var(--text)}.intro-running .site-header--home{opacity:1}.intro-running .site-header--home>*{opacity:0}.motion.intro-done .site-header--home{animation:none}.motion.intro-done .site-header--home>:not(.header-mark){animation:chrome-in .8s var(--ease-soft) both}.light{background:var(--paper);color:var(--ink)}.light :focus-visible{outline-color:var(--ink)}.light .micro,.light .meta{color:var(--ink-2)}.light .persp-mark{background:var(--ink)}.light .tile-role,.light .tile-status{color:var(--ink-2)}.light .tile-plate{background:#0e0e0e}.light .tile-link:hover .tile-plate{background:#191919}.light .tile-plate .project-logo{color:var(--text)}.light .perspective{padding-top:calc(var(--section) * .75)}.section-meta{align-items:start;row-gap:8px;font-size:var(--fs-meta)}.section-meta .micro{grid-column:1 / span 2}.section-meta-label{grid-column:3 / span 4}.section-meta-range{grid-column:7 / span 6}.work-head,.recent-head{margin-top:clamp(64px,12vh,150px);margin-bottom:18px}.split-title{grid-column:7 / span 6;font-size:1rem;font-weight:400;line-height:1.3}.split-title em{font-size:1.3em}.split-sub{display:block;color:var(--ink-2)}@media(max-width:1023px){.split-title{grid-column:5 / span 8}}@media(max-width:599px){.section-meta .micro{grid-column:1 / span 4}.section-meta-label{grid-column:5 / span 4}.section-meta-range{grid-column:9 / span 4}.split-title{grid-column:1 / -1}}.pill-light{background-color:transparent;border-color:var(--ink);color:var(--ink)}.pill-light:hover{background-color:#e1dfda;border-color:var(--ink)}.pill-dark{background-color:var(--ink);border-color:var(--ink);color:var(--paper)}.pill-dark:hover{background-color:#262626;border-color:#262626}.follower{position:fixed;top:0;left:0;z-index:60;display:grid;width:112px;pointer-events:none;opacity:0;transition:opacity .18s}.follower[data-show=true]{opacity:1}.follower-plate{display:grid;place-items:center;aspect-ratio:1;background:var(--accent);color:var(--accent-ink)}.follower-plate .project-logo.logo-symbol{width:38px}.follower-plate .project-logo.logo-stack{width:56px;filter:brightness(0)}.follower-label{padding:5px 8px;background:var(--accent-ink);color:var(--accent);font-size:.6875rem;white-space:nowrap}@media(hover:none){.follower{display:none}}.offer{position:relative;margin:0 var(--margin);padding:22px 0 clamp(80px,14vh,160px)}.offer-dot{position:absolute;top:0;width:5px;height:5px;border:1px solid var(--ink);border-radius:50%}.offer-dot-tl{left:0}.offer-dot-tc{left:50%;translate:-50% 0}.offer-dot-tr{right:0}.offer-controls{display:flex;justify-content:center;align-items:center;gap:28px;margin-top:18px}.offer-arrow{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--rule-light);font-size:.9375rem;transition:background-color .2s,border-color .2s}.offer-arrow:hover{background:#e1dfda;border-color:var(--ink)}.offer-count{min-width:64px;font-size:var(--fs-meta);text-align:center;font-variant-numeric:tabular-nums}.offer-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:var(--gutter);margin-top:clamp(48px,9vh,110px);min-height:clamp(320px,42vh,460px)}.offer-graphic{position:relative;height:clamp(260px,34vh,380px)}.pass{position:absolute;left:18%;top:50%;display:grid;grid-template-rows:auto 1fr auto;width:min(440px,72%);aspect-ratio:1.9 / 1;padding:16px 20px 16px 30px;background:var(--accent);color:var(--accent-ink);translate:0 -50%;rotate:-9deg}.pass:before{content:"";position:absolute;left:14px;top:10px;bottom:10px;border-left:1.5px dashed rgb(8 8 8 / .35)}.pass-back{left:4%;top:56%;background:#c34b46;rotate:-17deg}.pass-back .pass-no{align-self:start;font-size:.75rem}.pass-top{display:flex;justify-content:space-between;font-size:.6875rem;letter-spacing:.04em;text-transform:uppercase}.pass-title{align-self:center;font-size:clamp(1.6rem,1rem + 1.6vw,2.4rem);line-height:1;letter-spacing:-.03em}.pass-mark .cube-mark{height:28px}.pass-code{position:absolute;right:20px;bottom:18px;width:38%;height:26px;background:repeating-linear-gradient(90deg,var(--accent-ink) 0 2px,transparent 2px 4px,var(--accent-ink) 4px 5px,transparent 5px 8px,var(--accent-ink) 8px 11px,transparent 11px 13px)}.offer-text{position:relative;display:grid;justify-items:center;gap:18px;max-width:30ch;margin-inline:auto;text-align:center}.offer-title{font-size:clamp(1.25rem,1rem + .7vw,1.6rem);font-weight:400;letter-spacing:-.015em}.offer-copy{font-size:clamp(1.15rem,1rem + .6vw,1.5rem);line-height:1.2;letter-spacing:-.015em}.offer-mark{position:absolute;top:.5em;width:5px;height:5px;background:var(--ink)}.offer-mark-l{left:-48px}.offer-mark-r{right:-48px}.motion .offer-body .pass{animation:pass-in .7s var(--ease) both}.motion .offer-body .pass-back{animation-delay:60ms}.motion .offer-body .offer-text{animation:chrome-in .6s var(--ease-soft) both}@keyframes pass-in{0%{opacity:0;translate:0 -40%;rotate:-2deg}}@media(max-width:767px){.offer-body{grid-template-columns:1fr}.offer-graphic{height:240px}.pass{left:14%;width:76%}.offer-mark-l{left:-18px}.offer-mark-r{right:-18px}}.recent{padding-bottom:var(--section)}.recent-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;padding-inline:var(--margin)}.recent-card{display:grid;gap:12px}.recent-media{display:block;aspect-ratio:1 / 1.08;overflow:hidden;background:#0e0e0e}.recent-media picture,.recent-media img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}.recent-plate{display:grid;place-items:center;height:100%;color:var(--text)}.recent-plate .cube-mark{height:56px}.recent-title{font-size:.9375rem;line-height:1.3}.recent-meta{font-size:var(--fs-meta);line-height:1.4;color:var(--ink-2)}@media(hover:hover){.recent-card:hover img{transform:scale(1.025)}.recent-card:hover .recent-title{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}}@media(max-width:1023px){.recent-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:40px}}.signature-band{position:relative;margin-top:18px;padding:.6vw 0 1.4vw;color:var(--text);overflow:hidden;cursor:default}.signature-lit{position:absolute;inset:0;padding:inherit;background:var(--accent);color:var(--accent-ink);clip-path:inset(100% 0 0 0);transition:clip-path .75s var(--ease)}.signature-band:hover .signature-lit,.signature-band[data-lit=true] .signature-lit{clip-path:inset(0 0 0 0)}.signature-band .signature{margin:0;font-size:calc((100vw - 2 * var(--margin)) * .19);line-height:.86;text-align:center}.wipe{display:none}.motion .wipe{position:fixed;inset:0;z-index:90;display:block;background:var(--accent);pointer-events:none;clip-path:polygon(100% 0,115% 0,115% 100%,115% 100%);animation:wipe .56s var(--ease-io) both}@keyframes wipe{0%{clip-path:polygon(-15% 0,115% 0,115% 100%,0% 100%)}to{clip-path:polygon(100% 0,115% 0,115% 100%,115% 100%)}}.cs-live{position:relative;display:grid;justify-items:center;gap:6px;margin:0 var(--margin) clamp(80px,12vh,140px);padding-top:clamp(80px,14vh,160px)}.cs-live-dot{position:absolute;top:0;width:5px;height:5px;background:var(--text)}.cs-live-dot:nth-child(1){left:0}.cs-live-dot:nth-child(2){left:50%;translate:-50% 0}.cs-live-dot:nth-child(3){right:0}.cs-live-link{display:inline-flex;align-items:baseline;gap:.18em;font-family:var(--serif);font-size:clamp(3.4rem,1rem + 7vw,9rem);line-height:1;letter-spacing:-.012em}.cs-live-link span{font-family:var(--sans);font-size:.42em;transition:translate .45s var(--ease)}.cs-live-link:hover span{translate:6px -6px}.koi-mark{display:block;width:auto;height:48px}.site-header--home .header-mark .koi-mark{height:clamp(64px,7.4vw,104px)}.dock-mark .koi-mark{height:32px}.footer-mark .koi-mark{height:44px}.pass-mark .koi-mark{height:40px}.recent-plate .koi-mark{height:72px}@media(max-width:1023px){.site-header--home .header-mark .koi-mark{height:56px}}.intro-mark{z-index:2;width:calc(var(--intro-f) * .6);height:calc(var(--intro-f) * .76)}.intro-mark img{position:relative;width:100%;height:100%;object-fit:contain}.intro-mark-disc{position:absolute;inset:12% 10%;border-radius:50%;background:var(--bg)}.resume{padding-bottom:var(--section)}.resume-head{margin-top:clamp(64px,12vh,150px);margin-bottom:18px}.resume-list{margin-inline:var(--margin);border-top:1px solid var(--ink)}.resume-row{border-bottom:1px solid var(--rule-light)}.resume-row summary,.resume-summary{display:grid;grid-template-columns:3rem minmax(0,4fr) minmax(0,4fr) minmax(0,2fr) 2rem;align-items:baseline;gap:var(--gutter);min-height:56px;padding:16px 0;font-size:1.0625rem;line-height:1.3;list-style:none}.resume-row summary{cursor:pointer}.resume-row summary::-webkit-details-marker{display:none}.resume-row summary:hover .resume-org{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}.resume-num,.resume-role,.resume-date{color:var(--ink-2)}.resume-num{font-size:var(--fs-meta);font-variant-numeric:tabular-nums}.resume-date{text-align:right;font-size:.9375rem;font-variant-numeric:tabular-nums}.resume-toggle{position:relative;justify-self:end;width:12px;height:12px}.resume-toggle:before,.resume-toggle:after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--ink);transition:transform .3s var(--ease)}.resume-toggle:after{transform:rotate(90deg)}.resume-row[open] .resume-toggle:after{transform:rotate(0)}.resume-body{display:grid;gap:10px;padding:0 0 22px calc(3rem + var(--gutter));max-width:82ch;font-size:.9875rem;line-height:1.55;color:var(--ink-2)}.resume-body ul{display:grid;gap:6px}.resume-body li{position:relative;padding-left:18px}.resume-body li:before{content:"";position:absolute;left:0;top:.75em;width:8px;height:1px;background:var(--ink-2)}.resume-loc{font-size:var(--fs-meta)}.resume-link{justify-self:start;min-height:36px;color:var(--ink)}.resume-link:after{content:none;margin-left:.4em}.motion .resume-row[open] .resume-body{animation:chrome-in .45s var(--ease-soft) both}.resume-actions{display:flex;flex-wrap:wrap;gap:8px;margin:32px var(--margin) 0}@media(max-width:767px){.resume-row summary,.resume-summary{grid-template-columns:2rem minmax(0,1fr) auto;row-gap:2px}.resume-org{grid-column:2}.resume-role{grid-column:2;grid-row:2;font-size:.9375rem}.resume-date{grid-column:2;grid-row:3;text-align:left;font-size:var(--fs-meta)}.resume-toggle{grid-column:3;grid-row:1}.resume-body{padding-left:calc(2rem + var(--gutter))}}.webdev{padding-bottom:var(--section)}.webdev .offer{margin-top:clamp(40px,8vh,96px);padding-bottom:clamp(56px,10vh,120px)}.project{row-gap:28px;align-items:start;padding-top:22px;margin-inline:var(--margin);padding-inline:0;border-top:1px solid var(--ink)}.project-title{grid-column:1 / span 4;font-size:1.125rem}.project-title em{font-size:1.4em}.project-form{grid-column:6 / span 7;align-self:start;align-content:start;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px var(--gutter)}.input-field{display:grid;gap:6px;font-size:var(--fs-meta);color:var(--ink-2)}.input-field-wide{grid-column:1 / -1}.input-field input,.input-field textarea{width:100%;min-height:44px;padding:10px 0;border:0;border-bottom:1px solid var(--ink);border-radius:0;background:transparent;color:var(--ink);font:inherit;font-size:1.0625rem;resize:vertical}.input-field input:focus-visible,.input-field textarea:focus-visible{outline:2px solid var(--ink);outline-offset:4px}.project-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px}.project-note{max-width:46ch;font-size:var(--fs-meta);color:var(--ink-2)}.project-note .link{min-height:0;color:var(--ink)}@media(max-width:1023px){.project-title,.project-form{grid-column:1 / -1}}@media(max-width:599px){.project-form{grid-template-columns:1fr}}.hybrid-hero{display:block;min-height:100svh;padding:168px var(--margin) 40px}.hybrid-stage{max-width:1440px;margin-inline:auto}.hybrid-heading,.hybrid-bottom{display:flex;justify-content:space-between;gap:16px;color:var(--text-2);font-size:.75rem;line-height:1.5}.hybrid-heading{margin-bottom:16px}.hybrid-bottom{margin-top:24px}.hybrid-bottom a{color:var(--text)}.hybrid-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:18px}.intro-panel,.now-panel{border:1px solid #36343c;background:#111113}.intro-panel{display:flex;flex-direction:column}.panel-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 22px;border-bottom:1px solid #36343c;color:#bcb8c7;font-size:.72rem}.panel-caption h2{font:inherit}.intro-panel-body{padding:clamp(28px,4vw,64px);flex:1}.hybrid-hello{font-size:.95rem;color:var(--text-2);margin-bottom:20px}.intro-panel h1{font-size:clamp(3.4rem,6.6vw,7.2rem);font-weight:450;line-height:.95;letter-spacing:-.06em}.intro-panel h1 em{font-weight:400;color:#ed655d;white-space:nowrap}.hybrid-tagline{margin-top:30px;font-size:clamp(1.4rem,2.3vw,2.35rem);letter-spacing:-.025em;line-height:1.23}.hybrid-description{margin-top:22px;max-width:43ch;color:#aaa7ae;font-size:.97rem;line-height:1.65}.hybrid-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px}.hybrid-primary{background:#ed655d;border-color:#ed655d;color:#151119}.hybrid-primary:hover{background:#ff8b81;border-color:#ff8b81;color:#151119}.panel-footer{display:flex;justify-content:space-between;gap:12px;padding:12px 22px;border-top:1px solid #36343c;color:#aaa7ae;font-size:.7rem}.now-dot{width:6px;height:6px;border-radius:50%;background:#ed655d}.now-profile{display:flex;align-items:center;gap:18px;padding:24px;border-bottom:1px solid #2c2b30;font-size:.9rem;line-height:1.5}.now-profile picture{width:72px;height:86px;flex-shrink:0}.now-profile img{width:100%;height:100%;object-fit:cover}.now-profile a,.now-list a{display:block;margin-top:8px;font-size:.75rem;color:#ed655d}.now-list{padding:0 24px}.now-list>div{display:grid;grid-template-columns:76px 1fr;gap:14px;padding:20px 0;border-bottom:1px solid #2c2b30}.now-list dt{font-size:.68rem;color:#aaa7ae;padding-top:3px}.now-list dd{margin:0;font-size:.9rem;line-height:1.45}.now-list strong{font-weight:500}.now-resume{display:flex;justify-content:space-between;gap:12px;padding:20px 24px;font-size:.75rem;color:#aaa7ae}.now-resume span{color:var(--text)}.site-header--home .header-mark .koi-mark{height:48px}.intro{background:#080808}.intro-mark-disc{inset:-4%;border-radius:0}.intro-running .hybrid-stage{clip-path:inset(50%)}.intro-running .light,.intro-running .footer{visibility:hidden}.light>.work{padding-top:64px}.light .work-head{margin-top:48px}.light .perspective{padding-block:48px 80px;gap:24px}.light .persp{min-height:0;padding-block:12px}.light .persp-text{font-size:clamp(1.4rem,3vw,2.7rem)}.tile-plate{overflow:hidden}.tile-cover,.tile-cover img{display:block;width:100%;height:100%}.tile-cover img{object-fit:cover}@media(max-width:1023px){.hybrid-hero{padding-top:112px}.hybrid-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.intro-panel-body{padding:30px 24px}.now-profile,.now-resume{padding:18px}.now-list{padding-inline:18px}.now-list>div{grid-template-columns:1fr;gap:6px;padding-block:14px}}@media(max-width:767px){.hybrid-hero{min-height:auto;padding-top:100px;padding-bottom:32px}.hybrid-grid{grid-template-columns:1fr}.hybrid-heading{flex-direction:column;gap:4px}.intro-panel h1{font-size:clamp(3.3rem,12vw,5rem)}.hybrid-tagline{font-size:1.5rem}.hybrid-bottom{flex-direction:column;gap:8px}.now-list>div{grid-template-columns:76px 1fr;gap:14px;padding-block:18px}}.tile-description{display:block;max-width:62ch;margin:10px 0;font-size:.875rem;line-height:1.6;color:var(--ink-2)}.full-menu{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px var(--margin);border-bottom:1px solid var(--rule);background:var(--bg)}.full-menu .header-mark{align-self:center;align-items:center}.full-menu .header-mark .koi-mark{height:44px}.full-menu .site-nav{display:block}.full-menu .site-nav ul{gap:clamp(18px,3vw,44px)}.full-menu .nav-link.active{text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:1px}.full-menu .nav-link.active{text-decoration-color:var(--accent)}.full-menu .nav-link:hover{color:var(--accent)}@media(max-width:599px){.full-menu{gap:12px;padding-block:12px}.full-menu .header-mark{min-width:32px}.full-menu .header-mark .koi-mark{height:34px}.full-menu .site-nav ul{gap:clamp(12px,3.8vw,20px)}.full-menu .nav-link{font-size:.8125rem}}.zen-hero{display:block;position:relative;min-height:max(680px,100svh);padding:0;background:#080808}.zen-stage{position:absolute;inset:82px 0 0;overflow:hidden}.intro-running .zen-stage{clip-path:inset(50%)}.zen-stage:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,rgb(5 4 8 / .9),transparent 48%),linear-gradient(90deg,rgb(5 4 8 / .42),transparent 58%)}.zen-copy{--zen-name: clamp(3.4rem, 8vw, 8.5rem);--zen-stem: calc(var(--zen-name) * .365);position:absolute;z-index:1;left:var(--margin);right:var(--margin);bottom:clamp(28px,5vh,56px);color:#fff}.zen-name{position:relative;width:fit-content;margin:0 0 0 -.068em;font-family:var(--sans);font-size:var(--zen-name);font-weight:440;line-height:.92;letter-spacing:-.048em;white-space:nowrap;text-shadow:0 2px 30px #080808;cursor:default}.zen-name-red{--pad-x: .1em;--pad-top: .05em;--pad-bottom: .05em;position:absolute;inset:calc(-1 * var(--pad-top)) calc(-1 * var(--pad-x)) calc(-1 * var(--pad-bottom));padding:var(--pad-top) var(--pad-x) var(--pad-bottom);background:var(--accent);color:var(--accent-ink);text-shadow:none;clip-path:inset(0 100% 0 0);pointer-events:none}.zen-roles{margin:clamp(6px,.6vw,10px) 0 0 calc(var(--zen-stem) - .1em);font-size:clamp(.75rem,.62rem + .3vw,.875rem);font-weight:450;letter-spacing:.22em;text-transform:uppercase;color:#ffffffdb;text-shadow:0 1px 10px #080808}.zen-roles span{margin-inline:.55em .35em;color:#ffffff80}.zen-ctas{display:flex;flex-wrap:wrap;gap:10px;margin:clamp(16px,1.5vw,22px) 0 0 var(--zen-stem)}.zen-btn{background-color:#0808086b;border-color:#ffffff4d;color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.zen-btn:hover{background-color:#ffffff1a;border-color:#fff}.zen-btn-primary{background-color:#fff;border-color:#fff;color:#080808}.zen-btn-primary:hover{background-color:#d9d6d1;border-color:#d9d6d1}.playpause{display:grid;place-items:center;width:60px;height:60px;padding:0;border:1px solid rgb(255 255 255 / .32);border-radius:50%;background:#0808088c;color:#fff;transition:color .2s,border-color .2s,background-color .2s}.playpause svg{display:block;width:28px;height:28px;fill:currentColor}.playpause:hover,.playpause:focus-visible{border-color:#fff;background-color:#ffffff1f}@media(max-width:767px){.zen-hero{min-height:max(620px,100svh)}.zen-stage{top:69px}.zen-copy{bottom:32px}.zen-roles{letter-spacing:.16em}.zen-ctas .pill{padding-inline:16px}.playpause{width:52px;height:52px}.playpause svg{width:24px;height:24px}}.tile-demo{margin-bottom:12px}.tile-demo .video{display:grid;place-items:center;width:100%;height:100%}.tile-demo video{width:100%;height:100%;object-fit:contain}.video .playpause{position:absolute;left:14px;bottom:14px}.site-header.full-menu{position:fixed;inset:0 0 auto;z-index:50}html{scroll-padding-top:100px}.work .work-head{display:flex;justify-content:space-between;align-items:end;gap:28px;margin-bottom:36px}.work #work-title{font-size:clamp(2.8rem,5.8vw,6rem);line-height:1;letter-spacing:-.04em}.work #work-title em{font-size:1em}.work #work-title .split-sub{margin-top:22px;font-size:clamp(.875rem,1.2vw,1.1rem);line-height:1.5;letter-spacing:0}.work .work-all-top{min-height:80px;padding:24px 42px;font-size:1.35rem;flex-shrink:0;background:var(--accent);color:#080808;border-color:var(--accent)}.work .work-all-top:hover{background:#f47a73;color:#080808;border-color:#f47a73}.work-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.work-grid .tile{position:relative;grid-column:auto;aspect-ratio:1;min-width:0}.work-grid .tile-link{position:absolute;inset:0;display:block}.work-grid .tile-plate{height:100%;width:100%;margin:0}.work-grid .tile-caption{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:end;padding:clamp(20px,2.2vw,36px);background:#080808f0;color:#f2f0eb;opacity:0;transition:opacity .25s ease}.work-grid .tile-description,.work-grid .tile-role,.work-grid .tile-status{color:#ccc}.work-grid .tile-title{font-size:clamp(1.25rem,2vw,1.9rem)}.work-grid .tile:hover .tile-caption,.work-grid .tile:focus-within .tile-caption{opacity:1}.work-grid .tile-demo .playpause{z-index:3;inset:12px 12px auto auto}.perspective-action{padding-inline:var(--margin);text-align:center;margin-top:24px}@media(max-width:1023px){.work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:599px){.work-grid{grid-template-columns:1fr}.work .work-head{align-items:start;flex-direction:column}.work .work-all-top{min-height:68px;padding:20px 32px;font-size:1.2rem}}@media(hover:none){.work-grid .tile-caption{opacity:1;inset:auto 0 0;padding:16px 20px;background:#080808e6}.work-grid .tile-description,.work-grid .tile-role{display:none}}@media(prefers-reduced-motion:reduce){.work-grid .tile-caption{transition:none}}.webdev{overflow:clip}@media(max-width:599px){.zen-ctas{max-width:260px}}.zen-stage{background:#000}.zen-stage:after{display:none}.zen-hero{background:#000}.real-koi{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.koi-water{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:0}.offer-graphic.origami-graphic{height:auto;aspect-ratio:3/2;display:grid;align-items:center}.origami-graphic img{display:block;width:100%;height:auto;mix-blend-mode:multiply;-webkit-mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent);transition:transform .8s var(--ease)}@media(hover:hover)and (prefers-reduced-motion:no-preference){.origami-graphic:hover img{transform:translateY(-5px) rotate(-1deg)}}.origami-graphic img{mix-blend-mode:normal;-webkit-mask-image:none;mask-image:none}.recent .recent-head{margin-top:0;margin-bottom:28px}.recent #recent-title{grid-column:1 / -1;font-size:clamp(1.9rem,4.4vw,4.5rem);line-height:1.08;letter-spacing:-.025em;white-space:nowrap}.recent #recent-title em{font-size:1em}@media(max-width:599px){.recent .recent-head{margin-bottom:20px}.recent #recent-title{font-size:clamp(1.5rem,7.4vw,2.75rem)}}.resume #resume-title{grid-column:1 / -1;font-size:clamp(2rem,4.4vw,4.5rem);line-height:1.08;letter-spacing:-.025em}.resume #resume-title em{font-size:1em}.resume #resume-title .split-sub{margin-top:18px;font-size:1rem;line-height:1.5;letter-spacing:0}@media(max-width:599px){.resume #resume-title{font-size:clamp(1.8rem,7.4vw,2.75rem)}}.project-logo.loop-wordmark{width:auto;font-family:var(--sans);font-size:clamp(3rem,6vw,6rem);font-weight:550;letter-spacing:-.075em;line-height:1}.index-thumb{container-type:inline-size}.index-thumb .project-logo.loop-wordmark{width:100%;text-align:center;font-size:30cqi;padding-right:.075em}.work-grid .tile-demo-loop,.tile-demo-loop .video,.tile-demo-loop video{background:#fff}.project-logo.blueprint-wordmark{width:auto;font-family:var(--sans);font-size:clamp(2rem,5vw,5rem);font-weight:550;letter-spacing:-.06em;line-height:1}.index-thumb .project-logo.blueprint-wordmark{width:100%;text-align:center;font-size:17cqi}.offer-controls .offer-arrow{width:auto;min-width:72px;padding-inline:12px;font-size:.875rem}@media(max-width:599px){.glyph{display:none}}.role-photo{margin:20px 0 4px;width:100%}.role-photo picture,.role-photo img{display:block;width:100%;height:auto}.role-photo img{aspect-ratio:auto;object-fit:contain}.role-photo figcaption{margin-top:12px}.competition-photos{padding:0 var(--margin) var(--section);scroll-margin-top:100px}.competition-photos h2{margin-bottom:28px}.competition-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start}.competition-photo-grid figure{margin:0}.competition-photo-grid img{display:block;width:100%;height:auto}.competition-photo-grid figcaption{margin-top:12px}.recent-grid{row-gap:40px}.recent-media:has(img[src*=field-salesforce]),.recent-media:has(img[src*=field-ibm]){background:var(--paper)}.recent-media img[src*=field-salesforce],.recent-media img[src*=field-ibm]{object-fit:contain}@media(min-width:1024px){.recent-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:767px){.competition-photo-grid{grid-template-columns:1fr}}.story-portrait{width:100%;max-width:280px;margin-top:32px}.story-portrait img{display:block;width:100%;height:auto}.role-photo{max-width:520px}.about-photo-mix{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;align-items:start;padding:0 var(--margin) 64px;scroll-margin-top:110px}.about-moment{margin:0;min-width:0}.about-moment picture{display:flex;align-items:end;height:240px}.about-moment img{display:block;width:auto;max-width:100%;height:auto;max-height:240px;object-fit:contain}.about-moment figcaption{margin-top:10px;font-size:.8125rem}.recent-media{aspect-ratio:3 / 2;max-height:260px}@media(max-width:1023px){.about-photo-mix{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:767px){.story-portrait{max-width:220px;margin-top:8px}.about-photo-mix{gap:24px 16px;padding-bottom:48px}.about-moment picture{height:180px}.about-moment img{max-height:180px}.role-photo{max-width:380px}}.hero-initial,.hero-name-mask,.hero-name-tail{display:inline-block}.hero-name-mask{overflow:clip;vertical-align:bottom;padding-block:.08em;margin-block:-.08em}.intro-running .zen-name-red{visibility:hidden}.story-portrait{max-width:360px}.about-photo-mix{grid-template-columns:repeat(12,minmax(0,1fr));gap:28px;padding-bottom:88px}.about-photo-mix .about-moment-1{grid-column:1 / span 4}.about-photo-mix .about-moment-2{grid-column:6 / span 6;margin-top:85px}.about-photo-mix .about-moment-3{grid-column:2 / span 6;margin-top:12px}.about-photo-mix .about-moment-4{grid-column:9 / span 4;margin-top:95px}.about-moment picture{height:auto}.about-moment img{max-height:320px}@media(max-width:767px){.story-portrait{max-width:300px;grid-column:1 / span 11}.about-photo-mix{gap:24px 14px;padding-bottom:56px}.about-photo-mix .about-moment-1,.about-photo-mix .about-moment-3{grid-column:1 / span 7;margin-top:0}.about-photo-mix .about-moment-2,.about-photo-mix .about-moment-4{grid-column:6 / span 7;margin-top:0}.about-moment img{max-height:240px}}
