@font-face{font-family:LT Display;src:url(/fonts/InterVariable-latin.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/InterVariable-latin.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{--paper:#f9f9f7;--paper-raised:#fbfbf9;--white:#fff;--ink:#0c0c0d;--ink-2:#3b3b3e;--ink-3:#77777b;--ink-4:#b9b9b6;--rule:#0c0c0d1f;--signal-red:#e0301e;--signal-blue:#2747f5;--focus:#2747f5;--font:"Inter", "Helvetica Neue", Helvetica, Arial, system-ui, sans-serif;--font-display:"LT Display", "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;--display-tracking:-.048em;--display-weight:640;--head-tracking:-.035em;--micro-tracking:-.005em;--fs-micro:.75rem;--fs-small:.8125rem;--fs-body:clamp(.9375rem, .9rem + .18vw, 1.0625rem);--fs-lead:clamp(1.25rem, 1.05rem + .9vw, 1.875rem);--fs-h3:clamp(1.5rem, 1.2rem + 1.2vw, 2.5rem);--fs-h2:clamp(3rem, 1.6rem + 7vw, 10.5rem);--fs-display:clamp(4.6rem, .6rem + 17.2vw, 22rem);--s-1:.25rem;--s-2:.5rem;--s-3:.75rem;--s-4:1rem;--s-5:1.5rem;--s-6:2rem;--s-7:3rem;--s-8:4.5rem;--s-9:7rem;--s-10:10rem;--gutter:clamp(1rem, .55rem + 2.2vw, 2.5rem);--edge:max(var(--gutter), env(safe-area-inset-left), env(safe-area-inset-right));--w-text:38rem;--w-wide:92rem;--bp-sm:600px;--bp-md:900px;--bp-lg:1280px;--r-xs:4px;--r-sm:10px;--r-md:18px;--r-lg:clamp(18px, 1.2rem + .6vw, 28px);--shadow-card:0 1px 0 #0000000a, 0 30px 60px -30px #00000059;--ease-out:cubic-bezier(.2, .7, 0, 1);--ease-in-out:cubic-bezier(.65, 0, .25, 1);--ease-soft:cubic-bezier(.33, 0, .2, 1);--t-fast:.18s;--t-base:.42s;--t-slow:.9s;--t-bg:1.1s;--perspective:1400px;--perspective-tight:900px;--z-content:1;--z-blur:40;--z-chrome:50;--z-overlay:80}@media (prefers-reduced-motion:reduce){:root{--t-fast:1ms;--t-base:1ms;--t-slow:1ms;--t-bg:1ms}}
.pcard[data-blurred=true] .pcard__media,.pcard[data-blurred=true] .pcard__title,.projects__now[data-blurred=true],.detail[data-blurred=true]>.dh,.detail[data-blurred=true]>.detail__body,.dnext[data-blurred=true] .dnext__name,.dnext[data-blurred=true] .dnext__keys,.dnext[data-blurred=true] .dnext__visual,.flip-clone[data-blurred=true]{filter:blur(14px);-webkit-user-select:none;user-select:none}.legal-page{width:min(100% - 2 * var(--edge), 800px);overflow-wrap:anywhere;margin:0 auto;padding:clamp(32px,8vw,96px) 0}.legal-page h1{font-size:clamp(32px,6vw,64px);line-height:1.1}.legal-page h2{margin-top:2em;font-size:clamp(20px,3vw,28px)}.legal-page p{margin:1em 0}.legal-page__source{color:var(--ink-3)}*,:before,:after{box-sizing:border-box}html{background:var(--paper);color:var(--ink);font-family:var(--font);font-optical-sizing:auto;font-feature-settings:"kern", "calt", "ss03";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-text-size-adjust:100%;text-size-adjust:100%;scrollbar-gutter:stable;font-size:100%}html.lenis,html.lenis body{height:auto}.lenis.lenis-stopped,html.is-locked{overflow:hidden}body{font-size:var(--fs-body);letter-spacing:-.011em;background:0 0;margin:0;line-height:1.5;overflow-x:clip}img,video{max-width:100%;display:block}a{color:inherit}button{font:inherit;color:inherit}::selection{background:var(--signal-blue);color:#fff}:focus-visible{outline:2px solid var(--focus-ring,var(--focus));outline-offset:3px;border-radius:2px}.skip{left:var(--edge);top:var(--s-3);z-index:calc(var(--z-overlay) + 2);padding:var(--s-2) var(--s-3);background:var(--ink);color:var(--paper);font-size:var(--fs-small);text-decoration:none;position:fixed;transform:translateY(-200%)}.skip:focus-visible{transform:none}.label{font-size:var(--fs-small);letter-spacing:var(--micro-tracking);color:var(--ink-3);margin:0;font-weight:560}.chrome{z-index:var(--z-chrome);padding:calc(var(--s-4) + env(safe-area-inset-top)) var(--edge) var(--s-4);color:#fff;mix-blend-mode:difference;font-size:var(--fs-small);pointer-events:none;justify-content:space-between;align-items:baseline;font-weight:540;display:flex;position:fixed;inset:0 0 auto}.chrome a{pointer-events:auto;padding-block:var(--s-2);text-decoration:none}.chrome__home{opacity:1;transition:opacity var(--t-base) var(--ease-out), transform var(--t-base) var(--ease-out)}.chrome[data-compact="0"] .chrome__home{opacity:0;pointer-events:none;transform:translateY(-6px)}.chrome__nav{gap:clamp(var(--s-4), 2vw, var(--s-6));display:flex}.has-overlay .chrome{opacity:0}.edge-blur{height:clamp(90px,16svh,190px);z-index:var(--z-blur);pointer-events:none;position:fixed;inset:auto 0 0}.edge-blur span{position:absolute;inset:0}.edge-blur span:first-child{-webkit-backdrop-filter:blur(.5px);-webkit-mask:linear-gradient(#0000 0%,#000 12.5% 25%,#0000 37.5%);mask:linear-gradient(#0000 0%,#000 12.5% 25%,#0000 37.5%)}.edge-blur span:nth-child(2){-webkit-backdrop-filter:blur(1px);-webkit-mask:linear-gradient(#0000 12.5%,#000 25% 37.5%,#0000 50%);mask:linear-gradient(#0000 12.5%,#000 25% 37.5%,#0000 50%)}.edge-blur span:nth-child(3){-webkit-backdrop-filter:blur(2px);-webkit-mask:linear-gradient(#0000 25%,#000 37.5% 50%,#0000 62.5%);mask:linear-gradient(#0000 25%,#000 37.5% 50%,#0000 62.5%)}.edge-blur span:nth-child(4){-webkit-backdrop-filter:blur(4px);-webkit-mask:linear-gradient(#0000 37.5%,#000 50% 62.5%,#0000 75%);mask:linear-gradient(#0000 37.5%,#000 50% 62.5%,#0000 75%)}.edge-blur span:nth-child(5){-webkit-backdrop-filter:blur(8px);-webkit-mask:linear-gradient(#0000 50%,#000 62.5% 75%,#0000 87.5%);mask:linear-gradient(#0000 50%,#000 62.5% 75%,#0000 87.5%)}.edge-blur span:nth-child(6){-webkit-backdrop-filter:blur(14px);-webkit-mask:linear-gradient(#0000 62.5%,#000 75% 87.5%,#0000 100%);mask:linear-gradient(#0000 62.5%,#000 75% 87.5%,#0000 100%)}.edge-blur span:nth-child(7){-webkit-backdrop-filter:blur(30px);-webkit-mask:linear-gradient(#0000 75%,#000 87.5% 100%);mask:linear-gradient(#0000 75%,#000 87.5% 100%)}@media (pointer:coarse){.edge-blur span:nth-child(7){display:none}}.has-overlay .edge-blur{visibility:hidden}.hero{height:145svh;position:relative}.hero__stage{height:100svh;position:sticky;top:0;overflow:hidden}.hero__tagline{z-index:3;top:calc(var(--s-4) + var(--s-2) + env(safe-area-inset-top));left:var(--edge);max-width:22ch;font-size:var(--fs-small);will-change:transform, opacity;margin:0;font-weight:540;line-height:1.35;position:absolute}.hero__name{z-index:1;left:var(--edge);right:var(--edge);bottom:calc(clamp(40px, 6svh, 80px) + env(safe-area-inset-bottom));font-family:var(--font-display);font-variation-settings:"opsz" 32;font-size:clamp(4.4rem,14.1vw,26rem);font-weight:var(--display-weight);letter-spacing:var(--display-tracking);white-space:nowrap;-webkit-user-select:none;user-select:none;margin:0;line-height:.86;position:absolute}.hero__line{display:inline}.hero__line+.hero__line{margin-left:.26em}.hero__name .ch,.typed .ch{will-change:transform;display:inline-block}html.intro .hero__name .ch:not(.is-on),html.intro .typed.is-typing .ch:not(.is-on){visibility:hidden}html.intro .hero__name:not(.is-typing) .ch{animation:0s 2.5s forwards show}@keyframes show{to{visibility:visible}}.hero__cursor,.typed__cursor{background:var(--signal-blue);opacity:0;pointer-events:none;width:max(2px,.022em);height:.74em;margin-top:.03em;margin-left:.04em;position:absolute;top:0;left:0}.is-typing>.hero__cursor,.is-typing>.typed__cursor{opacity:1;animation:caret 1.06s var(--ease-in-out) infinite}.hero__name.is-done>.hero__cursor{animation:caret-out .6s var(--ease-out) forwards}@keyframes caret{0%,45%{opacity:1}55%,to{opacity:0}}@keyframes caret-out{to{opacity:0}}.badge{z-index:2;pointer-events:none;position:absolute;inset:0}.badge__canvas{opacity:0;width:100%;height:100%;transition:opacity .5s var(--ease-out);position:absolute;inset:0}.badge[data-mode=webgl] .badge__canvas{opacity:1}.badge__hit{pointer-events:auto;touch-action:none;cursor:grab;position:absolute;top:0;left:0}.badge[data-mode=fallback] .badge__hit,.badge[data-mode=pending] .badge__hit{display:none}.badge__hit.is-grabbing{cursor:grabbing}.badge__static{transform-origin:50% 0;flex-direction:column;align-items:center;width:clamp(150px,15vw,250px);display:none;position:absolute;top:0;left:69%;transform:translate(-50%)rotate(-2deg)}html:not(.js) .badge__static,.badge[data-mode=fallback] .badge__static{display:flex}.badge__strap{background:repeating-linear-gradient(#141416 0 2px,#1c1c1f 2px 4px);width:15%;height:clamp(110px,20svh,220px)}.badge__clip{background:linear-gradient(#e4e4e6,#a9a9ad);border-radius:4px;width:18%;height:18px}.badge__card{aspect-ratio:1.5/2.12;width:100%;box-shadow:var(--shadow-card);background:#f8f8f5;border-radius:9px;flex-direction:column;margin-top:6px;padding:18% 9% 0;font-size:clamp(9px,.85vw,14px);display:flex;position:relative;overflow:hidden}.badge__slot{background:var(--paper);border-radius:99px;width:23%;height:3.4%;position:absolute;top:5%;left:50%;transform:translate(-50%);box-shadow:inset 0 1px 2px #00000040}.badge__domain{color:var(--ink-3)}.badge__name{font-family:var(--font-display);font-variation-settings:"opsz" 32;font-size:3.1em;font-weight:var(--display-weight);letter-spacing:-.045em;margin-top:auto;line-height:.95}.badge__roles{border-top:1px solid var(--rule);gap:.2em;margin:1.2em 0 2.4em;padding-top:.8em;font-size:1.05em;font-weight:560;display:grid}.badge__roles .is-art{color:var(--signal-red)}.badge__roles .is-music{color:var(--signal-blue)}.badge__roles span:before{content:"";background:currentColor;border-radius:50%;width:.55em;height:.55em;margin-right:.45em;display:inline-block}.badge__band{background:linear-gradient(90deg, var(--signal-red), #8a3c8f, var(--signal-blue));filter:blur(6px);opacity:.9;height:7%;position:absolute;inset:auto 0 0}@media (max-width:699px),(max-width:1100px) and (max-aspect-ratio:9/10){.hero__tagline{top:calc(var(--s-4) + 48px + env(safe-area-inset-top));max-width:14ch}.hero__name{white-space:normal;font-size:24vw;line-height:.88}.hero__line{display:block}.hero__line+.hero__line{margin-left:0}.badge__static{width:44vw;left:62%}.badge__card{font-size:9px}}.projects{--focus-ring:currentColor;color:var(--sec-fg,var(--ink));position:relative}.projects__field{background:var(--sec-bg,var(--ink));pointer-events:none;position:absolute;inset:0}.projects.is-3d .projects__field{clip-path:inset(calc((1 - var(--field,1)) * 16svh) calc((1 - var(--field,1)) * 7vw) 0 calc((1 - var(--field,1)) * 7vw) round calc((1 - var(--field,1)) * 44px))}.projects:not(.is-3d){background:var(--ink);color:var(--paper)}.projects__head,.projects__track,.projects__foot{position:relative}.projects.is-3d{height:calc(100svh + var(--steps) * 62svh)}.projects__stage{grid-template-rows:auto 1fr auto;min-height:100svh;display:grid;position:relative}.projects.is-3d .projects__stage{height:100svh;position:sticky;top:0;overflow:hidden}.projects__head{justify-content:space-between;align-items:flex-end;gap:var(--s-5);padding:calc(var(--s-8) + env(safe-area-inset-top)) var(--edge) 0;display:flex}.projects__title{font-family:var(--font-display);font-variation-settings:"opsz" 32;font-size:var(--fs-h2);font-weight:var(--display-weight);letter-spacing:var(--display-tracking);margin:0;line-height:.9}.projects__mask{margin-bottom:-.2em;padding:0 .04em .2em 0;display:inline-block;overflow:hidden}.projects__mask .ch{will-change:transform;display:inline-block}.projects__count{font-size:var(--fs-h3);letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin:0;font-weight:520}.projects__of{opacity:.45;margin-left:.25em}.projects__track{--card-w:min(29vw, 50svh, 29rem);gap:var(--s-4);scroll-snap-type:x mandatory;padding:var(--s-6) var(--edge);display:flex;position:relative;overflow-x:auto}.projects.is-3d .projects__track{perspective:var(--perspective);perspective-origin:50% 46%;transform-style:preserve-3d;touch-action:pan-y;cursor:grab;-webkit-user-select:none;user-select:none;padding:0;display:block;overflow:visible}.projects__track.is-dragging{cursor:grabbing}.pcard{flex:0 0 var(--card-w);width:var(--card-w);color:var(--card-fg);scroll-snap-align:center;-webkit-tap-highlight-color:transparent;outline:none;text-decoration:none;position:relative}.projects.is-3d .pcard{will-change:transform, opacity, filter;position:absolute;top:50%;left:50%}.pcard__inner{border-radius:var(--r-lg);background:var(--card-bg);transform:perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .7s var(--ease-out), box-shadow .7s var(--ease-out);padding:9px;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff0d}.pcard.is-hover .pcard__inner{transition-duration:.25s;box-shadow:inset 0 0 0 1px #ffffff14,0 40px 70px -30px #0000008c}.pcard__media{aspect-ratio:1;border-radius:calc(var(--r-lg) - 6px);background:#0000001f;display:block;position:relative;overflow:hidden}.pcard__media>.vis{transition:transform 1s var(--ease-out)}.pcard.is-hover .pcard__media>.vis{transform:scale(1.035)}.pcard__foot{justify-content:space-between;align-items:baseline;gap:var(--s-3);padding:14px 10px 6px;display:flex}.pcard__title{font-family:var(--font-display);font-variation-settings:"opsz" 32;letter-spacing:-.03em;font-size:clamp(1.2rem,.9rem + .75vw,1.7rem);font-weight:620;line-height:1.05}.pcard__index{font-size:var(--fs-micro);font-variant-numeric:tabular-nums;opacity:.5;font-weight:520}.pcard__glare{pointer-events:none;background:radial-gradient(circle at var(--glare-x,50%) var(--glare-y,50%), #ffffff38, transparent 46%);mix-blend-mode:soft-light;opacity:0;transition:opacity .5s var(--ease-out);position:absolute;inset:0}.pcard.is-hover .pcard__glare{opacity:1}.pcard:focus-visible .pcard__inner{outline-offset:5px;outline:2px solid}.projects__foot{align-items:end;gap:var(--s-4);padding:0 var(--edge) calc(var(--s-6) + env(safe-area-inset-bottom));z-index:calc(var(--z-blur) + 1);grid-template-columns:1fr auto 1fr;display:grid;position:relative}.projects__now{font-size:var(--fs-small);margin:0;line-height:1.35;display:grid}.projects__nowname{font-weight:600}.projects__nowrole{opacity:.6}.projects__ctrl{align-items:center;gap:var(--s-2);display:flex}.projects__btn{border:1px solid color-mix(in srgb, currentColor 28%, transparent);cursor:pointer;width:44px;height:44px;transition:background-color var(--t-fast) var(--ease-out), opacity var(--t-fast);background:0 0;border-radius:50%;font-size:1rem}.projects__btn:hover:not(:disabled){background:color-mix(in srgb, currentColor 10%, transparent)}.projects__btn:disabled{opacity:.3;cursor:default}.projects__open{min-height:44px;padding:0 var(--s-4);font-size:var(--fs-small);cursor:pointer;text-underline-offset:.3em;background:0 0;border:0;font-weight:600;text-decoration:underline;text-decoration-thickness:1px}.projects__hint{font-size:var(--fs-micro);opacity:.5;justify-self:end;margin:0}.for-coarse{display:none}@media (pointer:coarse){.for-fine{display:none}.for-coarse{display:inline}}@media (min-width:700px) and (max-width:1100px) and (max-aspect-ratio:9/10){.projects__track{--card-w:min(56vw, 42svh)}}@media (max-width:699px){.projects__head{padding-top:calc(var(--s-8) + var(--s-2) + env(safe-area-inset-top))}.projects__track{--card-w:min(76vw, 46svh, 23rem)}.projects__foot{grid-template-columns:1fr auto}.projects__hint,.projects__open{display:none}}.overlay{z-index:var(--z-overlay);overscroll-behavior:contain;color:var(--ink);-webkit-overflow-scrolling:touch;background:#fff;position:fixed;inset:0;overflow-y:auto}.flip-clone{z-index:calc(var(--z-overlay) + 1);pointer-events:none;position:fixed;overflow:hidden}.flip-clone>.vis{width:100%;height:100%}.detail{--pad:var(--edge);--overlap:clamp(90px, 20svh, 240px);color:var(--ink);background:#fff}.detail__bar{z-index:3;height:calc(60px + env(safe-area-inset-top));padding:env(safe-area-inset-top) var(--pad) 0;background:var(--p-bg);color:var(--p-fg);font-size:var(--fs-small);justify-content:space-between;align-items:center;font-weight:540;display:flex;position:sticky;top:0}.detail__back{min-height:44px;color:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:.5em;padding:0;font-weight:560;text-decoration:none;display:inline-flex}.detail__back span{transition:transform var(--t-fast) var(--ease-out)}.detail__back:hover span{transform:translate(-4px)}.detail__crumb{opacity:.6;font-variant-numeric:tabular-nums}.dh{padding:var(--s-7) var(--pad) 0;background:var(--p-bg);color:var(--p-fg);position:relative}.dh__top{justify-content:space-between;gap:var(--s-4);font-size:var(--fs-small);opacity:.7;font-variant-numeric:tabular-nums;font-weight:540;display:flex}.dh__title{margin:var(--s-7) 0 var(--s-7);font-family:var(--font-display);font-variation-settings:"opsz" 32;font-size:clamp(3.2rem,.6rem + 11.4vw,16rem);font-weight:var(--display-weight);letter-spacing:var(--display-tracking);overflow-wrap:anywhere;line-height:.88}.dh__word{vertical-align:top;margin-bottom:-.1em;margin-right:.22em;padding-bottom:.1em;display:inline-block;overflow:hidden}.dh__word:last-child{margin-right:0}.dh__word>span{display:inline-block}.detail.is-live .dh__word>span{transition:transform 1.15s var(--ease-out) calc(var(--w) * 90ms);transform:translateY(108%)}.detail.is-live.is-shown .dh__word>span{transform:none}.dh__row{gap:var(--s-7);grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start;display:grid}.dh__summary{max-width:28em;font-size:var(--fs-lead);letter-spacing:-.022em;margin:0;font-weight:440;line-height:1.26}.dh__meta{gap:var(--s-4) var(--s-5);grid-template-columns:1fr 1fr;margin:0;display:grid}.dh__meta div{padding-top:var(--s-3);border-top:1px solid color-mix(in srgb, currentColor 22%, transparent)}.dh__meta dt{font-size:var(--fs-micro);opacity:.6}.dh__meta dd{font-size:var(--fs-small);margin:3px 0 0;font-weight:540}.dh__meta a{text-underline-offset:.25em;text-decoration-thickness:1px}.dh__visual{z-index:1;margin:var(--s-8) 0 calc(var(--overlap) * -1);aspect-ratio:16/9;border-radius:var(--r-lg);background:var(--p-card);width:100%;max-height:84svh;color:var(--p-fg);position:relative;overflow:hidden;box-shadow:0 40px 80px -40px #00000073}.detail__body{padding:calc(var(--overlap) + var(--s-8)) var(--pad) var(--s-9);background:#fff}.ds{column-gap:var(--s-5);max-width:108rem;padding-top:var(--s-9);grid-template-columns:repeat(12,minmax(0,1fr));margin:0 auto;display:grid}.ds:first-child{padding-top:var(--s-6)}.ds__side{padding-bottom:var(--s-5);grid-column:1/4;align-self:start;position:sticky;top:84px}.ds__side--inline{align-items:baseline;gap:var(--s-3);grid-column:1/-1;display:flex;position:static}.ds__num{margin-bottom:var(--s-2);font-size:var(--fs-small);color:var(--ink-3);font-variant-numeric:tabular-nums;display:block}.ds__side--inline .ds__num{margin:0}.ds__h{font-family:var(--font-display);font-variation-settings:"opsz" 32;font-size:clamp(1.125rem,.95rem + .6vw,1.5rem);font-weight:var(--display-weight);letter-spacing:-.02em;margin:0;line-height:1.15}.ds__note{margin:var(--s-2) 0 0;max-width:24ch;font-size:var(--fs-small);color:var(--ink-3)}.ds__body{grid-column:5/12}.ds__body p{letter-spacing:-.016em;max-width:36em;color:var(--ink-2);margin:0 0 1em;font-size:clamp(1.0625rem,.95rem + .4vw,1.3125rem);line-height:1.5}.ds__body .ds__lead{letter-spacing:-.034em;max-width:22em;color:var(--ink);margin-bottom:1.1em;font-size:clamp(1.5rem,.9rem + 2vw,3rem);font-weight:460;line-height:1.1}.ds__grid{gap:var(--s-5);grid-column:1/-1;align-items:start;display:grid}.is-pair .ds__grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}.is-pair .ds__grid>:nth-child(2){margin-top:22%}.drow{gap:var(--s-4);scroll-snap-type:x mandatory;margin-inline:calc(var(--pad) * -1);padding:0 var(--pad) var(--s-4);scrollbar-width:thin;overscroll-behavior-x:contain;grid-column:1/-1;display:flex;overflow-x:auto}.drow .dmedia{scroll-snap-align:start;flex:none}.drow .dmedia__frame{width:auto;height:clamp(240px,52svh,560px)}.dmedia{margin:0}.dmedia__frame{border-radius:var(--r-md);background:#eeeeec;position:relative;overflow:hidden}.dmedia__inner{will-change:transform;width:100%;height:100%}.dmedia__inner img,.dmedia__inner video{object-fit:cover;width:100%;height:100%}.dmedia figcaption{margin-top:var(--s-2);font-size:var(--fs-micro);color:var(--ink-3)}.dlist{border-bottom:1px solid var(--rule);grid-column:5/13;margin:0;padding:0;list-style:none}.dlist li{border-top:1px solid var(--rule)}.dlist a,.dlist li>span{align-items:baseline;gap:var(--s-3);padding:1rem var(--s-3);margin:0 calc(var(--s-3) * -1);isolation:isolate;grid-template-columns:3rem 1fr auto 1.5rem;text-decoration:none;display:grid;position:relative}.dlist a:before{content:"";z-index:-1;background:var(--ink);transform-origin:50% 100%;transition:transform .5s var(--ease-out);position:absolute;inset:0;transform:scaleY(0)}.dlist a:hover:before,.dlist a:focus-visible:before{transform:scaleY(1)}.dlist a:hover,.dlist a:focus-visible{color:#fff}.dlist__n{font-size:var(--fs-micro);opacity:.55;font-variant-numeric:tabular-nums}.dlist__label{font-family:var(--font-display);font-variation-settings:"opsz" 32;font-size:clamp(1.2rem,.9rem + 1vw,2rem);font-weight:var(--display-weight);letter-spacing:-.03em;transition:transform .6s var(--ease-out)}.dlist a:hover .dlist__label{transform:translate(10px)}.dlist__detail{font-size:var(--fs-small);opacity:.6}.dlist__arrow{text-align:right;opacity:0;transition:opacity var(--t-fast), transform .5s var(--ease-out);transform:translate(-6px,6px)}.dlist a:hover .dlist__arrow{opacity:1;transform:none}.dfacts{gap:var(--s-6) var(--s-5);grid-column:5/13;grid-template-columns:1fr 1fr;margin:0;display:grid}.dfacts div{padding-top:var(--s-3);border-top:1px solid var(--ink)}.dfacts dt{font-size:var(--fs-micro);color:var(--ink-3);font-weight:540}.dfacts dd{letter-spacing:-.025em;margin:6px 0 0;font-size:clamp(1.125rem,.95rem + .6vw,1.625rem);font-weight:520;line-height:1.2}.dlinks{grid-column:5/13;margin:0;padding:0;list-style:none}.dlinks a{font-family:var(--font-display);font-variation-settings:"opsz" 32;font-size:var(--fs-h3);font-weight:var(--display-weight);letter-spacing:-.03em;text-underline-offset:.18em;text-decoration:underline;text-decoration-thickness:2px;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.dnext{align-content:end;gap:var(--s-3);min-height:min(78svh,760px);padding:var(--s-9) var(--pad) var(--s-8);background:var(--n-bg);color:var(--n-fg);isolation:isolate;text-decoration:none;display:grid;position:relative;overflow:hidden}.dnext__label,.dnext__keys{z-index:1;font-size:var(--fs-small);opacity:.7;font-weight:540;position:relative}.dnext__name{z-index:1;max-width:11ch;font-family:var(--font-display);font-variation-settings:"opsz" 32;font-size:clamp(3rem,.6rem + 10vw,13rem);font-weight:var(--display-weight);letter-spacing:var(--display-tracking);transition:transform 1s var(--ease-out);line-height:.88;position:relative}.dnext__visual{z-index:0;right:var(--pad);aspect-ratio:1;border-radius:var(--r-lg);background:var(--n-card);width:min(36vw,54svh,520px);transition:transform 1.1s var(--ease-out);position:absolute;top:50%;overflow:hidden;transform:translateY(-40%)rotate(-5deg)scale(.9)}.dnext:hover .dnext__visual,.dnext:focus-visible .dnext__visual{transform:translateY(-50%)rotate(0)scale(1)}.dnext:hover .dnext__name{transform:translate(.08em)}.detail.is-live [data-io]{opacity:0;transition:opacity .9s var(--ease-out), transform 1.1s var(--ease-out);transform:translateY(34px)}.detail.is-live [data-io].is-in{opacity:1;transform:none}.detail.is-live .dmedia[data-io] .dmedia__frame{clip-path:inset(14% 0 0 0 round var(--r-md));transition:clip-path 1.3s var(--ease-out)}.detail.is-live .dmedia[data-io].is-in .dmedia__frame{clip-path:inset(0 0 0 0 round var(--r-md))}.detail.is-live .dlist li[data-io]{transition-delay:calc(var(--i,0) * 40ms)}.work-page .detail__bar{padding-top:calc(64px + env(safe-area-inset-top));height:auto;min-height:60px;position:relative}@media (max-width:899px){.dh__row{gap:var(--s-5);grid-template-columns:1fr}.dh__visual{aspect-ratio:4/5}.ds{padding-top:var(--s-8);grid-template-columns:1fr}.ds__side{position:static}.ds__side,.ds__body,.dlist,.dfacts,.dlinks,.ds__grid{grid-column:1/-1}.dnext__visual{width:46vw;top:30%}}@media (max-width:599px){.is-pair .ds__grid{grid-template-columns:1fr}.is-pair .ds__grid>:nth-child(2){margin-top:0}.dfacts{grid-template-columns:1fr}.dlist__detail{display:none}.dlist a,.dlist li>span{grid-template-columns:2rem 1fr 1.25rem}.dnext__visual{display:none}}.about{column-gap:var(--s-5);padding:var(--s-10) var(--edge) var(--s-9);max-width:var(--w-wide);grid-template-columns:repeat(12,minmax(0,1fr));margin:0 auto;display:grid}.about>.label{grid-column:1/4;padding-top:.6em}.about__lead{grid-column:4/13}.about__lead p{letter-spacing:-.038em;margin:0;font-size:clamp(1.6rem,1rem + 2.4vw,3.6rem);font-weight:520;line-height:1.1}.about__lead em{font-style:normal}.about__lead .is-art{color:var(--signal-red)}.about__lead .is-music{color:var(--signal-blue)}.about__cols{gap:var(--s-5);margin-top:var(--s-8);grid-column:4/13;grid-template-columns:repeat(3,1fr);display:grid}.about__col h3{margin:0 0 var(--s-3);padding-top:var(--s-3);border-top:1px solid var(--ink);font-size:var(--fs-small);align-items:center;gap:6px;font-weight:600;display:flex}.about__n{color:var(--ink-3);font-variant-numeric:tabular-nums;margin-right:6px;font-weight:500}.about__col ul{font-size:var(--fs-small);color:var(--ink-2);margin:0;padding:0;line-height:1.7;list-style:none}@media (max-width:899px){.about{padding-top:var(--s-9);grid-template-columns:1fr}.about>.label,.about__lead,.about__cols{grid-column:1/-1}.about>.label{margin-bottom:var(--s-4)}}@media (max-width:599px){.about__cols{gap:var(--s-4);grid-template-columns:1fr}}.reveal[data-reveal=wait]{clip-path:inset(100% 0 0);transform:translateY(2.5rem)}.reveal[data-reveal=in]{clip-path:inset(-10% 0);transition:clip-path 1.1s var(--ease-out) var(--delay,0s), transform 1.1s var(--ease-out) var(--delay,0s);transform:none}.footer{--focus-ring:var(--paper);padding:var(--s-9) var(--edge) calc(clamp(64px, 11svh, 130px) + env(safe-area-inset-bottom));background:var(--ink);color:var(--paper);position:relative;overflow:hidden}.footer .label{color:#f4f4f180}.footer__top{align-items:flex-start;gap:var(--s-5);flex-direction:column;display:flex}.footer__mail{margin-top:var(--s-2);font-family:var(--font-display);font-variation-settings:"opsz" 32;font-size:clamp(1.9rem,.6rem + 5vw,6rem);font-weight:var(--display-weight);letter-spacing:var(--display-tracking);justify-self:start;line-height:1;text-decoration:none}.footer__links{gap:var(--s-2) var(--s-6);font-size:var(--fs-small);flex-wrap:wrap;margin:0;padding:0;font-weight:540;list-style:none;display:flex}.footer__links a{padding-block:var(--s-2);opacity:.8;text-decoration:none;display:inline-block}.footer__links a:hover{opacity:1}.typed{position:relative}.typed__word{white-space:nowrap}.footer__name{margin:var(--s-9) 0 0;font-family:var(--font-display);font-variation-settings:"opsz" 32;font-size:clamp(3.2rem,14.1vw,26rem);font-weight:var(--display-weight);letter-spacing:var(--display-tracking);white-space:nowrap;line-height:.86}.footer__base{justify-content:flex-start;gap:var(--s-2) var(--s-7);margin-top:var(--s-6);font-size:var(--fs-micro);color:#f4f4f180;flex-wrap:wrap;display:flex}@media (max-width:699px){.footer__mail{font-size:clamp(1.9rem,9.4vw,3rem)}.footer__name{white-space:normal;font-size:24vw;line-height:.88}.typed__word{display:block}.footer__base{flex-direction:column}}.notfound{align-content:center;gap:var(--s-4);min-height:100svh;padding:var(--edge);display:grid}.notfound h1{font-size:var(--fs-h3);letter-spacing:-.03em;margin:0}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important}}.atmo{z-index:-1;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.grain{z-index:90;pointer-events:none;opacity:.11;mix-blend-mode:overlay;background-size:160px 160px;animation:.9s steps(6,end) infinite grain;position:fixed;inset:-100px}@keyframes grain{0%{transform:translate(0,0)}17%{transform:translate(-37px,22px)}33%{transform:translate(19px,-41px)}50%{transform:translate(-12px,47px)}67%{transform:translate(44px,9px)}83%{transform:translate(-28px,-18px)}to{transform:translate(0,0)}}@media (prefers-reduced-motion:reduce){.grain{animation:none}}html.has-cursor,html.has-cursor *{cursor:none!important}.cursor{z-index:100;mix-blend-mode:difference;pointer-events:none;opacity:0;will-change:transform, width, height;border:1.5px solid #fff;border-radius:50%;place-items:center;width:22px;height:22px;transition:opacity .3s,background-color .3s,border-color .3s;display:grid;position:fixed;top:0;left:0}.cursor[data-mode=link],.cursor[data-mode=invert]{background:#fff}.cursor[data-mode=ring]{border-width:1px}.cursor[data-mode=light]{background:#fff;border-color:#fff}.displace .dw{will-change:transform;display:inline-block}.cursor[data-mode=label]{mix-blend-mode:normal;background:var(--paper);border-color:#0000;box-shadow:0 10px 30px -10px #00000059}.cursor__label{letter-spacing:-.005em;color:var(--ink);white-space:nowrap;opacity:0;font-size:12px;font-weight:600;transition:opacity .2s}.cursor[data-mode=label] .cursor__label{opacity:1}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.roll{vertical-align:bottom;padding-bottom:.06em;line-height:1.2;display:inline-flex;position:relative;overflow:hidden}.roll__ch{transition:transform .6s var(--ease-out) calc(var(--i) * 12ms);display:inline-block;position:relative}.roll__ch:after{content:attr(data-ch);padding-top:.06em;position:absolute;top:100%;left:0}a:hover .roll__ch,a:focus-visible .roll__ch{transform:translateY(-100%)}.vis{perspective:1400px;place-items:center;width:100%;height:100%;display:grid;position:relative;overflow:hidden;container-type:size}.vis img{-webkit-user-drag:none;pointer-events:none;display:block}.vis__cover{aspect-ratio:1;object-fit:cover;border-radius:1.2cqmin;width:min(80cqw,80cqh);box-shadow:0 4cqmin 8cqmin -3cqmin #0009}.vis__mosaic{grid-template-columns:1fr 1fr;gap:1.6cqmin;width:min(84cqw,84cqh);display:grid}.vis__mosaic img{aspect-ratio:1;object-fit:cover;border-radius:1cqmin;width:100%;box-shadow:0 2cqmin 5cqmin -2cqmin #00000059}.dev{width:min(86cqw,128cqh);transform-style:preserve-3d;transform:rotateX(var(--dev-rx,6deg)) rotateY(var(--dev-ry,0deg));transition:transform 1s var(--ease-out);position:relative}.has-phone .dev{width:min(78cqw,114cqh);margin-right:7cqw}.mbp{transform-style:preserve-3d;position:relative}.mbp__lid{background:linear-gradient(#e9eaed 0%,#cfd1d5 40%,#babcc1 100%);border-radius:3.1%/4.8%;width:89%;margin:0 auto;padding:.42%;position:relative;box-shadow:inset 0 0 0 .5px #ffffffb3,0 0 0 .5px #00000040,0 3cqw 7cqw -3cqw #00000073}.mbp__bezel{background:#050506;border-radius:2.8%/4.3%;padding:1.25% 1.25% 1.9%;box-shadow:inset 0 0 0 .4px #ffffff14}.mbp__screen{aspect-ratio:3024/1964;background:#000;border-radius:1.3%/2%;flex-direction:column;display:flex;position:relative;overflow:hidden}.mbp__bar{background:#0b0b0c;flex:0 0 3.6%;position:relative}.mbp__notch{background:#000;border-radius:0 0 22% 22%/0 0 60% 60%;width:11.5%;height:100%;position:absolute;top:0;left:50%;transform:translate(-50%)}.mbp__notch i{aspect-ratio:1;background:radial-gradient(circle at 35% 35%,#2c3a52,#0a0c12 70%);border-radius:50%;width:6%;position:absolute;top:34%;left:50%;transform:translate(-50%)}.mbp__screen img{object-fit:contain;background:#000;flex:auto;width:100%;min-height:0}.mbp__glare{pointer-events:none;background:linear-gradient(112deg,#ffffff21 0%,#ffffff0a 30%,#0000 30.5%);border-radius:2.8%/4.3%;position:absolute;inset:.42%}.mbp__hinge{background:linear-gradient(#1b1b1d,#4a4b4f 60%,#2a2a2d);border-radius:0 0 30% 30%/0 0 100% 100%;width:82%;height:0;margin:0 auto;padding-top:.75%}.mbp__base{background:linear-gradient(#f3f4f6 0%,#e1e2e5 16%,#c9cbcf 18%,#d6d7db 55%,#a9abb0 92%,#8e9095 100%);border-radius:.6% .6% 7% 7%/10% 10% 100% 100%;width:100%;height:0;padding-top:2.5%;position:relative;box-shadow:inset 0 0 0 .4px #0000002e}.mbp__lip{background:linear-gradient(#a3a5aa,#c6c8cc 70%,#d9dadd);border-radius:0 0 45% 45%/0 0 100% 100%;width:13.5%;height:44%;position:absolute;top:0;left:50%;transform:translate(-50%);box-shadow:inset 0 .5px 1px #00000040}.mbp__shadow{filter:blur(1.4cqw);background:#0006;border-radius:50%;height:3%;position:absolute;bottom:-2.2%;left:4%;right:4%;transform:translateZ(-1px)}.iph{aspect-ratio:71.5/149.6;background:linear-gradient(90deg,#9fa1a6 0%,#e9ebee 6%,#c9cbcf 20%,#dfe1e4 50%,#c6c8cc 80%,#eef0f2 94%,#a2a4a9 100%);border-radius:18%/8.6%;padding:1.35%;position:absolute;box-shadow:inset 0 0 0 .5px #fffc,0 0 0 .5px #0000004d,0 4cqw 8cqw -3cqw #0000008c}.iph__btn{background:linear-gradient(90deg,#8d8f94,#d5d7da);border-radius:2px;width:1.6%;position:absolute}.iph__btn--action{height:5%;top:17%;left:-1.3%}.iph__btn--up{height:8.5%;top:25%;left:-1.3%}.iph__btn--down{height:8.5%;top:35.5%;left:-1.3%}.iph__btn--power{background:linear-gradient(90deg,#d5d7da,#8d8f94);height:12%;top:27%;right:-1.3%}.iph__btn--camera{background:linear-gradient(90deg,#c9cbce,#7f8186);height:6.5%;top:62%;right:-1.1%}.iph__glass{background:#040405;border-radius:16.8%/8.1%;width:100%;height:100%;padding:2.9%;position:relative}.iph__screen{background:#000;border-radius:14.4%/6.8%;width:100%;height:100%;overflow:hidden}.iph__screen img{object-fit:cover;object-position:50% 0;width:100%;height:100%}.iph__island{background:#000;border-radius:99px;width:31%;height:3.4%;position:absolute;top:4.1%;left:50%;transform:translate(-50%)}.iph__glare{border-radius:inherit;pointer-events:none;background:linear-gradient(120deg,#ffffff1f 0%,#ffffff08 34%,#0000 34.5%);position:absolute;inset:0}.dev__phone{width:22%;bottom:-3%;right:-9%;transform:translateZ(60px)}.stack{aspect-ratio:71.5/149.6;height:80cqh;transform-style:preserve-3d;transform:rotateX(var(--dev-rx,6deg)) rotateY(var(--dev-ry,0deg));transition:transform 1s var(--ease-out);position:relative}.stack__phone{width:100%;height:100%;transition:transform 1s var(--ease-out);inset:0}.stack__phone--0{transform:translate3d(-64%,4%,-40px)rotate(-8deg)}.stack__phone--1{transform:translateZ(20px)}.stack__phone--2{transform:translate3d(64%,4%,-40px)rotate(8deg)}.pcard.is-hover .stack__phone--0{transform:translate3d(-76%,2%,-40px)rotate(-11deg)}.pcard.is-hover .stack__phone--2{transform:translate3d(76%,2%,-40px)rotate(11deg)}.vis--wall{perspective:900px}.wall{transform-style:preserve-3d;transition:transform 1.3s var(--ease-out);grid-template-columns:repeat(5,1fr);gap:2.4cqmin;display:grid;position:absolute;inset:-28%;transform:rotateX(32deg)rotate(-16deg)scale(1.05)}.wall__col{animation:wall-up var(--d,40s) linear infinite;transform-style:preserve-3d;flex-direction:column;gap:2.4cqmin;display:flex}.wall__col--down{animation-name:wall-down}@keyframes wall-up{0%{transform:translate(0,0)}to{transform:translateY(calc(-50% - 1.2cqmin))}}@keyframes wall-down{0%{transform:translateY(calc(-50% - 1.2cqmin))}to{transform:translate(0,0)}}.wall__item{aspect-ratio:1;object-fit:cover;width:100%;transition:transform .6s var(--ease-out), opacity .6s var(--ease-out), filter .6s var(--ease-out);border-radius:1cqmin;box-shadow:0 2cqmin 5cqmin -2cqmin #0009;pointer-events:auto!important}.pcard.is-hover .wall,.dh__visual:hover .wall{transform:rotateX(14deg)rotate(-7deg)scale(1.22)}.pcard.is-hover .wall__col,.dh__visual:hover .wall__col{animation-play-state:paused}.pcard.is-hover .wall__item,.dh__visual:hover .wall__item{opacity:.45;filter:saturate(.6)}.pcard.is-hover .wall__item:hover,.dh__visual:hover .wall__item:hover{opacity:1;filter:none;transform:translateZ(70px)scale(1.14);box-shadow:0 5cqmin 10cqmin -3cqmin #000c}@media (prefers-reduced-motion:reduce){.wall__col{animation:none}}.vis--type{align-content:space-between;place-items:start;padding:7cqmin}.vis__type{font-family:var(--font-display);font-variation-settings:"opsz" 32;font-size:21cqw;font-weight:var(--display-weight);letter-spacing:var(--display-tracking);margin:0;line-height:.88;display:grid}.vis__note{opacity:.85;margin:0;font-size:max(11px,3.4cqw);font-weight:560}.paper{z-index:-1;pointer-events:none;mix-blend-mode:soft-light;opacity:.55;background-size:512px 512px;position:fixed;inset:0}.projects__head{grid-area:1/1}.projects__track{grid-area:2/1}.projects__foot{grid-area:3/1}.side-blur{z-index:120;pointer-events:none;grid-area:2/1;align-self:stretch;width:clamp(80px,17vw,300px);position:relative}.side-blur--left{justify-self:start}.side-blur--right{justify-self:end;transform:scaleX(-1)}.side-blur span{position:absolute;inset:0}.side-blur span:first-child{-webkit-backdrop-filter:blur(1px);-webkit-mask:linear-gradient(270deg,#0000 0%,#000 20% 40%,#0000 60%);mask:linear-gradient(270deg,#0000 0%,#000 20% 40%,#0000 60%)}.side-blur span:nth-child(2){-webkit-backdrop-filter:blur(3px);-webkit-mask:linear-gradient(270deg,#0000 20%,#000 40% 60%,#0000 80%);mask:linear-gradient(270deg,#0000 20%,#000 40% 60%,#0000 80%)}.side-blur span:nth-child(3){-webkit-backdrop-filter:blur(7px);-webkit-mask:linear-gradient(270deg,#0000 40%,#000 60% 80%,#0000 100%);mask:linear-gradient(270deg,#0000 40%,#000 60% 80%,#0000 100%)}.side-blur span:nth-child(4){-webkit-backdrop-filter:blur(14px);-webkit-mask:linear-gradient(270deg,#0000 60%,#000 80% 100%);mask:linear-gradient(270deg,#0000 60%,#000 80% 100%)}.side-blur span:nth-child(5){-webkit-backdrop-filter:blur(26px)saturate(1.2);-webkit-mask:linear-gradient(270deg,#0000 78%,#000 100%);mask:linear-gradient(270deg,#0000 78%,#000 100%)}.side-blur span:nth-child(6){background:linear-gradient(to left, transparent 0%, color-mix(in srgb, var(--sec-bg,#000) 55%, transparent) 100%)}.projects:not(.is-3d) .side-blur{display:none}@media (max-width:699px){.side-blur{width:12vw}.side-blur span:nth-child(5){display:none}}
