:root {
  --color-main: #7B2CBF;
  --color-dark-main: #5A189A;
  --color-accent: #C77DFF;
  --color-burgundy: #D7264E;
  --color-dark-burgundy: #9E1838;
  --color-grey: #F8F5FA;
  --color-dark-grey: #D9D9E3;
  --color-neutral: #D9D9E3;
  --color-black: #222222;
  --color-white: #FFFFFF;
  --color-white-50: color-mix(in srgb, var(--color-white), transparent 28%);
}

html,
body {
  background: var(--color-grey);
  color: var(--color-black);
}

body {
  background-color: var(--color-grey);
}

#approach {
  scroll-margin-top: 6rem;
}

::selection,
::-webkit-selection {
  background: var(--color-main);
  color: var(--color-white);
}

a,
button,
.btn,
.link,
.nav_link,
.nav_mail-parent,
.footer_mail-parent,
.footer_anchor,
.accordion_top,
.services_item,
.nav_weather,
.nav_weather svg,
.nav_weather [data-weather-city],
.nav_weather [data-temperature],
.nav_weather > .block [data-time],
.nav-side [data-time],
.nav-side [data-weather-coords],
.hero_row > .h1,
.side-logo_parent,
.side-logo_wordmark,
.side-logo_parent svg,
.sidebar-sign .sign-main,
.sidebar-sign .sign-secondary,
.weather-consent_button.is-primary,
body:has([data-transition-page="home"]) .footer_logo .h1,
body:has([data-transition-page="home"]) .loader_percentage,
main[data-transition-page="home"] + .canvas-container canvas {
  transition:
    color 0.25s ease,
    background-color 0.25s ease,
    border-color 0.25s ease,
    box-shadow 0.25s ease,
    fill 0.25s ease,
    filter 0.25s ease,
    transform 0.25s ease;
}

a:hover,
.link:hover,
.nav_link:hover,
.nav_mail-parent:hover,
.footer_mail-parent:hover,
.footer_anchor:hover,
.accordion_top:hover {
  color: var(--color-accent);
}

.btn {
  background: var(--color-main) !important;
  color: var(--color-white) !important;
  box-shadow: 0 16px 40px rgba(123, 44, 191, 0.18);
}

main[data-transition-page="home"] .hero_row > .h1 {
  color: var(--color-black) !important;
}

.side-logo_wordmark {
  width: 100%;
  height: auto;
  display: block;
  transform: translateX(calc(var(--spacing) * 52)) scale(4);
  transform-origin: center center;
  max-width: none !important;
  pointer-events: none;
}

.side-logo {
  overflow: visible;
}

main[data-transition-page="home"] .hero_title.is-2 .hero_domain {
  letter-spacing: -0.045em;
}

main[data-transition-page="home"] .hero_title.is-2 .hero_control-line {
  margin-left: 8.8541666667vw;
}

main[data-transition-page="home"] .hero_title.is-2 .hero_logic-line {
  margin-left: 28.6458333333vw;
}

main[data-transition-page="home"] .hero_login-stage {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 3;
  width: clamp(20rem, 22vw, 23rem);
  transform: translate(-50%, -50%);
  perspective: 1400px;
  transition:
    opacity 0.6s ease,
    transform 0.6s ease,
    filter 0.6s ease;
}

main[data-transition-page="home"] .hero_login-stage::before,
main[data-transition-page="home"] .hero_login-stage::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  filter: blur(70px);
  opacity: 0.72;
  pointer-events: none;
}

main[data-transition-page="home"] .hero_login-stage::before {
  width: 16rem;
  height: 16rem;
  top: -18%;
  left: -18%;
  background: rgba(123, 44, 191, 0.42);
}

main[data-transition-page="home"] .hero_login-stage::after {
  width: 14rem;
  height: 14rem;
  right: -10%;
  top: 14%;
  background: rgba(0, 200, 255, 0.28);
}

main[data-transition-page="home"] .hero_login-glow {
  position: absolute;
  width: 15rem;
  height: 15rem;
  left: 28%;
  bottom: -22%;
  border-radius: 999px;
  filter: blur(78px);
  background: rgba(215, 38, 78, 0.24);
  pointer-events: none;
}

main[data-transition-page="home"] .hero_login-card-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 360 / 225;
}

main[data-transition-page="home"] .hero_login-card {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  transition: transform 0.9s cubic-bezier(0.2, 0.8, 0.2, 1);
}

main[data-transition-page="home"] .hero_login-card-wrap:hover .hero_login-card,
main[data-transition-page="home"] .hero_login-card-wrap:focus-within .hero_login-card {
  transform: rotateY(180deg) rotateX(4deg);
}

main[data-transition-page="home"] .hero_login-face {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  border-radius: 1.5rem;
  overflow: hidden;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.22);
  box-shadow:
    0 20px 50px rgba(0, 0, 0, 0.35),
    inset 0 1px 1px rgba(255, 255, 255, 0.22);
  backdrop-filter: blur(22px);
  -webkit-backdrop-filter: blur(22px);
}

main[data-transition-page="home"] .hero_login-face::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.04)),
    radial-gradient(circle at top left, rgba(255, 255, 255, 0.16), transparent 36%);
  pointer-events: none;
}

main[data-transition-page="home"] .hero_login-face--front {
  justify-content: space-between;
  padding: 1.35rem;
}

main[data-transition-page="home"] .hero_login-front-top,
main[data-transition-page="home"] .hero_login-front-bottom {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

main[data-transition-page="home"] .hero_login-brand {
  font-size: 0.92rem;
  color: var(--color-main);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 700;
}

main[data-transition-page="home"] .hero_login-chip,
main[data-transition-page="password"] .password_portal-chip {
  position: relative;
  width: 3.35rem;
  height: 2.45rem;
  border-radius: 0.7rem;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.65), rgba(255, 255, 255, 0.15));
  border: 1px solid rgba(255, 255, 255, 0.3);
}

