/* Nav-puls (logo option 4): page-loading overlay + menu logo intro. CSP-safe, transform/opacity only. */
.np-load{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;background:#F4F4F2;color:#0B1F26;contain:strict;pointer-events:none;
  animation:npOut .3s ease 1.3s forwards}  /* hard max ~1.6 s even without JS */
.np-load.np-gone{animation:npOut .25s ease forwards}
@keyframes npOut{to{opacity:0;visibility:hidden}}
.np-load svg{display:block;width:min(52vw,220px);height:auto;overflow:visible}
.np-load .lt{fill:currentColor}
.np-load .rim{fill:none;stroke:currentColor;stroke-width:3;stroke-dasharray:34.3;animation:npRim .45s ease-out .6s both}
.np-load .spk line{stroke:#0D4A57;stroke-width:.6;stroke-linecap:round;animation:npSpk .35s cubic-bezier(.2,.8,.2,1) .35s both}
.np-load .hub{fill:#0D4A57;animation:npHub .6s cubic-bezier(.3,1.6,.5,1) both}
.np-load .wave{fill:none;stroke:#0D4A57;stroke-width:.8;opacity:0;animation:npWave .9s ease-out .2s both}
.np-load .o,.np-load .o *{transform-box:view-box;transform-origin:39.03px 15.4px}
@keyframes npHub{0%{transform:scale(0)}60%{transform:scale(1.5)}100%{transform:scale(1)}}
@keyframes npWave{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(5)}}
@keyframes npSpk{from{transform:scale(.3);opacity:0}to{transform:none;opacity:1}}
@keyframes npRim{from{stroke-dashoffset:34.3;opacity:.3}to{stroke-dashoffset:0;opacity:1}}
@media (prefers-color-scheme:dark){html:not([data-theme="light"]) .np-load{background:#252B2D;color:#EDF7F9}}
html[data-theme="dark"] .np-load{background:#252B2D;color:#EDF7F9}
html[data-theme="dark"] .np-load .spk line,html[data-theme="dark"] .np-load .wave{stroke:#A5E8FD}
html[data-theme="dark"] .np-load .hub{fill:#A5E8FD}
@media (prefers-color-scheme:dark){html:not([data-theme="light"]) .np-load .spk line,html:not([data-theme="light"]) .np-load .wave{stroke:#A5E8FD}html:not([data-theme="light"]) .np-load .hub{fill:#A5E8FD}}
@media (prefers-reduced-motion:reduce){.np-load{animation:npOut .2s linear .4s forwards}.np-load *{animation:none!important}.np-load .rim{stroke-dashoffset:0}}
/* menu logo: Nav-puls once on load (js adds .np-logo then .np-play) */
.np-logo .la-o,.np-logo .la-o *{transform-box:view-box;transform-origin:39.03px 15.4px}
.np-logo .la-rim{fill:none;stroke:#000;stroke-width:3.1}
.np-logo .la-spk line{stroke:#0D4A57;stroke-width:.55;stroke-linecap:round}
.np-logo .la-hub{fill:#000}
.np-logo .np-wave{fill:none;stroke:#0D4A57;stroke-width:.8;opacity:0}
.np-logo.np-play .la-hub{animation:npHub .6s cubic-bezier(.3,1.6,.5,1) both}
.np-logo.np-play .np-wave{animation:npWave .9s ease-out .2s both}
.np-logo.np-play .la-spk line{animation:npSpk .35s cubic-bezier(.2,.8,.2,1) .35s both}
.np-logo.np-play .la-rim{stroke-dasharray:1;animation:npRim1 .45s ease-out .6s both}
@keyframes npRim1{from{stroke-dashoffset:1;opacity:.3}to{stroke-dashoffset:0;opacity:1}}
@media (prefers-reduced-motion:reduce){.np-logo *{animation:none!important}}
