/* Personnel dossiers retain the existing accessible, pausable concept loop. */
.theme-military .nft-preview{
  --nft-gap:20px;
  --nft-card-width:280px;
  background:var(--barracks);
  color:var(--paper);
  border-top:0;
  min-width:0;
}
.theme-military .nft-preview .section-kicker,
.theme-military .nft-preview .nft-preview-heading h2,
.theme-military .nft-preview .nft-scroll-controls{color:var(--paper)}
.theme-military .nft-preview .nft-preview-heading{max-width:850px;margin-bottom:28px}
.theme-military .nft-preview .nft-preview-heading h2{
  font-family:var(--display);
  font-size:clamp(34px,4.1vw,52px);
  font-weight:400;
  line-height:1.1;
  letter-spacing:-.015em;
  max-width:22ch;
}
.theme-military .nft-preview .nft-preview-intro{
  max-width:64ch;
  margin-top:22px;
  color:var(--sand);
  font-size:18px;
  line-height:1.7;
}
.theme-military .nft-preview .nft-scroll-controls{
  font-family:var(--body);
  font-size:16px;
  font-weight:500;
  gap:16px;
  margin-bottom:20px;
}
.theme-military .nft-preview .nft-scroll-toggle{
  min-height:44px;
  padding:10px 16px;
  background:transparent;
  color:var(--paper);
  border:1px solid var(--teal);
  border-radius:2px;
  font-size:15px;
  box-shadow:none;
}
.theme-military .nft-preview .nft-scroll-toggle:hover,
.theme-military .nft-preview .nft-scroll-toggle[aria-pressed=true]{
  background:var(--teal);
  color:var(--barracks);
}
.theme-military .nft-preview .nft-preview-viewport{
  padding:4px 2px 20px;
  scrollbar-color:var(--teal) var(--barracks);
}
/* Both copies of the loop stretch to the tallest complete dossier. */
.theme-military .nft-preview .nft-preview-track,
.theme-military .nft-preview .nft-preview-grid{align-items:stretch}
.theme-military .nft-preview .nft-preview-card{
  display:flex;
  flex-direction:column;
  background:var(--paper);
  color:var(--barracks);
  border:1px solid color-mix(in srgb,var(--teal) 55%,var(--barracks));
  border-radius:2px;
  overflow:hidden;
}
.theme-military .nft-preview .nft-preview-open{
  flex:none;
  border:0;
  border-radius:0;
  background:var(--barracks);
  color:var(--paper);
  box-shadow:none;
}
.theme-military .nft-preview .nft-preview-art{aspect-ratio:1}
.theme-military .nft-preview .nft-preview-art>img{width:100%;height:100%;object-fit:contain}
.theme-military .nft-preview .nft-preview-action{
  background:var(--teal);
  color:var(--barracks);
  padding:12px 13px;
  font-family:var(--body);
  font-size:15px;
  font-weight:700;
  line-height:1.4;
  min-height:45px;
}
.theme-military .nft-preview .nft-preview-open:hover .nft-preview-action{
  background:var(--paper);
  color:var(--barracks);
}
/* Three reserved caption rows keep titles, metadata and item dividers aligned.
   Minimums fit two complete lines at the narrowest 235px card width; all rows
   can grow, so larger text never gets clipped or truncated. */
.theme-military .nft-preview .nft-preview-card figcaption{
  flex:1;
  display:grid;
  grid-template-rows:minmax(53px,auto) minmax(48px,auto) minmax(59px,auto);
  align-content:start;
  row-gap:10px;
  padding:16px 14px 18px;
}

.theme-military .nft-preview .nft-preview-card h3{
  grid-row:1;
  margin:0;
  font-family:var(--body);
  color:var(--barracks);
  font-size:22px;
  font-weight:600;
  line-height:1.2;
  letter-spacing:-.015em;
  overflow-wrap:break-word;
}
.theme-military .nft-preview .nft-preview-card figcaption p{
  font-family:var(--body);
  color:var(--barracks);
  font-size:16px;
  font-weight:400;
  line-height:1.5;
  margin:0;
}
.theme-military .nft-preview .nft-preview-card figcaption .personnel-meta{
  grid-row:2;
  color:var(--olive);
}
.theme-military .nft-preview .nft-preview-card figcaption .personnel-item{
  grid-row:3;
  border-top:1px solid var(--sand);
  padding-top:10px;
  margin:0;
}
.theme-military .nft-preview-dialog{
  background:var(--barracks);
  color:var(--paper);
  border:1px solid var(--teal);
  border-radius:2px;
  padding:18px;
}
.theme-military .nft-preview-dialog::backdrop{background:color-mix(in srgb,var(--barracks) 93%,transparent)}
.theme-military .nft-dialog-top{background:var(--barracks);border-bottom:1px solid var(--olive);margin-bottom:14px}
.theme-military .nft-dialog-top h3{
  color:var(--paper);
  font-family:var(--body);
  font-size:24px;
  font-weight:600;
  line-height:1.2;
  letter-spacing:-.015em;
}
.theme-military .nft-preview-dialog .nft-close,
.theme-military .nft-dialog-controls .button{
  min-height:44px;
  padding:10px 15px;
  background:var(--teal);
  color:var(--barracks);
  border:1px solid var(--teal);
  border-radius:2px;
  font-family:var(--body);
  font-size:15px;
  font-weight:600;
  box-shadow:none;
}
.theme-military .nft-dialog-art{background:var(--barracks)}
.theme-military .nft-dialog-art img{object-fit:contain}
.theme-military .nft-dialog-count{color:var(--sand);font-size:14px;line-height:1.5}
.theme-military .nft-preview .nft-preview-open:focus-visible,
.theme-military .nft-preview .nft-scroll-toggle:focus-visible,
.theme-military .nft-preview .nft-preview-viewport:focus-visible,
.theme-military .nft-preview-dialog button:focus-visible{outline:3px solid var(--teal);outline-offset:4px}
.theme-military .nft-preview .nft-preview-open:focus-visible{outline-offset:-4px}
@media(max-width:1100px){
  .theme-military .nft-preview{--nft-card-width:260px;--nft-gap:18px}
}
@media(max-width:600px){
  .theme-military .nft-preview{--nft-card-width:clamp(235px,74vw,280px);--nft-gap:15px}
  .theme-military .nft-preview .nft-preview-heading h2{font-size:34px}
  .theme-military .nft-preview .nft-scroll-controls{font-size:15px;gap:12px}
  .theme-military .nft-preview .nft-preview-card h3{font-size:21px}
  .theme-military .nft-preview-dialog{padding:12px}
  .theme-military .nft-dialog-top{gap:12px}
  .theme-military .nft-dialog-top h3{font-size:21px}
  .theme-military .nft-dialog-controls{gap:8px}
  .theme-military .nft-dialog-controls .button{font-size:14px;padding-inline:12px}
  .theme-military .nft-dialog-count{font-size:13px}
}
