/* POLISH ATMOSPHERE — selection · scrollbar · underline · corners · mood · micro */

/* ::selection — richer cyan+purple stain */
::selection { background: rgba(124,111,255,0.28); color: #e8fbff; text-shadow: 0 0 12px rgba(0,229,255,0.5); }
::-moz-selection { background: rgba(124,111,255,0.28); color: #e8fbff; }

/* Scrollbar — gradient thumb, webkit + firefox */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: rgba(0,0,0,0.3); }
::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--c), var(--p));
  border-radius: 6px; border: 2px solid var(--bg);
  box-shadow: 0 0 8px rgba(0,229,255,0.3);
}
::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, var(--p), var(--o)); }
html { scrollbar-color: var(--c) rgba(0,0,0,0.3); scrollbar-width: thin; }

/* Text link underline draw — content links only, not nav/buttons */
.section p a:not(.btn):not(.btn-primary),
.section li a:not(.btn):not(.btn-primary) { position: relative; text-decoration: none; }
.section p a:not(.btn):not(.btn-primary)::after,
.section li a:not(.btn):not(.btn-primary)::after {
  content: ''; position: absolute; left: 0; bottom: -2px; height: 1px; width: 100%;
  background: var(--grad); transform: scaleX(0); transform-origin: left;
  transition: transform 0.4s var(--ease-out-expo);
}
.section p a:not(.btn):not(.btn-primary):hover::after,
.section li a:not(.btn):not(.btn-primary):hover::after { transform: scaleX(1); }

/* Section title corner L-shapes */
.s-title { position: relative; }
.s-title::before, .s-title::after {
  content: ''; position: absolute; width: 10px; height: 10px; opacity: 0.35;
  pointer-events: none;
}
.s-title::before { top: -8px; left: -14px; border-top: 1px solid var(--c); border-left: 1px solid var(--c); }
.s-title::after  { bottom: -8px; right: -14px; border-bottom: 1px solid var(--p); border-right: 1px solid var(--p); }

/* Mood gradient layer — driven by js/mood-gradient.js via CSS vars */
body::before {
  content: ''; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  --tint1: 0,229,255; --tint2: 124,111,255; --tint3: 255,122,26;
  background:
    radial-gradient(500px 420px at 30% 25%, rgba(var(--tint1), 0.09), transparent 60%),
    radial-gradient(520px 440px at 70% 75%, rgba(var(--tint2), 0.08), transparent 65%),
    radial-gradient(420px 360px at 50% 80%, rgba(var(--tint3), 0.05), transparent 55%);
  contain: layout paint; will-change: background;
}

/* Micro — btn-primary icon nudges right */
.btn-primary { overflow: hidden; }
.btn-primary i, .btn-primary svg { transition: transform 0.35s var(--ease-out-expo); }
.btn-primary:hover i, .btn-primary:hover svg { transform: translateX(4px); }

/* Micro — svc-card price pulses on card hover */
.svc-card .price, .svc-card .svc-price, .svc-card [class*="price"] {
  transition: transform 0.4s var(--ease-out-expo), text-shadow 0.4s;
}
.svc-card:hover .price, .svc-card:hover .svc-price, .svc-card:hover [class*="price"] {
  transform: scale(1.06); text-shadow: 0 0 14px rgba(0,229,255,0.5);
}

/* Desktop form-field underline draw on focus-within */
@media (hover: hover) and (pointer: fine) {
  .form-field { position: relative; }
  .form-field::after {
    content: ''; position: absolute; left: 0; bottom: 0; height: 2px; width: 100%;
    background: var(--grad); transform: scaleX(0); transform-origin: left;
    transition: transform 0.4s var(--ease-out-expo); pointer-events: none;
  }
  .form-field:focus-within::after { transform: scaleX(1); }
}

/* LOW tier — drop mood layer (GPU save) */
.perf-low body::before { display: none; }
@media (prefers-reduced-motion: reduce) { body::before { transition: none; } }
