/* lock-in launch mark. Static first; motion is enabled only with no preference. */
.lockin-launch{--launch-bg:#101119;--launch-ink:#f0f1f8;--launch-accent:#a698ff;--launch-muted:#aaadbf;box-sizing:border-box;position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:max(1.5rem,env(safe-area-inset-top)) max(1.5rem,env(safe-area-inset-right)) max(1.5rem,env(safe-area-inset-bottom)) max(1.5rem,env(safe-area-inset-left));background:var(--launch-bg);color:var(--launch-ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;isolation:isolate}
.lockin-launch[hidden]{display:none!important}.launch-content{width:100%;max-width:34rem;text-align:center}.launch-brand{--launch-unit:clamp(3.75rem,17vw,7rem);display:flex;align-items:center;justify-content:center;gap:clamp(.4rem,1.6vw,.8rem);margin:0 auto;white-space:nowrap}
.launch-brand .launch-mark{display:block;width:var(--launch-unit);height:auto;overflow:visible;flex:none;fill:none;stroke:none}.launch-mark .launch-body{fill:var(--launch-accent);stroke:none}.launch-mark .launch-shackle{stroke:var(--launch-accent);fill:none;stroke-width:13;stroke-linecap:round;stroke-linejoin:round}.launch-mark .launch-check{stroke:var(--launch-bg);fill:none;stroke-width:12;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1}
.launch-brand .launch-wordmark{display:block;width:calc(var(--launch-unit)*2.6);height:auto;overflow:visible;flex:none;fill:var(--launch-ink);stroke:none;color:var(--launch-ink)}
.launch-status{display:flex;align-items:center;justify-content:center;gap:.65rem;margin:1.8rem 0 0;min-height:1.5rem;color:var(--launch-muted);font-size:.9375rem;line-height:1.6}.launch-status p{margin:0;color:inherit}.launch-dot{display:block;width:.375rem;height:.375rem;border-radius:50%;flex:none;background:var(--launch-accent)}.launch-detail{margin:1rem auto 0;max-width:26rem;color:var(--launch-muted);font-size:.9375rem;line-height:1.6}.launch-retry{display:block;margin:1.25rem auto 0;padding:.75rem 1.25rem;min-height:2.75rem;background:transparent;color:var(--launch-ink);border:1px solid currentColor;border-radius:.8rem;font:inherit;font-size:.9375rem;cursor:pointer}.launch-retry:focus-visible{outline:3px solid var(--launch-accent);outline-offset:4px}.lockin-launch [hidden]{display:none!important}
.lockin-launch.is-ready{pointer-events:auto}.lockin-launch.is-ready .launch-check{stroke-dashoffset:0}.lockin-launch.is-ready .launch-dot,.lockin-launch.has-error .launch-dot{display:none}.lockin-launch.has-error .launch-status{color:var(--launch-ink)}
@keyframes lockin-close{from{transform:translateY(-9px)}to{transform:translateY(0)}}
@keyframes lockin-settle{from{opacity:.45;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@keyframes lockin-word{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes lockin-breathe{0%,100%{opacity:.45}50%{opacity:1}}
@keyframes lockin-check{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes lockin-leave{to{opacity:0}}
@media(prefers-reduced-motion:no-preference){
 .lockin-launch:not(.is-ready) .launch-body{animation:lockin-settle .36s cubic-bezier(.22,1,.36,1) both}
 .lockin-launch:not(.is-ready) .launch-shackle{animation:lockin-close .52s cubic-bezier(.22,1,.36,1) both}
 .lockin-launch:not(.is-ready) .launch-word{animation:lockin-word .42s .1s cubic-bezier(.22,1,.36,1) both}
 .lockin-launch:not(.is-ready) .launch-hyphen{animation:lockin-word .4s .2s cubic-bezier(.22,1,.36,1) both}
 .lockin-launch:not(.is-ready) .launch-in{animation:lockin-word .42s .28s cubic-bezier(.22,1,.36,1) both}
 .lockin-launch:not(.is-ready):not(.has-error) .launch-dot{animation:lockin-breathe 1.8s .7s ease-in-out infinite}
 .lockin-launch.is-ready{animation:lockin-leave .24s .95s ease-out both}
 .lockin-launch.is-ready .launch-check{animation:lockin-check .45s cubic-bezier(.22,1,.36,1) both}
 .lockin-launch.is-ready .launch-wordmark>g,.lockin-launch.is-ready .launch-body,.lockin-launch.is-ready .launch-shackle{opacity:1;transform:none}
 .lockin-launch.is-paused *{animation-play-state:paused!important}
}
@media(prefers-reduced-motion:reduce){.lockin-launch,.lockin-launch *{animation:none!important;transition:none!important;transform:none!important}.launch-wordmark>g{opacity:1}}
@media(max-width:360px){.lockin-launch{padding:1rem}.launch-brand{gap:.65rem}}
