/*
Theme Name: Cody Boyd Cybersecurity
Theme URI: https://cody.onl
Author: Cody Boyd
Author URI: https://cody.onl
Description: A cybersecurity-themed terminal WordPress theme for Cody Boyd. Features DOS command aesthetics, security-focused design, matrix green accents, scanline overlays, and monospace typography with interactive 404 terminal.
Version: 2.0.0
Requires at least: 4.9
Tested up to: 6.7
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: cody-boyd
Tags: one-column, two-columns, right-sidebar, custom-header, custom-menu, featured-images, translation-ready, blog, dark
*/

:root {
    --bg-deepest:    #000000;
    --bg-dark:       #040a04;
    --bg-card:       #0a120a;
    --bg-card-hover: #0f1a0f;
    --bg-elevated:   #0d1a0d;
    --bg-terminal:   #000800;
    --green:         #00ff41;
    --green-dim:     #00cc33;
    --green-dark:    #009922;
    --green-glow:    rgba(0, 255, 65, 0.35);
    --green-subtle:  rgba(0, 255, 65, 0.06);
    --green-border:  rgba(0, 255, 65, 0.15);
    --amber:         #ffb000;
    --amber-dim:     #cc8800;
    --amber-glow:    rgba(255, 176, 0, 0.3);
    --cyan:          #00d4ff;
    --cyan-glow:     rgba(0, 212, 255, 0.25);
    --red:           #ff0040;
    --red-glow:      rgba(255, 0, 64, 0.3);
    --text-primary:  #00ff41;
    --text-secondary:#00cc33;
    --text-muted:    #00802a;
    --text-heading:  #00ff41;
    --text-dim:      #005518;
    --border:        rgba(0, 255, 65, 0.08);
    --border-light:  rgba(0, 255, 65, 0.15);
    --border-bright: rgba(0, 255, 65, 0.3);
    --radius-sm:     2px;
    --radius-md:     4px;
}

@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0} }
@keyframes flicker { 0%,91%,94%,97%,100%{opacity:1} 92%{opacity:.85} 93%{opacity:1} 95%{opacity:.9} 96%{opacity:1} }

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { font-size: 16px; scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }

body {
    font-family: 'JetBrains Mono', 'Fira Code', 'Consolas', monospace;
    font-size: 0.9rem; line-height: 1.7;
    color: var(--text-primary);
    background: var(--bg-deepest);
    animation: flicker 8s infinite;
}

/* Scanlines */
body::after {
    content: ''; position: fixed; top:0; left:0; width:100%; height:100%;
    background: repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.03) 2px, rgba(0,0,0,0.03) 4px);
    pointer-events: none; z-index: 9999;
}

/* CRT vignette */
body::before {
    content: ''; position: fixed; top:0; left:0; width:100%; height:100%;
    background: radial-gradient(ellipse at center, transparent 60%, rgba(0,0,0,0.4) 100%);
    pointer-events: none; z-index: 9998;
}

