/* Approved Auroria identity sections: role network + Carrara A/B/C/F. */

.identity-section {
  position: relative;
  padding: 5rem 1rem;
}

.identity-section--surface { background: #faf9ff; }
.identity-section--white { background: #fff; }
.identity-section--social-followup { padding-top: 1.5rem; }

.identity-panel {
  position: relative;
  width: min(100%, 80rem);
  min-height: 33.75rem;
  margin: 0 auto;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 2rem;
  background: #17122f;
  color: #fff;
  box-shadow: 0 1.5rem 4rem rgba(20, 14, 45, .16);
}

.identity-panel__art {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.identity-panel__copy {
  position: relative;
  z-index: 2;
  width: min(56%, 40.625rem);
  padding: clamp(2.75rem, 5vw, 4.5rem);
}

.identity-panel__kicker {
  display: inline-block;
  margin-bottom: 1.5rem;
  color: #aaa3ff;
  font-size: .6875rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.identity-panel h2 {
  max-width: 40rem;
  margin: 0 0 1.375rem;
  font-size: clamp(2.125rem, 4vw, 3.375rem);
  font-weight: 800;
  letter-spacing: -.048em;
  line-height: 1.02;
}

.identity-panel__copy > p {
  max-width: 36.875rem;
  margin: 0;
  color: rgba(255, 255, 255, .72);
  font-size: clamp(.9375rem, 1.35vw, 1.125rem);
  line-height: 1.65;
}

.identity-panel__attribution {
  margin-top: 2.125rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(255, 255, 255, .17);
}

.identity-panel__attribution strong,
.identity-panel__attribution span { display: block; }
.identity-panel__attribution strong { font-size: .875rem; }
.identity-panel__attribution span {
  margin-top: .3125rem;
  color: rgba(255, 255, 255, .58);
  font-size: .75rem;
  line-height: 1.5;
}

.identity-panel--criterion .identity-panel__art {
  right: auto;
  left: -1%;
  width: 108%;
  max-width: none;
}

.identity-panel--path { min-height: 36.875rem; }

.identity-steps {
  display: grid;
  gap: .75rem;
  margin: 2rem 0 0;
  padding: 0;
  list-style: none;
}

.identity-steps li {
  display: grid;
  grid-template-columns: 2.125rem 1fr;
  gap: .875rem;
  align-items: start;
  padding: .875rem 1rem;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 1rem;
  background: rgba(23, 18, 47, .78);
  backdrop-filter: blur(.75rem);
}

.identity-steps b {
  display: grid;
  width: 2.125rem;
  height: 2.125rem;
  place-items: center;
  border: 1px solid #8d82fa;
  border-radius: 50%;
  color: #c9c4ff;
  font-size: .75rem;
}

.identity-steps strong,
.identity-steps span { display: block; }
.identity-steps strong { margin-top: .0625rem; font-size: .875rem; }
.identity-steps span {
  margin-top: .25rem;
  color: rgba(255, 255, 255, .62);
  font-size: .75rem;
  line-height: 1.45;
}

.identity-panel--social {
  min-height: 26.25rem;
  border-color: #e4dacd;
  background: #eee5dc;
  color: #1a1235;
}

.identity-panel--social .identity-panel__art {
  object-position: center 60%;
}

.identity-panel--social .identity-panel__copy {
  display: flex;
  width: min(55%, 38.125rem);
  min-height: 26.25rem;
  flex-direction: column;
  justify-content: center;
  padding-block: 2.75rem;
}

.identity-panel--social .identity-panel__kicker { color: #5146c9; }
.identity-panel--social .identity-panel__copy > p { color: #514c63; }
.identity-art-mobile { display: none; }

.identity-social-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 2rem;
}

.identity-social-actions a {
  display: inline-flex;
  min-height: 3rem;
  align-items: center;
  justify-content: center;
  padding: 0 1.1875rem;
  border: 1px solid #1a1235;
  border-radius: .8125rem;
  background: #1a1235;
  color: #fff;
  font-size: .8125rem;
  font-weight: 800;
  text-decoration: none;
  transition: transform .18s ease, background .18s ease, color .18s ease;
}

.identity-social-actions a + a { background: rgba(255, 255, 255, .42); color: #1a1235; }
.identity-social-actions a:hover { transform: translateY(-2px); background: #6757ea; color: #fff; }
.identity-social-actions a:focus-visible { outline: 3px solid #4a7cf7; outline-offset: 3px; }

/* Compact blog actions: Google Preferred Sources + all notes. */
.blog-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: stretch;
  margin-top: 2rem;
}

.preferred-source-home {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1.25rem 1.5rem;
  border: 1px solid #ddd8ff;
  border-radius: 1.25rem;
  background: linear-gradient(135deg, #f0edff 0%, #fff5fa 100%);
}

.preferred-source-home__copy { min-width: 0; }
.preferred-source-home__copy > p { margin: 0; color: #6757ea; font-size: .6875rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.preferred-source-home__copy > h3 { margin: .375rem 0 0; color: #1a1235; font-size: 1.0625rem; font-weight: 800; line-height: 1.2; }
.preferred-source-home__copy > span { display: block; margin-top: .3125rem; color: #6c6682; font-size: .75rem; line-height: 1.45; }
.preferred-source-home__button {
  flex: 0 0 18.75rem;
  width: 18.75rem !important;
  min-width: 18.75rem;
  max-width: 18.75rem;
}
.preferred-source-home__button:empty { display: none; }

.blog-all-notes {
  display: inline-flex;
  min-height: 100%;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: 0 1.25rem;
  border: 1px solid #e7e3f0;
  border-radius: 1.25rem;
  background: #fff;
  color: #1a1235;
  box-shadow: 0 .75rem 1.75rem rgba(35, 28, 65, .06);
  font-size: .8125rem;
  font-weight: 800;
  text-decoration: none;
  transition: border-color .18s ease, color .18s ease, transform .18s ease;
}

.blog-all-notes:hover { border-color: #6757ea; color: #6757ea; transform: translateY(-2px); }
.blog-all-notes:focus-visible { outline: 3px solid #4a7cf7; outline-offset: 3px; }

/* Connected community map. */
.role-network {
  position: relative;
  isolation: isolate;
  margin-top: 3.5rem;
  padding: 2.5rem 0 3rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.role-network__grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(15.625rem, 1fr) minmax(17.5rem, 20rem) minmax(15.625rem, 1fr);
  grid-template-rows: minmax(16.875rem, auto) 10.625rem minmax(16.875rem, auto);
  align-items: stretch;
  gap: 0;
}

.role-network__card {
  position: relative;
  z-index: 3;
  width: 100%;
  min-height: 16.875rem;
  padding: 2.625rem 1.6875rem 1.6875rem;
  border: 2px solid var(--role-color);
  border-radius: 1.625rem;
  background: var(--role-tint);
  color: var(--role-color);
  box-shadow: 0 1.25rem 2.8125rem rgba(35, 28, 65, .10);
  text-align: left;
  cursor: pointer;
  transition: box-shadow .25s ease, transform .25s ease;
}

.role-network__card:hover,
.role-network__card:focus-visible,
.role-network__card.is-active {
  outline: none;
  box-shadow: 0 1.5625rem 3.4375rem rgba(35, 28, 65, .17);
  transform: translateY(-2px);
}

.role-network__card--student { --role-color: #3b78ec; --role-tint: #f5f8ff; grid-column: 1; grid-row: 1; }
.role-network__card--teacher { --role-color: #6757ea; --role-tint: #f7f5ff; grid-column: 3; grid-row: 1; }
.role-network__card--director { --role-color: #f25487; --role-tint: #fff6f9; grid-column: 1; grid-row: 3; }
.role-network__card--family { --role-color: #f3a910; --role-tint: #fffaf0; grid-column: 3; grid-row: 3; }

.role-network__role-icon {
  position: absolute;
  top: -1.6875rem;
  left: 1.6875rem;
  display: grid;
  width: 3.625rem;
  height: 3.625rem;
  place-items: center;
  border: 5px solid #fff;
  border-radius: 50%;
  background: var(--role-color);
  color: #fff;
  box-shadow: 0 .75rem 1.5rem rgba(35, 28, 65, .15);
}

.role-network__role-icon svg { width: 1.375rem; height: 1.375rem; }
.role-network__card h3 { margin: 0 0 1.0625rem; font-size: 1.375rem; font-weight: 800; letter-spacing: -.03em; }
.role-network__card ul { display: grid; gap: .75rem; margin: 0; padding: 0; color: #1a1235; font-size: .78125rem; line-height: 1.38; list-style: none; }
.role-network__card li { display: flex; gap: .625rem; align-items: flex-start; }
.role-network__card li::before { content: "✓"; flex: 0 0 auto; color: var(--role-color); font-weight: 900; }

.role-network__core {
  position: relative;
  z-index: 4;
  display: flex;
  grid-column: 2;
  grid-row: 2;
  min-height: 10.625rem;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.125rem 1.625rem;
  text-align: center;
}

.role-network__core img { width: 11.625rem; max-width: 88%; filter: drop-shadow(0 .625rem 1.25rem rgba(72, 92, 231, .13)); }
.role-network__core p { max-width: 15.625rem; margin: .6875rem auto 0; color: #6c6682; font-size: .6875rem; font-weight: 700; line-height: 1.45; }

.role-network__relation { --relation: #6757ea; position: relative; z-index: 1; pointer-events: none; }
.role-network__relation--top { grid-column: 2; grid-row: 1; }
.role-network__relation--bottom { --relation: #f3a910; grid-column: 2; grid-row: 3; }
.role-network__relation--left { --relation: #3b78ec; grid-column: 1; grid-row: 2; }
.role-network__relation--right { --relation: #f25487; grid-column: 3; grid-row: 2; }

.role-network__rail {
  position: absolute;
  left: 0;
  width: 100%;
  height: 4px;
  background: var(--relation);
}

.role-network__relation--top .role-network__rail:first-child { --relation: #3b78ec; top: 34%; }
.role-network__relation--top .role-network__rail:nth-child(2) { top: 66%; }
.role-network__relation--bottom .role-network__rail { top: 50%; }
.role-network__rail .role-network__relation-copy { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }

.role-network__relation--vertical::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 4px;
  background: var(--relation);
  transform: translateX(-50%);
}

.role-network__relation--vertical .role-network__relation-copy { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }

.role-network__relation-copy {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 2.125rem minmax(0, 1fr);
  column-gap: .625rem;
  width: 15.5rem;
  min-height: 4.5rem;
  align-items: center;
  padding: .625rem .8125rem;
  border: 1px solid color-mix(in srgb, var(--relation) 34%, white);
  border-radius: .875rem;
  background: #fff;
  color: var(--relation);
  box-shadow: 0 .625rem 1.5rem rgba(35, 28, 65, .09);
  text-align: left;
}

.role-network__relation-icon {
  display: grid;
  width: 2.125rem;
  height: 2.125rem;
  place-items: center;
  border-radius: 50%;
  background: var(--relation);
  color: #fff;
}

.role-network__relation-icon svg { width: .9375rem; height: .9375rem; }
.role-network__relation-copy strong { display: block; font-size: .6875rem; font-weight: 800; letter-spacing: -.01em; line-height: 1.2; }
.role-network__relation-copy small { display: block; margin-top: .1875rem; color: #6c6682; font-size: .5625rem; font-weight: 700; line-height: 1.25; }
.role-network__mobile-relations { display: none; }

.role-explorer-head { margin-top: 4.5rem; }
.role-explorer-head h3 { margin-top: .75rem; font-size: clamp(1.75rem, 3vw, 2.5rem); font-weight: 800; letter-spacing: -.04em; line-height: 1.05; }

/* About-page origin story. */
.origin-story-section { background: #faf9ff; padding: 5rem 1rem; }
.origin-story-approved {
  display: grid;
  width: min(100%, 80rem);
  margin: 0 auto;
  grid-template-columns: 5fr 7fr;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 2rem;
  background: #020919;
  color: #fff;
  box-shadow: 0 1.5rem 4rem rgba(15, 13, 42, .2);
}

.origin-story__lead {
  display: flex;
  min-width: 0;
  min-height: 51.875rem;
  overflow: hidden;
  flex-direction: column;
  padding: 4rem 0 0 4rem;
}

.origin-story__kicker { color: #aaa3ff; font-size: .6875rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.origin-story__lead h2 { margin: 1.5rem 0 1rem; color: #fff; font-size: clamp(2.125rem, 4vw, 3.125rem); font-weight: 800; letter-spacing: -.045em; line-height: 1.04; }
.origin-story__lead > p { max-width: 25.625rem; margin: 0; padding-right: 2.375rem; color: rgba(255, 255, 255, .66); font-size: .875rem; line-height: 1.6; }

.origin-story__art {
  display: grid;
  width: calc(100% + 4rem);
  min-height: 33.75rem;
  flex: 1;
  margin: 1.75rem 0 0 -4rem;
  place-items: end center;
  background: #020919;
  pointer-events: none;
}

.origin-story__art img { display: block; width: 100%; height: 100%; max-height: 36.25rem; object-fit: contain; object-position: center bottom; }
.origin-story__body { display: grid; gap: 1.5rem; align-content: center; padding: 4.5rem clamp(3rem, 6vw, 4.875rem); background: #020919; color: rgba(255, 255, 255, .76); font-size: clamp(1rem, 1.5vw, 1.125rem); line-height: 1.75; }
.origin-story__body p { margin: 0; }
.origin-story__body strong { color: #fff; }
.origin-story__body .origin-story__close { color: #fff; font-size: clamp(1.1875rem, 2vw, 1.375rem); font-weight: 800; line-height: 1.55; }

@media (max-width: 1080px) {
  .role-network { padding: 2.625rem 0; }
  .role-network__grid { grid-template-columns: 1fr; grid-template-rows: auto; gap: .875rem; }
  .role-network__card,
  .role-network__card--student,
  .role-network__card--teacher,
  .role-network__card--director,
  .role-network__card--family,
  .role-network__core,
  .role-network__mobile-relations { grid-column: 1; grid-row: auto; }
  .role-network__card { min-height: 0; margin-top: 1.5rem; padding: 2.625rem 1.3125rem 1.4375rem; }
  .role-network__card ul { grid-template-columns: 1fr 1fr; }
  .role-network__role-icon { left: 1.25rem; }
  .role-network__core { order: -3; min-height: 0; margin-bottom: .125rem; padding: 2rem 1.25rem 1.875rem; }
  .role-network__relation { display: none; }
  .role-network__mobile-relations { order: -2; display: grid; gap: .5625rem; margin-bottom: .25rem; }
  .role-network__mobile-relation { --relation: #6757ea; position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); min-height: 3.5rem; align-items: center; padding: .5625rem .625rem; border: 1px solid #ddd8ff; border-radius: .9375rem; background: #fff; }
  .role-network__mobile-relation:nth-child(2) { --relation: #f25487; border-color: #ffd3e1; }
  .role-network__mobile-relation:nth-child(3) { --relation: #6e78d9; border-color: #d8dcff; }
  .role-network__mobile-relation:nth-child(4) { --relation: #f3a910; border-color: #ffe3a3; }
  .role-network__mobile-relation::before { content: ""; position: absolute; top: 50%; right: 1.375rem; left: 1.375rem; height: 3px; background: var(--relation); transform: translateY(-50%); }
  .role-network__mobile-relation span,
  .role-network__mobile-relation strong { position: relative; z-index: 1; justify-self: center; padding: .3125rem .5rem; border-radius: .5625rem; background: #fff; color: var(--relation); font-size: .625rem; font-weight: 800; line-height: 1.15; text-align: center; }
  .role-network__mobile-relation strong { display: inline-flex; align-items: center; gap: .3125rem; border: 1px solid var(--relation); background: var(--relation); color: #fff; font-size: .5625rem; letter-spacing: .035em; text-transform: uppercase; }
  .role-network__mobile-relation svg { width: .75rem; height: .75rem; }
  .origin-story-approved { grid-template-columns: 5fr 7fr; }
  .origin-story__lead { padding-left: 2.5rem; }
  .origin-story__art { width: calc(100% + 2.5rem); margin-left: -2.5rem; }
  .origin-story__body { padding-inline: 2.5rem; }
}

@media (max-width: 720px) {
  .identity-section { padding: 3.5rem .875rem; }
  .identity-section--social-followup { padding-top: 1rem; }
  .identity-panel { display: flex; min-height: 0; flex-direction: column; border-radius: 1.625rem; }
  .identity-panel__copy,
  .identity-panel--social .identity-panel__copy { order: 1; width: 100%; min-height: 0; padding: 2.625rem 1.75rem 2.375rem; }
  .identity-panel__art { position: relative; order: 2; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }
  .identity-panel--criterion .identity-panel__art { right: auto; left: 0; width: 100%; max-width: 100%; aspect-ratio: 4 / 3; object-position: 100% center; }
  .identity-panel--path .identity-panel__art { object-position: 68% center; }
  .identity-panel h2 { font-size: clamp(2.125rem, 10vw, 2.9375rem); }
  .identity-steps { margin-top: 1.75rem; }
  .identity-art-desktop { display: none; }
  .identity-panel--social .identity-art-mobile { display: block; inset: auto; width: 100%; height: 23.75rem; aspect-ratio: auto; object-fit: cover; object-position: 100% center; }
  .identity-social-actions a { width: 100%; }
  .blog-actions { grid-template-columns: 1fr; gap: .75rem; margin-top: 1.5rem; }
  .preferred-source-home { flex-direction: column; align-items: flex-start; padding: 1.125rem 1.25rem; }
  .preferred-source-home__button:not(:empty) {
    flex-basis: auto;
    width: 100% !important;
    min-width: 0;
    max-width: 100%;
    margin-top: .75rem;
  }
  .blog-all-notes { min-height: 3.25rem; }
  .role-network { margin: 2.75rem 0 0; padding: 2.125rem 0; }
  .role-network__card ul { grid-template-columns: 1fr; }
  .role-network__mobile-relation { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
  .role-explorer-head { margin-top: 3.5rem; }
  .origin-story-section { padding: 3.5rem .875rem; }
  .origin-story-approved { grid-template-columns: 1fr; }
  .origin-story__lead { min-height: 0; padding: 2.625rem 1.75rem 0; }
  .origin-story__lead > p { padding-right: 0; }
  .origin-story__art { width: calc(100% + 3.5rem); min-height: 0; margin: 1.75rem -1.75rem 0; }
  .origin-story__art img { width: 82%; height: auto; max-height: none; object-fit: contain; object-position: center bottom; }
  .origin-story__body { padding: 2.375rem 1.75rem 2.75rem; }
}

@media (max-width: 390px) {
  .role-network__mobile-relation span { font-size: .5625rem; }
  .role-network__mobile-relation strong { font-size: .5rem; }
}

@media (prefers-reduced-motion: reduce) {
  .identity-social-actions a,
  .role-network__card { transition: none; }
}
