/* Mobile refinements injected at serve time. The import script does not copy this folder. */

html.ml-pending.ml-loading-active body > :not([data-memorial-loader]) {
  visibility: visible;
}

/* A return visit plays the same plaque procession, compressed into about two seconds. */
html[data-memorial-return="1"] .ml-ribbon-strip { animation-duration: 6.67s; }
html[data-memorial-return="1"] .ml-progress span { animation-duration: 0.8s; }
@media (prefers-reduced-motion: reduce) {
  html[data-memorial-return="1"] .ml-ribbon-strip,
  html[data-memorial-return="1"] .ml-progress span { animation: none; }
}

.portrait-word { display: inline-block; white-space: nowrap; }

/* Clerk card: stay inside the account column at 320–1024. */
.memorial-account,
.mn-account-layout,
.mn-account-intro,
.mn-account-content { min-width: 0; max-width: 100%; }
.mn-clerk-host,
.mn-clerk-host .cl-rootBox { width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box; }
.mn-clerk-host .cl-cardBox,
.mn-clerk-host .cl-card {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  margin-inline: auto !important;
}
.mn-clerk-host .cl-formFieldInput,
#identifier-field { font-size: 16px !important; min-height: 44px !important; box-sizing: border-box; }
/* The signed-out card is mounted in the form column, which has to be allowed to shrink. */
#memorial-account .mn-account-layout,
#memorial-account .mn-account-content,
#memorial-account .mn-account-form { width: 100%; max-width: 100%; min-width: 0; }
#memorial-account :is(.cl-rootBox, .cl-cardBox, .cl-card) {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

@media (pointer: coarse), (max-width: 1024px) {
  .support-form input,
  .support-form select,
  .support-form textarea,
  #dedication-sort,
  #name-search,
  .memorial-navigation input,
  .mn-search input { font-size: 16px !important; }
}

/* Phone header: keep every control, drop two labels so the wordmark has room. */
@media (max-width: 480px) {
  .site-header.memorial-header,
  body[data-page="scroll"] .site-header.memorial-header {
    top: 10px;
    gap: 0;
    width: calc(100% - 16px);
    max-width: calc(100% - 16px);
    padding-inline: 0;
    overflow: clip;
    overflow-clip-margin: 4px;
    grid-template-columns: minmax(0, 1fr) clamp(96px, 30vw, 160px) minmax(0, 1fr);
  }
  .header-controls { column-gap: 0; min-width: 0; }
  .header-divider { width: 1px; height: 16px; margin: 0 4px; flex: none; }
  .site-header .wordmark,
  .site-header .logo-window {
    width: clamp(96px, 30vw, 160px);
    max-width: 100%;
  }
  .site-header .logo-window > img { max-width: none; }
  .memorial-header :is(#memorial-account-toggle, .header-contribute, .header-model-link, #memorial-menu-toggle) {
    position: relative;
    flex: 0 0 auto;
    width: auto;
    min-width: 44px;
    max-width: 100%;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 !important;
  }
  .memorial-header .header-model-link > span,
  #memorial-menu-toggle > .header-motion-label {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }
  .header-account-control > span,
  .header-contribute > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}

/* Hit area only. Existing tooltips keep their own ::after. */
#section-navigation button[data-target] { position: relative; }
#section-navigation button[data-target]::after {
  content: "";
  position: absolute;
  inset: -8px -4px;
}
.footer-policies button,
button[data-policy-open] { padding-block: 12px; margin-block: -12px; }
.community-card-eye::after { content: ""; position: absolute; inset: -5px; }
.chapter-copy > a { padding-block: 9px; margin-block: -9px; }
.footer-links a,
.footer-links button { min-height: 44px; }
#dedications .plaque-unsolved-corner,
#plaque-lightbox .plaque-unsolved-corner {
  width: 44px;
  height: 44px;
  right: -6px;
  bottom: -6px;
}
@media (max-width: 1024px) {
  #dedications .plaque-unsolved-corner,
  #plaque-lightbox .plaque-unsolved-corner {
    width: 16px;
    height: 16px;
    min-width: 0;
    min-height: 0;
    right: 4px;
    bottom: 4px;
  }
}

/* Year links on the paper background, including the selected year. */
#gatherings .event-gallery-year:not([aria-pressed="true"]),
#gatherings .event-gallery-year[aria-pressed="true"] {
  color: #7a5a2c;
  text-decoration-color: #7a5a2c;
}
.footer-makers { min-height: 24px; padding-block: 4px; }

