/* ============================================================================
   PREVIOUSLY · BROWSE — styles (2026-09-28)
   Golden design: one cream page (#FAF6EE), transparent bordered cards,
   dark ink text everywhere. Playfair Display for display, Inter for body.
   ============================================================================ */
@font-face{
  font-family:'Playfair Display';font-style:normal;font-weight:400 900;
  font-display:swap;src:url('../fonts/playfair-var.woff2') format('woff2');
}@font-face{
  font-family:'Inter';font-style:normal;font-weight:100 900;
  font-display:swap;src:url('../fonts/inter-var.woff2') format('woff2');
}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{
  background:var(--pv-noir);color:var(--pv-ivory);
  font-family:var(--pv-sans);
  font-size:var(--pv-body);line-height:var(--pv-leading-body);
  -webkit-font-smoothing:antialiased;min-height:100vh;
  overflow-x:hidden;
}img{display:block;max-width:100%}a{color:inherit}:focus{outline:none}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[role="button"]:focus-visible,video:focus-visible,audio:focus-visible{outline:var(--pv-focus-outline);outline-offset:2px;border-radius:4px}/* ============================================================================
   PAGE BODY — 1280px centered, zero sideways scroll
   ============================================================================ */
main{
  max-width:1760px;margin:0 auto;
  padding:0 var(--pv-gutter) 96px;
}/* the uniform search bar lives in the locked slot: right under the hero,
   above the first content block */
main .pv-search{margin-top:var(--pv-s8)}.pv-block{margin-top:var(--pv-s16)}.pv-block__head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:var(--pv-s6)}.pv-kicker{
  font-size:var(--pv-label);font-weight:800;letter-spacing:var(--pv-track-xl);
  text-transform:uppercase;color:var(--pv-red);margin-bottom:var(--pv-s2);
}.pv-block__head h2{
  font-family:var(--pv-serif);font-weight:700;font-size:var(--pv-title);
  line-height:var(--pv-leading-title);letter-spacing:var(--pv-track-tight);
}/* ---- reveal (with the 3.5s safety net in JS) ---- */
.fx .rv{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s var(--pv-ease)}.fx .rv.in{opacity:1;transform:none}/* ---- borderless poster tiles: artwork + text, no cards ---- */
.pv-lane{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--pv-s6) var(--pv-s4)}.pv-tile{
  display:block;text-decoration:none;min-width:0;border-radius:var(--pv-r-sm);
  transition:transform .18s var(--pv-ease);
}@media(hover:hover){.pv-tile:hover{transform:translateY(-3px)}}.pv-tile:active{transform:scale(.98)}.pv-tile__art{
  width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:14px;
  box-shadow:var(--pv-shadow-card);transition:box-shadow .2s ease;
  background:var(--pv-noir-3);
}@media(hover:hover){.pv-tile:hover .pv-tile__art{box-shadow:0 18px 44px rgba(var(--desert-shadow-rgb), .6),0 0 34px rgba(var(--brand-red-rgb), .22)}}.pv-tile__t{
  display:block;margin-top:12px;font-size:14.5px;font-weight:650;line-height:1.35;
  color:var(--pv-ivory);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}.pv-tile__s{
  display:block;margin-top:3px;font-size:12.5px;font-weight:500;color:var(--pv-ivory-dim);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

/* ---- type + genre filters: UNDERLINE style (James, 2026-10-01) ----
   No pills, no dropdown. Plain text labels;the ACTIVE filter gets a 2px
   signal-red underline. Inactive labels keep a transparent underline so
   activation never shifts layout. */
.pv-chips{
  display:flex;gap:6px 22px;flex-wrap:wrap;margin-bottom:var(--pv-s8);
}.pv-chip{
  min-height:var(--pv-target-min);padding:10px 2px 8px;border:none;background:none;cursor:pointer;
  border-bottom:2px solid transparent; /* reserved space — no shift on activate */
  color:var(--pv-ivory-dim);
  font-size:13.5px;font-weight:600;letter-spacing:.06em;font-family:var(--pv-sans);
  transition:color .18s,border-color .18s;
}@media(hover:hover){.pv-chip:hover{color:var(--pv-ivory)}}.pv-chip[aria-pressed="true"]{color:var(--pv-ivory);border-bottom-color:var(--pv-red)}.pv-chip:focus-visible{outline:var(--pv-focus-outline);outline-offset:4px}/* ---- every-title grid: borderless poster cards ---- */
.pv-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--pv-s8) var(--pv-s4)}.pv-card{
  display:block;text-decoration:none;min-width:0;border-radius:var(--pv-r-sm);
  transition:transform .18s var(--pv-ease);
  scroll-margin-top:calc(var(--pv-nav-h) + 90px);
}@media(hover:hover){.pv-card:hover{transform:translateY(-3px)}}.pv-card:active{transform:scale(.98)}.pv-card__art{
  width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:14px;
  box-shadow:var(--pv-shadow-card);transition:box-shadow .2s ease;
  background:var(--pv-noir-3);
}@media(hover:hover){.pv-card:hover .pv-card__art{box-shadow:0 22px 50px rgba(var(--desert-shadow-rgb), .6),0 0 40px rgba(var(--brand-red-rgb), .20)}}.pv-card__t{
  display:block;margin-top:12px;font-size:14.5px;font-weight:650;line-height:1.35;color:var(--pv-ivory);
}.pv-card__s{display:block;margin-top:3px;font-size:12.5px;color:var(--pv-ivory-dim)}/* ---- honest empty state (never a spinner) ---- */
.pv-empty{
  text-align:center;padding:var(--pv-s16) var(--pv-s6);max-width:520px;margin:0 auto;
}.pv-empty__t{font-family:var(--pv-serif);font-size:var(--pv-h3);font-weight:700}.pv-empty__d{margin-top:var(--pv-s2);color:var(--pv-ivory-dim)}.pv-empty .pv-btn{margin-top:var(--pv-s6)}.pv-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:var(--pv-target-min);padding:0 30px;border-radius:var(--pv-r-pill);
  font-weight:800;font-size:15px;font-family:var(--pv-sans);cursor:pointer;
  transition:transform .15s var(--pv-ease),background .18s,border-color .18s;
}.pv-btn:active{transform:scale(.97)}.pv-btn--ghost{border:1px solid var(--pv-rule);color:var(--pv-ivory);background:none}@media(hover:hover){.pv-btn--ghost:hover{border-color:rgba(var(--desert-ink-rgb), .5)}}.pv-fineprint{margin-top:var(--pv-s12);font-size:12.5px;color:var(--pv-ivory-faint);line-height:1.7;max-width:640px}/* ============================================================================
   PHONE (under 1024px)
   ============================================================================ */
