/* ============================================================
   ENTRUENCER — One-Pager Relaunch
   Two dark directions: [data-dir="a"] Glasklar · [data-dir="b"] Werkbank
   ============================================================ */

/* ---- Brand accent (overridable via tweaks) ---- */
:root{
  --g1:#1890C0;  /* blue  */
  --g2:#18A8C0;  /* cyan  */
  --g3:#48A860;  /* green */
  --g-warn:#E0B23A; /* amber - status "in Entwicklung" */
  --grad: linear-gradient(110deg, var(--g1) 0%, var(--g2) 48%, var(--g3) 100%);
  --grad-soft: linear-gradient(110deg, var(--g1), var(--g3));
  --head-font: var(--head-auto);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:'Manrope',system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
::selection{background:color-mix(in oklab, var(--g2) 45%, transparent);color:#fff;}

/* ============================================================
   DIRECTION TOKENS
   ============================================================ */
[data-dir="a"]{
  --bg:#080B14;
  --bg-2:#0B0F1B;
  --panel:#0E1320;
  --panel-2:#11182A;
  --line:rgba(255,255,255,.085);
  --line-2:rgba(255,255,255,.14);
  --ink:#EAEEF6;
  --ink-2:#AEB8CA;
  --ink-3:#727E94;
  --head-auto:'Space Grotesk','Manrope',sans-serif;
  --eyebrow-font:'Space Grotesk',sans-serif;
  --radius:20px;
  --radius-sm:14px;
  --maxw:1180px;
}
[data-dir="b"]{
  --bg:#0A0C0F;
  --bg-2:#0D1014;
  --panel:#121519;
  --panel-2:#171B20;
  --line:rgba(255,255,255,.10);
  --line-2:rgba(255,255,255,.18);
  --ink:#F1F3F5;
  --ink-2:#A9AFB8;
  --ink-3:#6E757F;
  --head-auto:'Space Grotesk','Manrope',sans-serif;
  --eyebrow-font:'Space Mono',monospace;
  --radius:8px;
  --radius-sm:6px;
  --maxw:1220px;
}

body{background:var(--bg);color:var(--ink);}

/* ============================================================
   LAYOUT PRIMITIVES
   ============================================================ */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
.section{position:relative;padding:120px 0;}
.section-tight{padding:84px 0;}
@media(max-width:760px){
  .wrap{padding:0 20px}
  .section{padding:76px 0}
  .section-tight{padding:56px 0}
}

.eyebrow{
  font-family:var(--eyebrow-font);
  font-size:12.5px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink-3);
  display:inline-flex;align-items:center;gap:10px;
  margin:0 0 22px;
}
.eyebrow::before{
  content:"";width:26px;height:1px;background:var(--grad);
}
[data-dir="b"] .eyebrow{letter-spacing:.1em;font-size:12px;}

.h-grad{
  background:var(--grad);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}

h1,h2,h3{font-family:var(--head-font);font-weight:600;margin:0;line-height:1.04;letter-spacing:-.02em;}
[data-dir="b"] h1,[data-dir="b"] h2,[data-dir="b"] h3{font-weight:700;letter-spacing:-.025em;}

.section-head{max-width:760px;margin:0 0 56px;}
.section-head h2{
  font-size:clamp(32px,4.4vw,54px);
}
.section-head .sub{
  margin:20px 0 0;font-size:18px;line-height:1.55;color:var(--ink-2);max-width:620px;
  text-wrap:pretty;
}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--head-font);font-weight:600;font-size:15.5px;
  padding:15px 26px;border-radius:999px;border:1px solid transparent;
  cursor:pointer;transition:transform .18s cubic-bezier(.3,.7,.4,1),box-shadow .25s,background .2s,border-color .2s;
  letter-spacing:-.01em;line-height:1;white-space:nowrap;
}
[data-dir="b"] .btn{border-radius:7px;}
.btn-primary{
  background:var(--grad);color:#04121a;
  box-shadow:0 10px 30px -10px color-mix(in oklab,var(--g2) 70%,transparent);
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 40px -10px color-mix(in oklab,var(--g2) 75%,transparent);}
.btn-ghost{
  background:transparent;color:var(--ink);border-color:var(--line-2);
}
.btn-ghost:hover{border-color:var(--ink-2);background:rgba(255,255,255,.03);transform:translateY(-2px);}
.btn svg{width:16px;height:16px}

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:sticky;top:0;z-index:100;
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  background:color-mix(in oklab, var(--bg) 72%, transparent);
  border-bottom:1px solid transparent;
  transition:border-color .3s,background .3s;
}
.nav.scrolled{border-bottom-color:var(--line);}
.nav-inner{
  max-width:var(--maxw);margin:0 auto;padding:16px 32px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.nav-logo{height:30px;width:auto}
.nav-links{display:flex;align-items:center;gap:34px;}
.nav-links a{
  font-size:14.5px;color:var(--ink-2);font-weight:500;
  position:relative;padding:4px 0;transition:color .2s;
}
.nav-links a:hover{color:var(--ink)}
.nav-links a::after{
  content:"";position:absolute;left:0;bottom:-2px;height:1.5px;width:0;
  background:var(--grad);transition:width .25s;
}
.nav-links a:hover::after{width:100%}
.nav-cta{display:flex;align-items:center;gap:14px}
.nav .btn{padding:11px 20px;font-size:14px}
@media(max-width:900px){
  .nav-links{display:none}
  .nav-inner{padding:14px 20px}
}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;overflow:hidden;padding:118px 0 110px;}
.hero-glow{
  position:absolute;inset:0;z-index:0;pointer-events:none;
}
.hero-glow::before{
  content:"";position:absolute;top:-12%;left:50%;transform:translateX(-50%);
  width:1100px;height:680px;
  background:radial-gradient(60% 60% at 50% 30%, color-mix(in oklab,var(--g2) 26%,transparent), transparent 70%);
  filter:blur(20px);opacity:.7;
}
[data-dir="b"] .hero-glow::before{
  background:radial-gradient(50% 60% at 30% 20%, color-mix(in oklab,var(--g1) 30%,transparent), transparent 72%),
            radial-gradient(45% 55% at 80% 10%, color-mix(in oklab,var(--g3) 22%,transparent), transparent 70%);
  opacity:.6;
}
/* blueprint grid for direction B */
.grid-bg{
  position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),
                   linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:radial-gradient(120% 100% at 50% 0%,#000 30%,transparent 75%);
  mask-image:radial-gradient(120% 100% at 50% 0%,#000 30%,transparent 75%);
}
[data-dir="b"] .grid-bg{opacity:1}

.hero-inner{position:relative;z-index:2;max-width:920px;}
.hero h1{
  font-size:clamp(42px,6.6vw,82px);
  line-height:1.0;margin:0 0 26px;text-wrap:balance;
}
[data-dir="b"] .hero h1{font-size:clamp(44px,7vw,90px);line-height:.98;}
.hero .lede{
  font-size:clamp(18px,2.1vw,21px);line-height:1.55;color:var(--ink-2);
  max-width:660px;margin:0 0 38px;text-wrap:pretty;
}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;align-items:center;}
.hero-meta{
  margin-top:44px;display:flex;flex-wrap:wrap;gap:10px 26px;align-items:center;
  font-size:13.5px;color:var(--ink-3);
}
.hero-meta .dot{width:4px;height:4px;border-radius:50%;background:var(--g2);display:inline-block;margin-right:10px;vertical-align:middle;}
.hero-meta span{display:inline-flex;align-items:center;}

