/* [project]/src/app/globals.css [app-client] (css) */
:root {
  --ink: #15161a;
  --muted: #5d626b;
  --line: #dfded8;
  --paper: #fbfaf6;
  --white: #fff;
  --green: #1f4e45;
  --green-2: #eef4f1;
  --violet: #283052;
  --amber: #a86e25;
  --coral: #9b3d34;
  --blue: #1d5d7d;
  --black: #050505;
  --soft: #f1eee7;
  --shadow: 0 16px 36px #0b0d1014;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  background: var(--paper);
  color: var(--ink);
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif;
}

img {
  max-width: 100%;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

button, input, textarea {
  font: inherit;
}

main {
  min-height: 72vh;
}

.site-header {
  z-index: 30;
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  background: #fffffff5;
  border-bottom: 1px solid #15161a1a;
  grid-template-columns: minmax(170px, 230px) minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(14px, 1.4vw, 28px);
  min-height: 74px;
  padding: 14px max(24px, 50vw - 760px);
  display: grid;
  position: sticky;
  top: 0;
  left: 0;
  right: 0;
}

.brand {
  white-space: nowrap;
  align-items: center;
  gap: 12px;
  min-width: 184px;
  font-family: Georgia, Times New Roman, serif;
  font-size: 1.05rem;
  font-weight: 700;
  display: inline-flex;
}

.brand-mark {
  color: var(--white);
  background: none;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 44px;
  display: inline-flex;
  overflow: hidden;
}

.brand-mark img {
  object-fit: contain;
  width: 100%;
  height: 100%;
}

.desktop-nav, .header-actions, .mobile-nav {
  align-items: center;
  gap: 8px;
  display: flex;
}

.desktop-nav {
  justify-content: center;
  min-width: 0;
}

.header-actions {
  justify-content: end;
}

.nav-link, .admin-link {
  color: var(--muted);
  white-space: nowrap;
  border-radius: 999px;
  padding: 10px 12px;
  font-size: .93rem;
  font-weight: 650;
}

.nav-link:hover, .nav-link.active, .admin-link:hover {
  color: var(--black);
  background: #f2f2ef;
}

.admin-link {
  border: 1px solid var(--line);
  color: var(--black);
}

.icon-button {
  background: var(--white);
  border: 1px solid var(--line);
  color: var(--ink);
  cursor: pointer;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  width: 42px;
  height: 42px;
  display: inline-flex;
}

.account-menu {
  margin: 0;
  display: inline-flex;
  position: relative;
}

.account-menu-trigger {
  background: var(--white);
  border: 1px solid var(--line);
  color: var(--black);
  cursor: pointer;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  width: 42px;
  height: 42px;
  padding: 0;
  transition: background .16s, border-color .16s, transform .16s;
  display: inline-flex;
}

.account-menu-trigger:hover, .account-menu-trigger:focus-visible, .account-menu.open .account-menu-trigger {
  background: #f2f2ef;
  border-color: #cfcbbf;
  transform: translateY(-1px);
}

.account-dropdown {
  background: var(--white);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  opacity: 0;
  pointer-events: none;
  z-index: 50;
  border-radius: 8px;
  gap: 2px;
  min-width: 218px;
  padding: 8px;
  transition: opacity .14s, transform .14s;
  display: grid;
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  transform: translateY(-4px);
}

.account-menu.open .account-dropdown {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.account-dropdown-header {
  border-bottom: 1px solid var(--line);
  gap: 2px;
  margin-bottom: 6px;
  padding: 8px 10px 10px;
  display: grid;
}

.account-dropdown-header strong {
  color: var(--black);
  font-size: .92rem;
  line-height: 1.25;
}

.account-dropdown-header span {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 700;
}

.account-dropdown form {
  margin: 0;
}

.account-dropdown-item {
  color: var(--black);
  cursor: pointer;
  text-align: left;
  white-space: nowrap;
  background: none;
  border: 0;
  border-radius: 7px;
  align-items: center;
  gap: 9px;
  width: 100%;
  min-height: 38px;
  padding: 0 10px;
  font-family: inherit;
  font-size: .9rem;
  font-weight: 800;
  display: inline-flex;
}

.account-dropdown-item:hover, .account-dropdown-item:focus-visible {
  background: #f2f2ef;
}

.mobile-menu-button {
  display: none;
}

.mobile-nav {
  background: var(--paper);
  border-bottom: 1px solid var(--line);
  box-shadow: var(--shadow);
  flex-direction: column;
  align-items: stretch;
  padding: 12px 24px 22px;
  display: none;
  position: absolute;
  top: 73px;
  left: 0;
  right: 0;
}

.hero {
  grid-template-columns: minmax(0, 1fr) minmax(560px, .62fr);
  min-height: clamp(660px, 100vh - 74px, 860px);
  display: grid;
}

.hero-media {
  background: var(--white);
  border-right: 1px solid var(--line);
  justify-content: center;
  align-items: center;
  width: 100%;
  min-height: clamp(660px, 100vh - 74px, 860px);
  display: flex;
  position: relative;
  overflow: hidden;
}

.hero-media:after {
  content: "";
  pointer-events: none;
  z-index: 1;
  background: linear-gradient(90deg, #05050509, #fbfaf600);
  position: absolute;
  inset: 0;
}

.hero-slideshow {
  background: var(--white);
  touch-action: pan-y;
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.hero-slide-track {
  width: 100%;
  height: 100%;
  transition: transform .72s cubic-bezier(.22, 1, .36, 1);
  display: flex;
}

.hero-slide {
  flex: 0 0 100%;
  width: 100%;
  min-width: 100%;
  height: 100%;
}

.hero-slide img {
  object-fit: cover;
  object-position: center 45%;
  width: 100%;
  height: 100%;
}

@media (prefers-reduced-motion: reduce) {
  .hero-slide-track {
    transition: none;
  }
}

.hero-slide-dots {
  z-index: 2;
  gap: 8px;
  display: flex;
  position: absolute;
  bottom: 22px;
  left: 22px;
}

.hero-slide-dots button {
  cursor: pointer;
  background: #ffffffc7;
  border: 1px solid #05050538;
  border-radius: 999px;
  width: 9px;
  height: 9px;
  padding: 0;
  transition: background .16s, border-color .16s, transform .16s, width .16s;
}

.hero-slide-dots button[aria-pressed="true"] {
  background: var(--black);
  border-color: var(--black);
  width: 24px;
}

.hero-slide-dots button:focus-visible {
  outline: 2px solid var(--white);
  outline-offset: 3px;
}

.hero-slide-dots button:hover {
  transform: translateY(-1px);
}

.hero-content {
  align-self: center;
  width: 100%;
  max-width: 720px;
  padding: clamp(44px, 4vw, 72px);
}

.eyebrow {
  color: var(--black);
  letter-spacing: 0;
  text-transform: uppercase;
  margin: 0 0 12px;
  font-size: .82rem;
  font-weight: 780;
}

h1, h2, h3, p {
  margin-top: 0;
}

h1 {
  margin-bottom: 24px;
  font-family: Georgia, Times New Roman, serif;
  font-size: clamp(3.2rem, 3.4vw, 4.7rem);
  font-weight: 700;
  line-height: 1.02;
}

h2 {
  margin-bottom: 14px;
  font-family: Georgia, Times New Roman, serif;
  font-size: 2rem;
  line-height: 1.14;
}

h3 {
  margin-bottom: 8px;
  font-size: 1.05rem;
  line-height: 1.25;
}

p {
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.7;
}

.hero-content p:not(.eyebrow) {
  max-width: 620px;
  font-size: 1.08rem;
}

.hero-actions, .auth-actions {
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
  display: flex;
}

.button {
  cursor: pointer;
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  gap: 9px;
  min-height: 46px;
  padding: 0 18px;
  font-weight: 760;
  transition: background .16s, border-color .16s, color .16s, transform .16s;
  display: inline-flex;
}

.button:hover {
  transform: translateY(-1px);
}

.button.primary {
  background: var(--black);
  border: 1px solid var(--black);
  color: var(--white);
}

.button.secondary {
  background: var(--white);
  border: 1px solid var(--line);
  color: var(--black);
}

.button.warning {
  color: #7d3329;
  background: #f8e8d9;
  border: 1px solid #e8c2a3;
}

.button:disabled {
  cursor: not-allowed;
  opacity: .6;
  transform: none;
}

.admin-edit-link {
  color: #4f3514;
  background: #fff7e8;
  border: 1px solid #e6c47d;
  border-radius: 999px;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  margin-top: 18px;
  padding: 0 14px;
  font-size: .9rem;
  font-weight: 850;
  display: inline-flex;
}

.section {
  max-width: 1180px;
  margin: 0 auto;
  padding: 88px 24px;
}

.section.band {
  max-width: none;
  padding-left: max(24px, 50vw - 590px);
  padding-right: max(24px, 50vw - 590px);
}

.section-heading {
  max-width: 760px;
}

.section-heading.compact {
  margin-bottom: 24px;
}

.research-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin-top: 34px;
  display: grid;
}

.research-grid.tall {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.research-card, .person-card, .resource-card, .value-card, .publication-row, .admin-stat, .message-card, .passkey-card {
  background: var(--white);
  box-shadow: var(--shadow);
  border: 1px solid #15161a1a;
  border-radius: 8px;
}

.research-card {
  flex-direction: column;
  min-height: 100%;
  display: flex;
  overflow: hidden;
}

.research-image {
  background: var(--white);
  border-bottom: 1px solid var(--line);
  justify-content: center;
  align-items: center;
  height: 230px;
  padding: 18px;
  display: flex;
}

.research-image img {
  object-fit: contain;
  height: 100%;
}

.research-body {
  padding: 22px;
}

.research-kicker {
  color: var(--blue);
  text-transform: uppercase;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  font-size: .82rem;
  font-weight: 780;
  display: flex;
}

.research-body h2 {
  font-size: 1.45rem;
}

.research-body p {
  font-size: .96rem;
}

.split {
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  align-items: start;
  gap: 44px;
  display: grid;
}

.method-list {
  gap: 10px;
  display: grid;
}

.method-item {
  background: var(--white);
  border: 1px solid var(--line);
  color: var(--ink);
  border-radius: 8px;
  align-items: center;
  gap: 10px;
  min-height: 54px;
  padding: 0 16px;
  font-weight: 700;
  display: flex;
}

.support-section {
  padding-top: 32px;
}

.support-strip {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 30px;
  display: grid;
}

.support-logo-card {
  background: var(--white);
  border: 1px solid var(--line);
  color: var(--black);
  text-align: center;
  border-radius: 8px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 12px;
  min-height: 126px;
  padding: 22px 18px 18px;
  font-size: .88rem;
  font-weight: 760;
  display: flex;
}

.support-logo-card img {
  object-fit: contain;
  width: 100%;
  max-width: min(190px, 100%);
  height: 54px;
}

.support-logo-card span {
  color: var(--muted);
  line-height: 1.25;
}

.resource-icon {
  background: var(--black);
  color: var(--white);
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 44px;
  margin-bottom: 18px;
  display: inline-flex;
}

.page-intro {
  grid-template-columns: minmax(0, 1fr) 310px;
  align-items: center;
  gap: 34px;
  max-width: 1180px;
  margin: 0 auto;
  padding: 88px 24px 36px;
  display: grid;
}

.page-intro h1 {
  margin-bottom: 18px;
}

.page-intro p:not(.eyebrow) {
  max-width: 740px;
  font-size: 1.08rem;
}

.page-intro-image {
  aspect-ratio: 1.15;
  background: var(--white);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  padding: 0;
  display: flex;
  overflow: hidden;
}

.page-intro-image img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.page-intro-image.contain {
  padding: 18px;
}

.page-intro-image.contain img {
  object-fit: contain;
}

.people-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  display: grid;
}

.person-card {
  padding: 0 0 18px;
  overflow: hidden;
}

.person-photo {
  aspect-ratio: .86;
  border-bottom: 1px solid var(--line);
  background: #f2f1ec;
  border-radius: 0;
  width: 100%;
  margin-bottom: 14px;
  overflow: hidden;
}

.person-photo img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.person-card h3 {
  margin: 0 16px 4px;
  font-size: 1.05rem;
}

.person-card p {
  margin: 0 16px;
  font-size: .94rem;
  line-height: 1.45;
}

.personnel-section {
  padding-top: 52px;
}

.personnel-heading {
  border-bottom: 1px solid var(--line);
  margin-bottom: 30px;
  padding-bottom: 16px;
}

.personnel-heading h2 {
  margin-bottom: 0;
}

.personnel-group {
  gap: 18px;
  margin-top: 42px;
  scroll-margin-top: 96px;
  display: grid;
}

.personnel-group:first-of-type {
  margin-top: 0;
}

.personnel-group > header {
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  display: flex;
}

.personnel-group > header h2 {
  margin-bottom: 0;
  font-family: inherit;
  font-size: 1.35rem;
}

.personnel-group > header span {
  background: var(--white);
  border: 1px solid var(--line);
  color: var(--black);
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  min-width: 34px;
  height: 30px;
  font-size: .86rem;
  font-weight: 850;
  display: inline-flex;
}

.alumni-section {
  border-top: 1px solid var(--line);
  grid-template-columns: .9fr 1.1fr;
  gap: 34px;
  padding-top: 56px;
  display: grid;
}

.alumni-list {
  gap: 12px;
  display: grid;
}

.alumni-list p {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 8px;
  margin: 0;
  padding: 16px;
}

.publication-list {
  gap: 14px;
  display: grid;
}

.publication-row {
  grid-template-columns: 72px 180px minmax(0, 1fr);
  align-items: start;
  gap: 26px;
  padding: 20px;
  display: grid;
}

.publication-row.no-figure {
  grid-template-columns: 72px minmax(0, 1fr);
}

.publication-row > span {
  color: var(--black);
  font-weight: 850;
}

.publication-row h2 {
  margin-bottom: 6px;
  font-family: inherit;
  font-size: 1.16rem;
  line-height: 1.4;
}

.publication-row a {
  align-items: center;
  gap: 8px;
  display: inline-flex;
}

.publication-image {
  aspect-ratio: 1.22;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  padding: 10px;
  display: flex;
  overflow: hidden;
}

.publication-image img {
  object-fit: contain;
  width: 100%;
  height: 100%;
}

.publication-index {
  padding-top: 44px;
}

.publication-source-bar {
  border-bottom: 1px solid var(--line);
  justify-content: space-between;
  align-items: end;
  gap: 18px;
  padding-bottom: 22px;
  display: flex;
}

.publication-source-bar h2 {
  margin-bottom: 0;
}

.publication-group {
  gap: 14px;
  display: grid;
}

.publication-group + .publication-group {
  margin-top: 26px;
}

.publication-group-header {
  border-bottom: 1px solid var(--line);
  justify-content: space-between;
  align-items: end;
  gap: 18px;
  padding: 10px 0 14px;
  display: flex;
}

.publication-group-header h2 {
  margin-bottom: 4px;
  font-family: inherit;
  font-size: 1.32rem;
}

.publication-group-header p {
  margin: 0;
}

.publication-group-header > span {
  background: var(--black);
  color: var(--white);
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  min-width: 42px;
  min-height: 34px;
  padding: 0 12px;
  font-weight: 850;
  display: inline-flex;
}

.publication-group-list {
  gap: 14px;
  display: grid;
}

.publication-authors {
  color: var(--ink);
  margin-bottom: 4px;
  font-weight: 700;
}

.publication-meta {
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
  display: flex;
}

.publication-meta span, .publication-meta a {
  border: 1px solid var(--line);
  color: var(--muted);
  background: #f4f3ef;
  border-radius: 999px;
  align-items: center;
  gap: 6px;
  min-height: 30px;
  padding: 0 10px;
  font-size: .84rem;
  font-weight: 750;
  display: inline-flex;
}

.resource-grid, .value-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  display: grid;
}

.resource-card, .value-card {
  padding: 22px;
}

.resource-card span {
  color: var(--coral);
  text-transform: uppercase;
  margin-bottom: 10px;
  font-size: .82rem;
  font-weight: 800;
  display: block;
}

.resource-card h2, .value-card h2 {
  font-size: 1.35rem;
}

.value-card svg {
  color: var(--green);
  margin-bottom: 18px;
}

.origin-band {
  background: var(--green);
  color: var(--white);
  border-radius: 8px;
  grid-template-columns: minmax(0, .85fr) minmax(280px, .9fr);
  align-items: center;
  gap: 26px;
  margin-bottom: 80px;
  display: grid;
}

.origin-band .eyebrow, .origin-band h2 {
  color: var(--white);
}

.origin-band img {
  background: var(--white);
  border-radius: 8px;
  padding: 14px;
}

.contact-layout {
  grid-template-columns: 340px minmax(0, 1fr);
  align-items: start;
  gap: 28px;
  display: grid;
}

.contact-panel {
  background: var(--ink);
  color: var(--white);
  border-radius: 8px;
  gap: 26px;
  padding: 28px;
  display: grid;
}

.contact-panel p, .contact-panel a {
  color: #ffffffc7;
}

.contact-panel h2 {
  color: var(--white);
  margin: 12px 0 10px;
  font-size: 1.25rem;
}

.contact-form, .auth-card {
  background: var(--white);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  border-radius: 8px;
}

.contact-form {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  padding: 24px;
  display: grid;
}

.contact-form label, .auth-card label {
  color: var(--ink);
  gap: 8px;
  font-size: .92rem;
  font-weight: 750;
  display: grid;
}

.contact-form input, .contact-form textarea, .auth-card input {
  border: 1px solid var(--line);
  color: var(--ink);
  background: #fbfbf8;
  border-radius: 8px;
  width: 100%;
  min-height: 46px;
  padding: 12px 13px;
}

.contact-form textarea {
  resize: vertical;
}

.turnstile-field {
  align-items: center;
  min-height: 72px;
  display: flex;
}

.full-span {
  grid-column: 1 / -1;
}

.form-error, .form-success {
  align-self: center;
  margin: 0;
}

.form-error {
  color: var(--coral);
}

.form-success {
  color: var(--green);
}

.auth-shell {
  grid-template-columns: minmax(0, .9fr) minmax(360px, 500px);
  gap: 28px;
  max-width: 1080px;
  margin: 0 auto;
  padding: 88px 24px;
  display: grid;
}

.auth-card {
  gap: 18px;
  padding: 26px;
  display: grid;
}

.auth-tabs {
  border: 1px solid var(--line);
  background: #f3f2ee;
  border-radius: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
  padding: 4px;
  display: grid;
}

.auth-tab {
  color: var(--muted);
  cursor: pointer;
  background: none;
  border: 0;
  border-radius: 6px;
  min-height: 38px;
  font-weight: 800;
}

.auth-tab.active {
  background: var(--white);
  color: var(--black);
  box-shadow: 0 6px 14px #05050514;
}

.auth-divider {
  color: var(--muted);
  align-items: center;
  gap: 12px;
  margin: 4px 0;
  font-size: .86rem;
  display: flex;
}

.auth-divider:before, .auth-divider:after {
  background: var(--line);
  content: "";
  flex: 1;
  height: 1px;
}

.admin-layout {
  gap: 24px;
  max-width: 1180px;
  margin: 0 auto;
  padding: 56px 24px 88px;
  display: grid;
}

.admin-topbar {
  border-bottom: 1px solid var(--line);
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  padding-bottom: 20px;
  display: flex;
}

.admin-topbar h1 {
  margin: 0;
  font-size: 2.4rem;
}

.admin-actions {
  flex-wrap: wrap;
  gap: 10px;
  display: flex;
}

.admin-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  display: grid;
}

.admin-stat, .message-card, .passkey-card {
  padding: 20px;
}

.admin-stat span, .message-card span, .passkey-card span {
  color: var(--coral);
  text-transform: uppercase;
  margin-bottom: 8px;
  font-size: .82rem;
  font-weight: 800;
  display: block;
}

.traffic-dashboard {
  background: var(--white);
  box-shadow: var(--shadow);
  border: 1px solid #15161a1a;
  border-radius: 8px;
  gap: 18px;
  padding: 22px;
  display: grid;
}

.traffic-header {
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  display: flex;
}

.traffic-header h2 {
  margin: 0;
  font-size: 1.65rem;
}

.traffic-tabs {
  border: 1px solid var(--line);
  background: #f3f2ee;
  border-radius: 8px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  padding: 4px;
  display: grid;
}

.traffic-tab {
  color: var(--muted);
  white-space: nowrap;
  border-radius: 6px;
  justify-content: center;
  align-items: center;
  min-height: 38px;
  padding: 0 12px;
  font-size: .88rem;
  font-weight: 850;
  display: inline-flex;
}

.traffic-tab.active {
  background: var(--white);
  color: var(--black);
  box-shadow: 0 6px 14px #05050514;
}

.traffic-metrics {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  display: grid;
}

.traffic-metrics article {
  border: 1px solid var(--line);
  background: #fbfbf8;
  border-radius: 8px;
  gap: 4px;
  min-height: 82px;
  padding: 14px;
  display: grid;
}

.traffic-metrics span {
  color: var(--muted);
  text-transform: uppercase;
  font-size: .78rem;
  font-weight: 800;
}

.traffic-metrics strong {
  color: var(--black);
  font-size: 1.1rem;
  line-height: 1.25;
}

.traffic-body {
  grid-template-columns: minmax(0, 1.1fr) minmax(340px, .9fr);
  align-items: stretch;
  gap: 16px;
  display: grid;
}

.traffic-map-panel, .traffic-location-panel {
  border: 1px solid var(--line);
  background: #fbfbf8;
  border-radius: 8px;
  min-width: 0;
  display: grid;
  overflow: hidden;
}

.traffic-map-panel {
  gap: 12px;
  padding: 16px;
}

.traffic-map-title, .traffic-location-header {
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  display: flex;
}

.traffic-map-title {
  justify-content: flex-start;
}

.traffic-map-title span, .traffic-location-header h3 {
  color: var(--black);
  margin: 0;
  font-family: inherit;
  font-size: .95rem;
  font-weight: 850;
}

.traffic-map {
  aspect-ratio: 2;
  background: #edf4f8;
  border: 1px solid #d5dfe6;
  border-radius: 8px;
  width: 100%;
  height: auto;
  overflow: hidden;
}

.traffic-map-water {
  fill: #edf4f8;
}

.traffic-map-land {
  fill: #d4d8dc;
  stroke: #ffffffeb;
  stroke-width: 2px;
}

.traffic-country-heat {
  fill: #4c93d8;
}

.traffic-location-dot {
  fill: #065f9e;
  stroke: var(--white);
  stroke-width: 3px;
}

.traffic-map-note {
  color: var(--muted);
  margin: 0;
  font-size: .9rem;
}

.traffic-location-panel {
  grid-template-rows: auto minmax(0, 1fr);
}

.traffic-location-header {
  border-bottom: 1px solid var(--line);
  padding: 16px;
}

.traffic-location-header .eyebrow {
  margin-bottom: 4px;
}

.traffic-location-list {
  gap: 0;
  max-height: 474px;
  display: grid;
  overflow: auto;
}

.traffic-location-row {
  border-bottom: 1px solid var(--line);
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 12px;
  padding: 14px 16px;
  display: grid;
}

.traffic-location-row > div:first-child {
  gap: 7px;
  min-width: 0;
  display: grid;
}

.traffic-location-row strong {
  color: var(--black);
}

.traffic-location-row span {
  color: var(--muted);
  align-items: center;
  gap: 6px;
  font-size: .86rem;
  font-weight: 700;
  display: inline-flex;
}

.traffic-location-counts {
  justify-items: end;
  display: grid;
}

.traffic-location-counts strong {
  font-size: 1.06rem;
}

.traffic-location-tags {
  flex-wrap: wrap;
  grid-column: 1 / -1;
  gap: 6px;
  display: flex;
}

.traffic-location-tags span {
  background: var(--white);
  border: 1px solid var(--line);
  color: var(--ink);
  border-radius: 999px;
  min-height: 28px;
  padding: 0 9px;
}

.traffic-empty {
  color: var(--muted);
  text-align: center;
  align-content: center;
  place-items: center;
  gap: 8px;
  min-height: 240px;
  padding: 24px;
  display: grid;
}

.traffic-empty strong {
  color: var(--black);
}

.traffic-empty p {
  max-width: 320px;
  margin: 0;
}

.message-list {
  gap: 12px;
  display: grid;
}

.message-card h2 {
  font-family: inherit;
  font-size: 1.15rem;
}

.message-card header {
  justify-content: space-between;
  align-items: start;
  gap: 18px;
  display: flex;
}

.message-card time {
  color: var(--muted);
  white-space: nowrap;
  font-size: .86rem;
}

.message-card-actions {
  flex-direction: column;
  align-items: end;
  gap: 10px;
  display: flex;
}

.message-card-actions .button {
  min-height: 38px;
}

.page-editor-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  display: grid;
}

