.share-menu {
  position: relative;
  display: inline-flex;
}

.share-trigger {
  gap: 0.65rem;
  padding: 0.5rem 1.1rem;
  border-radius: 14px;
  background: rgba(10, 10, 12, 0.8);
  border: 1px solid rgba(255, 255, 255, 0.12);
  font-weight: 600;
  letter-spacing: 0.01em;
}

.share-trigger svg {
  width: 18px;
  height: 18px;
}

.share-trigger:hover {
  background: rgba(255, 255, 255, 0.06);
}

.share-menu.is-open .share-trigger {
  border-color: rgba(255, 255, 255, 0.3);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.45);
}

.share-panel {
  position: absolute;
  top: calc(100% + 0.65rem);
  right: 0;
  min-width: 220px;
  background: rgba(8, 8, 10, 0.98);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 16px;
  padding: 0.5rem;
  display: none;
  flex-direction: column;
  gap: 0.3rem;
  z-index: 30;
  box-shadow: 0 20px 45px rgba(0, 0, 0, 0.45);
  backdrop-filter: blur(8px);
}

.share-menu.is-open .share-panel {
  display: flex;
}

.share-item {
  width: 100%;
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.65rem 0.8rem;
  border-radius: 12px;
  color: #f6f7fb;
  background: transparent;
  border: 1px solid transparent;
  text-decoration: none;
  font-size: 0.95rem;
  font-weight: 600;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
}

.share-item svg {
  width: 18px;
  height: 18px;
}

.share-item:hover,
.share-item:focus {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.12);
  outline: none;
}

.share-item.is-copied {
  background: rgba(120, 255, 210, 0.18);
  border-color: rgba(120, 255, 210, 0.45);
}

@media (max-width: 640px) {
  .share-panel {
    left: 0;
    right: auto;
    min-width: 200px;
  }
}

.privacy-page {
  padding: 2rem 0 4rem;
}

.privacy-inner {
  max-width: 820px;
}

.privacy-content {
  color: #dfe3ea;
  font-size: 1rem;
}

.privacy-content > h1 {
  font-family: "Space Grotesk", "Manrope", sans-serif;
  font-size: clamp(2rem, 3vw, 3rem);
  margin: 0 0 0.8rem;
}

.privacy-content > p:first-of-type {
  color: var(--muted);
  margin: 0 0 2rem;
  font-size: 0.95rem;
}

.privacy-content h2,
.privacy-content h3,
.privacy-content h4 {
  font-family: "Space Grotesk", "Manrope", sans-serif;
  margin-top: 2rem;
}

.privacy-content a {
  color: var(--accent);
}

.privacy-content p {
  margin: 1rem 0;
}

.privacy-content ul,
.privacy-content ol {
  padding-left: 1.3rem;
  margin: 1rem 0;
}

.privacy-content blockquote {
  margin: 1.5rem 0;
  padding: 1rem 1.2rem;
  border-left: 3px solid var(--accent);
  background: rgba(255, 255, 255, 0.03);
  color: var(--muted);
}

.icon-button--coffee {
  color: #ffdd00;
}

.icon-button--coffee:hover,
.icon-button--coffee:focus-visible {
  color: #ffdd00;
}

.codeblock {
  position: relative;
  margin: 1.5rem 0;
}

.codeblock pre {
  background: #0d1117;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  padding: 1.6rem 1.2rem 1rem;
  overflow-x: auto;
  margin: 0;
  color: #e6e9ef;
}

.codeblock code {
  font-family: "SFMono-Regular", "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;
  font-size: 0.9rem;
}

.code-copy {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.35rem 0.6rem;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(13, 17, 23, 0.92);
  color: #e6e9ef;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  opacity: 0;
  transform: translateY(-4px);
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}

.code-copy:hover,
.code-copy:focus-visible {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.3);
  outline: none;
}

.code-copy.is-copied {
  background: rgba(120, 255, 210, 0.2);
  border-color: rgba(120, 255, 210, 0.45);
  color: #eafff7;
}

