/* aiagenten.nu — LeanAI tokens, statisk build */
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:200 800;font-display:swap;src:url(fonts/plus-jakarta-sans-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212}
:root{--bg:hsl(40 33% 98%);--card:hsl(40 30% 96%);--card-2:hsl(35 25% 91%);--sand:hsl(35 20% 88%);--clay:hsl(25 20% 18%);--clay-2:hsl(25 18% 24%);--muted:hsl(25 15% 45%);--terra:hsl(16 75% 55%);--terra-2:hsl(16 75% 50%);--terra-b:hsl(25 80% 50%);--on-dark:hsl(40 20% 80%);--ok:hsl(145 60% 40%);--err:hsl(0 84% 60%);--pad:clamp(20px,5vw,40px)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--clay);font:400 1rem/1.5 "Plus Jakarta Sans",system-ui,sans-serif}
a{color:var(--terra)}a:hover{color:var(--terra-2)}
h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.02em;line-height:1.1;text-wrap:balance}
p{margin:0;text-wrap:pretty}
img{display:block}
.wrap{max-width:72rem;margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.accent{color:var(--terra)}
.grad{background:linear-gradient(135deg,var(--terra),var(--terra-b));-webkit-background-clip:text;background-clip:text;color:transparent;display:inline-block;padding-bottom:.12em}
.muted{color:var(--muted)}
.sr{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* header */
.top{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:22px;padding-bottom:22px}
.logo{font-weight:700;letter-spacing:-.02em;font-size:1.1rem;text-decoration:none;color:var(--clay)}
.top nav{display:flex;gap:26px;align-items:center}
.top nav a{text-decoration:none;color:var(--muted);font-size:.95rem;font-weight:500;transition:color .2s}
.top nav a:hover{color:var(--clay)}
.top nav a.cta{color:var(--terra);font-weight:600}.top nav a.cta:hover{color:var(--terra-2)}

/* hero */
.hero{position:relative;overflow:hidden}
.hero .wrap{position:relative;padding-top:clamp(44px,8vw,96px);padding-bottom:clamp(32px,5vw,64px)}
.bloom{position:absolute;border-radius:50%;filter:blur(90px);pointer-events:none}
.shape{position:absolute;pointer-events:none;animation:float 6s ease-in-out infinite}
.kicker{margin-bottom:18px;font-size:.9rem;font-weight:600;color:var(--terra)}
.h1{font-size:clamp(2.5rem,6.5vw,4.5rem);line-height:1.02;max-width:16ch;margin-bottom:24px}
.lead{max-width:54ch;font-size:clamp(1.05rem,1.9vw,1.25rem);color:var(--muted);line-height:1.55;margin-bottom:36px}

/* form */
.signup{max-width:560px}
.signup .row{display:flex;gap:10px;flex-wrap:wrap}
.signup input[type=email]{flex:1 1 240px;min-width:0;height:56px;padding:0 18px;font:inherit;background:var(--card);border:1px solid var(--sand);border-radius:12px;color:var(--clay);outline:none;transition:border-color .2s,box-shadow .2s}
.signup input[type=email]:focus{border-color:var(--terra);box-shadow:0 0 0 3px hsl(16 75% 55% / .15)}
.signup.invalid input[type=email]{border-color:var(--err)}
.signup .note{margin-top:14px;font-size:.9rem;color:var(--muted)}
.signup.invalid .note,.signup.error .note{color:var(--err)}
.signup .ok{display:none;padding:18px 22px;border-radius:16px;background:var(--card);border:2px solid hsl(145 60% 40% / .25)}
.signup.done .row,.signup.done .note{display:none}.signup.done .ok{display:block}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:56px;padding:0 26px;border:0;border-radius:12px;background:var(--terra);color:var(--bg);font:inherit;font-weight:600;font-size:1rem;cursor:pointer;box-shadow:0 4px 14px -4px hsl(16 75% 55% / .35);transition:background .2s,box-shadow .2s}
.btn:hover{background:var(--terra-2);box-shadow:0 10px 28px -8px hsl(16 75% 55% / .55)}
.btn[disabled]{opacity:.7;cursor:progress}
.dark .signup input[type=email]{background:var(--clay-2);border-color:hsl(25 15% 34%);color:var(--bg)}
.dark .signup input[type=email]:focus{box-shadow:0 0 0 3px hsl(16 75% 55% / .25)}
.dark .signup .note{color:var(--on-dark)}.dark .signup.invalid .note,.dark .signup.error .note{color:hsl(0 84% 70%)}
.dark .signup .ok{background:var(--clay-2);border-color:hsl(145 60% 40% / .4);color:var(--bg)}

/* skip-länk (sekundär CTA) */
.skip{display:inline-block;margin-top:18px;padding:6px 0;font-weight:600;font-size:.95rem;color:var(--clay);text-decoration:underline;text-decoration-color:var(--sand);text-underline-offset:5px;text-decoration-thickness:2px;transition:text-decoration-color .2s,color .2s}
.skip:hover{color:var(--clay);text-decoration-color:var(--terra)}
@media (max-width:640px){
  .hero .shape{display:none}
  .hero .wrap{padding-top:28px}
  .kicker{margin-bottom:12px}
  .h1{margin-bottom:18px}
  .lead{margin-bottom:24px}
  .signup .btn{flex:1 1 100%}
  .skip{margin-top:12px}
  .byline{margin-top:24px}
  .week{margin-top:40px}
}

/* byline (vem + citat above the fold) */
.byline{display:flex;gap:14px;align-items:flex-start;margin:28px 0 0;max-width:560px}
.byline img{flex:none;width:48px;height:48px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 4px hsl(16 75% 55% / .12)}
.byline blockquote{margin:0}
.byline p{font-size:.95rem;line-height:1.45;color:var(--clay);font-style:italic}
.byline figcaption{margin-top:6px;font-size:.85rem;font-weight:600;color:var(--muted)}

/* faq */
.faq h2{margin-bottom:24px}
.faq-list{max-width:48rem;border-top:1px solid var(--sand)}
.faq details{border-bottom:1px solid var(--sand)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 0;font-weight:600;font-size:1.05rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:hsl(16 75% 55% / .1);color:var(--terra);font-weight:700}
.faq details[open] summary::after{content:"−"}
.faq summary:focus-visible{outline:2px solid var(--terra);outline-offset:4px;border-radius:4px}
.faq details p{padding:0 44px 22px 0;color:var(--muted);max-width:60ch}
.faq-more{margin-top:24px;color:var(--muted)}

/* week bars */
.week{margin-top:56px;max-width:760px}
.bars{display:grid;grid-template-columns:repeat(40,1fr);gap:5px;height:88px;align-items:end}
.bars i{display:block;height:100%;border-radius:5px;background:var(--sand);transform-origin:bottom}
.bars i.on{background:var(--terra);box-shadow:0 6px 18px -6px hsl(16 75% 55% / .55);transform:scaleY(.12);opacity:.5}
.in .bars i.on{animation:fill .7s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(.4s + var(--i) * .16s)}
.week p{margin-top:14px;font-size:.95rem;color:var(--muted);max-width:56ch}

/* sections */
.sec{padding-top:clamp(56px,8vw,104px);padding-bottom:clamp(56px,8vw,104px)}
.sec.alt{background:var(--card)}
.h2{font-size:clamp(1.9rem,3.8vw,2.75rem);line-height:1.05;margin-bottom:10px}
.h2.s{font-size:clamp(1.7rem,3.2vw,2.4rem)}
.sub{color:var(--muted);max-width:50ch;font-size:1.05rem;margin-bottom:36px}

/* five levels animation */
.stage{position:relative;width:100%;aspect-ratio:16/9;border-radius:24px;overflow:hidden;background:var(--bg);box-shadow:0 20px 60px -20px hsl(25 20% 18% / .18);container-type:inline-size;font-family:inherit}
.stage .cam{position:absolute;inset:0;transform-origin:0 0;transition:transform 1.1s cubic-bezier(.65,0,.35,1)}
.step{position:absolute;bottom:16.7%;width:15.6%;border-radius:1.25cqw;background:var(--card);box-shadow:0 .3cqw 1.6cqw -.3cqw hsl(25 20% 18% / .08);transform:scaleY(0);transform-origin:bottom;transition:transform .8s cubic-bezier(.34,1.56,.64,1) calc(var(--i) * .16s),background .5s,box-shadow .5s,opacity .6s}
.stage.rise .step{transition-delay:0s}
.stage.rise .step{transform:scaleY(1)}
.step b{position:absolute;left:0;right:0;top:.9cqw;text-align:center;font:700 4.4cqw/1 inherit;letter-spacing:-.02em;color:var(--terra);opacity:0;transition:opacity .5s,color .4s;transition-delay:calc(.35s + var(--i) * .16s)}
.stage.rise .step b{opacity:1}
.step.hi{background:linear-gradient(135deg,var(--terra),var(--terra-b));box-shadow:0 .8cqw 3cqw -.8cqw hsl(16 75% 55% / .45)}
.step.hi b{color:var(--bg);transition-delay:0s}
.stage.zoom .step:not(.hi){opacity:.1}
.step .lbl{position:absolute;left:-12%;right:-12%;bottom:calc(100% + 1.6cqw);text-align:center;font:600 1.55cqw/1.2 inherit;color:var(--clay);opacity:0;transform:translateY(.8cqw);transition:opacity .5s,transform .5s;transition-delay:calc(var(--i) * .12s)}
.stage.fin .step .lbl{opacity:1;transform:none}
.marker{position:absolute;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;transform:translate(-50%,-100%) scale(0);transform-origin:bottom center;transition:left .9s cubic-bezier(.65,0,.35,1),bottom .9s cubic-bezier(.65,0,.35,1),transform .5s cubic-bezier(.34,1.56,.64,1);pointer-events:none}
.marker span{font:700 1.2cqw/1 inherit;color:var(--bg);background:var(--clay);padding:.55cqw .95cqw;border-radius:99px}
.marker i{width:0;height:0;border-left:.5cqw solid transparent;border-right:.5cqw solid transparent;border-top:.65cqw solid var(--clay)}
.stage.marker-on .marker{transform:translate(-50%,-100%) scale(1)}
.marker.bob span{animation:bob 1.6s ease-in-out infinite}
.intro{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font:700 7.5cqw/1.05 inherit;letter-spacing:-.02em;transition:opacity .6s,transform .6s;pointer-events:none}
.intro span{display:block;opacity:0;transform:translateY(1.9cqw);transition:opacity .8s,transform .8s}
.stage.intro-on .intro span{opacity:1;transform:none}.stage.intro-on .intro span+span{transition-delay:.7s}
.stage:not(.intro-on) .intro{opacity:0;transform:translateY(-1.9cqw)}
.lcard{position:absolute;left:48.5%;top:16%;width:47%;display:flex;flex-direction:column;gap:1.1cqw;opacity:0;transform:translateY(-1.4cqw);transition:opacity .3s,transform .3s;pointer-events:none}
.lcard.on{opacity:1;transform:none;transition:opacity .6s,transform .6s}
.lcard.on p{transition-delay:.35s}.lcard p{opacity:0;transform:translateY(1cqw);transition:opacity .5s,transform .5s}.lcard.on p{opacity:1;transform:none}
.lcard small{font:600 1.7cqw/1 inherit;color:var(--muted)}
.lcard h3{font-size:4.4cqw;line-height:1.08}
.lcard p{font:400 2.3cqw/1.4 inherit;color:var(--muted)}
.cap{position:absolute;left:12%;right:12%;bottom:11%;text-align:center;font:500 2.65cqw/1.3 inherit;opacity:0;transform:translateY(1cqw);transition:opacity .6s,transform .6s;pointer-events:none}
.cap.on{opacity:1;transform:none}
.stage .bloom{transition:transform 4s ease-in-out}

/* level chips + tooltips */
.chips{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;position:relative;z-index:1}
.chips li{position:relative;background:var(--card);border-radius:12px;padding:12px 14px;display:flex;align-items:center;gap:10px;min-width:0;outline:none;transition:box-shadow .2s,background .2s}
.chips li:hover,.chips li:focus-visible{box-shadow:0 8px 24px -8px hsl(25 20% 18% / .14);background:var(--card-2)}
.chips b{flex:none;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:hsl(16 75% 55% / .1);color:var(--terra);font-size:.95rem}
.chips h3{font-size:.85rem;font-weight:600;letter-spacing:-.01em;line-height:1.25;min-width:0;hyphens:auto}
.tip{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translate(-50%,6px);width:min(280px,80vw);padding:14px 16px;border-radius:12px;background:var(--clay);color:var(--bg);font-size:.9rem;line-height:1.5;box-shadow:0 16px 40px -12px hsl(25 20% 18% / .35);opacity:0;visibility:hidden;transition:opacity .2s,transform .2s,visibility .2s;pointer-events:none;z-index:5}
.tip::after{content:"";position:absolute;left:50%;top:100%;transform:translateX(-50%);border:7px solid transparent;border-top-color:var(--clay)}
.chips li:first-child .tip{left:0;transform:translate(0,6px)}.chips li:first-child .tip::after{left:calc(var(--chip-half,80px) + 14px)}
.chips li:last-child .tip{left:auto;right:0;transform:translate(0,6px)}.chips li:last-child .tip::after{left:auto;right:var(--chip-half,80px);transform:translateX(50%)}
.chips li:hover .tip,.chips li:focus-visible .tip{opacity:1;visibility:visible;transform:translate(-50%,0)}
.chips li:first-child:hover .tip,.chips li:first-child:focus-visible .tip,.chips li:last-child:hover .tip,.chips li:last-child:focus-visible .tip{transform:translate(0,0)}
@media (max-width:640px){.chips{grid-template-columns:1fr 1fr}.chips li:last-child{grid-column:span 2}
  /* tooltips i högerkolumnen sticker annars ut och ger sidledsscroll på mobil */
  .chips li:nth-child(odd) .tip{left:0;right:auto;transform:translate(0,6px)}.chips li:nth-child(odd) .tip::after{left:calc(var(--chip-half,80px) + 14px);right:auto;transform:translateX(-50%)}
  .chips li:nth-child(even) .tip{left:auto;right:0;transform:translate(0,6px)}.chips li:nth-child(even) .tip::after{left:auto;right:var(--chip-half,80px);transform:translateX(50%)}
  .chips li:hover .tip,.chips li:focus-visible .tip{transform:translate(0,0)}
}
.across{margin-top:32px;padding:20px 24px;background:var(--clay);color:var(--bg);border-radius:16px;font-size:.98rem;line-height:1.55}

/* course cards */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.card{background:var(--bg);border-radius:16px;padding:26px 24px;box-shadow:0 2px 12px -4px hsl(25 20% 18% / .08)}
.card b{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:hsl(16 75% 55% / .1);color:var(--terra);margin-bottom:16px}
.card h3{font-size:1.1rem;letter-spacing:-.01em;margin-bottom:8px}
.card p{color:var(--muted);font-size:.95rem;line-height:1.55}

/* about */
.about{display:flex;gap:clamp(24px,4vw,48px);align-items:center;flex-wrap:wrap}
.ring{flex:none;width:128px;height:128px;border-radius:50%;padding:6px;background:hsl(16 75% 55% / .12)}
.ring img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.about blockquote{margin:0;flex:1 1 320px;min-width:0}
.about .q{font-size:clamp(1.15rem,2vw,1.45rem);font-weight:600;letter-spacing:-.01em;line-height:1.35;max-width:44ch;margin-bottom:12px}
.about .who{color:var(--muted);font-size:.95rem}
.mail{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-size:.95rem;font-weight:600;color:var(--terra);text-decoration:none}
.mail svg{flex:none}

/* tools marquee */
.tools{padding-top:clamp(40px,6vw,64px);padding-bottom:clamp(40px,6vw,64px)}
.tools .h2{font-size:clamp(1.4rem,2.6vw,1.9rem);margin-bottom:8px}
.tools .sub{margin-bottom:28px;font-size:1rem;max-width:54ch}
.rail{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.rail+.rail{margin-top:12px}
.rail ul{list-style:none;margin:0;padding:0;display:flex;gap:12px;width:max-content;animation:slide 64s linear infinite}
.rail.rev ul{animation-duration:78s;animation-direction:reverse}
.rail li{display:flex;align-items:center;gap:10px;padding:10px 18px 10px 14px;background:var(--bg);border-radius:999px;white-space:nowrap;box-shadow:0 2px 12px -4px hsl(25 20% 18% / .08);font-size:.93rem;font-weight:500}
.rail img{width:20px;height:20px;object-fit:contain}

/* dark signup */
.dark{position:relative;overflow:hidden;background:var(--clay);color:var(--bg);padding-top:clamp(64px,9vw,112px);padding-bottom:clamp(64px,9vw,112px)}
.dark .h2{max-width:18ch;margin-bottom:14px}
.dark .sub{color:var(--on-dark);margin-bottom:32px}

footer{border-top:1px solid var(--sand);padding:32px 0 48px}
footer .wrap{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:.9rem;color:var(--muted)}
footer a{text-decoration:none}
footer nav{display:flex;gap:20px}footer nav a{color:var(--muted);display:inline-flex;align-items:center;gap:6px}footer nav a:hover{color:var(--clay)}
footer .brand{font-weight:600}

/* reveal */
.rv{opacity:0;transform:translateY(20px);transition:opacity .7s cubic-bezier(.2,.8,.2,1),transform .7s cubic-bezier(.2,.8,.2,1)}
.rv.in{opacity:1;transform:none}

@keyframes slide{to{transform:translateX(calc(-50% - 6px))}}
@keyframes fill{to{transform:scaleY(1);opacity:1}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-.5cqw)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}.bars i.on{transform:none;opacity:1}}
