/* Self-hosted Inter + JetBrains Mono (latin + latin-ext, covers Polish
   diacritics). Deliberately NOT loaded from fonts.googleapis.com: that CDN
   sends every visitor's IP to Google on each page load, which a German
   court (LG München, 3 O 17493/20) held to violate GDPR absent consent —
   self-hosting removes the third-party request entirely. Paths are
   relative to THIS file's own URL (/assets/site.css), so they resolve to
   /fonts/... regardless of which page includes the stylesheet. */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/inter-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/inter-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/inter-500-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/inter-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/inter-600-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/inter-600-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/inter-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/inter-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/jetbrainsmono-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/jetbrainsmono-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/jetbrainsmono-500-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/jetbrainsmono-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{
  --canvas:#ffffff; --surface-1:#f5f6f6; --surface-2:#f6f7f7; --surface-3:#eef0f0; --surface-4:#e8e9ea;
  --hairline:#e3e4e5; --hairline-strong:#cfd1d3; --hairline-tertiary:#b8babd;
  --ink:#000000; --ink-muted:#3a3d42; --ink-subtle:#62666d; --ink-tertiary:#8a8f98;
  --primary:#5e6ad2; --on-primary:#ffffff; --primary-hover:#4a55c4; --primary-focus:#3d48b8;
  --primary-readable:#3d48b8; --semantic-success:#1e8a36; --hairline-rgb:227,228,229; --primary-rgb:94,106,210;
  color-scheme: light;
}
@media (prefers-color-scheme: dark){
  :root{
    --canvas:#010102; --surface-1:#0f1011; --surface-2:#141516; --surface-3:#18191a; --surface-4:#191a1b;
    --hairline:#23252a; --hairline-strong:#34343a; --hairline-tertiary:#3e3e44;
    --ink:#f7f8f8; --ink-muted:#d0d6e0; --ink-subtle:#8a8f98; --ink-tertiary:#62666d;
    --primary:#5e6ad2; --on-primary:#ffffff; --primary-hover:#828fff; --primary-focus:#5e69d1;
    --primary-readable:#828fff; --semantic-success:#27a644; --hairline-rgb:35,37,42; --primary-rgb:94,106,210;
    color-scheme: dark;
  }
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--canvas); color:var(--ink);
  font-family:'Inter',ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  min-height:100vh;
}
.mono{font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;}
a{color:inherit;}
::selection{background:rgba(var(--primary-rgb),0.25);}
:focus{outline:none;}
:focus-visible{outline:2px solid var(--primary-readable); outline-offset:2px; border-radius:2px;}

body::before{
  content:""; position:fixed; inset:0; z-index:-1; pointer-events:none;
  background-image:
    linear-gradient(to right, rgba(var(--hairline-rgb),0.05) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(var(--hairline-rgb),0.05) 1px, transparent 1px);
  background-size:32px 32px; background-position:-1px -1px;
}

.section{max-width:76rem; margin:0 auto; width:100%; padding:64px 20px;}
@media (min-width:768px){ .section{padding:96px 32px;} }
.section-narrow{max-width:52rem;}

.label{
  font-family:'JetBrains Mono',monospace; font-size:13px; font-weight:500;
  text-transform:uppercase; letter-spacing:0.4px; color:var(--ink-subtle);
}

.card{
  position:relative; display:flex; flex-direction:column; gap:12px;
  border-radius:12px; border:1px solid var(--hairline); background:var(--surface-1);
  padding:24px; transition:border-color .25s ease;
}
.card:hover{ border-color:var(--hairline-strong); }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  border-radius:8px; border:1px solid transparent; padding:10px 16px;
  font-size:14px; font-weight:500; line-height:1.2; text-decoration:none;
  cursor:pointer; transition:all .25s ease;
}
.btn-primary{ border-color:var(--primary); background:var(--primary); color:var(--on-primary); }
.btn-primary:hover{ background:var(--primary-hover); }
.btn-secondary{ border-color:var(--hairline); background:var(--surface-1); color:var(--ink); }
.btn-secondary:hover{ border-color:var(--hairline-strong); }

.link{ text-decoration:underline; text-decoration-color:var(--ink-muted); text-underline-offset:4px; transition:color .25s ease; }
.link:hover{ color:var(--primary-readable); text-decoration-color:var(--primary-readable); }
.link-quiet{ color:var(--ink-subtle); text-decoration:none; transition:color .25s ease; }
.link-quiet:hover{ color:var(--primary-readable); }
.back-link{ display:inline-flex; align-items:center; gap:6px; font-size:14px; color:var(--ink-muted); text-decoration:none; }
.back-link:hover{ color:var(--primary-readable); }

