@property --level{syntax:"<angle>";inherits:false;initial-value:0deg}:root{--desk-ease:cubic-bezier(.22,1,.36,1);--desk-x:50%;--desk-y:30%}body:after{position:fixed;z-index:0;top:0;left:0;width:560px;height:560px;border-radius:50%;pointer-events:none;content:"";background:radial-gradient(circle,rgba(202,161,86,.055),transparent 68%);opacity:.8;transform:translate3d(calc(var(--desk-cursor-x,50vw) - 280px),calc(var(--desk-cursor-y,30vh) - 280px),0);transition:opacity .4s;will-change:transform}.header{top:0;transition:top .55s var(--desk-ease),padding .4s}.header.desktop-hidden{top:-105px}.header-inner{position:relative;overflow:hidden;animation:desktopHeaderIn .85s .08s var(--desk-ease) both}.header-inner:after{position:absolute;top:-90%;left:-35%;width:24%;height:280%;pointer-events:none;content:"";background:linear-gradient(90deg,transparent,rgba(255,235,190,.08),transparent);transform:rotate(16deg);animation:desktopHeaderShine 9s 1.8s ease-in-out infinite}.identity,.desktop-nav,.header-cta{position:relative;z-index:1}.desktop-nav a.active{background:rgba(200,161,90,.08);color:var(--gold-soft)}.desktop-nav a.active:before{right:12px;left:12px}.identity{animation:desktopFadeLeft .75s .18s var(--desk-ease) both}.desktop-nav{animation:desktopFadeDown .75s .28s var(--desk-ease) both}.header-cta{animation:desktopFadeRight .75s .36s var(--desk-ease) both}
.hero:before{position:absolute;z-index:1;inset:0;pointer-events:none;content:"";background:radial-gradient(circle 430px at var(--desk-hero-x,72%) var(--desk-hero-y,28%),rgba(224,180,93,.1),transparent 72%);transition:background-position .15s}.hero .eyebrow{animation:desktopRise .85s .22s var(--desk-ease) both}.hero h1 b{opacity:0;filter:blur(6px);animation:desktopLetter 1s calc(.28s + var(--i)*.055s) var(--desk-ease) forwards!important}.hero-copy>h2{animation:desktopRise .9s .72s var(--desk-ease) both}.hero-subtitle{animation:desktopRise .9s .83s var(--desk-ease) both}.hero-description p:first-child{animation:desktopRise .9s .94s var(--desk-ease) both}.hero-description p:last-child{animation:desktopRise .9s 1.04s var(--desk-ease) both}.hero-buttons{animation:desktopRise .9s 1.12s var(--desk-ease) both}.metrics{animation:desktopRise .9s 1.22s var(--desk-ease) both}.hero-image-wrap{animation:desktopPortraitIn 1.15s .35s var(--desk-ease) both}.hero-image-wrap:before,.hero-image-wrap:after{position:absolute;z-index:-1;top:50%;left:50%;border:1px solid rgba(200,161,90,.13);border-radius:50%;pointer-events:none;content:""}.hero-image-wrap:before{width:112%;aspect-ratio:1;transform:translate(-50%,-50%);animation:desktopOrbit 22s linear infinite}.hero-image-wrap:after{width:96%;aspect-ratio:1;border-style:dashed;transform:translate(-50%,-50%);animation:desktopOrbitReverse 30s linear infinite}.hero-image{will-change:transform}.portrait-glow{will-change:transform,opacity}.scroll-cue{animation:desktopCueIn .8s 1.35s var(--desk-ease) both}.particle:nth-of-type(3n){animation-duration:9s}.particle:nth-of-type(4n){animation-delay:-3s}
[data-reveal]{filter:blur(8px);transform:translateY(36px) scale(.99);transition:opacity .9s,filter .9s,transform .9s var(--desk-ease)}[data-reveal].visible{filter:none;transform:none}.section-title.visible .section-label i{animation:desktopLineGrow 1s .15s var(--desk-ease) both}.section-title.visible h2{animation:desktopHeadingSettle .95s var(--desk-ease) both}.desktop-motion{opacity:0;filter:blur(8px);transform:translateY(34px);transition:opacity .95s,filter .95s,transform .95s var(--desk-ease)}.desktop-motion.desktop-inview{opacity:1;filter:none;transform:none}.about-photo{transition:transform .7s var(--desk-ease),box-shadow .7s}.about-photo img{transition:transform 1s var(--desk-ease),filter .7s}.about-photo:hover{box-shadow:0 38px 90px rgba(0,0,0,.35);transform:translateY(-8px)}.about-photo:hover img{transform:scale(1.035)}.experience-line:before,.education-line:before{transform:scaleY(0);transform-origin:top;transition:transform 1.45s .15s var(--desk-ease)}.experience-line.desktop-inview:before,.education-line.desktop-inview:before{transform:scaleY(1)}.experience-item,.education-line article{transition-delay:calc(var(--desktop-index,0)*.07s)}.experience-card{position:relative;overflow:hidden}.experience-card:after{position:absolute;inset:0;pointer-events:none;content:"";background:linear-gradient(115deg,transparent 30%,rgba(255,235,190,.045),transparent 70%);transform:translateX(-110%);transition:transform .8s}.experience-card:hover:after{transform:translateX(110%)}.skill-ring{transition:--level 1.35s .1s var(--desk-ease),transform .45s var(--desk-ease)}.skill-card:hover .skill-ring{transform:rotate(8deg) scale(1.04)}.skill-card:after{position:absolute;right:-40%;bottom:-45%;width:190px;height:190px;border-radius:50%;content:"";background:radial-gradient(circle,rgba(200,161,90,.13),transparent 68%);opacity:0;transition:.5s}.skill-card:hover:after{opacity:1;transform:translate(-25px,-25px)}.achievement-band article{transition:background .4s,transform .4s var(--desk-ease)}.achievement-band article:hover{position:relative;z-index:2;background:#10161a;transform:translateY(-7px)}.gallery-stage{transition:box-shadow .6s var(--desk-ease),transform .6s var(--desk-ease)}.gallery-stage img{transform:translate3d(0,var(--gallery-y,0),0) scale(1.045);transition:opacity .25s,transform .8s var(--desk-ease)}.gallery-stage:hover{box-shadow:0 45px 100px rgba(0,0,0,.38);transform:translateY(-5px)}.gallery-stage:hover img{transform:translate3d(0,var(--gallery-y,0),0) scale(1.07)}.gallery-thumbs button{transition:opacity .3s,transform .35s var(--desk-ease),border-color .3s}.gallery-thumbs button:hover{opacity:1;transform:translateY(-5px)}.contact-shell{transition:box-shadow .7s var(--desk-ease),border-color .7s}.contact-shell.desktop-inview{box-shadow:0 55px 120px rgba(0,0,0,.34);border-color:rgba(200,161,90,.16)}.button,.header-cta,.gallery-head button{isolation:isolate}.desktop-ripple{position:absolute;z-index:-1;width:18px;height:18px;border-radius:50%;pointer-events:none;background:rgba(255,255,255,.28);transform:translate(-50%,-50%) scale(0);animation:desktopRipple .75s ease-out forwards}
@media(max-width:1180px){body:after{display:none}.hero h1 b{animation-delay:calc(.2s + var(--i)*.04s)!important}.hero-image-wrap:before,.hero-image-wrap:after{display:none}}@media(prefers-reduced-motion:reduce){body:after{display:none}.header-inner,.header-inner:after,.identity,.desktop-nav,.header-cta,.hero .eyebrow,.hero h1 b,.hero-copy>h2,.hero-subtitle,.hero-description p,.hero-buttons,.metrics,.hero-image-wrap,.hero-image-wrap:before,.hero-image-wrap:after,.scroll-cue{animation:none!important;opacity:1;filter:none;transform:none}.desktop-motion,[data-reveal]{opacity:1;filter:none;transform:none}.experience-line:before,.education-line:before{transform:scaleY(1)}}
@keyframes desktopHeaderIn{from{opacity:0;transform:translateY(-24px) scale(.99)}to{opacity:1;transform:none}}@keyframes desktopHeaderShine{0%,68%{left:-35%}84%,100%{left:125%}}@keyframes desktopFadeLeft{from{opacity:0;transform:translateX(-18px)}to{opacity:1;transform:none}}@keyframes desktopFadeRight{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}@keyframes desktopFadeDown{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}@keyframes desktopRise{from{opacity:0;filter:blur(7px);transform:translateY(24px)}to{opacity:1;filter:none;transform:none}}@keyframes desktopLetter{from{opacity:0;filter:blur(7px);transform:translateY(115%) rotate(2deg)}to{opacity:1;filter:none;transform:none}}@keyframes desktopPortraitIn{from{opacity:0;filter:blur(12px);transform:translateX(55px) scale(.93)}to{opacity:1;filter:none;transform:none}}@keyframes desktopCueIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes desktopOrbit{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes desktopOrbitReverse{to{transform:translate(-50%,-50%) rotate(-360deg)}}@keyframes desktopLineGrow{from{transform:scaleX(0);transform-origin:left}to{transform:scaleX(1);transform-origin:left}}@keyframes desktopHeadingSettle{from{letter-spacing:-.055em;opacity:.4}to{letter-spacing:-.035em;opacity:1}}@keyframes desktopRipple{to{opacity:0;transform:translate(-50%,-50%) scale(22)}}

.button,.header-cta,.gallery-head button{position:relative;overflow:hidden}.desktop-ripple{z-index:0}
