/* N1K.PRO foundation — homepage hero + router (continues home-avatar-v3-6) */

.hero {
  position: relative;
  isolation: isolate;
  height: min(832px, 100svh);
  min-height: 640px;
  overflow: clip;
  background: #090a0b;
  transition: background-color .6s var(--ease);
}

.scene-stack,
.scene,
.scene-shade {
  position: absolute;
  inset: 0;
}

.scene-stack { z-index: -3; }

.scene {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 58% center;
  opacity: 0;
  transition: opacity .62s var(--ease);
  will-change: opacity;
}

.scene.is-active { opacity: 1; }

.scene-shade {
  z-index: -2;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(6, 7, 8, .9) 0%, rgba(6, 7, 8, .74) 27%, rgba(6, 7, 8, .16) 47%, rgba(6, 7, 8, .04) 65%, rgba(6, 7, 8, .72) 100%),
    linear-gradient(0deg, rgba(6, 7, 8, .8) 0%, transparent 34%),
    linear-gradient(180deg, rgba(6, 7, 8, .22) 0%, transparent 23%);
  transition: background .55s var(--ease);
}

html[data-mode="marketing"] .scene-shade {
  background:
    linear-gradient(90deg, rgba(12, 7, 5, .9) 0%, rgba(12, 7, 5, .72) 27%, rgba(12, 7, 5, .13) 48%, rgba(12, 7, 5, .02) 65%, rgba(12, 7, 5, .73) 100%),
    linear-gradient(0deg, rgba(10, 6, 4, .82) 0%, transparent 35%),
    linear-gradient(180deg, rgba(10, 6, 4, .2) 0%, transparent 24%);
}

html[data-mode="ai"] .scene-shade,
html[data-mode="development"] .scene-shade {
  background:
    linear-gradient(90deg, rgba(4, 10, 14, .9) 0%, rgba(4, 10, 14, .72) 27%, rgba(4, 10, 14, .13) 48%, rgba(4, 10, 14, .02) 65%, rgba(4, 10, 14, .74) 100%),
    linear-gradient(0deg, rgba(4, 10, 14, .84) 0%, transparent 35%),
    linear-gradient(180deg, rgba(4, 10, 14, .22) 0%, transparent 24%);
}

html[data-mode="projects"] .scene-shade {
  background:
    linear-gradient(90deg, rgba(7, 10, 5, .91) 0%, rgba(7, 10, 5, .74) 27%, rgba(7, 10, 5, .13) 48%, rgba(7, 10, 5, .02) 65%, rgba(7, 10, 5, .74) 100%),
    linear-gradient(0deg, rgba(7, 10, 5, .84) 0%, transparent 35%),
    linear-gradient(180deg, rgba(7, 10, 5, .2) 0%, transparent 24%);
}

.hero-copy {
  position: absolute;
  z-index: 4;
  top: 50%;
  left: var(--page-pad);
  width: min(36vw, 540px);
  transform: translateY(-50%);
}

.hero-copy .eyebrow {
  margin-bottom: 24px;
}

.copy-stage,
.hero-copy .eyebrow {
  transition: opacity .18s ease, transform .42s var(--ease);
}

.hero-copy.is-changing .copy-stage,
.hero-copy.is-changing .eyebrow {
  opacity: 0;
  transform: translateY(7px);
}

.hero h1 {
  /* Keeps the semantic “Меня зовут” group inside the heading box at every
     desktop scale; 12ch clipped its last letters despite a wider copy column. */
  max-inline-size: 13.5ch;
  margin: 0;
  color: var(--ink);
  font-family: "Unbounded", sans-serif;
  font-size: clamp(2.35rem, 4vw, 4.4rem);
  font-weight: 470;
  line-height: 1.02;
  letter-spacing: -.06em;
  text-wrap: balance;
}

.hero h1 em,
.second-screen h2 em {
  color: var(--accent);
  font-family: "Instrument Serif", Georgia, serif;
  font-style: italic;
  font-weight: 400;
  letter-spacing: -.035em;
}

.hero h1 .hero-signature {
  display: block;
  font-size: .88em;
  white-space: nowrap;
}

.hero-lead {
  max-inline-size: 46ch;
  min-height: 4.6em;
  margin: 26px 0 0;
  color: var(--muted);
  font-size: clamp(.92rem, 1.05vw, 1.05rem);
  line-height: 1.62;
  text-wrap: pretty;
}

