/* SYNAPTRON — Desert Monolith direction
   An original monumental industrial language: graphite, bone, restrained bronze. */

:root {
  --white: #f0eee9;
  --muted: #a8a39a;
  --line: rgba(226, 215, 195, 0.2);
  --glass: rgba(14, 12, 10, 0.68);
  --bone: #f0eee9;
  --sand: #b4a182;
  --bronze: #9d7144;
  --ink: #080706;
}

html,
body {
  background: var(--ink);
  color: var(--bone);
}

body:before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 1000;
  pointer-events: none;
  opacity: 0.055;
  background-image:
    repeating-radial-gradient(circle at 17% 31%, transparent 0 1px, #fff 1px 1.4px),
    repeating-linear-gradient(101deg, transparent 0 4px, rgba(255, 255, 255, 0.32) 5px 5.3px);
  background-size: 8px 8px, 19px 23px;
  mix-blend-mode: soft-light;
}

.world {
  background-image: url("/synaptron-hero-background-v2.webp") !important;
  background-position: 52% center !important;
  filter: contrast(1.07) brightness(0.56) saturate(0.76) !important;
  transform: scale(1.018);
  transition: transform 1.2s cubic-bezier(0.22, 1, 0.36, 1), filter 0.8s ease !important;
}

.world:before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 76% 57%, rgba(205, 175, 131, 0.11), transparent 27%),
    linear-gradient(108deg, rgba(6, 5, 4, 0.66) 0%, rgba(6, 5, 4, 0.24) 44%, rgba(6, 5, 4, 0.06) 72%);
}

.world:after {
  background:
    linear-gradient(180deg, rgba(5, 4, 3, 0.3), transparent 24%, transparent 70%, rgba(5, 4, 3, 0.55)),
    radial-gradient(ellipse at 50% 48%, transparent 32%, rgba(4, 3, 3, 0.5) 100%) !important;
}

.chapter-1 .world {
  transform: scale(1.035) translateX(-0.8%);
  filter: contrast(1.12) brightness(0.43) saturate(0.58) !important;
}

.chapter-2 .world {
  transform: scale(1.05) translateX(-1.5%);
  filter: contrast(1.13) brightness(0.38) saturate(0.48) !important;
}

.chapter-3 .world {
  transform: scale(1.065) translateX(-2.2%);
  filter: contrast(1.14) brightness(0.34) saturate(0.42) !important;
}

.chapter-4 .world {
  transform: scale(1.08) translateX(-3%);
  filter: contrast(1.16) brightness(0.3) saturate(0.36) !important;
}

.deck-shell:after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  box-shadow: inset 0 0 180px rgba(0, 0, 0, 0.72);
}

.deck-header {
  height: 86px;
  padding: 0 5.2vw;
  background: linear-gradient(180deg, rgba(15, 13, 11, 0.84), rgba(8, 7, 6, 0.66)) !important;
  border-color: rgba(226, 215, 195, 0.2) !important;
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.06), 0 20px 70px rgba(0, 0, 0, 0.32) !important;
  backdrop-filter: blur(34px) brightness(0.72) saturate(0.72) !important;
  -webkit-backdrop-filter: blur(34px) brightness(0.72) saturate(0.72) !important;
}

.deck-header:after {
  content: "";
  position: absolute;
  left: 5.2vw;
  right: 5.2vw;
  bottom: -1px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(180, 151, 106, 0.58) 48%, transparent);
  opacity: 0.7;
}

.brand > span {
  color: var(--bone);
  font-size: 22px;
  font-weight: 300;
  letter-spacing: 0.38em;
  transform: translateX(0.19em);
  text-shadow: 0 0 24px rgba(239, 236, 229, 0.08);
}

.brand > small {
  margin-top: 7px;
  color: var(--sand);
  letter-spacing: 0.18em;
}

.menu-link,
.deck-header nav button,
.language-current {
  color: #c2bdb4;
  letter-spacing: 0.19em;
}

.menu-mark i:last-child {
  background: var(--sand);
}

.deck-stage {
  inset: 86px 0 66px;
}

