/* BlueDefender Theme CSS - Accessible, performant, no external deps */
:root{
  --bg: #0d1117;
  --bg-2:#0a0e27;
  --text:#e6edf3;
  --muted:#c9d1d9;
  --accent:#0078d4;
  --green:#00ff41;
  --amber:#ffa500;
  --red:#ff4444;
  --card:#1a1d2e;
  --border:#2d3340;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;line-height:1.6}
a{color:var(--accent);text-decoration:none}
a:hover,a:focus{text-decoration:underline}
img{max-width:100%;height:auto}
.container{width:100%;max-width:1100px;margin:0 auto;padding:1rem}
.bg-dark{background:var(--bg)}
.text-body{color:var(--text)}
.skip-link{position:absolute;left:-9999px;top:auto}
.skip-link:focus{left:1rem;top:1rem;background:#000;color:#fff;padding:.5rem 1rem;z-index:999}

/* Nav */
.nav {
  background: var(--bg-2);
  border-bottom: 1px solid var(--border);
  position: relative;
}

.nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0.75rem 1rem;
  position: relative;
}

.brand {
  font-family: "JetBrains Mono", Consolas, monospace;
  color: #fff;
  font-weight: 700;
  font-size: 1.25rem;
}

/* Desktop menu - visible by default */
.menu {
  list-style: none;
  display: flex;
  gap: 1rem;
  margin: 0;
  padding: 0;
}

.menu li { margin: 0; }

.menu a {
  color: var(--text);
  text-decoration: none;
  padding: 0.5rem;
  display: block;
  transition: color 0.2s ease;
}

.menu a:hover,
.menu a:focus { color: var(--accent); }

/* Hide toggle button on desktop */
.menu-toggle {
  display: none;
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text);
  padding: 0.4rem 0.6rem;
  border-radius: 0.25rem;
  font-size: 1.25rem;
  cursor: pointer;
  transition: background 0.2s ease;
}
.menu-toggle:hover { background: var(--card); }

/* Mobile styles */
@media (max-width: 740px) {
  /* Show hamburger button */
  .menu-toggle {
    display: inline-block;
  }

  /* Hide menu by default */
  .menu {
    display: none; /* Hidden by default */
    flex-direction: column;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--bg-2);
    border-top: 1px solid var(--border);
    padding: 1rem;
    margin: 0;
    z-index: 100;
    box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  }

  /* Show menu when active */
  .menu.active {
    display: flex;
  }

  .menu li { width: 100%; }
  .menu a { padding: 0.75rem 1rem; width: 100%; }
}

/* Hero */
.hero{background:linear-gradient(180deg,var(--bg-2),var(--bg));border-bottom:1px solid var(--border)}
.hero-inner{max-width:1100px;margin:0 auto;padding:3rem 1rem}
.hero .tagline{color:var(--muted)}
.terminal{background:var(--card);border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-top:1rem}
.terminal-header{display:flex;align-items:center;gap:.5rem;background:#0f1329;color:#9aa5b1;padding:.5rem .75rem;border-bottom:1px solid var(--border)}
.terminal-header .dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.dot.red{background:#ff5f56}.dot.amber{background:#ffbd2e}.dot.green{background:#27c93f}
.terminal-body{font-family:"JetBrains Mono",Consolas,monospace;padding:1rem;min-height:110px}

/* Sections */
.section-header h1{margin:.5rem 0 0}
.section-desc{color:var(--muted)}
.post-list{list-style:none;padding:0;margin:0;display:grid;gap:.75rem}
.post-list .meta{color:var(--muted);font-size:.9rem}
.pill-list{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;padding:0}
.pill-list li{background:var(--card);border:1px solid var(--border);border-radius:999px;padding:.3rem .7rem}
.badges{list-style:none;display:flex;gap:.4rem;padding:0}
.badge{background:var(--card);border:1px solid var(--border);border-radius:4px;padding:.1rem .4rem;color:var(--muted);font-size:.85rem}

/* Cards */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}
.gh-card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:1rem;display:flex;flex-direction:column;gap:.5rem}
.gh-card .gh-card-header{display:flex;gap:.5rem;align-items:center;justify-content:space-between}
.gh-stats{display:flex;gap:1rem;color:var(--muted);font-family:"JetBrains Mono",Consolas,monospace;font-size:.9rem}
.gh-actions .btn{margin-right:.5rem}