@media (min-width: 901px) {
  html[data-mode="marketing"] .hero h1 {
    /* “Яндекс.Директ” is intentionally kept whole; give this state the full
       copy column and cap the large-screen size so the brand name never clips. */
    max-inline-size: none;
    font-size: clamp(2.2rem, 4vw, 3.85rem);
  }
}

.mode-rail {
  position: absolute;
  z-index: 5;
  top: 50%;
  right: var(--page-pad);
  width: min(26vw, 400px);
  padding-top: 22px;
  transform: translateY(-50%);
  border-top: 1px solid var(--line);
}

.mode-card {
  position: relative;
  display: grid;
  grid-template-columns: 30px 1fr 22px;
  align-items: center;
  min-height: 84px;
  gap: 13px;
  border-top: 1px solid var(--line-soft);
  color: rgba(255, 255, 255, .68);
  transition: color .3s ease, background-color .4s var(--ease), padding .4s var(--ease);
}

.mode-card:first-child { border-top: 0; }
.mode-card:last-child { border-bottom: 1px solid var(--line-soft); }

.mode-card[data-mode-option="marketing"] { --card-accent-rgb: 255, 118, 80; }
.mode-card[data-mode-option="ai"] { --card-accent-rgb: 111, 221, 255; }
.mode-card[data-mode-option="development"] { --card-accent-rgb: 145, 173, 255; }
.mode-card[data-mode-option="projects"] { --card-accent-rgb: 209, 245, 107; }

.mode-card::before {
  content: "";
  position: absolute;
  top: -1px;
  bottom: -1px;
  left: 0;
  width: 2px;
  transform: scaleY(0);
  background: var(--accent);
  transition: transform .38s var(--ease), background-color .5s var(--ease);
}

.mode-card:hover,
.mode-card:focus-visible,
.mode-card.is-active {
  padding-right: 11px;
  padding-left: 15px;
  outline: none;
  background: linear-gradient(90deg, rgba(var(--accent-rgb), .14), rgba(8, 9, 10, .24));
  color: var(--ink);
}

.mode-card.is-inviting {
  padding-right: 4px;
  padding-left: 8px;
  background: linear-gradient(90deg, rgba(var(--card-accent-rgb), .045), rgba(8, 9, 10, .04));
  color: var(--ink);
}

.mode-card:hover::before,
.mode-card:focus-visible::before,
.mode-card.is-active::before { transform: scaleY(1); }

.mode-card.is-inviting::before {
  transform: scaleY(.34);
  background: rgba(var(--card-accent-rgb), .62);
}

.mode-number {
  color: var(--accent);
  font: 500 10px/1 "JetBrains Mono", monospace;
}

.mode-card.is-inviting .mode-number,
.mode-card.is-inviting .mode-arrow {
  color: rgba(var(--card-accent-rgb), .68);
}

.mode-card-copy {
  display: grid;
  gap: 8px;
}

.mode-card-copy strong {
  font-family: "Unbounded", sans-serif;
  font-size: clamp(.75rem, .88vw, .9rem);
  font-weight: 480;
  letter-spacing: -.03em;
}

.mode-card-copy small {
  color: rgba(255, 255, 255, .48);
  font-size: 11px;
  line-height: 1.35;
}

.mode-arrow {
  display: grid;
  place-items: center;
  color: var(--accent);
  transition: transform .28s var(--ease);
}

.mode-arrow svg {
  width: 21px;
  height: 21px;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.25;
}

.mode-arrow circle { opacity: .36; }

.mode-card:hover .mode-arrow,
.mode-card:focus-visible .mode-arrow,
.mode-card.is-inviting .mode-arrow { transform: translate(2px, -2px); }

.scroll-cue {
  position: absolute;
  z-index: 4;
  bottom: 26px;
  left: var(--page-pad);
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0;
  border: 1px solid transparent;
  color: rgba(255, 255, 255, .45);
  font: 500 9px/1 "JetBrains Mono", monospace;
  letter-spacing: .11em;
  text-transform: uppercase;
  transition: color .3s ease, background-color .4s var(--ease), border-color .4s var(--ease), padding .4s var(--ease);
}

.scroll-cue i {
  position: relative;
  width: 37px;
  height: 1px;
  overflow: visible;
  background: var(--line);
}

.scroll-cue i::after {
  content: "";
  position: absolute;
  top: -2px;
  right: 0;
  width: 5px;
  height: 5px;
  transform: rotate(45deg);
  border-right: 1px solid var(--accent);
  border-bottom: 1px solid var(--accent);
}