.deck-slide {
  padding: 4.6vh 7.7vw 3.8vh;
  gap: 3vh;
  transform: translateX(46px) scale(0.992);
  transition: opacity 0.58s ease, transform 0.76s cubic-bezier(0.22, 1, 0.36, 1), visibility 0.58s;
}

.deck-slide.active {
  transform: none;
}

.slide-head > span,
.contact-copy > span,
.glass-panel small,
.capability-card small,
.impact-cases small,
.experience-band small,
.profile-body > small {
  color: var(--sand) !important;
  letter-spacing: 0.2em;
}

.slide-head h2,
.contact-copy h2 {
  color: var(--bone);
  letter-spacing: -0.035em;
  text-wrap: balance;
}

.slide-head > p,
.slide-head .approach-statement,
.contact-context p {
  color: #c7c1b7;
}

.glass-panel {
  border-color: rgba(226, 215, 195, 0.24) !important;
  background:
    linear-gradient(128deg, rgba(65, 57, 47, 0.34), rgba(20, 17, 14, 0.72) 36%, rgba(8, 7, 6, 0.66)) !important;
  box-shadow:
    inset 1px 1px rgba(255, 248, 234, 0.14),
    inset -1px -1px rgba(0, 0, 0, 0.75),
    inset 0 26px 70px rgba(240, 223, 194, 0.025),
    0 36px 110px rgba(0, 0, 0, 0.58) !important;
  backdrop-filter: blur(42px) brightness(0.65) saturate(0.7) !important;
  -webkit-backdrop-filter: blur(42px) brightness(0.65) saturate(0.7) !important;
}

.glass-panel:before {
  background:
    linear-gradient(122deg, rgba(255, 244, 223, 0.1), rgba(255, 255, 255, 0.018) 21%, transparent 43%),
    radial-gradient(ellipse at 18% 0%, rgba(214, 186, 142, 0.08), transparent 42%) !important;
}

.glass-panel:after {
  background: linear-gradient(90deg, transparent, rgba(220, 192, 148, 0.13), transparent) !important;
}

.hero-card {
  isolation: isolate;
  overflow: hidden;
  background: url("/synaptron-hero-background-v2.webp") 52% center / cover no-repeat !important;
  box-shadow: inset 0 0 150px rgba(0, 0, 0, 0.24);
}

.hero-card:before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(180deg, rgba(4, 3, 3, 0.1), transparent 24%, transparent 72%, rgba(4, 3, 3, 0.42)),
    linear-gradient(90deg, rgba(6, 5, 4, 0.88) 0%, rgba(6, 5, 4, 0.7) 27%, rgba(6, 5, 4, 0.3) 49%, rgba(6, 5, 4, 0.035) 72%),
    radial-gradient(ellipse at 20% 52%, rgba(0, 0, 0, 0.13), transparent 48%);
}

.hero-card:after {
  z-index: 0;
  inset: auto -8% -10% !important;
  height: 48%;
  opacity: 0.48;
  background:
    radial-gradient(ellipse at 72% 88%, rgba(207, 170, 116, 0.13), transparent 44%),
    repeating-linear-gradient(176deg, transparent 0 17px, rgba(194, 161, 113, 0.018) 18px 19px) !important;
  filter: blur(13px);
  mix-blend-mode: screen;
  transform: translate3d(-2%, 1%, 0) skewX(-3deg);
}

.hero-copy {
  left: 7.7vw;
  top: 47%;
  max-width: min(780px, 54vw);
}

.hero-copy .brand-claim {
  color: var(--sand);
  font-size: clamp(11px, 0.82vw, 14px);
  letter-spacing: 0.28em;
}

.hero-copy h1 {
  max-width: 760px;
  margin: 29px 0 27px;
  color: var(--bone);
  font-size: clamp(62px, 6.5vw, 110px);
  line-height: 0.89;
  letter-spacing: -0.048em;
  text-shadow: 0 8px 42px rgba(0, 0, 0, 0.62);
}

.hero-copy .hero-lead {
  max-width: 710px;
  color: #c9c2b8;
  font-size: clamp(17px, 1.28vw, 21px);
}

.hero-actions {
  margin-top: 34px;
}

