/* The insignia share a portrait format; their names remain readable outside the artwork. */
.grade-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  margin-top: 28px;
}

.grade-card {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1fr);
  align-items: center;
  gap: 26px;
  padding: 27px;
  border: 1px solid #c5b79a;
  outline: 1px solid #d9cdb5;
  outline-offset: -7px;
  background: #f8f1df80;
  color: var(--ink);
  transition: border-color .2s, background-color .2s;
}

.grade-card:hover {
  background: #fcf6e8;
  border-color: #96805a;
}

.grade-card:focus-visible {
  outline: 3px solid var(--rust);
  outline-offset: 4px;
}

.grade-art {
  display: grid;
  align-items: center;
  min-width: 0;
}

.grade-card .grade-art img {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 4;
  padding: 0;
  object-fit: contain;
  mix-blend-mode: multiply;
  transition: transform .25s;
}

.grade-card:hover .grade-art img { transform: scale(1.025); }
.grade-info { display: flex; flex-direction: column; min-width: 0; }

.grade-card .grade-order {
  font: 600 12px/1.5 var(--label);
  letter-spacing: .07em;
  color: #715937;
  min-height: 0;
}

.grade-name {
  display: block;
  font: 400 clamp(21px, 1.75vw, 25px)/1.45 var(--display);
  margin-top: 12px;
  overflow-wrap: anywhere;
}

.grade-distinction {
  display: block;
  margin-top: 16px;
  color: #65614e;
  font: 400 14px/1.85 Georgia, serif;
}

.grade-card .grade-action {
  padding-top: 17px;
  border-top: 1px solid #cdbfa3;
  margin-top: 23px;
  font: 600 14px/1.5 var(--label);
  letter-spacing: .025em;
}

.grade-card .grade-action > span { font-size: 23px; line-height: 1; }

#grade-dialog,
#hierarchy-dialog { width: min(1030px, calc(100% - 36px)); }

#grade-dialog .grade-dialog-content {
  grid-template-columns: minmax(220px, .85fr) minmax(0, 1.15fr);
  align-items: center;
  gap: 44px;
  padding: 38px 44px 44px;
}

.grade-portrait { margin: 0; min-width: 0; }
.grade-portrait img { display: block; width: 100%; height: auto; mix-blend-mode: multiply; }
.grade-portrait figcaption {
  margin-top: 20px;
  padding-top: 15px;
  border-top: 1px solid var(--line);
  color: #796647;
  text-align: center;
  font: 600 11px/1.65 var(--label);
  letter-spacing: .11em;
}

.grade-record { min-width: 0; }
#grade-dialog .grade-record .eyebrow { font-size: 12px; line-height: 1.6; margin-bottom: 13px; }
#grade-dialog .grade-record h2 { font-size: clamp(25px, 2.5vw, 33px); line-height: 1.4; margin-bottom: 23px; }
#grade-dialog .grade-record h3 { margin-top: 27px; font-size: 22px; line-height: 1.5; }
#grade-dialog .grade-record ul { padding-left: 19px; }
#grade-dialog .grade-record .grade-record-seal {
  color: #806442;
  border-top: 1px solid var(--line);
  margin-top: 25px;
  padding-top: 16px;
  font: 600 12px/1.7 var(--label);
  letter-spacing: .05em;
}

#hierarchy-dialog .supreme-entry {
  display: grid;
  grid-template-columns: minmax(180px, .72fr) minmax(0, 1.28fr);
  gap: 36px;
  padding: 28px 0;
  margin: 0;
  border-top: 1px solid var(--line);
}

#hierarchy-dialog .supreme-entry img {
  display: block;
  width: 100%;
  max-width: 245px;
  height: auto;
  margin: auto;
  aspect-ratio: 3 / 4;
  object-fit: contain;
}

#hierarchy-dialog .supreme-entry .eyebrow,
#hierarchy-dialog .supreme-records .eyebrow { font-size: 12px; line-height: 1.5; margin: 0 0 12px; }
#hierarchy-dialog .supreme-entry h3,
#hierarchy-dialog .supreme-records h3 { margin-top: 0; font-size: 25px; line-height: 1.5; }
.supreme-records { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 35px; border-top: 1px solid var(--line); padding: 32px 0; }
#hierarchy-dialog .supreme-records h3 { font-size: 21px; }
#hierarchy-dialog .supreme-entry-berlousko { padding-bottom: 0; }
#hierarchy-dialog .supreme-motto { color: var(--rust); font-style: italic; margin-top: 17px; }

@media (max-width: 1150px) {
  .grade-card { padding: 23px; gap: 20px; }
  .grade-name { font-size: 21px; }
}

@media (max-width: 960px) {
  .grade-card { grid-template-columns: 1fr; gap: 23px; align-items: start; }
  .grade-card .grade-art img { height: 310px; width: 100%; aspect-ratio: auto; }
  .grade-name { font-size: 24px; min-height: 70px; }
  .grade-info { height: 100%; }
  .grade-distinction { margin-bottom: 22px; }
  .grade-card .grade-action { margin-top: auto; }
  #grade-dialog .grade-dialog-content { padding: 32px; gap: 30px; grid-template-columns: minmax(180px, .75fr) minmax(0, 1.25fr); }
  #hierarchy-dialog .dialog-content { padding: 32px; }
  #hierarchy-dialog .supreme-entry { grid-template-columns: 190px minmax(0, 1fr); gap: 25px; }
}

@media (max-width: 640px) {
  .grade-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .grade-card { padding: 28px; gap: 24px; }
  .grade-card .grade-art img { height: 330px; }
  .grade-name { min-height: 0; font-size: 26px; margin-top: 10px; }
  .grade-card .grade-order { font-size: 12px; }
  .grade-distinction { font-size: 15px; margin-top: 12px; }
  .grade-card .grade-action { font-size: 15px; }
  #grade-dialog .grade-dialog-content { grid-template-columns: 1fr; gap: 28px; padding: 26px 24px 32px; }
  .grade-portrait { width: min(250px, 100%); margin: 0 auto; }
  .grade-portrait figcaption { margin-top: 15px; font-size: 10px; }
  #grade-dialog .grade-record h2 { font-size: 28px; }
  #grade-dialog .grade-record h3 { font-size: 21px; }
  #hierarchy-dialog .dialog-content { padding: 28px 24px; }
  #hierarchy-dialog .supreme-entry { grid-template-columns: 1fr; gap: 23px; padding: 29px 0; }
  #hierarchy-dialog .supreme-entry img { max-width: 235px; }
  #hierarchy-dialog .supreme-entry h3 { font-size: 24px; }
  .supreme-records { grid-template-columns: 1fr; gap: 30px; }
  #hierarchy-dialog .supreme-entry-berlousko { padding-bottom: 0; }
}

@media (max-width: 360px) {
  .grade-card { padding: 23px; }
  .grade-card .grade-art img { height: 285px; }
  .grade-name { font-size: 23px; }
  #grade-dialog .grade-dialog-content,
  #hierarchy-dialog .dialog-content { padding-left: 20px; padding-right: 20px; }
  #grade-dialog .grade-record h2 { font-size: 25px; }
}

@media (prefers-reduced-motion: reduce) {
  .grade-card,
  .grade-card .grade-art img { transition: none; }
  .grade-card:hover .grade-art img { transform: none; }
}
