body {
  width: 100vw;
  overflow-x: hidden;
}

.splash {
  width: 100vw;
  height: min(100lvh, 2000px);
  overflow: hidden;
  position: absolute;
  font-size: 22px;
}

.h1-positioner {
  grid-column: full-start / full-end;
  position: sticky;
  z-index: 4;
  top: 1.5rem;
  margin-top: calc(50lvh); /* gets overridden */
  height: 3rem; /* fix at settled height */
  font-size: 22px;
  width: 1px;
  white-space: nowrap;
}

h1 {
  display: inline-block;
  margin: 0;
  padding: 0;
  font-family: var(--font-site-title);
  color: var(--color-text-primary-on-blank);
  font-size: inherit;
}

.h1-positioner.init {
  transform: translateX(50vw);
}
.h1-positioner.scroll-to {
  transition: transform 2s;
}
.h1-positioner.scroll-to h1 {
  transition: scale 2s, transform 2s;
}
.h1-positioner.zoom-to,
.h1-positioner.scroll-to.zoom-to {
  transition: transform 0.2s;
}
.h1-positioner.zoom-to h1 {
  transition: scale 0.2s, transform 0.2s;
}

.h1-positioner.settled {
  transform: translateX(var(--gap));
  font-size: 22px;
}

.h1-positioner.settled h1 {
  transform: scale(1) translateX(0) translateY(-50%);
}

button#scroll-to-content {
  border-style: none;
  background-color: transparent;
  z-index: 3;
  font-size: 1em;
  position: absolute;
  left: calc(50vw - 0.65em);
  top: 50lvh;
  width: 1.3em;
  cursor: pointer;
  margin-top: 2em;
}

#scroll-to-content svg {
  color: var(--color-text-quaternary-on-blank);
  width: 1em;
  transform: translateY(50%);
}

.overlay {
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  width: 100vw;
  height: 102lvh;
  background-color: var(--color-bg-blank);
  opacity: 0;
}

.overlay.flash {
  opacity: 1;
  transition: opacity 0.75s;
}

.overlay.scroll-to {
  transition: opacity 0.75s;
}
.overlay.zoom-to {
  transition: opacity 0.2s;
}

.overlay.settled {
  opacity: 1;
}

.splash .snippet {
  position: absolute;
  display: none;
  overflow: hidden;
  top: 0;
  left: 0;
}

.splash code {
  font-size: 0.7em;
  top: 0;
  left: 0;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}

.splash code .name {
  display: inline-block;
  position: relative;
  font-family: var(--font-site-title);
  color: var(--color-bg-blank);
  font-size: 1.4285em;
  line-height: 1.4em;
  vertical-align: text-top;
  margin-top: -0.2em;
}

/* additional switcher on splash */
body > theme-switcher {
  z-index: 2;
  position: absolute;
  top: 1em;
  right: 2em;
}

body .site-title {
  visibility: hidden;
}

body > .header-backdrop + site-header {
  z-index: 5;
}

body > .header-backdrop + site-header > header {
  background-color: transparent;
}

.header-backdrop {
  grid-column: full-start / full-end;
  height: 3em;
  position: sticky;
  top: 0px;
  background-color: var(--color-bg-blank);
  z-index: 1;
  margin-top: 50lvh;
}

main.home {
  display: flex;
  flex-direction: column;
  min-height: 110vh;
}

main.home > h2 {
  text-align: center;
  background-color: var(--color-bg-secondary);
  padding-top: var(--gap);
  padding-bottom: var(--gap);
  color: var(--color-text-on-secondary);
  font-size: var(--font-size-heading);
  margin-top: 0;
  margin-bottom: var(--gap);
}