.page-editor-card {
  background: var(--white);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  border-radius: 8px;
  grid-template-columns: 190px minmax(0, 1fr);
  gap: 0;
  display: grid;
  overflow: hidden;
}

.page-editor-card > img {
  object-fit: cover;
  background: #f2f5f1;
  width: 100%;
  height: 100%;
  min-height: 220px;
}

.page-editor-card > div {
  padding: 20px;
}

.page-editor-card span, .album-card span {
  color: var(--coral);
  text-transform: uppercase;
  margin-bottom: 10px;
  font-size: .82rem;
  font-weight: 800;
  display: block;
}

.editor-form {
  background: var(--white);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  border-radius: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  padding: 24px;
  display: grid;
}

.editor-form label {
  color: var(--ink);
  gap: 8px;
  font-size: .92rem;
  font-weight: 750;
  display: grid;
}

.editor-form input, .editor-form textarea {
  border: 1px solid var(--line);
  color: var(--ink);
  background: #fbfbf8;
  border-radius: 8px;
  width: 100%;
  min-height: 46px;
  padding: 12px 13px;
}

.editor-form textarea {
  resize: vertical;
}

.editor-preview {
  border: 1px solid var(--line);
  background: #f2f5f1;
  border-radius: 8px;
  max-height: 360px;
  overflow: hidden;
}

