/*
Theme Name: Snewle
Theme URI: https://snewle.com
Author: Snewle
Description: Dark, terminal-inspired theme for cybersecurity news, breach reports and security software reviews.
Version: 1.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: snewle
*/

:root{
  --bg: #0A0C10;
  --surface: #12151B;
  --surface-2: #191D25;
  --line: #232833;
  --text: #E8EAED;
  --text-dim: #8B92A0;
  --text-faint: #565D6B;
  --signal-red: #FF4433;
  --signal-amber: #FFB020;
  --signal-purple: #A67CFF;
  --signal-blue: #4DA3FF;
  --signal-green: #3DDC84;
}
*{box-sizing:border-box; margin:0; padding:0;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'Inter',sans-serif;
  line-height:1.5;
}
img{max-width:100%; display:block;}
.mono{font-family:'JetBrains Mono',monospace;}

/* Ticker */
.ticker-bar{
  background:var(--surface-2);
  border-bottom:1px solid var(--line);
  padding:8px 0;
  overflow:hidden;
  white-space:nowrap;
}
.ticker-track{
  display:inline-flex;
  gap:48px;
  animation:scroll 28s linear infinite;
  padding-left:100%;
}
@keyframes scroll{
  from{transform:translateX(0);}
  to{transform:translateX(-100%);}
}
.ticker-item{
  font-family:'JetBrains Mono',monospace;
  font-size:12px;
  color:var(--text-dim);
  display:flex;
  align-items:center;
  gap:8px;
  text-decoration:none;
}
.dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;}
.dot-red{background:var(--signal-red);}
.dot-amber{background:var(--signal-amber);}
.dot-purple{background:var(--signal-purple);}
.dot-blue{background:var(--signal-blue);}

/* Header */
header.site-header{
  max-width:1180px;
  margin:0 auto;
  padding:28px 32px 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:16px;
}
.logo{
  font-family:'JetBrains Mono',monospace;
  font-weight:700;
  font-size:20px;
  letter-spacing:-0.5px;
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--text);
  text-decoration:none;
}
.logo .cursor{
  display:inline-block;
  width:9px;height:18px;
  background:var(--signal-red);
  animation:blink 1.1s step-end infinite;
}
@keyframes blink{50%{opacity:0;}}
nav.main-nav{display:flex; gap:32px; flex-wrap:wrap;}
nav.main-nav a{
  color:var(--text-dim);
  text-decoration:none;
  font-size:14px;
  font-weight:500;
  transition:color 0.15s;
}
nav.main-nav a:hover{color:var(--text);}
.status-pill{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;
  color:var(--signal-amber);
  border:1px solid rgba(255,176,32,0.35);
  background:rgba(255,176,32,0.08);
  padding:5px 10px;
  border-radius:3px;
  display:flex;
  align-items:center;
  gap:6px;
  white-space:nowrap;
}

/* Hero */
.hero{
  max-width:1180px;
  margin:0 auto;
  padding:8px 32px 56px;
  border-bottom:1px solid var(--line);
}
.hero-label{
  font-family:'JetBrains Mono',monospace;
  font-size:12px;
  color:var(--signal-red);
  letter-spacing:1px;
  margin-bottom:16px;
  display:flex;
  align-items:center;
  gap:8px;
}
.hero-label .pulse{
  width:7px;height:7px;border-radius:50%;
  background:var(--signal-red);
  box-shadow:0 0 0 0 rgba(255,68,51,0.6);
  animation:pulse 1.6s ease-out infinite;
}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 rgba(255,68,51,0.5);}
  70%{box-shadow:0 0 0 8px rgba(255,68,51,0);}
  100%{box-shadow:0 0 0 0 rgba(255,68,51,0);}
}
.hero h1{
  font-size:44px;
  font-weight:600;
  letter-spacing:-1px;
  line-height:1.15;
  max-width:820px;
  margin-bottom:18px;
}
.hero h1 a{color:inherit; text-decoration:none;}
.hero p{
  color:var(--text-dim);
  font-size:16px;
  max-width:600px;
  margin-bottom:24px;
}
.hero-meta{
  font-family:'JetBrains Mono',monospace;
  font-size:12px;
  color:var(--text-faint);
  display:flex;
  gap:20px;
  flex-wrap:wrap;
}