#news-events .community-kicker { font-size: max(12px, 0.72rem); }
body[data-page="scroll"] .chapter-copy > .eyebrow,
.memorial-resources-heading .eyebrow { font-size: max(12px, 0.73rem); }
.memorial-resources small { font-size: max(12px, 0.75rem); }
.interactive-copy > .interactive-caption { font-size: max(12px, 0.74rem) !important; }
#explore-freely .reconstruction-film-footer,
#explore-freely .reconstruction-film-footer > span,
#remember-your-way .plaque-reel figcaption { font-size: max(12px, 0.66rem); }
#dedications .dedication-label,
#plaque-lightbox .lightbox-dedication .dedication-label { font-size: max(12px, 0.65rem); }
.footer-policies button,
.footer-policies a { font-size: max(12px, 0.72rem); }

/* Phone finder: the glass and Keep scrolling pill are one wrapper. */
@media (max-width: 1024px) {
  #section-navigation {
    bottom: calc(10px + env(safe-area-inset-bottom, 0px) + var(--phone-vv-inset, 0px));
    width: min(600px, calc(100vw - 24px));
    transition: none;
  }
  #section-navigation.is-scroll-hidden { opacity: 1; }
  #section-navigation .finder-chip {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: auto;
    min-height: 0;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    order: 2;
    overflow: visible;
    pointer-events: none;
  }
  #section-navigation.is-away .finder-chip,
  #section-navigation.is-scroll-hidden .finder-chip,
  #section-navigation.is-away .scroll-cue,
  #section-navigation.is-away .phone-cue-unit .scroll-cue {
    transform: none;
    transition: none;
  }
  #section-navigation .section-rail-label,
  #section-navigation .section-rail-window { display: none; }
  #section-navigation .phone-cue-unit {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    order: 3;
    pointer-events: none;
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.42s cubic-bezier(.22, .7, .2, 1), transform 0.42s cubic-bezier(.22, .7, .2, 1);
  }
  #section-navigation .phone-cue-unit.is-away {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.2s cubic-bezier(.32, .72, 0, 1), transform 0.2s cubic-bezier(.32, .72, 0, 1);
  }
  #section-navigation .phone-cue-unit .scroll-cue[hidden] { display: flex !important; }
  #section-navigation .finder-glass {
    position: relative;
    top: auto;
    left: auto;
    z-index: 3;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    margin: 0;
    padding: 0;
    transform: none;
    pointer-events: auto;
  }
  #section-navigation .phone-cue-unit.is-away .finder-glass { pointer-events: none; }
  #section-navigation .finder-glass::before {
    inset: 2px;
    border: 1px solid var(--finder-gold);
    border-radius: 50%;
    background: var(--finder-bg-solid);
  }
  #section-navigation .finder-glass::after { display: none; }
  #section-navigation .finder-glass svg { width: 16px; height: 16px; margin: 0; }
  #section-navigation .finder-glass:active { transform: none; }
  #section-navigation .phone-cue-unit .finder-glass {
    width: 40px;
    height: 40px;
    min-width: 40px;
    min-height: 40px;
    margin: 0 0 -12px;
    z-index: 1;
  }
  #section-navigation .phone-cue-unit .finder-glass::before { inset: 0; }
  #section-navigation .phone-cue-unit .scroll-cue {
    position: relative;
    margin: 0;
    z-index: 2;
    background: var(--finder-bg-solid);
    background-color: #0d0f12;
  }
}
@media (max-width: 1024px) and (prefers-reduced-motion: reduce) {
  #section-navigation,
  #section-navigation .phone-cue-unit,
  #section-navigation.is-scroll-hidden { transition: none; }
  html:not(.phone-stage-lock) { scroll-snap-type: y mandatory; }
  body[data-page="scroll"]:not(.phone-stage) #journey .chapter:not(.cover-section) {
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }
  body[data-page="scroll"]:not(.phone-stage) #dedications {
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }
}

/* Closing band: one oversized line, clipped a little at both screen edges. */
@media (max-width: 1024px) {
  .memorial-footer,
  .memorial-footer-panel { overflow-x: clip; }
  .memorial-footer-panel { padding-bottom: 20px !important; }
  body[data-page="scroll"] .memorial-footer {
    padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px));
  }
  .footer-remembrance {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
    margin: 16px 0 0 !important;
    padding: 0 20px !important;
    white-space: nowrap !important;
    font-size: clamp(13px, 4.6vw, 28px);
  }
  .footer-policies {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
    justify-items: stretch;
    gap: 0 16px;
    width: 100%;
  }
  .footer-policies > span { display: none; }
  .footer-policies button,
  .footer-policies a {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-height: 44px;
    margin: 0;
    padding: 0;
    text-align: left;
  }
  .guide-questions,
  .guide-questions:has(.guide-column) {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
    width: 100%;
  }
  .guide-questions details {
    width: 100%;
    max-width: none;
    align-self: stretch;
    box-sizing: border-box;
  }
  .guide-questions summary { width: 100%; box-sizing: border-box; }
}
@media (max-width: 430px) {
  .footer-remembrance-part {
    display: inline-flex;
    align-items: center;
    gap: 0.24em;
    white-space: nowrap;
    flex: none;
  }
  .footer-home {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    max-width: 100%;
    row-gap: 0.35em;
    line-height: 1.45;
  }
  .footer-home > a:first-child { white-space: nowrap; }
  .footer-makers {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    max-width: 100%;
    gap: 0.35em;
    line-height: 1.45;
    white-space: normal;
  }
  .footer-credit-name,
  .footer-credit-part { white-space: nowrap; }
}

