  /* ==== BASE ==================================================== */
  :root{
    --ink:#111;
    --paper:#fff;
    --line:#e6e6e6;
    --muted:#6b6b6b;
    --header-h:64px;
    --pad: clamp(20px, 4vw, 56px);
    --ease: cubic-bezier(.22, 1, .36, 1); /* ease-out-quint: desaceleração arquitetural */
    --font: "Neue Haas Grotesk Display Pro","Neue Haas Unica","Helvetica Neue",Helvetica,Arial,sans-serif;
  }
  *{ margin:0; padding:0; box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  body{
    font-family:var(--font);
    background:var(--paper);
    color:var(--ink);
    font-size:16px;
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
  }
  img{ display:block; max-width:100%; }
  a{ color:inherit; text-decoration:none; }
  button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
  ::selection{ background:var(--ink); color:var(--paper); }
  :focus-visible{ outline:2px solid var(--ink); outline-offset:3px; }
  .hero :focus-visible,
  .video-stage :focus-visible{ outline-color:#fff; }

  .kicker{
    font-size:11px;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:var(--muted);
  }
  /* CTA de texto discreto — gramática de card consistente (ref. Hauser & Wirth) */
  .cta{
    display:inline-block;
    font-size:13px;
    letter-spacing:.08em;
    text-transform:uppercase;
    border-bottom:1px solid var(--ink);
    padding-bottom:2px;
    transition:opacity .3s var(--ease);
  }
  .cta:hover{ opacity:.45; }
  .sr-only{
    position:absolute; width:1px; height:1px;
    padding:0; margin:-1px; overflow:hidden;
    clip:rect(0 0 0 0); white-space:nowrap; border:0;
  }

  /* ==== 1 · HEADER ============================================== */
  .site-header{
    position:fixed; inset:0 0 auto 0; z-index:100;
    height:var(--header-h);
    display:flex; align-items:center; justify-content:space-between;
    padding:0 var(--pad);
    background:var(--paper);
    border-bottom:1px solid var(--line);
  }
  .wordmark{
    display:block;
    position:relative; z-index:120; /* permanece visível com o menu móvel aberto */
  }
  .site-nav{ display:flex; align-items:center; gap:clamp(14px,2vw,28px); }
  .site-nav a{
    font-size:13px;
    letter-spacing:.05em;
    padding:4px 0;
    border-bottom:1px solid transparent;
    transition:border-color .25s var(--ease);
  }
  .site-nav a:hover,
  .site-nav a:focus-visible{ border-bottom-color:var(--ink); }
  .lang-toggle{
    font-size:12px;
    letter-spacing:.1em;
    color:var(--muted);
    padding:4px 0;
    border-bottom:1px solid transparent;
    transition:color .25s var(--ease), border-color .25s var(--ease);
  }
  .lang-toggle:hover,
  .lang-toggle:focus-visible{ color:var(--ink); border-bottom-color:var(--ink); }
  .nav-meta{ display:none; } /* só existe no menu móvel */

  /* hamburger (só < 768px) — 44px de área de toque */
  .menu-btn{ display:none; width:44px; height:44px; position:relative; z-index:120; }
  .menu-btn span{
    position:absolute; left:11px; right:11px; height:1.5px;
    background:var(--ink);
    transition:transform .35s var(--ease), opacity .35s var(--ease);
  }
  .menu-btn span:nth-child(1){ top:16px; }
  .menu-btn span:nth-child(2){ top:22px; }
  .menu-btn span:nth-child(3){ top:28px; }
  body.menu-open .menu-btn span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
  body.menu-open .menu-btn span:nth-child(2){ opacity:0; }
  body.menu-open .menu-btn span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

  @media (max-width:767px){
    .menu-btn{ display:block; }
    .site-nav{
      position:fixed; inset:0; z-index:110;
      flex-direction:column; justify-content:flex-start; align-items:stretch;
      gap:0;
      padding:calc(var(--header-h) + 4vh) var(--pad) 0;
      background:var(--paper);
      overflow-y:auto; /* telas baixas: o menu rola, nada some */
      visibility:hidden; opacity:0;
      transition:opacity .3s ease, visibility 0s .3s;
    }
    body.menu-open .site-nav{ visibility:visible; opacity:1; transition:opacity .3s ease; }
    /* ritmo deliberado: linhas grandes, respiros iguais */
    .site-nav > a{
      font-size:clamp(26px, 7.5vw, 32px);
      letter-spacing:-.01em;
      padding:clamp(7px, 1.3vh, 13px) 0;
      border-bottom:none;
    }
    /* EN vira a gramática do CTA, abaixo das redes, no rodapé do menu */
    .site-nav > a.lang-toggle{
      order:2;
      align-self:flex-start;
      margin:18px 0 max(28px, env(safe-area-inset-bottom));
      font-size:13px;
      letter-spacing:.08em;
      padding:0 0 2px;
      color:var(--ink);
      border-bottom:1px solid var(--ink);
    }
    /* bloco de rodapé do menu: hairline + redes */
    .nav-meta{
      display:block;
      order:1;
      margin-top:auto;
      border-top:1px solid var(--line);
      padding:22px 0 0;
    }
    .nav-social{ display:flex; gap:28px; }
    .nav-social a{ font-size:15px; letter-spacing:.02em; }
    /* entrada escalonada */
    .site-nav > a, .nav-meta{
      opacity:0; transform:translateY(14px);
      transition:opacity .5s var(--ease), transform .5s var(--ease);
    }
    body.menu-open .site-nav > a,
    body.menu-open .nav-meta{ opacity:1; transform:none; }
    body.menu-open .site-nav > a:nth-child(2){ transition-delay:.04s; }
    body.menu-open .site-nav > a:nth-child(3){ transition-delay:.08s; }
    body.menu-open .site-nav > a:nth-child(4){ transition-delay:.12s; }
    body.menu-open .site-nav > a:nth-child(5){ transition-delay:.16s; }
    body.menu-open .site-nav > a:nth-child(6){ transition-delay:.20s; }
    body.menu-open .site-nav > a:nth-child(7){ transition-delay:.24s; }
    body.menu-open .site-nav > a:nth-child(8){ transition-delay:.28s; }
    body.menu-open .nav-meta{ transition-delay:.32s; }
    body.menu-open{ overflow:hidden; }
  }

  /* ==== 2 · HERO (ref. Marian Goodman) ========================== */
  .hero{
    position:relative;
    height:100vh;   /* fallback */
    height:100svh;
    overflow:hidden;
    background:#0d0d0d;
    touch-action:pan-y; /* rolagem vertical livre; horizontal = swipe de slides */
  }
  .hero-slide{
    position:absolute; inset:0;
    opacity:0;
    transition:opacity 1.2s ease;
  }
  .hero-slide.is-active{ opacity:1; }
  .hero-slide img{
    width:100%; height:100%;
    object-fit:cover;
    user-select:none;
    -webkit-user-drag:none;
  }
  /* véu inferior para legibilidade do texto e dos controles sobre a
     imagem — valor único do sistema (Regra do Véu) */
  .hero-slide::after{
    content:"";
    position:absolute; inset:auto 0 0 0; height:50%;
    background:linear-gradient(to top, rgba(0,0,0,.55), rgba(0,0,0,0));
  }
  .hero-caption{
    position:absolute; z-index:5;
    left:var(--pad); right:var(--pad);
    bottom:clamp(48px, 9vh, 96px);
    color:#fff;
    max-width:640px;
  }
  .hero-caption .kicker{ color:rgba(255,255,255,.75); }
  .hero-title{
    font-style:italic;
    font-weight:400;
    font-size:clamp(34px, 5.4vw, 60px);
    line-height:1.08;
    margin:10px 0 8px;
    letter-spacing:-.01em;
    text-wrap:balance;
  }
  .hero-dates{
    font-size:clamp(14px,1.4vw,16px);
    letter-spacing:.04em;
    color:rgba(255,255,255,.9);
    margin-bottom:22px;
  }
  .hero-caption .cta{ color:#fff; border-bottom-color:#fff; }
  .hero:focus-visible{ outline:2px solid #fff; outline-offset:-6px; }

  /* setas discretas no conjunto de controles, sobre o véu —
     nunca sobre a obra */
  .hero-arrow{
    width:44px; height:44px;
    display:flex; align-items:center; justify-content:center;
    color:#fff;
    opacity:.8;
    transition:opacity .25s var(--ease);
  }
  .hero-arrow:hover{ opacity:1; }
  .hero-arrow svg{ width:8px; height:14px; }

  /* indicadores em linha: a linha ativa preenche no ritmo do avanço
     automático (6s — manter em sincronia com DELAY no JS) */
  .hero-ui{
    position:absolute; z-index:6;
    right:calc(var(--pad) - 14px); /* compensa a área de clique da última seta */
    bottom:clamp(36px, 7.5vh, 78px);
    display:flex; align-items:center; gap:2px;
  }
  .hero-lines{ display:flex; gap:12px; margin:0 6px; }
  .hero-lines button{
    width:clamp(40px, 6vw, 64px); height:24px;   /* área de clique maior que a linha */
    position:relative;
    padding:0; background:none; border:0;
  }
  .hero-lines button::before{
    content:""; position:absolute; left:0; right:0; top:50%;
    height:2px; margin-top:-1px;
    background:rgba(255,255,255,.35);
  }
  .hero-lines .fill{
    position:absolute; left:0; top:50%;
    height:2px; margin-top:-1px;
    width:0;
    background:#fff;
  }
  .hero-lines button[aria-current="true"] .fill{
    animation:hero-line-fill 6s linear forwards;
  }
  @keyframes hero-line-fill{ from{ width:0; } to{ width:100%; } }
  /* pausa no hover/toque/foco também congela o preenchimento */
  .hero:hover .hero-lines .fill,
  .hero:focus-within .hero-lines .fill{ animation-play-state:paused; }
  @media (max-width:767px){
    .hero-ui{ right:auto; left:calc(var(--pad) - 14px); bottom:8px; }
    .hero-caption{ bottom:64px; }
  }
  @media (pointer:coarse){
    .hero-lines button{ height:44px; } /* alvo de toque ≥44px; a linha continua 2px */
  }
  @media (prefers-reduced-motion: reduce){
    /* sem avanço automático: a linha ativa fica sólida, sem animação */
    .hero-lines button[aria-current="true"] .fill{ animation:none; width:100%; }
  }

  /* ==== SEÇÕES GERAIS =========================================== */
  .section{ padding:clamp(52px, 6.5vw, 84px) var(--pad); }
  .section-head{
    display:flex; align-items:baseline; justify-content:space-between;
    margin-bottom:clamp(22px,3vw,36px);
  }
  .section-title{
    font-size:clamp(21px, 2.2vw, 28px);
    font-weight:400;
    letter-spacing:-.01em;
    text-wrap:balance;
  }
  /* o link de índice usa a mesma gramática do CTA — uma só voz */

  /* ==== 3 · OBRAS / ARTISTAS (ref. carrossel Pace) ============== */
  .obras{ padding-right:0; } /* o trilho sangra até a borda direita */
  .obras-head{ padding-right:var(--pad); }
  .obras-viewport{ position:relative; }
  .obras-track{
    display:flex;
    gap:clamp(16px,2vw,28px);
    overflow-x:auto;
    scroll-snap-type:x proximity;
    scrollbar-width:none;          /* Firefox */
    -ms-overflow-style:none;
    padding-bottom:6px;
    cursor:grab;
  }
  .obras-track::-webkit-scrollbar{ display:none; }
  .obras-track.is-dragging{ cursor:grabbing; scroll-snap-type:none; scroll-behavior:auto; }
  .obra{
    flex:0 0 30vw;
    max-width:460px;
    scroll-snap-align:start;
    user-select:none;
    -webkit-user-drag:none;
  }
  .obra-img{
    aspect-ratio:1/1;
    overflow:hidden;
    background:#f2f2f2;
  }
  .obra-img img{
    width:100%; height:100%;
    object-fit:cover;
    pointer-events:none;           /* deixa o drag para o trilho */
    transition:transform .7s var(--ease);
  }
  .obra:hover .obra-img img{ transform:scale(1.03); }
  /* nome sempre visível — o rótulo de parede acompanha a obra */
  .obra-name{
    margin-top:14px;
    font-size:clamp(16px, 1.5vw, 19px);
    letter-spacing:.02em;
    color:var(--ink);
  }
  @media (max-width:767px){
    .obra{ flex-basis:70vw; }
  }
  .obras-arrows{ display:flex; gap:8px; }
  .obras-arrows-below{ margin-top:clamp(20px, 3vw, 28px); }
  .obras-arrows button{
    width:44px; height:44px;
    border:1px solid var(--line);
    display:flex; align-items:center; justify-content:center;
    transition:border-color .25s var(--ease), opacity .25s var(--ease);
  }
  .obras-arrows button:hover{ border-color:var(--ink); }
  .obras-arrows button:disabled{ opacity:.3; cursor:default; border-color:var(--line); }
  .obras-arrows svg{ width:9px; height:16px; }

  /* ==== 4 · EXPOSIÇÕES (ref. gramática de cards Hauser & Wirth) = */
  .expo-current{
    display:grid;
    grid-template-columns:7fr 5fr;
    gap:clamp(24px,4vw,64px);
    align-items:end;
    margin-bottom:clamp(36px,5vw,64px);
  }
  .expo-current .expo-img{ aspect-ratio:4/3; overflow:hidden; background:#f2f2f2; }
  .expo-img img{ width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
  a.expo-card:hover .expo-img img{ transform:scale(1.02); }
  .expo-title{
    font-size:clamp(24px,2.6vw,34px);
    font-weight:400;
    font-style:italic;
    line-height:1.15;
    margin:14px 0 6px;
    text-wrap:balance;
  }
  .expo-dates{ font-size:14px; color:var(--muted); letter-spacing:.03em; }
  .expo-desc{
    font-size:15px;
    color:var(--ink);
    margin:16px 0 26px;
    max-width:44ch;
    text-wrap:pretty;
  }
  .expo-past-label{ display:block; margin-bottom:clamp(20px,3vw,32px); }
  .expo-past{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:clamp(24px,4vw,64px);
  }
  .expo-past .expo-img{ aspect-ratio:3/2; overflow:hidden; background:#f2f2f2; }
  .expo-past .expo-title{ font-size:clamp(19px,1.8vw,23px); }
  .expo-past .cta{ margin-top:14px; }
  @media (max-width:767px){
    .expo-current{ grid-template-columns:1fr; align-items:start; }
    .expo-past{ grid-template-columns:1fr; }
  }

  /* ==== FEIRAS ================================================== */
  /* mesma gramática de card; título romano — itálico é só para
     títulos de obras/exposições/filmes (Regra do Itálico) */
  .feiras-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:clamp(24px,4vw,64px);
  }
  .feiras-grid .expo-img{ aspect-ratio:3/2; overflow:hidden; background:#f2f2f2; }
  .feira-title{
    font-size:clamp(19px,1.8vw,23px);
    font-weight:400;
    line-height:1.15;
    margin:14px 0 6px;
    text-wrap:balance;
  }
  .feiras-grid .cta{ margin-top:14px; }
  @media (max-width:767px){
    .feiras-grid{ grid-template-columns:1fr; }
  }

  /* ==== PUBLICAÇÕES ============================================= */
  /* título + texto à esquerda; trilho de capas entra pela direita  */
  .pubs{ padding-right:0; } /* o trilho sangra até a borda direita */
  .pubs-layout{
    display:grid;
    grid-template-columns:minmax(240px, 30%) 1fr;
    gap:clamp(24px, 4vw, 56px);
    align-items:start;
  }
  .pubs-intro .obras-arrows{ margin-top:32px; }
  .pubs-rail{ min-width:0; } /* permite que a coluna 1fr encolha e o trilho role por dentro */
  .pubs-track{
    display:flex;
    gap:clamp(16px,2vw,28px);
    overflow-x:auto;
    scroll-snap-type:x proximity;
    scrollbar-width:none;
    -ms-overflow-style:none;
    padding-bottom:6px;
    cursor:grab;
  }
  .pubs-track::-webkit-scrollbar{ display:none; }
  .pubs-track.is-dragging{ cursor:grabbing; scroll-snap-type:none; }
  .pub{
    flex:0 0 clamp(200px, 17vw, 320px); /* largo o bastante para o trilho transbordar em telas grandes */
    scroll-snap-align:start;
    user-select:none;
    -webkit-user-drag:none;
  }
  .pub-img{
    aspect-ratio:3/4;
    overflow:hidden;
    background:#f2f2f2;
  }
  .pub-img img{
    width:100%; height:100%;
    object-fit:cover;
    pointer-events:none;
    transition:transform .7s var(--ease);
  }
  a.pub:hover .pub-img img{ transform:scale(1.02); }
  .pub-title{
    font-size:16px;
    font-style:italic;
    font-weight:400;
    line-height:1.3;
    margin:12px 0 4px;
    text-wrap:balance;
  }
  .pub-sub{ font-size:14px; color:var(--muted); letter-spacing:.03em; }
  @media (max-width:900px){
    .pubs-layout{ grid-template-columns:1fr; }
  }
  @media (max-width:767px){
    .pub{ flex-basis:55vw; }
  }

  /* (Sobre vive dentro da seção de publicações — coluna de introdução) */
  .sobre-statement{
    font-size:clamp(18px, 1.7vw, 22px);
    line-height:1.5;
    font-weight:400;
    text-wrap:pretty;
    margin:14px 0 26px;
  }
  .rail-head{
    display:flex; align-items:baseline; justify-content:space-between;
    margin-bottom:18px;
    padding-right:var(--pad); /* o trilho sangra; o cabeçalho não */
  }
  .rail-title{
    font-size:17px;
    font-weight:400;
    letter-spacing:.01em;
  }

  /* ==== VÍDEO (ref. filmes de artista David Zwirner) ============ */
  .video-feature{ padding:0; position:relative; }
  .video-feature .section-head{ padding:0 var(--pad); }
  .video-stage{
    position:relative;
    height:min(78vh, 760px);
    min-height:420px;
    overflow:hidden;
    background:#0d0d0d;
  }
  /*
    Fundo em vídeo: no protótipo, o filme real da galeria
    ("Construção no vento", YouTube) é injetado como iframe mudo em
    loop; o pôster com Ken Burns permanece como fallback (conexão
    lenta, movimento reduzido, embed bloqueado). Em produção,
    preferir um mp4 hospedado:
    <video autoplay muted loop playsinline poster="...">
      <source src="construcao-no-vento.mp4" type="video/mp4">
    </video>
  */
  .video-stage img{
    width:100%; height:100%;
    object-fit:cover;
    animation:kenburns 26s ease-in-out infinite alternate;
  }
  @keyframes kenburns{
    from{ transform:scale(1) translateX(0); }
    to{ transform:scale(1.08) translateX(-1.5%); }
  }
  /* vídeo de fundo real (injetado por JS quando a seção se aproxima
     do viewport e o usuário não pediu movimento reduzido) */
  .video-embed{
    position:absolute; inset:0;
    overflow:hidden;
    pointer-events:none;
    opacity:0;
    transition:opacity 1s var(--ease);
  }
  .video-stage.has-video .video-embed{ opacity:1; }
  .video-stage.has-video > img{ animation:none; } /* o pôster vira só fallback */
  .video-embed iframe{
    position:absolute; top:50%; left:50%;
    transform:translate(-50%,-50%);
    border:0;
  }
  .video-stage::after{
    content:"";
    position:absolute; inset:auto 0 0 0; height:55%;
    background:linear-gradient(to top, rgba(0,0,0,.55), rgba(0,0,0,0));
    transition:opacity .6s var(--ease);
    pointer-events:none;
  }
  .video-caption{
    position:absolute; z-index:5;
    left:var(--pad); right:calc(var(--pad) + 160px);
    bottom:clamp(40px,7vh,72px);
    color:#fff;
    transition:opacity .5s var(--ease);
  }
  /* modo assistir: título e véu saem de cena, o filme assume */
  .video-stage.is-watching::after{ opacity:0; }
  .video-stage.is-watching .video-caption{
    opacity:0; visibility:hidden;
    transition:opacity .5s var(--ease), visibility 0s .5s;
  }
  .video-stage.is-watching .video-embed{ pointer-events:auto; }
  /* assistindo, o controle vira "fechar" no canto superior direito,
     longe da barra de controles do player */
  .video-stage.is-watching .video-watch{
    top:clamp(20px,4vh,36px);
    bottom:auto;
  }
  /* controle à direita: rótulo + quadrado de papel (gramática das setas) */
  .video-watch{
    position:absolute; z-index:6;
    right:var(--pad);
    bottom:clamp(40px,7vh,72px);
    display:flex; align-items:center; gap:14px;
    color:#fff;
    opacity:0; visibility:hidden;
    transition:opacity .5s var(--ease);
  }
  .video-stage.has-video .video-watch{ opacity:1; visibility:visible; }
  .vw-label{
    font-size:13px;
    letter-spacing:.08em;
    text-transform:uppercase;
  }
  .vw-box{
    width:44px; height:44px;
    display:flex; align-items:center; justify-content:center;
    background:var(--paper);
    color:var(--ink);
    border:1px solid var(--line);
    transition:border-color .25s var(--ease);
  }
  .video-watch:hover .vw-box{ border-color:var(--ink); }
  .video-watch svg{ width:12px; height:12px; }
  .video-watch .ic-close{ display:none; }
  .video-stage.is-watching .video-watch .ic-play{ display:none; }
  .video-stage.is-watching .video-watch .ic-close{ display:block; }
  @media (max-width:767px){
    .vw-label{ display:none; }
    .video-caption{ right:calc(var(--pad) + 64px); }
  }
  .video-name{
    font-size:clamp(24px,3vw,38px);
    font-weight:600;                 /* nome em negrito (tipografia Zwirner) */
    letter-spacing:.01em;
    margin:10px 0 2px;
  }
  .video-title{
    font-style:italic;               /* título do filme em itálico */
    font-weight:400;
    font-size:clamp(16px,1.6vw,20px);
    color:rgba(255,255,255,.9);
    margin-bottom:22px;
  }
  .video-caption .cta{ color:#fff; border-bottom-color:#fff; }

  /* ==== 8 · FOOTER ============================================== */
  /* campo de tinta: o único plano escuro do sistema — a saída da
     galeria. Texto secundário em transparências de branco, nunca
     cinza puro sobre o preto. */
  .site-footer{
    background:#0f0f0f;
    color:#fff;
    padding:clamp(48px,6vw,72px) var(--pad) 28px;
  }
  .site-footer :focus-visible{ outline-color:#fff; }
  .footer-grid{
    display:grid;
    grid-template-columns:2fr 1fr 1fr 2fr;
    gap:clamp(28px,4vw,56px);
    margin-bottom:clamp(36px,5vw,56px);
  }
  .footer-grid h3{
    font-size:11px;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:rgba(255,255,255,.6);
    font-weight:400;
    margin-bottom:16px;
  }
  .footer-grid p, .footer-grid a{ font-size:14px; line-height:1.7; }
  .footer-grid ul{ list-style:none; }
  .footer-grid li a{
    border-bottom:1px solid transparent;
    transition:border-color .25s var(--ease);
  }
  .footer-grid li a:hover{ border-bottom-color:#fff; }
  .footer-wordmark{
    font-size:16px; font-weight:600; letter-spacing:.38em;
    display:block; margin-bottom:16px;
  }
  .newsletter-form{
    display:flex;
    border-bottom:1px solid #fff;
    max-width:360px;
  }
  .newsletter-form input{
    flex:1;
    border:0; outline:none;
    font:inherit; font-size:16px; /* ≥16px evita zoom automático no iOS */
    padding:8px 0;
    background:transparent;
    color:#fff;
  }
  .newsletter-form input::placeholder{ color:rgba(255,255,255,.6); }
  .newsletter-form button{
    font-size:12px; letter-spacing:.12em; text-transform:uppercase;
    padding:8px 0 8px 16px;
    transition:opacity .25s var(--ease);
  }
  .newsletter-form button:hover{ opacity:.5; }
  .newsletter-msg{
    font-size:13px; color:rgba(255,255,255,.65);
    margin-top:10px;
    min-height:1.2em;
  }
  .newsletter-msg.is-error{ color:#fff; } /* erro ganha peso pleno */
  .footer-bottom{
    border-top:1px solid rgba(255,255,255,.18);
    padding-top:24px;
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
    font-size:12px; color:rgba(255,255,255,.6);
    letter-spacing:.03em;
  }
  @media (max-width:900px){
    .footer-grid{ grid-template-columns:1fr 1fr; }
  }
  @media (max-width:560px){
    .footer-grid{ grid-template-columns:1fr; }
  }

  /* ==== REVELAÇÃO SUAVE AO ROLAR ================================ */
  /* Aplicada via JS (aprimoramento progressivo): sem JS, ou com
     movimento reduzido, tudo permanece visível desde o início.    */
  .rv-init{ opacity:0; transform:translateY(14px); }
  .rv-init.rv-in{
    opacity:1; transform:none;
    transition:opacity .7s var(--ease), transform .7s var(--ease);
  }

  /* ==== MOVIMENTO REDUZIDO ====================================== */
  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    .hero-slide{ transition:none; }
    .video-stage img{ animation:none; }
    .obra-img img, .expo-img img{ transition:none; }
    *{ transition-duration:.01ms !important; }
  }

  /* ==== PÁGINAS INTERNAS ======================================== */
  /* estado ativo na navegação */
  .site-nav a[aria-current="page"]{ border-bottom-color:var(--ink); }

  /* primeira seção de páginas sem hero: compensa o header fixo */
  .page-first{ padding-top:calc(var(--header-h) + clamp(44px, 7vw, 88px)); }
  .page-title{
    font-size:clamp(30px, 3.6vw, 44px);
    font-weight:400;
    letter-spacing:-.01em;
    text-wrap:balance;
  }
  .page-intro{
    font-size:15px;
    color:var(--muted);
    max-width:52ch;
    margin-top:12px;
    text-wrap:pretty;
  }

  /* grade de artistas (acervo) */
  .artists-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(230px, 1fr));
    gap:clamp(20px, 2.5vw, 36px);
  }
  .artists-grid a{ display:block; }

  /* grade de exposições / feiras (listagens) */
  .expo-listing{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:clamp(24px,4vw,64px);
    row-gap:clamp(40px,5vw,72px);
  }
  .expo-listing .expo-img{ aspect-ratio:3/2; overflow:hidden; background:#f2f2f2; }
  .expo-listing .expo-title{ font-size:clamp(19px,1.8vw,23px); }
  @media (max-width:767px){
    .expo-listing{ grid-template-columns:1fr; }
  }

  /* grade de vídeos */
  .videos-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(340px, 1fr));
    gap:clamp(24px,3vw,44px);
  }
  .video-card{ position:relative; }
  .video-thumb{
    position:relative;
    aspect-ratio:16/9;
    overflow:hidden;
    background:#0d0d0d;
  }
  .video-thumb img{
    width:100%; height:100%;
    object-fit:cover;
    transition:transform .7s var(--ease), opacity .4s var(--ease);
  }
  .video-card:hover .video-thumb img{ transform:scale(1.02); }
  .video-thumb iframe{
    position:absolute; inset:0;
    width:100%; height:100%;
    border:0;
  }
  .video-card.is-playing .video-thumb img{ opacity:0; }
  .video-card .vw-box{ position:absolute; left:14px; bottom:14px; }
  .video-card.is-playing .vw-box{ display:none; }
  .video-card button{
    position:absolute; inset:0;
    width:100%; height:100%;
    padding:0; background:none; border:0;
  }
  .video-card.is-playing button{ display:none; }
  .video-card-title{
    margin-top:12px;
    font-size:16px;
    line-height:1.35;
    text-wrap:balance;
  }
  .video-card-sub{ margin-top:2px; font-size:14px; color:var(--muted); letter-spacing:.03em; }

  /* grade de publicações (listagem) */
  .pubs-listing{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));
    gap:clamp(24px,3vw,44px);
  }

  /* páginas de detalhe (exposição / artista) */
  .detail-hero{
    margin-top:var(--header-h);
    height:min(72vh, 700px);
    min-height:320px;
    overflow:hidden;
    background:#f2f2f2;
  }
  .detail-hero img{ width:100%; height:100%; object-fit:cover; }
  .detail-title{
    font-size:clamp(32px, 4.4vw, 54px);
    font-weight:400;
    line-height:1.1;
    letter-spacing:-.01em;
    text-wrap:balance;
  }
  .detail-title.is-work{ font-style:italic; } /* títulos de exposição em itálico (Regra do Itálico) */
  .detail-meta{
    display:flex; flex-wrap:wrap;
    gap:8px clamp(24px,3vw,48px);
    margin-top:20px;
  }
  .detail-meta p{ font-size:14px; color:var(--muted); letter-spacing:.03em; }
  .detail-meta .kicker{ display:block; margin-bottom:4px; }
  .prose{
    max-width:62ch;
    margin-top:clamp(28px,4vw,44px);
    font-size:clamp(16px, 1.25vw, 18px);
    line-height:1.65;
    text-wrap:pretty;
  }
  .prose p + p{ margin-top:1.1em; }
  .back-link{ display:inline-block; margin-bottom:clamp(20px,3vw,32px); }

  /* obras em colunas (sem cortar as obras) */
  .obras-masonry{
    columns:3 300px;
    column-gap:clamp(20px,2.5vw,32px);
  }
  .obras-masonry figure{
    break-inside:avoid;
    margin:0 0 clamp(20px,2.5vw,32px);
    background:#f2f2f2;
  }
  .obras-masonry img{ width:100%; height:auto; }

  /* navegação entre registros (anterior / próximo) */
  .detail-nav{
    display:flex; justify-content:space-between; gap:24px;
    border-top:1px solid var(--line);
    margin-top:clamp(48px,6vw,72px);
    padding-top:24px;
  }

  /* sobre */
  .sobre-photo{
    margin-top:var(--header-h);
    height:min(60vh, 560px);
    min-height:280px;
    overflow:hidden;
    background:#f2f2f2;
  }
  .sobre-photo img{ width:100%; height:100%; object-fit:cover; }
  .sobre-cols{
    display:grid;
    grid-template-columns:2fr 1fr;
    gap:clamp(32px,5vw,80px);
    align-items:start;
  }
  .sobre-cols .prose{ margin-top:0; }
  .sobre-aside p{ font-size:14px; line-height:1.7; }
  .sobre-aside .kicker{ display:block; margin:22px 0 6px; }
  .sobre-aside .kicker:first-child{ margin-top:0; }
  @media (max-width:767px){
    .sobre-cols{ grid-template-columns:1fr; }
  }

  /* ==== RODADA BRIEFING (consultar, galeria, variantes) ========= */
  /* legenda de obra — hierarquia Zwirner: artista em negrito,
     título em itálico, linha de apoio discreta */
  .work-caption{
    display:flex; justify-content:space-between; align-items:flex-start;
    gap:16px;
    margin-top:12px;
  }
  .work-id p{ line-height:1.45; }
  .work-artist{ font-weight:600; font-size:15px; }
  .work-title{ font-style:italic; font-size:15px; }
  .work-note{ color:var(--muted); font-size:13px; letter-spacing:.02em; }
  .inquire-btn{
    flex:none;
    border:1px solid var(--line);
    padding:6px 11px;
    font-size:11px; letter-spacing:.1em; text-transform:uppercase;
    color:var(--muted);
    transition:border-color .25s var(--ease), color .25s var(--ease);
  }
  .inquire-btn:hover{ border-color:var(--ink); color:var(--ink); }
  .obras-masonry figure{ background:none; }
  .obras-masonry .work-img{ background:#f2f2f2; cursor:zoom-in; }

  /* lightbox — sala branca em tela cheia */
  .lightbox{
    border:0; padding:0;
    width:100vw; height:100vh; max-width:100vw; max-height:100vh;
    background:var(--paper);
    color:var(--ink);
  }
  .lightbox::backdrop{ background:var(--paper); }
  .lightbox-stage{
    position:absolute; inset:0;
    display:flex; align-items:center; justify-content:center;
    padding:clamp(56px,8vh,88px) clamp(72px,9vw,140px);
  }
  .lightbox-stage img{ max-width:100%; max-height:100%; width:auto; height:auto; }
  .lightbox-caption{
    position:absolute; left:var(--pad); bottom:clamp(20px,3.5vh,36px);
    right:calc(var(--pad) + 120px);
    font-size:14px;
  }
  .lightbox .hero-arrow{ position:absolute; top:50%; transform:translateY(-50%); color:var(--ink); opacity:.7; }
  .lightbox .hero-arrow:hover{ opacity:1; }
  .lightbox .lb-prev{ left:clamp(8px,1.5vw,24px); }
  .lightbox .lb-next{ right:clamp(8px,1.5vw,24px); }
  .lightbox .lb-close{
    position:absolute; top:16px; right:var(--pad);
    width:44px; height:44px;
    display:flex; align-items:center; justify-content:center;
  }
  .lightbox .lb-close svg{ width:14px; height:14px; }
  .lightbox-count{
    position:absolute; top:28px; left:var(--pad);
    font-size:12px; letter-spacing:.12em; color:var(--muted);
  }

  /* consulta (inquire): gaveta em altura total, entrando pela direita */
  .inquire-dialog{
    position:fixed;
    inset:0 0 0 auto;
    margin:0;
    height:100vh; height:100dvh;
    max-height:none; max-width:100vw;
    width:min(440px, 100vw);
    border:0; border-left:1px solid var(--line);
    padding:0;
    background:var(--paper); color:var(--ink);
    overflow-y:auto;
    transform:translateX(100%);
    transition:transform .55s var(--ease),
               display .55s allow-discrete, overlay .55s allow-discrete;
  }
  .inquire-dialog[open]{ transform:translateX(0); }
  @starting-style{
    .inquire-dialog[open]{ transform:translateX(100%); }
  }
  .inquire-dialog::backdrop{
    background:rgba(15,15,15,.45);
    opacity:0;
    transition:opacity .55s var(--ease),
               display .55s allow-discrete, overlay .55s allow-discrete;
  }
  .inquire-dialog[open]::backdrop{ opacity:1; }
  @starting-style{
    .inquire-dialog[open]::backdrop{ opacity:0; }
  }
  .inquire-inner{
    padding:clamp(24px,4vw,36px);
    padding-top:clamp(56px,8vh,72px); /* respiro sob o fechar */
    min-height:100%;
  }
  .inquire-work{
    display:flex; gap:16px; align-items:center;
    padding-bottom:18px; margin-bottom:18px;
    border-bottom:1px solid var(--line);
  }
  .inquire-work img{ width:64px; height:64px; object-fit:cover; background:#f2f2f2; }
  .inquire-field{ margin-top:14px; }
  .inquire-field label{
    display:block;
    font-size:11px; letter-spacing:.22em; text-transform:uppercase;
    color:var(--muted);
    margin-bottom:4px;
  }
  .inquire-field input, .inquire-field textarea{
    width:100%;
    border:0; border-bottom:1px solid var(--ink);
    font:inherit; font-size:16px;
    padding:6px 0;
    background:transparent; color:var(--ink);
    outline:none;
  }
  .inquire-field textarea{ resize:vertical; min-height:64px; }
  .inquire-actions{
    display:flex; justify-content:space-between; align-items:center;
    margin-top:26px;
  }
  .inquire-msg{ font-size:13px; color:var(--muted); min-height:1.2em; margin-top:12px; }

  /* faixa preview (exposições / feiras) — campo de tinta */
  .preview-band{
    background:#0f0f0f; color:#fff;
    padding:clamp(56px,8vw,96px) var(--pad);
    text-align:center;
  }
  .preview-band h2{
    font-size:clamp(20px,2.2vw,28px);
    font-weight:400; letter-spacing:-.01em;
    margin-bottom:22px;
  }
  .preview-band .inquire-btn{
    border-color:rgba(255,255,255,.4); color:#fff;
  }
  .preview-band .inquire-btn:hover{ border-color:#fff; }

  /* página de artista — opções */
  .bio-clamp{ position:relative; }
  .bio-clamp .prose{ margin-top:clamp(20px,3vw,32px); }
  .bio-clamp:not(.is-open) .prose{
    display:-webkit-box;
    -webkit-line-clamp:5;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .bio-toggle{ margin-top:16px; }
  .artist-band{
    margin-top:var(--header-h);
    height:min(38vh, 380px);
    min-height:220px;
    overflow:hidden;
    background:#f2f2f2;
  }
  .artist-band img{ width:100%; height:100%; object-fit:cover; }
  .artist-split{
    display:grid;
    grid-template-columns:minmax(280px, 5fr) 7fr;
    gap:clamp(32px,5vw,80px);
    align-items:start;
  }
  .artist-split .split-info{
    position:sticky;
    top:calc(var(--header-h) + 32px);
  }
  .artist-split .prose{ font-size:15px; line-height:1.6; }
  @media (max-width:860px){
    .artist-split{ grid-template-columns:1fr; }
    .artist-split .split-info{ position:static; }
  }
  /* seletor de opções (revisão com o cliente) */
  .variant-nav{
    position:fixed; z-index:90;
    bottom:16px; left:50%; transform:translateX(-50%);
    display:flex; gap:2px;
    background:var(--paper);
    border:1px solid var(--line);
    padding:4px;
  }
  .variant-nav a{
    font-size:12px; letter-spacing:.08em; text-transform:uppercase;
    padding:8px 14px;
  }
  .variant-nav a[aria-current="true"]{ background:var(--ink); color:var(--paper); }

  /* equipe (sobre) */
  .equipe-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));
    gap:clamp(24px,3vw,40px) clamp(24px,3vw,48px);
  }
  .equipe-grid p{ font-size:14px; line-height:1.5; }
  .equipe-nome{ font-weight:600; font-size:15px; }
  .equipe-cargo{ color:var(--muted); }
  .foto-credito{
    font-size:12px; color:var(--muted); letter-spacing:.03em;
    padding:10px var(--pad) 0;
  }
  /* sobre: fachada inteira, sem recorte — retrato contido no
     viewport, centrado como uma obra na parede */
  .sobre-photo{
    height:auto; min-height:0;
    margin-top:var(--header-h);
    background:none;
    display:flex; justify-content:center;
    padding:clamp(24px,4vw,48px) var(--pad) 0;
  }
  .sobre-photo img{
    width:auto; max-width:100%;
    height:auto;
    max-height:calc(100vh - var(--header-h) - clamp(64px,10vw,120px));
    object-fit:unset;
  }
  .foto-credito{ text-align:center; }

  /* formulário de consignação */
  .consig-form{ max-width:640px; }
  .consig-form .kicker{ display:block; margin:34px 0 4px; }
  .consig-grid{ display:grid; grid-template-columns:1fr 1fr; gap:0 clamp(20px,3vw,40px); }
  @media (max-width:640px){ .consig-grid{ grid-template-columns:1fr; } }
  .consig-form input[type="file"]{ border-bottom:0; padding-top:10px; font-size:14px; color:var(--muted); }
  .consig-actions{ margin-top:32px; }
  .inquire-inner{ position:relative; }
  .inquire-dialog .lb-close{
    position:absolute; top:6px; right:6px;
    width:44px; height:44px;
    display:flex; align-items:center; justify-content:center;
  }
  .inquire-dialog .lb-close svg{ width:12px; height:12px; }

  /* sobre v3 — texto e fachada lado a lado, como no site atual */
  .sobre-duo{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:clamp(32px,5vw,80px);
    align-items:start;
  }
  .sobre-fachada{ margin:0; }
  .sobre-fachada img{ width:100%; height:auto; }
  @media (max-width:767px){
    .sobre-duo{ grid-template-columns:1fr; }
  }

  /* vistas da exposição: galeria em trilho (slider) */
  .vistas{ padding-right:0; }
  .vistas-track{
    display:flex;
    gap:clamp(16px,2vw,28px);
    overflow-x:auto;
    scroll-snap-type:x proximity;
    scrollbar-width:none;
    -ms-overflow-style:none;
    padding-bottom:6px;
    cursor:grab;
  }
  .vistas-track::-webkit-scrollbar{ display:none; }
  .vistas-track.is-dragging{ cursor:grabbing; scroll-snap-type:none; }
  .vistas-track figure{
    flex:0 0 clamp(480px, 62vw, 900px);
    aspect-ratio:3/2;
    overflow:hidden;
    background:#f2f2f2;
    scroll-snap-align:start;
    margin:0;
    cursor:zoom-in;
    user-select:none;
    -webkit-user-drag:none;
  }
  .vistas-track figure img{
    width:100%; height:100%;
    object-fit:cover;
    pointer-events:none; /* o clique/drag pertence ao figure/trilho */
  }
  @media (max-width:767px){
    .vistas-track figure{ flex-basis:84vw; }
  }
  /* botão-link (ex.: baixar catálogo) na mesma gramática do Consultar */
  a.inquire-btn{ display:inline-block; }
  /* links avulsos do footer (ex.: Consignações) com o mesmo hover */
  .footer-grid p a{
    border-bottom:1px solid transparent;
    transition:border-color .25s var(--ease);
  }
  .footer-grid p a:hover{ border-bottom-color:#fff; }

  /* logotipo oficial (SVG do site real), maior que o texto anterior */
  .wordmark svg{
    display:block;
    height:clamp(18px, 2vw, 24px);
    width:auto;
  }
  .footer-wordmark svg{
    display:block;
    height:20px;
    width:auto;
  }
