/* A quiet gallery and a preview-first project dialog, shared by both library routes. */
.gallery-home { --sans: Geist, Arial, sans-serif; }
/* One quiet weather field continues under the library, setup, pricing and footer. */
.gallery-home .plate-continuum-surface {
  background: radial-gradient(ellipse at var(--lightx) var(--lighty), #16191d, var(--bg) 78%);
}
.gallery-home .plate-continuum-surface::before {
  content: ''; position: absolute; inset: -80px;
  background: var(--page-smoke, none) center / cover no-repeat;
  opacity: .13;
  mask-image: radial-gradient(ellipse at 50% 45%, #000 10%, #000b 50%, transparent 88%);
  transform: translate3d(0, calc(var(--page) * -60px), 0) scale(1.05);
}
.gallery-home .plate-continuum-apertures,
.gallery-home .plate-continuum-slit,
.gallery-home .plate-continuum-grain { display: none; }
.gallery-home .plate-continuum-vignette {
  background: radial-gradient(ellipse at 50% 40%, transparent 25%, #0c0c0e99 100%);
}
.gallery-home #explore { background: linear-gradient(var(--bg), transparent 420px); }
.gallery-home .install-section::before,
.gallery-home .pricing-section::before { display: none; }
.gallery-home .site-footer.home-ending {
  border-top: 0;
  background: linear-gradient(transparent, #0c0c0e88);
}
@media (prefers-reduced-motion: reduce) {
  .gallery-home .plate-continuum-surface::before { transform: none; }
}
.gallery-home .header-inner,
.gallery-home #explore > .shell,
.gallery-home > main > .intro,
.gallery-home > main > .collection { width: min(1400px, calc(100% - 64px)); margin-inline: auto; }
.gallery-home .header-inner { padding-inline: 0; }
.gallery-home .main-nav small { display: none; }
.gallery-home .main-nav a,
.gallery-home .header-signin { font-family: var(--sans); font-size: 13px; }
.gallery-home .header-cta { border-radius: 3px; background: var(--orange-solid); border: 1px solid var(--orange-solid); box-shadow: none; color: #fff; }
/* One edge-to-edge moving scene. Its opaque ground covers the old page atmosphere. */
.gallery-home .cinematic-hero { position: relative; isolation: isolate; overflow: hidden; background: var(--bg); min-height: 0; height: auto; }
.cinematic-picture, .cinematic-shade { position: absolute; inset: 0; pointer-events: none; }
.cinematic-picture { overflow: hidden; z-index: 2; }
.cinematic-picture canvas { display: block; width: 100%; height: 100%; opacity: 0; transition: opacity .35s ease; }
.cinematic-picture.is-ready canvas { opacity: 1; }
.gallery-home .has-fluid-type .hero-title,
.gallery-home .has-fluid-type .hero-title span { color: transparent; text-shadow: none; }
.has-fluid-type .cinematic-picture canvas { transition: none; }
.gallery-home .has-fluid-type .hero-title { user-select: none; }
.gallery-home .has-fluid-type .hero-intro-line { color: #eeeef0; text-shadow: 0 2px 12px #000; }

.cinematic-shade { background: linear-gradient(90deg, #090a0b66 0%, transparent 58%), linear-gradient(0deg, #0c0c0e 0%, transparent 22%); }
.motion-progress { display: block; width: 96px; height: 1px; background: #ffffff20; overflow: hidden; }
.motion-progress i { display: block; height: 100%; width: 100%; background: #eb662b; transform: scaleX(.2); transform-origin: left; }
.gallery-home .cinematic-stage { position: relative; z-index: 3; width: min(1400px, calc(100% - 96px)); height: auto; margin-inline: auto; padding: calc(var(--bar) + 34px) 0 16px; display: flex; flex-direction: column; }
.gallery-home .cinematic-stage > .open-statement { width: min(720px, 100%); margin: 40px auto 40px; text-align: center; }
.gallery-home .cinematic-hero .opening-label { font: 400 10px/1.4 var(--mono); letter-spacing: .2em; color: #eab898; margin: 0 0 28px; }
.gallery-home .cinematic-hero .hero-title { font: 500 clamp(42px, 4.6vw, 68px)/1.08 var(--sans); letter-spacing: -.045em; margin: 0 0 24px; text-wrap: balance; color: #f4f0e8; }
.gallery-home .cinematic-hero .hero-title span { color: #f4f0e8; font-style: normal; }
.gallery-home .cinematic-hero .hero-intro-line { font: 400 15px/1.65 var(--sans); max-width: 460px; margin: 0 auto 28px; color: #d2d0cb; }
.gallery-home .cinematic-hero .hero-intro-actions { justify-content: center; }
.gallery-home .cinematic-hero .hero-intro-actions .button { border-radius: 3px; padding: 15px 23px; min-height: 46px; background: var(--orange-solid); border-color: var(--orange-solid); color: #fff; box-shadow: none; font: 500 13px/1 var(--sans); }
.cinematic-stage .hero-title, .cinematic-stage .opening-label, .cinematic-stage .hero-intro-line { text-shadow: none; }
.cinematic-foot { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-top: 18px; border-top: 1px solid transparent; }
.cinematic-credit { display: flex; align-items: center; gap: 16px; color: #e9e7e1; font: 400 12px/1.4 var(--sans); }
.cinematic-credit-label { color: #9b9b9f; font: 400 9px/1.4 var(--mono); letter-spacing: .12em; }
.cinematic-credit:hover { color: #fff; }
.cinematic-toggle { flex-shrink: 0; min-height: 40px; padding: 10px 15px; border: 1px solid #ffffff30; border-radius: 999px; background: #11121760; color: #e9e7e1; font: 400 11px/1 var(--sans); cursor: pointer; }
.cinematic-toggle:hover { background: #ffffff15; }
.gallery-home .cinematic-hero + .library-all-section { padding-top: 16px; }
@media (prefers-reduced-motion: no-preference) {
  .cinematic-stage .open-statement { animation: cinema-copy-in 1s cubic-bezier(.2,.7,.2,1) both; }

  @keyframes cinema-copy-in { from { opacity: 0; transform: none; } to { opacity: 1; transform: none; } }
  @keyframes cinema-scene-in { from { opacity: .2; transform: scale(1.035); } to { opacity: 1; transform: none; } }
}
@media (prefers-reduced-motion: reduce) { .cinematic-picture canvas { transition: none; } }
.gallery-home .library-anchor { top: auto; bottom: 0; }
.gallery-home #library { scroll-margin-top: 90px; }
.gallery-home .intro { padding-block: 120px 46px; display: block; text-align: left; }
.gallery-home .intro h1 { font: 500 clamp(34px, 4vw, 52px)/1.12 var(--display); letter-spacing: -.025em; }
.gallery-home .intro-note { margin: 16px 0 0; }
.gallery-home .intro .catalogue-breakdown { display: none; }
.gallery-home #collection .toolbar { border: 0; padding: 0 0 20px; gap: 16px; background: transparent; }
.gallery-home #collection .filters { gap: 4px; }
.gallery-home #collection .filters button { border: 0; border-bottom: 1px solid transparent; border-radius: 0; padding: 10px 16px; font: 500 12px/1 var(--sans); }
.gallery-home #collection .filters button[aria-pressed="true"] { background: transparent; border-bottom-color: var(--orange); color: var(--ink); }
.gallery-home #collection .search-wrap { border-radius: 4px; border-color: #ffffff16; }
.gallery-home #collection .search-wrap input,
.gallery-home #collection .free-toggle,
.gallery-home #result-count { font: 400 12px/1 var(--sans); letter-spacing: 0; }
.gallery-home #collection .grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 22px; margin-top: 0; }
.gallery-home .grid.is-curated > .creation.is-featured-open { display: block; }
.gallery-home #collection .creation { grid-column: auto; border-radius: 0; overflow: visible; background: transparent; }
.gallery-home #collection .art { border-radius: 4px; aspect-ratio: 16 / 10; }
.gallery-home #collection .creation .art { clip-path: none; }
.gallery-home #collection .creation .card-meta { opacity: 1; }
/* Ambient previews are product footage. The existing coordinator permits them under
   reduced motion; CSS must not hide a video that is actively playing. */
.gallery-home #collection .art .home-loop { display: block; }
.gallery-home #collection .plate-no { display: none; }
.gallery-home #collection .card-meta { border: 0; margin: 0; padding: 13px 0 0; gap: 8px; }
.gallery-home #collection .card-meta h3 { font: 500 18px/1.4 var(--display); letter-spacing: -.015em; }
.gallery-home #collection .card-meta p { display: none; }
.gallery-home #collection .badge { font: 400 9px/1 var(--sans); border: 0; background: transparent; padding: 0; color: var(--ink-3); letter-spacing: 0; }

.gallery-home #project-dialog { width: min(1100px, calc(100vw - 64px)); height: fit-content; border-radius: 22px; border: 1px solid #ffffff20; background: #161618; max-height: calc(100dvh - 48px); }
.gallery-home #project-dialog::backdrop { background: #000b; backdrop-filter: blur(9px); }
.gallery-home .detail-topbar { padding: 19px 22px; background: #161618f5; box-shadow: none; border-bottom: 1px solid #ffffff0c; gap: 16px; }
.gallery-home .detail-id { display: grid; grid-template-columns: auto auto; justify-content: start; gap: 7px 12px; }
.gallery-home #project-title { grid-column: 1/-1; grid-row: 1; font: 600 18px/1.25 var(--sans); letter-spacing: -.025em; }
.gallery-home .detail-chip { font: 400 11px/1.2 var(--sans); letter-spacing: 0; text-transform: none; }
.gallery-home .detail-id .badge { font: 400 10px/1 var(--sans); padding: 0; border: 0; background: none; color: var(--ink-3); }
.gallery-home .detail-topbar-actions { gap: 8px; }
.gallery-home .detail-topbar-actions .pill { border-radius: 999px; min-height: 38px; padding: 11px 16px; font: 500 12px/1 var(--sans); letter-spacing: 0; }
.gallery-home .pill#project-action { background: var(--ink); border-color: var(--ink); color: var(--bg); }
.gallery-home .detail-topbar-actions .pill[data-action-kind="get-pro"] { background: var(--orange-solid); border-color: var(--orange-solid); color: #fff; }
.gallery-home .detail-stage { padding: 0; background: #101012; }
.gallery-home .detail-media { max-width: none; max-height: min(62dvh, calc(100dvh - 230px)); box-shadow: none; }
.gallery-home .detail-media img,
.gallery-home .detail-media video { object-fit: contain; }
.gallery-home .detail-playback-toggle { right: 16px; bottom: 16px; border-radius: 999px; font: 400 11px/1 var(--sans); letter-spacing: 0; }
.gallery-home .detail-sound-toggle { left: 16px; right: auto; }
.gallery-home .detail-body { display: flex; flex-wrap: wrap; align-items: start; gap: 0 24px; padding: 17px 22px; }
.gallery-home .detail-caption { width: 100%; margin: 0 0 10px; color: var(--ink-2); font: 400 13px/1.5 var(--sans); }
.gallery-home .detail-disclosure,
.gallery-home .handoff { border: 0; background: none; border-radius: 0; margin: 0; padding: 0; max-width: none; box-shadow: none; }
.gallery-home .detail-disclosure > summary,
.gallery-home .handoff > summary { display: flex; align-items: center; gap: 8px; list-style: none; padding: 8px 0; cursor: pointer; font: 400 12px/1.4 var(--sans); color: var(--ink-3); }
.gallery-home .handoff > summary::-webkit-details-marker { display: none; }
.gallery-home .handoff[open],
.gallery-home .detail-disclosure[open] { flex-basis: 100%; }
.gallery-home .handoff[open] > summary { color: var(--ink); }
.gallery-home .handoff[open] > summary span { transform: rotate(45deg); }
.gallery-home #customize-panel-body { max-width: 680px; padding: 12px 0 20px; }
.gallery-home #customize-panel-body input,
.gallery-home #customize-panel-body textarea { border-radius: 8px; font-family: var(--sans); }
.gallery-home #customize-panel-body label,
.gallery-home .text-button { font-family: var(--sans); }
.gallery-home #copy-brief { border-radius: 999px; width: auto; font-family: var(--sans); }
.gallery-home #action-note { order: 5; width: 100%; margin: 6px 0 0; font: 400 11px/1.5 var(--sans); }
.gallery-home #detail-provenance { width: 100%; }
.gallery-home #detail-status { order: 6; width: 100%; margin: 8px 0 0; font: 400 12px/1.5 var(--sans); }
.gallery-home #detail-status:empty { display: none; }
.gallery-home .detail-disclosure-body { padding-block: 14px; }
.gallery-home .detail-offer { margin: 0 0 18px; padding: 18px; border: 1px solid var(--rule); background: var(--panel); box-shadow: none; }

@media (max-width: 1100px) {
  .gallery-home #collection .grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 800px) {
  .gallery-home .cinematic-stage { width: calc(100% - 48px); }
  .gallery-home #collection .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery-home .detail-topbar { flex-wrap: wrap; padding: 16px; }
  .gallery-home .detail-topbar-actions { flex-wrap: wrap; padding-right: 36px; }
  .gallery-home #close-dialog { position: absolute; right: 14px; top: 14px; }
  .gallery-home .detail-id { padding-right: 34px; }
}
@media (max-width: 600px) {
  .gallery-home .header-inner,
  .gallery-home #explore > .shell,
  .gallery-home > main > .intro,
  .gallery-home > main > .collection { width: calc(100% - 32px); }
  .gallery-home .cinematic-stage { width: calc(100% - 40px); padding-top: 100px; padding-bottom: 16px; }
  .gallery-home .cinematic-stage > .open-statement { margin: 36px auto 32px; }
  .gallery-home .cinematic-hero .hero-title { font-size: clamp(36px, 9.8vw, 46px); }
  .gallery-home .cinematic-hero .opening-label { margin-bottom: 20px; }
  .gallery-home .cinematic-hero .hero-intro-line { font-size: 14px; max-width: 310px; }

  .cinematic-shade { background: linear-gradient(0deg, #0c0c0e 0%, #090a0b77 32%, transparent 58%); }
  .cinematic-credit { flex-direction: column; align-items: flex-start; gap: 5px; }
  .cinematic-credit-label { font-size: 8px; }
  .gallery-home .intro { padding-block: 112px 34px; }
  .gallery-home #collection .toolbar { display: flex; gap: 12px; }
  .gallery-home #collection .filters { flex-basis: 100%; justify-content: space-between; }
  .gallery-home #collection .filters button { padding-inline: 12px; }
  .gallery-home .toolbar-meta { margin-right: auto; }
  .gallery-home #result-count { display: none; }
  .gallery-home #collection .search-wrap input { width: 120px; }
  .gallery-home #collection .grid { grid-template-columns: 1fr; gap: 20px; }
  .gallery-home #collection .art { aspect-ratio: 16/10; }
  .gallery-home #collection .card-meta h3 { font-size: 15px; }
  .gallery-home #project-dialog { width: calc(100vw - 20px); max-width: none; height: fit-content; max-height: calc(100dvh - 24px); margin: auto; border: 1px solid #ffffff20; border-radius: 16px; }
  .gallery-home .detail-topbar-actions .pill { font-size: 11px; padding: 10px 12px; }
  .gallery-home .detail-body { padding: 14px 16px; gap: 0 20px; }
  .gallery-home .detail-media { aspect-ratio: 4/3; }
}