main[data-transition-page="home"] .hero_login-chip::before,
main[data-transition-page="home"] .hero_login-chip::after,
main[data-transition-page="password"] .password_portal-chip::before,
main[data-transition-page="password"] .password_portal-chip::after {
  content: "";
  position: absolute;
  background: rgba(255, 255, 255, 0.3);
}

main[data-transition-page="home"] .hero_login-chip::before,
main[data-transition-page="password"] .password_portal-chip::before {
  width: 1px;
  height: 80%;
  left: 50%;
  top: 10%;
}

main[data-transition-page="home"] .hero_login-chip::after,
main[data-transition-page="password"] .password_portal-chip::after {
  height: 1px;
  width: 80%;
  left: 10%;
  top: 50%;
}

main[data-transition-page="home"] .hero_login-number {
  position: relative;
  z-index: 1;
  font-size: 1.06rem;
  letter-spacing: 0.02em;
  line-height: 1.2;
  color: var(--color-main);
  font-weight: 600;
  font-family: "IBM Plex Mono", "Courier New", monospace;
  word-break: normal;
  overflow-wrap: anywhere;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
}

main[data-transition-page="home"] .hero_login-front-bottom {
  align-items: flex-end;
  gap: 1rem;
}

main[data-transition-page="home"] .hero_login-label {
  margin-bottom: 0.25rem;
  font-size: 0.67rem;
  color: var(--color-main);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

main[data-transition-page="home"] .hero_login-label--ip {
  font-size: 0.76rem;
  font-weight: 700;
}

main[data-transition-page="home"] .hero_login-value {
  font-size: 0.92rem;
  color: var(--color-main);
  font-weight: 600;
}

main[data-transition-page="home"] .hero_login-logo {
  display: block;
  width: 5.35rem;
  height: 3.5666666667rem;
  flex-shrink: 0;
  border-radius: 0.95rem;
  object-fit: contain;
  object-position: center;
  padding: 0.1rem;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(5, 5, 7, 0.92);
  box-shadow:
    0 0.55rem 1.35rem rgba(0, 0, 0, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

main[data-transition-page="home"] .hero_login-face--back {
  justify-content: center;
  gap: 0.85rem;
  padding: 1.45rem 1.35rem;
  transform: rotateY(180deg);
}

main[data-transition-page="home"] .proof_brand-logo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

main[data-transition-page="home"] .proof_intro-title {
  font-weight: 700;
  font-size: calc(38 * var(--spacing));
}

main[data-transition-page="home"] .proof_intro-copy {
  margin-top: 1rem;
  max-width: 38rem;
  font-size: calc(20 * var(--spacing));
  line-height: 1.45;
}

@media screen and (max-width: 1024px) {
  main[data-transition-page="home"] .proof_intro-title {
    font-size: calc(27 * var(--spacing));
  }

  main[data-transition-page="home"] .proof_intro-copy {
    font-size: calc(14 * var(--spacing));
  }
}

main[data-transition-page="home"] .brands_rows {
  gap: 0.9rem;
}

main[data-transition-page="home"] .brands_row {
  gap: 0.8rem;
}

main[data-transition-page="home"] .proof_stats-label {
  font-size: calc(14 * var(--spacing));
  line-height: 1.15;
  text-align: center;
}

main[data-transition-page="home"] .hero_login-form {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

main[data-transition-page="home"] .hero_login-title,
main[data-transition-page="password"] .password_portal-title {
  position: relative;
  z-index: 1;
  color: var(--color-main);
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

main[data-transition-page="home"] .hero_login-subtitle,
main[data-transition-page="password"] .password_portal-subtitle,
main[data-transition-page="password"] .password_portal-meta {
  position: relative;
  z-index: 1;
  color: var(--color-main);
  font-size: 0.82rem;
  line-height: 1.45;
}

main[data-transition-page="home"] .hero_login-input,
main[data-transition-page="password"] .password_portal-field {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 0.38rem;
}

main[data-transition-page="home"] .hero_login-input span,
main[data-transition-page="password"] .password_portal-field span {
  font-size: 0.78rem;
  color: var(--color-main);
  font-weight: 700;
}

main[data-transition-page="home"] .hero_login-input input,
main[data-transition-page="password"] .password_portal-field input {
  width: 100%;
  padding: 0.78rem 0.9rem;
  border-radius: 0.78rem;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.12);
  color: var(--color-main);
  outline: none;
  caret-color: var(--color-main);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition:
    border-color 0.25s ease,
    background-color 0.25s ease,
    box-shadow 0.25s ease;
}

main[data-transition-page="home"] .hero_login-input input::placeholder,
main[data-transition-page="password"] .password_portal-field input::placeholder {
  color: var(--color-main);
}

main[data-transition-page="home"] .hero_login-input input:focus,
main[data-transition-page="password"] .password_portal-field input:focus {
  border-color: rgba(255, 255, 255, 0.45);
  background: rgba(255, 255, 255, 0.16);
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.08);
}

main[data-transition-page="home"] .hero_login-submit,
main[data-transition-page="password"] .password_portal-submit {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-top: 0.25rem;
  padding: 0.82rem 1rem;
  border: 0;
  border-radius: 0.85rem;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.66));
  color: var(--color-main) !important;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
  cursor: pointer;
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease,
    background-color 0.2s ease;
}

main[data-transition-page="home"] .hero_login-submit:hover,
main[data-transition-page="home"] .hero_login-submit:focus-visible,
main[data-transition-page="password"] .password_portal-submit:hover,
main[data-transition-page="password"] .password_portal-submit:focus-visible {
  color: var(--color-main) !important;
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.28);
}

