#hdr{background:#fff}#hdr.solid{background:rgba(255,255,255,.97);box-shadow:0 6px 24px rgba(11,18,32,.12)}
.grid-bg{background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:56px 56px;mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%)}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}
.card{transition:transform .35s ease,box-shadow .35s ease}.card:hover{transform:translateY(-6px);box-shadow:0 20px 40px rgba(11,18,32,.18)}
.navlink{position:relative}.navlink:after{content:"";position:absolute;left:0;bottom:-4px;height:2px;width:0;background:#f5b942;transition:width .3s}.navlink:hover:after{width:100%}
@keyframes floaty{50%{transform:translateY(-14px)}}.float-slow{animation:floaty 9s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.float-slow{animation:none}}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.12)}}.kenburns{animation:kb 18s ease-out infinite alternate}
@keyframes mq{to{transform:translateX(-50%)}}.marquee{animation:mq 40s linear infinite}.marquee:hover{animation-play-state:paused}
.proj.hide{display:none}#lb.open{display:flex}
@media(prefers-reduced-motion:reduce){.kenburns,.marquee{animation:none}}
