/*
Theme Name: Prompts For Real
Theme URI: https://promptsforreal.com
Author: Prompts For Real
Description: A searchable, taggable gallery of AI image prompts — click any image to see the exact prompt, its aspect ratio, platform, and whether it's a universal prompt. Includes a Blog page template for tutorials. Manage everything from the WordPress admin under "Prompts".
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: pfr
*/

:root{
  --bg:#171512;
  --surface:#221F1A;
  --surface-hi:#2B271F;
  --ink:#EDE6D8;
  --muted:#8C8677;
  --safelight:#6E8F5C;
  --amber:#D69A3B;
  --hole:#171512;
  --maxw:1100px;
}
*{box-sizing:border-box;}
html,body{margin:0;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:'IBM Plex Mono', monospace;
  min-height:100vh;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.pfr-wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;}

/* ---------- header ---------- */
.pfr-header{padding:40px 0 28px;border-bottom:1px solid rgba(237,230,216,.1);}
.pfr-logo{
  font-family:'Fraunces', serif;
  font-weight:600;
  font-size:clamp(30px,4.4vw,44px);
  letter-spacing:-.01em;
  display:inline-block;
  margin-bottom:6px;
}
.pfr-tagline{color:var(--muted);font-size:13px;margin:0 0 18px;}
.pfr-nav{display:flex;gap:22px;flex-wrap:wrap;font-size:13px;letter-spacing:.04em;text-transform:uppercase;}
.pfr-nav a{color:var(--muted);}
.pfr-nav a:hover, .pfr-nav a.current{color:var(--amber);}

/* ---------- filter bar ---------- */
.pfr-filterbar{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin:32px 0 30px;
}
.pfr-filterbar input[type="text"],
.pfr-filterbar select{
  background:var(--surface);
  border:1px solid rgba(237,230,216,.15);
  color:var(--ink);
  font-family:'IBM Plex Mono', monospace;
  font-size:13px;
  padding:10px 12px;
  border-radius:2px;
}
.pfr-filterbar input[type="text"]{flex:1;min-width:180px;}
.pfr-filterbar button{
  background:transparent;
  border:1px solid var(--safelight);
  color:var(--ink);
  font-family:'IBM Plex Mono', monospace;
  font-size:13px;
  padding:10px 16px;
  border-radius:2px;
  cursor:pointer;
}
.pfr-filterbar button:hover{background:rgba(110,143,92,.15);}

/* ---------- gallery grid ---------- */
.pfr-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(190px,1fr));
  gap:22px;
  margin:0 0 60px;
}
.pfr-frame{display:block;color:inherit;}
.pfr-film{background:var(--surface);border-radius:2px;overflow:hidden;}
.pfr-sprocket{
  height:12px;
  background-color:var(--surface-hi);
  background-image:radial-gradient(circle at center, var(--hole) 2.6px, transparent 3px);
  background-size:14px 100%;
  background-repeat:repeat-x;
}
.pfr-thumb{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--surface-hi);}
.pfr-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.pfr-placeholder{position:absolute;inset:0;background:linear-gradient(160deg,#3a4a3d,#1c241d);}
.pfr-frame-no{
  position:absolute;top:10px;right:10px;z-index:1;
  font-size:11px;color:var(--amber);
  background:rgba(23,21,18,.6);padding:2px 6px;border-radius:2px;
}
.pfr-caption{
  font-size:12px;color:var(--muted);padding:9px 2px 0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.pfr-frame:hover .pfr-caption{color:var(--ink);}
.pfr-empty{color:var(--muted);padding:40px 0;}

.pfr-tags-row{margin:0 0 30px;font-size:12px;color:var(--muted);}
.pfr-tags-row a{
  display:inline-block;margin:0 8px 8px 0;padding:5px 10px;
  border:1px solid rgba(237,230,216,.15);border-radius:20px;
}
.pfr-tags-row a:hover, .pfr-tags-row a.is-active{border-color:var(--amber);color:var(--amber);}

/* ---------- single prompt ---------- */
.pfr-single{padding:36px 0 70px;}
.pfr-back{color:var(--muted);font-size:12px;display:inline-block;margin-bottom:22px;}
.pfr-back:hover{color:var(--ink);}
.pfr-single-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;}
.pfr-single-img{background:var(--surface-hi);border-radius:3px;overflow:hidden;}
.pfr-single-img img{width:100%;}
.pfr-single-title{
  font-family:'Fraunces', serif;font-style:italic;font-weight:500;
  font-size:22px;margin:0 0 18px;
}
.pfr-rule{border:0;border-top:1px solid rgba(237,230,216,.12);margin:0 0 18px;}
.pfr-label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;}
.pfr-prompt-text{font-size:14px;line-height:1.7;background:var(--surface);padding:18px;border-radius:3px;margin:0 0 20px;white-space:pre-wrap;}
.pfr-copy{
  font-family:'IBM Plex Mono', monospace;font-size:12px;
  background:transparent;border:1px solid var(--safelight);color:var(--ink);
  padding:9px 14px;border-radius:2px;cursor:pointer;margin-bottom:26px;
}
.pfr-copy:hover{background:rgba(110,143,92,.15);}
.pfr-copy.is-copied{border-color:var(--amber);color:var(--amber);}
.pfr-meta-table{width:100%;font-size:13px;margin-bottom:22px;}
.pfr-meta-table tr{border-bottom:1px solid rgba(237,230,216,.08);}
.pfr-meta-table td{padding:9px 0;}
.pfr-meta-table td:first-child{color:var(--muted);width:40%;}

@media (max-width:720px){
  .pfr-single-grid{grid-template-columns:1fr;}
}

/* ---------- blog ---------- */
.pfr-blog-item{padding:26px 0;border-bottom:1px solid rgba(237,230,216,.1);}
.pfr-blog-item h2{
  font-family:'Fraunces', serif;font-weight:600;font-size:22px;margin:0 0 8px;
}
.pfr-blog-item h2 a:hover{color:var(--amber);}
.pfr-blog-meta{font-size:12px;color:var(--muted);margin:0 0 10px;}
.pfr-blog-excerpt{font-size:14px;line-height:1.7;color:var(--ink);}
.pfr-blog-more{font-size:12px;color:var(--safelight);display:inline-block;margin-top:8px;}

/* ---------- page / footer ---------- */
.pfr-page{padding:40px 0 70px;font-size:15px;line-height:1.75;}
.pfr-page h1{font-family:'Fraunces', serif;font-size:30px;margin:0 0 22px;}
.pfr-footer{border-top:1px solid rgba(237,230,216,.1);padding:26px 0;font-size:12px;color:var(--muted);}

@media (prefers-reduced-motion:no-preference){
  .pfr-film{transition:transform .15s ease;}
  .pfr-frame:hover .pfr-film{transform:translateY(-2px);}
}
