/* Collect client brand tokens (ADR-0043). Loaded with client shell chrome on
   every public route, including routes that do not load collectibles CSS.

   Collect consistency system (2026-08): all public and commerce routes share
   one warm-light page theme. The dark film world remains available only to
   the contained rip/reveal surface. */
:root {
  /* Reassert the client-wide semantic surface so cart and payment do not
     switch themes after a collector leaves the album flow. */
  --surface-primary: 247 244 241;
  --surface-secondary: 255 255 255;
  --surface-hover: 241 236 231;
  --fg-primary: 40 35 32;
  --fg-secondary: 87 80 74;
  --fg-tertiary: 117 108 100;
  --fg-muted: 117 108 100;
  --fg-link: 18 87 196;
  --fg-link-hover: 14 71 163;
  --fg-on-brand: 255 255 255;
  --border-primary: 237 231 225;
  --border-secondary: 216 206 197;
  --surface-brand: 219 79 0;
  --surface-brand-hover: 184 66 0;

  /* Chrome colors are client-owned constants. Reassert them after the shared
     semantic theme so tenant accent tokens cannot recolor the global header. */
  --sm-brown: #4e2817;
  --sm-brown-2: #3b1b0a;
  --sm-nav-height: 52px;
  --sm-nav-brown: #4e2817;
  --sm-pro-brown: #6e4432;
  --sm-orange: #db4f00;
  --sm-orange-2: #b84200;
  --sm-orange-accessible: #a33b00;
  --sm-blue: #1257c4;
  --sm-blue-2: #0e47a3;
  --sm-blue-active: #0b3c8b;
  --sm-blue-wash: #edf3ff;
  /* The supplied storefront reference is art-directed slightly lighter than
     the cross-platform identity orange. Scope that sample to landing media. */
  --sm-landing-orange: #f97805;
  --sm-landing-orange-2: #e26e07;

  /* Standalone chrome surface/layout roles. These mirror the module defaults
     through PlatformKit semantic tokens, but live here because nav/footer
     chrome must remain complete without collectibles/collect.css. */
  --sm-page: #f7f4f1;
  --sm-page-2: #f1ece7;
  --sm-card: #ffffff;
  --sm-selected: #fff1e3;
  --sm-text: #282320;
  --sm-text-2: #57504a;
  --sm-muted: #756c64;
  --sm-text-muted: var(--sm-muted);
  --sm-border: #ede7e1;
  --sm-border-2: #d8cec5;
  --sm-progress-track: #ede7e1;
  --sm-content-max: 1200px;
  --sm-content-pad: 24px;
  --sm-radius-btn: 6px;
  --shadow-lift: 0 14px 30px rgba(40,35,32,.12), 0 4px 8px rgba(40,35,32,.08);

  /* world: crushed black + tungsten pool */
  --collect-black: #0b0b0b;
  --collect-surface: #17140d;
  --collect-surface-2: #1f1a12;
  --collect-tungsten: #c59d6c;
  --collect-tungsten-deep: #544634;

  /* rarity language: the only cool light in the world */
  --collect-holo: linear-gradient(100deg, #9573df 0%, #514cee 22%, #679daf 45%, #0c864b 62%, #feca02 82%, #e26302 100%);
  --collect-holo-soft: linear-gradient(100deg, rgba(149,115,223,.35), rgba(81,76,238,.35), rgba(103,157,175,.35), rgba(12,134,75,.35));
  --collect-glitter: #b8bbb8;

  /* light behaves differently in a dark room: glow, not drop shadow */
  --glow-tungsten: 0 0 40px rgba(197,157,108,.18), 0 0 120px rgba(197,157,108,.07);
  --glow-holo: 0 0 24px rgba(149,115,223,.25), 0 0 60px rgba(103,157,175,.12);
}

.collect-landing {
  --landing-orange: var(--sm-landing-orange);
  --landing-orange-2: var(--sm-landing-orange-2);
}

/* ----- public error surface -------------------------------------------
   The illustration and print-proof language come from the client handoff;
   layout, contrast, spacing, and controls stay on PlatformKit semantic
   surfaces so this component can live inside the normal public shell. */
.collect-error-page {
  width: 100%;
  padding: 3.5rem 1rem 4.5rem;
  overflow: hidden;
}
.collect-error-page__inner { display: grid; gap: 3rem; }
.collect-error-page__copy { max-width: 36rem; }
.collect-error-page__eyebrow,
.collect-error-page__visual-header,
.collect-error-page__status,
.collect-error-page__stamp-number,
.collect-error-page__stamp-label {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}
.collect-error-page__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  color: rgb(var(--fg-brand));
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .14em;
  line-height: 1.2;
}
.collect-error-page__dot {
  width: .5rem;
  height: .5rem;
  border-radius: 999px;
  background: var(--sm-orange);
}
.collect-error-page__status {
  display: inline-flex;
  align-items: center;
  margin-left: .5rem;
  padding: .375rem .625rem;
  border: 1px solid rgb(var(--border-primary));
  border-radius: .625rem;
  background: rgb(var(--surface-secondary));
  color: rgb(var(--fg-muted));
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .1em;
  white-space: nowrap;
}
.collect-error-page__title {
  margin: 1.25rem 0 0;
  color: rgb(var(--fg-primary));
  font-size: clamp(3.25rem, 8vw, 5.5rem);
  font-weight: 800;
  letter-spacing: -.055em;
  line-height: .94;
}
.collect-error-page__lead {
  margin: 1.25rem 0 0;
  color: rgb(var(--fg-secondary));
  font-size: clamp(1.35rem, 3vw, 1.9rem);
  line-height: 1.15;
}
.collect-error-page__message {
  max-width: 32rem;
  margin: 1.25rem 0 0;
  color: rgb(var(--fg-tertiary));
  font-size: 1rem;
  line-height: 1.65;
}
.collect-error-page__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
  margin-top: 1.75rem;
}
.collect-error-page__primary,
.collect-error-page__secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: .625rem 1.125rem;
  border-radius: .625rem;
  font-size: .875rem;
  font-weight: 700;
  text-decoration: none;
  transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease, transform 150ms ease;
}
.collect-error-page__primary {
  border: 1px solid var(--sm-orange);
  background: var(--sm-orange);
  color: #fff;
}
.collect-error-page__primary:hover { background: var(--sm-orange-2); transform: translateY(-1px); }
.collect-error-page__secondary {
  border: 1px solid rgb(var(--border-primary));
  background: rgb(var(--surface-secondary));
  color: rgb(var(--fg-secondary));
}
.collect-error-page__secondary:hover { background: rgb(var(--surface-hover)); }
.collect-error-page__visual {
  position: relative;
  width: 100%;
  max-width: 34rem;
  margin: 0 auto;
  padding: 1rem;
  overflow: hidden;
  border: 1px solid rgb(var(--border-primary));
  border-radius: .875rem;
  background: rgb(var(--surface-secondary));
  box-shadow: var(--shadow-md);
}
.collect-error-page__visual-header {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  color: rgb(var(--fg-muted));
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .12em;
}
.collect-error-page__artwork {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 18rem;
}
.collect-error-page__artwork img {
  display: block;
  width: 100%;
  height: 18rem;
  object-fit: contain;
}
.collect-error-page__path {
  position: absolute;
  z-index: 0;
  top: 4.5rem;
  right: 1.5rem;
  width: 15rem;
  height: 6rem;
  color: var(--sm-orange);
  opacity: .45;
  pointer-events: none;
}
.collect-error-page__stamp {
  position: relative;
  z-index: 2;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  align-self: flex-start;
  padding: .625rem 1rem;
  border: 1px dashed var(--sm-orange);
  border-radius: .625rem;
  background: color-mix(in srgb, var(--sm-orange) 10%, transparent);
  color: var(--sm-orange);
}
.collect-error-page__stamp-number { font-size: .8125rem; font-weight: 700; letter-spacing: .08em; }
.collect-error-page__stamp-label { margin-top: .375rem; color: rgb(var(--fg-muted)); font-size: .625rem; letter-spacing: .14em; }
@media (min-width: 640px) {
  .collect-error-page { padding-inline: 1.5rem; padding-block: 5rem 6rem; }
  .collect-error-page__visual { padding: 1.5rem; }
  .collect-error-page__artwork,
  .collect-error-page__artwork img { height: 22rem; min-height: 22rem; }
}
@media (min-width: 1024px) {
  .collect-error-page__inner { grid-template-columns: minmax(0, 1fr) minmax(22rem, 34rem); align-items: center; gap: 5rem; max-width: 70rem; margin-inline: auto; }
  .collect-error-page__copy { text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
  .collect-error-page__primary,
.collect-error-page__secondary { transition: none; }
}
