/* polish.css — site-wide micro-improvements
   Cyan/blue brand polish only. No structural changes to existing layouts.
   Loaded after style.css so it overrides where intended.
*/

/* ===== SMOOTH SCROLL ===== */
html {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* ===== SELECTION ===== */
::selection {
  background: rgba(0, 229, 255, 0.20);
  color: #ffffff;
  text-shadow: 0 0 12px rgba(0, 229, 255, 0.5);
}

::-moz-selection {
  background: rgba(0, 229, 255, 0.20);
  color: #ffffff;
}

/* ===== CUSTOM SCROLLBAR (chromium + firefox) ===== */
* {
  scrollbar-width: thin;
  scrollbar-color: rgba(0, 229, 255, 0.28) transparent;
}

*::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

*::-webkit-scrollbar-track {
  background: transparent;
}

*::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, rgba(0, 229, 255, 0.35), rgba(0, 170, 255, 0.25));
  border-radius: 8px;
  border: 2px solid transparent;
  background-clip: padding-box;
}

*::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, rgba(0, 229, 255, 0.55), rgba(0, 170, 255, 0.45));
  background-clip: padding-box;
  border: 2px solid transparent;
}

/* ===== FOCUS-VISIBLE (a11y) ===== */
:focus { outline: none; }

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid #00E5FF;
  outline-offset: 3px;
  border-radius: 6px;
  transition: outline-offset .15s;
}

/* ===== BUTTON HOVER POLISH ===== */
button:not(:disabled),
.btn,
[role="button"]:not(:disabled) {
  transition:
    transform .2s cubic-bezier(.2,.8,.2,1),
    box-shadow .2s ease,
    background .2s ease,
    border-color .2s ease;
}

button:not(:disabled):hover:not(.omega-chat__send):not(.omega-chat__suggestion),
.btn:not(:disabled):hover,
[role="button"]:not(:disabled):hover {
  transform: translateY(-1px);
}

/* ===== LINK / MONO-TAG UNDERLINE ANIMATION ===== */
a.mono-tag,
.mono-link,
a[data-mono] {
  position: relative;
  display: inline-block;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  text-decoration: none;
  color: #00E5FF;
}

a.mono-tag::after,
.mono-link::after,
a[data-mono]::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -2px;
  height: 1px;
  background: linear-gradient(90deg, #00E5FF, #00AAFF);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .25s cubic-bezier(.2,.8,.2,1);
}

a.mono-tag:hover::after,
.mono-link:hover::after,
a[data-mono]:hover::after {
  transform: scaleX(1);
}

/* ===== IMAGE / SVG RENDERING POLISH ===== */
img, svg {
  -webkit-user-drag: none;
}

img {
  image-rendering: -webkit-optimize-contrast;
}

/* ===== KEYBOARD KEY DISPLAY (kbd) ===== */
kbd {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 0.85em;
  padding: 2px 6px;
  background: rgba(0, 229, 255, 0.06);
  border: 1px solid rgba(0, 229, 255, 0.22);
  border-radius: 4px;
  color: #BCE8FF;
  box-shadow: 0 1px 0 rgba(0, 229, 255, 0.15);
}

/* ===== SECTION HEADINGS — subtle accent ===== */
section h1,
section h2 {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ===== UTILITY: cyan glow on hover for cards with .card-glow ===== */
.card-glow {
  transition: transform .25s, box-shadow .25s, border-color .25s;
}

.card-glow:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px -10px rgba(0, 229, 255, 0.35);
  border-color: rgba(0, 229, 255, 0.45);
}

/* ===== PRINT (light cleanup) ===== */
@media print {
  .omega-stage__backdrop,
  .omega-stage__bee-glow,
  .omega-stage__hash-stream {
    display: none !important;
  }
}