main[data-transition-page="home"] .hero_login-hint {
  margin-top: 0.95rem;
  text-align: center;
  color: var(--color-main);
  font-size: 0.78rem;
  letter-spacing: 0.03em;
}

main[data-transition-page="home"] .hero_login-status,
main[data-transition-page="password"] .password_portal-meta[data-auth-status] {
  min-height: 1.05rem;
  font-size: 0.76rem;
  line-height: 1.4;
  color: var(--color-main);
}

[data-auth-status][hidden] {
  display: none;
}

[data-auth-status][data-state="error"] {
  color: #d7264e;
}

[data-auth-status][data-state="success"] {
  color: var(--color-main);
}

body.is-admin-authenticated main[data-transition-page="home"] .hero_login-stage {
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -50%) scale(0.94);
  filter: blur(8px);
}

body:not(.is-admin-authenticated) [data-auth-locked] {
  opacity: 0.52;
  filter: saturate(0.72);
  transition:
    opacity 0.24s ease,
    filter 0.24s ease;
}

.is-auth-restricted {
  opacity: 0.52;
  filter: saturate(0.72);
  transition:
    opacity 0.24s ease,
    filter 0.24s ease;
}

body:not(.is-admin-authenticated) .is-auth-locked-link {
  opacity: 0.52;
  filter: saturate(0.72);
  cursor: not-allowed;
  transition:
    opacity 0.24s ease,
    filter 0.24s ease;
}

body:not(.is-admin-authenticated) [data-auth-locked] .accordion_top {
  cursor: not-allowed;
  position: relative;
}

.is-auth-restricted .accordion_top {
  cursor: not-allowed;
  position: relative;
}

body:not(.is-admin-authenticated) [data-auth-logout] {
  display: none;
}

body.is-admin-authenticated [data-auth-logout] {
  display: inline-flex;
}

.nav_logout {
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
}

body:not(.is-admin-authenticated) [data-auth-locked].is-auth-shaken .accordion_top {
  animation: authLockedShake 0.42s ease;
}

.is-auth-restricted.is-auth-shaken .accordion_top {
  animation: authLockedShake 0.42s ease;
}

.auth-hover-hint {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 45;
  max-width: min(19rem, calc(100vw - 2rem));
  padding: 0.6rem 0.8rem;
  border-radius: 0.85rem;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(123, 44, 191, 0.18);
  box-shadow: 0 14px 34px rgba(29, 13, 43, 0.16);
  color: var(--color-main);
  font-size: 0.72rem;
  line-height: 1.35;
  letter-spacing: 0.02em;
  text-align: center;
  pointer-events: none;
  transform: translate3d(0, 0, 0);
}

.auth-hover-hint[hidden] {
  display: none;
}

.auth-access-toast {
  position: fixed;
  right: 2rem;
  bottom: 2rem;
  z-index: 40;
  max-width: min(24rem, calc(100vw - 2.5rem));
  padding: 0.9rem 1rem;
  border: 1px solid rgba(123, 44, 191, 0.2);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.92);
  color: var(--color-main);
  box-shadow: 0 18px 45px rgba(29, 13, 43, 0.16);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.auth-access-toast[data-state="error"] {
  color: #a31637;
  border-color: rgba(215, 38, 78, 0.22);
}

.auth-access-toast[data-state="success"] {
  color: var(--color-main);
}

body.is-home-timeline-open {
  overflow: hidden;
}

body.is-home-timeline-open .canvas-container {
  pointer-events: none;
}

body.is-home-timeline-open main[data-transition-page="home"] .hero_btn > .btn {
  background: var(--color-burgundy) !important;
  border-color: var(--color-burgundy) !important;
  color: var(--color-white) !important;
}

.home-timeline {
  position: fixed;
  inset: 0;
  z-index: 32;
  display: flex;
  justify-content: center;
  padding: 1.75rem;
}

.home-timeline[hidden] {
  display: none;
}

.home-timeline_backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(246, 243, 247, 0.08);
  cursor: pointer;
}

.home-timeline_panel {
  position: relative;
  z-index: 1;
  width: min(44rem, calc(100vw - 3.5rem));
  max-height: calc(100vh - 3.5rem);
  padding: 1.4rem 1.45rem 1.55rem;
  border: 1px solid rgba(123, 44, 191, 0.12);
  border-radius: 1.6rem;
  background: rgba(255, 255, 255, 0.14);
  box-shadow: 0 24px 60px rgba(41, 17, 61, 0.14);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  overflow: hidden;
}

