/* Homepage hero: portrait above the signature; 3D tower on the right.
   Desktop: columns share top/bottom. Tablet/phone: stack, auto-height, no overlap. */

.pr-dot-copy {
  padding: 96px clamp(24px, 5vw, 80px) 72px !important;
  align-items: center !important;
}

.pr-manifesto__inner {
  align-items: stretch !important;
  column-gap: clamp(36px, 5.5vw, 72px) !important;
}

.pr-manifesto__kicker {
  margin: 0 0 16px !important;
}

html body .pr-manifesto__inner > p.pr-manifesto__line:nth-child(2) {
  margin: 0 0 0.38em !important;
}

html body .pr-manifesto__inner > p.pr-manifesto__line:nth-child(3) {
  margin: 0 0 1.15em !important;
}

html body .pr-manifesto__inner > p.pr-manifesto__line:nth-child(4) {
  margin: 0 0 0.82em !important;
}

html body .pr-manifesto__inner > p.pr-manifesto__line:nth-child(5) {
  font-family: "Instrument Serif", Georgia, serif !important;
  font-style: italic !important;
  font-weight: 400 !important;
  font-size: clamp(1.7rem, 3.2vw, 2.4rem) !important;
  line-height: 1.16 !important;
  letter-spacing: -0.03em !important;
  color: #161616 !important;
  max-width: 14.5em !important;
  margin: 0 0 1.45em !important;
}

.pr-sig-photo,
.pr-sig-photo.is-visible {
  grid-column: 1 !important;
  grid-row: auto !important;
  display: block !important;
  width: 148px !important;
  max-width: 148px !important;
  height: 174px !important;
  margin: 0 0 0.7em !important;
  border-radius: 14px !important;
  object-fit: cover !important;
  object-position: center 18% !important;
  box-shadow: 0 12px 32px rgba(17, 17, 17, 0.12) !important;
}

.pr-sig,
.pr-sig.is-visible {
  grid-column: 1 !important;
  margin: 0 !important;
}

.pr-hero-stage {
  grid-column: 2;
  grid-row: 1 / span 7;
  position: relative;
  align-self: stretch;
  width: 100%;
  height: auto !important;
  min-height: 0 !important;
  border-radius: 22px;
  overflow: hidden;
  background: #5b36b8;
  box-shadow: 0 22px 56px rgba(17, 24, 39, 0.14);
  cursor: zoom-in;
}

.pr-hero-stage #tower {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

#pr-dot-hero .pr-hero-stage canvas,
#pr-dot-hero #tower canvas,
.pr-hero-stage canvas {
  opacity: 1 !important;
  filter: none !important;
}

.pr-hero-stage__hint {
  position: absolute;
  left: 16px;
  bottom: 16px;
  z-index: 3;
  margin: 0;
  font-family: "Instrument Sans", Helvetica Neue, Arial, sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fff;
  opacity: 0.78;
  pointer-events: none;
}

body.tj-open .pr-hero-stage__hint {
  display: none;
}

body.tj-open .pr-dot-nav,
body.tj-open .pr-paper-touch {
  visibility: hidden;
}

.pr-dot-copy .pr-hero-stage,
.pr-dot-copy .pr-hero-stage #tower,
.pr-hero-stage,
#tower {
  pointer-events: auto !important;
}

/* Compact two-column: small laptops / iPad Pro landscape */
@media (max-width: 1280px) and (min-width: 1000px) and (min-height: 861px) {
  .pr-dot-copy {
    padding: 108px 40px 56px !important;
  }
  .pr-manifesto__inner {
    column-gap: 40px !important;
    width: 100%;
  }
  html body .pr-manifesto__inner > p.pr-manifesto__line:nth-child(2) {
    font-size: clamp(2.1rem, 3.6vw, 3rem) !important;
  }
  html body .pr-manifesto__inner > p.pr-manifesto__line:nth-child(5) {
    font-size: clamp(1.45rem, 2.4vw, 2rem) !important;
  }
  .pr-hero-stage {
    align-self: stretch;
    border-radius: 20px;
  }
  .pr-sig-photo,
  .pr-sig-photo.is-visible {
    width: 128px !important;
    max-width: 128px !important;
    height: 152px !important;
  }
}

