:root {
  --heated-stone-1: #c2a278;
  --heated-stone-2: #b8a088;
  --heated-stone-3: #a09078;
  --heated-stone-4: #8b7355;
  --burnt-brass-1: #c5a04e;
  --burnt-brass-2: #b87333;
  --burnt-brass-3: #d4870e;
  --burnt-brass-4: #a07830;
  --marine-depth-1: #0f1d36;
  --marine-depth-2: #1b2a4a;
  --marine-depth-3: #0a1628;
  --marine-depth-4: #061220;
  --asphalt-body-1: #1a1a1a;
  --asphalt-body-2: #2c2c2c;
  --asphalt-body-3: #3a3a3a;
  --asphalt-body-4: #242424;
  --pearl-dust-1: #e8d5b7;
  --pearl-dust-2: #f0e6d3;
  --pearl-dust-3: #f5f1eb;
  --pearl-dust-4: #ddd0be;
  --line-soft: rgba(232, 213, 183, 0.14);
  --shadow-soft: 0 28px 90px rgba(0, 0, 0, 0.28);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: auto;
}

body {
  margin: 0;
  color: var(--pearl-dust-3);
  background:
    radial-gradient(circle at top left, rgba(197, 160, 78, 0.06), transparent 28%),
    linear-gradient(160deg, #07111e 0%, #0a1628 35%, #0f1d36 100%);
  font-family: "Inter", sans-serif;
  line-height: 1.6;
  letter-spacing: 0.01em;
  overflow-x: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  display: block;
  width: 100%;
  height: auto;
}

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 40;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.3rem;
  background: linear-gradient(180deg, rgba(6, 18, 32, 0.84), rgba(6, 18, 32, 0.24));
  backdrop-filter: blur(9px);
  transition: background-color 0.5s ease, backdrop-filter 0.5s ease, padding 0.5s ease;
}

.site-header.is-condensed {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  background: rgba(6, 18, 32, 0.9);
  backdrop-filter: blur(14px);
}

.brand-link {
  display: inline-flex;
  align-items: center;
  gap: 0.9rem;
  min-width: 0;
  position: relative;
}

.linia-lockup {
  display: inline-flex;
  align-items: center;
  gap: 0.85rem;
  color: var(--pearl-dust-1);
  transition: opacity 0.32s ease, transform 0.32s ease;
}

.linia-lockup-compact {
  display: inline-flex;
  align-items: center;
  color: var(--pearl-dust-1);
  gap: 0.55rem;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%) translateX(-0.35rem);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.32s ease, transform 0.32s ease;
}

.linia-mark {
  width: 3.2rem;
  height: auto;
  flex: 0 0 auto;
  overflow: visible;
}

.linia-icon {
  width: 2rem;
  height: auto;
  color: var(--pearl-dust-1);
}

.compact-name {
  font-family: "DM Serif Display", serif;
  font-size: 1rem;
  letter-spacing: 0.04em;
}

.linia-type {
  display: grid;
  gap: 0.05rem;
}

.linia-name {
  font-family: "DM Serif Display", serif;
  font-size: clamp(1.3rem, 2.3vw, 1.6rem);
  letter-spacing: 0.04em;
}

.linia-sub,
.state-label,
.label-coord,
.price-row span:first-child,
.footer-coordinates,
.language-switch,
.service-hint {
  font-family: "Barlow Condensed", sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.16em;
}

.linia-sub {
  font-size: 0.68rem;
  color: rgba(240, 230, 211, 0.7);
}

.language-switch {
  justify-self: center;
  display: inline-flex;
  gap: 0.55rem;
  font-size: 0.8rem;
  color: rgba(232, 213, 183, 0.74);
}

.language-switch a {
  position: relative;
}

.language-switch a.is-active::after,
.header-phone::after,
.footer-links a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.16rem;
  width: 100%;
  height: 1px;
  background: rgba(197, 160, 78, 0.42);
}

.header-phone {
  position: relative;
  justify-self: end;
  padding: 0.35rem 0 0.25rem;
  color: var(--pearl-dust-2);
  font-family: "Barlow Condensed", sans-serif;
  font-size: 1rem;
  letter-spacing: 0.08em;
}

.site-header.is-condensed .linia-lockup-compact {
  opacity: 1;
  transform: translateY(-50%) translateX(0);
}

.site-header.is-condensed .linia-lockup {
  opacity: 0;
  transform: translateY(0.15rem) scale(0.96);
}

.site-header.is-condensed .linia-mark {
  transform: none;
}

.film-flow {
  position: relative;
}

.state {
  position: relative;
  min-height: 100svh;
  overflow: clip;
}

