/* Replay Desk site: broadcast-replay look in the app's own colours. */
:root {
  --graphite: #161a22;   /* page */
  --deck: #1f2430;       /* raised surfaces */
  --rail: #2e3546;       /* lines, tracks */
  --paper: #eef1f6;      /* text */
  --fog: #9aa3b5;        /* secondary text */
  --tally: #f0141c;      /* logo red: record / buy */
  --signal: #3ddc97;     /* buffer, "on" */
  --display: "Barlow Condensed", "Arial Narrow", sans-serif;
  --body: "Barlow", "Segoe UI", system-ui, sans-serif;
  --mono: "JetBrains Mono", Consolas, monospace;
  color-scheme: dark;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; position: relative; isolation: isolate; background: var(--graphite); color: var(--paper); font: 400 18px/1.6 var(--body); -webkit-font-smoothing: antialiased; }
a { color: inherit; }
img { max-width: 100%; height: auto; display: block; }
.mono { font-family: var(--mono); font-size: .85em; }
:focus-visible { outline: 3px solid var(--signal); outline-offset: 3px; border-radius: 4px; }

/* ---------- buttons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 14px 24px; border-radius: 10px;
  font: 600 17px/1 var(--body); text-decoration: none; border: 2px solid transparent; cursor: pointer; transition: background .15s, border-color .15s; }
.btn.primary { background: var(--tally); color: #fff; }
.btn.primary:hover { background: #ff3b41; }
.btn.ghost { border-color: var(--rail); color: var(--paper); }
.btn.ghost:hover { border-color: var(--fog); }
.btn.small { padding: 9px 16px; font-size: 15px; background: var(--paper); color: var(--graphite); }
.btn.small:hover { background: #fff; }
.btn.block { display: flex; width: 100%; }
.price-tag { padding: 4px 8px; margin-right: -8px; border-radius: 6px; background: var(--rail); font-weight: 600; font-size: 15px; }
.btn[aria-disabled="true"] { background: var(--deck); color: var(--fog); border-color: var(--rail); cursor: default; }

/* ---------- top bar ---------- */
.bar { position: sticky; top: 0; z-index: 10; display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding: 14px clamp(20px, 5vw, 64px); background: rgba(22, 26, 34, .88); backdrop-filter: blur(10px); border-bottom: 1px solid var(--rail); }
.brand { display: inline-flex; align-items: center; text-decoration: none; }
.bar .brand img { height: 34px; width: auto; }
.foot .brand img { height: 24px; width: auto; }

