/* ========================================================================
   PHOTOPROMPT FAVORITES / 3.11.1
   Premium local-library hero with interactive ASCII field.
   ======================================================================== */

body.photoprompt-site .pp-favorites-page{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  background:var(--pp-bg);
  overflow:clip;
}

.pp-favorites-hero{
  position:relative;
  isolation:isolate;
  min-height:clamp(680px,82vh,900px);
  padding:clamp(132px,12vw,190px) max(22px,calc((100vw - 1440px)/2)) clamp(72px,8vw,120px);
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  color:#F5F1EC;
  background:
    radial-gradient(80% 110% at 78% 52%,rgba(86,96,82,.22),transparent 60%),
    radial-gradient(52% 70% at 18% 18%,rgba(205,84,47,.12),transparent 70%),
    linear-gradient(180deg,#0B0C0B 0%,#111211 58%,#0D0E0D 100%);
  border-bottom:1px solid rgba(245,241,236,.12);
}
.pp-favorites-hero::before{
  content:'';
  position:absolute;
  z-index:0;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px),
    linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px);
  background-size:78px 78px;
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.5) 42%,#000 100%);
  opacity:.38;
}
.pp-favorites-hero::after{
  content:'';
  position:absolute;
  z-index:2;
  left:0;right:0;bottom:0;
  height:180px;
  pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(5,6,5,.5));
}

.pp-favorites-hero__ascii{
  position:absolute;
  z-index:1;
  inset:0;
  overflow:hidden;
}
.pp-favorites-hero__ascii canvas{
  width:100%;
  height:100%;
  display:block;
  opacity:.92;
}
.pp-favorites-hero__ascii-fade{
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(10,11,10,.97) 0%,rgba(10,11,10,.83) 26%,rgba(10,11,10,.22) 58%,rgba(10,11,10,.08) 100%),
    linear-gradient(180deg,rgba(8,9,8,.16),transparent 34%,rgba(8,9,8,.12));
}

.pp-favorites-hero__chrome{
  position:absolute;
  z-index:4;
  left:max(22px,calc((100vw - 1440px)/2));
  right:max(22px,calc((100vw - 1440px)/2));
  top:clamp(112px,9vw,142px);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding-bottom:14px;
  border-bottom:1px solid rgba(245,241,236,.18);
  font:800 8px/1 var(--pp-mono,ui-monospace,SFMono-Regular,Menlo,monospace);
  letter-spacing:.12em;
  color:rgba(245,241,236,.56);
}
.pp-favorites-hero__chrome span:last-child{color:rgba(174,185,160,.72)}

