@font-face{font-family:BinderManrope;src:url('assets/Manrope-Regular.woff2') format('woff2'),url('assets/Manrope-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:BinderManrope;src:url('assets/Manrope-Bold.woff2') format('woff2'),url('assets/Manrope-Bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:BinderManrope;src:url('assets/Manrope-ExtraBold.woff2') format('woff2'),url('assets/Manrope-ExtraBold.ttf') format('truetype');font-weight:800 900;font-style:normal;font-display:swap}
:root{--bg:#090a0f;--surface:#12141b;--surface2:#181b24;--surface3:#1d2029;--line:#2a2f3a;--line-soft:rgba(255,255,255,.075);--text:#f7f8f3;--muted:#9ea4b0;--muted2:#868c99;--lime:#c7ff4a;--lime2:#a8de31;--danger:#ff5a76;--danger-soft:#ff91a5;--shadow:0 28px 80px rgba(0,0,0,.34);font-family:BinderManrope,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 72% -12%,rgba(199,255,74,.105),transparent 33rem),radial-gradient(circle at 5% 36%,rgba(255,255,255,.025),transparent 28rem),var(--bg);color:var(--text);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit}.wrap{width:min(1120px,calc(100% - 36px));margin-inline:auto}
.nav{position:sticky;top:0;z-index:20;background:rgba(9,10,15,.78);backdrop-filter:blur(20px);border-bottom:1px solid var(--line-soft)}.navin{height:74px;display:flex;align-items:center;justify-content:space-between}.brand{display:inline-flex;align-items:center;gap:11px;text-decoration:none}.brand img{display:block;width:36px;height:36px;border-radius:11px;box-shadow:0 8px 24px rgba(0,0,0,.3)}.brand-word{font-size:13px;font-weight:800;letter-spacing:.22em}.links{display:flex;align-items:center;gap:8px}.navlink,.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border-radius:14px;padding:0 16px;text-decoration:none;font-weight:800;font-size:13px;transition:transform .18s ease,background .18s ease,border-color .18s ease,color .18s ease,opacity .18s ease}.navlink{color:var(--muted)}.navlink:hover{color:var(--text);background:rgba(255,255,255,.05)}.btn:hover{transform:translateY(-1px)}.btn:focus-visible,.navlink:focus-visible,a:focus-visible{outline:3px solid rgba(199,255,74,.45);outline-offset:3px}.primary{background:var(--lime);color:#10120d;border:1px solid var(--lime);box-shadow:0 10px 30px rgba(199,255,74,.12)}.primary:hover{background:var(--lime2);border-color:var(--lime2)}.secondary{background:rgba(255,255,255,.035);border:1px solid var(--line);color:var(--text)}.danger{background:rgba(255,90,118,.10);border:1px solid rgba(255,90,118,.35);color:var(--danger-soft)}
.home .nav{transition:background-color .45s ease,border-color .45s ease}.home .nav.nav-scrolled{background:rgba(9,10,15,.94);border-bottom-color:rgba(199,255,74,.16)}
.hero{position:relative;isolation:isolate;overflow:hidden;padding:112px 0 88px}.hero:after{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(ellipse 56% 60% at 50% 43%,rgba(9,10,15,.9),rgba(9,10,15,.48) 62%,transparent 100%);pointer-events:none}.hero>.wrap{position:relative;z-index:1;text-align:center}.hero-art{position:absolute;z-index:-1;inset:0;width:100%;height:100%;pointer-events:none;opacity:.72;mask-image:radial-gradient(ellipse 66% 68% at 50% 44%,rgba(0,0,0,.05) 0 34%,rgba(0,0,0,.4) 58%,#000 100%);-webkit-mask-image:radial-gradient(ellipse 66% 68% at 50% 44%,rgba(0,0,0,.05) 0 34%,rgba(0,0,0,.4) 58%,#000 100%)}.hero-blobs{position:absolute;z-index:-2;inset:-18%;pointer-events:none;filter:blur(76px);opacity:.38}.hero-blobs i{position:absolute;display:block;width:48%;aspect-ratio:1;border-radius:46% 54% 61% 39%/54% 38% 62% 46%;will-change:transform;animation:blob-drift 36s ease-in-out infinite alternate}.hero-blobs i:nth-child(1){left:2%;top:2%;background:rgba(29,32,41,.9);transform:translate3d(0,0,0) rotate(0deg) scale(1.05)}.hero-blobs i:nth-child(2){right:0;top:8%;background:rgba(63,70,67,.58);animation-duration:43s;animation-direction:alternate-reverse;transform:translate3d(0,0,0) rotate(18deg) scale(.9)}.hero-blobs i:nth-child(3){left:31%;bottom:-24%;background:rgba(199,255,74,.18);animation-duration:51s;transform:translate3d(0,0,0) rotate(-12deg) scale(.82)}.hero.motion-paused .hero-blobs i{animation-play-state:paused}@keyframes blob-drift{to{transform:translate3d(9%,-7%,0) rotate(22deg) scale(1.13)}}.kicker{display:inline-flex;align-items:center;gap:9px;color:var(--lime);font-size:10px;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.kicker:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 20px rgba(199,255,74,.6)}h1{font-size:clamp(50px,8vw,96px);line-height:.94;letter-spacing:-.06em;max-width:920px;margin:24px 0 28px;font-weight:800}h1 em{font-style:normal;color:var(--lime)}.lead{max-width:700px;color:#bdc2cb;font-size:clamp(18px,2.4vw,22px);line-height:1.5}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px}.proof{margin-top:70px;display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:26px;background:rgba(18,20,27,.72);overflow:hidden;box-shadow:var(--shadow)}.proof>div{padding:27px}.proof>div+div{border-left:1px solid var(--line)}.proof strong{display:block;font-size:24px;letter-spacing:-.035em;font-weight:800}.proof span{color:var(--muted);font-size:13px}
.hero h1,.hero .lead{max-width:62ch;margin-inline:0}.hero .lead{color:#c8ccd3}.hero .actions{justify-content:center}.hero .proof{text-align:center}.hero .proof>div{display:flex;flex-direction:column;align-items:center;justify-content:center}
.section{padding:82px 0}.sectionhead{max-width:720px;margin-bottom:36px}.section h2,.legal h1{font-size:clamp(36px,5vw,60px);line-height:1;letter-spacing:-.05em;margin:10px 0 16px;font-weight:800}.sectionhead p,.legal .intro{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.card{position:relative;padding:28px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(145deg,rgba(24,27,36,.96),rgba(16,18,24,.96));min-height:240px}.card .num{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.14em}.card h3{font-size:21px;margin:42px 0 9px;font-weight:800;letter-spacing:-.02em}.card p{color:var(--muted);font-size:14px;margin:0}.card.accent{border-color:rgba(199,255,74,.32);background:linear-gradient(145deg,rgba(199,255,74,.075),rgba(17,19,25,.95))}
.safety{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;align-items:stretch}.panel{border:1px solid var(--line);border-radius:28px;background:var(--surface);padding:34px}.panel h3{font-weight:800;letter-spacing:-.025em}.panel ul{list-style:none;padding:0;margin:22px 0 0}.panel li{padding:13px 0;border-top:1px solid var(--line);display:flex;gap:12px;color:#c8ccd3}.panel li:before{content:"✓";color:var(--lime);font-weight:800}.control{background:var(--lime);color:#10120d}.control h3{font-size:30px;line-height:1.05;margin:0 0 14px;letter-spacing:-.045em}.control p{color:#293018}.control .btn{background:#0e100b;color:#fff;margin-top:16px}
.footer{border-top:1px solid var(--line);padding:34px 0 48px;color:#777e89;font-size:12px}.footerin{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.footlinks{display:flex;gap:18px;flex-wrap:wrap}.footlinks a:hover{color:var(--text)}
.legal{width:min(74ch,calc(100% - 36px));margin:auto;padding:82px 0 110px}.legal h1{max-width:750px}.legal h2{font-size:22px;margin:46px 0 10px;font-weight:800;letter-spacing:-.02em}.legal h3{font-size:16px;margin:28px 0 8px}.legal p,.legal li{color:#b6bbc4}.legal strong{color:var(--text)}.legal .meta{color:var(--muted2);font-size:12px;margin-bottom:42px}.callout{border:1px solid rgba(199,255,74,.3);background:rgba(199,255,74,.06);padding:20px 22px;border-radius:18px;margin:28px 0}.callout.dangerbox{border-color:rgba(255,90,118,.3);background:rgba(255,90,118,.06)}.deletebox{margin:34px 0;padding:28px;border-radius:24px;background:var(--surface);border:1px solid var(--line)}.deletebox .actions{margin-top:22px}.tiny{font-size:12px;color:var(--muted2)}
.livegrid{display:grid;grid-template-columns:340px 1fr;gap:44px;align-items:center}.phonewrap{display:flex;justify-content:center}.phone{width:300px;aspect-ratio:420/868;height:auto;border-radius:34px;border:1px solid var(--line);box-shadow:var(--shadow);display:block;background:var(--surface)}.livecopy h3{margin-top:10px;font-size:clamp(28px,3.5vw,42px);line-height:1.05;letter-spacing:-.04em;font-weight:800}.livecopy>p{color:var(--muted);max-width:560px}.lifegrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:28px}.lifecard{margin:0;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:var(--surface)}.lifecard img{width:100%;height:170px;object-fit:cover;display:block}.lifecard figcaption{padding:12px 16px;color:var(--muted);font-size:12px}
.marquee{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(199,255,74,.045);padding:15px 0;white-space:nowrap}.marquee-track{display:inline-flex;animation:binder-marquee 34s linear infinite}.marquee-track span{color:var(--lime);font-size:12px;font-weight:800;letter-spacing:.22em;padding-right:8px}
@keyframes binder-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.section.alt{background:linear-gradient(180deg,rgba(255,255,255,.015),transparent)}
.stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface);padding:44px 0}.statsin{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.statsin>div{padding:0 8px}.statsin strong{display:block;font-size:clamp(34px,4.5vw,52px);font-weight:800;letter-spacing:-.05em;color:var(--lime)}.statsin span{color:var(--muted);font-size:13px;line-height:1.45;display:block;margin-top:6px}
@media(max-width:780px){.hero-art{mask-image:radial-gradient(ellipse 92% 58% at 50% 36%,rgba(0,0,0,.04) 0 38%,rgba(0,0,0,.38) 66%,#000 100%);-webkit-mask-image:radial-gradient(ellipse 92% 58% at 50% 36%,rgba(0,0,0,.04) 0 38%,rgba(0,0,0,.38) 66%,#000 100%)}.links .navlink{display:none}.livegrid{grid-template-columns:1fr}.lifegrid{grid-template-columns:1fr}.phone{width:min(280px,80vw)}.hero{padding-top:76px}.proof,.grid,.safety{grid-template-columns:1fr}.proof>div+div{border-left:0;border-top:1px solid var(--line)}.section{padding:58px 0}.panel{padding:26px}.legal{padding-top:56px}.brand-word{font-size:12px}.statsin{grid-template-columns:repeat(2,1fr);row-gap:28px}}
@media(max-width:560px){.hero .actions{display:grid;grid-template-columns:1fr}.hero .actions .btn{width:100%;min-height:48px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.navlink,.home .nav{transition:none}.marquee-track,.hero-blobs i{animation:none}}

/* Sprachuebersicht: festes Raster statt flex-wrap. Inhaltsbreite Pillen
   koennen per Konstruktion nicht symmetrisch werden — gemessen waren es
   vierzehn verschiedene Breiten bei fuenfzehn Sprachen, jede Zeile franste
   anders aus. Jetzt gleiche Kacheln in vollen Zeilen: 2x7+1 am Telefon,
   3 Spalten ab 560 px, 5 Spalten ab 900 px (15 teilt sich glatt).
   Entwurf: Kimi. */
.langstrip{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0;margin:0}
/* Feste Hoehe: Devanagari und CJK bringen mehr Zeilenabstand mit und wuerden
   ihre Kachel sonst hoeher machen als die Nachbarn. 48 px erfuellt zugleich
   das Mindestmass fuer Beruehrungsziele. */
.langstrip .lang{display:flex;align-items:center;gap:9px;height:48px;padding:0 13px;border:1px solid var(--line);border-radius:16px;background:var(--surface);font-size:13px;font-weight:800;letter-spacing:-.01em;overflow:hidden}
/* Fester Flaggenplatz: das saudische Emoji baut breiter als das deutsche.
   Ohne festen Platz beginnt der Name in jeder Kachel woanders. */
.langstrip .lang-flag{flex:0 0 24px;width:24px;text-align:center;font-size:16px;line-height:1}
.langstrip .lang-name{min-width:0;line-height:1.2;white-space:nowrap}
/* Sechs Kacheln teilen sich glatt: 2x3 am Telefon, 3x2 ab 560 px, alle
   sechs in einer Zeile ab 900 px. Keine halbe Zeile in keiner Ansicht. */
@media(min-width:560px){.langstrip{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}}
@media(min-width:900px){.langstrip{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.langstrip .lang{padding:0 13px}}
@media(min-width:1200px){.langstrip{max-width:1080px}}

.langpage{width:min(960px,calc(100% - 36px))}.langgrid{list-style:none;padding:0;margin:0 0 12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:12px}.langcard{display:flex;align-items:flex-start;gap:14px;padding:18px 20px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(145deg,rgba(24,27,36,.96),rgba(16,18,24,.96))}.langflag{font-size:26px;line-height:1.1}.langbody{display:flex;flex-direction:column;gap:4px;min-width:0}.langbody strong{font-size:19px;font-weight:800;letter-spacing:-.02em;color:var(--text)}.langname{color:var(--muted);font-size:13px}.langname code{color:var(--muted2);font-size:12px}.langtag{margin-top:6px;display:inline-flex;align-items:center;align-self:flex-start;gap:6px;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.02em;border:1px solid var(--line);color:var(--muted)}.langtag.full{border-color:rgba(199,255,74,.32);background:rgba(199,255,74,.08);color:var(--lime)}.langtag.source{border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.05);color:#d5d9df}.langtag.partial{border-color:rgba(255,255,255,.12)}.langtag.note{color:var(--muted2)}
.promo{width:100%;max-width:960px;margin:0 auto;display:block;border-radius:22px;border:1px solid var(--line);background:#000;aspect-ratio:16/9}
@media(max-width:760px){.promo{border-radius:16px}}

/* Direct download: the box on the page, and the warning that has to be read
   before an installation that Google Play will never update. */
.downloadbox{margin-top:28px;padding:28px;border:1px solid var(--line);border-radius:22px;background:var(--surface)}
.downloadmeta{margin:0 0 18px;font-variant-numeric:tabular-nums;color:var(--muted)}
.modal{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(6,7,11,.72);backdrop-filter:blur(6px)}
.modal[hidden]{display:none}
.modalbox{width:min(520px,100%);padding:28px;border:1px solid var(--line);border-radius:22px;background:var(--bg);box-shadow:0 40px 90px rgba(0,0,0,.5)}
.modalbox h3{margin:14px 0 12px;font-size:1.35rem;line-height:1.2}
.modalbox p{margin:0 0 12px;color:var(--muted)}
.modalbox .actions{margin-top:20px}
/* --accent was never defined, so this circle had no background at all: dark
   ink on the dark modal. Danger, not lime: the dialog exists to warn. */
.modalmark{width:44px;height:44px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.4rem;color:#0d0f14;background:var(--danger)}

/* FAQ: closed by default so the section stays scannable, and the answers are
   real page text — the structured data on this page claims they are visible. */
.faqlist{display:grid;gap:10px;max-width:820px;margin-inline:auto}
.faqitem{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.faqitem summary{cursor:pointer;list-style:none;padding:16px 18px;min-height:44px;display:flex;align-items:center;gap:12px;font-weight:800;font-size:15px}
.faqitem summary::-webkit-details-marker{display:none}
.faqitem summary::after{content:"+";margin-inline-start:auto;color:var(--lime);font-size:20px;line-height:1}
.faqitem[open] summary::after{content:"–"}
.faqitem summary:hover{background:rgba(255,255,255,.04)}
.faqitem summary:focus-visible{outline:3px solid rgba(199,255,74,.45);outline-offset:-3px}
.faqitem p{margin:0;padding:0 18px 18px;color:var(--muted);font-size:15px}

/* `.btn` sets display:inline-flex, and an author rule beats the browser's own
   [hidden]{display:none} no matter how specific it is. Without this the
   download button stayed on screen after the release lookup failed — a button
   whose only remaining action was to open a dialog that could not install
   anything. */
[hidden]{display:none!important}

/* The delete-account panel is lime, and the standard lime focus ring on it is
   invisible (1.00:1). Ink instead. */
.control .btn:focus-visible{outline-color:rgba(9,10,15,.85)}

/* Both anchors in the header point at sections; the sticky bar is 74px, so the
   heading has to stop below it, not under it. */
section[id]{scroll-margin-top:86px}

/* Moving text that never stops is a problem for anyone sensitive to it, and
   reduced-motion is not the only way people ask for a break. */
@media(hover:hover){.marquee:hover .marquee-track,.marquee:focus-within .marquee-track{animation-play-state:paused}}

/* The footer is the whole navigation on a phone, so its links get a real
   touch target instead of the 19px a 12px line gives them. */
.footlinks a{display:inline-flex;align-items:center;min-height:44px}

/* On a phone the header links are hidden, so without this the only way past the
   same header on every page is to tab through it again. Off-screen until
   focused. */
.skip{position:absolute;left:-9999px;top:0;z-index:60}
.skip:focus{left:12px;top:12px;background:var(--lime);color:#10120d;padding:12px 16px;border-radius:12px;font-weight:800;text-decoration:none}
main:focus{outline:none}

/* Platform and release status directly under the hero actions: the two facts a
   visitor cannot argue with belong above the fold, not seven sections down. */
.herostatus{margin:18px 0 0;color:var(--muted);font-size:14px;max-width:62ch}
.downloadbox code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;word-break:break-all;color:var(--muted)}

/* Under 780px the header links go away — except the one that leads to the
   download. Somebody who arrives already convinced should not have to scroll
   the whole page to find the way in. Below 600px the account-control button
   steps aside for it instead of wrapping onto two lines: that path is in the
   footer of every page and on the account page itself. */
.links a[href="#download"]{display:inline-flex}
.navin .btn{white-space:nowrap}
@media(max-width:599px){.links .btn.secondary{display:none}
/* As the only item left in the header it should look like the control it is,
   not like leftover text. */
.links a[href="#download"]{background:rgba(255,255,255,.035);border:1px solid var(--line);color:var(--text)}}
/* Der Hinweis vor dem Download ist lang — er muss lang sein, weil er erklaert,
   dass diese Fassung sich nie selbst aktualisiert. Auf einem 360-px-Telefon
   war er dadurch 1002 px hoch bei 740 px Bildschirm: oben und unten
   abgeschnitten, ohne Rollbalken, die Knoepfe unerreichbar. Jetzt rollt der
   Kasten in sich, die Knoepfe bleiben unten stehen. */
.modal{overflow-y:auto;overscroll-behavior:contain}
.modalbox{margin:auto;max-height:calc(100dvh - 48px);overflow-y:auto;overscroll-behavior:contain}
/* Weicher Uebergang statt harter Kante: sonst sieht der abgeschnittene Text
   unter den Knoepfen wie ein Fehler aus statt wie 'hier geht es weiter'. */
.modalbox .actions{position:sticky;bottom:0;margin-top:20px;padding-bottom:2px;background:var(--bg);box-shadow:0 -14px 18px 6px var(--bg)}
@media(max-width:560px){
  .modal{padding:16px}
  .modalbox{padding:20px;max-height:calc(100dvh - 32px)}
  .modalbox h3{font-size:1.2rem;margin:12px 0 10px}
  .modalbox p{font-size:.95rem}
  .modalbox .actions{display:grid;grid-template-columns:1fr;gap:10px}
  .modalbox .actions .btn{width:100%;min-height:48px}
}
/* Am Telefon gilt nicht dieselbe Groesse wie am Bildschirm: 10 px in
   Grossbuchstaben mit weitem Zeichenabstand liest auf 412 px niemand mehr
   bequem, und die Fusszeile ist dort die einzige Navigation. Unter 560 px
   deshalb ueberall mindestens 12 px, Fliesstext 13 px. Das Layout aendert
   sich dadurch nicht — nur die Groessen der kleinsten Schriften. */
@media(max-width:560px){
  .kicker,.card .num{font-size:12px;letter-spacing:.14em}
  .footer{font-size:13px}
  .meta{font-size:13px}
  .langtag{font-size:12px}
  figcaption{font-size:13px}
}
/* Flaggen-Emoji sind unterschiedlich breit — ein 🇸🇦 baut anders als ein 🇩🇪.
   Frei im Textfluss verschiebt jede Karte ihre Textkante um ein paar Pixel,
   und ein Raster aus fünfzehn Karten sieht ausgefranst aus. Deshalb sitzt
   jede Flagge in einem gleich großen Feld: eine Achse für alle Karten. */
.langcard{display:grid;grid-template-columns:46px minmax(0,1fr);gap:14px;align-items:start}
.langflag{display:flex;width:46px;height:46px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.045);font-size:24px;line-height:1}
.langbody{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0}
.langbody strong{font-size:19px;letter-spacing:-.02em}
.langtag{margin-top:3px}