/* ============================================================
   TICKER (Ruhrpott marquee)
   ============================================================ */
.ticker{
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  overflow:hidden;white-space:nowrap;padding:18px 0;
  background:var(--bg-2);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.ticker-track{display:inline-flex;gap:0;animation:ticker 34s linear infinite;}
.ticker-track span{
  font-family:var(--head-font);font-weight:600;font-size:clamp(18px,2.4vw,26px);
  padding:0 30px;color:var(--ink);letter-spacing:-.01em;display:inline-flex;align-items:center;gap:30px;
}
.ticker-track span::after{content:"•";color:var(--g2);}
[data-dir="b"] .ticker-track span{text-transform:uppercase;letter-spacing:.01em;}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.ticker-track{animation:none}}

/* ============================================================
   PROOF / DIFFERENZIERUNG
   ============================================================ */
.proof{background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.proof-claim{
  font-family:var(--head-font);font-weight:600;font-size:clamp(26px,3.4vw,40px);
  line-height:1.12;letter-spacing:-.02em;max-width:880px;margin:0 0 56px;text-wrap:balance;
}
.proof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.proof-item{padding-top:26px;border-top:1px solid var(--line-2);}
.proof-item .n{
  font-family:var(--eyebrow-font);font-size:13px;color:var(--g2);margin:0 0 14px;letter-spacing:.06em;
}
.proof-item h3{font-size:20px;margin:0 0 10px;}
.proof-item p{margin:0;color:var(--ink-2);font-size:15.5px;line-height:1.6;}
@media(max-width:820px){.proof-grid{grid-template-columns:1fr;gap:0}.proof-item{margin-top:24px}}

/* ============================================================
   LEISTUNGEN
   ============================================================ */
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
.svc-card{
  position:relative;padding:38px 36px 40px;border-radius:var(--radius);
  background:var(--panel);border:1px solid var(--line);
  overflow:hidden;transition:transform .25s cubic-bezier(.3,.7,.4,1),border-color .25s,background .25s;
}
.svc-card::before{
  content:"";position:absolute;left:0;top:0;height:100%;width:3px;
  background:var(--grad);opacity:0;transition:opacity .25s;
}
[data-dir="b"] .svc-card::before{width:100%;height:3px;}
.svc-card:hover{transform:translateY(-4px);border-color:var(--line-2);background:var(--panel-2);}
.svc-card:hover::before{opacity:1;}
.svc-num{
  font-family:var(--eyebrow-font);font-size:13px;color:var(--ink-3);letter-spacing:.06em;
  margin:0 0 22px;display:block;
}
.svc-icon{
  width:50px;height:50px;border-radius:13px;margin:0 0 24px;
  display:flex;align-items:center;justify-content:center;
  background:color-mix(in oklab,var(--g2) 14%, var(--panel));
  border:1px solid var(--line-2);
}
[data-dir="b"] .svc-icon{border-radius:6px;}
.svc-icon svg{width:24px;height:24px;stroke:var(--g2);fill:none;stroke-width:1.6;}
.svc-card h3{font-size:24px;margin:0 0 12px;}
.svc-card p{margin:0;color:var(--ink-2);font-size:15.5px;line-height:1.62;}
@media(max-width:820px){.svc-grid{grid-template-columns:1fr}}

/* ============================================================
   KI BAND
   ============================================================ */
.ai{position:relative;overflow:hidden;background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.ai-glow{
  position:absolute;right:-10%;top:50%;transform:translateY(-50%);
  width:680px;height:680px;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle, color-mix(in oklab,var(--g3) 18%,transparent), transparent 65%);
  filter:blur(10px);
}
.ai-inner{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center;}
.ai h2{font-size:clamp(30px,4vw,50px);margin:0 0 22px;text-wrap:balance;}
.ai p{color:var(--ink-2);font-size:17px;line-height:1.62;margin:0 0 18px;max-width:520px;}
.ai-uses{display:flex;flex-direction:column;gap:14px;}
.ai-use{
  display:flex;gap:16px;align-items:flex-start;padding:20px 22px;border-radius:var(--radius-sm);
  background:var(--panel);border:1px solid var(--line);transition:border-color .2s,transform .2s;
}
.ai-use:hover{border-color:var(--line-2);transform:translateX(4px);}
.ai-use .ic{
  flex:none;width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;
  background:var(--grad);color:#04121a;font-family:var(--head-font);font-weight:700;font-size:15px;
}
[data-dir="b"] .ai-use .ic{border-radius:5px;}
.ai-use h4{font-family:var(--head-font);font-size:17px;margin:2px 0 5px;font-weight:600;}
.ai-use p{margin:0;font-size:14.5px;line-height:1.5;color:var(--ink-2);}
@media(max-width:900px){.ai-inner{grid-template-columns:1fr;gap:40px}}

/* ============================================================
   PRODUKTE (SaaS)
   ============================================================ */
.prod-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.prod-card{
  position:relative;display:flex;flex-direction:column;
  padding:34px 32px 32px;border-radius:var(--radius);
  background:linear-gradient(180deg,var(--panel-2),var(--panel));
  border:1px solid var(--line);overflow:hidden;min-height:300px;
  transition:transform .25s cubic-bezier(.3,.7,.4,1),border-color .25s;
}
.prod-card:hover{transform:translateY(-5px);border-color:var(--line-2);}
/* Ordessa: ganze Karte ist Link zu ordessa.de */
.prod-card.is-link{cursor:pointer;color:inherit;text-decoration:none;}
.prod-card.is-link:hover{border-color:color-mix(in oklab,var(--g3) 55%,var(--line-2));}
.prod-link-cue{display:inline-flex;vertical-align:middle;margin-left:8px;opacity:.5;transition:transform .25s,opacity .25s;}
.prod-link-cue svg{width:18px;height:18px;}
.prod-card.is-link:hover .prod-link-cue{opacity:1;transform:translateX(4px);}
.prod-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:auto;}
.prod-mark{
  width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  font-family:var(--head-font);font-weight:700;font-size:22px;color:#04121a;background:var(--grad);
}
[data-dir="b"] .prod-mark{border-radius:6px;}
.badge{
  --st:var(--g3); /* Statusfarbe: gruen=live (default), gelb=in Entwicklung */
  font-family:var(--eyebrow-font);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  padding:6px 11px;border-radius:999px;border:1px solid color-mix(in oklab,var(--st) 45%,var(--line-2));
  color:var(--st);background:color-mix(in oklab,var(--st) 10%,transparent);white-space:nowrap;
  display:inline-flex;align-items:center;gap:7px;
}
.badge--live{--st:var(--g3);}
.badge--dev{--st:var(--g-warn);}
[data-dir="b"] .badge{border-radius:4px;}
.badge .pulse{width:6px;height:6px;border-radius:50%;background:var(--st);box-shadow:0 0 0 0 color-mix(in oklab,var(--st) 60%,transparent);animation:pulse 2s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in oklab,var(--st) 55%,transparent)}70%{box-shadow:0 0 0 8px transparent}100%{box-shadow:0 0 0 0 transparent}}
.prod-card h3{font-size:27px;margin:28px 0 10px;}
.prod-card .kicker{font-family:var(--eyebrow-font);font-size:12px;color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;margin:0 0 0;}
.prod-card p{margin:10px 0 0;color:var(--ink-2);font-size:15px;line-height:1.6;}
@media(max-width:900px){.prod-grid{grid-template-columns:1fr;gap:18px}.prod-card{min-height:0}}

