/*! Repost Studio – Selected Work e gallery (v1) */
:root{
  --rsw-purple:#6c2887; --rsw-gold:#fec144;
  --rsw-ease:cubic-bezier(.76,0,.24,1);
  --rsw-bounce:cubic-bezier(.34,1.56,.64,1);
}
.rsw-hidden{ display:none !important; }

/* ================= SELECTED WORK ================= */
.rsw-wrap{
  width:90%; max-width:1400px; margin:0 auto; padding:clamp(8px,2vw,24px) 0 clamp(48px,7vw,110px);
  font-family:Poppins, Helvetica, Arial, sans-serif; position:relative; z-index:2;
}
.rsw-intro{
  display:flex; align-items:center; gap:14px; margin:0 0 clamp(28px,4vw,56px);
  color:#555; font-size:clamp(14px,1.1vw,16px);
}
.rsw-intro b{ color:var(--rsw-purple); font-weight:700; }
.rsw-intro::after{ content:""; flex:1; height:2px; border-radius:2px; background:linear-gradient(90deg,var(--rsw-purple),var(--rsw-gold)); transform-origin:left; transform:scaleX(0); transition:transform 1.1s var(--rsw-ease) .2s; }
.rsw-wrap.rsw-in .rsw-intro::after{ transform:scaleX(1); }

.rsw-list{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(36px,6vw,110px); align-items:start; }
.rsw-list.rsw-single{ grid-template-columns:1fr; }