@media(max-width:1023.98px){
  main{padding:0 var(--pv-gutter-sm) 80px}
  .pv-block{margin-top:var(--pv-s12)}
  .pv-block__head h2{font-size:24px}
  /* lanes become contained snap rails on phone — the rail scrolls inside
     its own bounds; the page never scrolls sideways */
  .pv-lane{
    display:grid;grid-auto-flow:column;grid-auto-columns:minmax(140px,38vw);
    gap:14px;overflow-x:auto;margin:0 calc(-1 * var(--pv-gutter-sm));
    padding:4px var(--pv-gutter-sm) 16px;scroll-snap-type:x proximity;
    scrollbar-width:none;-webkit-overflow-scrolling:touch;
  }
  .pv-lane::-webkit-scrollbar{display:none}
  .pv-tile{scroll-snap-align:start}
  .pv-tile__t{font-size:13px}
  .pv-grid{grid-template-columns:repeat(3,1fr);gap:var(--pv-s6) var(--pv-s4)}
  .pv-card__t{font-size:13px}
  .pv-chips{flex-wrap:nowrap;overflow-x:auto;margin:0 calc(-1 * var(--pv-gutter-sm));padding:2px var(--pv-gutter-sm) 12px;scrollbar-width:none}
  .pv-chips::-webkit-scrollbar{display:none}
  .pv-chip{flex:none}
}/* ---- reduced motion: hero rotation off, glow off, reveals instant ---- */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .fx .rv{opacity:1;transform:none}
}.pv-visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}/* ============ skeleton placeholders (instant grid, James 2026-10-01) ============ */
.pv-sk{min-width:0}.pv-sk__art{width:100%;aspect-ratio:2/3;border-radius:14px;background:var(--pv-noir-3)}.pv-sk__t{margin-top:12px;height:14px;border-radius:6px;background:var(--pv-noir-3);width:85%}.pv-sk__s{margin-top:6px;height:12px;border-radius:6px;background:var(--pv-noir-3);width:60%}.pv-sk__art,.pv-sk__t,.pv-sk__s{
  background-image:linear-gradient(100deg,transparent 20%,rgba(var(--desert-card-rgb), .06) 50%,transparent 80%);
  background-size:200% 100%;
  animation:pv-sk-shimmer 1.4s ease-in-out infinite;
}@keyframes pv-sk-shimmer{0%{background-position:180% 0}100%{background-position:-80% 0}}@media(prefers-reduced-motion:reduce){.pv-sk__art,.pv-sk__t,.pv-sk__s{animation:none}}/* ============ lazy image placeholders (James 2026-10-01) ============ */
.pv-card__art.pv-lazy{background:var(--pv-noir-3);min-height:120px}.pv-card__art:not(.pv-lazy){background:none}
