.reading-progress { position: fixed; inset: 0 0 auto; height: .18rem; z-index: 20; }
.reading-progress span { display: block; width: 0; height: 100%; background: var(--color-seal); }

.site-header {
  position: sticky;
  top: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 5rem;
  background: rgba(246, 241, 231, .9);
  border-bottom: 1px solid var(--color-line);
  backdrop-filter: blur(.75rem);
}

.brand { font-weight: 800; letter-spacing: .08em; }
.brand small {
  display: block;
  font: .58rem var(--font-sans);
  letter-spacing: .2em;
  opacity: .52;
}
#site-nav { display: flex; gap: 2rem; font: .82rem var(--font-sans); }
#site-nav a { opacity: .68; }
#site-nav a:hover { opacity: 1; }
.menu-toggle { display: none; border: 0; background: transparent; }

.hero {
  position: relative;
  min-height: 32rem;
  display: grid;
  grid-template-columns: 1.3fr .7fr;
  align-items: center;
  padding-block: clamp(4.5rem, 8vw, 6.5rem) 3.5rem;
  overflow: hidden;
}
.hero::before {
  content: "";
  position: absolute;
  width: 30rem;
  height: 30rem;
  right: -18rem;
  top: -20rem;
  border: 1px solid rgba(173, 83, 59, .16);
  border-radius: 50%;
}
.hero__copy,
.seal { position: relative; z-index: 1; }
.hero__copy > p:not(.eyebrow) { max-width: 42rem; opacity: .72; }
.hero__actions { display: flex; gap: 1.25rem; align-items: center; margin-top: 2rem; }
.button {
  display: inline-flex;
  padding: .85rem 1.2rem;
  border-radius: 999px;
  background: var(--color-ink);
  color: var(--color-paper);
  font: .78rem var(--font-sans);
}
.text-link { border-bottom: 1px solid currentColor; font-size: .85rem; }
.seal {
  width: clamp(8rem, 12vw, 10rem);
  aspect-ratio: 1;
  justify-self: center;
  display: grid;
  place-items: center;
  border: 1px solid rgba(173, 83, 59, .55);
  border-radius: 50%;
  color: var(--color-seal);
  box-shadow: inset 0 0 0 .6rem var(--color-paper), inset 0 0 0 .65rem rgba(173, 83, 59, .22), inset 0 0 0 1.15rem var(--color-paper), inset 0 0 0 1.2rem rgba(173, 83, 59, .18);
}
.seal span { font-size: clamp(3.2rem, 5vw, 4.2rem); }
.seal small {
  position: absolute;
  top: calc(100% + 1.25rem);
  white-space: nowrap;
  color: var(--color-ink);
  font: .55rem var(--font-sans);
  letter-spacing: .16em;
  opacity: .48;
}

.status-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  padding-bottom: var(--section-space);
}
.status-card { padding: 1.35rem 0; border-top: 1px solid var(--color-line); }
.status-card span {
  display: block;
  font: .68rem var(--font-sans);
  letter-spacing: .12em;
  opacity: .52;
}
.status-card strong { display: block; margin-top: .75rem; font-weight: 600; }

.section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: 2rem;
}
.section-heading > p { max-width: 24rem; opacity: .62; }
.filters { display: flex; gap: .55rem; margin-bottom: 1.5rem; }
.filter {
  padding: .45rem .85rem;
  border: 1px solid var(--color-line);
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
  font: .72rem var(--font-sans);
}
.filter.is-active { background: var(--color-ink); color: var(--color-paper); }

.journal-grid { display: grid; grid-template-columns: 1.25fr .75fr .75fr; gap: 1rem; }
.journal-card {
  position: relative;
  min-height: 15rem;
  padding: 1.5rem;
  border: 1px solid var(--color-line);
  background: rgba(255, 253, 248, .52);
  box-shadow: var(--shadow-soft);
}
.journal-card--featured { background: var(--color-ink); color: var(--color-paper); }
.journal-card__meta { font: .68rem var(--font-sans); letter-spacing: .1em; opacity: .56; }
.journal-card h3 { margin-top: 3rem; line-height: 1.45; }
.journal-card p { opacity: .68; }
.journal-card__arrow { position: absolute; right: 1.3rem; bottom: 1.1rem; }
.journal-card[hidden] { display: none; }
.filter-status { min-height: 1.5rem; margin: .75rem 0 0; font-size: .82rem; opacity: .62; }

.growth-path { display: grid; grid-template-columns: repeat(4, 1fr); }
.path-step {
  position: relative;
  padding: 1.6rem 1.2rem;
  border-top: 1px solid var(--color-line);
}
.path-step::before {
  content: "";
  position: absolute;
  top: -.25rem;
  width: .5rem;
  height: .5rem;
  border-radius: 50%;
  background: var(--color-seal);
}
.path-step > span { font: .68rem var(--font-sans); opacity: .48; }
.path-step p { opacity: .65; }

.about { display: grid; grid-template-columns: .7fr 1.3fr; gap: 4rem; align-items: center; }
.about__mark {
  color: var(--color-seal);
  font-size: clamp(6rem, 14vw, 11rem);
  text-align: center;
}
.about blockquote {
  margin: 1.5rem 0;
  padding-left: 1.3rem;
  border-left: 2px solid var(--color-seal);
  font-size: clamp(1.35rem, 3vw, 2rem);
}
.about p { max-width: 44rem; opacity: .7; }

.back-to-top {
  position: fixed;
  right: 1.2rem;
  bottom: 1.2rem;
  width: 2.8rem;
  height: 2.8rem;
  border: 0;
  border-radius: 50%;
  background: var(--color-ink);
  color: var(--color-paper);
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s;
}
.back-to-top.is-visible { opacity: 1; pointer-events: auto; }
.site-footer {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-block: 2rem;
  border-top: 1px solid var(--color-line);
  font: .72rem var(--font-sans);
  opacity: .58;
}
