/* Motion enhances visible content; the page remains readable without JavaScript. */
body{position:relative}.hero{position:relative}.hero::before{content:'';position:absolute;z-index:-1;width:70%;height:90%;right:-2%;top:0;background:radial-gradient(ellipse at center,rgba(72,112,192,.12),transparent 67%);pointer-events:none}.hero-copy{position:relative}.site-header{position:relative}.site-header nav a{position:relative;transition:color .2s}.site-header nav a::after{content:'';position:absolute;bottom:-9px;left:0;right:0;height:2px;background:#91abe0;transform:scaleX(0);transform-origin:left;transition:transform .25s}.site-header nav a:hover,.site-header nav a[aria-current]{color:#e5edfb;text-decoration:none}.site-header nav a:hover::after,.site-header nav a[aria-current]::after{transform:scaleX(1)}.reading-progress{position:fixed;left:0;top:0;right:0;height:2px;background:#93b5f2;z-index:100;transform:scaleX(0);transform-origin:left;box-shadow:0 0 10px #6e99e566;pointer-events:none}.motion-ready .hero-copy{animation:hero-enter .85s cubic-bezier(.2,.7,.2,1) both}.motion-ready .hero-window{animation:window-enter 1s .12s cubic-bezier(.2,.7,.2,1) both}.hero-window{transform:perspective(1200px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,-3deg));transition:transform .3s ease,border-color .3s,box-shadow .3s}.hero-window:hover{border-color:#647da6;box-shadow:0 25px 80px #0006,0 0 45px #7395ce12}.hero-window>img{filter:saturate(.8);transition:filter .5s}.hero-window:hover>img{filter:saturate(1)}.reveal{opacity:1;transform:none}.motion-ready .reveal:not(.is-visible){opacity:0;transform:translateY(22px)}.motion-ready .reveal{transition:opacity .65s ease var(--reveal-delay,0ms),transform .65s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms),border-color .3s,box-shadow .3s}.study,.product-primary,.product-card{position:relative;isolation:isolate}.study::after,.product-primary::after,.product-card::after{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:inherit;background:radial-gradient(350px circle at var(--spot-x,50%) var(--spot-y,50%),#adcaff0b,transparent 70%);opacity:0;transition:opacity .35s}.study:hover::after,.product-primary:hover::after,.product-card:hover::after{opacity:1}.study:hover,.product-primary:hover{border-color:#536782;box-shadow:0 12px 35px #0002}.product-image img{transition:transform .6s cubic-bezier(.2,.7,.2,1),filter .6s}.product-image:hover img{transform:scale(1.035);filter:saturate(1)}.button{position:relative;overflow:hidden;transition:background .25s,transform .25s,box-shadow .25s}.button::before{content:'';position:absolute;inset:0;transform:translateX(-150%) skewX(-20deg);background:linear-gradient(90deg,transparent,#ffffff55,transparent);width:70%;pointer-events:none}.button:hover{transform:translateY(-2px);box-shadow:0 8px 25px #90abe01c}.button:hover::before{animation:button-sheen .65s ease}.button:active{transform:translateY(0)}.button>span,.text-link>span{display:inline-block;transition:transform .25s}.button:hover>span{transform:translateY(3px)}.text-link:hover>span{transform:translate(2px,-2px)}.tool{transition:background .25s,padding .25s}.tool:hover{padding-left:22px;padding-right:22px}.tool-icon{transition:background .25s,border-color .25s,transform .25s}.tool:hover .tool-icon{background:#233047;border-color:#627b9f;transform:rotate(-4deg)}.ticks i{position:relative;opacity:.45}.schedule.is-playing .ticks i{animation:memory-pulse 4.8s ease-in-out infinite}.schedule.is-playing .massed i{animation-delay:calc(var(--tick,0) * .13s)}.schedule.is-playing .spaced i{animation-delay:calc(var(--tick,0) * .65s)}.ticks i:nth-child(2){--tick:1}.ticks i:nth-child(3){--tick:2}.ticks i:nth-child(4){--tick:3}.ticks i:nth-child(5){--tick:4}.schedule small{display:block}.window-bar>span:first-child{color:#8298bc}.window-bar>span:last-child::before{content:'';display:inline-block;width:5px;height:5px;margin-right:8px;border-radius:50%;background:#9fb9e5;box-shadow:0 0 9px #9fb9e544}.study details[open] p{animation:detail-enter .3s ease}.contact-link{transition:color .25s}.contact-link:hover{color:#e0ebff}.work-index a{transition:color .2s}.work-index a:hover{color:#a9c4f7}
@keyframes hero-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes window-enter{from{opacity:0;translate:0 24px}to{opacity:1;translate:0 0}}@keyframes button-sheen{to{transform:translateX(250%) skewX(-20deg)}}@keyframes memory-pulse{0%,60%,100%{opacity:.4;box-shadow:none}12%,24%{opacity:1;box-shadow:0 0 12px #9fbcf255}}@keyframes detail-enter{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
@media(hover:none){.tool:hover{padding-left:0;padding-right:0}.hero-window{transform:none}.study::after,.product-primary::after,.product-card::after{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.motion-ready .reveal:not(.is-visible){opacity:1;transform:none}.hero-window{transform:none}.ticks i{opacity:1}}