.home-timeline_head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.home-timeline_kicker {
  color: var(--color-main);
  font: 700 0.72rem/1.1 var(--font-mono);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.home-timeline_title {
  margin: 0.25rem 0 0;
  color: var(--color-black);
  font: 500 clamp(1.75rem, 2.4vw, 2.6rem)/0.95 var(--font-title);
}

.home-timeline_close {
  appearance: none;
  border: 1px solid rgba(123, 44, 191, 0.16);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.78);
  color: var(--color-main);
  padding: 0.6rem 1rem;
  font: 700 0.74rem/1 var(--font-mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
}

.home-timeline_scroll {
  position: relative;
  max-height: calc(100vh - 8.5rem);
  overflow-y: auto;
  padding: 1rem 0 2rem;
}

.home-timeline_line {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 2px;
  transform: translateX(-50%);
  background:
    linear-gradient(180deg, rgba(123, 44, 191, 0.24) 0%, rgba(123, 44, 191, 1) 18%, rgba(123, 44, 191, 1) 82%, rgba(123, 44, 191, 0.2) 100%);
  box-shadow: 0 0 22px rgba(123, 44, 191, 0.28);
}

.home-timeline_items {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 3.2rem;
}

.home-timeline_item {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  min-height: 5rem;
}

.home-timeline_item:nth-child(odd) .home-timeline_card {
  grid-column: 1;
  justify-self: end;
  margin-right: 2.5rem;
  text-align: right;
}

.home-timeline_item:nth-child(even) .home-timeline_card {
  grid-column: 2;
  justify-self: start;
  margin-left: 2.5rem;
  text-align: left;
}

.home-timeline_dot {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 1rem;
  height: 1rem;
  border: 3px solid rgba(123, 44, 191, 0.28);
  border-radius: 999px;
  background: #7b2cbf;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 0 0.45rem rgba(123, 44, 191, 0.12);
}

.home-timeline_card {
  width: min(16rem, calc(50% - 3rem));
  padding: 0.9rem 1rem;
  border-radius: 1.2rem;
  background: rgba(255, 255, 255, 0.74);
  box-shadow: 0 16px 36px rgba(123, 44, 191, 0.08);
}

.home-timeline_date {
  color: var(--color-main);
  font: 700 0.84rem/1.1 var(--font-mono);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.home-timeline_label {
  margin-top: 0.45rem;
  color: var(--color-black);
  font: 500 1.18rem/1 var(--font-title);
}

.home-timeline_item.is-featured .home-timeline_dot,
.home-timeline_item.is-end .home-timeline_dot {
  width: 1.15rem;
  height: 1.15rem;
  box-shadow: 0 0 0 0.55rem rgba(123, 44, 191, 0.16);
}

.home-timeline_item.is-featured .home-timeline_card,
.home-timeline_item.is-end .home-timeline_card {
  background: rgba(255, 255, 255, 0.82);
}

@keyframes authLockedShake {
  0%,
  100% {
    transform: translateX(0);
  }

  25% {
    transform: translateX(-6px);
  }

  50% {
    transform: translateX(5px);
  }

  75% {
    transform: translateX(-3px);
  }
}

.services_preview-card {
  flex: none;
  width: min(16rem, 22vw);
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 0.8rem;
  border: 1px solid color-mix(in srgb, var(--color-main), var(--color-white) 76%);
  border-radius: 1.25rem;
  background: rgba(255, 255, 255, 0.74);
  box-shadow: 0 18px 40px rgba(123, 44, 191, 0.08);
  cursor: pointer;
  text-align: left;
}

.services_preview-thumb {
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
  border-radius: 0.9rem;
  display: block;
}

.image-preview {
  position: fixed;
  inset: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
}

.image-preview[hidden] {
  display: none;
}

.image-preview_backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(17, 24, 39, 0.76);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  cursor: pointer;
}

.image-preview_dialog {
  position: relative;
  z-index: 1;
  width: min(68rem, 100%);
  max-height: calc(100vh - 4rem);
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.image-preview_close {
  align-self: flex-end;
  padding: 0.65rem 1rem;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.9);
  color: var(--color-main);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.image-preview_media {
  width: 100%;
  max-height: calc(100vh - 8rem);
  object-fit: contain;
  border-radius: 1.5rem;
  background: rgba(255, 255, 255, 0.08);
  box-shadow: 0 30px 70px rgba(0, 0, 0, 0.24);
}

body.is-image-preview-open {
  overflow: hidden;
}

.btn:hover {
  background: var(--color-accent) !important;
  color: var(--color-black) !important;
  transform: translateY(-1px);
}

.nav_cta,
.nav_cta .nav-mail,
.nav_cta ._15 {
  color: var(--color-white) !important;
}

.mail-copied {
  background: var(--color-white) !important;
  color: var(--color-black) !important;
  border: 1px solid var(--color-neutral);
  box-shadow: 0 14px 30px rgba(34, 34, 34, 0.08);
}

.white-gradient,
.white-gradient-light,
.nerves_item {
  background:
    linear-gradient(
      135deg,
      rgba(255, 255, 255, 0.96) 0%,
      rgba(248, 245, 250, 0.92) 55%,
      rgba(255, 255, 255, 0.88) 100%
    ) !important;
  border: 1px solid var(--color-neutral);
  box-shadow: 0 24px 60px rgba(123, 44, 191, 0.08);
}

.services_item {
  border: 1px solid var(--color-neutral);
}

.dashed {
  background-image: linear-gradient(
    90deg,
    var(--color-dark-grey),
    var(--color-dark-grey) 75%,
    transparent 75%,
    transparent 100%
  ) !important;
}

.bg-dark-grey {
  background-color: var(--color-dark-grey) !important;
}

body:has([data-transition-page="home"]) .loader_percentage {
  color: var(--color-main);
}

body:has([data-transition-page="home"]) .loader_line-parent {
  margin-top: 4.5rem;
}

main[data-transition-page="home"] {
  position: relative;
  z-index: 2;
}

main[data-transition-page="home"] + .canvas-container {
  visibility: visible !important;
  z-index: 1 !important;
}

body:has([data-transition-page="home"]) .loader_line {
  background-color: color-mix(in srgb, var(--color-main), transparent 82%) !important;
}

body:has([data-transition-page="home"]) .loader_line:before {
  background: var(--color-main) !important;
}

body:has([data-transition-page="home"]) .loader_percentage:before {
  background: linear-gradient(
    to right,
    transparent 0%,
    var(--color-main) 30%,
    var(--color-main) 70%,
    transparent 100%
  ) !important;
}

body:has([data-transition-page="home"]) .footer_logo .h1 {
  color: var(--color-main);
}

.nav_weather,
.nav_weather svg,
.nav-side [data-time],
.nav-side [data-weather-coords] {
  color: var(--color-main) !important;
}

.nav_weather {
  gap: calc(var(--spacing) * 28) !important;
}

.nav_weather > .block {
  display: flex;
  flex-direction: column;
  gap: calc(var(--spacing) * 5);
}

.nav_weather .w-15.h-15{
  width: calc(var(--spacing) * 50) !important;
  height: calc(var(--spacing) * 50) !important;
}

.nav_weather [data-weather-city],
.nav_weather [data-temperature],
.nav_weather [data-weather-status],
.nav_weather > .block [data-time] {
  color: var(--color-main) !important;
  font-size: calc(18 * var(--spacing)) !important;
  line-height: 1.08;
  letter-spacing: 0.02em;
}

.nav_weather [data-temperature] {
  display: block;
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  font-variant-numeric: tabular-nums;
}

.nav_weather [data-weather-status] {
  display: block;
  max-width: calc(var(--spacing) * 140);
  white-space: normal;
  text-align: right;
  line-height: 1.15;
}

.nav_weather > .block [data-time] {
  opacity: 1;
}

.nav-side [data-time],
.nav-side [data-weather-coords] {
  font-size: calc(18 * var(--spacing)) !important;
}

.weather-consent[hidden] {
  display: none !important;
}
.nav_weather{
  transform: none !important;
}

.orbit-walk {
  position: relative;
  min-height: 320vh;
  margin-top: 18vh;
  padding-bottom: 12vh;
}

.orbit-walk_stage {
  position: sticky;
  top: 0;
  min-height: 100vh;
  display: flex;
  align-items: center;
  padding: 9vh 0;
}

.orbit-walk_shell {
  position: relative;
  width: min(76rem, calc(100vw - 6rem));
  margin-left: auto;
  padding: clamp(1.5rem, 2vw, 2.25rem);
  border-radius: 2rem;
  border: 1px solid color-mix(in srgb, var(--color-main), var(--color-white) 72%);
  overflow: hidden;
  box-shadow: 0 28px 80px rgba(29, 13, 43, 0.12);
  backdrop-filter: blur(22px);
}

.orbit-walk_shell::before,
.orbit-walk_shell::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  pointer-events: none;
  opacity: 0.55;
}

.orbit-walk_shell::before {
  inset: -16% auto auto -8%;
  width: 18rem;
  height: 18rem;
  background: radial-gradient(circle, color-mix(in srgb, var(--color-accent), transparent 30%) 0%, transparent 72%);
}

.orbit-walk_shell::after {
  inset: auto -10% -22% auto;
  width: 22rem;
  height: 22rem;
  background: radial-gradient(circle, color-mix(in srgb, var(--color-main), transparent 42%) 0%, transparent 74%);
}

.orbit-walk_header,
.orbit-walk_hint,
.orbit-walk_meta,
.orbit-walk_progress,
.orbit-walk_viewport {
  position: relative;
  z-index: 1;
}

.orbit-walk_header {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  max-width: 31rem;
  margin-bottom: 1.5rem;
}

.orbit-walk_eyebrow,
.orbit-walk_index,
.orbit-walk_hint-label {
  letter-spacing: 0.14em;
  color: var(--color-main);
}

.orbit-walk_title {
  max-width: 11ch;
  line-height: 0.94;
}

.orbit-walk_copy {
  max-width: 28rem;
  line-height: 1.14;
}

.orbit-walk_meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.6rem;
}