.tag{
  display:inline-flex; align-items:center; border-radius:9999px; border:1px solid var(--hairline);
  background:var(--surface-2); padding:3px 10px; font-family:'JetBrains Mono',monospace;
  font-size:12px; text-transform:uppercase; letter-spacing:0.4px; color:var(--ink-muted);
}

.divider{ height:1px; width:100%; background:var(--hairline); border:0; margin:0; }

header{
  position:sticky; top:0; z-index:40; backdrop-filter:blur(10px);
  border-bottom:1px solid var(--hairline);
}
@supports (backdrop-filter: blur(1px)){
  header{ background: color-mix(in srgb, var(--canvas) 82%, transparent); }
}
.header-inner{
  max-width:76rem; margin:0 auto; display:flex; align-items:center; justify-content:space-between;
  padding:16px 20px; gap:16px;
}
@media (min-width:768px){ .header-inner{ padding:16px 32px; } }
.brand{ display:flex; align-items:center; gap:10px; font-weight:600; font-size:15px; text-decoration:none; }
.brand-mark{
  width:28px; height:28px; border-radius:8px; background:var(--primary);
  display:flex; align-items:center; justify-content:center; color:#fff; font-size:13px; font-weight:700;
  font-family:'JetBrains Mono',monospace; flex-shrink:0;
}
nav{ display:none; gap:28px; align-items:center; }
@media (min-width:768px){ nav{ display:flex; } }
nav a{ font-size:14px; color:var(--ink-muted); text-decoration:none; transition:color .25s ease; }
nav a:hover{ color:var(--ink); }

.hero{ text-align:center; padding-top:96px; padding-bottom:48px; }
.hero h1{ font-size:40px; line-height:1.15; letter-spacing:-1px; font-weight:600; margin:20px 0 16px; }
@media (min-width:768px){ .hero h1{ font-size:56px; letter-spacing:-1.8px; line-height:1.1; } }
.hero p.lede{ max-width:56ch; margin:0 auto; color:var(--ink-muted); font-size:18px; line-height:1.5; }
.hero-actions{ display:flex; gap:12px; justify-content:center; margin-top:32px; flex-wrap:wrap; }

.page-header{ padding-top:56px; padding-bottom:16px; }
.page-header h1{ font-size:32px; letter-spacing:-0.6px; line-height:1.2; font-weight:600; margin:16px 0 4px; }
.page-header .updated{ color:var(--ink-subtle); font-size:14px; }

.grid-2{ display:grid; gap:16px; grid-template-columns:1fr; }
@media (min-width:768px){ .grid-2{ grid-template-columns:1fr 1fr; } }
.grid-3{ display:grid; gap:16px; grid-template-columns:1fr; }
@media (min-width:768px){ .grid-3{ grid-template-columns:repeat(3,1fr); } }

h2.headline{ font-size:28px; letter-spacing:-0.6px; line-height:1.2; font-weight:600; margin:0 0 8px; }
p.subhead{ color:var(--ink-muted); font-size:18px; line-height:1.5; margin:0 0 32px; max-width:60ch; }

.verify-card{
  border-radius:16px; border:1px solid var(--hairline); background:var(--surface-1);
  padding:32px; display:grid; gap:20px; grid-template-columns:1fr; margin-top:8px;
}
@media (min-width:768px){ .verify-card{ grid-template-columns:1fr 1fr; padding:40px; } }
.verify-item dt{ font-family:'JetBrains Mono',monospace; font-size:12px; text-transform:uppercase; letter-spacing:0.4px; color:var(--ink-subtle); margin-bottom:4px; }
.verify-item dd{ margin:0; font-size:16px; color:var(--ink); }
.verify-item{ margin-bottom:18px; }
.verify-item:last-child{ margin-bottom:0; }

.app-list{ display:grid; gap:16px; grid-template-columns:1fr; margin-top:8px; }
.app-list-card{
  display:flex; align-items:center; gap:20px; border-radius:16px; border:1px solid var(--hairline);
  background:var(--surface-1); padding:24px; text-decoration:none; color:var(--ink);
  transition:border-color .25s ease;
}
.app-list-card:hover{ border-color:var(--primary); }
.app-list-card .app-icon{ margin-bottom:0; flex-shrink:0; }
.app-list-card .meta{ flex:1; }
.app-list-card h3{ margin:0 0 4px; font-size:20px; font-weight:500; letter-spacing:-0.3px; }
.app-list-card p{ margin:0; color:var(--ink-muted); font-size:14px; }
.app-list-card .arrow{ color:var(--ink-tertiary); font-size:20px; }

