:root {
  --bg: #070707;
  --panel: #0e0e0e;
  --ink: #f4eee8;
  --muted: #a49f9b;
  --red: #f14635;
  --line: #292725;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: "DM Sans", sans-serif;
}
a {
  color: inherit;
  text-decoration: none;
}
.nav {
  position: fixed;
  z-index: 20;
  top: 0;
  left: 0;
  right: 0;
  height: 76px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 4vw;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(7, 7, 7, 0.72);
  backdrop-filter: blur(16px);
}
.brand {
  width: 105px;
  height: 52px;
  display: grid;
  place-items: center;
  overflow: visible;
}
.brand img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transform: scale(2.15);
  filter: hue-rotate(322deg) saturate(1.08) brightness(1.04);
}
nav {
  display: flex;
  gap: 2rem;
}
nav a {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #d8d3ce;
}
.hero {
  min-height: 100svh;
  display: grid;
  grid-template-columns: 50% 50%;
  position: relative;
  padding-top: 76px;
}
.hero-copy {
  padding: 10vh 3vw 5vh 4vw;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.eyebrow,
.section-index {
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  color: var(--red);
  font-weight: 600;
}
.hero h1 {
  display: flex;
  flex-direction: column;
  margin: 3rem 0 2.2rem;
}
.hero h1 small {
  color: var(--ink);
  font: 700 clamp(0.88rem, 1.25vw, 1.15rem) / 1.2 "Manrope";
  letter-spacing: 0.24em;
  margin: 1.25rem 0 0 0.3rem;
}
.hero h1 span {
  color: var(--ink);
  font: 800 clamp(4.6rem, 8.2vw, 8.4rem) / 0.78 "Manrope";
  letter-spacing: -0.075em;
}
.hero h1 .hero-accent {
  color: transparent;
  -webkit-text-stroke: 1.5px var(--red);
}
.lead {
  max-width: 610px;
  font-size: clamp(1.15rem, 1.8vw, 1.65rem);
  line-height: 1.35;
  color: #d0cbc7;
  margin: 0 0 2rem;
}
.actions {
  display: flex;
  gap: 0.8rem;
  flex-wrap: wrap;
}
.button {
  padding: 1rem 1.25rem;
  border: 1px solid var(--line);
  font-size: 0.84rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.button.primary {
  background: var(--red);
  border-color: var(--red);
  color: #090909;
  font-weight: 700;
}
.button span {
  margin-left: 1.2rem;
}
.button:hover,
.contact-links a:hover {
  transform: translateY(-2px);
}
.credits-line {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 1.3rem;
  margin-top: 7vh;
  color: #7f7a76;
  font-size: 0.65rem;
  letter-spacing: 0.1em;
}
.hero-image {
  margin: 0;
  position: relative;
  overflow: hidden;
  background: #120806;
}
.hero-image:after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      90deg,
      rgba(7, 7, 7, 0.68) 0%,
      rgba(7, 7, 7, 0.38) 24%,
      rgba(7, 7, 7, 0.12) 52%,
      transparent 78%
    ),
    linear-gradient(0deg, rgba(0, 0, 0, 0.2), transparent 48%);
  pointer-events: none;
}
.hero-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  filter: saturate(0.93) contrast(1.05);
}
.hero-image figcaption {
  position: absolute;
  right: 1.2rem;
  bottom: 1rem;
  z-index: 2;
  font-size: 0.65rem;
  letter-spacing: 0.14em;
}
.scroll {
  position: absolute;
  left: 4vw;
  bottom: 1.5rem;
  font-size: 0.6rem;
  letter-spacing: 0.2em;
  color: #75706c;
}
.scroll span {
  color: var(--red);
  margin-left: 0.5rem;
}
.statement,
.services {
  padding: 10rem 4vw;
  display: grid;
  grid-template-columns: 26% 74%;
  border-top: 1px solid var(--line);
}
.statement > div {
  max-width: 920px;
}
.statement h2,
.section-head h2,
.contact h2 {
  font: 800 clamp(3.2rem, 7vw, 7rem) / 0.88 "Manrope";
  letter-spacing: -0.065em;
  margin: 0 0 3rem;
}
.statement p:not(.section-index) {
  max-width: 720px;
  font-size: 1.2rem;
  line-height: 1.65;
  color: #b8b2ad;
}
.origin {
  padding: 9rem 4vw;
  border-top: 1px solid var(--line);
}
.origin-head {
  display: grid;
  grid-template-columns: 26% 74%;
  align-items: start;
  margin-bottom: 4rem;
}
.origin-head h2 {
  font: 800 clamp(3.2rem, 7vw, 7rem) / 0.88 "Manrope";
  letter-spacing: -0.065em;
  margin: 0 0 2rem;
}
.origin-intro {
  max-width: 760px;
  color: #b8b2ad;
  font-size: 1.15rem;
  line-height: 1.65;
  margin: 0;
}
.origin-dan {
  margin-top: 1.4rem;
}
.origin-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.8rem;
}
.origin-card {
  margin: 0;
  min-width: 0;
  background: #0d0d0d;
  border: 1px solid var(--line);
  overflow: hidden;
}
.origin-card > img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
}
.origin-card > img {
  object-fit: cover;
  filter: saturate(0.92) contrast(1.04);
  transition:
    filter 0.35s ease,
    transform 0.65s ease;
}
.origin-card:hover > img {
  filter: saturate(1.08) contrast(1.07);
  transform: scale(1.025);
}
.origin-meta {
  min-height: 112px;
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 1rem;
  padding: 1.15rem 1.2rem 1.3rem;
  border-top: 1px solid var(--line);
}
.origin-meta h3 {
  font: 700 1rem "Manrope";
  letter-spacing: 0.02em;
  margin: 0 0 0.3rem;
}
.origin-meta p {
  margin: 0;
  color: var(--muted);
  font-size: 0.78rem;
}
.origin-meta > span {
  max-width: 42%;
  color: var(--red);
  font-size: 0.6rem;
  letter-spacing: 0.11em;
  text-align: right;
}
.process {
  padding: 9rem 4vw;
  border-top: 1px solid var(--line);
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(390px, 0.92fr);
  gap: clamp(3rem, 6vw, 7rem);
  align-items: start;
}
.process-head {
  display: block;
  position: sticky;
  top: 7rem;
}
.process-head .section-index {
  margin-bottom: 3.25rem;
}
.process-head h2 {
  font: 800 clamp(3.2rem, 6.2vw, 6.8rem) / 0.88 "Manrope";
  letter-spacing: -0.065em;
  margin: 0 0 2.5rem;
}
.process-copy {
  display: block;
  max-width: 760px;
}
.process-copy p {
  margin: 0 0 1.15rem;
  color: #b8b2ad;
  font-size: 1rem;
  line-height: 1.72;
}
.process-manifesto {
  max-width: 760px;
  margin: 2.5rem 0 0;
  color: var(--ink);
  font: 700 clamp(1.3rem, 2.2vw, 2.3rem) / 1.15 "Manrope";
  letter-spacing: -0.035em;
}
.process-manifesto span {
  color: var(--red);
}
.process-collage {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: clamp(92px, 9vw, 138px);
  gap: 0.42rem;
  padding: 0.42rem;
  border: 1px solid var(--line);
  background: #090909;
  box-shadow: 0 28px 70px rgba(0, 0, 0, 0.28);
}
.process-photo {
  position: relative;
  margin: 0;
  overflow: hidden;
  background: #101010;
}
.process-photo:nth-last-child(2):nth-child(3n + 1) {
  grid-column: span 2;
}
.process-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1) contrast(1.08);
  transition:
    transform 0.55s ease,
    filter 0.35s ease;
}
.process-photo--heads img {
  object-position: 50% 18%;
}
.process-photo--miranda img {
  object-position: 50% 25%;
}
.process-photo--sara img {
  object-position: 50% 35%;
}
.process-photo--virlan img {
  object-position: 50% 40%;
}
.process-photo:hover img {
  transform: scale(1.025);
  filter: grayscale(1) contrast(1.18);
}
.process-photo::after {
  content: "";
  position: absolute;
  inset: 45% 0 0;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.76), transparent);
  pointer-events: none;
}
.process-photo figcaption {
  position: absolute;
  z-index: 2;
  left: 0.65rem;
  right: 0.65rem;
  bottom: 0.55rem;
  color: #ddd8d3;
  font-size: 0.58rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.work {
  padding: 9rem 4vw;
  border-top: 1px solid var(--line);
}
.section-head {
  display: grid;
  grid-template-columns: 26% 74%;
  align-items: start;
  margin-bottom: 4rem;
}
.projects {
  border-top: 1px solid var(--line);
}
.project {
  display: grid;
  grid-template-columns: 7% 43% 1fr 3rem;
  align-items: center;
  gap: 1rem;
  padding: 1.6rem 0.3rem;
  border-bottom: 1px solid var(--line);
  transition: 0.25s ease;
}
.project:hover {
  background: #101010;
  padding-left: 1rem;
}
.number,
.meta {
  font-size: 0.68rem;
  color: #7c7773;
  letter-spacing: 0.09em;
}
.project h3 {
  font: 700 clamp(1.25rem, 2vw, 2rem) "Manrope";
  margin: 0 0 0.25rem;
  letter-spacing: -0.03em;
}
.project p {
  margin: 0;
  color: var(--muted);
  font-size: 0.9rem;
}
.arrow {
  font-size: 1.4rem;
  color: var(--red);
}
.services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--line);
}
.services article {
  background: var(--bg);
  padding: 2.2rem;
}
.services article > span {
  font-size: 0.7rem;
  color: var(--red);
}
.services h3 {
  font: 700 1.35rem "Manrope";
  margin: 3rem 0 1rem;
}
.services article p {
  color: var(--muted);
  line-height: 1.55;
}
.contact {
  padding: 10rem 4vw 8rem;
  border-top: 1px solid var(--line);
}
.contact h2 {
  margin: 3rem 0 2rem;
}
.contact h2 span {
  color: var(--red);
}
.contact-copy {
  font-size: 1.1rem;
  color: var(--muted);
  margin-bottom: 4rem;
}
.contact-links {
  display: grid;
  border-top: 1px solid var(--line);
}
.contact-links a {
  display: flex;
  justify-content: space-between;
  padding: 1.4rem 0.25rem;
  border-bottom: 1px solid var(--line);
  font-size: clamp(1rem, 2vw, 1.4rem);
  transition: 0.2s;
}
.contact-links span {
  color: var(--red);
}
footer {
  padding: 2rem 4vw;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  color: #77716d;
  font-size: 0.65rem;
  letter-spacing: 0.11em;
}
@media (max-width: 850px) {
  .nav {
    height: 64px;
  }
  .nav nav {
    gap: 1rem;
  }
  .nav nav a:nth-child(2) {
    display: none;
  }
  .hero {
    grid-template-columns: 1fr;
    padding-top: 64px;
  }
  .hero-copy {
    min-height: 72svh;
    padding: 8rem 5vw 4rem;
  }
  .hero-image {
    height: 54svh;
  }
  .hero h1 span {
    font-size: clamp(2.5rem, 11.5vw, 5rem);
  }
  .hero-image:after {
    background: linear-gradient(
      0deg,
      var(--bg) 0%,
      rgba(7, 7, 7, 0.32) 30%,
      transparent 58%
    );
  }
  .credits-line {
    margin-top: 4rem;
  }
  .scroll {
    display: none;
  }
  .statement,
  .services {
    padding: 7rem 5vw;
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .section-head {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .origin {
    padding: 7rem 5vw;
  }
  .origin-head,
  .process-head {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .origin-grid {
    grid-template-columns: 1fr;
  }
  .origin-card > img {
    aspect-ratio: 16 / 8.7;
  }
  .origin-meta {
    min-height: 100px;
  }
  .process {
    padding: 7rem 5vw;
    grid-template-columns: 1fr;
    gap: 3.5rem;
  }
  .process-head {
    position: static;
  }
  .process-copy {
    grid-template-columns: 1fr;
  }
  .process-collage {
    grid-auto-rows: clamp(105px, 19vw, 175px);
  }
  .work,
  .contact {
    padding: 7rem 5vw;
  }
  .services-grid {
    grid-template-columns: 1fr;
  }
  .project {
    grid-template-columns: 2.5rem 1fr 2rem;
  }
  .project .meta {
    display: none;
  }
  .project h3 {
    font-size: 1.2rem;
  }
  .project p {
    font-size: 0.78rem;
  }
  footer {
    flex-direction: column;
    gap: 0.8rem;
    padding: 2rem 5vw;
  }
}
@media (max-width: 430px) {
  nav a {
    font-size: 0.65rem;
  }
  .lead {
    font-size: 1.08rem;
  }
  .actions {
    flex-direction: column;
  }
  .button {
    text-align: center;
  }
  .statement h2,
  .origin-head h2,
  .process-head h2,
  .section-head h2,
  .contact h2 {
    font-size: 3rem;
  }
  .contact-links a {
    font-size: 0.92rem;
  }
  .process-collage {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 145px;
  }
  .process-photo figcaption {
    font-size: 0.52rem;
  }
  .process-photo:nth-last-child(2):nth-child(3n + 1) {
    grid-column: auto;
  }
  .process-photo:last-child:nth-child(odd) {
    grid-column: span 2;
  }
}

.film-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 250px;
  gap: 0.65rem;
  margin-bottom: 7rem;
}
.film-frame {
  position: relative;
  margin: 0;
  overflow: hidden;
  background: #111;
}
.film-frame.wide {
  grid-column: span 2;
}
.film-frame.tall {
  grid-row: span 2;
}
.film-frame.under-3am {
  grid-column: 3;
}
.film-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition:
    transform 0.65s ease,
    filter 0.65s ease;
  filter: saturate(0.9) contrast(1.04);
}
.film-frame img.frame-focus-top {
  object-position: center 28%;
}
.film-frame:hover img {
  transform: scale(1.035);
  filter: saturate(1.08) contrast(1.08);
}
.film-frame::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.78), transparent 52%);
  pointer-events: none;
}
.film-frame figcaption {
  position: absolute;
  z-index: 2;
  left: 1.15rem;
  right: 1.15rem;
  bottom: 1rem;
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 1rem;
}
.film-frame figcaption span {
  font: 700 0.85rem "Manrope";
  letter-spacing: 0.05em;
}
.film-frame figcaption small {
  font-size: 0.58rem;
  letter-spacing: 0.11em;
  color: #bbb5af;
  text-align: right;
}
.motion-section {
  padding: 9rem 4vw;
  border-top: 1px solid var(--line);
}
.motion-head {
  margin-bottom: 4rem;
}
.motion-intro {
  max-width: 620px;
  margin: -1.5rem 0 0;
  color: var(--muted);
  font-size: 1.05rem;
  line-height: 1.6;
}
.motion-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}
.motion-card {
  position: relative;
  margin: 0;
  background: #0d0d0d;
  overflow: hidden;
}
.motion-card video {
  display: block;
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  background: #111;
  filter: saturate(0.92) contrast(1.04);
  transition:
    filter 0.35s ease,
    transform 0.65s ease;
}
.motion-card:hover video {
  filter: saturate(1.08) contrast(1.06);
  transform: scale(1.012);
}
.motion-meta {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 1rem;
  padding: 1.15rem 1.2rem 1.3rem;
  border-top: 1px solid var(--line);
}
.motion-meta h3 {
  font: 700 1rem "Manrope";
  letter-spacing: 0.02em;
  margin: 0 0 0.25rem;
}
.motion-meta p {
  margin: 0;
  color: var(--muted);
  font-size: 0.8rem;
}
.motion-meta > span {
  font-size: 0.62rem;
  letter-spacing: 0.11em;
  color: var(--red);
  text-align: right;
}
@media (max-width: 850px) {
  .film-grid {
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 220px;
    margin-bottom: 5rem;
  }
  .film-frame.wide {
    grid-column: span 2;
  }
  .film-frame.under-3am {
    grid-column: auto;
  }
  .motion-section {
    padding: 7rem 5vw;
  }
  .motion-grid {
    grid-template-columns: 1fr;
  }
  .motion-intro {
    margin: 0;
  }
  .motion-meta {
    padding: 1rem;
  }
  .motion-meta > span {
    max-width: 42%;
  }
}
@media (max-width: 520px) {
  .film-grid {
    display: block;
  }
  .film-frame,
  .film-frame.wide,
  .film-frame.tall {
    height: 240px;
    margin-bottom: 0.6rem;
  }
  .film-frame figcaption {
    left: 0.8rem;
    right: 0.8rem;
  }
  .film-frame figcaption small {
    max-width: 45%;
  }
}

