@charset "UTF-8";
/* Public enhancement layer only. Existing style.css/public.css provide the skin. */
body.public-site {
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-drama: cubic-bezier(0.7, 0, 0.15, 1);
  --duration-reveal: 900ms;
}
body.public-site.js-enabled .reveal-pending {
  transition: opacity var(--duration-reveal) var(--ease-out-expo),
    transform var(--duration-reveal) var(--ease-out-expo),
    clip-path var(--duration-reveal) var(--ease-drama),
    filter var(--duration-reveal) var(--ease-out-expo);
  transition-delay: var(--reveal-delay, 0ms);
}
body.public-site.js-enabled [data-reveal=""].reveal-pending,
body.public-site.js-enabled [data-reveal="fade-up"].reveal-pending {
  opacity: 0;
  transform: translateY(36px);
}
body.public-site.js-enabled [data-reveal="mask"].reveal-pending { opacity: 0; transform: translateY(110%); }
body.public-site.js-enabled [data-reveal="blur"].reveal-pending { opacity: 0; filter: blur(12px); transform: scale(1.02); }
/* Curtain reveals must NOT clip the observed element itself: a fully-inset
   clip-path makes the element geometrically empty and IntersectionObserver
   then never fires, so cards stayed invisible forever (huge layout gaps).
   Pending keeps the geometry intact; the sweep plays as a keyframe after
   reveal instead of being a transition on the pending state. */
body.public-site.js-enabled [data-reveal="clip"].reveal-pending,
body.public-site.js-enabled [data-reveal="curtain"].reveal-pending,
body.public-site.js-enabled [data-reveal="wipe"].reveal-pending { opacity: 0.001; }
body.public-site.js-enabled [data-reveal="clip"].reveal-pending.is-revealed {
  opacity: 1;
  clip-path: inset(0);
  animation: public-reveal-clip var(--duration-reveal) var(--ease-drama) var(--reveal-delay, 0ms) both;
}
body.public-site.js-enabled [data-reveal="curtain"].reveal-pending.is-revealed {
  opacity: 1;
  clip-path: inset(0);
  animation: public-reveal-curtain var(--duration-reveal) var(--ease-drama) var(--reveal-delay, 0ms) both;
}
body.public-site.js-enabled [data-reveal="wipe"].reveal-pending.is-revealed {
  opacity: 1;
  clip-path: inset(0);
  animation: public-reveal-wipe var(--duration-reveal) var(--ease-drama) var(--reveal-delay, 0ms) both;
}
@keyframes public-reveal-clip { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0); } }
@keyframes public-reveal-curtain { from { clip-path: inset(100% 0 0 0); } to { clip-path: inset(0); } }
@keyframes public-reveal-wipe { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0); } }
body.public-site.js-enabled [data-reveal="scale"].reveal-pending { opacity: 0; transform: scale(0.955) translateY(14px); }
body.public-site.js-enabled [data-reveal].reveal-pending.is-revealed {
  opacity: 1;
  transform: none;
  clip-path: inset(0);
  filter: none;
}
body.public-site .mask-line { display: block; overflow: hidden; padding-bottom: 0.08em; }
body.public-site .mask-line > span { display: block; }

