/* A quiet software introduction, followed by three scroll-driven highlights. */
body.focus-software {
  --software-green: #b1ff3f;
  --software-ink: #181919;
  --software-muted: #686b6c;
}
.focus-software ::selection { background: var(--software-green); color: var(--software-ink); }
.focus-software.nav-open { padding-top: var(--header-h); }
.focus-software.nav-open .site-header { position: fixed; inset: 0 0 auto; }
.focus-software .software-story { position: relative; }
.focus-software .software-scene {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  max-width: 1300px;
  margin: auto;
  padding: 100px 40px;
  text-align: center;
  color: var(--software-ink);
}
.focus-software .software-launch { min-height: calc(100svh - var(--header-h)); }
.focus-software .software-kicker { margin-bottom: 35px; color: var(--software-muted); font-size: 11px; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
.focus-software .software-launch h1 {
  font-size: clamp(70px, 8.8vw, 138px);
  font-weight: 350;
  line-height: 1.02;
  letter-spacing: -.06em;
}
.focus-software .software-launch h1 strong { display: block; font-weight: 650; }
.focus-software .software-app-icon { width: clamp(135px, 12vw, 180px); height: auto; margin-bottom: 28px; }
.focus-software .software-introduction h2 {
  font-size: clamp(42px, 4.7vw, 73px);
  line-height: 1.09;
  letter-spacing: -.05em;
  font-weight: 350;
}
.focus-software .software-introduction h2 strong { display: block; font-weight: 650; }
.focus-software .software-description { max-width: 660px; margin-top: 30px; color: var(--software-muted); font-size: clamp(18px, 1.55vw, 23px); line-height: 1.6; letter-spacing: -.015em; text-wrap: pretty; }
.focus-software .software-description strong { color: var(--software-ink); font-weight: 600; }
.focus-software .software-focus h2 { font-size: clamp(68px, 8vw, 124px); line-height: 1.23; letter-spacing: -.055em; font-weight: 600; }
.focus-software .software-focus-line { display: block; }
.focus-software .software-focus-word { position: relative; display: inline-block; isolation: isolate; }
.focus-software .software-focus-word::before {
  content: '';
  position: absolute;
  inset: .08em -.12em .02em;
  z-index: -1;
  border-radius: .075em;
  background: var(--software-green);
  transform: scaleX(0);
  transform-origin: left;
  transition: none;
}
.focus-software .software-focus-word.is-highlighted::before { transform: scaleX(1); transition: transform .32s var(--ease); }
.focus-software .software-contact { margin-top: 42px; font-size: 15px; }
.focus-software .software-scroll-cue { display: none; }

/* Native document scroll supplies the distance; no wheel/touch interception. */
.focus-software.software-motion .software-story { height: calc(100svh - var(--header-h) + var(--software-travel)); }
.focus-software.software-motion .software-stage {
  position: sticky;
  top: var(--header-h);
  height: calc(100svh - var(--header-h));
  overflow: hidden;
}
.focus-software.software-motion .software-scene {
  position: absolute;
  inset: 0;
  max-width: 1300px;
  min-height: 0;
  padding: 36px 40px 70px;
  opacity: var(--scene-opacity, 0);
  transform: translateY(var(--scene-offset, 0px));
}
.focus-software.software-motion .software-scene:not(.is-visible) { visibility: hidden; pointer-events: none; }
.focus-software.software-motion .software-contact { opacity: var(--contact-opacity, 0); transform: translateY(calc((1 - var(--contact-opacity, 0)) * 8px)); }
.focus-software.software-motion .software-scroll-cue { display: block; position: absolute; bottom: 28px; left: 50%; transform: translateX(-50%); color: #8a8e8b; font-size: 22px; opacity: var(--cue-opacity, 1); pointer-events: none; }
.focus-software.software-motion .software-contact:focus-visible { opacity: 1; transform: none; }

@media (max-width: 800px) {
  .focus-software .software-scene { padding: 76px 28px; }
  .focus-software .software-launch h1 { font-size: clamp(66px, 12vw, 98px); }
  .focus-software .software-focus h2 { font-size: clamp(62px, 11vw, 90px); }
  .focus-software .software-introduction h2 { font-size: clamp(36px, 6.5vw, 52px); }
  .focus-software .software-description { max-width: 570px; }
}
@media (max-width: 520px) {
  .focus-software .software-scene { padding: 70px 23px; }
  .focus-software.software-motion .software-scene { padding: 24px 23px 54px; }
  .focus-software .software-kicker { margin-bottom: 26px; font-size: 10px; }
  .focus-software .software-launch h1 { font-size: clamp(56px, 15vw, 78px); }
  html[lang="hu"] .focus-software .software-launch h1 { font-size: clamp(48px, 13vw, 68px); }
  .focus-software .software-app-icon { width: 140px; margin-bottom: 25px; }
  .focus-software .software-introduction h2 { font-size: clamp(30px, 8vw, 40px); }
  .focus-software .software-description { margin-top: 24px; font-size: 18px; line-height: 1.55; }
  .focus-software .software-focus h2 { font-size: clamp(54px, 13.8vw, 72px); }
  html[lang="hu"] .focus-software .software-focus h2 { font-size: clamp(46px, 12vw, 63px); }
  .focus-software .software-contact { margin-top: 34px; }
}
@media (prefers-reduced-motion: reduce) {
  .focus-software .software-focus-word::before { transition: none !important; }
}
@media print {
  .focus-software.software-motion .software-story { height: auto; }
  .focus-software.software-motion .software-stage { position: static; height: auto; overflow: visible; }
  .focus-software.software-motion .software-scene { position: static; visibility: visible; opacity: 1; transform: none; padding: 30px 0; }
  .focus-software .software-launch { min-height: 0; }
  .focus-software .software-launch h1 { font-size: 52px; }
  .focus-software .software-introduction h2, .focus-software .software-focus h2 { font-size: 38px; }
  .focus-software .software-description { font-size: 16px; }
  .focus-software .software-app-icon { width: 100px; }
  .focus-software .software-scroll-cue, .focus-software .software-contact { display: none !important; }
}