/* Phones, iPad portrait, and short landscape: stack */
@media (max-width: 999px), (max-height: 860px) {
  #pr-dot-hero,
  .pr-dot-sticky {
    height: auto !important;
    min-height: 0 !important;
    position: relative !important;
    overflow: visible !important;
  }
  .pr-dot-copy {
    display: flex !important;
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    align-items: flex-start !important;
    height: auto !important;
    min-height: 0 !important;
    width: 100% !important;
    padding: 28px 24px 48px !important;
  }
  .pr-manifesto__inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: repeat(8, auto) !important;
    align-items: start !important;
    row-gap: 0 !important;
    column-gap: 0 !important;
    width: 100% !important;
    max-width: 720px;
  }

  .pr-dot-nav,
  .pr-pc-nav {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    grid-template-areas:
      "brand cta"
      "links links" !important;
    align-items: center !important;
    gap: 10px 16px !important;
    padding: 14px 20px 12px !important;
    height: auto !important;
    position: sticky !important;
    top: 0;
    z-index: 40;
    background: #ffffff !important;
  }
  .pr-dot-links,
  .pr-pc-links {
    grid-area: links !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px 18px !important;
    justify-self: start !important;
  }
  .pr-dot-brand,
  .pr-pc-brand {
    grid-area: brand !important;
    justify-self: start !important;
    font-size: 20px !important;
  }
  .pr-paper-touch {
    grid-area: cta !important;
    justify-self: end !important;
    padding: 7px 12px !important;
    font-size: 12px !important;
  }

  .pr-manifesto__kicker {
    grid-column: 1 !important;
    grid-row: 1 !important;
    margin: 0 0 12px !important;
  }
  .pr-manifesto__inner > .pr-manifesto__line:nth-child(2) {
    grid-column: 1 !important;
    grid-row: 2 !important;
  }
  html body .pr-manifesto__inner > p.pr-manifesto__line:nth-child(2) {
    font-size: clamp(2.05rem, 7.6vw, 2.7rem) !important;
    line-height: 1.08 !important;
    max-width: none !important;
    margin: 0 0 0.7em !important;
    white-space: normal !important;
  }
  .pr-hero-stage {
    grid-column: 1 !important;
    grid-row: 3 !important;
    align-self: start !important;
    width: min(100%, 520px) !important;
    max-width: 520px !important;
    height: auto !important;
    aspect-ratio: 1.08 / 1;
    max-height: none !important;
    min-height: 0 !important;
    margin: 0 0 1.35em !important;
    border-radius: 18px;
  }
  .pr-manifesto__inner > .pr-manifesto__line:nth-child(3) {
    grid-column: 1 !important;
    grid-row: 4 !important;
  }
  html body .pr-manifesto__inner > p.pr-manifesto__line:nth-child(3) {
    margin: 0 0 0.95em !important;
    max-width: 32em !important;
  }
  .pr-manifesto__inner > .pr-manifesto__line:nth-child(4) {
    grid-column: 1 !important;
    grid-row: 5 !important;
  }
  html body .pr-manifesto__inner > p.pr-manifesto__line:nth-child(4) {
    font-size: clamp(1.2rem, 4.4vw, 1.55rem) !important;
    margin: 0 0 0.55em !important;
  }
  .pr-manifesto__inner > .pr-manifesto__line:nth-child(5) {
    grid-column: 1 !important;
    grid-row: 6 !important;
  }
  html body .pr-manifesto__inner > p.pr-manifesto__line:nth-child(5) {
    font-size: clamp(1.35rem, 5.4vw, 1.85rem) !important;
    line-height: 1.18 !important;
    max-width: 16em !important;
    margin: 0 0 1.2em !important;
  }
  .pr-sig-photo,
  .pr-sig-photo.is-visible {
    grid-column: 1 !important;
    grid-row: 7 !important;
    width: 120px !important;
    max-width: 120px !important;
    height: 142px !important;
    margin: 0 0 0.55em !important;
  }
  .pr-sig,
  .pr-sig.is-visible {
    grid-column: 1 !important;
    grid-row: 8 !important;
    margin: 0 0 8px !important;
  }
}

@media (max-width: 480px) {
  .pr-dot-copy {
    padding: 100px 18px 40px !important;
  }
  .pr-dot-nav,
  .pr-pc-nav {
    padding: 12px 16px 10px !important;
    gap: 8px 12px !important;
  }
  .pr-hero-stage {
    max-width: 100% !important;
    width: 100% !important;
    border-radius: 16px;
    margin: 0 0 1.15em !important;
  }
  .pr-sig-photo,
  .pr-sig-photo.is-visible {
    width: 104px !important;
    max-width: 104px !important;
    height: 124px !important;
  }
  html body .pr-ah-impact__title,
  html body .pr-ah-work__title,
  html body .pr-ah-ai__title {
    font-size: clamp(1.7rem, 8vw, 2.2rem) !important;
  }
}

/* After-hero breathing room on small screens */
@media (max-width: 700px) {
  #pr-after-hero {
    padding-left: 18px !important;
    padding-right: 18px !important;
    overflow-x: hidden !important;
  }
  .pr-ah-marquee {
    overflow: hidden !important;
  }
}

/* Expanded tower: keep 3D readable on phones */
@media (max-width: 700px) {
  .tj-shell-stage {
    inset: 0 0 50vh 0 !important;
  }
  .tj-panel {
    top: 50vh !important;
    left: 0 !important;
    width: 100% !important;
    padding: 20px 18px 24px !important;
  }
}
