/* NESTE core.css – felles grunnmur. Hvert konsept legger sitt eget lag over. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{margin:0;min-height:100vh;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
img,svg,canvas,video{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:fixed;left:12px;top:-60px;z-index:10001;padding:10px 14px;background:#141414;color:#F4F1EA;text-decoration:none;font-weight:600;transition:top .2s}
.skip:focus{top:12px}
:focus-visible{outline:2px solid var(--focus,#C8501E);outline-offset:3px}
.ph{font-style:normal;opacity:.75;font-size:.85em;letter-spacing:.02em}
.mark-bek{display:inline-block;font-size:.72em;padding:.05em .4em;border:1px dashed currentColor;border-radius:3px;opacity:.8;vertical-align:.1em;white-space:nowrap}

/* ---- Markør (følger). Konseptet bestemmer utseendet. ---- */
.cursor{position:fixed;left:0;top:0;z-index:10000;pointer-events:none;opacity:0;transform:translate3d(var(--x,-100px),var(--y,-100px),0);transition:opacity .25s}
.cursor.is-on{opacity:1}
html.has-cursor,html.has-cursor *{cursor:none!important}
html.has-cursor input,html.has-cursor textarea{cursor:text!important}
@media (pointer:coarse){.cursor{display:none}}

/* ---- Split-tekst ---- */
[data-split] .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
[data-split] .wi,[data-split] .c{display:inline-block}
html.js:not(.rm) [data-split]:not(.is-in) .wi{transform:translate3d(0,105%,0)}
html.js:not(.rm) [data-split] .wi{transition:transform .9s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i,0) * 45ms)}
html.js:not(.rm) [data-split="chars"]:not(.is-in) .c{transform:translate3d(0,110%,0);opacity:0}
html.js:not(.rm) [data-split="chars"] .c{transition:transform .8s cubic-bezier(.2,.8,.2,1),opacity .5s;transition-delay:calc(var(--i,0) * 22ms)}
html.is-preloading [data-split] .wi,html.is-preloading [data-split] .c{transition:none}

/* ---- Reveal ---- */
html.js:not(.rm) [data-reveal]:not(.is-in){opacity:0;transform:translate3d(0,28px,0)}
html.js:not(.rm) [data-reveal]{transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1);transition-delay:var(--d,0s)}
html.js:not(.rm) [data-reveal="clip"]:not(.is-in){opacity:1;transform:none;clip-path:inset(100% 0 0 0)}
html.js:not(.rm) [data-reveal="clip"]{transition:clip-path 1.1s cubic-bezier(.7,0,.2,1)}

/* ---- Preloader ---- */
.preloader{position:fixed;inset:0;z-index:9000}
html:not(.js) .preloader{display:none}
html.is-preloading{overflow:hidden}

/* ---- Sideoverganger ---- */
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.55s;animation-timing-function:cubic-bezier(.7,0,.2,1)}
.transition{position:fixed;inset:0;z-index:8999;pointer-events:none}
html:not(.vt-fallback) .transition{display:none}
@media (prefers-reduced-motion:reduce){
  @view-transition{navigation:none}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
html.rm *,html.rm *::before,html.rm *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}

/* ---- Konsept-merkelapp (prototype) ---- */
.proto-tag{position:fixed;right:10px;bottom:10px;z-index:7000;font:500 11px/1.2 ui-monospace,monospace;background:#141414;color:#F4F1EA;padding:6px 8px;border-radius:2px;opacity:.85;text-decoration:none}
.proto-tag:hover{opacity:1}
