@import url("https://api.fontshare.com/v2/css?f[]=clash-display@400,500,600,700&display=swap");:root{--background:oklch(14% 0.02 260);--background-deep:oklch(10% 0.02 260);--foreground:oklch(97% 0.01 260);--card:oklch(18% 0.025 260);--muted:oklch(22% 0.025 260);--muted-foreground:oklch(70% 0.02 260);--primary:oklch(78% 0.18 60);--border:oklch(28% 0.03 260);--shadow-glow:0 0 60px -10px oklch(78% 0.18 60/0.4);--gradient-hero:radial-gradient(ellipse at top,oklch(24% 0.06 60/0.35),transparent 60%),linear-gradient(180deg,var(--background),var(--background-deep));--radius:18px;--header-height:6rem}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--background);color:var(--foreground);font-family:Clash Display,ui-sans-serif,system-ui,sans-serif}body.loader-active{overflow:hidden}a{color:inherit;text-decoration:none}img,svg{display:block}button,input,select,textarea{font:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.site-shell{min-height:100vh;background:var(--gradient-hero)}.app-presence{opacity:0;filter:blur(.9rem);transform:scale(.985);transition:opacity .9s cubic-bezier(.22,1,.36,1),filter .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1)}.app-presence--visible{opacity:1;filter:blur(0);transform:scale(1)}.app-presence--visible .hero-name__word{animation:hero-name-arrive 1.78s cubic-bezier(.22,1,.36,1) both}.app-presence--visible .hero-role{animation:hero-role-reveal .9s cubic-bezier(.22,1,.36,1) .48s forwards}.site-loader{position:fixed;inset:0;z-index:120;display:grid;place-items:center;background:radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--primary) 14%,transparent),transparent 28%),#000;pointer-events:none}.site-loader__core{position:relative;display:grid;place-items:center;width:min(68vw,31rem);aspect-ratio:1145/447}.site-loader__glow{position:absolute;inset:22% 18%;background:radial-gradient(circle,color-mix(in srgb,var(--primary) 32%,transparent),transparent 72%);filter:blur(2.5rem);opacity:.8;animation:loader-pulse 1.4s cubic-bezier(.22,1,.36,1) infinite alternate}.site-loader__mark{position:relative;width:100%;height:100%;filter:drop-shadow(0 0 2.2rem color-mix(in srgb,var(--primary) 20%,transparent))}.site-loader__slice{position:absolute;inset:0;transition:transform 1.05s cubic-bezier(.16,1,.3,1),opacity .68s cubic-bezier(.22,1,.36,1),filter 1.05s cubic-bezier(.16,1,.3,1);will-change:transform,opacity,filter}.site-loader__slice--upper{-webkit-clip-path:polygon(0 0,100% 0,100% 49.6%,0 49.6%,0 0);clip-path:polygon(0 0,100% 0,100% 49.6%,0 49.6%,0 0);transform-origin:91% 47%}.site-loader__slice--lower{-webkit-clip-path:polygon(0 100%,100% 100%,100% 50.4%,0 50.4%,0 100%);clip-path:polygon(0 100%,100% 100%,100% 50.4%,0 50.4%,0 100%);transform-origin:91% 53%}.site-loader__image{width:100%;height:100%;object-fit:contain}.site-loader--exit{animation:loader-overlay-fade .6s cubic-bezier(.32,0,.67,0) .74s forwards}.site-loader--exit .site-loader__glow{animation:none;opacity:.55;transform:scale(1.35);transition:opacity .74s cubic-bezier(.16,1,.3,1),transform .98s cubic-bezier(.16,1,.3,1)}.site-loader--exit .site-loader__slice--upper{animation:loader-upper-fracture 1.12s cubic-bezier(.22,1,.36,1) forwards}.site-loader--exit .site-loader__slice--lower{animation:loader-lower-fracture 1.12s cubic-bezier(.22,1,.36,1) forwards}.container{width:min(100%,72rem);margin:0 auto;padding-inline:1.5rem}@media (min-width:48rem){.container{width:min(75vw,96rem)}.stack-block,.stack-carousel{width:100%}.stack-carousel{mask-image:linear-gradient(90deg,transparent,black 6%,black 94%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,black 6%,black 94%,transparent)}.stack-track{animation:stack-marquee 24s linear infinite}.stack-grid{flex-wrap:nowrap;gap:1.15rem;padding-right:1.15rem}.stack-chip{flex:0 0 auto;min-width:clamp(12rem,16vw,15rem);min-height:5rem;padding:1.15rem 1.55rem}.stack-chip__badge{width:3.25rem;height:3.25rem}.stack-chip__badge svg{width:1.65rem;height:1.65rem}.stack-chip__text{font-size:1.08rem}}.page-main{padding-bottom:6rem}.inner-page{padding-block:5rem 6rem}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:40;background:transparent;transform:translateY(0);transition:transform .28s ease;will-change:transform}.site-header--hidden{transform:translateY(calc(-100% - 1rem))}.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:4.5rem;padding-block:.75rem}@media (min-width:48rem){.site-header__inner{width:min(100%,90rem)}}.site-wordmark{flex-shrink:0;display:inline-flex;align-items:center}.site-wordmark__image{width:auto;height:clamp(2.15rem,4.4vw,2.85rem);color:var(--foreground);overflow:visible}.site-footer__credit span{color:var(--primary)}.site-nav-shell{margin-left:0}.site-nav-shell summary{list-style:none}.site-nav-shell summary::-webkit-details-marker{display:none}.site-nav-toggle{display:none;align-items:center;justify-content:center;flex-direction:column;gap:.28rem;width:2rem;height:2rem;padding:0;border:0;background:transparent;color:var(--foreground);cursor:pointer}.site-nav-toggle__line{width:1.5rem;height:2px;border-radius:999px;background:currentColor}.site-nav{display:flex;align-items:center;justify-content:flex-end;gap:1.5rem;flex-wrap:wrap}.site-nav--desktop{margin-left:auto}.site-nav--mobile{display:none}.site-nav__link{font-size:.95rem;font-weight:500;color:var(--muted-foreground);transition:color .2s ease}.site-nav__link--active,.site-nav__link:hover{color:var(--foreground)}.site-nav__actions{display:flex;align-items:center;gap:.5rem}.button,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:.75rem;transition:color .2s ease,border-color .2s ease,background .2s ease,opacity .2s ease,transform .2s ease}.icon-button{width:2.25rem;height:2.25rem;border:1px solid var(--border);background:color-mix(in srgb,var(--muted) 65%,transparent);color:var(--muted-foreground)}.icon-button:hover{border-color:var(--primary);color:var(--primary)}.button svg,.icon-button svg{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.button{border:1px solid transparent;background:var(--primary);color:var(--background);font-size:.95rem;font-weight:600;padding:.8rem 1.15rem}.button:hover{opacity:.92}.button--small{min-height:2.25rem;padding:.55rem .85rem}.button--large{min-height:2.75rem;padding-inline:1.3rem}.hero{min-height:calc(100svh - var(--header-height));display:flex;flex-direction:column;align-items:center;text-align:center;width:100vw;margin-inline:calc(50% - 50vw);padding:2rem 1.5rem}.hero,.hero-name{justify-content:center}.hero-name{--hero-scroll-progress:0;display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:.16em;margin:0;font-size:clamp(4.6rem,13vw,8.5rem);font-weight:600;line-height:.88;letter-spacing:-.05em}.hero-name__word{display:inline-block;opacity:0;will-change:transform,opacity,filter}.hero-name__word-inner{display:inline-block;will-change:transform;transform:translate3d(calc(var(--hero-scroll-progress) * var(--hero-scroll-x, 0em)),calc(var(--hero-scroll-progress) * var(--hero-scroll-y, 0em)),0) rotate(calc(var(--hero-scroll-progress) * var(--hero-scroll-tilt, 0deg)))}.hero-name__word--left{--hero-name-start-x:-0.86em;--hero-name-tilt:-1.25deg;--hero-name-overshoot-1:0.052;--hero-name-overshoot-2:-0.017;--hero-name-recoil-tilt:-0.22;--hero-name-settle-tilt:0.08;--hero-scroll-x:-0.58em;--hero-scroll-y:-0.015em;--hero-scroll-tilt:-0.7deg;transform-origin:92% 54%;animation-duration:1.84s}.hero-name__word--right{--hero-name-start-x:0.74em;--hero-name-tilt:1.9deg;--hero-name-overshoot-1:0.081;--hero-name-overshoot-2:-0.02;--hero-name-recoil-tilt:-0.52;--hero-name-settle-tilt:0.18;--hero-scroll-x:0.72em;--hero-scroll-y:0.028em;--hero-scroll-tilt:1.15deg;transform-origin:8% 46%;animation-duration:1.74s;animation-delay:.04s}.eyebrow,.hero-role,.site-footer__credit,.site-wordmark,.subtle-label,.subtle-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.hero-role{margin-top:1rem;font-size:clamp(.9rem,2vw,1.125rem);letter-spacing:.22em;text-transform:uppercase;color:var(--primary);opacity:0}.typing-text{display:inline-block;overflow:hidden;max-width:calc(15ch + 3.08em);white-space:nowrap;vertical-align:top;border-right:.12em solid;animation:typing-loop 3.6s steps(15) infinite,caret-blink .9s step-end infinite}@keyframes typing-loop{0%,12%{width:0}55%,80%{width:calc(15ch + 3.08em)}to{width:0}}@keyframes caret-blink{0%,70%,to{opacity:1}20%,50%{opacity:0}}@keyframes hero-name-arrive{0%{opacity:0;transform:translate3d(var(--hero-name-start-x),0,0) rotate(calc(var(--hero-name-tilt) * -.28));filter:blur(10px)}53%{opacity:1;transform:translate3d(calc(var(--hero-name-start-x) * -1 * var(--hero-name-overshoot-1)),0,0) rotate(var(--hero-name-tilt));filter:blur(0)}69%{opacity:1;transform:translate3d(calc(var(--hero-name-start-x) * var(--hero-name-overshoot-2)),0,0) rotate(calc(var(--hero-name-tilt) * var(--hero-name-recoil-tilt)));filter:blur(0)}83%{opacity:1;transform:translate3d(calc(var(--hero-name-start-x) * -.006),0,0) rotate(calc(var(--hero-name-tilt) * var(--hero-name-settle-tilt)));filter:blur(0)}to{opacity:1;transform:translateZ(0) rotate(0deg);filter:blur(0)}}@keyframes hero-role-reveal{0%{opacity:0;transform:translate3d(0,.55rem,0)}to{opacity:1;transform:translateZ(0)}}@keyframes stack-marquee{0%{transform:translateX(0)}to{transform:translateX(-50%)}}@keyframes loader-pulse{0%{transform:scale(.9);opacity:.58}to{transform:scale(1.08);opacity:.92}}@keyframes loader-upper-fracture{0%{-webkit-clip-path:polygon(0 0,100% 0,100% 49.6%,0 49.6%,0 0);clip-path:polygon(0 0,100% 0,100% 49.6%,0 49.6%,0 0);transform:translateZ(0) rotate(0deg) scale(1);opacity:1;filter:blur(0)}30%{-webkit-clip-path:polygon(0 0,100% 0,100% 49.6%,72% 49.6%,60% 51.6%,47% 55.2%,33% 52.4%,18% 57.2%,0 60.8%,0 0);clip-path:polygon(0 0,100% 0,100% 49.6%,72% 49.6%,60% 51.6%,47% 55.2%,33% 52.4%,18% 57.2%,0 60.8%,0 0);transform:translate3d(-.4vw,-1.8vh,0) rotate(-.8deg) scale(1.003);opacity:1;filter:blur(0)}68%{-webkit-clip-path:polygon(0 0,100% 0,100% 49.6%,45% 49.6%,34% 53.1%,24% 50.8%,14% 56.4%,0 61.8%,0 0);clip-path:polygon(0 0,100% 0,100% 49.6%,45% 49.6%,34% 53.1%,24% 50.8%,14% 56.4%,0 61.8%,0 0);transform:translate3d(-1vw,-6.8vh,0) rotate(-2.2deg) scale(1.009);opacity:1;filter:blur(.02rem)}to{-webkit-clip-path:polygon(0 0,100% 0,100% 49.6%,0 62.8%,0 0);clip-path:polygon(0 0,100% 0,100% 49.6%,0 62.8%,0 0);transform:translate3d(-1.4vw,-13vh,0) rotate(-4.6deg) scale(1.014);opacity:0;filter:blur(.24rem)}}@keyframes loader-lower-fracture{0%{-webkit-clip-path:polygon(0 100%,100% 100%,100% 50.4%,0 50.4%,0 100%);clip-path:polygon(0 100%,100% 100%,100% 50.4%,0 50.4%,0 100%);transform:translateZ(0) rotate(0deg) scale(1);opacity:1;filter:blur(0)}30%{-webkit-clip-path:polygon(0 100%,100% 100%,100% 50.4%,72% 50.4%,60% 51.6%,47% 55.2%,33% 52.4%,18% 57.2%,0 60.8%,0 100%);clip-path:polygon(0 100%,100% 100%,100% 50.4%,72% 50.4%,60% 51.6%,47% 55.2%,33% 52.4%,18% 57.2%,0 60.8%,0 100%);transform:translate3d(0,.25vh,0) rotate(.12deg) scale(1.001);opacity:1;filter:blur(0)}68%{-webkit-clip-path:polygon(0 100%,100% 100%,100% 50.4%,45% 50.4%,34% 53.1%,24% 50.8%,14% 56.4%,0 61.8%,0 100%);clip-path:polygon(0 100%,100% 100%,100% 50.4%,45% 50.4%,34% 53.1%,24% 50.8%,14% 56.4%,0 61.8%,0 100%);transform:translate3d(.25vw,1vh,0) rotate(.35deg) scale(1.003);opacity:1;filter:blur(.02rem)}to{-webkit-clip-path:polygon(0 100%,100% 100%,100% 50.4%,0 62.8%,0 100%);clip-path:polygon(0 100%,100% 100%,100% 50.4%,0 62.8%,0 100%);transform:translate3d(.5vw,2.2vh,0) rotate(.7deg) scale(1.006);opacity:0;filter:blur(.16rem)}}@keyframes loader-overlay-fade{0%{opacity:1}to{opacity:0}}.resume-section,.section-divider,.work-card{border-top:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.home-section{display:flex;flex-direction:column;gap:4rem;padding-block:5rem 6rem}.about-grid,.intro-grid,.resume-section{display:grid;grid-gap:2.5rem;gap:2.5rem}.image-card,.panel-card,.resume-skill-card,.stack-chip,.video-frame{border:1px solid var(--border);background:color-mix(in srgb,var(--card) 88%,transparent)}.image-card{position:relative;overflow:hidden;border-radius:var(--radius);box-shadow:var(--shadow-glow)}.image-card--tall{min-height:28rem}.about-sidebar .image-card,.intro-image-wrap .image-card{box-shadow:none}.cover-image{width:100%;height:100%;object-fit:cover}.image-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--background) 65%,transparent))}.image-overlay--strong{background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--background) 82%,transparent))}.eyebrow,.subtle-label{color:var(--primary);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase}.eyebrow{margin-bottom:.9rem}.eyebrow--small{font-size:.7rem}.subtle-label{color:var(--muted-foreground)}.subtle-label--bright{margin-bottom:.6rem;color:var(--foreground)}.subtle-label--spaced{margin-top:1.2rem}.page-title,.panel-card__title,.resume-section__title,.section-headline,.section-title,.work-card__title{margin:0;letter-spacing:-.04em}.page-title,.section-headline{font-size:clamp(2.4rem,5vw,4rem);font-weight:600}.page-title{margin-bottom:2rem}.page-title--compact{margin-bottom:0}.resume-section__title,.section-title{font-size:clamp(1.75rem,3vw,2.25rem);font-weight:600}.panel-card__body,.rich-copy,.supporting-copy,.work-card__description{color:var(--muted-foreground);line-height:1.7}.rich-copy{display:grid;grid-gap:1.25rem;gap:1.25rem}.intro-copy--animated{position:relative}.intro-copy__body{display:grid;grid-gap:1.5rem;gap:1.5rem}.intro-copy__accent{width:clamp(4.5rem,11vw,8rem);height:1px;margin-bottom:1.6rem;background:linear-gradient(90deg,color-mix(in srgb,var(--primary) 18%,transparent) 0,color-mix(in srgb,var(--primary) 82%,transparent) 52%,color-mix(in srgb,var(--foreground) 16%,transparent) 100%);box-shadow:0 0 22px color-mix(in srgb,var(--primary) 18%,transparent),0 0 1px color-mix(in srgb,var(--foreground) 22%,transparent)}.intro-copy__body .section-headline{text-wrap:balance}.intro-copy__body .rich-copy{max-width:42rem}.intro-copy__cta{display:inline-flex;align-items:center;gap:.85rem;width:-moz-fit-content;width:fit-content;color:var(--foreground);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.92rem;letter-spacing:.08em;text-transform:uppercase;transition:color .25s ease,transform .25s ease}.intro-copy__cta:hover{color:var(--primary);transform:translateX(.2rem)}.intro-copy__cta-arrow{position:relative;display:inline-grid;place-items:center;width:1.5rem;height:1rem;overflow:hidden}.intro-copy__cta-arrow-main,.intro-copy__cta-arrow-trail{grid-area:1/1;display:inline-block;transition:transform .45s cubic-bezier(.22,1,.36,1),opacity .3s ease}.intro-copy__cta-arrow-main{transform:translateX(0)}.intro-copy__cta-arrow-trail{opacity:0;transform:translateX(-.8rem)}.intro-copy__cta:hover .intro-copy__cta-arrow-main{transform:translateX(.9rem);opacity:0}.intro-copy__cta:hover .intro-copy__cta-arrow-trail{transform:translateX(0);opacity:1}.rich-copy--large,.supporting-copy--large{font-size:1.05rem}.stack-block{display:grid;grid-gap:1rem;gap:1rem}.stack-carousel{position:relative;overflow:hidden}.stack-track{display:flex;width:max-content}.stack-grid{display:flex;flex-wrap:wrap;gap:1rem;padding-right:1rem}.stack-chip{display:inline-flex;align-items:center;gap:.95rem;min-height:4.25rem;border-radius:1.2rem;padding:1rem 1.3rem}.stack-chip[aria-hidden=true]{display:none}.stack-chip__badge{display:inline-flex;align-items:center;justify-content:center;width:2.9rem;height:2.9rem;border-radius:.8rem;background:color-mix(in srgb,var(--primary) 10%,transparent);color:var(--foreground);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary) 18%,transparent);flex:0 0 auto}.stack-chip__badge svg{width:1.45rem;height:1.45rem;fill:currentColor}.stack-chip__text{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:1rem;font-weight:600;letter-spacing:-.02em}.section-row{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem}.section-meta,.site-footer__credit,.site-footer__link,.site-footer__list,.site-footer__minor,.subtle-mono,.work-card__meta{color:var(--muted-foreground);font-size:.85rem}.work-card,.work-list{display:grid}.work-card{grid-gap:2rem;gap:2rem;padding-block:4rem}.video-frame{position:relative;overflow:hidden;border-radius:calc(var(--radius) - 2px);aspect-ratio:16/9;box-shadow:0 22px 50px rgba(0,0,0,.34)}.video-frame__embed{position:absolute;inset:0;width:100%;height:100%;border:0}.work-card__content{display:grid;align-content:start;min-width:0}.work-card__meta{margin-bottom:.8rem;color:var(--primary);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.work-card__title{font-size:clamp(2rem,4vw,2.6rem);font-weight:600;margin-bottom:1rem}.pill-cloud,.work-card__tags{display:flex;flex-wrap:wrap;gap:.5rem}.pill,.tag{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--muted) 65%,transparent)}.tag{padding:.35rem .65rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-foreground)}.pill{padding:.55rem 1rem;color:var(--foreground)}.about-sticky{position:-webkit-sticky;position:sticky;top:7rem}.resume-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;margin-bottom:1rem}.resume-section{padding-block:3rem}.resume-section__header{display:grid;grid-gap:.4rem;gap:.4rem}.resume-section__content{min-width:0}.resume-skill-grid,.site-footer__list,.stack-list{list-style:none;padding:0;margin:0}.stack-list{display:grid;grid-gap:1.5rem;gap:1.5rem}.panel-card{border-radius:var(--radius);padding:1.25rem}.panel-card__title{margin-top:.35rem;font-size:1.15rem;font-weight:600}.panel-card__meta{margin-top:.2rem;color:var(--muted-foreground);font-size:.95rem}.panel-card__body{margin:.75rem 0 0;font-size:.95rem}.resume-skill-grid{display:grid;grid-gap:1rem;gap:1rem}.resume-skill-card{border-radius:1rem;padding:1rem}.resume-skill-card__row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.7rem}.resume-skill-card__name{font-weight:500}.skill-bar{display:flex;gap:.25rem}.skill-bar__item{width:1.5rem;height:.38rem;border-radius:999px;background:var(--muted)}.skill-bar__item--active{background:var(--primary);box-shadow:0 0 6px color-mix(in srgb,var(--primary) 60%,transparent)}.site-footer{border-top:1px solid color-mix(in srgb,var(--border) 70%,transparent);padding-block:3.25rem 2.6rem}.site-footer__wave{display:flex;align-items:flex-end;gap:.35rem;width:-moz-fit-content;width:fit-content;margin-bottom:1.35rem;padding:.4rem .1rem}.site-footer__wave-bar{width:.24rem;height:1.15rem;border-radius:999px;background:linear-gradient(180deg,color-mix(in srgb,var(--primary) 85%,white 8%),color-mix(in srgb,var(--primary) 24%,transparent));opacity:.5;transform:scaleY(var(--wave-scale,1));transform-origin:center bottom;box-shadow:0 0 12px color-mix(in srgb,var(--primary) 16%,transparent)}.site-footer__cta,.site-footer__lead{display:grid;grid-gap:.7rem;gap:.7rem;max-width:44rem}.site-footer__lead{margin-bottom:1.6rem}.site-footer__name{margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.92rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--foreground)}.site-footer__availability,.site-footer__credit,.site-footer__cta-copy,.site-footer__cta-title,.site-footer__legal,.site-footer__summary{margin:0}.site-footer__summary{font-size:1rem;line-height:1.7;color:var(--foreground);text-wrap:balance}.site-footer__availability{color:var(--muted-foreground);font-size:.94rem}.site-footer__cta{margin-bottom:1.8rem}.site-footer__cta-title{font-size:1rem;line-height:1.6;color:var(--foreground)}.site-footer__cta-copy{color:var(--muted-foreground);font-size:.9rem}.site-footer__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:2rem}.site-footer__action{display:inline-flex;align-items:center;min-height:2.6rem;padding:.72rem 1rem;border:1px solid color-mix(in srgb,var(--border) 88%,transparent);border-radius:999px;background:color-mix(in srgb,var(--card) 82%,transparent);color:var(--foreground);font-size:.88rem;font-weight:500;transition:border-color .2s ease,background .2s ease,color .2s ease,transform .2s ease}.site-footer__action:hover{border-color:color-mix(in srgb,var(--primary) 60%,var(--border));background:color-mix(in srgb,var(--primary) 10%,var(--card));color:var(--primary);transform:translateY(-1px)}.site-footer__meta{display:flex;flex-direction:column;gap:.55rem;padding-top:1.2rem;border-top:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.site-footer__legal{color:var(--muted-foreground);font-size:.76rem;line-height:1.6}.site-footer__credit{color:color-mix(in srgb,var(--muted-foreground) 86%,var(--foreground));font-size:.76rem}.site-footer__credit span{color:inherit}.not-found{display:grid;place-items:center;min-height:calc(100vh - 9rem)}.not-found__inner{max-width:24rem;text-align:center}.not-found__code{margin:0;font-size:clamp(4rem,12vw,7rem);font-weight:700}.not-found__title{margin:1rem 0 .5rem;font-size:1.4rem;font-weight:600}@media (min-width:48rem){.hero-name{font-size:clamp(5.5rem,10vw,9.5rem)}.about-grid,.intro-grid,.resume-section,.work-card{grid-template-columns:repeat(12,minmax(0,1fr))}.about-sidebar,.intro-image-wrap,.resume-section__header,.work-card__content{grid-column:span 5}.about-content,.intro-copy,.resume-section__content,.work-card__media{grid-column:span 7}.work-card{align-items:center}.work-card--reverse .work-card__content{order:1;padding-right:1rem}.work-card--reverse .work-card__media{order:2}.work-card:not(.work-card--reverse) .work-card__content{padding-left:1rem}.resume-skill-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer__cta-title,.site-footer__summary{font-size:1.04rem}.site-footer__actions{gap:.9rem}.site-footer__meta{align-items:baseline;justify-content:space-between;flex-direction:row;gap:1.5rem}}@media (max-width:47.99rem){.site-header__inner{align-items:center}.site-nav--desktop{display:none}.site-nav-shell{position:static;margin-left:auto}.site-nav-toggle{display:inline-flex;position:relative;z-index:61}.site-nav--mobile{position:fixed;top:4.5rem;left:0;right:0;z-index:60;display:none;width:100%;min-height:34svh;max-height:40svh;padding:1.35rem 1.5rem 1.5rem;overflow-y:auto;border-top:1px solid color-mix(in srgb,var(--border) 84%,black);border-bottom:1px solid color-mix(in srgb,var(--border) 92%,black);border-left:0;border-right:0;border-radius:0;background:transparent;box-shadow:0 1.5rem 3rem rgba(0,0,0,.42);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);align-items:stretch;justify-content:flex-start;flex-direction:column;gap:.45rem;flex-wrap:nowrap}.site-nav-shell[open] .site-nav--mobile{display:flex}.site-nav__link{width:100%;padding:.55rem 0;font-size:1.45rem;line-height:1.1}.hero{min-height:calc(100svh - var(--header-height))}.stack-carousel{mask-image:linear-gradient(90deg,transparent,black 10%,black 90%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,black 10%,black 90%,transparent)}.stack-track{animation:stack-marquee 20s linear infinite}.stack-grid{width:max-content;flex-wrap:nowrap;gap:.85rem;padding-right:.85rem}.stack-chip{flex:0 0 auto}.section-row{align-items:flex-start;flex-direction:column}.image-card--tall{min-height:20rem}}@media (max-width:40rem){.site-loader__core{width:min(82vw,22rem)}.site-loader--exit .site-loader__slice--upper{animation:loader-upper-fracture 1.12s cubic-bezier(.22,1,.36,1) forwards}.site-loader--exit .site-loader__slice--lower{animation:loader-lower-fracture 1.12s cubic-bezier(.22,1,.36,1) forwards}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.app-presence{opacity:1;filter:none;transform:none;transition:none}.hero-name__word,.hero-name__word-inner,.hero-role,.site-loader,.site-loader__glow,.site-loader__slice,.stack-track,.typing-text{animation:none!important;transition:none!important;opacity:1;transform:none;filter:none}.hero-name__word,.hero-name__word-inner,.hero-role,.typing-text{width:auto;border-right:0}.site-loader{display:none}*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}