.orbit-walk_progress {
  flex: 1 1 auto;
  width: 100%;
  height: 4px;
  border-radius: 999px;
  overflow: hidden;
  background: color-mix(in srgb, var(--color-main), transparent 84%);
}

.orbit-walk_progress span {
  display: block;
  width: 100%;
  height: 100%;
  transform-origin: left center;
  transform: scaleX(0);
  background: linear-gradient(90deg, var(--color-main) 0%, var(--color-accent) 100%);
}

.orbit-walk_controls {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.65rem;
  flex-shrink: 0;
}

.orbit-walk_control {
  appearance: none;
  border: 1px solid color-mix(in srgb, var(--color-main), transparent 55%);
  border-radius: 999px;
  background: color-mix(in srgb, var(--color-white), transparent 8%);
  color: var(--color-black);
  padding: 0.72rem 1rem;
  font: 600 0.72rem/1 var(--font-mono);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  cursor: pointer;
  transition:
    transform 0.2s ease,
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease,
    opacity 0.2s ease;
}

.orbit-walk_control:hover:not(:disabled) {
  transform: translateY(-1px);
  border-color: color-mix(in srgb, var(--color-main), var(--color-accent) 28%);
  background: color-mix(in srgb, var(--color-white), var(--color-accent) 12%);
}

.orbit-walk_control:disabled {
  opacity: 0.42;
  cursor: default;
}

.orbit-walk_viewport {
  overflow: hidden;
  padding: 0.6rem 0 0.5rem;
  cursor: grab;
  user-select: none;
  touch-action: pan-y;
  outline: none;
}

.orbit-walk_viewport.is-dragging {
  cursor: grabbing;
}

.orbit-walk_viewport:focus-visible {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-accent), transparent 35%);
  border-radius: 1.2rem;
}

.orbit-walk_track {
  display: flex;
  gap: clamp(0.9rem, 1.6vw, 1.4rem);
  width: max-content;
  will-change: transform;
}

.orbit-walk_card {
  width: min(44rem, calc(100vw - 14rem));
  min-height: clamp(22rem, 40vw, 28rem);
  padding: clamp(1.25rem, 1.8vw, 1.8rem);
  border-radius: 1.7rem;
  border: 1px solid color-mix(in srgb, var(--color-main), var(--color-white) 76%);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.96) 0%, rgba(236, 224, 248, 0.86) 50%, rgba(255, 255, 255, 0.92) 100%);
  box-shadow: 0 18px 50px rgba(123, 44, 191, 0.08);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 2rem;
  flex-shrink: 0;
  opacity: 0.48;
  transform: translateY(1.25rem) scale(0.97);
  transition:
    transform 0.35s ease,
    opacity 0.35s ease,
    border-color 0.35s ease,
    box-shadow 0.35s ease,
    background 0.35s ease;
}

.orbit-walk_card.is-near {
  opacity: 0.78;
  transform: translateY(0.45rem) scale(0.985);
}

