@font-face {
  font-family: Fredoka;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/fredoka-600.woff2) format("woff2");
}

:root {
  --coral: #ff6b5e;
  --ink: #1c0705;
  --muted: #a3a3a3;
  --line: rgba(255, 255, 255, .22);
  --panel: #121212;
  --display: Fredoka, ui-rounded, "Arial Rounded MT Bold", system-ui, sans-serif;
}

* { box-sizing: border-box; margin: 0; }

html {
  background: #000;
  color-scheme: dark;
  -webkit-text-size-adjust: 100%;
}

body {
  background: #000;
  color: #ededed;
  font: 400 1.0625rem/1.6 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

a {
  color: var(--coral);
  text-underline-offset: 2px;
}

h1 {
  margin-bottom: 12px;
  color: #fff;
  font: 600 clamp(2rem, 6vw, 2.75rem)/1.1 var(--display);
}

h2 {
  margin: 32px 0 8px;
  color: #fff;
  font: 600 1.375rem/1.2 var(--display);
}

p + p { margin-top: 12px; }

[hidden] { display: none !important; }

.top {
  padding: max(20px, env(safe-area-inset-top)) 16px 8px;
  text-align: center;
}

.mark {
  color: #fff;
  font: 600 1.25rem/1.2 var(--display);
  text-decoration: none;
}

.page {
  width: min(100%, 640px);
  margin: 0 auto;
  padding: 24px max(16px, env(safe-area-inset-right)) max(64px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
}

.updated {
  color: var(--muted);
  font-size: .875rem;
}

.page ul,
.page ol:not(.steps) {
  display: grid;
  gap: 6px;
  margin-top: 8px;
  padding-left: 20px;
}

.page table {
  width: 100%;
  margin: 8px 0 12px;
  border-collapse: collapse;
  font-size: .9375rem;
}

.page th,
.page td {
  padding: 8px 10px 8px 0;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}

.page th {
  color: #fff;
  font-weight: 600;
}

/* Install page */
.devices {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin: 24px 0;
}

.device {
  padding: 12px 8px;
  border: 0;
  border-radius: 16px;
  background: var(--panel);
  box-shadow: inset 0 0 0 1.5px var(--line);
  color: #fff;
  font: 600 1rem/1.2 var(--display);
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease;
  -webkit-tap-highlight-color: transparent;
}

.device[aria-pressed="true"] {
  background: var(--coral);
  box-shadow: none;
  color: var(--ink);
}

.device:focus-visible,
.download:focus-visible,
.copy:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 3px;
}

.download {
  display: block;
  padding: 18px 16px;
  border-radius: 20px;
  background: var(--coral);
  color: var(--ink);
  font: 600 1.25rem/1.2 var(--display);
  text-align: center;
  text-decoration: none;
  transition: transform .28s cubic-bezier(.34, 1.56, .64, 1);
}

.download:active { transform: scale(.98); }

@media (hover: hover) {
  .download:hover { transform: translateY(-2px); }
  .download:active { transform: scale(.98); }
}

.steps {
  display: grid;
  gap: 16px;
  margin-top: 24px;
  padding: 0;
  list-style: none;
  counter-reset: step;
}

.steps li {
  position: relative;
  padding-left: 44px;
  counter-increment: step;
}

.steps li::before {
  content: counter(step);
  position: absolute;
  top: 0;
  left: 0;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--panel);
  box-shadow: inset 0 0 0 1.5px var(--coral);
  color: var(--coral);
  font: 600 .9375rem/1 var(--display);
}

.steps strong { color: #fff; }

code {
  padding: 2px 8px;
  border-radius: 8px;
  background: var(--panel);
  box-shadow: inset 0 0 0 1px var(--line);
  font-size: .9375rem;
  overflow-wrap: anywhere;
}

.copy {
  margin-left: 6px;
  padding: 3px 12px;
  border: 0;
  border-radius: 999px;
  background: #fff;
  color: #000;
  font: 600 .8125rem/1.5 var(--display);
  cursor: pointer;
}

.callout {
  margin-top: 16px;
  padding: 14px 16px;
  border-radius: 16px;
  background: var(--panel);
  box-shadow: inset 0 0 0 1px var(--line);
  font-size: .9375rem;
}

/* Desktop versions can't be installed on a phone, so point phone visitors to a computer. */
.phone-only { display: none; }

@media (hover: none) and (pointer: coarse) {
  .phone-only { display: block; margin: 0 0 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .download, .device { transition: none; }
  .download:hover, .download:active { transform: none; }
}