/* phone-scroll-story: full-screen film with a calm reading panel on phones and tablets. */
@media (max-width: 1024px) {
  body[data-page="scroll"] #journey {
    overflow-x: clip;
    max-width: 100%;
  }
  body[data-page="scroll"]:not(.motion-off) #journey .visual-sticky {
    height: 100svh;
  }
  body[data-page="scroll"]:not(.motion-off) #journey .chapter:not(.cover-section, .billboard) {
    min-height: var(--chapter-span, 150svh);
  }
  body[data-page="scroll"] #journey .chapters > .chapter:not(.cover-section, .billboard) .chapter-copy,
  body[data-page="scroll"] #journey .chapters > .chapter:nth-child(even of .chapter[data-time-start]) .chapter-copy {
    --ink: #f6f3ee;
    --muted: #e4dfd6;
    --gold: #e0c48a;
    --story-link-hover: #f0cd99;
    --phone-finder-clear: calc(112px + env(safe-area-inset-bottom, 0px));
    width: min(34rem, calc(100vw - 1.25rem - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px)));
    max-width: calc(100vw - 1.25rem - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px));
    max-height: none;
    box-sizing: border-box;
    padding: 1.15rem 1.15rem 1.2rem;
    overflow: visible;
    overscroll-behavior: auto;
    touch-action: pan-y;
    color: #f6f3ee;
    background: rgba(15, 17, 20, 0.88);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    border: 1px solid rgba(185, 138, 74, 0.45);
    border-radius: 24px;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.28);
    text-shadow: none;
    translate: none;
    transform: none;
    opacity: 1 !important;
    pointer-events: auto !important;
    transition: none;
  }
  body[data-page="scroll"]:not(.motion-off) #journey .chapter:not(.cover-section, .billboard) .chapter-copy > *,
  body[data-page="scroll"]:not(.motion-off):not(.motion-paused):not(.motion-failed) #welcome .chapter-copy > * {
    opacity: 1 !important;
    transform: none;
  }
  body[data-page="scroll"]:not(.motion-off) #journey .chapters > .chapter:not(.cover-section, .billboard):not([data-copy-tall="true"]) .chapter-copy {
    top: max(calc(var(--header) + 12px), calc(100svh - var(--copy-height, 320px) - var(--phone-finder-clear, 132px)));
  }
  body[data-page="scroll"]:not(.motion-off) #journey .chapters > .chapter[data-copy-tall="true"]:not(.cover-section, .billboard) .chapter-copy {
    top: calc(100svh - var(--copy-height, 320px) - var(--phone-finder-clear, 132px));
  }
  body[data-page="scroll"] #journey .chapter:not(.cover-section, .billboard) .chapter-copy > :is(h1, h2, h3),
  body[data-page="scroll"] #journey .chapter:not(.cover-section, .billboard) .chapter-copy > p:not(.eyebrow) {
    color: #f4efe6;
  }
  body[data-page="scroll"] #journey .chapter:not(.cover-section, .billboard) .chapter-copy > p:not(.eyebrow),
  body[data-page="scroll"] #journey .chapter:not(.cover-section, .billboard) .chapter-copy blockquote p,
  body[data-page="scroll"] #journey .chapter:not(.cover-section, .billboard) .dedication-transcript div {
    font-size: max(16px, 1rem);
    line-height: 1.6;
  }
  body[data-page="scroll"] #journey .chapter:not(.cover-section, .billboard) .chapter-copy > .eyebrow {
    color: #b98a4a;
  }
  body[data-page="scroll"] #journey .chapter:not(.cover-section, .billboard) .chapter-copy > p:not(.eyebrow):not(.dedication-credit),
  body[data-page="scroll"] #journey .chapter:not(.cover-section, .billboard) .dedication-transcript > div {
    border-left-color: #c9a56a;
  }
  body[data-page="scroll"]:not(.motion-off) #journey .chapter:not(.cover-section, .billboard) .chapter-copy:focus-within,
  body[data-page="scroll"] #journey .chapter:not(.cover-section, .billboard) .chapter-copy:hover {
    background: rgba(15, 17, 20, 0.88);
    translate: none;
  }
  body[data-page="scroll"].motion-off #journey .visual-sticky {
    height: 100svh;
    margin: 0;
  }
  body[data-page="scroll"].motion-off #journey .journey-poster,
  body[data-page="scroll"].motion-off #journey #journey-video {
    object-fit: cover;
  }
  body[data-page="scroll"].motion-off #journey .chapters > .chapter:not(.cover-section, .billboard) .chapter-copy {
    position: relative;
    transform: none;
    transition: none;
  }
}

