/* Hero light-ribbon background (light-ribbons.js). The gradients are the no-WebGL fallback. */
.light-ribbons{position:absolute;inset:0;z-index:-2;pointer-events:none;-webkit-mask-image:linear-gradient(to top,#000 20%,transparent 95%);mask-image:linear-gradient(to top,#000 20%,transparent 95%)}
.light-ribbons[data-variant=home]{background:conic-gradient(from -64deg at 50% 128%,transparent 0deg,#5eead438 7deg,transparent 15deg,#38bdf830 25deg,transparent 33deg,#6b8cff30 44deg,transparent 52deg,#a78bfa30 62deg,transparent 70deg,#f0abfc28 82deg,transparent 90deg,#fde2a724 104deg,transparent 116deg)}
.light-ribbons[data-variant=about]{background:conic-gradient(from 8deg at -4% 125%,transparent 0deg,#5eead430 6deg,transparent 12deg,#38bdf82a 20deg,transparent 27deg,#6b8cff2a 36deg,transparent 43deg,#a78bfa28 52deg,transparent 59deg,#f0abfc22 68deg,transparent 76deg)}
.light-ribbons[data-variant=contact]{background:conic-gradient(from -84deg at 50% 100%,transparent 0deg,#5eead42c 5deg,transparent 10deg,#38bdf826 16deg,transparent 22deg,#6b8cff24 28deg,transparent 34deg,transparent 134deg,#a78bfa24 140deg,transparent 146deg,#f0abfc24 152deg,transparent 158deg,#fde2a720 164deg,transparent 170deg)}
.light-ribbons.is-live{background:none;-webkit-mask-image:none;mask-image:none}
.light-ribbons canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
@media(prefers-reduced-motion:no-preference){.light-ribbons canvas{animation:light-ribbons-in .6s .1s ease-out both}}
@keyframes light-ribbons-in{from{opacity:0}}
