/* LextNevel — shared site-wide enhancements (icon rings, scroll bar, grain, cursor glow, selection) */

::selection { background: #C9A84C; color: #0a0a0a; }
::-moz-selection { background: #C9A84C; color: #0a0a0a; }

#ln-scroll-bar {
  position: fixed; top: 0; left: 0; height: 2px; width: 0%;
  background: linear-gradient(90deg, #8A7237, #C9A84C, #e8c56a);
  z-index: 9999; pointer-events: none;
}

#ln-grain {
  position: fixed; inset: 0; z-index: 9998; pointer-events: none;
  opacity: .045; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  background-size: 160px 160px;
}

.ln-cursor-glow {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: radial-gradient(480px circle at var(--ln-mx,50%) var(--ln-my,40%), rgba(201,168,76,.14), transparent 55%);
  opacity: 0; transition: opacity .4s ease; mix-blend-mode: soft-light;
}
.ln-cursor-glow.ln-active { opacity: 1; }
@media (hover: none) { .ln-cursor-glow { display: none !important; } }

@property --ln-ring { syntax: '<number>'; inherits: false; initial-value: 0; }
.icon-mark, .ts-icon, .link-icon, .divider-icon {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
}
.icon-mark::before, .ts-icon::before, .link-icon::before, .divider-icon::before {
  content: ""; position: absolute; inset: -12px; border-radius: 50%; padding: 1.5px;
  background: conic-gradient(from -90deg, #C9A84C calc(var(--ln-ring, 0) * 3.6deg), transparent calc(var(--ln-ring, 0) * 3.6deg));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  opacity: 0; transition: opacity .35s ease; pointer-events: none;
}
.icon-mark.ln-ring-in::before, .ts-icon.ln-ring-in::before,
.link-icon.ln-ring-in::before, .divider-icon.ln-ring-in::before,
.icon-mark:hover::before, .ts-icon:hover::before,
.link-icon:hover::before, .divider-icon:hover::before {
  opacity: 1; animation: ln-ring-draw 900ms ease forwards;
}
@keyframes ln-ring-draw { from { --ln-ring: 0; } to { --ln-ring: 100; } }
@media (prefers-reduced-motion: reduce) {
  .icon-mark::before, .ts-icon::before, .link-icon::before, .divider-icon::before { display: none; }
  #ln-grain { display: none; }
}

.ln-read-time { color: var(--gold, #C9A84C); }
