:root {
  --dark-color-h: 334.29;
  --dark-color-s: 32.03%;
  --dark-color-l: 30%;
  --light-color-h: 19.2;
  --light-color-s: 30.86%;
  --light-color-l: 84.12%;
  --dark-color: hsl(
    var(--dark-color-h),
    var(--dark-color-s),
    var(--dark-color-l)
  );
  --dark-color-lighter: hsl(
    var(--dark-color-h),
    var(--dark-color-s),
    calc(var(--dark-color-l) + 10%)
  );
  --dark-color-darker: hsl(
    var(--dark-color-h),
    var(--dark-color-s),
    calc(var(--dark-color-l) - 10%)
  );
  --dark-color-translucent: hsla(
    var(--dark-color-h),
    var(--dark-color-s),
    var(--dark-color-l),
    0.75
  );
  --dark-color-darker-translucent: hsla(
    var(--dark-color-h),
    var(--dark-color-s),
    calc(var(--dark-color-l) - 10%),
    0.75
  );
  --light-color: hsl(
    var(--light-color-h),
    var(--light-color-s),
    var(--light-color-l)
  );
  --light-color-lighter: hsl(
    var(--light-color-h),
    var(--light-color-s),
    calc(var(--light-color-l) + 10%)
  );
  --light-color-darker: hsl(
    var(--light-color-h),
    var(--light-color-s),
    calc(var(--light-color-l) - 10%)
  );
  --light-color-translucent: hsla(
    var(--light-color-h),
    var(--light-color-s),
    var(--light-color-l),
    0.75
  );
  --color-bg: var(--dark-color);
  --color-text: var(--light-color);
  --color-muted: color-mix(
    in oklab,
    var(--color-text) 50%,
    var(--color-bg) 50%
  );
  --color-accent: color-mix(
    in oklab,
    var(--color-text) 80%,
    var(--color-bg) 20%
  );
  --color-border: color-mix(
    in oklab,
    var(--color-text) 30%,
    var(--color-bg) 70%
  );
  --resources-bg-color: var(--dark-color-darker-translucent);
  --resources-active-color: color-mix(
    in srgb,
    var(--light-color) 75%,
    transparent
  );
  --resources-color: var(--color-text);
  --ts-h6: clamp(12px, 1.0753vw + 8.9892px, 20px);
  --ts-h5: clamp(14.4px, 1.2903vw + 10.7871px, 24px);
  --ts-h4: clamp(17.28px, 1.5484vw + 12.9445px, 28.8px);
  --ts-h3: clamp(20.736px, 1.8581vw + 15.5334px, 34.56px);
  --ts-h2: clamp(24.8832px, 2.2297vw + 18.6401px, 41.472px);
  --ts-h1: clamp(29.8598px, 2.6756vw + 22.3681px, 49.7664px);
}

*,
::after,
::before {
  border-style: solid;
  border-width: 0;
  box-sizing: border-box;
}