.hero-actions a,
.hero-actions button {
  min-height: 54px;
  border-color: rgba(226, 215, 195, 0.34);
  background: rgba(14, 12, 10, 0.34);
  color: var(--bone);
  letter-spacing: 0.16em;
  backdrop-filter: blur(24px);
}

.hero-actions a {
  border-color: rgba(230, 217, 195, 0.54);
  background: rgba(236, 229, 218, 0.94);
  color: #17130f;
}

.hero-actions button:hover {
  border-color: rgba(218, 190, 145, 0.62);
  background: rgba(157, 113, 68, 0.16);
}

.hero-proof {
  max-width: 800px;
  margin-top: 31px;
  border-color: rgba(226, 215, 195, 0.24);
}

.hero-proof span {
  color: #bbb4aa;
}

.hero-proof span + span {
  border-color: rgba(226, 215, 195, 0.16);
}

.capability-panel {
  border-radius: 2px;
}

.capability-panel .capability-card {
  min-height: 360px;
  padding: 3.5vh 2.2vw;
  border-color: rgba(226, 215, 195, 0.16);
  background: linear-gradient(155deg, rgba(255, 244, 225, 0.035), transparent 54%);
  transition: background 0.28s ease, transform 0.35s ease, box-shadow 0.35s ease;
}

.capability-card h3 {
  max-width: 285px;
  color: #eeeae3;
  font-size: clamp(24px, 1.85vw, 32px);
  letter-spacing: -0.025em;
}

.capability-card p {
  color: #c5beb4;
}

.capability-card > span {
  right: 2.2vw;
  bottom: 2.8vh;
  color: var(--sand);
}

.capability-card > span:after {
  content: "  ·";
  color: var(--bronze);
}

.capability-card:hover {
  z-index: 3;
  background: linear-gradient(145deg, rgba(184, 153, 107, 0.14), rgba(255, 255, 255, 0.03)) !important;
  box-shadow: inset 0 2px rgba(220, 190, 145, 0.2), 0 28px 76px rgba(0, 0, 0, 0.36);
  transform: translateY(-5px);
}

.impact-cases article,
.editorial-grid article,
.mandate-band article,
.mandate-band > div,
.legal-panel article {
  border-color: rgba(226, 215, 195, 0.16) !important;
}

.impact-cases h3,
.editorial-grid h3,
.mandate-band strong {
  color: #eeeae3;
}

.impact-cases > article > p,
.impact-cases dd,
.approach-grid article p,
.mandate-band article span,
.mandate-band > div p,
.experience-band span {
  color: #c4bdb3;
}

.impact-cases dl,
.experience-band span,
.profile-contact {
  border-color: rgba(226, 215, 195, 0.17);
}

.impact-cases dt {
  color: var(--sand);
}

.experience-band {
  background: linear-gradient(90deg, rgba(114, 88, 56, 0.14), rgba(12, 10, 8, 0.64)) !important;
}

.approach-grid article {
  transition: background 0.28s ease;
}

.approach-grid article:hover {
  background: linear-gradient(155deg, rgba(184, 153, 107, 0.12), transparent 68%);
}

.deck-cta {
  color: #d8d1c6;
  border-color: var(--sand);
}

.profile-card {
  border-color: rgba(226, 215, 195, 0.3) !important;
}

.profile-photo img {
  filter: grayscale(1) sepia(0.08) brightness(0.68) contrast(1.16) !important;
}

