/* ===== Self-hosted fonts (Latin subset) ===== */

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/inter-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/inter-500.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/inter-600.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/inter-700.woff2') format('woff2');
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/jbm-400.woff2') format('woff2');
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/jbm-500.woff2') format('woff2');
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/jbm-600.woff2') format('woff2');
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/jbm-700.woff2') format('woff2');
}

/* ===== Custom styles (extracted from index.html inline block) ===== */

html { color-scheme: dark; }
body { font-feature-settings: "calt", "rlig"; }

@keyframes livePulse {
  0%        { transform: scale(0.95); opacity: 0.7; }
  80%, 100% { transform: scale(2.2);  opacity: 0;   }
}
.live-pulse {
  animation: livePulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

.card-hover:hover {
  box-shadow: 0 0 15px rgba(92, 88, 85, 0.25);
}

.dashed-zone {
  background-image:
    repeating-linear-gradient(45deg, transparent 0 12px, rgba(0, 217, 146, 0.035) 12px 24px);
}

textarea:focus {
  outline: none;
  border-color: #00d992 !important;
  box-shadow: 0 0 0 1px #00d992 inset;
}
textarea::-webkit-scrollbar { width: 8px; }
textarea::-webkit-scrollbar-thumb { background: #3d3a39; border-radius: 4px; }
textarea::-webkit-scrollbar-track { background: transparent; }

::selection { background: #00d992; color: #101010; }

[hidden] { display: none !important; }

/* ===== Disclosure (details/summary) for inline explainers ===== */
.explainer summary { list-style: none; cursor: pointer; }
.explainer summary::-webkit-details-marker { display: none; }
.explainer .chevron { transition: transform 150ms ease; }
.explainer[open] .chevron { transform: rotate(180deg); }
