/* On the Clock — the casting deck.
   One card system, shared by the homepage shop window and the /agents/ casting
   room. Every rule is scoped to .cast-deck so it can never reach another page's
   components, and the two hosts only supply the surrounding layout. */
.cast-deck{
  --cast-w:min(440px,max(300px,(100vw - 72px)/3.35));
  --cast-gap:24px;
  --cast-rule:#dcd8cf;
  --cast-ink:#0c0c0c;
  --cast-muted:#55564d;
  --cast-paper:#fffdf8;
  --cast-lime:#d8f34a;
  --cast-serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --cast-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --cast-clock:Clock,"Helvetica Neue",Arial,sans-serif;
}

/* ---------- the card ---------- */
.cast-deck .cast-card{position:relative;background:var(--cast-paper);border:1px solid var(--cast-rule);
  border-radius:4px;box-shadow:0 1px 0 #0000000a;transition:transform .28s cubic-bezier(.2,.7,.3,1),
  box-shadow .28s cubic-bezier(.2,.7,.3,1),border-color .28s ease}
/* the punched corner of a call sheet */
.cast-deck .cast-card::after{content:"";position:absolute;right:-1px;top:-1px;width:22px;height:22px;
  background:linear-gradient(225deg,#f4f1e8 0 50%,transparent 50%);border-left:1px solid var(--cast-rule);
  border-bottom:1px solid var(--cast-rule);border-radius:0 4px 0 0}
.cast-deck .cast-link{display:flex;flex-direction:column;height:100%;padding:16px 18px 18px;
  text-decoration:none;color:inherit;-webkit-tap-highlight-color:transparent}
.cast-deck .cast-slate{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  border-bottom:1px solid var(--cast-rule);padding-bottom:10px}
.cast-deck .cast-no{font-family:var(--cast-clock);font-weight:800;font-size:1.65rem;letter-spacing:-.05em;
  line-height:1;color:var(--accent-ink)}
.cast-deck .cast-tag{font-family:var(--cast-mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--cast-muted)}
.cast-deck .cast-frame{position:relative;display:block;margin:14px 0 0;border-radius:3px;overflow:hidden;
  background:color-mix(in srgb,var(--accent) 26%,#fff)}
.cast-deck .cast-frame img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;
  transition:transform .5s cubic-bezier(.2,.7,.3,1)}
/* a studio lamp passing across the talent, not a shine effect */
.cast-deck .cast-sweep{position:absolute;inset:0;pointer-events:none;opacity:0;
  background:linear-gradient(105deg,transparent 34%,#fff6 47%,#ffffff26 56%,transparent 68%);
  transform:translateX(-30%);transition:opacity .3s ease}
.cast-deck .cast-name{display:block;font-family:var(--cast-clock);font-weight:800;letter-spacing:-.035em;
  font-size:1.42rem;line-height:1;margin-top:15px}
.cast-deck .cast-line{display:block;font-family:var(--cast-serif);font-size:1.02rem;line-height:1.3;
  color:var(--cast-muted);margin-top:8px}
.cast-deck .cast-specs{margin:14px 0 0;padding:0;border-top:1px solid var(--cast-rule)}
.cast-deck .cast-specs div{display:flex;align-items:baseline;justify-content:space-between;gap:14px;
  border-bottom:1px solid #e8e4da;padding:7px 0}
.cast-deck .cast-specs dt{font-family:var(--cast-mono);font-size:10px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--cast-muted);margin:0}
.cast-deck .cast-specs dd{margin:0;font-size:.9rem;text-align:right}
/* the line that only appears when you lean in */
.cast-deck .cast-reveal{display:block;font-family:var(--cast-serif);font-size:.92rem;line-height:1.3;
  color:var(--cast-muted);margin-top:10px;opacity:0;transform:translateY(-4px);
  max-height:0;overflow:hidden;transition:opacity .26s ease,transform .26s ease,max-height .26s ease}
.cast-deck .cast-reveal-k{font-family:var(--cast-mono);font-size:10px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--accent-ink);margin-right:7px}
.cast-deck .cast-cta{display:inline-flex;align-items:center;gap:9px;margin-top:auto;padding-top:14px;
  font-family:var(--cast-clock);font-weight:800;letter-spacing:-.02em;font-size:1rem}
.cast-deck .cast-cta span{display:inline-block;transition:transform .3s cubic-bezier(.2,.7,.3,1)}
.cast-deck .cast-cta::before{content:"";position:absolute;left:18px;right:18px;bottom:16px;height:1.5px;
  background:var(--accent-ink);transform:scaleX(0);transform-origin:left;
  transition:transform .34s cubic-bezier(.2,.7,.3,1)}

@media (hover:hover){
  .cast-deck .cast-card:hover,.cast-deck .cast-card:focus-within{transform:translateY(-6px);
    box-shadow:0 14px 30px -18px #1d1a0f5c,0 2px 0 #00000008;border-color:#c9c4b6}
  .cast-deck .cast-card:hover .cast-frame img,
  .cast-deck .cast-card:focus-within .cast-frame img{transform:scale(1.035)}
  .cast-deck .cast-card:hover .cast-sweep,
  .cast-deck .cast-card:focus-within .cast-sweep{opacity:1}
  .cast-deck .cast-card:hover .cast-reveal,
  .cast-deck .cast-card:focus-within .cast-reveal{opacity:1;transform:none;max-height:5em}
  .cast-deck .cast-card:hover .cast-cta span,
  .cast-deck .cast-card:focus-within .cast-cta span{transform:translate(3px,-3px)}
  .cast-deck .cast-card:hover .cast-cta::before,
  .cast-deck .cast-card:focus-within .cast-cta::before{transform:scaleX(1)}
}
.cast-deck .cast-link:focus-visible{outline:3px solid var(--cast-ink);outline-offset:4px;border-radius:4px}

/* ---------- the carousel: the roster passing in front of you ---------- */
.cast-rail{position:relative}
.cast-rail .cast-track{display:flex;gap:var(--cast-gap);overflow-x:auto;overscroll-behavior-x:contain;
  scrollbar-width:none;-ms-overflow-style:none;padding:8px var(--cast-edge,40px) 22px;cursor:grab}
.cast-rail .cast-track::-webkit-scrollbar{display:none}
.cast-rail .cast-track.is-dragging{cursor:grabbing;scroll-snap-type:none}
.cast-rail .cast-track>.cast-card{flex:0 0 var(--cast-w);scroll-snap-align:center}
.cast-rail .cast-track.is-dragging .cast-link{pointer-events:none}
/* the roster fades out at the edges rather than being cut off */
.cast-rail::before,.cast-rail::after{content:"";position:absolute;top:0;bottom:0;width:36px;z-index:2;
  pointer-events:none;background:linear-gradient(90deg,var(--cast-fade,#fbfaf7),transparent)}
.cast-rail::after{right:0;transform:scaleX(-1)}
.cast-rail::before{left:0}
.cast-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  margin-top:6px}
.cast-hint{font-family:var(--cast-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--cast-muted);margin:0}

/* ---------- the casting room grid ---------- */
.cast-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.cast-grid .cast-card{opacity:1;transform:none;transition:transform .36s cubic-bezier(.2,.7,.3,1),
  opacity .28s ease,box-shadow .28s ease,border-color .28s ease}
.cast-grid .cast-card[hidden]{display:none}
.cast-grid .cast-card.is-entering{opacity:0;transform:translateY(10px) scale(.985)}

@media (max-width:960px){
  .cast-grid{grid-template-columns:1fr 1fr;gap:22px}
}
@media (max-width:700px){
  .cast-deck{--cast-w:min(78vw,330px);--cast-gap:16px;--cast-edge:22px}
  .cast-grid{grid-template-columns:1fr;gap:18px}
  .cast-rail::before,.cast-rail::after{width:26px}
  .cast-deck .cast-name{font-size:1.34rem}
  .cast-deck .cast-link{padding:14px 16px 16px}
}
@media (prefers-reduced-motion:reduce){
  .cast-deck *{transition:none!important;animation:none!important}
  .cast-deck .cast-card:hover{transform:none}
  .cast-rail .cast-track{scroll-behavior:auto}
}
