/* ————————————————————————————————————————————————
   Uiler Costa-Santos Studio — comercial
   ———————————————————————————————————————————————— */

:root{
  --bg:#ffffff;
  --ink:#111111;
  --mute:#8e8e8e;
  --line:#e6e6e6;
  --nav-h:56px;
  --pad:24px;
  --serif:"Cormorant Garamond", "EB Garamond", Georgia, "Times New Roman", serif;
  --sans:"Helvetica Neue", Helvetica, Arial, sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--sans); font-size:16px; line-height:1.55;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }

/* — micro-tipografia de rótulo (nav, tags, metadados) — */
.label{
  font-family:var(--sans);
  font-size:10px; font-weight:400;
  letter-spacing:.14em; text-transform:uppercase;
}

/* ————————————————— nav ————————————————— */
.nav{
  position:fixed; inset:0 0 auto 0; height:var(--nav-h); z-index:100;
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center;
  padding:0 var(--pad);
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(12px);
  -webkit-backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid transparent;
  transition:border-color .3s ease;
}
.nav.scrolled{ border-bottom-color:var(--line); }
.nav ul{ list-style:none; margin:0; padding:0; display:flex; gap:22px; }
.nav .right ul{ justify-content:flex-end; }
.nav a{ color:var(--mute); transition:color .2s ease; white-space:nowrap; }
.nav a:hover, .nav a[aria-current="page"]{ color:var(--ink); }

.wordmark{
  font-family:var(--serif); font-weight:400;
  font-size:19px; letter-spacing:.16em; text-transform:uppercase;
  white-space:nowrap; line-height:1;
}
.wordmark small{
  font-family:var(--sans); font-size:9px; letter-spacing:.2em;
  color:var(--mute); margin-left:.55em; vertical-align:.35em;
}

.burger{
  display:none; background:none; border:0; padding:8px 0; cursor:pointer;
  width:26px;
}
.burger span{ display:block; height:1px; background:var(--ink); margin:5px 0; transition:transform .25s ease, opacity .25s ease; }
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

/* menu mobile (fora da .nav) */
.menu{ display:none; }
.menu ul{ list-style:none; margin:0; padding:0; display:flex; }
.menu a{ color:var(--mute); }
.menu a[aria-current="page"]{ color:var(--ink); }

/* ————————————————— feed (home) ————————————————— */
main{ padding-top:var(--nav-h); }

.feed{ padding:6vh 0 12vh; }
.entry{
  margin:0 0 14vh; text-align:center;
  opacity:0; transform:translateY(14px);
  transition:opacity .9s ease, transform .9s ease;
}
.entry.in{ opacity:1; transform:none; }
.entry .frame{
  display:block; margin:0 auto; padding:0 var(--pad);
  max-width:min(1400px, 100%);
}
.entry img{
  margin:0 auto;
  max-height:82vh; width:auto; max-width:100%;
}
.entry figcaption{ margin-top:22px; padding:0 var(--pad); }
.entry .title{
  font-family:var(--serif); font-weight:300;
  font-size:clamp(22px, 3.2vw, 40px); line-height:1.15; letter-spacing:.005em;
}
.entry .tag{ display:block; margin-top:10px; color:var(--mute); }

/* ————————————————— cabeçalho de página ————————————————— */
.head{
  padding:14vh var(--pad) 8vh; max-width:900px; margin:0 auto; text-align:center;
}
.head h1{
  font-family:var(--serif); font-weight:300; margin:0;
  font-size:clamp(34px, 6vw, 66px); line-height:1.05;
}
.head .sub{ margin-top:14px; color:var(--mute); }
.head p.lede{
  font-family:var(--serif); font-size:clamp(17px,2vw,21px); font-weight:300;
  line-height:1.5; margin:26px auto 0; max-width:620px; color:#3a3a3a;
}

/* ————————————————— índice de trabalhos ————————————————— */
.index{ max-width:1100px; margin:0 auto; padding:0 var(--pad) 14vh; }
.index .row{
  display:grid; grid-template-columns:1fr auto; gap:20px; align-items:baseline;
  padding:26px 0; border-top:1px solid var(--line);
}
.index .row:last-child{ border-bottom:1px solid var(--line); }
.index .row h2{
  font-family:var(--serif); font-weight:300; margin:0;
  font-size:clamp(26px, 4vw, 46px); line-height:1.1;
  transition:opacity .2s ease;
}
.index .row:hover h2{ opacity:.45; }
.index .row .meta{ color:var(--mute); text-align:right; }
.index .row .count{ display:block; margin-top:6px; }