.editor-preview img {
  object-fit: contain;
  width: 100%;
  height: 100%;
  max-height: 360px;
  padding: 14px;
}

.panel-group-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  display: grid;
}

.panel-group-card, .panel-create-form, .panel-edit-card {
  background: var(--white);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  border-radius: 8px;
}

.panel-group-card {
  flex-direction: column;
  min-height: 250px;
  padding: 22px;
  display: flex;
}

.panel-group-card span {
  color: var(--coral);
  text-transform: uppercase;
  margin-bottom: 10px;
  font-size: .82rem;
  font-weight: 800;
  display: block;
}

.panel-group-card h2 {
  font-family: inherit;
  font-size: 1.25rem;
}

.panel-group-card p {
  flex: 1;
}

.panel-group-actions {
  flex-wrap: wrap;
  gap: 10px;
  display: flex;
}

.panel-create-form {
  overflow: hidden;
}

.panel-add-drawer summary {
  cursor: pointer;
  grid-template-columns: minmax(0, auto) minmax(0, 1fr);
  align-items: center;
  gap: 6px;
  padding: 18px 20px;
  list-style: none;
  display: grid;
}

.panel-add-drawer summary::-webkit-details-marker {
  display: none;
}

.panel-add-drawer summary > span {
  color: var(--ink);
  align-items: center;
  gap: 8px;
  font-weight: 850;
  display: inline-flex;
}

