:root {
  color-scheme: light;
  --n0: #fff;
  --n1: #f7f6f4;
  --n2: #efedea;
  --n3: #e2dfda;
  --fg: #171614;
  --fg2: #4b4843;
  --fg3: #6d6961;
  --ac: #39547e;
  --ac-soft: #eef1f6;
  --paper: #fffcf6;
  --r1: .5rem;
  --r2: .75rem;
  --r3: 1rem;
  --r4: 1.5rem;
  font-family: ui-sans-serif, system-ui, -apple-system, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  font-variant-numeric: tabular-nums lining-nums;
  color: var(--fg);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
}
* { box-sizing: border-box; }
body { margin: 0; }
a { color: inherit; text-underline-offset: .2em; }
a:focus-visible { outline: 2px solid var(--ac); outline-offset: 5px; }
.page {
  --page-gutter: clamp(20px, 4vw, 40px);
  width: calc(100% - 2 * var(--page-gutter));
  max-width: 1120px;
  margin-inline: auto;
}
.header { padding-top: clamp(28px, 4vw, 48px); }
.wordmark { font-size: 27px; font-weight: 750; letter-spacing: -.065em; text-decoration: none; }
.wordmark span { font-weight: 450; letter-spacing: -.045em; }
.hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(36px, 5vw, 56px);
  align-items: center;
  padding-block: clamp(56px, 7vw, 96px) clamp(64px, 8vw, 112px);
}
.hero-copy, .chart { min-width: 0; width: 100%; max-width: 640px; margin-inline: auto; }
h1 {
  font-size: clamp(28px, 22px + .9vw, 34px);
  line-height: 1.4;
  font-weight: 520;
  letter-spacing: -.035em;
  margin: 0;
  max-width: 490px;
  text-wrap: pretty;
}
.hero h1 { letter-spacing: -.015em; }
.actions { display: flex; flex-wrap: wrap; gap: 16px; max-width: 420px; margin-top: clamp(32px, 4vw, 56px); }
.button {
  display: inline-flex;
  min-width: 0;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  gap: 16px;
  flex: 1 1 120px;
  border: 1.5px solid var(--fg);
  border-radius: var(--r4);
  background: var(--n0);
  padding: 12px 20px;
  font-size: 17px;
  font-weight: 600;
  text-decoration: none;
  transition: background .15s;
}
.button:hover { background: var(--n2); }
.button.primary { background: var(--fg); color: var(--n0); }
.button.primary:hover { background: var(--fg2); }
.chart { padding: 6px; background: var(--n0); border: 1px solid var(--n3); border-radius: 5px; box-shadow: 0 1px 2px #17161408; }
.chart img { display: block; width: 100%; height: auto; border-radius: 2px; }
.features { display: grid; grid-template-columns: minmax(0, 1fr); }
.features article { min-width: 0; padding-block: 24px; border-top: 1px solid var(--n3); }
h2 { font-size: clamp(23px, 20px + .4vw, 25px); line-height: 1.2; font-weight: 650; letter-spacing: -.045em; margin: 0 0 16px; }
.features p { font-size: 17px; line-height: 1.6; margin: 0; max-width: 38ch; text-wrap: pretty; }
.mission { font-size: clamp(23px, 18px + .9vw, 30px); line-height: 1.5; letter-spacing: -.035em; font-style: italic; text-align: left; margin: clamp(48px, 8vw, 104px) auto 0; max-width: 880px; text-wrap: balance; }
.footer { display: flex; justify-content: center; padding-block: clamp(88px, 13vw, 180px) clamp(32px, 4vw, 48px); }
.decouple { display: inline-flex; gap: 12px; align-items: center; min-height: 80px; text-decoration: none; font-size: 17px; font-weight: 650; letter-spacing: -.04em; }
.skip { position: absolute; left: 24px; top: -100px; padding: 10px 16px; background: var(--n0); z-index: 2; }
.skip:focus { top: 12px; }
.developer { max-width: 720px; margin-inline: auto; padding-top: clamp(56px, 7vw, 96px); }
.developer h1 { font-size: clamp(32px, 26px + 1vw, 40px); max-width: none; }
.developer .intro { font-size: clamp(19px, 17px + .4vw, 21px); color: var(--fg2); margin: 24px 0 clamp(40px, 5vw, 60px); }
.developer article { padding: 28px 0; border-top: 1px solid var(--n3); }
.developer article p { max-width: 620px; color: var(--fg2); }
.developer h2 { margin-bottom: 12px; }
.developer .actions { max-width: 480px; margin-top: 36px; }
@media (min-width: 600px) and (max-width: 767px) {
  .features article { display: grid; grid-template-columns: 152px minmax(0, 1fr); gap: 24px; }
  .features h2 { margin-bottom: 0; }
}
@media (min-width: 768px) {
  .features { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(28px, 4vw, 64px); }
  .features article { padding-block: 0; border: 0; }
  .features p { max-width: 30ch; }
  .mission { text-align: center; }
}
@media (min-width: 960px) {
  .hero { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: clamp(40px, 5vw, 64px); }
  .hero-copy, .chart { max-width: none; }
}
@media (max-width: 479px) {
  .wordmark { font-size: 25px; }
  .actions { max-width: none; gap: 12px; }
  .button { padding-inline: 12px; font-size: 16px; }
  .chart { padding: 5px; }
}
/* Decouple's live orbital logo (2026-09-19), precomputed from its original
   21-degree orbit, 146.2 radius, 60 steps, depth scaling and ghost phases.
   Local CSS only: no third-party script or per-frame JavaScript. */
.decouple-orbit { --period: 3s; position: relative; display: block; flex: 0 0 100px; width: 100px; height: 80px; }
.decouple-orbit__inner { position: absolute; left: 26px; top: 16px; width: 180px; height: 180px; transform: scale(.266667); transform-origin: top left; }
.decouple-orbit__main { position: absolute; inset: 0; display: grid; place-items: center; z-index: 10; }
.decouple-orbit svg { width: 100%; height: 100%; display: block; }
.decouple-orbit__sat { position: absolute; top: 50%; left: 50%; width: 80px; height: 80px; margin: -40px 0 0 -40px; transform: translate3d(136.49px, -52.39px, 0); animation-duration: var(--period), var(--period); animation-timing-function: linear, step-end; animation-iteration-count: infinite, infinite; }
.decouple-orbit__sat.back { animation-name: decouple-gpu-orbit, decouple-vis-back; z-index: 1; }
.decouple-orbit__sat.front { animation-name: decouple-gpu-orbit, decouple-vis-front; z-index: 20; }
.decouple-orbit__sat.ghost-1 { --target-opacity: .0625; --delay: -2.9625s; }
.decouple-orbit__sat.ghost-2 { --target-opacity: .03125; --delay: -2.925s; }
.decouple-orbit__sat.ghost-1, .decouple-orbit__sat.ghost-2 { animation-delay: var(--delay), var(--delay); }
@keyframes decouple-vis-back { 0%, 49.9% { opacity: var(--target-opacity, 1); } 50%, 100% { opacity: 0; } }
@keyframes decouple-vis-front { 0%, 49.9% { opacity: 0; } 50%, 100% { opacity: var(--target-opacity, 1); } }
@keyframes decouple-gpu-orbit {
  0.00% { transform: translate3d(136.49px, -52.39px, 0) scale(1.000); }
  1.67% { transform: translate3d(133.78px, -57.22px, 0) scale(0.995); }
  3.33% { transform: translate3d(129.60px, -61.42px, 0) scale(0.990); }
  5.00% { transform: translate3d(124.01px, -64.94px, 0) scale(0.985); }
  6.67% { transform: translate3d(117.05px, -67.76px, 0) scale(0.980); }
  8.33% { transform: translate3d(108.82px, -69.83px, 0) scale(0.975); }
  10.00% { transform: translate3d(99.39px, -71.14px, 0) scale(0.971); }
  11.67% { transform: translate3d(88.87px, -71.67px, 0) scale(0.967); }
  13.33% { transform: translate3d(77.38px, -71.41px, 0) scale(0.963); }
  15.00% { transform: translate3d(65.04px, -70.37px, 0) scale(0.960); }
  16.67% { transform: translate3d(51.98px, -68.56px, 0) scale(0.957); }
  18.33% { transform: translate3d(38.36px, -65.99px, 0) scale(0.954); }
  20.00% { transform: translate3d(24.32px, -62.71px, 0) scale(0.952); }
  21.67% { transform: translate3d(10.01px, -58.74px, 0) scale(0.951); }
  23.33% { transform: translate3d(-4.41px, -54.12px, 0) scale(0.950); }
  25.00% { transform: translate3d(-18.78px, -48.91px, 0) scale(0.950); }
  26.67% { transform: translate3d(-32.94px, -43.17px, 0) scale(0.950); }
  28.33% { transform: translate3d(-46.74px, -36.95px, 0) scale(0.951); }
  30.00% { transform: translate3d(-60.03px, -30.33px, 0) scale(0.952); }
  31.67% { transform: translate3d(-72.67px, -23.37px, 0) scale(0.954); }
  33.33% { transform: translate3d(-84.51px, -16.16px, 0) scale(0.957); }
  35.00% { transform: translate3d(-95.42px, -8.78px, 0) scale(0.960); }
  36.67% { transform: translate3d(-105.28px, -1.29px, 0) scale(0.963); }
  38.33% { transform: translate3d(-114.00px, 6.21px, 0) scale(0.967); }
  40.00% { transform: translate3d(-121.46px, 13.64px, 0) scale(0.971); }
  41.67% { transform: translate3d(-127.59px, 20.92px, 0) scale(0.975); }
  43.33% { transform: translate3d(-132.33px, 27.97px, 0) scale(0.980); }
  45.00% { transform: translate3d(-135.61px, 34.71px, 0) scale(0.985); }
  46.67% { transform: translate3d(-137.41px, 41.08px, 0) scale(0.990); }
  48.33% { transform: translate3d(-137.70px, 46.99px, 0) scale(0.995); }
  50.00% { transform: translate3d(-136.49px, 52.39px, 0) scale(1.000); }
  51.67% { transform: translate3d(-133.78px, 57.22px, 0) scale(1.005); }
  53.33% { transform: translate3d(-129.60px, 61.42px, 0) scale(1.010); }
  55.00% { transform: translate3d(-124.01px, 64.94px, 0) scale(1.015); }
  56.67% { transform: translate3d(-117.05px, 67.76px, 0) scale(1.020); }
  58.33% { transform: translate3d(-108.82px, 69.83px, 0) scale(1.025); }
  60.00% { transform: translate3d(-99.39px, 71.14px, 0) scale(1.029); }
  61.67% { transform: translate3d(-88.87px, 71.67px, 0) scale(1.033); }
  63.33% { transform: translate3d(-77.38px, 71.41px, 0) scale(1.037); }
  65.00% { transform: translate3d(-65.04px, 70.37px, 0) scale(1.040); }
  66.67% { transform: translate3d(-51.98px, 68.56px, 0) scale(1.043); }
  68.33% { transform: translate3d(-38.36px, 65.99px, 0) scale(1.046); }
  70.00% { transform: translate3d(-24.32px, 62.71px, 0) scale(1.048); }
  71.67% { transform: translate3d(-10.01px, 58.74px, 0) scale(1.049); }
  73.33% { transform: translate3d(4.41px, 54.12px, 0) scale(1.050); }
  75.00% { transform: translate3d(18.78px, 48.91px, 0) scale(1.050); }
  76.67% { transform: translate3d(32.94px, 43.17px, 0) scale(1.050); }
  78.33% { transform: translate3d(46.74px, 36.95px, 0) scale(1.049); }
  80.00% { transform: translate3d(60.03px, 30.33px, 0) scale(1.048); }
  81.67% { transform: translate3d(72.67px, 23.37px, 0) scale(1.046); }
  83.33% { transform: translate3d(84.51px, 16.16px, 0) scale(1.043); }
  85.00% { transform: translate3d(95.42px, 8.78px, 0) scale(1.040); }
  86.67% { transform: translate3d(105.28px, 1.29px, 0) scale(1.037); }
  88.33% { transform: translate3d(114.00px, -6.21px, 0) scale(1.033); }
  90.00% { transform: translate3d(121.46px, -13.64px, 0) scale(1.029); }
  91.67% { transform: translate3d(127.59px, -20.92px, 0) scale(1.025); }
  93.33% { transform: translate3d(132.33px, -27.97px, 0) scale(1.020); }
  95.00% { transform: translate3d(135.61px, -34.71px, 0) scale(1.015); }
  96.67% { transform: translate3d(137.41px, -41.08px, 0) scale(1.010); }
  98.33% { transform: translate3d(137.70px, -46.99px, 0) scale(1.005); }
  100.00% { transform: translate3d(136.49px, -52.39px, 0) scale(1.000); }
}
@media (prefers-reduced-motion: reduce) {
  .button { transition: none; }
  .decouple-orbit__sat { animation: none; }
  .decouple-orbit__sat.back, .decouple-orbit__sat.ghost-1, .decouple-orbit__sat.ghost-2 { opacity: 0; }
  .decouple-orbit__sat.front:not(.ghost-1):not(.ghost-2) { opacity: 1; }
}