* {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

html {
  overflow-y: scroll;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  background: var(--color-bg);
  color: var(--color-text);
  font-family: Inter, Roboto, "Helvetica Neue", "Arial Nova", "Nimbus Sans",
    Arial, sans-serif;
  line-height: 1.5;
  margin: 0;
  min-height: 100vh;
  width: 100%;
}

.viewport-wrapper {
  height: auto;
  overflow: visible;
  position: relative;
}

.content-scroll {
  display: block;
  width: 100%;
}

body:not(.normalize-scroll) .viewport-wrapper {
  bottom: 0;
  height: 100%;
  left: 0;
  overflow: hidden;
  position: fixed;
  right: 0;
  top: 0;
  width: 100%;
}

body:not(.normalize-scroll) .content-scroll {
  overflow: visible;
}

body:not(.normalize-scroll) .content-scroll .sv-wrapper {
  perspective: 2000px;
}

body:not(.normalize-scroll) .content-scroll .pin-spacer {
  transform-style: preserve-3d;
}

h2 {
  font-size: var(--ts-h2);
}

h2,
h3 {
  color: var(--color-accent);
  font-weight: 400;
  letter-spacing: 0.025em;
  line-height: 1.3;
  margin-bottom: 0.65rem;
  margin-top: 0;
}

h3 {
  font-size: var(--ts-h3);
}

ul {
  padding-left: 1.2rem;
}

li {
  margin-bottom: 0.5em;
}

code {
  background: var(--dark-color-darker-translucent);
  border-radius: 0.1875rem;
  padding: 0.125rem 0.25rem;
  white-space: normal;
  word-break: break-word;
}

pre code {
  overflow-x: auto;
  padding: 1rem;
  white-space: pre;
  word-break: normal;
}

main,
pre code {
  display: block;
}

main {
  margin: 0;
  position: relative;
}

section {
  display: block;
  psoition: relative;
}

section:is(.intro, .indicator) {
  margin: 4rem auto;
  max-width: 56.25rem;
  width: calc(100% - 2rem);
}

section.intro a,
section.intro a:visited {
  color: var(--color-text);
}

section.intro a:active {
  color: var(--color-accent);
}

section.intro a:focus-visible {
  color: var(--color-accent);
  outline: none;
}

section.indicator {
  text-align: center;
}

section.indicator h3 {
  font-size: var(--ts-h5);
  font-weight: 400;
  margin: 0;
}

section:has(.sv-wrapper) {
  background: var(--dark-color-darker);
  padding: 4rem 0;
}

.sv-wrapper {
  display: block;
  margin-inline: auto;
  max-width: 64rem;
  position: relative;
  width: calc(100% - 2rem);
}

.sv-pin-container {
  aspect-ratio: 16/9;
  border-radius: 1.5vh;
  display: grid;
  max-height: 100lvh;
  overflow: hidden;
}

.sv-pin-container,
.sv-video {
  position: relative;
  width: 100%;
}

.sv-video {
  -o-object-fit: cover;
  object-fit: cover;
  pointer-events: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}

.sv-cue,
.sv-video {
  display: block;
  grid-area: 1/-1;
  height: 100%;
}

.sv-cue,
.sv-cue-content {
  position: relative;
  width: 100%;
}

.sv-cue-content {
  align-items: center;
  display: flex;
  flex-direction: column;
  height: 100%;
  justify-content: center;
  opacity: 0;
  padding: 1rem;
  pointer-events: none;
  text-align: center;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}

.sv-cue-content h2 {
  margin-bottom: 0.25em;
}

.sv-cue-content p {
  margin-top: -0.5em;
}

.sv-preloader {
  background: #000;
  grid-area: 1/-1;
  transition: opacity 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.sv-overlay-track,
.sv-preloader {
  display: block;
  pointer-events: none;
  position: relative;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}

.sv-overlay-track {
  height: var(--track-height, 100lvh);
  margin-top: var(--track-offset-y, -100lvh);
  width: 100%;
}

.sv-overlay-markers {
  inset: 0;
  pointer-events: none;
  position: absolute;
}

.sv-overlay-second-marker {
  border-top: thin dashed var(--light-color);
  color: var(--light-color);
  font-size: 0.625rem;
  left: 0;
  padding-right: 0.25rem;
  position: absolute;
  text-align: right;
  width: 100%;
}

.sv-overlay-cue-marker {
  align-items: center;
  display: flex;
  height: 0.0625rem;
  left: 0;
  position: absolute;
  width: 100%;
}

.sv-overlay-cue-marker.start {
  background-color: #2ecc71;
}

.sv-overlay-cue-marker.end {
  background-color: #e74c3c;
}

.sv-overlay-cue-label {
  background: var(--light-color);
  border-radius: 0.1875rem;
  color: var(--dark-color-darker);
  font-size: 0.625rem;
  margin-left: 0.25rem;
  padding: 0.125rem 0.25rem;
}

.spacer {
  display: block;
  height: 100lvh;
  position: relative;
}

.resources-layer {
  bottom: 0;
  display: block;
  position: fixed;
  right: 0;
  z-index: 1000;
}

.resources {
  background: var(--resources-bg-color);
  display: grid;
  font-size: 0.6875rem;
  font-weight: 300;
  grid-auto-flow: column;
  line-height: 1.3;
  padding: 0.5rem;
  pointer-events: auto;
}

.resources a {
  align-content: center;
  display: grid;
  justify-content: center;
  padding: 0 0.5rem;
  place-content: center;
  transition: color 0.2s ease-in-out;
}

.resources a,
.resources a:visited {
  color: var(--resources-color);
}

.resources a:active,
.resources a:focus-visible {
  color: var(--resources-active-color);
}

.resources a:focus-visible {
  outline: none;
}

.resources a:not(:first-child) {
  border-inline-start: thin solid currentColor;
}

@media (max-width: 51.29875em) {
  .sv-pin-container {
    aspect-ratio: 4/3;
    border-radius: 2vh;
  }
}

@media (max-width: 36.04875em) {
  .sv-pin-container {
    aspect-ratio: 1/1;
  }
}

@media (hover: hover) and (pointer: fine) {
  section.intro a:active:not(:hover),
  section.intro a:hover {
    color: var(--color-accent);
  }

  .resources a:active:not(:hover),
  .resources a:hover {
    color: var(--resources-active-color);
  }
}