/* ============================================================
   PROZESS
   ============================================================ */
.proc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;counter-reset:step;}
.proc-step{position:relative;padding:30px 26px 32px;border-radius:var(--radius-sm);background:var(--panel);border:1px solid var(--line);}
.proc-step .step-n{
  font-family:var(--head-font);font-weight:700;font-size:44px;line-height:1;
  margin:0 0 18px;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
  opacity:.95;
}
.proc-step h3{font-size:18px;margin:0 0 10px;}
.proc-step p{margin:0;color:var(--ink-2);font-size:14.5px;line-height:1.55;}
@media(max-width:900px){.proc-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.proc-grid{grid-template-columns:1fr}}

/* ============================================================
   BRANCHEN
   ============================================================ */
.branchen{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;}
.branche{
  font-family:var(--head-font);font-weight:600;font-size:16px;
  padding:13px 22px;border-radius:999px;border:1px solid var(--line);
  background:var(--panel);color:var(--ink-2);transition:border-color .2s,color .2s,background .2s;
}
[data-dir="b"] .branche{border-radius:6px;}
.branche:hover{border-color:var(--line-2);color:var(--ink);background:var(--panel-2);}

/* ============================================================
   KONTAKT
   ============================================================ */
.contact{background:var(--bg-2);border-top:1px solid var(--line);position:relative;overflow:hidden;}
.contact-glow{position:absolute;left:50%;bottom:-40%;transform:translateX(-50%);width:900px;height:600px;background:radial-gradient(50% 50% at 50% 50%,color-mix(in oklab,var(--g2) 16%,transparent),transparent 70%);filter:blur(20px);pointer-events:none;}
.contact-inner{position:relative;z-index:2;display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:start;}
.contact-form{display:flex;flex-direction:column;gap:16px;}
.field{display:flex;flex-direction:column;gap:8px;}
.field label{font-size:13px;font-family:var(--eyebrow-font);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);}
.field input,.field textarea,.field select{
  font-family:'Manrope',sans-serif;font-size:15.5px;color:var(--ink);
  background:var(--panel);border:1px solid var(--line-2);border-radius:var(--radius-sm);
  padding:14px 16px;outline:none;transition:border-color .2s,background .2s;width:100%;
}
.field textarea{resize:vertical;min-height:120px;line-height:1.5;}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--g2);background:var(--panel-2);}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-3);}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-foot{display:flex;align-items:center;gap:18px;margin-top:6px;flex-wrap:wrap;}
.form-note{font-size:13px;color:var(--ink-3);}
.form-done{
  padding:30px 32px;border-radius:var(--radius);background:var(--panel);border:1px solid color-mix(in oklab,var(--g3) 40%,var(--line-2));
  display:flex;flex-direction:column;gap:10px;
}
.form-done h3{font-size:24px;}
.form-done p{margin:0;color:var(--ink-2);font-size:15.5px;line-height:1.55;}

