/* Editorial project-page system, adapted from the approved Todas las costas template */
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:#171717;background:#fff;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}
/* Header deliberately mirrors the shared main-style.css geometry and typography. */
header{display:flex;flex-direction:row;justify-content:flex-end;align-content:center;margin:.8rem;position:fixed;top:0;right:0;z-index:100;transition:color .5s}
header>a{margin:.9rem 1rem 1rem;text-decoration:none}
header h1{font-size:1.1rem;line-height:normal;margin:0;color:var(--header-ink,#000)!important;font-weight:700}
header nav{margin:1rem;display:flex;align-content:center}
header nav a{margin:0 .6rem;font-size:.8rem;color:var(--header-ink,#000)!important}
header nav a:hover,header h1:hover{text-decoration:underline}
header .language-switcher a{color:var(--header-ink,#000)!important}
main{padding-top:4.5rem;max-width:1440px;margin:0 auto 5rem;padding-left:4vw;padding-right:4vw}.project-hero{margin:0 auto 3rem;width:100%;text-align:center}.project-hero img{display:block;width:auto;max-width:100%;height:auto;max-height:none;margin:0 auto}.project-heading{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(220px,.65fr);gap:8%;margin:0 auto 2.5rem;max-width:1100px}.project-heading h2{font-size:1rem;line-height:1.3;letter-spacing:0;font-weight:600;margin:0}.project-heading .translation{margin:7px 0 0;color:#777;font-size:13px;font-style:italic}.project-heading h3{font-size:13px;line-height:1.55;font-weight:400;margin:0;color:#333;max-width:360px}.project-heading .year{font-weight:700}.project-copy{max-width:660px;margin:70px auto 95px;font-size:15px;line-height:1.75}.project-copy p{margin:0 0 1.4em}.project-gallery{display:flex;flex-direction:column;gap:clamp(48px,8vw,120px);margin:3rem 0 5rem}.project-gallery figure{margin:0;min-width:0}.project-gallery img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}.project-gallery figcaption{font-size:10px;line-height:1.4;color:#777;margin-top:8px;letter-spacing:.04em}.photo-credit{font-size:10px;color:#777;letter-spacing:.02em}.project-heading>.photo-credit{display:none!important}.gallery-wide{width:88%;margin-left:auto;margin-right:auto}.gallery-pair{width:84%;margin-left:auto;margin-right:auto;display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.gallery-pair figure:nth-child(2){margin-top:12%}.gallery-pair-equal{width:88%;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.gallery-offset{width:53%;margin-left:12%}.gallery-half-left{width:50%;align-self:flex-start}.gallery-half-right{width:50%;align-self:flex-end;margin-left:auto}.gallery-edge-left{width:calc(100% + 5vw);margin-left:-5vw}.gallery-edge-right{width:calc(100% + 5vw);margin-left:0;align-self:flex-end}.gallery-stack{width:68%;margin-left:auto;margin-right:auto;gap:24px}.gallery-video-still{width:76%;margin-left:auto}.video-wrap{position:relative;width:100%;aspect-ratio:16/9}.video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.project-footer{max-width:760px;margin:4rem auto 0;font-size:.8rem}.project-footer h4{font-size:.7rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:#777;margin:1.5rem 0 .35rem}.project-footer p{margin:.25rem 0 1rem}.project-logos{display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap}.project-logos img{max-width:180px;max-height:90px;width:auto;height:auto;object-fit:contain}.exhibited-list{list-style:none;padding:0;margin:.3rem 0 1rem}.exhibited-list li{margin-bottom:.3rem}.project-index-link{display:inline-block;margin-top:2rem;font-size:.8rem;text-decoration:underline;text-underline-offset:3px}
#accessibility-color-toggle{position:fixed;right:1rem;bottom:1rem;z-index:10000;color:#fff!important;font:12px/1.3 Arial,sans-serif;text-decoration:underline;cursor:pointer;mix-blend-mode:difference;transition:color .5s}#accessibility-color-toggle:hover,#accessibility-color-toggle:focus-visible{opacity:.7}
@media(max-width:500px){header nav a{font-size:.6rem}}\n@media(max-width:650px){header{margin:.25rem;right:0}header>a{margin:.6rem .35rem}header nav{margin:.65rem 0}header nav a{margin:0 .35rem}main{padding:4rem 4vw 0}.project-hero{margin-bottom:2rem}.project-heading{grid-template-columns:1fr;gap:14px;margin-bottom:2rem}.project-heading h3{max-width:100%}.project-copy{margin:42px auto 58px;font-size:14px}.project-gallery{gap:2.5rem}.gallery-wide,.gallery-pair,.gallery-pair-equal,.gallery-stack{width:100%}.gallery-pair,.gallery-pair-equal{grid-template-columns:1fr;gap:2.5rem}.gallery-pair figure:nth-child(2){margin-top:0}.gallery-offset,.gallery-half-left,.gallery-half-right,.gallery-video-still{width:82%;margin-left:auto;margin-right:auto}.gallery-edge-left,.gallery-edge-right{width:100%;margin-left:0}.project-footer{margin-top:3rem}#accessibility-color-toggle{right:.5rem;bottom:.5rem;font-size:11px}}


/* SIMPLE PROJECT IMAGE CONTROLS
   Apply a size class to each gallery <figure> and optionally an alignment class.
   size-wide = full-width image
   size-portrait = complete portrait, limited to 85% of viewport height
   size-long = complete portrait, slightly taller than the viewport
   size-square = smaller centered image
   align-left/right = align with the normal content margins
   align-left-moderate/right-moderate = gentle offset from the center
   align-left-edge/right-edge = extend to the viewport edge
*/
.project-gallery figure.size-wide {
  width: 100%;
  align-self: stretch;
}
.project-gallery figure.size-wide img {
  width: 100%;
  height: auto;
}

.project-gallery figure.size-portrait,
.project-gallery figure.size-long {
  width: fit-content;
  max-width: 100%;
  align-self: center;
}
.project-gallery figure.size-portrait img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 85vh;
  object-fit: contain;
}
.project-gallery figure.size-long img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 110vh;
  object-fit: contain;
}

.project-gallery figure.size-square {
  width: min(60%, 650px);
  max-width: 100%;
  align-self: center;
}
.project-gallery figure.size-square img {
  width: 100%;
  height: auto;
}

/* Standard alignment: stop at the same content margins as wide images. */
.project-gallery figure.align-left {
  align-self: flex-start;
  margin-left: 0;
  margin-right: 0;
}
.project-gallery figure.align-right {
  align-self: flex-end;
  margin-left: 0;
  margin-right: 0;
}

/* Moderate alignment: a smaller nudge inward from the content edge. */
.project-gallery figure.align-left-moderate {
  align-self: flex-start;
  margin-left: 10%;
  margin-right: 0;
}
.project-gallery figure.align-right-moderate {
  align-self: flex-end;
  margin-left: 0;
  margin-right: 10%;
}

/* Edge alignment: move the image to the viewport edge WITHOUT changing its width.
   transform shifts the element visually but does not expand its layout box. */
.project-gallery figure.align-left-edge {
  align-self: flex-start;
  margin-left: 0;
  transform: translateX(calc(-1 * max(4vw, calc((100vw - 1440px) / 2 + 4vw))));
}
.project-gallery figure.align-right-edge {
  align-self: flex-end;
  margin-right: 0;
  transform: translateX(max(4vw, calc((100vw - 1440px) / 2 + 4vw)));
}

@media (max-width: 650px) {
  .project-gallery figure.size-wide {
    width: 100%;
  }
  .project-gallery figure.size-portrait,
  .project-gallery figure.size-long {
    width: auto;
    max-width: 100%;
    align-self: center;
  }
  .project-gallery figure.size-portrait img {
    max-height: 80vh;
    max-width: 100%;
  }
  .project-gallery figure.size-long img {
    max-height: 95vh;
    max-width: 100%;
  }
  .project-gallery figure.size-square {
    width: 80%;
    align-self: center;
  }

  /* On phones, edge alignment falls back to the available content width. */
  .project-gallery figure.align-left-edge,
  .project-gallery figure.align-right-edge {
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    transform: none;
  }
  .project-gallery figure.align-left-moderate {
    margin-left: 5%;
  }
  .project-gallery figure.align-right-moderate {
    margin-right: 5%;
  }
}


/* FIX: constrain institutional/support logos in project footers. */
.project-footer .project-logos img,
.project-footer .logos-instituciones img,
.project-footer .credits img {
    display: block;
    width: auto !important;
    max-width: 120px !important;
    height: auto !important;
    max-height: 70px;
    object-fit: contain;
    margin: 0.5rem;
}
@media (max-width: 650px) {
    .project-footer .project-logos img,
    .project-footer .logos-instituciones img,
    .project-footer .credits img {
        max-width: 65px !important;
        max-height: 50px;
    }
}

/* HERO IMAGE CONTROLS
   The same size/alignment classes used on gallery <figure> elements also work
   on the first project image. Put the classes either on the hero <img> or on
   its parent <section class="project-hero">.
*/

/* Size presets */
.project-hero.size-wide img,
.project-hero img.size-wide {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  max-height: none;
  margin-left: 0;
  margin-right: 0;
}

.project-hero.size-portrait img,
.project-hero img.size-portrait,
.project-hero.size-long img,
.project-hero img.size-long {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  margin-left: auto;
  margin-right: auto;
  object-fit: contain;
}

.project-hero.size-portrait img,
.project-hero img.size-portrait {
  max-height: 85vh;
}

.project-hero.size-long img,
.project-hero img.size-long {
  max-height: 110vh;
}

.project-hero.size-square img,
.project-hero img.size-square {
  display: block;
  width: min(60%, 650px);
  max-width: 100%;
  height: auto;
  max-height: none;
  margin-left: auto;
  margin-right: auto;
}

/* Alignment presets. The image keeps the width set by its size class. */
.project-hero.align-left img,
.project-hero img.align-left {
  margin-left: 0;
  margin-right: auto;
  transform: none;
}

.project-hero.align-right img,
.project-hero img.align-right {
  margin-left: auto;
  margin-right: 0;
  transform: none;
}

.project-hero.align-left-moderate img,
.project-hero img.align-left-moderate {
  margin-left: 10%;
  margin-right: auto;
  transform: none;
}

.project-hero.align-right-moderate img,
.project-hero img.align-right-moderate {
  margin-left: auto;
  margin-right: 10%;
  transform: none;
}

.project-hero.align-left-edge img,
.project-hero img.align-left-edge {
  margin-left: 0;
  margin-right: auto;
  transform: translateX(calc(-1 * max(4vw, calc((100vw - 1440px) / 2 + 4vw))));
}

.project-hero.align-right-edge img,
.project-hero img.align-right-edge {
  margin-left: auto;
  margin-right: 0;
  transform: translateX(max(4vw, calc((100vw - 1440px) / 2 + 4vw)));
}

@media (max-width: 650px) {
  .project-hero.size-portrait img,
  .project-hero img.size-portrait {
    max-height: 80vh;
    max-width: 100%;
  }

  .project-hero.size-long img,
  .project-hero img.size-long {
    max-height: 95vh;
    max-width: 100%;
  }

  .project-hero.size-square img,
  .project-hero img.size-square {
    width: 80%;
  }

  .project-hero.align-left-moderate img,
  .project-hero img.align-left-moderate {
    margin-left: 5%;
    margin-right: auto;
  }

  .project-hero.align-right-moderate img,
  .project-hero img.align-right-moderate {
    margin-left: auto;
    margin-right: 5%;
  }

  .project-hero.align-left-edge img,
  .project-hero img.align-left-edge,
  .project-hero.align-right-edge img,
  .project-hero img.align-right-edge {
    margin-left: auto;
    margin-right: auto;
    transform: none;
    max-width: 100%;
  }
}


/* Flexible text blocks between images: use <div class="project-text size-... align-..."><p>...</p></div>
   inside .project-gallery. Size and alignment classes are shared with image figures. */
.project-gallery .project-text {
  box-sizing: border-box;
  max-width: 100%;
  margin-top: 0;
  margin-bottom: 0;
  font-size: 15px;
  line-height: 1.75;
}
.project-gallery .project-text p { margin: 0 0 1.4em; }
.project-gallery .project-text p:last-child { margin-bottom: 0; }
.project-gallery .project-text.size-wide { width: 100%; }
.project-gallery .project-text.size-long { width: min(76%, 900px); }
.project-gallery .project-text.size-portrait { width: min(52%, 620px); }
.project-gallery .project-text.size-square { width: min(40%, 520px); }
.project-gallery .project-text.align-left { align-self: flex-start; margin-left: 0; margin-right: auto; }
.project-gallery .project-text.align-right { align-self: flex-end; margin-left: auto; margin-right: 0; }
.project-gallery .project-text.align-left-moderate { align-self: flex-start; margin-left: 10%; margin-right: auto; }
.project-gallery .project-text.align-right-moderate { align-self: flex-end; margin-left: auto; margin-right: 10%; }
.project-gallery .project-text.align-left-edge { align-self: flex-start; margin-left: 0; transform: translateX(calc(-1 * max(4vw, calc((100vw - 1440px) / 2 + 4vw)))); }
.project-gallery .project-text.align-right-edge { align-self: flex-end; margin-right: 0; transform: translateX(max(4vw, calc((100vw - 1440px) / 2 + 4vw))); }

/* Alignment classes work on older pages whether placed on a figure or directly on an image. */
.project-gallery img.align-left, .project-hero img.align-left { margin-left: 0 !important; margin-right: auto !important; }
.project-gallery img.align-right, .project-hero img.align-right { margin-left: auto !important; margin-right: 0 !important; }
.project-gallery img.align-left-moderate, .project-hero img.align-left-moderate { margin-left: 10% !important; margin-right: auto !important; }
.project-gallery img.align-right-moderate, .project-hero img.align-right-moderate { margin-left: auto !important; margin-right: 10% !important; }
.project-gallery img.align-left-edge, .project-hero img.align-left-edge { margin-left: 0 !important; margin-right: auto !important; transform: translateX(calc(-1 * max(4vw, calc((100vw - 1440px) / 2 + 4vw)))); }
.project-gallery img.align-right-edge, .project-hero img.align-right-edge { margin-left: auto !important; margin-right: 0 !important; transform: translateX(max(4vw, calc((100vw - 1440px) / 2 + 4vw))); }

/* Hero caption: force the exact same typography and alignment as gallery captions. */
.project-hero figure > figcaption,
.project-hero figure > figcaption.hero-caption {
  display: block !important;
  width: auto;
  max-width: 100%;
  margin: 8px 0 0 !important;
  padding: 0;
  color: #777 !important;
  font-family: inherit;
  font-size: 10px !important;
  font-weight: 400;
  line-height: 1.4 !important;
  letter-spacing: .04em !important;
  text-align: left !important;
  text-transform: none;
  font-style: normal;
}
.project-hero figure { margin: 0; }
.project-hero figure img { margin-bottom: 0; }

/* Local HTML5 video uses the same width/alignment classes as images. */
.video-wrap { position: relative; aspect-ratio: 16 / 9; overflow: hidden; }
.video-wrap video { display: block; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; border: 0; }
.project-gallery .video-wrap.size-wide { width: 100%; }
.project-gallery .video-wrap.size-long { width: min(76%, 1000px); align-self: center; }
.project-gallery .video-wrap.size-portrait { width: min(52%, 650px); align-self: center; }
.project-gallery .video-wrap.size-square { width: min(60%, 650px); align-self: center; }
.project-gallery .video-wrap.align-left { align-self: flex-start; margin-left: 0; margin-right: auto; }
.project-gallery .video-wrap.align-right { align-self: flex-end; margin-left: auto; margin-right: 0; }
.project-gallery .video-wrap.align-left-moderate { align-self: flex-start; margin-left: 10%; margin-right: auto; }
.project-gallery .video-wrap.align-right-moderate { align-self: flex-end; margin-left: auto; margin-right: 10%; }
.publication-download { display: inline-block; margin: -2rem auto 3rem; font-size: .85rem; text-decoration: underline; text-underline-offset: 3px; }
.project-footer .to-fill:empty { min-height: .6em; }
@media(max-width:650px) {
 .project-gallery .project-text.size-long { width: 100%; }
 .project-gallery .project-text.size-portrait { width: 82%; }
 .project-gallery .project-text.size-square { width: 80%; }
 .project-gallery .project-text.align-left-moderate { margin-left: 5%; }
 .project-gallery .project-text.align-right-moderate { margin-right: 5%; }
 .project-gallery .project-text.align-left-edge,
 .project-gallery .project-text.align-right-edge { max-width:100%; margin-left:0; margin-right:0; transform:none; }
 .project-gallery .video-wrap.size-long { width: 100%; }
 .project-gallery .video-wrap.size-portrait { width: 82%; }
 .project-gallery .video-wrap.size-square { width: 80%; }
 .project-gallery .video-wrap.align-left-moderate { margin-left:5%; }
 .project-gallery .video-wrap.align-right-moderate { margin-right:5%; }
 .project-gallery .video-wrap.align-left-edge,
 .project-gallery .video-wrap.align-right-edge { max-width:100%; margin-left:0; margin-right:0; transform:none; }
}


/* Size presets also accept classes placed directly on legacy <img> elements. */
.project-gallery img.size-wide { width:100%; max-width:100%; height:auto; max-height:none; }
.project-gallery img.size-long { width:auto; max-width:100%; max-height:110vh; object-fit:contain; }
.project-gallery img.size-portrait { width:auto; max-width:100%; max-height:85vh; object-fit:contain; }
.project-gallery img.size-square { width:min(60%,650px); max-width:100%; height:auto; }
@media(max-width:650px) {
 .project-gallery img.size-long { max-height:95vh; }
 .project-gallery img.size-portrait { max-height:80vh; }
 .project-gallery img.size-square { width:80%; }
}
\n\n/* Consistent selection feedback across every page and all text. */\n::selection { color: #fff; background: #000; }\n::-moz-selection { color: #fff; background: #000; }\na:active { color: #fff; background: #000; }\n

/* Definitive shared caption styling: hero and gallery captions must be identical. */
.project-gallery figure > figcaption,
.project-hero figure > figcaption,
.project-hero figure > figcaption.hero-caption {
  display: block;
  box-sizing: border-box;
  width: auto;
  max-width: 100%;
  margin: 8px 0 0;
  padding: 0;
  color: #777;
  font-family: inherit;
  font-size: 10px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: .04em;
  text-align: left;
  text-transform: none;
  font-style: normal;
}

/* Video wrappers participate in the same size/alignment system as gallery figures. */
.project-gallery > .video-wrap {
  box-sizing: border-box;
  flex: 0 0 auto;
  max-width: 100%;
}
.project-gallery > .video-wrap.size-wide { width: 100%; }
.project-gallery > .video-wrap.size-long { width: min(76%, 1000px); }
.project-gallery > .video-wrap.size-portrait { width: min(52%, 650px); }
.project-gallery > .video-wrap.size-square { width: min(60%, 650px); }

.project-gallery > .video-wrap.align-left {
  align-self: flex-start; margin-left: 0; margin-right: auto; transform: none;
}
.project-gallery > .video-wrap.align-right {
  align-self: flex-end; margin-left: auto; margin-right: 0; transform: none;
}
.project-gallery > .video-wrap.align-left-moderate {
  align-self: flex-start; margin-left: 10%; margin-right: auto; transform: none;
}
.project-gallery > .video-wrap.align-right-moderate {
  align-self: flex-end; margin-left: auto; margin-right: 10%; transform: none;
}
.project-gallery > .video-wrap.align-left-edge {
  align-self: flex-start; margin-left: 0; margin-right: auto;
  transform: translateX(calc(-1 * max(4vw, calc((100vw - 1440px) / 2 + 4vw))));
}
.project-gallery > .video-wrap.align-right-edge {
  align-self: flex-end; margin-left: auto; margin-right: 0;
  transform: translateX(max(4vw, calc((100vw - 1440px) / 2 + 4vw)));
}

@media (max-width: 650px) {
  .project-gallery > .video-wrap.size-long { width: 100%; }
  .project-gallery > .video-wrap.size-portrait { width: 82%; }
  .project-gallery > .video-wrap.size-square { width: 80%; }
  .project-gallery > .video-wrap.align-left-moderate { margin-left: 5%; }
  .project-gallery > .video-wrap.align-right-moderate { margin-right: 5%; }
  .project-gallery > .video-wrap.align-left-edge,
  .project-gallery > .video-wrap.align-right-edge {
    max-width: 100%; margin-left: 0; margin-right: 0; transform: none;
  }
}


/* MOBILE REFINEMENT — compact two-column header, without horizontal overflow. */
@media (max-width: 650px) {
  header {
    left: 0;
    right: 0;
    top: 0;
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: .45rem .55rem .35rem;
    display: grid;
    grid-template-columns: 4.25rem minmax(0, 1fr);
    column-gap: .35rem;
    align-items: start;
    justify-content: initial;
  }
  header > a { display:block; min-width:0; margin:.12rem 0 0; }
  header h1 { font-size:.78rem; line-height:1.18; overflow-wrap:normal; }
  header nav {
    min-width:0; width:100%; margin:.15rem 0 0;
    display:flex; flex-wrap:wrap; align-items:center;
    justify-content:space-between; column-gap:.18rem; row-gap:.35rem;
  }
  header nav > a { margin:0 .12rem; font-size:.69rem; line-height:1.25; white-space:nowrap; }
  header nav .language-switcher { margin:0 .1rem 0 auto; gap:.35rem; white-space:nowrap; }
  header nav .language-switcher a { margin:0 !important; font-size:.63rem; }
  main { padding-top:5rem; }
}

/* MOBILE ALIGNMENT — preserve the desktop left/right/edge composition.
   The 4vw shift offsets the main container's own 4vw inset, so edge items
   actually meet the viewport edge instead of being pulled back to center. */
@media (max-width: 650px) {
  .project-gallery figure.align-left,
  .project-gallery .video-wrap.align-left,
  .project-gallery .project-text.align-left,
  .project-gallery img.align-left,
  .project-hero.align-left img,
  .project-hero img.align-left {
    align-self:flex-start; margin-left:0 !important; margin-right:auto !important; transform:none;
  }
  .project-gallery figure.align-right,
  .project-gallery .video-wrap.align-right,
  .project-gallery .project-text.align-right,
  .project-gallery img.align-right,
  .project-hero.align-right img,
  .project-hero img.align-right {
    align-self:flex-end; margin-left:auto !important; margin-right:0 !important; transform:none;
  }
  .project-gallery figure.align-left-moderate,
  .project-gallery .video-wrap.align-left-moderate,
  .project-gallery .project-text.align-left-moderate,
  .project-gallery img.align-left-moderate,
  .project-hero.align-left-moderate img,
  .project-hero img.align-left-moderate {
    align-self:flex-start; margin-left:5% !important; margin-right:auto !important; transform:none;
  }
  .project-gallery figure.align-right-moderate,
  .project-gallery .video-wrap.align-right-moderate,
  .project-gallery .project-text.align-right-moderate,
  .project-gallery img.align-right-moderate,
  .project-hero.align-right-moderate img,
  .project-hero img.align-right-moderate {
    align-self:flex-end; margin-left:auto !important; margin-right:5% !important; transform:none;
  }
  .project-gallery figure.align-left-edge,
  .project-gallery .video-wrap.align-left-edge,
  .project-gallery .project-text.align-left-edge,
  .project-gallery img.align-left-edge,
  .project-hero.align-left-edge img,
  .project-hero img.align-left-edge {
    align-self:flex-start; margin-left:0 !important; margin-right:auto !important;
    transform:translateX(-4vw);
  }
  .project-gallery figure.align-right-edge,
  .project-gallery .video-wrap.align-right-edge,
  .project-gallery .project-text.align-right-edge,
  .project-gallery img.align-right-edge,
  .project-hero.align-right-edge img,
  .project-hero img.align-right-edge {
    align-self:flex-end; margin-left:auto !important; margin-right:0 !important;
    transform:translateX(4vw);
  }
  /* Images retain their existing size presets; only positioning changes. */
  .project-gallery .project-text.align-left-edge,
  .project-gallery .project-text.align-right-edge { width:min(100%, 100vw); }
  .project-gallery .video-wrap.align-left-edge,
  .project-gallery .video-wrap.align-right-edge { width:min(100%, 100vw); }
}


/* MOBILE HEADER — shared layout for index and every project page.
   Keep identity, navigation and language selector on one horizontal axis. */
@media (max-width: 650px) {
  header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: .4rem 1.2rem .35rem !important;
    display: grid !important;
    grid-template-columns: 4rem minmax(0, 1fr) !important;
    column-gap: .45rem !important;
    align-items: center !important;
    justify-content: initial !important;
    z-index: 100 !important;
  }

  header > a {
    display: block !important;
    min-width: 0 !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    align-self: center !important;
  }

  header h1 {
    margin: 0 !important;
    font-size: .7rem !important;
    line-height: 1.12 !important;
    font-weight: 700 !important;
    overflow-wrap: normal !important;
  }

  header nav {
    min-width: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: .12rem !important;
    align-self: center !important;
    line-height: 1 !important;
  }

  header nav > a {
    flex: 0 1 auto !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: clamp(.48rem, 1.65vw, .62rem) !important;
    line-height: 1.15 !important;
    white-space: nowrap !important;
  }

  header nav .language-switcher {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: .2rem !important;
    margin: 0 0 0 .18rem !important;
    padding: 0 !important;
    white-space: nowrap !important;
    line-height: 1 !important;
    align-self: center !important;
  }

  header nav .language-switcher a {
    display: inline-block !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: clamp(.47rem, 1.55vw, .58rem) !important;
    line-height: 1 !important;
    vertical-align: middle !important;
  }
}
