/* ENDING-01: Gerrit's supplied scene, contained within the closing chapter. */
.liquid-glass {
  background: rgba(255, 255, 255, 0.01);
  background-blend-mode: luminosity;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  border: none;
  box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.1);
  position: relative;
  overflow: hidden;
}
.liquid-glass::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1.4px;
  background: linear-gradient(180deg,
    rgba(255,255,255,0.45) 0%, rgba(255,255,255,0.15) 20%,
    rgba(255,255,255,0) 40%, rgba(255,255,255,0) 60%,
    rgba(255,255,255,0.15) 80%, rgba(255,255,255,0.45) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
.ending { position: relative; isolation: isolate; z-index: 3; background: #070a10; padding-bottom: 32px; }
.ending-media { position: absolute; inset: 0; z-index: -2; pointer-events: none; }
.ending-media__sticky { position: sticky; top: 0; width: 100%; height: 100vh; height: 100svh; overflow: hidden; }
.ending-poster, .ending-poster img, .ending-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.ending-poster img { display: block; }
.ending-video { opacity: 0; transition: opacity .7s ease; }
.ending.is-playing .ending-video, .ending.has-frame .ending-video { opacity: 1; }
.ending-media__sticky::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, #070a10 0%, transparent 14%, transparent 76%, #070a1033 100%); }
.ending-scenic { height: max(640px, 92svh); }
.ending-content { position: relative; padding-top: 16px; }
.ending-content::before { content: ''; position: absolute; z-index: -1; inset: -120px 0 -32px; background: linear-gradient(180deg, transparent, #070a1055 120px, #070a1099 70%, #070a10dd); pointer-events: none; }
.ending #close { background: transparent; padding: 0 48px 48px; }
.ending #close .close-container { max-width: 1280px; margin: 0 auto; }
.ending #close .close-content { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; max-width: 760px; margin: auto; text-align: center; }
.ending #close .close-title { margin: 0; color: #f4f4f0; }
.ending #close .close-title .dot { color: #8fb6f0; }
.ending #close .close-kicker { display: block; font: 600 11px/16px var(--font-body); }
.ending #close .close-band { padding: 48px 56px; border: none; border-radius: 24px; background: rgba(7,10,16,.58); }
.ending #close .close-band::before { display: block; }
.ending #close .close-kicker { color: #c0cede; font-size: 11px; letter-spacing: .18em; margin-bottom: 20px; }
.ending #close .close-title { font-size: clamp(32px, 3.4vw, 48px); line-height: 1.15; letter-spacing: -.045em; }
.ending #close .close-promise { color: #d3dce7; max-width: 51ch; margin-top: 20px; }
.ending #close .close-actions { margin-top: 28px; }
.ending #close .close-cta--secondary { background: #070a1059; border-color: #a9b7c780; }
.ending .site-footer.zp-footer { background: transparent; border: 0; padding: 0 48px; }
.ending .zp-footer__inner { width: min(1280px, 100%); padding: 40px 48px 20px; border-radius: 24px; background: rgba(7,10,16,.52); }
.ending .zp-footer__grid { gap: 48px; grid-template-columns: minmax(300px,1.8fr) repeat(2,minmax(160px,1fr)); }
.ending .zp-footer__nav { padding-top: 8px; }
.ending .zp-footer__nav h2 { color: #c0cede; margin-bottom: 16px; }
.ending .zp-footer__statement { margin-top: 20px; font-size: 16px; line-height: 26px; color: #d3dce7; }
.ending .zp-footer__location, .ending .zp-footer__legal small { color: #c0cede; }
.ending .zp-footer__legal { margin-top: 32px; border-color: #a9b7c730; }
.ending .zp-footer__logo img { width: 64px; height: 64px; }
.ending .zp-footer__wordmark { font-size: 26px; }
.ending-motion { position: absolute; top: calc(max(640px, 92svh) - 64px); right: 48px; z-index: 2; min-height: 44px; padding: 10px 16px; border: 1px solid #a9b7c759; border-radius: 24px; color: #f4f4f0; background: #070a108c; backdrop-filter: blur(4px); font: 500 12px/20px Inter,Arial,sans-serif; cursor: pointer; }
.ending-motion[hidden] { display: none; }
.ending-motion:focus-visible { outline: 2px solid #8fb6f0; outline-offset: 4px; }
.ending .ending-reveal { opacity: 1; transform: none; }
.ending.reveal-ready .ending-reveal { opacity: 0; transform: translateY(40px); transition: opacity 1s cubic-bezier(.2,0,0,1), transform 1s cubic-bezier(.2,0,0,1); }
.ending.reveal-ready .ending-reveal.is-visible { opacity: 1; transform: none; }
.ending.reveal-ready .ending-reveal:focus-within { opacity: 1; transform: none; }
@media(min-aspect-ratio:2/1) {
  .ending-media__sticky { height: 56.25vw; }
  .ending-scenic { height: 50vw; }
  .ending-motion { top: calc(50vw - 64px); }
}
@media(max-width:1000px) {
  .ending #close { padding-inline: 32px; }
  .ending #close .close-band { padding: 40px 32px; }
  .ending .site-footer.zp-footer { padding-inline: 32px; }
  .ending .zp-footer__inner { padding: 32px; }
  .ending .zp-footer__grid { grid-template-columns: 1.6fr 1fr 1fr; gap: 28px; }
  .ending .zp-footer__logo { gap: 12px; }
  .ending .zp-footer__logo img { width: 48px; height: 48px; }
  .ending .zp-footer__wordmark { font-size: 20px; }
  .ending-motion { right: 32px; }
}
@media(min-width:768px) and (max-width:859px) {
  .ending .zp-footer__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width:767px) {
  .ending-scenic { height: max(600px, 94svh); }
  .ending-motion { top: calc(max(600px, 94svh) - 60px); right: 20px; }
  .ending #close { padding: 0 20px 32px; }
  .ending #close .close-band { padding: 36px 24px; border-radius: 20px; background: #070a10b3; }
  .ending #close .close-content { text-align: left; align-items: stretch; }
  .ending #close .close-title { font-size: clamp(27px, 6.6vw, 36px); line-height: 1.18; }
  .ending #close .close-promise { font-size: 15px; line-height: 24px; }
  .ending #close .close-actions { width: 100%; gap: 12px; }
  .ending #close .close-cta { width: 100%; max-width: 360px; }
  .ending .site-footer.zp-footer { padding-inline: 20px; }
  .ending .zp-footer__inner { padding: 32px 24px 20px; border-radius: 20px; background: #070a109e; }
  .ending .zp-footer__grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px 20px; }
  .ending .zp-footer__brand { grid-column: 1 / -1; }
  .ending .zp-footer__logo img { width: 56px; height: 56px; }
  .ending .zp-footer__wordmark { font-size: 23px; }
  .ending .zp-footer__nav a { font-size: 14px; line-height: 22px; }
  .ending .zp-footer__legal { margin-top: 24px; }
}
@media(max-width:359px) {
  .ending #close, .ending .site-footer.zp-footer { padding-inline: 16px; }
  .ending #close .close-band, .ending .zp-footer__inner { padding-inline: 20px; }
  .ending .zp-footer__wordmark { font-size: 20px; }
  .ending .zp-footer__logo img { width: 48px; height: 48px; }
}
@media(prefers-reduced-motion:reduce) {
  .ending .ending-video { display: none; transition: none; }
  .ending.reveal-ready .ending-reveal { opacity: 1; transform: none; transition: none; }
  .ending-motion { display: none; }
}
