@layer base {
  body:not(.has-character) .noticebar {
    display: none;
  }
  .onboarding-hero {
    height: auto;
    min-height: 525px;
    margin: 12px auto;
    max-width: 1120px;
    border: 1px solid var(--line);
    box-shadow: 0 14px 32px var(--shadow-soft);
  }
  .onboarding-hero .hero-shade {
    background:
      var(--intro-bg);
  }
  .onboarding-layout {
    position: relative;
    width: 100%;
    min-height: 525px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(285px, 385px);
    gap: 24px;
    align-items: center;
    padding: 42px clamp(20px, 5%, 64px);
  }
  .onboarding-copy {
    align-self: center;
    padding: 12px 0;
    text-shadow: 0 1px color-mix(in srgb, var(--surface) 80%, transparent);
  }
  .onboarding-copy #onboarding-title {
    font: 700 clamp(2.1875rem, 5vw, 3.4375rem)/1.35 var(--display);
    margin: 16px 0;
    color: var(--heading);
  }
  .onboarding-copy #onboarding-title em {
    font-style: normal;
    color: var(--accent);
  }
  .onboarding-copy p {
    font: 700 0.875rem/2.1 var(--serif);
    color: var(--text);
    max-width: 330px;
    word-break: keep-all;
  }
  .onboarding-scroll {
    display: inline-block;
    margin-top: 25px;
    padding: 9px 12px;
    background: var(--surface);
    color: var(--muted);
    font: 700 0.75rem var(--serif);
  }
  .onboarding-card {
    border: 1px solid var(--line);
    border-top: 4px solid var(--accent);
    background: var(--surface);
    box-shadow: 0 14px 35px var(--shadow-soft), inset 0 0 0 6px color-mix(in srgb, var(--surface) 40%, transparent);
    padding: 24px 22px;
    backdrop-filter: blur(8px);
  }
  .onboarding-intro {
    font: 700 1.0625rem/1.8 var(--display);
    color: var(--heading);
    margin: 0 0 14px;
    word-break: keep-all;
  }
  .onboarding-card .create-form {
    gap: 9px;
  }
  .onboarding-card .create-form label {
    font-size: 0.75rem;
    font-weight: 800;
    color: var(--heading);
    display: block;
  }
  .onboarding-card #char-name {
    font-size: 0.9375rem;
    padding: 13px 12px;
    border-radius: 5px;
    background: var(--surface);
  }
  .class-choices {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    margin: 4px 0 11px;
  }
  .class-choices button {
    min-width: 0;
    display: grid;
    gap: 7px;
    text-align: center;
    padding: 13px 4px 11px;
    color: var(--button-text);
    border: 1px solid var(--line);
    background: var(--button-bg);
    cursor: pointer;
    border-radius: 6px;
  }
  .class-choices button strong {
    font: 700 0.9375rem var(--serif);
    white-space: nowrap;
  }
  .class-choices button small {
    font-size: 0.75rem;
  }
  .class-choices button[aria-checked=true] {
    color: var(--primary-text);
    border-color: var(--accent);
    background: var(--primary-bg);
    box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--primary-text) 55%, transparent);
  }
  .begin-button {
    width: 100%;
    font-size: 0.875rem;
    padding: 14px 8px;
    border-radius: 5px;
  }
  @media (max-width: 1100px) {
    .onboarding-layout {
      grid-template-columns: 1fr 340px;
      padding: 30px;
    }
  }
  @media (max-width: 780px) {
    .onboarding-layout {
      min-height: 0;
      grid-template-columns: 1fr;
      gap: 18px;
      padding: 30px 20px;
    }
    .onboarding-hero {
      min-height: 0;
      margin: 8px auto;
    }
    .onboarding-copy {
      text-align: center;
      padding: 5px;
    }
    .onboarding-copy #onboarding-title {
      margin: 6px 0;
    }
    .onboarding-copy p {
      margin: 0 auto;
    }
    .onboarding-scroll {
      display: none;
    }
    .onboarding-card {
      max-width: 480px;
      width: 100%;
      margin: auto;
      padding: 18px;
    }
  }
  @media (max-width: 480px) {
    .class-choices button strong {
      font-size: 0.8125rem;
    }
  }
}
