:root{--mx:50vw;--my:30vh;--scroll:0}.scrollProgress{position:fixed;z-index:1000;left:0;top:0;width:100%;height:3px;background:linear-gradient(90deg,#fff,#8fc8f4);transform:scaleX(var(--scroll));transform-origin:left;box-shadow:0 0 18px rgba(143,200,244,.7);pointer-events:none}.cursorGlow{position:fixed;z-index:2;inset:0;pointer-events:none;background:radial-gradient(420px circle at var(--mx) var(--my),rgba(255,255,255,.075),transparent 63%);mix-blend-mode:screen}.cursorRing{position:fixed;z-index:1001;width:26px;height:26px;border:1px solid rgba(255,255,255,.72);border-radius:50%;left:0;top:0;transform:translate3d(calc(var(--mx) - 13px),calc(var(--my) - 13px),0);pointer-events:none;transition:width .25s,height .25s,border-color .25s,opacity .25s;mix-blend-mode:difference}.cursorRing.isHovering{width:48px;height:48px;border-color:#fff}.projectPanel{transform-style:preserve-3d;will-change:transform,opacity;transition:transform .22s ease-out,box-shadow .5s ease}.projectPanel:hover{box-shadow:0 42px 90px rgba(0,0,0,.58),0 0 0 1px rgba(255,255,255,.08),inset 0 0 120px rgba(255,255,255,.025)}.motionReveal{opacity:0;transform:translateY(75px) scale(.975);filter:blur(8px);transition:opacity 1s cubic-bezier(.2,.75,.2,1),transform 1s cubic-bezier(.2,.75,.2,1),filter 1s ease}.motionReveal.isVisible{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}.metricDeck article,.reachDeck article,.panelMetricRow strong,.serviceList article{transition:transform .45s cubic-bezier(.2,.8,.2,1),background .35s ease,color .35s ease,box-shadow .35s ease}.metricDeck article:hover,.reachDeck article:hover{transform:translateY(-9px);z-index:2;box-shadow:0 22px 40px rgba(0,0,0,.3)}.analyticsTriptych figure{transition:transform .6s cubic-bezier(.2,.8,.2,1),opacity .5s ease,filter .5s ease}.analyticsTriptych:hover figure:first-child{transform:translateX(4px) rotateY(2deg) rotate(-4deg)}.analyticsTriptych:hover figure:nth-child(2){transform:translateY(-24px) scale(1.035)}.analyticsTriptych:hover figure:last-child{transform:translateX(-4px) rotateY(-2deg) rotate(4deg)}.heroCenter h1{animation:titleFloat 6s ease-in-out infinite;text-shadow:0 18px 50px rgba(255,255,255,.08)}.heroCenter img{animation:avatarFloat 5s ease-in-out infinite}.projectPanel nav a,.heroFoot a,.contactPanel footer a,.endMark a{position:relative;transition:color .25s ease,transform .25s ease}.projectPanel nav a:after,.heroFoot a:after,.contactPanel footer a:after,.endMark a:after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:1px;background:#fff;transform:scaleX(0);transform-origin:right;transition:transform .35s ease}.projectPanel nav a:hover:after,.heroFoot a:hover:after,.contactPanel footer a:hover:after,.endMark a:hover:after{transform:scaleX(1);transform-origin:left}.panelIndex{animation:indexPulse 3s ease-in-out infinite}.portfolioCanvas:before{content:"";position:fixed;inset:-20%;pointer-events:none;background:conic-gradient(from 90deg at 50% 50%,transparent,#ffffff08,transparent 30%);animation:ambientSpin 26s linear infinite}.isLoaded .heroPanel{animation:heroIn 1.25s cubic-bezier(.2,.75,.2,1) both}.isLoaded .editorialHeader{animation:fadeDown .9s .2s both}.isLoaded .sideLabel{animation:fadeIn 1s .7s both}@keyframes heroIn{from{opacity:0;transform:translateY(40px) scale(.97);filter:blur(10px)}to{opacity:1;transform:none;filter:none}}@keyframes fadeDown{from{opacity:0;transform:translateY(-18px)}to{opacity:1;transform:none}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes titleFloat{50%{transform:translateY(-7px);letter-spacing:-.055em}}@keyframes avatarFloat{50%{transform:translateY(-9px);box-shadow:0 18px 30px rgba(0,0,0,.38)}}@keyframes indexPulse{50%{opacity:.35}}@keyframes ambientSpin{to{transform:rotate(360deg)}}@media(pointer:coarse){.cursorGlow,.cursorRing{display:none}}@media(max-width:800px){.motionReveal{transform:translateY(38px)}.analyticsTriptych:hover figure{transform:none!important}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cursorGlow,.cursorRing,.scrollProgress{display:none}*,*:before,*:after{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.motionReveal{opacity:1;transform:none;filter:none}}
