@font-face{font-family:ABC Areal Semi Mono;src:url(/fonts/ABCArealSemiMonoVariable.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:ABC Areal;src:url(/fonts/ABCArealVariable.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{--bg-base:#f3f3f1;--ink-base:#111;--ink-muted-base:#7a7a76;--header-bg-base:#0d0d0d;--header-ink-base:#f3f3f1;--logo-ink:#5c5c5c;--bg:var(--bg-base);--ink:var(--ink-base);--ink-muted:var(--ink-muted-base);--header-bg:var(--header-bg-base);--header-ink:var(--header-ink-base);--theme-duration:.7s;--pic-bg:#e7e7e4;--font-title:"ABC Areal Semi Mono", ui-monospace, Menlo, monospace;--font-text:"ABC Areal", "Helvetica Neue", Arial, sans-serif;--fw-title:400;--fw-text:700;--ls-text:-.02em;--lh:1.05;--fs-ui:11px;--fs-body:14px;--ls-ui:.04em;--radius:2px;--vh:100vh}@supports (height:100dvh){:root{--vh:100dvh}}:root[data-theme=inverted]{--bg:var(--ink-base);--ink:var(--bg-base);--ink-muted:#8d8d89;--header-bg:var(--ink-base);--header-ink:var(--bg-base);--pic-bg:#1e1e1e}html,body{transition:background-color var(--theme-duration) ease}.header,.pill,.overlay__content{transition:background-color var(--theme-duration) ease, color var(--theme-duration) ease}*,:before,:after{box-sizing:border-box}html{background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%}html,body{height:100%;margin:0}body{font-family:var(--font-text);font-weight:var(--fw-text);font-size:var(--fs-body);line-height:var(--lh);letter-spacing:var(--ls-text);font-kerning:normal;-webkit-font-smoothing:antialiased;overflow:hidden}body.is-scrollable{overflow:auto}body.is-scrollable.is-locked{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}p{margin:0 0 .8em}.u-ui,.u-title{font-family:var(--font-title);font-weight:var(--fw-title);font-size:var(--fs-ui);letter-spacing:var(--ls-ui);text-transform:uppercase;line-height:var(--lh)}.u-meta{font-family:var(--font-text);font-weight:var(--fw-text);font-size:var(--fs-ui);letter-spacing:var(--ls-text);line-height:var(--lh)}img{max-width:100%;height:auto;display:block}:focus{outline:none}:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:var(--radius)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.skip-link{z-index:100;background:var(--header-bg);color:var(--header-ink);font-family:var(--font-title);font-weight:var(--fw-title);font-size:var(--fs-ui);letter-spacing:var(--ls-ui);text-transform:uppercase;border-radius:999px;padding:8px 12px;position:fixed;top:-100px;left:16px}.skip-link:focus{top:16px}.pic{aspect-ratio:var(--ar,4 / 3);background:var(--pic-bg);width:100%;display:block;position:relative;overflow:hidden}.pic img,.pic video{object-fit:cover;width:100%;height:100%;transition:opacity .32s;display:block}.pic[data-state=loading] img,.pic[data-state=loading] video{opacity:0}.pic[data-state=loaded],.pic[data-alpha]{background:0 0}.pic[data-state=error] img{opacity:0}.pic[data-state=error]:after{content:"Image unavailable";font-family:var(--font-text);font-size:var(--fs-ui);letter-spacing:var(--ls-text);color:var(--ink-muted);position:absolute;bottom:10px;left:12px}.pic--contain img,.pic--contain video{object-fit:contain}.header{z-index:60;background:var(--header-bg);width:min(420px,100vw - 32px);height:34px;color:var(--header-ink);font-family:var(--font-title);font-weight:var(--fw-title);font-size:var(--fs-ui);letter-spacing:var(--ls-ui);text-transform:uppercase;line-height:var(--lh);white-space:nowrap;transition:width .9s cubic-bezier(.32, .72, 0, 1), background-color var(--theme-duration) ease, color var(--theme-duration) ease;border-radius:999px;position:fixed;top:20px;left:50%;overflow:hidden;transform:translate(-50%)}.header.is-collapsed{width:34px}.header a{opacity:1;padding:4px 0;transition:opacity .24s;position:absolute;top:50%;transform:translateY(-50%)}.header a:hover{opacity:.6}.header.is-collapsed a{opacity:0;transition-duration:0s}.header.is-revealing a{transition:opacity .5s .35s}.header__home{left:16px}.header__about{right:16px}.header__mark{width:18px;height:18px;margin:-9px 0 0 -9px;position:absolute;top:50%;left:50%}.header__logo{width:18px;height:18px;color:var(--logo-ink);will-change:transform;display:block}.header__logo rect{fill:currentColor}.pill{box-sizing:border-box;background:var(--header-bg);max-width:240px;height:34px;color:var(--header-ink);font-family:var(--font-title);font-weight:var(--fw-title);font-size:var(--fs-ui);letter-spacing:var(--ls-ui);text-transform:uppercase;line-height:var(--lh);white-space:nowrap;cursor:pointer;border-radius:999px;align-items:center;padding:0 18px;display:inline-flex;overflow:hidden}.pill:hover{opacity:.8}.pill:focus-visible{outline-color:var(--header-ink)}.pill--fixed{z-index:60;opacity:0;pointer-events:none;transition:opacity .28s;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.pill--fixed.is-visible{opacity:1;pointer-events:auto}.pills{z-index:60;gap:8px;transition:opacity .28s;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.pills.is-hidden{opacity:0;pointer-events:none}.pills{background:0 0;border-radius:999px;width:max-content;height:34px;transition:width .9s cubic-bezier(.32,.72,0,1),background-color .32s,opacity .28s;overflow:hidden}.pills .pill{flex:none;transition:background-color .32s,color .5s .4s}.pills.is-collapsed,.pills.is-expanding{background:var(--header-bg)}.pills.is-collapsed .pill,.pills.is-expanding .pill{background:0 0}.pills.is-collapsed{width:34px;transition:none}.pills.is-measuring{background:var(--header-bg);width:max-content;transition:none}.pills.is-collapsed .pill{color:#0000;transition:none}.pills.is-expanding,.pills.is-splitting{width:var(--pills-w)}@media (max-width:720px){.header{top:14px}.header__home{left:14px}.header__about{right:14px}.pill--fixed,.pills{bottom:14px}}@media (hover:none) and (pointer:coarse){.pill--fixed,.pills{bottom:52px}}.stage{height:var(--vh);isolation:isolate;z-index:0;justify-content:center;gap:var(--row-gap);width:100%;padding:var(--stage-pad-top) 0 var(--stage-pad-bottom);perspective:var(--perspective);perspective-origin:50%;--card-h:clamp(var(--card-min-h), calc((var(--vh) - var(--stage-pad-top) - var(--stage-pad-bottom) - (var(--row-count) - 1) * var(--row-gap)) / var(--row-count)), var(--card-max-h));flex-direction:column;display:flex;position:relative;overflow:clip}.stage[inert]{pointer-events:none}.stage.is-blurred{filter:blur(var(--fog-blur))}.row{height:var(--card-h);transform-style:preserve-3d;flex:none;position:relative}.row[data-depth=back]{transform:translateZ(calc(-1 * var(--row-z)))}.row__track{width:100%;height:100%;position:relative}.row__set{gap:var(--card-gap);will-change:transform;width:max-content;height:100%;display:flex;position:absolute;top:0;left:0}.stage--manual .row{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none;overflow:auto hidden;transform:none}.stage--manual .row::-webkit-scrollbar{display:none}.stage--manual .row__track{width:max-content;padding:0 max(16px, calc((100vw - var(--card-h) * var(--card-ratio)) / 2)) 0 16px}.stage--manual .row__set{will-change:auto;position:static;transform:none!important}.stage--manual .card{scroll-snap-align:start}.card{height:100%;width:calc(var(--card-h) * var(--ratio,var(--card-ratio)));outline-offset:4px;flex:none;min-width:0;display:block;position:relative}.card__frame{border-radius:var(--corner,var(--radius));isolation:isolate;width:100%;height:100%;transition:transform var(--hover-duration) cubic-bezier(.22, .61, .36, 1);display:block;position:relative;overflow:hidden;transform:translateZ(0)scale(1)}.card .pic{background:#e7e7e4}.card .pic[data-state=loaded],.card .pic[data-alpha]{background:0 0}.card .pic{aspect-ratio:auto;width:100%;min-width:0;height:100%}.card .pic img,.card .pic video{min-width:0}.card--loose{cursor:grab}.card--loose .card__meta-left{text-transform:none}.card:hover .card__frame,.card:focus-visible .card__frame,.card.is-revealed .card__frame{transform:translateZ(0) scale(var(--hover-scale))}.card__meta{text-align:center;color:#fff;mix-blend-mode:difference;font-family:var(--font-text);font-weight:var(--fw-text);font-size:var(--fs-ui);letter-spacing:var(--ls-text);line-height:var(--lh);opacity:0;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:.6em;padding:12px 14px;transition:opacity .26s,transform .36s cubic-bezier(.22,.61,.36,1);display:flex;position:absolute;inset:0;transform:translateY(4px)}.card__meta-right{text-align:center}.card__meta-left:empty,.card__meta-right:empty{display:none}.card__meta-title{display:block}.card__meta-hint{color:#bdbdbd;margin-top:.4em;display:block}.card:hover .card__meta,.card:focus-visible .card__meta,.card.is-revealed .card__meta{opacity:1;transform:none}.card.is-entering{opacity:0;animation:card-enter var(--entrance-duration) cubic-bezier(.22, .61, .36, 1) var(--delay,0s) both}@keyframes card-enter{0%{opacity:0;transform:translateY(var(--entrance-offset))}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.card__frame,.card__meta,.header a:after{transition:none}.card.is-entering{animation-duration:1ms}}.stage--canvas{perspective:none;padding:0;display:block}.layer{position:absolute;inset:0}.layer--grid,.layer--project{display:none}.stage--canvas.is-project .layer--project{display:block}.layer--project .block,.layer--project .fog{opacity:0;transition:opacity .42s}.stage--canvas.is-project-ready .layer--project .block{opacity:1}.stage--canvas.is-project-ready .layer--project .fog.is-on{opacity:var(--fog-opacity)}.layer--scatter>.block,.layer--scatter>.fog{transition:opacity .42s}.stage--canvas.is-project-ready .layer--scatter>.block:not(.is-pinned),.stage--canvas.is-project-ready .layer--scatter>.fog{opacity:0;pointer-events:none}.layer--scatter>.block.is-pinned{opacity:1!important;filter:none!important}.layer--project .card__meta,.block.is-pinned .card__meta{display:none}.project-info{z-index:61;pointer-events:none;width:min(360px,100vw - 48px);padding:0;position:fixed;bottom:20px;left:24px}.project-info>*{pointer-events:auto}.project-info__title{color:var(--ink);margin:0 0 6px}.project-info__intro{color:var(--ink);font-weight:400}.project-info__title:focus-visible{outline:none}.project-info__intro{margin:0 0 10px}.project-info__meta{color:var(--ink);grid-template-columns:auto 1fr;gap:2px 14px;margin:0;display:grid}.project-info__meta dt,.project-info__meta dd{color:var(--ink);font-family:var(--font-title);font-weight:var(--fw-title);letter-spacing:var(--ls-ui);text-transform:uppercase;margin:0}.project-info[hidden]{display:none}@media (hover:none) and (pointer:coarse){.project-info{display:none!important}}@media (max-width:720px){.project-info{bottom:108px;left:16px}}.depth-slider{display:none}body.is-locked .depth-slider{display:none!important}@media (hover:none) and (pointer:coarse){.depth-slider{z-index:61;appearance:none;touch-action:none;background:0 0;height:28px;margin:0;display:block;position:fixed;bottom:10px;left:24px;right:24px}.depth-slider::-webkit-slider-runnable-track{background:color-mix(in srgb, var(--ink) 18%, transparent);height:1px}.depth-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--header-bg);border:0;border-radius:50%;width:16px;height:16px;margin-top:-7.5px}.depth-slider::-moz-range-track{background:color-mix(in srgb, var(--ink) 18%, transparent);height:1px}.depth-slider::-moz-range-thumb{background:var(--header-bg);border:0;border-radius:50%;width:16px;height:16px}.depth-slider:focus-visible{outline:none}}.stage--canvas.is-grid .layer--grid{display:block}.stage--canvas.is-grid .layer--scatter{display:none}.stage--canvas.is-grid{cursor:grab}.stage--canvas.is-grid.is-dragging{cursor:grabbing}.stage--canvas.is-grid.is-dragging .block{pointer-events:none}.grid-fade{pointer-events:none;z-index:5;transition:background var(--theme-duration) ease;display:none;position:absolute}.stage--canvas.is-grid .grid-fade{display:block}.grid-fade--top{height:var(--grid-fade);background:linear-gradient(to bottom, var(--bg), transparent);top:0;left:0;right:0}.grid-fade--bottom{height:var(--grid-fade);background:linear-gradient(to top, var(--bg), transparent);bottom:0;left:0;right:0}.grid-fade--left{width:var(--grid-fade);background:linear-gradient(to right, var(--bg), transparent);top:0;bottom:0;left:0}.grid-fade--right{width:var(--grid-fade);background:linear-gradient(to left, var(--bg), transparent);top:0;bottom:0;right:0}.block{transform-origin:0 0;will-change:transform;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;position:absolute;top:0;left:0}.block.is-dragging{cursor:grabbing;transition:none!important}.fog{pointer-events:none;background:var(--bg);opacity:0;transition:opacity .6s ease, background-color var(--theme-duration) ease;position:absolute;inset:0}.fog.is-on{opacity:var(--fog-opacity)}.layer--scatter .block.is-faded{filter:blur(var(--fog-blur));pointer-events:none;cursor:default}.layer--scatter .block.is-faded .card__meta{display:none}.block.is-dragging .card__frame{transform:translateZ(0) scale(var(--drag-scale))}.stage--canvas.is-arranging .block{transition:transform var(--transition-duration) var(--transition-ease)}.stage--canvas .card{width:100%;height:100%}.stage--canvas .card img,.stage--canvas .card video{-webkit-user-drag:none;pointer-events:none}.block--loose .card__frame{cursor:grab}.overlay{z-index:40;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;position:fixed;inset:0;overflow:hidden auto}.overlay.is-closed{visibility:hidden;pointer-events:none}.overlay__veil{background:var(--veil);opacity:0;pointer-events:none;transition:opacity var(--transition-duration) ease;position:fixed;inset:0}.overlay.is-open .overlay__veil{opacity:var(--overlay-opacity)}.overlay__content{width:min(100% - 32px,1040px);padding:calc(var(--stage-pad-top) - 8px) 0 120px;margin:0 auto;position:relative}.overlay--full .overlay__content{width:calc(100% - 12px)}.overlay--full .project__inner{width:min(100%,1040px);margin-inline:auto}.overlay--full .project__lead{margin-inline:auto}.overlay--full .overlay__content.project{padding:calc(var(--stage-pad-top) - 8px) 0 120px}.overlay__content>:not(.project__lead){opacity:0;transition:opacity .36s .12s}.overlay.is-open.is-ready .overlay__content>:not(.project__lead){opacity:1}.project__lead{width:min(100%, calc((var(--vh) - 260px) * var(--lead-ratio,var(--card-ratio))));aspect-ratio:var(--lead-ratio,var(--card-ratio));border-radius:var(--corner,var(--radius));margin:0 auto;position:relative;overflow:hidden}.project__lead .pic{aspect-ratio:auto;height:100%;position:absolute;inset:0}.project__lead:has(.pic[data-state=loading]:not([data-alpha])){background:var(--pic-bg)}.project__lead.is-hidden{visibility:hidden}.project__head{grid-template-columns:minmax(0,1fr) minmax(220px,300px);gap:24px 56px;padding:28px 0 44px;display:grid}.project__title{font-family:var(--font-title);font-weight:var(--fw-title);font-size:var(--fs-ui);letter-spacing:var(--ls-ui);text-transform:uppercase;line-height:var(--lh);margin:0}.project__intro{max-width:56ch;color:var(--ink);margin:10px 0 0}.project__meta{grid-template-columns:auto 1fr;align-content:start;gap:4px 20px;margin:0;display:grid}.project__meta dt{color:var(--ink-muted);font-family:var(--font-title);font-weight:var(--fw-title);letter-spacing:var(--ls-ui);text-transform:uppercase}.project__meta dd{margin:0}.gallery{grid-template-columns:repeat(var(--gallery-cols,3), minmax(0, 1fr));align-items:start;gap:6px;display:grid}.gallery__col{align-content:start;gap:6px;min-width:0;display:grid}.gallery figure{content-visibility:auto;contain-intrinsic-size:auto 600px;margin:0}.gallery figcaption{color:var(--ink-muted);padding:8px 0 0}.gallery .pic{border-radius:var(--radius);width:100%}.project__nav{justify-content:space-between;gap:24px;padding:48px 0 0;display:flex}.project__nav a{color:var(--ink-muted);transition:color .2s}.project__nav a:hover{color:var(--ink)}.project__nav b{color:var(--ink);font-weight:500;display:block}.project__nav span{display:block}.project__nav .is-next{text-align:right}.about{grid-template-columns:minmax(0,1fr) minmax(220px,300px);gap:32px 56px;display:grid}.about h1:focus-visible{outline:none}.about h1,.about h2{font-family:var(--font-title);font-weight:var(--fw-title);font-size:var(--fs-ui);letter-spacing:var(--ls-ui);text-transform:uppercase;margin:0 0 12px}.about p{max-width:56ch;margin:0 0 1em}.about ul{margin:0;padding:0;list-style:none}.about li{margin:0 0 4px}.about a{border-bottom:1px solid}.about__secondary,.about .u-meta,.about .u-meta a{color:var(--ink-muted)}.about .u-meta h2,.about .u-meta a:hover{color:var(--ink)}.about li.about__copyright{margin-top:12px}@media (max-width:720px){.overlay__content{width:calc(100% - 32px);padding-bottom:96px}.project__head{grid-template-columns:1fr;gap:20px;padding-top:20px;padding-bottom:32px}.about{grid-template-columns:1fr;gap:20px}.gallery{gap:6px}}.ghost{z-index:50;transform-origin:0 0;pointer-events:none;will-change:transform;position:fixed;top:0;left:0;overflow:hidden}.ghost .pic{aspect-ratio:auto;height:100%}