/* prévia que segue o cursor (desktop) */
.peek{
  position:fixed; z-index:60; width:260px; pointer-events:none;
  opacity:0; transition:opacity .25s ease;
  box-shadow:0 12px 40px rgba(0,0,0,.14);
}
.peek.on{ opacity:1; }

/* ————————————————— grades ————————————————— */
.grid{
  padding:0 var(--pad) 14vh; margin:0 auto; max-width:1600px;
  columns:3; column-gap:16px;
}
.grid figure{ break-inside:avoid; margin:0 0 16px; }
.grid img{ width:100%; cursor:zoom-in; }
.grid figcaption{ margin-top:8px; color:var(--mute); }

.press{ columns:2; max-width:1300px; }
.press figure{ margin-bottom:52px; }
.press img{ cursor:default; border:1px solid var(--line); }
.press .veiculo{ display:block; margin-top:12px; color:var(--ink); }
.press .titulo{ display:block; color:var(--mute); font-family:var(--serif); font-size:17px; letter-spacing:0; text-transform:none; margin-top:2px; }
.press .nota{ display:block; color:var(--mute); font-size:13px; margin-top:6px; }

/* ————————————————— info ————————————————— */
.info{ max-width:1100px; margin:0 auto; padding:0 var(--pad) 16vh; }
.info .cols{ display:grid; grid-template-columns:1fr 1fr; gap:64px; }
.info h2{ margin:0 0 18px; }
.info h2 span{ color:var(--mute); }
.info p{ margin:0 0 16px; max-width:60ch; }
.info .bio p{ font-family:var(--serif); font-size:18px; font-weight:300; line-height:1.6; }
.info ul{ list-style:none; margin:0; padding:0; }
.info li{ padding:9px 0; border-bottom:1px solid var(--line); }
.info a.u{ border-bottom:1px solid var(--line); }
.info a.u:hover{ border-bottom-color:var(--ink); }
.block{ margin-bottom:64px; }

/* ————————————————— lightbox ————————————————— */
.lb{
  position:fixed; inset:0; z-index:200; background:#fff;
  display:none; align-items:center; justify-content:center; padding:64px var(--pad);
}
.lb.on{ display:flex; }
.lb img{ max-width:100%; max-height:100%; width:auto; }
.lb button{
  position:absolute; background:none; border:0; cursor:pointer; color:var(--ink);
  padding:16px;
}
.lb .close{ top:8px; right:12px; font-size:22px; line-height:1; }
.lb .prev{ left:4px; top:50%; transform:translateY(-50%); }
.lb .next{ right:4px; top:50%; transform:translateY(-50%); }
.lb .n{ position:absolute; bottom:18px; left:50%; transform:translateX(-50%); color:var(--mute); }

/* ————————————————— rodapé ————————————————— */
.foot{
  border-top:1px solid var(--line); padding:44px var(--pad);
  display:flex; flex-wrap:wrap; gap:18px 32px; justify-content:space-between;
  color:var(--mute);
}
.foot a:hover{ color:var(--ink); }

/* ————————————————— responsivo ————————————————— */
@media (max-width:1000px){
  .grid{ columns:2; }
  .info .cols{ grid-template-columns:1fr; gap:48px; }
}
@media (max-width:760px){
  :root{ --pad:18px; }
  .nav{ grid-template-columns:auto 1fr auto; }
  .nav .left, .nav .right{ display:none; }
  .nav .center{ justify-self:start; }
  .burger{ display:block; justify-self:end; grid-column:3; }
  .menu.open{
    display:block; position:fixed; z-index:90;
    inset:var(--nav-h) 0 0 0; background:var(--bg);
    padding:34px var(--pad);
  }
  .menu.open ul{ flex-direction:column; gap:24px; }
  .menu.open a{ font-size:12px; }
  .wordmark{ font-size:15px; letter-spacing:.13em; }
  .wordmark small{ display:none; }
  .entry{ margin-bottom:10vh; }
  .entry img{ max-height:70vh; }
  .grid, .press{ columns:1; }
  .index .row{ grid-template-columns:1fr; gap:6px; }
  .index .row .meta{ text-align:left; }
  .index .row .count{ display:inline; margin-left:14px; }
  .peek{ display:none; }
  .foot{ flex-direction:column; }
}
