@font-face {
  font-family: "Alumni Sans";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/assets/fonts/alumni-sans-latin.woff2") format("woff2")
}

:root {
  --paper: #f5f3ef;
  --paper-deep: #e9e4de;
  --white: #fffdf9;
  --ink: #111012;
  --muted: #625e62;
  --quiet: #706c70;
  --dark: #100d10;
  --dark-soft: #191519;
  --accent: #d88eae;
  --accent-deep: #7d2949;
  --shell: 1240px;
  --media: 1120px;
  --measure: 760px;
  --narrow: 620px;
  --gutter: clamp(22px, 4vw, 64px);
  --s1: 8px;
  --s2: 12px;
  --s3: 18px;
  --s4: 26px;
  --s5: 40px;
  --s6: 64px;
  --s7: 96px;
  --s8: 136px;
  --font: "Alumni Sans", Arial, sans-serif;
}

* {
  box-sizing: border-box
}

html {
  scroll-behavior: smooth;
  background: var(--paper)
}

body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--font);
  font-size: 19px;
  line-height: 1.5;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility
}

html.menu-open,
body.menu-open {
  overflow: hidden;
  overscroll-behavior: none
}

figure {
  margin: 0
}

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

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

a,
button {
  touch-action: manipulation
}

button,
input,
textarea,
select {
  font: inherit
}

button,
strong,
b {
  font-weight: 500
}

::selection {
  background: #ead0dc;
  color: var(--ink)
}

:focus-visible {
  outline: 2px solid var(--accent-deep);
  outline-offset: 5px
}

.shell {
  width: min(var(--shell), calc(100% - 2*var(--gutter)));
  margin-inline: auto
}

.measure {
  width: min(var(--measure), calc(100% - 2*var(--gutter)));
  margin-inline: auto
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 80;
  background: var(--paper);
  border-bottom: 1px solid #11101212
}

.header-inner {
  height: 68px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 24px
}

.brand-mark {
  justify-self: start;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center
}

.brand-mark img {
  width: 34px;
  height: 34px;
  object-fit: contain
}

.desktop-nav {
  display: flex;
  gap: 30px;
  align-items: center
}

.desktop-nav a,
.search-link,
.access-link {
  font-size: 16px;
  font-weight: 400;
  color: #49464a;
  position: relative
}

.desktop-nav a::after,
.search-link::after,
.access-link::after,
.text-link::after,
.story-action::after,
.page-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -4px;
  height: 1px;
  background: currentColor;
  transition: right .18s ease
}

.desktop-nav a:hover::after,
.desktop-nav a:focus-visible::after,
.search-link:hover::after,
.search-link:focus-visible::after,
.access-link:hover::after,
.access-link:focus-visible::after,
.text-link:hover::after,
.text-link:focus-visible::after,
.story-link:hover .story-action::after,
.story-link:focus-visible .story-action::after,
.page-nav a:hover::after,
.page-nav a:focus-visible::after,
.page-nav a.is-active::after {
  right: 0
}

.desktop-nav a[aria-current=page] {
  color: var(--ink);
  font-weight: 500
}

.header-actions {
  justify-self: end;
  display: flex;
  gap: 20px;
  align-items: center
}

.access-link {
  color: var(--ink);
  font-weight: 500
}

.menu-button {
  display: none;
  padding: 7px 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  font-weight: 500;
  cursor: pointer
}

.mobile-nav {
  display: none
}

.page-nav-wrap {
  position: sticky;
  top: 68px;
  z-index: 28;
  background: var(--paper);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px)
}

.page-nav {
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(18px, 3vw, 34px);
  overflow-x: auto;
  white-space: nowrap;
  scrollbar-width: none
}

.page-nav::-webkit-scrollbar {
  display: none
}

.page-nav a {
  position: relative;
  font-size: 15px;
  color: #565156
}

.page-nav a.is-active {
  color: var(--ink);
  font-weight: 500
}

.intro {
  padding-top: clamp(96px, 11vw, 144px);
  padding-bottom: clamp(58px, 7vw, 88px);
  text-align: center
}

.eyebrow {
  margin: 0 0 var(--s3);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: .085em;
  text-transform: uppercase;
  color: var(--accent-deep)
}

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

h1 {
  max-width: 900px;
  margin-inline: auto;
  margin-bottom: var(--s4);
  font-size: clamp(54px, 6.2vw, 88px);
  line-height: .95;
  letter-spacing: -.032em;
  font-weight: 500
}

h2 {
  font-size: clamp(38px, 4.4vw, 64px);
  line-height: 1;
  letter-spacing: -.026em;
  font-weight: 500
}

h3 {
  font-size: 30px;
  line-height: 1.06;
  letter-spacing: -.016em;
  font-weight: 500
}

.lead {
  max-width: 740px;
  margin: 0 auto;
  color: #4e4a4f;
  font-size: clamp(22px, 2.1vw, 28px);
  line-height: 1.38;
  letter-spacing: -.006em;
  font-weight: 400
}

.copy {
  color: #514d51;
  font-size: 21px;
  line-height: 1.52
}

.muted {
  color: var(--muted)
}