.profile-photo:after {
  background:
    linear-gradient(90deg, #0c0a08, rgba(12, 10, 8, 0.95) 22%, rgba(12, 10, 8, 0.46) 62%, rgba(12, 10, 8, 0.08)),
    linear-gradient(0deg, rgba(11, 9, 7, 0.56), transparent 60%) !important;
}

.profile-card h3,
.profile-contact a {
  color: #eeeae3;
}

.profile-card em,
.profile-card li,
.profile-card > p,
.profile-contact span {
  color: #bdb5aa;
}

.profile-card li {
  border-color: rgba(226, 215, 195, 0.18);
  background: rgba(65, 50, 34, 0.08);
}

.capability-overlay,
.index-overlay {
  background: rgba(5, 4, 3, 0.75);
  backdrop-filter: blur(34px) saturate(0.65);
}

.capability-detail,
.legal-modal,
.index-card {
  border-color: rgba(226, 215, 195, 0.31) !important;
  background: linear-gradient(135deg, rgba(62, 52, 42, 0.52), rgba(13, 11, 9, 0.9) 42%, rgba(7, 6, 5, 0.92)) !important;
  box-shadow: inset 1px 1px rgba(255, 246, 229, 0.12), 0 48px 130px rgba(0, 0, 0, 0.76) !important;
}

.service-result {
  background: linear-gradient(145deg, rgba(157, 113, 68, 0.2), rgba(255, 255, 255, 0.025)) !important;
  box-shadow: inset 3px 0 rgba(185, 151, 104, 0.58) !important;
}

.detail-close,
.index-close,
.legal-close {
  border-color: rgba(226, 215, 195, 0.34);
  background: rgba(9, 7, 6, 0.78);
}

.detail-close:hover,
.index-close:hover,
.legal-close:hover,
.detail-close:focus-visible,
.index-close:focus-visible,
.legal-close:focus-visible {
  background: var(--bone);
  color: #17130f;
}

.legal-modal {
  background: linear-gradient(145deg, rgba(39, 34, 28, 0.82), rgba(8, 7, 6, 0.96)) !important;
}

.legal-modal > header,
.terms-intro {
  border-color: rgba(226, 215, 195, 0.17);
  background: rgba(255, 245, 226, 0.035);
}

.legal-tabs button {
  border-color: rgba(226, 215, 195, 0.2);
  background: rgba(10, 8, 7, 0.28);
  color: #989087;
}

.legal-tabs button.active {
  background: rgba(168, 136, 93, 0.16);
  color: var(--bone);
  box-shadow: inset 0 -2px var(--bronze);
}

.legal-modal .legal-panel article {
  background: linear-gradient(145deg, rgba(255, 245, 226, 0.025), transparent 60%);
}

.legal-panel p,
.legal-panel.terms p,
.terms-intro span {
  color: #bdb6ac;
}

.terms-intro strong,
.legal-panel strong,
.legal-panel a {
  color: #e7e1d8;
}

.deck-controls {
  height: 66px;
  background: linear-gradient(180deg, rgba(10, 8, 7, 0.62), rgba(16, 13, 10, 0.84)) !important;
  border-color: rgba(226, 215, 195, 0.18) !important;
  backdrop-filter: blur(32px) brightness(0.7) saturate(0.7) !important;
}

.progress {
  background: rgba(226, 215, 195, 0.16);
}

.progress i {
  background: linear-gradient(90deg, var(--bone), var(--sand));
  box-shadow: 0 0 15px rgba(183, 151, 103, 0.34);
}

.deck-controls button {
  border-color: rgba(226, 215, 195, 0.24);
  background: rgba(255, 245, 226, 0.025);
}

.deck-controls button:hover {
  border-color: var(--sand);
  background: rgba(157, 113, 68, 0.16);
  color: var(--bone);
}

.counter,
.copyright,
.footer-legal {
  color: #918980;
}

button:focus-visible,
a:focus-visible {
  outline-color: var(--sand);
}

/* Cinematic desert veil between chapters: no individual particles. */
#sand-transition-veil {
  position: fixed;
  inset: 0;
  z-index: 76;
  pointer-events: none;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
}

/* Keep the multilingual hero statement deliberately composed in two lines. */
.hero-copy {
  max-width: min(1040px, 68vw);
}

.hero-copy h1 {
  max-width: none;
  white-space: nowrap;
  font-size: clamp(58px, 5.35vw, 96px);
}

#sand-transition-veil.active {
  opacity: 1;
  visibility: visible;
}

.sand-veil-field {
  position: absolute;
  inset: -12% -34%;
  opacity: 0;
  background:
    linear-gradient(96deg,
      transparent 10%,
      rgba(28, 20, 14, 0.08) 28%,
      rgba(82, 58, 39, 0.42) 43%,
      rgba(176, 139, 93, 0.2) 51%,
      rgba(36, 25, 17, 0.5) 60%,
      transparent 78%),
    repeating-linear-gradient(176deg,
      transparent 0 13px,
      rgba(192, 157, 111, 0.025) 14px 15px);
  filter: blur(8px);
  transform: translate3d(-54%, 0, 0) skewX(-9deg) scaleY(1.12);
}

