@font-face{font-family:ITC Avant Gothic;src:url(/font/ITC%20Avant%20Gothic.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:BasicCommercial;src:url(/font/BasicCommercial%20LT%20Roman%20Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Interstate Bold;src:url(/font/Interstate%20bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--bg: #ffffff;--ink: #0d0e10;--muted: #61666e;--faint: #969ba3;--line: #dfe0e3;--wash: #ffffff;--red: #ff3030;--blue: #2b4dff;--sans: akzidenz-grotesk-next-pro, "Helvetica Neue", Helvetica, Arial, sans-serif;--mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--gutter: clamp(16px, 3vw, 40px);--head-h: clamp(101px, 9.36vw, 134px);--text: 680px;--wide: 1200px}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--head-h) + 12px)}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit}a:focus-visible,button:focus-visible{outline:2px solid var(--blue);outline-offset:3px}img{max-width:100%}.mono{font-family:var(--mono);font-feature-settings:"zero" 0}.muted{color:var(--muted)}.faint{color:var(--faint)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.wrap{max-width:1440px;margin-inline:auto;padding-left:var(--gutter);padding-right:var(--gutter)}.page-msg{padding-block:64px}.ill:hover .ill-cap>span:first-child,.pager a:hover>span:last-child{text-shadow:-1.5px 0 var(--red),1.5px 0 var(--blue)}.noise-px{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges;image-rendering:pixelated}.noise-bg{position:fixed;top:0;left:0;z-index:0;pointer-events:none;display:block}.site-main,.site-foot{position:relative;z-index:1}.site-head{position:sticky;top:0;z-index:20;height:var(--head-h);overflow:hidden;background:var(--bg)}.head-noise{position:absolute;top:0;left:0;display:block;pointer-events:none}.head-glyph{position:absolute;display:block;pointer-events:none}.head-row{position:relative;max-width:1440px;height:100%;margin-inline:auto;padding-inline:var(--gutter);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:28px}.head-path{justify-self:start;min-width:0;max-width:calc(var(--side, 50vw) - var(--gutter) - 12px);display:flex;align-items:baseline;white-space:nowrap}.head-name{flex-shrink:0;font-weight:700;font-size:15px;letter-spacing:-.01em;text-decoration:none}.head-name:hover{text-shadow:-1.5px 0 var(--red),1.5px 0 var(--blue)}.head-run{min-width:0;font-family:var(--mono);font-size:13px;color:var(--muted);text-decoration:none;overflow:hidden;text-overflow:ellipsis}.head-run:hover{color:var(--ink)}.head-nav{display:flex;align-items:baseline;gap:22px;font-size:14.5px}.head-nav a{text-decoration:none;white-space:nowrap}.head-nav a:hover{text-decoration:underline;text-underline-offset:3px}.head-mail{font-family:var(--mono);font-size:12.5px;color:var(--muted)}.head-progress{position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--line)}@media (max-width: 1199px){.head-mail{display:none}}.head-progress>span{display:block;height:100%;background:var(--ink);transform-origin:0 50%;transform:scaleX(0)}.ill-grid{columns:3 260px;column-gap:clamp(16px,2vw,28px)}.ill{display:block;break-inside:avoid;margin-bottom:clamp(20px,2.5vw,36px);text-decoration:none}.ill img{display:block;width:100%;height:auto;background:var(--wash)}.ill-cap{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-top:8px;font-size:14.5px}.ill-cap .mono{font-size:12px}.proj{padding-top:clamp(36px,6vw,88px)}.proj-head{max-width:calc(var(--text) + 2 * var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}.h-page{margin:0;font-size:clamp(34px,4.6vw,64px);line-height:1.02;letter-spacing:-.025em;font-weight:700;text-wrap:balance;overflow-wrap:break-word}.proj-ctx{margin:16px 0 0;font-family:var(--mono);font-size:13px;line-height:1.6;color:var(--muted)}.proj-body{padding-inline:var(--gutter);margin-top:clamp(28px,4vw,48px)}.proj-body>.muted{max-width:var(--text);margin-inline:auto}.proj-body>.nb{display:grid;max-width:var(--wide);margin-inline:auto;grid-template-columns:[wide-start] minmax(0,1fr) [text-start] minmax(0,var(--text)) [text-end] minmax(0,1fr) [wide-end];font-size:18px;line-height:1.62}.nb>*{grid-column:text;margin:0;min-width:0}.nb>*+*{margin-top:.9em}.nb>.nb-media{grid-column:wide}.nb>.nb-media+*,.nb>*+.nb-media{margin-top:1.4em}.nb-p.is-gray{color:var(--muted)}.nb-gap{height:.4em}.nb-h1,.nb-h2,.nb-h3{line-height:1.25;font-weight:700}.nb-h1{font-size:26px}.nb-h2{font-size:21px}.nb-h3{font-size:18px}.nb>.nb-h1,.nb>.nb-h2,.nb>.nb-h3{margin-top:1.8em}.nb-ul,.nb-ol{padding-left:1.3em}.nb-ul li+li,.nb-ol li+li{margin-top:.25em}.nb-quote{padding-left:1em;border-left:2px solid var(--ink);color:var(--muted)}.nb-hr{border:none;border-top:1px solid var(--line);margin-block:1.6em}.nb-callout{display:flex;gap:.8em;padding:1em;background:var(--wash)}.nb-code{font-family:var(--mono);font-size:.85em;padding:.1em .35em;background:var(--wash)}.nb a{text-decoration-thickness:1px;text-underline-offset:3px}.about-intro>.nb{font-size:clamp(19px,1.6vw,23px);line-height:1.45}.about-cv{margin-top:clamp(48px,6vw,88px)}.about-cv .nb-h1{font-size:30px}.about-cv .nb-h2{font-size:13px;font-family:var(--mono);font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.pager{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:20px;margin-top:clamp(64px,8vw,128px);padding-top:18px;border-top:1px solid var(--ink)}.pager a{display:grid;gap:4px;text-decoration:none;font-weight:700;font-size:17px;line-height:1.3}.pager .mono{font-size:12px;font-weight:400}.pager-next{text-align:right}.pager-all{align-self:center;text-align:center}.pager-all .mono{text-decoration:underline;text-underline-offset:3px}.site-foot{margin-top:clamp(72px,10vw,160px);border-top:1px solid var(--ink)}.foot-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px 28px;padding-block:28px clamp(40px,6vw,72px)}.foot-mail{font-size:clamp(22px,2.8vw,40px);font-weight:700;letter-spacing:-.02em;text-decoration:none;overflow-wrap:anywhere}.foot-mail:hover{text-shadow:-1.5px 0 var(--red),1.5px 0 var(--blue)}.foot-links{display:flex;gap:22px;font-family:var(--mono);font-size:13px}.foot-links a{text-decoration:none}.foot-links a:hover{text-decoration:underline;text-underline-offset:3px}html.stage-on{scrollbar-width:none;overscroll-behavior:none;scroll-padding-top:4.5vw}html.stage-on::-webkit-scrollbar{display:none}html.stage-on body{overscroll-behavior:none}.stage{position:fixed;top:0;right:0;bottom:0;left:0;z-index:25;pointer-events:none}.stage-veil{position:fixed;overflow:hidden;z-index:5;cursor:pointer}.stage-thumb{position:absolute;top:0;bottom:0;width:3px;opacity:0;transition:opacity .2s}.stage-thumb>div{position:absolute;left:0;width:100%;background:#000}.stage-page{position:relative}.stage-page.is-pre{opacity:0}.stage-page.is-in{opacity:1;transition:opacity .2s ease .5s}.stage-cv{padding:16.2vw 16.2vw calc(10vh + 4.5vw) 14.5vw}.stage-play{padding:calc(10vh + 4.5vw) 14.5vw 16.2vw 16.2vw}.stage-email{padding:calc(10vh + 10.8vw) 16.2vw 16.2vw 14.5vw}.stage-page .page-msg{padding:0}.stage-page .proj{padding-top:0}.stage-page .proj-body{padding-inline:0;margin-top:0}.stage-page .proj-body>.nb{margin-inline:0;grid-template-columns:[wide-start text-start] minmax(0,var(--text)) [text-end] minmax(0,1fr) [wide-end]}.stage-page .about-cv{margin-top:clamp(48px,6vw,88px)}.stage-play .ill-grid{columns:3 200px}.contact .nb{font-size:clamp(18px,1.75vw,28px);line-height:1.5}.contact .nb>*+*{margin-top:.35em}.contact .nb-h1,.contact .nb-h2,.contact .nb-h3{font-size:inherit;font-weight:400;margin:0}.contact a{text-decoration:none}.contact a:hover{text-shadow:-1.5px 0 var(--red),1.5px 0 var(--blue)}.stage-works{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.stage-works.is-entering{animation:worksIn .2s ease .5s both}@keyframes worksIn{0%{opacity:0}to{opacity:1}}.works{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;font-size:16px;line-height:normal;color:#000;--pw: 90vw;--ph: 90vh;--strip: max(5vw, 32px);--tl-pt: calc(var(--pw) * .1);--tl-pb: calc(var(--pw) * .025)}.works-slider{display:flex;width:200%;height:100%}.works-page{position:relative;width:50%;height:100%;flex-shrink:0}.hero{position:absolute;top:0;right:0;bottom:0;left:0}.hero-canvas{position:absolute;top:0;left:0;bottom:0;right:var(--strip);background:#000;overflow:hidden;overflow:clip;contain:layout paint;touch-action:none;user-select:none;-webkit-user-select:none}.hero-row,.hero-name{position:absolute;left:0;top:0;width:100%;will-change:transform}.hero-inst{position:absolute;display:block;color:inherit;text-decoration:none;-webkit-user-drag:none;-webkit-touch-callout:none}.hero-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;transform:translate(6px,6px);opacity:0;transition:opacity .18s ease}.hero-lift{position:absolute;top:0;right:0;bottom:0;left:0;display:block;transition:transform .25s cubic-bezier(.22,.61,.36,1)}.hero-lift>img,.hero-lift>video{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;object-fit:contain}.hero-title{position:absolute;left:0;bottom:0;padding:.35em .7em;background:#fff;color:#000;white-space:nowrap;font-family:Interstate Bold,sans-serif;font-weight:700;font-size:max(.7vw,11px);letter-spacing:.05em;opacity:0;transition:opacity .18s ease;pointer-events:none}@media (hover: hover){.hero-inst:hover .hero-shade,.hero-inst:hover .hero-title{opacity:1}.hero-inst:hover .hero-lift{transform:translate(-3px,-3px)}}.hero-inst:focus-visible{outline:none}.hero-inst:focus-visible .hero-shade,.hero-inst:focus-visible .hero-title{opacity:1}.hero-inst:focus-visible .hero-lift{transform:translate(-3px,-3px)}.hero-canvas.is-panning .hero-shade,.hero-canvas.is-panning .hero-title{opacity:0;transition:none}.hero-canvas.is-panning .hero-lift{transform:none;transition:none}.hero-name{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 32px;padding:1.5625vw 1.5625vw clamp(12px,2vh,22px);color:#fff}.hero-me{margin:0;font-weight:700;font-size:clamp(30px,3.6vw,54px);line-height:1;letter-spacing:-.03em;white-space:nowrap}.hero-me a{color:inherit;text-decoration:none}.hero-me a:hover,.hero-me a:focus-visible{text-shadow:-2px 0 var(--red),2px 0 var(--blue);outline:none}.hero-brief{margin:0;max-width:52ch;font-size:clamp(15px,1.2vw,18px);line-height:1.4;text-wrap:pretty}.hero-strip,.tl-back{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8em;width:var(--strip);color:#000;text-decoration:none;cursor:pointer;user-select:none;-webkit-user-select:none}.hero-strip{position:absolute;top:0;right:0;bottom:0}.hero-strip-txt,.tl-back-txt{writing-mode:vertical-rl;font-family:Interstate Bold,sans-serif;font-weight:700;font-size:max(.6vw,10px);letter-spacing:.4em}.hero-strip-arw,.tl-back-arw{font-size:max(1.6vw,14px);line-height:1}.hero-strip-arw.is-live{animation:heroNudge 1.6s ease-in-out 3}@media (hover: hover){.hero-strip:hover .hero-strip-arw{animation:heroNudge 1.6s ease-in-out infinite}}@keyframes heroNudge{0%,to{transform:translate(0)}50%{transform:translate(.3vw)}}.tl{position:absolute;top:0;right:0;bottom:0;left:0}.tl-scroll{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-start;overflow-x:auto;overflow-y:hidden;overscroll-behavior:contain;scrollbar-width:none}.tl-scroll::-webkit-scrollbar{display:none}.tl-back{flex-shrink:0;align-self:stretch}.tl-back-txt{transform:rotate(180deg)}.tl-back.is-live .tl-back-arw{animation:tlNudge 1.6s ease-in-out 3}@media (hover: hover){.tl-back:hover .tl-back-arw{animation:tlNudge 1.6s ease-in-out infinite}}@keyframes tlNudge{0%,to{transform:translate(0)}50%{transform:translate(-.3vw)}}.tl-years{display:flex;align-items:flex-start;align-self:stretch;flex-shrink:0;gap:3vw;padding:var(--tl-pt) 5% var(--tl-pb) 0}.tl-group{display:flex;flex-direction:column;align-self:stretch;flex-shrink:0}.tl-year{margin:0 0 .3em;font-family:Interstate Bold,sans-serif;font-weight:700;font-size:24px;line-height:normal;white-space:nowrap}.tl-rule{height:3px;margin-bottom:9.6px;background:#000}.tl-cards{display:flex;flex:1;gap:1.5vw}.tl-card{position:relative;display:block;flex-shrink:0;align-self:stretch;color:inherit;text-decoration:none;width:calc((var(--ph) - var(--tl-pt) - var(--tl-pb) - 48px) * .2933)}.tl-card:focus-visible{outline:none}.tl-shadow{position:absolute;top:0;right:0;bottom:0;left:0;background:#000;will-change:transform}.tl-box{position:relative;display:block;width:100%;height:100%;overflow:hidden;background:#ccc;cursor:pointer}.tl-box.is-wip{background:transparent}.tl-box img{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;object-fit:cover}.tl-over{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:flex-end;padding:1em;background:#000000d9;color:#fff;opacity:0;transition:opacity .2s}.tl-card:hover .tl-over,.tl-card:focus-visible .tl-over{opacity:1}.tl-name{display:block;margin-bottom:.4em;font-family:Interstate Bold,sans-serif;font-weight:700;font-size:110%;line-height:1.3}.tl-ctx{display:block;font-family:BasicCommercial,serif;font-size:90%;line-height:1.35;opacity:.7}.tl-wip{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;border:3px solid #000;pointer-events:none;transition:opacity .2s}.tl-card:hover .tl-wip,.tl-card:focus-visible .tl-wip{opacity:0}.tl-wip>span{writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;font-family:Interstate Bold,sans-serif;font-weight:700;font-size:16px;letter-spacing:.12em}.tl-msg{margin:0;font-family:var(--mono);font-size:13px;color:var(--muted)}.tl-thumb{position:absolute;left:0;right:0;bottom:3px;height:3px;opacity:0;transition:opacity .2s;cursor:grab;touch-action:none}.tl-thumb>div{position:absolute;top:0;height:100%;background:#000}::view-transition-old(root),::view-transition-new(root){animation-duration:.55s;animation-timing-function:cubic-bezier(.4,0,.2,1);animation-fill-mode:both;mix-blend-mode:normal}html[data-vt=fold]::view-transition-old(root){animation-name:vt-fold;z-index:2}html[data-vt=fold]::view-transition-new(root){animation:none;z-index:1}html[data-vt=grow]::view-transition-new(root){animation-name:vt-grow;z-index:2}html[data-vt=grow]::view-transition-old(root){animation:none;z-index:1}@keyframes vt-fold{0%{clip-path:inset(0 0 0 0)}to{clip-path:inset(0 100% 100% 0)}}@keyframes vt-grow{0%{clip-path:inset(0 100% 100% 0)}to{clip-path:inset(0 0 0 0)}}@media (max-width: 767px){:root{--gutter: 18px;--head-h: 48px}.head-row{grid-template-columns:auto minmax(0,1fr);gap:12px}.head-glyph{display:none}.head-path{max-width:52vw}.head-run{font-size:12px}.head-nav{justify-content:flex-end;gap:14px;font-size:14px}.ill-grid{columns:2}.proj-body>.nb{font-size:17px}.pager{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.pager-all{grid-column:1 / -1;order:3}.stage-cv{padding:16vw 4vw calc(6vh + 4vw) 8vw}.stage-play{padding:calc(6vh + 4vw) 8vw 16vw 4vw}.stage-email{padding:calc(6vh + 8vw) 4vw 16vw 8vw}.stage-play .ill-grid{columns:2}.works{--pw: 96vw;--ph: 94vh;--tl-pt: 18vw;--tl-pb: 2.4vw}.hero-name{padding:4.5vw 4.5vw 12px}.hero-brief{font-size:14px}}@media (prefers-reduced-motion: reduce){.card-frame img,.index-preview{transition:none}}.proj-wait{min-height:100vh}
