:root{--accent:#4cc9f0;--accent-glow:#4cc9f04d;--accent-tint:#4cc9f014;--accent-r:.298;--accent-g:.788;--accent-b:.941;--font-body:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-display:"Outfit", "Inter", sans-serif;--font-serif:"Playfair Display", "Georgia", serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--space-4xl:6rem;--space-5xl:8rem;--radius-sm:6px;--radius-md:12px;--radius-lg:20px;--radius-xl:28px;--radius-full:9999px;--transition-accent:all .6s cubic-bezier(.4, 0, .2, 1);--transition-fast:all .2s ease;--transition-smooth:all .4s cubic-bezier(.4, 0, .2, 1);--heading-tracking:-.02em;--heading-weight:700;--body-tracking:0}[data-theme=dark]{--bg-primary:#08090f;--bg-secondary:#0f1118;--bg-tertiary:#171a25;--bg-card:#0f1118cc;--bg-card-hover:#171a25e6;--text-primary:#f0f0f5;--text-secondary:#8b92a8;--text-tertiary:#5a6180;--border-color:#ffffff0f;--border-hover:#ffffff1f;--glass-bg:#08090f73;--glass-border:#ffffff14;--shadow-card:0 4px 24px #0006;--shadow-hover:0 12px 48px #00000080}[data-theme=light]{--bg-primary:#faf9f7;--bg-secondary:#f0eeea;--bg-tertiary:#e5e3de;--bg-card:#ffffffd9;--bg-card-hover:#fffffff2;--text-primary:#14141f;--text-secondary:#555770;--text-tertiary:#8b8da3;--border-color:#00000012;--border-hover:#00000024;--glass-bg:#faf9f780;--glass-border:#00000012;--shadow-card:0 2px 16px #0000000f;--shadow-hover:0 8px 32px #0000001a}[data-theme=dark] [data-discipline=dev],[data-discipline=dev]{--accent:#9ed8ff;--accent-glow:#9ed8ff33;--accent-tint:#9ed8ff0d}[data-theme=dark] [data-discipline=automation],[data-discipline=automation]{--accent:#ffd8a8;--accent-glow:#ffd8a833;--accent-tint:#ffd8a80d}[data-theme=dark] [data-discipline="3d"],[data-discipline="3d"]{--accent:#d0c4ff;--accent-glow:#d0c4ff33;--accent-tint:#d0c4ff0d}[data-theme=dark] [data-discipline="2d"],[data-discipline="2d"]{--accent:#ffc9db;--accent-glow:#ffc9db33;--accent-tint:#ffc9db0d}[data-theme=light] [data-discipline=dev]{--accent:#74c0fc}[data-theme=light] [data-discipline=automation]{--accent:#ffa94d}[data-theme=light] [data-discipline="3d"]{--accent:#9775fa}[data-theme=light] [data-discipline="2d"]{--accent:#f06595}[data-discipline=dev]{--heading-tracking:-.03em;--heading-weight:600}[data-discipline=automation]{--heading-tracking:-.01em;--heading-weight:700}[data-discipline="3d"]{--heading-tracking:.02em;--heading-weight:500}[data-discipline="2d"]{--heading-tracking:-.02em;--heading-weight:800}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}body{font-family:var(--font-body);background-color:var(--bg-primary);color:var(--text-primary);letter-spacing:var(--body-tracking,0);min-height:100vh;line-height:1.6;transition:background-color .6s,color .4s;overflow-x:clip}a{color:var(--accent);transition:var(--transition-fast);text-decoration:none}a:hover{opacity:.85}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}img{max-width:100%;height:auto;display:block}h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--heading-weight,700);letter-spacing:var(--heading-tracking,-.02em);color:var(--text-primary);line-height:1.1;transition:letter-spacing .6s,font-weight .3s,color .4s}h1{font-size:clamp(3.5rem,10vw,8rem);font-family:var(--font-heading);letter-spacing:-.04em;font-weight:700}h2{font-family:var(--font-serif);letter-spacing:-.01em;font-size:clamp(2rem,5vw,3.5rem);font-style:italic;font-weight:600}.section-heading{font-family:var(--font-serif);letter-spacing:-.01em;font-style:italic;font-weight:600}h3{font-size:clamp(1.1rem,2vw,1.4rem);font-weight:600}p{color:var(--text-secondary);font-size:1.05rem;line-height:1.7}.text-accent{color:var(--accent);transition:color .6s}.text-serif{font-family:var(--font-serif);font-style:italic}.section{width:100%;max-width:1200px;padding:var(--space-4xl) var(--space-xl);margin:0 auto}main{z-index:1;position:relative}.avatar-canvas-active{pointer-events:none}.avatar-canvas-active>:not(.hero__scroll-container){pointer-events:auto}.navbar,.disciplines__tabs{z-index:100;-webkit-backdrop-filter:blur(28px)saturate(1.8);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:6px;justify-content:center;align-items:center;gap:12px;width:auto;min-width:fit-content;transition:all 1s cubic-bezier(.22,1,.36,1);display:flex;box-shadow:0 4px 20px #0000001a}.navbar{will-change:transform, width, max-width;width:318px;max-width:calc(100vw - 32px);padding:6px 14px;top:16px;left:50%;overflow:hidden;transform:translate(-50%);position:fixed!important}.disciplines__tabs{margin-bottom:var(--space-3xl);max-width:90vw;margin-left:auto;margin-right:auto;padding:8px 18px;position:relative}.navbar__logo-wrapper,.disciplines__logo-wrapper{color:var(--text-primary);flex-shrink:0;align-items:center;gap:12px;display:flex}.disciplines__heading-mini{font-family:var(--font-body);color:var(--text-primary);white-space:nowrap;font-size:.85rem;font-weight:700}.navbar__separator{background:var(--glass-border);opacity:.4;width:1px;height:18px}.navbar__links,.disciplines__links{align-items:center;gap:2px;margin:0;padding:0;list-style:none;display:flex;position:relative}.navbar__hover-pill,.disciplines__hover-pill{background:var(--accent-glow);z-index:1;pointer-events:none;opacity:0;border-radius:6px;transition:all .5s cubic-bezier(.34,1.2,.7,1);position:absolute;top:1px;bottom:0}.navbar__glow,.disciplines__glow{background:linear-gradient(90deg, transparent 0%, var(--accent-glow) 25%, #fff 50%, var(--accent-glow) 75%, transparent 100%);height:1px;filter:drop-shadow(0 0 4px var(--accent-glow));border-radius:var(--radius-full);z-index:0;pointer-events:none;opacity:0;transition:all .6s cubic-bezier(.16,1,.3,1);position:absolute;bottom:-.5em}[data-theme=light] .navbar__glow,[data-theme=light] .disciplines__glow{background:linear-gradient(90deg, transparent 0%, var(--accent) 50%, transparent 100%);filter:drop-shadow(0 0 4px var(--accent-glow))}.navbar__link,.disciplines__tab{font-family:var(--font-body);color:var(--text-secondary);z-index:2;cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:6px 12px;font-size:.78rem;font-weight:700;text-decoration:none;transition:color .3s;position:relative}.navbar__link:hover,.disciplines__tab:hover,.navbar__link--active,.disciplines__tab--active{color:var(--text-primary)}.theme-toggle{border-radius:var(--radius-full);background:var(--bg-tertiary);border:1px solid var(--border-color);height:32px;color:var(--text-secondary);flex-shrink:0;align-items:center;gap:6px;padding:6px 10px;font-size:.85rem;transition:all .3s;display:flex}.theme-toggle:hover{background:var(--accent-tint);border-color:var(--accent);color:var(--accent)}.theme-toggle:active{transform:translateY(0)}.theme-toggle__icon{justify-content:center;align-items:center;transition:transform .5s cubic-bezier(.4,0,.2,1);display:flex}.theme-toggle:hover .theme-toggle__icon{transform:rotate(15deg)}.theme-toggle__text{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;font-size:.6rem}body{transition:background-color .8s cubic-bezier(.4,0,.2,1),color .6s cubic-bezier(.4,0,.2,1)}a,button,.project-card,.footer{transition:background-color .6s,border-color .6s,color .6s}.navbar,.disciplines__tabs{transition:width .74s cubic-bezier(.16,1,.3,1),max-width .74s cubic-bezier(.16,1,.3,1),padding .62s cubic-bezier(.16,1,.3,1),border-radius .62s cubic-bezier(.16,1,.3,1),background-color .6s,border-color .6s,box-shadow .6s}@keyframes glowPulse{0%,to{opacity:.5;filter:blur(1px)}50%{opacity:1;filter:blur(2px)}}.navbar__morph-container{z-index:2;align-items:center;transition:flex-basis .74s cubic-bezier(.16,1,.3,1),width .74s cubic-bezier(.16,1,.3,1),max-width .74s cubic-bezier(.16,1,.3,1);display:flex;position:relative;overflow:hidden}.navbar__nav-links{pointer-events:none;align-items:center;gap:2px;max-width:0;margin:0;padding:0;list-style:none;transition:max-width .74s cubic-bezier(.16,1,.3,1),opacity .28s,filter .32s cubic-bezier(.22,1,.36,1),transform .3s cubic-bezier(.16,1,.3,1);display:flex;overflow:hidden}.navbar__nav-links--visible{pointer-events:auto;max-width:400px;transition-delay:0s}.navbar__discipline-tabs{pointer-events:none;align-items:center;gap:2px;max-width:0;transition:max-width .74s cubic-bezier(.16,1,.3,1),opacity .28s,filter .32s cubic-bezier(.22,1,.36,1),transform .3s cubic-bezier(.16,1,.3,1);display:flex;overflow:hidden}.navbar__discipline-tabs--visible{pointer-events:auto;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;max-width:calc(100vw - 32px);transition-delay:0s;overflow-x:auto}.navbar__discipline-tabs--visible::-webkit-scrollbar{display:none}.navbar__morph-item{white-space:nowrap;opacity:0;filter:blur(6px);flex-shrink:0;transition:opacity .22s,filter .24s cubic-bezier(.22,1,.36,1),transform .24s;transform:translate(6px)}.navbar__nav-links--visible .navbar__morph-item,.navbar__discipline-tabs--visible .navbar__morph-item{opacity:1;filter:blur();transform:translate(0)}.navbar__nav-links--visible .navbar__morph-item:first-child{transition:opacity .22s 50ms,transform .24s 50ms,filter .24s cubic-bezier(.22,1,.36,1) 50ms}.navbar__nav-links--visible .navbar__morph-item:nth-child(2){transition:opacity .22s 80ms,transform .24s 80ms,filter .24s cubic-bezier(.22,1,.36,1) 80ms}.navbar__nav-links--visible .navbar__morph-item:nth-child(3){transition:opacity .22s .11s,transform .24s .11s,filter .24s cubic-bezier(.22,1,.36,1) .11s}.navbar__discipline-tabs--visible .navbar__morph-item--logo{transition:opacity .22s 40ms,transform .24s 40ms,filter .24s cubic-bezier(.22,1,.36,1) 40ms}.navbar__discipline-tabs--visible .navbar__morph-item--sep{transition:opacity .2s 70ms,transform .22s 70ms,filter .22s cubic-bezier(.22,1,.36,1) 70ms}.navbar__discipline-tabs--visible .navbar__morph-item--link:first-of-type{transition:opacity .2s .1s,transform .22s .1s,filter .22s cubic-bezier(.22,1,.36,1) .1s}.navbar__discipline-tabs--visible .navbar__morph-item--link:nth-of-type(2){transition:opacity .2s .13s,transform .22s .13s,filter .22s cubic-bezier(.22,1,.36,1) .13s}.navbar__discipline-tabs--visible .navbar__morph-item--link:nth-of-type(3){transition:opacity .2s .16s,transform .22s .16s,filter .22s cubic-bezier(.22,1,.36,1) .16s}.navbar__discipline-tabs--visible .navbar__morph-item--link:nth-of-type(4){transition:opacity .2s .19s,transform .22s .19s,filter .22s cubic-bezier(.22,1,.36,1) .19s}.navbar__discipline-label{font-family:var(--font-body);color:var(--text-primary);white-space:nowrap;padding:0 8px;font-size:.85rem;font-weight:700}.navbar__link--discipline{cursor:pointer;background:0 0;border:none;padding:6px 12px}.navbar--morphed{width:620px;max-width:calc(100vw - 32px);padding:6px 18px}.navbar--changing .navbar__morph-item{opacity:.7;filter:blur(4px);transition:opacity .18s,filter .2s cubic-bezier(.22,1,.36,1),transform .2s cubic-bezier(.16,1,.3,1);transform:translate(4px)}.avatar-canvas{z-index:0;pointer-events:none;position:fixed;inset:0}.avatar-canvas--contact-cutout{z-index:12;pointer-events:none}.avatar-canvas canvas{pointer-events:none;width:100%;height:100%;display:block}.avatar-canvas *{pointer-events:none!important}.landing-scrubber-hit{z-index:90;pointer-events:none;cursor:ns-resize;touch-action:none;overscroll-behavior:contain;appearance:none;writing-mode:vertical-lr;opacity:.01;accent-color:#0000;direction:rtl;background:0 0;border:0;outline:none;width:180px;height:100vh;position:fixed;top:0;left:0}.landing-scrubber-hit--active{pointer-events:auto}.landing-scrubber-hit::-webkit-slider-runnable-track{background:0 0;border:0;width:100%;height:100%}.landing-scrubber-hit::-webkit-slider-thumb{-webkit-appearance:none;background:0 0;border:0;width:72px;height:72px}.landing-scrubber-hit::-moz-range-track{background:0 0;border:0;width:100%;height:100%}.landing-scrubber-hit::-moz-range-thumb{background:0 0;border:0;width:72px;height:72px}@media (width<=899px){.landing-scrubber-hit{display:none;pointer-events:none!important}}.avatar-canvas__clip-layer{will-change:clip-path;transition:clip-path .42s cubic-bezier(.22,1,.36,1)}.hero--3d{background:0 0;width:100%;height:100vh;min-height:100vh;padding:0;display:block;position:relative;overflow:hidden}.hero__canvas-wrapper{z-index:0;position:absolute;inset:0}.hero__canvas-wrapper canvas{width:100%;height:100%;display:block}.hero__overlay{z-index:10;pointer-events:none;position:absolute;bottom:8vh;left:20vw}.hero__title-3d{letter-spacing:-.02em;color:var(--text-primary);margin:0;font-family:Instrument Serif,serif;font-size:3rem;font-weight:400;line-height:1}.hero__subtitle-3d{color:var(--text-secondary);letter-spacing:.01em;margin-top:.2em;font-family:Instrument Serif,serif;font-size:clamp(1.2rem,2.5vw,1rem);font-style:italic;font-weight:400}.hero__tech-label{z-index:10;pointer-events:none;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);opacity:.5;font-size:.65rem;position:absolute;top:6vh;right:5vw}@media (width<=768px){.hero__overlay{bottom:6vh;left:6vw}.hero__title-3d{font-size:clamp(2.5rem,12vw,4rem)}.hero__subtitle-3d{font-size:clamp(1rem,4vw,1.4rem)}}.hero__scroll-container--mobile{height:168vh;position:relative}.hero--mobile{justify-content:center;align-items:center;display:flex}.hero-mobile__fade-target{will-change:opacity;justify-content:center;align-items:center;width:100%;height:100vh;display:flex;position:absolute;inset:0}.hero-mobile__description-layer{z-index:1;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.hero-mobile__description{opacity:0;will-change:opacity, transform;margin:0 auto;transform:translateY(18px)}.hero-mobile__blueprint{z-index:0;opacity:0;transform-origin:50%;background:radial-gradient(circle at 50% 44%, color-mix(in srgb, var(--mobile-grid) 22%, transparent), transparent 28%), linear-gradient(color-mix(in srgb, var(--mobile-grid) 18%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--mobile-grid) 18%, transparent) 1px, transparent 1px), linear-gradient(color-mix(in srgb, var(--mobile-grid) 7%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--mobile-grid) 7%, transparent) 1px, transparent 1px);background-position:50%;background-size:100% 100%,56px 56px,56px 56px,14px 14px,14px 14px;transition:opacity .1s linear,transform .1s linear;position:absolute;inset:-4%}.hero-mobile__loading-overlay{z-index:100;pointer-events:none;background:#08090f;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.hero-mobile__loading-text{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-size:.72rem}.hero-mobile__stage{z-index:4;aspect-ratio:320/420;opacity:0;perspective:920px;width:min(78vw,330px);transform-style:preserve-3d;will-change:transform, opacity, filter;position:relative}.hero-mobile__halo,.hero-mobile__portrait-svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.hero-mobile__halo{z-index:1;pointer-events:none;transform:translateZ(-118px) rotateZ(var(--gyro-ring-rot,0deg));transform-origin:50%;will-change:transform}.hero-mobile__ring{fill:none;stroke:var(--accent);stroke-width:1.2px;vector-effect:non-scaling-stroke;opacity:0}.hero-mobile__ring--outer{stroke-opacity:.36}.hero-mobile__ring--inner{stroke-opacity:.22;stroke-dasharray:9 12}.hero-mobile__hud-mark{fill:none;stroke:color-mix(in srgb, var(--accent) 75%, white);stroke-width:1px;stroke-linecap:round;stroke-dasharray:8 10;opacity:0}.hero-mobile__portrait-frame{z-index:2;transform:translate3d(var(--gyro-photo-x,0px), var(--gyro-photo-y,0px), 92px);transform-style:preserve-3d;will-change:transform;position:absolute;inset:5% 4% 0;overflow:visible}.hero-mobile__panel-piece{z-index:1;border:1px solid color-mix(in srgb, var(--accent) 62%, white);background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 24%, transparent), transparent 68%);opacity:0;-webkit-backdrop-filter:blur(4px);border-radius:999px;display:block;position:absolute}.hero-mobile__portrait-svg{z-index:2;filter:saturate(1.04)contrast(1.04);transform-origin:50%;transform:translateZ(58px)}.hero-mobile__photo{opacity:0;transform-box:fill-box;transform-origin:50%;will-change:transform, opacity, filter}.hero-mobile__portrait-outline{fill:none;stroke:color-mix(in srgb, var(--accent) 76%, white);stroke-width:2.25px;vector-effect:non-scaling-stroke;opacity:0}.hero-mobile__photo-sheen{z-index:3;pointer-events:none;mix-blend-mode:screen;opacity:0;transform:translate3d(var(--gyro-sheen-x,0px), var(--gyro-sheen-y,0px), 148px);will-change:transform, opacity;background:linear-gradient(105deg,#0000 28%,#ffffff52 48%,#0000 68%);border-radius:55% 45% 36% 58%/48% 34% 64% 52%;position:absolute;inset:5% 2% 0}.hero-mobile__label{text-align:center;width:max-content;max-width:calc(100vw - 32px);top:7vh;left:50%;right:auto;transform:translate(-50%)}.hero--mobile .hero__overlay{text-align:center;z-index:10;bottom:6vh;left:50%;transform:translate(-50%)}.hero-mobile__copy{width:min(88vw,420px)}.hero-mobile__title,.hero-mobile__subtitle{opacity:0}@media (width<=420px){.hero-mobile__stage{width:min(84vw,300px)}.hero--mobile .hero__overlay{bottom:5vh}}.disciplines{padding-top:var(--space-3xl);z-index:1;padding-bottom:40vh;position:relative}.disciplines__header{text-align:center;margin-bottom:var(--space-2xl)}.disciplines__heading{font-family:var(--font-serif);margin-bottom:var(--space-lg);font-size:clamp(2rem,5vw,3.5rem);font-style:italic;font-weight:600}.disciplines__tab{border-radius:var(--radius-full);font-size:.8rem;font-weight:600;font-family:var(--font-body);color:var(--text-secondary);z-index:2;white-space:nowrap;cursor:pointer;background:0 0;border:none;padding:8px 16px;transition:color .3s;position:relative}.disciplines__tab:hover,.disciplines__tab--active{color:var(--text-primary)}.disciplines__description{text-align:left;max-width:650px;margin:0 auto var(--space-4xl);font-size:1.15rem;font-family:var(--font-serif);color:var(--text-secondary);padding:0 var(--space-xl);font-weight:400;line-height:1.85}.disciplines__description:first-letter{font-family:var(--font-serif);float:left;color:var(--text-primary);padding-top:.1em;padding-right:.15em;font-size:4rem;font-style:italic;font-weight:600;line-height:.8}.disciplines__carousel-wrapper{width:100%;position:relative}.disciplines__carousel{gap:var(--space-xl);scroll-snap-type:x mandatory;padding:var(--space-xl) var(--space-xl) 60px var(--space-xl);margin:0 calc(-1 * var(--space-xl));scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth;display:flex;overflow-x:auto}.disciplines__carousel::-webkit-scrollbar{display:none}.disciplines__carousel-slide{flex:0 0 calc(33.333% - (var(--space-xl) * 2 / 3));scroll-snap-align:start}@media (width<=900px){.disciplines__carousel-slide{flex:0 0 calc(50% - var(--space-xl) / 2)}}@media (width<=600px){.disciplines__carousel-slide{flex:0 0 85%}}.disciplines__carousel-btn{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-color);width:52px;height:52px;color:var(--text-primary);cursor:pointer;z-index:10;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 4px 12px #00000026}.disciplines__carousel-btn:hover{background:var(--text-primary);color:var(--bg-primary);border-color:var(--text-primary)}.disciplines__carousel-btn--prev{left:-30px}.disciplines__carousel-btn--next{right:-30px}@media (width<=900px){.disciplines__carousel-btn{display:none}}.project-card{border-radius:var(--radius-lg);isolation:isolate;will-change:transform;transform-style:preserve-3d;cursor:pointer;aspect-ratio:3/4;background:0 0;border:none;transition:box-shadow .5s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}[data-theme=light] .project-card{box-shadow:0 4px 24px #00000014,0 1px 3px #0000000d,inset 0 .5px #ffffff80}.project-card:hover{box-shadow:0 8px 32px #00000059,inset 0 .5px #ffffff14}[data-theme=light] .project-card:hover{box-shadow:0 8px 24px #0000001f,inset 0 .5px #fff9}.project-card__specular{border-radius:var(--radius-lg);pointer-events:none;z-index:10;opacity:0;background:radial-gradient(circle at var(--specular-x,50%) var(--specular-y,50%), #ffffff0d 0%, transparent 60%);transition:opacity .3s;position:absolute;inset:0}.project-card:hover .project-card__specular{opacity:1}.project-card__balloon,.project-card__cursor-wake{border-radius:inherit;pointer-events:none;opacity:0;z-index:9;position:absolute;inset:0}.project-card__cursor-wake{display:none}.project-card__image-fill{border-radius:var(--radius-lg);z-index:1;transform:translate3d(calc(var(--card-nx,0) * -14px), calc(var(--card-ny,0) * -12px), 18px) scale(var(--image-scale,1.035));transform-origin:50%;transform-style:preserve-3d;will-change:transform;transition:transform .52s cubic-bezier(.16,1,.3,1);position:absolute;inset:0;overflow:hidden}.project-card__image-fill img{object-fit:cover;will-change:transform;width:100%;height:100%;transition:transform .15s ease-out}.project-card__frost{z-index:5;pointer-events:none;height:100%;transform:translate3d(calc(var(--card-nx,0) * 10px), calc(var(--card-ny,0) * 8px), 44px);transform-style:preserve-3d;will-change:transform;flex-direction:column;justify-content:flex-end;transition:transform .52s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;inset:0}.project-card__frost-content{z-index:2;padding:var(--space-xl);border-radius:0 0 var(--radius-lg) var(--radius-lg);transform-style:preserve-3d;position:relative;transform:translateZ(36px)}.project-card__overlay-bg{z-index:0;border-radius:var(--radius-lg);background:var(--accent-tint);-webkit-backdrop-filter:blur(24px)saturate(1.8);backdrop-filter:blur(24px)saturate(1.8);border:1px solid var(--glass-border);pointer-events:none;border-top:1px solid #ffffff26;transition:opacity .8s cubic-bezier(.22,1,.36,1);position:absolute;inset:0;box-shadow:0 4px 30px #0003}.project-card:hover .project-card__overlay-bg{opacity:1}.project-card__content{padding:var(--space-lg)}.project-card__thumbnail{background:var(--bg-tertiary);width:100%;height:220px;position:relative;overflow:hidden}.project-card__thumbnail img{object-fit:cover;will-change:transform;width:100%;height:100%;transition:transform .15s ease-out}.project-card__title{font-family:var(--font-display);color:#fff;text-shadow:0 1px 4px #0000004d;margin-bottom:0;font-size:1.05rem;font-weight:700;transition:font-size .8s cubic-bezier(.22,1,.36,1),color .3s,opacity .8s cubic-bezier(.22,1,.36,1),filter 1.2s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1);animation:.8s cubic-bezier(.22,1,.36,1) title-blur-pulse-out;transform:translateY(10px)}@keyframes title-blur-pulse-in{0%{filter:blur()}30%{filter:blur(6px)}to{filter:blur()}}@keyframes title-blur-pulse-out{0%{filter:blur()}30%{filter:blur(6px)}to{filter:blur()}}.project-card:hover .project-card__title{font-size:1.25rem;animation:.8s cubic-bezier(.22,1,.36,1) title-blur-pulse-in;transform:translateY(0)}[data-discipline="3d"] .project-card__title,[data-discipline="2d"] .project-card__title{font-family:var(--font-serif);letter-spacing:-.01em;font-size:1.3rem;font-style:italic;font-weight:600}.project-card__subtext{opacity:0;filter:blur(8px);grid-template-rows:0fr;margin-top:0;transition:grid-template-rows .8s cubic-bezier(.22,1,.36,1),opacity .8s cubic-bezier(.22,1,.36,1),margin-top .8s cubic-bezier(.22,1,.36,1),filter 1.2s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1);display:grid;transform:translateY(10px)}.project-card__subtext-inner{flex-direction:column;display:flex;overflow:hidden}.project-card:hover .project-card__subtext{opacity:1;filter:blur();margin-top:var(--space-sm);grid-template-rows:1fr;transform:translateY(0)}.project-card__desc{color:#ffffffbf;margin-bottom:var(--space-md);text-shadow:0 1px 3px #0003;font-size:.85rem;line-height:1.55}.project-card__tags{gap:var(--space-sm);flex-wrap:wrap;display:flex}.project-card__tag{border-radius:var(--radius-full);color:var(--accent);font-size:.7rem;font-weight:500;font-family:var(--font-mono);letter-spacing:.02em;-webkit-backdrop-filter:blur(8px);background:#ffffff1a;padding:3px 10px;transition:background .4s,color .4s}.moodboard{border-radius:var(--radius-lg);background:var(--bg-secondary);border:1px solid var(--border-color);background-image:linear-gradient(var(--border-color) 1px, transparent 1px), linear-gradient(90deg, var(--border-color) 1px, transparent 1px);cursor:grab;-webkit-user-select:none;user-select:none;background-size:40px 40px;width:100%;min-height:600px;position:relative;overflow:hidden}.moodboard:active{cursor:grabbing}.moodboard__item{background:var(--bg-card);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);cursor:move;-webkit-user-select:none;user-select:none;border:1px solid var(--border-color);flex-direction:column;padding:8px;transition:transform .1s ease-out,box-shadow .2s;display:flex;position:absolute}.moodboard__item:hover{box-shadow:var(--shadow-hover);z-index:100!important}.moodboard__item img{object-fit:cover;border-radius:4px;width:100%;height:100%}.moodboard__item-label{color:#fff;font-size:.7rem;font-weight:500;font-family:var(--font-mono);letter-spacing:.03em;text-transform:uppercase;opacity:0;transition:opacity .25s}.moodboard__item:hover .moodboard__item-label{opacity:1}.contact{padding:0 0 calc(var(--space-4xl) * 1.5) 0;z-index:10;flex-direction:column;align-items:center;display:flex;position:relative}.contact__card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl);gap:var(--space-2xl);grid-template-columns:1fr auto;align-items:center;max-width:800px;margin:0 auto;padding:clamp(2rem,5vw,3.5rem);display:grid;position:relative;overflow:hidden;box-shadow:0 8px 40px #00000026}.contact__content{gap:var(--space-lg);flex-direction:column;display:flex}.contact__heading{font-size:clamp(1.6rem,3vw,2.2rem);font-family:var(--font-serif);color:var(--text-primary);letter-spacing:-.02em;font-style:italic;font-weight:600;line-height:1.2}.contact__subtext{color:var(--text-secondary);font-size:.95rem;line-height:1.8}.contact__email-link{color:var(--accent);text-underline-offset:3px;font-weight:700;text-decoration:underline;text-decoration-thickness:2px;transition:color .3s,text-decoration-color .3s}.contact__email-link:hover{color:var(--text-primary);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.contact__socials{gap:var(--space-sm);display:flex}.contact__social-link{border-radius:var(--radius-md);border:1px solid var(--border-color);width:42px;height:42px;color:var(--text-secondary);will-change:transform;background:0 0;justify-content:center;align-items:center;transition:border-color .3s,color .3s,background .3s,box-shadow .3s;display:flex}.contact__social-link:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-tint);box-shadow:0 4px 16px var(--accent-glow)}.contact__avatar-wrapper{background:#00000040;border-radius:65% 45% 35% 60%/55% 40% 60% 45%;flex-shrink:0;justify-content:center;align-items:flex-end;width:clamp(140px,20vw,220px);height:clamp(180px,25vw,280px);display:flex;position:relative;overflow:hidden;box-shadow:inset 0 8px 32px #0009}.contact__avatar-wrapper--3d-active{border:1px solid color-mix(in srgb, var(--accent) 24%, transparent);background:0 0;box-shadow:inset 0 8px 32px #00000057,inset 0 1px #ffffff0f}.contact__avatar-inner{position:absolute;inset:0;overflow:visible}.contact__avatar-svg-container{justify-content:center;align-items:flex-end;display:flex;position:absolute;inset:0;overflow:visible}.contact__avatar-svg-container svg{width:130%;height:auto;margin-bottom:-15%;display:block}.contact__wave-heading{font-family:var(--font-sans);color:var(--text-primary);text-align:center;letter-spacing:-.04em;z-index:2;margin:0;font-size:clamp(4rem,10vw,8rem);font-weight:800;line-height:1;position:relative;transform:translateY(2.5rem)}.contact__footer{text-align:center;padding:var(--space-3xl) var(--space-md) var(--space-xl);color:var(--text-tertiary);font-size:.78rem;font-family:var(--font-mono);letter-spacing:.04em}@media (width<=640px){.contact__card{text-align:center;grid-template-columns:1fr}.contact__socials{justify-content:center}.contact__avatar-wrapper{width:160px;height:200px;margin:0 auto}}.magnetic{will-change:transform;transition:transform .15s ease-out}@keyframes heroFadeInUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes heroScaleIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.hero__animate{opacity:0;animation-fill-mode:forwards}.hero__animate--1{animation:1s cubic-bezier(.4,0,.2,1) .2s forwards heroScaleIn}.hero__animate--2{animation:.9s cubic-bezier(.4,0,.2,1) .5s forwards heroFadeInUp}.hero__animate--3{animation:.8s cubic-bezier(.4,0,.2,1) .7s forwards heroFadeInUp}.hero__animate--4{animation:.7s cubic-bezier(.4,0,.2,1) .9s forwards heroFadeInUp}.hero__animate--5{animation:.6s cubic-bezier(.4,0,.2,1) 1.2s forwards heroFadeInUp}.reveal{opacity:0;transition:opacity .7s cubic-bezier(.4,0,.2,1),transform .7s cubic-bezier(.4,0,.2,1);transform:translateY(30px)}.reveal--visible{opacity:1;transform:translateY(0)}.reveal--delay-1{transition-delay:.1s}.reveal--delay-2{transition-delay:.2s}.reveal--delay-3{transition-delay:.3s}.reveal--delay-4{transition-delay:.4s}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--accent)}@media (width<=768px){.section{padding:var(--space-2xl) var(--space-md)}.hero__photo-wrapper{width:120px;height:120px}.contact__inner{gap:var(--space-2xl);grid-template-columns:1fr}.disciplines__tabs{border-radius:var(--radius-lg);flex-wrap:wrap}.disciplines__tab{padding:8px var(--space-sm);font-size:.75rem}.disciplines__grid{grid-template-columns:1fr}.navbar{width:318px;max-width:calc(100vw - 32px);top:max(10px, calc(env(safe-area-inset-top,0px) + 8px));border-radius:8px;justify-content:flex-start;padding:4px 6px;transition:width .74s cubic-bezier(.16,1,.3,1),max-width .74s cubic-bezier(.16,1,.3,1),padding .62s cubic-bezier(.16,1,.3,1),border-radius .62s cubic-bezier(.16,1,.3,1),background-color .6s,border-color .6s,box-shadow .6s;overflow:hidden}.navbar--morphed{border-radius:9px;width:360px;max-width:calc(100vw - 40px);padding:4px 8px}.navbar__links{flex:auto;gap:1px;width:100%;min-width:0}.navbar__morph-container{contain:paint;flex:auto;min-width:0;transition:flex-basis .74s cubic-bezier(.16,1,.3,1),width .74s cubic-bezier(.16,1,.3,1),max-width .74s cubic-bezier(.16,1,.3,1);overflow:clip}.navbar__nav-links,.navbar__discipline-tabs{min-width:0;transition:max-width .74s cubic-bezier(.16,1,.3,1),opacity .28s,filter .32s cubic-bezier(.22,1,.36,1),transform .3s cubic-bezier(.16,1,.3,1)}.navbar__nav-links--visible{justify-content:space-between;width:100%;max-width:220px}.navbar__discipline-tabs--visible{overscroll-behavior-x:contain;contain:paint;justify-content:space-between;width:100%;max-width:300px;overflow:auto hidden}.navbar--changing .navbar__morph-item{opacity:.7;filter:blur(4px);transition:opacity .18s,filter .2s cubic-bezier(.22,1,.36,1),transform .2s cubic-bezier(.16,1,.3,1);transform:translate(4px)}.hero--mobile,.hero-mobile__fade-target{overflow:hidden}.theme-toggle{flex:0 0 28px;justify-content:center;width:28px;height:28px;padding:0}.navbar>.navbar__links>.navbar__separator{margin:0 4px!important}.navbar__link{padding:6px 7px;font-size:.7rem}.navbar__section-label,.navbar__discipline-label,.navbar__discipline-tabs .navbar__separator{display:none}.navbar__link--discipline{white-space:nowrap;padding:6px 7px;font-size:.7rem}.moodboard{min-height:400px}}@media (width<=480px){h1{font-size:clamp(2.5rem,15vw,4rem)}.hero__photo-wrapper{width:100px;height:100px}.navbar{width:312px;max-width:calc(100vw - 28px);padding:4px 5px}.navbar--morphed{width:348px;max-width:calc(100vw - 32px);padding:4px 6px}.navbar__nav-links--visible{max-width:214px}.navbar__discipline-tabs--visible{max-width:284px}.navbar__link{padding:6px;font-size:.68rem}}
