:root {
  --background: #fff;
  --foreground: #000;
  --wordmark-size: clamp(1.46rem, min(6.1vw, 11.7svh), 7.31rem);
  color-scheme: light;
  background: var(--background);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  min-height: 100%;
  margin: 0;
  background: var(--background);
}

html {
  overflow: hidden;
  overscroll-behavior: none;
}

body {
  min-height: 100vh;
  min-height: 100svh;
  overflow: hidden;
  color: var(--foreground);
  user-select: none;
  -webkit-user-select: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

button,
input,
textarea,
select {
  font: inherit;
}

[hidden] {
  display: none !important;
}

.stage {
  display: grid;
  width: 100%;
  min-height: 100vh;
  min-height: 100svh;
  place-items: center;
  overflow: hidden;
  isolation: isolate;
  touch-action: manipulation;
}

.wordmark {
  display: block;
  width: 5.848em;
  height: 0.88em;
  overflow: visible;
  color: var(--foreground);
  font-size: var(--wordmark-size);
  transform: translateY(-0.045em);
  user-select: none;
  -webkit-user-select: none;
}

.wordmark-shape {
  fill: currentColor;
  shape-rendering: geometricPrecision;
}

.dot {
  --focus-size: 28px;
  position: fixed;
  z-index: 2;
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  appearance: none;
  background: transparent;
  color: var(--foreground);
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
}

.dot::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  content: "";
  transform: translate(-50%, -50%);
}

.dot::after {
  position: absolute;
  top: 0;
  left: 0;
  width: var(--focus-size);
  height: var(--focus-size);
  border: 2px solid transparent;
  border-radius: 50%;
  content: "";
  pointer-events: none;
  transform: translate(-50%, -50%);
}

.dot:focus {
  outline: none;
}

.dot:focus-visible::after {
  border-color: var(--foreground);
}

.dot-face {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 1px;
  height: 1px;
  overflow: visible;
  color: inherit;
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
}

.dot-shape {
  fill: currentColor;
  pointer-events: none;
  shape-rendering: geometricPrecision;
  user-select: none;
  -webkit-user-select: none;
}

.dot.is-moving {
  will-change: transform;
}

html.cursor-hidden,
html.cursor-hidden * {
  cursor: none !important;
}

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@media (max-width: 600px) {
  :root {
    --wordmark-size: 14.535vw;
  }
}

@media (any-pointer: coarse) {
  .stage {
    touch-action: pinch-zoom;
  }
}

@media (forced-colors: active) {
  :root {
    --background: Canvas;
    --foreground: CanvasText;
  }
}
