/* ==================================
   Shibuya Syntax Highlighting Theme
   ================================== */

img, a {
  -webkit-user-drag: none;
  -khtml-user-drag: none;
  -moz-user-drag: none;
  -o-user-drag: none;
  user-drag: none;
}

:root {
  --first-tone: #69ADFF;
  --second-tone: #FF1778;
  --comment: #666B88;
}

/* Keywords — #FF1778 pink */
.chroma .k  { color: #FF1778; font-weight: bold; }
.chroma .kc { color: #FF1778; }
.chroma .kd { color: #FF1778; }
.chroma .kn { color: #FF1778; }
.chroma .kp { color: #FF1778; }
.chroma .kr { color: #FF1778; }
.chroma .kt { color: #00DBB2; }

/* Names — mostly #C7CCD4 foreground */
.chroma .n  { color: #C7CCD4; }
.chroma .na { color: #C7CCD4; }
.chroma .nb { color: #00DBB2; }
.chroma .bp { color: #C7CCD4; }
.chroma .nc { color: #00DBB2; }
.chroma .no { color: #00DBB2; }
.chroma .nd { color: #00DBB2; }
.chroma .ni { color: #C7CCD4; }
.chroma .ne { color: #00DBB2; }
.chroma .nf { color: #69ADFF; }
.chroma .fm { color: #69ADFF; }
.chroma .nl { color: #C7CCD4; }
.chroma .nn { color: #00DBB2; }
.chroma .nx { color: #C7CCD4; }
.chroma .py { color: #C7CCD4; }
.chroma .nt { color: #00DBB2; }
.chroma .nv { color: #C7CCD4; }
.chroma .vc { color: #C7CCD4; }
.chroma .vg { color: #C7CCD4; }
.chroma .vi { color: #C7CCD4; }
.chroma .vm { color: #C7CCD4; }

/* Strings — #9ECE6A green */
.chroma .s  { color: #9ECE6A; }
.chroma .sa { color: #9ECE6A; }
.chroma .sb { color: #9ECE6A; }
.chroma .sc { color: #9ECE6A; }
.chroma .dl { color: #9ECE6A; }
.chroma .sd { color: #666B88; font-style: italic; }
.chroma .s2 { color: #9ECE6A; }
.chroma .se { color: #FF1778; }
.chroma .sh { color: #9ECE6A; }
.chroma .si { color: #69ADFF; }
.chroma .sx { color: #9ECE6A; }
.chroma .sr { color: #69ADFF; }
.chroma .s1 { color: #9ECE6A; }
.chroma .ss { color: #9ECE6A; }

/* Numbers — #FF1778 pink */
.chroma .m  { color: #FF1778; }
.chroma .mb { color: #FF1778; }
.chroma .mf { color: #FF1778; }
.chroma .mh { color: #FF1778; }
.chroma .mi { color: #FF1778; }
.chroma .il { color: #FF1778; }
.chroma .mo { color: #FF1778; }

/* Operators & Punctuation — #666B88 dim */
.chroma .o  { color: #666B88; }
.chroma .ow { color: #FF1778; }
.chroma .p  { color: #666B88; }

/* Comments — #666B88 dim italic */
.chroma .c  { color: #666B88; font-style: italic; }
.chroma .ch { color: #666B88; font-style: italic; }
.chroma .cm { color: #666B88; font-style: italic; }
.chroma .c1 { color: #666B88; font-style: italic; }
.chroma .cs { color: #666B88; font-style: italic; }
.chroma .cp { color: #00DBB2; }
.chroma .cpf { color: #666B88; }

/* Generic */
.chroma .gd { color: #FF1778; }
.chroma .gi { color: #9ECE6A; }
.chroma .ge { font-style: italic; }
.chroma .gs { font-weight: bold; }
.chroma .gr { color: #FF1778; }

/* Error */
.chroma .err { color: #FF1778; }

/* ======================
   Spoiler / Reveal Boxes
   ====================== */

.spoiler {
  display: inline;
  padding: 0.15rem 0.5rem;
  border-radius: 4px;
  background: var(--accent, #ff1778);
  cursor: pointer;
  user-select: none;
  transition: background 0.25s ease;
  font-family: monospace;
  font-size: 0.95em;
}

.spoiler-tag {
  color: #0c0d12;
  font-weight: 700;
  font-size: 0.8em;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-right: 0.3rem;
}

.spoiler-text {
  color: transparent;
  font-size: 0;
  transition: color 0.25s ease, font-size 0.15s ease;
}

.spoiler:hover {
  background: color-mix(in srgb, var(--accent, #ff1778) 80%, white);
}

.spoiler.revealed {
  background: rgba(158, 206, 106, 0.1);
}

.spoiler.revealed .spoiler-tag {
  color: var(--accent, #ff1778);
  margin-right: 0.5rem;
}

.spoiler.revealed .spoiler-text {
  color: #9ECE6A;
  font-size: 0.95em;
}

.spoiler.revealed:hover {
  background: rgba(158, 206, 106, 0.15);
}

/* ======================
   HTB Machine Info Card
   ====================== */

.htb-machine-link {
  text-decoration: none;
  color: inherit;
  display: block;
}

.htb-machine-link:hover .htb-machine-info {
  border-color: rgba(255, 255, 255, 0.12);
  box-shadow: 0 4px 28px rgba(0, 0, 0, 0.4);
}

.htb-machine-info {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  padding: .25rem 1.5rem;
  margin-bottom: 2rem;
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(17, 19, 26, 0.95), rgba(30, 34, 48, 0.85));
  border: 1px solid rgba(255, 255, 255, 0.06);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3);
  transition: border-color 0.2s, box-shadow 0.2s;
}

.htb-machine-image {
  flex-shrink: 0;
}

.htb-machine-image img {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid var(--accent, #ff1778);
  background: rgba(0, 0, 0, 0.3);
  padding:0px;
}

.htb-machine-placeholder {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  border: 3px solid var(--accent, #ff1778);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  font-size: 1rem;
  color: var(--accent, #ff1778);
  background: rgba(0, 0, 0, 0.3);
}

.htb-machine-details {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.htb-machine-name {
  margin: 0;
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--foreground, #c7ccd4);
  letter-spacing: 0.01em;
  border: none;
  padding: 0;
}

.htb-machine-meta {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.95rem;
  color: rgba(199, 204, 212, 0.7);
}

.htb-difficulty {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.htb-difficulty-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
}

/* HTB difficulty colors */
.htb-difficulty-dot.htb-easy {
  background-color: #4caf50;
  box-shadow: 0 0 6px rgba(76, 175, 80, 0.5);
}

.htb-difficulty-dot.htb-medium {
  background-color: #ff9800;
  box-shadow: 0 0 6px rgba(255, 152, 0, 0.5);
}

.htb-difficulty-dot.htb-hard {
  background-color: #f44336;
  box-shadow: 0 0 6px rgba(244, 67, 54, 0.5);
}

.htb-difficulty-dot.htb-insane {
  background-color: #9b59b6;
  box-shadow: 0 0 6px rgba(155, 89, 182, 0.5);
}

.htb-os-separator {
  color: rgba(199, 204, 212, 0.4);
}

.htb-machine-author {
  font-size: 0.85rem;
  color: rgba(199, 204, 212, 0.5);
  margin-top: 0.15rem;
}

/* Responsive */
@media (max-width: 480px) {
  .htb-machine-info {
    flex-direction: column;
    text-align: center;
    padding: 1.25rem;
  }

  .htb-machine-meta {
    justify-content: center;
  }
}

/* ======================
   Writeups Listing Page
   ====================== */

.writeups-list {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.writeups-tag-header {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-bottom: 0.75rem;
  border: none;
  padding: 0;
}

.writeups-tag-name {
  color: var(--accent, #ff1778);
  font-size: 1.2rem;
}

.writeups-tag-count {
  font-size: 0.8rem;
  color: #666B88;
  background: rgba(102, 107, 136, 0.15);
  padding: 0.1rem 0.45rem;
  border-radius: 10px;
}

.writeups-entries {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.writeup-card {
  display: block;
  text-decoration: none;
  color: inherit;
  padding: 0.75rem 1rem;
  border-radius: 6px;
  background: rgba(17, 19, 26, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.04);
  transition: background 0.2s, border-color 0.2s;
}

.writeup-card:hover {
  background: rgba(30, 34, 48, 0.8);
  border-color: rgba(255, 255, 255, 0.1);
}

.writeup-card-inner {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.writeup-card-img {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--accent, #ff1778);
  flex-shrink: 0;
  padding:0px;
}

.writeup-card-info {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.writeup-card-title {
  font-weight: 600;
  font-size: 1.05rem;
  color: var(--foreground, #c7ccd4);
}

.writeup-card-meta {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.85rem;
  color: rgba(199, 204, 212, 0.6);
}

/* ======================
   HTB Cover Badge
   ====================== */

.htb-cover-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.2rem 0.5rem;
  border-radius: 4px;
  background: rgba(17, 19, 26, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.04);
  font-size: 0.85rem;
  color: rgba(199, 204, 212, 0.7);
  margin-left: 0.5rem;
}

.htb-cover-badge img {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  object-fit: cover;
  border: 1.5px solid var(--accent, #ff1778);
  padding: 0;
  margin: 0;
}

.htb-cover-name {
  font-weight: 600;
  color: var(--foreground, #c7ccd4);
}

.htb-cover-detail {
  color: rgba(199, 204, 212, 0.6);
}