.panel-add-drawer summary small {
  color: var(--muted);
  font-size: .9rem;
  line-height: 1.45;
}

.panel-add-drawer[open] summary {
  border-bottom: 1px solid var(--line);
}

.panel-create-fields {
  grid-template-columns: minmax(0, 1fr) 104px minmax(150px, .35fr);
  gap: 14px;
  padding: 18px 20px 20px;
  display: grid;
}

.panel-edit-list {
  gap: 12px;
  display: grid;
}

.panel-edit-card {
  grid-template-columns: 220px minmax(0, 1fr);
  display: grid;
  overflow: hidden;
}

.panel-edit-card.compact {
  grid-template-columns: 1fr;
}

.panel-edit-preview {
  border-right: 1px solid var(--line);
  background: #f2f5f1;
  justify-content: center;
  align-items: center;
  min-height: 320px;
  padding: 18px;
  display: flex;
}

.panel-edit-preview img {
  object-fit: contain;
  width: 100%;
  max-height: 280px;
}

.panel-edit-preview span {
  color: var(--muted);
  font-weight: 750;
}

.panel-edit-fields {
  grid-template-columns: 44px minmax(0, 1fr) 104px minmax(150px, .38fr);
  align-items: end;
  gap: 14px;
  padding: 18px;
  display: grid;
}

