/* Patrick Domanico — bio.css v0.2.1 - 09.10.26 */

.bio-page {
  background: var(--paper);
}

/* 01 / Cover */
.bio-cover {
  border-bottom: 1px solid var(--ink);
  background:
    linear-gradient(rgba(32,34,33,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(32,34,33,.045) 1px, transparent 1px),
    var(--paper);
  background-size: 72px 72px;
}

.bio-cover__grid {
  min-height: min(760px, calc(100vh - 60px));
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(420px, .92fr);
}

.bio-cover__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(4rem, 8vw, 7rem) clamp(2rem, 5vw, 5rem) clamp(4rem, 8vw, 7rem) 0;
}

.bio-cover h1 {
  margin: 1rem 0 1.5rem;
  font: 900 clamp(4.6rem, 6.8vw, 7.9rem)/.78 var(--condensed);
  letter-spacing: -.075em;
  text-transform: uppercase;
  max-width: 100%;
}

.bio-cover h1 span {
  display: block;
}

.bio-cover__roles {
  width: fit-content;
  margin: 0 0 1.7rem;
  padding-top: .85rem;
  border-top: 5px solid var(--ink);
  font: 900 clamp(.95rem, 1.25vw, 1.12rem)/1.35 var(--mono);
  letter-spacing: .045em;
  text-transform: uppercase;
}

.bio-cover__claim {
  margin: 0 0 1.45rem;
  font: 500 clamp(1.5rem, 2.4vw, 2.45rem)/1.08 var(--serif);
}

.bio-cover__intro {
  max-width: 42rem;
  margin: 0;
  font: 500 clamp(1.08rem, 1.4vw, 1.28rem)/1.55 var(--sans);
}

.bio-cover__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  align-items: center;
  margin-top: 2rem;
}

.bio-cover__portrait {
  position: relative;
  min-height: 680px;
  margin: 0;
  overflow: hidden;
  border-left: 1px solid var(--ink);
  background: var(--paper-deep);
}

.bio-cover__portrait > img {
  position: absolute;
  z-index: 2;
  inset: 2% 0 0;
  width: 100%;
  height: 98%;
  object-fit: cover;
  object-position: 68% center;
  mix-blend-mode: multiply;
  filter: contrast(1.05) saturate(.72);
}

.bio-cover__disc {
  position: absolute;
  z-index: 1;
  width: min(42vw, 620px);
  aspect-ratio: 1;
  right: -26%;
  top: 5%;
  border-radius: 50%;
  background: var(--orange);
}

.bio-cover__portrait figcaption {
  position: absolute;
  z-index: 5;
  right: .85rem;
  bottom: .85rem;
  padding: .45rem .6rem;
  border: 1px solid var(--ink);
  background: var(--paper-light);
  font: 700 .75rem/1.25 var(--mono);
  letter-spacing: .08em;
  text-transform: uppercase;
}


/* 02 / Main profile */
.bio-content {
  padding: clamp(5rem, 9vw, 8.5rem) 0;
  border-bottom: 1px solid var(--ink);
  background: var(--paper-light);
}

.bio-content__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(320px, .78fr);
  gap: clamp(3rem, 6vw, 6rem);
  align-items: start;
}

.bio-section-heading {
  display: grid;
  grid-template-columns: minmax(160px, .55fr) minmax(0, 1.45fr);
  gap: 1rem clamp(1.5rem, 4vw, 4rem);
  align-items: end;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--ink);
}

.bio-section-heading .folio-label {
  grid-column: 1;
}

.bio-section-heading h2 {
  grid-column: 2;
  margin: 0;
  font: 900 clamp(3.7rem, 6.3vw, 7.2rem)/.82 var(--condensed);
  letter-spacing: -.055em;
  text-transform: uppercase;
}

.bio-section-heading > p:last-child {
  grid-column: 2;
  max-width: 38rem;
  margin: 0;
  color: var(--ink-soft);
}

.bio-story__copy {
  max-width: 74ch;
  padding-top: 2.3rem;
}

.bio-story__copy p {
  margin: 0 0 1.35rem;
  font: 400 clamp(1.02rem, 1.2vw, 1.12rem)/1.68 var(--sans);
}

.bio-story__copy a {
  font-weight: 700;
  text-decoration-thickness: 1px;
}

