html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}:root{--bg:#050505;--accent:#ff00a8;--accent-2:#f5ff00;--ink:#f2f0ec;--muted:#8c8983;--rule:#1f1f1f;--chip:#3a3a3a;--surface:#0c0c0c;--surface-body:#bdbab4;--surface-hr:#262626;--wave-dim:#f2f0ec24;--wave-flash:var(--accent);--wave-lit:var(--ink);--ease-out-soft:cubic-bezier(.22, 1, .36, 1);--ease-expo:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-flash-in:cubic-bezier(.55, 0, 1, .45);--px:clamp(1px, .825 * min(100vw / 1728, 100vh / 680), 1.32px);font-size:calc(16 * var(--px));--gutter:24px;--container:calc(1440 * var(--px));--font-sans:"Funnel Display", "Helvetica Neue", Arial, sans-serif;--font-chip:"Archivo", "Helvetica Neue", Arial, sans-serif;--font-mono:"Space Grotesk", "Helvetica Neue", Arial, sans-serif;--text-display:clamp(2.75rem, 8vw, 7.5rem);--text-section:clamp(2rem, 7.222vw, 6.5rem);--text-project:clamp(1.625rem, 4.167vw, 3.75rem);--text-lead:clamp(1.3125rem, 2.778vw, 2.5rem);--text-body-lg:clamp(1.0625rem, 1.25vw, 1.125rem);--text-body:clamp(.9375rem, 1.111vw, 1rem);--text-label:clamp(.6875rem, .833vw, .75rem)}@media (width>=640px){:root{--gutter:40px}}@media (width>=1024px){:root{--gutter:4rem}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-loading=true],html[data-loading=true] body{overflow:hidden}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-weight:500;font-size:var(--text-body);letter-spacing:-.01em;-webkit-font-smoothing:antialiased;line-height:1.55;overflow-x:hidden}::selection{background:var(--accent);color:#fff}img,video,svg,canvas{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit;color:inherit;background:0 0;border:0}button{cursor:pointer}:focus-visible{outline:1.5px solid var(--accent-2);outline-offset:3px}.container{width:100%;max-width:calc(var(--container) + 2 * var(--gutter));padding:0 var(--gutter);margin:0 auto}.section{min-height:100svh;padding:calc(96 * var(--px)) 0;flex-direction:column;justify-content:center;display:flex;position:relative}.rule{background:var(--rule);border:0;height:1.5px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.label{font-size:var(--text-label);letter-spacing:.06em;text-transform:uppercase;color:var(--accent-2);line-height:1.4}.text-section{font-size:var(--text-section);letter-spacing:-.02em;font-weight:500;line-height:1}.text-project{font-size:var(--text-project);letter-spacing:-.015em;font-weight:500;line-height:1.05}.text-lead{font-size:var(--text-lead);letter-spacing:-.015em;line-height:1.2}.text-body-lg{font-size:var(--text-body-lg);line-height:1.5}.muted{color:var(--muted)}.btn{align-items:center;gap:calc(10 * var(--px));border:1px solid var(--accent);color:var(--accent);padding:calc(11 * var(--px)) calc(18 * var(--px));font-size:var(--text-label);letter-spacing:.06em;text-transform:uppercase;transition:background .3s var(--ease-out-soft), color .3s var(--ease-out-soft);border-radius:0;display:inline-flex}.btn:hover,.btn:focus-visible{background:var(--accent);color:var(--bg)}.btn__arrow{transition:transform .3s var(--ease-out-soft);display:inline-block}.btn:hover .btn__arrow{transform:rotate(-45deg)}@keyframes hw-sweep{45%{color:var(--wave-flash)}}[data-hw-char]{white-space:pre;display:inline-block}[data-hw]:hover [data-hw-char],[data-hw]:focus-visible [data-hw-char]{animation:hw-sweep .4s var(--ease-out-soft) both;animation-delay:calc(var(--hwi) * 16ms)}.btn[data-hw]:hover [data-hw-char]{animation-name:hw-sweep-btn}@keyframes hw-sweep-btn{45%{color:var(--accent-2)}}[data-reveal]{opacity:0;transform:translateY(calc(13 * var(--px)));transition:opacity .7s var(--ease-expo), transform .7s var(--ease-expo);transition-delay:calc(var(--ri,0) * 90ms)}[data-reveal][data-revealed=true]{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;transition-delay:0s!important;animation-duration:.001ms!important;animation-iteration-count:1!important}[data-reveal]{opacity:1;transform:none}}.fluid-cursor{--cur:var(--ink);z-index:2000;pointer-events:none;will-change:transform, opacity;opacity:0;width:0;height:0;transition:opacity .3s var(--ease-out-soft);display:none;position:fixed;top:0;left:0}.fluid-cursor[data-visible=true]{opacity:1}.fluid-cursor[data-interactive=true]{--cur:var(--accent)}.fluid-cursor[data-tone=dark]{--cur:var(--bg)}.fluid-cursor[data-tone=accent-2]{--cur:var(--accent-2)}.fluid-cursor__body{width:calc(30 * var(--px));height:calc(25 * var(--px));transform-origin:92%;will-change:transform;display:block;position:absolute;top:0;left:0}.fluid-cursor__body svg{width:100%;height:100%;color:var(--cur);transition:color .2s linear;display:block}.fluid-cursor__body svg path{fill:currentColor;stroke:var(--bg);stroke-width:18px;stroke-opacity:.55}.fluid-cursor[data-interactive=true] .fluid-cursor__body{opacity:.92}.fluid-cursor[data-pressed=true] .fluid-cursor__body{opacity:.76}@media (hover:hover) and (pointer:fine){html[data-custom-cursor=true][data-cursor-input=pointer],html[data-custom-cursor=true][data-cursor-input=pointer] body,html[data-custom-cursor=true][data-cursor-input=pointer] body *{cursor:none!important}html[data-custom-cursor=true] .fluid-cursor{display:block}}@media (width<=768px),(pointer:coarse){html[data-custom-cursor=true] .fluid-cursor{display:block}.fluid-cursor__body{width:26px;height:22px}}@media (prefers-reduced-motion:reduce){.fluid-cursor{display:none!important}}.loader{z-index:70;background:var(--bg);transition:opacity .42s var(--ease-out-soft) .4s;place-items:center;display:grid;position:fixed;inset:0}.loader[data-phase=out]{opacity:0;pointer-events:none}.loader__word{letter-spacing:-.03em;align-items:center;font-size:clamp(3rem,12vw,11rem);line-height:.9;display:flex}.loader__mask{padding-bottom:.04em;display:inline-block;overflow:hidden}.loader__char{animation:loader-in .62s var(--ease-out-soft) forwards;animation-delay:calc(var(--i) * 45ms);display:inline-block;transform:translateY(110%)}.loader[data-phase=out] .loader__char{animation:loader-out .42s var(--ease-out-soft) forwards;animation-delay:calc(var(--i) * 26ms)}@keyframes loader-in{to{transform:none}}@keyframes loader-out{0%{transform:none}to{opacity:0;transform:translateY(-60%)}}.loader__chip{width:0;height:.72em;transition:width .5s var(--ease-out-soft), margin .5s var(--ease-out-soft);display:inline-block;overflow:hidden}.loader[data-phase=chip] .loader__chip,.loader[data-phase=out] .loader__chip{outline:1.5px solid var(--accent);outline-offset:-1.5px;width:1.25em;margin:0 .08em}.loader__chip img{object-fit:cover;width:1.25em;height:100%;transform:scale(1.6)}.nav{z-index:60;pointer-events:none;position:fixed;inset:0 0 auto}.nav:before{content:"";background:linear-gradient(var(--bg) 35%, #05050500);opacity:.92;pointer-events:none;position:absolute;inset:0 0 -40%}.nav__bar{height:calc(88 * var(--px));justify-content:space-between;align-items:center;min-height:64px;display:flex;position:relative}.nav__bar>*{pointer-events:auto}.nav__mark{font-size:max(16px, calc(20 * var(--px)));letter-spacing:-.01em;font-weight:600}.nav__burger{width:48px;height:32px;position:relative}.nav__burger span{background:var(--ink);width:40px;height:2px;transition:transform .42s var(--ease-in-out), background .3s;position:absolute;left:4px}.nav__burger span:first-child{top:11px}.nav__burger span:last-child{top:19px}.nav__burger:hover span{background:var(--accent)}.nav[data-open=true] .nav__burger span:first-child{transform:translateY(4px)rotate(45deg)}.nav[data-open=true] .nav__burger span:last-child{transform:translateY(-4px)rotate(-45deg)}.menu__scrim{z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .42s var(--ease-out-soft);background:#05050599;position:fixed;inset:0}.menu__scrim[data-open=true]{opacity:1;pointer-events:auto}.menu{z-index:55;width:min(100vw, calc(640 * var(--px)));min-width:min(100vw,420px);padding:calc(120 * var(--px)) var(--gutter) var(--gutter);padding-top:max(110px, calc(120 * var(--px)));background:var(--surface);border-left:1.5px solid var(--rule);gap:calc(32 * var(--px));transition:transform .42s var(--ease-in-out);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(100%)}.menu[data-open=true]{transition:transform .62s var(--ease-out-soft);transform:none}.menu__list{gap:calc(6 * var(--px));list-style:none;display:grid}.menu__mask{border-bottom:1.5px solid var(--rule);padding:calc(8 * var(--px)) 0;overflow:hidden}.menu__link{align-items:baseline;gap:calc(18 * var(--px));transition:transform .42s var(--ease-in-out);display:flex;transform:translateY(110%)}.menu[data-open=true] .menu__link{transition:transform .62s var(--ease-out-soft) calc(.12s + var(--i) * 55ms);transform:none}.menu__num{min-width:2.2em}.menu__foot{flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:auto;display:flex}.menu__mail{color:var(--ink)}.menu__socials{gap:20px;display:flex}.menu__socials a{color:var(--muted)}.curtain{z-index:90;background:var(--accent);color:var(--bg);pointer-events:none;place-items:center;display:grid;position:fixed;inset:0;transform:translateY(100%)}.curtain[data-route-curtain=cover]{transition:transform .667s var(--ease-in-out);pointer-events:auto;transform:none}.curtain[data-route-curtain=reveal]{transition:transform .754s var(--ease-out-soft);transform:translateY(-100%)}.curtain__mark{font-size:var(--text-section);letter-spacing:-.03em}.footer{position:relative}.footer__inner{background:var(--surface);border-top:1.5px solid var(--surface-hr);clip-path:inset(5% 7% 0);padding-top:calc(96 * var(--px));will-change:clip-path}.footer__top{gap:calc(40 * var(--px));grid-template-columns:2fr 1fr 1fr;align-items:start;display:grid}.footer__tagline{text-transform:uppercase;max-width:18em}.footer__links{justify-items:start;gap:4px;display:grid}.footer__links a:hover{color:var(--accent);transition:color .3s .2s}.footer__socials{justify-items:start;gap:10px;display:grid}.footer__socials a{color:var(--ink)}.footer__markwrap{margin-top:calc(80 * var(--px));overflow:hidden}.footer__mark{white-space:nowrap;letter-spacing:-.045em;color:var(--accent);padding-bottom:.02em;font-weight:600;line-height:.78;display:inline-block}.footer__base{border-top:1.5px solid var(--surface-hr);justify-content:space-between;margin-top:12px;padding-top:20px;padding-bottom:24px;display:flex}.footer__base .label{color:var(--muted)}@media (width<=767px){.footer__top{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.footer__inner{clip-path:none!important}}.hero{flex-direction:column;justify-content:flex-end;min-height:100svh;display:flex;position:relative;overflow:hidden}.hero__portrait{top:0;right:max(var(--gutter), 7vw);aspect-ratio:941/1672;-webkit-mask-composite:source-in;opacity:0;transform-origin:50% 100%;max-width:58%;height:100%;position:absolute;transform:perspective(1200px)rotateY(-10deg)rotateX(6deg)scale(1.06);-webkit-mask-image:linear-gradient(#000 68%,#0000 98%),linear-gradient(90deg,#0000,#000 10% 90%,#0000);mask-image:linear-gradient(#000 68%,#0000 98%),linear-gradient(90deg,#0000,#000 10% 90%,#0000);-webkit-mask-composite:source-in;mask-composite:intersect}.hero__portrait>img{object-fit:cover;object-position:50% 30%;width:100%;height:100%}.hero[data-ready=true] .hero__portrait{opacity:1;transition:transform .95s var(--ease-expo), opacity .95s var(--ease-expo);transform:none}.hero__inner{z-index:2;padding-bottom:calc(110 * var(--px));pointer-events:none;position:relative}.hero__inner a,.hero__inner button{pointer-events:auto}.hero__name{font-size:var(--text-display);letter-spacing:-.03em;flex-direction:column;font-weight:500;line-height:.88;display:flex}.hero__name .hero__line:nth-child(2){color:var(--accent)}.hero__tagline{margin-top:calc(28 * var(--px));color:var(--muted);flex-direction:column;display:flex}.hero__chips{margin-top:calc(26 * var(--px));gap:calc(8 * var(--px));flex-wrap:wrap;list-style:none;display:flex!important}.chip{font-family:var(--font-chip);font-size:var(--text-label);letter-spacing:.04em;text-transform:uppercase;padding:calc(7 * var(--px)) calc(12 * var(--px));border:1.2px solid var(--chip);color:var(--ink)}.hero__line{perspective:900px;display:block}.hero__cta{margin-top:calc(28 * var(--px))}.hero__tilt{transform-origin:50% 100%;opacity:0;display:inline-block;transform:rotateX(44deg)translateY(46px)}.hero[data-ready=true] .hero__tilt{opacity:1;transition:transform .95s var(--ease-expo), opacity .7s var(--ease-expo);transition-delay:calc(var(--i) * 90ms);transform:none}.hero__foot{left:0;right:0;bottom:calc(28 * var(--px));z-index:2;justify-content:space-between;margin:0 auto;display:flex;position:absolute}.hero__loc{color:var(--muted);margin-left:auto}.trail{pointer-events:none;position:absolute;inset:0}.trail__item{width:80px;height:80px;animation:trail-life .84s var(--ease-out-soft) forwards;margin:-40px 0 0 -40px;position:absolute}.trail__item img{object-fit:cover;width:100%;height:100%}@keyframes trail-life{0%{clip-path:inset(0 100% 0 0);opacity:1;transform:scale(.98)}35%{clip-path:inset(0);opacity:1;transform:scale(1)}70%{opacity:1}to{clip-path:inset(0);opacity:0}}@media (width<=767px){.hero{justify-content:flex-start}.hero__portrait{aspect-ratio:auto;width:100%;max-width:none;height:74svh;position:relative;right:auto}.hero__inner{margin-top:-22svh;padding-bottom:96px}}.explorer__grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;gap:6%;display:grid}.explorer__heading{margin:calc(18 * var(--px)) 0 calc(28 * var(--px))}.explorer__heading em{color:var(--accent);font-style:normal;display:block}.explorer__body{max-width:34em}.signal{flex-direction:column;display:flex}.signal__topline{border-bottom:1.5px solid var(--rule);justify-content:space-between;gap:12px;padding-bottom:10px;display:flex}.signal__visual{touch-action:pan-y;background:radial-gradient(#ff00a81c,#0000 67%);height:clamp(340px,34vw,560px);margin:8px -18px;position:relative;overflow:hidden}.signal__visual canvas{width:100%;height:100%;position:absolute;inset:0}.signal__visual[data-live=true] .signal__fallback{visibility:hidden}.signal__center{pointer-events:none;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.signal__fallback{position:absolute;inset:12% 18%}.signal__fallback i{transition:border-radius .9s var(--ease-out-soft), transform .9s var(--ease-out-soft), border-color .4s;border:1px solid #ff00a88c;position:absolute}.signal__fallback i:first-child{inset:0}.signal__fallback i:nth-child(2){inset:10%}.signal__fallback i:nth-child(3){inset:20%}.signal__fallback i:nth-child(4){border-color:#f5ff0099;inset:30%}.signal__fallback i:nth-child(5){inset:40%}.signal__fallback.shape-ripples i,.signal__fallback.shape-constellation i{border-radius:50%}.signal__fallback.shape-constellation i:nth-child(odd){transform:rotate(40deg)scaleY(.42)}.signal__fallback.shape-constellation i:nth-child(2n){transform:rotate(-40deg)scaleY(.42)}.signal__options{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:6px;display:grid}.signal__option{padding:calc(14 * var(--px)) calc(16 * var(--px));border:1px solid var(--chip);min-height:44px;font-size:var(--text-body);transition:background .3s var(--ease-out-soft), color .3s var(--ease-out-soft), border-color .3s;justify-content:space-between;align-items:center;display:flex;position:relative;overflow:hidden}.signal__option:after{content:"";opacity:0;background:linear-gradient(100deg,#0000 30%,#ffffff24 50%,#0000 70%);position:absolute;inset:0;transform:translate(-75%)}.signal__option:hover:after{opacity:1;transition:transform .7s var(--ease-out-soft), opacity .2s;transform:translate(75%)}.signal__option:hover{border-color:var(--accent)}.signal__option[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--bg)}.signal__story{margin-top:calc(24 * var(--px));animation:story-in .6s var(--ease-expo);gap:10px;display:grid}.signal__link{color:var(--accent);justify-self:start}.signal__hint{margin-top:18px}@keyframes story-in{0%{opacity:0;transform:translateY(10px)}}.signal-text{display:inline-block;position:relative}.signal-text__size{visibility:hidden}.signal-text__live{white-space:nowrap;position:absolute;top:0;left:0}@media (width<=900px){.explorer__grid{grid-template-columns:1fr;gap:48px}.signal__visual{margin:8px 0}}.about{height:calc(100svh + 135vh);position:relative}.about__pin{align-items:center;height:100svh;display:flex;position:sticky;top:0;overflow:hidden}.about__inner{gap:calc(28 * var(--px));display:grid}.about__text{max-width:calc(1180 * var(--px))}.about__word{white-space:nowrap;display:inline-block}.about__char{color:var(--wave-dim)}.about__char[data-lit]{animation:char-wave .4s var(--ease-out-soft) forwards}@keyframes char-wave{0%{color:var(--wave-dim)}30%{color:var(--wave-flash)}to{color:var(--wave-lit)}}.about__photo{float:right;width:calc(260 * var(--px));aspect-ratio:4/5;margin:calc(10 * var(--px)) 0 calc(20 * var(--px)) calc(40 * var(--px));shape-outside:margin-box;shape-margin:calc(12 * var(--px));outline:1.5px solid var(--accent-2);outline-offset:6px;transform:rotate(-6deg);box-shadow:0 18px 40px -12px #ff00a859}.about__photo img{object-fit:cover;width:100%;height:100%}@media (width<=640px){.about__photo{width:38vw;margin-left:16px}}@media (prefers-reduced-motion:reduce){.about{height:auto}.about__pin{height:auto;padding:120px 0;position:relative}.about__char{color:var(--ink)}}.clients{padding:calc(140 * var(--px)) 0;border-top:1.5px solid var(--rule);border-bottom:1.5px solid var(--rule)}.clients__grid{grid-template-columns:calc(220 * var(--px)) minmax(0, 1fr);gap:calc(48 * var(--px));align-items:center;display:grid}.clients__reel{aspect-ratio:1;border-radius:2px;overflow:hidden}.clients__reel img,.clients__reel video{object-fit:cover;object-position:50% 35%;filter:saturate(1.1);width:100%;height:100%}.clients__rows{gap:calc(14 * var(--px));min-width:0;display:grid}.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 40px calc(100% - 120px),#0000);mask-image:linear-gradient(90deg,#0000,#000 40px calc(100% - 120px),#0000)}.marquee__track{width:max-content;animation:marquee var(--dur) linear infinite;display:flex}.marquee[data-reverse=true] .marquee__track{animation-direction:reverse}.marquee:hover .marquee__track{animation-play-state:paused}.marquee__group{list-style:none;display:flex}.marquee__group li{white-space:nowrap;opacity:.55;padding-right:.6em;transition:opacity .3s,color .3s}.marquee__group li:hover{opacity:1;color:var(--accent)}.marquee__dot{color:var(--accent-2);vertical-align:middle;margin-left:.9em;font-size:.4em}@keyframes marquee{to{transform:translate(-50%)}}@media (width<=767px){.clients__grid{grid-template-columns:1fr}.clients__reel{width:120px}}.projects__head{margin-bottom:calc(48 * var(--px));justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.projects__list{border-top:1.5px solid var(--rule);list-style:none}.proj{grid-template-columns:calc(80 * var(--px)) minmax(0, 1fr) calc(330 * var(--px));gap:calc(32 * var(--px));min-height:calc(112 * var(--px));padding:calc(28 * var(--px)) 0;border-bottom:1.5px solid var(--rule);transition:min-height .5s var(--ease-out-soft), opacity .3s var(--ease-out-soft);display:grid;position:relative}.projects__list:has([data-active=true]) .proj:not([data-active=true]){opacity:.45}.proj[data-active=true]{min-height:calc(270 * var(--px))}.proj__num{padding-top:.9em}.proj__title{transition:color .3s var(--ease-out-soft);display:inline-block}.proj[data-active=true] .proj__title{color:var(--accent)}.proj__details{gap:calc(18 * var(--px));opacity:0;max-height:0;transition:max-height .5s var(--ease-out-soft), opacity .4s var(--ease-out-soft), transform .5s var(--ease-out-soft);justify-items:start;display:grid;overflow:hidden;transform:translateY(14px)}.proj[data-active=true] .proj__details{opacity:1;max-height:400px;padding-top:calc(18 * var(--px));transform:none}.proj__summary{max-width:36em}.proj__meta{gap:calc(14 * var(--px)) calc(40 * var(--px));flex-wrap:wrap;display:flex}.proj__meta dd{margin-top:2px}.proj__cover{aspect-ratio:3/2;opacity:0;transition:opacity .5s var(--ease-out-soft), transform .5s var(--ease-out-soft);pointer-events:none;align-self:start;position:relative;overflow:hidden;transform:translateY(10px)scale(.98)}.proj[data-active=true] .proj__cover{opacity:1;pointer-events:auto;transform:none}.proj__cover img{object-fit:cover;width:100%;height:100%;transition:transform .8s var(--ease-out-soft)}.proj__scrim{opacity:0;transition:opacity .4s var(--ease-out-soft);background:linear-gradient(#04040400 19%,#040404f0 100%);position:absolute;inset:0}.proj__tags{opacity:0;transition:opacity .4s, transform .4s var(--ease-out-soft);flex-wrap:wrap;gap:6px;display:flex;position:absolute;bottom:12px;left:12px;right:12px;transform:translateY(8px)}.proj__tag{font-family:var(--font-chip);font-size:var(--text-label);text-transform:uppercase;letter-spacing:.04em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#6666662e;border:1px solid #f5ff0059;padding:5px 9px}.proj__cover:hover .proj__scrim,.proj__cover:hover .proj__tags{opacity:1;transform:none}.proj__cover:hover img{transform:scale(1.04)}@media (width<=1023px){.proj{grid-template-columns:40px minmax(0,1fr)}.proj__cover{grid-column:2;max-height:0}.proj[data-active=true] .proj__cover{max-height:none}.proj:not([data-active=true]) .proj__cover{display:none}}.lab__head{gap:calc(16 * var(--px));margin-bottom:calc(56 * var(--px));display:grid}.lab__grid{gap:calc(40 * var(--px));grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.lab__item{gap:calc(16 * var(--px));align-content:start;display:grid}.lab__item:nth-child(2n){margin-top:calc(120 * var(--px))}.lab__media{aspect-ratio:4/3;overflow:hidden}.lab__media img,.lab__media video{object-fit:cover;width:100%;height:100%;transition:transform .8s var(--ease-out-soft)}.lab__item:hover .lab__media img{transform:scale(1.03)}.lab__item p{max-width:30em}.lab__buttons{margin-top:calc(56 * var(--px));flex-wrap:wrap;gap:12px;display:flex}@media (width<=767px){.lab__grid{grid-template-columns:1fr}.lab__item:nth-child(2n){margin-top:0}}.skills{background:var(--surface);border-top:1.5px solid var(--surface-hr)}.skills__head{gap:calc(16 * var(--px));margin-bottom:calc(48 * var(--px));display:grid}.skills__list{list-style:none}.skill{gap:calc(24 * var(--px));min-height:calc(160 * var(--px));padding:calc(24 * var(--px)) 0;transition:opacity .3s var(--ease-out-soft);grid-template-columns:1fr 2fr 2fr;align-items:center;display:grid;position:relative}.skill[data-reveal]{transform:translate(28%)}.skill[data-reveal][data-revealed=true]{transform:none}.skills__list[data-hovering=true] .skill:not([data-hovered=true]){opacity:.4}.skill__rule{background:var(--surface-hr);transform-origin:100%;height:1.5px;transition:transform 1s var(--ease-expo) calc(var(--ri) * 90ms + .15s);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.skill[data-revealed=true] .skill__rule{transform:none}.skill__title{transition:color .3s var(--ease-out-soft)}.skill[data-hovered=true] .skill__title{color:var(--accent)}.skill__blurb{color:var(--surface-body);max-width:32em}.skills__preview{z-index:40;width:calc(320 * var(--px));height:calc(220 * var(--px));pointer-events:none;opacity:0;transition:opacity .3s var(--ease-out-soft), scale .4s var(--ease-out-soft);outline:1.5px solid var(--accent);position:fixed;top:0;left:0;overflow:hidden;scale:.9}.skills__preview[data-visible=true]{opacity:1;scale:1}.skills__preview img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .25s;position:absolute;inset:0}.skills__preview img[data-on=true]{opacity:1}@media (width<=767px){.skill{grid-template-columns:40px 1fr}.skill__blurb{grid-column:2}.skills__preview{display:none}}@media (hover:none){.skills__preview{display:none}}.contact{min-height:100svh;padding:calc(120 * var(--px)) 0;align-items:center;display:flex;position:relative;overflow:hidden}.contact__bg{position:absolute;inset:0}.contact__bg img{object-fit:cover;object-position:50% 30%;filter:blur(40px)saturate(1.4)brightness(.75);width:100%;height:100%;animation:contact-drift 18s var(--ease-in-out) infinite alternate;transform:scale(1.25)}.contact__bg:after{content:"";background:radial-gradient(60% 70% at 70% 40%, transparent, var(--bg) 85%);position:absolute;inset:0}@keyframes contact-drift{to{transform:scale(1.4)translate(-3%,2%)}}.contact__wrap{position:relative}.contact__card{border:1.5px solid var(--surface-hr);width:60%;min-width:min(100%,560px);padding:calc(56 * var(--px)) calc(56 * var(--px));gap:calc(24 * var(--px));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0c0c0ceb;display:grid}.contact__title{text-transform:uppercase;line-height:.95}.contact__form{gap:calc(28 * var(--px)) calc(32 * var(--px));grid-template-columns:1fr 1fr;display:grid}.field{gap:6px;display:grid}.field--wide{grid-column:1/-1}.field .label{color:var(--muted)}.field input,.field textarea{font-size:var(--text-body-lg);resize:vertical;transition:border-color .3s var(--ease-out-soft);border-bottom:1.5px solid #f2f0ec40;border-radius:0;padding:8px 0}.field input:focus,.field textarea:focus{border-bottom-color:var(--accent);outline:none}.field:focus-within .label{color:var(--accent-2)}.contact__actions{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:20px;display:flex}.contact__status{color:var(--accent-2)}.contact__mail{border-top:1.5px solid var(--surface-hr);padding-top:calc(20 * var(--px));justify-self:start;width:100%}@media (width<=767px){.contact__card{width:100%;min-width:0;padding:28px 20px}.contact__form{grid-template-columns:1fr}.contact__mail{word-break:break-all;font-size:1.1rem}}.case{padding-top:max(120px, calc(160 * var(--px)))}.case--missing{align-content:center;justify-items:start;gap:24px;min-height:80svh;display:grid}.case__head{gap:calc(24 * var(--px));padding-bottom:calc(56 * var(--px));display:grid}.case__back{color:var(--accent-2);justify-self:start}.case__title{font-size:var(--text-display);letter-spacing:-.03em;color:var(--accent);font-weight:500;line-height:.9}.case__summary{max-width:28em}.case__meta{border-top:1.5px solid var(--rule);flex-wrap:wrap;gap:16px 56px;padding-top:20px;display:flex}.case__meta dd{margin-top:2px}.case__tags{flex-wrap:wrap;gap:8px;list-style:none;display:flex}.case__cover{aspect-ratio:3/2;overflow:hidden}.case__cover img,.case__cover video{object-fit:cover;width:100%;height:100%}.case__body{padding-top:calc(96 * var(--px));padding-bottom:calc(96 * var(--px));grid-template-columns:1fr minmax(0,2fr);gap:40px;display:grid}.case__prose{max-width:44em;font-size:var(--text-body-lg);color:var(--surface-body);grid-column:2}.case__prose h2{font-size:var(--text-lead);color:var(--ink);letter-spacing:-.015em;margin:1.6em 0 .5em;font-weight:500}.case__prose h2:first-child{margin-top:0}.case__prose h3{color:var(--ink);margin:1.4em 0 .4em}.case__prose p,.case__prose ul,.case__prose ol{margin-bottom:1em}.case__prose ul,.case__prose ol{padding-left:1.2em}.case__prose li::marker{color:var(--accent-2)}.case__prose a{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.case__prose strong{color:var(--ink)}.case__prose img{margin:1.5em 0}.case__prose blockquote{border-left:2px solid var(--accent);color:var(--ink);padding-left:1em}.case__prose code{font-family:var(--font-mono);color:var(--accent-2)}.case__live{grid-column:2}.case__gallery{grid-template-columns:1fr 1fr;gap:24px;padding-bottom:96px;display:grid}.case__next{padding-top:calc(80 * var(--px));padding-bottom:calc(120 * var(--px));border-top:1.5px solid var(--rule);gap:12px;display:grid}.case__next-title{font-size:var(--text-section);letter-spacing:-.02em;transition:color .3s var(--ease-out-soft);line-height:1}.case__next:hover .case__next-title{color:var(--accent)}@media (width<=767px){.case__body{grid-template-columns:1fr}.case__prose,.case__live{grid-column:1}.case__gallery{grid-template-columns:1fr}}