/* ---------- Second screen ---------- */

.second-screen {
  --accent: #e8e7e1;
  --accent-rgb: 232, 231, 225;
  --accent-ink: #0a0a0b;
  display: grid;
  grid-template-columns: minmax(300px, .84fr) minmax(500px, 1.16fr);
  padding: clamp(84px, 11vw, 168px) var(--page-pad);
  gap: clamp(48px, 8vw, 130px);
  border-top: 1px solid var(--line-soft);
  background:
    radial-gradient(circle at 16% 30%, rgba(var(--accent-rgb), .07), transparent 26%),
    #0a0b0d;
}

.second-heading h2 {
  margin: 0;
  font-family: "Unbounded", sans-serif;
  font-size: clamp(1.9rem, 3.5vw, 3.9rem);
  font-weight: 430;
  line-height: 1.06;
  letter-spacing: -.055em;
  text-wrap: balance;
}

.second-heading > p:last-child {
  max-inline-size: 52ch;
  margin: 28px 0 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.66;
  text-wrap: pretty;
}

.situation-list {
  border-top: 1px solid var(--line);
}

.situation-list a {
  display: grid;
  grid-template-columns: 36px 1fr auto;
  align-items: center;
  min-height: 124px;
  gap: 24px;
  border-bottom: 1px solid var(--line);
  transition: padding .35s var(--ease), background-color .35s ease;
}

.situation-list a:hover,
.situation-list a:focus-visible {
  padding-inline: 18px;
  outline: none;
  background: rgba(var(--accent-rgb), .07);
}

.situation-list span {
  color: var(--accent);
  font: 500 10px/1 "JetBrains Mono", monospace;
}

.situation-list strong {
  max-inline-size: 42ch;
  font-family: "Unbounded", sans-serif;
  font-size: clamp(.95rem, 1.16vw, 1.12rem);
  font-weight: 390;
  line-height: 1.42;
  letter-spacing: -.025em;
  text-wrap: balance;
}

.situation-list i {
  color: var(--quiet);
  font: normal 500 10px/1.3 "JetBrains Mono", monospace;
  text-align: right;
}

/* ---------- Home responsive ---------- */

@media (max-width: 1180px) {
  .hero-copy { width: min(40vw, 460px); }
  .mode-rail { width: min(30vw, 340px); }
  .hero h1 { font-size: clamp(2.2rem, 4.2vw, 3.6rem); }
}

@media (max-width: 900px) {
  .hero {
    display: flex;
    flex-direction: column;
    height: auto;
    min-height: 0;
    padding: calc(var(--header-h) + 36px) var(--page-pad) 84px;
  }

  .scene-stack {
    order: 2;
    position: relative;
    height: clamp(240px, 44vw, 340px);
    margin-top: 30px;
    border-radius: 6px;
    overflow: clip;
  }

  .scene {
    object-position: 60% 22%;
  }

  .scene-shade { display: none; }

  .hero-copy {
    order: 1;
    position: relative;
    top: auto;
    left: auto;
    width: auto;
    transform: none;
  }

  .hero h1 {
    max-inline-size: none;
    font-size: clamp(2rem, 8.2vw, 3rem);
  }

  .hero-lead {
    max-inline-size: 46ch;
    min-height: 0;
    margin-top: 18px;
    font-size: 14.5px;
  }

  .mode-rail {
    order: 3;
    position: relative;
    top: auto;
    right: auto;
    width: auto;
    margin-top: 34px;
    padding-top: 14px;
    transform: none;
  }

  .scroll-cue {
    order: 4;
    position: relative;
    bottom: auto;
    left: auto;
    margin-top: 30px;
  }

  .scroll-cue.is-route {
    justify-content: space-between;
    padding: 14px 16px;
    border-color: rgba(var(--accent-rgb), .34);
    background: rgba(7, 8, 9, .72);
    color: var(--ink);
  }

  .second-screen {
    grid-template-columns: 1fr;
    padding-block: clamp(72px, 12vw, 110px);
    gap: 56px;
  }
}

@media (max-width: 560px) {
  .hero h1 { font-size: clamp(1.95rem, 8.6vw, 2.5rem); }
  .hero-lead { max-inline-size: 34ch; }

  .situation-list a {
    grid-template-columns: 25px 1fr;
    min-height: 108px;
    gap: 14px;
  }

  .situation-list i { display: none; }
}
