/* Site-wide motion. Content remains visible if JavaScript or observers are unavailable. */
:root { --motion-ease: cubic-bezier(.2,.7,.2,1); }
.reveal, .product-page .product-section .reveal { opacity: 1; transform: none; }
.motion-ready .motion-enter { transition: opacity .95s var(--motion-ease), transform .95s var(--motion-ease); transition-delay: var(--entry-delay,0ms); }
.motion-ready .motion-enter:not(.motion-shown) { opacity: 0; transform: translateY(14px); }
.motion-ready .motion-enter.motion-heading { transition-duration: 1.2s; }
.motion-ready .founder-card.motion-enter { transition-duration: 1.3s; }
.motion-ready .motion-enter.motion-shown { opacity: 1; transform: none; }
.motion-ready .page-hero-copy, .motion-ready .hero-copy { opacity: 1; transform: none; }
.star-core { animation-duration: 10s; }
.ring-one { animation-duration: 32s; }
.ring-two { animation-duration: 42s; }
.page-orbit::before { animation-duration: 32s; }
.motion-tab-hidden *, .motion-tab-hidden *::before, .motion-tab-hidden *::after, .motion-off *, .motion-off *::before, .motion-off *::after { animation-play-state: paused !important; }
.motion-off .motion-enter, .motion-off .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
.motion-control { display: inline-flex; align-items: center; min-height: 36px; padding: 4px 0; margin-top: 16px; background: none; border: 0; border-bottom: 1px solid #6a527e; color: #bfb1cb; font: inherit; font-size: 14px; cursor: pointer; }
.motion-control[hidden] { display: none; }
.motion-ambient-off, .motion-ambient-off::before, .motion-ambient-off * { animation-play-state: paused !important; }
.motion-control:focus-visible { outline: 2px solid #b278ef; outline-offset: 5px; }
.motion-surface { transition: border-color .25s ease, box-shadow .3s ease, background-color .3s ease; }
.motion-surface:focus-within { border-color: #a276ce; box-shadow: inset 0 0 0 1px #a276ce33; }
.btn, .navcta { transition: background-color .25s, border-color .25s, box-shadow .25s, transform .25s; }
.btn:active, .navcta:active { transform: translateY(1px); }
.btn > span, .navcta > span { display: inline-block; transition: transform .25s var(--motion-ease); }
.form-field > span { transition: color .22s; }
.form-field input, .form-field textarea, .form-field select { transition: border-color .22s, box-shadow .22s, background-color .22s; }
.form-field:focus-within > span { color: #8140bb; }
.form-field input:focus, .form-field textarea:focus, .form-field select:focus { outline: 2px solid #a26bd1; outline-offset: 2px; box-shadow: 0 0 0 5px #a26bd115; }
.founder-card:hover .founder-photo img { transform: none; }
/* Service: one continuous rail. Safety: a soft handoff between nodes. */
.sequence-item { position: relative; }
.sequence-process { position: relative; }
.sequence-process::before, .sequence-process::after { content: ''; position: absolute; left: 0; top: -20px; width: 100%; height: 1px; pointer-events: none; }
.sequence-process::before { background: #dfd4e8; }
.sequence-process::after { background: linear-gradient(90deg,#c8addc,#8657ad); transform: scaleX(0); transform-origin: left; }
.sequence-process.sequence-active::after { animation: service-rail 3.2s cubic-bezier(.3,.55,.35,1) .3s forwards; }
.sequence-process.sequence-active .sequence-item > b { animation: service-step 1.2s ease both; animation-delay: calc(.35s + var(--step,0) * 580ms); }
.sequence-surface > i { transform: none; position: relative; font-size: 0; width: 24px; height: 1px; align-self: center; background: #c6b7d2; }
.sequence-safety .sequence-item { border-color: #dfd7e6; }
.sequence-safety.sequence-active .sequence-item { animation: safety-focus 1.65s ease both; animation-delay: calc(var(--step,0) * 650ms); }
.sequence-safety > i::after { content: ''; position: absolute; top: -1px; left: 0; width: 8px; height: 3px; border-radius: 3px; background: #9c77bc; opacity: 0; }
.sequence-safety.sequence-active > i::after { animation: safety-handoff .75s ease both; animation-delay: calc(.75s + var(--step,0) * 650ms); }
.interaction-flow { display: grid; grid-template-columns: auto minmax(20px,1fr) auto minmax(20px,1fr) auto; align-items: center; gap: 20px; margin: 0 0 32px; padding: 22px 28px; border: 1px solid #342443; background: #0e0915; }
.interaction-flow > span { color: #d8c0ed; font-size: 16px; }
.interaction-flow > i { width: 100%; background: #604376; }
@keyframes service-rail { to { transform: scaleX(1); } }
@keyframes service-step { 0%,100% { color: #9877b3; } 45% { color: #67358f; } }
@keyframes safety-focus { 0%,100% { border-color: #dfd7e6; box-shadow: none; } 45% { border-color: #aa87c4; box-shadow: inset 0 0 26px #bb95d40d; } }
@keyframes safety-handoff { 0% { left: 0; opacity: 0; } 25%,75% { opacity: .85; } 100% { left: calc(100% - 8px); opacity: 0; } }
/* Ambient geometry stays at the edges and behind the existing reading surface. */
.ambient-section { position: relative; isolation: isolate; }
.ambient-section > .container { position: relative; z-index: 1; }
.ambient-backdrop { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.ambient-grid { position: absolute; inset: -100px; opacity: .5; background-image: linear-gradient(#aa7ccd12 1px,transparent 1px),linear-gradient(90deg,#aa7ccd12 1px,transparent 1px); background-size: 84px 84px; mask-image: linear-gradient(100deg,transparent 45%,#000 100%); animation: ambient-grid-drift 40s linear infinite; }
.ambient-halo { position: absolute; right: -18%; bottom: -52%; width: 75%; height: 120%; border-radius: 50%; background: radial-gradient(ellipse,#8a42bd1c,transparent 66%); animation: ambient-halo-drift 22s ease-in-out infinite alternate; }
.ambient-orbit { position: absolute; width: min(80vw,950px); aspect-ratio: 1; right: -34%; top: -15%; border: 1px solid #b283d31a; border-radius: 50%; transform: rotate(-25deg) scaleY(.7); animation: ambient-orbit-drift 32s ease-in-out infinite alternate; }
.ambient-orbit::after { content: ''; position: absolute; inset: 11%; border: 1px solid #b283d310; border-radius: 50%; }
.ambient-backdrop[data-tone="light"] .ambient-grid { opacity: .8; background-image: linear-gradient(#7549940b 1px,transparent 1px),linear-gradient(90deg,#7549940b 1px,transparent 1px); }
.ambient-backdrop[data-tone="light"] .ambient-halo { background: radial-gradient(ellipse,#8c50b30d,transparent 65%); }
.ambient-backdrop[data-tone="light"] .ambient-orbit { border-color: #8756a810; }
.ambient-backdrop[data-tone="light"] .ambient-orbit::after { border-color: #8756a80b; }
.ambient-backdrop[data-variant="horizon"] .ambient-grid { transform: perspective(600px) rotateX(45deg); transform-origin: bottom; animation-name: ambient-grid-horizon; }
.ambient-backdrop[data-variant="horizon"] .ambient-orbit { top: auto; bottom: -90%; right: -10%; }
.ambient-backdrop[data-variant="orbital"] .ambient-grid { opacity: .2; }
@keyframes ambient-grid-drift { to { transform: translateY(84px); } }
@keyframes ambient-grid-horizon { to { transform: perspective(600px) rotateX(45deg) translateY(84px); } }
@keyframes ambient-halo-drift { to { transform: translate(-6%, -5%) scale(1.08); opacity: .6; } }
@keyframes ambient-orbit-drift { to { transform: rotate(-15deg) scaleY(.75) translateY(18px); } }
@media (hover:hover) and (pointer:fine) {
  .motion-surface:hover { transform: none; border-color: #a782c5; box-shadow: 0 10px 30px #54316b12,inset 0 0 0 1px #b481db22; }
  .btn:hover, .navcta:hover { box-shadow: 0 8px 26px #9d55e025; }
  .btn:hover > span, .navcta:hover > span { transform: translate(2px,-2px); }
  .home-summary-card:hover, .home-case-card:hover, .home-service-card:hover { background-color: #140e1e; }
  .founder-card:hover { transform: none; }
}
@media (max-width:1030px) {
 .sequence-surface > i { width: 1px; height: 22px; justify-self: center; }
 .sequence-safety > i::after { top: 0; left: -1px; width: 3px; height: 7px; }
 .sequence-safety.sequence-active > i::after { animation-name: safety-handoff-vertical; }
 .sequence-process::before, .sequence-process::after { top: 0; left: -10px; width: 1px; height: 100%; }
 .sequence-process::after { transform: scaleY(0); transform-origin: top; }
 .sequence-process.sequence-active::after { animation-name: service-rail-vertical; }
 .interaction-flow > i { width: 100%; height: 1px; }
}
@keyframes service-rail-vertical { to { transform: scaleY(1); } }
@keyframes safety-handoff-vertical { 0% { top: 0; opacity: 0; } 25%,75% { opacity: .85; } 100% { top: calc(100% - 7px); opacity: 0; } }
@media (max-width:680px) {
 .motion-ready .motion-enter, .motion-ready .motion-enter.motion-heading, .motion-ready .founder-card.motion-enter { transition-duration: .75s; transition-delay: 0ms; }
 .motion-ready .motion-enter:not(.motion-shown) { transform: translateY(8px); }
 .interaction-flow { padding: 18px 12px; gap: 8px; }
 .interaction-flow > span { font-size: 14px; }
 .ambient-grid { display: none; }
 .ambient-orbit { opacity: .45; animation: none; }
 .ambient-halo { width: 100%; opacity: .55; }
}
@media (prefers-reduced-motion:reduce) {
 .motion-ready .motion-enter { opacity: 1 !important; transform: none !important; transition: none !important; }
 .sequence-process.sequence-active::after { animation: none; transform: none; }
 .sequence-active .sequence-item, .sequence-active .sequence-item > b, .sequence-active > i::after, .ambient-backdrop * { animation: none; }
 .motion-control { display: none; }
}