/* Buttons */
.btn{display:inline-block;background:var(--accent);color:#fff;padding:.5rem .9rem;border-radius:6px;border:1px solid #0b64ad}
.btn:hover,.btn:focus{filter:brightness(1.05)}

/* Alerts */
.short-alert{border-left:4px solid var(--border);background:var(--card);padding:.75rem 1rem;border-radius:6px;margin:1rem 0}
.short-alert.info{border-color:#6b7280}
.short-alert.detection{border-color:var(--accent)}
.short-alert.warning{border-color:var(--amber)}
.short-alert.critical{border-color:var(--red)}
.short-alert.best{border-color:var(--green)}
.short-alert-title{display:block;margin-bottom:.25rem}

/* Shortcodes */
.short-terminal pre,.short-query pre,.short-edr pre{background:#0b0f23;padding:.75rem;border-radius:6px;border:1px solid var(--border);overflow:auto}
.short-query header,.short-edr header{color:var(--muted);margin-bottom:.25rem}

/* Footer */
.site-footer{border-top:1px solid var(--border);margin-top:2rem;padding:40px 24px;background:var(--bg-2)}
.site-footer .container{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center;padding:0}
@media (max-width:768px){.site-footer .container{grid-template-columns:1fr;text-align:center}}
.footer-links{display:flex;gap:16px;flex-wrap:wrap}
.footer-links a{color:var(--muted);transition:color .2s ease}
.footer-links a:hover{color:var(--accent)}

/* Accessibility */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Content */
.post .content pre{background:#0b0f23;border:1px solid var(--border);padding:1rem;border-radius:6px;overflow:auto}
.post .content code{font-family:"Fira Code",Consolas,monospace}
.toc{background:var(--card);border:1px solid var(--border);padding:1rem;border-radius:6px;margin:1rem 0}

/* Forms */
.search-box input{width:100%;max-width:420px;padding:.5rem;border-radius:6px;border:1px solid var(--border);background:var(--card);color:var(--text)}

/* Layout helpers */
.featured-grid,.activity-grid{display:grid;gap:1rem}
@media (min-width:900px){.featured-grid,.activity-grid{grid-template-columns:1fr 1fr}}

/* Global section spacing & headers */
section{padding:60px 24px}
section+section{border-top:1px solid var(--border)}
section h2{font-size:32px;margin-bottom:32px;font-weight:700;position:relative;padding-bottom:12px}
section h2::after{content:"";position:absolute;bottom:0;left:0;width:60px;height:3px;background:var(--accent)}
section h3{font-size:20px;margin:32px 0 16px;color:var(--accent)}
@media (max-width:768px){section{padding:40px 16px}section h2{font-size:24px}}

/* Summary grid */
.summary-grid{display:grid;gap:20px}
@media (min-width:900px){.summary-grid{grid-template-columns:1.2fr .8fr;align-items:start}}
.summary-list{list-style:none;margin:12px 0 0;padding:0}
.summary-list li{padding:6px 0;color:var(--muted);font-size:14px}
.summary-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.stat-item{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:12px;display:flex;flex-direction:column;align-items:center}
.stat-num{font-size:24px;font-weight:700}
.stat-label{color:var(--muted);font-size:12px}

/* Featured posts list */
.featured-posts{display:grid;gap:12px}
.post-item{padding:16px;border-left:3px solid transparent;margin-bottom:0;border-radius:6px;transition:all .2s ease;background:transparent}
.post-item:hover{background:rgba(26,29,46,.5);border-left-color:var(--accent);transform:translateX(4px)}
.post-item .post-date{font-size:14px;color:var(--muted)}
.post-title{font-size:18px;font-weight:600;margin:4px 0;color:#e6edf3}
.post-link{text-decoration:none;color:inherit;display:block}
/* Prevent underline on featured post containers (link wrapper) */
.featured-posts .post-link:hover,
.featured-posts .post-link:focus{ text-decoration: none; }
.post-excerpt{color:var(--muted);margin:4px 0 8px}
.post-tags{display:flex;gap:8px;flex-wrap:wrap}
/* difficulty accent on left bar */
.diff-beginner{border-left-color:var(--green)}
.diff-intermediate{border-left-color:var(--amber)}
.diff-advanced{border-left-color:var(--red)}

/* Competencies grid */
.competencies-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-top:24px}
.competency-card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:20px}
.competency-card h3{font-size:16px;color:var(--accent);margin-bottom:12px;display:flex;align-items:center;gap:8px}
.competency-card ul{list-style:none;padding:0;margin:0}
.competency-card li{padding:6px 0;color:var(--muted);font-size:14px}
.competency-card li::before{content:"▸";color:var(--accent);margin-right:8px}

/* Buttons improved */
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:#fff;padding:12px 24px;border-radius:6px;border:1px solid #0b64ad;font-weight:500;transition:all .2s ease}
.btn:hover,.btn:focus{filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,120,212,.3)}
.btn--secondary{background:transparent;border-color:var(--accent);color:var(--accent)}
.btn--secondary:hover{background:var(--accent);color:#fff}
.btn::after{content:"→";display:inline-block;transition:transform .2s ease}
.btn:hover::after{transform:translateX(4px)}

/* GitHub cards polish */
.gh-card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:20px;display:flex;flex-direction:column;gap:12px;transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease}
.gh-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,.2);border-color:var(--accent)}
.gh-card-title{font-size:20px;font-weight:700;display:flex;align-items:center;gap:8px;margin:0}
.tool-icon{font-size:24px}
.gh-stats{display:flex;gap:1rem;color:var(--muted);font-family:"JetBrains Mono",Consolas,monospace;font-size:.9rem}