.state-takeover {
  --takeover-line-opacity: 0;
}

.state-shell {
  position: relative;
  z-index: 3;
  width: min(1120px, calc(100vw - 2.8rem));
  margin: 0 auto;
  padding: 7.6rem 0 4.2rem;
  min-height: 100svh;
  display: flex;
  align-items: center;
}

.center-shell {
  justify-content: center;
  text-align: center;
}

.ending-shell {
  min-height: 38svh;
  align-items: flex-end;
  padding-bottom: 2rem;
}

.state-copy {
  max-width: 48rem;
}

.state-copy.narrow {
  max-width: 34rem;
}

.state-media,
.state-picture,
.state-picture img,
#hero-canvas,
.overlay {
  position: absolute;
  inset: 0;
}

.state-picture,
.state-picture img,
#hero-canvas {
  width: 100%;
  height: 100%;
}

.state-picture img {
  object-fit: cover;
  object-position: center;
  filter: saturate(0.82) contrast(0.96) brightness(0.84);
  transform: scale(1.03);
}

.monochrome-picture img {
  filter: saturate(0.42) sepia(0.16) contrast(0.94) brightness(0.68);
}

.detail-picture img {
  filter: saturate(0.46) brightness(0.42) contrast(0.9);
  opacity: 0.5;
}

#hero-canvas {
  pointer-events: none;
  z-index: 1;
}

.overlay {
  pointer-events: none;
  z-index: 2;
}

.dust-veil {
  background:
    radial-gradient(ellipse at 30% 60%, rgba(197, 160, 78, 0.03), transparent 70%),
    radial-gradient(ellipse at 70% 18%, rgba(232, 213, 183, 0.03), transparent 48%);
}

.marine-wash {
  background: linear-gradient(180deg, rgba(15, 29, 54, 0), rgba(10, 22, 40, 0.25));
}

.marine-wash.dense,
.night-marine-solid {
  background:
    linear-gradient(180deg, rgba(15, 29, 54, 0.08), rgba(6, 18, 32, 0.54)),
    radial-gradient(circle at 50% 70%, rgba(6, 18, 32, 0.18), rgba(6, 18, 32, 0.64) 74%);
}

.amber-diffusion {
  background: radial-gradient(circle at 20% 70%, rgba(212, 135, 14, 0.1), transparent 50%);
}

.amber-diffusion.edge-light {
  background: radial-gradient(circle at 85% 55%, rgba(212, 135, 14, 0.07), transparent 38%);
}

.amber-diffusion.phone-glow {
  background:
    radial-gradient(circle at 50% 54%, rgba(212, 135, 14, 0.18), transparent 28%),
    radial-gradient(circle at 50% 54%, rgba(232, 213, 183, 0.06), transparent 50%);
}

.architectural-shadow {
  background: linear-gradient(135deg, rgba(0, 0, 0, 0.18), transparent 40%, transparent 60%, rgba(0, 0, 0, 0.08));
}

.glass-reflection {
  background: linear-gradient(115deg, transparent 40%, rgba(240, 230, 211, 0.03) 50%, transparent 60%);
}

.glass-reflection.soft {
  background: linear-gradient(120deg, transparent 38%, rgba(240, 230, 211, 0.02) 50%, transparent 62%);
}

.monumental-circle {
  background:
    radial-gradient(circle at 62% 24%, rgba(0, 0, 0, 0.34), transparent 30%),
    linear-gradient(135deg, rgba(0, 0, 0, 0.26), transparent 40%, transparent 64%, rgba(0, 0, 0, 0.12));
}

.canopy-shadow {
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.18) 0%, transparent 36%),
    linear-gradient(90deg, rgba(0, 0, 0, 0.08), transparent 28%, transparent 72%, rgba(0, 0, 0, 0.08));
}

.state-patterns {
  background:
    radial-gradient(circle at 15% 25%, rgba(197, 160, 78, 0.05), transparent 28%),
    linear-gradient(180deg, rgba(15, 29, 54, 0.3), rgba(6, 18, 32, 0.92));
}

.dune-contours,
.sphere-fragments,
.coastal-lines {
  opacity: 0.9;
}

.dune-contours {
  background-image:
    radial-gradient(circle at 16% 18%, transparent 0 58%, rgba(232, 213, 183, 0.04) 58.2%, transparent 58.8%),
    radial-gradient(circle at 72% 58%, transparent 0 54%, rgba(232, 213, 183, 0.035) 54.2%, transparent 54.8%),
    radial-gradient(circle at 38% 82%, transparent 0 46%, rgba(232, 213, 183, 0.03) 46.2%, transparent 46.8%);
}