.contact-side{display:flex;flex-direction:column;gap:14px;}
.contact-card{padding:26px 26px;border-radius:var(--radius-sm);background:var(--panel);border:1px solid var(--line);}
.contact-card .lbl{font-family:var(--eyebrow-font);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:0 0 8px;}
.contact-card .val{font-family:var(--head-font);font-size:21px;font-weight:600;margin:0;}
.contact-card a.val:hover{color:var(--g2);}
.contact-card .meta{font-size:14px;color:var(--ink-2);margin:6px 0 0;line-height:1.5;}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{padding:64px 0 40px;border-top:1px solid var(--line);}
.footer-top{display:flex;justify-content:space-between;align-items:flex-start;gap:40px;flex-wrap:wrap;margin-bottom:44px;}
.footer-logo{height:30px;width:auto;margin-bottom:16px;}
.footer-tag{color:var(--ink-2);font-size:15px;max-width:320px;line-height:1.55;}
.footer-cols{display:flex;gap:64px;flex-wrap:wrap;}
.footer-col h4{font-family:var(--eyebrow-font);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin:0 0 16px;font-weight:500;}
.footer-col a{display:block;color:var(--ink-2);font-size:14.5px;margin-bottom:11px;transition:color .2s;}
.footer-col a:hover{color:var(--ink);}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding-top:28px;border-top:1px solid var(--line);font-size:13.5px;color:var(--ink-3);}
.footer-bottom .made{color:var(--ink-3);}

/* ============================================================
   ENTRANCE ANIMATION
   ============================================================ */
/* Content is ALWAYS visible (opacity:1) — visibility is never animated, so a
   stalled/throttled animation in an unfocused tab can never blank content out.
   The entrance animates transform only; if it strands, content is merely
   un-shifted but fully readable. */
.reveal{opacity:1;}
@media(prefers-reduced-motion:no-preference){
  .reveal.in{animation:revealRise .72s cubic-bezier(.2,.7,.3,1) both;}
}
@keyframes revealRise{
  from{transform:translateY(22px);}
  to{transform:none;}
}