@media (max-width: 700px) {
  body[data-page="scroll"]:not(.motion-off) #journey .chapters > .chapter:not(.cover-section, .billboard) .chapter-copy {
    margin-inline: auto;
  }
}

@media (min-width: 768px) and (max-width: 1024px) and (min-height: 521px) and (prefers-reduced-transparency: no-preference) {
  body[data-page="scroll"] #journey .chapters > .chapter:not(.cover-section, .billboard) .chapter-copy,
  body[data-page="scroll"] #journey .chapters > .chapter:nth-child(even of .chapter[data-time-start]) .chapter-copy {
    background: rgba(15, 17, 20, 0.82);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
  }
}

@media (max-width: 1024px) and (max-height: 520px) {
  body[data-page="scroll"]:not(.motion-off) #journey .chapter:not(.cover-section, .billboard) {
    min-height: 100svh;
  }
  body[data-page="scroll"]:not(.motion-off) #together .finale-copy-track,
  body[data-page="scroll"]:not(.motion-off):not(.motion-failed) #together .finale-copy-track {
    position: absolute;
    top: 0;
    height: auto;
    min-height: 0;
    margin: 0;
    visibility: visible;
  }
  body[data-page="scroll"]:not(.motion-off) #journey .chapters > .chapter:not(.cover-section, .billboard):not([data-copy-tall="true"]) .chapter-copy,
  body[data-page="scroll"]:not(.motion-off) #journey .chapters > .chapter[data-copy-tall="true"]:not(.cover-section, .billboard) .chapter-copy,
  body[data-page="scroll"]:not(.motion-off) #journey .chapters > .chapter:nth-child(even of .chapter[data-time-start]) .chapter-copy {
    --phone-finder-clear: calc(16px + env(safe-area-inset-bottom, 0px));
    top: calc(var(--header) + 4px);
    width: min(34rem, 68vw);
    max-height: none;
    margin-left: max(0.45rem, env(safe-area-inset-left, 0px));
    margin-right: auto;
    padding: 0.28rem 0.55rem 0.32rem;
    overflow: visible;
    background: rgba(15, 17, 20, 0.88);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  body[data-page="scroll"] #journey .chapter:not(.cover-section, .billboard) .chapter-copy > :is(h1, h2, h3) {
    font-size: clamp(0.92rem, 3.3vh, 1.12rem);
    line-height: 1.08;
    margin: 0;
  }
  body[data-page="scroll"] #journey .chapter:not(.cover-section, .billboard) .chapter-copy > .eyebrow {
    margin-bottom: 0.08rem;
    font-size: clamp(9px, 2vh, 11px);
  }
  body[data-page="scroll"] #journey .chapter:not(.cover-section, .billboard) .chapter-copy > p:not(.eyebrow),
  body[data-page="scroll"] #journey .chapter:not(.cover-section, .billboard) .chapter-copy blockquote p,
  body[data-page="scroll"] #journey .chapter:not(.cover-section, .billboard) .dedication-transcript div {
    margin-top: 0.22rem;
    font-size: clamp(11px, 2.35vh, 13px);
    line-height: 1.25;
  }
  body[data-page="scroll"] #journey .chapter:not(.cover-section, .billboard) .chapter-copy > a {
    margin-top: 0.2rem;
  }
}

@media (max-width: 1024px) and (prefers-reduced-motion: reduce) {
  body[data-page="scroll"] #journey .chapter:not(.cover-section, .billboard) .chapter-copy {
    transform: none;
    transition: none;
  }
}

/* Freeze the page for the timed finale without pinning against iOS momentum. */
html.phone-finale-lock,
html.phone-finale-lock body,
html.phone-stage-lock,
html.phone-stage-lock body {
  overflow: hidden !important;
  touch-action: none !important;
  overscroll-behavior: none !important;
  scroll-snap-type: none !important;
}

