/* ============================================================
   Bernardo Combeau — Fotografía
   Índice de contacto minimalista. Ref. de layout: portafolios de
   fotógrafos (grilla justificada, tipo Tyler Mitchell / McGinley).
   Sin intro. La obra es lo único.
   ============================================================ */

@font-face{
  font-family:"Cormorant";font-style:normal;font-weight:400 600;font-display:swap;
  src:url("../fonts/cormorant-var.woff2") format("woff2");
}
@font-face{
  font-family:"Cormorant";font-style:italic;font-weight:300 500;font-display:swap;
  src:url("../fonts/cormorant-italic-var.woff2") format("woff2");
}

:root{
  --paper:#ffffff;
  --ink:#111110;
  --soft:#9a958d;
  --line:#e9e7e1;
  --gap:13px;
  --thumb:120px;                 /* set by size toggle */
  --pad:clamp(16px,2.4vw,34px);
  --ease:cubic-bezier(.22,.61,.36,1);
}

*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:"Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
::selection{background:var(--ink);color:var(--paper)}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:#dcd9d1;border:3px solid var(--paper)}

/* ---------- Top bar ---------- */
.bar{
  position:sticky;top:0;z-index:40;
  background:var(--paper);
  display:flex;align-items:baseline;justify-content:space-between;
  gap:20px;
  padding:calc(var(--pad) - 2px) var(--pad) calc(var(--pad) - 6px);
}
.name{
  font-family:"Cormorant",Georgia,serif;
  font-weight:500;
  font-size:clamp(19px,2.1vw,25px);
  letter-spacing:.005em;
  line-height:1;
  white-space:nowrap;
}
.tools{display:flex;align-items:center;gap:clamp(16px,2vw,30px)}
.sizer{display:flex;align-items:center;gap:12px}
.sizer button{
  background:none;border:0;cursor:pointer;padding:6px;
  display:flex;align-items:center;justify-content:center;
  -webkit-tap-highlight-color:transparent;
}
.sizer i{
  display:block;width:var(--d);height:var(--d);
  border:1px solid #bdb8ad;background:transparent;
  transition:background .35s var(--ease),border-color .35s var(--ease);
}
.sizer button:hover i{border-color:var(--ink)}
.sizer button.on i{background:var(--ink);border-color:var(--ink)}
.ig{
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--soft);transition:color .4s var(--ease);
}
.ig:hover{color:var(--ink)}

/* ---------- Grid (justified square index) ---------- */
/* size toggle steps (small default) — responsive per breakpoint */
body[data-size="0"]{--thumb:116px}
body[data-size="1"]{--thumb:188px}
body[data-size="2"]{--thumb:288px}
@media (max-width:640px){
  body[data-size="0"]{--thumb:78px}   /* ~4 col */
  body[data-size="1"]{--thumb:104px}  /* ~3 col (default) */
  body[data-size="2"]{--thumb:164px}  /* ~2 col */
}
main{padding:0 var(--pad) clamp(50px,6vw,90px)}
.grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(var(--thumb),1fr));
  gap:var(--gap);
}
.cell{
  position:relative;
  aspect-ratio:1/1;
  overflow:hidden;
  background:#f3f1ec;
  cursor:pointer;
  border:0;padding:0;
  opacity:0;
  transition:opacity 1s var(--ease);
}
.cell.in{opacity:1}
.cell img{
  width:100%;height:100%;object-fit:cover;
  transition:opacity .7s var(--ease),filter .6s var(--ease);
}
@media (hover:hover){
  .cell img{filter:none}
  .cell:hover img{filter:brightness(.86)}
}

/* ---------- Footer ---------- */
.foot{
  border-top:1px solid var(--line);
  margin:0 var(--pad);
  padding:22px 0 calc(var(--pad) + 8px);
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--soft);
}
.foot a{transition:color .4s var(--ease)}
.foot a:hover{color:var(--ink)}
.foot-mid{
  font-family:"Cormorant",Georgia,serif;font-style:italic;
  text-transform:none;letter-spacing:0;font-size:14px;color:#8a857c;
  text-align:center;flex:1;
}

/* ---------- Lightbox ---------- */
.lightbox{
  position:fixed;inset:0;z-index:100;
  background:rgba(255,255,255,.985);
  backdrop-filter:blur(2px);
  display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;
  transition:opacity .5s var(--ease),visibility .5s var(--ease);
}
.lightbox.open{opacity:1;visibility:visible}
.lb-figure{
  max-width:min(90vw,1080px);max-height:86svh;
  display:flex;flex-direction:column;align-items:center;
  transform:scale(.985);transition:transform .55s var(--ease);margin:0;
}
.lightbox.open .lb-figure{transform:none}
.lb-figure img{
  max-width:100%;max-height:78svh;object-fit:contain;
  box-shadow:0 30px 80px -46px rgba(17,17,16,.45);
}
.lb-cap{margin-top:20px;display:flex;flex-direction:column;align-items:center;gap:9px;min-height:22px;text-align:center}
.lb-title{font-family:"Cormorant",Georgia,serif;font-style:italic;font-size:clamp(15px,2vw,20px);line-height:1.35;color:var(--ink);max-width:32em}
.lb-count{font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--soft)}
.lb-close,.lb-nav{position:fixed;background:none;border:0;cursor:pointer;color:var(--ink);z-index:101;opacity:.5;transition:opacity .35s var(--ease);-webkit-tap-highlight-color:transparent}
.lb-close:hover,.lb-nav:hover{opacity:1}
.lb-close{top:calc(var(--pad) - 4px);right:var(--pad);font-size:30px;font-weight:300;line-height:1}
.lb-nav{top:50%;transform:translateY(-50%);font-size:44px;font-weight:300;line-height:1;width:60px;height:60px}
.lb-prev{left:calc(var(--pad) - 8px)}
.lb-next{right:calc(var(--pad) - 8px)}

/* ---------- Responsive ---------- */
@media (max-width:640px){
  :root{--gap:8px}
  .bar{padding:14px var(--pad) 12px}
  .name{font-size:19px}
  .ig{display:none}                     /* el link a Instagram vive en el footer */
  .sizer{gap:2px}
  .sizer button{padding:16px}           /* área táctil ~40px */
  .foot{flex-direction:column;text-align:center;gap:10px}
  .foot-mid{order:3}
  .lb-nav{width:46px;height:46px;font-size:32px}
  .lb-prev{left:0}.lb-next{right:0}
}

@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
  .cell{opacity:1!important}
}