/* racing stripes from the logo, behind the hero */
.stripes { position: absolute; top: 0; left: 0; right: 0; height: 760px; overflow: hidden; pointer-events: none; z-index: -1;
  -webkit-mask-image: linear-gradient(transparent 0, #000 70px, #000 55%, transparent); mask-image: linear-gradient(transparent 0, #000 70px, #000 55%, transparent); }
.stripes span { position: absolute; top: -40%; height: 180%; transform: rotate(38deg); transform-origin: top left; }
.stripes span:nth-child(1) { left: 80%; width: 64px; background: linear-gradient(#0b0d12, #0b0d12 70%, transparent); }
.stripes span:nth-child(2) { left: 87%; width: 14px; background: linear-gradient(var(--tally), #7a0a0e 70%, transparent); opacity: .85; }
.stripes span:nth-child(3) { left: 91%; width: 120px; background: linear-gradient(#0b0d12, #0b0d12 60%, transparent); }
@media (max-width: 920px) { .stripes { height: 460px; opacity: .55; } }
.bar nav { display: flex; align-items: center; gap: 28px; }
.bar nav a:not(.btn) { text-decoration: none; color: var(--fog); font-weight: 500; }
.bar nav a:not(.btn):hover { color: var(--paper); }

main { max-width: 1240px; margin: 0 auto; padding: 0 clamp(20px, 5vw, 48px); }

/* ---------- hero ---------- */
.hero { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(32px, 5vw, 72px); align-items: center; padding: clamp(56px, 9vw, 112px) 0 56px; }
.hero h1 { font: 700 clamp(52px, 7.2vw, 96px)/.92 var(--display); letter-spacing: -.5px; margin: 0 0 24px; text-wrap: balance; }
.lede { font-size: 21px; color: #d4d9e3; max-width: 34ch; margin: 0 0 32px; }
.cta { display: flex; flex-wrap: wrap; gap: 12px; }
.fine { color: var(--fog); font-size: 15px; margin: 16px 0 0; }

/* the replay deck */
.deck { margin: 0; background: var(--deck); border: 1px solid var(--rail); border-radius: 16px; padding: 22px 22px 20px; box-shadow: 0 30px 80px -30px rgba(0,0,0,.7); }
.deck-top { display: flex; align-items: center; gap: 12px; }
.tally { width: 12px; height: 12px; border-radius: 50%; background: var(--signal); box-shadow: 0 0 0 4px rgba(61,220,151,.15); }
.tc { font: 700 clamp(30px, 3.6vw, 44px)/1 var(--mono); letter-spacing: -1px; font-variant-numeric: tabular-nums; }
.deck-state { margin-left: auto; color: var(--signal); font-weight: 600; font-size: 15px; }
.track { position: relative; height: 92px; margin: 22px 0 18px; border-radius: 10px; background: var(--graphite); overflow: hidden; border: 1px solid var(--rail); }
.ticks { position: absolute; inset: 0; background: repeating-linear-gradient(90deg, transparent 0 calc(10% - 1px), var(--rail) calc(10% - 1px) 10%); opacity: .7; }
.window { position: absolute; top: 10px; bottom: 10px; width: 26%; border-radius: 6px; background: rgba(61,220,151,.14);
  border: 2px solid var(--signal); display: flex; align-items: flex-end; padding: 6px 8px; transition: background .25s, border-color .25s; }
.window span { font: 500 12px/1 var(--mono); color: var(--signal); white-space: nowrap; }
.window.flash { background: rgba(240,20,28,.35); border-color: var(--tally); }
.window.flash span { color: #fff; }
.head { position: absolute; top: 0; bottom: 0; width: 2px; margin-left: -1px; background: var(--paper); }
.head::before { content: ""; position: absolute; top: 0; left: -6px; border: 7px solid transparent; border-top: 9px solid var(--paper); }
.deck-foot { display: flex; align-items: center; gap: 8px; min-height: 56px; }
.key { font: 700 14px/1 var(--mono); padding: 10px 12px; border-radius: 8px; background: #2a3040; border: 1px solid #3d4558;
  box-shadow: 0 4px 0 #0e1116; transition: transform .08s, box-shadow .08s, background .08s; }
.key.down { transform: translateY(3px); box-shadow: 0 1px 0 #0e1116; background: var(--tally); border-color: var(--tally); color: #fff; }
.saved { margin-left: auto; display: flex; align-items: center; gap: 10px; font-size: 14px; line-height: 1.35; opacity: 0; transform: translateY(6px); }
.saved.show { animation: saved 4.6s ease forwards; }
.saved-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--signal); flex: none; }
.saved .mono { color: var(--fog); }
@keyframes saved { 0% { opacity: 0; transform: translateY(6px); } 8%, 82% { opacity: 1; transform: none; } 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .saved.show { animation: none; opacity: 1; transform: none; } }

/* ---------- screenshots ---------- */
.shot { margin: 0 0 clamp(72px, 10vw, 128px); }
.shot img, .feature img { border-radius: 12px; border: 1px solid var(--rail); box-shadow: 0 30px 80px -40px rgba(0,0,0,.8); }

/* ---------- features ---------- */
h2 { font: 700 clamp(38px, 4.6vw, 60px)/1 var(--display); margin: 0 0 40px; letter-spacing: -.3px; text-wrap: balance; }
h3 { font: 700 34px/1.05 var(--display); margin: 0 0 14px; letter-spacing: -.2px; }
.features { padding-bottom: clamp(72px, 10vw, 120px); }
.feature { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(28px, 5vw, 64px); align-items: center; margin-bottom: clamp(56px, 8vw, 96px); }
.feature.flip { grid-template-columns: 7fr 5fr; }
.feature.flip .feature-copy { order: 2; }
.feature-copy p { color: #c9cfdb; margin: 0 0 14px; max-width: 46ch; }
.feature .small-shot { justify-self: center; width: min(354px, 100%); }

.facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin: 0; border-top: 1px solid var(--rail); }
.facts > div { padding: 26px 26px 26px 0; border-bottom: 1px solid var(--rail); }
.facts dt { font: 700 22px/1.15 var(--display); margin-bottom: 6px; }
.facts dd { margin: 0; color: var(--fog); font-size: 16px; }

/* ---------- pricing ---------- */
.pricing { display: grid; grid-template-columns: 1fr 420px; gap: clamp(32px, 6vw, 80px); align-items: center;
  padding: clamp(48px, 7vw, 80px); margin-bottom: clamp(72px, 10vw, 120px); background: var(--deck); border: 1px solid var(--rail); border-radius: 20px; }
.price-copy p { color: #c9cfdb; max-width: 44ch; margin: 0; }
.price { display: flex; align-items: baseline; gap: 12px; margin-bottom: 16px; }
.amount { font: 700 76px/1 var(--display); letter-spacing: -1px; }
.once { color: var(--fog); font-weight: 500; }
.price-box ul { list-style: none; padding: 0; margin: 0 0 24px; }
.price-box li { padding: 9px 0 9px 28px; border-bottom: 1px solid var(--rail); position: relative; font-size: 17px; }
.price-box li::before { content: ""; position: absolute; left: 4px; top: 17px; width: 10px; height: 10px; border-radius: 50%; background: var(--signal); }
.price-box .btn + .btn { margin-top: 10px; }

/* ---------- faq ---------- */
.faq { max-width: 820px; padding-bottom: clamp(72px, 10vw, 120px); }
.faq details { border-bottom: 1px solid var(--rail); }
.faq summary { cursor: pointer; list-style: none; padding: 20px 40px 20px 0; font: 600 20px/1.3 var(--body); position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 6px; top: 16px; font: 500 28px/1 var(--body); color: var(--fog); transition: transform .2s; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { margin: 0 0 22px; color: #c9cfdb; max-width: 64ch; }

/* ---------- footer ---------- */
.foot { display: flex; flex-wrap: wrap; align-items: center; gap: 28px; padding: 32px clamp(20px, 5vw, 64px); border-top: 1px solid var(--rail); color: var(--fog); font-size: 15px; }
.foot .brand { margin-right: auto; }
.foot a { text-decoration: none; }
.foot a:hover { color: var(--paper); }

/* ---------- small screens ---------- */
@media (max-width: 920px) {
  .hero, .feature, .feature.flip, .pricing { grid-template-columns: 1fr; }
  .feature.flip .feature-copy { order: 0; }
  .facts { grid-template-columns: 1fr 1fr; }
  .bar nav a:not(.btn) { display: none; }
}
@media (max-width: 560px) {
  body { font-size: 17px; }
  .facts { grid-template-columns: 1fr; }
  .pricing { padding: 28px 22px; }
  .deck-foot { flex-wrap: wrap; }
  .saved { margin-left: 0; width: 100%; }
}