/* Locked story: one centered card in front of the film. Paper lets the page scroll. */
@media (max-width: 1024px) {
  body.phone-stage[data-page="scroll"] #journey .chapters > .chapter:not(.cover-section, #billboard) .chapter-copy {
    position: fixed !important;
    top: 50% !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 8 !important;
    width: min(34rem, calc(100vw - 1.5rem - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px))) !important;
    max-width: calc(100vw - 1.5rem - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px)) !important;
    max-height: none !important;
    margin-inline: auto !important;
    overflow: visible !important;
    overscroll-behavior: auto !important;
    background: #101318f5 !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(-50%) !important;
  }
  body.phone-stage[data-page="scroll"] #journey .chapters > .chapter:not(.cover-section, #billboard) .chapter-copy.phone-card-on {
    visibility: visible !important;
    pointer-events: auto !important;
  }
  body.phone-stage:not(.phone-opening) #billboard .chapter-copy {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
  body.phone-stage.phone-opening #billboard .chapter-copy {
    position: fixed !important;
    top: calc(var(--header, 88px) + 14px) !important;
    left: max(16px, env(safe-area-inset-left, 0px)) !important;
    right: auto !important;
    width: min(32rem, calc(100vw - 76px)) !important;
    max-width: calc(100vw - 76px) !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    text-align: left !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    z-index: 8 !important;
    overflow: visible !important;
  }
  body.phone-stage .journey-interlude.phone-cover {
    position: fixed !important;
    inset: 0 !important;
    z-index: 12 !important;
    width: auto !important;
    max-width: none !important;
    height: 100% !important;
    max-height: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    overflow: auto !important;
    overscroll-behavior: contain;
    background: #eae7e1 !important;
    box-shadow: none !important;
    padding: calc(var(--header, 88px) + 16px) 18px calc(132px + env(safe-area-inset-bottom, 0px)) !important;
    will-change: transform;
  }
  body.phone-switching .journey-interlude.phone-cover {
    overflow: hidden !important;
    touch-action: none !important;
    overscroll-behavior: none !important;
  }
  html.phone-stage-lock.phone-paper-scroll,
  html.phone-stage-lock.phone-paper-scroll body {
    touch-action: pan-y !important;
  }
  body.phone-stage[data-page="scroll"] #journey .chapter-copy.phone-card-tight {
    padding: 0.65rem 0.8rem 0.7rem !important;
    overflow: visible !important;
  }
  body.phone-stage[data-page="scroll"] #journey .chapter-copy.phone-card-tight > :is(h1, h2, h3) {
    font-size: 1.12rem !important;
    line-height: 1.12 !important;
  }
  body.phone-stage[data-page="scroll"] #journey .chapter-copy.phone-card-tight > p,
  body.phone-stage[data-page="scroll"] #journey .chapter-copy.phone-card-tight blockquote p {
    font-size: 13px !important;
    line-height: 1.35 !important;
    margin-top: 0.35rem !important;
  }
  body.phone-paper .visual-sticky {
    visibility: visible !important;
  }
  body.phone-paper[data-page="scroll"] #journey .chapters > .chapter:not(.cover-section) .chapter-copy,
  body.phone-tail[data-page="scroll"] #journey .chapters > .chapter:not(.cover-section) .chapter-copy {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}

/* Captions that live on the film, not in a reading panel, stay off the phone story. */
@media (max-width: 1024px) {
  body[data-page="scroll"] #portrait-message,
  body[data-page="scroll"] #video-fallback,
  body[data-page="scroll"] .portrait-controls,
  body[data-page="scroll"] .reconstruction-notice,
  body[data-page="scroll"]:not(.motion-off) #journey .finale-still {
    display: none !important;
  }
  html[data-phone-copy] body[data-page="scroll"] #journey .chapters > .chapter:not(.cover-section):not(.phone-copy-current) .chapter-copy {
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
}

/* Story links sit a step below the card copy. */
@media (max-width: 1024px) {
  body[data-page="scroll"] #journey .chapter:not(.cover-section, .billboard) .chapter-copy > a {
    margin-top: 16px;
    margin-bottom: 0;
  }
}

/* Opening park drifts gently. The plate is oversized so the pan stays inside the crop. */
@media (max-width: 1024px) {
  body.phone-opening .billboard-daylight img {
    width: 112%;
    height: 112%;
    max-width: none;
    transform: translate3d(calc(-6% + var(--phone-open-x, 0px)), calc(-6% + var(--phone-open-y, 0px)), 0);
  }
  body.phone-opening .park-photo {
    transform: translate3d(var(--phone-open-x, 0px), var(--phone-open-y, 0px), 0);
  }
}

