/* Lanseringsintro före startsidan. Visas en gång per session. ?intro=1 tvingar fram den. */
.hi{position:fixed;inset:0;z-index:9999;background:#08080C;color:#F8F8F8;font-family:"roc-grotesk","Public Sans",system-ui,sans-serif;display:grid;place-items:center;overflow:hidden;isolation:isolate;animation:hi-light 1.4s ease 8.4s forwards,hi-out .9s cubic-bezier(.7,0,.2,1) 10.1s forwards}
.hi::before{content:"";position:absolute;inset:0;z-index:-2;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:88px 88px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 50%,#000 20%,transparent 80%);mask-image:radial-gradient(ellipse 70% 60% at 50% 50%,#000 20%,transparent 80%);opacity:0;animation:hi-fade 1s .1s forwards}
.hi .hi-bands{position:absolute;inset:-30%;z-index:-1;filter:blur(60px);opacity:0;transform:scale(.7);background:radial-gradient(30% 28% at 30% 40%,#9B8CFF,transparent 70%),radial-gradient(32% 30% at 70% 45%,#3F6CFF,transparent 70%),radial-gradient(26% 24% at 50% 65%,rgba(255,176,225,.7),transparent 70%),radial-gradient(40% 40% at 50% 50%,#2A5CF6,transparent 75%);animation:hi-bloom 3s cubic-bezier(.2,.8,.2,1) 5.8s forwards,hi-fadeout 1.2s ease 8.4s forwards}
.hi .hi-grain{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.35;mix-blend-mode:soft-light;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.hi .hi-st{grid-area:1/1;background:none;color:inherit;text-align:center;padding:0 6vw;opacity:0}
.hi .hi-eb{display:block;font:500 11px "JetBrains Mono",ui-monospace,monospace;letter-spacing:.24em;text-transform:uppercase;color:#8A8F96;margin-bottom:26px}
.hi h2{margin:0;color:inherit;hyphens:none;font-weight:600;letter-spacing:-.055em;line-height:.92;text-wrap:balance}
.hi .hi-s1 h2,.hi .hi-s2 h2{font-size:clamp(44px,8vw,132px)}
.hi .hi-s3 h2{font-size:clamp(40px,8.4vw,150px);max-width:14ch;margin:0 auto}
.hi .hi-w{display:inline-block;white-space:nowrap;opacity:0;transform:translateY(.4em);filter:blur(8px)}
.hi .hi-g{background:linear-gradient(90deg,#8FB5FF,#B79CFF 55%,#E3D8FF);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.04em}
.hi .hi-s3 .hi-g{background:linear-gradient(90deg,#8FB5FF,#B79CFF 55%,#E3D8FF);-webkit-background-clip:text;background-clip:text;color:transparent}
.hi .hi-s3 .hi-g::after{content:attr(data-t);position:absolute;left:0;top:0;background:linear-gradient(90deg,#007BFF,#6A3BFF 60%,#A993FF);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:0;animation:hi-fade 1.4s ease 8.4s forwards}
.hi .hi-s3 .hi-g{position:relative}
.hi .hi-s1{animation:hi-show 3s .4s both}
.hi .hi-s2{animation:hi-show 2.8s 3.4s both}
.hi .hi-s3{animation:hi-in .6s 6.2s both}
.hi .hi-s1 .hi-w{animation:hi-word .8s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(.5s + var(--i)*.12s)}
.hi .hi-s2 .hi-w{animation:hi-word .8s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(3.5s + var(--i)*.12s)}
.hi .hi-s3 .hi-w{animation:hi-word .9s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(6.3s + var(--i)*.14s)}
.hi .hi-brand{bottom:clamp(44px,7vh,76px)!important;position:absolute;left:50%;bottom:clamp(28px,5vh,56px);transform:translateX(-50%);display:flex;align-items:center;gap:12px;opacity:0;animation:hi-fade .8s 7.2s forwards}
.hi .hi-brand img{height:26px;width:auto;filter:brightness(0) invert(1);animation:hi-logo 1.4s ease 8.4s forwards}
.hi .hi-hint{position:absolute;left:0;right:0;bottom:clamp(14px,2.4vh,22px);text-align:center;font:500 10px "JetBrains Mono",ui-monospace,monospace;letter-spacing:.2em;text-transform:uppercase;color:#7A7E83;opacity:0;animation:hi-fade .8s 1.2s forwards}
.hi .hi-skip{position:absolute;top:clamp(16px,3vh,28px);right:clamp(16px,3vw,32px);z-index:2;appearance:none;margin:0;height:38px;padding:0 16px;border-radius:5px;border:1px solid rgba(248,248,248,.28);background:rgba(248,248,248,.06);color:#F8F8F8;font:600 13px "Public Sans",system-ui,sans-serif;cursor:pointer;transition:background .18s}
.hi .hi-skip:hover{background:rgba(248,248,248,.14)}
.hi .hi-bar{position:absolute;left:0;bottom:0;height:2px;width:100%;background:linear-gradient(90deg,#007BFF,#6A3BFF);transform-origin:left;transform:scaleX(0);animation:hi-bar 10.1s linear forwards}
.hi.hi-done{animation:hi-out .6s cubic-bezier(.7,0,.2,1) forwards}
html.hi-lock,html.hi-lock body{overflow:hidden}
@keyframes hi-fade{to{opacity:1}}
@keyframes hi-fadeout{to{opacity:0}}
@keyframes hi-light{to{background-color:#fff;color:#1D1D1D}}
@keyframes hi-ink{to{color:#1D1D1D}}
@keyframes hi-logo{to{filter:none}}
@keyframes hi-grid{to{opacity:.5}}
@keyframes hi-word{to{opacity:1;transform:none;filter:none}}
@keyframes hi-show{0%{opacity:0}4%{opacity:1}80%{opacity:1;transform:none;filter:none}100%{opacity:0;transform:translateY(-.3em) scale(.98);filter:blur(10px)}}
@keyframes hi-in{to{opacity:1}}
@keyframes hi-bloom{to{opacity:1;transform:scale(1)}}
@keyframes hi-bar{to{transform:scaleX(1)}}
@keyframes hi-out{to{clip-path:inset(0 0 100% 0);visibility:hidden}}
@media(prefers-reduced-motion:reduce){.hi{display:none}}
/* sista scenen: warp-explosion */
canvas.hi-fx2{position:fixed;inset:0;width:100vw;height:100vh;z-index:10000;pointer-events:none}
.hi .hi-s3 h2,.hi .hi-brand,.hi .hi-s3 .hi-eb{animation-fill-mode:both}
.hi .hi-s3 h2{animation:hi-suck .65s cubic-bezier(.5,0,.75,0) 8.9s forwards,hi-blast .5s cubic-bezier(.2,.8,.2,1) 9.55s forwards}
@keyframes hi-suck{to{transform:scale(.86) rotate(-2deg);filter:blur(2px)}}
@keyframes hi-blast{from{transform:scale(.86) rotate(-2deg);filter:blur(2px)}to{transform:scale(1.6);filter:blur(18px);opacity:0}}
.hi .hi-flash{position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(circle at 50% 47%,#fff 0,rgba(214,222,255,.9) 18%,rgba(155,140,255,.35) 38%,rgba(255,255,255,0) 62%);opacity:0;transform:scale(.4);animation:hi-flash .8s cubic-bezier(.2,.8,.2,1) 9.55s forwards}
@keyframes hi-flash{25%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.8)}}