/* intestazione del gruppo: cartella + nome categoria */
.rsw-head{
  display:flex; align-items:center; gap:14px; padding-bottom:16px; margin-bottom:6px;
  text-decoration:none; color:var(--rsw-purple);
}
.rsw-head img{ width:46px; height:auto; transition:transform .5s var(--rsw-bounce); }
.rsw-head:hover img{ transform:translateY(-5px) rotate(-8deg) scale(1.08); }
.rsw-cat{ font-size:13px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.rsw-count{
  margin-left:auto; min-width:34px; height:34px; padding:0 10px; border-radius:999px; box-sizing:border-box;
  display:grid; place-items:center; font-size:12px; font-weight:700; color:#000; background:var(--rsw-gold);
}

/* riga progetto */
.rsw-row{
  position:relative; display:grid; grid-template-columns:44px 1fr 52px; align-items:center; gap:12px;
  padding:clamp(14px,1.6vw,22px) 0; color:#111; text-decoration:none; cursor:pointer;
}
.rsw-row::after{ /* linea divisoria che si disegna */
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:rgba(0,0,0,.14);
  transform-origin:left; transform:scaleX(0); transition:transform .9s var(--rsw-ease) var(--d,0s);
}
.rsw-num{ font-size:12px; font-weight:700; letter-spacing:.1em; color:#9a9a9a; transition:color .3s ease; }
.rsw-name{
  justify-self:start; font-weight:800; font-size:clamp(26px,3.3vw,50px); line-height:1.05; letter-spacing:-.02em;
  background:linear-gradient(transparent 60%, rgba(254,193,68,.9) 60%, rgba(254,193,68,.9) 92%, transparent 92%) no-repeat 0 0 / 0% 100%;
  transition:background-size .5s var(--rsw-ease), transform .5s var(--rsw-bounce);
}
.rsw-arrow{
  position:relative; width:52px; height:52px; border-radius:50%; border:1.5px solid rgba(0,0,0,.18);
  display:grid; place-items:center; overflow:hidden; isolation:isolate;
  transition:border-color .3s ease, color .3s ease;
}
.rsw-arrow::before{
  content:""; position:absolute; inset:0; z-index:-1; border-radius:50%;
  background:linear-gradient(135deg,#894092,#f2c937); transform:scale(0); transition:transform .5s var(--rsw-ease);
}
.rsw-arrow svg{ width:20px; height:20px; transition:transform .5s var(--rsw-bounce); }

.rsw-row:hover .rsw-name, .rsw-row:focus-visible .rsw-name{ background-size:100% 100%; transform:translateX(10px); }
.rsw-row:hover .rsw-num, .rsw-row:focus-visible .rsw-num{ color:var(--rsw-purple); }
.rsw-row:hover .rsw-arrow, .rsw-row:focus-visible .rsw-arrow{ border-color:transparent; color:#fff; }
.rsw-row:hover .rsw-arrow::before, .rsw-row:focus-visible .rsw-arrow::before{ transform:scale(1); }
.rsw-row:hover .rsw-arrow svg, .rsw-row:focus-visible .rsw-arrow svg{ transform:rotate(-45deg); }
.rsw-row:focus-visible{ outline:none; }

/* ingresso */
.rsw-anim{ opacity:0; transform:translateY(36px); transition:opacity .7s var(--rsw-ease) var(--d,0s), transform .9s var(--rsw-bounce) var(--d,0s); }
.rsw-in .rsw-anim{ opacity:1; transform:none; }
.rsw-in .rsw-row::after{ transform:scaleX(1); }

@media (max-width:980px){
  .rsw-list{ grid-template-columns:1fr; }
}
@media (max-width:600px){
  .rsw-row{ grid-template-columns:30px 1fr 42px; gap:8px; }
  .rsw-arrow{ width:42px; height:42px; }
  .rsw-arrow svg{ width:17px; height:17px; }
}

/* ================= GALLERY ================= */
.rsg-wrap{ width:92%; max-width:1500px; margin:0 auto; padding:clamp(24px,4vw,60px) 0 clamp(40px,6vw,90px); }
.rsg-grid{ column-count:3; column-gap:clamp(12px,1.6vw,24px); }
.rsg-cell{ break-inside:avoid; margin:0 0 clamp(12px,1.6vw,24px); }
.rsg-tile{
  position:relative; display:block; width:100%; margin:0; padding:0; border:0;
  border-radius:26px; overflow:hidden; cursor:zoom-in;
  background:linear-gradient(135deg,#f6f1f8,#fdf6e6);
  clip-path:inset(100% 0 0 0 round 26px);
  transition:clip-path 1s var(--rsw-ease) var(--d,0s), box-shadow .4s ease, transform .5s var(--rsw-bounce);
  -webkit-tap-highlight-color:transparent;
}
.rsg-tile img{
  display:block; width:100%; height:auto; transform:scale(1.18);
  transition:transform 1.3s var(--rsw-ease) var(--d,0s);
}
.rsg-in > .rsg-tile{ clip-path:inset(0 0 0 0 round 26px); }
.rsg-in > .rsg-tile img{ transform:scale(1); }
.rsg-tile::after{ /* velo sfumato in basso */
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg,transparent 55%,rgba(40,10,50,.35)); opacity:0; transition:opacity .4s ease;
}
.rsg-zoom{
  position:absolute; right:14px; bottom:14px; z-index:2; width:46px; height:46px; border-radius:50%;
  display:grid; place-items:center; color:#fff; background:linear-gradient(135deg,#894092,#f2c937);
  transform:scale(0) rotate(-90deg); transition:transform .5s var(--rsw-bounce);
}
.rsg-zoom svg{ width:20px; height:20px; }
@media (hover:hover){
  .rsg-in > .rsg-tile:hover{ transform:translateY(-6px); box-shadow:0 24px 40px -22px rgba(108,40,135,.55); }
  .rsg-in > .rsg-tile:hover img{ transform:scale(1.05); transition-delay:0s; transition-duration:.8s; }
  .rsg-tile:hover::after{ opacity:1; }
  .rsg-tile:hover .rsg-zoom{ transform:none; }
}
.rsg-tile:focus-visible{ outline:3px solid var(--rsw-gold); outline-offset:3px; }
.rsg-tile:focus-visible .rsg-zoom{ transform:none; }

@media (max-width:980px){ .rsg-grid{ column-count:2; } }
@media (max-width:480px){ .rsg-tile{ border-radius:18px; } .rsg-grid{ column-gap:10px; } .rsg-cell{ margin-bottom:10px; } .rsg-in > .rsg-tile{ clip-path:inset(0 0 0 0 round 18px); } }

/* ----- visualizzatore a schermo intero: si apre con un cerchio dal punto cliccato ----- */
#rsg-lb{
  position:fixed; inset:0; z-index:100010; display:grid; place-items:center;
  background:rgba(22,8,28,.97);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  clip-path:circle(0px at var(--x,50%) var(--y,50%));
  visibility:hidden; transition:clip-path .7s var(--rsw-ease), visibility 0s linear .7s;
}
#rsg-lb.is-open{ clip-path:circle(150vmax at var(--x,50%) var(--y,50%)); visibility:visible; transition:clip-path .7s var(--rsw-ease), visibility 0s; }
#rsg-lb figure{ margin:0; max-width:min(1100px,88vw); max-height:84vh; display:grid; place-items:center; }
#rsg-lb img{
  max-width:100%; max-height:84vh; width:auto; height:auto; border-radius:20px; display:block;
  opacity:0; transform:scale(.92); transition:opacity .4s ease .25s, transform .7s var(--rsw-bounce) .2s;
}
#rsg-lb.is-open img{ opacity:1; transform:none; }
#rsg-lb img.rsg-swap{ opacity:0 !important; transform:scale(.96) !important; transition:opacity .15s ease, transform .15s ease !important; }
#rsg-lb button{
  position:absolute; width:54px; height:54px; border-radius:50%; border:1.5px solid rgba(255,255,255,.35);
  background:rgba(255,255,255,.06); color:#fff; display:grid; place-items:center; cursor:pointer; padding:0;
  transition:background .3s ease, border-color .3s ease, transform .4s var(--rsw-bounce);
}
#rsg-lb button:hover, #rsg-lb button:focus-visible{ background:var(--rsw-gold); border-color:var(--rsw-gold); color:#000; transform:scale(1.08); outline:none; }
#rsg-lb button svg{ width:22px; height:22px; }
#rsg-lb .rsg-close{ top:22px; right:22px; }
#rsg-lb .rsg-prev{ left:22px; top:50%; margin-top:-27px; }
#rsg-lb .rsg-next{ right:22px; top:50%; margin-top:-27px; }
#rsg-lb .rsg-counter{ position:absolute; bottom:24px; left:50%; transform:translateX(-50%); color:#fff; font:600 13px/1 Poppins, sans-serif; letter-spacing:.14em; }
@media (max-width:600px){
  #rsg-lb .rsg-prev, #rsg-lb .rsg-next{ top:auto; bottom:14px; margin-top:0; width:46px; height:46px; }
  #rsg-lb .rsg-prev{ left:18px; } #rsg-lb .rsg-next{ right:18px; }
}
html.rsg-lock, html.rsg-lock body{ overflow:hidden !important; }

@media (prefers-reduced-motion:reduce){
  .rsw-anim, .rsw-row::after, .rsg-tile, .rsg-tile img, #rsg-lb, #rsg-lb img{ transition:none !important; }
  .rsw-anim{ opacity:1; transform:none; } .rsw-row::after{ transform:scaleX(1); }
  .rsg-tile{ clip-path:none; } .rsg-tile img{ transform:none; }
}
