/* Nakładka miękkiego przenikania między stronami (js/page-transition.js).
   Zaczyna nieprzezroczysta (zakrywa "surowe" ładowanie strony), gaśnie zaraz
   po wczytaniu; przy kliknięciu w link jaśnieje z powrotem przed nawigacją. */
.page-fade-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: #000;
  opacity: 1;
  pointer-events: none;
  transition: opacity 350ms ease-in-out;
}

.page-fade-overlay.hidden {
  opacity: 0;
}

/* Logo — dwuwierszowe FOTO / TOMASZ, duża pierwsza litera + reszta mniejsza.
   Kolory: Pantone Cool Gray 1 (jasny) i Cool Gray 10 (ciemny) — przybliżone
   wartości RGB, do dostrojenia jeśli masz dokładne wartości z brand booka.
   Wspólny plik dla WSZYSTKICH stron — jedno źródło prawdy, żeby logo było
   identyczne (wygląd i pozycja) wszędzie. */

.logo {
  --gray-light: #d9d9d6;
  --gray-dark: #63666a;

  position: fixed;
  /* 2vmin = 2% z MNIEJSZEGO wymiaru ekranu — dzięki temu odstęp od lewej
     i od góry jest naprawdę równy, czego samo "2%" (osobno dla szerokości
     i wysokości) by nie dało. */
  top: 2vmin;
  left: 2vmin;
  z-index: 10;

  display: flex;
  flex-direction: column;
  text-decoration: none;
  font-family: "Quicksand", -apple-system, sans-serif;
  font-weight: 700;
  user-select: none;
  cursor: pointer;
}

.logo-line {
  display: flex;
  align-items: baseline;
  line-height: 1;
}

/* Proporcje przeniesione z oryginalnego logo (logo_stor_trans2_copy.png):
   - małe litery ≈ 58% wysokości dużej (34px -> 20px)
   - równy, szeroki odstęp między wszystkimi małymi literami (letter-spacing)
   - F/T ciasno przy swoim O, potem dopiero oddech
   - obie linie od tej samej lewej krawędzi, baseline w każdej linii
   Kolor: pierwsze 2 litery każdej linii ciemne, reszta jasna. */

.logo-cap {
  font-size: 30px;
  margin-right: 2px;
  color: var(--gray-dark);
  transition: color 600ms ease-out;
}

/* F jest węższe od T o naturze liter (19.11px vs 21.28px @34px, Quicksand
   700) — rozciągamy F wizualnie do szerokości T. Transform nie wpływa na
   układ (flow), więc O i reszta górnej linii zostają dokładnie w miejscu. */
.logo-line--top .logo-cap {
  display: inline-block;
  transform: scaleX(1.1136);
  transform-origin: left;
}

.logo-accent {
  font-size: 24px;
  letter-spacing: 0.18em;
  color: var(--gray-dark);
  transition: color 600ms ease-out;
}

.logo-rest {
  font-size: 24px;
  letter-spacing: 0.18em;
  color: var(--gray-light);
  transition: color 600ms ease-out;
}

.logo-line--bottom {
  margin-top: 7px;
}

/* F jest węższe od T — różnica skaluje się razem z rozmiarem czcionki
   (2.17px @34px -> 1.92px @30px). Górne OTO dosuwamy w prawo o tę
   różnicę, żeby O stało dokładnie nad O. */
.logo-line--top .logo-accent {
  margin-left: 1.92px;
}

/* Cienka, wtapiająca się obwódka — kontur w kolorze samej litery,
   nie kontrastowa czarna kreska jak w starym logo. */
.logo-cap,
.logo-accent,
.logo-rest {
  -webkit-text-stroke: 0.4px currentColor;
  paint-order: stroke fill;
}

/* Hover: cały górny wiersz robi się jasny, cały dolny — ciemny (odwrotnie
   niż w spoczynku, gdzie to kolor cap+accent vs reszta jest przełącznikiem). */
.logo:hover .logo-line--top .logo-cap,
.logo:hover .logo-line--top .logo-accent,
.logo:hover .logo-line--top .logo-rest {
  color: var(--gray-light);
}

.logo:hover .logo-line--bottom .logo-cap,
.logo:hover .logo-line--bottom .logo-accent,
.logo:hover .logo-line--bottom .logo-rest {
  color: var(--gray-dark);
}

@media (prefers-reduced-motion: reduce) {
  .logo-cap,
  .logo-accent,
  .logo-rest {
    transition: none;
  }
}

/* Przełącznik języka — mały "wodny" bąbel w PRAWYM górnym rogu (lewy zajmuje
   logo), ta sama stylistyka szkła co bąble nawigacji (nav-islands.js), tylko
   w dużo mniejszej skali i z bardzo ograniczonym zasięgiem ruchu
   (js/lang-switch.js — rozmiar kontenera musi się zgadzać z LS_BOX tam). */

.lang-switch {
  position: fixed;
  top: 2vmin;
  right: 2vmin;
  width: 150px;
  height: 150px;
  z-index: 10;
  pointer-events: none;
}

.lang-bubble {
  --tint: 255, 255, 255;

  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  pointer-events: auto;
  will-change: transform;
  cursor: pointer;
  box-sizing: border-box;

  background: rgba(255, 255, 255, 0.1);
  -webkit-backdrop-filter: blur(8px) saturate(1.3) brightness(1.05);
  backdrop-filter: url(#lensDistort) blur(0.5px) saturate(1.25) brightness(1.05);

  box-shadow:
    inset 0 0 0 1px rgba(0, 0, 0, 0.22),
    inset 0 0 10px 1px rgba(0, 0, 0, 0.25),
    inset 0 0 14px rgba(255, 255, 255, 0.35),
    0 4px 14px rgba(0, 0, 0, 0.35);

  transition: box-shadow 0.4s ease;
}

.lang-bubble:hover {
  box-shadow:
    inset 0 0 0 1px rgba(0, 0, 0, 0.26),
    inset 0 0 10px 1px rgba(0, 0, 0, 0.28),
    inset 0 0 18px rgba(255, 255, 255, 0.45),
    0 4px 16px rgba(0, 0, 0, 0.4);
}

.lang-bubble-label {
  font-family: -apple-system, "Helvetica Neue", Arial, sans-serif;
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 0.03em;
  color: #fff;
  pointer-events: none;
  text-shadow: 0 0 5px rgba(0, 0, 0, 0.85), 0 0 12px rgba(0, 0, 0, 0.6);
}
