/* ============================================================
   Weblikon — Design System (mobile-first, static)
   Akzentfarbe über --primary (für späteren Logo-Farbtausch)
============================================================ */
:root{
  --bg:#F5F4F1;             /* Paper */
  --fg:#16181C;             /* Ink */
  --muted:#6b6c70;
  --line:#e5e3de;
  --card:#ffffff;
  --primary:#3456DE;        /* Weblikon Accent */
  --primary-ink:#ffffff;
  --radius:14px;
  --maxw:1280px;
  --ease:cubic-bezier(.16,1,.3,1);
  --pad:24px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}
body{
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg);color:var(--fg);line-height:1.55;font-weight:400;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
h1,h2,h3{font-family:'Syne','Inter',system-ui,sans-serif;font-weight:600;letter-spacing:-.02em;line-height:1.15;padding-bottom:.04em}
.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}
.accent{color:var(--primary)}
.eyebrow{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:500;margin-bottom:14px}

/* ---------- Buttons / links ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;padding:8px 0;background:none;border:0;border-radius:0;
  color:var(--fg);font-size:.8rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;position:relative}
.btn::after{content:"→";font-size:1.15em;transition:transform .42s var(--ease)}
.btn::before{content:"";position:absolute;left:0;bottom:0;height:1.5px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.btn:hover::after{transform:translateX(7px)}
.btn:hover::before{transform:scaleX(1)}
.btn--ghost::before{display:none}
.btn--ghost::after{content:none}
.hero-img .btn,.cta-band .btn{color:#fff}
.link-underline{position:relative;display:inline-flex;align-items:center;gap:.5em;
  font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;font-weight:500}
.link-underline::after{content:"";position:absolute;left:0;bottom:-3px;width:100%;height:1px;
  background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}
.link-underline:hover::after{transform:scaleX(1);transform-origin:left}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:200;background:rgba(245,245,247,.82);
  backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid transparent;transition:border-color .3s}
.site-header.scrolled{border-color:var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:10px;font-weight:600;letter-spacing:-.01em;font-size:1.05rem}
.brand .mark{width:30px;height:30px;border-radius:9px;background:var(--primary);color:#fff;
  display:grid;place-items:center;font-weight:700;font-size:1rem}
.logo{display:block;height:26px;width:auto}
@media(max-width:520px){.logo{height:22px}}
.nav-links{display:none;gap:30px;align-items:center}
.nav-links a{font-size:.74rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:500;transition:color .25s}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--fg)}
.nav-right{display:flex;align-items:center;gap:18px}
.lang{font-size:.72rem;letter-spacing:.1em;font-weight:600;color:var(--muted)}
.lang a[aria-current="page"]{color:var(--fg)}
/* Burger — asymmetrisch mit blauem Akzent, morpht zum X */
.burger{display:inline-flex;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px;position:relative;z-index:1}
.burger span{height:2px;border-radius:2px;background:var(--fg);display:block;
  transition:transform .35s var(--ease),opacity .25s,background .25s}
