@font-face { font-family: "Bricolage Grotesque"; font-weight: 600; font-display: swap; src: url("fonts/bricolage-grotesque-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Bricolage Grotesque"; font-weight: 700; font-display: swap; src: url("fonts/bricolage-grotesque-latin-700-normal.woff2") format("woff2"); }
@font-face { font-family: "Onest"; font-weight: 400; font-display: swap; src: url("fonts/onest-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Onest"; font-weight: 500; font-display: swap; src: url("fonts/onest-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Onest"; font-weight: 600; font-display: swap; src: url("fonts/onest-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "JetBrains Mono"; font-weight: 400; font-display: swap; src: url("fonts/jetbrains-mono-latin-400-normal.woff2") format("woff2"); }

:root {
  color-scheme: light;
  --bg: #ecebea;
  --surface: #f6f6f5;
  --raised: #fbfbfa;
  --ink: #1c1c1d;
  --muted: #5e5e62;
  --faint: #8a8a8e;
  --line: #d9d8d5;
  --primary: #1c2b4a;
  --on-primary: #fff;
  --accent: #2c56a8;
  --soft: #dfe3ea;
  --block-1: #1c2b4a;
  --block-2: #c9d6f2;
  --block-3: #e4d8c3;
  --block-4: #b8c9b4;
  --block-5: #d9cfe9;
  --shot-edge: rgb(255 255 255 / 0.5);
  --shot-shadow: 0 24px 60px rgb(16 24 42 / 0.27), 0 2px 6px rgb(16 24 42 / 0.15);
  --gloss-primary: inset 0 1px 0 rgb(255 255 255 / 0.22), inset 0 -1px 0 rgb(0 0 0 / 0.28), 0 1px 2px rgb(20 20 30 / 0.28);
  --gloss-raised: inset 0 1px 0 rgb(255 255 255 / 0.95), 0 1px 2px rgb(20 20 22 / 0.1);
  --hero-art: url("img/hero-light.webp");
  --closing-art: url("img/closing-light.webp");
  --glass: rgb(246 246 245 / 0.9);
  --display: "Bricolage Grotesque", "Onest", system-ui, sans-serif;
  --sans: "Onest", system-ui, sans-serif;
  --mono: "JetBrains Mono", ui-monospace, monospace;
  --gutter: clamp(20px, 6.6vw, 96px);
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #141414;
  --surface: #1d1d1d;
  --raised: #262626;
  --ink: #ececec;
  --muted: #a6a6aa;
  --faint: #78787c;
  --line: #2f2f2f;
  --primary: #3d5d9e;
  --accent: #93b3f2;
  --soft: #232b3a;
  --block-1: #22355c;
  --block-2: #2a3550;
  --block-3: #3a3328;
  --block-4: #27352b;
  --block-5: #332b45;
  --shot-edge: rgb(0 0 0 / 0.55);
  --shot-shadow: 0 24px 60px rgb(0 0 0 / 0.65), 0 2px 6px rgb(0 0 0 / 0.4);
  --gloss-primary: inset 0 1px 0 rgb(255 255 255 / 0.24), inset 0 -1px 0 rgb(0 0 0 / 0.3), 0 1px 2px rgb(0 0 0 / 0.5);
  --gloss-raised: inset 0 1px 0 rgb(255 255 255 / 0.07), 0 1px 2px rgb(0 0 0 / 0.45);
  --hero-art: url("img/hero-dark.webp");
  --closing-art: url("img/closing-dark.webp");
  --glass: rgb(29 29 29 / 0.85);
}

[data-theme="dark"] .light-only, :root:not([data-theme="dark"]) .dark-only { display: none; }
[x-cloak] { display: none !important; }

*, *::before, *::after { box-sizing: border-box; }
html { background: var(--bg); scroll-padding-top: 88px; }
body { max-width: 1440px; margin: 0 auto; color: var(--ink); font: 400 17px/1.55 var(--sans); -webkit-font-smoothing: antialiased; }
h1, h2, h3, p, ul, ol, figure { margin: 0; padding: 0; }
ul, ol { list-style: none; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; height: auto; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
h1, h2, h3 { font-family: var(--display); font-weight: 700; line-height: 1; letter-spacing: -0.03em; }

.icon { width: 1.15em; height: 1.15em; flex: none; fill: currentColor; }
.link { color: var(--accent); font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.muted { color: var(--muted); }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; height: 40px; padding: 0 18px; border-radius: 999px; font-weight: 600; font-size: 15px; white-space: nowrap; transition: filter 0.15s; }
.btn:hover { filter: brightness(1.08); }
.btn-primary { background: var(--primary); color: var(--on-primary); box-shadow: var(--gloss-primary); }
.btn-raised { background: var(--raised); border: 1px solid var(--line); box-shadow: var(--gloss-raised); }
.btn-lg { height: 60px; padding: 0 30px; font-size: 18px; box-shadow: var(--gloss-primary), 0 8px 24px rgb(28 43 74 / 0.25); }
.btn-block { width: 100%; height: 52px; font-size: 16px; }
.btn-round { width: 40px; padding: 0; }

.nav { position: sticky; top: 0; z-index: 10; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 22px 48px; transition: padding 0.25s; }
.brand { display: flex; align-items: center; gap: 10px; justify-self: start; font: 700 22px var(--display); letter-spacing: -0.02em; }
.nav.stuck { padding-block: 12px; pointer-events: none; }
.nav.stuck > * { pointer-events: auto; }
.nav.stuck .nav-actions { padding: 6px; background: var(--glass); border-color: var(--line); box-shadow: 0 8px 24px rgb(16 24 42 / 0.12); backdrop-filter: blur(16px); }
.nav.stuck .nav-links:not(.open) { opacity: 0; visibility: hidden; }
.brand img { width: 34px; height: 34px; }
.nav-links { display: flex; gap: 40px; font-weight: 500; font-size: 15px; color: var(--muted); transition: opacity 0.2s, visibility 0.2s; }
.nav-links a:hover { color: var(--ink); }
.nav-actions { display: flex; gap: 12px; justify-self: end; border: 1px solid transparent; border-radius: 999px; transition: padding 0.25s, background-color 0.25s, border-color 0.25s, box-shadow 0.25s; }
.stars { gap: 8px; padding: 0 14px; font: 14px var(--mono); }
.stars .icon:last-child { width: 20px; height: 20px; }
.menu { display: none; }

.hero { display: grid; justify-items: center; gap: 26px; padding: 72px 32px 0; text-align: center; }
.hero h1 { max-width: 1100px; font-size: clamp(44px, 6.4vw, 92px); letter-spacing: -0.033em; line-height: 0.98; }
.hero > p { max-width: 640px; font-size: 20px; color: var(--muted); }
.cta { display: grid; justify-items: center; gap: 14px; padding-top: 8px; }
.cta small { font-size: 14px; color: var(--faint); }

.stage { width: 100%; margin-top: 40px; padding: 60px 128px; border-radius: 36px; overflow: hidden; background: var(--hero-art) center / cover; }
.shot { border-radius: 16px; border: 1px solid var(--shot-edge); box-shadow: var(--shot-shadow); }
.stage .shot { width: 100%; max-width: 1120px; margin: auto; }

.uses { display: flex; flex-wrap: wrap; justify-content: center; gap: 20px 44px; padding: 88px var(--gutter) 40px; font-weight: 500; font-size: 18px; }
.uses li { display: flex; align-items: center; gap: 10px; }
.uses .icon { width: 26px; height: 26px; }

.feature { display: grid; grid-template-columns: 420px 1fr; align-items: center; gap: 88px; padding: 56px var(--gutter); }
.feature:nth-of-type(even) { grid-template-columns: 1fr 420px; }
.feature:nth-of-type(even) .copy { order: 1; }
.copy { display: grid; gap: 20px; }
.copy h2 { font-size: 58px; }
.copy p { color: var(--muted); }
.block { position: relative; height: 600px; border-radius: 44px; overflow: hidden; }
.b1 { background: var(--block-1); }
.b2 { background: var(--block-2); }
.b3 { background: var(--block-3); }
.b4 { background: var(--block-4); }
.b5 { background: var(--block-5); }
.block .shot { position: absolute; top: 64px; left: 64px; width: 780px; max-width: none; }
.feature:nth-of-type(even) .block .shot { left: auto; right: 64px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; max-width: 380px; padding-top: 6px; }
.chips li { padding: 6px 12px; border-radius: 999px; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--gloss-raised); font-size: 14px; }
.chips.mono li { font-family: var(--mono); }

.privacy { margin: 40px 32px; padding: 104px 96px; border-radius: 36px; color: #f4f5f8; background: radial-gradient(140% 160% at 100% 0%, rgb(61 93 158 / 0.75), rgb(43 70 119 / 0.35) 35%, transparent 70%), linear-gradient(200deg, #1a2b4f, #0e1830 55%, #080d19); }
.privacy header { display: flex; justify-content: space-between; align-items: end; gap: 48px; padding-bottom: 64px; border-bottom: 1px solid rgb(255 255 255 / 0.12); }
.privacy h2 { font-size: 76px; }
.privacy header p { max-width: 400px; color: #b7c0d3; }
.points { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; padding-top: 64px; }
.points li { display: grid; gap: 14px; justify-items: start; color: #a9b3c7; font-size: 16px; }
.points h3 { font: 600 24px var(--display); letter-spacing: -0.01em; color: #f4f5f8; }
.badge { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: rgb(255 255 255 / 0.08); color: #dce5f7; }
.badge .icon { width: 24px; height: 24px; }

.section-head { display: grid; justify-items: center; gap: 18px; text-align: center; }
.section-head h2 { font-size: 64px; }
.section-head p { max-width: 560px; color: var(--muted); }
.downloads { display: grid; gap: 56px; padding: 120px var(--gutter) 64px; }
.platforms { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.card { display: flex; flex-direction: column; gap: 22px; padding: 36px; border-radius: 28px; background: var(--surface); border: 1px solid var(--line); }
.card > p { margin-top: auto; font-size: 14px; color: var(--muted); }
.card-head { display: flex; align-items: center; gap: 14px; }
.card-head h3 { font-size: 28px; }
.card-head p { font-size: 14px; color: var(--faint); }
.os { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 16px; background: var(--soft); color: var(--primary); }
.os .icon { width: 28px; height: 28px; }
.stack { display: grid; gap: 10px; }

.faq { display: grid; grid-template-columns: 380px 1fr; gap: 96px; padding: 96px var(--gutter); }
.faq header { display: grid; gap: 18px; align-content: start; }
.faq h2 { font-size: 58px; }
.faq header p { font-size: 16px; color: var(--muted); }
.faq details { border-bottom: 1px solid var(--line); }
.faq details:first-child { border-top: 1px solid var(--line); }
.faq summary { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 28px 0; font: 600 24px var(--display); letter-spacing: -0.01em; cursor: pointer; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary .icon { color: var(--muted); transition: rotate 0.2s; }
.faq details[open] summary .icon { rotate: 45deg; }
.faq details p { max-width: 640px; padding-bottom: 28px; color: var(--muted); }

.closing { display: grid; place-items: center; margin: 24px 32px; min-height: 560px; padding: 24px; border-radius: 36px; background: var(--closing-art) center / cover; }
.glass { display: grid; justify-items: center; gap: 24px; padding: 44px 56px; border-radius: 28px; background: var(--glass); backdrop-filter: blur(20px); box-shadow: 0 20px 60px rgb(28 43 74 / 0.2); text-align: center; }
.glass h1, .glass h2 { max-width: 640px; font-size: 60px; text-wrap: balance; }
.closing.lost { min-height: calc(100vh - 140px); }
.choices { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.choices .btn-raised { box-shadow: var(--gloss-raised); }

.footer { overflow: hidden; padding: 72px var(--gutter) 0; }
.footer-row { display: flex; justify-content: space-between; gap: 48px; padding-bottom: 56px; }
.footer-row > div { display: grid; gap: 14px; max-width: 340px; align-content: start; color: var(--muted); font-size: 16px; }
.footer-row small { font-size: 14px; color: var(--faint); }
.footer nav { display: flex; gap: 88px; }
.footer nav ul { display: grid; gap: 12px; font-weight: 500; font-size: 15px; }
.footer nav li:first-child { font: 12px var(--mono); letter-spacing: 0.13em; text-transform: uppercase; color: var(--faint); }
.wordmark { margin-bottom: -0.21em; font: 700 min(23vw, 330px)/0.82 var(--display); letter-spacing: -0.045em; text-align: center; color: var(--primary); }

.page-head { display: grid; justify-items: center; gap: 20px; padding: 80px var(--gutter) 56px; text-align: center; }
.page-head h1 { font-size: clamp(42px, 5.8vw, 84px); }
.pick { display: flex; align-items: center; justify-content: space-between; gap: 24px; width: min(760px, 100%); padding: 24px 24px 24px 28px; border-radius: 28px; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--gloss-raised); text-align: left; }
.pick h2 { font-size: 24px; letter-spacing: -0.02em; }
.pick p { font-size: 15px; color: var(--muted); }
.pick .btn-lg { height: 54px; font-size: 17px; }
.release { display: grid; grid-template-columns: 1fr 400px; gap: 40px; padding: 24px var(--gutter) 96px; }
.release h2 { font-size: 32px; padding-bottom: 16px; }
.table { border-radius: 24px; background: var(--surface); border: 1px solid var(--line); overflow: hidden; }
.table h3 { display: flex; align-items: center; gap: 10px; padding: 18px 28px 10px; font: 600 15px var(--sans); letter-spacing: 0; color: var(--muted); }
.table h3:not(:first-child) { border-top: 1px solid var(--line); }
.row { display: grid; grid-template-columns: 1fr 250px 56px auto; align-items: center; gap: 24px; padding: 16px 28px; }
.row strong { display: block; font: 600 21px var(--display); letter-spacing: -0.01em; }
.row div span { font-size: 15px; color: var(--muted); }
.row code, .row data { font: 13px var(--mono); color: var(--faint); }
.row data { text-align: right; font-size: 14px; color: var(--muted); }
.more { display: flex; flex-wrap: wrap; gap: 24px; padding: 24px 4px 0; font-size: 15px; }
.more a { display: flex; align-items: center; gap: 8px; }
.help { display: grid; gap: 16px; align-content: start; padding-top: 56px; }
.help section { display: grid; gap: 14px; padding: 28px; border-radius: 24px; background: var(--surface); border: 1px solid var(--line); }
.help h3 { display: flex; align-items: center; gap: 10px; font-size: 20px; letter-spacing: -0.01em; }
.help h3 .icon { color: var(--primary); width: 22px; height: 22px; }
.help code { font: 13px var(--mono); color: var(--ink); }
.help ol { display: grid; gap: 14px; counter-reset: step; }
.help li { position: relative; padding-left: 36px; font-size: 15px; color: var(--muted); counter-increment: step; }
.help li::before { content: counter(step); position: absolute; left: 0; top: 0; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--soft); color: var(--primary); font: 12px var(--mono); }

@media (max-width: 1100px) {
  .feature, .feature:nth-of-type(even), .faq, .release { grid-template-columns: 1fr; gap: 32px; }
  .feature:nth-of-type(even) .copy { order: 0; }
  .feature:nth-of-type(even) .block .shot { right: auto; left: 64px; }
  .platforms, .points { grid-template-columns: 1fr; }
  .privacy header { flex-direction: column; align-items: start; }
  .help { padding-top: 0; }
}

@media (max-width: 760px) {
  body { font-size: 16px; }
  .nav { grid-template-columns: 1fr auto; padding: 14px 20px; }
  .brand { font-size: 20px; }
  .brand img { width: 30px; height: 30px; }
  .nav-links, .nav-actions .stars, .nav-actions .btn-primary { display: none; }
  .nav-links.open { display: grid; grid-row: 2; grid-column: 1 / -1; gap: 18px; margin-top: 12px; padding: 20px 24px; border: 1px solid var(--line); border-radius: 24px; background: var(--glass); backdrop-filter: blur(16px); font-size: 18px; color: var(--ink); }
  .nav.stuck { padding-inline: 12px; }
  .menu { display: inline-flex; }
  .hero { gap: 18px; padding: 36px 20px 0; }
  .hero > p { font-size: 17px; }
  .hero h1 br { display: none; }
  .cta { width: 100%; gap: 10px; }
  .stage { margin-top: 28px; padding: 24px 0 0 24px; border-radius: 24px; }
  .stage .shot { width: 520px; max-width: none; margin: 0; border-radius: 12px; }
  .uses { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 12px; padding: 40px 28px 8px; font-size: 15px; }
  .uses .icon { width: 20px; height: 20px; }
  .uses .long { display: none; }
  .feature { padding: 28px 20px; gap: 14px; }
  .copy { gap: 14px; }
  .copy h2 { font-size: 34px; }
  .block { height: 280px; border-radius: 28px; }
  .block .shot, .feature:nth-of-type(even) .block .shot { top: 28px; left: 28px; width: 420px; border-radius: 12px; }
  .privacy { margin: 24px 12px; padding: 48px 24px; border-radius: 28px; }
  .privacy header { gap: 20px; padding-bottom: 28px; }
  .privacy h2 { font-size: 40px; }
  .points { gap: 24px; padding-top: 28px; }
  .points li { grid-template-columns: 44px 1fr; column-gap: 14px; row-gap: 4px; font-size: 15px; }
  .points li .badge { grid-row: span 2; width: 44px; height: 44px; }
  .points h3 { font-size: 19px; }
  .downloads { gap: 24px; padding: 56px 20px 24px; }
  .section-head { justify-items: start; text-align: left; }
  .section-head h2, .faq h2 { font-size: 36px; }
  .card { padding: 24px; }
  .faq { padding: 40px 20px; gap: 12px; }
  .faq summary { padding: 20px 0; font-size: 18px; }
  .closing { margin: 8px 12px; min-height: 380px; padding: 20px; border-radius: 28px; }
  .glass { width: 100%; padding: 30px 22px; }
  .glass h1, .glass h2 { font-size: 32px; }
  .closing.lost { min-height: 420px; }
  .choices .btn { flex: 1; }
  .footer { padding: 44px 20px 0; }
  .footer-row { flex-direction: column; gap: 28px; padding-bottom: 28px; }
  .footer nav { gap: 24px; }
  .footer nav ul { flex: 1; }
  .page-head { justify-items: start; padding: 32px 20px 16px; text-align: left; }
  .pick { flex-direction: column; align-items: stretch; padding: 22px; }
  .release { padding: 16px 20px 32px; }
  .row { grid-template-columns: 1fr auto; gap: 4px 14px; padding: 16px 18px; }
  .row code { display: none; }
  .row .get { width: 44px; height: 44px; padding: 0; }
  .row .get span { display: none; }
  .row data { grid-column: 1; grid-row: 2; text-align: left; }
}