.sphere-fragments {
  background-image:
    radial-gradient(circle at 18% 52%, transparent 0 17%, rgba(232, 213, 183, 0.035) 17.15%, transparent 17.8%),
    radial-gradient(circle at 82% 36%, transparent 0 13%, rgba(232, 213, 183, 0.03) 13.15%, transparent 13.7%),
    radial-gradient(circle at 62% 76%, transparent 0 12%, rgba(197, 160, 78, 0.03) 12.15%, transparent 12.8%);
}

.coastal-lines {
  background-image:
    linear-gradient(180deg, transparent 30%, rgba(232, 213, 183, 0.02) 30.4%, transparent 30.9%),
    linear-gradient(180deg, transparent 57%, rgba(232, 213, 183, 0.02) 57.3%, transparent 57.8%),
    linear-gradient(180deg, transparent 74%, rgba(197, 160, 78, 0.02) 74.4%, transparent 74.8%);
}

.state-label {
  margin: 0 0 1rem;
  font-size: 0.78rem;
  color: rgba(232, 213, 183, 0.76);
}

h1,
.state-lines p,
.shelter-text,
.silent-copy p,
.phone-hero {
  margin: 0;
}

.hero-title {
  font-family: "DM Serif Display", serif;
  font-size: clamp(3rem, 7.2vw, 6.9rem);
  line-height: 0.94;
  letter-spacing: 0.01em;
  max-width: 10ch;
  color: var(--pearl-dust-3);
}

.hero-title .word {
  display: inline-block;
  margin-right: 0.18em;
}

.hero-subline {
  margin-top: 1.2rem;
  max-width: 18ch;
  color: rgba(240, 230, 211, 0.86);
  font-size: clamp(1.1rem, 2vw, 1.45rem);
  font-weight: 300;
  letter-spacing: 0.03em;
}

.state-lines {
  display: grid;
  gap: 0.85rem;
}

.state-lines p,
.shelter-text,
.silent-copy p {
  font-family: "DM Serif Display", serif;
  font-size: clamp(1.65rem, 3vw, 2.7rem);
  line-height: 1.08;
  color: var(--pearl-dust-2);
}

.route-shell {
  align-items: center;
}

.route-copy {
  width: 100%;
}

.route-map {
  width: 100%;
  max-width: 980px;
  height: auto;
  margin: 0 0 1.2rem;
  filter: drop-shadow(0 18px 60px rgba(0, 0, 0, 0.16));
}

.route-grid path {
  fill: none;
  stroke: rgba(232, 213, 183, 0.04);
  stroke-width: 0.9;
}

.route-path {
  fill: none;
  stroke: url(#amberRoute);
  stroke-width: 1.2;
  stroke-linecap: round;
}

.route-primary {
  stroke: rgba(197, 160, 78, 0.82);
  stroke-width: 2.4;
}

.route-needle {
  stroke: rgba(197, 160, 78, 0.82);
  stroke-width: 1;
  opacity: 0;
}

.state-takeover::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(232, 213, 183, 0.42), transparent);
  opacity: var(--takeover-line-opacity);
  z-index: 3;
  pointer-events: none;
}

.city-core {
  fill: rgba(212, 135, 14, 0.95);
}

.city-primary {
  fill: rgba(212, 135, 14, 0.98);
}

.city-aura {
  fill: rgba(197, 160, 78, 0.1);
  stroke: rgba(197, 160, 78, 0.22);
  stroke-width: 1;
}

.label-city {
  fill: var(--pearl-dust-2);
  font-family: "Inter", sans-serif;
  font-size: 10px;
  letter-spacing: 0.03em;
}

.label-primary {
  font-size: 12px;
  fill: var(--pearl-dust-1);
}

.label-coord {
  fill: rgba(232, 213, 183, 0.62);
  font-size: 8px;
}

.route-note {
  margin: 0 0 1.35rem;
  color: rgba(240, 230, 211, 0.8);
  font-size: 0.98rem;
}

.price-whisper {
  width: min(26rem, 100%);
  padding-top: 1rem;
  border-top: 1px solid rgba(232, 213, 183, 0.12);
  color: rgba(240, 230, 211, 0.72);
}

.price-whisper p {
  margin: 0 0 0.9rem;
  font-size: 0.95rem;
}

.price-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.3rem 0;
  border-bottom: 1px solid rgba(232, 213, 183, 0.08);
  color: rgba(240, 230, 211, 0.8);
}

.price-row span:last-child {
  color: rgba(232, 213, 183, 0.92);
  font-variant-numeric: tabular-nums;
}

.phone-stage {
  width: 100%;
}

.phone-mark {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  position: relative;
}