.bio-story__copy abbr[title] {
  text-decoration-style: dotted;
  text-underline-offset: .15em;
}

/* 03 / Editorial rail */
.bio-rail {
  position: sticky;
  top: 92px;
  display: grid;
  gap: 1px;
  border: 1px solid var(--ink);
  background: var(--ink);
}

.bio-feature,
.bio-connect {
  background: color-mix(in srgb, var(--orange) 5%, var(--paper));
  padding: clamp(2rem, 3.5vw, 3.2rem);
}

.bio-rail__index {
  margin: 0 0 1rem;
  color: var(--orange-text-aaa);
  font: 900 .78rem/1.25 var(--mono);
  letter-spacing: .12em;
  text-transform: uppercase;
}

.bio-feature h2,
.bio-connect h2 {
  margin: 0;
  font: 900 clamp(2.1rem, 3.4vw, 3.7rem)/.9 var(--condensed);
  letter-spacing: -.045em;
  text-transform: uppercase;
}

.bio-feature > p:not(.bio-rail__index) {
  margin: 1.25rem 0 1.45rem;
  font: 500 1.02rem/1.55 var(--serif);
}

.bio-feature .text-link {
  margin-top: .25rem;
}

/* 04 / Social list */
.bio-social {
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
  border-top: 1px solid var(--ink);
}

.bio-social li {
  border-bottom: 1px solid var(--ink);
}

.bio-social__link {
  min-height: 56px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  gap: .8rem;
  align-items: center;
  padding: .65rem .1rem;
  text-decoration: none;
  font: 800 .82rem/1.25 var(--mono);
  letter-spacing: .055em;
  text-transform: uppercase;
}

.bio-social__number {
  color: var(--orange-text-aaa);
}

.bio-social__link:hover,
.bio-social__link:focus-visible {
  background: rgba(32,34,33,.045);
}

/* 05 / Signal */
.bio-signal {
  background: var(--ink);
  color: var(--paper-light);
}

.bio-signal__grid {
  min-height: 340px;
  display: grid;
  grid-template-columns: minmax(180px, .55fr) minmax(0, 1.65fr) minmax(220px, .7fr);
  gap: clamp(1.5rem, 4vw, 4rem);
  align-items: center;
}

.bio-signal .folio-label {
  color: #f4c8ad;
}

.bio-signal h2 {
  margin: 0;
  font: 600 clamp(2.3rem, 4.4vw, 5rem)/.98 var(--serif);
  letter-spacing: -.035em;
}

.bio-signal__grid > p:last-child {
  margin: 0;
  color: #ded6c8;
  font: 800 .8rem/1.45 var(--mono);
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* Shared footer */
.bio-page .site-footer__grid nav {
  min-width: 0;
}

.bio-page .footer-nav,
.bio-page .social-links {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Responsive */
@media (max-width: 1100px) {
  .bio-cover__grid {
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
  }

  .bio-cover h1 {
    font-size: clamp(4.4rem, 7.8vw, 6.8rem);
  }

  .bio-content__grid {
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, .85fr);
    gap: 3rem;
  }
}

@media (max-width: 900px) {
  .bio-cover__grid {
    display: block;
  }

  .bio-cover__copy {
    padding: 4rem 0 2.5rem;
  }

  .bio-cover__portrait {
    min-height: min(72vh, 680px);
    border: 1px solid var(--ink);
    margin-bottom: 1rem;
  }

  .bio-content__grid {
    grid-template-columns: 1fr;
  }

  .bio-rail {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bio-signal__grid {
    grid-template-columns: 1fr;
    gap: 1.2rem;
    padding-block: 4rem;
  }
}

@media (max-width: 700px) {
  .bio-section-heading {
    grid-template-columns: 1fr;
  }

  .bio-section-heading .folio-label,
  .bio-section-heading h2,
  .bio-section-heading > p:last-child {
    grid-column: 1;
  }

  .bio-section-heading h2 {
    font-size: clamp(3.1rem, 14vw, 5.4rem);
  }

  .bio-rail {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  .bio-cover h1 {
    font-size: clamp(4rem, 18vw, 6.5rem);
  }

  .bio-cover__portrait {
    min-height: 58vh;
  }

  .bio-feature,
  .bio-connect {
    padding: 1.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bio-social__link {
    transition: none;
  }
}