.sand-veil-horizon {
  position: absolute;
  left: -8%;
  top: 55%;
  width: 116%;
  height: 1px;
  opacity: 0;
  background: linear-gradient(90deg,
    transparent 5%,
    rgba(157, 113, 68, 0.16) 27%,
    rgba(227, 207, 174, 0.82) 50%,
    rgba(157, 113, 68, 0.16) 73%,
    transparent 95%);
  box-shadow: 0 0 18px rgba(195, 156, 105, 0.22);
  transform: scaleX(0.04);
  transform-origin: center;
}

#sand-transition-veil.active .sand-veil-field {
  animation: sand-veil-sweep 0.9s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

#sand-transition-veil.active .sand-veil-horizon {
  animation: sand-horizon-pulse 0.9s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.deck-stage:before {
  content: "";
  position: absolute;
  z-index: 1;
  left: -12%;
  right: -12%;
  bottom: -8%;
  height: 42%;
  pointer-events: none;
  opacity: 0.28;
  background:
    radial-gradient(ellipse at 28% 90%, rgba(179, 146, 99, 0.18), transparent 49%),
    radial-gradient(ellipse at 70% 100%, rgba(228, 207, 173, 0.09), transparent 44%),
    repeating-linear-gradient(174deg, transparent 0 13px, rgba(194, 163, 117, 0.018) 14px 15px);
  filter: blur(10px);
  transform: translate3d(-2%, 0, 0) skewX(-8deg);
  animation: desert-haze 18s ease-in-out infinite alternate;
}

.deck-slide {
  z-index: 2;
}

.veil-source-out {
  animation: veil-source-out 0.5s cubic-bezier(0.22, 0.61, 0.36, 1) both !important;
  transform-origin: 70% 50%;
}

.veil-arrive {
  animation: veil-arrive 0.72s cubic-bezier(0.16, 1, 0.3, 1) both !important;
}

body.veil-transitioning .world {
  filter: contrast(1.1) brightness(0.42) saturate(0.58) blur(1.6px) !important;
}

body.veil-transitioning .deck-stage:after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 75;
  pointer-events: none;
  opacity: 0;
  background: rgba(8, 6, 4, 0.18);
  animation: veil-dim 0.9s ease both;
}

@keyframes veil-source-out {
  0% {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(0, 0, 0);
    clip-path: inset(0 0 0 0);
  }
  45% {
    opacity: 0.72;
    filter: blur(1px);
  }
  100% {
    opacity: 0;
    filter: blur(3px);
    transform: translate3d(22px, 0, 0);
    clip-path: inset(0 0 0 96%);
  }
}

@keyframes veil-arrive {
  0% {
    opacity: 0;
    filter: blur(5px);
    transform: translate3d(22px, 0, 0);
    clip-path: inset(0 0 0 96%);
  }
  52% {
    opacity: 0.62;
    filter: blur(1.4px);
  }
  100% {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(0, 0, 0);
    clip-path: inset(0 0 0 0);
  }
}

@keyframes sand-veil-sweep {
  0% {
    opacity: 0;
    transform: translate3d(-54%, 0, 0) skewX(-9deg) scaleY(1.12);
  }
  42% {
    opacity: 0.9;
  }
  100% {
    opacity: 0;
    transform: translate3d(44%, 0, 0) skewX(-9deg) scaleY(1.12);
  }
}

@keyframes sand-horizon-pulse {
  0% { opacity: 0; transform: scaleX(0.04); }
  34% { opacity: 0.82; transform: scaleX(0.5); }
  58% { opacity: 0.72; transform: scaleX(1); }
  100% { opacity: 0; transform: scaleX(1); }
}

@keyframes veil-dim {
  0%, 100% { opacity: 0; }
  38%, 62% { opacity: 1; }
}