.phone-signal {
  color: rgba(212, 135, 14, 0.92);
}

.phone-signal path {
  opacity: 0;
}

.phone-star {
  position: absolute;
  top: -0.8rem;
  width: 0.8rem;
  height: 0.8rem;
  opacity: 0;
}

.phone-star::before,
.phone-star::after {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  width: 0.8rem;
  height: 1px;
  background: rgba(212, 135, 14, 0.95);
  transform: translate(-50%, -50%);
}

.phone-star::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.phone-hero {
  display: inline-block;
  margin-top: 0.3rem;
  color: var(--pearl-dust-3);
  font-family: "DM Serif Display", serif;
  font-size: clamp(2.2rem, 6vw, 5.1rem);
  line-height: 1;
  letter-spacing: 0.02em;
  text-shadow: 0 0 26px rgba(212, 135, 14, 0.14);
}

.service-hint {
  margin: 1.2rem 0 0;
  color: rgba(232, 213, 183, 0.76);
  font-size: 0.76rem;
}

.ending-line {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1rem 2rem;
  align-items: center;
  padding-top: 1rem;
  border-top: 1px solid rgba(232, 213, 183, 0.12);
  color: rgba(240, 230, 211, 0.72);
  font-size: 0.95rem;
}

.footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.footer-links a {
  position: relative;
}

.legal {
  width: min(900px, calc(100vw - 2.6rem));
  margin: 7rem auto 4rem;
  padding: 1.4rem;
  border: 1px solid var(--line-soft);
  background:
    radial-gradient(circle at top left, rgba(197, 160, 78, 0.04), transparent 22%),
    linear-gradient(160deg, rgba(15, 29, 54, 0.8), rgba(6, 18, 32, 0.94));
  color: rgba(240, 230, 211, 0.86);
  box-shadow: var(--shadow-soft);
}

.legal h1,
.legal h2 {
  font-family: "DM Serif Display", serif;
  font-weight: 400;
  letter-spacing: 0.01em;
}

.legal h1 {
  font-size: clamp(2rem, 5vw, 3.2rem);
}

.legal .eyebrow {
  font-family: "Barlow Condensed", sans-serif;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-size: 0.8rem;
  color: rgba(232, 213, 183, 0.66);
}

[dir="rtl"] .site-header {
  grid-template-columns: auto 1fr auto;
}

[dir="rtl"] .state-copy,
[dir="rtl"] .ending-line,
[dir="rtl"] .route-copy {
  text-align: right;
}

[dir="rtl"] .language-switch {
  direction: ltr;
}

[dir="rtl"] .price-row,
[dir="rtl"] .ending-line {
  flex-direction: row-reverse;
}

[dir="rtl"] .brand-link {
  flex-direction: row-reverse;
}

@media (max-width: 920px) {
  .site-header {
    grid-template-columns: 1fr;
    justify-items: start;
  }

  .language-switch,
  .header-phone {
    justify-self: start;
  }
}

@media (max-width: 759px) {
  body {
    font-size: 1.04rem;
  }

  .site-header {
    gap: 0.65rem;
    padding: 0.9rem 1rem;
  }

  .state-shell {
    width: calc(100vw - 1.6rem);
    padding-top: 9.4rem;
    padding-bottom: 3.2rem;
  }

  .state-label {
    font-size: 0.9rem;
  }

  .linia-name {
    font-size: 1.18rem;
  }

  .linia-sub,
  .language-switch,
  .service-hint {
    font-size: 0.82rem;
  }

  .header-phone {
    font-size: 1.08rem;
  }

  .hero-title {
    font-size: clamp(3.2rem, 12vw, 4.8rem);
  }

  .hero-subline {
    max-width: 22ch;
    font-size: 1.26rem;
  }

  .state-lines p,
  .shelter-text,
  .silent-copy p {
    font-size: clamp(1.62rem, 8.8vw, 2.3rem);
  }

  .route-map {
    width: calc(100% + 1.6rem);
    max-width: none;
    margin-left: -0.8rem;
    margin-right: -0.8rem;
    margin-bottom: 1.4rem;
  }

  .label-city {
    font-size: 12px;
  }

  .label-primary {
    font-size: 13px;
  }

  .label-coord {
    font-size: 9px;
  }

  .route-note {
    font-size: 1.08rem;
  }

  .price-whisper {
    width: 100%;
  }

  .price-whisper p,
  .price-row {
    font-size: 1rem;
  }

  .phone-hero {
    font-size: clamp(2.2rem, 10vw, 3.5rem);
  }

  .ending-line {
    flex-direction: column;
    align-items: flex-start;
  }
}

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

  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
  }
}