.caption {
  margin-top: 14px;
  color: var(--muted);
  font-size: 15px;
  text-align: center
}

.hero-media,
.media-wide,
.media {
  width: min(var(--media), calc(100% - 2*var(--gutter)));
  margin-inline: auto;
  display: grid;
  place-items: center
}

.hero-media {
  margin-bottom: var(--s8)
}

.hero-media img,
.media-wide img,
.media img {
  width: 100%;
  height: auto;
  margin-inline: auto
}

.section {
  padding-block: var(--s8);
  scroll-margin-top: 132px
}

.section.compact {
  padding-block: var(--s7)
}

.section.white {
  background: var(--white)
}

.section.dark {
  background: var(--dark);
  color: var(--white)
}

.section.dark .copy,
.section.dark .muted {
  color: #c9c2c6
}

.section.dark .eyebrow {
  color: #e6afc6
}

.section-head {
  width: min(880px, 100%);
  margin: 0 auto var(--s6);
  text-align: center
}

.section-head h2 {
  margin-bottom: var(--s4)
}

.section-head .copy {
  max-width: 760px;
  margin-inline: auto
}

.two-col {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(44px, 7vw, 96px);
  align-items: center
}

.two-col>.copy-block {
  width: 100%;
  max-width: 520px
}

.two-col>.copy-block:first-child {
  justify-self: end
}

.two-col>.copy-block:last-child {
  justify-self: start
}

.copy-block h2 {
  margin-bottom: var(--s4)
}

.copy-block .copy:last-child {
  margin-bottom: 0
}

.media-cell {
  display: grid;
  place-items: center;
  min-width: 0
}

.media-cell img {
  width: 100%;
  height: auto;
  margin-inline: auto
}

.statement {
  padding-block: clamp(84px, 10vw, 128px)
}

.statement-inner {
  width: min(980px, 100%);
  margin-inline: auto;
  text-align: center
}

.statement h2 {
  margin-bottom: var(--s4)
}

.statement .copy {
  width: min(720px, 100%);
  margin-inline: auto
}

.cta-row {
  display: flex;
  gap: 22px;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  margin-top: var(--s5)
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 20px;
  background: var(--ink);
  color: var(--white);
  font-size: 16px;
  font-weight: 500;
  cursor: pointer;
  border: 0
}

.button:hover,
.button:focus-visible {
  background: #2a272a
}

.button.secondary {
  background: transparent;
  color: var(--ink);
  padding-inline: 0
}

.dark .button.secondary {
  color: var(--white)
}

.text-link,
.story-action {
  position: relative;
  display: inline-flex;
  width: max-content;
  gap: 8px;
  align-items: center;
  font-weight: 500
}

.home-hero-note {
  width: min(980px, calc(100% - 2*var(--gutter)));
  margin: -72px auto var(--s8);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(38px, 7vw, 90px);
  align-items: start
}

.home-hero-note p {
  margin: 0;
  color: var(--muted);
  font-size: 18px
}

.home-hero-note .note-title {
  color: var(--ink);
  font-size: 23px;
  line-height: 1.25;
  font-weight: 500;
  max-width: 400px
}

.moment-band {
  padding-block: var(--s8);
  background: var(--white)
}

.moment-grid {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap: clamp(44px, 7vw, 96px);
  align-items: center
}

.moment-copy {
  max-width: 470px;
  justify-self: end
}

.moment-copy h2 {
  margin-bottom: var(--s4)
}

.moment-copy .cta-row {
  justify-content: flex-start
}

.moment-media {
  min-width: 0
}

.moment-media img {
  width: 100%;
  height: auto
}

.home-duo {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(48px, 8vw, 110px)
}

.story-link {
  display: block;
  padding-block: 12px;
  min-width: 0
}

.story-kicker {
  display: block;
  margin-bottom: 18px;
  color: var(--accent-deep);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase
}

.story-link h3 {
  font-size: clamp(34px, 3.5vw, 50px);
  margin-bottom: 18px
}

.story-link p {
  max-width: 520px;
  color: var(--muted);
  font-size: 20px;
  margin-bottom: 26px
}

.story-action {
  font-size: 17px
}

.all-news {
  display: flex;
  justify-content: center;
  margin-top: var(--s5)
}

.featured-news {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
  gap: clamp(44px, 7vw, 96px);
  align-items: center;
  margin-bottom: var(--s7)
}

.featured-news-media img {
  width: 100%;
  height: auto
}

.featured-news-copy {
  max-width: 480px
}

.featured-news-copy h2 {
  margin-bottom: 20px
}

.featured-news-copy p {
  color: var(--muted);
  font-size: 21px;
  margin-bottom: 26px
}

.news-meta {
  display: flex;
  gap: 12px;
  align-items: center;
  color: var(--muted);
  font-size: 15px;
  margin-bottom: 18px
}

.article-list {
  display: grid;
  gap: 0
}

.article-row {
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr) auto;
  gap: 32px;
  align-items: baseline;
  padding: 24px 0 30px
}

.article-row time,
.article-row .category {
  font-size: 15px;
  color: var(--muted)
}