/* Finale sentences, smaller and held at the bottom while the face transition plays. */
@media (max-width: 1024px) {
  body.phone-finale-hold .visual-sticky {
    position: fixed !important;
    inset: 0 !important;
    z-index: 22 !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    background: #0f1114;
    opacity: 1;
    transition: opacity 0.5s cubic-bezier(.22, .7, .2, 1);
  }
  body.phone-finale-hold .billboard-park,
  body.phone-finale-hold .billboard-daylight,
  body.phone-finale-hold .billboard-monument,
  body.phone-finale-hold .billboard-matte {
    visibility: hidden !important;
  }
  body.phone-finale-hold.phone-finale-out .visual-sticky {
    opacity: 0;
  }
  body.phone-tail .visual-sticky {
    position: fixed !important;
    inset: 0 !important;
    z-index: 0 !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
  body.phone-finale-hold[data-page="scroll"] .finale-bronze { display: none !important; }
  body.phone-finale-hold[data-page="scroll"] .journey-frame::after { opacity: 0 !important; }
  body.phone-finale-hold[data-page="scroll"] .finale-composite { z-index: 3; opacity: 1; }
  body.phone-finale-hold[data-page="scroll"] #portrait-message {
    display: flex !important;
    position: absolute;
    left: 0;
    right: 0;
    bottom: calc(72px + env(safe-area-inset-bottom, 0px));
    top: auto;
    width: 100%;
    max-width: none;
    justify-content: center;
    text-align: center;
    z-index: 8;
    pointer-events: none;
  }
  body.phone-finale-hold[data-page="scroll"] #portrait-message::before {
    content: "";
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    height: 42vh;
    background: linear-gradient(to top, rgba(8, 9, 12, 0.78), rgba(8, 9, 12, 0));
    z-index: -1;
    pointer-events: none;
  }
  body.phone-finale-hold[data-page="scroll"] .portrait-stack,
  body.phone-finale-hold[data-page="scroll"] .portrait-final,
  body.phone-finale-hold[data-page="scroll"] .portrait-family,
  body.phone-finale-hold[data-page="scroll"] .portrait-stack > * {
    width: 100%;
    justify-items: center;
    justify-content: center;
    justify-self: center;
    align-items: center;
    align-self: center;
    text-align: center;
  }
  body.phone-finale-hold[data-page="scroll"] .portrait-family {
    align-items: center;
    gap: 0.2em;
  }
  body.phone-finale-hold[data-page="scroll"] #portrait-message .portrait-char {
    display: inline;
    animation: none !important;
  }
  body.phone-finale-hold[data-page="scroll"] #portrait-message :is([data-line], [data-beat]) {
    width: 100%;
    font-size: clamp(15px, 4.4vw, 22px) !important;
    line-height: 1.25;
    text-align: center !important;
    text-shadow: 0 2px 16px rgba(0, 0, 0, 0.9), 0 1px 2px rgba(0, 0, 0, 0.95);
    transition: none !important;
  }
  body.phone-finale-hold[data-page="scroll"] #portrait-message [data-line="time"] {
    font-size: clamp(16px, 4.8vw, 24px) !important;
  }
}
@media (max-width: 359px) {
  body.phone-finale-hold[data-page="scroll"] #portrait-message {
    padding-inline: 16px;
    box-sizing: border-box;
  }
  body[data-page="scroll"] .cover-section .chapter-copy h2 {
    font-size: 30px !important;
    line-height: 1.12 !important;
    letter-spacing: -0.03em;
  }
}

/* Gallery lightbox: swipe the photograph. The arrow buttons stay in the DOM for the gesture. */
@media (max-width: 1024px) {
  .event-gallery-lightbox-step { display: none !important; }
  .event-gallery-lightbox-frame { overflow: hidden; touch-action: pan-y; }
  .event-gallery-lightbox-frame img { touch-action: pan-y; }
}

/* The plaque reel was clipping the copy beneath it. */
@media (max-width: 1024px) {
  #remember-your-way .reconstruction-panel {
    display: flex;
    flex-direction: column;
    max-height: none;
    height: auto;
    overflow: visible;
  }
  #remember-your-way .plaque-reel { flex: none; }
  #remember-your-way .reconstruction-copy {
    display: block;
    overflow: visible;
    min-height: 0;
  }
}

