/* Shared Open.LLC motion language: calm orientation, quick feedback, no layout movement. */
:root{--motion-fast:140ms;--motion-base:220ms;--motion-slow:520ms;--motion-ease:cubic-bezier(.2,.75,.25,1)}

#root>.content-page,#root>.app-layout,#root>.landing-page,#root>.auth-page{animation:open-page-in var(--motion-base) var(--motion-ease) both}
/* An animated transform creates a containing block for the mobile fixed footer. */
#root>.intake-shell{animation:open-intake-in var(--motion-base) var(--motion-ease) both}
.button,.text-button,.app-header-nav a,.bottom-nav a,.app-tool-card,.portal-card,.panel,.service-card,.business-tool-card,.company-card,.request-card{transition:transform var(--motion-fast) var(--motion-ease),box-shadow var(--motion-base) ease,border-color var(--motion-fast) ease,background-color var(--motion-fast) ease,color var(--motion-fast) ease}
#modal-root>[role="dialog"],#modal-root>.modal{animation:open-dialog-in var(--motion-base) var(--motion-ease) both}
.badge.attention,.notification-dot{animation:open-status-pulse 2.4s ease-in-out infinite}

@media(hover:hover) and (pointer:fine){
 .button:hover,.app-tool-card:hover,.portal-card[href]:hover,.service-card:hover,.business-tool-card:hover{transform:translateY(-2px)}
 .button:active,.text-button:active{transform:translateY(0) scale(.985)}
}

/* Product handoff between app.open.llc and the selected Open.LLC product. */
.product-handoff{position:fixed;inset:0;z-index:1000;display:grid;min-height:100dvh;place-items:center;overflow:hidden;padding:28px;background:radial-gradient(circle at 50% 42%,#f0ecff 0,#faf9fd 39%,#faf9fd 100%);color:#1a2237;text-align:center}
.product-handoff:before{content:'';position:absolute;width:min(108vw,520px);aspect-ratio:1;border:1px solid #6545ed12;border-radius:50%;box-shadow:0 0 0 74px #6545ed08,0 0 0 148px #6545ed05}
.product-handoff-card{position:relative;width:min(390px,100%);animation:open-page-in var(--motion-base) var(--motion-ease) both}
.product-handoff-brand{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:42px;font-size:17px;font-weight:600;letter-spacing:-.04em}
.product-handoff-brand strong{font-size:25px;letter-spacing:-.065em}.product-handoff-brand span{padding-left:12px;border-left:1px solid #d6d5e4;color:#4f566b;font-weight:500}
.product-handoff-motion{position:relative;display:grid;width:84px;height:84px;margin:0 auto 30px;place-items:center}
.product-handoff-mark{position:relative;z-index:2;display:grid;width:58px;height:58px;place-items:center;border:1px solid #e4def7;border-radius:19px;background:#fff;box-shadow:0 14px 38px #3f2c8d20;animation:open-breathe 1.8s ease-in-out infinite}
.product-handoff-mark img{width:40px;height:40px}.product-handoff-ring{position:absolute;inset:0;border:1px solid #9c87f04d;border-radius:50%;animation:open-ring 1.8s ease-out infinite}
.product-handoff-dot{position:absolute;width:6px;height:6px;border-radius:50%;background:#6545ed;box-shadow:0 2px 8px #6545ed45;animation:open-dot 1.4s ease-in-out infinite}.product-handoff-dot.one{left:0;top:39px}.product-handoff-dot.two{top:9px;right:5px;animation-delay:.22s}.product-handoff-dot.three{right:2px;bottom:10px;animation-delay:.44s}
.product-handoff h1{margin:0;font-size:clamp(30px,8vw,39px);font-weight:620;line-height:1.07;letter-spacing:-.058em}.product-handoff p{margin:12px auto 0;color:#5d6579;font-size:14px;line-height:1.65}
.product-handoff-progress{width:132px;height:3px;margin:26px auto 0;overflow:hidden;border-radius:4px;background:#e5e0f4}.product-handoff-progress span{display:block;width:44%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#8b70ff,#6545ed);animation:open-progress 1.35s ease-in-out infinite}
.product-handoff-error .product-handoff-motion{margin-bottom:24px}.product-handoff-error .product-handoff-mark,.product-handoff-error .product-handoff-ring,.product-handoff-error .product-handoff-dot{animation:none}.product-handoff-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:24px}.product-handoff-back{display:inline-block;margin-top:18px;font-size:13px}

@keyframes open-intake-in{from{opacity:0}to{opacity:1}}
@keyframes open-page-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes open-dialog-in{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
@keyframes open-status-pulse{50%{box-shadow:0 0 0 5px #6545ed12}}
@keyframes open-breathe{50%{transform:translateY(-3px) scale(1.03);box-shadow:0 18px 42px #3f2c8d2a}}
@keyframes open-ring{0%{opacity:0;transform:scale(.72)}45%{opacity:1}100%{opacity:0;transform:scale(1.12)}}
@keyframes open-dot{0%,100%{opacity:.35;transform:scale(.72)}50%{opacity:1;transform:scale(1)}}
@keyframes open-progress{0%{transform:translateX(-115%)}100%{transform:translateX(330%)}}

@media(max-width:520px){.product-handoff{padding:22px}.product-handoff:before{width:115vw}.product-handoff-brand{margin-bottom:36px}.product-handoff h1{font-size:32px}}
@media(prefers-reduced-motion:reduce){
 *,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
 .product-handoff-ring{opacity:.55}.product-handoff-progress span{transform:translateX(64%)}
}