.article-row h2 {
  font-size: clamp(31px, 3vw, 44px);
  margin: 0
}

.article-row p {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 19px
}

.article-row:hover h2,
.article-row:focus-visible h2 {
  color: var(--accent-deep)
}

.article-hero {
  padding-top: var(--s7);
  text-align: center
}

.article-hero h1 {
  font-size: clamp(52px, 6.4vw, 84px)
}

.article-meta {
  display: flex;
  justify-content: center;
  gap: 12px;
  color: var(--muted);
  font-size: 16px;
  margin-bottom: var(--s5)
}

.article-body {
  width: min(var(--measure), calc(100% - 2*var(--gutter)));
  margin: 0 auto;
  padding: var(--s7) 0 var(--s8)
}

.article-body h2 {
  font-size: clamp(36px, 4vw, 54px);
  margin: 72px 0 22px
}

.article-body h3 {
  font-size: clamp(27px, 3vw, 36px);
  margin: 46px 0 16px
}

.article-body blockquote {
  font-size: clamp(28px, 3.2vw, 42px);
  line-height: 1.25;
  margin: 58px 0;
  padding-left: 0;
  color: var(--ink)
}

.article-body ul {
  margin: 28px 0 36px;
  padding-left: 24px
}

.article-body li {
  font-size: 21px;
  line-height: 1.55;
  color: #3f3b3f;
  margin: 10px 0
}

.article-body p {
  font-size: 22px;
  line-height: 1.6;
  color: #3f3b3f
}

.tech-index {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(42px, 6vw, 80px);
  padding-top: var(--s6)
}

.tech-index-item {
  max-width: 500px
}

.tech-index-item h3 {
  margin-bottom: 12px
}

.tech-index-item p {
  color: var(--muted);
  font-size: 19px
}

.tech-index-item .eyebrow {
  margin-bottom: 10px
}

.command-rail {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(28px, 4vw, 56px);
  align-items: start
}

.command-item img {
  width: 100%;
  height: auto
}

.command-item h3 {
  margin: 24px 0 10px
}

.command-item p {
  color: var(--muted);
  font-size: 19px;
  margin-bottom: 0
}

.presence-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  align-items: stretch
}

.presence-card {
  min-width: 0;
  display: flex;
  flex-direction: column
}

.presence-card img {
  width: 100%;
  height: auto;
  margin-inline: auto
}

.presence-card-sit img {
  aspect-ratio: 4/5;
  object-fit: cover;
  object-position: center 46%
}

.presence-band {
  flex: 1;
  display: grid;
  align-content: center;
  background: #173428;
  color: #f2f4ef;
  padding: clamp(22px, 2.4vw, 34px)
}

.presence-band span {
  display: block;
  margin-bottom: 10px;
  color: #a9bcae;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .075em;
  text-transform: uppercase
}

.presence-band strong {
  display: block;
  max-width: 360px;
  font-size: clamp(24px, 2vw, 31px);
  line-height: 1.04;
  font-weight: 500
}

.presence-band p {
  max-width: 390px;
  margin: 12px 0 0;
  color: #d7e0d9;
  font-size: 17px;
  line-height: 1.4
}

.presence-band code {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .84em
}

.access-status {
  width: min(900px, calc(100% - 2*var(--gutter)));
  margin: 0 auto var(--s7);
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 34px;
  align-items: start
}

.access-status-label {
  font-size: 15px;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--accent-deep)
}

.access-status-value {
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1.1;
  font-weight: 500
}

.access-status-value small {
  display: block;
  margin-top: 12px;
  color: var(--muted);
  font-size: 18px;
  line-height: 1.45;
  font-weight: 400
}

.server-box {
  max-width: 760px;
  margin: var(--s6) auto 0;
  padding: 34px;
  background: var(--white);
  text-align: center
}

.server-address {
  font-size: clamp(34px, 5vw, 56px);
  font-weight: 500;
  letter-spacing: -.025em;
  word-break: break-word
}

.server-box button {
  margin-top: 20px
}

.steps {
  max-width: 760px;
  margin: 0 auto
}

.step {
  display: block;
  padding: 30px 0
}

.step h3 {
  font-size: clamp(30px, 3vw, 40px)
}

.steps-plain .step::before {
  content: none
}

.step h3 {
  margin-bottom: 10px
}

.step .copy {
  margin-bottom: 0
}

.search-box {
  max-width: 820px;
  margin: 0 auto var(--s6)
}

.search-box input {
  width: 100%;
  height: 66px;
  border: 0;
  background: var(--white);
  padding: 0 24px;
  font-size: 22px;
  font-weight: 400;
  outline: 2px solid transparent;
  outline-offset: 2px
}

.search-box input:focus {
  outline-color: var(--accent-deep)
}

.search-results {
  max-width: 900px;
  margin: 0 auto
}

.search-result {
  display: block;
  padding: 22px 0
}

.search-result h2 {
  font-size: 34px;
  margin-bottom: 8px
}

.search-result p {
  margin: 0;
  color: var(--muted)
}

.search-result:hover h2,
.search-result:focus-visible h2 {
  color: var(--accent-deep)
}