.panel-edit-card.compact .panel-edit-fields {
  grid-template-columns: 44px minmax(0, 1fr) 104px minmax(150px, .38fr) auto;
}

.panel-edit-number {
  color: var(--coral);
  align-self: center;
  font-size: .82rem;
  font-weight: 850;
}

.panel-create-fields label, .panel-edit-fields label {
  color: var(--ink);
  text-transform: uppercase;
  gap: 6px;
  font-size: .78rem;
  font-weight: 750;
  display: grid;
}

.panel-create-fields .panel-short-label-field {
  grid-column: 1 / span 2;
}

.panel-create-fields .full-span {
  grid-column: 1 / -1;
}

.panel-create-fields .panel-image-upload-field {
  grid-column: 1 / 2;
}

.panel-create-fields .panel-image-url-field {
  grid-column: 2 / -1;
}

.panel-edit-fields .panel-title-field {
  grid-column: 2 / 3;
}

.panel-edit-fields .panel-short-label-field {
  grid-column: 2 / span 2;
}

.panel-edit-fields .full-span {
  grid-column: 2 / -1;
}

.panel-edit-fields .panel-image-upload-field {
  grid-column: 2 / 3;
}

.panel-edit-fields .panel-image-url-field {
  grid-column: 3 / -1;
}

.panel-create-fields input, .panel-create-fields select, .panel-create-fields textarea, .panel-edit-fields input, .panel-edit-fields select, .panel-edit-fields textarea {
  border: 1px solid var(--line);
  color: var(--ink);
  font: inherit;
  text-transform: none;
  background: #fbfbf8;
  border-radius: 8px;
  width: 100%;
  min-height: 46px;
  padding: 12px 13px;
  font-size: .95rem;
  font-weight: 650;
}

