:root {
  color-scheme: dark;
  --background: #111319;
  --foreground: #f3f1eb;
  --logo-filter: invert(1);
  --grain-image: url('grain-dark.png');
  --grain-opacity: .55;
}

@media (prefers-color-scheme: light) {
  :root {
    color-scheme: light;
    --background: #f3f1eb;
    --foreground: #111319;
    --logo-filter: none;
    --grain-image: url('grain-light.png');
    --grain-opacity: .6;
  }
}

* { box-sizing: border-box; }

html { min-height: 100%; background: var(--background); }

body {
  min-height: 100vh;
  min-height: 100svh;
  margin: 0;
  color: var(--foreground);
  background: var(--background);
  font-family: Arial, Helvetica, sans-serif;
  isolation: isolate;
}

body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: var(--grain-image) repeat;
  background-size: 512px 512px;
  opacity: var(--grain-opacity);
}

body.grain-ready::before { display: none; }

.grain-canvas {
  position: fixed;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.splash {
  position: relative;
  z-index: 1;
  display: flex;
  min-height: 100vh;
  min-height: 100svh;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 32px;
  text-align: center;
}

.logo {
  display: block;
  width: min(60vw, 560px);
  height: auto;
  filter: var(--logo-filter);
}

.subtitle {
  margin: clamp(25px, 3.6vw, 46px) 0 0;
  font-size: clamp(12px, 1vw, 14px);
  font-weight: 600;
  letter-spacing: .24em;
  line-height: 1.3;
  text-transform: uppercase;
}

@media (max-width: 560px) {
  .logo { width: min(72vw, 420px); }
  .subtitle { letter-spacing: .2em; }
}