.search-suggestions {
  display: flex;
  justify-content: center;
  gap: 22px;
  flex-wrap: wrap;
  color: var(--muted);
  font-size: 16px;
  margin-top: -24px;
  margin-bottom: var(--s6)
}

.search-suggestions button {
  border: 0;
  background: transparent;
  padding: 0;
  color: inherit;
  cursor: pointer
}

.search-suggestions button:hover {
  color: var(--ink)
}

.site-footer {
  padding: 72px 0;
  background: var(--paper-deep)
}

.footer-inner {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 64px;
  align-items: end
}

.footer-signature {
  max-width: 430px
}

.footer-signature img {
  width: 28px;
  height: 28px;
  object-fit: contain
}

.admin-logout {
  border: 0;
  padding: 0;
  background: none;
  color: inherit;
  font: inherit;
  cursor: pointer
}

.footer-signature p {
  color: var(--muted);
  margin: 18px 0 0
}

.footer-nav {
  display: grid;
  grid-template-columns: repeat(2, auto);
  gap: 10px 32px;
  text-align: left;
  font-size: 16px
}

.site-footer a:hover,
.site-footer a:focus-visible {
  color: var(--accent-deep)
}

.admin-shell {
  max-width: 1040px;
  margin: 80px auto;
  padding: 0 var(--gutter)
}

.admin-card {
  background: var(--white);
  padding: 34px;
  margin-bottom: 28px
}

.admin-card label {
  display: block;
  font-size: 15px;
  font-weight: 500;
  margin: 20px 0 8px
}

.admin-card input,
.admin-card textarea,
.admin-card select {
  width: 100%;
  border: 0;
  padding: 13px 14px;
  background: var(--paper);
  outline: 2px solid transparent;
  outline-offset: 1px
}

.admin-card input:focus,
.admin-card textarea:focus,
.admin-card select:focus {
  outline-color: var(--accent-deep)
}

.admin-card textarea {
  min-height: 130px
}

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

.admin-nav {
  display: flex;
  gap: 22px;
  flex-wrap: wrap;
  margin-bottom: 28px
}

.admin-nav a {
  font-weight: 500
}

.notice {
  padding: 14px 16px;
  background: #f2e3e9;
  margin-bottom: 20px
}

.error {
  background: #f7dddd
}

.admin-title {
  font-size: 62px;
  text-align: left;
  margin-inline: 0
}

.admin-subtitle {
  font-size: 36px
}

.admin-subtitle.spaced {
  margin-top: 40px
}

.admin-actions {
  margin-top: 24px
}

.legal {
  width: min(800px, calc(100% - 2*var(--gutter)));
  margin: 0 auto;
  padding: var(--s7) 0 var(--s8)
}

.legal h1 {
  font-size: clamp(50px, 6vw, 82px);
  text-align: left;
  margin-inline: 0
}

.legal h2 {
  font-size: 34px;
  margin-top: 54px
}

.legal p,
.legal li {
  color: #514d51;
  font-size: 20px;
  line-height: 1.58
}

.legal ul {
  padding-left: 22px;
  margin: 22px 0 34px
}

.legal li {
  margin: 8px 0
}

.legal strong {
  color: var(--ink)
}

.legal code {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .82em
}

.legal-lead {
  font-size: clamp(23px, 2.4vw, 30px) !important;
  line-height: 1.4 !important;
  color: var(--ink) !important;
  max-width: 720px
}

.legal-update {
  margin: 28px 0 0;
  color: var(--quiet) !important;
  font-size: 15px !important
}

.legal-closing {
  margin-top: 64px !important;
  font-size: clamp(26px, 3vw, 36px) !important;
  line-height: 1.3 !important;
  color: var(--ink) !important
}

.page-spacer {
  height: 96px
}

.page-spacer-lg {
  height: 120px
}

.reveal {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .58s cubic-bezier(.2, .7, .2, 1), transform .58s cubic-bezier(.2, .7, .2, 1)
}

.reveal.is-visible {
  opacity: 1;
  transform: none
}

.button,
.detail-trigger,
.text-link,
.story-action,
.footer-nav a,
.desktop-nav a,
.mobile-nav a {
  transition: color .18s ease, background-color .18s ease, opacity .18s ease, transform .18s ease
}

.button:active {
  transform: translateY(1px)
}

.detail-trigger:hover .detail-plus,
.detail-trigger:focus-visible .detail-plus {
  transform: rotate(90deg)
}

.detail-plus {
  transition: transform .22s cubic-bezier(.2, .7, .2, 1)
}

.detail-dialog[open] .detail-card {
  animation: detail-in .24s cubic-bezier(.2, .7, .2, 1)
}

.detail-dialog[open]::backdrop {
  animation: backdrop-in .2s ease-out
}

@keyframes detail-in {
  from {
    opacity: 0;
    transform: translateY(12px) scale(.992)
  }

  to {
    opacity: 1;
    transform: none
  }
}

@keyframes backdrop-in {
  from {
    opacity: 0
  }

  to {
    opacity: 1
  }
}