::selection { background: var(--green); color: #000; }
a { color: var(--green); text-decoration: none; transition: all .15s ease; }
a:hover { color: #fff; text-shadow: 0 0 8px var(--green-glow); }
img { max-width:100%; height:auto; display:block; filter: grayscale(30%) brightness(.9); }
img:hover { filter: grayscale(0%) brightness(1); }

h1,h2,h3,h4,h5,h6 {
    font-family: 'JetBrains Mono', monospace; font-weight:700; line-height:1.25;
    color: var(--text-heading); margin-bottom:.5em;
    text-shadow: 0 0 10px var(--green-glow);
    text-transform: uppercase; letter-spacing:.05em;
}
h1{font-size:2.25rem} h2{font-size:1.75rem} h3{font-size:1.35rem} h4{font-size:1.1rem}
p { margin-bottom:1.25em; color: var(--text-secondary); }

blockquote {
    border-left:3px solid var(--green); padding:1em 1.5em; margin:1.5em 0;
    background: var(--green-subtle); color: var(--text-secondary);
}
blockquote p:last-child { margin-bottom:0; }

pre,code { font-family:'JetBrains Mono',monospace; font-size:.85rem; }
pre { background:var(--bg-terminal); border:1px solid var(--border-light); color:var(--green); padding:1.5em; overflow-x:auto; margin-bottom:1.5em; }
pre::before { content:'┌─ output ──────────────────────┐'; display:block; color:var(--text-dim); margin-bottom:.5em; font-size:.8rem; }
code { background:var(--bg-card); padding:.15em .4em; color:var(--amber); border:1px solid var(--border); }
pre code { background:none; padding:0; border:none; color:inherit; }
hr { border:none; border-top:1px dashed var(--border-light); margin:2rem 0; }

.site-container { max-width:1200px; margin:0 auto; padding:0 1.5rem; }
.content-area { display:flex; gap:3rem; padding:3rem 0; }
.site-main { flex:1; min-width:0; }
.widget-area { width:320px; flex-shrink:0; }
.page-template-full-width .content-area { display:block; }
.page-template-full-width .widget-area { display:none; }

/* SECURITY STATUS BAR */
.security-status-bar {
    background: var(--bg-deepest);
    border-bottom: 1px solid var(--border);
    padding: 0.35rem 1.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.7rem;
    color: var(--text-muted);
}
body.admin-bar .security-status-bar {
    position: fixed;
    top: 32px;
    left: 0;
    right: 0;
    z-index: 999;
}
@media screen and (max-width: 782px) {
    body.admin-bar .security-status-bar {
        top: 46px;
    }
}
.status-indicator {
    color: var(--green);
    font-weight: 700;
    text-shadow: 0 0 8px var(--green-glow);
    animation: blink 2s infinite;
}
.status-info {
    color: var(--text-dim);
    letter-spacing: 0.05em;
    font-family: 'JetBrains Mono', monospace;
}
@media(max-width: 768px) {
    .status-info { display: none; }
}

/* HEADER */
.site-header { background:rgba(0,0,0,.95); border-bottom:1px solid var(--border-light); position:sticky; top:0; z-index:1000; }
body.admin-bar .site-header { top: 32px; }
@media screen and (max-width: 782px) {
    body.admin-bar .site-header { top: 46px; }
}
.header-inner { display:flex; align-items:center; justify-content:space-between; padding:.6rem 1.5rem; max-width:1200px; margin:0 auto; }
.site-branding { display:flex; align-items:center; gap:.75rem; }
.site-branding .custom-logo { height:32px; width:auto; filter:brightness(1) grayscale(100%) sepia(100%) hue-rotate(80deg) saturate(500%); }
.site-title { font-size:1.1rem; font-weight:700; margin:0; line-height:1; letter-spacing:.1em; text-transform:uppercase; }
.site-title a { color:var(--green); text-shadow:0 0 10px var(--green-glow); }
.site-title a::before { content:'> '; color:var(--text-muted); }
.site-title a:hover { color:#fff; }
.site-description { font-size:.65rem; color:var(--text-muted); margin:0; letter-spacing:.1em; text-transform:uppercase; }

/* NAV */
.main-navigation ul { list-style:none; display:flex; gap:0; margin:0; padding:0; }
.main-navigation li { position:relative; }
.main-navigation a { display:block; padding:.4rem .75rem; color:var(--text-muted); font-size:.8rem; font-weight:500; letter-spacing:.08em; text-transform:uppercase; transition:all .15s ease; }
.main-navigation a::before { content:'['; color:var(--text-dim); transition:color .15s; }
.main-navigation a::after { content:']'; color:var(--text-dim); transition:color .15s; }
.main-navigation a:hover, .main-navigation .current-menu-item>a, .main-navigation .current_page_item>a { color:var(--green); text-shadow:0 0 8px var(--green-glow); }
.main-navigation a:hover::before, .main-navigation a:hover::after, .main-navigation .current-menu-item>a::before, .main-navigation .current-menu-item>a::after { color:var(--green-dark); }
.main-navigation ul ul { display:none; position:absolute; top:100%; left:0; background:var(--bg-deepest); border:1px solid var(--border-light); min-width:200px; padding:.25rem; flex-direction:column; z-index:100; }
.main-navigation li:hover>ul { display:flex; }

.menu-toggle { display:none; background:none; border:1px solid var(--border-light); color:var(--green); padding:.35rem .6rem; font-family:inherit; font-size:.8rem; cursor:pointer; text-transform:uppercase; letter-spacing:.1em; }
.menu-toggle:hover { border-color:var(--green); box-shadow:0 0 10px var(--green-glow); }

@media(max-width:768px) {
    .menu-toggle{display:block}
    .main-navigation ul{display:none;flex-direction:column;position:absolute;top:100%;right:0;background:var(--bg-deepest);border:1px solid var(--border-light);padding:.5rem;min-width:220px}
    .main-navigation.toggled ul{display:flex}
    .main-navigation ul ul{position:static;box-shadow:none;border:none;padding-left:1rem}
}

/* HERO */
.hero-section { background:var(--bg-terminal); color:var(--green); padding:3rem 1.5rem 3rem; text-align:left; position:relative; overflow:hidden; border-bottom:1px solid var(--border-light); }
.hero-section::before { content:'01001000 01100101 01101100 01101100 01101111 00100000 01010111 01101111 01110010 01101100 01100100 00100001 01001000 01100101 01101100 01101100 01101111 00100000 01010111 01101111 01110010 01101100 01100100 00100001'; position:absolute; top:0; left:0; right:0; bottom:0; font-family:'JetBrains Mono',monospace; font-size:.6rem; color:rgba(0,255,65,.03); word-break:break-all; line-height:1.2; overflow:hidden; pointer-events:none; padding:1rem; }
.hero-content { position:relative; z-index:1; max-width:750px; margin:0 auto; }

.hero-prompt { font-size:.75rem; color:var(--text-muted); margin-bottom:.15rem; letter-spacing:.05em; }
.hero-prompt .path { color:var(--cyan); }
.hero-prompt .dollar { color:var(--amber); }

.hero-badge { display:inline-block; font-size:.7rem; font-weight:600; color:var(--green); background:var(--green-subtle); border:1px solid var(--green-border); padding:.25rem .75rem; margin-bottom:1.25rem; letter-spacing:.15em; text-transform:uppercase; }
.hero-badge::before { content:'● '; color:var(--green); animation:blink 1.5s infinite; }

.hero-ascii { font-size:.48rem; line-height:1.05; color:var(--green); text-shadow:0 0 15px var(--green-glow); margin-bottom:1rem; white-space:pre; overflow:hidden; opacity:.85; letter-spacing:.05em; }

.hero-title { font-size:2rem; font-weight:700; margin-bottom:.15rem; color:var(--green); text-shadow:0 0 20px var(--green-glow),0 0 40px rgba(0,255,65,.15); letter-spacing:.08em; text-transform:uppercase; line-height:1.1; }

.hero-subtitle { font-size:.85rem; color:var(--text-muted); margin-bottom:1.5rem; line-height:1.7; max-width:560px; }
.hero-subtitle .cursor { display:inline-block; width:.55em; height:1em; background:var(--green); vertical-align:text-bottom; animation:blink 1s infinite; margin-left:2px; }

.hero-sysinfo { font-size:.72rem; color:var(--text-dim); margin-bottom:1.75rem; line-height:1.9; border-left:2px solid var(--border-light); padding-left:1rem; }
.hero-sysinfo .label { color:var(--amber-dim); text-transform:uppercase; }
.hero-sysinfo .value { color:var(--text-secondary); }

.hero-cta { display:inline-flex; gap:.75rem; flex-wrap:wrap; }

.btn { display:inline-flex; align-items:center; gap:.5rem; padding:.6rem 1.4rem; font-size:.78rem; font-weight:700; font-family:inherit; cursor:pointer; transition:all .2s ease; border:none; text-transform:uppercase; letter-spacing:.1em; }
.btn-primary { background:var(--green); color:#000; box-shadow:0 0 15px var(--green-glow); }
.btn-primary::before { content:'$ '; opacity:.5; }
.btn-primary:hover { color:#000; background:#33ff66; box-shadow:0 0 30px var(--green-glow),0 0 60px rgba(0,255,65,.15); transform:translateY(-1px); }
.btn-outline { background:transparent; color:var(--green); border:1px solid var(--border-bright); }
.btn-outline::before { content:'> '; opacity:.5; }
.btn-outline:hover { border-color:var(--green); box-shadow:0 0 15px rgba(0,255,65,.1); transform:translateY(-1px); }

@media(max-width:768px) { .hero-title{font-size:1.5rem} .hero-section{padding:2.5rem 1.5rem} .hero-ascii{font-size:.3rem} }

/* SECTION HEADERS */
.section-header { text-align:center; margin-bottom:2.5rem; }
.section-header h2 { font-size:1.35rem; }
.section-header h2::before { content:'// '; color:var(--text-dim); font-weight:400; }
.section-header p { max-width:500px; margin:.5rem auto 0; color:var(--text-muted); font-size:.78rem; }

/* POSTS */
.post, .page-content { background:var(--bg-card); border:1px solid var(--border); margin-bottom:1.5rem; overflow:hidden; transition:all .25s ease; position:relative; }
.post::before { content:''; position:absolute; top:0; left:0; width:3px; height:0; background:var(--green); transition:height .3s ease; box-shadow:0 0 8px var(--green-glow); }
.post:hover { border-color:var(--green-border); }
.post:hover::before { height:100%; }

.post-thumbnail { width:100%; aspect-ratio:16/9; overflow:hidden; border-bottom:1px solid var(--border); }
.post-thumbnail img { width:100%; height:100%; object-fit:cover; transition:all .4s ease; filter:grayscale(50%) brightness(.8); }
.post:hover .post-thumbnail img { filter:grayscale(0%) brightness(1); transform:scale(1.03); }

.post-content-wrap { padding:1.5rem; }

.entry-meta { display:flex; gap:.5rem; font-size:.7rem; color:var(--text-dim); margin-bottom:.5rem; flex-wrap:wrap; letter-spacing:.05em; text-transform:uppercase; }
.entry-meta a { color:var(--text-dim); }
.entry-meta a:hover { color:var(--green); }
.entry-meta .sep { color:var(--border-light); }

.entry-title { font-size:1.25rem; margin-bottom:.5rem; letter-spacing:.03em; }
.entry-title a { color:var(--text-heading); }
.entry-title a:hover { color:#fff; text-shadow:0 0 10px var(--green-glow); }
.entry-title a::before { content:'> '; color:var(--text-dim); }

.entry-content { color:var(--text-secondary); line-height:1.8; font-size:.85rem; }
.entry-content p:last-child { margin-bottom:0; }

.read-more { display:inline-flex; align-items:center; gap:.3rem; margin-top:.75rem; font-weight:600; font-size:.76rem; color:var(--green); text-transform:uppercase; letter-spacing:.1em; }
.read-more::before { content:'$ cat '; color:var(--text-dim); }
.read-more::after { content:' →'; }
.read-more:hover { color:#fff; text-shadow:0 0 8px var(--green-glow); }

.single .entry-title { font-size:2rem; }
.single .entry-content { font-size:.9rem; }

.entry-footer { padding:1rem 1.5rem; border-top:1px dashed var(--border); font-size:.72rem; color:var(--text-dim); text-transform:uppercase; letter-spacing:.05em; }
.entry-footer .cat-links, .entry-footer .tags-links { display:block; margin-bottom:.2rem; }
.entry-footer a { color:var(--amber-dim); }
.entry-footer a:hover { color:var(--amber); text-shadow:0 0 8px var(--amber-glow); }

/* PAGINATION */
.pagination,.post-navigation { padding:2rem 0; }
.pagination .nav-links { display:flex; justify-content:center; gap:.4rem; flex-wrap:wrap; }
.pagination .page-numbers { display:inline-flex; align-items:center; justify-content:center; min-width:36px; height:36px; padding:0 .4rem; background:var(--bg-card); color:var(--text-secondary); border:1px solid var(--border); font-weight:600; font-size:.8rem; font-family:inherit; transition:all .15s ease; }
.pagination .page-numbers:hover, .pagination .page-numbers.current { background:var(--green); color:#000; border-color:var(--green); box-shadow:0 0 12px var(--green-glow); }

.post-navigation .nav-links { display:flex; justify-content:space-between; gap:1rem; }
.post-navigation a { display:block; padding:1rem 1.25rem; background:var(--bg-card); border:1px solid var(--border); flex:1; transition:all .2s ease; }
.post-navigation a:hover { border-color:var(--green-border); }
.post-navigation .nav-subtitle { display:block; font-size:.65rem; color:var(--text-dim); text-transform:uppercase; letter-spacing:.15em; margin-bottom:.25rem; }
.post-navigation .nav-title { font-weight:600; color:var(--green); font-size:.85rem; }

/* SIDEBAR */
.widget { background:var(--bg-card); border:1px solid var(--border); padding:1.25rem; margin-bottom:1.25rem; }
.widget::before { content:'┌────────────────────────────────┐'; display:block; color:var(--text-dim); font-size:.55rem; margin-bottom:.5rem; overflow:hidden; }
.widget-title { font-size:.9rem; color:var(--amber); margin-bottom:.75rem; padding-bottom:.5rem; border-bottom:1px dashed var(--border-light); text-shadow:0 0 8px var(--amber-glow); letter-spacing:.1em; }
.widget-title::before { content:'# '; color:var(--text-dim); }
.widget ul { list-style:none; padding:0; }
.widget ul li { padding:.3rem 0; border-bottom:1px solid var(--border); font-size:.8rem; }
.widget ul li:last-child { border-bottom:none; }
.widget ul li a { color:var(--text-secondary); }
.widget ul li a::before { content:'├─ '; color:var(--text-dim); }
.widget ul li:last-child a::before { content:'└─ '; }
.widget ul li a:hover { color:var(--green); text-shadow:0 0 5px var(--green-glow); }

.widget_search .search-form { display:flex; }
.widget_search .search-field { flex:1; padding:.5rem .65rem; background:var(--bg-deepest); border:1px solid var(--border-light); font-size:.8rem; color:var(--green); outline:none; font-family:inherit; }
.widget_search .search-field:focus { border-color:var(--green); box-shadow:0 0 8px rgba(0,255,65,.1); }
.widget_search .search-field::placeholder { color:var(--text-dim); }
.widget_search .search-submit { padding:.5rem .75rem; background:var(--green); color:#000; border:none; cursor:pointer; font-weight:700; font-family:inherit; font-size:.8rem; }
.widget_search .search-submit:hover { background:#33ff66; box-shadow:0 0 12px var(--green-glow); }

@media(max-width:900px) { .content-area{flex-direction:column} .widget-area{width:100%} }

/* COMMENTS */
.comments-area { background:var(--bg-card); border:1px solid var(--border); padding:1.5rem; margin-top:1.5rem; }
.comments-title { font-size:1.25rem; margin-bottom:1.25rem; }
.comments-title::before { content:'// '; color:var(--text-dim); font-weight:400; }
.comment-list { list-style:none; padding:0; }
.comment-list .comment { padding:1rem 0; border-bottom:1px dashed var(--border); }
.comment-list .comment:last-child { border-bottom:none; }
.comment-author .avatar { border-radius:0; float:left; margin-right:.75rem; border:1px solid var(--border-light); filter:grayscale(100%); }
.comment-author .fn { font-weight:600; color:var(--amber); }
.comment-metadata { font-size:.7rem; color:var(--text-dim); margin-bottom:.4rem; }
.comment-content { clear:both; color:var(--text-secondary); font-size:.85rem; }
.comment-respond { margin-top:1.5rem; }
.comment-form label { display:block; font-weight:600; font-size:.78rem; margin-bottom:.25rem; color:var(--amber-dim); text-transform:uppercase; letter-spacing:.05em; }
.comment-form input[type="text"],.comment-form input[type="email"],.comment-form input[type="url"],.comment-form textarea { width:100%; padding:.55rem .75rem; background:var(--bg-deepest); border:1px solid var(--border-light); font-size:.85rem; font-family:inherit; color:var(--green); margin-bottom:.75rem; outline:none; }
.comment-form input:focus,.comment-form textarea:focus { border-color:var(--green); box-shadow:0 0 8px rgba(0,255,65,.1); }
.comment-form .form-submit .submit { background:var(--green); color:#000; padding:.6rem 1.5rem; border:none; font-size:.82rem; font-weight:700; font-family:inherit; cursor:pointer; text-transform:uppercase; letter-spacing:.1em; }
.comment-form .form-submit .submit:hover { background:#33ff66; box-shadow:0 0 15px var(--green-glow); }

/* FOOTER */
.site-footer { background:var(--bg-dark); border-top:1px solid var(--border-light); color:var(--text-dim); padding:2rem 0 0; margin-top:2rem; }
.footer-widgets { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:2rem; padding-bottom:1.5rem; border-bottom:1px dashed var(--border); }
.footer-widgets .widget { background:transparent; border:none; padding:0; }
.footer-widgets .widget::before { display:none; }
.footer-widgets .widget-title { color:var(--amber-dim); }
.footer-widgets .widget ul li a { color:var(--text-dim); }
.footer-widgets .widget ul li a:hover { color:var(--green); }
.footer-widgets .widget ul li { border-bottom-color:var(--border); }
.site-info { text-align:center; padding:1.25rem 0; font-size:.7rem; color:var(--text-dim); letter-spacing:.1em; text-transform:uppercase; }
.site-info a { color:var(--green-dark); }
.site-info a:hover { color:var(--green); }

/* 404 */
.error-404 { text-align:center; padding:4rem 1.5rem; }
.error-404 .page-title { font-size:5rem; color:var(--red); text-shadow:0 0 20px var(--red-glow); margin-bottom:.25rem; }
.error-404 p { font-size:.9rem; color:var(--text-muted); }

/* A11Y */
.screen-reader-text { border:0; clip:rect(1px,1px,1px,1px); clip-path:inset(50%); height:1px; margin:-1px; overflow:hidden; padding:0; position:absolute!important; width:1px; word-wrap:normal!important; }
.screen-reader-text:focus { background:var(--bg-elevated); box-shadow:0 0 2px 2px var(--green-glow); clip:auto!important; clip-path:none; color:var(--green); display:block; font-size:.8rem; font-weight:700; height:auto; left:5px; padding:12px 20px; top:5px; width:auto; z-index:100000; }

.alignleft{float:left;margin:.5em 1.5em .5em 0} .alignright{float:right;margin:.5em 0 .5em 1.5em} .aligncenter{display:block;margin-left:auto;margin-right:auto;clear:both}
.wp-caption{max-width:100%;margin-bottom:1.5em} .wp-caption-text{font-size:.75rem;color:var(--text-dim);text-align:center;padding:.5em 0}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem;margin-bottom:1.5em}
.gallery-item{margin:0} .gallery-item img{border:1px solid var(--border)}

::-webkit-scrollbar{width:6px} ::-webkit-scrollbar-track{background:var(--bg-deepest)} ::-webkit-scrollbar-thumb{background:var(--text-dim)} ::-webkit-scrollbar-thumb:hover{background:var(--green)}
.clearfix::after{content:'';display:table;clear:both}

@media print { .site-header,.site-footer,.widget-area,.comments-area,.post-navigation{display:none} body,body::before,body::after{background:#fff;color:#000;animation:none} }
