/* Homepage realization covers and an uncropped, image-first lightbox. */
.realizations-v3 { --realization-gold: var(--v2-gold, #caa65d); }
.realizations-v3 .latest-realizations-shell { width: min(100% - 160px, 1340px); }
.realizations-v3 .latest-realizations-head { margin-bottom: clamp(38px, 5vw, 72px); }
.realizations-viewport { position: relative; }
.realizations-list {
  display: flex; align-items: flex-start; gap: clamp(28px, 3vw, 44px);
  overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory;
  overscroll-behavior-x: contain; scrollbar-width: none;
}
.realizations-list::-webkit-scrollbar { display: none; }
.realization-card { flex: 0 0 calc((100% - clamp(28px, 3vw, 44px)) / 2); min-width: 0; scroll-snap-align: start; scroll-snap-stop: always; }
.realization-cover { position: relative; display: block; color: #fff; text-decoration: none; }
.realization-cover img { display: block; width: 100%; height: auto; max-height: none; object-fit: contain; }
.realization-cover-cta {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  min-height: 48px; padding: 12px 22px; white-space: nowrap;
  border: 1px solid rgb(234 204 146 / 72%); border-radius: 3px;
  background: rgb(31 27 20 / 60%); backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px);
  color: #fff8e9; font: 600 14px/1.25 var(--body, sans-serif); letter-spacing: .01em;
  transition: background-color 160ms ease, border-color 160ms ease;
}
.realization-cover-cta svg { width: 18px; height: 18px; color: #e3be70; flex-shrink: 0; }
.realization-cover-count { position: absolute; right: 12px; bottom: 12px; padding: 5px 9px; background: rgb(10 11 11 / 74%); color: #fff; font: 500 11px/1.4 var(--body, sans-serif); }
.realization-copy { padding-top: 24px; }
.realization-copy h3 { margin: 0; color: var(--v2-paper, #eeeae1); font: 400 clamp(34px, 2.6vw, 44px)/1 var(--display, 'Bebas Neue', sans-serif); letter-spacing: 0; }
.realization-copy p { max-width: 54ch; margin: 16px 0 22px; color: #c3c1ba; font: 400 14px/1.7 var(--body, sans-serif); }
.realization-copy a { display: inline-flex; align-items: center; gap: 14px; min-height: 44px; border-bottom: 1px solid var(--realization-gold); color: #dcbc77; text-decoration: none; font: 600 11px/1.4 var(--body, sans-serif); text-transform: uppercase; letter-spacing: .09em; }
.realizations-pager { position: absolute; top: var(--cover-center, 220px); transform: translateY(-50%); z-index: 2; display: grid; place-items: center; width: 48px; height: 60px; padding: 0; border: 0; color: #090a0a; background: var(--realization-gold); font-size: 14px; cursor: pointer; }
.realizations-pager-prev { left: -64px; }
.realizations-pager-next { right: -64px; }
.realizations-pager-label { display: none; }
.realizations-pager:disabled { visibility: hidden; }
.realizations-v3 :is(a, button):focus-visible { outline: 2px solid #eeeae1; outline-offset: 5px; }
.realizations-v3 .realization-cover:focus-visible { outline-offset: -4px; }
.realizations-v3 :is(a, button):active { opacity: .85; }
.realization-lightbox {
  box-sizing: border-box; position: fixed; inset: 0; margin: auto;
  width: min(1480px, calc(100vw - 40px)); height: calc(100dvh - 40px);
  max-width: none; max-height: none; padding: 0; overflow: hidden;
  border: 1px solid rgb(202 166 93 / 38%); border-radius: 0;
  background: #0b0c0c; color: #eeeae1; font-family: var(--body, sans-serif);
}
.realization-lightbox:not([open]) { display: none; }
.realization-lightbox[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 0; }
.realization-lightbox::backdrop { background: rgb(0 0 0 / 88%); }
.realization-lightbox *, .realization-lightbox *::before, .realization-lightbox *::after { box-sizing: border-box; }
.realization-lightbox-header { min-width: 0; display: flex; align-items: center; gap: 24px; padding: 16px 22px; border-bottom: 1px solid #2e2d28; }
.realization-lightbox-header h2 { margin: 0; color: #eeeae1; font: 400 clamp(28px, 2.5vw, 40px)/1 var(--display, 'Bebas Neue', sans-serif); letter-spacing: 0; }
.realization-lightbox-counter { margin-left: auto; color: #d3b46d; font-size: 13px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.realization-lightbox-close { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-width: 44px; min-height: 44px; border: 1px solid #68614f; background: transparent; color: #eeeae1; padding: 10px 15px; font: 600 12px/1 var(--body, sans-serif); cursor: pointer; }
.realization-lightbox-close span:last-child { font-size: 25px; font-weight: 400; }
.realization-lightbox-stage { min-width: 0; min-height: 0; display: grid; grid-template-columns: 64px minmax(0, 1fr) 64px; gap: 8px; padding: 16px 8px 10px; }
.realization-lightbox-imagebox { position: relative; min-width: 0; min-height: 0; height: 100%; display: grid; place-items: center; touch-action: pan-y pinch-zoom; }
.realization-lightbox-image { display: block; width: 100%; height: 100%; min-width: 0; min-height: 0; max-width: 100%; max-height: 100%; object-fit: contain; object-position: center; }
.realization-lightbox-image[hidden] { display: none; }
.realization-lightbox-arrow { align-self: center; justify-self: center; display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 1px solid #8c7853; border-radius: 50%; color: #f0e5cd; background: #151614; cursor: pointer; }
.realization-lightbox-arrow svg { width: 22px; height: 22px; }
.realization-lightbox-arrow:disabled { opacity: .25; cursor: default; }
.realization-lightbox-message { position: absolute; inset: 0; display: flex; flex-direction: column; gap: 14px; align-items: center; justify-content: center; text-align: center; padding: 16px; color: #e9d5ad; background: #0b0c0c; font-size: 14px; }
.realization-lightbox-message[hidden], .realization-lightbox-retry[hidden] { display: none; }
.realization-lightbox-retry { min-height: 44px; padding: 10px 18px; border: 1px solid #b4975f; color: #fff; background: transparent; cursor: pointer; }
.realization-lightbox-footer { min-width: 0; padding: 4px 22px 16px; }
.realization-lightbox-tools { display: flex; justify-content: space-between; align-items: center; gap: 20px; min-height: 36px; margin-bottom: 6px; }
.realization-lightbox-caption { margin: 0; font-size: 12px; line-height: 1.4; color: #bbb9b2; }
.realization-lightbox-full { flex-shrink: 0; display: inline-flex; align-items: center; min-height: 36px; color: #e1c17e; font-size: 11px; text-underline-offset: 4px; }
.realization-thumbnails { display: flex; gap: 8px; overflow-x: auto; overscroll-behavior-x: contain; padding: 3px 3px 8px; scrollbar-width: thin; scrollbar-color: #aa8b4c #252522; touch-action: pan-x pan-y pinch-zoom; }
.realization-thumbnail { flex: 0 0 76px; width: 76px; height: 62px; padding: 3px; border: 1px solid #4a483f; border-radius: 0; background: #171817; cursor: pointer; }
.realization-thumbnail img { display: block; width: 100%; height: 100%; object-fit: contain; }
.realization-thumbnail[aria-current=true] { border: 2px solid #ebca85; padding: 2px; background: #30291c; }
.realization-lightbox :is(button,a):focus-visible { outline: 2px solid #f7e6bb; outline-offset: 2px; }
@media (hover: hover) {
  .realization-cover:hover .realization-cover-cta { background: rgb(73 56 27 / 82%); border-color: #edd4a0; }
  .realization-lightbox-arrow:not(:disabled):hover, .realization-lightbox-close:hover { background: #342d20; }
}
@media (max-width: 1023px) {
  .realizations-v3 .latest-realizations-shell { width: min(100% - 32px, 680px); }
  .realizations-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 68px; overflow: visible; height: auto !important; }
  .realizations-pager { display: none; }
  .realizations-v3[data-ready=true] .realizations-list { display: flex; gap: 24px; overflow-x: auto; overflow-y: hidden; height: var(--track-height, auto) !important; touch-action: pan-x pan-y pinch-zoom; }
  .realizations-v3[data-ready=true] .realization-card { flex-basis: 100%; }
  .realizations-v3[data-ready=true] .realization-copy { padding-top: 76px; }
  .realizations-v3[data-ready=true] .realizations-pager { display: inline-flex; align-items: center; justify-content: center; gap: 10px; top: calc(var(--cover-center, 220px) * 2 + 12px); transform: none; width: auto; height: 44px; padding: 0 13px; font: 600 12px/1 var(--body, sans-serif); }
  .realizations-v3[data-ready=true] .realizations-pager-prev { left: 0; }
  .realizations-v3[data-ready=true] .realizations-pager-next { right: 0; }
  .realizations-v3[data-ready=true] .realizations-pager:disabled { visibility: visible; opacity: .35; cursor: default; }
  .realizations-pager-label { display: inline; }
  .realization-copy h3 { font-size: 38px; }
  .realization-copy p { max-width: 55ch; }
}
@media (max-width: 600px) {
  /* Labels and position below the photograph are intentionally restored. */
  .realizations-v3[data-ready=true] .realizations-pager > [aria-hidden=true] { font-size: 16px; }
  .realizations-v3[data-ready=true] .realizations-pager-next::after {
    content: ''; position: absolute; inset: -4px; pointer-events: none;
    border: 1px solid #edcd89; border-radius: 1px;
    box-shadow: 0 0 14px rgb(202 166 93 / 45%); opacity: 0;
  }
  .realization-cover-cta { min-height: 46px; padding: 11px 17px; font-size: 13px; gap: 10px; }
  .realization-copy { padding-top: 20px; }
  .realization-copy p { margin-top: 13px; }
  .realization-lightbox { width: 100vw; height: 100dvh; border: 0; }
  .realization-lightbox-header { gap: 12px; padding: max(10px, env(safe-area-inset-top)) 12px 10px; }
  .realization-lightbox-header h2 { font-size: 28px; }
  .realization-lightbox-close { padding: 0; width: 44px; flex-shrink: 0; }
  .realization-lightbox-close span:first-child { display: none; }
  .realization-lightbox-stage { grid-template-columns: 40px minmax(0, 1fr) 40px; gap: 2px; padding: 8px 2px; }
  .realization-lightbox-arrow { width: 38px; height: 44px; border-color: transparent; background: transparent; }
  .realization-lightbox-footer { padding: 0 10px max(10px, env(safe-area-inset-bottom)); }
  .realization-lightbox-tools { gap: 8px; }
  .realization-lightbox-caption { font-size: 11px; }
  .realization-thumbnail { flex-basis: 66px; width: 66px; height: 58px; }
}
@media (max-width: 600px) and (prefers-reduced-motion: no-preference) {
  .realizations-v3[data-ready=true] .realizations-pager-next[data-case-hint=playing]:not(:disabled)::after {
    animation: realization-next-hint 2s cubic-bezier(0.77, 0, 0.175, 1) 2;
  }
  @keyframes realization-next-hint {
    0%, 100% { opacity: 0; }
    50% { opacity: 1; }
  }
}
@media (max-height: 500px) and (orientation: landscape) {
  .realization-lightbox-header { padding: 4px 14px; }
  .realization-lightbox-header h2 { font-size: 26px; }
  .realization-lightbox-footer { padding-bottom: 4px; }
  .realization-lightbox-tools { display: none; }
  .realization-thumbnail { height: 46px; flex-basis: 58px; }
}
@media (prefers-reduced-motion: reduce) {
  .realizations-list, .realization-thumbnails { scroll-behavior: auto; }
  .realization-cover-cta { transition: none; }
}