.burger span:nth-child(1){width:24px}
.burger span:nth-child(2){width:14px;margin-left:auto;background:var(--primary)}
.burger span:nth-child(3){width:24px}
body.menu-open .burger span{background:#fff}
body.menu-open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.menu-open .burger span:nth-child(2){opacity:0}
body.menu-open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Header transparent + weisse Icons, solange das Menü offen ist */
body.menu-open .site-header{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-color:transparent}
body.menu-open .brand .logo{filter:brightness(0) invert(1)}
body.menu-open .lang,body.menu-open .lang a{color:#fff}

/* Mobile-Menü — vollflächig Blau, weiss, gross, nummeriert */
.mobile-menu{position:fixed;inset:0;background:var(--primary);z-index:190;transform:translateY(-100%);
  transition:transform .55s var(--ease);display:flex;flex-direction:column;justify-content:center;gap:4px;padding:0 var(--pad);counter-reset:mnav}
.mobile-menu.open{transform:translateY(0)}
.mobile-menu a{counter-increment:mnav;display:flex;align-items:baseline;gap:16px;
  font-family:'Syne','Inter',sans-serif;font-size:clamp(2.4rem,12vw,3.6rem);font-weight:600;letter-spacing:-.02em;line-height:1.12;
  padding:10px 0;color:#fff;opacity:0;transform:translateY(26px);
  transition:opacity .55s var(--ease),transform .55s var(--ease)}
.mobile-menu a::before{content:counter(mnav,decimal-leading-zero);
  font-family:'Inter',sans-serif;font-size:.82rem;font-weight:500;letter-spacing:.16em;color:rgba(255,255,255,.55)}
.mobile-menu.open a{opacity:1;transform:none}
.mobile-menu.open a:nth-child(1){transition-delay:.14s}
.mobile-menu.open a:nth-child(2){transition-delay:.20s}
.mobile-menu.open a:nth-child(3){transition-delay:.26s}
.mobile-menu.open a:nth-child(4){transition-delay:.32s}
body.menu-open{overflow:hidden}

/* ---------- Hero ---------- */
.hero{min-height:88vh;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden;padding:120px 0 70px}
.hero h1{font-size:clamp(1.8rem,9vw,6rem);line-height:1.12;padding-bottom:.16em}
.hero .l2{color:var(--primary)}
.hero-sub{margin-top:28px;max-width:560px;color:var(--muted);font-size:1.05rem;font-weight:300;line-height:1.6}
.hero-cta{margin-top:34px;display:flex;flex-wrap:wrap;gap:18px;align-items:center}
.hero-note{margin-top:18px;color:var(--muted);font-size:.85rem}
/* Wasserzeichen: vollständiges Logo, vertikal gedreht (rechte Hero-Kante) */
.hero-watermark{position:absolute;right:-190px;top:calc(50% - 50px);width:min(74vh,620px);height:100px;
  transform:rotate(90deg);transform-origin:center center;
  background:url('assets/weblikon-logo-color.svg') center/contain no-repeat;opacity:.06;pointer-events:none;user-select:none}
@media(max-width:860px){.hero-watermark{display:none}}
/* Typewriter / Cursor */
.type-rotate{white-space:nowrap}
.type-caret,.cursor-blink{display:inline-block;color:var(--primary);font-weight:300;margin-left:1px;animation:blink 1s step-end infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}
/* Voll-Bild-Band (z.B. Leistungen) */
.lead-image{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:5/2;box-shadow:0 30px 60px -34px rgba(22,24,28,.4)}
.lead-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.4s var(--ease)}
.lead-image:hover img{transform:scale(1.04)}
.lead-image .lead-badge{position:absolute;left:18px;bottom:18px;background:rgba(255,255,255,.93);backdrop-filter:blur(6px);padding:9px 15px;border-radius:12px;font-size:.78rem;font-weight:500;color:var(--fg);box-shadow:0 8px 24px -12px rgba(0,0,0,.3)}
@media(max-width:680px){.lead-image{aspect-ratio:3/2}}
/* letter reveal */
.reveal-letters{padding-bottom:.06em}
.reveal-letters span{display:inline-block;opacity:0;transform:translateY(110%);
  transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal-letters.in span{opacity:1;transform:translateY(0)}

/* ---------- Sections ---------- */
section{padding:80px 0}
.section-head{margin-bottom:48px}
.section-head h2{font-size:clamp(2rem,6vw,3.4rem)}

/* services rows */
.srow{display:grid;grid-template-columns:1fr;gap:6px;padding:26px 0;border-top:1px solid var(--line);
  transition:padding-left .4s var(--ease)}
.srow:last-child{border-bottom:1px solid var(--line)}
.srow:hover{padding-left:14px}
.srow .num{font-size:.7rem;color:var(--muted);letter-spacing:.2em}
.srow .ttl{font-size:1.6rem;font-weight:300}
.srow .desc{color:var(--muted);font-weight:300}
@media(min-width:820px){
  .srow{grid-template-columns:60px 1fr 1fr;align-items:baseline;gap:30px}
  .srow .desc{text-align:left}
}

/* ---------- Card stack (Ausgewählte Arbeiten) ---------- */
.work{position:relative;height:800vh}
.ts-slot:not(:empty){margin:24px 0 4px}
.work-sticky{position:sticky;top:64px;height:calc(100vh - 64px);display:flex;flex-direction:column;overflow:hidden}
.work-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:34px 0 18px}
.work-head h2{font-size:clamp(1.8rem,5vw,3rem)}
.work-stage{position:relative;flex:1;margin:0 0 20px;border-radius:var(--radius);overflow:hidden}
.work-card{position:absolute;inset:0;border-radius:var(--radius);overflow:hidden;background:#0b1020;
  will-change:transform,opacity,filter;transform-origin:center bottom;display:block}
.ref-shot{display:block}
.work-card picture,.ref-shot picture{display:block;width:100%;height:100%}
.work-card img{width:100%;height:100%;object-fit:cover;object-position:top}
.work-card .fallback{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#fff;text-align:center;padding:20px}
.work-card .fallback b{font-size:1.6rem;font-weight:300}
.work-card .fallback span{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;opacity:.6}
.work-card .meta{display:none;position:absolute;left:0;right:0;bottom:0;justify-content:space-between;
  padding:18px 22px;color:#fff;font-size:.8rem;background:linear-gradient(transparent,rgba(0,0,0,.55))}
.work-card .meta .url{letter-spacing:.12em;text-transform:uppercase;opacity:.8;font-size:.68rem}
.work-progress{height:2px;background:var(--line);border-radius:2px;overflow:hidden}
.work-progress span{display:block;height:100%;background:var(--primary);transform:scaleX(0);transform-origin:left}
/* Mobile: Selected Work als Karten-Deck mit Scroll-Animation */
@media(max-width:819px){
  .work{height:640vh}
  .work-sticky{position:sticky;top:64px;height:calc(100vh - 64px);height:calc(100svh - 64px);
    display:flex;flex-direction:column;overflow:hidden;padding-left:0;padding-right:0}
  .work-head{padding:22px var(--pad) 12px}
  .work-stage{position:relative;flex:none;width:min(76vw,310px);aspect-ratio:700/1192;margin:auto 0;align-self:center;border-radius:0;overflow:visible;background:none}
  .work-card{position:absolute;inset:0;border-radius:16px;overflow:hidden;background:#0b1020;
    box-shadow:0 30px 60px -24px rgba(16,18,28,.5);
    will-change:transform,opacity;transform-origin:center center;backface-visibility:hidden}
  .work-card img{object-fit:cover;object-position:top;will-change:transform}
  .work-card .meta{display:none}
  .work-progress{display:none}
  .work-dots{display:flex;gap:7px;justify-content:center;align-items:center;padding:14px var(--pad) 4px}
  .work-dots i{width:6px;height:6px;border-radius:99px;background:var(--line);transition:width .45s var(--ease),background .45s}
  .work-dots i.on{width:22px;background:var(--primary)}
}

/* ---------- CTA band ---------- */
.cta-band{text-align:center;padding:110px 0;color:#fff;background:#16181C}
.cta-band>.container{position:relative;z-index:1}
.cta-band .accent{color:#8aa0ff}

/* Hintergrundbilder (dezent) */
.bg-image{position:relative;overflow:hidden}
.bg-image>*{position:relative;z-index:1}
.bg-image::before{content:"";position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;pointer-events:none}
.bg-office::before{background-image:url('assets/office.png');opacity:.13}
/* KI-Banner: Bild oben, sauber (wie Referenzen-Hero) */
.ki-banner{position:relative;overflow:hidden;border-radius:18px;margin-bottom:26px;min-height:230px;display:flex;align-items:flex-end;padding:26px 30px;background:#11151f}
.ki-banner::before{content:"";position:absolute;inset:0;background:url('assets/ki-art.webp') center/cover no-repeat;opacity:.96}
.ki-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(17,21,31,.08),rgba(17,21,31,.62))}
.ki-banner h2{position:relative;z-index:1;color:#fff;margin:0}

/* Dunkler Bild-Hero (z.B. Referenzen mit Büro-Bild) */
.hero-img{position:relative;overflow:hidden;color:#fff;background:#0e1320}
.hero-img::before{content:"";position:absolute;inset:0;background-size:cover;background-position:center;opacity:.85;animation:kenburns 24s ease-in-out infinite alternate}
@keyframes kenburns{from{transform:scale(1.02) translateY(0)}to{transform:scale(1.13) translateY(-1.5%)}}
.hero-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,16,26,.5),rgba(12,16,26,.84))}
.hero-img>*{position:relative;z-index:1}
.hero-img .eyebrow{color:#cdd2da}
.hero-img h1{color:#fff}
.hero-img .hero-sub{color:#e7e9ee}
.hero-img .accent{color:#8aa0ff}
.hero-office::before{background-image:url('assets/office.png')}
.hero-art::before{background-image:url('assets/ki-art.webp');opacity:.78}
.cta-band h2{font-size:clamp(1.8rem,6vw,3rem);max-width:760px;margin:0 auto 28px}

/* ---------- Footer ---------- */
.site-footer{border-top:1px solid var(--line);padding:54px 0 40px;color:var(--muted);font-size:.85rem}
.foot-grid{display:flex;flex-direction:column;gap:26px}
.foot-grid a{color:var(--muted);transition:color .25s}
.foot-grid a:hover{color:var(--fg)}
.foot-links{display:flex;flex-wrap:wrap;gap:18px}
@media(min-width:820px){.foot-grid{flex-direction:row;justify-content:space-between;align-items:flex-start}}

/* ---------- Scroll reveal ---------- */
.fade-up{opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.fade-up.in{opacity:1;transform:translateY(0)}
.s1{transition-delay:.08s}.s2{transition-delay:.16s}.s3{transition-delay:.24s}.s4{transition-delay:.32s}
.line{height:1px;background:var(--line);transform:scaleX(0);transform-origin:left;transition:transform 1.1s var(--ease)}
.line.in{transform:scaleX(1)}
/* BAM-Reveal: Bilder wischen rein */
.reveal-img{clip-path:inset(0 100% 0 0);transform:translateY(26px);transition:clip-path 1.15s var(--ease),transform 1.15s var(--ease)}
.reveal-img.in{clip-path:inset(0 0 0 0);transform:none}

/* ---------- Desktop nav ---------- */
@media(min-width:980px){
  .nav-links{display:flex}
  .burger{display:none}
  :root{--pad:40px}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .fade-up,.reveal-letters span,.reveal-img{opacity:1;transform:none;clip-path:none}
}