/* Hero layout optimizations */
@media (min-width:900px){
  /* Do not center the hero; keep left-aligned for headings, terminal, and actions */
  .hero-inner{display:block;text-align:left}
  .terminal{max-width:none;margin:24px 0}
  .hero-actions{display:flex;gap:16px;justify-content:flex-start;margin-top:24px}
}
/* Reduce terminal height and ensure left-aligned text */
.terminal-body{min-height:100px;text-align:left}

/* Mobile cards/layout */
@media (max-width:768px){
  .cards,.competencies-grid{grid-template-columns:1fr}
  .btn{width:100%;justify-content:center}
}


/* --- Blog Index Enhancements --- */
/* Align blog page container with nav and homepage containers (EP baseline) */
.blog-index {
  /* Keep vertical spacing from section; override horizontal padding to match nav-inner/hero-inner */
  padding-left: 1rem;
  padding-right: 1rem;
  margin-left: auto;
  margin-right: auto;
  max-width: 1100px;
}
.blog-header{display:flex;flex-direction:column;gap:16px;padding-bottom:24px;border-bottom:1px solid var(--border);margin-bottom:40px}
@media (min-width:900px){.blog-header{flex-direction:row;align-items:flex-end;justify-content:space-between}}
.blog-header h1{font-size:3rem;line-height:1.1;margin:0}
.blog-header .section-subtitle{font-size:1.125rem;color:var(--muted);margin:0}

