:root {
  color-scheme: light;

  /* Landing-page composition values derived from the canonical web theme. */
  --dv-site-page-gutter: clamp(var(--dv-space-5), 5vw, var(--dv-space-16));
  --dv-site-logo-size: min(76vw, 34rem);
  --dv-site-copy-width: 32rem;
}

* {
  box-sizing: border-box;
}

html,
body {
  min-height: 100%;
}

body {
  margin: 0;
  overflow-x: hidden;
  background: var(--dv-gradient-hero);
  color: var(--dv-color-semantic-text-primary);
  font-family: var(--dv-font-family-body);
  font-weight: var(--dv-font-weight-regular);
}

img {
  display: block;
  max-width: 100%;
}

.site-shell {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 100vh;
  min-height: 100svh;
  overflow: hidden;
  background: var(--dv-gradient-peach-glow);
}

.splash {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(100%, var(--dv-size-desktop-content));
  min-height: 100vh;
  min-height: 100svh;
  margin: 0 auto;
  padding: var(--dv-site-page-gutter);
  justify-content: center;
  text-align: center;
}

.site-footer {
  position: absolute;
  right: 0;
  bottom: max(var(--dv-space-2), env(safe-area-inset-bottom));
  left: 0;
  display: flex;
  justify-content: center;
  padding-inline: var(--dv-site-page-gutter);
}

.site-footer a {
  display: inline-flex;
  min-height: var(--dv-size-touch-min);
  align-items: center;
  padding-inline: var(--dv-space-3);
  border-radius: var(--dv-radius-pill);
  color: var(--dv-color-semantic-text-secondary);
  font-size: var(--dv-font-size-xs);
  text-decoration: none;
}

.site-footer a:hover {
  color: var(--dv-color-semantic-action-primary);
  text-decoration: underline;
  text-underline-offset: var(--dv-space-1);
}

.site-footer a:focus-visible {
  outline: var(--dv-border-strong) solid var(--dv-color-semantic-focus-ring);
  outline-offset: var(--dv-space-1);
}

.splash__logo-frame {
  width: var(--dv-site-logo-size);
  max-width: 100%;
  aspect-ratio: 1.3 / 1;
  overflow: hidden;
}

.splash__logo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 45%;
  filter: drop-shadow(var(--dv-shadow-art));
}

.splash__copy {
  width: min(100%, var(--dv-site-copy-width));
  margin-top: var(--dv-space-8);
}

h1 {
  margin: 0;
  font-size: clamp(var(--dv-font-size-md), 1.7vw, var(--dv-font-size-xl));
  font-weight: var(--dv-font-weight-medium);
  line-height: var(--dv-font-line-height-normal);
}

.splash__copy p {
  margin: var(--dv-space-1) 0 0;
  color: var(--dv-color-semantic-text-primary);
  font-size: clamp(var(--dv-font-size-md), 1.7vw, var(--dv-font-size-xl));
  line-height: var(--dv-font-line-height-normal);
}

.splash__heart {
  margin-top: var(--dv-space-6);
  color: var(--dv-color-semantic-love);
  font-family: var(--dv-font-family-display);
  font-size: var(--dv-font-size-2xl);
  line-height: var(--dv-font-line-height-tight);
  text-shadow: var(--dv-shadow-xs);
}

.splash__copy .splash__status {
  margin-top: var(--dv-space-5);
  color: var(--dv-color-semantic-text-secondary);
  font-size: var(--dv-font-size-sm);
}

@media (forced-colors: active) {
  .splash__heart {
    color: CanvasText;
  }
}
