/* Centered – website styles (matches the app's design tokens) */
html,body{margin:0; background:#121212}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
.site{
  --bg:#121212; --surface:#1C1C1C; --card:#232323; --card-2:#2E2E2E; --line:#2E2E2E; --line-2:#3A3A3C;
  --text:#F5F5F7; --text-2:#D1D1D6; --text-3:#A1A1A6; --text-4:#8E8E93;
  --accent:#FFD60A; --person:#64D2FF;
  --maxw:1080px; --gutter:48px;
  container-type:inline-size;
  background:var(--bg); color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Helvetica Neue",sans-serif;
  -webkit-font-smoothing:antialiased; position:relative; min-height:100vh; overflow-x:clip;
  font-size:17px; line-height:1.55; overflow-wrap:anywhere;
}
.site *{box-sizing:border-box}
.site a{color:var(--text); text-decoration:underline; text-decoration-color:var(--accent); text-decoration-thickness:1.5px; text-underline-offset:3px}
.site a:hover{color:var(--accent)}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 var(--gutter)}
.read{max-width:680px}

/* header / footer */
.hdr{height:72px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line)}
.brand{display:flex; align-items:center; gap:10px; font-weight:600; font-size:17px; color:var(--text)!important; text-decoration:none!important}
.brand img{width:30px; height:30px; border-radius:7px; display:block}
.nav{display:flex; gap:28px; font-size:15px}
.nav a{color:var(--text-3); text-decoration:none}
.nav a[aria-current="page"]{color:var(--text)}
.nav a:hover{color:var(--text)}
.ftr{border-top:1px solid var(--line); margin-top:96px}
.ftr .wrap{min-height:96px; display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:14px; color:var(--text-4)}
.ftr nav{display:flex; gap:24px}
.ftr a{color:var(--text-3); text-decoration:none}

/* type */
.eyebrow{font-size:13px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--text-4)}
.h1{font-size:64px; line-height:1.04; letter-spacing:-.025em; font-weight:700; margin:0}
.h2{font-size:36px; line-height:1.12; letter-spacing:-.02em; font-weight:700; margin:0}
.h3{font-size:20px; line-height:1.3; font-weight:600; margin:0}
.lead{font-size:20px; line-height:1.5; color:var(--text-3); margin:0}
.muted{color:var(--text-3)}
.small{font-size:14px; color:var(--text-4)}
.sec{padding-top:112px}
.sec-head{display:flex; flex-direction:column; gap:12px; margin-bottom:40px; max-width:640px}

