@import url('https://fonts.googleapis.com/css2?family=VT323&display=swap');
*{margin:0;padding:0;box-sizing:border-box;}
body{background-color:var(--bg,#0b0b0b);color:var(--text,#ccc);font-family:var(--font,"Courier New",monospace);line-height:1.7;}
body::after{content:'';position:fixed;inset:0;background:repeating-linear-gradient(to bottom,transparent 0px,transparent 3px,rgba(0,0,0,0.04) 3px,rgba(0,0,0,0.04) 4px);pointer-events:none;z-index:9999;}
a{color:#aec6cf;text-decoration:none;}a:hover{text-decoration:underline;}

/* layouts */
.layout-wide .page{max-width:1100px;}
.layout-full .page{max-width:100%;padding:0 40px;}

.topnav{max-width:860px;margin:0 auto;padding:20px;border-bottom:1px solid #222;margin-bottom:40px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;}
.layout-wide .topnav{max-width:1100px;}
.layout-full .topnav{max-width:100%;padding:20px 40px;}
.nav-links a,.nav-right a{margin-right:14px;font-size:14px;}
.admin-link{color:#333!important;font-size:12px!important;}
.page{max-width:860px;margin:0 auto;padding:0 20px 60px;}

h1.glitch{color:var(--accent2,#ffcc99);font-size:28px;text-shadow:0 0 5px var(--accent,#0ff);position:relative;display:inline-block;}
h1.glitch .g{position:absolute;top:0;left:0;color:var(--accent,#0ff);clip-path:inset(0 0 100% 0);animation:gl 5s infinite;pointer-events:none;}
@keyframes gl{0%,93%,100%{clip-path:inset(0 0 100% 0);}94%{clip-path:inset(15% 0 50% 0);transform:translateX(-3px);}95%{clip-path:inset(55% 0 10% 0);transform:translateX(2px);}96%{clip-path:inset(35% 0 30% 0);transform:translateX(-1px);}}
.subtitle{color:#888;font-size:16px;font-weight:normal;margin-top:-10px;margin-bottom:30px;}

.intro{display:flex;gap:20px;align-items:flex-start;margin-bottom:40px;}
.intro-text{flex:1;}.intro-text p{margin-bottom:12px;}
.intro img{max-width:180px;border:2px solid #222;box-shadow:0 0 8px #111;}

.card{margin-bottom:30px;border-left:2px solid #222;padding-left:15px;}
.card:hover{border-color:var(--accent,#0ff);}
.card img,.card video{max-width:100%;display:block;margin-top:10px;border:1px solid #222;}
.card h3{margin:0;color:var(--accent,#0ff);font-size:16px;}
.card .meta{color:#444;font-size:12px;margin:2px 0;}
.card p,.card .desc{color:#888;font-size:14px;}

.updates{border:1px solid #1a1a1a;padding:12px;margin-bottom:30px;}
.updates h3{color:#555;font-size:13px;margin-bottom:8px;}
.update-item{padding:6px 0;border-bottom:1px solid #111;font-size:13px;}
.update-item:last-child{border:none;}
.update-item .update-time{color:#333;font-size:11px;}
.update-item img{max-width:120px;border:1px solid #222;margin-top:4px;display:block;}

.now-box{border:1px dashed #222;padding:12px;margin-bottom:30px;color:#666;font-size:13px;}
.now-box strong{color:var(--accent2,#ffcc99);}

.section{margin-top:40px;padding-top:20px;border-top:1px solid #222;}
.section-title{color:#888;font-size:16px;font-weight:normal;margin-bottom:20px;}

.blog-filters{margin-bottom:16px;font-size:12px;color:#555;}
.blog-filters a{margin-right:10px;}.blog-filters a.active{color:var(--accent,#0ff);}

.post-header{margin-bottom:30px;}
.post-meta{color:#444;font-size:12px;margin-bottom:12px;}.post-meta .tag{color:var(--accent,#0ff);}
.post-cover{max-width:100%;border:1px solid #222;margin-bottom:20px;}
.post-body{line-height:1.8;}
.post-body h1,.post-body h2,.post-body h3{color:var(--accent2,#ffcc99);margin:20px 0 10px;}
.post-body h2{font-size:18px;}.post-body h3{font-size:16px;}
.post-body p{margin-bottom:12px;}
.post-body img{max-width:100%;border:1px solid #222;margin:10px 0;}
.post-body code{background:#111;padding:2px 5px;font-size:13px;color:#0f0;}
.post-body pre{background:#111;padding:12px;overflow-x:auto;margin:12px 0;border:1px solid #1a1a1a;}
.post-body pre code{background:none;padding:0;}
.post-body blockquote{border-left:2px solid #333;padding-left:12px;color:#888;margin:12px 0;}
.post-body a{color:var(--accent,#0ff);}
.post-nav{display:flex;justify-content:space-between;margin-top:40px;padding-top:20px;border-top:1px solid #222;font-size:13px;}
.post-nav a{color:#555;}

.filters{margin-bottom:20px;font-size:12px;color:#555;}
.filters button{background:none;border:1px solid #222;color:#555;padding:3px 10px;font-family:monospace;font-size:12px;cursor:pointer;margin-right:4px;}
.filters button.on{color:var(--accent,#0ff);border-color:var(--accent,#0ff);}
.filters button:hover{color:var(--accent,#0ff);}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;padding-top:20px;border-top:1px solid #222;}
.grid-item{border-left:2px solid #222;padding-left:12px;}
.grid-item:hover{border-color:var(--accent,#0ff);}
.grid-item img,.grid-item video{width:100%;max-width:200px;height:auto;display:block;margin:8px 0;border:1px solid #222;cursor:pointer;}
.grid-item h3{margin:0;color:var(--accent,#0ff);font-size:16px;}
.grid-item p{font-size:13px;color:#666;}

.lb{position:fixed;inset:0;background:rgba(0,0,0,0.92);z-index:9998;display:none;align-items:center;justify-content:center;flex-direction:column;gap:10px;}
.lb.on{display:flex;}
.lb img,.lb video{max-width:90vw;max-height:80vh;border:2px solid #222;box-shadow:0 0 15px var(--accent,#0ff);}
.lb-title{color:var(--accent,#0ff);font-size:16px;}
.lb-desc{color:#555;font-size:13px;}
.lb-close{position:absolute;top:14px;right:20px;color:#444;font-size:22px;cursor:pointer;}.lb-close:hover{color:#f33;}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);font-size:30px;color:#333;cursor:pointer;padding:20px;user-select:none;}.lb-nav:hover{color:var(--accent,#0ff);}
.lb-prev{left:0;}.lb-next{right:0;}

.entry{border-left:2px solid #222;padding-left:20px;margin-bottom:40px;}
.entry:hover{border-color:#944;}
.entry .date{font-family:'VT323',monospace;font-size:13px;color:#444;}
.entry .title{color:#944;font-weight:bold;margin-bottom:4px;}
.entry .desc{color:#888;font-size:14px;margin-bottom:8px;}
.entry img{max-width:100%;border:1px solid #222;margin-top:8px;}
.entry audio{display:block;margin-top:8px;max-width:400px;}
.entry .entry-link{font-size:13px;}
.entry.classified .desc{color:#111;background:#111;padding:1px 3px;cursor:pointer;user-select:none;}
.entry.classified:hover .desc,.entry.classified .desc.revealed{color:#888;background:transparent;}
.entry.corrupt{border-left-style:dashed;}.entry.corrupt .title{color:#555;}

/* links page */
.link-category{margin-bottom:30px;}
.link-cat-title{color:var(--accent2,#ffcc99);font-size:16px;border-bottom:1px solid #222;padding-bottom:4px;margin-bottom:12px;}
.link-item{border-left:2px solid #222;padding-left:14px;margin-bottom:16px;}
.link-item:hover{border-color:var(--accent,#0ff);}
.link-title{color:var(--accent,#0ff);font-size:15px;}
.link-url{color:#333;font-size:11px;display:block;}
.link-desc{color:#666;font-size:13px;margin-top:4px;}

.gb-form{margin-bottom:30px;}
.gb-form input,.gb-form textarea{display:block;width:100%;max-width:400px;background:#111;border:1px solid #222;color:#ccc;padding:8px;font-family:monospace;font-size:14px;margin-bottom:8px;}
.gb-form textarea{min-height:80px;resize:vertical;max-width:500px;}
.gb-form input:focus,.gb-form textarea:focus{border-color:var(--accent,#0ff);outline:none;}
.gb-form button{background:#111;border:1px solid #222;color:var(--accent,#0ff);padding:8px 20px;font-family:monospace;cursor:pointer;}
.gb-form button:hover{border-color:var(--accent,#0ff);}
.gb-entry{border-left:2px solid #222;padding-left:14px;margin-bottom:20px;}
.gb-entry:hover{border-color:var(--accent,#0ff);}
.gb-name{color:var(--accent,#0ff);font-size:14px;}.gb-date{color:#333;font-size:11px;}
.gb-msg{color:#888;font-size:14px;margin-top:4px;}
.gb-submitted{color:#0f0;font-size:14px;margin-bottom:20px;}

.custom-page-body{line-height:1.8;}
.custom-page-body h1,.custom-page-body h2,.custom-page-body h3{color:var(--accent2,#ffcc99);margin:20px 0 10px;}
.custom-page-body p{margin-bottom:12px;}
.custom-page-body img{max-width:100%;border:1px solid #222;margin:10px 0;}
.custom-page-body code{background:#111;padding:2px 5px;color:#0f0;}
.custom-page-body pre{background:#111;padding:12px;overflow-x:auto;margin:12px 0;}
.custom-page-body a{color:var(--accent,#0ff);}

.hp{position:absolute;left:-9999px;}

/* search page */
.search-form{display:flex;gap:6px;margin:16px 0 20px;}
.search-form input{flex:1;background:#111;border:1px solid #222;color:#ccc;padding:10px;font-family:monospace;font-size:14px;}
.search-form input:focus{border-color:var(--accent,#0ff);outline:none;}
.search-form button{background:#111;border:1px solid #222;color:var(--accent,#0ff);padding:10px 20px;font-family:monospace;cursor:pointer;}
.search-form button:hover{border-color:var(--accent,#0ff);}
.search-meta{color:#555;font-size:13px;margin-bottom:16px;}
.search-result{border-left:2px solid #222;padding-left:14px;margin-bottom:16px;}
.search-result:hover{border-color:var(--accent,#0ff);}
.sr-title{color:var(--accent,#0ff);font-size:15px;text-decoration:none;}
.sr-title:hover{text-decoration:underline;}
.sr-source{color:#333;font-size:10px;background:#111;border:1px solid #1a1a1a;padding:1px 5px;margin-left:6px;}
.sr-snippet{color:#888;font-size:13px;margin-top:4px;}

/* comments */
.comments-section{margin-top:40px;padding-top:20px;border-top:1px solid #222;}
.comments-heading{color:var(--accent2,#ffcc99);font-size:16px;margin-bottom:16px;}
.comment{border-left:2px solid #222;padding-left:14px;margin-bottom:16px;}
.comment:hover{border-color:var(--accent,#0ff);}
.comment-header{display:flex;gap:8px;align-items:baseline;margin-bottom:4px;}
.comment-name{color:var(--accent,#0ff);font-size:14px;}
.comment-name a{color:var(--accent,#0ff);}
.comment-date{color:#333;font-size:11px;}
.comment-body{color:#888;font-size:14px;line-height:1.6;white-space:pre-wrap;}
.comment-form{margin-top:24px;border-top:1px solid #1a1a1a;padding-top:16px;}
.comment-form input,.comment-form textarea{display:block;width:100%;max-width:500px;background:#111;border:1px solid #222;color:#ccc;padding:8px;font-family:monospace;font-size:14px;margin-bottom:8px;}
.comment-form textarea{min-height:80px;resize:vertical;}
.comment-form input:focus,.comment-form textarea:focus{border-color:var(--accent,#0ff);outline:none;}
.comment-form button{background:#111;border:1px solid #222;color:var(--accent,#0ff);padding:8px 20px;font-family:monospace;cursor:pointer;}
.comment-form button:hover{border-color:var(--accent,#0ff);}

/* /now page */
.now-body{line-height:1.8;}
.now-body h1,.now-body h2,.now-body h3{color:var(--accent2,#ffcc99);margin:20px 0 10px;}
.now-body p{margin-bottom:12px;}
.now-body ul,.now-body ol{margin:8px 0 12px 20px;color:#888;}
.now-body li{margin-bottom:4px;}
.now-body a{color:var(--accent,#0ff);}
.now-body code{background:#111;padding:2px 5px;color:#0f0;}

/* timeline */
.timeline{position:relative;padding-left:30px;border-left:2px solid #222;}
.tl-entry{position:relative;margin-bottom:30px;padding-left:15px;border-left:2px solid var(--accent,#0ff);margin-left:-2px;}
.tl-icon{position:absolute;left:-24px;top:0;font-size:16px;background:var(--bg,#0b0b0b);padding:2px;}
.tl-date{color:#444;font-size:12px;font-family:'VT323',monospace;}
.tl-title{color:var(--accent,#0ff);font-size:16px;margin:4px 0;}
.tl-body{color:#888;font-size:14px;line-height:1.6;}
.tl-body p{margin-bottom:8px;}

/* changelog */
.cl-entry{border-left:2px solid #222;padding-left:15px;margin-bottom:24px;}
.cl-entry:hover{border-color:var(--accent,#0ff);}
.cl-header{display:flex;gap:8px;align-items:center;margin-bottom:4px;}
.cl-tag{font-size:10px;padding:2px 6px;border:1px solid #333;color:#888;text-transform:uppercase;}
.cl-tag-added{color:#0f0;border-color:#0f0;}.cl-tag-fixed{color:#0ff;border-color:#0ff;}
.cl-tag-changed{color:#ff0;border-color:#ff0;}.cl-tag-removed{color:#f33;border-color:#f33;}
.cl-tag-security{color:#f0f;border-color:#f0f;}
.cl-version{color:var(--accent2,#ffcc99);font-size:14px;font-weight:bold;}
.cl-date{color:#444;font-size:12px;}
.cl-title{color:var(--accent,#0ff);font-size:15px;}
.cl-body{color:#888;font-size:13px;line-height:1.6;margin-top:4px;}
.cl-body p{margin-bottom:6px;}

/* showcase */
.sc-entry{display:flex;gap:20px;margin-bottom:40px;border-left:2px solid #222;padding-left:15px;align-items:flex-start;}
.sc-entry:hover{border-color:var(--accent,#0ff);}
.sc-media{max-width:400px;width:100%;border:1px solid #222;}
.sc-info{flex:1;}
.sc-title{color:var(--accent,#0ff);font-size:18px;margin:0 0 4px;}
.sc-tags{color:#444;font-size:11px;margin-bottom:8px;}
.sc-desc{color:#888;font-size:14px;line-height:1.6;}.sc-desc p{margin-bottom:8px;}
.sc-link{font-size:13px;color:var(--accent2,#ffcc99);}

/* board */
.board-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;}
.board-pin{background:#111;border:1px solid #222;padding:8px;break-inside:avoid;}
.board-pin:hover{border-color:var(--accent,#0ff);}
.board-pin img{width:100%;height:auto;border:1px solid #1a1a1a;margin-bottom:6px;}
.board-title{color:var(--accent,#0ff);font-size:14px;}
.board-note{color:#888;font-size:12px;margin-top:4px;}
.board-link{color:var(--accent2,#ffcc99);font-size:12px;}

footer{max-width:860px;margin:0 auto;padding:20px;font-size:13px;color:#444;text-align:center;}

/* hit counter */
.hit-counter{text-align:center;margin:30px 0;padding:10px 0;border-top:1px solid #111;}
.hc-label{color:#333;font-size:11px;font-family:'VT323',monospace;margin-right:6px;}
.hc-digits{display:inline-flex;gap:2px;}
.hc-digit{background:#000;border:1px solid #222;color:#0f0;font-family:'VT323',monospace;font-size:18px;width:20px;text-align:center;padding:2px 0;text-shadow:0 0 4px #0f0;}

/* easter egg overlay */
.egg-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.92);z-index:10000;display:flex;align-items:center;justify-content:center;}
.egg-overlay-close{position:absolute;top:14px;right:20px;color:#555;font-size:20px;cursor:pointer;z-index:10001;}.egg-overlay-close:hover{color:#f33;}

/* easter egg confetti */
.egg-confetti{position:fixed;top:-10px;width:8px;height:8px;z-index:10002;animation:confetti-fall linear forwards;pointer-events:none;}
@keyframes confetti-fall{0%{transform:translateY(0) rotate(0deg);opacity:1;}100%{transform:translateY(100vh) rotate(720deg);opacity:0;}}

/* easter egg glitch */
.egg-glitch{animation:egg-gl 0.15s infinite;}
@keyframes egg-gl{0%{transform:translate(0);}25%{transform:translate(-3px,2px);}50%{transform:translate(3px,-2px);}75%{transform:translate(-1px,-3px);}100%{transform:translate(0);}}
@media(max-width:640px){.intro{flex-direction:column-reverse;align-items:center;}.intro img{max-width:140px;}.grid{grid-template-columns:1fr 1fr;gap:12px;}.topnav{flex-direction:column;}.sc-entry{flex-direction:column;}.sc-media{max-width:100%;}.board-grid{grid-template-columns:1fr 1fr;}}
