/* RC Films MX — Visión editorial. Estilos exclusivos de vision.html. */
.vision-page {
  --ve-ink:#101112;
  --ve-paper:#eeeae3;
  --ve-muted:#a6a7a8;
  --ve-accent:#b6d8e8;
  background:var(--ve-ink);
  color:var(--ve-paper);
  -webkit-font-smoothing:antialiased;
}
.vision-page .experience { overflow:clip; }
.vision-page .topbar {
  align-items:center;
  padding:20px clamp(24px,5vw,88px);
  background:rgba(16,17,18,.96);
  border-bottom:1px solid rgba(238,234,227,.12);
}
.vision-page .rc-mark { width:134px; }
.vision-page .topbar p { color:#bbbdbf; font-weight:500; font-size:10px; letter-spacing:.13em; }
.vision-page .topbar button { font-weight:500; font-size:10px; }
.vision-page .index-menu { background:rgba(16,17,18,.96); }
.vision-page .scroll-progress { background:var(--ve-accent); }
.vision-page .rc-audio-control { background:rgba(16,17,18,.9); }
.vision-page :is(a,button):focus-visible { outline:2px solid var(--ve-accent); outline-offset:6px; }
.vision-page .ve-paper :is(a,button):focus-visible { outline-color:#23536a; }
.ve-wrap { width:calc(100% - 2 * clamp(24px,5vw,88px)); max-width:1560px; margin-inline:auto; }
.ve-label { margin:0; font-size:10px; font-weight:500; letter-spacing:.16em; line-height:1.7; text-transform:uppercase; }
.ve-serif { font-family:Georgia,"Times New Roman",serif; font-weight:400; font-style:italic; letter-spacing:-.065em; }
.ve-dot { display:inline-block; width:5px; height:5px; margin-right:10px; background:var(--ve-accent); vertical-align:middle; }
.ve-hero { padding:132px 0 70px; }
.ve-page-meta { display:flex; justify-content:space-between; align-items:center; gap:20px; padding-bottom:14px; border-bottom:1px solid rgba(238,234,227,.24); }
.ve-page-meta a { display:flex; align-items:center; gap:18px; color:#bfc1c2; font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.ve-page-meta a:hover { color:#fff; }
.ve-page-meta svg { width:14px; height:14px; }
.ve-hero-grid { display:grid; grid-template-columns:1fr 1.23fr; gap:clamp(36px,5vw,80px); align-items:center; margin-top:50px; }
.ve-hero-copy { padding-bottom:35px; }
.ve-hero-copy>.ve-label { color:var(--ve-muted); }
.ve-hero h1 { margin:30px 0 28px; font-size:clamp(64px,7vw,112px); line-height:.98; letter-spacing:-.065em; font-weight:500; }
.ve-hero h1 em { display:inline-block; color:var(--ve-accent); font-size:1.15em; line-height:.9; }
.ve-intro { max-width:330px; margin:0; color:#bbbdbf; font-size:16px; line-height:1.8; letter-spacing:.005em; }
.ve-discover { display:inline-flex; gap:18px; align-items:center; min-height:48px; margin-top:31px; font-size:12px; }
.ve-discover>span { display:grid; place-items:center; width:40px; height:40px; border:1px solid #737677; border-radius:50%; transition:background 200ms ease,color 200ms ease,transform 200ms ease; }
.ve-discover svg { width:16px; height:16px; }
.ve-discover:hover>span { background:var(--ve-paper); color:var(--ve-ink); transform:translateY(3px); }
.ve-hero-visual { min-width:0; }
.ve-hero-visual figure { margin:0; }
.ve-hero-photo { display:block; width:100%; height:auto; aspect-ratio:16/9; background:#17232c; }
.ve-hero-caption { display:flex; justify-content:space-between; gap:16px; margin-top:13px; color:#b3b5b6; font-size:9px; line-height:1.7; letter-spacing:.09em; text-transform:uppercase; }
.ve-hero-after { display:grid; grid-template-columns:1fr 160px; align-items:center; gap:28px; margin-top:32px; }
.ve-hero-after blockquote { margin:0; }
.ve-hero-after blockquote p { margin:0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(25px,2.5vw,40px); font-style:italic; line-height:1.2; letter-spacing:-.035em; }
.ve-hero-after blockquote footer { margin-top:20px; color:var(--ve-muted); font-size:9px; line-height:1.7; letter-spacing:.1em; text-transform:uppercase; }
.ve-hero-detail img { display:block; width:100%; height:auto; aspect-ratio:4/5; }
.ve-hero-detail figcaption { margin-top:8px; color:var(--ve-muted); font-size:8px; letter-spacing:.12em; text-transform:uppercase; }
.ve-paper { background:var(--ve-paper); color:var(--ve-ink); }
.ve-manifesto { padding:95px 0 85px; scroll-margin-top:90px; }
.ve-manifesto-grid { display:grid; grid-template-columns:1fr 2.45fr; gap:50px; }
.ve-section-index { padding-top:12px; }
.ve-section-index .ve-label { padding-top:13px; border-top:1px solid #92908b; }
.ve-section-index p:last-child { max-width:180px; margin:19px 0 0; color:#62605c; font-size:12px; line-height:1.8; }
.ve-manifesto h2 { margin:0 0 30px; max-width:990px; font-size:clamp(36px,4.4vw,70px); line-height:1.06; font-weight:500; letter-spacing:-.055em; text-wrap:balance; }
.ve-manifesto h2 em { font-size:1.12em; }
.ve-manifesto-body { display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.ve-manifesto-body p { margin:0; max-width:410px; color:#4f4e4a; font-size:14px; line-height:1.85; }
.ve-principles { display:grid; grid-template-columns:repeat(3,1fr); gap:45px; margin-top:65px; }
.ve-principles article { padding-top:20px; border-top:1px solid #b4b0a8; }
.ve-principles article>span { color:#66645f; font-size:10px; letter-spacing:.1em; }
.ve-principles h3 { margin:23px 0 12px; font-size:21px; font-weight:500; letter-spacing:-.035em; }
.ve-principles p { margin:0; max-width:300px; color:#66645f; font-size:13px; line-height:1.8; }
.ve-gallery-section { padding:100px 0 105px; scroll-margin-top:85px; }
.ve-gallery-title { display:flex; justify-content:space-between; align-items:flex-end; gap:40px; }
.ve-gallery-title .ve-label { color:var(--ve-muted); }
.ve-gallery-title h2 { margin:25px 0 0; font-size:clamp(48px,6.4vw,98px); font-weight:500; line-height:1.02; letter-spacing:-.06em; }
.ve-gallery-title h2 em { color:var(--ve-accent); font-size:1.1em; }
.ve-collection { margin:0 0 8px; text-align:right; }
.ve-collection strong { display:block; font-family:Georgia,"Times New Roman",serif; font-size:86px; font-weight:400; letter-spacing:-.075em; line-height:1; }
.ve-collection span { display:block; margin-top:14px; color:var(--ve-muted); font-size:9px; text-transform:uppercase; letter-spacing:.13em; }
.ve-gallery-tools { display:flex; justify-content:space-between; align-items:center; gap:20px; margin:45px 0 48px; padding:16px 0; border-block:1px solid #424345; }
.ve-filters { display:flex; flex-wrap:wrap; align-items:center; gap:32px; }
.ve-filters button { display:inline-flex; align-items:baseline; gap:8px; min-height:34px; padding:4px 0; border:0; border-bottom:1px solid transparent; background:transparent; color:#b4b5b6; font-size:12px; cursor:pointer; transition:color 180ms ease,border-color 180ms ease; }
.ve-filters button small { color:#878a8b; font-size:8px; }
.ve-filters button[aria-pressed="true"] { color:#f4f3ed; border-bottom-color:var(--ve-paper); }
.ve-filters button:hover { color:#fff; }
.ve-gallery-tools>p { margin:0; color:var(--ve-muted); font-size:10px; line-height:1.6; }
.ve-gallery { display:grid; grid-template-columns:1.67fr 1fr; gap:clamp(30px,4.6vw,75px); align-items:start; }
.ve-gallery-stack { display:flex; min-width:0; flex-direction:column; gap:64px; }
.ve-gallery-stack--portraits { padding-top:110px; }
.ve-work { min-width:0; margin:0; }
.ve-work[hidden],.ve-gallery-note[hidden] { display:none!important; }
.ve-open { position:relative; display:block; overflow:hidden; background:#1e2023; }
.ve-open picture,.ve-open img { display:block; width:100%; }
.ve-open img { height:auto; transition:transform 650ms cubic-bezier(.2,.65,.25,1); }
.ve-open:hover img { transform:scale(1.018); }
.ve-open::after { position:absolute; inset:0; border:1px solid rgba(255,255,255,.1); content:""; pointer-events:none; }
.ve-image-action { position:absolute; right:14px; bottom:14px; display:grid; place-items:center; width:38px; height:38px; border:1px solid rgba(255,255,255,.7); border-radius:50%; background:rgba(16,17,18,.76); color:#fff; transition:background 200ms ease,color 200ms ease; }
.ve-image-action svg { width:16px; height:16px; }
.ve-open:hover .ve-image-action { background:var(--ve-paper); color:var(--ve-ink); }
.ve-work figcaption { display:grid; grid-template-columns:28px 1fr; gap:8px; padding-top:16px; }
.ve-work-number { padding-top:4px; color:#989b9c; font-size:9px; }
.ve-work h3 { margin:0; font-size:clamp(15px,1.45vw,22px); font-weight:400; line-height:1.3; letter-spacing:-.025em; }
.ve-work figcaption p { margin:8px 0 0; color:#a5a7a8; font-size:8px; line-height:1.6; letter-spacing:.12em; text-transform:uppercase; }
.ve-gallery-note { margin:8px 0; padding:31px 0 33px; border-block:1px solid #3a3b3d; }
.ve-gallery-note .ve-label { color:#a2a4a5; }
.ve-gallery-note>p:last-child { margin:25px 0 0; font-size:clamp(25px,3vw,44px); font-weight:400; line-height:1.15; letter-spacing:-.04em; }
.ve-gallery-note em { color:var(--ve-accent); font-size:1.1em; }
.ve-gallery[data-filter]:not([data-filter="all"]) .ve-gallery-stack--portraits { padding-top:0; }
.ve-gallery-end { display:flex; justify-content:space-between; gap:30px; margin-top:65px; padding-top:18px; border-top:1px solid #424345; }
.ve-gallery-end p,.ve-gallery-end a { margin:0; color:#a7a9aa; font-size:10px; line-height:1.7; }
.ve-gallery-end a { color:var(--ve-paper); }
.ve-contact { padding:85px 0 70px; }
.ve-contact-grid { display:grid; grid-template-columns:1.5fr 1fr; align-items:end; gap:60px; }
.ve-contact h2 { margin:24px 0 0; font-size:clamp(40px,4.8vw,76px); line-height:1.03; font-weight:500; letter-spacing:-.055em; }
.ve-contact h2 em { font-size:1.1em; }
.ve-contact-body { padding-bottom:5px; }
.ve-contact-body>p { max-width:330px; margin:0 0 26px; color:#56544f; font-size:14px; line-height:1.8; }
.ve-contact-button { display:flex; align-items:center; justify-content:space-between; gap:25px; max-width:340px; padding:20px 22px; background:var(--ve-ink); color:var(--ve-paper); font-size:12px; transition:background 180ms ease; }
.ve-contact-button:hover { background:#30373a; }
.ve-contact-button svg { width:17px; height:17px; }
.ve-contact-links { display:flex; gap:35px; margin-top:45px; padding-top:20px; border-top:1px solid #b4b0a8; font-size:11px; }
.ve-contact-links a { min-height:30px; }
.ve-contact-links a:hover { text-decoration:underline; text-underline-offset:5px; }
.ve-footer { display:flex; align-items:center; justify-content:space-between; gap:30px; padding-top:45px; padding-bottom:95px; }
.ve-footer img { display:block; width:124px; height:auto; }
.ve-footer p { margin:0; color:#a8aaab; font-size:9px; line-height:1.8; letter-spacing:.1em; text-transform:uppercase; }
.ve-footer>a:last-child { font-size:10px; }
.ve-lightbox {
  position:fixed;
  inset:0;
  width:100vw;
  max-width:none;
  height:100vh;
  height:100dvh;
  max-height:none;
  margin:0;
  border:0;
  padding:0;
  background:#101112;
  color:var(--ve-paper);
}
.ve-lightbox:not([open]) { display:none; }
.ve-lightbox::backdrop { background:#101112; }
.ve-lightbox[open] { display:grid; grid-template-rows:auto minmax(0,1fr) auto; }
body.ve-viewer-open { overflow:hidden; }
.ve-viewer-header { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:72px; padding:16px 28px; border-bottom:1px solid #343537; }
.ve-viewer-header p { margin:0; font-size:10px; letter-spacing:.13em; text-transform:uppercase; }
.ve-viewer-header button { display:flex; align-items:center; gap:13px; min-height:40px; padding:8px 0 8px 12px; border:0; background:transparent; color:inherit; font-size:11px; cursor:pointer; }
.ve-viewer-header button span { font-size:25px; font-weight:300; line-height:1; }
.ve-viewer-stage { position:relative; display:grid; grid-template-columns:64px minmax(0,1fr) 64px; align-items:center; gap:18px; min-height:0; padding:24px 28px; }
.ve-viewer-image-wrap { position:relative; display:grid; place-items:center; height:100%; min-height:0; margin:0; }
.ve-viewer-image { display:block; max-width:100%; width:auto; height:auto; max-height:100%; object-fit:contain; transition:opacity 180ms ease; }
.ve-viewer-image-wrap.is-loading .ve-viewer-image { opacity:0; }
.ve-viewer-status { position:absolute; inset:0; display:grid; place-items:center; margin:0; color:#b7b9ba; font-size:12px; text-align:center; }
.ve-viewer-status[hidden] { display:none; }
.ve-viewer-arrow { display:grid; place-items:center; width:48px; height:48px; border:1px solid #737677; border-radius:50%; background:transparent; color:inherit; cursor:pointer; transition:background 180ms ease,color 180ms ease; }
.ve-viewer-arrow svg { width:20px; height:20px; }
.ve-viewer-arrow:hover { background:var(--ve-paper); color:var(--ve-ink); }
.ve-viewer-arrow:disabled { opacity:.3; cursor:default; }
.ve-viewer-footer { display:grid; grid-template-columns:80px 1fr auto; gap:25px; align-items:center; padding:21px 28px; border-top:1px solid #343537; }
.ve-viewer-position { margin:0; color:#acafb0; font-size:11px; letter-spacing:.08em; }
.ve-viewer-title { margin:0; font-size:15px; font-weight:400; }
.ve-viewer-category { margin:7px 0 0; color:#a7aaab; font-size:8px; line-height:1.6; letter-spacing:.1em; text-transform:uppercase; }
.ve-viewer-original { display:inline-flex; align-items:center; gap:10px; min-height:36px; font-size:10px; }
.ve-viewer-original svg { width:13px; height:13px; }
.ve-filter-status { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.ve-skip-link { position:fixed; z-index:200; top:10px; left:20px; padding:13px 20px; background:var(--ve-paper); color:var(--ve-ink); font-size:12px; transform:translateY(-160%); }
.ve-skip-link:focus { transform:translateY(0); }
@media (min-width:1600px) {
  .ve-hero-grid { grid-template-columns:1fr 1.15fr; }
  .ve-hero-after { grid-template-columns:1fr 190px; }
}
@media (max-width:1050px) {
  .ve-hero-grid { grid-template-columns:1fr 1.05fr; gap:34px; }
  .ve-hero h1 { font-size:7.8vw; }
  .ve-hero-after { grid-template-columns:1fr 120px; gap:20px; }
  .ve-hero-caption { font-size:8px; }
  .ve-manifesto-grid { grid-template-columns:1fr 2.3fr; gap:30px; }
  .ve-manifesto-body { gap:24px; }
  .ve-principles { gap:25px; }
  .ve-gallery-tools>p { max-width:150px; text-align:right; }
  .ve-gallery-stack { gap:50px; }
  .ve-gallery-stack--portraits { padding-top:90px; }
  .ve-contact-grid { gap:38px; }
}
@media (max-width:760px) {
  .vision-page .topbar { padding:17px 24px; }
  .vision-page .rc-mark { width:110px; }
  .ve-wrap { width:calc(100% - 48px); }
  .ve-hero { padding-top:106px; padding-bottom:50px; }
  .ve-page-meta .ve-label { font-size:9px; }
  .ve-page-meta a { font-size:8px; gap:8px; }
  .ve-hero-grid { grid-template-columns:1fr; gap:40px; margin-top:35px; }
  .ve-hero-copy { padding-bottom:0; }
  .ve-hero-copy>.ve-label { font-size:9px; }
  .ve-hero h1 { margin-top:25px; font-size:clamp(66px,12.7vw,95px); }
  .ve-intro { max-width:380px; font-size:14px; line-height:1.8; }
  .ve-discover { margin-top:22px; }
  .ve-hero-after { grid-template-columns:1fr 115px; margin-top:26px; gap:22px; }
  .ve-hero-after blockquote p { font-size:27px; }
  .ve-hero-after blockquote footer { font-size:8px; margin-top:17px; }
  .ve-hero-caption { font-size:7px; }
  .ve-manifesto { padding:55px 0; }
  .ve-manifesto-grid { grid-template-columns:1fr; gap:32px; }
  .ve-section-index { padding:0; }
  .ve-section-index .ve-label { font-size:9px; }
  .ve-section-index p:last-child { max-width:none; margin-top:9px; font-size:11px; }
  .ve-manifesto h2 { font-size:clamp(35px,6.8vw,50px); margin-bottom:25px; }
  .ve-manifesto-body { grid-template-columns:1fr; gap:18px; }
  .ve-manifesto-body p { max-width:none; font-size:13px; }
  .ve-principles { grid-template-columns:1fr; gap:23px; margin-top:36px; }
  .ve-principles article { display:grid; grid-template-columns:30px 1fr; column-gap:10px; padding-top:17px; }
  .ve-principles article>span { grid-row:1 / 3; padding-top:5px; }
  .ve-principles h3 { margin:0 0 8px; font-size:19px; }
  .ve-principles p { max-width:none; font-size:12px; }
  .ve-gallery-section { padding:58px 0 60px; }
  .ve-gallery-title { gap:20px; }
  .ve-gallery-title h2 { font-size:clamp(45px,8.3vw,65px); margin-top:20px; }
  .ve-gallery-title .ve-label { font-size:9px; }
  .ve-collection { margin-bottom:3px; }
  .ve-collection strong { font-size:48px; }
  .ve-collection span { font-size:7px; max-width:68px; line-height:1.7; margin-top:9px; }
  .ve-gallery-tools { align-items:flex-start; flex-direction:column; gap:14px; margin:30px 0 32px; padding:12px 0 16px; }
  .ve-gallery-tools>p { max-width:none; text-align:left; font-size:9px; }
  .ve-filters { gap:28px; }
  .ve-filters button { font-size:12px; min-height:40px; }
  .ve-gallery { display:flex; flex-direction:column; gap:35px; }
  .ve-gallery-stack { display:contents; }
  .ve-gallery-stack--portraits { padding:0; }
  .ve-work { width:100%; order:var(--ve-order); }
  .ve-gallery-note { order:5; width:100%; margin:0; padding:23px 0; }
  .ve-gallery-note>p:last-child { font-size:28px; margin-top:20px; }
  .ve-work figcaption { padding-top:13px; grid-template-columns:26px 1fr; }
  .ve-work h3 { font-size:17px; }
  .ve-work figcaption p { font-size:8px; }
  .ve-image-action { width:36px; height:36px; right:12px; bottom:12px; }
  .ve-gallery-end { margin-top:40px; gap:20px; }
  .ve-gallery-end p { max-width:190px; font-size:9px; }
  .ve-gallery-end a { white-space:nowrap; font-size:9px; }
  .ve-contact { padding:50px 0 40px; }
  .ve-contact-grid { grid-template-columns:1fr; gap:30px; }
  .ve-contact h2 { font-size:clamp(38px,7.8vw,60px); }
  .ve-contact-body>p { max-width:350px; font-size:13px; margin-bottom:22px; }
  .ve-contact-button { max-width:none; padding:20px; }
  .ve-contact-links { flex-direction:column; gap:10px; margin-top:30px; }
  .ve-footer { align-items:flex-start; flex-wrap:wrap; gap:24px; padding-top:35px; padding-bottom:95px; }
  .ve-footer img { width:106px; }
  .ve-footer p { width:100%; order:3; font-size:8px; }
  .ve-footer>a:last-child { margin-left:auto; font-size:9px; }
  .ve-viewer-header { min-height:62px; padding:12px 20px; }
  .ve-viewer-header p { font-size:8px; }
  .ve-viewer-header button { font-size:10px; }
  .ve-viewer-stage { display:flex; align-items:center; justify-content:center; padding:18px 12px 58px; }
  .ve-viewer-image-wrap { width:100%; }
  .ve-viewer-arrow { position:absolute; z-index:2; bottom:8px; width:40px; height:40px; background:rgba(16,17,18,.9); }
  .ve-viewer-arrow--prev { left:calc(50% - 52px); }
  .ve-viewer-arrow--next { right:calc(50% - 52px); }
  .ve-viewer-footer { grid-template-columns:48px 1fr; gap:14px; padding:17px 20px max(20px,env(safe-area-inset-bottom)); }
  .ve-viewer-position { font-size:9px; }
  .ve-viewer-title { font-size:13px; }
  .ve-viewer-category { font-size:7px; }
  .ve-viewer-original { grid-column:2; font-size:9px; }
}
@media (max-width:360px) {
  .ve-wrap { width:calc(100% - 36px); }
  .vision-page .topbar { padding-inline:18px; }
  .ve-hero h1 { font-size:62px; }
  .ve-hero-after { grid-template-columns:1fr 96px; gap:16px; }
  .ve-hero-after blockquote p { font-size:23px; }
  .ve-gallery-title h2 { font-size:40px; }
  .ve-collection strong { font-size:42px; }
  .ve-filters { gap:24px; }
}
@media (prefers-reduced-motion:reduce) {
  .vision-page { scroll-behavior:auto; }
  .vision-page *, .vision-page *::before, .vision-page *::after { animation:none!important; transition:none!important; }
  .ve-open:hover img { transform:none; }
  .ve-discover:hover>span { transform:none; }
}