/* buttons */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:10px; height:52px; padding:0 26px; border-radius:26px; font-size:17px; font-weight:600; text-decoration:none!important}
.btn-primary{background:var(--accent); color:#000!important}
.btn-secondary{border:1.5px solid #5C5C5C; color:var(--text-2)!important}
.badge-store{display:inline-flex; align-items:center; justify-content:center; height:52px; padding:0 18px; border-radius:12px; border:1.5px dashed #5C5C5C; color:var(--text-3); font-size:14px; background:#000}

/* hero */
.hero{display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr); gap:56px; align-items:center; padding-top:88px}
.hero-copy{display:flex; flex-direction:column; gap:24px}
.cta-row{display:flex; flex-wrap:wrap; align-items:center; gap:16px}
.trust{display:flex; flex-wrap:wrap; gap:8px 20px; font-size:14px; color:var(--text-4)}
.trust span{display:inline-flex; align-items:center; gap:6px}

/* phone */
.phone{width:300px; aspect-ratio:393/852; border-radius:46px; padding:10px; background:#000; border:1px solid var(--line-2); box-shadow:0 40px 80px rgba(0,0,0,.55); margin:0 auto}
.phone img{width:100%; height:100%; object-fit:cover; border-radius:36px; display:block}
.phone.sm{width:220px; border-radius:36px; padding:8px}
.phone.sm img{border-radius:28px}

/* before / after */
.ba{display:grid; grid-template-columns:minmax(0,1.6fr) auto minmax(0,.6fr); gap:28px; align-items:center}
.ph-wide{aspect-ratio:16/9}
.ph-tall{aspect-ratio:9/16}
.ba-wide-wrap{position:relative; overflow:hidden; border-radius:16px}
.arrow{color:var(--accent)}
.cap{margin-top:12px; font-size:14px; color:var(--text-4); text-align:center}

/* before / after – two source orientations */
.ba-rows{display:flex; flex-direction:column; gap:48px}
.ba-row{display:grid; grid-template-columns:280px minmax(0,1fr); gap:48px; align-items:center}
.ba-text{display:flex; flex-direction:column; gap:8px}
.ba-text p{margin:0; color:var(--text-3); font-size:16px}
.ba-vis{display:flex; align-items:center; gap:24px; height:320px}
.ba-src{height:100%}
.ba-src{position:relative; overflow:hidden; border-radius:16px; flex-shrink:0}
.ba-src.ph-tall{aspect-ratio:9/16}
/* Hochkant-Quellen aus Grok sind 2:3 (784 × 1168), nicht 9:16 – in einer 9:16-Box schnitte
   `object-fit: cover` den Fels an den Seiten ab, und mit ihm den Rand des gelben Rahmens. */
.ba-src.ph-tall.src-2x3{aspect-ratio:2/3}
.ba-src.ph-wide{aspect-ratio:16/9}
.ba-vis.side{height:240px}
.ba-vis .arrow{flex-shrink:0}

/* Clips in „The idea“ (Dateien in videos/, siehe README). Den gelben Rahmen trägt der
   Vorher-Clip selbst (eingerendert) – so folgt er exakt dem Ausschnitt der App. */
.clip{position:absolute; inset:0; z-index:1; border-radius:16px; overflow:hidden; pointer-events:none; background:center/cover no-repeat}
.clip video{width:100%; height:100%; object-fit:cover; border-radius:16px; display:block}
/* Ohne JavaScript lässt sich autoplay nicht anhalten – also das Video ausblenden; stehen bleibt
   das Standbild, das als Hintergrund von .clip im HTML hängt. Hintergrund statt <img>: Fehlt die
   Datei noch, zeichnet der Browser nichts statt eines kaputten Bildsymbols. */
@media (prefers-reduced-motion: reduce){.clip video{display:none}}

/* steps */
.steps{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px}
.step{background:var(--surface); border:1px solid var(--line); border-radius:24px; padding:32px 28px; display:flex; flex-direction:column; gap:20px}
.step .num{width:32px; height:32px; border-radius:16px; background:var(--card-2); display:flex; align-items:center; justify-content:center; font-size:15px; font-weight:600; color:var(--text)}
.step p{margin:0; color:var(--text-3); font-size:16px}
/* Die Telefone stehen unten bündig: Die Karten sind gleich hoch (Grid), die Texte darüber
   unterschiedlich lang – der freie Platz gehört über das Telefon, nicht darunter. */
.step .phone{margin:auto auto 0}

/* features */
.feats{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:20px; overflow:hidden}
.feat{background:var(--bg); padding:28px; display:flex; flex-direction:column; gap:10px}
.feat svg{color:var(--text-2)}
.feat p{margin:0; color:var(--text-3); font-size:16px}

/* privacy band */
.band{background:var(--surface); border:1px solid var(--line); border-radius:24px; padding:48px; display:grid; grid-template-columns:auto minmax(0,1fr); gap:32px; align-items:start}
.band .ico{width:56px; height:56px; border-radius:16px; background:var(--card-2); display:flex; align-items:center; justify-content:center; color:var(--text)}
.band p{margin:0; color:var(--text-3)}

/* chips */
.chips{display:flex; flex-wrap:wrap; gap:10px}
.chip{height:38px; padding:0 16px; border-radius:19px; border:1px solid var(--line-2); display:inline-flex; align-items:center; font-size:15px; color:var(--text-2)}

/* price */
.prices{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px}
.price{background:var(--surface); border:1px solid var(--line); border-radius:24px; padding:32px; display:flex; flex-direction:column; gap:12px}
.price .amt{font-size:44px; font-weight:700; letter-spacing:-.02em; line-height:1}
.price .amt span{font-size:17px; font-weight:500; color:var(--text-3); letter-spacing:0}
.price ul{margin:8px 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:10px; color:var(--text-2); font-size:16px}
.price li{display:flex; gap:10px; align-items:flex-start}
.price li svg{flex-shrink:0; margin-top:4px; color:var(--text-3)}
.price.hl{border-color:#4A4A4E}
.tag{align-self:flex-start; height:24px; padding:0 10px; border-radius:12px; background:var(--card-2); font-size:12px; font-weight:600; display:inline-flex; align-items:center; color:var(--text-2)}

/* press */
.press{display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:24px}
.box{background:var(--surface); border:1px solid var(--line); border-radius:20px; padding:28px}
.facts{display:grid; grid-template-columns:120px minmax(0,1fr); gap:12px 16px; font-size:15px; margin:16px 0 0}
.facts dt{color:var(--text-4)}
.facts dd{margin:0; color:var(--text-2)}

/* page head (subpages) */
.phead{padding-top:80px; display:flex; flex-direction:column; gap:16px}
.phead .h1{font-size:52px}

/* support */
.facts-row{display:flex; flex-wrap:wrap; gap:10px; margin-top:8px}
.faq-group{margin-top:56px}
.faq-group .eyebrow{margin-bottom:12px}
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none; cursor:pointer; padding:20px 0; display:flex; justify-content:space-between; align-items:center; gap:16px; font-size:17px; font-weight:600}
.faq summary::-webkit-details-marker{display:none}
.faq summary svg{flex-shrink:0; color:var(--text-4); transition:transform .2s}
.faq details[open] summary svg{transform:rotate(180deg)}
.faq .ans{padding:0 40px 24px 0; color:var(--text-3); font-size:16px}
.faq .ans b{color:var(--text-2)}
.contact-card{margin-top:64px; background:var(--surface); border:1px solid var(--line); border-radius:24px; padding:32px; display:flex; align-items:center; justify-content:space-between; gap:24px}

/* legal */
.dl{display:grid; grid-template-columns:200px minmax(0,1fr); gap:0; margin-top:48px; border-top:1px solid var(--line)}
.dl dt,.dl dd{padding:22px 0; border-bottom:1px solid var(--line); margin:0}
.dl dt{color:var(--text-4); font-size:15px; font-weight:600}
.dl dd{color:var(--text-2); font-size:16px}
.dl dd p{margin:0 0 12px}.dl dd p:last-child{margin:0}
.legal-grid{display:grid; grid-template-columns:200px minmax(0,1fr); gap:64px; margin-top:48px}
.toc{position:sticky; top:24px; align-self:start; display:flex; flex-direction:column; gap:10px; font-size:14px}
.toc a{color:var(--text-3); text-decoration:none}
.summary{background:var(--surface); border:1px solid var(--line); border-radius:20px; padding:28px}
.summary p{margin:8px 0 0; color:var(--text-3); font-size:16px}
.legal h2{font-size:24px; font-weight:700; letter-spacing:-.01em; margin:56px 0 12px}
.legal h3{font-size:17px; font-weight:600; margin:28px 0 8px; color:var(--text)}
.legal p,.legal li{color:var(--text-3); font-size:16px; margin:0 0 12px}
.legal ul{padding-left:20px; margin:0 0 12px}

/* ---------- mobile ---------- */
@container (max-width: 640px){
  /* Auf die KINDER von .site: .site ist selbst der Container dieser Abfrage, und ein Element
     kann sich nicht selbst abfragen – auf .site gesetzt, griff der schmale Rand nie. */
  .site > *{--gutter:20px; font-size:16px}
  .hdr{height:60px}
  .nav{gap:18px; font-size:15px}
  .nav .opt{display:none}
  .h1{font-size:40px}
  .phead .h1{font-size:36px}
  .h2{font-size:28px}
  .lead{font-size:18px}
  .sec{padding-top:72px}
  .sec-head{margin-bottom:28px}
  .hero{grid-template-columns:minmax(0,1fr); gap:48px; padding-top:40px}
  .cta-row .btn,.cta-row .badge-store{width:100%}
  .phone{width:250px}
  .ba{grid-template-columns:minmax(0,1fr); gap:16px; justify-items:center}
  .ba .arrow{transform:rotate(90deg)}
  .ba .ph-tall{width:62%}
  .ba > div{width:100%}
  .ba-rows{gap:40px}
  .ba-row{grid-template-columns:minmax(0,1fr); gap:16px}
  .ba-vis{gap:10px}
  .ba-vis.up{height:240px}
  .ba-vis.side{height:104px}
  .ba-vis .arrow{width:20px; height:20px}
  .steps{grid-template-columns:minmax(0,1fr); gap:16px}
  .feats{grid-template-columns:minmax(0,1fr)}
  .band{grid-template-columns:minmax(0,1fr); padding:28px; gap:20px}
  .prices{grid-template-columns:minmax(0,1fr)}
  .press{grid-template-columns:minmax(0,1fr)}
  .facts{grid-template-columns:96px minmax(0,1fr)}
  .ftr{margin-top:72px}
  .ftr .wrap{flex-direction:column; align-items:flex-start; justify-content:center; padding-top:28px; padding-bottom:28px}
  .contact-card{flex-direction:column; align-items:stretch}
  .contact-card .btn{width:100%}
  .faq .ans{padding-right:0}
  .dl{grid-template-columns:minmax(0,1fr)}
  .dl dt{border-bottom:0; padding-bottom:4px}
  .dl dd{padding-top:0}
  .legal-grid{grid-template-columns:minmax(0,1fr); gap:0}
  .toc{display:none}
}
