@font-face{font-family:"IBM Plex Sans";src:url("../fonts/ibm-plex-sans-latin.woff2") format("woff2");font-style:normal;font-weight:100 700;font-display:swap}@font-face{font-family:"IBM Plex Mono";src:url("../fonts/ibm-plex-mono-400.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:"IBM Plex Mono";src:url("../fonts/ibm-plex-mono-500.woff2") format("woff2");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:"Dune Rise";src:url("../fonts/dune-rise.woff") format("woff");font-style:normal;font-weight:400;font-display:swap}:root{--ink: #090b0a;--surface: #101311;--surface-raised: #151916;--text: #eff2ed;--muted: #98a099;--line: rgba(239, 242, 237, 0.14);--accent: #82b598;--nav-wash: rgba(9,11,10,.78);--copy: #c3c9c3;--archive-base: #020302;--archive-shutter: #070908;--archive-grid: rgba(130,181,152,.09);--archive-frame: rgba(130,181,152,.34);--archive-frame-inner: rgba(239,242,237,.22);--archive-scan-glow: rgba(130,181,152,.45);--sans: "IBM Plex Sans", Arial, sans-serif;--mono: "IBM Plex Mono", monospace;--display: "Dune Rise", "IBM Plex Sans", sans-serif;--mark-base-filter: none;--page-pad: clamp(1.25rem, 4vw, 4.5rem);color-scheme:dark}@media (prefers-color-scheme: light){:root{--ink: #f3f4ef;--surface: #e8ebe5;--surface-raised: #dde2da;--text: #151917;--muted: #626b65;--line: rgba(21,25,23,.16);--accent: #3f7758;--nav-wash: rgba(243,244,239,.9);--copy: #424a45;--archive-base: #f3f4ef;--archive-shutter: #e1e5de;--archive-grid: rgba(63,119,88,.12);--archive-frame: rgba(63,119,88,.38);--archive-frame-inner: rgba(21,25,23,.2);--archive-scan-glow: rgba(63,119,88,.32);--mark-base-filter: invert(1);color-scheme:light}}*{box-sizing:border-box}a,button,input,summary{-webkit-tap-highlight-color:transparent}html{width:100%;max-width:100%;overflow-x:clip;background:var(--ink);scroll-behavior:smooth}body{width:100%;max-width:100%;margin:0;overflow-x:clip;background:var(--ink);color:var(--text);font-family:var(--sans);font-size:16px;-webkit-font-smoothing:antialiased;animation:page-arrival 620ms cubic-bezier(0.22, 1, 0.36, 1) backwards}.language-page{animation:none}.portfolio-shell.archive-arriving{animation:none}html.archive-entry-boot{background:var(--archive-shutter)}html.archive-entry-boot body{animation:none}html.archive-entry-boot::before,html.archive-entry-boot::after{content:"";position:fixed;z-index:1000;top:0;bottom:0;width:58%;pointer-events:none;filter:drop-shadow(0 0 0.3rem var(--archive-frame));backface-visibility:hidden}html.archive-entry-boot::before{left:0;clip-path:polygon(0 0, 86.2% 0, 100% 50%, 86.2% 100%, 0 100%);background:linear-gradient(90deg, var(--archive-shutter) 0 76%, color-mix(in srgb, var(--archive-shutter) 92%, var(--accent)) 100%)}html.archive-entry-boot::after{right:0;clip-path:polygon(13.8% 0, 100% 0, 100% 100%, 13.8% 100%, 0 50%);background:linear-gradient(-90deg, var(--archive-shutter) 0 76%, color-mix(in srgb, var(--archive-shutter) 92%, var(--accent)) 100%)}html.gate-entrance-skip .reactive-mark,html.gate-entrance-skip .language-options{animation:none}a{color:inherit}button,input{font:inherit}code,pre,.technical-meta{font-family:var(--mono)}::selection{color:var(--ink);background:var(--accent)}.visually-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.portfolio-shell{width:100%;max-width:100vw;min-height:100vh;overflow-x:clip}.portfolio-shell>#main.portfolio-main{clear:none;width:100%;max-width:none;margin:0;padding:0;animation:none}.portfolio-shell.page-leaving{pointer-events:none;animation:page-transition-out 460ms cubic-bezier(0.55, 0, 0.7, 0.2) both}.portfolio-shell.page-arriving{animation:page-transition-in 680ms cubic-bezier(0.16, 1, 0.3, 1) both}html.page-transition-boot .portfolio-shell.page-arriving{opacity:0;transform:translateY(9px) scale(0.997);animation:none}.portfolio-shell.page-arrival-complete:not(.page-leaving):not(.page-arriving){animation:none}html.language-bridge-enter,html.language-return-staging{background:var(--ink);overflow:hidden}html.language-bridge-enter::before{content:"";position:fixed;z-index:2147483646;inset:0;background:var(--ink);pointer-events:none;opacity:1;transform:translateZ(0);backface-visibility:hidden;will-change:opacity, clip-path}html.language-bridge-enter body{opacity:0;animation:none;overflow:hidden;filter:blur(12px) saturate(0.72) brightness(0.56);transform:scale(1.022);will-change:opacity, filter, transform}html.language-bridge-enter.language-bridge-entering body{animation:language-hall-arrive 860ms cubic-bezier(0.16, 1, 0.3, 1) both}html.language-bridge-enter.language-bridge-entering::before{animation:language-black-release 860ms cubic-bezier(0.3, 0, 0.2, 1) both}html.language-return-staging body{pointer-events:none;overflow:hidden;animation:language-return-source-v5 1320ms cubic-bezier(0.4, 0, 0.2, 1) both;will-change:opacity, filter, transform}.language-return-stage{position:fixed;z-index:2147483647;inset:0;overflow:hidden;visibility:hidden;pointer-events:none;isolation:isolate;transform:translateZ(0);backface-visibility:hidden}html.language-return-staging .language-return-stage{visibility:visible}.language-return-stage::before{content:"";position:absolute;z-index:0;inset:0;background:var(--ink);opacity:0}.language-return-stage__gate{position:absolute;z-index:1;inset:0;min-height:100%;background:transparent}.language-return-stage__gate .gate-inner{opacity:0;transform:scale(1.018);filter:blur(14px);will-change:opacity, filter, transform}.language-return-stage__gate .reactive-mark,.language-return-stage__gate .language-options{animation:none}.language-return-stage__aperture{position:absolute;z-index:2;left:var(--language-return-stage-x, 50%);top:var(--language-return-stage-y, 50%);width:calc(var(--language-return-stage-cover-radius,100vmax) * 2);height:calc(var(--language-return-stage-cover-radius,100vmax) * 2);border:clamp(4px, 0.48vw, 7px) solid #78ad8d;border-radius:50%;opacity:0;transform:translate(-50%, -50%);pointer-events:none;box-shadow:0 0 0 200vmax transparent,0 0 1px rgba(205,239,217,0.72),0 0 14px rgba(137,202,163,0.76),0 0 34px rgba(91,154,118,0.42),inset 0 0 13px rgba(174,223,193,0.62);will-change:width, height, opacity, box-shadow}html.language-return-staging .language-return-stage::before{animation:language-return-surface-v5 1320ms cubic-bezier(0.4, 0, 0.2, 1) both}html.language-return-staging .language-return-stage__gate .gate-inner{animation:language-return-gate-v5 1320ms cubic-bezier(0.16, 1, 0.3, 1) both}html.language-return-staging .language-return-stage__aperture{animation:language-return-aperture-v5 1320ms cubic-bezier(0.4, 0, 0.2, 1) both}html.navigation-source-frozen body{pointer-events:none}html.navigation-source-frozen body *,html.navigation-source-frozen body *::before,html.navigation-source-frozen body *::after{animation-play-state:paused !important;transition:none !important}html.navigation-source-frozen.gate-exiting .language-options{opacity:1;transform:none}html.navigation-source-frozen.gate-exiting .gate-inner{animation:language-gate-depart 860ms cubic-bezier(0.55, 0, 0.78, 0.42) both;animation-play-state:running !important;will-change:filter, opacity}html.navigation-source-frozen.gate-exiting .pupil-transition,html.navigation-source-frozen.gate-exiting .pupil-transition i{animation-play-state:running !important}html.navigation-source-frozen .project-portal-leaving [data-project-media]{visibility:var(--navigation-frozen-visibility, visible) !important;transform:var(--navigation-frozen-transform, none) !important}html.navigation-source-frozen .project-portal-leaving .portfolio-nav,html.navigation-source-frozen .project-portal-leaving .portfolio-footer,html.navigation-source-frozen .project-portal-leaving .hero-copy,html.navigation-source-frozen .project-portal-leaving .hero-project-controls,html.navigation-source-frozen .project-portal-leaving .hero-project__interest,html.navigation-source-frozen .project-portal-leaving .project-index-card__info{opacity:var(--navigation-frozen-opacity, 1) !important;visibility:var(--navigation-frozen-visibility, visible) !important}.portfolio-shell.project-portal-leaving,.portfolio-shell.archive-leaving{overflow:hidden}.skip-link{position:fixed;left:1rem;top:-4rem;z-index:100;padding:.7rem 1rem;background:var(--text);color:var(--ink)}.skip-link:focus{top:1rem}.language-gate{position:relative;width:100%;min-height:100svh;overflow:hidden;display:grid;place-items:center;padding:2rem;background:var(--ink);isolation:isolate}.gate-inner{position:relative;z-index:2;width:min(36rem, 100%);min-width:0;text-align:center}.reactive-mark{--rx: 0deg;--ry: 0deg;--px: 0px;--py: 0px;position:relative;width:clamp(15rem, 32vw, 24rem);aspect-ratio:1;margin:0 auto 2.5rem;transform:perspective(800px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform 140ms cubic-bezier(0.22, 1, 0.36, 1);animation:none}.reactive-mark.eye-tracking-resuming{transition:transform 560ms cubic-bezier(0.22, 1, 0.36, 1)}.reactive-mark.eye-geometry-locked{transform:perspective(800px) rotateX(0deg) rotateY(0deg) !important;transition:none !important;animation:none !important}.reactive-mark.eye-geometry-locked .reactive-mark__pupil{transform:translate(-50%, -50%) !important;transition:none !important}.reactive-mark.eye-tracking-resuming .reactive-mark__pupil{transition:transform 560ms cubic-bezier(0.22, 1, 0.36, 1)}.reactive-mark__image{position:relative;z-index:1;width:100%;height:100%;display:block;object-fit:contain;opacity:1;transform:translateZ(0);backface-visibility:hidden}.reactive-mark__code{position:absolute;z-index:3;inset:13% 7%;display:none;overflow:hidden;color:var(--accent);font:500 clamp(0.42rem, 1.25vw, 0.62rem)/1 var(--mono);letter-spacing:.08em;pointer-events:none}.reactive-mark__code::after{content:"";position:absolute;z-index:2;left:5%;right:5%;top:0;height:1px;background:linear-gradient(90deg, transparent, rgba(130,181,152,0.82) 22% 78%, transparent);box-shadow:0 0 9px rgba(130,181,152,0.38);opacity:0}.reactive-mark__code span{--code-x: -42%;position:absolute;left:50%;width:max-content;opacity:0;transform:translate3d(var(--code-x), 0, 0);white-space:nowrap}.reactive-mark__code span:nth-child(1){--code-x: -86%;top:17%}.reactive-mark__code span:nth-child(2){--code-x: 16%;top:29%}.reactive-mark__code span:nth-child(3){--code-x: -72%;top:42%}.reactive-mark__code span:nth-child(4){--code-x: 9%;top:55%}.reactive-mark__code span:nth-child(5){--code-x: -91%;top:68%}.reactive-mark__code span:nth-child(6){--code-x: 20%;top:80%}html.gate-natural-entry .reactive-mark__code{display:block}html.gate-natural-entry .reactive-mark__code::after{animation:eye-code-scan 1480ms 80ms cubic-bezier(0.5, 0, 0.2, 1) both}html.gate-natural-entry .reactive-mark__code span{animation:eye-code-lock 1240ms cubic-bezier(0.22, 1, 0.36, 1) both}html.gate-natural-entry .reactive-mark__code span:nth-child(2){animation-delay:55ms}html.gate-natural-entry .reactive-mark__code span:nth-child(3){animation-delay:110ms}html.gate-natural-entry .reactive-mark__code span:nth-child(4){animation-delay:165ms}html.gate-natural-entry .reactive-mark__code span:nth-child(5){animation-delay:220ms}html.gate-natural-entry .reactive-mark__code span:nth-child(6){animation-delay:275ms}html.gate-natural-entry .reactive-mark__image{animation:eye-code-resolve 1640ms cubic-bezier(0.22, 1, 0.36, 1) both}.reactive-mark::after{content:none}.gate-preparing .gate-inner{animation:eye-entry-tremor 360ms ease-out both}.gate-preparing .reactive-mark::after{content:"";position:absolute;z-index:4;left:10%;right:10%;top:20%;height:1px;background:linear-gradient(90deg, transparent, rgba(143,207,170,0.95) 24% 76%, transparent);box-shadow:0 0 6px rgba(143,207,170,0.72),0 0 14px rgba(130,181,152,0.34);opacity:0;pointer-events:none;animation:eye-entry-scan 360ms cubic-bezier(0.4, 0, 0.2, 1) both}.gate-preparing .language-options{opacity:.62;transition:opacity 300ms ease}.reactive-mark__pupil{position:absolute;z-index:2;width:3.2%;aspect-ratio:1;border-radius:50%;left:50%;top:44.5801%;background:#8fc5a4;box-shadow:0 0 4px rgba(143,197,164,0.62),0 0 10px rgba(130,181,152,0.24);transform:translate(calc(-50% + var(--px)), calc(-50% + var(--py)));transition:transform 90ms cubic-bezier(0.22, 1, 0.36, 1);pointer-events:none}html.gate-natural-entry .reactive-mark__pupil{animation:eye-code-pupil 1640ms cubic-bezier(0.22, 1, 0.36, 1) backwards}.language-options{display:grid;grid-template-columns:minmax(0, 1fr) 1px minmax(0, 1fr);align-items:end;gap:1.5rem;animation:none}html.gate-natural-entry .language-options{animation:gate-copy 520ms 1180ms cubic-bezier(0.22, 1, 0.36, 1) both}.language-options a{position:relative;display:flex;flex-direction:column;gap:1.45rem;min-width:0;width:100%;padding:.7rem .35rem 1.1rem;color:var(--text);text-decoration:none}.language-options a span{color:var(--muted);font:400 0.62rem/1.25 var(--mono);letter-spacing:.1em;text-transform:uppercase;overflow-wrap:anywhere}.language-options a strong{position:relative;z-index:0;isolation:isolate;align-self:center;font:500 1rem/1 var(--mono);letter-spacing:.18em;transition:color 220ms ease}.language-options a strong::before{content:"";position:absolute;z-index:-1;left:50%;top:50%;width:3.6rem;height:3.6rem;border-radius:50%;border:1px solid transparent;border-top-color:rgba(130,181,152,0.2);border-right-color:var(--accent);border-bottom-color:rgba(130,181,152,0.55);opacity:0;transform:translate(-50%, -50%) rotate(-55deg) scale(0.82);filter:drop-shadow(0 0 3px rgba(130,181,152,0.18));transition:opacity 180ms ease,transform 420ms cubic-bezier(0.22, 1, 0.36, 1)}.language-options a strong::after{content:"";position:absolute;left:calc(50% - 1.5px);top:calc(50% - 1.5px);width:3px;height:3px;border-radius:50%;background:var(--accent);box-shadow:0 0 5px rgba(130,181,152,0.58);opacity:0;transform:rotate(-55deg) translateY(-1.8rem)}.language-options a:hover strong,.language-options a:focus-visible strong{color:var(--accent)}.language-options a:hover strong::before,.language-options a:focus-visible strong::before{opacity:1;transform:translate(-50%, -50%) rotate(305deg) scale(1);animation:language-trail 2.4s linear 420ms infinite}.language-options a:hover strong::after,.language-options a:focus-visible strong::after{opacity:1;animation:language-trail-dot 2.4s linear 420ms infinite}.language-divider{width:1px;height:1.25rem;background:var(--line)}.pupil-transition{position:fixed;z-index:100;inset:0;background:var(--ink);opacity:0;pointer-events:none;clip-path:circle(0 at var(--pupil-x, 50%) var(--pupil-y, 50%));will-change:clip-path, opacity;overflow:hidden}.pupil-transition i{--pupil-edge-width: clamp(5px,.6vw,8px);position:absolute;left:var(--pupil-x, 50%);top:var(--pupil-y, 50%);display:block;width:calc(var(--pupil-radius, .5rem) * 2);height:calc(var(--pupil-radius, .5rem) * 2);border:var(--pupil-edge-width) solid #78ad8d;border-radius:50%;opacity:0;pointer-events:none;transform:translate(-50%, -50%);background:transparent;box-shadow:0 0 0 1px rgba(183,229,201,0.58),0 0 9px 2px rgba(145,207,170,0.82),0 0 28px 7px rgba(112,174,139,0.42),inset 0 0 0 1px rgba(34,61,45,0.78),inset 0 0 11px 3px rgba(166,218,187,0.66),inset 0 0 30px 8px rgba(93,151,119,0.3);will-change:left, top, width, height, opacity}.gate-exiting .language-options{opacity:0;transform:translateY(0.25rem);transition:opacity 180ms ease, transform 300ms ease}.gate-exiting .pupil-transition{animation:pupil-cover 860ms cubic-bezier(0.55, 0, 0.78, 0.42) forwards}.gate-exiting .pupil-transition i{animation:pupil-edge-cover 860ms cubic-bezier(0.55, 0, 0.78, 0.42) forwards}.gate-exiting .reactive-mark__image{opacity:1;animation:none}@keyframes mark-arrival{from{opacity:0;transform:perspective(800px) scale(0.94) translateY(0.45rem);filter:blur(3px)}to{opacity:1;transform:perspective(800px) scale(1);filter:blur(0)}}@keyframes gate-copy{from{opacity:0;transform:translateY(0.3rem)}to{opacity:1;transform:none}}@keyframes eye-entry-tremor{0%,100%{transform:translate3d(0, 0, 0)}24%{transform:translate3d(-0.7px, 0.2px, 0)}43%{transform:translate3d(0.9px, -0.3px, 0)}62%{transform:translate3d(-0.45px, 0.15px, 0)}81%{transform:translate3d(0.2px, 0, 0)}}@keyframes eye-entry-scan{0%{top:20%;opacity:0;transform:scaleX(0.35)}18%{opacity:.9}76%{opacity:.68;transform:scaleX(1)}100%{top:70%;opacity:0;transform:scaleX(0.72)}}@keyframes eye-code-lock{0%{opacity:0;transform:translate3d(var(--code-x), 0.35rem, 0);filter:blur(2px)}18%{opacity:.2}42%,62%{opacity:.72;transform:translate3d(-50%, 0, 0);filter:blur(0)}76%{opacity:.28;transform:translate3d(-50%, 0, 0)}100%{opacity:0;transform:translate3d(-50%, 0, 0);filter:blur(1px)}}@keyframes eye-code-scan{0%,8%{opacity:0;transform:translateY(0)}16%{opacity:.82}72%{opacity:.34}100%{opacity:0;transform:translateY(16.5rem)}}@keyframes eye-code-resolve{0%,20%{opacity:0;clip-path:inset(48% 48% 48%);filter:var(--mark-base-filter) blur(7px)}32%{opacity:.2;clip-path:inset(41% 12% 40%)}45%{opacity:.48;clip-path:inset(28% 7% 27%);filter:var(--mark-base-filter) blur(2px)}59%{opacity:.82;clip-path:inset(8% 3% 9%)}72%,100%{opacity:1;clip-path:inset(0);filter:var(--mark-base-filter) blur(0)}}@keyframes eye-code-pupil{0%,61%{opacity:0;transform:translate(-50%, -50%) scale(0.15)}72%{opacity:.45;transform:translate(-50%, -50%) scale(0.55)}82%{opacity:1;transform:translate(-50%, -50%) scale(1.18)}90%,100%{opacity:1;transform:translate(-50%, -50%) scale(1)}}@keyframes language-trail{to{transform:translate(-50%, -50%) rotate(665deg) scale(1)}}@keyframes language-trail-dot{from{transform:rotate(305deg) translateY(-1.8rem)}to{transform:rotate(665deg) translateY(-1.8rem)}}@keyframes pupil-cover{0%{opacity:1;clip-path:circle(var(--pupil-radius, 0.5rem) at var(--pupil-x, 50%) var(--pupil-y, 50%))}100%{opacity:1;clip-path:circle(var(--pupil-cover-radius, 100vmax) at var(--pupil-x, 50%) var(--pupil-y, 50%))}}@keyframes pupil-edge-cover{0%{width:calc(var(--pupil-radius,.5rem) * 2);height:calc(var(--pupil-radius,.5rem) * 2);opacity:1}68%{opacity:.96}100%{width:calc(var(--pupil-cover-radius,100vmax) * 2);height:calc(var(--pupil-cover-radius,100vmax) * 2);opacity:0}}@keyframes language-gate-depart{0%, 34%{opacity:1;filter:blur(0)}72%{opacity:.22;filter:blur(7px)}100%{opacity:0;filter:blur(12px)}}@keyframes language-hall-arrive{0%{opacity:0;filter:blur(12px) saturate(0.72) brightness(0.56);transform:scale(1.022)}32%{opacity:.32;filter:blur(8px) saturate(0.8) brightness(0.7)}68%{opacity:.86;filter:blur(2px) saturate(0.96) brightness(0.95)}100%{opacity:1;filter:blur(0) saturate(1) brightness(1);transform:scale(1)}}@keyframes language-black-release{0%, 12%{opacity:1}52%{opacity:.48}100%{opacity:0}}@keyframes language-return-source-v5{0%{opacity:1;filter:blur(0) saturate(1) brightness(1);transform:scale(1)}24%{opacity:.94;filter:blur(1px) saturate(0.97) brightness(0.94)}54%{opacity:.7;filter:blur(5px) saturate(0.86) brightness(0.7);transform:scale(1.006)}78%{opacity:.22;filter:blur(12px) saturate(0.7) brightness(0.38)}100%{opacity:0;filter:blur(17px) saturate(0.62) brightness(0.24);transform:scale(1.014)}}@keyframes language-return-surface-v5{0%,18%{opacity:0}42%{opacity:.18}66%{opacity:.7}82%,100%{opacity:1}}@keyframes language-return-gate-v5{0%,36%{opacity:0;transform:scale(1.018);filter:blur(14px)}54%{opacity:.16;filter:blur(10px)}70%{opacity:.58;transform:scale(1.008);filter:blur(5px)}86%{opacity:.94;filter:blur(1.5px)}100%{opacity:1;transform:scale(1);filter:blur(0)}}@keyframes language-return-aperture-v5{0%{width:calc(var(--language-return-stage-cover-radius,100vmax) * 2);height:calc(var(--language-return-stage-cover-radius,100vmax) * 2);opacity:0;box-shadow:0 0 0 200vmax transparent,0 0 1px rgba(205,239,217,0.72),0 0 14px rgba(137,202,163,0.76),0 0 34px rgba(91,154,118,0.42),inset 0 0 13px rgba(174,223,193,0.62)}15%{opacity:.24}48%{opacity:.88;box-shadow:0 0 0 200vmax rgba(0,0,0,0.54),0 0 1px rgba(205,239,217,0.72),0 0 14px rgba(137,202,163,0.76),0 0 34px rgba(91,154,118,0.42),inset 0 0 13px rgba(174,223,193,0.62)}74%{opacity:.96;box-shadow:0 0 0 200vmax rgba(0,0,0,0.88),0 0 1px rgba(205,239,217,0.72),0 0 14px rgba(137,202,163,0.76),0 0 34px rgba(91,154,118,0.42),inset 0 0 13px rgba(174,223,193,0.62)}92%{width:calc(var(--language-return-stage-pupil-radius,.5rem) * 2);height:calc(var(--language-return-stage-pupil-radius,.5rem) * 2);opacity:.92;box-shadow:0 0 0 200vmax rgba(0,0,0,0.18),0 0 1px rgba(205,239,217,0.72),0 0 12px rgba(137,202,163,0.7),0 0 24px rgba(91,154,118,0.34),inset 0 0 9px rgba(174,223,193,0.56)}100%{width:calc(var(--language-return-stage-pupil-radius,.5rem) * 2);height:calc(var(--language-return-stage-pupil-radius,.5rem) * 2);opacity:0;box-shadow:0 0 0 200vmax transparent,0 0 1px rgba(205,239,217,0),0 0 10px rgba(137,202,163,0),0 0 20px rgba(91,154,118,0),inset 0 0 8px rgba(174,223,193,0)}}@keyframes page-arrival{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes page-transition-out{0%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-7px) scale(0.997)}}@keyframes page-transition-in{0%{opacity:0;transform:translateY(9px) scale(0.997)}100%{opacity:1;transform:translateY(0) scale(1)}}.archive-transition{position:fixed;z-index:500;inset:0;overflow:hidden;pointer-events:none;background:var(--archive-base);color:var(--accent);opacity:0;isolation:isolate;contain:layout paint style;transform:translateZ(0)}.archive-transition__grid{position:absolute;inset:-20%;opacity:0;background-image:linear-gradient(var(--archive-grid) 1px, transparent 1px),linear-gradient(90deg, var(--archive-grid) 1px, transparent 1px);background-size:clamp(2rem, 4vw, 4rem) clamp(2rem, 4vw, 4rem);transform:perspective(700px) rotateX(58deg) scale(1.35) translateY(20%)}.archive-transition__scan{position:absolute;z-index:4;left:0;right:0;top:-12%;height:1px;background:var(--text);box-shadow:0 0 1.5rem 0.3rem var(--archive-scan-glow);opacity:0}.archive-transition__frame{position:absolute;border:1px solid var(--archive-frame);opacity:0}.archive-transition__frame--outer{inset:7%}.archive-transition__frame--inner{inset:17%;border-color:var(--archive-frame-inner)}.archive-transition__aperture{position:absolute;z-index:3;left:50%;top:50%;width:14vmax;aspect-ratio:1;border:0;opacity:0;pointer-events:none;background:radial-gradient(circle, rgba(130,181,152,0.15) 0, rgba(130,181,152,0.055) 32%, transparent 72%);transform:translate(-50%, -50%) scale(0.34);filter:blur(7px);box-shadow:0 0 2.8rem rgba(130,181,152,0.055);will-change:transform, opacity, filter}.archive-transition__handoff{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.archive-transition__shutter{position:absolute;z-index:2;top:0;bottom:0;width:58%;background:var(--archive-shutter);filter:drop-shadow(0 0 0.3rem var(--archive-frame));will-change:transform;backface-visibility:hidden}.archive-transition__shutter--left{left:0;clip-path:polygon(0 0, 86.2% 0, 100% 50%, 86.2% 100%, 0 100%);background:linear-gradient(90deg, var(--archive-shutter) 0 76%, color-mix(in srgb, var(--archive-shutter) 92%, var(--accent)) 100%)}.archive-transition__shutter--right{right:0;clip-path:polygon(13.8% 0, 100% 0, 100% 100%, 13.8% 100%, 0 50%);background:linear-gradient(-90deg, var(--archive-shutter) 0 76%, color-mix(in srgb, var(--archive-shutter) 92%, var(--accent)) 100%)}.archive-transition__meta,.archive-transition__status{position:absolute;z-index:5;left:50%;width:max-content;max-width:88vw;color:var(--accent);font:500 clamp(0.52rem, 1vw, 0.68rem)/1.4 var(--mono);letter-spacing:.18em;text-align:center;transform:translateX(-50%);opacity:0}.archive-transition__meta{top:10%}.archive-transition__status{bottom:10%}.archive-transition__title{position:absolute;z-index:5;inset:0;display:grid;place-items:center;padding:2rem;color:var(--text);font:400 clamp(1.5rem, 5.5vw, 5.5rem)/0.95 var(--display);letter-spacing:.12em;text-align:center;opacity:0;transform:scale(0.72)}.archive-transition.is-cycling{animation:archive-cycle-shell 1600ms var(--archive-cycle-delay, 0ms) ease both}.archive-transition.is-cycling .archive-transition__grid{animation:archive-cycle-grid 1600ms var(--archive-cycle-delay, 0ms) cubic-bezier(0.2, 0.7, 0.2, 1) both}.archive-transition.is-cycling .archive-transition__scan{animation:archive-cycle-scan 1600ms var(--archive-cycle-delay, 0ms) cubic-bezier(0.3, 0, 0.2, 1) both}.archive-transition.is-cycling .archive-transition__frame--outer{animation:archive-cycle-frame-outer 1600ms var(--archive-cycle-delay, 0ms) cubic-bezier(0.2, 0.7, 0.2, 1) both}.archive-transition.is-cycling .archive-transition__frame--inner{animation:archive-cycle-frame-inner 1600ms var(--archive-cycle-delay, 0ms) cubic-bezier(0.2, 0.7, 0.2, 1) both}.archive-transition.is-cycling .archive-transition__shutter--left{animation:archive-cycle-shutter-left 1600ms var(--archive-cycle-delay, 0ms) cubic-bezier(0.7, 0, 0.24, 1) both}.archive-transition.is-cycling .archive-transition__shutter--right{animation:archive-cycle-shutter-right 1600ms var(--archive-cycle-delay, 0ms) cubic-bezier(0.7, 0, 0.24, 1) both}.archive-transition.is-cycling .archive-transition__aperture{animation:archive-cycle-aperture 1600ms var(--archive-cycle-delay, 0ms) cubic-bezier(0.16, 1, 0.3, 1) both}.archive-transition.is-cycling .archive-transition__handoff{animation:archive-cycle-handoff 880ms linear both}.archive-transition.is-cycling .archive-transition__title{animation:archive-cycle-title 1600ms var(--archive-cycle-delay, 0ms) cubic-bezier(0.2, 0.7, 0.2, 1) both}.archive-transition.is-cycling .archive-transition__meta,.archive-transition.is-cycling .archive-transition__status{animation:archive-cycle-data 1600ms var(--archive-cycle-delay, 0ms) ease both}.archive-transition.is-handoff-held,.archive-transition.is-handoff-held *{animation-play-state:paused !important}@keyframes archive-cycle-shell{0%{opacity:0}6%,84%{opacity:1}100%{opacity:0}}@keyframes archive-cycle-grid{0%,6%{opacity:0;transform:perspective(700px) rotateX(58deg) scale(1.8) translateY(35%)}30%,56%{opacity:.65;transform:perspective(700px) rotateX(58deg) scale(1.05) translateY(2%)}100%{opacity:0;transform:perspective(700px) rotateX(58deg) scale(0.7) translateY(-15%)}}@keyframes archive-cycle-scan{0%,10%{opacity:0;top:-12%}16%{opacity:1}46%{opacity:.7;top:112%}47%,100%{opacity:0;top:112%}}@keyframes archive-cycle-frame-outer{0%,10%{opacity:0;transform:scale(1.35)}32%,58%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.035)}}@keyframes archive-cycle-frame-inner{0%,14%{opacity:0;transform:scale(0.55)}38%,58%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.035)}}@keyframes archive-cycle-shutter-left{0%,8%{transform:translateX(-102%)}48%,55%{transform:translateX(0)}96%,100%{transform:translateX(-102%)}}@keyframes archive-cycle-shutter-right{0%,8%{transform:translateX(102%)}48%,55%{transform:translateX(0)}96%,100%{transform:translateX(102%)}}@keyframes archive-cycle-aperture{0%,55%{opacity:0;transform:translate(-50%, -50%) scale(0.34);filter:blur(9px)}60%{opacity:.22;transform:translate(-50%, -50%) scale(0.4);filter:blur(8px)}70%{opacity:.48;transform:translate(-50%, -50%) scale(0.78);filter:blur(6px)}91%{opacity:.24;transform:translate(-50%, -50%) scale(7.8);filter:blur(12px)}100%{opacity:0;transform:translate(-50%, -50%) scale(9.2);filter:blur(16px)}}@keyframes archive-cycle-title{0%,14%{opacity:0;transform:scale(0.72)}26%,40%{opacity:1;transform:scale(1)}50%,100%{opacity:0;transform:scale(1.08)}}@keyframes archive-cycle-data{0%,18%{opacity:0;letter-spacing:.3em}30%,42%{opacity:1;letter-spacing:.18em}50%,100%{opacity:0;letter-spacing:.26em}}@keyframes archive-cycle-handoff{from, to{opacity:0}}.portfolio-nav{position:absolute;inset:0 0 auto;z-index:20;width:100%;max-width:100vw;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:1.2rem var(--page-pad);background:linear-gradient(to bottom, var(--nav-wash), transparent)}.interface-divider{--divider-line: var(--line);--divider-accent: var(--accent);position:absolute;z-index:2;left:0;width:100%;height:22px;overflow:visible;color:var(--divider-accent);pointer-events:none}.interface-divider--nav{bottom:-11px}.interface-divider--footer{top:-11px;transform:rotate(180deg)}.interface-divider__line,.interface-divider__signal,.interface-divider__cursor-glow,.interface-divider__cursor{fill:none;vector-effect:non-scaling-stroke}.interface-divider__line{stroke:var(--divider-line);stroke-width:1}.interface-divider__signal{stroke-width:1}.interface-divider__stop{stop-color:var(--divider-accent)}.interface-divider__stop--edge{stop-opacity:0}.interface-divider__stop--quiet{stop-opacity:.018}.interface-divider__stop--rising{stop-opacity:.11}.interface-divider__stop--active{stop-opacity:.38}.interface-divider__cursor-glow{stroke:currentColor;stroke-width:5;stroke-linecap:round;opacity:0;filter:blur(2.5px) drop-shadow(0 0 4px rgba(130,181,152,0.5))}.interface-divider__cursor{stroke:currentColor;stroke-width:1;stroke-linecap:round;opacity:.04;filter:drop-shadow(0 0 2px rgba(130,181,152,0.32))}.nav-logo{--nav-pupil-x: 0px;--nav-pupil-y: 0px;position:relative;display:flex;align-items:center;width:fit-content;text-decoration:none}.nav-logo img{position:relative;z-index:1;width:2.25rem;height:2.25rem;object-fit:contain;transition:transform 420ms cubic-bezier(0.16, 1, 0.3, 1)}.nav-logo::before{content:"";position:absolute;z-index:0;inset:-.3rem;border-radius:50%;border:1px solid transparent;border-top-color:color-mix(in srgb, var(--accent) 58%, transparent);border-right-color:color-mix(in srgb, var(--text) 18%, transparent);opacity:0;transform:rotate(-55deg) scale(0.72);filter:drop-shadow(0 0 3px rgba(130,181,152,0.18));transition:opacity 180ms ease,transform 620ms cubic-bezier(0.16, 1, 0.3, 1)}.nav-logo::after{content:"";position:absolute;left:50%;top:44.55%;width:.075rem;aspect-ratio:1;border-radius:50%;background:var(--text);transform:translate(calc(-50% + var(--nav-pupil-x)), calc(-50% + var(--nav-pupil-y)));transition:transform 120ms cubic-bezier(0.22, 1, 0.36, 1),background 180ms ease,box-shadow 180ms ease;pointer-events:none}.nav-links{position:relative;z-index:3;display:flex;gap:clamp(1.2rem, 3vw, 3rem)}.nav-links a,.language-switch{position:relative;color:var(--muted);font-size:.78rem;font-weight:500;letter-spacing:.07em;text-decoration:none;text-transform:uppercase;transition:color 180ms ease,letter-spacing 420ms cubic-bezier(0.16, 1, 0.3, 1),transform 300ms cubic-bezier(0.16, 1, 0.3, 1)}.nav-links a::before{content:"";position:absolute;left:50%;bottom:-.72rem;width:4.25rem;height:.72rem;background:linear-gradient(90deg, transparent 0, color-mix(in srgb, var(--accent) 42%, transparent) 22%, var(--accent) 50%, color-mix(in srgb, var(--accent) 42%, transparent) 78%, transparent 100%);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 66 10'%3E%3Cpath d='M1 2C13 2 17 2 22 3C27 4 28.5 8 33 8S39 4 44 3C49 2 53 2 65 2' fill='none' stroke='black' stroke-width='1' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 66 10'%3E%3Cpath d='M1 2C13 2 17 2 22 3C27 4 28.5 8 33 8S39 4 44 3C49 2 53 2 65 2' fill='none' stroke='black' stroke-width='1' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat;opacity:0;transform:translateX(-50%) scaleX(0.28);transform-origin:center 70%;filter:drop-shadow(0 0 2px rgba(130,181,152,0.18));transition:opacity 180ms ease,transform 560ms cubic-bezier(0.16, 1, 0.3, 1),filter 420ms ease}.nav-links a::after{content:"";position:absolute;left:50%;bottom:-.72rem;width:1.15rem;height:.28rem;border-radius:50%;background:radial-gradient(ellipse at center, color-mix(in srgb, var(--accent) 52%, transparent), transparent 72%);opacity:0;transform:translateX(-50%) scale(0.35);filter:blur(1.8px);transition:opacity 240ms ease 70ms,transform 620ms cubic-bezier(0.16, 1, 0.3, 1) 40ms}.nav-links a:hover,.nav-links a:focus-visible,.language-switch:hover,.language-switch:focus-visible{color:var(--text);letter-spacing:.105em;transform:translateY(-1px)}.nav-links a:hover::before,.nav-links a:focus-visible::before{opacity:.78;transform:translateX(-50%) scaleX(1);filter:drop-shadow(0 0 3px rgba(130,181,152,0.34))}.nav-links a:hover::after,.nav-links a:focus-visible::after{opacity:.62;transform:translateX(-50%) scale(1)}.nav-logo:hover::before,.nav-logo:focus-visible::before{opacity:1;transform:rotate(125deg) scale(1)}.nav-logo:hover img,.nav-logo:focus-visible img{transform:scale(1.045)}.nav-logo:hover::after,.nav-logo:focus-visible::after{background:var(--accent);box-shadow:0 0 4px rgba(130,181,152,0.72);transform:translate(calc(-50% + var(--nav-pupil-x)), calc(-50% + var(--nav-pupil-y))) scale(1.35)}.nav-hover-locked .nav-links a:hover,.nav-hover-locked .language-switch:hover{color:var(--muted)}.nav-hover-locked .nav-links a:hover,.nav-hover-locked .language-switch:hover{letter-spacing:.07em;transform:none}.nav-hover-locked .nav-links a:hover::before,.nav-hover-locked .nav-links a:hover::after,.nav-hover-locked .language-switch:hover::before,.nav-hover-locked .language-switch:hover::after,.nav-hover-locked .nav-logo:hover::before{opacity:0}.nav-hover-locked .nav-logo:hover img{transform:none}.nav-hover-locked .nav-links a:focus-visible,.nav-hover-locked .language-switch:focus-visible{color:var(--text)}.language-switch{justify-self:end;min-width:2.4rem;font-family:var(--mono);text-align:center}.language-switch::before{content:"";position:absolute;left:50%;top:50%;bottom:auto;width:2.7rem;height:2.7rem;border:1px solid transparent;border-top-color:color-mix(in srgb, var(--accent) 58%, transparent);border-right-color:color-mix(in srgb, var(--text) 18%, transparent);border-radius:50%;background:none;box-shadow:none;opacity:0;transform:translate(-50%, -50%) rotate(-55deg) scale(0.72);transform-origin:center;filter:drop-shadow(0 0 3px rgba(130,181,152,0.18));transition:opacity 180ms ease,transform 620ms cubic-bezier(0.16, 1, 0.3, 1);pointer-events:none}.language-switch::after{content:"";position:absolute;left:50%;top:50%;bottom:auto;width:3px;height:3px;border-radius:50%;background:var(--accent);box-shadow:0 0 5px rgba(130,181,152,0.5);opacity:0;transform:translate(-50%, -50%) rotate(-55deg) translateY(-1.35rem);transform-origin:center;transition:opacity 180ms ease,transform 620ms cubic-bezier(0.16, 1, 0.3, 1);pointer-events:none}.language-switch:hover::before,.language-switch:focus-visible::before{opacity:1;transform:translate(-50%, -50%) rotate(125deg) scale(1)}.language-switch:hover::after,.language-switch:focus-visible::after{opacity:.78;transform:translate(-50%, -50%) rotate(125deg) translateY(-1.35rem)}.portfolio-hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;padding:clamp(7rem, 13vh, 10rem) var(--page-pad) clamp(5rem, 10vh, 8rem);border-bottom:1px solid var(--line)}.hero-copy{position:relative;z-index:3;width:100%;min-width:0;max-width:100%;overflow:hidden;text-align:center;pointer-events:none}.hero-eyebrow{margin:0 0 1.5rem;color:var(--accent);font:500 0.72rem/1.4 var(--mono);letter-spacing:.14em;text-align:center;text-transform:uppercase;text-shadow:1px 0 #020302,-1px 0 #020302,0 1px #020302,0 -1px #020302,0 0 0.45rem rgba(2,3,2,0.98),0 0 1.2rem rgba(2,3,2,0.9)}.display-name,.project-display{margin:0;font-family:var(--display);font-weight:400;line-height:.9;letter-spacing:clamp(0.06em, 1.2vw, 0.14em);text-transform:uppercase}.display-name{width:100%;max-width:100%;white-space:nowrap;font-size:clamp(2rem, 5vw, 6rem);letter-spacing:clamp(0.006em, 0.12vw, 0.024em);text-align:center;text-shadow:none}.hero-projects{position:absolute;z-index:1;inset:0;background:#070908}.hero-projects::after{content:"";position:absolute;z-index:4;inset:0;pointer-events:none;background:linear-gradient(to bottom, #070908 0, rgba(7,9,8,0.96) 0.45rem, rgba(7,9,8,0.55) 2.2rem, transparent clamp(4.5rem, 8vh, 7rem)),linear-gradient(to top, #070908 0, rgba(7,9,8,0.9) 0.55rem, rgba(7,9,8,0.46) 2.4rem, transparent clamp(4rem, 7vh, 6.5rem))}.hero-project{position:absolute;inset:0;display:block;overflow:hidden;color:var(--text);text-decoration:none;opacity:0;visibility:hidden;pointer-events:none;transition:opacity 1100ms ease, visibility 1100ms ease}.hero-project.is-active{opacity:1;visibility:visible;pointer-events:auto}.hero-project::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center, rgba(4,6,5,0.1) 0 34%, rgba(4,6,5,0.2) 67%, rgba(4,6,5,0.36) 100%),linear-gradient(180deg, rgba(4,6,5,0.36), rgba(4,6,5,0.08) 34% 64%, rgba(4,6,5,0.48));transition:background 500ms ease}.hero-project__media{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(0.82) brightness(0.82) contrast(1.18);transform:scale(1.008);transition:filter 620ms ease,transform 1200ms cubic-bezier(0.2, 0.7, 0.2, 1)}.hero-project[data-project-id="dyson-swarm"] .hero-project__media{filter:saturate(0.88) brightness(1.3) contrast(1.2);transform:scale(1.003)}.hero-project[data-project-id="dyson-swarm"]::after{background:radial-gradient(ellipse at center, rgba(4,6,5,0.03) 0 42%, rgba(4,6,5,0.1) 72%, rgba(4,6,5,0.24) 100%),linear-gradient(180deg, rgba(4,6,5,0.2), rgba(4,6,5,0.02) 32% 68%, rgba(4,6,5,0.31))}.hero-project__interest{position:absolute;z-index:2;left:50%;top:calc(50% + clamp(4.5rem, 9vw, 8rem));color:var(--text);font:500 0.72rem/1 var(--mono);letter-spacing:.2em;opacity:0;transform:translate(-50%, 0.75rem);transition:opacity 280ms ease,transform 420ms cubic-bezier(0.22, 1, 0.36, 1)}.hero-project-controls{position:absolute;z-index:5;inset:50% clamp(0.75rem, 2vw, 2rem) auto;display:flex;justify-content:space-between;pointer-events:none;transform:translateY(-50%)}.hero-project-controls .project-control{pointer-events:auto}.hero-project.is-active:hover .hero-project__media,.hero-project.is-active:focus-visible .hero-project__media{filter:saturate(0.75) brightness(0.72) contrast(1.06) blur(1.6px);transform:scale(1.016)}.hero-project[data-project-id="dyson-swarm"].is-active:hover .hero-project__media,.hero-project[data-project-id="dyson-swarm"].is-active:focus-visible .hero-project__media{filter:saturate(0.72) brightness(1.15) contrast(1.04) blur(1.8px)}.hero-projects.is-scroll-softened .hero-project.is-active .hero-project__media{filter:saturate(0.68) brightness(0.68) contrast(1.02) blur(3px);transform:scale(1.022)}.hero-projects.is-scroll-softened .hero-project[data-project-id="dyson-swarm"].is-active .hero-project__media{filter:saturate(0.66) brightness(1.1) contrast(1) blur(3px)}.hero-project.is-active:hover::after,.hero-project.is-active:focus-visible::after{background:radial-gradient(ellipse at center, rgba(4,6,5,0.14) 0 38%, rgba(4,6,5,0.24) 72%, rgba(4,6,5,0.4) 100%),linear-gradient(180deg, rgba(4,6,5,0.32), rgba(4,6,5,0.1) 36% 62%, rgba(4,6,5,0.44))}.hero-project[data-project-id="dyson-swarm"].is-active:hover::after,.hero-project[data-project-id="dyson-swarm"].is-active:focus-visible::after{background:radial-gradient(ellipse at center, rgba(4,6,5,0.1) 0 44%, rgba(4,6,5,0.18) 74%, rgba(4,6,5,0.3) 100%),linear-gradient(180deg, rgba(4,6,5,0.22), rgba(4,6,5,0.06) 34% 66%, rgba(4,6,5,0.34))}.hero-project.is-active:hover .hero-project__interest,.hero-project.is-active:focus-visible .hero-project__interest{opacity:1;transform:translate(-50%, 0)}.home-page{min-height:100svh;display:flex;flex-direction:column}.home-page .portfolio-main{flex:1;display:flex}.home-page .portfolio-hero{width:100%;min-height:0;border-bottom:0}.home-page .hero-projects{top:4.7rem}.home-page .portfolio-footer{flex:0 0 auto}.work-main{min-height:100svh;padding-top:4.7rem}.project-index{padding:clamp(2rem, 4vw, 4rem) var(--page-pad) clamp(6rem, 10vw, 10rem)}.project-index__header{display:grid;place-items:center;min-height:clamp(9rem, 16vw, 13rem);padding-bottom:clamp(4rem, 7vw, 7rem);text-align:center}.project-index__header h1{margin:0;font-size:clamp(3rem, 8vw, 8rem);font-weight:300;letter-spacing:.05em;line-height:normal;transform:translateY(0.365rem)}.project-index__body{max-width:1500px;margin-inline:auto}.project-index__filters{position:fixed;z-index:28;left:clamp(0.8rem, 1.45vw, 1.35rem);top:50%;transform:translate3d(0, -50%, 0);backface-visibility:hidden}.project-filter{--filter-rail-width: 5rem;--filter-open-width: 13.25rem;--filter-height: 7rem;--filter-cut: .72rem;--filter-accent: var(--accent);--filter-line: color-mix(in srgb,var(--filter-accent) 36%,transparent);--filter-line-soft: color-mix(in srgb,var(--filter-accent) 22%,transparent);--filter-copy: color-mix(in srgb,var(--text) 68%,var(--muted));--filter-copy-dim: color-mix(in srgb,var(--muted) 84%,var(--ink));position:relative;isolation:isolate;width:var(--filter-rail-width);height:var(--filter-height);overflow:hidden;color:var(--filter-copy);filter:drop-shadow(0 0.45rem 1.1rem rgba(0,0,0,0.1));transition:width 440ms cubic-bezier(0.16, 1, 0.3, 1),filter 260ms ease}.project-filter[open]{width:var(--filter-open-width);filter:drop-shadow(0 0.6rem 1.35rem rgba(0,0,0,0.14))}.project-filter::before,.project-filter::after{content:"";position:absolute;pointer-events:none;clip-path:polygon(0 var(--filter-cut), var(--filter-cut) 0, calc(100% - .55rem) 0, 100% 0.55rem, 100% calc(100% - var(--filter-cut)), calc(100% - var(--filter-cut)) 100%, var(--filter-cut) 100%, 0 calc(100% - var(--filter-cut)))}.project-filter::before{z-index:-2;inset:0;background:linear-gradient(135deg, var(--filter-line), var(--filter-line-soft) 29%, color-mix(in srgb, var(--filter-accent) 12%, transparent) 68%, color-mix(in srgb, var(--filter-accent) 28%, transparent));opacity:.68;transition:opacity 260ms ease, background 260ms ease}.project-filter::after{z-index:-1;inset:1px;background:color-mix(in srgb, var(--ink) 97%, var(--surface) 3%);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--text) 1%, transparent)}.project-filter:hover::before,.project-filter:focus-within::before,.project-filter[open]::before{background:linear-gradient(135deg, color-mix(in srgb, var(--filter-accent) 46%, transparent), color-mix(in srgb, var(--filter-accent) 28%, transparent) 29%, color-mix(in srgb, var(--filter-accent) 16%, transparent) 68%, var(--filter-line));opacity:.78}.project-index__filters::before{content:"";position:absolute;z-index:-3;right:calc(100% - .15rem);top:50%;width:clamp(0.8rem, 1.45vw, 1.35rem);height:1px;background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 20%, transparent))}.project-filter summary{position:absolute;z-index:3;inset:0 auto 0 0;display:grid;grid-template-rows:auto 1fr;align-content:center;justify-items:center;gap:.58rem;width:var(--filter-rail-width);height:100%;padding:1rem .55rem .78rem;color:var(--filter-copy);list-style:none;cursor:pointer;overflow:hidden;border:0;background:transparent;transition:color 220ms ease, background 260ms ease}.project-filter summary::-webkit-details-marker{display:none}.project-filter summary:hover,.project-filter summary:focus-visible,.project-filter[open] summary{color:var(--text);outline:none;background:radial-gradient(ellipse at 48% 52%, color-mix(in srgb, var(--filter-accent) 5%, transparent), transparent 72%)}.project-filter[open] summary::after{content:"";position:absolute;right:0;top:1rem;bottom:1rem;width:1px;background:linear-gradient(transparent, var(--filter-line-soft) 22% 78%, transparent)}.project-filter__icon{position:relative;align-self:center;display:grid;place-items:center;align-content:space-between;width:1.25rem;height:2.75rem;padding-block:.15rem}.project-filter__icon::before{content:"";position:absolute;z-index:-1;left:50%;top:.3rem;bottom:.3rem;width:1px;background:linear-gradient(transparent, var(--filter-line-soft) 24% 76%, transparent);transform:translateX(-50%)}.project-filter__icon b{display:block;width:.38rem;aspect-ratio:1;border:1px solid color-mix(in srgb, currentColor 64%, transparent);background:transparent;transform:rotate(45deg);transition:background 180ms ease,box-shadow 220ms ease,transform 360ms cubic-bezier(0.16, 1, 0.3, 1),color 180ms ease}.project-filter[data-project-filter-current="ALL"] .project-filter__icon b:nth-child(1),.project-filter[data-project-filter-current="SOFTWARE"] .project-filter__icon b:nth-child(2),.project-filter[data-project-filter-current="HARDWARE"] .project-filter__icon b:nth-child(3){color:var(--filter-accent);background:var(--filter-accent);box-shadow:0 0 0.38rem color-mix(in srgb, var(--filter-accent) 28%, transparent);transform:rotate(45deg) scale(0.86)}.project-filter__trigger-label{max-width:100%;align-self:center;overflow:hidden;color:var(--filter-accent);font:500 0.5rem/1 var(--mono);letter-spacing:.19em;text-indent:.19em;text-overflow:clip;white-space:nowrap;transition:color 220ms ease,letter-spacing 360ms cubic-bezier(0.16, 1, 0.3, 1)}.project-filter[open] .project-filter__trigger-label{color:var(--filter-accent);letter-spacing:.22em}.project-filter__menu{position:absolute;z-index:2;left:var(--filter-rail-width);right:.35rem;top:0;height:100%;display:grid;align-items:center;padding:.72rem .5rem .72rem .62rem;overflow:hidden;border:0;background:transparent;transform-origin:left center;animation:project-filter-panel-in 360ms 40ms cubic-bezier(0.16, 1, 0.3, 1) both}.project-filter__options{position:relative;z-index:2;display:grid;align-content:center;gap:.16rem}.project-filter__options button{position:relative;display:grid;grid-template-columns:minmax(0, 1fr) 0.6rem;align-items:center;gap:.5rem;min-height:2.7rem;padding:0 .28rem 0 .7rem;border:0;background:transparent;color:var(--filter-copy-dim);cursor:pointer;text-align:left;transition:color 180ms ease,transform 260ms cubic-bezier(0.16, 1, 0.3, 1),background 220ms ease}.project-filter__options button::before{content:"";position:absolute;left:0;top:50%;width:.32rem;height:1px;background:currentColor;opacity:.34;transform:translateY(-50%)}.project-filter__options button>strong{font:500 0.58rem/1 var(--mono);letter-spacing:.17em;transition:letter-spacing 220ms ease}.project-filter__options button>i{width:.32rem;aspect-ratio:1;justify-self:end;border:1px solid currentColor;background:transparent;transform:rotate(45deg);transition:background 180ms ease, box-shadow 220ms ease}.project-filter__options button::after{content:"";position:absolute;left:.7rem;right:.12rem;top:0;height:1px;background:linear-gradient(90deg, color-mix(in srgb, var(--filter-accent) 18%, transparent), color-mix(in srgb, var(--filter-accent) 8%, transparent) 42%, transparent 92%);opacity:.7}.project-filter__options button[aria-pressed="true"]{display:none}.project-filter__options button:hover,.project-filter__options button:focus-visible{color:var(--text);outline:none;transform:translateX(0.12rem);background:linear-gradient(90deg, color-mix(in srgb, var(--filter-accent) 5%, transparent), transparent 78%)}.project-filter__options button:hover>strong,.project-filter__options button:focus-visible>strong{letter-spacing:.18em}@keyframes project-filter-panel-in{from{opacity:0;clip-path:inset(0 100% 0 0);transform:translateX(-0.35rem)}to{opacity:1;clip-path:inset(0);transform:translateX(0)}}.project-index__grid{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:clamp(4.5rem, 7vw, 7rem) clamp(2rem, 5vw, 5rem)}.project-index-card{--capsule-accent: #82b598;--capsule-glow: rgba(130,181,152,.42);--capsule-core: rgba(169,211,187,.9);display:block;min-width:0;color:var(--text);text-decoration:none}.project-index-card.is-launching{outline:none}.project-index-card[data-project-category="HARDWARE"]{--capsule-accent: #b89976;--capsule-glow: rgba(184,153,118,.36);--capsule-core: rgba(208,181,149,.88)}.project-index-card[data-project-category="WETWARE"]{--capsule-accent: #b88a9c;--capsule-glow: rgba(184,138,156,.36);--capsule-core: rgba(210,167,184,.88)}.project-index-card[hidden]{display:none}.project-index-card__visual{position:relative;isolation:isolate;width:72%;aspect-ratio:1;margin-inline:auto;overflow:hidden;background:#080a09;clip-path:polygon(50% 0, 100% 50%, 50% 100%, 0 50%);transition:transform 720ms cubic-bezier(0.16, 1, 0.3, 1),filter 420ms ease}.project-index-card__visual::before,.project-index-card__visual::after{content:"";position:absolute;inset:0;pointer-events:none;transition:opacity 520ms ease}.project-index-card__visual::before{z-index:1;background:radial-gradient(circle at 50% 50%, rgba(7,10,8,0.08) 0 12%, rgba(7,10,8,0.46) 66%, rgba(7,10,8,0.82) 100%),linear-gradient(135deg, rgba(255,255,255,0.025), transparent 42% 58%, rgba(0,0,0,0.14))}.project-index-card__visual::after{z-index:2;opacity:.28;background:linear-gradient(90deg, transparent 49.88%, color-mix(in srgb, var(--capsule-accent) 28%, transparent) 50%, transparent 50.12%)}.project-index-card__media{position:relative;z-index:0;width:100%;height:100%;display:block;object-fit:cover;opacity:.34;filter:grayscale(0.28) saturate(0.48) brightness(0.62) contrast(1.08);transform:scale(1.035);transition:opacity 520ms ease,transform 900ms cubic-bezier(0.16, 1, 0.3, 1),filter 620ms ease}.project-index-card[data-project-id="dyson-swarm"] .project-index-card__media{opacity:.44;filter:grayscale(0.2) saturate(0.5) brightness(1.12) contrast(0.96)}.project-index-card__frame{position:absolute;z-index:3;inset:0;width:100%;height:100%;overflow:visible;fill:none;color:var(--capsule-accent);pointer-events:none}.project-index-card__frame path{vector-effect:non-scaling-stroke;transition:opacity 420ms ease, stroke-width 420ms ease}.project-index-card__frame-outer{stroke:currentColor;stroke-width:.65;opacity:.32}.project-index-card__frame-inner{stroke:currentColor;stroke-width:.4;stroke-dasharray:1.5 3.5;opacity:.1}.project-index-card__lock{position:absolute;z-index:4;left:50%;top:50%;width:1.05rem;aspect-ratio:1;border:1px solid color-mix(in srgb, var(--capsule-accent) 76%, transparent);background:color-mix(in srgb, var(--capsule-accent) 7%, transparent);box-shadow:0 0 0.75rem color-mix(in srgb, var(--capsule-glow) 54%, transparent);transform:translate(-50%, -50%) rotate(45deg);pointer-events:none;transition:opacity 260ms ease,transform 520ms cubic-bezier(0.16, 1, 0.3, 1),box-shadow 300ms ease}.project-index-card__lock::before{content:"";position:absolute;inset:-.38rem;border:1px solid color-mix(in srgb, var(--capsule-accent) 15%, transparent)}.project-index-card__lock::after{content:"";position:absolute;inset:39%;background:var(--capsule-core);box-shadow:0 0 0.38rem var(--capsule-glow);animation:holocron-core-breathe 6.4s cubic-bezier(0.37, 0, 0.63, 1) infinite}.project-index-card:nth-child(2n) .project-index-card__lock,.project-index-card:nth-child(2n) .project-index-card__lock::after{animation-delay:-2.7s}.project-index-card__info{width:72%;margin-inline:auto;padding-top:1.35rem;text-align:center}.project-index-card__info span{display:block;margin-bottom:.72rem;color:var(--capsule-accent);font:500 0.59rem/1.3 var(--mono);letter-spacing:.18em;opacity:.78}.project-index-card__info h2{margin:0;color:var(--text);font-size:clamp(1.25rem, 2.25vw, 2.2rem);letter-spacing:.09em;transition:color 220ms ease,letter-spacing 520ms cubic-bezier(0.16, 1, 0.3, 1)}.project-index-card__visual:hover .project-index-card__media,.project-index-card__visual.is-proximity-active .project-index-card__media,.project-index-card:focus-visible .project-index-card__media{opacity:.88;transform:scale(1.075);filter:grayscale(0) saturate(0.78) brightness(0.78) contrast(1.08)}.project-index-card[data-project-id="dyson-swarm"] .project-index-card__visual:hover .project-index-card__media,.project-index-card[data-project-id="dyson-swarm"] .project-index-card__visual.is-proximity-active .project-index-card__media,.project-index-card[data-project-id="dyson-swarm"]:focus-visible .project-index-card__media{opacity:.92;filter:grayscale(0) saturate(0.72) brightness(1.2) contrast(0.98)}.project-index-card__visual:hover::before,.project-index-card__visual.is-proximity-active::before,.project-index-card:focus-visible .project-index-card__visual::before{opacity:.3}.project-index-card__visual:hover::after,.project-index-card__visual.is-proximity-active::after,.project-index-card:focus-visible .project-index-card__visual::after{opacity:.08}.project-index-card__visual:hover .project-index-card__frame-outer,.project-index-card__visual.is-proximity-active .project-index-card__frame-outer,.project-index-card:focus-visible .project-index-card__frame-outer{opacity:.72;stroke-width:.85}.project-index-card__visual:hover .project-index-card__frame-inner,.project-index-card__visual.is-proximity-active .project-index-card__frame-inner,.project-index-card:focus-visible .project-index-card__frame-inner{opacity:.24}.project-index-card__visual:hover .project-index-card__lock,.project-index-card__visual.is-proximity-active .project-index-card__lock,.project-index-card:focus-visible .project-index-card__lock{opacity:0;transform:translate(-50%, -50%) rotate(135deg) scale(0.45)}.project-index-card:hover h2,.project-index-card:focus-visible h2{color:var(--capsule-accent);letter-spacing:.105em}.project-index__empty{margin:0;padding:2rem 0;color:var(--muted);font:0.75rem/1.5 var(--mono);letter-spacing:.08em}@keyframes holocron-core-breathe{0%, 100%{opacity:.58;transform:scale(0.88)}50%{opacity:.92;transform:scale(1)}}.project-control{display:grid;place-items:center;width:clamp(3rem, 4vw, 3.75rem);aspect-ratio:1;padding:0;border:0;border-radius:50%;background:rgba(9,11,10,0.22);color:var(--accent);backdrop-filter:blur(3px);pointer-events:auto;transition:background 180ms ease, transform 180ms ease}.project-control:hover:not(:disabled),.project-control:focus-visible{background:rgba(9,11,10,0.72);transform:scale(1.06)}.project-control:disabled{opacity:0;pointer-events:none}.project-chevron{display:block;width:clamp(0.7rem, 1vw, 0.95rem);aspect-ratio:1;border-top:1px solid currentColor;border-right:1px solid currentColor}.project-chevron--previous{transform:rotate(-135deg);margin-left:.25rem}.project-chevron--next{transform:rotate(45deg);margin-right:.25rem}.project-portal-leaving [data-project-media]{visibility:hidden !important;transform:none !important;transition:none !important;animation:none !important}html.project-entry-boot body,html.project-entry-arriving body{opacity:1;animation:none}html.project-entry-boot::after,html.project-entry-arriving::after{content:"";position:fixed;z-index:1000;inset:0;background:#020302;opacity:1;pointer-events:none;transform:translateZ(0);backface-visibility:hidden}html.project-entry-arriving::after{animation:project-world-reveal 620ms cubic-bezier(0.22, 1, 0.36, 1) both}html.project-entry-boot.project-entry-arriving::after{animation:none}.project-portal-backdrop{position:fixed;z-index:198;inset:0;background:radial-gradient(ellipse at center, #020302 0 32%, rgba(2,3,2,0.96) 62%, #020302 100%);opacity:0;pointer-events:none;transition:opacity 700ms cubic-bezier(0.4, 0, 0.2, 1);will-change:opacity;isolation:isolate;transform:translateZ(0);backface-visibility:hidden}.project-portal-backdrop.is-departing-world{animation:project-world-backdrop 1280ms ease both}.project-world-signal{position:fixed;z-index:199;inset:-22%;opacity:0;pointer-events:none;background:repeating-radial-gradient(circle at center, transparent 0 6.5%, rgba(130,181,152,0.1) 6.65%, transparent 6.85% 13%),linear-gradient(90deg, transparent 49.94%, rgba(239,242,237,0.18) 50%, transparent 50.06%),linear-gradient(transparent 49.94%, rgba(239,242,237,0.18) 50%, transparent 50.06%);mix-blend-mode:normal;transform:scale(0.72);will-change:opacity, transform}.project-world-signal::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 48%, rgba(239,242,237,0.28) 50%, transparent 52%);transform:translateY(-48%)}.project-world-signal.is-departing{animation:project-world-signal 1280ms cubic-bezier(0.6, 0, 0.2, 1) both}.project-world-signal.is-departing::after{animation:project-world-scan 1280ms cubic-bezier(0.5, 0, 0.3, 1) both}.project-world-title{position:fixed;z-index:202;inset:0;display:flex;align-items:center;justify-content:center;margin:0;color:var(--text);font-size:clamp(2rem, 7vw, 7.5rem);font-weight:400;letter-spacing:.18em;width:100%;padding-inline:4vw;white-space:nowrap;overflow:hidden;text-align:center;text-shadow:0 0 .8rem #020302, 0 0 2.6rem #020302;opacity:0;pointer-events:none;font-synthesis:none;transform:scale(0.94);will-change:opacity, transform}.project-world-title::before,.project-world-title::after{position:absolute;left:50%;width:max-content;color:var(--accent);font:500 clamp(0.48rem, 0.8vw, 0.66rem)/1 var(--mono);letter-spacing:.22em;text-shadow:0 0 0.75rem rgba(130,181,152,0.35);transform:translateX(-50%);opacity:0}.project-world-title::before{content:"PROYECTO";top:calc(50% - clamp(3.3rem,8vw,8rem))}.project-world-title::after{content:"INICIALIZANDO";bottom:calc(50% - clamp(3.3rem,8vw,8rem))}html[lang="en"] .project-world-title::before{content:"PROJECT"}html[lang="en"] .project-world-title::after{content:"INITIALIZING"}.project-world-title.is-departing{animation:project-world-title 1280ms cubic-bezier(0.6, 0, 0.2, 1) both}.project-world-title.is-departing::before{animation:project-world-meta 1280ms 40ms ease both}.project-world-title.is-departing::after{animation:project-world-meta 1280ms 110ms ease both reverse}.project-world-title__letter{display:inline-block;opacity:0;transform:translate3d(0, 0.42em, 0) scaleX(0.55);transform-origin:center;filter:blur(5px);will-change:opacity, transform, filter, color}.project-world-title.is-departing .project-world-title__letter{animation:project-world-letter 860ms cubic-bezier(0.16, 1, 0.3, 1) both;animation-delay:calc(120ms + (var(--letter-index) * 24ms))}.project-world-title--fallback{font-family:var(--sans);font-weight:300}.project-portal-leaving .portfolio-nav,.project-portal-leaving .portfolio-footer,.project-portal-leaving .hero-copy,.project-portal-leaving .hero-project-controls,.project-portal-leaving .hero-project__interest,.project-portal-leaving .project-index-card__info{opacity:0;transition:opacity 120ms ease}.project-portal-leaving .hero-project__interest{visibility:hidden;opacity:0 !important}@keyframes project-world-backdrop{0%{opacity:0}6%{opacity:.3}12%{opacity:.72}22%{opacity:.9}78%{opacity:.96}100%{opacity:1}}@keyframes project-world-reveal{0%, 10%{opacity:1}100%{opacity:0}}@keyframes project-world-signal{0%, 16%{opacity:0;transform:scale(0.72)}48%{opacity:.5;transform:scale(1)}76%{opacity:.24;transform:scale(1.4)}100%{opacity:0;transform:scale(2)}}@keyframes project-world-scan{0%, 22%{opacity:0;transform:translateY(-48%)}48%{opacity:.75}78%{opacity:.25;transform:translateY(48%)}100%{opacity:0;transform:translateY(60%)}}@keyframes project-world-title{0%, 9%{opacity:0;transform:scale(0.94)}18%{opacity:1;transform:scale(1)}66%{opacity:1;transform:scale(1.018)}88%, 100%{opacity:0;transform:scale(1.09)}}@keyframes project-world-letter{0%{opacity:0;color:var(--accent);transform:translate3d(0, 0.42em, 0) scaleX(0.55);filter:blur(5px)}12%{opacity:.2;transform:translate3d(calc(var(--letter-direction) * 2px), -0.1em, 0) scaleX(1.2)}24%{opacity:.9;color:var(--accent);filter:blur(0.4px)}38%, 70%{opacity:1;color:var(--text);transform:translate3d(0, 0, 0) scaleX(1);filter:blur(0)}82%{opacity:.68;color:var(--accent);transform:translate3d(0, -0.05em, 0) scaleX(1.03)}100%{opacity:0;transform:translate3d(0, -0.35em, 0) scaleX(0.82);filter:blur(3px)}}@keyframes project-world-meta{0%, 14%{opacity:0;letter-spacing:.34em}28%, 66%{opacity:.72;letter-spacing:.22em}88%, 100%{opacity:0;letter-spacing:.3em}}.internal-main{min-height:100vh;padding:clamp(7.25rem, 14vh, 8.5rem) var(--page-pad) clamp(4rem, 8vh, 6rem)}.internal-header{max-width:70rem;margin-bottom:clamp(2rem, 4vw, 3.5rem)}.internal-header .technical-meta{color:var(--accent);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase}.internal-header h1{margin:1rem 0 0;font-size:clamp(3rem, 8vw, 8rem);font-weight:300;letter-spacing:.05em}.project-main .internal-header{width:100%;max-width:none;margin-inline:auto;text-align:center}.project-main .internal-header h1{margin-top:clamp(1.6rem, 2.5vw, 2.35rem)}.internal-subtitle{margin:.65rem 0 0;color:var(--accent);font:500 0.72rem/1.35 var(--mono);letter-spacing:.18em;text-transform:uppercase}.internal-copy{max-width:52rem;color:var(--copy);font-size:clamp(1rem, 1.4vw, 1.2rem);line-height:1.8}.internal-main--contact{display:flex;flex-direction:column;align-items:center;text-align:center}.internal-main--contact .internal-header,.internal-main--contact .internal-copy{width:100%;margin-inline:auto}.internal-main--contact .contact-links{display:flex;flex-direction:column;align-items:center}.internal-main--about{display:flex;flex-direction:column;align-items:center;text-align:center}.internal-main--about .internal-header,.internal-main--about .internal-copy{width:100%;margin-inline:auto}.internal-main--about .internal-copy{max-width:68rem}.internal-main--about .internal-copy>p{max-width:52rem;margin-inline:auto}.about-process{--about-cycle: 7.75s;position:relative;width:100%;margin:max(0px, calc(clamp(.5rem, 1.5vw, 1rem) - 16px)) 0 0;color:var(--accent);overflow:hidden}.about-process::before,.about-process::after{content:"";position:absolute;z-index:2;top:0;bottom:0;width:12%;pointer-events:none}.about-process::before{left:0;background:linear-gradient(90deg, var(--ink), transparent)}.about-process::after{right:0;background:linear-gradient(-90deg, var(--ink), transparent)}.about-process__visual{display:block;width:100%;height:auto}@media (min-width: 701px){.about-process__visual{transform:translateY(-140px);margin-bottom:-140px}}.about-process__grid{color:var(--text)}.about-process__route{opacity:.8}.about-process__idea{fill:currentColor;stroke:currentColor;stroke-width:1;stroke-opacity:.28;animation:about-stage-idea var(--about-cycle) ease-in-out infinite}.about-process__idea path{fill:none}.about-process__idea>circle:not(.about-process__idea-core){animation:about-particle var(--about-cycle) ease-in-out infinite}.about-process__idea-core{fill:none;stroke-dasharray:2 7;animation:about-spin var(--about-cycle) ease-in-out infinite;transform-origin:137px 254px}.about-process__software,.about-process__machine,.about-process__result{fill:none;stroke:currentColor;stroke-width:1.4}.about-process__software{animation:about-stage-software var(--about-cycle) ease-in-out infinite}.about-process__machine{animation:about-stage-machine var(--about-cycle) ease-in-out infinite}.about-process__result{animation:about-stage-result var(--about-cycle) ease-in-out infinite}.about-process__bracket{stroke-width:1;opacity:.72}.about-process__code-line{stroke-dasharray:96;stroke-dashoffset:96;animation:about-code var(--about-cycle) cubic-bezier(0.22, 1, 0.36, 1) infinite}.about-process__code-line--two{animation-delay:.17s}.about-process__code-line--three{animation-delay:.33s}.about-process__orbit{stroke-dasharray:3 8;transform-origin:514px 255px;animation:about-orbit var(--about-cycle) ease-in-out infinite}.about-process__arm,.about-process__grip{stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.about-process__joint{fill:var(--ink);animation:about-joint var(--about-cycle) ease-in-out infinite}.about-process__joint--late{animation-delay:.2s}.about-process__eye,.about-process__iris,.about-process__identity{vector-effect:none;stroke-width:1.16;stroke-linecap:round;stroke-dasharray:var(--about-draw-length);stroke-dashoffset:var(--about-draw-length);animation:about-resolve var(--about-cycle) cubic-bezier(0.22, 1, 0.36, 1) infinite}.about-process__eye{--about-draw-length: 280}.about-process__iris{--about-draw-length: 180;animation-name:about-resolve-iris}.about-process__identity{--about-draw-length: 60;animation-name:about-resolve-identity}.about-process__pupil{fill:#8fc5a4;stroke:none;transform-box:fill-box;transform-origin:center;filter:drop-shadow(0 0 2px rgba(143,197,164,0.5)) drop-shadow(0 0 6px rgba(130,181,152,0.2));animation:about-pupil var(--about-cycle) ease-in-out infinite}.about-process__result-glow{fill:currentColor;stroke:none;opacity:0;filter:blur(14px);animation:about-result-glow var(--about-cycle) ease-out infinite}.about-process__signal,.about-process__signal-glow{fill:currentColor;stroke:none}.about-process__signal{animation:about-signal var(--about-cycle) ease-in-out infinite}.about-process__signal-glow{opacity:.48;animation:about-signal-glow var(--about-cycle) ease-in-out infinite}.about-process__scan{fill:none;stroke:var(--text);stroke-width:1;opacity:0;animation:about-scan var(--about-cycle) ease-in-out infinite}.about-process__caption{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}@keyframes about-stage-idea{0%,9.5%,100%{opacity:.24}12%,22%{opacity:1}30%{opacity:.3}}@keyframes about-stage-software{0%,25%,100%{opacity:.2}28%,41%{opacity:1}49%{opacity:.3}}@keyframes about-stage-machine{0%,43%,100%{opacity:.2}46%,62%{opacity:1}70%{opacity:.3}}@keyframes about-stage-result{0%,67.5%,100%{opacity:.16}70%,94%{opacity:1}}@keyframes about-particle{0%,9.5%,30%,100%{opacity:.22;transform:translate(0)}13%{opacity:1;transform:translate(2px, -4px)}21%{opacity:.7;transform:translate(-2px, 2px)}}@keyframes about-spin{0%,9.5%{transform:rotate(0);opacity:.25}12%{opacity:1}25%{transform:rotate(230deg);opacity:1}31%,100%{transform:rotate(250deg);opacity:.25}}@keyframes about-code{0%,25%{stroke-dashoffset:96;opacity:.12}32%,43%{stroke-dashoffset:0;opacity:1}49%,100%{stroke-dashoffset:-96;opacity:.12}}@keyframes about-orbit{0%,43%{stroke-dashoffset:55;opacity:.15;transform:rotate(-18deg) scale(0.96)}49%,63%{stroke-dashoffset:0;opacity:.85;transform:rotate(-18deg) scale(1)}70%,100%{stroke-dashoffset:-55;opacity:.12;transform:rotate(-18deg) scale(1.06)}}@keyframes about-joint{0%,43%,70%,100%{stroke:currentColor;opacity:.3}49%,63%{stroke:var(--text);opacity:1}}@keyframes about-resolve{0%,67.5%{stroke-dashoffset:var(--about-draw-length);opacity:0}78%,96%{stroke-dashoffset:0;opacity:1}99.5%,100%{stroke-dashoffset:0;opacity:0}}@keyframes about-resolve-iris{0%,69%{stroke-dashoffset:var(--about-draw-length);opacity:0}81%,96%{stroke-dashoffset:0;opacity:1}99.5%,100%{stroke-dashoffset:0;opacity:0}}@keyframes about-resolve-identity{0%,72%{stroke-dashoffset:var(--about-draw-length);opacity:0}83%,96%{stroke-dashoffset:0;opacity:1}99.5%,100%{stroke-dashoffset:0;opacity:0}}@keyframes about-pupil{0%,84.5%{opacity:0;transform:scale(0.25)}89%,96%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.08)}}@keyframes about-result-glow{0%,84.5%{opacity:0;transform:scale(0.5)}88%{opacity:.16;transform:scale(0.9)}92%{opacity:.07;transform:scale(1.08)}96%,100%{opacity:0;transform:scale(1.2)}}@keyframes about-signal{0%,5%{opacity:0}8%,78%{opacity:1}82.5%,100%{opacity:0}}@keyframes about-signal-glow{0%,5%{opacity:0}8%,76%{opacity:.48}82%,100%{opacity:0}}@keyframes about-scan{0%,67.5%{opacity:0;transform:translateY(-86px)}73%{opacity:.12}82%{opacity:0;transform:translateY(86px)}100%{opacity:0}}.internal-copy h2{margin-top:3rem;color:var(--text);font-weight:400}.internal-copy a{text-underline-offset:.25em}.contact-links{font-family:var(--mono);font-size:.88em}.contact-links a{color:var(--text);text-decoration-color:var(--line);transition:color 160ms ease, text-decoration-color 160ms ease}.contact-links a:hover,.contact-links a:focus-visible{color:var(--accent);text-decoration-color:var(--accent)}.project-main{overflow:hidden}.project-hero-media{position:relative;isolation:isolate;width:100vw;max-width:none;height:min(76svh, 56.25vw, 860px);min-height:clamp(28rem, 52vw, 46rem);margin:0 calc(50% - 50vw) clamp(2.5rem, 6vw, 5rem);overflow:hidden;background:var(--ink);border:0;box-shadow:none}.project-hero-media::before{content:"";position:absolute;z-index:0;inset:-7%;pointer-events:none;background:var(--project-poster) center/cover no-repeat;filter:blur(clamp(20px, 2.3vw, 38px)) saturate(0.68) brightness(0.44);opacity:.46;transform:scale(1.025)}.project-hero-media::after{content:"";position:absolute;z-index:3;inset:-1px;pointer-events:none;background:linear-gradient(to bottom, var(--ink) 0, rgba(9,11,10,0.44) 3%, transparent 12%, transparent 85%, rgba(9,11,10,0.18) 92%, var(--ink) 100%),linear-gradient(to right, var(--ink) 0, rgba(9,11,10,0.34) 2%, transparent 7%, transparent 93%, rgba(9,11,10,0.34) 98%, var(--ink) 100%)}.project-hero-image{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;display:block;background:#020302;accent-color:var(--accent);backface-visibility:hidden;transform:translateZ(0)}video.project-hero-image{object-fit:cover;object-position:center bottom;background:transparent;-webkit-mask-image:linear-gradient(to right, transparent 0, #000 3%, #000 97%, transparent 100%),linear-gradient(to bottom, transparent 0, #000 6%, #000 94%, transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right, transparent 0, #000 3%, #000 97%, transparent 100%),linear-gradient(to bottom, transparent 0, #000 6%, #000 94%, transparent 100%);mask-composite:intersect}.project-hero-media:fullscreen video.project-hero-image{object-fit:contain;object-position:center;-webkit-mask-image:none;mask-image:none}.project-hero-media:fullscreen::before,.project-hero-media:fullscreen::after{display:none}.project-hero-image::-webkit-media-controls-timeline,.project-hero-image::-webkit-media-controls-volume-slider{accent-color:var(--accent)}.project-video-controls{position:absolute;z-index:4;left:clamp(2.5rem, 5vw, 6rem);right:clamp(2.5rem, 5vw, 6rem);bottom:clamp(2.35rem, 3.4vw, 3.25rem);display:grid;grid-template-columns:2.5rem minmax(0, 1fr) auto 2.5rem;align-items:center;gap:.75rem;min-height:3.25rem;padding:.45rem .7rem;color:var(--text);background:linear-gradient(90deg, rgba(2,3,2,0.28), rgba(2,3,2,0.58) 12% 88%, rgba(2,3,2,0.28));border-top:1px solid color-mix(in srgb, var(--accent) 12%, transparent);border-bottom:1px solid color-mix(in srgb, var(--text) 6%, transparent);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);opacity:.76;transition:opacity 240ms ease,transform 320ms cubic-bezier(0.22, 1, 0.36, 1)}.project-video-controls[hidden]{display:none}.project-hero-media:hover .project-video-controls,.project-video-controls:focus-within{opacity:1}@media (hover: hover) and (pointer: fine){.project-video-controls{opacity:0;pointer-events:none;transform:translateY(0.35rem)}.project-hero-media:hover .project-video-controls,.project-video-controls:focus-within{opacity:1;pointer-events:auto;transform:translateY(0)}}.project-video-toggle,.project-video-fullscreen{width:2.5rem;height:2.5rem;display:grid;place-items:center;padding:0;border:0;color:var(--text);background:transparent;cursor:pointer}.project-video-toggle__icon{position:relative;width:.9rem;height:1rem;display:block}.project-video-toggle__icon::before,.project-video-toggle__icon::after{content:"";position:absolute;top:0;bottom:0;width:3px;background:currentColor}.project-video-toggle__icon::before{left:1px}.project-video-toggle__icon::after{right:1px}.project-video-toggle[data-state="paused"] .project-video-toggle__icon::before{inset:0;width:auto;background:currentColor;clip-path:polygon(0 0, 100% 50%, 0 100%)}.project-video-toggle[data-state="paused"] .project-video-toggle__icon::after{display:none}.project-video-progress{--video-progress: 0%;width:100%;height:1rem;margin:0;padding:0;appearance:none;-webkit-appearance:none;border:0;background:transparent;cursor:pointer}.project-video-progress::-webkit-slider-runnable-track{height:2px;border-radius:0;background:linear-gradient(90deg, var(--accent) 0 var(--video-progress), rgba(239,242,237,0.32) var(--video-progress) 100%)}.project-video-progress::-webkit-slider-thumb{width:10px;height:10px;margin-top:-4px;border:0;border-radius:50%;-webkit-appearance:none;background:var(--accent);box-shadow:0 0 0.5rem rgba(130,181,152,0.42)}.project-video-progress::-moz-range-track{height:2px;border:0;background:rgba(239,242,237,0.32)}.project-video-progress::-moz-range-progress{height:2px;background:var(--accent)}.project-video-progress::-moz-range-thumb{width:10px;height:10px;border:0;border-radius:50%;background:var(--accent)}.project-video-time{min-width:4.6rem;color:var(--muted);font:500 0.62rem/1 var(--mono);white-space:nowrap}.project-video-fullscreen svg{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:1.4}.project-hero-image--placeholder{height:min(60vh, 40rem);object-fit:contain;padding:12%;filter:invert(1);opacity:.45;background:var(--surface)}.project-facts{position:relative;display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem 1.5rem;width:100%;padding:1rem 0;border:0;color:var(--muted);font:0.7rem/1.5 var(--mono);text-align:center;text-transform:uppercase}.project-facts::before,.project-facts::after{content:"";position:absolute;left:0;right:0;height:1px;pointer-events:none;background:linear-gradient(90deg, transparent, var(--line) 10%, rgba(130,181,152,0.48) 50%, var(--line) 90%, transparent);box-shadow:0 0 0.8rem rgba(130,181,152,0.08)}.project-facts::before{top:0}.project-facts::after{bottom:0;opacity:.72}.project-summary{margin:clamp(2.5rem, 5vw, 4rem) auto;text-align:center;text-wrap:pretty}.project-summary p{margin:0}.project-gallery{position:relative;isolation:isolate;width:100%;margin-top:clamp(3rem, 7vw, 6rem);overflow:hidden;background:var(--ink)}.project-gallery::after{content:"";position:absolute;z-index:4;inset:-1px;pointer-events:none;background:linear-gradient(to bottom, var(--ink) 0, transparent 7%, transparent 91%, var(--ink) 100%),linear-gradient(to right, var(--ink) 0, transparent 6%, transparent 94%, var(--ink) 100%)}.project-gallery__controls{position:absolute;z-index:5;inset:50% clamp(0.75rem, 2vw, 2rem) auto;display:flex;justify-content:space-between;pointer-events:none;transform:translateY(-50%)}.project-gallery__track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-inline:contain}.project-gallery__track::-webkit-scrollbar{display:none}.project-gallery__slide{flex:0 0 100%;height:min(72svh, 720px);margin:0;scroll-snap-align:start}.project-gallery__slide img{width:100%;height:100%;object-fit:cover;display:block;border:0}.project-repository{display:flex;justify-content:center;padding:clamp(4rem, 9vw, 8rem) 0 1rem}.project-repository a{color:var(--text);font:500 0.78rem/1 var(--mono);letter-spacing:.14em;text-decoration:none;text-transform:uppercase;border-bottom:1px solid var(--accent);padding:0 0 .55rem;transition:color 180ms ease}.project-repository a:hover,.project-repository a:focus-visible{color:var(--accent)}.portfolio-footer{position:relative;display:flex;justify-content:space-between;gap:2rem;padding:2rem var(--page-pad);color:var(--muted);font:0.68rem/1.5 var(--mono);text-transform:uppercase}.portfolio-footer--minimal{justify-content:space-between}@media (max-width: 700px){html,body,.language-page{width:100%;max-width:100%;overflow-x:hidden}body.language-page{position:fixed;inset:0;width:100%;height:100dvh;min-height:100dvh;max-height:100dvh;overflow:hidden;overscroll-behavior:none}.language-gate{width:100%;height:100%;min-height:0;overflow:hidden;padding:max(1rem, env(safe-area-inset-top)) 1rem max(1rem, env(safe-area-inset-bottom))}.gate-inner{width:100%;max-height:100%}.reactive-mark{width:clamp(11rem, min(62vw, 38dvh), 17rem);margin-bottom:clamp(1.35rem, 4.5dvh, 2.75rem)}.language-options{width:100%;grid-template-columns:minmax(0, 1fr) 1px minmax(0, 1fr);gap:clamp(0.35rem, 2.5vw, 0.75rem)}.language-options a{gap:1.35rem;padding:.7rem .15rem 1rem}.language-options a span{font-size:clamp(0.48rem, 2.15vw, 0.58rem);letter-spacing:.065em}.language-options a strong{font-size:.92rem}.portfolio-nav{grid-template-columns:auto 1fr auto}.nav-links{justify-content:center;gap:1rem}.nav-links a{font-size:.64rem}.display-name{font-size:clamp(1.5rem, 6vw, 2.85rem);letter-spacing:0}.hero-project__interest{display:none}.portfolio-hero{min-height:100svh;padding-top:clamp(7.5rem, 18svh, 10rem);padding-bottom:clamp(7rem, 16svh, 9rem)}.project-index{padding:3.2rem 1rem 5rem}.project-index__header{min-height:8rem;padding-bottom:4.5rem}.project-index__header h1{font-size:clamp(3rem, 8vw, 8rem);transform:translateY(0.73rem)}.project-index__filters{position:fixed;left:max(0.7rem, env(safe-area-inset-left));top:50svh;bottom:auto;width:auto;height:auto;margin:0;transform:translate3d(0, -50%, 0);backface-visibility:hidden}.project-filter{--filter-rail-width: 4.6rem;--filter-open-width: min(12.2rem,calc(100vw - 1.4rem));--filter-height: 6.5rem}.project-index__grid{grid-template-columns:1fr;gap:3rem}.project-index-card__visual,.project-index-card__info{width:82%}.project-world-title{font-size:clamp(1.35rem, 6.8vw, 2rem);letter-spacing:.06em;backface-visibility:hidden}.project-control{width:2.75rem}.project-gallery__slide{height:auto;aspect-ratio:4/5}.project-hero-media{width:100vw;max-width:none;height:auto;min-height:0;aspect-ratio:16/10;margin-inline:calc(50% - 50vw);box-shadow:none}video.project-hero-image{-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 5%, #000 95%, transparent 100%);mask-image:linear-gradient(to bottom, transparent 0, #000 5%, #000 95%, transparent 100%)}.project-hero-media::after{background:linear-gradient(to bottom, var(--ink) 0, rgba(9,11,10,0.32) 2.5%, transparent 9%, transparent 88%, rgba(4,6,5,0.18) 95%, var(--ink) 100%)}.project-video-controls{left:max(0.8rem, env(safe-area-inset-left));right:max(0.8rem, env(safe-area-inset-right));bottom:1.15rem;grid-template-columns:2.15rem minmax(0, 1fr) auto 2.15rem;gap:.42rem;min-height:2.8rem;padding:.3rem .42rem}.project-video-toggle,.project-video-fullscreen{width:2.15rem;height:2.15rem}.project-video-time{min-width:3.9rem;font-size:.54rem}.project-video-progress{min-width:0}.project-hero-media::before{inset:-8%;filter:blur(20px) saturate(0.68) brightness(0.44);opacity:.48}.project-gallery{width:calc(100% + (2 * var(--page-pad)));margin-inline:calc(-1 * var(--page-pad))}.project-gallery::after{background:linear-gradient(to bottom, var(--ink) 0, transparent 5%, transparent 94%, var(--ink) 100%),linear-gradient(to right, var(--ink) 0, transparent 9%, transparent 91%, var(--ink) 100%)}.about-process{margin-top:max(0px, calc(clamp(.5rem, 1.5vw, 1rem) - 3px))}.about-process__visual{width:100%}.portfolio-footer{flex-direction:column}}body.home-page,body.info-page{--interface-frame-inline: clamp(1rem,2.25vw,1.9rem);--interface-frame-gap: clamp(.45rem,.9dvh,.6rem);--interface-footer-size: clamp(3.5rem,6.2dvh,4rem);position:fixed;inset:0;display:flex;flex-direction:column;width:100%;height:100dvh;min-height:100dvh;max-height:100dvh;overflow:hidden;overscroll-behavior:none}body.home-page>#main.portfolio-main,body.info-page>#main.internal-main{position:relative;isolation:isolate;flex:1 1 auto;min-height:0;height:auto;width:auto;margin:calc(4.7rem + var(--interface-frame-gap)) var(--interface-frame-inline) var(--interface-frame-gap);overflow:hidden;background:var(--ink)}body.home-page>#main.portfolio-main{display:flex}@media (min-width: 701px){body.home-page{--interface-frame-inline: 0rem;--interface-frame-gap: 0rem}}.home-page .portfolio-hero{--hall-copy-lift: clamp(1.35rem,3.6dvh,2.15rem);--hall-interest-lift: clamp(.45rem,1.1dvh,.7rem);--hall-control-lift: clamp(1.15rem,2.5dvh,1.55rem);display:grid;place-items:center;height:100%;padding:0 var(--page-pad)}.home-page .hero-copy{transform:translateY(calc(-1 * var(--hall-copy-lift)))}.home-page .hero-project__interest{top:calc(50% + clamp(4.5rem,9vw,8rem) - var(--hall-copy-lift) - var(--hall-interest-lift))}.home-page .hero-project-controls{transform:translateY(calc(-50% - var(--hall-control-lift)))}.home-page .hero-projects{inset:0}.info-page .internal-main{display:grid;grid-template-rows:auto auto;align-content:center;justify-items:center;padding:clamp(0.65rem, 2dvh, 1.25rem) var(--page-pad)}.info-page .internal-header{flex:0 0 auto;width:100%;margin-inline:auto;margin-bottom:clamp(0.65rem, 2dvh, 1.35rem)}.info-page .internal-header h1{margin-top:0;font-size:clamp(3rem, min(8vw, 13dvh), 8rem);line-height:.9}.info-page .internal-subtitle{margin-top:clamp(0.35rem, 0.8dvh, 0.65rem);font-size:clamp(0.58rem, min(0.72rem, 1.35dvh), 0.72rem)}.info-page .internal-copy{flex:0 1 auto;min-height:0;width:100%;margin-inline:auto;font-size:clamp(0.88rem, min(1.4vw, 2dvh), 1.2rem);line-height:1.55}.info-about-page .internal-main{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:clamp(2rem, 4.7dvh, 2.75rem) var(--page-pad) 0;text-align:center}.info-about-page .internal-header{margin-bottom:clamp(1.15rem, 2vw, 1.5rem)}.info-about-page .internal-header h1{margin:1rem 0 0;font-size:clamp(3rem, 8vw, 8rem);line-height:normal;transform:none}.info-about-page .internal-subtitle{margin:.95rem 0 0;font-size:.72rem}.info-about-page .internal-copy{display:block;max-width:68rem;font-size:clamp(1rem, 1.4vw, 1.2rem);line-height:1.8;transform:translateY(clamp(0.8rem, 2.2dvh, 1.4rem))}.info-about-page .internal-copy>p{max-width:52rem;margin:1em auto;transform:none}.info-about-page .about-process{display:block;width:100%;max-height:none;margin:max(0px, calc(clamp(.5rem,1.5vw,1rem) - 16px)) 0 0}.info-about-page .about-process__visual{width:100%;height:auto;max-height:none}.info-contact-page .internal-main{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:clamp(2rem, 4.7dvh, 2.75rem) var(--page-pad) 0;text-align:center}.info-contact-page .internal-header{margin-bottom:clamp(0.9rem, 1.6vw, 1.25rem);transform:none}.info-contact-page .internal-header h1{margin:1rem 0 0;font-size:clamp(3rem, 8vw, 8rem);line-height:normal}.info-contact-page .internal-subtitle{margin:.95rem 0 0;font-size:.72rem}.info-contact-page .internal-copy{display:grid;justify-items:center;align-self:center;font-size:clamp(1rem, 1.4vw, 1.2rem);line-height:1.8;transform:translateY(clamp(1.65rem, 3.8dvh, 2.4rem))}.contact-card{position:relative;isolation:isolate;width:min(52rem, 82vw);padding:clamp(1.45rem, 2.8dvh, 1.9rem) 2.25rem;overflow:hidden;background:transparent}.contact-card::before,.contact-card::after{content:"";position:absolute;top:.35rem;bottom:.35rem;width:.72rem;pointer-events:none;opacity:.68}.contact-card::before{left:0;border-left:1px solid color-mix(in srgb, var(--accent) 36%, transparent);border-block:1px solid color-mix(in srgb, var(--accent) 22%, transparent)}.contact-card::after{right:0;border-right:1px solid color-mix(in srgb, var(--accent) 36%, transparent);border-block:1px solid color-mix(in srgb, var(--accent) 22%, transparent)}.contact-card__signal{position:absolute;z-index:3;left:0;top:.35rem;width:1px;height:.52rem;background:var(--accent);opacity:0;box-shadow:0 0 0.5rem color-mix(in srgb, var(--accent) 62%, transparent);animation:contact-card-signal 5.8s cubic-bezier(0.4, 0, 0.2, 1) infinite}.info-contact-page .contact-links{--contact-line-left: 1.1rem;--contact-line-right: .35rem;position:relative;width:100%;gap:0}.info-contact-page .contact-links::before{content:"";position:absolute;z-index:0;left:.42rem;top:.8rem;bottom:.8rem;width:1px;background:linear-gradient(transparent, color-mix(in srgb, var(--accent) 24%, transparent) 18% 82%, transparent)}.info-contact-page .contact-links::after{content:"";position:absolute;left:var(--contact-line-left);right:var(--contact-line-right);bottom:0;height:1px;background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 18%, transparent), color-mix(in srgb, var(--text) 5%, transparent) 38%, transparent 92%);opacity:.72}.info-contact-page .contact-links p{position:relative;width:100%;margin:0}.info-contact-page .contact-links p::after{content:"";position:absolute;left:var(--contact-line-left);right:var(--contact-line-right);top:0;height:1px;background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 18%, transparent), color-mix(in srgb, var(--text) 5%, transparent) 38%, transparent 92%);opacity:.72;transition:opacity 180ms ease,transform 360ms cubic-bezier(0.16, 1, 0.3, 1)}.info-contact-page .contact-links p::before{content:"";position:absolute;z-index:2;left:.25rem;top:50%;width:.28rem;aspect-ratio:1;border:1px solid color-mix(in srgb, var(--accent) 52%, transparent);transform:translateY(-50%) rotate(45deg);transition:background 180ms ease, box-shadow 220ms ease}.info-contact-page .contact-links a{position:relative;z-index:1;display:block;padding:clamp(1.65rem, 3.8dvh, 2.1rem) 1.65rem;text-decoration:none;letter-spacing:.025em;transition:color 180ms ease,letter-spacing 360ms cubic-bezier(0.16, 1, 0.3, 1),background 220ms ease}.info-contact-page .contact-links p:hover::before,.info-contact-page .contact-links p:focus-within::before{background:var(--accent);box-shadow:0 0 0.42rem color-mix(in srgb, var(--accent) 36%, transparent)}.info-contact-page .contact-links a:hover,.info-contact-page .contact-links a:focus-visible{letter-spacing:.045em;outline:none;background:radial-gradient(ellipse at 42% 50%, color-mix(in srgb, var(--accent) 5%, transparent), transparent 68%)}.info-contact-page .contact-links p:hover::after,.info-contact-page .contact-links p:focus-within::after{opacity:1;transform:scaleX(1.025);transform-origin:left center}@keyframes contact-card-signal{0%,14%{top:.35rem;opacity:0}20%{opacity:.78}48%{top:calc(100% - .87rem);opacity:.78}54%,100%{top:calc(100% - .87rem);opacity:0}}.home-page .portfolio-footer,.info-page .portfolio-footer,.work-page .portfolio-footer{flex:0 0 var(--interface-footer-size, clamp(3.5rem, 6.2dvh, 4rem));height:var(--interface-footer-size, clamp(3.5rem, 6.2dvh, 4rem));min-height:var(--interface-footer-size, clamp(3.5rem, 6.2dvh, 4rem));flex-direction:row;align-items:center;gap:1rem;padding:0 var(--page-pad);font-size:clamp(0.54rem, min(0.72vw, 1.05dvh), 0.64rem)}@media (max-width: 700px){body.home-page,body.info-page{--interface-frame-inline: clamp(.65rem,3vw,.85rem);--interface-frame-gap: .45rem;--interface-footer-size: clamp(4.25rem,9.5dvh,5rem)}body.home-page{--interface-frame-inline: 0rem}.home-page .hero-projects{touch-action:pan-y;overscroll-behavior-inline:contain}.home-page .hero-project .hero-project__media{object-fit:cover;object-position:center;padding-inline:0;-webkit-mask-image:linear-gradient(to right, transparent 0, #000 7%, #000 93%, transparent 100%);mask-image:linear-gradient(to right, transparent 0, #000 7%, #000 93%, transparent 100%);transform:none}.home-page .hero-project-controls{inset-inline:0}.home-page .project-control,.project-gallery .project-control{width:2.75rem;background:transparent;color:color-mix(in srgb, var(--accent) 88%, var(--text));box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.home-page .project-chevron,.project-gallery .project-chevron{filter:drop-shadow(0 0 1px rgba(0,0,0,0.98)) drop-shadow(0 0 0.28rem color-mix(in srgb, var(--accent) 72%, transparent))}.home-page .project-control:hover:not(:disabled),.home-page .project-control:focus-visible,.project-gallery .project-control:hover:not(:disabled),.project-gallery .project-control:focus-visible{background:rgba(9,11,10,0.42)}.home-page .portfolio-footer,.info-page .portfolio-footer,.work-page .portfolio-footer{justify-content:space-between;gap:.75rem;padding-inline:1rem;font-size:.5rem}.info-page .internal-main{padding:clamp(0.45rem, 1.35dvh, 0.75rem) 1rem}.info-page .internal-header{margin-bottom:clamp(0.55rem, 1.6dvh, 0.9rem)}.info-page .internal-header h1{font-size:clamp(2.35rem, min(11vw, 9dvh), 3.7rem);letter-spacing:.035em}.info-page .internal-subtitle{margin-top:.35rem;font-size:clamp(0.5rem, 2.2vw, 0.62rem);line-height:1.2}.info-page .internal-copy{font-size:clamp(0.78rem, min(3.45vw, 1.9dvh), 0.96rem);line-height:1.45}.info-about-page .internal-main{padding:clamp(2rem, 4.7dvh, 2.75rem) 1rem 0}.info-about-page .internal-header{margin-bottom:clamp(0.85rem, 2.2dvh, 1.1rem)}.info-about-page .internal-header h1{font-size:clamp(3rem, 8vw, 8rem)}.info-about-page .internal-subtitle{margin-top:clamp(1.25rem, 3dvh, 1.55rem);font-size:.72rem;line-height:1.35}.info-about-page .internal-copy{font-size:clamp(1rem, 1.4vw, 1.2rem);line-height:1.8}.info-about-page .about-process{width:100%;max-height:none;margin-top:max(0px, calc(clamp(.5rem,1.5vw,1rem) - 3px))}.info-about-page .about-process__visual{max-height:none}.info-contact-page .internal-main{padding:clamp(2rem, 4.7dvh, 2.75rem) 1rem 0}.info-contact-page .internal-header{margin-bottom:clamp(1.35rem, 3.2dvh, 1.75rem)}.info-contact-page .internal-header h1{font-size:clamp(3rem, 8vw, 8rem)}.info-contact-page .internal-subtitle{margin-top:clamp(1.75rem, 4.2dvh, 2.15rem);font-size:.72rem;line-height:1.35}.info-contact-page .internal-copy{font-size:clamp(1rem, 1.4vw, 1.2rem);line-height:1.8}.contact-card{width:min(24rem, 100%);padding:clamp(1.05rem, 2.2dvh, 1.3rem) 1rem}.info-contact-page .contact-links::before{left:.32rem}.info-contact-page .contact-links p::before{left:.15rem}.info-contact-page .contact-links{--contact-line-left: .9rem;--contact-line-right: .2rem}.info-contact-page .contact-links a{padding:clamp(1.18rem, 3dvh, 1.5rem) 1.05rem;font-size:.84rem}}@media (max-height: 620px){.info-page .internal-main{padding-block:.35rem}.info-page .internal-header{margin-bottom:.45rem}.info-page .internal-header h1{font-size:clamp(2.25rem, min(8vw, 10dvh), 4.5rem)}.info-page .internal-copy{font-size:clamp(0.76rem, min(1.35vw, 1.8dvh), 0.95rem);line-height:1.4}.info-about-page .about-process,.info-about-page .about-process__visual{max-height:27dvh}}@media (hover: none), (pointer: coarse){.hero-project.is-active .hero-project__interest{opacity:.72;transform:translate(-50%, 0)}.project-index-card:hover h2{color:var(--text);letter-spacing:.09em}.project-filter__options button:hover{color:var(--filter-copy-dim);background:transparent;transform:none}.project-filter__options button:hover>strong{letter-spacing:.17em}}@media (hover: none), (pointer: coarse){.portfolio-nav .nav-links a:hover,.portfolio-nav .nav-links a:focus,.portfolio-nav .nav-links a:focus-visible,.portfolio-nav .language-switch:hover,.portfolio-nav .language-switch:focus,.portfolio-nav .language-switch:focus-visible{color:var(--muted);letter-spacing:.07em;transform:none}.portfolio-nav .nav-links a::before,.portfolio-nav .nav-links a::after,.portfolio-nav .language-switch::before,.portfolio-nav .language-switch::after,.portfolio-nav .nav-logo::before{display:none}.portfolio-nav .nav-logo:hover img,.portfolio-nav .nav-logo:focus img,.portfolio-nav .nav-logo:focus-visible img{transform:none}.portfolio-nav .nav-logo:hover::after,.portfolio-nav .nav-logo:focus::after,.portfolio-nav .nav-logo:focus-visible::after{background:var(--text);box-shadow:none;transform:translate(calc(-50% + var(--nav-pupil-x)), calc(-50% + var(--nav-pupil-y)))}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}.reactive-mark{transform:none !important}.reactive-mark__pupil{transform:translate(-50%, -50%) !important}.portfolio-shell::before{display:none}.about-process__signal,.about-process__signal-glow,.about-process__scan,.about-process__result-glow{display:none}.about-process__idea,.about-process__software,.about-process__machine,.about-process__result{opacity:1;animation:none}.about-process__code-line,.about-process__eye,.about-process__iris,.about-process__identity{stroke-dashoffset:0;opacity:1}.about-process__orbit{stroke-dashoffset:0;opacity:.65}.about-process__pupil{opacity:1;transform:none}.about-process__visual{top:auto;width:100%;animation:none;transform:none}.interface-divider__cursor{display:none}}@media (prefers-color-scheme: light){.reactive-mark__image,.nav-logo img{filter:invert(1)}.reactive-mark__pupil{background:var(--accent)}.pupil-transition{border-color:var(--text);box-shadow:none}.project-hero-media::after{background:linear-gradient(to bottom, var(--ink) 0, rgba(243,244,239,0.82) 1.2%, transparent 4%, transparent 96%, rgba(243,244,239,0.82) 98.8%, var(--ink) 100%),linear-gradient(to right, var(--ink) 0, rgba(243,244,239,0.82) 1.2%, transparent 4%, transparent 96%, rgba(243,244,239,0.82) 98.8%, var(--ink) 100%)}video.project-hero-image{-webkit-mask-image:linear-gradient(to right, transparent 0, #000 3%, #000 97%, transparent 100%),linear-gradient(to bottom, transparent 0, #000 3%, #000 97%, transparent 100%);mask-image:linear-gradient(to right, transparent 0, #000 3%, #000 97%, transparent 100%),linear-gradient(to bottom, transparent 0, #000 3%, #000 97%, transparent 100%)}.home-page .portfolio-hero{--text: #eff2ed;--muted: #98a099;--accent: #82b598;color:var(--text)}.home-page .interface-divider{--divider-line: rgba(63,119,88,.46);--divider-accent: #3f7758}.home-page .interface-divider__line{stroke-width:1.15}}