@media(max-width:900px) {

  .moment-grid,
  .featured-news {
    grid-template-columns: 1fr
  }

  .moment-copy {
    justify-self: start;
    max-width: 700px
  }

  .moment-copy .cta-row {
    justify-content: flex-start
  }

  .tech-index {
    grid-template-columns: 1fr
  }
}

@media(max-width:820px) {
  body {
    font-size: 18px
  }

  .desktop-nav,
  .search-link {
    display: none
  }

  .header-inner {
    grid-template-columns: auto 1fr auto
  }

  .header-actions {
    gap: 14px
  }

  .page-nav-wrap {
    top: 68px
  }

  .page-nav {
    justify-content: flex-start;
    padding-inline: var(--gutter)
  }

  .intro {
    padding-top: 88px;
    padding-bottom: 58px
  }

  h1 {
    font-size: clamp(50px, 14vw, 70px)
  }

  .section {
    padding-block: 88px
  }

  .two-col,
  .home-duo,
  .command-rail {
    grid-template-columns: 1fr
  }

  .two-col>.copy-block:first-child,
  .two-col>.copy-block:last-child {
    justify-self: stretch;
    max-width: none
  }

  .home-hero-note {
    grid-template-columns: 1fr;
    margin-top: -64px
  }

  .article-row {
    grid-template-columns: 1fr;
    gap: 8px
  }

  .footer-inner {
    grid-template-columns: 1fr
  }

  .footer-nav {
    grid-template-columns: 1fr 1fr
  }

  .presence-row {
    grid-template-columns: 1fr
  }

  .article-body figure {
    width: calc(100vw - 2*var(--gutter))
  }

  .access-status {
    grid-template-columns: 1fr;
    gap: 10px
  }

  .admin-grid {
    grid-template-columns: 1fr
  }
}

@media(max-width:520px) {
  :root {
    --gutter: 20px
  }

  .header-actions .access-link {
    display: none
  }

  .footer-nav {
    grid-template-columns: 1fr
  }

  .cta-row {
    gap: 16px
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior: auto
  }

  .reveal {
    opacity: 1;
    transform: none
  }

  * {
    animation: none !important;
    transition: none !important
  }
}

.admin-logo-preview {
  display: flex;
  align-items: center;
  gap: 20px;
  margin: 18px 0 10px
}

.admin-logo-preview img {
  width: 64px;
  height: 64px;
  object-fit: contain
}

.admin-help {
  font-size: 15px;
  color: var(--muted);
  line-height: 1.45
}

.admin-inline-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 16px
}

/* V33 - living system */
.skip-link {
  position: fixed;
  left: 18px;
  top: 12px;
  z-index: 100;
  transform: translateY(-150%);
  background: var(--ink);
  color: var(--white);
  padding: 9px 13px;
  font-weight: 500
}

.skip-link:focus {
  transform: none
}

.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important
}

.history-tease {
  padding-block: var(--s8)
}

.history-tease-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(48px, 8vw, 110px);
  align-items: start
}

.history-tease-inner h2 {
  margin-bottom: 0
}

.history-tease-inner .copy {
  margin-bottom: 22px
}

.history-list {
  padding-bottom: var(--s7)
}

.history-entry {
  display: grid;
  grid-template-columns: 180px minmax(0, .85fr) minmax(0, 1.15fr);
  gap: clamp(32px, 5vw, 72px);
  align-items: start;
  padding: 54px 0
}

.history-date {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 15px
}

.history-date span {
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--accent-deep);
  font-weight: 500
}

.history-copy h2 {
  font-size: clamp(34px, 3.4vw, 50px);
  margin-bottom: 16px
}

.history-copy>p:not(.eyebrow) {
  color: var(--muted);
  font-size: 20px
}

.history-media img {
  width: 100%;
  height: auto
}

.news-archive-head {
  padding: 10px 0 26px
}

.news-archive-head p {
  margin: 0
}

.news-archive-head .eyebrow {
  color: var(--accent-deep)
}

.article-deck {
  width: min(720px, 100%);
  margin: 0 auto 18px;
  color: var(--muted);
  font-size: 22px;
  line-height: 1.45
}

.article-cover {
  margin-bottom: var(--s6)
}

.article-toc {
  width: min(940px, calc(100% - 2*var(--gutter)));
  margin: 0 auto var(--s5);
  padding: 32px 0 22px;
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: clamp(34px, 6vw, 76px);
  align-items: start
}

.article-toc-title {
  padding-top: 4px;
  font-size: 15px;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--accent-deep);
  font-weight: 500
}

.article-toc-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(28px, 5vw, 60px);
  row-gap: 10px
}

.article-toc-links a {
  display: block;
  font-size: 19px;
  line-height: 1.2;
  color: #393639
}

.article-toc-links a.level-3 {
  padding-left: 18px;
  color: var(--muted);
  font-size: 17px
}

.article-toc-links a:hover,
.article-toc-links a:focus-visible {
  color: var(--accent-deep)
}

.article-body h2,
.article-body h3 {
  scroll-margin-top: 140px
}

.article-body .article-figure {
  position: relative;
  left: 50%;
  width: min(980px, calc(100vw - 2*var(--gutter)));
  margin: 76px 0;
  transform: translateX(-50%);
  display: block
}