/* Menu: two columns of four, read down the left column, then the right. Opaque, one screen. */
@media (max-width: 1024px) {
  .memorial-menu .mn-search,
  .memorial-menu .mn-kicker,
  .memorial-menu .mn-heading,
  .memorial-menu .mn-intro,
  .memorial-menu .mn-feature,
  .memorial-menu .mn-link-copy small { display: none !important; }
  #memorial-menu {
    z-index: 40;
    overflow: hidden;
    max-height: calc(100dvh - 72px) !important;
    background: #14181c;
    background-color: #14181c;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    opacity: 1;
    animation: none;
  }
  body.memorial-menu-open #journey .chapter-copy,
  body.memorial-menu-open #portrait-message,
  body.memorial-menu-open #video-fallback,
  body.memorial-menu-open .finale-still,
  body.memorial-menu-open .portrait-controls,
  body.memorial-menu-open .reconstruction-notice,
  body.memorial-menu-open #section-navigation {
    visibility: hidden !important;
  }
  .memorial-menu .mn-links-area { padding: 8px 12px 10px; }
  .memorial-menu .mn-links {
    position: relative;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-rows: repeat(4, minmax(44px, auto));
    grid-auto-flow: column;
    column-gap: 16px;
    row-gap: 0;
  }
  .memorial-menu .mn-links::before {
    content: "";
    position: absolute;
    top: 6px;
    bottom: 6px;
    left: 50%;
    width: 1px;
    background: #c5a170;
    opacity: 0.7;
    transform: translateX(-50%);
    pointer-events: none;
  }
  #memorial-menu .mn-section-link {
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    min-height: 48px !important;
    padding: 2px 4px !important;
    text-align: left;
  }
  #memorial-menu .mn-section-link > .mn-icon:first-child { width: 20px; height: 20px; margin-top: 0; }
  #memorial-menu .mn-section-link > .mn-icon:last-child { display: none !important; }
  #memorial-menu button.mn-section-link {
    justify-content: flex-start;
    width: 100%;
    text-align: left;
  }
  .memorial-menu .mn-link-copy { min-width: 0; }
  .memorial-menu .mn-link-copy strong {
    font-size: 12px;
    line-height: 1.2;
    white-space: nowrap;
  }
}
@media (max-width: 340px) {
  #memorial-menu .mn-section-link { gap: 6px; }
  #memorial-menu .mn-section-link > .mn-icon:first-child { width: 18px; height: 18px; }
  .memorial-menu .mn-link-copy strong { font-size: 11px; }
  .memorial-menu .mn-links { column-gap: 12px; }
}
@media (max-width: 1024px) and (max-height: 480px) {
  .memorial-menu .mn-links {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-rows: repeat(4, minmax(44px, auto));
    grid-auto-flow: column;
    column-gap: 12px;
  }
  .memorial-menu .mn-links-area { padding: 4px 12px 6px; }
}

