.normandy-page {
  --dd-black: #0b0c09;
  --dd-panel: #171912;
  --dd-drab: #585c36;
  --dd-drab-hover: #626741;
  --dd-olive-text: #bac18c;
  --dd-light: #f7f5e9;
  --dd-muted: #cdcebe;
  --dd-line: #464932;
  --dd-hover: #262a19;
  --dd-display: Impact, 'Arial Narrow', 'Helvetica Neue', sans-serif;
  color-scheme: dark;
  color: var(--dd-light);
  background: var(--dd-black);
}
.normandy-page :is(a, button):focus-visible { outline-color: var(--dd-olive-text); }
.normandy-page .skip { top: 0; color: var(--dd-black); }
.normandy-page .skip:focus { top: 12px; }
.normandy-page .bottom { background: var(--dd-panel); border-color: var(--dd-line); }
.normandy .wrap { --frame: min(100% - 72px, 1250px); }
.normandy [id] { scroll-margin-top: 18px; }
.dd-kicker, .dd-code-index a {
  font: 700 .73rem/1.4 ui-monospace, Menlo, monospace;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.dd-kicker { margin: 0; color: var(--dd-olive-text); }
.dd-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: var(--dd-light);
  background: radial-gradient(ellipse at 79% 52%, #363a23, #191c12 38%, var(--dd-black) 72%);
  border-bottom: 4px solid var(--dd-drab);
}
.dd-hero::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 0;
  opacity: .27;
  background:
    repeating-radial-gradient(ellipse at 77% 64%, transparent 0 30px, #9da776 31px, transparent 32px 47px),
    repeating-linear-gradient(90deg, transparent 0 79px, #798453 80px, transparent 81px);
  mask-image: linear-gradient(100deg, transparent 24%, black);
}
.dd-hero-grid {
  min-height: min(610px, 57vw);
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  gap: clamp(16px, 4.5vw, 64px);
  align-items: center;
  position: relative;
}
.dd-hero-copy { z-index: 2; position: relative; padding: 66px 0 78px; }
.dd-hero .dd-kicker, .dd-workbench .dd-kicker { color: var(--dd-olive-text); }
.dd-hero .dd-kicker span { font-size: 1.1rem; margin-right: 5px; }
.dd-hero h1 {
  font: 900 clamp(3.6rem, 8.6vw, 7.8rem)/.86 var(--dd-display);
  letter-spacing: -.028em;
  margin: 20px 0 22px;
  white-space: nowrap;
}
.dd-hero h1 em { display: block; color: var(--dd-olive-text); font-style: normal; }
.dd-hero-copy > p:not(.dd-kicker) {
  max-width: 37ch;
  color: var(--dd-muted);
  font-size: clamp(1rem, 1.35vw, 1.16rem);
  line-height: 1.6;
  margin: 0;
}
.dd-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 24px; }
.dd-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 46px;
  border: 1px solid currentColor;
  padding: 10px 15px;
  font-weight: 800;
  font-size: .86rem;
  text-decoration: none;
  transition: background-color .18s, border-color .18s, color .18s;
}
.dd-primary { background: var(--dd-drab); border-color: var(--dd-olive-text); color: var(--dd-light); }
.dd-primary:hover { background: var(--dd-drab-hover); }
.dd-outline:hover { background: var(--dd-hover); }
.armory-guide-header { background: var(--dd-black); color: var(--dd-light); border-bottom: 1px solid var(--dd-line); }
.armory-guide-header .head-inner { min-height: 75px; }
.armory-guide-header .brand { background: #efecdb; padding: 4px 8px; }
.armory-guide-header .brand img { width: 204px; height: auto; }
.armory-guide-header .nav a:hover, .armory-guide-header .nav [aria-current=page] { color: var(--dd-olive-text); }
.dd-hero-copy .dd-hero-unit {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin-bottom: 12px;
  color: var(--dd-light);
  font-weight: 800;
}
.dd-hero-unit b, .dd-patrol-plate b {
  font: 700 .77rem/1.35 ui-monospace, Menlo, monospace;
  letter-spacing: .07em;
  color: var(--dd-olive-text);
}
.dd-patrol-art {
  display: grid;
  grid-template-columns: 1fr 1.15fr 1fr;
  align-items: center;
  gap: clamp(4px, 1.1vw, 14px);
  min-width: 0;
}
.dd-patrol-plate {
  position: relative;
  display: block;
  overflow: hidden;
  border: 1px solid var(--dd-line);
  background: var(--dd-panel);
  color: var(--dd-light);
  text-decoration: none;
  box-shadow: 0 12px 25px #0008;
}
.dd-patrol-plate:nth-child(2) { border-color: var(--dd-olive-text); transform: translateY(-12px); }
.dd-patrol-plate:hover { border-color: var(--dd-olive-text); }
.dd-patrol-plate img { width: 100%; height: auto; aspect-ratio: .61; object-fit: cover; object-position: center 58%; }
.dd-patrol-plate > span { display: block; padding: 9px 7px; background: var(--dd-black); font-size: .8rem; }
.dd-patrol-plate b { display: block; margin-bottom: 3px; }
.dd-jump { background: var(--dd-panel); border-bottom: 1px solid var(--dd-line); }
.dd-jump-inner { display: grid; grid-template-columns: repeat(6, auto); justify-content: space-between; }
.dd-jump a {
  display: flex;
  align-items: center;
  gap: 6px;
  min-height: 50px;
  padding: 7px;
  text-decoration: none;
  font-weight: 800;
  font-size: .83rem;
}
.dd-jump a:hover { color: var(--dd-olive-text); text-decoration: underline; }
.dd-jump a span { font: 700 .68rem ui-monospace, Menlo, monospace; color: var(--dd-olive-text); }
.dd-collection { padding: clamp(45px, 6vw, 84px) 0; }
.dd-section-head {
  display: grid;
  grid-template-columns: 1.25fr .75fr;
  align-items: end;
  gap: 20px;
  margin-bottom: 26px;
}
.dd-section-head h2 {
  font: 900 clamp(2.25rem, 5.25vw, 4.8rem)/.95 var(--dd-display);
  text-transform: uppercase;
  letter-spacing: -.01em;
  margin: 7px 0 0;
}
.dd-section-head > p, .dd-chapter-body > p:not(.dd-kicker) { margin: 0; line-height: 1.55; color: var(--dd-muted); max-width: 52ch; }
.dd-chapters { display: grid; gap: clamp(25px, 4vw, 52px); }
.dd-chapter { padding-top: clamp(16px, 2.5vw, 28px); border-top: 1px solid var(--dd-line); }
.dd-chapter-body { margin-bottom: 18px; }
.dd-chapter h3, .dd-archive h3, .dd-film h3, .dd-history h3 {
  font: 800 clamp(1.55rem, 3vw, 2.55rem)/1.02 'Helvetica Neue', Arial, sans-serif;
  letter-spacing: -.043em;
  margin: 7px 0 10px;
}
.dd-chapter-body > p:not(.dd-kicker) { max-width: 72ch; }
.dd-country + .dd-country { border-top: 1px solid var(--dd-line); margin-top: clamp(34px, 6vw, 76px); padding-top: clamp(33px, 5vw, 63px); }
.dd-objects {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(8px, 1.5vw, 19px);
  margin: 0;
  padding: 0;
  list-style: none;
}
.dd-objects-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dd-object {
  min-width: 0;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--dd-line);
  background: var(--dd-panel);
}
.dd-object:target { outline: 3px solid var(--dd-olive-text); outline-offset: 3px; }
.dd-object-image {
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 4/3;
  min-width: 0;
  background: radial-gradient(ellipse at 50% 65%, #4f4f3e, #24251d 77%);
}
.dd-objects-pair .dd-object-image { aspect-ratio: 1.85; }
.dd-object-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.dd-object-image > span {
  position: absolute;
  right: 8px;
  bottom: 8px;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  background: var(--dd-black);
  border: 1px solid var(--dd-line);
  color: var(--dd-olive-text);
}
.dd-object-image:hover > span { border-color: currentColor; }
.dd-object-label { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: clamp(10px, 1.5vw, 18px); }
.dd-object-label .dd-kicker span { color: var(--dd-muted); letter-spacing: 0; }
.dd-object h4 { font-size: clamp(.9rem, 1.55vw, 1.13rem); margin: 5px 0 9px; line-height: 1.2; }
.dd-object-label > a { margin-top: auto; padding-block: 6px; }
.dd-object-label > a, .dd-credit {
  color: var(--dd-olive-text);
  font-size: .82rem;
  text-underline-offset: 3px;
}
.dd-archive {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  align-items: center;
  background: var(--dd-panel);
  border: 1px solid var(--dd-line);
  margin-bottom: clamp(28px, 5vw, 64px);
}
.dd-archive-image { display: block; background: var(--dd-black); }
.dd-archive-image img { width: 100%; height: auto; max-height: 415px; object-fit: contain; }
.dd-archive figcaption { padding: clamp(18px, 4vw, 56px); }
.dd-archive figcaption > p:not(.dd-kicker) { color: var(--dd-muted); line-height: 1.55; }
.dd-history { padding: clamp(40px, 6vw, 84px) 0; background: var(--dd-panel); border-bottom: 1px solid var(--dd-line); }
.dd-map-grid, .dd-history-notes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(12px, 2vw, 22px); }
.dd-map { background: var(--dd-black); border: 1px solid var(--dd-line); min-width: 0; }
.dd-map-image { position: relative; display: grid; place-items: center; aspect-ratio: 1.63; padding: 9px; }
.dd-map img { position: absolute; inset: 9px; width: calc(100% - 18px); height: calc(100% - 18px); object-fit: contain; }
.dd-map figcaption { padding: 10px 15px 16px; }
.dd-map figcaption strong { display: block; margin-bottom: 5px; }
.dd-history-notes { grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 23px 0 18px; }
.dd-history-notes > div { border-left: 2px solid var(--dd-drab); padding-left: 12px; }
.dd-history-notes h3 { font-size: clamp(1.12rem, 2.2vw, 1.65rem); }
.dd-history-notes p:not(.dd-kicker) { color: var(--dd-muted); line-height: 1.5; margin: 0; }
.dd-workbench {
  color: var(--dd-light);
  background: var(--dd-panel);
  border-block: 1px solid var(--dd-line);
  padding: clamp(45px, 6vw, 82px) 0;
}
.dd-workbench .dd-section-head > p { color: var(--dd-muted); }
.dd-films { display: grid; grid-template-columns: 1fr 1fr; gap: 17px; }
.dd-film { border: 1px solid var(--dd-line); background: var(--dd-black); min-width: 0; }
.dd-film .watch-player { border: 0; }
.dd-film-body { padding: 17px 21px 22px; }
.dd-film h3 { font-size: clamp(1.35rem, 2.5vw, 2rem); margin-bottom: 10px; }
.dd-code-index { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.dd-code-index a { display: block; padding: 9px 12px; background: var(--dd-panel); color: var(--dd-olive-text); border: 1px solid var(--dd-line); text-decoration: none; }
.dd-code-index a:hover { background: var(--dd-hover); text-decoration: underline; }
.dd-image-credit { color: var(--dd-muted); margin: 18px 0 0; font-size: .8rem; }
.dd-code-section .dd-actions { margin-top: 23px; }
@media (max-width: 900px) {
  .normandy .wrap { --frame: calc(100% - 42px); }
  .dd-hero-copy { padding-block: 56px; }
  .dd-jump-inner { grid-template-columns: repeat(4, 1fr); }
  .dd-jump a { min-height: 43px; }
}
@media (max-width: 620px) {
  .normandy .wrap { --frame: calc(100% - 32px); }
  .dd-hero-grid, .dd-section-head, .dd-films, .dd-archive, .dd-map-grid, .dd-history-notes { grid-template-columns: 1fr; }
  .dd-hero-grid { gap: 14px; }
  .dd-hero-copy { padding: 32px 0 8px; }
  .dd-patrol-art { padding: 12px 0 25px; }
  .armory-guide-header .brand img { width: 175px; }
  .armory-guide-header .head-inner { min-height: auto; }
  .dd-hero h1 { font-size: clamp(3.2rem, 13.8vw, 6rem); margin: 16px 0; }
  .dd-jump-inner { grid-template-columns: repeat(2, 1fr); }
  .dd-jump a { min-height: 38px; padding-inline: 0; }
  .dd-section-head { gap: 10px; }
  .dd-objects { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dd-objects-pair .dd-object-image { aspect-ratio: 4/3; }
  .dd-map-image { aspect-ratio: auto; }
  .dd-map img { position: static; width: 100%; height: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .dd-button { transition: none; }
}

.dd-object-image, .dd-archive-image, .dd-map-image { width: 100%; border: 0; cursor: zoom-in; }
.dd-object-image, .dd-archive-image { padding: 0; }
.dd-map-image { background: var(--dd-black); }
.dd-object-note { color: var(--dd-muted); margin: 0; font-size: .86rem; line-height: 1.45; }
.dd-credit { overflow-wrap: anywhere; }
.dd-viewer {
  width: min(94vw, 1280px);
  max-height: 92dvh;
  padding: 0;
  color: var(--dd-light);
  background: var(--dd-panel);
  border: 1px solid var(--dd-line);
}
.dd-viewer::backdrop { background: #000d; }
.dd-viewer-bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 14px; }
.dd-viewer-bar h2 { margin: 0; font-size: clamp(.9rem, 2vw, 1.2rem); }
.dd-viewer-bar button { padding: 8px 10px; color: var(--dd-light); border: 1px solid var(--dd-line); background: var(--dd-drab); cursor: pointer; white-space: nowrap; }
.dd-viewer > img { width: 100%; max-height: calc(92dvh - 85px); object-fit: contain; background: var(--dd-black); }

.bulge-exhibit .dd-hero h1 { font-size: clamp(3.25rem, 7.7vw, 7rem); }
.bulge-hero-display {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)) minmax(0, .82fr);
  gap: clamp(6px, 1.25vw, 16px);
  align-items: center;
}
.bulge-hero-display .dd-patrol-plate { transform: none; }
.bulge-hero-display .dd-patrol-plate img { aspect-ratio: 1.1; object-fit: contain; background: #36372c; }
.bulge-hero-display .bulge-hero-bba112 {
  grid-column: 3;
  grid-row: 1;
  background: radial-gradient(ellipse at 52% 50%, #585d3e, var(--dd-black) 83%);
}
.bulge-hero-display .bulge-hero-bba112 img { aspect-ratio: .65; padding: 12px; background: transparent; }
.bulge-hero-display .bulge-hero-bba110 { grid-column: 2; grid-row: 1; border-color: var(--dd-olive-text); }
.bulge-video { display: grid; grid-template-columns: .8fr 1.2fr; gap: 28px; align-items: center; }
.bulge-video-followup { margin-top: clamp(26px, 4vw, 54px); padding-top: clamp(20px, 3vw, 40px); border-top: 1px solid var(--dd-line); }
.bulge-video h2 { font: 900 clamp(2rem, 4vw, 4rem)/.97 var(--dd-display); margin: 8px 0 12px; text-transform: uppercase; }
.bulge-video p:not(.dd-kicker) { color: var(--dd-muted); line-height: 1.55; }
@media (max-width: 620px) {
  .bulge-exhibit .dd-hero h1 { font-size: clamp(2.8rem, 12vw, 5rem); }
  .bulge-hero-display { padding: 0 0 24px; }
  .bulge-hero-display .bulge-hero-bba112 img { padding: 6px; }
  .bulge-video { grid-template-columns: 1fr; gap: 12px; }
}
