/* RedOwl Detective Series — executive case-file archive */
.ds-page { --ds-r: 4px; --ds-pale: #AAC1BF; }
.ds-page section { padding: 72px 0; }
.ds-page h1, .ds-page h2, .ds-page h3 { color: var(--text-primary); letter-spacing: -0.02em; }
.ds-eyebrow, .ds-case {
  font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--text-muted); margin: 0 0 0.9rem; display: flex; align-items: center; gap: 0.5rem;
}
.ds-eyebrow::before { content: ""; width: 22px; height: 2px; background: var(--brand-crimson); }

/* Hero */
.ds-hero { position: relative; overflow: hidden; padding-top: 40px !important; }
.ds-field {
  position: absolute; right: -6%; top: 50%; width: 78%; max-width: 1200px; transform: translateY(-50%);
  opacity: 0.55; pointer-events: none; z-index: 0; mix-blend-mode: multiply;
  animation: ds-drift 28s ease-in-out infinite alternate;
}
[data-theme="dark"] .ds-field { mix-blend-mode: screen; opacity: 0.18; filter: invert(1); }
@keyframes ds-drift { from { transform: translateY(-50%) translateX(0); } to { transform: translateY(-51.5%) translateX(-14px); } }
.ds-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 48px; align-items: center; }
.ds-hero h1 { font-size: clamp(2.4rem, 5vw, 3.8rem); font-weight: 800; line-height: 1.05; margin: 0 0 1.25rem; }
.ds-standfirst { font-size: 1.15rem; line-height: 1.65; color: var(--text-secondary); max-width: 560px; margin: 0 0 2rem; }
.ds-ctas { display: flex; flex-wrap: wrap; gap: 12px; }
.ds-ctas .btn { border-radius: 0.125rem; }
.ds-support { margin: 1.5rem 0 0; font-size: 0.9rem; color: var(--text-muted); }
.ds-hero-art { display: flex; justify-content: center; }
.ds-hero-art img { width: 100%; max-width: 440px; height: auto; aspect-ratio: 958 / 1024; object-fit: contain; }

/* Media */
.ds-facade {
  position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; padding: 0; border: 1px solid var(--border-subtle);
  border-radius: 0.125rem; overflow: hidden; background: #161C16; cursor: pointer;
}
.ds-facade img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease, opacity .3s; }
.ds-facade iframe, .ds-frame { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.ds-play {
  position: absolute; left: 50%; top: 50%; width: 64px; height: 64px; transform: translate(-50%, -50%);
  border-radius: 50%; background: rgba(22, 28, 22, 0.78); display: grid; place-items: center; transition: background .25s, transform .25s;
}
.ds-play svg { width: 26px; height: 26px; fill: #F5F5ED; margin-left: 3px; }
.ds-facade:hover .ds-play, .ds-facade:focus-visible .ds-play { background: var(--brand-crimson); transform: translate(-50%, -50%) scale(1.05); }
.ds-facade:focus-visible, .ds-watch:focus-visible { outline: 2px solid var(--brand-crimson); outline-offset: 3px; }

/* Latest */
.ds-latest { background: var(--bg-surface-elevated); border-block: 1px solid var(--border-subtle); }
.ds-latest-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 48px; align-items: center; }
.ds-latest h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); font-weight: 800; margin: 0 0 1rem; }
.ds-latest-copy p:not(.ds-case) { color: var(--text-secondary); font-size: 1.05rem; line-height: 1.7; margin: 0; }
.ds-pulse { width: 8px; height: 8px; border-radius: 50%; background: var(--brand-crimson); animation: ds-pulse 2.4s ease-out infinite; }
@keyframes ds-pulse { 0% { box-shadow: none; } 100% { box-shadow: none; } }

/* Archive + clues */
.ds-head { max-width: 640px; margin-bottom: 2.5rem; }
.ds-head h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); font-weight: 800; margin: 0 0 .75rem; }
.ds-head p { color: var(--text-secondary); line-height: 1.65; margin: 0; }
.ds-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ds-card, .ds-clue {
  background: var(--bg-surface); border: 1px solid var(--border-subtle); border-radius: 0.125rem;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s;
}
.ds-card { overflow: hidden; display: flex; flex-direction: column; }
.ds-card .ds-facade { border: 0; border-bottom: 1px solid var(--border-subtle); border-radius: 0; }
.ds-card:hover { transform: translateY(-3px); box-shadow: none; border-color: var(--border-strong); }
.ds-card-body { padding: 22px; display: flex; flex-direction: column; flex: 1; }
.ds-card-body h3 { font-size: 1.2rem; font-weight: 700; margin: 0 0 .6rem; }
.ds-card-body p:not(.ds-case) { color: var(--text-secondary); line-height: 1.6; font-size: .95rem; margin: 0 0 1.25rem; flex: 1; }
.ds-watch { align-self: flex-start; background: none; border: 0; padding: 0; font: inherit; font-weight: 600; color: var(--text-primary); cursor: pointer; }
.ds-watch:hover { color: var(--brand-crimson); }
.ds-clue { padding: 28px; }
.ds-clue svg { width: 28px; height: 28px; fill: none; stroke: var(--brand-crimson); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; margin-bottom: 1rem; }
.ds-clue h3 { font-size: 1.15rem; font-weight: 700; margin: 0 0 .5rem; }
.ds-clue p { color: var(--text-secondary); line-height: 1.6; margin: 0; }

.ds-final { text-align: center; background: var(--bg-surface-elevated); border-top: 1px solid var(--border-subtle); }
.ds-final h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); font-weight: 800; margin: 0 0 1rem; }
.ds-final p { color: var(--text-secondary); max-width: 620px; margin: 0 auto 2rem; line-height: 1.65; }
.ds-final .ds-ctas { justify-content: center; }

@media (max-width: 900px) {
  .ds-page section { padding: 48px 0; }
  .ds-hero-grid, .ds-latest-grid { grid-template-columns: 1fr; gap: 32px; }
  .ds-hero-art img { max-width: 320px; }
  .ds-field { width: 140%; right: -40%; top: 72%; opacity: .35; }
  .ds-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .ds-field, .ds-pulse { animation: none; }
  .ds-card, .ds-card:hover { transition: none; transform: none; }
}
.ds-yt { display:inline-block; margin-top:.75rem; font-size:.9rem; font-weight:600; color:var(--text-muted); text-decoration:underline; text-underline-offset:3px; } .ds-yt:hover { color:var(--brand-crimson); }