/* Native story: each card sticks in the true center, then the next one takes its place. */
@media (max-width: 1024px) {
  .site-header.memorial-header,
  body[data-page="scroll"] .site-header.memorial-header { top: 10px; }
  body[data-page="scroll"] #billboard,
  body[data-page="scroll"] .journey-interlude { padding-bottom: 128px; }
  body.phone-story-hold[data-page="scroll"] #journey .chapters > .chapter:not(.cover-section, .billboard, .finale) {
    min-height: 168svh !important;
  }
  body.phone-story-hold[data-page="scroll"] #billboard .chapter-copy {
    --phone-finder-clear: calc(112px + env(safe-area-inset-bottom, 0px));
    position: sticky !important;
    left: 0 !important;
    right: 0 !important;
    top: max(
      calc(var(--header, 88px) + 10px),
      calc(100svh - var(--copy-height, 460px) - var(--phone-finder-clear) - 16px)
    ) !important;
    margin-inline: auto !important;
    overflow: visible !important;
    overscroll-behavior: auto !important;
    touch-action: pan-y;
  }
  body.phone-story-hold[data-page="scroll"] #journey .chapters > .chapter:not(.cover-section, .billboard) .chapter-copy {
    position: sticky !important;
    left: 0 !important;
    right: 0 !important;
    top: max(
      calc(var(--header, 88px) + 10px),
      min(
        calc(50svh - var(--copy-height, 280px) / 2),
        calc(100svh - var(--phone-finder-clear, 120px) - 8px - var(--copy-height, 280px))
      )
    ) !important;
    width: min(34rem, calc(100vw - 1.5rem - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px))) !important;
    max-width: calc(100vw - 1.5rem - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px)) !important;
    max-height: none !important;
    margin-inline: auto !important;
    overflow: visible !important;
    overscroll-behavior: auto !important;
    touch-action: pan-y;
    translate: none !important;
    transform: translateY(var(--phone-hold-shift, 0px)) !important;
    opacity: var(--phone-hold-opacity, 0) !important;
    visibility: visible !important;
    z-index: 6;
  }
  body.phone-story-hold[data-page="scroll"] #journey .chapter-copy.phone-card-flow {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    max-height: none !important;
    overflow: visible !important;
    overscroll-behavior: auto !important;
    margin-top: 12px !important;
    margin-bottom: 12px !important;
  }
}
@media (max-width: 360px) {
  body.phone-story-hold[data-page="scroll"] #billboard .chapter-copy {
    padding: 0.4rem 0.7rem 0.35rem !important;
  }
  body.phone-story-hold[data-page="scroll"] #billboard .chapter-copy > h1 {
    font-size: 1.1rem !important;
    line-height: 1.08;
  }
  body.phone-story-hold[data-page="scroll"] #billboard .chapter-copy > p {
    font-size: 13px !important;
    line-height: 1.32;
    margin-top: 0.3rem;
  }
}
@media (max-width: 1024px) and (max-height: 520px) {
  body.phone-story-hold[data-page="scroll"] #billboard .chapter-copy {
    padding: 0.3rem 0.55rem 0.28rem !important;
  }
  body.phone-story-hold[data-page="scroll"] #billboard .chapter-copy > h1 {
    font-size: 1.02rem !important;
    line-height: 1.08;
    margin: 0;
  }
  body.phone-story-hold[data-page="scroll"] #billboard .chapter-copy > .eyebrow {
    margin-bottom: 0.1rem;
    font-size: 10px;
  }
  body.phone-story-hold[data-page="scroll"] #billboard .chapter-copy > p {
    margin-top: 0.2rem;
    font-size: 12px !important;
    line-height: 1.25;
  }
  body.phone-story-hold[data-page="scroll"] #billboard .chapter-copy > a {
    margin-top: 0.15rem;
  }
}
@media (max-width: 360px) {
  body.phone-story-hold[data-page="scroll"] #journey .chapter:not(.cover-section, .billboard) .chapter-copy {
    padding: 0.85rem 0.9rem 0.95rem !important;
  }
  body.phone-story-hold[data-page="scroll"] #journey .chapter:not(.cover-section, .billboard) .chapter-copy > :is(h1, h2, h3) {
    font-size: 1.45rem !important;
    line-height: 1.15;
    margin-bottom: 0;
  }
  body.phone-story-hold[data-page="scroll"] #journey .chapter:not(.cover-section, .billboard) .chapter-copy > .eyebrow {
    margin-bottom: 0.35rem;
  }
  body.phone-story-hold[data-page="scroll"] #journey .chapter:not(.cover-section, .billboard) .chapter-copy > p:not(.eyebrow),
  body.phone-story-hold[data-page="scroll"] #journey .chapter:not(.cover-section, .billboard) .chapter-copy blockquote p,
  body.phone-story-hold[data-page="scroll"] #journey .chapter:not(.cover-section, .billboard) .dedication-transcript div {
    font-size: 15px !important;
    line-height: 1.5 !important;
    margin-top: 0.55rem !important;
  }
  body.phone-story-hold[data-page="scroll"] #journey .chapter:not(.cover-section, .billboard) .chapter-copy > p:not(.eyebrow):not(.dedication-credit) + p:not(.eyebrow):not(.dedication-credit) {
    margin-top: 0.55rem !important;
    padding-top: 0 !important;
  }
}
/* Phones only. Tablets and desktop keep the full resource cards. */
.phone-see-resources { display: none; }
@media (max-width: 767px) {
  #resources .resource-list { grid-template-columns: 1fr; gap: 8px; }
  #resources .resource-list a > span,
  #resources .resource-list em { display: none; }
  #resources .resource-list a {
    min-height: 44px;
    padding: 10px 14px;
    border-radius: 14px;
    justify-content: center;
  }
  #resources .resource-list strong { margin: 2px 0 0; font-size: 1rem; line-height: 1.3; }
  #resources .resource-list a.has-image {
    min-height: 44px;
    padding-left: 58px;
    background-color: #ded9d0;
    background-size: 36px 36px;
    background-position: 12px center;
    background-repeat: no-repeat;
    color: inherit;
  }
  #resources .resource-list a.has-image::before { display: none; }
  #resources .resource-list a.has-image small { color: #9d332e; }
  #resources.phone-resources-collapsed .resource-list li:nth-child(n + 6) { display: none; }
  #resources .load-more-wrap { display: none; }
  #resources.phone-resources-collapsed .phone-see-resources {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    margin: 4px 0 0;
    padding: 10px 4px;
    border: 0;
    background: transparent;
    color: #51565a;
    font: 500 0.95rem/1.2 "Montserrat", "Segoe UI", sans-serif;
    text-decoration: underline;
    text-underline-offset: 4px;
    cursor: pointer;
  }
  #resources .phone-see-resources:focus-visible { outline: 3px solid #79511f; outline-offset: 3px; }
}
@media (max-width: 1024px) and (max-height: 520px) {
  body.phone-story-hold[data-page="scroll"] #journey .chapters > .chapter:not(.cover-section, .billboard) .chapter-copy {
    left: 0 !important;
    right: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    width: min(34rem, calc(100vw - 1.5rem - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px))) !important;
    transform: translateY(var(--phone-hold-shift, 0px)) !important;
  }
}