.orbit-walk_card.is-active {
  opacity: 1;
  transform: translateY(0) scale(1);
  border-color: color-mix(in srgb, var(--color-main), var(--color-accent) 35%);
  box-shadow: 0 22px 60px rgba(123, 44, 191, 0.16);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.98) 0%, rgba(229, 210, 247, 0.92) 55%, rgba(255, 255, 255, 0.94) 100%);
}

.orbit-walk_card-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
}

.orbit-walk_kicker {
  color: color-mix(in srgb, var(--color-black), var(--color-main) 34%);
}

.orbit-walk_card-body {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
}

.orbit-walk_heading {
  max-width: 11ch;
  line-height: 0.94;
}

.orbit-walk_text {
  max-width: 17ch;
  line-height: 1.16;
}

.orbit-walk_hint {
  display: flex;
  justify-content: space-between;
  gap: 1.25rem;
  margin-top: 1.4rem;
  color: color-mix(in srgb, var(--color-black), var(--color-main) 38%);
}

.orbit-walk_hint-copy {
  max-width: 24rem;
  line-height: 1.25;
}

body.is-orbit-active .orbit-walk_shell,
.orbit-walk.is-active .orbit-walk_shell {
  border-color: color-mix(in srgb, var(--color-main), var(--color-accent) 24%);
  box-shadow: 0 28px 88px rgba(123, 44, 191, 0.16);
}


.weather-consent {
  position: fixed;
  top: 5.8rem;
  right: 1.5rem;
  z-index: 60;
  width: min(22rem, calc(100vw - 3rem));
  padding: 1rem 1.1rem;
  border: 1px solid color-mix(in srgb, var(--color-main), var(--color-white) 70%);
  border-radius: 1.2rem;
  background:
    linear-gradient(
      135deg,
      color-mix(in srgb, var(--color-white), transparent 6%) 0%,
      color-mix(in srgb, var(--color-grey), var(--color-white) 30%) 100%
    );
  box-shadow: 0 18px 45px rgba(29, 13, 43, 0.14);
  backdrop-filter: blur(16px);
  pointer-events: auto;
  touch-action: manipulation;
}

.weather-consent_note {
  margin: 0;
  line-height: 1.45;
  color: var(--color-black);
}

.weather-consent_actions {
  display: flex;
  gap: 0.65rem;
  margin-top: 0.85rem;
}

