.stage[data-v-5352e432]{position:relative;width:100%;overflow:hidden;background:radial-gradient(120% 90% at 70% 10%,rgba(34,211,238,.12),transparent 60%),#0a1220;border-top:4px solid var(--accent);box-shadow:0 26px 50px -34px #0a193299}canvas[data-v-5352e432]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;opacity:0;transition:opacity .7s ease}.stage.ready canvas[data-v-5352e432]{opacity:1}.cap[data-v-5352e432]{position:absolute;left:1rem;right:1rem;bottom:1rem;padding:.65rem .9rem .75rem;background:#080f1ce0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.18);z-index:3;color:#fff;display:none}.stage.ready .cap[data-v-5352e432]{display:block}.dots[data-v-5352e432]{display:flex;gap:.3rem;margin-bottom:.35rem}.dots button[data-v-5352e432]{all:unset;flex:1;padding:.45rem 0;cursor:pointer}.dots button[data-v-5352e432]:focus-visible{outline:2px solid var(--accent-light)}.dots i[data-v-5352e432]{display:block;height:3px;background:#fff3;position:relative;overflow:hidden}.dots .done i[data-v-5352e432]{background:#fff9}.dots .on i[data-v-5352e432]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--accent-light);transform-origin:left;animation:bar-5352e432 linear forwards;animation-duration:inherit}.t[data-v-5352e432]{display:flex;align-items:center;gap:.6rem;margin:0;font-weight:600;font-size:1rem;animation:fadein-5352e432 .4s ease}.t span[data-v-5352e432]{width:1.5rem;height:1.5rem;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;font-size:.78rem;font-weight:700;flex:none}@keyframes bar-5352e432{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes fadein-5352e432{0%{opacity:0;transform:translateY(4px)}}.stage[data-v-5352e432]{display:none}.stage.ready[data-v-5352e432]{display:block}.note[data-v-5352e432]{margin:.6rem 0 0;font-size:.85rem;color:#fff9}.steps-text[data-v-5352e432]{margin:0;padding:0 0 0 1.2rem;display:grid;gap:.3rem;color:var(--ink-soft)}.scene3d-wrap:has(.stage.ready) .steps-text[data-v-5352e432]{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}@media (prefers-reduced-motion: reduce){.dots .on i[data-v-5352e432]:after{animation:none;transform:none}}