.article-figure-media {
  width: 100%;
  background: var(--paper-deep)
}

.article-body .article-figure img {
  display: block;
  width: 100%;
  height: auto
}

.article-body .article-figure figcaption {
  width: min(var(--measure), 100%);
  margin: 14px auto 0;
  text-align: left;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.4
}

.article-end {
  padding-bottom: var(--s8);
  padding-top: 12px
}

.article-neighbors {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(36px, 6vw, 84px);
  padding: 50px 0 56px
}

.article-neighbors a {
  display: grid;
  gap: 8px;
  align-content: start;
  max-width: 520px
}

.article-neighbors a:last-child {
  text-align: right;
  justify-self: end
}

.article-neighbors a:only-child {
  grid-column: 1/-1;
  text-align: left;
  justify-self: start
}

.article-neighbors span {
  color: var(--muted);
  font-size: 15px;
  text-transform: uppercase;
  letter-spacing: .07em
}

.article-neighbors strong {
  font-size: clamp(28px, 3vw, 38px);
  line-height: 1.05
}

.article-neighbors a:hover strong,
.article-neighbors a:focus-visible strong {
  color: var(--accent-deep)
}

.related {
  padding-top: 12px
}

.related-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 7vw, 90px)
}

.related-grid a>span {
  font-size: 15px;
  color: var(--accent-deep);
  text-transform: uppercase;
  letter-spacing: .07em;
  font-weight: 500
}

.related-grid h3 {
  margin: 12px 0
}

.related-grid p {
  color: var(--muted);
  font-size: 18px
}

.search-status {
  max-width: 900px;
  margin: -30px auto 18px;
  color: var(--muted);
  font-size: 15px;
  min-height: 22px
}

.search-result-meta {
  font-size: 14px;
  color: var(--accent-deep);
  text-transform: uppercase;
  letter-spacing: .07em;
  font-weight: 500;
  margin-bottom: 4px
}

.admin-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 32px;
  margin-bottom: 28px
}

.admin-heading .admin-title {
  margin-bottom: 0
}

.admin-state {
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--muted);
  font-size: 15px
}

.admin-state img {
  width: 46px;
  height: 46px;
  object-fit: contain
}

.admin-overview {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin-bottom: 28px
}

.admin-overview a {
  background: var(--white);
  padding: 22px;
  display: grid;
  gap: 4px
}

.admin-overview span,
.admin-overview small {
  font-size: 14px;
  color: var(--muted)
}

.admin-overview strong {
  font-size: 25px;
  line-height: 1.1
}

.admin-overview a:hover strong,
.admin-overview a:focus-visible strong {
  color: var(--accent-deep)
}

.admin-two {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px
}

.compact-grid {
  gap: 18px
}

.admin-lead {
  max-width: 700px;
  color: var(--muted);
  font-size: 21px;
  margin: -24px 0 34px
}

.admin-kicker {
  display: block;
  color: var(--accent-deep);
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: 13px;
  font-weight: 500;
  margin-bottom: 5px
}

.admin-list {
  display: grid
}

.admin-list-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 28px;
  align-items: center;
  padding: 20px 0
}

.admin-list-row>div:first-child {
  display: grid;
  gap: 5px
}

.admin-list-row strong {
  font-size: 23px
}

.admin-list-row small {
  color: var(--muted);
  font-size: 16px
}

.admin-editor {
  min-height: 380px !important
}

.admin-published-row {
  padding: 18px 0
}

.admin-published-row>strong {
  font-size: 22px
}

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

.media-admin-item {
  background: var(--white)
}

.media-admin-item>img {
  width: 100%;
  height: auto
}

.media-admin-item>div {
  padding: 22px;
  display: grid;
  gap: 8px
}

.media-admin-item span {
  font-size: 13px;
  color: var(--accent-deep);
  text-transform: uppercase;
  letter-spacing: .07em;
  font-weight: 500
}

.media-admin-item strong {
  font-size: 22px
}

.media-admin-item code {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  color: var(--muted);
  word-break: break-all
}

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

.admin-media-choice {
  border: 0;
  background: var(--paper);
  padding: 0;
  text-align: left;
  cursor: pointer;
  color: var(--ink)
}

.admin-media-choice img {
  width: 100%;
  aspect-ratio: 16/10;
  object-fit: cover
}

.admin-media-choice span {
  display: block;
  padding: 9px 10px;
  font-size: 14px;
  line-height: 1.15
}

.admin-media-choice:hover span,
.admin-media-choice:focus-visible span {
  color: var(--accent-deep)
}

@media(max-width:900px) {
  .history-entry {
    grid-template-columns: 140px 1fr
  }

  .history-media {
    grid-column: 2
  }

  .admin-overview {
    grid-template-columns: 1fr 1fr
  }

  .admin-media-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr))
  }
}