.weather-consent_button {
  appearance: none;
  border: 1px solid color-mix(in srgb, var(--color-main), transparent 55%);
  border-radius: 999px;
  background: color-mix(in srgb, var(--color-white), transparent 6%);
  color: var(--color-black);
  padding: 0.65rem 1rem;
  font: 600 0.72rem/1 var(--font-mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  transition:
    transform 0.2s ease,
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
}

.weather-consent_button:hover:not(:disabled) {
  transform: translateY(-1px);
  border-color: var(--color-main);
}

.weather-consent_button:disabled {
  opacity: 0.6;
  cursor: progress;
}

.weather-consent_button.is-primary {
  background: var(--color-main);
  border-color: var(--color-main);
  color: var(--color-white);
}

.weather-consent_button.is-primary:hover:not(:disabled) {
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: var(--color-black);
}

@media (hover: hover) and (pointer: fine) {
  body.is-model-hovered main[data-transition-page="home"] .hero_row > .h1 {
    color: var(--color-black) !important;
  }

  body.is-model-hovered main[data-transition-page="home"] .hero_btn > .btn,
  .btn:hover,
  .weather-consent_button.is-primary:hover:not(:disabled),
  .mob-close:hover {
    background: var(--color-burgundy) !important;
    border-color: var(--color-burgundy) !important;
    color: var(--color-white) !important;
    box-shadow: 0 16px 40px rgba(122, 22, 49, 0.22);
  }

  .nav_weather:hover,
  .nav_weather:hover svg,
  .nav_weather:hover [data-weather-city],
  .nav_weather:hover [data-temperature],
  .nav_weather:hover [data-weather-status],
  .nav_weather:hover > .block [data-time],
  .nav-side:hover [data-time],
  .nav-side:hover [data-weather-coords],
  .side-logo_parent:hover,
  .side-logo_parent:hover svg,
  body:has([data-transition-page="home"]) .footer_logo:hover .h1,
  body:has([data-transition-page="home"]) .loader_percentage:hover {
    color: var(--color-burgundy) !important;
  }

  .side-logo_parent:hover .sign-main {
    fill: var(--color-burgundy) !important;
  }

  .side-logo_parent:hover .sign-secondary {
    fill: var(--color-dark-burgundy) !important;
  }

  body.is-model-hovered main[data-transition-page="home"] + .canvas-container canvas {
    filter: hue-rotate(82deg) saturate(220%) brightness(1.02) contrast(1.06);
  }
}

@media screen and (min-width: 1025px) {
  main[data-transition-page="home"] .hero_btn {
    left: 36.85vw !important;
    top: 6.80vw !important;
    right: auto !important;
  }

  main[data-transition-page="home"] .hero_btn > .btn {
    background: #7B2CBF !important;
    border-color: #7B2CBF !important;
    box-shadow: 0 16px 40px rgba(123, 44, 191, 0.22) !important;
    width: 14.25vw !important;
    min-width: 290px;
    min-height: 5.4vw;
    padding-inline: 1vw !important;
    padding-block: 0.9vw !important;
  }

  main[data-transition-page="home"] .hero_btn .btn_text {
    white-space: normal;
    text-align: center;
  }
}

@media screen and (min-width: 480px) and (max-width: 1024px) {
  main[data-transition-page="home"] .hero_btn {
    left: auto !important;
    right: 22vw !important;
  }

  main[data-transition-page="home"] .hero_btn > .btn {
    background: #7B2CBF !important;
    border-color: #7B2CBF !important;
    box-shadow: 0 16px 40px rgba(123, 44, 191, 0.22) !important;
    width: 24vw !important;
    min-width: 300px;
    min-height: 11vw;
    padding-inline: 1.8vw !important;
    padding-block: 1.6vw !important;
  }

  main[data-transition-page="home"] .hero_btn .btn_text {
    white-space: normal;
    text-align: center;
  }
}

@media screen and (max-width: 1024px) {
  .home-timeline {
    padding: 1.2rem;
  }

  .home-timeline_panel {
    width: min(38rem, calc(100vw - 2.4rem));
    max-height: calc(100vh - 2.4rem);
  }

  .home-timeline_scroll {
    max-height: calc(100vh - 7.6rem);
  }

  main[data-transition-page="home"] .hero_title.is-2 .hero_domain {
    letter-spacing: -0.03em;
  }

  main[data-transition-page="home"] .hero_title.is-2 .hero_control-line {
    margin-left: 8.8541666667vw;
  }

  main[data-transition-page="home"] .hero_title.is-2 .hero_logic-line {
    margin-left: 28.6458333333vw;
  }

  .orbit-walk {
    min-height: auto;
    margin-top: 8vh;
    padding-bottom: 0;
  }

  .orbit-walk_stage {
    position: relative;
    min-height: auto;
    padding: 0;
  }

  .orbit-walk_shell {
    width: 100%;
    margin-left: 0;
    padding: 1rem;
    border-radius: 1.45rem;
  }

  .orbit-walk_header {
    max-width: none;
    margin-bottom: 1rem;
  }

  .orbit-walk_meta {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
    margin-bottom: 1rem;
  }

  .orbit-walk_progress {
    margin-bottom: 0;
  }

  .orbit-walk_controls {
    justify-content: stretch;
  }

  .orbit-walk_control {
    flex: 1 1 0;
    min-height: 2.75rem;
  }

  .orbit-walk_viewport {
    overflow: visible;
    padding: 0;
    cursor: auto;
    user-select: auto;
  }

  .orbit-walk_track {
    width: 100%;
    flex-direction: column;
    transform: none !important;
  }

  .orbit-walk_card,
  .orbit-walk_card.is-near,
  .orbit-walk_card.is-active {
    width: 100%;
    min-height: auto;
    gap: 1.25rem;
    opacity: 1;
    transform: none;
  }

  .orbit-walk_hint {
    flex-direction: column;
    margin-top: 1rem;
  }

  .weather-consent {
    top: auto;
    right: 1rem;
    bottom: 1rem;
    left: 1rem;
    width: auto;
  }

  .weather-consent_actions {
    flex-direction: column;
  }
}

@media screen and (max-width: 479px) {
  body:has([data-transition-page="home"]) {
    background:
      radial-gradient(circle at 18% 22%, rgba(123, 44, 191, 0.18), transparent 30%),
      radial-gradient(circle at 78% 34%, rgba(123, 44, 191, 0.1), transparent 36%),
      linear-gradient(180deg, #f6f3f7 0%, #f1edf4 100%);
  }

  body:has([data-transition-page="home"]) .noise {
    opacity: 0.42;
  }

  .side-logo_parent {
    visibility: visible !important;
    left: 0 !important;
    color: var(--color-black) !important;
    transform: translateX(calc(var(--spacing) * -12));
  }

  .side_logo-bg {
    top: calc(var(--spacing) * -14) !important;
    width: calc(var(--spacing) * 156) !important;
    opacity: 1;
  }

  .side-logo {
    width: calc(var(--spacing) * 120) !important;
  }

  .side-logo_wordmark {
    transform: translateX(calc(var(--spacing) * 6)) scale(2.05);
    transform-origin: left center;
  }

  .nav_weather {
    display: flex !important;
    position: fixed !important;
    top: calc(var(--spacing) * 68) !important;
    right: calc(var(--spacing) * 16) !important;
    bottom: auto !important;
    margin: 0 !important;
    z-index: 40;
    align-items: center !important;
    gap: calc(var(--spacing) * 10) !important;
    padding: calc(var(--spacing) * 8) calc(var(--spacing) * 10) !important;
    border-radius: calc(var(--spacing) * 18);
    background: rgba(255, 255, 255, 0.74);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: 0 12px 28px rgba(123, 44, 191, 0.12);
  }

  .nav:has(.nav_cta.active) .nav_weather {
    top: calc(var(--spacing) * 126) !important;
  }

  .nav_weather .w-15.h-15 {
    width: calc(var(--spacing) * 16) !important;
    height: calc(var(--spacing) * 16) !important;
  }

  .nav_weather > .block {
    align-items: flex-end;
    gap: calc(var(--spacing) * 1) !important;
  }

  .nav_weather [data-temperature] {
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
  }

  .nav_weather [data-weather-city],
  .nav_weather [data-temperature],
  .nav_weather [data-weather-status],
  .nav_weather > .block [data-time] {
    font-size: calc(10 * var(--spacing)) !important;
    line-height: 1.1;
    white-space: nowrap;
  }

  .nav_weather [data-weather-status] {
    max-width: calc(var(--spacing) * 92);
    white-space: normal;
  }

  .nav-side {
    display: none !important;
  }
}

body:has([data-transition-page="about"]) header.about,
body:has([data-transition-page="about"]) section.bg-black,
body:has([data-transition-page="about"]) footer.footer,
body:has([data-transition-page="password"]) section.bg-black {
  background-color: #1D0D2B !important;
}

body:has([data-transition-page="about"]) header.about .about_bg {
  position: relative;
}

body:has([data-transition-page="about"]) header.about .about_bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(29, 13, 43, 0.15), rgba(29, 13, 43, 0.58));
  pointer-events: none;
}

