/*
Theme Name: Low Signal
Theme URI: https://lowsignal.example
Author: Sasha Klein
Description: Terminal-feed blog theme. Dark, monospace, violet/magenta. Dispatches from le marais perdu.
Version: 1.0.0
Requires at least: 6.0
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: low-signal
Tags: blog, dark, one-column, right-sidebar
*/

/* ---------- reset / base ---------- */
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: #060609;
  color: #b8b8cc;
  font-family: 'JetBrains Mono', ui-monospace, Menlo, Consolas, monospace;
  font-size: 14px;
  line-height: 1.75;
}
img { max-width: 100%; height: auto; }
a { color: #c084fc; text-decoration: none; }
a:hover { color: #d4a9ff; text-decoration: underline; }

.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  position: absolute !important;
  width: 1px; height: 1px; overflow: hidden;
}

/* ---------- shell ---------- */
.ls-viewport { display: flex; justify-content: center; padding: 48px 24px; }
.ls-shell {
  width: 1120px;
  max-width: 100%;
  background: #0b0b14;
  border: 1px solid #232338;
}

/* ---------- window chrome ---------- */
.ls-chrome {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 20px;
  border-bottom: 1px solid #232338;
  background: #0e0e19;
  font-size: 12px; color: #6b6b85;
}
.ls-chrome-status {
  display: flex; align-items: center; gap: 8px;
  font-size: 11px; letter-spacing: 0.12em; color: #7ef0c0;
}
.ls-chrome-status::before {
  content: ""; width: 7px; height: 7px; border-radius: 50%;
  background: #7ef0c0; display: inline-block;
}

/* ---------- masthead ---------- */
.ls-masthead { padding: 44px 48px 36px; border-bottom: 1px solid #232338; }
.ls-title {
  margin: 0;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 64px; font-weight: 700; letter-spacing: -0.02em;
  color: #f2f2fa; line-height: 1;
}
.ls-title a { color: #f2f2fa; text-decoration: none; }
.ls-title .ls-caret { color: #e83e9c; }
.ls-tagline { margin-top: 14px; font-size: 14px; color: #8a8aa3; }
.ls-tagline .ls-author { color: #c084fc; }

/* nav */
.ls-nav { margin-top: 24px; }
.ls-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 28px; }
.ls-nav a {
  font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase;
  color: #6b6b85; padding-bottom: 4px; text-decoration: none;
}
.ls-nav a:hover,
.ls-nav .current-menu-item > a,
.ls-nav .current_page_item > a {
  color: #c084fc; border-bottom: 1px solid #c084fc;
}

/* ---------- layout ---------- */
.ls-body { display: grid; grid-template-columns: 1fr 280px; }
.ls-feed {
  padding: 40px 48px;
  border-right: 1px solid #232338;
  display: flex; flex-direction: column; gap: 44px;
  min-width: 0;
}
@media (max-width: 900px) {
  .ls-body { grid-template-columns: 1fr; }
  .ls-feed { border-right: none; }
  .ls-title { font-size: 40px; }
  .ls-masthead, .ls-feed { padding-left: 24px; padding-right: 24px; }
}

/* ---------- posts ---------- */
.ls-post { display: flex; flex-direction: column; gap: 12px; }
.ls-post + .ls-post { border-top: 1px dashed #2c2c45; padding-top: 44px; }

.ls-post-meta {
  display: flex; flex-wrap: wrap; gap: 16px;
  font-size: 12px; color: #6b6b85;
}
.ls-post-meta .ls-log-id { color: #c084fc; }
.ls-post-meta .ls-tags a { color: #e83e9c; margin-right: 10px; }

.ls-post-title {
  margin: 0;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 26px; font-weight: 700; color: #f2f2fa;
  line-height: 1.25;
}
.ls-post-title a { color: #f2f2fa; text-decoration: none; }
.ls-post-title a:hover { color: #c084fc; }

.ls-post-content p { margin: 0 0 14px; font-size: 14px; line-height: 1.75; color: #b8b8cc; }
.ls-post-content p:last-child { margin-bottom: 0; }
.ls-post-content h2, .ls-post-content h3 {
  font-family: 'Space Grotesk', sans-serif; color: #f2f2fa; margin: 24px 0 10px;
}
.ls-post-content blockquote {
  margin: 0 0 14px; padding: 12px 20px;
  border-left: 2px solid #c084fc; color: #8a8aa3; font-style: italic;
}
.ls-post-content pre, .ls-post-content code {
  background: #101020; border: 1px solid #2c2c45; color: #7ef0c0;
}
.ls-post-content code { padding: 1px 6px; font-size: 13px; }
.ls-post-content pre { padding: 16px 20px; overflow-x: auto; }
.ls-post-content img { border: 1px solid #2c2c45; }

.ls-post-footer { font-size: 12px; color: #6b6b85; }
.ls-post-footer a { color: #6b6b85; }
.ls-post-footer a:hover { color: #b8b8cc; }

/* pinned */
.ls-pin {
  font-size: 10px; letter-spacing: 0.14em; color: #7ef0c0;
  border: 1px solid rgba(126, 240, 192, 0.35); padding: 2px 8px;
}

/* corrupted / redacted posts: tag a post "redacted" */
.ls-post.tag-redacted {
  background: linear-gradient(180deg, rgba(232,62,156,0.06), rgba(192,132,252,0.03));
  border: 1px solid rgba(232,62,156,0.25);
  padding: 24px; margin: 0 -24px;
}
.ls-post.tag-redacted + .ls-post { border-top: none; }
.ls-post.tag-redacted .ls-log-id,
.ls-post.tag-redacted .ls-post-meta time { color: #e83e9c; }
.ls-post.tag-redacted .ls-post-content p { color: #8a8aa3; }
.ls-post.tag-redacted .ls-post-content em { color: #e83e9c; }

/* pagination */
.ls-pagination {
  display: flex; justify-content: center; gap: 24px;
  padding-top: 8px; font-size: 12px;
}
.ls-pagination a, .ls-pagination > span {
  color: #c084fc; border: 1px solid #2c2c45; padding: 8px 20px; text-decoration: none;
}
.ls-pagination a:hover { border-color: #55556e; text-decoration: none; }
.ls-pagination .ls-disabled { color: #55556e; border-color: #232338; }

/* ---------- sidebar ---------- */
.ls-sidebar {
  padding: 40px 28px;
  display: flex; flex-direction: column; gap: 36px;
}
.ls-widget { display: flex; flex-direction: column; gap: 10px; }
.ls-widget-title, .ls-sidebar .widget-title {
  margin: 0;
  font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
  color: #c084fc; font-weight: 400;
}
.ls-widget-title::before, .ls-sidebar .widget-title::before { content: "// "; }
.ls-widget p, .ls-sidebar .widget p { margin: 0; font-size: 13px; line-height: 1.7; color: #8a8aa3; }
.ls-sidebar ul { list-style: none; margin: 0; padding: 0; font-size: 12px; line-height: 2.1; }
.ls-sidebar ul a { color: #b8b8cc; }

/* tag cloud */
.ls-sidebar .wp-block-tag-cloud a, .ls-sidebar .tagcloud a, .ls-tagrow a {
  display: inline-block;
  font-size: 11px !important; color: #b8b8cc;
  border: 1px solid #2c2c45; padding: 4px 10px; margin: 0 6px 8px 0;
  text-decoration: none;
}
.ls-tagrow a.ls-tag-hot { color: #e83e9c; border-color: rgba(232,62,156,0.4); }

/* status block */
.ls-status { font-size: 12px; line-height: 2; color: #8a8aa3; }
.ls-status .ls-alert { color: #e83e9c; }

/* boxed widget (guestbook / now playing style) */
.ls-boxed { border: 1px solid #2c2c45; padding: 14px 16px; font-size: 12px; line-height: 1.6; }

/* whoami avatar */
.ls-avatar img { display: block; width: 100%; height: auto; border: 1px solid #2c2c45; }
.ls-avatar-empty {
  height: 180px;
  background: repeating-linear-gradient(45deg, #16162a 0px, #16162a 10px, #101020 10px, #101020 20px);
  border: 1px solid #2c2c45;
  display: flex; align-items: center; justify-content: center;
}
.ls-avatar-empty span {
  font-size: 11px; color: #6b6b85;
  background: #0b0b14; padding: 5px 10px; border: 1px solid #2c2c45;
}

/* now playing */
.ls-nowplaying { display: flex; flex-direction: column; gap: 6px; }
.ls-np-track { font-size: 12px; color: #f2f2fa; }
.ls-np-sub { font-size: 11px; color: #6b6b85; }
.ls-eq { display: flex; gap: 2px; align-items: flex-end; height: 18px; margin-top: 4px; }
.ls-eq span { width: 4px; background: #c084fc; display: inline-block; }
.ls-eq .ls-eq-hot { background: #e83e9c; }

/* guestbook */
.ls-guestbook { display: flex; flex-direction: column; gap: 12px; }
.ls-gb-name { color: #b8b8cc; }
.ls-gb-msg { color: #8a8aa3; }
.ls-gb-glitch { color: #e83e9c; }
.ls-gb-em { font-style: italic; }

/* ---------- comments ---------- */
.ls-comments { display: flex; flex-direction: column; gap: 24px; }
.ls-comments-title {
  font-family: 'Space Grotesk', sans-serif; font-size: 20px;
  color: #f2f2fa; margin: 0;
}
.ls-comment-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 18px; }
.ls-comment-list .comment-body {
  border: 1px solid #2c2c45; padding: 16px 20px; font-size: 13px;
}
.ls-comment-list .comment-author { color: #f2f2fa; font-weight: 700; }
.ls-comment-list .comment-metadata { font-size: 11px; }
.ls-comment-list .comment-metadata a { color: #55556e; }
.ls-comment-list .children { list-style: none; margin: 12px 0 0; padding-left: 24px; }
.comment-reply-link { font-size: 11px; color: #c084fc; }

/* comment form */
.comment-form label { display: block; font-size: 11px; letter-spacing: 0.18em; color: #c084fc; margin-bottom: 6px; text-transform: uppercase; }
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
  width: 100%;
  background: #101020; border: 1px solid #2c2c45; color: #f2f2fa;
  font-family: inherit; font-size: 14px; padding: 12px 16px; outline: none;
}
.comment-form input:focus, .comment-form textarea:focus { border-color: #c084fc; }
.comment-form .submit, .ls-button {
  background: #c084fc; border: none; color: #0a0a12;
  font-family: inherit; font-size: 13px; font-weight: 700; letter-spacing: 0.12em;
  padding: 14px 28px; cursor: pointer;
}
.comment-form .submit:hover, .ls-button:hover { background: #d4a9ff; }

/* ---------- footer ---------- */
.ls-footer {
  padding: 18px 48px; border-top: 1px solid #232338;
  display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between;
  font-size: 11px; color: #55556e;
}
.ls-footer a { color: #55556e; }

/* ---------- misc wp compat ---------- */
.alignleft { float: left; margin: 0 20px 12px 0; }
.alignright { float: right; margin: 0 0 12px 20px; }
.aligncenter { display: block; margin: 0 auto; }
.wp-caption { max-width: 100%; }
.wp-caption-text { font-size: 11px; color: #6b6b85; }
.sticky {} .bypostauthor {}