.panel-create-fields textarea, .panel-edit-fields textarea {
  resize: vertical;
  min-height: 148px;
  line-height: 1.5;
}

.panel-edit-actions {
  flex-wrap: wrap;
  grid-column: 2 / -1;
  justify-content: flex-end;
  align-self: end;
  gap: 8px;
  display: flex;
}

.panel-edit-actions .button {
  min-height: 42px;
}

.album-feed-shell {
  grid-template-columns: 280px minmax(0, 680px);
  justify-content: center;
  align-items: start;
  gap: 34px;
  max-width: 1080px;
  margin: 0 auto;
  padding: 42px 24px 88px;
  display: grid;
}

.album-sidebar {
  gap: 14px;
  display: grid;
  position: sticky;
  top: 94px;
}

.album-profile-card, .album-post, .album-empty, .album-empty-state, .album-composer, .album-library {
  background: var(--white);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  border-radius: 8px;
  overflow: hidden;
}

.album-profile-card img {
  aspect-ratio: 1;
  object-fit: cover;
  width: 100%;
}

.album-profile-card > div {
  padding: 18px;
}

.album-profile-card h2 {
  margin-bottom: 4px;
  font-family: inherit;
  font-size: 1.25rem;
}

.year-pills {
  flex-wrap: wrap;
  gap: 8px;
  display: flex;
}

.year-pills a {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 999px;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding: 0 12px;
  font-weight: 850;
  display: inline-flex;
}

.year-pills span {
  color: var(--muted);
  font-size: .82rem;
}

.album-login-button {
  width: 100%;
}

.album-feed {
  gap: 34px;
  display: grid;
}

.album-year-section {
  gap: 18px;
  scroll-margin-top: 100px;
  display: grid;
}

.album-year-section > header {
  border-bottom: 1px solid var(--line);
  justify-content: space-between;
  align-items: end;
  padding-bottom: 10px;
  display: flex;
}

.album-year-section h2 {
  margin-bottom: 0;
}

.album-year-section > header span {
  color: var(--muted);
  font-weight: 750;
}

.album-post {
  display: grid;
}

.album-post-header {
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  display: flex;
}

.album-post-header h3 {
  margin-bottom: 4px;
  font-size: 1.08rem;
}

.album-post-header p {
  margin: 0 0 6px;
  font-size: .9rem;
  line-height: 1.35;
}

.album-post-header span, .preview-date, .album-action-meta span {
  color: var(--muted);
  align-items: center;
  gap: 6px;
  font-size: .88rem;
  display: inline-flex;
}

.album-year-badge {
  border: 1px solid var(--line);
  background: #f3f2ee;
  border-radius: 999px;
  min-height: 32px;
  padding: 0 10px;
  font-weight: 850;
  color: var(--black) !important;
}

.album-post-gallery {
  background: #f3f2ee;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2px;
  display: grid;
}

.album-post-gallery.single {
  display: block;
}

.album-post-image {
  cursor: zoom-in;
  text-align: inherit;
  background: #f3f2ee;
  border: 0;
  width: 100%;
  padding: 0;
  display: block;
}

.album-post-image img {
  aspect-ratio: 1;
  object-fit: cover;
  object-position: center;
  width: 100%;
  height: 100%;
}

.album-post-gallery.single .album-post-image img {
  aspect-ratio: 4 / 3;
}

.album-post-gallery .album-post-image:first-child:nth-last-child(3) {
  grid-row: span 2;
}

.album-post-image:focus-visible {
  outline-offset: -3px;
  outline: 3px solid #1f4e4559;
}

.album-post-body {
  gap: 12px;
  padding: 16px 18px 18px;
  display: grid;
}

.album-actions-row {
  align-items: center;
  gap: 12px;
  display: flex;
}

.album-icon {
  color: var(--black);
  cursor: pointer;
  background: none;
  border: 0;
  justify-content: center;
  align-items: center;
  width: 34px;
  height: 34px;
  padding: 0;
  display: inline-flex;
}

.album-icon.active {
  color: var(--coral);
}

.album-icon:disabled {
  color: #b9b7b0;
  cursor: not-allowed;
}

.album-action-meta {
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  display: flex;
}

.album-action-meta strong {
  color: var(--black);
}

.comment-list {
  border-top: 1px solid var(--line);
  gap: 8px;
  padding-top: 12px;
  display: grid;
}

.comment-list p {
  margin: 0;
  font-size: .94rem;
  line-height: 1.45;
}

.comment-list strong {
  color: var(--ink);
}

.comment-form {
  border-top: 1px solid var(--line);
  grid-template-columns: minmax(0, 1fr) 34px;
  align-items: center;
  gap: 8px;
  padding-top: 12px;
  display: grid;
}

.comment-form input {
  background: #f8f7f3;
  border: 1px solid #0000;
  border-radius: 999px;
  width: 100%;
  min-height: 40px;
  padding: 0 14px;
}

.album-lightbox {
  z-index: 90;
  background: #050505bd;
  justify-content: center;
  align-items: center;
  padding: 24px;
  display: flex;
  position: fixed;
  inset: 0;
}

.album-lightbox-panel {
  background: var(--white);
  border-radius: 8px;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
  width: 100%;
  max-width: min(1180px, 100vw - 48px);
  max-height: calc(100vh - 48px);
  display: grid;
  position: relative;
  overflow: hidden;
  box-shadow: 0 24px 80px #00000052;
}

.album-lightbox-media {
  background: var(--black);
  justify-content: center;
  align-items: center;
  min-height: min(74vh, 760px);
  display: flex;
}

.album-lightbox-media img {
  object-fit: contain;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: calc(100vh - 48px);
}

.album-lightbox-caption {
  gap: 14px;
  padding: 52px 22px 22px;
  display: grid;
  overflow: auto;
}

.album-lightbox-caption h2 {
  margin: 0;
  font-family: inherit;
  font-size: 1.2rem;
  line-height: 1.35;
}

.album-lightbox-caption p {
  margin: 0;
}