/* Full-width photographic cover: independent background, type and portrait. */
.hero-layered {
  --mx: 0; --my: 0;
  display: block;
  min-height: 920px;
  height: max(920px, 100svh);
  padding-top: 76px;
  overflow: hidden;
  isolation: isolate;
  background: #a62b1d;
}
.hero-backdrop {
  position: absolute; inset: -3%; z-index: -1;
  background: radial-gradient(ellipse at 50% 60%, #ff9465 0%, #ed5438 40%, #a1251a 80%), #b63223;
  transform: translate(calc(var(--mx) * -18px), calc(var(--my) * -12px)) scale(1.03);
  transition: transform 1.2s ease-out;
}
.hero-backdrop::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(7,7,7,.94), rgba(7,7,7,.7) 24%, transparent 52%, rgba(7,7,7,.18) 76%, rgba(7,7,7,.94));
}
.hero-layered .hero-copy {
  position: relative; z-index: 5; padding: 40px 5vw 0;
  min-height: 0; align-items: center; text-align: center;
}
.hero-layered .eyebrow { margin: 0 0 15px; color: #ff705a; }
.hero-tagline { font: 800 clamp(1rem, 1.8vw, 1.5rem) 'Manrope', sans-serif; letter-spacing: .18em; margin: 0 0 15px; }
.hero-layered .lead { max-width: 740px; font-size: clamp(1rem, 1.4vw, 1.2rem); margin-bottom: 22px; }
.hero-layered .actions { justify-content: center; }
.hero-layered .button.ghost { background: rgba(7,7,7,.45); border-color: rgba(244,238,232,.3); }
.hero-layered h1.hero-name {
  position: absolute; z-index: 1; top: 34%; left: 3%; right: 3%;
  margin: 0; align-items: center; text-align: center; gap: 18px;
  transform: translate(calc(var(--mx) * -28px), calc(var(--my) * -16px));
  transition: transform .8s ease-out;
}
.hero-layered h1.hero-name span { font-size: clamp(90px, 18vw, 270px); line-height: .85; letter-spacing: -.07em; }
.hero-layered h1.hero-name .hero-accent { -webkit-text-stroke: 2px #f4eee8; }
.hero-portrait {
  position: absolute; z-index: 2; margin: 0; height: 65%; width: 100%; bottom: 6%;
  display: flex; justify-content: center; pointer-events: none;
  transform: translate(calc(var(--mx) * 16px), calc(var(--my) * 10px));
  transition: transform .65s ease-out;
}
.hero-portrait img { height: 100%; width: auto; max-width: 90%; object-fit: contain; }
.hero-footer { position: absolute; z-index: 5; bottom: 28px; left: 5vw; right: 5vw; display: flex; gap: 2rem; align-items: end; justify-content: space-between; }
.hero-layered .credits-line { margin: 0; max-width: 850px; color: #ccc3bd; font-size: .6rem; }
.hero-set { white-space: nowrap; font-size: .6rem; letter-spacing: .15em; color: #ccc3bd; }
.hero-layered .scroll { z-index: 5; bottom: 65px; left: 5vw; color: #eee; }
.origin-intro + .origin-intro { margin-top: 1.4rem; }
@media (max-width: 850px) {
  .hero-layered { height: max(860px, 100svh); min-height: 860px; padding-top: 64px; }
  .hero-layered .hero-copy { padding: 35px 5vw 0; }
  .hero-layered h1.hero-name { top: 42%; gap: 12px; }
  .hero-layered h1.hero-name span { font-size: 18.7vw; }
  .hero-portrait { height: 51%; bottom: 9%; }
  .hero-layered .actions { flex-direction: row; gap: 8px; }
  .hero-layered .button { font-size: .65rem; padding: .85rem .9rem; }
  .hero-layered .button span { margin-left: .5rem; }
  .hero-footer { bottom: 20px; flex-direction: column; align-items: center; gap: 12px; text-align: center; }
  .hero-layered .credits-line { justify-content: center; font-size: .52rem; gap: 7px 12px; }
}
@media (max-width: 430px) {
  .hero-layered { height: max(850px, 100svh); min-height: 850px; }
  .hero-layered .hero-copy { padding-top: 30px; }
  .hero-layered .eyebrow { font-size: .58rem; }
  .hero-tagline { font-size: .82rem; letter-spacing: .13em; }
  .hero-layered .lead { font-size: .95rem; line-height: 1.45; }
  .hero-layered h1.hero-name { top: 43%; }
  .hero-portrait { height: 48%; bottom: 10%; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-backdrop, .hero-layered h1.hero-name, .hero-portrait { transform: none; transition: none; }
}

/* Original studio accessories and textured artist lettering. */
.hero-backdrop {
  background: #d1442c url('assets/gerardo-studio-smoke.png') center / cover no-repeat;
}
.hero-layered h1.hero-name { top: 34%; left: 5%; right: 5%; }
.hero-name img { display: block; width: min(100%, 1200px); height: auto; }
@media (max-width: 850px) {
  .hero-backdrop { background-size: 100% 68%; background-position: center bottom; }
  .hero-layered h1.hero-name { top: 43%; left: 3%; right: 3%; }
}

/* Keep the face clear: title above the neck, copy at the feet. */
.hero-layered .hero-copy {
  position: absolute; top: auto; bottom: 85px; left: 0; right: 0;
  padding: 20px 5vw 0;
}
.hero-layered h1.hero-name { top: 88px; }
.hero-name img { width: 100%; height: 230px; object-fit: contain; }
.hero-portrait { top: 210px; bottom: auto; height: calc(100% - 390px); }
.hero-backdrop::after {
  background: linear-gradient(180deg, rgba(7,7,7,.52), transparent 30%, transparent 58%, rgba(7,7,7,.78) 81%, rgba(7,7,7,.97));
}
.hero-layered .scroll { display: none; }
@media (max-width: 850px) {
  .hero-layered { min-height: 1000px; height: max(1000px, 100svh); }
  .hero-layered h1.hero-name { top: 82px; }
  .hero-name img { height: 210px; }
  .hero-portrait { top: 225px; height: calc(100% - 480px); }
  .hero-layered .hero-copy { top: auto; bottom: 100px; padding: 20px 5vw 0; }
  .hero-backdrop { background-size: 100% 100%; }
}
@media (max-width: 430px) {
  .hero-layered h1.hero-name { top: 95px; }
  .hero-name img { height: 170px; }
  .hero-portrait { top: 205px; height: 480px; }
  .hero-layered .hero-copy { padding-top: 20px; }
}

/* Display untouched original portrait pixels through a browser mask. */
.hero-layered { min-height: 860px; height: max(860px, 100svh); }
.hero-backdrop { background-size: 100% 100%; }
.hero-portrait { top: 25px; height: calc(100% - 90px); }
.hero-portrait img { width: auto; height: 100%; max-width: none; object-fit: contain; clip-path: url('#original-portrait-mask'); }
.hero-layered h1.hero-name { top: 90px; }
.hero-name img { height: 220px; }
@media (max-width: 850px) {
  .hero-layered { min-height: 940px; height: max(940px, 100svh); }
  .hero-portrait { top: 75px; height: 680px; }
  .hero-layered h1.hero-name { top: 85px; }
  .hero-name img { height: 225px; }
  .hero-layered .hero-copy { bottom: 100px; }
}
@media (max-width: 430px) {
  .hero-portrait { top: 120px; height: 610px; }
  .hero-name img { height: 200px; }
}

/* Smaller, crisp white navigation logo and restored prior portrait. */
.brand { width: 72px; height: 42px; }
.brand svg { display: block; width: 100%; height: 100%; filter: brightness(0) invert(1); }
.hero-layered .eyebrow { color: #000; }
.hero-portrait { top: 210px; bottom: auto; height: calc(100% - 390px); }
.hero-portrait img { height: 100%; width: auto; max-width: 90%; object-fit: contain; clip-path: none; }
@media (max-width: 850px) {
  .brand { width: 64px; height: 36px; }
  .hero-portrait { top: 225px; height: calc(100% - 480px); }
}
@media (max-width: 430px) {
  .hero-portrait { top: 205px; height: 480px; }
}

/* Slightly larger main name while preserving the independent motion layer. */
.hero-name img { transform: scale(1.18); transform-origin: center; }

.concerts { padding: 9rem 4vw; border-top: 1px solid var(--line); scroll-margin-top: 76px; }
.concert-intro { max-width: 560px; color: var(--muted); font-size: 1.1rem; line-height: 1.6; }
.concert-event-head { display: flex; align-items: end; justify-content: space-between; gap: 2rem; padding: 2rem 0; border-top: 1px solid var(--line); }
.concert-kicker { color: var(--red); font-size: .65rem; letter-spacing: .2em; }
.concert-event-head h3 { font: 800 clamp(2.8rem,5vw,5rem)/1 'Manrope',sans-serif; margin: .6rem 0; letter-spacing: -.05em; }
.concert-event-head p:not(.concert-kicker) { color: #b8b2ad; }
.concert-artists { font-size: .85rem; text-align: right; }
.concert-gallery { columns: 3; column-gap: .75rem; }
.concert-photo { display: block; width: 100%; padding: 0; margin: 0 0 .75rem; border: 0; background: #101010; cursor: zoom-in; break-inside: avoid; overflow: hidden; }
.concert-photo img { display: block; width: 100%; height: auto; transition: transform .5s ease; }
.concert-photo:hover img { transform: scale(1.015); }
.concert-photo:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
.concert-viewer { max-width: 100vw; max-height: 100svh; width: 100vw; height: 100svh; margin: 0; padding: 60px 60px 45px; border: 0; background: rgba(7,7,7,.97); color: var(--ink); }
.concert-viewer[open] { display: flex; align-items: center; justify-content: center; }
.concert-viewer::backdrop { background: #070707; }
.concert-viewer img { max-width: 100%; max-height: 100%; object-fit: contain; }
.concert-viewer button { position: absolute; border: 1px solid #555; color: #fff; background: #171717; padding: 12px 15px; cursor: pointer; font: inherit; }
.concert-close { top: 15px; right: 20px; }
.concert-prev { left: 10px; top: 50%; }
.concert-next { right: 10px; top: 50%; }
.concert-counter { position: absolute; bottom: 5px; left: 0; right: 0; text-align: center; font-size: .75rem; color: #bbb; }
@media (max-width:850px) {
 .concerts { padding: 7rem 5vw; }
 .concert-gallery { columns: 2; column-gap: .5rem; }
 .concert-photo { margin-bottom: .5rem; }
 .concert-event-head { align-items: start; flex-direction: column; gap: .5rem; }
 .concert-artists { text-align: left; }
 .concert-viewer { padding: 65px 40px 45px; }
 .nav nav { gap: .75rem; }
}
@media (max-width:430px) {
 .concerts h2 { font-size: 3rem; }
 .nav nav a { font-size: .56rem; letter-spacing: .06em; }
}
@media (prefers-reduced-motion:reduce) { .concert-photo img { transition: none; } }
@media (max-width:850px) { .nav nav a:nth-child(2) { display: inline; } .nav nav a[href='#perfil'] { display: none; } }

/* One compact cover per concert; the complete collection opens in the viewer. */
.concert-gallery[hidden] { display: none; }
.concert-cover { display: block; position: relative; width: min(100%, 380px); padding: 0; border: 1px solid var(--line); background: #101010; color: var(--ink); cursor: pointer; overflow: hidden; text-align: left; }
.concert-cover > img { display: block; width: 100%; height: auto; transition: transform .5s ease; }
.concert-cover:hover > img { transform: scale(1.02); }
.concert-cover-label { display: flex; justify-content: space-between; align-items: center; position: absolute; bottom: 0; left: 0; right: 0; padding: 35px 20px 20px; background: linear-gradient(transparent, rgba(0,0,0,.9)); font: 600 .85rem 'DM Sans',sans-serif; }
.concert-cover-label > span { color: var(--red); font-size: 1.3rem; }
.concert-cover:focus-visible { outline: 2px solid var(--red); outline-offset: 4px; }
@media (max-width:850px) { .concert-cover { width: min(100%, 320px); } }
@media (prefers-reduced-motion:reduce) { .concert-cover > img { transition: none; } }

/* Event details belong to the same clickable photo card. */
.concert-card-info { display: flex; flex-direction: column; gap: 12px; padding: 20px; background: #111; border-top: 1px solid var(--line); }
.concert-card-title { font: 700 1.05rem/1.4 'Manrope',sans-serif; color: var(--ink); }
.concert-card-artists { color: #bbb5af; font: 400 .8rem/1.6 'DM Sans',sans-serif; }
.concert-card-action { display: flex; align-items: center; justify-content: space-between; padding-top: 14px; margin-top: 2px; border-top: 1px solid var(--line); color: var(--ink); font: 600 .8rem 'DM Sans',sans-serif; }
.concert-card-action > span { color: var(--red); font-size: 1.3rem; }