/* Search bar */
.search-box--enhanced{display:flex;justify-content:flex-end}
.search-input-wrap{position:relative;width:100%;max-width:400px}
.search-input{width:100%;height:44px;background:#1a1d2e;border:1px solid #30363d;border-radius:8px;padding:12px 16px 12px 48px;color:var(--text);font-size:16px;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="%237d8590"><path d="M10 18a8 8 0 1 1 6.32-3.09l4.39 4.38-1.41 1.42-4.4-4.4A7.98 7.98 0 0 1 10 18Zm0-2a6 6 0 1 0 0-12 6 6 0 0 0 0 12Z"/></svg>');background-repeat:no-repeat;background-position:16px center;background-size:20px 20px}
.search-input::placeholder{color:#7d8590}
.search-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(0,120,212,0.15)}
/* Icon applied via input background; removed pseudo-element */

/* Cards grid */
.post-cards{list-style:none;margin:0;padding:0;display:grid;gap:32px}
.post-card-item{margin:0;padding:0}
.blog-card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:24px;box-shadow:0 2px 8px rgba(0,0,0,.1);transition:transform .2s ease-in-out, box-shadow .2s ease-in-out;width:100%;max-width:100%;box-sizing:border-box;overflow:hidden}
.blog-card:hover,.blog-card:focus-within{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,.2)}
.blog-card__title{font-size:1.75rem;line-height:1.3;margin:0 0 8px}
.blog-card__title a{color:#e6edf3;text-decoration:none}
.blog-card__title a:hover,.blog-card__title a:focus{color:var(--accent);text-decoration:underline}
.blog-card__meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:#c9d1d9;font-size:.875rem;margin-bottom:12px}
.blog-card__tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.tag{display:inline-flex;align-items:center;border-radius:999px;padding:4px 12px;font-size:.75rem}
.tag--category{background:rgba(0,120,212,.15);color:#0078d4}
.tag--tag{background:#222836;color:#7d8590}
/* Category color variants */
.tag--siem-queries{background:rgba(139,92,246,.15);color:#8b5cf6}
.tag--threat-hunting{background:rgba(0,120,212,.15);color:#0078d4}
.tag--edr-analysis{background:rgba(255,165,0,.15);color:#ffa500}
.tag--incident-response{background:rgba(255,68,68,.15);color:#ff4444}
.tag--detection-engineering{background:rgba(0,255,65,.15);color:#00ff41}

.blog-card__excerpt{color:#c9d1d9;font-size:1rem;line-height:1.6;margin-bottom:16px;width:100%;max-width:100%;max-height:4.8em;overflow:hidden;position:relative;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;text-overflow:ellipsis}
.blog-card__excerpt::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2.2em;background:linear-gradient(180deg, rgba(26,29,46,0) 0%, rgba(26,29,46,1) 100%)}
.blog-card__excerpt pre{background:#0d1117;border:1px solid #30363d;border-radius:6px;padding:12px 16px;font-family:"Fira Code",Consolas,monospace;font-size:14px;line-height:1.5;overflow:auto;max-height:100px}

.blog-card__link{display:inline-flex;align-items:center;gap:6px;margin-top:12px;font-size:14px;font-weight:500;color:var(--accent);text-decoration:none;transition:transform .2s ease-in-out}
.blog-card__link:hover,.blog-card__link:focus{text-decoration:underline}
.blog-card__link .icon-arrow{display:inline-block;transition:transform .2s ease-in-out}
.blog-card__link:hover .icon-arrow,.blog-card__link:focus .icon-arrow{transform:translateX(4px)}

/* Difficulty badge */
.difficulty{display:inline-flex;align-items:center;gap:8px}
.difficulty__dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:#6b7280}
.difficulty--beginner .difficulty__dot{background:#00ff41}
.difficulty--intermediate .difficulty__dot{background:#ffa500}
.difficulty--advanced .difficulty__dot{background:#ff4444}

/* Pagination */
.pagination,.pagination-wrap{display:flex;justify-content:center;margin:48px 0 0}
.pagination li{list-style:none}
.pagination a,.pagination span{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin:0 4px;border-radius:6px;border:1px solid transparent;color:var(--text)}
.pagination .page-item.active .page-link, .pagination .active, .pagination a[aria-current="page"]{background:var(--accent);color:#fff;border-color:#0b64ad}
.pagination a:hover{border-color:#30363d}
.pagination .disabled,.pagination a[aria-disabled="true"]{opacity:.5;pointer-events:none}

/* Empty state */
.empty-state{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;color:var(--muted);margin-top:24px}
/* Ensure [hidden] attribute fully hides element across all browsers */
.empty-state[hidden]{display:none !important}
.empty-state__icon{font-size:40px}
.btn--ghost{background:transparent;border:1px solid #30363d;color:var(--text)}
.btn--ghost:hover,.btn--ghost:focus{border-color:var(--accent)}

/* Alerts improved styling */
.short-alert{border-left:4px solid var(--border);border-radius:6px;padding:16px;background:rgba(107,114,128,.1)}
.short-alert .short-alert-title{font-weight:700;font-size:16px}
.short-alert.info{border-color:#7d8590;background:rgba(125,133,144,.1)}
.short-alert.detection{border-color:#0078d4;background:rgba(0,120,212,.1)}
.short-alert.warning{border-color:#ffa500;background:rgba(255,165,0,.1)}
.short-alert.critical{border-color:#ff4444;background:rgba(255,68,68,.1)}
.short-alert.best{border-color:#00ff41;background:rgba(0,255,65,.1)}

/* Responsive tweaks */
@media (max-width:767px){
  .blog-index{padding:16px}
  .blog-card{padding:20px}
  .blog-card__title{font-size:1.5rem}
  .search-input-wrap{max-width:100%}
}

/* Fix blog card width issues caused by excerpt content */
.blog-card__excerpt > * { max-width: 100%; overflow-wrap: break-word; box-sizing: border-box }
.blog-card__excerpt pre, .blog-card__excerpt code { max-width: 100%; overflow-x: auto; box-sizing: border-box }

/* Hide complex elements in card previews */
.blog-card__excerpt .short-alert,
.blog-card__excerpt .short-query,
.blog-card__excerpt .short-edr,
.blog-card__excerpt .short-terminal { display: none }

/* Hide headings in excerpts to avoid layout shifts */
.blog-card__excerpt h1,
.blog-card__excerpt h2,
.blog-card__excerpt h3,
.blog-card__excerpt h4,
.blog-card__excerpt h5,
.blog-card__excerpt h6 { display: none }

/* Prefer showing only the first paragraph with a 3-line clamp */
.blog-card__excerpt > p:first-child {
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}


/* Responsive code blocks: constrain width and prevent mobile overflow */
.post .content pre,
.post .content .chroma,
.short-terminal pre,
.short-query pre,
.short-edr pre {
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* Hugo Chroma line-numbers table handling */
.post .content .lntable {
  display: block;
  max-width: 100%;
  width: 100%;
  overflow-x: auto;
  box-sizing: border-box;
}
.post .content .lntable td { vertical-align: top; }

/* Ensure code text itself doesn't force viewport overflow */
.post .content pre code,
.post .content code {
  white-space: pre;
  word-wrap: normal;
  overflow-wrap: normal;
}

/* Minor mobile polish: keep code blocks within padding on small screens */
@media (max-width: 767px) {
  .post .content pre,
  .post .content .chroma,
  .post .content .lntable {
    margin-left: 0;
    margin-right: 0;
  }
}


/* Full-card clickable blog link */
.blog-card--link{display:block;color:inherit;text-decoration:none}
.blog-card--link:hover,.blog-card--link:focus{text-decoration:none}
.blog-card--link:hover .blog-card__title,.blog-card--link:focus .blog-card__title{color:var(--accent)}
