:root{--background:#000;--foreground:#fff;--muted:#a3a3a3;--image-width:142.25vh;--image-half-width:71.125vh;--gallery-gap:5vw;--gallery-step:calc(var(--image-width) + var(--gallery-gap))}*{box-sizing:border-box}html,body{overscroll-behavior:none;background:var(--background);width:100%;height:100%;margin:0;overflow:hidden}button,a{color:inherit;font:inherit}button{border:0}.portfolio{font-synthesis:none;touch-action:none;background:#fff;width:100vw;height:100dvh;font-family:Inter,Helvetica Neue,Arial,sans-serif;font-size:clamp(16px,1.587vw,24px);font-weight:500;line-height:normal;transition:color .5s cubic-bezier(.7,0,.25,1);position:relative;overflow:hidden}.portfolio.light{color:#000}.portfolio.dark{color:#fff}.theme-layer{z-index:0;pointer-events:none;opacity:0;will-change:opacity;background:#000;transition:opacity .5s cubic-bezier(.7,0,.25,1);position:absolute;inset:0;transform:translateZ(0)}.portfolio.dark .theme-layer{opacity:1}.text-stage,.visual-stage,.project{position:absolute;inset:0}.text-stage{z-index:10;pointer-events:none;transition:opacity .26s}.visual-stage{z-index:20;pointer-events:none}.flying-copy{z-index:8;width:33.333vw;color:inherit;cursor:default;text-align:left;pointer-events:auto;will-change:transform, opacity;background:0 0;flex-direction:column;align-items:flex-start;padding:0;transition:transform .5s cubic-bezier(.7,0,.25,1),opacity .22s;display:flex;position:absolute;top:0;left:10vw}.flying-copy.current{opacity:1;transform:translateY(25vh)}.flying-copy.previous{opacity:1;transform:translateY(-.41em)}.flying-copy.next{opacity:1;transform:translateY(calc(100dvh - .8em))}.flying-copy.past{opacity:0;pointer-events:none;transform:translateY(-2em)}.flying-copy.future{opacity:0;pointer-events:none;transform:translateY(calc(100dvh + 1em))}.flying-copy.loop-preparing{transition:none}.flying-title,.flying-description{display:block}.flying-title{width:max-content;max-width:80vw;color:inherit;cursor:default;text-align:left;white-space:nowrap;background:0 0;padding:0}.flying-description{width:100%;color:var(--muted);margin-top:.5em;transition:transform .5s cubic-bezier(.7,0,.25,1),opacity .18s}.contact-links{white-space:nowrap;gap:1.333em;margin-top:.5em;transition:transform .5s cubic-bezier(.7,0,.25,1),opacity .18s;display:flex}.flying-copy:not(.current) .flying-description,.flying-copy:not(.current) .contact-links{opacity:0;pointer-events:none}.flying-copy.previous .flying-description,.flying-copy.previous .contact-links,.flying-copy.past .flying-description,.flying-copy.past .contact-links{transform:translateY(-30vh)}.flying-copy.next .flying-description,.flying-copy.next .contact-links,.flying-copy.future .flying-description,.flying-copy.future .contact-links{transform:translateY(30vh)}.contact-links a{color:#dedede;cursor:pointer;text-decoration-line:underline;text-decoration-color:currentColor;text-decoration-thickness:.5px}.project{opacity:0;visibility:hidden;pointer-events:none;contain:layout paint;transition:opacity .5s cubic-bezier(.7,0,.25,1),visibility 0s linear .5s;overflow:hidden}.project.current{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .5s cubic-bezier(.7,0,.25,1),visibility}.gallery-open .gallery-track{z-index:6}.gallery-open{z-index:10}.gallery-open .gallery-track{transition:transform .5s cubic-bezier(.7,0,.25,1)}.gallery-open .gallery-track img.active,.gallery-open .gallery-track video.active{opacity:1}.gallery-open .gallery-track,.gallery-open .gallery-ear{pointer-events:auto}.gallery-open .gallery-ear{z-index:12}.gallery-open .gallery-track,.gallery-open .gallery-ear{position:absolute}.project:not(.current) .gallery-ear{display:none}.project,.gallery-track,.gallery-ear{color:inherit}.flying-copy{text-align:left}.gallery-track{z-index:2;gap:var(--gallery-gap);width:max-content;height:80vh;transform:translate3d(var(--gallery-shift), 0, 0);will-change:transform;backface-visibility:hidden;transition:transform .5s cubic-bezier(.7,0,.25,1);display:flex;position:absolute;top:10vh;left:50vw}.gallery-track img,.gallery-track video{flex:0 0 var(--image-width);width:var(--image-width);min-width:var(--image-width);object-fit:contain;opacity:.8;-webkit-user-select:none;user-select:none;border-radius:.333em;max-width:none;height:80vh;max-height:none;transition:opacity .32s;display:block}.gallery-track video{object-fit:cover;object-position:center top;background:#fff}.gallery-ear{z-index:7;width:max(0px, calc((100vw - var(--image-width)) / 2));cursor:pointer;background:0 0;height:80vh;padding:0;position:absolute;top:10vh}.project-entry-ear{z-index:7;cursor:pointer;background:0 0;width:50vw;height:80vh;padding:0;position:absolute;top:10vh;right:0}.gallery-ear.left{left:0}.gallery-ear.right{right:0}@media (width<=760px){:root{--gallery-gap:5vw}.portfolio{font-size:16px}.flying-copy{width:60vw;left:8vw}.gallery-track{left:50vw}.gallery-ear{width:10vw}}@media (prefers-reduced-motion:reduce){.portfolio,.theme-layer,.flying-copy,.project,.gallery-track,.gallery-track img,.gallery-track video{transition-duration:1ms}}
.contact-links a{text-decoration-thickness:.7px;text-underline-offset:.08em}
.comment-layer{z-index:14;pointer-events:none;opacity:0;width:var(--image-width);height:80vh;transition:opacity .16s ease;position:absolute;inset:0 auto auto calc(var(--comment-image-index, 0) * (var(--image-width) + var(--gallery-gap)))}
.comment-layer.comment-visible,.comment-layer.comment-open{opacity:1}
.comment-pip{--pip-size:18px;pointer-events:auto;cursor:pointer;background:#ffc30f;border:0;border-radius:999px 999px 999px 0;width:var(--pip-size);height:var(--pip-size);padding:0;position:absolute;left:calc(var(--comment-x) * var(--image-width));top:calc(var(--comment-y) * 80vh);transform:translateY(-100%);transform-origin:left bottom;box-shadow:0 1px 5px #00000054;transition:transform .16s ease,opacity .16s ease,box-shadow .16s ease}
.comment-pip:before{content:"";border:1px solid #00000012;border-radius:inherit;position:absolute;inset:0}
.comment-pip:hover,.comment-pip:focus-visible{transform:translateY(-100%) scale(1.08);box-shadow:0 2px 7px #00000059}
.comment-pip.comment-expanded{opacity:0;pointer-events:none}
.comment-bubble{pointer-events:auto;color:#000;letter-spacing:-.26px;background:#fff;border:1px solid #ffc30f;border-radius:9px 9px 9px 0;max-width:min(var(--comment-width),calc(var(--image-width) - 32px));width:var(--comment-width);padding:12px 16px;font-family:Inter,Helvetica Neue,Arial,sans-serif;font-size:13px;font-weight:400;line-height:normal;box-shadow:0 1px 4px #00000054;position:absolute;left:calc(var(--comment-x) * var(--image-width));top:calc(var(--comment-y) * 80vh);transform:translateY(-100%);transform-origin:left bottom;animation:comment-pop .14s ease-out}
.comment-bubble.comment-closing{pointer-events:none;animation:comment-collapse .12s ease-in forwards}
.comment-bubble[hidden]{display:none}
@keyframes comment-pop{0%{opacity:0;transform:translateY(-100%) scale(.18)}100%{opacity:1;transform:translateY(-100%) scale(1)}}
@keyframes comment-collapse{0%{opacity:1;transform:translateY(-100%) scale(1)}100%{opacity:0;transform:translateY(-100%) scale(.18)}}
@media (width<=760px){.comment-bubble{width:min(var(--comment-width),76vw)}.comment-pip{--pip-size:16px}}
