:root {
  color-scheme:light;
  --paper:#f5f5f7;
  --surface:#fff;
  --ink:#171717;
  --muted:#606064;
  --accent:#ff9500;
  --control:#e7e7eb;
  --frame:#f7d4d2;
  --ease:cubic-bezier(.22,1,.36,1);
}
* {
  box-sizing:border-box;
}
html {
  scroll-padding-top:24px;
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:17px/1.6 -apple-system,BlinkMacSystemFont,"Helvetica Neue",sans-serif;
}
a {
  color:inherit;
  text-decoration-thickness:1.5px;
  text-underline-offset:5px;
}
a:focus-visible,button:focus-visible,input:focus-visible {
  outline:3px solid var(--ink);
  outline-offset:5px;
}
a:hover {
  text-decoration-color:var(--accent);
}
.wrap {
  width:min(1120px,100% - 64px);
  margin-inline:auto;
}
header {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  padding:28px 0;
}
.brand {
  display:block;
  flex-shrink:0;
  width:136px;
  aspect-ratio:1044/400;
  background:var(--ink);
  mask:url('/wordmark-en.svg') center/contain no-repeat;
}
nav {
  display:flex;
  gap:28px;
}
nav a {
  display:flex;
  align-items:center;
  min-height:44px;
  text-decoration:none;
}
nav a:hover,nav [aria-current] {
  text-decoration:underline;
  text-decoration-color:var(--accent);
}
h1,h2,h3 {
  letter-spacing:-.045em;
  line-height:1.08;
  text-wrap:balance;
}
h1 {
  font-size:clamp(44px,5.2vw,72px);
  font-weight:650;
  margin:0 0 32px;
}
h2 {
  font-size:clamp(30px,3.2vw,44px);
  font-weight:650;
  margin:0 0 24px;
}
h3 {
  font-size:24px;
  margin:48px 0 16px;
}
p {
  margin:0 0 20px;
  max-width:60ch;
  text-wrap:pretty;
}
.intro {
  font-size:21px;
  line-height:1.5;
  max-width:36ch;
}
.home-hero {
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:64px;
  padding:64px 0 88px;
}
.button {
  display:inline-flex;
  min-height:50px;
  padding:12px 24px;
  align-items:center;
  justify-content:center;
  border-radius:100px;
  background:var(--accent);
  color:var(--ink);
  font-weight:600;
  text-decoration:none;
  margin-top:12px;
  transition:transform 180ms var(--ease);
}
.button:active {
  transform:scale(.97);
}
.availability {
  font-size:15px;
  color:var(--muted);
  margin:20px 0 0;
}
.demo {
  background:var(--surface);
  padding:20px;
  border-radius:28px;
}
.collage {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
  padding:16px;
  background:var(--frame);
  aspect-ratio:1;
}
.collage img {
  display:block;
  width:100%;
  height:100%;
  min-height:0;
  object-fit:cover;
  border-radius:24px;
}
.adjust {
  padding:22px 4px 0;
}
.adjust label {
  display:flex;
  justify-content:space-between;
  font-weight:500;
}
.adjust output {
  color:var(--muted);
  font-variant-numeric:tabular-nums;
}
/* The native input keeps keyboard and assistive-technology behavior. */
.slider {
  position: relative;
  height: 44px;
  margin: 2px 0 12px;
}
.slider::before, .slider::after {
  content: "";
  position: absolute;
  left: 14px;
  top: 19px;
  height: 6px;
  border-radius: 100px;
  pointer-events: none;
}
.slider::before {
  right: 14px;
  background: var(--control);
}
.slider::after {
  width: calc((100% - 28px) * var(--position));
  background: var(--accent);
}
input[type=range] {
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 44px;
  margin: 0;
  background: transparent;
  cursor: pointer;
  border-radius: 100px;
}
input[type=range]::-webkit-slider-runnable-track {
  height: 6px;
  background: transparent;
}
input[type=range]::-webkit-slider-thumb {
  appearance: none;
  -webkit-appearance: none;
  width: 28px;
  height: 28px;
  margin-top: -11px;
  border: 2px solid var(--control);
  border-radius: 50%;
  background: var(--surface);
}
input[type=range]::-moz-range-track {
  height: 6px;
  background: transparent;
}
input[type=range]::-moz-range-thumb {
  box-sizing: border-box;
  width: 28px;
  height: 28px;
  border: 2px solid var(--control);
  border-radius: 50%;
  background: var(--surface);
}
input[type=range]:active::-webkit-slider-thumb {
  border-color: var(--accent);
}
input[type=range]:active::-moz-range-thumb {
  border-color: var(--accent);
}
.feature {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
  align-items:center;
  padding:72px 0;
}
.feature p {
  max-width:39ch;
}
.screen {
  margin:0;
  background:var(--control);
  border-radius:28px;
  padding:28px;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.screen img {
  display:block;
  width:100%;
  max-width:250px;
  height:auto;
  border-radius:24px;
}
.screen figcaption {
  font-size:15px;
  margin-top:24px;
}
.reverse>div {
  order:2;
}
.reverse>figure {
  order:1;
}
.video-section {
  margin:72px 0;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
  align-items:center;
  background:var(--surface);
  border-radius:28px;
  padding:48px;
}
.video-section video {
  display:block;
  width:100%;
  max-width:280px;
  height:auto;
  justify-self:center;
  border-radius:24px;
}
.closing {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
  padding:80px 0 100px;
}
footer {
  display:flex;
  gap:28px;
  align-items:center;
  justify-content:space-between;
  padding:32px 0 40px;
  color:var(--muted);
  font-size:15px;
}
footer .brand {
  width:112px;
}
.skip {
  position:absolute;
  top:16px;
  left:24px;
  padding:12px 20px;
  background:var(--surface);
  z-index:2;
  transform:translateY(-200%);
}
.skip:focus {
  transform:none;
}
.document .wrap {
  max-width:960px;
}
.document .hero {
  padding:72px 0 48px;
}
.document h1 {
  font-size:clamp(44px,6vw,64px);
}
.document article {
  background:var(--surface);
  border-radius:28px;
  padding:8px 40px;
  margin-bottom:48px;
}
.document section {
  padding:32px 0;
}
.document h2 {
  font-size:26px;
  max-width:30ch;
}
.document p {
  max-width:65ch;
}
.steps {
  padding-left:24px;
}
.steps li {
  margin:0 0 14px;
  padding-left:6px;
}
.document footer {
  padding-top:12px;
}
@media(max-width:800px) {
  .wrap {
    width:calc(100% - 40px);
  }
  .home-hero {
    gap:28px;
    padding-top:40px;
  }
  .hero-copy .intro {
    font-size:19px;
  }
  .feature,.closing {
    gap:40px;
  }
  .video-section {
    gap:40px;
    padding:32px;
  }
  .demo {
    padding:14px;
  }
  .collage {
    padding:12px;
  }
  .screen {
    padding:20px;
  }
}
@media(max-width:600px) {
  header {
    padding:20px 0;
  }
  .brand {
    width:116px;
  }
  nav {
    gap:20px;
    font-size:16px;
  }
  .home-hero {
    grid-template-columns:1fr;
    gap:36px;
    padding:40px 0 48px;
  }
  h1 {
    font-size:48px;
  }
  .intro {
    font-size:19px;
    max-width:30ch;
  }
  .feature,.video-section,.closing {
    grid-template-columns:1fr;
    gap:28px;
    padding:40px 0;
  }
  .feature {
    padding:48px 0;
  }
  .reverse>div,.reverse>figure {
    order:initial;
  }
  .screen {
    padding:28px;
  }
  .video-section {
    padding:28px;
    margin:40px 0;
  }
  .closing {
    padding-bottom:56px;
  }
  footer {
    flex-wrap:wrap;
    gap:20px;
  }
  footer .brand {
    margin-right:auto;
  }
  footer span {
    font-size:14px;
  }
  .document .hero {
    padding:40px 0 24px;
  }
  .document article {
    padding:0 24px;
  }
  .document h2 {
    font-size:24px;
  }
  .document section {
    padding:24px 0;
  }
}
@media(prefers-reduced-motion:no-preference) {
  .hero-copy>* {
    animation:arrive 650ms var(--ease) both;
  }
  .hero-copy>:nth-child(2) {
    animation-delay:70ms;
  }
  .hero-copy>:nth-child(3) {
    animation-delay:140ms;
  }
  .hero-copy>:nth-child(4) {
    animation-delay:210ms;
  }
  .demo {
    animation:settle 800ms var(--ease) both;
  }
  .collage img {
    animation:settle 750ms var(--ease) both;
  }
  .collage img:nth-child(2) {
    animation-delay:70ms;
  }
  .collage img:nth-child(3) {
    animation-delay:140ms;
  }
  .collage img:nth-child(4) {
    animation-delay:210ms;
  }
  .reveal {
    animation:arrive 600ms var(--ease) both;
  }
  @keyframes arrive {
    from {
      opacity:.35;
      transform:translateY(16px);
    }
    to {
      opacity:1;
      transform:none;
    }
  }
  @keyframes settle {
    from {
      opacity:.4;
      transform:scale(.97);
    }
    to {
      opacity:1;
      transform:none;
    }
  }
}
