@layer base {
  @font-face {
    font-family: "Architexture";
    src: url("/fonts/Architexture.ttf") format("truetype");
    font-weight: 400 800;
    font-style: normal;
    font-display: block;
  }

  html {
    font-size: 100%;
    color-scheme: light;
    min-block-size: 100%;
    background: var(--color-bg);
  }

  body {
    min-block-size: 100vh;
    min-block-size: 100dvh;
    font-family: "Architexture", system-ui, sans-serif;
    font-size: var(--font-size-body);
    color: var(--color-ink);
    font-synthesis: none;
    background:
      linear-gradient(180deg, var(--color-shell-glow), transparent 22%),
      var(--color-bg);
    background-color: var(--color-bg);
    -webkit-user-select: none;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    isolation: isolate;
  }

  html[data-auth-state="unauthenticated"] body[data-auth-protected="true"],
  html[data-auth-state="session_expired"]:not([data-form-dirty="true"]) body[data-auth-protected="true"],
  html[data-auth-state="logging_out"] body[data-auth-protected="true"],
  html[data-auth-state="bfcache_suspended"] body[data-auth-protected="true"],
  html[data-auth-state="unknown"] body[data-auth-protected="true"]:not([data-private-gate="true"]),
  html[data-auth-state="checking_session"] body[data-auth-protected="true"]:not([data-private-gate="true"]) {
    visibility: hidden;
  }

  html[data-session-state="loading"] [data-required-feature] {
    visibility: hidden;
  }

  .visually-hidden {
    position: absolute;
    inline-size: 0.0625rem;
    block-size: 0.0625rem;
    padding: 0;
    margin: -0.0625rem;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
  }

  input,
  textarea {
    -webkit-user-select: text;
    user-select: text;
  }

  img,
  svg {
    -webkit-user-drag: none;
    -webkit-touch-callout: none;
  }

  a {
    color: inherit;
  }

  h1 {
    font-size: clamp(2.375rem, 6vw, 4.5rem);
    line-height: var(--line-height-tight);
  }

  h2 {
    font-size: clamp(1.5rem, 4vw, 2.125rem);
    line-height: var(--line-height-title);
  }

  .eyebrow {
    font-size: var(--font-size-eyebrow);
    font-weight: var(--weight-bold);
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--color-accent);
  }

  .lead {
    max-inline-size: var(--text-max);
    color: var(--color-muted);
    font-size: var(--font-size-lead);
    line-height: var(--line-height-copy);
  }

  @media (max-width: 30rem) {
    body[data-auth-protected="true"] {
      min-block-size: auto;
      overscroll-behavior-y: none;
    }

    body[data-auth-public="true"] {
      min-block-size: 100svh;
      overflow: hidden;
      overscroll-behavior-y: none;
    }
  }

}
