@font-face{font-family:Geist;src:url(/fonts/geist/Geist-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/geist-mono/GeistMono-Medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:ABC Gaisyr;src:url(/fonts/abc-gaisyr/subset-ABCGaisyr-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--bg-light:#fff;--bg-dark:#0a0a0a;--space-x-small:5px;--space-small:10px;--space-medium:15px;--space-large:20px;--gutter:var(--space-large);--row-padding:6px;--header-side:60px;--about-measure:1128px;--project-gap:var(--space-large);--project-desc-top:30px;--project-block-gap:40px;--project-end:var(--space-large);--project-type-gap:11px;--project-measure:1053px;--stroke-hairline:1px;--radius-x-small:.5px;--icon-theme-width:22px;--icon-theme-height:12px;--icon-theme-dot:8px;--icon-theme-inset:2px;--opacity-muted:.4;--opacity-faint:.1;--font-body:"Geist", system-ui, sans-serif;--font-mono:"Geist Mono", ui-monospace, monospace;--font-serif:"ABC Gaisyr", serif;--size-body:18px;--size-mono:12px;--size-label:12px;--size-serif:14px;--size-serif-large:20px;--weight-regular:400;--weight-medium:500;--leading-body:normal;--leading-mono:normal;--leading-label:normal;--leading-serif:normal;--tracking-body:0;--tracking-mono:0;--tracking-label:0;--tracking-serif:0;--underline-thickness:.08em;--underline-offset:.15em;--trim-mono-top:.29em;--trim-mono-bottom:.333em;--trim-serif-top:.3em;--trim-serif-bottom:.357em;--bg:var(--bg-light);--theme-icon-on:0;--ink:#fff;--ink-inverse:#000;--header-h:3.5rem;--list-h:9rem;--list-duration:.2s;--list-ease:ease;--z-project:1;--z-media:2;--z-chrome:10;--z-veil:100}:root[data-theme=dark]{--bg:var(--bg-dark);--theme-icon-on:1}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:var(--bg-dark);--theme-icon-on:1}}*,:before,:after{box-sizing:border-box}html{background:var(--bg);color:var(--ink);overscroll-behavior:none}body{background:var(--bg);min-height:100svh;color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}img,picture,video,canvas,svg,iframe{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button{font:inherit;text-transform:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}::selection{background:var(--ink);color:var(--ink-inverse)}:focus-visible{outline-offset:2px;outline:2px solid}.page-veil{z-index:var(--z-veil);background:var(--bg);pointer-events:none;animation:.2s 1.5s forwards page-veil-out;position:fixed;inset:0}.page-veil.is-done{opacity:0;transition:opacity .2s;animation:none}@keyframes page-veil-out{to{opacity:0}}.site-header{inset-inline:0;z-index:var(--z-chrome);padding:var(--space-medium) var(--gutter) 0;mix-blend-mode:difference;color:var(--ink);pointer-events:none;grid-template-columns:1fr auto 1fr;align-items:center;display:grid;position:fixed;top:0}.site-header>*{pointer-events:auto}.site-header>:first-child{justify-self:start}.site-header>:nth-child(2){text-align:center;justify-self:center}.site-header>:last-child{justify-self:end}.lang-toggle{inline-size:var(--header-side);justify-content:space-between;align-items:center;display:flex}.lang-toggle button{opacity:var(--opacity-muted);transition:opacity .2s}.lang-toggle button[aria-pressed=true]{opacity:1}.theme-toggle{align-items:center;display:flex}.theme-icon{inline-size:var(--icon-theme-width);block-size:var(--icon-theme-height);padding:var(--icon-theme-inset);border-radius:var(--radius-x-small);outline:var(--stroke-hairline) solid currentColor;outline-offset:calc(var(--stroke-hairline) / -2);display:flex}.theme-icon-dot{--theme-icon-travel:calc(var(--icon-theme-width) - var(--icon-theme-inset) * 2 - var(--icon-theme-dot));inline-size:var(--icon-theme-dot);block-size:var(--icon-theme-dot);transform:translateX(calc(var(--theme-icon-travel) * var(--theme-icon-on)));background:currentColor;transition:transform .2s}.site-credit{inset-inline:0;top:var(--header-h);bottom:var(--list-h);z-index:var(--z-project);color:var(--ink);mix-blend-mode:difference;opacity:var(--opacity-faint);pointer-events:none;text-align:center;transition:opacity var(--list-duration) var(--list-ease);justify-content:center;align-items:center;display:flex;position:fixed}.site-credit p{margin:0}.has-project .site-credit{opacity:0;transition:none}.project-list{inset-inline:0;z-index:var(--z-chrome);padding:0 var(--gutter) var(--gutter);mix-blend-mode:difference;color:var(--ink);pointer-events:none;position:fixed;bottom:0}.project-items{margin:0;padding:0;list-style:none;position:relative}.project-items>li+li{margin-block-start:calc(var(--stroke-hairline) * -1)}.project-row{text-align:start;border-block:var(--stroke-hairline) solid currentColor;width:100%;padding-block:var(--row-padding);pointer-events:auto;border-block-start-color:#0000;justify-content:space-between;align-items:flex-end;transition:opacity .2s;display:flex}.project-items>li:first-child>.project-row,.project-row:hover,.project-row:focus-visible,.project-row[aria-expanded=true]{border-block-start-color:currentColor}.project-row>*{white-space:nowrap;flex:none}.project-list:hover .project-row{opacity:var(--opacity-muted)}.project-list .project-row:hover,.project-list .project-row:focus-visible,.project-list .project-row[aria-expanded=true]{opacity:1}.project-list.is-open{top:var(--list-top);flex-direction:column;display:flex}.project-list.is-open .project-items{flex-direction:column;flex:1;min-height:0;display:flex}:is(.project-items>li,.project-window){will-change:transform}:is(.project-items>li,.project-window).is-moving{transition:transform var(--list-duration) var(--list-ease), clip-path var(--list-duration) var(--list-ease);transform:translateY(0)}:is(.project-items>li,.project-window).is-moving.is-resizing{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);overflow:visible}:is(.project-items>li,.project-window).is-moving.is-flipping{transform:translateY(var(--dy));transition:none}:is(.project-items>li,.project-window).is-moving.is-resizing.is-flipping{clip-path:polygon(0 0, 100% 0, 100% calc(100% - var(--dh)), 0 calc(100% - var(--dh)))}.project-items>li.is-open{flex:1;min-height:0}.project-windows{z-index:var(--z-project);mix-blend-mode:difference;color:var(--ink);pointer-events:none;position:fixed;inset:0}.project-window{inset-inline:var(--gutter);top:var(--window-top,0);height:var(--window-h,0);pointer-events:auto;position:absolute}.project-window[hidden]{display:none}.media-on-screen .project-window a{pointer-events:none}.project-window:is(.is-open,.is-closing){overflow:clip}.project-window.is-closing.is-moving.is-resizing{clip-path:inset(0 0 var(--clip-end,0) 0);overflow:clip}.project-window.is-closing.is-moving.is-resizing.is-flipping{clip-path:inset(0)}.project-items>li:is(.is-open,.is-closing)>.project-row{border-block-end-color:#0000}.project-list.is-open .project-row{opacity:var(--opacity-muted)}.project-list.is-open .project-row:hover,.project-list.is-open .project-row:focus-visible,.project-list.is-open .project-row[aria-expanded=true]{opacity:1}.project-items>li:is(.is-open,.is-closing)+li>.project-row{border-block-start-color:currentColor}.project-items:has(>li:is(.is-open,.is-closing):last-child):after{content:"";inset-inline:0;border-block-end:var(--stroke-hairline) solid currentColor;opacity:var(--opacity-muted);position:absolute;bottom:0}.project-panel{height:100%;padding-block:calc(var(--stroke-hairline) + var(--project-desc-top)) var(--project-end);text-align:center;flex-direction:column;align-items:center;display:flex;position:relative}.project-info{align-items:center;gap:var(--project-type-gap);flex-direction:column;margin-block-start:var(--project-block-gap);display:flex}.project-panel.is-compact>.project-info{visibility:hidden;position:absolute;inset-inline:0}.project-panel>.is-moving{transition:transform var(--list-duration) var(--list-ease);transform:translateY(0)}.project-panel>.is-moving.is-flipping{transform:translateY(var(--dy));transition:none}.project-panel p{margin:0}.project-description{max-inline-size:var(--project-measure)}.project-panel>:is(.project-hint,.project-visit){margin-block-start:auto;padding-block-start:var(--project-block-gap)}.project-panel>.project-hint{opacity:var(--opacity-muted)}.scroll-area{z-index:var(--z-media);pointer-events:none;position:relative}.panel{inset-inline:0;top:var(--header-h);z-index:var(--z-chrome);mix-blend-mode:difference;color:var(--ink);transition:display var(--list-duration) allow-discrete;position:fixed}.panel[hidden]{display:none}.panel-text{padding-inline:var(--gutter);transition:transform var(--list-duration) var(--list-ease);position:relative;overflow:clip;transform:translateY(0)}.panel-content{transition:transform var(--list-duration) var(--list-ease);transform:translateY(0)}.panel[hidden] .panel-text{transform:translateY(-100%)}.panel[hidden] .panel-content{transform:translateY(100%)}@starting-style{.panel:not([hidden]) .panel-text{transform:translateY(-100%)}.panel:not([hidden]) .panel-content{transform:translateY(100%)}}.about-text{align-items:center;gap:var(--space-medium);text-align:center;flex-direction:column;padding-block-start:var(--space-x-small);display:flex}.about-text :is(h2,p,ul){margin:0;padding:0}.about-cv{align-items:center;gap:var(--space-x-small);flex-direction:column;display:flex}.about-bio{max-inline-size:var(--about-measure)}.about-contacts{flex-direction:column;align-items:center;display:flex}.about-contacts ul{list-style:none}.media-stack{--media-w:60%;flex-direction:column;padding-block:100svh 50svh;display:flex}.media-stack[hidden]{display:none}.media{--enter-distance:3rem;width:var(--media-w);aspect-ratio:var(--media-ratio,16 / 9);clip-path:inset(0);transform:translateY(var(--enter-distance));opacity:0;margin:0;margin-inline-start:calc(var(--gutter) + var(--media-r,.5) * (100% - 2 * var(--gutter) - var(--media-w)));transition:opacity .2s,transform .2s cubic-bezier(.16,1,.3,1)}.media.is-in{opacity:1;transform:translateY(0)}.media :is(img,video,iframe){object-fit:cover;border:0;width:100%;height:100%}.media--row{display:flex}.media--row>video{flex:var(--row-ratio) 1 0;min-width:0}.media-stack.is-closing{inset-inline:0;top:var(--stack-top,0);position:fixed}.media-stack.is-closing .media{clip-path:inset(50% 0);transition:clip-path var(--list-duration) var(--list-ease)}.media--embed{pointer-events:auto}.media-play{width:100%;height:100%;display:block;position:relative}.media-play-label{color:var(--ink);mix-blend-mode:difference;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.media{opacity:1;transition:none;transform:none}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{font-family:var(--font-body);font-size:var(--size-body);line-height:var(--leading-body);letter-spacing:var(--tracking-body)}.site-header{text-transform:uppercase}.project-row,.project-credits{font-family:var(--font-mono);font-size:var(--size-mono);font-weight:var(--weight-medium);line-height:var(--leading-mono);letter-spacing:var(--tracking-mono)}.about-label,.project-hint,.project-visit,.media-play-label{font-family:var(--font-mono);font-size:var(--size-label);font-weight:var(--weight-medium);line-height:var(--leading-label);letter-spacing:var(--tracking-label)}.about-label--caps,.project-hint,.project-visit,.media-play-label,.project-credits-label{text-transform:uppercase}.about-bio,.project-type,.site-credit{font-family:var(--font-serif);font-size:var(--size-serif);font-weight:var(--weight-regular);line-height:var(--leading-serif);letter-spacing:var(--tracking-serif)}.project-description{font-family:var(--font-serif);font-size:var(--size-serif-large);font-weight:var(--weight-regular);line-height:var(--leading-serif);letter-spacing:var(--tracking-serif)}.project-row>*,.project-credits:first-child{margin-block-start:calc(var(--trim-mono-top) * -1)}.project-row>*,.project-credits:last-child{margin-block-end:calc(var(--trim-mono-bottom) * -1)}.site-credit p{margin-block:calc(var(--trim-serif-top) * -1) calc(var(--trim-serif-bottom) * -1)}.link:hover .link-label,.link:focus-visible .link-label{text-decoration-line:underline;text-decoration-style:solid;text-decoration-color:currentColor;text-decoration-thickness:var(--underline-thickness);text-underline-offset:var(--underline-offset);text-decoration-skip-ink:auto}.about-bio,.project-description{text-wrap:pretty;white-space:pre-line}