@media(max-width:820px) {

  .history-tease-inner,
  .related-grid {
    grid-template-columns: 1fr
  }

  .article-toc {
    grid-template-columns: 1fr;
    gap: 14px
  }

  .article-toc-links {
    grid-template-columns: 1fr
  }

  .article-toc-links a.level-3 {
    padding-left: 0
  }

  .article-neighbors {
    grid-template-columns: 1fr
  }

  .article-neighbors a:last-child {
    text-align: left;
    justify-self: start
  }

  .history-entry {
    grid-template-columns: 1fr
  }

  .history-media {
    grid-column: auto
  }

  .admin-heading {
    align-items: start;
    flex-direction: column
  }

  .admin-state {
    order: -1
  }

  .media-admin-grid {
    grid-template-columns: 1fr
  }
}

@media(max-width:560px) {

  .admin-overview,
  .admin-two {
    grid-template-columns: 1fr
  }

  .admin-list-row {
    grid-template-columns: 1fr
  }

  .article-deck {
    font-size: 20px
  }

  .admin-media-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }
}

/* V37 - presence: three columns end on the same baseline. */
@media(min-width:901px) {
  .presence-card {
    aspect-ratio: 5/8;
    overflow: hidden
  }

  .presence-card:not(.presence-card-sit) img {
    width: 100%;
    height: 100%;
    object-fit: cover
  }

  .presence-card-sit img {
    width: 100%;
    height: 72%;
    aspect-ratio: auto;
    object-fit: cover;
    object-position: center 46%
  }

  .presence-card-sit .presence-band {
    height: 28%;
    min-height: 0;
    flex: none;
    padding: clamp(18px, 1.8vw, 28px)
  }
}

.admin-section-title {
  margin: 64px 0 24px
}

.admin-section-title h2 {
  font-size: clamp(34px, 4vw, 58px);
  font-weight: 500;
  margin: 4px 0 10px
}

.admin-start a {
  min-height: 150px
}

.admin-details {
  margin-top: 24px;
  padding-top: 18px;
  border-top: 1px solid var(--line)
}

.admin-details summary {
  cursor: pointer;
  font-weight: 500
}

/* V38 - Admin is its own interface, separate from the public site chrome. */
.admin-body {
  background: var(--paper-deep);
  color: var(--ink);
  min-height: 100vh
}

.admin-topbar {
  position: sticky;
  top: 0;
  z-index: 80;
  background: var(--paper);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(22, 20, 19, .08)
}

.admin-topbar-inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 var(--gutter);
  min-height: 66px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 34px
}

.admin-brand {
  display: flex;
  align-items: center;
  gap: 11px;
  font-weight: 500;
  white-space: nowrap
}

.admin-brand img {
  width: 30px;
  height: 30px;
  object-fit: contain
}

.admin-primary-nav {
  display: flex;
  align-items: center;
  gap: 24px;
  min-width: 0
}

.admin-primary-nav a,
.admin-topbar-actions a {
  font-size: 16px;
  color: var(--muted);
  white-space: nowrap
}

.admin-primary-nav a[aria-current="page"],
.admin-primary-nav a:hover,
.admin-primary-nav a:focus-visible,
.admin-topbar-actions a:hover,
.admin-topbar-actions a:focus-visible {
  color: var(--ink)
}

.admin-topbar-actions {
  display: flex;
  align-items: center;
  gap: 18px
}

.admin-body .admin-shell {
  max-width: 1120px;
  margin: 0 auto;
  padding: 64px var(--gutter) 100px
}

.admin-body .admin-card {
  box-shadow: 0 1px 0 rgba(22, 20, 19, .035);
  padding: clamp(24px, 3.2vw, 38px);
  margin-bottom: 22px
}

.admin-body .admin-heading {
  align-items: center;
  margin-bottom: 30px
}

.admin-body .admin-heading .admin-lead {
  margin: 10px 0 0
}

.admin-body .admin-state {
  background: var(--white);
  padding: 12px 14px;
  min-width: 210px
}

.admin-body .admin-state img {
  width: 52px;
  height: 52px
}

.admin-body .admin-state div {
  display: grid;
  gap: 2px
}

.admin-body .admin-state span {
  font-size: 13px
}

.admin-body .admin-state strong {
  font-size: 17px;
  color: var(--ink);
  font-weight: 500
}

.admin-body .admin-overview {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 26px
}

.admin-body .admin-overview a {
  min-height: 118px;
  padding: 20px 22px;
  align-content: start
}

.admin-body .admin-overview strong {
  font-size: 27px
}

.admin-body .admin-overview small {
  font-size: 15px;
  line-height: 1.35
}

.admin-body .admin-card label {
  margin-top: 17px
}

.admin-body .admin-card input,
.admin-body .admin-card textarea,
.admin-body .admin-card select {
  font: inherit;
  color: inherit;
  border: 1px solid transparent;
  background: var(--paper);
  min-height: 46px
}

.admin-body .admin-card textarea {
  min-height: 120px;
  resize: vertical
}

.admin-body .admin-card input[type="file"] {
  padding: 10px;
  cursor: pointer
}

.admin-body .admin-form>.admin-actions {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  margin-top: 22px
}

.admin-body .admin-logo-preview {
  background: var(--paper);
  padding: 16px;
  margin: 18px 0 12px
}

.admin-body .admin-logo-preview img {
  width: 72px;
  height: 72px
}

