/* 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}}

/* ===== 2026-10-10 Blueprint logo replaces Nav-puls ===== */
/* Spokes Blueprint loader (bp-*), stacked. v3 spin: rim fades in, spokes gather inward (spiral), hub pops, then the wheel spins until loaded. transform/opacity only (compositor). */
.bp-l,.bpw{display:block;width:clamp(170px,62vw,270px);height:auto;overflow:visible;color:#FFFFFF;margin:0 auto}
.spk-np .bp-l,.spk-np .bpw{width:100%}
.bpw{position:relative;aspect-ratio:1;will-change:transform;-webkit-animation:bpR 2.6s linear infinite;animation:bpR 2.6s linear infinite}
.bpw>svg{position:absolute;inset:0;display:block;width:100%;height:100%;overflow:visible;will-change:transform,opacity}
.bpw-r{-webkit-animation:bpIn 1.1s cubic-bezier(.2,.8,.2,1) both;animation:bpIn 1.1s cubic-bezier(.2,.8,.2,1) both}
.bpw-s{-webkit-animation:bpS 1.7s cubic-bezier(.16,.84,.3,1) .25s both;animation:bpS 1.7s cubic-bezier(.16,.84,.3,1) .25s both}
.bpw-h{-webkit-animation:bpH .45s cubic-bezier(.3,1.5,.5,1) 1.6s both;animation:bpH .45s cubic-bezier(.3,1.5,.5,1) 1.6s both}
.bpw-g{opacity:0;-webkit-animation:bpG 1.8s ease-in-out 1.8s infinite;animation:bpG 1.8s ease-in-out 1.8s infinite}
.bp-l .bp-nm{opacity:0;animation:bpN .6s ease-out 1.9s forwards}
@keyframes bpR{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}@-webkit-keyframes bpR{from{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}
@keyframes bpIn{from{opacity:0;transform:scale(.86)}to{opacity:1;transform:none}}@-webkit-keyframes bpIn{from{opacity:0;-webkit-transform:scale(.86)}to{opacity:1;-webkit-transform:none}}
@keyframes bpS{from{opacity:0;transform:scale(1.9) rotate(-120deg)}to{opacity:1;transform:none}}@-webkit-keyframes bpS{from{opacity:0;-webkit-transform:scale(1.9) rotate(-120deg)}to{opacity:1;-webkit-transform:none}}
@keyframes bpH{from{opacity:0;transform:scale(0)}to{opacity:1;transform:none}}@-webkit-keyframes bpH{from{opacity:0;-webkit-transform:scale(0)}to{opacity:1;-webkit-transform:none}}
@keyframes bpG{0%,100%{opacity:.25}50%{opacity:.65}}@-webkit-keyframes bpG{0%,100%{opacity:.25}50%{opacity:.65}}
@keyframes bpN{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
.spk-spin{-webkit-animation-duration:1.6s!important;animation-duration:1.6s!important}.spk-spin__r{border:0!important;border-radius:0!important;background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><g fill='none' stroke='%230D4A57' stroke-linecap='round'><circle cx='50' cy='50' r='44' stroke-width='7'/><line stroke-width='3.5' x1='50.0' y1='44.0' x2='20.2' y2='23.3'/><line stroke-width='3.5' x1='52.3' y1='44.5' x2='87.7' y2='36.7'/><line stroke-width='3.5' x1='54.2' y1='45.8' x2='47.8' y2='10.1'/><line stroke-width='3.5' x1='55.5' y1='47.7' x2='86.1' y2='67.3'/><line stroke-width='3.5' x1='56.0' y1='50.0' x2='76.7' y2='20.2'/><line stroke-width='3.5' x1='55.5' y1='52.3' x2='63.3' y2='87.7'/><line stroke-width='3.5' x1='54.2' y1='54.2' x2='89.9' y2='47.8'/><line stroke-width='3.5' x1='52.3' y1='55.5' x2='32.7' y2='86.1'/><line stroke-width='3.5' x1='50.0' y1='56.0' x2='79.8' y2='76.7'/><line stroke-width='3.5' x1='47.7' y1='55.5' x2='12.3' y2='63.3'/><line stroke-width='3.5' x1='45.8' y1='54.2' x2='52.2' y2='89.9'/><line stroke-width='3.5' x1='44.5' y1='52.3' x2='13.9' y2='32.7'/><line stroke-width='3.5' x1='44.0' y1='50.0' x2='23.3' y2='79.8'/><line stroke-width='3.5' x1='44.5' y1='47.7' x2='36.7' y2='12.3'/><line stroke-width='3.5' x1='45.8' y1='45.8' x2='10.1' y2='52.2'/><line stroke-width='3.5' x1='47.7' y1='44.5' x2='67.3' y2='13.9'/></g><circle cx='50' cy='50' r='9' fill='%230E7490'/></svg>") center/contain no-repeat}html[data-theme="dark"] .spk-spin__r{background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><g fill='none' stroke='%23A5E8FD' stroke-linecap='round'><circle cx='50' cy='50' r='44' stroke-width='7'/><line stroke-width='3.5' x1='50.0' y1='44.0' x2='20.2' y2='23.3'/><line stroke-width='3.5' x1='52.3' y1='44.5' x2='87.7' y2='36.7'/><line stroke-width='3.5' x1='54.2' y1='45.8' x2='47.8' y2='10.1'/><line stroke-width='3.5' x1='55.5' y1='47.7' x2='86.1' y2='67.3'/><line stroke-width='3.5' x1='56.0' y1='50.0' x2='76.7' y2='20.2'/><line stroke-width='3.5' x1='55.5' y1='52.3' x2='63.3' y2='87.7'/><line stroke-width='3.5' x1='54.2' y1='54.2' x2='89.9' y2='47.8'/><line stroke-width='3.5' x1='52.3' y1='55.5' x2='32.7' y2='86.1'/><line stroke-width='3.5' x1='50.0' y1='56.0' x2='79.8' y2='76.7'/><line stroke-width='3.5' x1='47.7' y1='55.5' x2='12.3' y2='63.3'/><line stroke-width='3.5' x1='45.8' y1='54.2' x2='52.2' y2='89.9'/><line stroke-width='3.5' x1='44.5' y1='52.3' x2='13.9' y2='32.7'/><line stroke-width='3.5' x1='44.0' y1='50.0' x2='23.3' y2='79.8'/><line stroke-width='3.5' x1='44.5' y1='47.7' x2='36.7' y2='12.3'/><line stroke-width='3.5' x1='45.8' y1='45.8' x2='10.1' y2='52.2'/><line stroke-width='3.5' x1='47.7' y1='44.5' x2='67.3' y2='13.9'/></g><circle cx='50' cy='50' r='9' fill='%230E7490'/></svg>")}
.spk-splash,.np-load{transition:opacity .5s ease,visibility 0s linear .5s!important}
@media (prefers-reduced-motion:reduce){.bp-l *{animation:none!important}.bpw>svg{animation:none!important;opacity:1}.bpw-g{opacity:.5}.bp-l .bp-nm{opacity:1}.bpw{animation-duration:6s}}
.np-load,html[data-theme="dark"] .np-load{background:#363636;color:#FFFFFF;animation:npOut .3s ease 2s forwards}
@media (prefers-color-scheme:dark){html:not([data-theme="light"]) .np-load{background:#363636;color:#FFFFFF}}
.np-load svg.bp-l{width:clamp(170px,62vw,270px)}
@media (prefers-reduced-motion:reduce){.np-load{animation:npOut .2s linear .5s forwards}}
svg.logo circle[fill="none"],svg.foot-logo circle[fill="none"]{fill:none!important}
html.mnav-open .site-header .logo [stroke]{stroke:#fff}

/* plain-x close (2026-10-10): brand-colour hover on × / close buttons */
:is(button,[role="button"])[aria-label="Lukk"]:hover,:is(button,[role="button"])[aria-label="Close"]:hover,:is(button,[role="button"])[aria-label="Lukk"]:focus-visible,:is(button,[role="button"])[aria-label="Close"]:focus-visible{color:var(--brand,var(--accent,#0f6b8a))!important}
.np-load.np-gone{animation-duration:.5s!important}
