/* Shared site reset and typography baseline */
:root {
  --gtz-page-bg: #f5f5f5;
  --gtz-panel: #ffffff;
  --gtz-text: #171717;
  --gtz-muted: #6b7280;
  --gtz-border: #e5e7eb;
  --gtz-link: #3b49df;
  --gtz-reading-width: 48rem;
  --gtz-listing-width: 50rem;
}

html {
  -webkit-text-size-adjust: 100%;
}

body {
  color: var(--gtz-text);
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  font-size: 18px;
  line-height: 1.65;
}

a {
  text-underline-offset: 0.15em;
}


/* Mobile reading header */
.mobile-header {
  display: none;
}

@media (max-width: 900px) {
  body.has-mobile-header {
    --mobile-header-offset: 4.75rem;
    padding-top: var(--mobile-header-offset);
  }

  .mobile-header {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    padding: 0.38rem 0.75rem 0.38rem;
    background: rgba(245, 245, 245, 0.94);
    border-bottom: 1px solid var(--gtz-border, #e5e7eb);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    transition: transform 0.24s ease, padding 0.24s ease, box-shadow 0.24s ease, background-color 0.24s ease;
  }

  body.mobile-header-compact .mobile-header {
    padding-top: 0.32rem;
    padding-bottom: 0.32rem;
    box-shadow: 0 10px 26px rgba(17, 24, 39, 0.08);
  }

  body.mobile-header-hidden .mobile-header {
    transform: translateY(-110%);
  }

  body.mobile-menu-open .mobile-header {
    transform: translateY(0);
    box-shadow: 0 14px 32px rgba(17, 24, 39, 0.1);
  }

  body.mobile-scroll-lock {
    overflow: hidden;
    touch-action: none;
  }

  .mobile-header-bar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.65rem;
  }

  .mobile-header-title-wrap {
    min-width: 0;
    max-width: 100%;
    display: flex;
    align-items: baseline;
    gap: 0.38rem;
    padding-right: 0.1rem;
  }

  .mobile-header-title {
    display: block;
    color: var(--gtz-text, #171717);
    text-decoration: none;
    font-family: "Manrope", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    font-size: clamp(0.78rem, 4.2vw, 0.98rem);
    line-height: 1.05;
    font-weight: 800;
    letter-spacing: -0.03em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .mobile-header-section {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    color: var(--gtz-muted, #6b7280);
    font-size: 0.68rem;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    white-space: nowrap;
  }

  .mobile-header-toggle {
    appearance: none;
    flex: 0 0 auto;
    white-space: nowrap;
    border: 1px solid var(--gtz-border, #e5e7eb);
    background: #ffffff;
    color: var(--gtz-text, #171717);
    border-radius: 10px;
    min-height: 2rem;
    padding: 0 0.72rem;
    font-family: "Manrope", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    font-size: 0.84rem;
    font-weight: 700;
    line-height: 1;
  }

  .mobile-header-menu {
    display: none;
    margin-top: 0.55rem;
    padding: 0.34rem;
    border: 1px solid var(--gtz-border, #e5e7eb);
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 16px 38px rgba(17, 24, 39, 0.1);
  }

  body.mobile-menu-open .mobile-header-menu {
    display: grid;
    gap: 0.18rem;
  }

  .mobile-header-menu a {
    display: block;
    padding: 0.8rem 0.9rem;
    border-radius: 12px;
    color: var(--gtz-text, #171717);
    text-decoration: none;
    font-size: 0.98rem;
    line-height: 1.3;
    font-weight: 600;
  }

  .mobile-header-menu a:hover,
  .mobile-header-menu a:focus-visible {
    background: rgba(17, 24, 39, 0.05);
    outline: none;
  }

  body.has-mobile-header .pse-topbar {
    display: none;
  }

  body.has-mobile-header .top nav {
    display: none;
  }

  body.has-mobile-header .pse-article-meta {
    overflow: visible;
  }

  body.has-mobile-header .pse-meta-copy,
  body.has-mobile-header .pse-meta-actions {
    min-width: 0;
  }
}

@media (min-width: 901px) {
  body.has-mobile-header {
    padding-top: 0;
  }
}


@media (max-width: 560px) {
  .mobile-header {
    padding-left: 0.65rem;
    padding-right: 0.65rem;
  }

  .mobile-header-title {
    font-size: clamp(0.74rem, 4.3vw, 0.9rem);
  }

  .mobile-header-section {
    font-size: 0.64rem;
    letter-spacing: 0.07em;
  }

  .mobile-header-toggle {
    min-height: 1.95rem;
    padding-left: 0.68rem;
    padding-right: 0.68rem;
    font-size: 0.82rem;
  }
}