.codeblock:hover .code-copy {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

:root {
  color-scheme: dark;
}

html[data-theme="light"] {
  color-scheme: light;
  --bg: #f6f7fb;
  --bg-alt: #ffffff;
  --card: #ffffff;
  --card-alt: #f1f5f9;
  --text: #0f172a;
  --muted: #6b7280;
  --accent: #2563eb;
  --accent-strong: #1d4ed8;
  --border: #e5e7eb;
  --border-color: #e5e7eb;
  --theme: #ffffff;
  --primary: #0f172a;
  --secondary: #2563eb;
  --hljs-bg: #f6f8fa;
  --shadow: 0 24px 48px rgba(15, 23, 42, 0.08);
}

html[data-theme="dark"] {
  color-scheme: dark;
}

html[data-theme="light"] .page-bg {
  background:
    radial-gradient(circle at 20% 20%, rgba(59, 130, 246, 0.12), transparent 55%),
    radial-gradient(circle at 80% 10%, rgba(34, 197, 94, 0.12), transparent 45%),
    radial-gradient(circle at 70% 85%, rgba(236, 72, 153, 0.12), transparent 48%),
    linear-gradient(180deg, #ffffff 0%, #f6f7fb 60%, #f1f5f9 100%);
}

html[data-theme="light"] .site-header {
  background: rgba(255, 255, 255, 0.9);
  border-bottom: 1px solid var(--border);
}

html[data-theme="light"] .menu-toggle,
html[data-theme="light"] .icon-button {
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: rgba(255, 255, 255, 0.9);
  color: var(--text);
}

html[data-theme="light"] .icon-button:hover {
  border-color: rgba(15, 23, 42, 0.2);
}

html[data-theme="light"] .share-trigger {
  background: #ffffff;
  border: 1px solid var(--border);
}

html[data-theme="light"] .share-trigger:hover {
  background: #f8fafc;
}

html[data-theme="light"] .share-panel {
  background: #ffffff;
  border-color: var(--border);
  box-shadow: 0 20px 45px rgba(15, 23, 42, 0.12);
}

html[data-theme="light"] .share-item {
  color: var(--text);
}

html[data-theme="light"] .share-item:hover,
html[data-theme="light"] .share-item:focus {
  background: #f3f4f6;
  border-color: #e5e7eb;
}

html[data-theme="light"] .site-footer {
  border-top: 1px solid var(--border);
  background: #f8fafc;
}

html[data-theme="light"] .social-link {
  border-color: #e5e7eb;
  color: var(--text);
}

html[data-theme="light"] .article-content blockquote,
html[data-theme="light"] .privacy-content blockquote {
  background: #f3f4f6;
  border-left-color: #c7d2fe;
  color: #4b5563;
}

html[data-theme="light"] .about-text {
  color: #334155;
}

html[data-theme="light"] .article-content,
html[data-theme="light"] .privacy-content {
  color: #334155;
}

html[data-theme="light"] .article-content pre,
html[data-theme="light"] .codeblock pre {
  background: #f6f8fa;
  border: 1px solid #d0d7de;
  color: #24292f;
}

html[data-theme="dark"] .article-content pre,
html[data-theme="dark"] .codeblock pre {
  background: #0d1117;
  border: 1px solid #30363d;
  color: #e6edf3;
}

html[data-theme="light"] .code-copy {
  background: rgba(255, 255, 255, 0.95);
  border-color: #d0d7de;
  color: #1f2328;
}

html[data-theme="light"] .code-copy:hover,
html[data-theme="light"] .code-copy:focus-visible {
  background: #f3f4f6;
  border-color: #cbd5e1;
}

html[data-theme="light"] .code-copy.is-copied {
  background: #dafbe1;
  border-color: #2da44e;
  color: #1a7f37;
}

html[data-theme="light"] :not(pre) > code {
  background: #f3f4f6;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  padding: 0.1rem 0.35rem;
  color: #1f2937;
}

html[data-theme="light"] .search-dialog {
  background: #ffffff;
  border: 1px solid var(--border);
  color: var(--text);
  box-shadow: var(--shadow);
}

html[data-theme="light"] .search-dialog::backdrop {
  background: rgba(148, 163, 184, 0.35);
}

html[data-theme="light"] .search-dialog__header {
  border-bottom: 1px solid #e5e7eb;
}

html[data-theme="light"] .search-dialog__close {
  border-color: #e5e7eb;
  background: #f8fafc;
  color: var(--text);
}

html[data-theme="light"] .search-results li {
  border-bottom: 1px solid #e5e7eb;
}

html[data-theme="light"] .search-result:hover,
html[data-theme="light"] .search-result:focus-visible {
  background: #f3f4f6;
}

.theme-icon {
  display: inline-flex;
}

.theme-icon--moon {
  display: none;
}

html[data-theme="light"] .theme-icon--sun {
  display: none;
}

html[data-theme="light"] .theme-icon--moon {
  display: inline-flex;
}

html[data-theme="dark"] .theme-icon--sun {
  display: inline-flex;
}

html[data-theme="dark"] .theme-icon--moon {
  display: none;
}

html[data-theme="light"] .chroma,
html[data-theme="light"] .chroma .line {
  color: #24292f;
  background-color: #f6f8fa;
}

html[data-theme="light"] .chroma .err { color:#f6f8fa;background-color:#82071e; }
html[data-theme="light"] .chroma .lnlinks { outline:none;text-decoration:none;color:inherit; }
html[data-theme="light"] .chroma .lntd { vertical-align:top;padding:0;margin:0;border:0; }
html[data-theme="light"] .chroma .lntable { border-spacing:0;padding:0;margin:0;border:0; }
html[data-theme="light"] .chroma .hl { background-color:#dedede; }
html[data-theme="light"] .chroma .lnt { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f; }
html[data-theme="light"] .chroma .ln { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f; }
html[data-theme="light"] .chroma .line { display:flex; }
html[data-theme="light"] .chroma .k { color:#cf222e; }
html[data-theme="light"] .chroma .kc { color:#cf222e; }
html[data-theme="light"] .chroma .kd { color:#cf222e; }
html[data-theme="light"] .chroma .kn { color:#cf222e; }
html[data-theme="light"] .chroma .kp { color:#cf222e; }
html[data-theme="light"] .chroma .kr { color:#cf222e; }
html[data-theme="light"] .chroma .kt { color:#cf222e; }
html[data-theme="light"] .chroma .na { color:#1f2328; }
html[data-theme="light"] .chroma .nc { color:#1f2328; }
html[data-theme="light"] .chroma .no { color:#0550ae; }
html[data-theme="light"] .chroma .nd { color:#0550ae; }
html[data-theme="light"] .chroma .ni { color:#6639ba; }
html[data-theme="light"] .chroma .nl { color:#900;font-weight:bold; }
html[data-theme="light"] .chroma .nn { color:#24292e; }
html[data-theme="light"] .chroma .nx { color:#1f2328; }
html[data-theme="light"] .chroma .nt { color:#0550ae; }
html[data-theme="light"] .chroma .nb { color:#6639ba; }
html[data-theme="light"] .chroma .bp { color:#6a737d; }
html[data-theme="light"] .chroma .nv { color:#953800; }
html[data-theme="light"] .chroma .vc { color:#953800; }
html[data-theme="light"] .chroma .vg { color:#953800; }
html[data-theme="light"] .chroma .vi { color:#953800; }
html[data-theme="light"] .chroma .vm { color:#953800; }
html[data-theme="light"] .chroma .nf { color:#6639ba; }
html[data-theme="light"] .chroma .fm { color:#6639ba; }
html[data-theme="light"] .chroma .s { color:#0a3069; }
html[data-theme="light"] .chroma .sa { color:#0a3069; }
html[data-theme="light"] .chroma .sb { color:#0a3069; }
html[data-theme="light"] .chroma .sc { color:#0a3069; }
html[data-theme="light"] .chroma .dl { color:#0a3069; }
html[data-theme="light"] .chroma .sd { color:#0a3069; }
html[data-theme="light"] .chroma .s2 { color:#0a3069; }
html[data-theme="light"] .chroma .se { color:#0a3069; }
html[data-theme="light"] .chroma .sh { color:#0a3069; }
html[data-theme="light"] .chroma .si { color:#0a3069; }
html[data-theme="light"] .chroma .sx { color:#0a3069; }
html[data-theme="light"] .chroma .sr { color:#0a3069; }
html[data-theme="light"] .chroma .s1 { color:#0a3069; }
html[data-theme="light"] .chroma .ss { color:#032f62; }
html[data-theme="light"] .chroma .m { color:#0550ae; }
html[data-theme="light"] .chroma .mb { color:#0550ae; }
html[data-theme="light"] .chroma .mf { color:#0550ae; }
html[data-theme="light"] .chroma .mh { color:#0550ae; }
html[data-theme="light"] .chroma .mi { color:#0550ae; }
html[data-theme="light"] .chroma .il { color:#0550ae; }
html[data-theme="light"] .chroma .mo { color:#0550ae; }
html[data-theme="light"] .chroma .o { color:#0550ae; }
html[data-theme="light"] .chroma .ow { color:#0550ae; }
html[data-theme="light"] .chroma .p { color:#1f2328; }
html[data-theme="light"] .chroma .c { color:#57606a; }
html[data-theme="light"] .chroma .ch { color:#57606a; }
html[data-theme="light"] .chroma .cm { color:#57606a; }
html[data-theme="light"] .chroma .c1 { color:#57606a; }
html[data-theme="light"] .chroma .cs { color:#57606a; }
html[data-theme="light"] .chroma .cp { color:#57606a; }
html[data-theme="light"] .chroma .cpf { color:#57606a; }
html[data-theme="light"] .chroma .gd { color:#82071e;background-color:#ffebe9; }
html[data-theme="light"] .chroma .ge { color:#1f2328; }
html[data-theme="light"] .chroma .gi { color:#116329;background-color:#dafbe1; }
html[data-theme="light"] .chroma .go { color:#1f2328; }
html[data-theme="light"] .chroma .gl { text-decoration:underline; }
html[data-theme="light"] .chroma .w { color:#fff; }

html[data-theme="dark"] .chroma,
html[data-theme="dark"] .chroma .line {
  color: #e6edf3;
  background-color: #0d1117;
}

html[data-theme="dark"] .chroma .err { color:#f85149; }
html[data-theme="dark"] .chroma .lnlinks { outline:none;text-decoration:none;color:inherit; }
html[data-theme="dark"] .chroma .lntd { vertical-align:top;padding:0;margin:0;border:0; }
html[data-theme="dark"] .chroma .lntable { border-spacing:0;padding:0;margin:0;border:0; }
html[data-theme="dark"] .chroma .hl { background-color:#6e7681; }
html[data-theme="dark"] .chroma .lnt { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679; }
html[data-theme="dark"] .chroma .ln { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6e7681; }
html[data-theme="dark"] .chroma .line { display:flex; }
html[data-theme="dark"] .chroma .k { color:#ff7b72; }
html[data-theme="dark"] .chroma .kc { color:#79c0ff; }
html[data-theme="dark"] .chroma .kd { color:#ff7b72; }
html[data-theme="dark"] .chroma .kn { color:#ff7b72; }
html[data-theme="dark"] .chroma .kp { color:#79c0ff; }
html[data-theme="dark"] .chroma .kr { color:#ff7b72; }
html[data-theme="dark"] .chroma .kt { color:#ff7b72; }
html[data-theme="dark"] .chroma .nc { color:#f0883e;font-weight:bold; }
html[data-theme="dark"] .chroma .no { color:#79c0ff;font-weight:bold; }
html[data-theme="dark"] .chroma .nd { color:#d2a8ff;font-weight:bold; }
html[data-theme="dark"] .chroma .ni { color:#ffa657; }
html[data-theme="dark"] .chroma .ne { color:#f0883e;font-weight:bold; }
html[data-theme="dark"] .chroma .nl { color:#79c0ff;font-weight:bold; }
html[data-theme="dark"] .chroma .nn { color:#ff7b72; }
html[data-theme="dark"] .chroma .py { color:#79c0ff; }
html[data-theme="dark"] .chroma .nt { color:#7ee787; }
html[data-theme="dark"] .chroma .nv { color:#79c0ff; }
html[data-theme="dark"] .chroma .vc { color:#79c0ff; }
html[data-theme="dark"] .chroma .vg { color:#79c0ff; }
html[data-theme="dark"] .chroma .vi { color:#79c0ff; }
html[data-theme="dark"] .chroma .vm { color:#79c0ff; }
html[data-theme="dark"] .chroma .nf { color:#d2a8ff;font-weight:bold; }
html[data-theme="dark"] .chroma .fm { color:#d2a8ff;font-weight:bold; }
html[data-theme="dark"] .chroma .l { color:#a5d6ff; }
html[data-theme="dark"] .chroma .ld { color:#79c0ff; }
html[data-theme="dark"] .chroma .s { color:#a5d6ff; }
html[data-theme="dark"] .chroma .sa { color:#79c0ff; }
html[data-theme="dark"] .chroma .sb { color:#a5d6ff; }
html[data-theme="dark"] .chroma .sc { color:#a5d6ff; }
html[data-theme="dark"] .chroma .dl { color:#79c0ff; }
html[data-theme="dark"] .chroma .sd { color:#a5d6ff; }
html[data-theme="dark"] .chroma .s2 { color:#a5d6ff; }
html[data-theme="dark"] .chroma .se { color:#79c0ff; }
html[data-theme="dark"] .chroma .sh { color:#79c0ff; }
html[data-theme="dark"] .chroma .si { color:#a5d6ff; }
html[data-theme="dark"] .chroma .sx { color:#a5d6ff; }
html[data-theme="dark"] .chroma .sr { color:#79c0ff; }
html[data-theme="dark"] .chroma .s1 { color:#a5d6ff; }
html[data-theme="dark"] .chroma .ss { color:#a5d6ff; }
html[data-theme="dark"] .chroma .m { color:#a5d6ff; }
html[data-theme="dark"] .chroma .mb { color:#a5d6ff; }
html[data-theme="dark"] .chroma .mf { color:#a5d6ff; }
html[data-theme="dark"] .chroma .mh { color:#a5d6ff; }
html[data-theme="dark"] .chroma .mi { color:#a5d6ff; }
html[data-theme="dark"] .chroma .il { color:#a5d6ff; }
html[data-theme="dark"] .chroma .mo { color:#a5d6ff; }
html[data-theme="dark"] .chroma .o { color:#ff7b72;font-weight:bold; }
html[data-theme="dark"] .chroma .ow { color:#ff7b72;font-weight:bold; }
html[data-theme="dark"] .chroma .c { color:#8b949e;font-style:italic; }
html[data-theme="dark"] .chroma .ch { color:#8b949e;font-style:italic; }
html[data-theme="dark"] .chroma .cm { color:#8b949e;font-style:italic; }
html[data-theme="dark"] .chroma .c1 { color:#8b949e;font-style:italic; }
html[data-theme="dark"] .chroma .cs { color:#8b949e;font-weight:bold;font-style:italic; }
html[data-theme="dark"] .chroma .cp { color:#8b949e;font-weight:bold;font-style:italic; }
html[data-theme="dark"] .chroma .cpf { color:#8b949e;font-weight:bold;font-style:italic; }
html[data-theme="dark"] .chroma .gd { color:#ffa198;background-color:#490202; }
html[data-theme="dark"] .chroma .ge { font-style:italic; }
html[data-theme="dark"] .chroma .gr { color:#ffa198; }
html[data-theme="dark"] .chroma .gh { color:#79c0ff;font-weight:bold; }
html[data-theme="dark"] .chroma .gi { color:#56d364;background-color:#0f5323; }
html[data-theme="dark"] .chroma .go { color:#8b949e; }
html[data-theme="dark"] .chroma .gp { color:#8b949e; }
html[data-theme="dark"] .chroma .gs { font-weight:bold; }
html[data-theme="dark"] .chroma .gu { color:#79c0ff; }
html[data-theme="dark"] .chroma .gt { color:#ff7b72; }
html[data-theme="dark"] .chroma .gl { text-decoration:underline; }
html[data-theme="dark"] .chroma .w { color:#6e7681; }
