/* Light stays inside its own layer so the mobile menu can open freely. */
.nav-shell{isolation:isolate}
.header-light{position:absolute;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none;z-index:-1}
.header-light i{position:absolute;inset:-100% -30%;background:radial-gradient(ellipse at 30% 50%,#d4f1ff38,transparent 36%);animation:header-drift 19s ease-in-out infinite alternate}
.header-light i+i{background:radial-gradient(ellipse at 75% 70%,#9ac3e12e,transparent 30%);animation-duration:25s;animation-direction:alternate-reverse}
.nav-shell:after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 1px 0 #f3fbff70,inset 0 -1px 0 #83b4d133,0 9px 28px #102d401a;z-index:-1}
.nav-shell .brand{position:relative}
.nav-shell .brand:before{content:'';position:absolute;left:2px;top:50%;width:27px;height:27px;border:1px solid #ed173044;border-radius:50%;pointer-events:none;animation:spark-echo 7s ease-out infinite}
.nav-shell .navigation a{position:relative;transition:color .25s,text-shadow .25s}
.nav-shell .navigation a:after{content:'';position:absolute;left:20%;right:20%;bottom:-7px;height:1px;background:linear-gradient(90deg,transparent,#e2f6ff,transparent);opacity:0;transform:scaleX(.4);transition:opacity .25s,transform .35s}
.nav-shell .navigation a:hover,.nav-shell .navigation a:focus-visible{color:#fff;text-shadow:0 0 14px #c6eaff75}
.nav-shell .navigation a:hover:after,.nav-shell .navigation a:focus-visible:after{opacity:1;transform:scaleX(1)}
@keyframes header-drift{from{transform:translateX(-16%) rotate(-4deg)}to{transform:translateX(16%) rotate(4deg)}}
@keyframes spark-echo{0%,55%{transform:translateY(-50%) scale(.7);opacity:0}60%{opacity:.5}90%,100%{transform:translateY(-50%) scale(1.8);opacity:0}}
@media(prefers-reduced-motion:reduce){.header-light i,.nav-shell .brand:before{animation:none}.nav-shell .brand:before{display:none}}