.admin-body .admin-logo-preview div {
  display: grid;
  gap: 2px
}

.admin-body .admin-logo-preview small {
  color: var(--muted);
  font-size: 14px
}

.admin-identity-pane {
  min-width: 0
}

.admin-danger-row {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid rgba(22, 20, 19, .08)
}

.admin-danger-row form {
  margin: 0
}

.admin-page-card {
  scroll-margin-top: 92px
}

.admin-body .admin-section-title {
  margin-top: 72px
}

.admin-body .admin-section-title .admin-lead {
  margin: 6px 0 0
}

.admin-body .notice {
  margin-bottom: 22px
}

@media(max-width:900px) {
  .admin-topbar-inner {
    grid-template-columns: auto 1fr;
    gap: 18px
  }

  .admin-primary-nav {
    grid-column: 1/-1;
    order: 3;
    overflow-x: auto;
    padding-bottom: 11px;
    scrollbar-width: none
  }

  .admin-primary-nav::-webkit-scrollbar {
    display: none
  }

  .admin-topbar-actions {
    justify-self: end
  }

  .admin-body .admin-shell {
    padding-top: 42px
  }
}

@media(max-width:640px) {
  .admin-topbar-inner {
    padding-top: 9px;
    min-height: 58px
  }

  .admin-brand span {
    display: none
  }

  .admin-topbar-actions a:first-child {
    display: none
  }

  .admin-body .admin-overview {
    grid-template-columns: 1fr
  }

  .admin-body .admin-heading {
    align-items: flex-start
  }

  .admin-body .admin-state {
    width: 100%
  }

  .admin-body .admin-grid {
    grid-template-columns: 1fr
  }

  .admin-body .admin-card {
    padding: 22px 18px
  }
}



/* V54 - final editorial polish */
.news-publications {
  padding-bottom: var(--s8)
}

.featured-news {
  padding-top: 14px;
  padding-bottom: var(--s7);
  border-top: 1px solid rgba(17, 16, 18, .13)
}

.featured-news-copy h2 {
  font-size: clamp(42px, 4.6vw, 66px);
  line-height: .98;
  letter-spacing: -.024em
}

.news-archive-head {
  border-top: 1px solid rgba(17, 16, 18, .13);
  padding-top: 28px
}

.article-row {
  border-bottom: 1px solid rgba(17, 16, 18, .09)
}

.article-row:first-child {
  border-top: 0
}

.article-row .category {
  white-space: nowrap
}

.site-continuation {
  padding: clamp(86px, 10vw, 132px) 0;
  background: var(--paper-deep)
}

.site-continuation.white {
  background: var(--white)
}

.continuation-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(38px, 7vw, 90px);
  align-items: end
}

.continuation-inner .eyebrow {
  grid-column: 1/-1;
  margin-bottom: -12px
}

.continuation-inner h2 {
  max-width: 760px;
  margin: 0;
  font-size: clamp(42px, 4.6vw, 64px)
}

.continuation-links {
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-items: flex-start;
  padding-bottom: 5px
}

.continuation-links .text-link {
  font-size: 18px
}

.site-footer {
  border-top: 1px solid rgba(17, 16, 18, .06)
}

@media(max-width:820px) {
  .featured-news {
    padding-top: 0
  }

  .featured-news-copy {
    padding-top: 28px
  }

  .news-meta {
    flex-wrap: wrap
  }

  .continuation-inner {
    grid-template-columns: 1fr;
    gap: 28px
  }

  .continuation-inner .eyebrow {
    grid-column: auto;
    margin-bottom: -8px
  }

  .continuation-inner h2 {
    max-width: 11em
  }
}

@media(prefers-reduced-motion:reduce) {

  .detail-dialog[open] .detail-card,
  .detail-dialog[open]::backdrop {
    animation: none
  }
}

[hidden] {
  display: none !important
}

/* One shared notification layout, including Admin. No competing positioning rules. */
.copy-feedback {
  display: none;
  position: fixed;
  inset: auto 0 calc(16px + env(safe-area-inset-bottom));
  margin: 0 auto;
  inline-size: fit-content;
  max-inline-size: calc(100% - 32px - env(safe-area-inset-left) - env(safe-area-inset-right));
  max-block-size: 40dvh;
  overflow: auto;
  padding: 14px 20px;
  background: var(--ink);
  color: white;
  z-index: 200;
  font-size: 18px;
  line-height: 1.4;
  text-align: left;
  overflow-wrap: anywhere;
  box-shadow: 0 4px 18px #0003;
  pointer-events: auto
}

.copy-feedback.is-visible {
  display: block
}

[data-copy][data-copy-state=success] {
  background: #24533b;
  color: white;
  border-color: #24533b
}

[data-copy][data-copy-state=error] {
  border-color: var(--accent-deep)
}

[data-copy][aria-busy=true] {
  cursor: progress
}

.copy-buffer {
  position: fixed;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  opacity: 0;
  font-size: 16px;
  pointer-events: none
}

.server-address {
  user-select: all;
  -webkit-user-select: all;
  cursor: text
}

.public-site .server-box {
  border: 1px solid #31251c12;
  border-radius: 6px
}