/* Public site styles. Uses PULL v2 design tokens; does not alter application styles. */
@layer v2 {
  .public-site { max-width: 1180px; gap: var(--space-10); }
  .public-site h1 { font-size: clamp(2.3rem, 5vw, 4rem); line-height: 1.12; letter-spacing: var(--tracking-tight); }
  .public-site h2 { font-size: clamp(1.7rem, 3vw, 2.3rem); }
  .public-site h3 { font-size: var(--fs-3xl); }
  .public-site p { line-height: var(--lh-body); }
  .public-nav { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-4); padding-block: var(--space-3); border-bottom: var(--border-width-thin) solid var(--border); }
  .public-brand { color: var(--text); font-weight: var(--fw-black); font-size: var(--fs-xl); letter-spacing: var(--tracking-caps); text-decoration: none; }
  .public-nav-links { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4); }
  .public-nav-links > a:not(.btn), .public-footer a { color: var(--text); font-size: var(--fs-md); font-weight: var(--fw-bold); text-decoration: none; }
  .public-nav-links > a:hover, .public-footer a:hover { color: var(--accent-ink); text-decoration: underline; }
  .public-nav-links [aria-current="page"] { text-decoration: underline; text-underline-offset: var(--space-1); }
  .public-hero, .public-split { display: grid; gap: var(--space-7); grid-template-columns: minmax(0, 1fr); align-items: center; }
  .public-hero { padding-block: var(--space-8); }
  .public-hero-copy { display: flex; flex-direction: column; gap: var(--space-5); }
  .public-hero-copy h1, .public-hero-copy p { margin: 0; }
  .public-hero-copy > p { max-width: 730px; font-size: var(--fs-2xl); }
  .public-actions { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; }
  .public-hero-panel { background: var(--accent-soft); border: var(--border-width-thick) solid var(--info-border); border-radius: var(--radius-2xl); padding: var(--space-8); }
  .public-panel-head { font-size: var(--fs-6xl); font-weight: var(--fw-black); color: var(--text); margin-top: var(--space-4); }
  .public-hero-panel p:last-child { margin-bottom: 0; }
  .public-section { display: flex; flex-direction: column; gap: var(--space-3); }
  .public-section > h2, .public-section > p { margin: 0; }
  .public-grid-three, .public-grid-four { display: grid; grid-template-columns: minmax(0,1fr); gap: var(--space-4); margin-top: var(--space-4); }
  .public-feature { display: flex; flex-direction: column; gap: var(--space-3); min-height: 100%; }
  .public-feature h3, .public-feature p { margin: 0; }
  .public-feature strong { font-size: var(--fs-md); margin-top: auto; }
  .public-feature-number { color: var(--accent-ink); font-size: var(--fs-sm); font-weight: var(--fw-black); letter-spacing: var(--tracking-caps); }
  .public-split { padding: var(--space-7); }
  .public-split h2 { margin-top: var(--space-2); }
  .public-text-link { color: var(--accent-ink); font-weight: var(--fw-bold); }
  .public-pull-action { background: var(--surface-2); border-radius: var(--radius-lg); padding: var(--space-6); display: flex; align-items: center; flex-direction: column; gap: var(--space-4); }
  .public-pull-action img { max-width: 100%; height: auto; }
  .public-quick { display: flex; flex-direction: column; gap: var(--space-2); color: var(--text); text-decoration: none; }
  .public-quick:hover { border-color: var(--accent); }
  .public-quick span { color: var(--text-muted); font-size: var(--fs-md); }
  .public-footer { padding-block: var(--space-5); border-top: var(--border-width-thin) solid var(--border); display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-4); font-size: var(--fs-sm); color: var(--text-muted); }
  .public-course-hero { padding-block: var(--space-8); display: flex; flex-direction: column; gap: var(--space-5); }
  .public-course-hero h1, .public-course-hero p { margin: 0; }
  .public-course-lead { max-width: 860px; font-size: var(--fs-2xl); }
  .public-meta { display: flex; flex-wrap: wrap; gap: var(--space-2); }
  .public-meta span { font-size: var(--fs-sm); background: var(--surface-2); padding: var(--space-2) var(--space-3); border-radius: var(--radius-pill); font-weight: var(--fw-semibold); }
  .public-reading { max-width: 900px; }
  .public-reading p { font-size: var(--fs-xl); }
  .public-project-list { display: flex; flex-direction: column; gap: var(--space-3); }
  .public-project-list span { padding: var(--space-3) var(--space-4); background: var(--surface-2); border-radius: var(--radius-md); font-weight: var(--fw-semibold); }
  .public-course-close { padding: var(--space-8); background: var(--accent-soft); border-radius: var(--radius-2xl); display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
  .public-course-close h2, .public-course-close p { margin: 0; }
  @media (min-width: 768px) {
    .public-grid-three { grid-template-columns: repeat(3, minmax(0,1fr)); }
    .public-grid-four { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .public-hero { grid-template-columns: minmax(0, 1.5fr) minmax(0,1fr); }
    .public-split { grid-template-columns: minmax(0, 1.5fr) minmax(0,1fr); }
  }
  @media (min-width: 992px) { .public-grid-four { grid-template-columns: repeat(4, minmax(0,1fr)); } }
}