@keyframes desert-haze {
  0% {
    opacity: 0.18;
    transform: translate3d(-3%, 0, 0) skewX(-8deg) scaleY(0.96);
  }
  100% {
    opacity: 0.34;
    transform: translate3d(3%, -2%, 0) skewX(-5deg) scaleY(1.04);
  }
}

@keyframes monolith-breathe {
  0%, 100% { transform: scale(1.018); }
  50% { transform: scale(1.028); }
}

@keyframes hero-depth-drift {
  0% { background-position: 51.6% 50%; }
  50% { background-position: 52.2% 49.4%; }
  100% { background-position: 52.8% 50.2%; }
}

@keyframes foreground-haze-drift {
  0% { opacity: 0.36; transform: translate3d(-3%, 1%, 0) skewX(-4deg) scaleY(0.96); }
  100% { opacity: 0.58; transform: translate3d(3%, -1%, 0) skewX(-2deg) scaleY(1.04); }
}

@media (min-width: 901px) and (prefers-reduced-motion: no-preference) {
  .chapter-0 .world {
    animation: monolith-breathe 20s ease-in-out infinite;
  }

  .hero-card {
    animation: hero-depth-drift 26s ease-in-out infinite alternate;
  }

  .hero-card:after {
    animation: foreground-haze-drift 18s ease-in-out infinite alternate;
  }
}

@media (max-width: 1180px) {
  .hero-copy {
    max-width: 76vw;
  }

  .hero-copy h1 {
    font-size: clamp(48px, 6.4vw, 72px);
  }
}

@media (max-width: 900px) {
  .deck-header {
    height: 72px;
  }

  .deck-stage {
    inset: 72px 0 60px;
  }

  .deck-slide {
    padding: 3vh 5.5vw;
  }

  .world,
  .chapter-1 .world,
  .chapter-2 .world,
  .chapter-3 .world,
  .chapter-4 .world {
    background-position: 64% center !important;
    transform: scale(1.04);
  }

  .hero-card {
    background-position: 64% center !important;
  }

  .hero-card:before {
    background:
      linear-gradient(180deg, rgba(4, 3, 3, 0.08), transparent 64%, rgba(4, 3, 3, 0.42)),
      linear-gradient(90deg, rgba(6, 5, 4, 0.93), rgba(6, 5, 4, 0.66) 60%, rgba(6, 5, 4, 0.14));
  }

  .hero-copy {
    left: 6vw;
    max-width: 88vw;
  }

  .hero-copy h1 {
    font-size: clamp(40px, 7.3vw, 60px);
  }

  .capability-panel .capability-card {
    min-height: 230px;
  }

  .profile-photo:after {
    background: linear-gradient(0deg, #0c0a08 0%, rgba(12, 10, 8, 0.48) 58%, rgba(12, 10, 8, 0.08)) !important;
  }
}

@media (max-width: 560px) {
  .deck-header {
    padding: 0 6vw;
  }

  .deck-header:after {
    left: 6vw;
    right: 6vw;
  }

  .brand > span {
    font-size: 15px;
    letter-spacing: 0.28em;
    transform: translateX(0.14em);
  }

  .hero-copy {
    top: 47%;
    max-width: 88vw;
  }

  .hero-copy h1 {
    margin: 22px 0;
    font-size: clamp(29px, 8.55vw, 40px);
    line-height: 0.92;
    letter-spacing: -0.055em;
  }

  .hero-copy .hero-lead {
    font-size: 15px;
  }

  .hero-actions {
    margin-top: 26px;
  }

  .capability-panel .capability-card {
    min-height: 210px;
    padding: 26px 24px;
  }

  .capability-card > span {
    right: 24px;
    bottom: 22px;
  }

  .legal-modal {
    width: 92vw;
  }
}

@media (prefers-reduced-motion: reduce) {
  .world,
  .chapter-0 .world,
  .hero-card,
  .hero-card:after {
    animation: none !important;
  }

  .deck-stage:before,
  .veil-source-out,
  .veil-arrive,
  body.veil-transitioning .deck-stage:after {
    animation: none !important;
  }

  #sand-transition-veil {
    display: none;
  }
}