.album-lightbox-close {
  background: var(--white);
  border: 1px solid var(--line);
  color: var(--black);
  cursor: pointer;
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  width: 36px;
  height: 36px;
  display: inline-flex;
  position: absolute;
  top: 14px;
  right: 14px;
}

.album-lightbox-meta {
  border-top: 1px solid var(--line);
  color: var(--muted);
  gap: 8px;
  padding-top: 14px;
  font-size: .9rem;
  display: grid;
}

.album-lightbox-meta span {
  align-items: center;
  gap: 6px;
  display: inline-flex;
}

.album-empty, .album-empty-state {
  padding: 24px;
}

.member-album-compose {
  padding-top: 34px;
  padding-bottom: 32px;
}

.member-album-compose .album-composer {
  background: var(--white);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  border-radius: 8px;
  overflow: hidden;
}

.album-manager {
  gap: 28px;
  display: grid;
}

.album-composer {
  grid-template-columns: minmax(0, .95fr) minmax(320px, .75fr);
  display: grid;
}

.composer-fields {
  gap: 16px;
  padding: 24px;
  display: grid;
}

.composer-section-title {
  align-items: center;
  gap: 12px;
  display: flex;
}

.composer-section-title h2 {
  margin-bottom: 2px;
  font-family: inherit;
  font-size: 1.25rem;
}

.composer-section-title p {
  margin: 0;
}

.composer-fields label {
  color: var(--ink);
  gap: 8px;
  font-size: .92rem;
  font-weight: 750;
  display: grid;
}

.composer-inline {
  grid-template-columns: .7fr 1fr;
  gap: 12px;
  display: grid;
}

.composer-fields input, .composer-fields textarea {
  border: 1px solid var(--line);
  color: var(--ink);
  background: #fbfbf8;
  border-radius: 8px;
  width: 100%;
  min-height: 46px;
  padding: 12px 13px;
}

.composer-fields textarea {
  resize: vertical;
}

.upload-dropzone {
  color: var(--black);
  cursor: pointer;
  text-align: center;
  background: #f5f4ef;
  border: 1px dashed #bdb9ae;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  min-height: 88px;
  transition: background .16s, border-color .16s, box-shadow .16s, transform .16s;
  gap: 10px !important;
  display: flex !important;
}

.upload-dropzone.active, .upload-dropzone:hover {
  border-color: var(--amber);
  background: #fff8e8;
  box-shadow: inset 0 0 0 1px #a86e2538;
}

.upload-dropzone.active {
  transform: translateY(-1px);
}

.upload-dropzone small {
  color: var(--muted);
  margin-left: 2px;
  font-size: .82rem;
  font-weight: 650;
  line-height: 1.2;
}

.upload-dropzone input {
  display: none;
}

.composer-preview {
  background: var(--black);
  color: var(--white);
  grid-template-rows: minmax(280px, 1fr) auto;
  display: grid;
}

.composer-preview > img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  max-height: 520px;
}

.composer-preview > div:not(.composer-preview-strip) {
  padding: 20px;
}

.composer-preview-strip {
  background: #ffffff14;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
  padding: 12px;
  display: grid;
}

.composer-preview-strip img {
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 6px;
  width: 100%;
  height: auto;
}

.composer-preview span, .library-card span {
  color: var(--amber);
  text-transform: uppercase;
  margin-bottom: 8px;
  font-size: .82rem;
  font-weight: 800;
  display: block;
}

.composer-preview-strip span {
  aspect-ratio: 1;
  color: var(--white);
  text-transform: none;
  background: #ffffff24;
  border-radius: 6px;
  justify-content: center;
  align-items: center;
  margin: 0;
  font-size: .9rem;
  font-weight: 850;
  display: inline-flex;
}

.composer-preview h3 {
  color: var(--white);
  font-size: 1.35rem;
}

.composer-preview p {
  color: #ffffffc2;
}

.album-library {
  gap: 20px;
  padding: 24px;
  display: grid;
}

.album-library > header {
  justify-content: space-between;
  align-items: center;
  display: flex;
}

.library-year {
  gap: 12px;
  display: grid;
}

.library-year h3 {
  border-bottom: 1px solid var(--line);
  padding-bottom: 8px;
}

.library-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  display: grid;
}

.library-card {
  border: 1px solid var(--line);
  background: #f8f7f3;
  border-radius: 8px;
  overflow: hidden;
}

.library-card img {
  aspect-ratio: 1;
  object-fit: cover;
  width: 100%;
}

.library-card > div {
  padding: 12px;
}

.library-card h4 {
  margin: 0;
  font-size: .95rem;
  line-height: 1.3;
}

.library-card p {
  margin: 6px 0 0;
  font-size: .84rem;
  line-height: 1.4;
}

.member-admin-grid {
  grid-template-columns: minmax(320px, .7fr) minmax(0, 1.1fr);
  align-items: start;
  gap: 24px;
  display: grid;
}

.member-create-form, .member-list-panel {
  background: var(--white);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  border-radius: 8px;
  gap: 16px;
  padding: 24px;
  display: grid;
}

.member-create-form label {
  color: var(--ink);
  gap: 8px;
  font-size: .92rem;
  font-weight: 750;
  display: grid;
}

.member-create-form input {
  border: 1px solid var(--line);
  color: var(--ink);
  background: #fbfbf8;
  border-radius: 8px;
  width: 100%;
  min-height: 46px;
  padding: 12px 13px;
}

.member-list-panel > header {
  border-bottom: 1px solid var(--line);
  padding-bottom: 8px;
}

.member-list-panel h2 {
  margin-bottom: 0;
}

.member-account-list {
  gap: 12px;
  display: grid;
}

.member-account-card {
  border: 1px solid var(--line);
  background: #f8f7f3;
  border-radius: 8px;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 16px;
  display: flex;
}

.member-account-card h3 {
  margin-bottom: 4px;
}

.member-account-card p {
  margin-bottom: 8px;
}

.member-account-card span {
  color: var(--muted);
  font-size: .86rem;
  font-weight: 750;
}

.member-stats {
  gap: 8px;
  display: flex;
}

.member-stats span {
  background: var(--white);
  border: 1px solid var(--line);
  color: var(--black);
  border-radius: 999px;
  align-items: center;
  gap: 6px;
  min-height: 32px;
  padding: 0 10px;
  display: inline-flex;
}

