@import url('assets/montserrat.css');
@import url('assets/open-sans.css');

:root {
  --paper: #ffffff;
  --ink: #000000;
  --accent: #ffffff;
  --muted: #676767;
  --rule: #c9c9c9;
  --heading: Montserrat, Arial, sans-serif;
  --body: 'Open Sans', Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 14px/1.8 var(--body); }
body.menu-open, body.video-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { cursor: pointer; color: inherit; }
a, button, summary { -webkit-tap-highlight-color: transparent; }
button { border: 0; }
img { display: block; width: 100%; height: auto; }
h1, h2, h3, p, figure, blockquote { margin: 0; }
h1, h2, h3 { font-family: var(--heading); font-weight: 700; }
h2 { font-size: clamp(44px, 5.6vw, 86px); line-height: 1.04; letter-spacing: -.065em; }
h3 { font-size: 24px; line-height: 1.25; letter-spacing: -1px; }
.serif { font-family: Georgia, 'Times New Roman', serif; font-style: italic; font-weight: 400; letter-spacing: -.065em; }
button:focus-visible, a:focus-visible, summary:focus-visible, input:focus-visible { outline: 2px solid currentColor; outline-offset: 6px; }
.section { padding: 100px 6%; }
.eyebrow, .small-label { font-size:11px; letter-spacing: 1.6px; line-height: 1.5; font-weight: 700; }
.small-label { color: var(--muted); }
.eyebrow { display: flex; gap: 10px; align-items: center; }
.section-count { margin-left: auto; font-weight: 400; }
.accent-dot { width: 7px; height: 7px; background: var(--ink); display: inline-block; }
.section-bar { border-top: 1px solid var(--rule); padding-top: 19px; display: flex; justify-content: space-between; align-items: start; gap: 20px; }
.underlined-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 40px; font-size:14px; border-bottom: 1px solid currentColor; padding: 12px 0; }
.underlined-link span { font-size: 18px; transition: transform .2s; }
.underlined-link:hover span { transform: translate(3px, -3px); }
.site-header { height: 94px; padding: 0 6%; display: flex; align-items: center; gap: 40px; justify-content: space-between; color: white; position: absolute; z-index: 40; left: 0; top: 0; width: 100%; border-bottom: 1px solid #ffffff30; }
.brand { display: block; width: 155px; }
.brand img { width: 100%; height: auto; }
.desktop-nav { display: flex; gap: 34px; margin-left: auto; font-size:13px; }
.desktop-nav a { position: relative; padding: 16px 0; }
.desktop-nav a::after { content: ''; position: absolute; bottom: 9px; left: 0; width: 0; height: 1px; background: white; transition: width .2s; }
.desktop-nav a:hover::after { width: 100%; }
.header-contact { margin-left: 16px; padding: 12px 18px; background: var(--accent); color: var(--ink); font-size:13px; display: flex; gap: 25px; font-weight: 700; }
.header-contact:hover { background: #ffffff; }
.mobile-menu { display: none; }
.hero { height: 100svh; min-height: 790px; max-height: 1100px; position: relative; overflow: hidden; color: white; background: #171717; }
.hero-poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-film { position: absolute; inset: 0; pointer-events: none; }
.hero-film iframe { width: max(100vw, 177.78svh); height: max(100svh, 56.25vw); min-height: 790px; min-width: 1404px; border: 0; max-width: none; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, #08080870, #08080815), linear-gradient(0deg, #08080899, #08080810 70%); }
.hero-label { position: absolute; top: 137px; left: 6%; right: 6%; display: flex; justify-content: space-between; font-size:11px; letter-spacing: 1.6px; }
.hero-label i { display: inline-block; width: 6px; height: 6px; border-radius: 50%; margin-right: 9px; background: var(--accent); }
.hero h1 { position: absolute; left: 5.5%; top: 210px; font-size: clamp(80px, 10vw, 165px); line-height: .95; letter-spacing: -.08em; pointer-events: none; }
.hero h1>span { display: block; }
.hero h1 strong { display: block; font-size: clamp(140px, 19vw, 310px); line-height: .88; font-weight: 700; letter-spacing: -.085em; }
.reel-link { position: absolute; right: 9%; top: 48%; display: flex; flex-direction: column; align-items: center; gap: 20px; text-align: center; }
.reel-circle { width: 105px; height: 105px; border-radius: 50%; background: var(--accent); color: var(--ink); display: grid; place-items: center; transition: transform .3s, background .3s; }
.reel-circle>span { margin-left: 5px; font-size: 22px; }
.reel-link:hover .reel-circle { transform: scale(1.08); background: #ffffff; }
.reel-link>span:last-child { font-size:11px; letter-spacing: 1.3px; }
.reel-link b { display: block; margin-top: 6px; font-size:14px; letter-spacing: 0; font-weight: 400; }
.hero-bottom { position: absolute; bottom: 34px; left: 6%; right: 6%; border-top: 1px solid #ffffff50; padding-top: 22px; display: flex; align-items: end; justify-content: space-between; gap: 30px; }
.hero-bottom p { font-size:14px; line-height: 1.9; }
.hero-bottom>a { font-size:11px; letter-spacing: 1.4px; display: flex; align-items: center; gap: 30px; }
.hero-bottom>a span { font-size: 21px; }
.film-toggle { background: transparent; color: white; font-size:12px; padding: 8px 0 8px 10px; }
.film-toggle span { margin-left: 18px; }
.film-toggle[hidden] { display: none; }
.intro { padding-top: 70px; padding-bottom: 115px; }
.intro-grid { display: grid; grid-template-columns: 1.55fr 1fr; gap: 9%; margin-top: 50px; align-items: end; }
.intro-grid h2 { font-size: clamp(48px, 5.4vw, 85px); }
.intro-grid>div { padding-bottom: 2px; }
.intro-grid p { max-width: 370px; color: var(--muted); line-height: 1.95; }
.intro-grid p+p { margin-top: 20px; }
.intro-grid .underlined-link { margin-top: 20px; }
.selected { padding-top: 0; padding-bottom: 95px; }
.work-heading { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin: 48px 0 56px; }
.work-heading h2 { font-size: clamp(60px, 7.6vw, 116px); }
.filters { display: flex; gap: 25px; padding-bottom: 4px; flex-wrap: wrap; }
.filters button { background: transparent; padding: 8px 0; font-size:12px; color: var(--muted); border-bottom: 1px solid transparent; }
.filters button.active { color: var(--ink); border-bottom-color: var(--ink); }
.filters sup { font-size:11px; margin-left: 3px; }
.project-grid { display: grid; grid-template-columns: 1.25fr 1fr; gap: 55px 5%; }
.project { min-width: 0; }
.project[hidden] { display: none; }
.project:nth-child(even) { padding-top: 85px; }
.project-grid.filtered .project { padding-top: 0; }
.project-photo { position: relative; display: block; aspect-ratio: 16/10; overflow: hidden; background: #232323; }
.project-photo img { height: 100%; object-fit: cover; transition: transform .65s, filter .65s; filter: saturate(.85); }
.project-photo:hover img { transform: scale(1.035); filter: saturate(1.1); }
.project-arrow { position: absolute; bottom: 18px; right: 18px; width: 43px; height: 43px; background: var(--paper); color: var(--ink); display: grid; place-items: center; font-size: 25px; transition: background .2s; }
.project-photo:hover .project-arrow { background: #c4c4c4; }
.project-play { position: absolute; top: 17px; left: 18px; font-size:11px; letter-spacing: 1.2px; background: #00000088; border: 1px solid #ffffff70; color: white; padding: 5px 10px; }
.project-caption { padding-top: 18px; display: flex; justify-content: space-between; align-items: start; gap: 15px; }
.project-caption .small-label { display: block; font-size:11px; letter-spacing: 1.3px; margin-bottom: 7px; }
.project-caption h3 { font-size: 23px; font-weight: 700; letter-spacing: -.8px; }
.project-number { font-size:13px; line-height: 1.5; padding-top: 3px; color: var(--muted); }
.archive-link { border-top: 1px solid var(--rule); padding-top: 30px; margin-top: 70px; display: flex; justify-content: space-between; align-items: center; gap: 25px; }
.outline-button { padding: 17px 22px; border: 1px solid #a6a6a6; font-size:14px; display: inline-flex; align-items: center; justify-content: space-between; gap: 40px; transition: background .2s; }
.outline-button span { font-size:11px; color: var(--muted); }
.outline-button:hover { background: #dddddd; }
.dark { background: var(--ink); color: var(--paper); }
.dark .section-bar { border-color: #474747; }
.dark .small-label { color: #aeaeae; }
.services { padding-top: 60px; padding-bottom: 100px; }
.services-grid { display: grid; grid-template-columns: .9fr 1.3fr; gap: 10%; margin-top: 65px; }
.services-intro h2 { font-size: clamp(45px, 4.9vw, 75px); }
.services-intro>p { color: #a8a8a8; max-width: 260px; margin-top: 35px; font-size: 13px; line-height: 1.9; }
.services-intro .underlined-link { margin-top: 32px; font-size:13px; border-color: #686868; }
.service-list details { border-bottom: 1px solid #474747; }
.service-list details:first-child { border-top: 1px solid #474747; }
.service-list summary { display: flex; align-items: center; list-style: none; padding: 27px 0; cursor: pointer; gap: 20px; }
.service-list summary::-webkit-details-marker { display: none; }
.service-index { color: #a8a8a8; font-size:11px; }
.service-list h3 { font: 400 clamp(19px, 2vw, 28px)/1.3 var(--body); letter-spacing: -1.2px; }
.plus { margin-left: auto; font-size: 25px; color: var(--accent); transition: transform .25s; }
.service-list details[open] .plus { transform: rotate(45deg); }
.service-copy { padding: 0 28px 30px 35px; }
.service-copy p { color: #b6b6b6; font-size:14px; line-height: 1.9; }
.service-copy>span { display: block; font-size:11px; letter-spacing: 1.2px; margin-top: 22px; color: #838383; }
.about { padding-top: 65px; padding-bottom: 85px; }
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 11%; align-items: center; margin-top: 65px; }
.about-grid>* { min-width: 0; }
.photo-frame { position: relative; background: #cccccc; height: 610px; }
.photo-frame>img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); }
.photo-corner { position: absolute; width: 22px; height: 22px; border-color: var(--paper); }
.top-left { left: 16px; top: 16px; border-left: 1px solid; border-top: 1px solid; }
.bottom-right { bottom: 16px; right: 16px; border-bottom: 1px solid; border-right: 1px solid; }
.about-photo figcaption { display: flex; justify-content: space-between; gap: 10px; font-size:11px; letter-spacing: 1.3px; margin-top: 15px; color: var(--muted); }
.latin { font-family: Georgia, serif; font-style: italic; font-size: 16px; color: var(--muted); margin-bottom: 25px; }
.about-copy h2 { font-size: clamp(45px, 4.6vw, 72px); }
.about-description { max-width: 365px; margin-top: 35px; }
.about-description p { color: var(--muted); font-size: 13px; line-height: 1.9; }
.about-description p+p { margin-top: 18px; }
.about-copy .underlined-link { margin-top: 25px; }
.trust { padding-top: 0; padding-bottom: 100px; }
.trust-heading { border-top: 1px solid var(--rule); padding-top: 25px; display: flex; justify-content: space-between; align-items: start; gap: 25px; }
.trust-heading>p:last-child { color: var(--muted); font-size:14px; line-height: 1.8; }
.client-logos { display: flex; justify-content: space-between; align-items: center; gap: 8%; height: 75px; margin-top: 55px; }
.client-logos img { object-fit: contain; width: 13%; max-height: 65px; filter: grayscale(1) brightness(.4); opacity: .6; }
.quote { display: grid; grid-template-columns: 1.5fr 1fr; gap: 12%; border-top: 1px solid var(--rule); padding-top: 50px; margin-top: 70px; align-items: end; }
.quote blockquote { font-size: 25px; letter-spacing: -.6px; line-height: 1.6; font-family: Georgia, serif; font-style: italic; }
.quote figcaption { font-size:12px; line-height: 1.8; max-width: 260px; }
.quote figcaption strong { display: block; font-size:14px; font-weight: 700; margin-bottom: 6px; }
.quote figcaption>span { color: var(--muted); }
.contact { background: var(--ink); color: var(--paper); padding-top: 45px; padding-bottom: 65px; }
.contact .section-bar { border-color: #ffffff40; }
.contact .small-label { color: var(--paper); }
.contact-heading { display: flex; align-items: center; justify-content: space-between; margin-top: 55px; gap: 30px; }
.contact-heading h2 { font-size: clamp(80px, 11.5vw, 180px); letter-spacing: -.075em; line-height: .95; }
.contact-heading>span { font-size: clamp(120px, 18vw, 270px); font-family: Arial, sans-serif; line-height: 1; transition: transform .3s; }
.contact-heading:hover>span { transform: translate(8px, -8px); }
.contact-bottom { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-top: 65px; }
.contact-bottom>p { font-size:14px; line-height: 1.9; }
.contact-email { font-size: clamp(15px, 2.1vw, 28px); letter-spacing: -1px; line-height: 1.4; border-bottom: 1px solid #ffffff50; padding-bottom: 8px; }
.contact-actions { display: flex; justify-content: space-between; gap: 35px; align-items: center; margin-top: 16px; font-size:12px; }
.copy-email { background: transparent; padding: 7px 0; border-bottom: 1px solid transparent; font-size:12px; }
.copy-email:hover { border-bottom-color: currentColor; }
.copy-email span { margin-left: 10px; }
.copy-status { display: block; min-height: 18px; font-size:12px; margin-top: 4px; }
.site-footer { padding: 65px 6% 25px; overflow: hidden; }
.footer-top { display: grid; grid-template-columns: 1.2fr 1fr 1fr auto; gap: 30px; align-items: start; font-size:13px; line-height: 1.8; }
.footer-top>a:first-child img { width: 152px; height: auto; }
.footer-top>div { display: flex; flex-direction: column; gap: 7px; }
.back-top { font-size:11px; }
.footer-word { position: relative; font: 700 19.6vw/.92 var(--heading); letter-spacing: -.085em; margin: 65px 0 35px -1%; white-space: nowrap; }
.footer-word>span { font-size: .09em; letter-spacing: 0; vertical-align: top; margin-left: .4em; }
.footer-bottom { display: flex; justify-content: space-between; gap: 25px; font-size:11px; letter-spacing: 1.2px; border-top: 1px solid var(--rule); padding-top: 23px; color: var(--muted); }
.video-dialog { background: #131313; border: 1px solid #474747; color: var(--paper); width: min(1160px, 94vw); max-height: 95svh; padding: 20px; }
.video-dialog::backdrop { background: #000000ee; backdrop-filter: blur(8px); }
.dialog-bar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 15px; }
.dialog-bar h2 { font: 400 15px/1.4 var(--body); letter-spacing: 0; }
.close-video { background: transparent; color: var(--paper); font-size:13px; padding: 8px; min-height: 44px; }
.close-video span { font-size: 23px; margin-left: 18px; vertical-align: middle; }
.video-stage { aspect-ratio: 16/9; background: #000000; }
.video-stage iframe { width: 100%; height: 100%; border: 0; }
.dialog-footer { display: flex; justify-content: space-between; gap: 20px; margin-top: 16px; font-size:11px; color: #a8a8a8; }
.dialog-footer>span { font-size:11px; letter-spacing: 1.1px; }
.archive-page { background: var(--paper); }
.archive-page .site-header { background: var(--ink); }
.archive-heading { padding: 170px 6% 55px; }
.archive-heading .eyebrow { margin-bottom: 35px; }
.archive-heading h1 { font-size: clamp(60px, 10vw, 155px); letter-spacing: -.075em; line-height: 1.04; }
.archive-heading h1>span:not(.serif) { vertical-align: top; font: 400 13px/2 var(--body); letter-spacing: 0; margin-left: 15px; }
.archive-intro { display: flex; justify-content: space-between; gap: 35px; margin-top: 35px; align-items: end; }
.archive-intro>p { font-size: 13px; color: var(--muted); max-width: 340px; }
.project-search { display: flex; align-items: center; border-bottom: 1px solid var(--ink); padding: 10px 0; width: 310px; gap: 20px; }
.project-search input { width: 100%; border: 0; background: transparent; outline-offset: 10px; padding: 5px 0; font-size:14px; color: var(--ink); min-width: 0; }
.archive-projects { padding: 0 6% 80px; display: grid; grid-template-columns: repeat(3,1fr); gap: 45px 25px; }
.archive-projects .project { padding-top: 0; }
.archive-projects .project-photo { aspect-ratio: 16/9; }
.archive-projects .project-caption h3 { font-size: 19px; }
.no-results { margin: 0 6% 60px; font-size: 14px; }
.archive-cta { padding: 45px 6%; border-top: 1px solid var(--rule); display: flex; justify-content: space-between; align-items: center; gap: 30px; }
.archive-cta h2 { font-size: 40px; }
.skip-link { position: fixed; top: -100px; left: 15px; background: var(--paper); padding: 12px 20px; z-index: 200; font-size:14px; }
.skip-link:focus { top: 12px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }

@media(min-width:1700px) {
  .hero h1 { top: 235px; }
  .section { padding-left: max(6%, calc((100vw - 1550px) / 2)); padding-right: max(6%, calc((100vw - 1550px) / 2)); }
}
@media(max-width:1050px) {
  .site-header { gap: 25px; padding: 0 5%; }
  .desktop-nav { gap: 25px; }
  .header-contact { margin-left: 0; }
  .hero h1 { top: 240px; }
  .reel-link { right: 7%; top: 49%; }
  .reel-circle { width: 85px; height: 85px; }
  .intro-grid { gap: 7%; grid-template-columns: 1.25fr 1fr; }
  .intro-grid h2 { font-size: 51px; }
  .work-heading { display: block; }
  .filters { margin-top: 30px; }
  .services-grid { gap: 6%; }
  .service-list summary { gap: 15px; }
  .service-list h3 { font-size: 20px; }
  .photo-frame { height: 520px; }
  .about-grid { gap: 7%; }
  .quote { gap: 8%; }
  .archive-projects { grid-template-columns: repeat(2,1fr); }
}
@media(max-width:700px) {
  html { scroll-padding-top: 25px; }
  .section { padding: 65px 6%; }
  .site-header { height: 84px; padding: 0 6%; }
  .brand { width: 132px; }
  .desktop-nav, .header-contact { display: none; }
  .mobile-menu { display: block; }
  .mobile-menu>summary { display: flex; align-items: center; gap: 18px; list-style: none; cursor: pointer; padding: 12px 0 12px 15px; font-size:12px; position: relative; z-index: 82; }
  .mobile-menu>summary::-webkit-details-marker { display: none; }
  .mobile-menu>summary b { font-size: 25px; line-height: 1; font-weight: 400; transition: transform .2s; }
  .mobile-menu[open]>summary b { transform: rotate(45deg); }
  .mobile-menu[open]>summary { position: fixed; top: 22px; right: 6%; color: var(--paper); }
  .menu-panel { position: fixed; z-index: 80; inset: 0; background: var(--ink); color: var(--paper); padding: 120px 7% 40px; display: flex; flex-direction: column; align-items: start; }
  .menu-panel>.eyebrow { color: #a8a8a8; margin-bottom: 30px; }
  .menu-panel nav { display: flex; flex-direction: column; width: 100%; }
  .menu-panel nav a { display: flex; align-items: center; justify-content: space-between; padding: 16px 0; font: 700 35px/1.3 var(--heading); letter-spacing: -2px; border-bottom: 1px solid #474747; }
  .menu-panel nav a span { font: 400 10px/1 var(--body); letter-spacing: 1px; color: var(--accent); }
  .menu-panel>a { font-size: 13px; margin-top: auto; padding-top: 35px; }
  .menu-panel>.small-label { font-size:11px; margin-top: 18px; color: #a8a8a8; }
  .hero { min-height: 780px; max-height: none; }
  .hero-label { top: 125px; font-size:11px; letter-spacing: 1.4px; }
  .hero-label>span:last-child { font-size:11px; }
  .hero h1 { top: 235px; left: 5%; font-size: clamp(55px, 15vw, 105px); }
  .hero h1 strong { font-size: clamp(120px, 32vw, 205px); }
  .reel-link { top: auto; bottom: 150px; right: 8%; gap: 13px; }
  .reel-circle { width: 75px; height: 75px; }
  .reel-circle>span { font-size: 17px; }
  .reel-link>span:last-child { font-size:11px; }
  .reel-link b { font-size:12px; }
  .hero-bottom { bottom: 28px; gap: 20px; padding-top: 20px; }
  .hero-bottom p { font-size:12px; line-height: 1.9; max-width: 185px; }
  .hero-bottom>a { font-size:11px; letter-spacing: 1px; gap: 15px; max-width: 100px; }
  .hero-bottom>.film-toggle { position: absolute; right: 0; top: -49px; font-size:11px; }
  .hero-bottom>.film-toggle span { margin-left: 8px; }
  .intro { padding-top: 45px; padding-bottom: 65px; }
  .eyebrow { font-size:11px; letter-spacing: 1.1px; }
  .small-label { font-size:11px; letter-spacing: 1.1px; }
  .intro-grid { grid-template-columns: 1fr; gap: 30px; margin-top: 35px; }
  .intro-grid h2 { font-size: clamp(42px, 10.5vw, 65px); }
  .intro-grid p { font-size: 13px; line-height: 1.85; max-width: none; }
  .intro-grid p+p { margin-top: 16px; }
  .intro-grid .underlined-link { margin-top: 15px; }
  .selected { padding-top: 0; padding-bottom: 65px; }
  .selected .section-bar>.small-label { display: none; }
  .work-heading { margin: 35px 0; }
  .work-heading h2 { font-size: clamp(52px, 12vw, 78px); }
  .filters { gap: 21px; margin-top: 22px; }
  .filters button { font-size:11px; }
  .project-grid { grid-template-columns: 1fr; gap: 35px; }
  .project:nth-child(even) { padding-top: 0; }
  .project-photo { aspect-ratio: 16/10; }
  .project-caption { padding-top: 14px; }
  .project-caption h3 { font-size: 21px; }
  .project-caption .small-label { font-size:11px; }
  .project-arrow { width: 37px; height: 37px; right: 14px; bottom: 14px; font-size: 22px; }
  .project-play { top: 14px; left: 14px; font-size:11px; padding: 4px 8px; }
  .archive-link { margin-top: 40px; padding-top: 25px; flex-direction: column; align-items: stretch; gap: 20px; }
  .outline-button { font-size:13px; padding: 15px 18px; gap: 25px; }
  .services { padding-top: 40px; padding-bottom: 60px; }
  .services-grid { grid-template-columns: 1fr; gap: 40px; margin-top: 40px; }
  .services-intro h2 { font-size: 50px; }
  .services-intro>p { max-width: 290px; margin-top: 25px; font-size:14px; }
  .services-intro .underlined-link { margin-top: 18px; }
  .service-list summary { padding: 23px 0; gap: 14px; }
  .service-list h3 { font-size: 19px; letter-spacing: -.8px; }
  .service-copy { padding: 0 15px 24px 28px; }
  .service-copy p { font-size:14px; }
  .service-copy>span { font-size:11px; }
  .about { padding-top: 45px; padding-bottom: 60px; }
  .about-grid { grid-template-columns: 1fr; margin-top: 35px; gap: 40px; }
  .photo-frame { height: auto; aspect-ratio: 4/5; }
  .about-copy h2 { font-size: clamp(38px, 11vw, 54px); }
  .about-description { margin-top: 25px; max-width: none; }
  .about-description p { font-size:14px; }
  .latin { margin-bottom: 20px; }
  .about-copy .underlined-link { margin-top: 18px; }
  .trust { padding-top: 0; padding-bottom: 60px; }
  .trust-heading { gap: 20px; }
  .trust-heading>p:last-child { font-size:12px; }
  .client-logos { flex-wrap: wrap; justify-content: center; height: auto; gap: 30px 10%; margin-top: 35px; }
  .client-logos img { width: 23%; height: 50px; max-height: 50px; }
  .quote { grid-template-columns: 1fr; margin-top: 45px; padding-top: 30px; gap: 25px; }
  .quote blockquote { font-size: 23px; line-height: 1.5; }
  .quote figcaption { max-width: 280px; font-size:11px; }
  .quote figcaption strong { font-size:13px; }
  .contact { padding-top: 35px; padding-bottom: 45px; }
  .contact-heading { margin-top: 45px; gap: 10px; }
  .contact-heading h2 { font-size: clamp(62px, 17vw, 100px); }
  .contact-heading>span { font-size: 22vw; }
  .contact-bottom { flex-direction: column; align-items: start; gap: 30px; margin-top: 35px; }
  .contact-bottom>p { font-size:14px; }
  .contact-email { font-size: clamp(17px, 5vw, 25px); letter-spacing: -.5px; }
  .contact-actions { gap: 30px; font-size:12px; }
  .site-footer { padding: 40px 6% 23px; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 28px; font-size:12px; }
  .footer-top>a:first-child img { width: 130px; }
  .footer-top>p { font-size:12px; }
  .back-top { align-self: end; font-size:11px; }
  .footer-word { margin-top: 45px; margin-bottom: 25px; }
  .footer-bottom { flex-wrap: wrap; gap: 15px; font-size:11px; letter-spacing: .7px; padding-top: 20px; }
  .footer-bottom>span:last-child { display: none; }
  .archive-heading { padding-top: 130px; padding-bottom: 35px; }
  .archive-heading .eyebrow { margin-bottom: 25px; }
  .archive-heading h1 { font-size: clamp(35px, 11vw, 80px); }
  .archive-heading h1>span:not(.serif) { font-size:12px; margin-left: 8px; }
  .archive-intro { flex-direction: column; align-items: start; gap: 25px; margin-top: 25px; }
  .archive-intro>p { font-size:14px; }
  .project-search { width: 100%; }
  .archive-projects { grid-template-columns: 1fr; gap: 30px; padding-bottom: 50px; }
  .archive-projects .project-caption h3 { font-size: 21px; }
  .archive-cta { flex-direction: column; align-items: start; gap: 25px; padding-top: 35px; padding-bottom: 35px; }
  .archive-cta h2 { font-size: 36px; }
  .video-dialog { width: 96vw; padding: 12px; }
  .dialog-bar { gap: 12px; margin-bottom: 12px; }
  .dialog-bar h2 { font-size:14px; }
  .close-video { font-size:11px; padding: 5px; }
  .close-video span { margin-left: 8px; }
  .dialog-footer>span { font-size:11px; letter-spacing: .6px; }
  .dialog-footer { gap: 10px; font-size:11px; }
}
@media(max-width:360px) {
  .hero h1 { top: 240px; }
  .hero-label>span:last-child { display: none; }
  .filters { gap: 16px; }
  .service-list h3 { font-size: 17px; }
  .contact-heading h2 { font-size: 58px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
  .hero-film { display: none; }
}

.archive-result-label { margin: 0 6% 25px; padding-top: 18px; border-top: 1px solid var(--rule); font-size:11px; letter-spacing: 1px; color: var(--muted); }

/* Dedicated pages and shared page navigation. */
.desktop-nav a[aria-current="page"]::after { width: 100%; }
.page-deck { max-width: 660px; font-size: 18px; line-height: 1.75; color: var(--muted); margin-top: 30px; }
.archive-intro-standalone { margin: 0 6% 35px; }
.inner-page .about { padding-top: 0; }
.inner-page .trust { padding-top: 75px; }
.mission-page>div { display: grid; grid-template-columns: 1.2fr 1fr; gap: 12%; align-items: start; margin-top: 45px; }
.mission-page>div>div>p { color: #c0c0c0; line-height: 1.95; }
.mission-page>div>div>p+p { margin-top: 22px; }
.mission-page .underlined-link { margin-top: 25px; }
.capability-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 50px 7%; margin-top: 60px; }
.capability-grid article { border-top: 1px solid var(--rule); padding-top: 20px; }
.capability-grid h2 { font-size: 27px; letter-spacing: -1px; line-height: 1.25; margin: 18px 0; }
.capability-grid p { font-size: 13px; color: var(--muted); line-height: 1.9; }
.capabilities>.underlined-link { margin-top: 45px; }
.page-paths { background: #dfdfdf; padding-top: 55px; padding-bottom: 60px; }
.page-paths>.eyebrow { margin-bottom: 30px; }
.page-paths>a { display: grid; grid-template-columns: 150px minmax(0, 1fr) 45px; align-items: center; gap: 25px; border-top: 1px solid #b5b5b5; padding: 30px 0; }
.page-paths>a>span { font-size:11px; letter-spacing: 1px; }
.page-paths h2 { font-size: clamp(26px, 3vw, 46px); line-height: 1.2; }
.page-paths>a>b { font: 400 36px/1 Arial, sans-serif; transition: transform .2s; text-align: right; }
.page-paths>a:hover>b { transform: translate(4px, -4px); }
.footer-pages { display: grid; grid-template-columns: repeat(6, 1fr); gap: 20px; border-top: 1px solid var(--rule); margin-top: 45px; padding-top: 22px; font-size:12px; }
.blog-definition { padding: 0 6% 40px; max-width: 780px; }
.blog-definition>p:last-child { color: var(--muted); font-size: 13px; line-height: 1.9; }
.blog-definition .latin { margin-bottom: 16px; }
.journal-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5%; padding-top: 25px; }
.journal-image { position: relative; overflow: hidden; aspect-ratio: 4/5; }
.journal-image img { height: 100%; object-fit: cover; transition: transform .5s; }
.journal-grid a:hover img { transform: scale(1.025); }
.journal-grid .small-label { margin-top: 23px; }
.journal-grid h2 { font-size: 29px; letter-spacing: -1.2px; line-height: 1.25; margin-top: 12px; }
.read-article { display: inline-block; font-size:13px; border-bottom: 1px solid var(--rule); margin-top: 22px; padding-bottom: 7px; }
.contact-context { display: grid; grid-template-columns: 1fr 1fr; gap: 10%; }
.contact-context h2 { font-size: clamp(40px, 4.5vw, 65px); margin-top: 30px; }
.contact-context ol { list-style: none; margin: 0; padding: 0; }
.contact-context li { display: flex; gap: 25px; border-top: 1px solid var(--rule); padding: 25px 0; }
.contact-context li>span { font-size:12px; color: var(--muted); }
.contact-context li h3 { font: 400 20px/1.4 var(--body); letter-spacing: -.6px; }
.contact-context li p { color: var(--muted); margin-top: 9px; font-size:14px; line-height: 1.8; }
.contact-photo { position: relative; background: var(--ink); }
.contact-photo img { width: 100%; height: 400px; object-fit: cover; object-position: center 45%; filter: saturate(.5); }
.contact-photo figcaption { position: absolute; bottom: 25px; left: 6%; color: white; font-size:11px; letter-spacing: 1.3px; }
.article-heading h1 { font-size: clamp(40px, 6.4vw, 92px); max-width: 1100px; }
.article-cover { margin: 0 6%; }
.article-cover img { width: 100%; height: min(550px, 48vw); object-fit: cover; object-position: center 35%; }
.article-layout { display: grid; grid-template-columns: 200px minmax(0, 740px); gap: 7%; justify-content: start; padding-top: 70px; }
.article-layout aside { position: sticky; top: 35px; align-self: start; font-size:13px; }
.article-layout aside>p+p { margin-top: 15px; color: var(--muted); }
.article-layout aside .underlined-link { font-size:12px; gap: 15px; margin-top: 20px; }
.article-body { min-width: 0; overflow-wrap: anywhere; }
.article-body h2 { font-size: 32px; line-height: 1.3; letter-spacing: -1px; margin: 42px 0 22px; }
.article-body h2:first-child { margin-top: 0; }
.article-body h3 { font-size: 23px; margin: 30px 0 15px; }
.article-body p { font-size: 15px; line-height: 2; margin-bottom: 24px; color: #545454; }
.article-body a { text-decoration: underline; text-underline-offset: 3px; }
.article-body li { margin-bottom: 14px; }
.article-body blockquote { border-left: 1px solid var(--muted); padding-left: 25px; margin: 30px 0; }
.article-body img { width: 100%; height: auto; margin: 30px 0; }
.article-embed { aspect-ratio: 16/9; background: #171717; margin: 30px 0; }
.article-embed iframe { width: 100%; height: 100%; border: 0; }
.article-series { padding-top: 0; }
.article-series>.eyebrow { border-top: 1px solid var(--rule); padding-top: 25px; margin-bottom: 20px; }
.article-series>a { display: flex; justify-content: space-between; align-items: center; gap: 30px; font: 700 24px/1.4 var(--heading); letter-spacing: -1px; padding: 22px 0; border-bottom: 1px solid var(--rule); }
@media(max-width:1050px) {
  .desktop-nav { gap: 20px; }
  .site-header { gap: 25px; }
  .capability-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .article-layout { grid-template-columns: 150px minmax(0, 1fr); gap: 6%; }
  .journal-grid h2 { font-size: 24px; }
}
@media(max-width:700px) {
  .menu-panel { overflow-y: auto; padding-top: 100px; }
  .menu-panel nav a { font-size: 29px; padding: 12px 0; }
  .menu-panel nav a[aria-current="page"] { color: #a8a8a8; }
  .page-deck { font-size: 14px; margin-top: 24px; }
  .mission-page>div { grid-template-columns: minmax(0,1fr); gap: 30px; margin-top: 30px; }
  .mission-page h2 { font-size: 44px; }
  .mission-page p { font-size:14px; }
  .inner-page .trust { padding-top: 45px; }
  .capability-grid { grid-template-columns: minmax(0,1fr); gap: 30px; margin-top: 35px; }
  .capability-grid h2 { font-size: 25px; margin: 14px 0; }
  .capability-grid p { font-size:14px; }
  .capabilities .section-bar>.small-label { display: none; }
  .page-paths>a { grid-template-columns: minmax(0,1fr) 30px; gap: 14px 20px; padding: 25px 0; }
  .page-paths>a>span { grid-column: 1/-1; font-size:11px; }
  .page-paths h2 { font-size: 29px; }
  .page-paths>a>b { font-size: 27px; }
  .footer-pages { grid-template-columns: repeat(3,1fr); font-size:11px; margin-top: 35px; gap: 20px; }
  .journal-grid { grid-template-columns: minmax(0,1fr); gap: 45px; padding-top: 0; }
  .journal-image { aspect-ratio: 4/3; }
  .journal-grid h2 { font-size: 27px; max-width: 350px; }
  .blog-definition { padding-bottom: 35px; }
  .contact-context { grid-template-columns: minmax(0,1fr); gap: 35px; }
  .contact-context h2 { font-size: 45px; margin-top: 25px; }
  .contact-context li { gap: 20px; }
  .contact-context li h3 { font-size: 18px; }
  .contact-photo img { height: 290px; }
  .contact-photo figcaption { font-size:11px; bottom: 18px; }
  .article-heading h1 { font-size: clamp(31px,7vw,48px); letter-spacing: -.055em; }
  .article-cover img { height: auto; aspect-ratio: 4/3; }
  .article-layout { grid-template-columns: minmax(0,1fr); gap: 35px; padding-top: 40px; }
  .article-layout aside { position: static; }
  .article-layout aside .underlined-link { margin-top: 10px; }
  .article-body h2 { font-size: 27px; margin-top: 35px; }
  .article-body h3 { font-size: 22px; }
  .article-body p { font-size: 14px; line-height: 1.95; }
  .article-series>a { font-size: 20px; gap: 20px; }
}

/* Full-frame opening film; navigation and controls follow below it. */
:root { --paper: #fff; --ink: #000; --accent: #fff; --muted: #555; --rule: #d4d4d4; }
.home-page .hero { height: 100svh; min-height: 0; max-height: none; background: #000; }
.home-page .hero-poster { object-fit: cover; }
.home-page .hero-film iframe { inset: auto; left: 50%; top: 50%; width: max(100vw, 177.778svh); height: max(100svh, 56.25vw); min-width: 0; min-height: 0; max-width: none; transform: translate(-50%, -50%); }
.home-page .site-header { position: sticky; top: 0; height: 76px; background: #000; }
.reel-tools { display: flex; align-items: center; justify-content: space-between; gap: 25px; padding: 8px 6%; background: #000; color: #fff; border-top: 1px solid #333; }
.reel-tools>.latin { color: #fff; margin: 0; font-size: 16px; }
.reel-tools>div { display: flex; gap: 25px; align-items: center; }
.reel-tools a, .reel-tools button { font-size:13px; }
.section { padding-top: 55px; padding-bottom: 55px; }
.intro { padding-top: 40px; padding-bottom: 55px; }
.intro-grid { margin-top: 25px; gap: 6%; align-items: start; }
.intro-heading h1 { font-size: clamp(36px, 4.7vw, 66px); line-height: 1.08; letter-spacing: -.06em; }
.latin { font-size: 19px; line-height: 1.4; color: #555; margin-top: 10px; margin-bottom: 18px; }
.dark .latin { color: #ccc; }
.selected { padding-top: 0; }
.work-heading { margin-top: 30px; margin-bottom: 30px; }
.work-heading h2 { font-size: clamp(38px, 4.8vw, 66px); }
.work-heading .latin { margin-bottom: 0; }
.project-grid { gap: 35px 4%; }
.project:nth-child(even) { padding-top: 40px; }
.archive-link { margin-top: 40px; padding-top: 22px; }
.page-paths { background: #fff; }
.page-paths>a { padding-top: 22px; padding-bottom: 22px; }
.page-paths h2 { font-size: clamp(26px, 2.8vw, 38px); }
.inner-page .archive-heading { padding-top: 130px; padding-bottom: 30px; }
.archive-heading h1 { font-size: clamp(38px, 5.6vw, 78px); }
.archive-heading>.latin { margin-top: 12px; margin-bottom: 0; }
.page-deck { font-size: 15px; margin-top: 16px; max-width: 650px; }
.about-grid { margin-top: 30px; gap: 6%; }
.photo-frame { height: 460px; }
.about-copy h2 { font-size: clamp(36px, 3.8vw, 54px); }
.about-description { margin-top: 22px; }
.services-grid { margin-top: 35px; gap: 7%; }
.services-intro h2 { font-size: clamp(38px, 4vw, 58px); }
.services-intro>p { margin-top: 22px; }
.capability-grid { margin-top: 35px; gap: 35px 6%; }
.contact-heading { margin-top: 30px; }
.contact-heading h2 { font-size: clamp(62px, 8.5vw, 115px); }
.contact-heading>span { font-size: clamp(90px, 12vw, 180px); }
.contact-bottom { margin-top: 35px; }
.site-footer { padding-top: 40px; }
.footer-pages { margin-top: 30px; }
.footer-bottom { margin-top: 25px; }
@media(max-width:700px) {
  .home-page .site-header { height: 76px; }
  .reel-tools { gap: 12px; padding-top: 10px; padding-bottom: 10px; }
  .reel-tools, .reel-tools>div { flex-wrap: wrap; }
  .reel-tools>.latin { font-size: 13px; }
  .reel-tools>div { gap: 12px; }
  .reel-tools a, .reel-tools button { font-size:11px; }
  .reel-tools .film-toggle { padding: 5px 0; }
  .reel-tools .film-toggle span { margin-left: 5px; }
  .section { padding-top: 40px; padding-bottom: 40px; }
  .selected { padding-top: 0; }
  .intro-grid { gap: 22px; }
  .intro-heading h1 { font-size: clamp(34px, 9vw, 50px); }
  .project:nth-child(even) { padding-top: 0; }
  .inner-page .archive-heading { padding-top: 118px; padding-bottom: 28px; }
  .archive-heading h1 { font-size: clamp(34px, 9vw, 54px); }
  .archive-heading>.latin { font-size: 18px; }
  .page-deck { font-size: 13px; }
  .photo-frame { height: auto; aspect-ratio: 4/5; }
  .about-copy h2 { font-size: clamp(34px, 10vw, 48px); }
  .about-grid { margin-top: 25px; gap: 30px; }
  .contact-heading h2 { font-size: clamp(56px, 15vw, 90px); }
  .contact-heading>span { font-size: 20vw; }
  .article-heading h1 { font-size: clamp(30px, 7vw, 46px); }
}
@media(max-width:360px) {
  .contact-heading h2 { font-size: 48px; }
}

/* White transparent header over the reel, solid black after scrolling. */
.site-header { position: fixed; }
.home-page .site-header { position: fixed; top: 0; background: transparent; border-bottom-color: transparent; transition: background-color .2s, border-color .2s; }
.home-page .site-header.scrolled { background: #000; border-bottom-color: #333; }
.brand, .brand img { background: transparent; }
.reel-tools>.small-label { color: #ccc; }
.home-page .site-header:not(.scrolled) .header-contact { color: #fff; background: transparent; border: 1px solid #ffffff80; }
.home-page .site-header:not(.scrolled) .header-contact:hover { background: #ffffff15; }
@media(prefers-reduced-motion:reduce) {
  .home-page .site-header { transition: none; }
}

/* Original Sinestesia photography, presented as part of the page narrative. */
.photo-story { padding-top:0; }
.photo-story .section-bar,.service-showcase .section-bar { align-items:end; margin-bottom:26px; }
.photo-story h2,.service-showcase h2 { font-size:clamp(30px,3.5vw,48px); line-height:1.1; margin-top:20px; }
.photo-story .latin,.service-showcase .latin { margin-bottom:0; }
.photo-story-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.archive-photo { margin:0; min-width:0; }
.archive-photo img { width:100%; display:block; object-fit:cover; aspect-ratio:1/1; }
.archive-photo figcaption { padding-top:12px; color:#555; font-size:11px; letter-spacing:1.3px; line-height:1.5; }
.photo-story-grid .photo-wide { grid-column:1/-1; }
.photo-story-grid .photo-wide img { aspect-ratio:848/375; }
.photo-story-grid>.archive-photo:not(.photo-wide) img { aspect-ratio:4/3; }
.about-archive-grid { display:grid; grid-template-columns:1fr 1.35fr; gap:30px; align-items:start; }
.about-archive-grid>.archive-photo:last-child { padding-top:65px; }
.about-archive-grid>.archive-photo:last-child img { aspect-ratio:847/678; }
.about-archive .section-bar { margin-bottom:25px; }
.about-archive .latin { margin:0; }
.service-showcase { padding-top:0; }
.service-showcase-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.service-visual img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.service-visual h3 { font-size:clamp(20px,2vw,28px); margin-top:18px; line-height:1.2; }
.service-visual p { color:#555; font-size:14px; line-height:1.7; margin-top:9px; }
.service-visual:hover h3 { text-decoration:underline; text-underline-offset:5px; }
@media(max-width:700px) {
.photo-story .section-bar { display:block; }
.photo-story .section-bar>.underlined-link { margin-top:14px; }
.photo-story-grid { gap:22px 14px; }
.archive-photo figcaption { font-size:11px; letter-spacing:.7px; }
.photo-story-grid>.archive-photo:not(.photo-wide) img { aspect-ratio:3/4; }
.photo-story-grid .photo-wide img { aspect-ratio:16/9; }
.about-archive-grid { gap:20px; grid-template-columns:1fr; }
.about-archive-grid>.archive-photo:last-child { padding-top:0; }
.about-archive-grid>.archive-photo:first-child img { aspect-ratio:4/3; object-position:center 35%; }
.service-showcase-grid { grid-template-columns:1fr; gap:30px; }
.service-visual img { aspect-ratio:16/10; }
.service-visual h3 { margin-top:14px; font-size:24px; }
.service-visual p { margin-top:6px; }
}

#servicios { scroll-margin-top:96px; }

/* Dedicated photographic archive and original-color customer marks. */
.gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px 24px; }
.gallery-tile { min-width:0; display:block; }
.gallery-tile figure { margin:0; }
.gallery-image { position:relative; overflow:hidden; background:#eee; }
.gallery-image img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform .3s; }
.gallery-tile:hover img { transform:scale(1.025); }
.gallery-tile figcaption { font-size:12px; letter-spacing:.7px; padding-top:13px; line-height:1.5; }
.gallery-enlarge { position:absolute; bottom:12px; right:12px; display:grid; place-items:center; width:28px; height:28px; background:white; color:black; font:22px/1 Arial,sans-serif; }
.gallery-section { padding-top:0; }
.gallery-intro { display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--rule); padding:20px 0 28px; }
.gallery-intro>p:last-child { font-size:14px; color:#555; }
.photo-open { overflow:hidden; }
.photo-dialog { width:min(1200px,96vw); max-width:96vw; max-height:96svh; margin:auto; padding:20px; color:white; background:#000; border:1px solid #444; }
.photo-dialog::backdrop { background:rgba(0,0,0,.94); }
.photo-dialog-bar { display:flex; align-items:center; justify-content:space-between; gap:18px; padding-bottom:16px; }
.photo-dialog-bar h2 { font:400 16px/1.4 var(--body); letter-spacing:0; }
.photo-dialog button { color:white; background:transparent; border:1px solid #666; padding:9px 14px; font-size:14px; cursor:pointer; }
.photo-dialog button:hover { background:#222; }
.photo-full { display:block; width:100%; height:min(70svh,780px); object-fit:contain; }
.photo-navigation { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:16px; }
.photo-counter { color:#ccc; font-size:14px; }
.client-logos { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; height:auto; margin-top:35px; align-items:stretch; }
.client-logo { min-width:0; height:115px; display:flex; align-items:center; justify-content:center; padding:20px; background:#fff; }
.client-logos img { filter:none; opacity:1; width:100%; height:auto; max-width:190px; max-height:75px; object-fit:contain; }
.client-logo.dark-logo { background:#000; }
.client-logo.oxford-logo { background:#042145; }
.client-logo.rayados { overflow:hidden; }
.client-logo.rayados img { width:275px; max-width:none; height:98px; max-height:none; object-fit:contain; clip-path:inset(0 76% 0 0); transform:translateX(104px); flex-shrink:0; }
.desktop-nav { gap:24px; }
.footer-pages { grid-template-columns:repeat(7,minmax(0,1fr)); }
@media(max-width:1050px) { .desktop-nav { gap:16px; } }
@media(max-width:700px) {
.gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 14px; }
.gallery-image img { aspect-ratio:1/1; }
.gallery-tile figcaption { font-size:11px; letter-spacing:0; }
.gallery-intro { display:block; }
.gallery-intro>p:last-child { margin-top:12px; }
.gallery-enlarge { width:22px; height:22px; right:8px; bottom:8px; font-size:18px; }
.client-logos { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.client-logo { height:95px; padding:16px; }
.client-logos img { width:100%; height:auto; max-height:65px; }
.client-logo.rayados img { width:230px; height:82px; max-height:none; transform:translateX(87px); }
.photo-dialog { padding:12px; }
.photo-dialog-bar h2 { font-size:13px; }
.photo-full { height:65svh; }
.photo-dialog button { font-size:13px; padding:8px 10px; }
.footer-pages { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(prefers-reduced-motion:reduce) { .gallery-image img { transition:none; } }

#clientes { scroll-margin-top:110px; }

/* Photography woven into page introductions, content and navigation. */
.living-intro { display:grid; grid-template-columns:.8fr 1.2fr; gap:7%; align-items:center; padding-top:50px; }
.living-copy h1 { font-size:clamp(40px,5.2vw,76px); line-height:1; letter-spacing:-.06em; margin-top:24px; }
.living-copy>p:not(.eyebrow):not(.latin) { font-size:14px; line-height:1.9; color:#555; }
.living-copy>p+p { margin-top:15px; }
.living-copy .underlined-link { margin-top:24px; }
.living-intro figure { margin:0; }
.living-intro figure img { width:100%; height:460px; object-fit:cover; }
.living-intro figcaption { font-size:11px; letter-spacing:1.2px; padding-top:12px; color:#555; }
.living-story { display:grid; grid-template-columns:1.4fr 1fr; background:#000; color:#fff; }
.living-story figure { margin:0; min-width:0; }
.living-story figure img { width:100%; height:100%; min-height:490px; object-fit:cover; object-position:60% center; }
.living-story>div { align-self:center; padding:50px 14%; }
.living-story h2 { font-size:clamp(38px,4.5vw,64px); line-height:1.1; margin-top:30px; }
.living-story .latin { color:#ccc; }
.living-story>div>p:not(.eyebrow):not(.latin) { color:#ccc; font-size:14px; line-height:1.8; }
.living-story .underlined-link { margin-top:25px; }
.visual-path-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:25px; }
.visual-path-grid>a { min-width:0; display:block; }
.visual-path-grid img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; margin-bottom:20px; }
.visual-path-grid a:last-child img { object-position:center 65%; }
.visual-path-grid a>span { font-size:11px; letter-spacing:1px; }
.visual-path-grid h2 { font-size:clamp(25px,2.6vw,36px); margin-top:14px; }
.visual-path-grid a:hover h2 { text-decoration:underline; text-underline-offset:5px; }
.photo-heading { display:grid; grid-template-columns:1fr 1fr; margin-top:94px; min-height:420px; }
.inner-page .photo-heading .archive-heading { padding:55px 12%; align-self:center; }
.photo-heading .archive-heading h1 { font-size:clamp(38px,5.4vw,76px); }
.photo-heading figure { margin:0; min-width:0; }
.photo-heading img { width:100%; height:100%; max-height:520px; min-height:420px; object-fit:cover; }
.photo-heading+.about,.photo-heading+.service-showcase,.photo-heading+.contact { padding-top:45px; }
.about-archive-grid { grid-template-columns:1.2fr 1fr; }
.about-archive-grid>.archive-photo img { aspect-ratio:4/3; }
.about-archive-grid>.archive-photo:last-child img { aspect-ratio:4/3; }
.service-mood { margin:30px 0 0; }
.service-mood img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.contact-photo img { filter:none; height:450px; }
@media(max-width:700px) {
.living-intro { grid-template-columns:1fr; gap:30px; padding-top:35px; }
.living-copy h1 { font-size:48px; }
.living-copy>p:not(.eyebrow):not(.latin) { font-size:13px; }
.living-intro figure img { height:auto; aspect-ratio:4/3; }
.living-story { grid-template-columns:1fr; }
.living-story figure img { min-height:0; height:auto; aspect-ratio:4/3; }
.living-story>div { padding:35px 6%; }
.living-story h2 { font-size:44px; margin-top:20px; }
.visual-path-grid { grid-template-columns:1fr; gap:35px; }
.visual-path-grid img { aspect-ratio:16/10; margin-bottom:15px; }
.visual-path-grid h2 { font-size:28px; max-width:300px; margin-top:10px; }
.photo-heading { grid-template-columns:1fr; margin-top:76px; }
.inner-page .photo-heading .archive-heading { padding:35px 6% 30px; }
.photo-heading .archive-heading h1 { font-size:46px; }
.photo-heading img { min-height:0; max-height:none; height:auto; aspect-ratio:16/10; }
.photo-heading+.about,.photo-heading+.service-showcase,.photo-heading+.contact { padding-top:35px; }
.about-archive-grid { grid-template-columns:1fr; }
.contact-photo img { height:300px; }
}

/* Editorial refinement: bold photographs, a measured film grid and faithful logos. */
.project-grid { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:28px; row-gap:38px; align-items:start; }
.project-grid .project,.project-grid .project:nth-child(even),.archive-projects .project { padding-top:0; min-width:0; }
.project-photo,.archive-projects .project-photo { aspect-ratio:16/9; }
.project-photo img { width:100%; height:100%; object-fit:cover; }
.project-caption { display:flex; align-items:start; justify-content:space-between; gap:16px; min-height:88px; }
.project-caption>div { min-width:0; }
.project-caption h3 { font-size:clamp(21px,2.1vw,30px); line-height:1.2; }
.archive-projects { grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px 25px; align-items:start; }
.archive-projects .project-caption { min-height:84px; }
.archive-projects .project-caption h3 { font-size:21px; }
.project-photo:hover img { transform:scale(1.025); }
.project-photo:focus-visible { outline:3px solid #555; outline-offset:5px; }
.selected { padding-top:65px; padding-bottom:60px; }
.work-heading { align-items:end; }
.work-heading h2 { font-size:clamp(52px,7.2vw,100px); letter-spacing:-.065em; }
.editorial-intro { background:#000; color:#fff; padding:0; gap:0; grid-template-columns:1fr 1.2fr; align-items:stretch; }
.editorial-intro .living-copy { padding:65px 12%; align-self:center; }
.editorial-intro .living-copy h1 { font-size:clamp(48px,6.5vw,90px); line-height:.98; margin-top:30px; }
.editorial-intro .living-copy .latin { color:#bbb; }
.editorial-intro .living-copy>p:not(.eyebrow):not(.latin) { color:#bbb; }
.editorial-intro figure { position:relative; min-width:0; }
.editorial-intro figure img { width:100%; height:100%; min-height:620px; object-fit:cover; object-position:52% center; }
.editorial-intro figcaption { position:absolute; left:25px; bottom:22px; padding:0; color:#fff; font-size:11px; text-shadow:0 1px 5px #000; }
.living-story { grid-template-columns:1.65fr 1fr; }
.living-story figure img { min-height:560px; object-position:center; }
.living-story>div { padding:50px 12%; }
.living-story h2 { font-size:clamp(42px,5.1vw,74px); letter-spacing:-.05em; }
.visual-paths { padding-top:65px; padding-bottom:65px; }
.visual-path-grid { gap:26px; }
.visual-path-grid img { aspect-ratio:3/4; margin-bottom:22px; }
.visual-path-grid a:first-child img { object-position:center; }
.visual-path-grid a:nth-child(2) img { object-position:center; }
.visual-path-grid h2 { font-size:clamp(25px,3.2vw,42px); line-height:1.1; letter-spacing:-.05em; }
.visual-path-grid a { overflow:hidden; }
.visual-path-grid a:hover img { filter:brightness(1.06); }
.photo-heading { grid-template-columns:.9fr 1.1fr; }
.photo-heading img { min-height:520px; max-height:620px; }
.photo-heading .archive-heading h1 { font-size:clamp(48px,6.2vw,86px); line-height:1.02; }
.archive-cta { background:#000; color:#fff; border-top:1px solid #333; }
.archive-cta h2 { font-size:clamp(40px,5.3vw,76px); line-height:1.05; }
.archive-cta .outline-button { border-color:#666; }
.archive-cta .outline-button:hover { background:#fff; color:#000; }
.client-logos { grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; border-top:1px solid #e7e7e7; border-left:1px solid #e7e7e7; }
.client-logo,.client-logo.dark-logo,.client-logo.oxford-logo { background:#fff; height:145px; padding:24px; border-right:1px solid #e7e7e7; border-bottom:1px solid #e7e7e7; }
.client-logos img { display:block; filter:none; opacity:1; width:100%; height:auto; max-width:175px; max-height:80px; object-fit:contain; }
.client-logo.oxford-logo img { width:96px; height:96px; max-width:100%; max-height:96px; }
.client-logo.dark-logo img { width:175px; height:auto; max-height:85px; }
.client-logo.rayados .logo-art { display:block; flex:none; width:65px; height:98px; overflow:hidden; }
.client-logo.rayados .logo-art img { width:275px; height:98px; max-width:none; max-height:none; clip-path:none; transform:none; object-fit:fill; }
@media(max-width:1050px) {
.archive-projects { grid-template-columns:repeat(2,minmax(0,1fr)); }
.editorial-intro .living-copy { padding:45px 10%; }
.editorial-intro .living-copy h1 { font-size:clamp(42px,6.5vw,72px); }
.client-logo { padding:20px; }
}
@media(max-width:700px) {
.project-grid,.archive-projects { grid-template-columns:minmax(0,1fr); gap:30px; }
.project-grid .project,.project-grid .project:nth-child(even) { padding-top:0; }
.project-caption,.archive-projects .project-caption { min-height:0; }
.project-caption h3,.archive-projects .project-caption h3 { font-size:24px; }
.selected { padding-top:38px; padding-bottom:40px; }
.work-heading h2 { font-size:52px; }
.editorial-intro { grid-template-columns:1fr; }
.editorial-intro .living-copy { padding:40px 6%; }
.editorial-intro .living-copy h1 { font-size:56px; }
.editorial-intro figure img { min-height:0; height:auto; aspect-ratio:4/3; }
.living-story { grid-template-columns:1fr; }
.living-story figure img { min-height:0; }
.living-story>div { padding:38px 6%; }
.living-story h2 { font-size:48px; }
.visual-paths { padding-top:40px; padding-bottom:40px; }
.visual-path-grid { gap:35px; }
.visual-path-grid img { aspect-ratio:4/3; }
.visual-path-grid h2 { font-size:32px; }
.photo-heading { grid-template-columns:1fr; }
.photo-heading img { min-height:0; max-height:none; }
.photo-heading .archive-heading h1 { font-size:48px; }
.client-logos { grid-template-columns:repeat(2,minmax(0,1fr)); }
.client-logo,.client-logo.dark-logo,.client-logo.oxford-logo { padding:18px; height:125px; }
.client-logo.oxford-logo img { width:82px; height:82px; }
.client-logo.rayados .logo-art { width:56px; height:84px; }
.client-logo.rayados .logo-art img { width:235px; height:84px; }
.archive-cta h2 { font-size:42px; }
}

@media(max-width:700px) { .work-heading h2 { font-size:clamp(36px,11vw,48px); } .work-heading { min-width:0; } }

/* Video and live events lead the offer; postproduction and languages support it. */
.offer-nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; padding-top:0; padding-bottom:0; }
.offer-nav a { display:flex; flex-direction:column; justify-content:center; gap:14px; padding:24px 18px; border-bottom:1px solid #ddd; border-right:1px solid #ddd; font-size:13px; line-height:1.45; }
.offer-nav a:first-child { border-left:1px solid #ddd; }
.offer-nav a>span { font-size:11px; letter-spacing:1px; color:#666; }
.offer-nav a:hover { background:#f2f2f2; }
.inner-page .offer-nav { padding-top:25px; padding-bottom:40px; }
.events-feature { background:#fff; color:#000; padding-top:60px; padding-bottom:60px; }
.events-feature-grid { display:grid; grid-template-columns:1fr 1.2fr; gap:7%; align-items:center; margin-top:36px; }
.events-copy h2,.production-offer h2,.support-offers h2 { font-size:clamp(38px,4.8vw,68px); line-height:1.05; letter-spacing:-.05em; }
.events-copy>p:not(.latin),.production-offer-grid>div>p:not(.latin),.support-copy>p:not(.eyebrow):not(.latin),.language-offer>div>p:not(.eyebrow):not(.latin) { font-size:14px; line-height:1.9; color:#555; margin-top:18px; }
.events-copy .underlined-link,.production-offer .underlined-link,.support-copy .underlined-link,.language-offer .underlined-link { margin-top:25px; }
.event-film,.production-offer figure { margin:0; min-width:0; }
.event-film a,.offer-film { display:block; position:relative; overflow:hidden; }
.event-film img,.offer-film img { display:block; width:100%; aspect-ratio:16/10; object-fit:cover; transition:transform .25s; }
.event-film a:hover img,.offer-film:hover img { transform:scale(1.02); }
.event-play { position:absolute; left:18px; bottom:18px; padding:10px 15px; color:#000; background:#fff; font-size:12px; letter-spacing:.5px; }
.event-film figcaption,.production-offer figcaption,.post-offer figcaption { color:#666; font-size:11px; letter-spacing:1px; line-height:1.6; margin-top:12px; }
.event-capabilities { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:35px; margin-top:38px; }
.event-capabilities article { border-top:1px solid #ccc; padding-top:18px; }
.event-capabilities h3 { font-size:24px; line-height:1.2; letter-spacing:-.7px; }
.event-capabilities p { font-size:14px; line-height:1.85; color:#555; margin-top:12px; }
.production-offer { padding-top:50px; padding-bottom:55px; }
.production-offer-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:7%; margin-top:35px; align-items:center; }
.production-offer-grid>div>p:not(.latin) { color:#bbb; }
.production-offer .latin,.production-offer figcaption { color:#aaa; }
.offer-list { padding:0; margin:24px 0 0; list-style:none; }
.offer-list li { border-top:1px solid #ddd; padding:12px 0; font-size:14px; line-height:1.65; }
.production-offer .offer-list li { border-color:#333; color:#ddd; }
.post-offer { display:grid; grid-template-columns:1.2fr 1fr; gap:10%; align-items:center; }
.support-copy h2,.language-offer h2 { margin-top:25px; font-size:clamp(36px,4.1vw,58px); }
.post-offer figure { margin:0; min-width:0; }
.post-offer img { width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center; }
.language-offer { display:grid; grid-template-columns:1.2fr 1fr; gap:10%; border-top:1px solid #ccc; margin-top:55px; padding-top:45px; }
.language-services>div { border-top:1px solid #ccc; padding:22px 0; }
.language-services h3 { font-size:22px; line-height:1.25; letter-spacing:-.6px; }
.language-services p { color:#555; font-size:14px; line-height:1.85; margin-top:12px; }
.offer-brochure { display:flex; align-items:center; justify-content:space-between; gap:25px; border-top:1px solid #ccc; margin-top:35px; padding-top:25px; }
.offer-brochure>p { font-size:14px; color:#555; line-height:1.7; }
#produccion,#eventos,#postproduccion,#idiomas,#eventos-inicio { scroll-margin-top:95px; }
@media(max-width:700px) {
.offer-nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
.offer-nav a { padding:18px 12px; font-size:13px; gap:9px; }
.offer-nav a:nth-child(3) { border-left:1px solid #ddd; }
.inner-page .offer-nav { padding-top:20px; padding-bottom:30px; }
.events-feature { padding-top:38px; padding-bottom:40px; }
.events-feature .section-bar>.small-label { display:none; }
.events-feature-grid,.production-offer-grid,.post-offer,.language-offer { grid-template-columns:minmax(0,1fr); gap:30px; }
.events-feature-grid { margin-top:25px; }
.events-copy h2,.production-offer h2 { font-size:42px; }
.events-copy>p:not(.latin),.production-offer-grid>div>p:not(.latin),.support-copy>p:not(.eyebrow):not(.latin),.language-offer>div>p:not(.eyebrow):not(.latin) { font-size:13px; }
.event-capabilities { grid-template-columns:minmax(0,1fr); gap:22px; margin-top:28px; }
.event-capabilities h3 { font-size:23px; }
.event-capabilities p { margin-top:9px; }
.production-offer-grid { margin-top:25px; }
.production-offer-grid>div { grid-row:1; }
.production-offer .section-bar>.small-label { display:none; }
.event-play { left:12px; bottom:12px; padding:8px 12px; font-size:11px; }
.support-copy h2,.language-offer h2 { font-size:38px; }
.post-offer img { aspect-ratio:4/3; object-position:center 30%; }
.language-offer { margin-top:35px; padding-top:30px; }
.language-services h3 { font-size:21px; }
.offer-brochure { flex-direction:column; align-items:start; gap:15px; }
}
@media(prefers-reduced-motion:reduce) { .event-film img,.offer-film img { transition:none; } }

/* Phones and small tablets show the entire reel in a compact widescreen frame. */
@media(max-width:700px) {
  .home-page .site-header { background:#000; border-bottom-color:#333; }
  .home-page .hero { margin-top:76px; width:100%; height:auto; min-height:0; max-height:none; aspect-ratio:16/9; }
  .home-page .hero-poster { width:100%; height:100%; object-fit:contain; }
  .home-page .hero-film iframe { inset:0; left:0; top:0; width:100%; height:100%; min-width:0; min-height:0; max-width:100%; transform:none; }
}

/* Audio work belongs with audio services; preserve the boat in the contact crop. */
.audio-work { margin:0 0 22px; }
.audio-work img { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:contain; }
.audio-work figcaption { font-size:11px; letter-spacing:1px; line-height:1.6; margin-top:10px; color:#666; }
.contact-boat img { display:block; height:clamp(200px,25vw,340px); object-fit:cover; object-position:30% 88%; }
.contact-boat figcaption { position:static; padding:16px 6%; background:#000; color:#fff; }
@media(max-width:700px) { .contact-boat img { height:210px; object-position:25% 88%; } }

/* Selective atmospheric image placements from the shared archive. */
.living-intro img[src*="seleccion-puente"] { object-position:46% center; }
.photo-heading img[src*="seleccion-mar"] { object-position:60% center; }
.visual-path-grid img[src*="seleccion-roca"] { object-position:center; }

/* Compact the home introduction as a whole. */
.editorial-intro { grid-template-columns:1fr 1fr; }
.editorial-intro .living-copy { padding:32px 9%; }
.editorial-intro .living-copy h1 { font-size:clamp(40px,5vw,64px); margin-top:18px; }
.editorial-intro .living-copy>p:not(.eyebrow):not(.latin) { font-size:13px; line-height:1.65; }
.editorial-intro .living-copy>p+p { margin-top:12px; }
.editorial-intro .living-copy .underlined-link { margin-top:18px; }
.editorial-intro figure { min-height:360px; }
.editorial-intro figure img { position:absolute; inset:0; width:100%; height:100%; min-height:0; aspect-ratio:auto; }
@media(max-width:700px) {
.editorial-intro { grid-template-columns:1fr; }
.editorial-intro .living-copy { padding:28px 6%; }
.editorial-intro .living-copy h1 { font-size:44px; }
.editorial-intro figure { min-height:0; height:230px; }
}

/* Rebalance the introduction: approximately 30% more height, full photograph. */
.editorial-intro { min-height:620px; }
.editorial-intro .living-copy { padding:48px 9%; }
.editorial-intro .living-copy h1 { font-size:clamp(44px,5.5vw,72px); margin-top:24px; }
.editorial-intro .living-copy>p:not(.eyebrow):not(.latin) { line-height:1.8; }
.editorial-intro figure img { object-fit:contain; object-position:center; padding:24px; box-sizing:border-box; }
.editorial-intro figcaption { left:24px; bottom:18px; }
@media(max-width:700px) {
.editorial-intro { min-height:0; }
.editorial-intro .living-copy { padding:36px 6%; }
.editorial-intro .living-copy h1 { font-size:44px; }
.editorial-intro figure { height:300px; }
.editorial-intro figure img { padding:0 18px 30px; }
}

.language-offer>div>.audio-work { margin:24px 0 0; }

/* Align the multilingual service list with the photograph. */
.language-offer { display:block; }
.language-lead { width:calc((100% - 10%)*1.2/2.2); }
.language-media-row { display:grid; grid-template-columns:1.2fr 1fr; gap:10%; margin-top:24px; align-items:start; }
.language-media .audio-work { margin:0; }
.language-media .underlined-link { margin-top:25px; }
@media(max-width:700px) {
.language-lead { width:100%; }
.language-media-row { grid-template-columns:1fr; gap:30px; }
}

/* Shared closing photograph, with a restrained scroll parallax. */
.footer-boat { margin:0; background:#000; }
.footer-boat-window { position:relative; height:clamp(200px,25vw,340px); overflow:hidden; }
.footer-boat-window img { position:absolute; top:-40px; left:0; display:block; width:100%; height:calc(100% + 80px); max-width:none; object-fit:cover; object-position:30% 88%; transform:translate3d(0,var(--boat-offset,0px),0); will-change:transform; }
.footer-boat figcaption { padding:16px 6%; color:#fff; font-size:11px; letter-spacing:1.3px; line-height:1.6; }
@media(max-width:700px) { .footer-boat-window { height:210px; } .footer-boat-window img { object-position:25% 88%; } .footer-boat figcaption { font-size:11px; } }
@media(prefers-reduced-motion:reduce) { .footer-boat-window img { transform:none; will-change:auto; } }

@media(min-width:701px) { .footer-boat-window img { object-position:30% 100%; } }

/* Controls remain within the first screen; Welles introduces the page. */
.hero>.reel-tools { position:absolute; z-index:5; inset:auto 0 0; padding:24px 6%; background:transparent; border:0; flex-wrap:nowrap; }
.hero>.reel-tools>.small-label { color:#fff; text-shadow:0 1px 6px #000; }
.hero .reel-tools>div { gap:12px; flex-wrap:nowrap; }
.hero .reel-tools button,.hero .reel-tools a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; border:1px solid #ffffff80; border-radius:30px; padding:10px 18px; background:#000b; color:#fff; font-size:13px; }
.hero .reel-tools button[hidden] { display:none; }
.hero .reel-tools button:hover,.hero .reel-tools a:hover { background:#fff; color:#000; }
.hero .film-toggle span { margin-left:12px; font-size:16px; }
.welles-quote { padding:52px 8%; background:#fff; text-align:center; }
.welles-quote figure { max-width:760px; margin:auto; }
.rosebud-mark { display:block; width:32px; height:43px; margin:0 auto 22px; }
.welles-quote blockquote { font-family:Georgia,serif; font-style:italic; font-size:clamp(21px,2.3vw,32px); line-height:1.5; letter-spacing:-.5px; }
.welles-quote figcaption { margin-top:22px; font-size:11px; letter-spacing:2px; }
@media(max-width:700px) {
.hero>.reel-tools { padding:12px 4%; justify-content:flex-end; }
.hero>.reel-tools>.small-label { display:none; }
.hero .reel-tools a,.hero .reel-tools button { font-size:11px; padding:8px 12px; min-height:40px; }
.welles-quote { padding:38px 7%; }
}

/* Minimal reel transport, stronger navigation, and a wide-screen boat crop. */
.hero>.reel-tools { min-height:72px; display:flex; align-items:center; justify-content:flex-start; }
.hero>.reel-tools>.small-label { display:block; font-size:12px; }
.hero .reel-tools .film-toggle { position:absolute; left:50%; bottom:14px; transform:translateX(-50%); display:grid; place-items:center; width:44px; height:44px; min-height:44px; padding:0; margin:0; background:transparent; border:0; border-radius:0; color:#fff; filter:drop-shadow(0 1px 3px #000); }
.hero .reel-tools .film-toggle[hidden] { display:none; }
.hero .reel-tools .film-toggle:hover { background:transparent; color:#fff; opacity:.75; }
.desktop-nav { font-size:13px; font-weight:600; }
.header-contact { font-size:14px; font-weight:700; }
.mobile-menu summary { font-weight:700; }
.footer-top { font-size:13px; font-weight:600; }
.footer-pages { font-size:14px; font-weight:600; }
.footer-bottom { font-size:12px; font-weight:600; color:#555; }
.footer-boat figcaption { font-size:12px; font-weight:600; }
.back-top { display:grid; place-items:center; width:48px; height:48px; margin-top:-8px; }
.back-top svg { width:32px; height:32px; }
@media(min-width:1600px) { .footer-boat-window img { object-position:30% 82%; } }
@media(max-width:1050px) and (min-width:701px) { .desktop-nav { font-size:14px; gap:14px; } }
@media(max-width:700px) {
.hero>.reel-tools { min-height:60px; padding:10px 5%; }
.hero>.reel-tools>.small-label { font-size:11px; }
.hero .reel-tools .film-toggle { bottom:6px; }
.footer-top,.footer-top>p { font-size:14px; }
.footer-pages { font-size:13px; }
.footer-bottom,.footer-boat figcaption { font-size:11px; }
}

.desktop-nav { font-size:clamp(13px,.65vw,18px); }
.footer-top { font-size:clamp(13px,.65vw,20px); }
.footer-pages { font-size:clamp(14px,.7vw,20px); }
.footer-bottom { font-size:clamp(12px,.55vw,16px); }
.footer-boat figcaption { font-size:clamp(12px,.5vw,15px); }
@media(max-width:1050px) and (min-width:701px) { .desktop-nav { font-size:14px; } }
@media(max-width:700px) { .footer-top,.footer-top>p { font-size:14px; } .footer-pages { font-size:13px; } .footer-bottom,.footer-boat figcaption { font-size:11px; } }

/* Lightweight footer type and in-place project playback. */
.footer-top,.footer-top>p,.footer-pages,.footer-bottom,.footer-boat figcaption { font-weight:400; }
.project-play,.event-play { display:grid; place-items:center; position:absolute; left:50%; top:50%; right:auto; bottom:auto; transform:translate(-50%,-50%); width:48px; height:48px; padding:0; border:1px solid #ffffffc0; border-radius:50%; background:#0008; color:#fff; font-size:17px; letter-spacing:0; }
.inline-video { position:relative; display:block; width:100%; aspect-ratio:16/9; overflow:hidden; background:#000; }
.inline-video iframe { position:absolute; inset:0; display:block; width:100%; height:100%; border:0; }
.visual-path-grid img[src*="Espejismo-de-hielo"] { object-position:center; }
@media(max-width:700px) { .project-play,.event-play { width:42px; height:42px; font-size:15px; } }

.inline-controls { position:absolute; z-index:2; bottom:0; left:0; right:0; display:flex; gap:8px; align-items:center; padding:7px 9px; color:#fff; background:#000c; }
.inline-controls button { display:grid; place-items:center; flex:0 0 26px; width:26px; height:26px; padding:0; color:#fff; background:transparent; font-size:15px; }
.inline-controls svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.inline-controls input { height:20px; margin:0; min-width:0; accent-color:#fff; cursor:pointer; }
.inline-controls .inline-progress { flex:1; width:70px; }
.inline-controls .inline-volume { flex:0 0 40px; width:40px; }
.inline-controls .is-muted { opacity:.45; }
.inline-controls :disabled { opacity:.45; cursor:wait; }
.inline-video:fullscreen { width:100vw; height:100vh; aspect-ratio:auto; }
.inline-video:fullscreen .inline-controls { padding:14px 4%; }
@media(max-width:700px) { .inline-controls { gap:6px; padding:6px 8px; } }

/* Home service links: individually invert on hover or keyboard focus. */
.home-page .offer-nav a { background:#000; color:#fff; border-color:#555; transition:background-color .16s ease,color .16s ease; }
.home-page .offer-nav a>span { color:inherit; opacity:.7; }
.home-page .offer-nav a:hover,.home-page .offer-nav a:focus-visible { background:#fff; color:#000; }
@media(prefers-reduced-motion:reduce) { .home-page .offer-nav a { transition:none; } }

/* White service links with an individual black hover state; lighter top navigation. */
.home-page .offer-nav a { background:#fff; color:#000; border-color:#ddd; }
.home-page .offer-nav a:hover,.home-page .offer-nav a:focus-visible { background:#000; color:#fff; }
.desktop-nav { font-weight:400; }
.mobile-menu summary { font-weight:400; }

/* Keep the image caption attached to the actual photograph at every width. */
.editorial-intro figure { display:grid; justify-items:center; align-content:center; gap:14px; padding:24px; }
.editorial-intro figure img { position:static; inset:auto; width:100%; max-width:540px; height:auto; min-height:0; padding:0; object-fit:contain; }
.editorial-intro figcaption { position:static; inset:auto; width:100%; max-width:540px; padding:0; line-height:1.5; text-shadow:none; overflow-wrap:normal; }
@media(max-width:700px) {
.editorial-intro figure { height:300px; padding:14px 18px 18px; gap:12px; }
.editorial-intro figure img,.editorial-intro figcaption { max-width:240px; }
.editorial-intro figure img { max-height:240px; }
}

/* Editorial links stay readable without a blocked embedded player. */
.article-watch { margin: 36px 0; padding: 28px; border: 1px solid var(--rule); background: #f6f6f4; }
.article-watch h3 { margin: 12px 0; }
.article-watch p { margin-bottom: 16px; }
.article-watch a { display: inline-flex; align-items: center; gap: 16px; font-size: 15px; }
.article-references { border-top: 1px solid var(--rule); margin-top: 42px; padding-top: 8px; }
.article-references h3 { font-size: 18px; }
.article-references p { font-size: 13px; }
.journal-grid { row-gap: 64px; column-gap: 5%; }
.article-cover img[src$=".svg"] { object-position: center; }
@media (max-width: 700px) { .article-watch { padding: 22px; } }

/* Film stills and contextual YouTube excerpts for the director series. */
.journal-image { aspect-ratio: 4/3; }
.journal-image img[src*="editorial/"] { object-position: center; }
.article-cover img[src*="tarantino-pulp-fiction"] { object-position: center 43%; }
.article-cover img[src*="park-oldboy"] { object-position: center 58%; }
.editorial-credit { margin: 12px 6% 0; color: #777; font-size:13px; line-height: 1.6; }
.editorial-credit a { text-decoration: underline; text-underline-offset: 3px; }
.editorial-clip { margin: 36px 0; }
.editorial-clip .article-embed { margin: 0; }
.editorial-clip figcaption { margin-top: 12px; color: #777; font-size:14px; line-height: 1.7; }

/* Wide article headers use original-resolution landscape images. */
.article-cover { width: auto; margin: 0 6%; }
.article-cover img { display: block; width: 100%; height: min(550px, 42vw); max-width: none; max-height: none; margin: 0; aspect-ratio: auto; object-fit: cover; object-position: var(--cover-focus, center); }
.article-cover img[src*="kubrick-clockwork-orange"] { --cover-focus: center 32%; }
.article-cover img[src*="wright-hot-fuzz"] { --cover-focus: center 20%; }
.article-cover img[src*="noe-original"] { --cover-focus: center; }
.article-cover img[src*="tarantino-pulp-fiction"] { object-position: center 43%; }
.article-cover img[src*="park-oldboy"] { object-position: center 58%; }
.editorial-credit { width: auto; margin: 12px 6% 0; text-align: left; }
@media (max-width: 700px) {
  .article-cover img { height: auto; aspect-ratio: 4/3; max-height: none; }
}

/* Replacement frames for the Kubrick and Park articles. */
.article-cover img[src*="kubrick-2001-4k"] { object-position: center 46%; }
.article-cover img[src*="park-handmaiden-library"] { object-position: center 15%; }
.journal-image img[src*="park-handmaiden-library"] { object-position: center 30%; }

/* Commercial presentation: specific applications, with the existing visual hierarchy. */
.production-applications { padding-top: 65px; padding-bottom: 55px; }
.production-applications .section-bar { align-items: end; }
.production-applications h2,.production-process h2 { font-size: clamp(36px,4.5vw,64px); line-height:1.08; letter-spacing:-.045em; margin-top:18px; }
.applications-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:5%; margin-top:35px; }
.applications-grid figure { margin:0; }
.applications-grid img { width:100%; aspect-ratio:3/2; object-fit:cover; }
.applications-grid article:first-child img { object-position:center 43%; }
.applications-grid article:nth-child(2) img { object-position:center 38%; }
.applications-grid figcaption,.event-field-note figcaption,.production-process figcaption { margin-top:12px; font-size:11px; line-height:1.7; letter-spacing:1px; color:#777; }
.applications-grid h3 { font-size:clamp(24px,2.4vw,34px); letter-spacing:-.03em; line-height:1.2; margin:25px 0 14px; }
.applications-grid article>p { font-size:14px; line-height:1.9; color:#555; max-width:530px; }
.application-example { display:grid; grid-template-columns:1fr 2fr; gap:6%; border-top:1px solid #ccc; margin-top:38px; padding-top:22px; }
.application-example>p:last-child { font-size:13px; line-height:1.85; color:#555; max-width:660px; }
.event-field-note { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:7%; align-items:center; border-top:1px solid #ccc; margin-top:45px; padding-top:35px; }
.event-field-note figure { margin:0; }
.event-field-note img { width:100%; aspect-ratio:4/3; object-fit:cover; object-position:center 48%; }
.event-field-note h3 { font-size:clamp(28px,3vw,42px); letter-spacing:-.04em; line-height:1.15; margin:20px 0; }
.event-field-note>div>p:not(.eyebrow) { font-size:14px; line-height:1.9; color:#555; max-width:570px; margin-top:14px; }
.content-versions { margin-top:25px; }
.content-versions h3 { font-size:22px; line-height:1.3; letter-spacing:-.5px; }
.content-versions p { font-size:13px; line-height:1.9; color:#555; margin-top:12px; }
.production-process { padding-top:65px; padding-bottom:65px; }
.process-layout { display:grid; grid-template-columns:1fr 1fr; gap:7%; align-items:center; margin-top:20px; }
.process-intro { font-size:14px; line-height:1.9; color:#555; margin-top:22px; max-width:520px; }
.production-process ol { list-style:none; padding:0; margin:28px 0 0; }
.production-process li { display:grid; grid-template-columns:34px 1fr; gap:15px; border-top:1px solid #ccc; padding:18px 0; }
.production-process li>span { font-size:13px; color:#777; padding-top:4px; }
.production-process h3 { font-size:22px; line-height:1.2; letter-spacing:-.5px; }
.production-process li p { font-size:13px; line-height:1.8; color:#555; margin-top:8px; }
.production-process figure { margin:0; }
.production-process img { width:100%; aspect-ratio:4/5; object-fit:cover; object-position:58% center; }
@media (max-width:700px) {
 .production-applications,.production-process { padding-top:40px; padding-bottom:40px; }
 .production-applications .section-bar { align-items:start; gap:15px; flex-wrap:wrap; }
 .applications-grid { grid-template-columns:1fr; gap:35px; margin-top:25px; }
 .application-example { grid-template-columns:1fr; gap:15px; margin-top:28px; }
 .event-field-note { grid-template-columns:1fr; gap:25px; margin-top:30px; padding-top:25px; }
 .event-field-note figure { max-width:520px; }
 .process-layout { grid-template-columns:1fr; gap:30px; }
 .production-process img { aspect-ratio:3/2; object-position:center; }
 .applications-grid article>p,.event-field-note>div>p:not(.eyebrow) { font-size:13px; }
}

.production-process img[src*="rodaje-en-locacion"] { aspect-ratio: 4/3; object-position: center; }

/* Direct WhatsApp contact, shared by every page. */
.whatsapp-float { position:fixed; right:max(22px,env(safe-area-inset-right)); bottom:calc(22px + env(safe-area-inset-bottom)); z-index:45; display:grid; place-items:center; width:52px; height:52px; padding:12px; border:1px solid #ffffff65; border-radius:50%; color:#fff; background:#111; box-shadow:0 3px 16px #0003; transition:background .18s,color .18s; }
.whatsapp-float svg { display:block; width:27px; height:27px; }
.whatsapp-float:hover { color:#111; background:#fff; border-color:#111; }
.whatsapp-float:focus-visible { outline:3px solid #fff; outline-offset:3px; box-shadow:0 0 0 5px #111; }
body.menu-open .whatsapp-float,body:has(dialog[open]) .whatsapp-float,body:has(:fullscreen) .whatsapp-float { visibility:hidden; pointer-events:none; }
@media (max-width:700px) { .whatsapp-float { right:max(16px,env(safe-area-inset-right)); bottom:calc(16px + env(safe-area-inset-bottom)); width:48px; height:48px; padding:10px; } }
@media (prefers-reduced-motion:reduce) { .whatsapp-float { transition:none; } }

/* Industrial reel: inline playback, full frame and native accessible controls. */
.industrial-example { align-items:center; }
.industrial-reel-copy>p:last-child { font-size:13px; line-height:1.85; color:#555; margin-top:16px; max-width:360px; }
.industrial-reel { margin:0; min-width:0; }
.industrial-reel video { display:block; width:100%; aspect-ratio:16/9; background:#000; object-fit:contain; }
.industrial-reel figcaption { font-size:12px; letter-spacing:.1em; line-height:1.5; margin-top:12px; color:#666; }
@media (max-width:700px) { .industrial-example { gap:22px; } }

/* Social links use black marks with generous keyboard and touch targets. */
.footer-top>.footer-socials { display:flex; flex-direction:row; flex-wrap:wrap; gap:12px; }
.footer-socials a { display:grid; place-items:center; width:44px; height:44px; color:#000; border:1px solid transparent; border-radius:50%; }
.footer-socials svg { display:block; width:25px; height:25px; }
.footer-socials a:hover { background:#eee; }
.footer-socials a:focus-visible { outline:2px solid #000; outline-offset:3px; }

/* Vimeo mark from Bootstrap Icons.
The MIT License (MIT)

Copyright (c) 2019-2024 The Bootstrap Authors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.


*/