/* No-JS images are always visible. Only initialized public pages fade loading media. */
body.public-site.js-enabled img[data-fade] {
  opacity: 0;
  transform: scale(1.025);
  filter: blur(8px);
  transition: opacity 650ms var(--ease-out-expo), transform 950ms var(--ease-out-expo), filter 750ms var(--ease-out-expo);
}
body.public-site.js-enabled img[data-fade].is-loaded { opacity: 1; transform: none; filter: none; }
body.public-site .asset-card__frame {
  transition: transform 350ms var(--ease-out-expo), box-shadow 350ms ease;
  transform-origin: center;
}
body.public-site .asset-card__frame > a { display: block; }
body.public-site .asset-card__preview { display: none; }
body.public-site.js-enabled .asset-card__preview {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  z-index: 5;
  top: 0.75rem;
  right: 0.75rem;
  width: 44px;
  height: 44px;
  padding: 11px;
  border: 1px solid rgb(255 255 255 / 55%);
  border-radius: 50%;
  color: #fffaf1;
  background: rgb(18 17 15 / 78%);
  cursor: pointer;
  transition: background 180ms ease, transform 180ms ease;
}
body.public-site .asset-card__preview svg { display: block; width: 20px; height: 20px; pointer-events: none; }
body.public-site .asset-card__preview:hover { background: #171512; transform: scale(1.06); }
body.public-site .asset-card:focus-within .asset-card__overlay { opacity: 1; transform: none; }
body.public-site .asset-card:focus-within .asset-card__view { opacity: 1; transform: none; }
body.public-site .asset-card:focus-within .asset-card__frame::after { opacity: 1; }
body.public-site .asset-card__preview:focus-visible,
body.public-site .gallery-dialog button:focus-visible {
  outline: 3px solid #f2bc86;
  outline-offset: 4px;
}
body.public-site .stat-band__value { font-variant-numeric: tabular-nums; }
body.public-site .chip { transition: transform 180ms ease; }
body.public-site .chip:hover { transform: translateY(-1px); }
body.public-site .verified-badge { transition: transform 180ms ease; }
body.public-site .verified-badge:hover { transform: scale(1.05); }
body.public-site .toast { pointer-events: auto; animation: public-toast-in 420ms var(--ease-out-expo) both; }
@keyframes public-toast-in {
  from { opacity: 0; transform: translateY(18px) scale(0.96); }
  to { opacity: 1; transform: none; }
}
body.public-site .mobile-nav[inert] { pointer-events: none; }
body.public-site .accordion__panel[inert] { pointer-events: none; }
body.public-site .btn.is-loading { cursor: wait; }

/* Entire global lightbox lives here; deliberately no .lightbox selectors. */
body.public-site .gallery-dialog[hidden],
body.public-site .gallery-dialog [hidden] { display: none !important; }
body.public-site .gallery-dialog {
  position: fixed;
  inset: 0;
  z-index: 10000;
  isolation: isolate;
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr) 52px;
  grid-template-rows: minmax(0, 1fr) auto auto;
  column-gap: clamp(8px, 2vw, 28px);
  row-gap: 10px;
  padding: max(76px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));
  width: 100%;
  height: 100%;
  height: 100dvh;
  box-sizing: border-box;
  overflow: auto;
  overscroll-behavior: contain;
  background: rgb(9 9 10 / 97%);
  color: #faf4e9;
  font-family: var(--font-body, sans-serif);
}
body.public-site .gallery-dialog__stage {
  position: relative;
  grid-column: 2;
  grid-row: 1;
  min-height: 0;
  min-width: 0;
  touch-action: pan-y pinch-zoom;
}
body.public-site .gallery-dialog__img {
  position: absolute;
  inset: 0;
  display: block;
  margin: auto;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  opacity: 0;
  transition: opacity 240ms ease;
  user-select: none;
}
body.public-site .gallery-dialog__img.is-current { opacity: 1; }
body.public-site .gallery-dialog.is-loading .gallery-dialog__img { opacity: 0.3; }
body.public-site .gallery-dialog__close,
body.public-site .gallery-dialog__nav {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 1px solid rgb(255 255 255 / 32%);
  border-radius: 50%;
  background: #282522;
  color: #fff8ef;
  font: 28px/1 sans-serif;
  cursor: pointer;
  transition: background 180ms ease, border-color 180ms ease;
  z-index: 2;
}
body.public-site .gallery-dialog__close {
  position: absolute;
  top: max(16px, env(safe-area-inset-top));
  right: max(20px, env(safe-area-inset-right));
  font-size: 34px;
}
body.public-site .gallery-dialog__nav { align-self: center; }
body.public-site .gallery-dialog__nav--prev { grid-column: 1; grid-row: 1; }
body.public-site .gallery-dialog__nav--next { grid-column: 3; grid-row: 1; }
body.public-site .gallery-dialog button:hover { background: #514136; border-color: #f2bc86; }
body.public-site .gallery-dialog__footer {
  grid-column: 2;
  grid-row: 2;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 24px;
  min-width: 0;
}
body.public-site .gallery-dialog__caption {
  margin: 0;
  color: #faf4e9;
  font-size: clamp(0.9rem, 2vw, 1.15rem);
  line-height: 1.5;
  overflow-wrap: anywhere;
  max-height: 20vh;
  overflow-y: auto;
}
body.public-site .gallery-dialog__counter {
  margin: 0;
  flex-shrink: 0;
  color: #d6c7b4;
  font-family: var(--font-mono, monospace);
  font-size: 0.85rem;
  font-variant-numeric: tabular-nums;
}
body.public-site .gallery-dialog__status {
  grid-column: 2;
  grid-row: 3;
  min-height: 1.5em;
  margin: 0;
  color: #cfc1b2;
  font-size: 0.85rem;
  line-height: 1.5;
}
body.public-site .gallery-dialog.has-error .gallery-dialog__stage {
  background: repeating-linear-gradient(135deg, #191715 0 14px, #211e1b 14px 15px);
  border: 1px solid #55493d;
}
body.public-site .gallery-dialog.has-error .gallery-dialog__status { color: #ffd8b0; }
body.public-site .gallery-dialog.is-loading .gallery-dialog__status::before {
  content: "";
  display: inline-block;
  width: 0.8em;
  height: 0.8em;
  margin-right: 0.7em;
  border: 2px solid #655749;
  border-top-color: #f2bc86;
  border-radius: 50%;
  vertical-align: -0.1em;
  animation: public-gallery-spin 800ms linear infinite;
}
@keyframes public-gallery-spin { to { transform: rotate(360deg); } }
@media (max-width: 600px) {
  body.public-site .gallery-dialog {
    grid-template-columns: 48px minmax(0, 1fr) 48px;
    grid-template-rows: minmax(0, 1fr) auto auto auto;
    padding-inline: max(12px, env(safe-area-inset-left)) max(12px, env(safe-area-inset-right));
  }
  body.public-site .gallery-dialog__stage { grid-column: 1 / -1; }
  body.public-site .gallery-dialog__nav { grid-row: 2; }
  body.public-site .gallery-dialog__nav--next { justify-self: end; }
  body.public-site .gallery-dialog__footer { grid-column: 1 / -1; grid-row: 3; gap: 12px; }
  body.public-site .gallery-dialog__status { grid-column: 1 / -1; grid-row: 4; }
}
@media (prefers-reduced-motion: reduce) {
  body.public-site *, body.public-site *::before, body.public-site *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    transition-delay: 0ms !important;
    scroll-behavior: auto !important;
  }
  body.public-site.js-enabled [data-reveal].reveal-pending,
  body.public-site.js-enabled img[data-fade] { opacity: 1 !important; transform: none !important; filter: none !important; clip-path: none !important; }
  body.public-site [data-parallax], body.public-site .hero [data-depth] { translate: none !important; }
  body.public-site .asset-card__frame,
  body.public-site .asset-card:hover,
  body.public-site .asset-card:hover .asset-card__img,
  body.public-site .collection-card:hover,
  body.public-site .creator-card:hover,
  body.public-site .hero-frame:hover { transform: none !important; }
}
@media print {
  body.public-site .gallery-dialog, body.public-site .asset-card__preview { display: none !important; }
  body.public-site.js-enabled [data-reveal].reveal-pending,
  body.public-site.js-enabled img[data-fade] { opacity: 1 !important; transform: none !important; filter: none !important; clip-path: none !important; }
}