main[data-transition-page="password"] .password_portal {
  position: relative;
  overflow: clip;
  background:
    radial-gradient(circle at 18% 18%, rgba(120, 80, 255, 0.42), transparent 30%),
    radial-gradient(circle at 82% 28%, rgba(0, 200, 255, 0.28), transparent 28%),
    radial-gradient(circle at 52% 84%, rgba(215, 38, 78, 0.24), transparent 30%),
    linear-gradient(135deg, #0a0f1f, #111827, #1f2937);
}

main[data-transition-page="password"] .password_portal::before,
main[data-transition-page="password"] .password_portal::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  filter: blur(80px);
  opacity: 0.65;
  pointer-events: none;
}

main[data-transition-page="password"] .password_portal::before {
  width: 20rem;
  height: 20rem;
  top: 8%;
  left: 8%;
  background: rgba(123, 44, 191, 0.46);
}

main[data-transition-page="password"] .password_portal::after {
  width: 18rem;
  height: 18rem;
  right: 10%;
  bottom: 12%;
  background: rgba(0, 200, 255, 0.22);
}

main[data-transition-page="password"] .password_portal-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(22rem, 28rem);
  gap: clamp(2rem, 4vw, 4rem);
  align-items: center;
}

main[data-transition-page="password"] .password_portal-copy {
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
}

main[data-transition-page="password"] .password_portal-points {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
}

main[data-transition-page="password"] .password_portal-point {
  padding: 1rem;
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.14);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

main[data-transition-page="password"] .password_portal-panel {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: clamp(1.5rem, 3vw, 2rem);
  border-radius: 1.75rem;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.22);
  box-shadow:
    0 20px 50px rgba(0, 0, 0, 0.35),
    inset 0 1px 1px rgba(255, 255, 255, 0.18);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
}

main[data-transition-page="password"] .password_portal-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.04)),
    radial-gradient(circle at top left, rgba(255, 255, 255, 0.18), transparent 35%);
  pointer-events: none;
}

main[data-transition-page="password"] .password_portal-panel-top,
main[data-transition-page="password"] .password_portal-form {
  position: relative;
  z-index: 1;
}

main[data-transition-page="password"] .password_portal-panel-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.2rem;
}

main[data-transition-page="password"] .password_portal-brand {
  font-size: 0.92rem;
  color: rgba(255, 255, 255, 0.88);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 700;
}

main[data-transition-page="password"] .password_portal-form {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}

@media screen and (max-width: 1024px) {
  main[data-transition-page="password"] .password_portal-grid {
    grid-template-columns: 1fr;
  }

  main[data-transition-page="password"] .password_portal-points {
    grid-template-columns: 1fr;
  }
}

@media screen and (max-width: 767px) {
  .home-timeline {
    padding: 0.85rem;
  }

  .home-timeline_panel {
    width: calc(100vw - 1.7rem);
    max-height: calc(100vh - 1.7rem);
    padding: 1rem 0.95rem 1.1rem;
    border-radius: 1.2rem;
  }

  .home-timeline_head {
    margin-bottom: 0.75rem;
  }

  .home-timeline_title {
    font-size: 1.55rem;
  }

  .home-timeline_close {
    padding: 0.55rem 0.78rem;
    font-size: 0.68rem;
  }

  .home-timeline_scroll {
    max-height: calc(100vh - 6.8rem);
    padding: 0.75rem 0 1.65rem;
  }

  .home-timeline_line {
    left: 0.8rem;
    transform: none;
  }

  .home-timeline_items {
    gap: 2rem;
  }

  .home-timeline_item {
    grid-template-columns: 1fr;
    min-height: auto;
    padding-left: 2.1rem;
  }

  .home-timeline_item:nth-child(odd) .home-timeline_card,
  .home-timeline_item:nth-child(even) .home-timeline_card {
    grid-column: 1;
    justify-self: stretch;
    width: auto;
    margin: 0;
    text-align: left;
  }

  .home-timeline_dot {
    left: 0.8rem;
    top: 1.1rem;
    transform: translate(-50%, 0);
  }

  .home-timeline_card {
    padding: 0.8rem 0.85rem;
  }

  .home-timeline_label {
    font-size: 1rem;
  }

  main[data-transition-page="home"] .hero_btn {
    left: auto !important;
    right: 20.5vw !important;
  }

  main[data-transition-page="home"] .hero_btn > .btn {
    width: 42vw !important;
    min-width: 0 !important;
    padding-inline: 2.4vw !important;
  }

  main[data-transition-page="home"] .hero_login-stage {
    position: relative;
    top: auto;
    left: auto;
    bottom: auto;
    right: auto;
    width: min(100%, 22rem);
    margin: 2.25rem 0 0 auto;
    transform: none;
  }

  body.is-admin-authenticated main[data-transition-page="home"] .hero_login-stage {
    transform: translateY(0.8rem) scale(0.96);
  }

  main[data-transition-page="home"] .hero_login-card {
    transform: none;
  }

  body.is-mobile-login-flipped main[data-transition-page="home"] .hero_login-card {
    transform: rotateY(180deg);
  }

  main[data-transition-page="home"] .hero_login-card-wrap {
    cursor: pointer;
  }

  main[data-transition-page="home"] .hero_login-number {
    font-size: 0.8rem;
    letter-spacing: 0;
  }

  main[data-transition-page="home"] .hero_login-hint {
    display: block;
    margin-top: 0.7rem;
    font-size: 0.72rem;
    text-align: right;
  }
}
.uni-space {
  font-family: "Playfair Display", serif;
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
}

.uni-name {
  font-family: "Playfair Display", serif;
  font-size: 1.2rem;
  font-weight: 700;
  text-transform: uppercase;
}
.line {
  display: block;
}

.gap-small {
  margin-top: 0.2em;
}

.gap-medium {
  margin-top: 0.8em;
}
