@font-face{font-family:Inter;src:url(/assets/Inter-latin-wght-Dx4kXJAl.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:STK Miso;src:url(/assets/STKMiso-Regular-DGHchckq.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--ease-expo: cubic-bezier(.16, 1, .3, 1);--ease-power3: cubic-bezier(.215, .61, .355, 1);--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-drawer: cubic-bezier(.32, .72, 0, 1);--bg: #ffffff;--fg: #000000;--muted: rgba(0, 0, 0, .4);--card: #f2f2f2;--btn: rgba(0, 0, 0, .08);--option: #ffffff;--veil: rgba(255, 255, 255, .2);--wave-blue: #a0d1f9;--wave-lilac: #cfa7f4;--wave-pink: #ec6993;--wave-red: #e85943;--glass: linear-gradient(var(--btn), var(--btn)), color-mix(in srgb, var(--bg) 62%, transparent);--pad: 80px;--font-sans: "STK Miso", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Helvetica, Arial, sans-serif}:root[data-theme=dark]{--bg: #0d0d0d;--fg: #f5f5f5;--muted: rgba(255, 255, 255, .4);--card: #1c1c1c;--btn: rgba(255, 255, 255, .1);--option: #2c2c2c;--veil: rgba(13, 13, 13, .3);--wave-blue: #1d4a85;--wave-lilac: #51349a;--wave-pink: #a8306c;--wave-red: #b83a23;color-scheme:dark}@property --bg{syntax: "<color>"; inherits: true; initial-value: #ffffff;}@property --fg{syntax: "<color>"; inherits: true; initial-value: #000000;}@property --muted{syntax: "<color>"; inherits: true; initial-value: rgba(0,0,0,.4);}@property --card{syntax: "<color>"; inherits: true; initial-value: #f2f2f2;}@property --btn{syntax: "<color>"; inherits: true; initial-value: rgba(0,0,0,.08);}@property --option{syntax: "<color>"; inherits: true; initial-value: #ffffff;}@property --wave-blue{syntax: "<color>"; inherits: true; initial-value: #a0d1f9;}@property --wave-lilac{syntax: "<color>"; inherits: true; initial-value: #cfa7f4;}@property --wave-pink{syntax: "<color>"; inherits: true; initial-value: #ec6993;}@property --wave-red{syntax: "<color>"; inherits: true; initial-value: #e85943;}:root{transition:--bg .35s ease,--fg .35s ease,--muted .35s ease,--card .35s ease,--btn .35s ease,--option .35s ease,--wave-blue .35s ease,--wave-lilac .35s ease,--wave-pink .35s ease,--wave-red .35s ease}*{box-sizing:border-box;text-wrap:pretty}html,body{margin:0;min-height:100%;overflow-x:hidden;overflow-x:clip}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:14px;line-height:1.4;letter-spacing:-.01em;text-wrap:pretty;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,p,ul,figure{margin:0}ul{padding:0;list-style:none}img,video{display:block;max-width:none}a{color:inherit}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.muted{color:var(--muted)}.label{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:12px;padding:0 32px;font-size:12px;line-height:1;white-space:nowrap}.label-name{display:inline-flex;align-items:center;gap:4px}.label-caption{color:var(--muted)}.icon{display:inline-block;flex:none;width:var(--size);height:var(--size);background:currentColor;-webkit-mask:var(--icon) center / contain no-repeat;mask:var(--icon) center / contain no-repeat}.navbar{position:fixed;top:0;right:46px;z-index:30;display:flex;align-items:center;gap:8px;padding:16px}.navbar-switch{position:fixed;top:0;right:0;z-index:30;display:flex;align-items:center;height:var(--bar-h, 78px);padding:0 16px}.navbar-switch .switch{margin-left:0}.navbar[data-docked]{position:absolute;right:auto}@media(prefers-reduced-motion:reduce){.navbar[data-docked]{animation:fade-soft .2s ease}}@keyframes fade-soft{0%{opacity:0}}.btn{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:16px 20px;border:0;border-radius:24px;background:none;color:var(--fg);font:inherit;font-size:14px;letter-spacing:-.01em;line-height:1;white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .16s var(--ease-power3)}.btn-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:24px;background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transform-origin:0 0;pointer-events:none;transition:background-color .2s ease}.btn-close{color:#000}.btn-close .btn-bg,.btn-close[aria-pressed=true] .btn-bg{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}.btn-label{display:inline-flex;align-items:center;gap:8px}.btn:active{transform:scale(.97)}.btn[aria-pressed=true] .btn-bg{background:linear-gradient(color-mix(in srgb,var(--fg) 8%,transparent),color-mix(in srgb,var(--fg) 8%,transparent)),var(--glass)}.btn:focus-visible,.option:focus-visible,.switch:focus-visible,.nav-lang{padding-left:16px}.switch{position:relative;flex:none;width:34px;height:24px;margin-left:4px;padding:0;border:0;background:none;cursor:grab;touch-action:none;-webkit-tap-highlight-color:transparent}.switch-track{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:12px;background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transform-origin:0 0}.switch-thumb{position:absolute;top:5px;left:5px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0000001f;transition:transform .35s var(--ease-drawer)}.switch[aria-checked=true] .switch-thumb{transform:translate(10px)}.touch{--trigger-w: 119px;position:relative}.touch-panel{position:absolute;top:-4px;right:0;display:flex;width:max-content;padding:4px;border-radius:28px;pointer-events:none}.touch-bg{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:28px;background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transform-origin:0 0;clip-path:inset(4px 0 4px calc(100% - var(--trigger-w)) round 24px);transition:clip-path .25s var(--ease-expo)}.navbar[data-docked] .touch-panel{right:calc(var(--touch-grow, 227px) / -2)}.navbar[data-docked] .touch-bg{clip-path:inset(4px calc((100% - var(--trigger-w)) / 2) 4px calc((100% - var(--trigger-w)) / 2) round 24px)}.touch-trigger{z-index:1}.touch-trigger .btn-bg{display:none}.touch-trigger .btn-label{transition:opacity .12s var(--ease-power3)}.touch-options{position:relative;display:flex;gap:4px;visibility:hidden;transition:visibility 0s linear .2s}.touch-options li{opacity:0;translate:-6px 0;transition:opacity .12s var(--ease-power3),translate .12s var(--ease-power3)}.option{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;padding:16px 20px;border:0;border-radius:24px;background:none;color:var(--fg);font:inherit;font-size:14px;letter-spacing:-.01em;line-height:1;text-decoration:none;white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .16s var(--ease-power3)}.option-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:24px;background:var(--option);transform-origin:0 0;pointer-events:none}.option:active{transform:scale(.97)}.swap{display:grid}.swap>*{grid-area:1 / 1}.swap-done{justify-self:center;color:color-mix(in srgb,var(--fg) 50%,transparent);visibility:hidden}.swap[data-swapped] .swap-idle{visibility:hidden}.swap[data-swapped] .swap-done{visibility:inherit;--dim: color-mix(in srgb, var(--fg) 50%, transparent);background:linear-gradient(100deg,var(--dim) 0 42%,var(--fg) 50%,var(--dim) 58% 100%) 100% 0 / 250% 100% no-repeat;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:shimmer .9s var(--ease-out) 60ms 1 both}@keyframes shimmer{to{background-position:0% 0}}.touch:is(:hover,[data-open]) .touch-panel,.touch:has(:focus-visible) .touch-panel{pointer-events:auto}.touch:is(:hover,[data-open]) .touch-bg,.touch:has(:focus-visible) .touch-bg{clip-path:inset(0 0 0 0 round 28px);transition-duration:.45s}.touch:is(:hover,[data-open]) .touch-trigger .btn-label,.touch:has(:focus-visible) .touch-trigger .btn-label{opacity:0}.touch:is(:hover,[data-open]) .touch-options,.touch:has(:focus-visible) .touch-options{visibility:visible;transition-delay:0s}.touch:is(:hover,[data-open]) .touch-options li,.touch:has(:focus-visible) .touch-options li{opacity:1;translate:0 0;transition-duration:.32s;transition-timing-function:var(--ease-expo);transition-delay:calc(50ms + var(--i, 0) * 35ms)}.nav-about{transition:transform .45s var(--ease-expo)}.navbar:has(.touch:is(:hover,[data-open])) .nav-about,.navbar:has(.touch :focus-visible) .nav-about{transform:translate(calc(-1 * var(--touch-grow, 227px)))}.navbar[data-docked]:has(.touch:is(:hover,[data-open])) .nav-about,.navbar[data-docked]:has(.touch :focus-visible) .nav-about{transform:translate(calc(-.5 * var(--touch-grow, 227px)))}.nav-lang{transition:transform .16s var(--ease-power3),translate .45s var(--ease-expo)}.navbar[data-docked]:has(.touch:is(:hover,[data-open])) .nav-lang,.navbar[data-docked]:has(.touch :focus-visible) .nav-lang{translate:calc(.5 * var(--touch-grow, 227px)) 0}.index{padding-bottom:160px}.masthead{display:flex;align-items:center;justify-content:center;height:clamp(420px,74svh,800px);text-align:center}.masthead h1{display:flex;flex-direction:column;font-size:24px;font-weight:400;line-height:1;letter-spacing:-.01em}.masonry{display:flex;align-items:flex-start;gap:20px;padding:0 40px}.column{display:flex;flex:1 1 0;min-width:0;flex-direction:column;gap:20px}.index[data-drift]{overflow-y:clip}.index[data-drift] .column:nth-child(2){height:0}.index[data-drift] .column:nth-child(2)>*{flex:none}.tile-hit{position:relative;aspect-ratio:var(--r)}.tile-media{position:absolute;top:0;right:0;bottom:0;left:0;cursor:pointer;border-radius:24px;overflow:hidden;background:var(--card);transform-origin:0 0;isolation:isolate}.tile-media img,.tile-media video{width:100%;height:100%;object-fit:cover}@media(hover:hover)and (pointer:fine){.tile-media :is(img,video){transition:transform 1.1s var(--ease-expo)}.tile-hit:hover .tile-media :is(img,video){transform:scale(1.045)}}.tile-hit,.lb{--cm-bg: #fff;--cm-name: #000;--cm-time: rgba(0, 0, 0, .4);--cm-text: rgba(0, 0, 0, .9);--cm-line: rgba(0, 0, 0, .08);--cm-soft: rgba(0, 0, 0, .04);--cm-shadow: 0 2px 2px -1px rgba(0, 0, 0, .12);--cm-pop-shadow: 0 -2px 2px -1px rgba(0, 0, 0, .12), 0 4px 10px -3px rgba(0, 0, 0, .18);--cm-icon: none;--cm-layer-1: rgba(0, 0, 0, .04);--cm-layer-2: rgba(0, 0, 0, .08);--cm-tag-base: #fff;--cm-raised: var(--cm-bg);--cm-raised-edge: none;--tag-fill: 12%}:root[data-theme=dark] .tile-hit,:root[data-theme=dark] .lb{--cm-bg: #212121;--cm-name: #fff;--cm-time: rgba(255, 255, 255, .4);--cm-text: rgba(255, 255, 255, .88);--cm-line: rgba(255, 255, 255, .14);--cm-soft: rgba(255, 255, 255, .08);--cm-shadow: 0 2px 2px -1px rgba(0, 0, 0, .4);--cm-pop-shadow: 0 -2px 2px -1px rgba(0, 0, 0, .4), 0 4px 10px -3px rgba(0, 0, 0, .5);--cm-icon: invert(1);--cm-layer-1: rgba(0, 0, 0, .2);--cm-layer-2: rgba(0, 0, 0, .38);--cm-tag-base: #212121;--cm-raised: #303030;--cm-raised-edge: inset 0 .5px 0 rgba(255, 255, 255, .14), 0 0 0 .5px rgba(255, 255, 255, .07);--tag-fill: 20%}.comment{position:absolute;z-index:2;width:var(--pillw, 40px);height:40px;border-radius:20px;font:360 14px/1.4 Inter,system-ui,sans-serif;font-feature-settings:"lnum" 1,"tnum" 1;transition:width .24s var(--ease-drawer),height .24s var(--ease-drawer),border-radius .24s var(--ease-drawer),transform .16s var(--ease-out),translate .24s var(--ease-drawer)}.comment[data-ready=false]{visibility:hidden}.comment[data-open]{z-index:3;width:var(--w);height:var(--h);translate:var(--sx, 0px) var(--sy, 0px);transition:width .34s var(--ease-drawer),height .34s var(--ease-drawer),border-radius .34s var(--ease-drawer),transform .16s var(--ease-out),translate .34s var(--ease-drawer)}.comment:not([data-open])[data-ax=l][data-ay=b]{border-bottom-left-radius:0}.comment:not([data-open])[data-ax=r][data-ay=b]{border-bottom-right-radius:0}.comment:not([data-open])[data-ax=l][data-ay=t]{border-top-left-radius:0}.comment:not([data-open])[data-ax=r][data-ay=t]{border-top-right-radius:0}.column:has(.comment[data-open]),.tile:has(.comment[data-open]){position:relative;z-index:4}.comment-surface{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;border-radius:inherit;background-color:var(--cm-bg);box-shadow:var(--cm-shadow);pointer-events:none}.comment-pile{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;transition:opacity .14s ease,transform .24s var(--ease-drawer)}.comment[data-open] .comment-pile{opacity:0;transform:scale(.92);transition-duration:.1s,.24s}.comment[data-ax=l] .comment-pile{transform-origin:left center}.comment[data-ax=r] .comment-pile{transform-origin:right center}.comment-pile-avatar{position:absolute;top:4px;left:4px;z-index:calc(4 - var(--j));width:32px;height:32px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px var(--cm-bg);translate:calc(var(--j) * 20px) 0;transition:translate .24s var(--ease-drawer)}.comment[data-ax=r] .comment-pile-avatar{translate:calc(var(--pillw) - 40px - var(--j) * 20px) 0}.comment[data-pile] .comment-avatar{box-shadow:0 0 0 1.5px var(--cm-bg)}.comment[data-pile][data-open] .comment-avatar{box-shadow:0 0 0 1.5px transparent}.comment-field{position:absolute;z-index:-1;width:var(--w);height:var(--hl);pointer-events:none}.comment[data-spread] .comment-field{pointer-events:auto}.comment[data-ax=l] .comment-field,.comment[data-ax=l] .comment-card{left:0}.comment[data-ax=r] .comment-field,.comment[data-ax=r] .comment-card{right:0}.comment[data-ay=b] .comment-field,.comment[data-ay=b] .comment-card{bottom:0}.comment[data-ay=t] .comment-field,.comment[data-ay=t] .comment-card{top:0}.comment-card{position:absolute;z-index:0;box-sizing:border-box;width:var(--pillw);height:40px;border-radius:20px;opacity:0;pointer-events:none;transition:width .24s var(--ease-drawer),height .24s var(--ease-drawer),transform .24s var(--ease-drawer),opacity .16s ease}.comment-card:has(.react-picker[data-open]){z-index:3}.comment[data-ay=b]{--peek: -8px}.comment[data-ay=t]{--peek: 8px}.comment[data-open] .comment-card{width:calc(var(--w) - var(--k) * 32px);height:var(--hd);opacity:1;transform:translateY(calc(var(--k) * var(--peek)));transition:width .34s var(--ease-drawer),height .34s var(--ease-drawer),transform .34s var(--ease-drawer),opacity .12s ease}.comment[data-open][data-ax=l] .comment-card{transform:translate(calc(var(--k) * 16px),calc(var(--k) * var(--peek)))}.comment[data-open][data-ax=r] .comment-card{transform:translate(calc(var(--k) * -16px),calc(var(--k) * var(--peek)))}.comment[data-spread] .comment-card{width:var(--w);height:var(--h);pointer-events:none;transition-delay:calc((var(--n) - 1) * 30ms)}.comment[data-spread][data-ax=l] .comment-card,.comment[data-spread][data-ax=r] .comment-card{transform:translateY(var(--oy))}.comment[data-spread][data-ax][data-ay=b] .comment-card{transform:translateY(calc(var(--oy) * -1))}.comment-card-surface{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background-color:var(--cm-bg);box-shadow:var(--cm-shadow),0 0 0 .5px var(--cm-line);transition:box-shadow .34s ease}.comment-card-surface:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:var(--cm-layer-1);transition:opacity .34s ease}.comment-card[data-depth="2"] .comment-card-surface:after{background:var(--cm-layer-2)}.comment[data-spread] .comment-card-surface:after{opacity:0}.comment[data-spread] .comment-card-surface{box-shadow:var(--cm-shadow),0 0 0 .5px transparent}.comment-card-clip{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;border-radius:inherit}.comment-card .comment-frame{opacity:0;filter:blur(2px);transition:opacity .1s ease,filter .1s ease}.comment[data-spread] .comment-card .comment-frame{opacity:1;filter:none;transition:opacity .24s ease calc(.1s + var(--n) * 40ms),filter .26s ease calc(.1s + var(--n) * 40ms)}.comment-clip{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;overflow:hidden;border-radius:inherit;pointer-events:none}.comment-frame{position:absolute;display:flex;flex-direction:column;align-items:flex-start;gap:8px;box-sizing:border-box;width:var(--w);padding:12px}.comment[data-ax=l] .comment-frame{left:0}.comment[data-ax=r] .comment-frame{right:0}.comment[data-ay=b] .comment-frame{bottom:0}.comment[data-ay=t] .comment-frame{top:0}.comment-top{display:flex;align-items:center;gap:8px}.comment-avatar{flex:none;width:24px;height:24px;border-radius:50%;object-fit:cover;transform:translate(var(--dx),var(--dy)) scale(1.3333);transition:transform .24s var(--ease-drawer)}.comment[data-open] .comment-avatar{transform:none;transition-duration:.34s}.comment[data-flip] .comment-avatar{transition:none}.comment-head,.comment-text,.comment-reactions{opacity:0;filter:blur(2px);transition:opacity .1s ease,filter .1s ease}.comment[data-open] .comment-head,.comment[data-open] .comment-text,.comment[data-open] .comment-reactions{opacity:1;filter:blur(0);transition:opacity .22s ease .11s,filter .26s ease .11s}.comment[data-open] .comment-text{transition-delay:.14s}.comment[data-open] .comment-reactions{transition-delay:.17s}.comment-head{display:flex;align-items:center;gap:4px;margin:0;line-height:1;white-space:nowrap}.comment-name{font-weight:500;color:var(--cm-name)}.comment-time{font-size:11px;font-weight:400;color:var(--cm-time)}.comment-text{align-self:stretch;margin:0;color:var(--cm-text);letter-spacing:-.14px;text-wrap:pretty;overflow-wrap:break-word}.comment-tag{--tag: #1c5fed;--tag-ink: var(--tag);display:inline-block;padding:2px 4px 2px 2px;border-radius:4px;font-weight:500;line-height:1;letter-spacing:-.252px;white-space:nowrap;color:var(--tag-ink);background:linear-gradient(color-mix(in srgb,var(--tag-ink) var(--tag-fill),transparent),color-mix(in srgb,var(--tag-ink) var(--tag-fill),transparent)),var(--cm-tag-base)}:root[data-theme=dark] .comment-tag{--tag-ink: oklch(from var(--tag) max(l, .72) c h)}.comment-toggle{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;border:0;border-radius:inherit;background:none;cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent}.comment-toggle:focus-visible{outline:2px solid var(--fg);outline-offset:2px}.comment:has(>.comment-toggle:active):not([data-dragging]){transform:scale(.96)}.comment[data-dragging]{transition-property:width,height,border-radius;-webkit-user-select:none;user-select:none}@media(hover:hover)and (pointer:fine){.comment:not([data-open]):hover{transform:scale(1.05)}}.ctl{--ctl-bg: #fff;--ctl-ink: #000;--ctl-hover: rgba(0, 0, 0, .04);--ctl-on: rgba(0, 0, 0, .09);--ctl-rule: rgba(0, 0, 0, .12);--ctl-shadow: inset 0 4px 8px rgba(255, 255, 255, .25), 0 2px 1px rgba(0, 0, 0, .12);position:relative;display:flex;align-items:center;padding:4px;border-radius:120px;background:var(--ctl-bg);box-shadow:var(--ctl-shadow);color:var(--ctl-ink)}:root[data-theme=dark] .ctl{--ctl-bg: #303030;--ctl-ink: #fff;--ctl-hover: rgba(255, 255, 255, .08);--ctl-on: rgba(255, 255, 255, .16);--ctl-rule: rgba(255, 255, 255, .14);--ctl-shadow: inset 0 .5px 0 rgba(255, 255, 255, .14), 0 0 0 .5px rgba(255, 255, 255, .07), 0 4px 10px -3px rgba(0, 0, 0, .5)}.ctl-btn{display:grid;flex:none;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:120px;background:transparent;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .14s ease,transform .14s var(--ease-out),opacity .14s ease}.ctl-btn-text{display:inline-flex;gap:6px;width:auto;padding:0 14px 0 10px;font:inherit;font-size:14px;letter-spacing:-.01em;line-height:1;white-space:nowrap}.ctl-btn:focus-visible{outline:2px solid currentColor;outline-offset:1px}.ctl-btn:disabled{opacity:.3;cursor:default}.ctl-btn:not(:disabled):active,.ctl-btn[data-pressed]{transform:scale(.92)}.ctl-btn[data-pressed]{background:var(--ctl-hover)}.ctl-btn[aria-pressed=true]{background:var(--ctl-on)}@media(hover:hover)and (pointer:fine){.ctl-btn:not(:disabled):hover{background:var(--ctl-hover)}}.ctl-rule{flex:none;width:1px;height:16px;background:var(--ctl-rule)}.ctl-more{display:flex;width:0;overflow:hidden;opacity:0;transition:width .22s var(--ease-out),opacity .1s ease}.ctl-more-in{display:flex;flex:none;align-items:center;gap:4px;padding-right:4px}.ctl[data-expanded] .ctl-more{width:var(--more-w, 77px);opacity:1;transition:width .4s var(--ease-drawer),opacity .22s ease 80ms}.lb-ctl{position:fixed;bottom:24px;left:50%;z-index:20;translate:-50% 0;animation:lb-fade .4s var(--ease-power3) .2s backwards;transition:opacity .2s var(--ease-power3)}.lb-ctl:before{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}.lb[data-state=closing] .lb-ctl{opacity:0}.comment-reactions{display:flex;flex-wrap:wrap;align-items:center;align-self:stretch;min-height:32px}.comment-reactions button,.react-picker button{pointer-events:auto;font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.comment-reactions button:focus-visible,.react-picker button:focus-visible{outline:2px solid var(--fg);outline-offset:1px}.react-chip-wrap{display:grid;grid-template-columns:1fr;transition:grid-template-columns .2s var(--ease-out)}.react-chip-wrap[data-gone]{grid-template-columns:0fr;pointer-events:none}.react-chip-wrap[data-fresh]{animation:chip-room .26s var(--ease-out) backwards}.react-chip-clip{min-width:0;padding-right:4px;overflow:hidden;transition:padding-right .2s var(--ease-out)}.react-chip-wrap[data-gone] .react-chip-clip{padding-right:0}.react-chip{display:flex;align-items:center;justify-content:center;gap:2px;min-width:40px;height:32px;box-sizing:border-box;padding:4px 6px;border:.5px solid var(--cm-line);border-radius:120px;background:none;font-size:12px;font-weight:500;line-height:1;color:var(--cm-name);white-space:nowrap;transition:transform .16s var(--ease-out),background-color .16s ease,opacity .16s ease}.react-pile{position:relative;flex:none;width:16px;height:16px}.react-pile img{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:16px;height:16px;transform:translate(var(--px),var(--py)) rotate(var(--pr));animation:pile-drop .3s cubic-bezier(.34,1.56,.64,1) backwards}.react-count{display:block;min-width:.6em;text-align:center;font-variant-numeric:tabular-nums;animation:count-up .22s var(--ease-out)}.react-count[data-dir=down]{animation-name:count-down}.react-chip-wrap[data-fresh] .react-chip{animation:chip-pop .34s cubic-bezier(.34,1.56,.64,1) backwards}.react-chip-wrap[data-gone] .react-chip{transform:scale(.7);opacity:0}.react-chip[data-boom]{background:var(--cm-soft);pointer-events:none;animation:chip-boom .16s var(--ease-out) both}.react-chip:active{transform:scale(.94)}.react-add{display:grid;flex:none;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:120px;background:transparent;transition:transform .16s var(--ease-out),background-color .16s ease}.comment-reactions[data-has] .react-add,.react-add[aria-expanded=true]{background:var(--cm-soft)}.react-add img{display:block;filter:var(--cm-icon);transition:transform .2s var(--ease-out)}.react-add[aria-expanded=true] img{transform:rotate(-12deg) scale(1.12)}.react-add:active{transform:scale(.9)}.react-picker{position:absolute;top:calc(var(--h) - 8px);z-index:6;display:flex;flex-wrap:wrap;box-sizing:border-box;width:var(--pw);padding:4px;border-radius:20px;background:var(--cm-raised);box-shadow:var(--cm-raised-edge),var(--cm-pop-shadow);transform-origin:var(--ox) var(--oy);opacity:0;visibility:hidden;pointer-events:none;transform:scale(.9) translateY(-6px);transition:opacity .11s ease,transform .11s var(--ease-out),visibility 0s .11s}.react-picker[data-open]{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition:opacity .14s ease,transform .24s var(--ease-out),visibility 0s}.react-pick{display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:120px;background:transparent;transition:transform .14s var(--ease-out),background-color .14s ease}.react-pick img{display:block;width:16px;height:16px;pointer-events:none}.react-picker[data-open] .react-pick{animation:pick-in .26s var(--ease-out) backwards;animation-delay:calc(30ms + var(--k) * 18ms)}@media(hover:hover)and (pointer:fine){.react-pick:hover{background:var(--cm-soft);transform:scale(1.18)}.react-chip:hover,.react-add:hover{background:var(--cm-soft)}}.react-pick:active{transform:scale(.88)}.react-burst{position:absolute;z-index:7;width:0;height:0;pointer-events:none}.react-piece{position:absolute;left:0;top:0;margin:-8px 0 0 -8px;opacity:0;animation:confetti .9s linear both;will-change:transform,opacity}@keyframes confetti{0%{opacity:1;transform:translate(0) scale(.3) rotate(0);animation-timing-function:cubic-bezier(.2,.8,.4,1)}42%{opacity:1;transform:translate(calc(var(--x) * .75),calc(var(--up) * -1)) scale(1) rotate(calc(var(--spin) * .55));animation-timing-function:cubic-bezier(.55,0,.9,.55)}to{opacity:0;transform:translate(var(--x),var(--fall)) scale(.85) rotate(var(--spin))}}@keyframes pick-in{0%{opacity:0;transform:translateY(5px) scale(.6)}}@keyframes chip-pop{0%{opacity:0;transform:scale(.5)}}@keyframes chip-room{0%{grid-template-columns:0fr}}@keyframes chip-boom{to{transform:scale(1.1)}}@keyframes pile-drop{0%{opacity:0;transform:translate(var(--px),calc(var(--py) - 14px)) rotate(calc(var(--pr) - 40deg)) scale(1.3)}}@keyframes count-up{0%{opacity:0;transform:translateY(45%);filter:blur(2px)}}@keyframes count-down{0%{opacity:0;transform:translateY(-45%);filter:blur(2px)}}.tile[data-intro] .comment{animation:pin-in .6s var(--ease-expo) backwards;animation-delay:calc(.9s + min(var(--i, 0),11)*60ms)}@keyframes pin-in{0%{opacity:0;transform:scale(.8)}}.lb{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;overflow:hidden;overscroll-behavior:contain;user-select:none;-webkit-user-select:none}.lb:focus{outline:none}.lb-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--bg) 72%,transparent);-webkit-backdrop-filter:blur(28px);backdrop-filter:blur(28px);animation:lb-fade .4s var(--ease-power3) backwards;transition:opacity .36s var(--ease-power3)}.lb[data-state=closing] .lb-scrim{opacity:0}.lb-stage{position:absolute;top:0;right:0;bottom:0;left:0;touch-action:none}.lb-slide{position:absolute;left:50%;top:50%;will-change:transform,opacity,filter}.lb[data-wide=false] .lb-slide{top:38%}.lb[data-compact] .lb-slide{top:50%}.lb-asset{width:100%;height:100%;border-radius:24px;overflow:hidden;background:var(--card);isolation:isolate;box-shadow:0 0 0 .5px #0000000f,0 2px 6px #0000000d,0 12px 36px #0000001a}:root[data-theme=dark] .lb-asset{box-shadow:0 0 0 .5px #ffffff14,0 2px 6px #0000004d,0 12px 36px #00000080}.lb-asset img,.lb-asset video{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}.lb-slide:not([data-active]){pointer-events:none}.lb[data-opening] .lb-slide:not([data-active]){animation:lb-fade .52s var(--ease-power3) .12s backwards}.lb[data-state=closing] .lb-slide:not([data-active]){opacity:0!important;transition:opacity .26s var(--ease-power3)}.lb-notes{--w: min(320px, calc(100vw - 48px) );position:absolute;display:flex;flex-direction:column;gap:12px;width:var(--w);font:360 14px/1.4 Inter,system-ui,sans-serif;font-feature-settings:"lnum" 1,"tnum" 1;pointer-events:none}.lb[data-wide=true] .lb-notes{left:calc(100% + 20px);top:0}.lb[data-wide=false] .lb-notes{left:50%;top:calc(100% + 16px);margin-left:calc(var(--w) / -2)}.lb-card{position:relative;border-radius:20px;background-color:var(--cm-bg);box-shadow:var(--cm-shadow),0 0 0 .5px var(--cm-line);opacity:0;pointer-events:none;transition:opacity .14s ease}.lb-notes[data-active] .lb-card{opacity:1;pointer-events:auto;animation:lb-card-in .56s var(--ease-expo) calc(.26s + var(--k) * 70ms) backwards}.lb[data-wide=false] .lb-notes[data-active] .lb-card{animation-name:lb-card-up}.lb-panel{position:fixed;z-index:15;box-sizing:content-box;padding:4px;margin:-4px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}.lb-panel::-webkit-scrollbar{display:none}.lb[data-compact] .lb-panel[data-active] .lb-card{animation:lb-panel-in .36s var(--ease-expo) calc(var(--k) * 60ms) backwards}@keyframes lb-panel-in{0%{opacity:0;transform:translateY(-8px) scale(.97)}}.lb[data-state=closing] .lb-card{opacity:0!important;transition-duration:.12s}.lb-card:has(.react-picker[data-open]){z-index:3}.comment-frame.lb-frame{position:relative;width:100%}.lb-card .comment-head,.lb-card .comment-text,.lb-card .comment-reactions{opacity:1;filter:none;transition:none}.lb-card .comment-avatar{transform:none}@keyframes lb-fade{0%{opacity:0}}@keyframes lb-card-in{0%{opacity:0;transform:translate(-18px) scale(.97)}}@keyframes lb-card-up{0%{opacity:0;transform:translateY(-14px) scale(.97)}}.tile[data-lifted] .tile-media{visibility:hidden}.tile-media:focus-visible{outline:2px solid var(--fg);outline-offset:2px}.project{display:flex;flex-direction:column;align-items:center;gap:32px;padding:84px var(--pad) 160px}.shot{width:min(100%,1315px,calc(72.31svh * var(--r)))}.shot-media{aspect-ratio:var(--r);border-radius:32px;overflow:hidden;background:var(--card)}.shot-media :is(img,video){width:100%;height:100%;object-fit:cover}.missing{display:flex;flex-direction:column;align-items:center;gap:8px;padding-top:40vh;font-size:16px}.dock{position:fixed;bottom:0;left:50%;z-index:30;display:flex;gap:8px;padding:16px;translate:-50% 0;animation:dock-in .7s var(--ease-expo) .2s backwards}@keyframes dock-in{0%{opacity:0;translate:-50% 12px}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;padding:120px var(--pad) 0;background:var(--veil);-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);opacity:1;transition:opacity .35s var(--ease-power3),backdrop-filter .5s var(--ease-out),-webkit-backdrop-filter .5s var(--ease-out)}@starting-style{.overlay{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}}.overlay-about{background:color-mix(in srgb,var(--bg) 60%,transparent)}.overlay[data-state=closed]{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0);pointer-events:none;transition-duration:.25s}.overlay-content{flex:1;display:flex;padding-bottom:120px}.overlay-dock{position:sticky;bottom:0;z-index:2;align-self:stretch;flex:none;height:0}.overlay-dock-in{position:absolute;bottom:16px;left:50%;display:flex;gap:8px;translate:-50% 0}.about{display:flex;flex:1;align-items:stretch;justify-content:space-between;gap:48px}.about-text{display:flex;flex-direction:column;justify-content:space-between;gap:48px;width:min(755px,100%);font-size:24px;line-height:1.4;letter-spacing:-.01em;color:color-mix(in srgb,var(--fg) 50%,transparent)}.about-text strong{font-weight:inherit;color:var(--fg)}.about-heading{margin-bottom:1.4em;color:color-mix(in srgb,var(--fg) 30%,transparent)}.about-portrait{flex:none;align-self:flex-end;width:400px}@media(min-width:761px){.overlay-about{--about-pad: clamp(88px, 13.34vh, 120px);overflow:hidden;padding-top:var(--about-pad)}.overlay-about .overlay-content{padding-bottom:var(--about-pad)}.overlay-about .overlay-content,.overlay-about .about,.overlay-about .about-text{min-height:0}.overlay-about .about-text{gap:2em;font-size:var(--about-size, 24px)}.overlay-about .about-portrait{width:min(400px,calc((100dvh - 2 * var(--about-pad)) * .8))}}.about-portrait img{width:100%;height:auto;aspect-ratio:4 / 5;object-fit:cover;border-radius:24px}.prose>*+*{margin-top:1em}.prose a{color:var(--fg)}.about-text>*,.about-portrait{animation:rise .9s var(--ease-expo) both;animation-delay:calc(.1s + var(--i, 0) * 80ms)}.footer{--fg: #fff;position:relative;height:max(1000px,185svh);background-color:var(--wave-red);background-image:linear-gradient(180deg,var(--bg) 8.001%,var(--wave-blue) 26.67%,var(--wave-lilac) 40.005%,var(--wave-pink) 53.34%,var(--wave-red) 66.675%);color:#fff;font-size:20px;line-height:1;letter-spacing:-.02em}.footer-row{position:absolute;z-index:1;top:73.8%;right:clamp(24px,10.4vw,200px);left:clamp(24px,10.4vw,200px);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;translate:0 -50%}.footer-row p{margin:0}.footer-flag{display:block;justify-self:end}.footer-slot{pointer-events:none}.footer-wave{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;pointer-events:none}.footer-wave[data-ready]{opacity:1}@media(max-width:900px){.footer{font-size:16px}.footer-row{display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center}}@supports (animation-timeline: view()){.footer-row>:not(.footer-slot){animation:footer-row-in linear both;animation-timeline:view();animation-range:cover 15% cover 38%}}@keyframes footer-row-in{0%{opacity:0;transform:translateY(16px)}}@media(prefers-reduced-motion:reduce){.footer-row>:not(.footer-slot){animation-name:footer-row-fade}@keyframes footer-row-fade{0%{opacity:0}}}.masthead h1{animation:rise 1s var(--ease-expo) both}.tile[data-intro]{animation:rise 1s var(--ease-expo) both;animation-delay:calc(.1s + min(var(--i, 0),11)*60ms)}.navbar,.navbar-switch{animation:fade .7s ease .15s backwards}@keyframes rise{0%{opacity:0;transform:translate3d(0,24px,0)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}}.shot[data-reveal]{opacity:0;translate:0 32px;transition:opacity .9s var(--ease-expo),translate .9s var(--ease-expo)}.shot[data-reveal][data-in]{opacity:1;translate:0 0}::view-transition-group(root){animation-duration:.5s}::view-transition-old(root),::view-transition-new(root){animation-timing-function:var(--ease-power3)}::view-transition-group(hero){animation-duration:.85s;animation-timing-function:var(--ease-expo)}::view-transition-image-pair(hero){border-radius:32px;overflow:hidden}::view-transition-old(hero),::view-transition-new(hero){width:100%;height:100%;object-fit:cover}@supports not (view-transition-name: none){.page{animation:fade .4s ease both}}@media(max-width:1100px){:root{--pad: 40px}}@media(max-width:760px){:root{--pad: 16px}.masonry{gap:8px;padding:0 var(--pad)}.column{gap:8px}.label{padding:0 24px}.tile-media{border-radius:16px}.shot-media,.about-portrait img{border-radius:24px}.touch-panel{display:none}.touch-trigger .btn-bg{display:block}.touch:is(:hover,[data-open]) .touch-trigger .btn-label,.touch:has(:focus-visible) .touch-trigger .btn-label{opacity:1}.navbar:has(.touch:is(:hover,[data-open])) .nav-about,.navbar:has(.touch :focus-visible) .nav-about{transform:none}.overlay{padding:88px var(--pad) 0}.overlay-content{padding-bottom:96px}.about{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:64px}.about-text{font-size:20px;gap:48px}.about-portrait{width:min(100%,320px)}}@media(max-width:420px){.navbar{right:42px;gap:4px;padding:12px}.navbar-switch{padding:0 12px}.btn{padding:14px}.nav-lang{padding-left:12px}}.drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#00000052;touch-action:none;transition:opacity .28s ease}.drawer-scrim[data-state=closed]{opacity:0;transition-duration:.2s}.drawer{--option: var(--btn);position:fixed;z-index:51;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom,0px));max-width:440px;margin-inline:auto;padding:0 16px 16px;border-radius:32px;background:color-mix(in srgb,var(--bg) 78%,transparent);-webkit-backdrop-filter:blur(28px) saturate(1.6);backdrop-filter:blur(28px) saturate(1.6);box-shadow:inset 0 .5px #ffffff80,0 0 0 .5px var(--btn),0 24px 64px -12px #00000059;color:var(--fg);touch-action:none;transition:transform .45s var(--ease-drawer)}:root[data-theme=dark] .drawer{box-shadow:inset 0 .5px #ffffff24,0 0 0 .5px #ffffff14,0 24px 64px -12px #000000b3}.drawer[data-state=closed]{transform:translateY(calc(100% + 24px));transition-duration:.26s;transition-timing-function:var(--ease-out)}.drawer[data-dragging]{transition:none}.drawer-grab{display:grid;place-items:center;width:100%;height:28px;padding:0;border:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.drawer-grab:before{content:"";width:36px;height:5px;border-radius:3px;background:var(--muted)}.drawer-title{margin:4px 0 16px;color:var(--muted);font-size:14px;letter-spacing:-.01em;line-height:1;text-align:center}.drawer-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}.drawer-options li:last-child:nth-child(odd){grid-column:1 / -1;justify-self:center;min-width:calc(50% - 4px)}.drawer-options .option{width:100%}.drawer-options li{opacity:1;translate:0 0;transition:opacity .26s var(--ease-out),translate .26s var(--ease-out);transition-delay:calc(90ms + var(--i, 0) * 40ms)}.drawer[data-state=closed] .drawer-options li{opacity:0;translate:0 8px;transition-duration:.12s;transition-delay:0s}@starting-style{.drawer-scrim{opacity:0}.drawer{transform:translateY(calc(100% + 24px))}.drawer-options li{opacity:0;translate:0 8px}}@media(prefers-reduced-transparency:reduce){.drawer{background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none}}@media(prefers-reduced-motion:reduce){@keyframes rise{0%{opacity:0}}.shot[data-reveal]{translate:none;transition:opacity .3s ease}.tile-media :is(img,video){transition:none;transform:none!important}.touch-bg{transition-duration:1ms}.touch-options li{translate:none}.drawer,.drawer[data-state=closed]{transform:none!important;transition:opacity .2s ease}.drawer[data-state=closed]{opacity:0}.comment-pile-avatar{transition:none}.drawer-options li,.drawer[data-state=closed] .drawer-options li{translate:none;transition-delay:0s}@starting-style{.drawer{opacity:0}}.nav-about{transition:none}.btn:active,.option:active{transform:none}.switch-thumb{transition:none}.ctl-more,.ctl[data-expanded] .ctl-more{transition:opacity .15s ease}.overlay{transition:opacity .25s ease}.swap[data-swapped] .swap-done{animation:none;background:none;-webkit-text-fill-color:currentColor}}@media(prefers-reduced-motion:reduce){.lb-scrim,.lb-ctl,.lb[data-opening] .lb-slide:not([data-active]){animation:none}.lb-notes[data-active] .lb-card,.lb[data-wide=false] .lb-notes[data-active] .lb-card,.lb[data-compact] .lb-panel[data-active] .lb-card{animation:lb-fade .15s ease backwards}.comment,.comment[data-open],.comment-avatar,.comment[data-open] .comment-avatar{transition-duration:1ms}.comment-head,.comment-text,.comment-reactions,.comment[data-open] .comment-head,.comment[data-open] .comment-text,.comment[data-open] .comment-reactions{filter:none;transition:opacity .15s ease;transition-delay:0ms}.comment-pile,.comment-card,.comment-card-surface,.comment-card-surface:after,.comment[data-open] .comment-card,.comment[data-spread] .comment-card{transition-duration:1ms;transition-delay:0ms}.comment-card .comment-frame,.comment[data-spread] .comment-card .comment-frame{filter:none;transition:opacity .15s ease;transition-delay:0ms}.react-picker,.react-picker[data-open]{transform:none;transition:opacity .12s ease,visibility 0s}.react-picker[data-open] .react-pick,.react-chip-wrap[data-fresh],.react-chip-wrap[data-fresh] .react-chip,.react-pile img,.react-count,.react-chip[data-boom]{animation:none}.react-chip-wrap,.react-chip-clip,.react-chip,.react-add img{transition-duration:1ms}.tile[data-intro] .comment{animation:none}}
