/* Light is decorative: the surface and text stay steady while the light moves. */
.glow{
 --light-x:50%;--light-y:30%;--light-angle:0deg;--light-level:0;--press-light:0;
 isolation:isolate;position:relative;
 background:linear-gradient(125deg,#26354372 0%,#19212de8 48%,#18212df5 100%);
 border-color:transparent;
 transition:box-shadow .65s cubic-bezier(.16,1,.3,1),border-color .65s,transform .65s cubic-bezier(.16,1,.3,1);
}
.glow::before{
 inset:0;z-index:-1;border-radius:inherit;opacity:var(--light-level);
 background:radial-gradient(ellipse 340px 220px at var(--light-x) var(--light-y),#5bdfef3b 0%,#43c7dd17 42%,transparent 76%),conic-gradient(from var(--light-angle) at var(--light-x) var(--light-y),transparent 0deg,#b5f6ff09 50deg,transparent 90deg,transparent 210deg,#d39c800b 255deg,transparent 290deg);
 transition:none;filter:none;
}
.glow::after{
 inset:0;padding:1px;z-index:3;opacity:calc(.12 + var(--light-level) * .88);border-radius:inherit;
 background:radial-gradient(ellipse 170px 130px at var(--light-x) var(--light-y),#f0ffff 0%,#96f0ff 15%,#43c7ddbb 40%,transparent 78%),conic-gradient(from var(--light-angle),#43c7dd05 0deg,#43c7dd10 55deg,#43c7dd4d 95deg,#aff8ffcc 122deg,#efffff 132deg,#43c7dd66 143deg,#43c7dd08 178deg,transparent 220deg,#d39c8044 285deg,#43c7dd05 360deg);
 -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
 -webkit-mask-composite:xor;mask-composite:exclude;
 transition:none;pointer-events:none;
}
/* Override earlier static hover states; one interpolated value drives fade-in/out. */
.glow:hover::before,.glow:focus-within::before{opacity:var(--light-level)}
.glow:hover,.glow:focus-within,.glow.is-lit{
 border-color:transparent;
 box-shadow:0 16px 28px #0004,0 0 4px #a9f4ff24,0 0 26px #43c7dd18,inset 0 0 25px #43c7dd08;
 transform:none;
}
.glow .light-reflection{
 position:absolute;inset:0;pointer-events:none;z-index:0;border-radius:inherit;
 opacity:var(--light-level);overflow:hidden;
 background:radial-gradient(ellipse 230px 100px at var(--light-x) var(--light-y),#d5fbff09,transparent 80%);
}
.glow .click-light{position:absolute;inset:0;pointer-events:none;border-radius:inherit;z-index:0;opacity:var(--press-light);background:radial-gradient(ellipse at var(--light-x) var(--light-y),#c0f6ff26,transparent 65%)}
.glow:active,.project:active,.exp-toggle:active{transform:none}
/* Keyboard focus uses the same illuminated perimeter, never a second ring. */
.glow:focus-visible,.glow .exp-toggle:focus-visible{outline:none}
.glow:has(:focus-visible),.glow:focus-visible{box-shadow:0 0 24px #43c7dd38}
.glow:focus-visible::after,.glow:has(:focus-visible)::after{background-color:#76dbea;opacity:1}
.glow.experience.open{border-color:transparent}
@media(forced-colors:active){.glow:focus-visible,.glow .exp-toggle:focus-visible{outline:2px solid Highlight;outline-offset:-2px}}
@media(prefers-reduced-motion:reduce){
 .glow{--light-x:50%;--light-y:25%;--light-angle:25deg}
 .glow:hover,.glow:focus-within{--light-level:1!important}
 .glow::before,.glow::after{transition:none}
}
@media(hover:none){.glow:hover:not(:focus-within){box-shadow:none;border-color:#bceeff0c}}