.personnel-create-form, .personnel-admin-group, .personnel-edit-card {
  background: var(--white);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  border-radius: 8px;
}

.personnel-create-form {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  padding: 24px;
  display: grid;
}

.personnel-create-form .composer-section-title {
  grid-column: 1 / -1;
}

.personnel-create-form label, .personnel-edit-fields label {
  color: var(--ink);
  gap: 8px;
  font-size: .92rem;
  font-weight: 750;
  display: grid;
}

.personnel-create-form input, .personnel-create-form select, .personnel-edit-fields input, .personnel-edit-fields select {
  border: 1px solid var(--line);
  color: var(--ink);
  background: #fbfbf8;
  border-radius: 8px;
  width: 100%;
  min-height: 46px;
  padding: 12px 13px;
}

.personnel-admin-list {
  gap: 24px;
  display: grid;
}

.personnel-admin-group {
  gap: 16px;
  padding: 20px;
  display: grid;
}

.personnel-admin-group > header {
  border-bottom: 1px solid var(--line);
  justify-content: space-between;
  align-items: center;
  padding-bottom: 12px;
  display: flex;
}

.personnel-admin-group h2 {
  margin-bottom: 0;
  font-family: inherit;
  font-size: 1.25rem;
}

.personnel-admin-group > header span {
  color: var(--muted);
  font-weight: 850;
}

.personnel-edit-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  display: grid;
}

.personnel-edit-card {
  box-shadow: none;
  grid-template-columns: 170px minmax(0, 1fr);
  display: grid;
  overflow: hidden;
}

.personnel-edit-card > img {
  object-fit: cover;
  background: #f2f1ec;
  width: 100%;
  height: 100%;
  min-height: 260px;
}

.personnel-edit-fields {
  gap: 12px;
  padding: 16px;
  display: grid;
}

.personnel-edit-actions {
  flex-wrap: wrap;
  gap: 8px;
  display: flex;
}

.site-footer {
  background: var(--ink);
  color: var(--white);
  grid-template-columns: minmax(0, 1fr) minmax(360px, .9fr);
  gap: 40px;
  padding: 56px max(24px, 50vw - 590px);
  display: grid;
}

.site-footer p, .site-footer a {
  color: #ffffffb8;
}

.footer-brand {
  margin-bottom: 12px;
  font-family: Georgia, Times New Roman, serif;
  font-size: 1.7rem;
}

.footer-logo {
  background: var(--white);
  object-fit: contain;
  border-radius: 8px;
  width: 142px;
  height: 88px;
  margin-bottom: 16px;
  padding: 8px;
}

.footer-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
  display: grid;
}

.footer-grid h2 {
  color: var(--white);
  text-transform: uppercase;
  margin-bottom: 12px;
  font-family: inherit;
  font-size: .95rem;
}

.footer-grid a {
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
  display: flex;
}

@media (max-width: 1080px) {
  .desktop-nav {
    display: none;
  }

  .mobile-menu-button, .mobile-nav {
    display: flex;
  }

  .hero {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .hero-media {
    aspect-ratio: 16 / 10;
    order: 2;
    min-height: 0;
  }

  .hero-content {
    max-width: 720px;
    padding: 70px 24px 44px;
  }

  .research-grid, .resource-grid, .value-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .people-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .auth-shell, .album-composer, .album-feed-shell, .contact-layout, .member-admin-grid, .page-intro, .split, .site-footer, .traffic-body {
    grid-template-columns: 1fr;
  }

  .album-sidebar {
    position: static;
  }

  .admin-grid, .library-grid, .panel-create-fields, .panel-group-grid, .personnel-edit-grid, .traffic-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  h1 {
    font-size: 2.65rem;
  }

  h2 {
    font-size: 1.75rem;
  }

  .site-header {
    padding-left: 16px;
    padding-right: 16px;
  }

  .brand {
    min-width: 0;
  }

  .brand span:last-child {
    display: none;
  }

  .hero-media {
    aspect-ratio: 16 / 10;
    min-height: 0;
  }

  .research-grid, .research-grid.tall, .resource-grid, .value-grid, .people-grid, .support-strip, .admin-grid, .album-composer, .album-feed-shell, .composer-inline, .footer-grid, .contact-form, .editor-form, .alumni-section, .page-editor-card, .page-editor-grid, .panel-create-form, .panel-create-fields, .panel-edit-card, .panel-edit-fields, .panel-group-grid, .origin-band, .publication-row, .publication-source-bar, .member-admin-grid, .personnel-create-form, .personnel-edit-card, .personnel-edit-grid, .library-grid, .traffic-metrics {
    grid-template-columns: 1fr;
  }

  .publication-row {
    gap: 10px;
  }

  .publication-row.no-figure {
    grid-template-columns: 1fr;
  }

  .publication-source-bar, .publication-group-header, .album-library > header, .album-year-section > header {
    flex-direction: column;
    align-items: stretch;
  }

  .panel-create-fields .full-span, .panel-create-fields .panel-image-upload-field, .panel-create-fields .panel-image-url-field, .panel-create-fields .panel-short-label-field, .panel-edit-actions, .panel-edit-fields .full-span, .panel-edit-fields .panel-image-upload-field, .panel-edit-fields .panel-image-url-field, .panel-edit-fields .panel-short-label-field, .panel-edit-fields .panel-title-field {
    grid-column: 1 / -1;
  }

  .admin-topbar, .traffic-header, .member-account-card, .message-card header {
    flex-direction: column;
    align-items: stretch;
  }

  .admin-actions, .admin-actions .button, .hero-actions .button, .auth-actions .button {
    width: 100%;
  }

  .album-lightbox {
    padding: 12px;
  }

  .album-lightbox-panel {
    grid-template-columns: 1fr;
    max-width: calc(100vw - 24px);
    max-height: calc(100vh - 24px);
  }

  .album-lightbox-media {
    min-height: 0;
  }

  .album-lightbox-media img {
    max-height: 62vh;
  }

  .album-lightbox-caption {
    max-height: 32vh;
    padding-top: 48px;
  }
}

/*# sourceMappingURL=src_app_globals_0p2ml0n.css.map*/