.pp-favorites-hero__content{
  position:relative;
  z-index:5;
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(290px,.48fr);
  gap:clamp(52px,7vw,110px);
  align-items:end;
}
.pp-favorites-hero__copy{max-width:960px}
.pp-favorites-hero__kicker{
  display:block;
  margin-bottom:18px;
  font:800 9px/1 var(--pp-mono,ui-monospace,SFMono-Regular,Menlo,monospace);
  letter-spacing:.14em;
  color:#D16A49;
}
.pp-favorites-hero h1{
  margin:0;
  font:850 clamp(74px,11vw,184px)/.72 var(--pp-display,var(--pp-sans,'Helvetica Neue',Helvetica,Arial,sans-serif));
  letter-spacing:-.085em;
  color:#F5F1EC;
  text-wrap:balance;
}
.pp-favorites-hero h1 span{color:#D16A49}
.pp-favorites-hero__claim{
  margin:clamp(30px,4vw,54px) 0 0;
  font:800 clamp(26px,3vw,46px)/.98 var(--pp-display,var(--pp-sans,'Helvetica Neue',Helvetica,Arial,sans-serif));
  letter-spacing:-.045em;
  color:#F5F1EC;
}
.pp-favorites-hero__intro{
  max-width:650px;
  margin:18px 0 0;
  font:600 clamp(14px,1.05vw,17px)/1.58 var(--pp-sans,'Helvetica Neue',Helvetica,Arial,sans-serif);
  color:rgba(245,241,236,.66);
}
.pp-favorites-hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:30px;
}
.pp-favorites-hero__actions a{
  min-height:48px;
  padding:0 17px;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:26px;
  border:1px solid rgba(245,241,236,.2);
  border-radius:999px;
  text-decoration:none;
  font:800 9px/1 var(--pp-mono,ui-monospace,SFMono-Regular,Menlo,monospace);
  letter-spacing:.08em;
  text-transform:uppercase;
  transition:transform .22s var(--pp-ease),background .22s ease,border-color .22s ease,color .22s ease;
}
.pp-favorites-hero__primary{background:#F5F1EC;color:#111!important}
.pp-favorites-hero__secondary{background:rgba(255,255,255,.035);color:#F5F1EC!important;backdrop-filter:blur(12px)}
.pp-favorites-hero__actions a:hover{transform:translateY(-2px)}
.pp-favorites-hero__primary:hover{background:var(--pp-moss,#566052);border-color:var(--pp-moss,#566052);color:#fff!important}
.pp-favorites-hero__secondary:hover{background:rgba(245,241,236,.09);border-color:rgba(245,241,236,.34)}

.pp-favorites-hero__status{
  display:grid;
  gap:12px;
  align-self:end;
}
.pp-favorites-hero__count{
  min-height:220px;
  padding:22px;
  display:grid;
  grid-template-columns:1fr auto;
  align-content:space-between;
  gap:8px 16px;
  border:1px solid rgba(245,241,236,.16);
  border-radius:24px;
  background:rgba(15,17,15,.56);
  box-shadow:0 24px 70px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.04);
  backdrop-filter:blur(18px) saturate(110%);
}
.pp-favorites-hero__count span{
  grid-column:1/-1;
  font:800 8px/1 var(--pp-mono,ui-monospace,SFMono-Regular,Menlo,monospace);
  letter-spacing:.13em;
  color:#AEB9A0;
}
.pp-favorites-hero__count b{
  align-self:end;
  font:850 clamp(72px,7vw,116px)/.72 var(--pp-display,var(--pp-sans,'Helvetica Neue',Helvetica,Arial,sans-serif));
  letter-spacing:-.075em;
  color:#F5F1EC;
}
.pp-favorites-hero__count small{
  align-self:end;
  max-width:110px;
  padding-bottom:4px;
  font:700 9px/1.3 var(--pp-mono,ui-monospace,SFMono-Regular,Menlo,monospace);
  text-transform:uppercase;
  color:rgba(245,241,236,.48);
}
.pp-favorites-hero__interaction{
  min-height:66px;
  padding:12px 16px;
  display:flex;
  align-items:center;
  gap:12px;
  border:1px solid rgba(245,241,236,.12);
  border-radius:18px;
  background:rgba(255,255,255,.025);
}
.pp-favorites-hero__cursor-dot{
  width:9px;height:9px;
  flex:0 0 auto;
  border-radius:50%;
  background:#AEB9A0;
  box-shadow:0 0 0 7px rgba(174,185,160,.08),0 0 18px rgba(174,185,160,.4);
  animation:ppFavPulse 2.4s ease-in-out infinite;
}
.pp-favorites-hero__interaction b,.pp-favorites-hero__interaction small{display:block}
.pp-favorites-hero__interaction b{font:800 8px/1.1 var(--pp-mono,ui-monospace,SFMono-Regular,Menlo,monospace);letter-spacing:.08em;color:#F5F1EC}
.pp-favorites-hero__interaction small{margin-top:5px;font:600 10px/1.2 var(--pp-sans,'Helvetica Neue',Helvetica,Arial,sans-serif);color:rgba(245,241,236,.48)}

.pp-favorites-collection{
  padding:clamp(74px,8vw,120px) var(--pp-gutter) clamp(100px,10vw,160px);
  background:var(--pp-bg);
}
.pp-favorites-collection__head{
  width:min(100%,var(--pp-max));
  margin:0 auto clamp(38px,5vw,68px);
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(280px,.55fr);
  gap:40px;
  align-items:end;
  padding-bottom:28px;
  border-bottom:1px solid var(--pp-border);
}
.pp-favorites-collection__head h2{
  margin:10px 0 0;
  font:850 clamp(48px,6vw,92px)/.83 var(--pp-display,var(--pp-sans,'Helvetica Neue',Helvetica,Arial,sans-serif));
  letter-spacing:-.065em;
}
.pp-favorites-collection__head > p{
  max-width:430px;
  margin:0;
  font:600 14px/1.6 var(--pp-sans,'Helvetica Neue',Helvetica,Arial,sans-serif);
  color:var(--pp-text-muted);
}
.pp-favorites-collection .pp-favorites-library{
  max-width:var(--pp-max);
  margin:0 auto;
}
/* The core shortcode keeps its data bridge but its old hero header is superseded here. */
.pp-favorites-collection .pp-favorites-library > header{display:none!important}
.pp-favorites-collection .pp-favorites-library__grid{
  border-top:1px solid var(--pp-border);
  border-left:1px solid var(--pp-border);
}

@keyframes ppFavPulse{
  0%,100%{transform:scale(.9);opacity:.75}
  50%{transform:scale(1.1);opacity:1}
}

@media(max-width:1050px){
  .pp-favorites-hero{min-height:760px}
  .pp-favorites-hero__content{grid-template-columns:1fr;gap:36px}
  .pp-favorites-hero__status{grid-template-columns:minmax(0,320px) minmax(0,1fr);align-items:stretch}
  .pp-favorites-hero__count{min-height:160px}
  .pp-favorites-hero__interaction{align-self:stretch}
  .pp-favorites-collection__head{grid-template-columns:1fr}
}

@media(max-width:680px){
  .pp-favorites-hero{
    min-height:720px;
    padding:118px 18px 68px;
  }
  .pp-favorites-hero::before{background-size:42px 42px}
  .pp-favorites-hero__chrome{left:18px;right:18px;top:94px}
  .pp-favorites-hero__chrome span:last-child{display:none}
  .pp-favorites-hero__ascii-fade{
    background:linear-gradient(180deg,rgba(10,11,10,.44),rgba(10,11,10,.72) 54%,rgba(10,11,10,.94));
  }
  .pp-favorites-hero h1{font-size:clamp(66px,21vw,100px);line-height:.78}
  .pp-favorites-hero__claim{font-size:30px}
  .pp-favorites-hero__intro{font-size:14px}
  .pp-favorites-hero__actions{display:grid;grid-template-columns:1fr}
  .pp-favorites-hero__actions a{width:100%}
  .pp-favorites-hero__status{grid-template-columns:1fr}
  .pp-favorites-hero__count{min-height:145px;padding:18px}
  .pp-favorites-hero__count b{font-size:72px}
  .pp-favorites-hero__interaction{min-height:58px}
  .pp-favorites-collection{padding:64px 14px 110px}
  .pp-favorites-collection__head{gap:18px;padding-bottom:20px;margin-bottom:28px}
  .pp-favorites-collection__head h2{font-size:54px}
}

@media(prefers-reduced-motion:reduce){
  .pp-favorites-hero__cursor-dot{animation:none}
  .pp-favorites-hero__actions a{transition:none}
}
