:root {
  --font-size-change: 1;
  --display-mode: cols;
  --ink: #f2f7ff;
  --mist: #9fb5da;
  --bloom-core: rgb(225 238 255 / 58%);
  --bloom-halo: rgb(120 182 255 / 40%);
}

* {
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  height: 100%;
  margin: 0;
}

body {
  position: relative;
  overflow: hidden;
  background: #000;
  color: var(--ink);
}

.ui-toggle {
  position: fixed;
  top: 1rem;
  right: 1rem;
  z-index: 4;
  border: 1px solid rgb(180 210 255 / 55%);
  background: rgb(7 14 26 / 78%);
  color: var(--ink);
  padding: 0.55rem 0.8rem;
  font-family: "Cascadia Code", "JetBrains Mono", "Fira Code", monospace;
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  cursor: pointer;
  backdrop-filter: blur(3px);
}

.ui-toggle:hover,
.ui-toggle:focus-visible {
  background: rgb(18 33 56 / 84%);
  outline: none;
}

body::before,
body::after {
  display: none;
}

main {
  position: fixed;
  inset: 8vh 6vw;
  z-index: 1;
  visibility: hidden;
  pointer-events: none;
  display: grid;
  grid-template-columns: minmax(34ch, 1.5fr) minmax(20ch, 1fr);
  align-content: space-between;
  gap: 7vh 5vw;
  font-family: "Cascadia Code", "JetBrains Mono", "Fira Code", monospace;
  font-weight: 700;
}

main div {
  max-width: 44ch;
}

pre {
  position: fixed;
  inset: 0;
  z-index: 2;
  width: 100vw;
  height: 100vh;
  margin: 0;
  padding: 3.5vh 3.5vw;
  overflow: hidden;
  white-space: pre;
  color: var(--ink);
  font-family: "Cascadia Code", "JetBrains Mono", "Fira Code", monospace;
  font-weight: 700;
  font-size: calc(clamp(12px, 0.45rem + 1vw, 21px) * var(--font-size-change));
  line-height: 1.12;
  letter-spacing: 0.03em;
  text-shadow:
    0 0 6px var(--bloom-core),
    0 0 18px var(--bloom-halo),
    0 0 34px rgb(86 152 235 / 28%);
  filter: saturate(1.08) contrast(1.04);
  animation: bloomPulse 4.8s ease-in-out infinite alternate;
}

body.no-bloom pre {
  text-shadow: none;
  filter: none;
  animation: none;
}

body.no-bloom pre a,
body.no-bloom pre a:hover,
body.no-bloom pre a:focus-visible {
  border-bottom: none;
  background: transparent;
  text-decoration: none;
  pointer-events: none;
}

pre a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid rgb(192 217 255 / 55%);
}

pre a:hover,
pre a:focus-visible {
  background: rgb(190 224 255 / 16%);
  outline: none;
}

noscript {
  position: fixed;
  left: 1rem;
  right: 1rem;
  bottom: 1rem;
  z-index: 3;
  border: 1px solid rgb(197 222 255 / 35%);
  background: rgb(12 18 31 / 92%);
  color: var(--mist);
  padding: 0.75rem 0.9rem;
  font: 600 0.9rem/1.3 "Segoe UI", sans-serif;
}

@keyframes bloomPulse {
  from {
    text-shadow:
      0 0 5px var(--bloom-core),
      0 0 14px var(--bloom-halo),
      0 0 26px rgb(86 152 235 / 24%);
  }

  to {
    text-shadow:
      0 0 8px var(--bloom-core),
      0 0 22px var(--bloom-halo),
      0 0 40px rgb(86 152 235 / 34%);
  }
}

@media (max-width: 900px) {
  :root {
    --display-mode: rows;
    --font-size-change: 0.9;
  }

  main {
    inset: 6vh 7vw;
    grid-template-columns: 1fr;
    gap: 4.8vh;
  }

  pre {
    padding: 2.8vh 5vw;
    letter-spacing: 0.02em;
  }

  .ui-toggle {
    top: 0.75rem;
    right: 0.75rem;
    font-size: 0.8rem;
  }
}

@media (max-width: 560px) {
  :root {
    --font-size-change: 0.82;
  }
}
