/* Lightweight motion: transforms and opacity, no animation dependencies. */
.hero h1 .line{display:block;overflow:hidden;padding-bottom:.09em;margin-bottom:-.09em}.hero h1 .line>span{display:block;animation:line-in 1s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--i)*.11s)}.hero .eyebrow{animation:fade-in .8s both}.hero-bottom{animation:fade-in .9s .45s both}.asterisk{animation:star-turn 22s linear infinite;transform-origin:center;will-change:transform}.hero{overflow:hidden}.hero h1{isolation:isolate}.hero h1 .line{position:relative;z-index:1}.asterisk{z-index:-1}
@keyframes line-in{from{transform:translateY(110%) rotate(3deg);opacity:0}to{transform:translateY(0) rotate(0);opacity:1}}@keyframes fade-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes star-turn{from{transform:rotate(-14deg)}to{transform:rotate(346deg)}}
.motion-band{background:var(--blue);color:white;overflow:hidden;padding:24px 0;position:relative}.marquee-track{display:flex;width:max-content;animation:marquee 30s linear infinite}.marquee-group{display:flex;align-items:center;gap:35px;padding-right:35px;font-size:clamp(30px,3.6vw,54px);letter-spacing:-1.5px;font-weight:700;white-space:nowrap}.marquee-group em{font-weight:400}.marquee-group .symbol{font-size:36px;color:#c7ff88}.motion-toggle{position:absolute;right:14px;bottom:8px;width:30px;height:30px;border:1px solid #ffffff80;border-radius:50%;background:var(--blue);color:white;font-size:11px;z-index:2}.motion-band.paused .marquee-track{animation-play-state:paused}@keyframes marquee{to{transform:translateX(-50%)}}
.motion-ready .reveal{opacity:0;transform:translateY(36px);transition:opacity .75s cubic-bezier(.2,.7,.2,1),transform .75s cubic-bezier(.2,.7,.2,1);transition-delay:var(--delay,0ms)}.motion-ready .reveal.is-visible{opacity:1;transform:translateY(0)}.motion-ready .reveal:focus-within{opacity:1;transform:none}.art img{transform:translate3d(var(--mx,0px),var(--my,0px),0) rotate(var(--tilt,0deg));transition:transform .5s cubic-bezier(.16,1,.3,1);will-change:transform}.project:hover .art img{transform:translate3d(var(--mx,0px),var(--my,0px),0) rotate(var(--tilt,-4deg)) scale(1.09)}.art .open-arrow{transition:background .25s,color .25s,transform .3s}.project:hover .open-arrow{background:var(--paper);color:var(--ink);transform:rotate(45deg)}.project-caption h3{transition:color .2s}.project:hover h3{color:var(--blue)}nav a{position:relative}nav a:after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:1px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .25s}nav a:hover:after{transform:scaleX(1)}header{transition:height .3s,box-shadow .3s}header.scrolled{height:72px;box-shadow:0 3px 16px #00000008}.button{transition:transform .25s,box-shadow .25s}.button:hover{box-shadow:0 7px 20px #00000015}.service-list summary b{transition:transform .3s}details[open] summary b{transform:rotate(45deg)}details[open] p,details[open] .tags{animation:fade-in .35s both}dialog[open]{animation:dialog-in .35s cubic-bezier(.16,1,.3,1)}@keyframes dialog-in{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:none}}
.scroll-progress{height:2px;background:var(--blue);position:fixed;top:0;left:0;width:100%;transform:scaleX(0);transform-origin:left;z-index:20;pointer-events:none}.hero .asterisk{color:var(--blue)}
@media(max-width:800px){.marquee-group{gap:22px;padding-right:22px;letter-spacing:-1px}.motion-band{padding:20px 0}.asterisk{animation-duration:28s}.motion-ready .reveal{transform:translateY(22px)}header.scrolled{height:64px}}
@media(prefers-reduced-motion:reduce){.hero h1 .line>span,.hero .eyebrow,.hero-bottom,.asterisk,.marquee-track,details[open] p,details[open] .tags,dialog[open]{animation:none!important}.motion-ready .reveal{opacity:1!important;transform:none!important;transition:none!important}.motion-toggle{display:none}.art img{transform:none!important;will-change:auto}.marquee-track{width:100%}.marquee-group{font-size:18px;flex-wrap:wrap;white-space:normal;padding:0 20px;gap:12px}.marquee-group[aria-hidden]{display:none}}
