﻿/* ---------------------------------------------------------------------------
 * LCA! Film Festival 2026 — refinement layer
 *
 * Ported into this repository under LCA2026-SITE-010 (decision D-018) from the
 * Living Experience workspace. Design language adopted by the owner.
 *
 * AUTHORITY
 *   assets/css/tokens.css owns every design value. This file consumes tokens
 *   and defines none. It must never redefine a --color-*, --font-*, --duration-*,
 *   --easing-*, --space-* or --display-* custom property.
 *
 * CASCADE CONTRACT
 *   This layer SUPPLEMENTS production CSS; it never replaces it. It is linked
 *   AFTER the page's own stylesheet so it wins only where specificity is equal
 *   or higher. `.btn` itself stays owned by assets/css/components.css.
 *
 * Namespace is `.r06-`. Every rule below is as authored in the source layer
 * except this comment block.
 * ------------------------------------------------------------------------ */

.r06-article-cover { padding-block:2rem 4rem; --r06-texture-opacity:.07; }
.r06-article-cover h1 { max-width:29ch; }
.r06-article-cover .r06-lead { max-width:65ch; margin-top:1.75rem; }
.r06-article-cover .breadcrumbs { margin-bottom:2rem; font-size:.72rem; }
.r06-article-frontispiece { margin-top:-1.5rem; position:relative; }
.r06-article-photo { max-width:1000px; margin-left:auto; }
.r06-article-photo img { width:100%; height:clamp(220px,37vw,480px); object-fit:cover; }
.r06-article--1 .r06-article-photo img { object-fit:contain; background:var(--color-ink); }
.r06-article-photo figcaption { font-size:.74rem; max-width:65ch; margin-top:.75rem; }
.r06-article-layout { display:grid; grid-template-columns:230px minmax(0,1fr); gap:5rem; padding-block:4rem var(--section); }
.r06-article-side { position:sticky; top:2rem; align-self:start; border-top:5px solid var(--color-coral); padding-top:1rem; }
.r06-article-side nav { display:grid; margin-bottom:2rem; }
.r06-article-side nav a { padding:.65rem 0; border-bottom:var(--border); text-decoration:none; font-size:.82rem; }
.r06-article-side nav a:hover { color:var(--color-teal); padding-left:.35rem; }
.r06-article-chapter { padding-bottom:2.5rem; }
.r06-article-chapter+.r06-article-chapter { padding-top:2rem; border-top:1px solid var(--color-line); }
.r06-article-chapter h2 { font-size:var(--display-md); max-width:35ch; }
.r06-article-chapter .article-section-meta { color:var(--color-teal); font-size:.8rem; text-transform:uppercase; font-weight:700; letter-spacing:.07em; }
.r06-article-pull { padding:2.5rem; margin-block:.5rem 3rem; background:var(--color-yellow); max-width:var(--reading); }
.r06-article-pull>p { font:700 clamp(1.05rem,1.5vw,1.35rem)/1.6 var(--font-body); }
.r06-article-break { margin-block:1rem 3rem; max-width:var(--reading); }
.r06-article-break img { aspect-ratio:16/9; object-fit:cover; }
.r06-article-break figcaption { font-size:.73rem; margin-top:.8rem; }
.r06-article--2 .r06-article-chapter:nth-of-type(3n+2) { padding:2rem; margin-left:-2rem; background:var(--color-paper-warm); border-left:6px solid var(--color-yellow); }
@media(max-width:900px){.r06-article-layout{grid-template-columns:180px minmax(0,1fr);gap:2.5rem}}
@media(max-width:650px){.r06-article-layout{grid-template-columns:1fr;gap:2rem}.r06-article-side{position:static}.r06-article-side nav{grid-template-columns:1fr 1fr;gap:0 1rem}.r06-article--2 .r06-article-chapter:nth-of-type(3n+2){margin-left:0;padding:1.25rem}.r06-article-pull{padding:1.5rem}.r06-article-cover{padding-bottom:3rem}.r06-article-cover h1{font-size:2rem}.r06-article-cover .breadcrumbs{font-size:.65rem}}
