/*
 * AIXM teaser visual contract: one viewport, one action, no corporate chrome.
 * The raster horizon carries world imagery; CSS only positions live UI.
 */
:root {
  color: #e8e1d7;
  background: #050504;
  font-family: "Helvetica Neue", "Segoe UI", Arial, sans-serif;
  font-synthesis: none;
}

* { box-sizing: border-box; }

html, body, #root {
  width: 100%;
  min-width: 320px;
  height: 100%;
  min-height: 100%;
  margin: 0;
  background: #050504;
}

body {
  overflow: hidden;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

button { font: inherit; }

.landing {
  --field-x: 0px;
  --field-y: 0px;
  position: relative;
  isolation: isolate;
  width: 100%;
  height: 100svh;
  min-height: 640px;
  overflow: hidden;
  background: #050504;
  color: #e8e1d7;
}

.horizon {
  position: absolute;
  inset: -12px;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
}

.horizon img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  opacity: 0.92;
  transform: translate3d(var(--field-x), var(--field-y), 0) scale(1.025);
  transition: transform 900ms cubic-bezier(0.2, 0.7, 0.2, 1), opacity 1.2s ease;
  animation: field-breathe 12s ease-in-out infinite alternate;
  user-select: none;
}

.wordmark {
  position: absolute;
  top: clamp(30px, 5.4vh, 58px);
  left: clamp(28px, 4.2vw, 68px);
  width: clamp(142px, 10.5vw, 166px);
  height: clamp(38px, 3.4vw, 48px);
  overflow: hidden;
}

.wordmark img {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 132%;
  max-width: none;
  height: auto;
  transform: translate(-50%, -50%);
  pointer-events: none;
  user-select: none;
}

.declaration {
  position: absolute;
  left: clamp(30px, 4.8vw, 76px);
  bottom: clamp(116px, 16.5vh, 178px);
  max-width: min(67vw, 1040px);
}

.declaration h1 {
  margin: 0;
  color: #e9e3db;
  font-family: "Bodoni 72", Didot, "Iowan Old Style", Baskerville, "Times New Roman", serif;
  font-size: clamp(4.6rem, 8.4vw, 8.2rem);
  font-weight: 400;
  letter-spacing: -0.055em;
  line-height: 0.88;
  text-wrap: balance;
}

.declaration p {
  margin: clamp(10px, 1.2vh, 14px) 0 0;
  color: rgba(234, 228, 218, 0.78);
  font-size: clamp(1.05rem, 1.4vw, 1.45rem);
  font-weight: 380;
  letter-spacing: 0.055em;
  line-height: 1.4;
}

.threshold {
  position: absolute;
  right: clamp(30px, 5.2vw, 82px);
  top: 68%;
  min-width: 14.5rem;
  min-height: 44px;
  padding: 12px 0;
  border: 0;
  background: transparent;
  color: rgba(218, 184, 145, 0.76);
  cursor: pointer;
  font-size: clamp(0.64rem, 0.82vw, 0.82rem);
  font-weight: 400;
  letter-spacing: 0.24em;
  line-height: 1;
  text-align: right;
  text-transform: uppercase;
  transition: color 500ms ease, letter-spacing 500ms ease;
}

.threshold:hover {
  color: #ead9c5;
  letter-spacing: 0.28em;
}

.threshold:focus-visible {
  outline: 1px solid rgba(218, 184, 145, 0.68);
  outline-offset: 8px;
}

.domains {
  position: absolute;
  left: clamp(30px, 4.8vw, 76px);
  bottom: clamp(32px, 5vh, 54px);
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: max-content;
  gap: clamp(36px, 5vw, 88px);
  color: rgba(218, 184, 145, 0.74);
  font-size: clamp(0.58rem, 0.68vw, 0.72rem);
  font-weight: 400;
  letter-spacing: 0.31em;
  line-height: 1;
}

/* PAPERS is a research/evidence portal, not a fifth AIXM domain.
   Push it apart from WORLD with deliberate negative space. */
.domains .papers {
  margin-left: clamp(48px, 10vw, 160px);
  color: rgba(218, 184, 145, 0.74);
  text-decoration: none;
  cursor: pointer;
}
.domains .papers .papers-arrow {
  display: inline-block;
  opacity: 0;
  margin-left: 0.35em;
  transition: opacity 220ms ease;
}
.domains .papers:hover .papers-arrow {
  opacity: 1;
}

@keyframes field-breathe {
  from { opacity: 0.86; }
  to { opacity: 0.96; }
}

@media (max-width: 600px) {
  .landing { min-height: 560px; }
  .horizon { inset: -8px; }

  .horizon img {
    object-position: center center;
    transform: translate3d(var(--field-x), var(--field-y), 0) scale(1.018);
  }

  .wordmark {
    top: 28px;
    left: 24px;
    width: 126px;
    height: 36px;
  }

  .declaration {
    left: 24px;
    right: 24px;
    bottom: 168px;
    max-width: none;
  }

  .declaration h1 {
    font-size: clamp(3.25rem, 15vw, 4.25rem);
    letter-spacing: -0.052em;
    line-height: 0.92;
  }

  .declaration p {
    margin-top: 10px;
    font-size: 0.95rem;
    letter-spacing: 0.04em;
    color: rgba(234, 228, 218, 0.78);
  }

  .threshold {
    top: auto;
    right: 24px;
    bottom: 102px;
    min-width: 0;
    font-size: 0.6rem;
    letter-spacing: 0.2em;
  }

  .domains {
    left: 24px;
    right: 24px;
    bottom: 34px;
    grid-auto-columns: auto;
    justify-content: space-between;
    gap: 0;
    font-size: 0.52rem;
    letter-spacing: 0.22em;
  }

  .domains .papers {
    margin-left: 8px;
  }
}

@media (max-height: 700px) and (min-width: 601px) {
  .declaration { bottom: 104px; }
  .domains { bottom: 28px; }
}

@media (prefers-reduced-motion: reduce) {
  .horizon img {
    animation: none;
    transform: none;
    transition: none;
  }

  .threshold { transition: none; }
}