.app-card{
  border-radius:16px; border:1px solid var(--hairline); background:var(--surface-1);
  padding:32px; display:grid; gap:32px; grid-template-columns:1fr; align-items:start;
}
@media (min-width:1024px){ .app-card{ grid-template-columns:1.1fr 0.9fr; padding:48px; } }
.app-icon{
  width:64px; height:64px; border-radius:16px; background:var(--primary);
  display:flex; align-items:center; justify-content:center; color:#fff; font-size:24px; font-weight:700;
  font-family:'JetBrains Mono',monospace; margin-bottom:16px;
}
.app-card h1, .app-card h3{ font-size:22px; letter-spacing:-0.4px; font-weight:500; margin:0 0 8px; }
.app-card .platforms{ display:flex; gap:8px; margin-bottom:16px; flex-wrap:wrap; }
.app-card p{ color:var(--ink-muted); line-height:1.6; margin:0 0 20px; }
.feature-list{ list-style:none; margin:0 0 24px; padding:0; display:grid; gap:10px; }
.feature-list li{ display:flex; gap:10px; font-size:15px; color:var(--ink-muted); line-height:1.5; }
.feature-list li::before{ content:"✓"; color:var(--semantic-success); font-weight:700; flex-shrink:0; }
.store-badge{
  display:inline-flex; align-items:center; gap:10px; border-radius:8px; border:1px solid var(--hairline-strong);
  background:var(--surface-2); padding:10px 18px; text-decoration:none; color:var(--ink); font-size:14px;
  transition:border-color .25s ease;
}
.store-badge:hover{ border-color:var(--primary); }
.store-badge svg{ flex-shrink:0; }
.badge-text{ display:flex; flex-direction:column; line-height:1.2; }
.badge-text small{ font-size:11px; color:var(--ink-subtle); }
.badge-text strong{ font-size:15px; }
.stub-note{ font-size:12px; color:var(--ink-tertiary); margin-top:8px; }

.legal-links{ display:flex; gap:16px; flex-wrap:wrap; margin-top:8px; }

footer{ border-top:1px solid var(--hairline); margin-top:64px; }
.footer-inner{ max-width:76rem; margin:0 auto; padding:40px 20px; display:flex; flex-direction:column; gap:20px; }
@media (min-width:768px){ .footer-inner{ padding:48px 32px; flex-direction:row; justify-content:space-between; align-items:flex-start; } }
.footer-legal{ font-size:13px; color:var(--ink-subtle); line-height:1.7; }
.footer-legal strong{ color:var(--ink-muted); }
.footer-links{ display:flex; gap:20px; flex-wrap:wrap; font-size:14px; }
.footer-links a{ color:var(--ink-muted); text-decoration:none; }
.footer-links a:hover{ color:var(--primary-readable); }

/* Legal document prose (privacy / terms pages) */
.legal-body{ font-size:15px; line-height:1.65; color:var(--ink-muted); max-width:72ch; }
.legal-body h2{ font-size:18px; color:var(--ink); margin:28px 0 10px; letter-spacing:-0.2px; }
.legal-body h2:first-child{ margin-top:0; }
.legal-body p{ margin:0 0 14px; }
.legal-body ul{ margin:0 0 14px; padding-left:20px; }
.legal-body li{ margin-bottom:6px; }
.legal-body blockquote{
  margin:0 0 20px; padding:12px 16px; border-left:3px solid var(--primary); background:var(--surface-1);
  border-radius:0 8px 8px 0; font-size:13px; color:var(--ink-subtle);
}
.legal-body blockquote p{ margin:0; }
.legal-body code{ font-family:'JetBrains Mono',monospace; font-size:0.85em; background:var(--surface-2); padding:1px 5px; border-radius:4px; }
.legal-body hr{ border:0; border-top:1px solid var(--hairline); margin:20px 0; }
.legal-body table{ width:100%; border-collapse:collapse; margin:0 0 20px; font-size:13px; display:block; overflow-x:auto; }
.legal-body th, .legal-body td{ border:1px solid var(--hairline); padding:8px 10px; text-align:left; vertical-align:top; }
.legal-body th{ background:var(--surface-1); color:var(--ink); font-weight:600; }
.legal-body strong{ color:var(--ink); }

.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

@media print{
  header, footer, .no-print{ display:none !important; }
}