/*
  Bilingual and phone normalization layer.
  The original cinematic visual system remains in site.css. This file only
  adds language, RTL, responsive composition, and public-site hardening.
*/

.site-header {
  grid-template-columns: auto minmax(0, 1fr) auto auto;
}

.language-switch,
.footer-language,
.legal-header__actions {
  display: inline-flex;
  align-items: center;
}

.language-switch {
  gap: 0.45rem;
  color: var(--text-muted);
  font-family: "IBM Plex Mono", monospace;
  font-size: 0.58rem;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

.language-switch a,
.footer-language a,
.legal-language {
  color: var(--text-muted);
  transition: color 180ms ease;
}

.language-switch a:hover,
.language-switch a[aria-current="page"],
.footer-language a:hover,
.legal-language:hover {
  color: var(--signal-hot);
}

.language-switch a[aria-current="page"] {
  pointer-events: none;
}

.footer-language {
  margin-inline-start: auto;
  white-space: nowrap;
}

.legal-header__actions {
  gap: 1rem;
}

.legal-language {
  border-inline-end: 1px solid var(--line-soft);
  padding-inline-end: 1rem;
  font-family: "IBM Plex Mono", monospace;
  font-size: 0.62rem;
  letter-spacing: 0.06em;
}

/* Root language entry used only before locale selection/redirect. */
.locale-entry {
  min-height: 100svh;
  display: grid;
  place-items: center;
  padding: 5vw;
}

.locale-entry__panel {
  width: min(92vw, 60rem);
  min-height: min(80svh, 48rem);
  display: grid;
  align-content: center;
  justify-items: start;
  position: relative;
  overflow: hidden;
  padding: clamp(2rem, 7vw, 6rem);
  border: 1px solid var(--line);
  background:
    radial-gradient(circle at 82% 22%, rgba(243,161,29,0.17), transparent 25rem),
    linear-gradient(135deg, rgba(255,255,255,0.025), transparent 45%),
    var(--ink-raised);
}

.locale-entry__panel::after {
  content: "";
  position: absolute;
  width: 30rem;
  height: 30rem;
  inset-inline-end: -12rem;
  bottom: -13rem;
  border: 1px solid rgba(243,161,29,0.14);
  border-radius: 50%;
  box-shadow: 0 0 0 4rem rgba(243,161,29,0.025), 0 0 0 8rem rgba(243,161,29,0.012);
}

.locale-entry__panel > * {
  position: relative;
  z-index: 1;
}

.locale-entry__panel img {
  margin-bottom: 2rem;
}

.locale-entry__panel h1 {
  margin-top: 1rem;
  font-size: clamp(3rem, 8vw, 7rem);
  font-weight: 340;
  letter-spacing: -0.065em;
  line-height: 0.96;
}

.locale-entry__panel h1 span {
  display: block;
  margin-top: 0.45rem;
  font-family: Tahoma, Arial, sans-serif;
  letter-spacing: -0.035em;
}

.locale-entry__panel nav {
  display: flex;
  gap: 1rem;
  margin-top: 2.5rem;
}

.locale-entry__panel nav a {
  min-width: 9rem;
  border-top: 1px solid var(--signal);
  padding: 1rem 0;
  color: var(--text-soft);
  font-family: "IBM Plex Mono", Tahoma, monospace;
  text-transform: uppercase;
}

.locale-entry__panel nav a:hover {
  color: var(--signal-hot);
}

.error-state {
  width: min(90vw, 52rem);
  min-height: 100svh;
  display: grid;
  align-content: center;
  justify-items: start;
  margin: 0 auto;
}

.error-state h1 {
  margin-top: 1rem;
  font-size: clamp(3.4rem, 9vw, 8rem);
  font-weight: 340;
  letter-spacing: -0.06em;
  line-height: 0.96;
}

.error-state > p:not(.eyebrow) {
  max-width: 36rem;
  margin-top: 1.5rem;
  color: var(--text-soft);
}

/* True RTL: text, directional controls, and diagrams are mirrored logically. */
html[dir="rtl"] body {
  font-family: Tahoma, Arial, sans-serif;
  line-height: 1.75;
}

html[dir="rtl"] .identity__wordmark strong,
html[dir="rtl"] .system-core strong {
  font-family: "Manrope", "Segoe UI", sans-serif;
  direction: ltr;
}

html[dir="rtl"] .identity__wordmark span,
html[dir="rtl"] .site-nav a,
html[dir="rtl"] .header-entry,
html[dir="rtl"] .entry-action,
html[dir="rtl"] .eyebrow,
html[dir="rtl"] .system-label,
html[dir="rtl"] .system-node,
html[dir="rtl"] .cinema-visual figcaption,
html[dir="rtl"] .operation-cinema figcaption,
html[dir="rtl"] .language-switch,
html[dir="rtl"] .legal-index a,
html[dir="rtl"] .legal-meta,
html[dir="rtl"] .legal-footer,
html[dir="rtl"] .legal-header__back,
html[dir="rtl"] .legal-language {
  font-family: Tahoma, Arial, sans-serif;
  letter-spacing: 0;
  text-transform: none;
}

html[dir="rtl"] h1,
html[dir="rtl"] h2,
html[dir="rtl"] h3,
html[dir="rtl"] .operation-panel__copy h3 {
  letter-spacing: -0.035em;
}

html[dir="rtl"] .header-entry,
html[dir="rtl"] .entry-action {
  border-left: 0;
  border-right: 1px solid var(--signal);
  padding-right: 1rem;
  padding-left: 0;
}

html[dir="rtl"] .header-entry svg,
html[dir="rtl"] .entry-action svg,
html[dir="rtl"] .text-link span[aria-hidden="true"],
html[dir="rtl"] .legal-header__back svg {
  transform: scaleX(-1);
}

html[dir="rtl"] .header-entry:hover svg,
html[dir="rtl"] .entry-action:hover svg {
  transform: scaleX(-1) translateX(0.35rem);
}

html[dir="rtl"] .site-nav a::after {
  transform-origin: left;
}

html[dir="rtl"] .site-nav a:hover::after,
html[dir="rtl"] .site-nav a.is-active::after {
  transform-origin: right;
}

html[dir="rtl"] .system-label--input {
  right: 0;
  left: auto;
}

html[dir="rtl"] .system-label--output {
  right: auto;
  left: 0;
  text-align: left;
}

html[dir="rtl"] .system-node--website { right: 3%; left: auto; }
html[dir="rtl"] .system-node--apps { right: 9%; left: auto; }
html[dir="rtl"] .system-node--email { right: 2%; left: auto; }
html[dir="rtl"] .system-node--people { right: 8%; left: auto; }
html[dir="rtl"] .system-node--devices { right: 2%; left: auto; }
html[dir="rtl"] .system-node--platforms { right: 9%; left: auto; }
html[dir="rtl"] .system-node--requests { left: 8%; right: auto; }
html[dir="rtl"] .system-node--workflow { left: 2%; right: auto; }
html[dir="rtl"] .system-node--approval { left: 9%; right: auto; }
html[dir="rtl"] .system-node--evidence { left: 2%; right: auto; }
html[dir="rtl"] .system-node--alerts { left: 9%; right: auto; }
html[dir="rtl"] .system-node--visibility { left: 2%; right: auto; }

html[dir="rtl"] .trace-node,
html[dir="rtl"] .problem-visual__image,
html[dir="rtl"] .operation-flow small {
  text-align: right;
}

html[dir="rtl"] .problem-resolution,
html[dir="rtl"] .founder-copy blockquote {
  padding-left: 0;
  padding-right: 1.25rem;
}

html[dir="rtl"] .architecture-rail,
html[dir="rtl"] .capability-selector {
  border-right: 0;
  border-left: 1px solid var(--line-soft);
}

html[dir="rtl"] .architecture-tab::before {
  right: auto;
  left: 0;
}

html[dir="rtl"] .capability-tab:hover,
html[dir="rtl"] .capability-tab.is-active {
  padding-left: inherit;
  padding-right: 1.5rem;
}

html[dir="rtl"] .operation-flow li {
  border-right: 0;
  border-left: 1px solid rgba(255,255,255,0.16);
}

html[dir="rtl"] .operation-flow li:last-child {
  border-left: 0;
}

html[dir="rtl"] .legal-copy li {
  padding-left: 0;
  padding-right: 1.3rem;
}

html[dir="rtl"] .legal-copy li::before {
  left: auto;
  right: 0;
}

html[dir="rtl"] .legal-copy,
html[dir="rtl"] .legal-hero {
  margin-left: auto;
  margin-right: 0;
}

/* Keep every visual cinematic and give phone its own crop rather than hiding it. */
.cinema-visual img,
.operation-cinema img,
.physical-visual img,
.security-visual img,
.founder-visual img {
  transform: translateZ(0);
}

@media (hover: hover) and (pointer: fine) {
  .cinema-visual img,
  .operation-cinema img,
  .physical-visual img,
  .security-visual img {
    transition: transform 1.2s var(--ease), filter 700ms ease;
  }

  .cinema-visual:hover img,
  .operation-panel:hover .operation-cinema img,
  .physical-visual:hover img,
  .security-system:hover .security-visual img {
    transform: scale(1.018);
    filter: saturate(0.96) contrast(1.06);
  }
}

@media (max-width: 1180px) {
  .site-header {
    gap: 1rem;
  }

  .language-switch {
    font-size: 0.54rem;
  }
}

@media (max-width: 1020px) {
  .site-header {
    grid-template-columns: minmax(0, 1fr) auto auto;
    grid-template-areas: "identity language menu";
  }

  .identity { grid-area: identity; }
  .language-switch { grid-area: language; }
  .menu-toggle { grid-area: menu; }
  .site-nav { grid-area: nav; }
  .header-entry { grid-area: entry; }

  .site-header.menu-open {
    grid-template-rows: var(--header-height) minmax(0, 1fr) auto;
    grid-template-areas:
      "identity language menu"
      "nav nav nav"
      "entry entry entry";
  }

  .site-header.menu-open .site-nav,
  .site-header.menu-open .header-entry {
    grid-column: auto;
  }

  html[dir="rtl"] .site-header {
    grid-template-areas: "identity language menu";
  }

  html[dir="rtl"] .site-header.menu-open {
    grid-template-areas:
      "identity language menu"
      "nav nav nav"
      "entry entry entry";
  }

  html[dir="rtl"] .site-header.menu-open .site-nav a {
    text-align: right;
  }

  .language-switch {
    justify-self: end;
    border-inline-end: 1px solid var(--line-soft);
    padding-inline-end: 0.85rem;
  }

  html[dir="rtl"] .language-switch {
    justify-self: start;
  }
}

@media (max-width: 760px) {
  :root {
    --page: 90vw;
  }

  .site-header {
    padding-inline: 5vw;
  }

  .language-switch {
    gap: 0.3rem;
    font-size: 0.52rem;
  }

  .menu-toggle__label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
  }

  .hero h1 {
    max-width: 9ch;
    line-height: 0.94;
  }

  html[dir="rtl"] .hero h1 {
    max-width: 10ch;
    font-size: clamp(3rem, 14vw, 4.45rem);
    line-height: 1.08;
  }

  html[dir="rtl"] .hero__lead,
  html[dir="rtl"] .section-heading > p,
  html[dir="rtl"] .entry-copy > p {
    line-height: 1.9;
  }

  .hero-system {
    min-height: 500px;
  }

  .cinema-visual,
  .physical-visual,
  .security-visual {
    aspect-ratio: 4 / 5;
  }

  .operation-cinema {
    aspect-ratio: 4 / 5;
  }

  .cinema-visual img,
  .operation-cinema img,
  .physical-visual img,
  .security-visual img {
    object-position: center center;
  }

  .cinema-visual--problem img { object-position: 47% center; }
  .cinema-visual--control img { object-position: 54% center; }
  .capabilities-section .cinema-visual img { object-position: 56% center; }
  .operation-panel[data-operation-panel="hospitality"] img { object-position: 54% center; }
  .operation-panel[data-operation-panel="automotive"] img { object-position: 53% center; }
  .operation-panel[data-operation-panel="hr"] img { object-position: 53% center; }
  .operation-panel[data-operation-panel="business"] img { object-position: 55% center; }
  .operation-panel[data-operation-panel="facilities"] img { object-position: 61% center; }
  .operation-panel[data-operation-panel="retail"] img { object-position: 52% center; }
  .operation-panel[data-operation-panel="custom"] img { object-position: 48% center; }
  .physical-visual img { object-position: 45% center; }
  .security-visual img { object-position: 50% center; }

  .cinema-visual figcaption,
  .operation-cinema figcaption {
    right: 5vw;
    left: 5vw;
    padding-top: 0.7rem;
    border-top: 1px solid rgba(255,255,255,0.22);
    font-size: 0.55rem;
    line-height: 1.5;
  }

  html[dir="rtl"] .cinema-visual figcaption,
  html[dir="rtl"] .operation-cinema figcaption {
    text-align: right;
  }

  .architecture-rail,
  .capability-selector,
  .operation-selector {
    scroll-snap-type: inline mandatory;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
  }

  .architecture-rail::-webkit-scrollbar,
  .capability-selector::-webkit-scrollbar,
  .operation-selector::-webkit-scrollbar {
    display: none;
  }

  .architecture-tab,
  .capability-tab,
  .operation-tab {
    scroll-snap-align: start;
    min-height: 4.7rem;
  }

  .operation-selector {
    display: flex;
    overflow-x: auto;
    padding-bottom: 0.3rem;
  }

  .operation-tab {
    flex: 0 0 auto;
  }

  .operation-flow {
    overflow-x: auto;
    scroll-snap-type: inline mandatory;
    scrollbar-width: none;
  }

  .operation-flow::-webkit-scrollbar { display: none; }

  .operation-flow li {
    min-width: 5.4rem;
    scroll-snap-align: start;
  }

  html[dir="rtl"] .system-node--website { right: 1%; }
  html[dir="rtl"] .system-node--apps { right: 5%; }
  html[dir="rtl"] .system-node--email { right: 0; }
  html[dir="rtl"] .system-node--people { right: 5%; }
  html[dir="rtl"] .system-node--devices { right: 0; }
  html[dir="rtl"] .system-node--platforms { right: 5%; }
  html[dir="rtl"] .system-node--requests { left: 5%; }
  html[dir="rtl"] .system-node--workflow { left: 0; }
  html[dir="rtl"] .system-node--approval { left: 5%; }
  html[dir="rtl"] .system-node--evidence { left: 0; }
  html[dir="rtl"] .system-node--alerts { left: 5%; }
  html[dir="rtl"] .system-node--visibility { left: 0; }

  html[dir="rtl"] .trace-node {
    grid-template-columns: 1fr 2rem;
    justify-items: end;
    padding-right: 0.2rem;
    padding-left: 0;
  }

  html[dir="rtl"] .trace-node i {
    grid-column: 2;
  }

  html[dir="rtl"] .trace-node::after {
    right: 0.62rem;
    left: auto;
  }

  html[dir="rtl"] .architecture-rail,
  html[dir="rtl"] .capability-selector {
    border-left: 0;
  }

  html[dir="rtl"] .architecture-tab,
  html[dir="rtl"] .capability-tab {
    border-right: 0;
    border-left: 1px solid var(--line-soft);
  }

  .founder-visual {
    min-height: 34rem;
  }

  .founder-visual img {
    object-position: 58% center;
  }

  .entry-section {
    min-height: 78svh;
  }

  .entry-route {
    overflow-x: auto;
    scroll-snap-type: inline mandatory;
    scrollbar-width: none;
  }

  .entry-route::-webkit-scrollbar { display: none; }

  .entry-route span {
    min-width: 6.5rem;
    scroll-snap-align: start;
  }

  .footer-legal {
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 0.9rem 1.2rem;
  }

  .footer-language {
    width: 100%;
    margin-inline-start: 0;
  }

  .legal-header__actions {
    gap: 0.65rem;
  }

  .legal-language {
    padding-inline-end: 0.65rem;
  }

  html[dir="rtl"] .legal-index a:nth-child(odd) {
    border-right: 0;
    border-left: 1px solid var(--line-soft);
    padding-right: 0;
    padding-left: 0.6rem;
  }

  html[dir="rtl"] .legal-index a:nth-child(even) {
    padding-left: 0;
    padding-right: 0.6rem;
  }

  .locale-entry__panel {
    min-height: 82svh;
  }

  .locale-entry__panel nav {
    width: 100%;
    display: grid;
  }

  .locale-entry__panel nav a {
    min-width: 0;
  }
}

@media (prefers-reduced-data: reduce) {
  .cinema-visual img,
  .operation-cinema img,
  .physical-visual img,
  .security-visual img {
    filter: none;
  }
}


/* v3.1 media integrity: explicit replaced-element boxes prevent mixed-version layout damage. */
.founder-visual {
  isolation: isolate;
}

.founder-visual > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center center;
}

.operation-cinema {
  width: 100%;
  height: 100%;
  min-width: 0;
}

.operation-cinema > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}

@media (max-width: 760px) {
  .founder-visual > img {
    object-position: 58% center;
  }
}
