/* The scene changes with the journey; all text remains readable without motion. */
.motion-toggle { border: 1px solid #17634640; border-radius: 99px; background: #ffffffa8; color: #285541; font-size: .63rem; padding: 9px 13px; min-height: 44px; cursor: pointer; }
.motion-toggle[hidden] { display: none; }
.stage-label { font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; color: var(--color-success); margin: 6px 0 0; }
.application__form { padding-top: 22px; }
.application__step { width: 100%; }
.application__description { margin-bottom: 25px; }
.application__question { font-size: clamp(1.95rem, 3.2vw, 3.1rem); }
.application__aside { justify-content: center; background: linear-gradient(135deg, #d4f6e6, #81eac0 52%, #45e0a2); transition: background 600ms ease; }
.application__aside h2 { max-width: 410px; font-size: clamp(1.8rem, 2.8vw, 2.8rem); position: relative; }
.application__aside-note { max-width: 310px; }
.journey-scene { position: relative; width: min(100%, 450px); height: clamp(260px, 30vw, 390px); isolation: isolate; margin-top: 26px; --journey-turn: -20deg; }
.journey-scene__halo { position: absolute; inset: 8%; border-radius: 50%; background: radial-gradient(circle at 30% 20%, #ffffffd9, #ffffff30 65%); box-shadow: inset 0 1px 3px #fff, 0 20px 50px #17634612; backdrop-filter: blur(14px); animation: scene-breathe 8s ease-in-out infinite alternate; }
.journey-scene__orbit { position: absolute; inset: 1%; border: 1px solid #ffffffcc; border-radius: 45%; transform: rotate(var(--journey-turn)); transition: transform 850ms ease; }
.journey-scene__orbit::after { content: ''; position: absolute; width: 16px; height: 16px; background: #fff; border-radius: 50%; top: 8%; left: 16%; box-shadow: 0 0 0 10px #ffffff35; }
.journey-scene__card { position: absolute; width: 57%; top: 8%; transition: transform 850ms cubic-bezier(.2,.7,.2,1), opacity 600ms ease; }
.journey-scene__card img { width: 100%; height: auto; filter: drop-shadow(0 22px 16px #13402b30); animation: scene-float 6s ease-in-out infinite; }
.journey-scene__card--plus { left: 0; transform: translate(0, 7%) rotate(-17deg); }
.journey-scene__card--plus img { animation-delay: -3s; }
.journey-scene__card--black { right: 0; transform: translate(0, -3%) rotate(12deg); }
.journey-scene__tile { position: absolute; z-index: 2; left: 0; top: 8%; display: grid; place-items: center; width: 64px; height: 64px; border-radius: 22px; border: 1px solid #fff; background: #ffffffb3; color: #176346; box-shadow: var(--glass-shadow); backdrop-filter: blur(20px); font-size: 2rem; animation: float-gentle 5s ease-in-out infinite; }
.journey-scene__number { position: absolute; bottom: 5%; right: 0; color: #176346; background: #ffffffb3; backdrop-filter: blur(14px); border: 1px solid white; padding: 7px 20px; border-radius: 99px; font-size: .85rem; letter-spacing: .15em; }
body[data-stage="contact"] .journey-scene__card--plus { transform: translate(14%, -5%) rotate(-7deg); }
body[data-stage="contact"] .journey-scene__card--black { transform: translate(-9%, 8%) rotate(20deg); }
body[data-stage="details"] .journey-scene__card--plus { transform: translate(0, 10%) rotate(-25deg); }
body[data-stage="details"] .journey-scene__card--black { transform: translate(-7%, -6%) rotate(2deg); }
body[data-stage="address"] .journey-scene__card--plus { transform: translate(16%, -5%) rotate(5deg); z-index: 1; }
body[data-stage="address"] .journey-scene__card--black { transform: translate(0, 12%) rotate(24deg); opacity: .85; }
body[data-stage="finish"] .journey-scene__card--plus { transform: translate(-6%, 0) rotate(-24deg); }
body[data-stage="finish"] .journey-scene__card--black { transform: translate(0, -7%) rotate(20deg); }
.journey-stages { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 15px; margin-top: 30px; padding: 14px 18px; border: 1px solid #ffffffaa; border-radius: 99px; background: #ffffff66; backdrop-filter: blur(14px); list-style: none; font-size: .58rem; color: #315543; }
.journey-stages li { border-bottom: 2px solid transparent; padding: 3px 0; }
.journey-stages .is-active { color: #123526; border-color: #176346; font-weight: 700; }
.field-help { font-size: .68rem; line-height: 1.7; color: var(--color-text-secondary); }
.rfc-fields { display: grid; grid-template-columns: minmax(0, 2fr) minmax(95px, 1fr); gap: 18px; }
.rfc-fields .field-label { font-size: .65rem; }
.rfc-fields .input { font-family: inherit; font-size: clamp(.95rem, 1.6vw, 1.35rem); letter-spacing: .045em; }
.rfc-preview { overflow-wrap: anywhere; padding: 12px 14px; margin: 18px 0; border: 1px solid #17634625; border-radius: 12px; background: #45e0a21a; color: #176346; font-size: .78rem; letter-spacing: .04em; }
.rfc-question .text-link { margin-top: 12px; display: inline-block; min-height: 36px; }
.rfc-confirm { font-size: .69rem; line-height: 1.6; padding-bottom: 0; }
.rfc-confirm input:focus-visible { outline: 3px solid var(--color-success); outline-offset: 3px; }
.phone-chip { display: inline-block; font-size: .7rem; color: #176346; border-radius: 99px; background: #45e0a21a; padding: 8px 12px; margin-bottom: 15px; }
.demo-code-panel { background: #ffffffa3; border: 1px solid white; border-radius: 16px; padding: 16px 20px; margin-bottom: 24px; box-shadow: var(--glass-inset); }
.demo-code-panel p { font-size: .69rem; margin-top: 10px; color: var(--color-text-secondary); }
.demo-code { display: block; font-size: 1.6rem; letter-spacing: .25em; font-variant-numeric: tabular-nums; margin-top: 8px; }
.otp-input { letter-spacing: .38em; font-variant-numeric: tabular-nums; }
.otp-actions { display: flex; flex-wrap: wrap; gap: 4px 20px; margin-top: 8px; }
.otp-actions button { min-height: 44px; border: 0; background: transparent; padding: 0; font-size: .65rem; cursor: pointer; }
.otp-actions button:disabled { color: #686b65; cursor: default; text-decoration: none; }
.otp-question [data-sms-status] { margin-top: 12px; min-height: 2.8em; }
.select-input { border: 1px solid #17634655; border-radius: 12px; padding: 16px 12px; font-size: 1rem; background: #ffffffa3; }
.select-input:focus-visible { outline: 3px solid #176346; outline-offset: 3px; }
.final-cta--motion { isolation: isolate; display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; min-height: 460px; padding: 64px; background: radial-gradient(ellipse at 90% 40%, #245e46, transparent 65%), #14251d; }
.final-cta--motion::after { background: none; }
.final-cta--motion > div { grid-column: 1; grid-row: 1; margin: 0; padding: 28px; position: relative; z-index: 2; background: #ffffff0a; }
.final-cta--motion h2 { font-size: clamp(2.2rem, 4vw, 3.7rem); }
.motion-finale { grid-column: 2; grid-row: 1; position: relative; width: 100%; height: 340px; margin: 0; }
.final-cta--motion .motion-finale img { position: absolute; inset: auto; object-fit: contain; width: 66%; height: auto; filter: drop-shadow(0 20px 20px #0005); }
.motion-finale__plus { left: -5%; top: 0; animation: card-float-plus 7s ease-in-out infinite; }
.motion-finale__black { right: -2%; top: 5%; animation: card-float-black 6s ease-in-out infinite; }
.motion-finale__ring { position: absolute; inset: 2%; border: 1px solid #9ae5c777; background: #45e0a218; border-radius: 45%; box-shadow: inset 0 0 50px #45e0a215; animation: scene-breathe 8s ease-in-out infinite alternate; }
.motion-finale__ring--outer { inset: -6%; background: transparent; animation-delay: -4s; }
.motion-finale__spark { position: absolute; right: 0; top: -3%; font-size: 3rem; color: #b8ffda; animation: sparkle 5s ease-in-out infinite; }
@keyframes scene-breathe { from { transform: rotate(-10deg) scale(.94); } to { transform: rotate(10deg) scale(1.04); } }
@keyframes scene-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-14px); } }
@media (max-width: 1023px) {
  .application__header-actions { gap: 14px; }
  .journey-scene { height: 280px; }
  .journey-stages { border-radius: 18px; }
  .final-cta--motion { padding: 38px; }
  .motion-finale { height: 260px; }
}
@media (max-width: 767px) {
  .motion-toggle { font-size: .53rem; padding: 8px; max-width: 90px; line-height: 1.4; }
  .site-header__actions { gap: 8px; }
  .application__header-actions { gap: 8px; }
  .application__header .progress { min-width: 62px; }
  .application__main { padding-inline: 18px; }
  .application__form { padding-top: 18px; }
  .application__description { margin-bottom: 24px; }
  .application__question { font-size: clamp(1.9rem, 7.6vw, 2.8rem); }
  .rfc-fields { gap: 12px; grid-template-columns: minmax(0, 1fr) 86px; }
  .rfc-fields .input { font-size: .95rem; letter-spacing: 0; }
  .final-cta--motion { grid-template-columns: 1fr; padding: 30px; }
  .final-cta--motion > div { grid-column: 1; grid-row: 1; padding: 22px; }
  .motion-finale { grid-column: 1; grid-row: 2; max-width: 340px; height: 320px; margin: 30px auto 10px; }
}
@media (max-width: 390px) {
  .application__header .container { width: calc(100% - 28px); }
  .application__header .brand-logo { width: 78px; height: auto; }
  .site-header__inner { gap: 8px; }
  .site-header .brand-logo { width: 83px; height: auto; }
  .site-header__actions .button { padding-inline: 10px; font-size: .61rem; }
  .rfc-fields .field-label { font-size: .6rem; }
}
body[data-motion-paused="true"] *, body[data-motion-paused="true"] *::before, body[data-motion-paused="true"] *::after { animation: none !important; transition-duration: 0s !important; scroll-behavior: auto !important; }
body[data-motion-paused="true"].motion-ready [data-reveal] { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

.final-cta--motion .motion-finale .motion-finale__plus { left: -5%; top: 0; }
.final-cta--motion .motion-finale .motion-finale__black { right: -2%; top: 5%; }

@media (max-width: 390px) {
  .application__header-inner > a { flex-shrink: 0; }
  .application__header .brand-logo { width: 78px; }
  .application__header-actions { gap: 6px; }
  .application__header .motion-toggle { max-width: 78px; }
  .application__header .progress { min-width: 0; gap: 0; }
  .application__header .progress__track { display: none; }
  .application__header .progress__label { font-size: .65rem; }
}
