.server-about-page .about-main { max-width: 1420px; }
.server-about-page .about-letter { max-width: 840px; margin-inline: auto; }
.server-progression {
  margin: 38px 0 20px;
  padding: 34px 28px 28px;
  border: 1px solid #bea26770;
  background: linear-gradient(140deg, #14222bee, #0d1722f5);
  box-shadow: 0 20px 60px #0004;
}
.server-progression > .about-eyebrow,
.server-progression h2 { text-align: center; }
.server-progression h2 {
  margin: 0 0 14px;
  color: #ecd5a5;
  font: 500 clamp(22px, 2.7vw, 28px)/1.4 var(--serif);
  text-wrap: balance;
}
.progression-intro {
  max-width: 65ch;
  margin: 0 auto 28px;
  color: #bac9cc;
  font-size: 14px;
  line-height: 1.85;
  text-align: center;
}
.progression-scroll-hint {
  display: none;
  margin: 0 0 16px;
  color: #ceb98f;
  font-size: 12px;
  line-height: 1.8;
  text-align: center;
}
.progression-scroll-hint span { margin-left: 5px; }
.timeline-viewport {
  overflow-x: auto;
  padding: 7px 4px 17px;
  scrollbar-width: thin;
  scrollbar-color: #c7aa72 #09131c;
  scroll-snap-type: x proximity;
  scroll-padding-inline: 4px;
}
.timeline-viewport:focus-visible { outline: 2px solid #f0d9a0; outline-offset: 5px; }
.timeline-viewport::-webkit-scrollbar { height: 7px; }
.timeline-viewport::-webkit-scrollbar-track { background: #09131c; }
.timeline-viewport::-webkit-scrollbar-thumb { background: #c7aa72; border-radius: 4px; }
.server-timeline {
  display: grid;
  grid-template-columns: repeat(7, minmax(158px, 1fr));
  gap: 16px;
  min-width: 1202px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.server-timeline > li {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 22px;
  min-width: 0;
  scroll-snap-align: start;
}
.server-timeline > li::before {
  content: '';
  position: absolute;
  top: 21px;
  left: 50%;
  width: calc(100% + 16px);
  height: 1px;
  background: #c7aa7280;
}
.server-timeline > li:last-child::before { display: none; }
.timeline-number {
  position: relative;
  display: grid;
  place-items: center;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  margin: 0 auto;
  border: 1px solid #c7aa7299;
  border-radius: 50%;
  background: #14222b;
  color: #f1d7a0;
  font: 500 14px/1 var(--serif);
  box-shadow: 0 0 0 5px #11202a;
}
.timeline-card {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-width: 0;
  padding: 20px 14px;
  border: 1px solid #bea26745;
  background: linear-gradient(120deg, #c7aa720a, #09131c80);
}
.timeline-stage {
  margin: 0 0 10px;
  color: #c6ad7c;
  font-size: 10px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 1.6px;
  text-transform: uppercase;
}
.timeline-card h3 {
  margin: 0 0 24px;
  color: #f1e5ca;
  font: 500 15px/1.7 var(--serif);
  overflow-wrap: normal;
  text-wrap: balance;
}
.timeline-details {
  display: grid;
  gap: 10px;
  margin: auto 0 0;
  font-size: 12px;
  line-height: 1.7;
}
.timeline-details > div { display: flex; flex-wrap: wrap; gap: 0 5px; }
.timeline-details dt { color: #b7c6ca; }
.timeline-details dd { margin: 0; color: #efd6a4; font-weight: 500; }
.progression-return { text-align: center; }
@media (max-width: 1350px) {
  .progression-scroll-hint { display: block; }
}
@media (max-width: 780px) {
  .server-progression { padding-inline: 20px; }
  .server-timeline { grid-template-columns: repeat(7, 220px); min-width: 1636px; }
  .timeline-card { padding: 22px 20px; }
  .timeline-card h3 { font-size: 18px; }
}
@media (max-width: 540px) {
  .server-progression { margin-top: 28px; padding: 28px 16px 18px; }
  .progression-intro { font-size: 13px; margin-bottom: 18px; }
  .progression-scroll-hint { font-size: 11px; }
}