/* Section headers */
.section{
  max-width:1180px;
  margin:0 auto;
  padding:48px 32px;
}
.section-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  margin-bottom:24px;
  border-bottom:1px solid var(--line);
  padding-bottom:14px;
}
.section-head h2{
  font-family:'JetBrains Mono',monospace;
  font-size:14px;
  letter-spacing:1.5px;
  color:var(--text-dim);
  text-transform:uppercase;
}
.section-head a{
  font-size:13px;
  color:var(--signal-blue);
  text-decoration:none;
}

/* Article grid */
.grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.card{
  background:var(--surface);
  padding:22px;
  border-left:3px solid var(--edge);
  display:flex;
  flex-direction:column;
  gap:12px;
  transition:background 0.15s;
  text-decoration:none;
}
.card:hover{background:var(--surface-2);}
.card-breach{--edge:var(--signal-red);}
.card-vuln{--edge:var(--signal-amber);}
.card-ransom{--edge:var(--signal-purple);}
.card-news{--edge:var(--signal-blue);}
.card-tag{
  font-family:'JetBrains Mono',monospace;
  font-size:10px;
  letter-spacing:1px;
  text-transform:uppercase;
  display:flex;
  align-items:center;
  gap:6px;
}
.tag-breach{color:var(--signal-red);}
.tag-vuln{color:var(--signal-amber);}
.tag-ransom{color:var(--signal-purple);}
.tag-news{color:var(--signal-blue);}
.card h3{
  font-size:16px;
  font-weight:600;
  line-height:1.35;
  color:var(--text);
}
.card p{
  color:var(--text-dim);
  font-size:13px;
  line-height:1.55;
}
.card-foot{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;
  color:var(--text-faint);
  margin-top:auto;
  padding-top:10px;
}

/* Reviews strip */
.review-strip{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
}
.review-card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:6px;
  padding:18px;
}
.review-card .rank{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;
  color:var(--signal-green);
  margin-bottom:10px;
}
.review-card h4{
  font-size:14px;
  font-weight:600;
  margin-bottom:6px;
}
.review-card p{
  color:var(--text-dim);
  font-size:12px;
}

/* Single post */
.single-post{
  max-width:760px;
  margin:0 auto;
  padding:48px 32px 80px;
}
.single-post .card-tag{margin-bottom:14px;}
.single-post h1{
  font-size:36px;
  font-weight:600;
  line-height:1.2;
  margin-bottom:16px;
}
.single-post .post-meta{
  font-family:'JetBrains Mono',monospace;
  font-size:12px;
  color:var(--text-faint);
  margin-bottom:28px;
}
.single-post .featured-img{
  border-radius:6px;
  margin-bottom:28px;
  border:1px solid var(--line);
}
.single-post .entry-content{
  color:var(--text-dim);
  font-size:16px;
  line-height:1.75;
}
.single-post .entry-content h2{
  color:var(--text);
  font-size:22px;
  margin:32px 0 12px;
}
.single-post .entry-content p{margin-bottom:16px;}
.single-post .entry-content a{color:var(--signal-blue);}
.single-post .entry-content ul, .single-post .entry-content ol{margin:0 0 16px 20px;}

footer.site-footer{
  border-top:1px solid var(--line);
  padding:28px 32px;
  max-width:1180px;
  margin:0 auto;
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:8px;
  font-family:'JetBrains Mono',monospace;
  font-size:11px;
  color:var(--text-faint);
}

@media(max-width:820px){
  .grid{grid-template-columns:1fr;}
  .review-strip{grid-template-columns:1fr 1fr;}
  .hero h1{font-size:32px;}
  nav.main-nav{display:none;}
}
