/* src/styles.css */
:root {
  color-scheme: dark;
  --bg: #050506;
  --bg-deep: #000000;
  --surface: #0c0c0d;
  --surface-raised: #141415;
  --text: #eceae6;
  --text-secondary: #c9c6c0;
  --muted: #8a8884;
  --faint: #5c5a57;
  --article-text: var(--text-secondary);
  --border: rgba(236, 234, 230, .09);
  --border-strong: rgba(236, 234, 230, .2);
  --border-accent: rgba(160, 52, 48, .42);
  --accent: #c4524a;
  --accent-hover: #d9685f;
  --accent-deep: #7a2626;
  --accent-subtle: rgba(122, 38, 38, .16);
  --accent-on-dark: #c4524a;
  --on-accent: #f4f2ed;
  --focus: #c4524a;
  --danger: #e0625a;
  --grid-line: rgba(236, 234, 230, .028);
  --sans:
    Inter,
    ui-sans-serif,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;
  --serif:
    Iowan Old Style,
    Baskerville,
    "Times New Roman",
    serif;
  --mono:
    "SF Mono",
    "IBM Plex Mono",
    "JetBrains Mono",
    Menlo,
    Consolas,
    monospace;
}
:root[data-theme=light] {
  color-scheme: light;
  --bg: #f2f0eb;
  --bg-deep: #e9e6e0;
  --surface: #e8e5df;
  --surface-raised: #fbfaf7;
  --text: #151514;
  --text-secondary: #363532;
  --muted: #65635f;
  --faint: #9a9791;
  --border: rgba(21, 21, 20, .12);
  --border-strong: rgba(21, 21, 20, .28);
  --border-accent: rgba(122, 38, 38, .38);
  --accent: #8f2a24;
  --accent-hover: #6f1f1a;
  --accent-deep: #7a2626;
  --accent-subtle: rgba(122, 38, 38, .08);
  --focus: #8f2a24;
  --danger: #b3261e;
  --grid-line: rgba(21, 21, 20, .035);
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
html {
  min-height: 100%;
  scroll-behavior: smooth;
  background: var(--bg);
}
body {
  min-height: 100%;
  margin: 0;
  overflow-x: hidden;
  background: var(--bg);
  color: var(--text);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  transition: background-color .25s ease, color .25s ease;
}
button,
input,
textarea,
select {
  font: inherit;
}
button,
a {
  -webkit-tap-highlight-color: transparent;
}
img {
  display: block;
  max-width: 100%;
}
::selection {
  background: var(--accent-deep);
  color: var(--on-accent);
}
.page-shell {
  width: min(1180px, calc(100% - 40px));
  margin-inline: auto;
}
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
a {
  transition:
    color .2s ease,
    opacity .2s ease,
    background-color .2s ease,
    border-color .2s ease;
}
:focus-visible {
  outline: 1px solid var(--focus);
  outline-offset: 4px;
}
input::placeholder,
textarea::placeholder {
  color: var(--faint);
}
[data-lang] {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  --lang-dot: var(--faint);
}
[data-lang]::before {
  content: "";
  flex: none;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--lang-dot);
}
[data-lang=python] {
  --lang-dot: #5f86a6;
}
[data-lang=linux] {
  --lang-dot: #8a8577;
}
[data-lang=aiml] {
  --lang-dot: #7f6a8a;
}
[data-lang=proxmox] {
  --lang-dot: #9a7248;
}
[data-lang=postgresql] {
  --lang-dot: #55698f;
}
[data-lang=react] {
  --lang-dot: #5f9aa8;
}
[data-lang=nodejs] {
  --lang-dot: #6b8f5a;
}
[data-lang=mysql] {
  --lang-dot: #4d8287;
}
[data-lang=redis] {
  --lang-dot: #a05248;
}
[data-lang=stripe] {
  --lang-dot: #6f6ba3;
}
[data-lang=angular] {
  --lang-dot: #a04a55;
}
[data-lang=django] {
  --lang-dot: #4f7a63;
}
[data-lang=docker] {
  --lang-dot: #4f83a8;
}
[data-lang=jest] {
  --lang-dot: #97564f;
}
.toast-container .ngx-toastr {
  border: 1px solid var(--border-strong);
  border-radius: 2px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, .35);
  background: var(--surface-raised);
  color: var(--text);
  font-family: var(--sans);
}
@media (max-width: 640px) {
  .page-shell {
    width: min(100% - 28px, 1180px);
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* angular:styles/global:styles */
/*# sourceMappingURL=styles.css.map */
