.vault{justify-items:center;gap:var(--space-5);text-align:center;padding-block:var(--space-7);display:grid}.vault-door{width:min(240px,60vw);position:relative}.vault-door svg{width:100%;height:auto}.v-ring{fill:var(--mystery-surface);stroke:var(--mystery-border);stroke-width:4px}.v-chamber{fill:var(--mystery-bg);stroke:var(--mystery-border);stroke-width:2px}.v-chamber-glow{fill:var(--mystery-teal);opacity:0;transform-box:fill-box;transform-origin:50%}.vault.is-open .v-chamber-glow{animation:chamber-bloom 1.2s var(--ease-lab) 2s forwards, chamber-breathe 3.2s var(--ease-lab) 3.2s infinite}@keyframes chamber-bloom{0%{opacity:0}to{opacity:.16}}@keyframes chamber-breathe{0%,to{opacity:.16;transform:scale(1)}50%{opacity:.24;transform:scale(1.04)}}.v-relic path{fill:color-mix(in srgb, var(--mystery-teal) 30%, var(--mystery-bg));stroke:var(--mystery-teal);stroke-width:2px;stroke-linejoin:round}.v-relic .v-relic-facet{fill:none;stroke-width:1.2px;opacity:.7}.v-relic{opacity:0;transform-box:fill-box;transform-origin:50%;transition:opacity .7s var(--ease-lab) 2.1s}.vault.is-open .v-relic{opacity:1;animation:relic-float 4s var(--ease-lab) 2.4s infinite}@keyframes relic-float{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-4px)scale(1.03)}}.v-door{fill:var(--mystery-raised);stroke:var(--mystery-border);stroke-width:2px;transform-box:view-box;transition:transform .9s var(--ease-lab) 1.5s}.vault.is-open .v-door-l{transform:translate(-84px)}.vault.is-open .v-door-r{transform:translate(84px)}.v-bolt{stroke:var(--mystery-border);stroke-width:4px;stroke-linecap:round;transition:transform .4s var(--ease-clunk) var(--bolt-delay,0s), opacity .4s var(--ease-lab) 1.4s}.vault.is-open .v-bolt{opacity:0;transform:translateY(14px)}.v-hub{fill:var(--mystery-surface);stroke:var(--mystery-amber);stroke-width:2.5px}.v-spoke{stroke:var(--mystery-amber);stroke-width:4px;stroke-linecap:round}.v-wheel-rim{fill:none;stroke:var(--mystery-amber);stroke-width:4px}.v-wheel{transform-origin:120px 120px;transform-box:view-box;transition:transform 1.4s var(--ease-clunk) .3s, opacity .5s var(--ease-lab) 1.5s}.vault.is-open .v-wheel{opacity:0;transform:rotate(220deg)}.vault-glow{opacity:0;transition:opacity var(--dur-slow) var(--ease-lab) 2.2s;pointer-events:none;background:radial-gradient(circle,#2dd4bf40,#0000 65%);border-radius:50%;position:absolute;inset:10%}.vault.is-open .vault-glow{opacity:1}.vault-sockets{gap:var(--space-3);display:flex}.vault-socket{width:3rem;height:3rem;font-size:var(--text-xl);border-radius:var(--radius-md);border:1.5px dashed var(--border-strong);color:var(--text-faint);transition:border-color var(--dur-base) var(--ease-lab), transform var(--dur-base) var(--ease-clunk);place-items:center;display:grid;position:relative}.vault-socket.is-filled{border-style:solid;border-color:var(--accent);color:var(--accent);transform:scale(1.06)}.vault-socket:after{content:"";border-radius:inherit;border:2px solid var(--accent);opacity:0;pointer-events:none;position:absolute;inset:-3px}.vault.is-open .vault-socket.is-filled{animation:socket-snap .5s var(--ease-clunk) both}.vault.is-open .vault-socket.is-filled:after{animation:socket-ring .7s var(--ease-lab) both}.vault.is-open .vault-socket.is-filled:nth-child(2),.vault.is-open .vault-socket.is-filled:nth-child(2):after{animation-delay:.12s}.vault.is-open .vault-socket.is-filled:nth-child(3),.vault.is-open .vault-socket.is-filled:nth-child(3):after{animation-delay:.24s}@keyframes socket-snap{0%{transform:scale(1.06)}45%{transform:scale(1.22)}to{transform:scale(1.06)}}@keyframes socket-ring{0%{opacity:.9;transform:scale(.9)}to{opacity:0;transform:scale(1.5)}}.vault-open-panel{max-width:46ch}.vault-open-panel h1{margin-bottom:var(--space-3)}.vault-open-panel p{color:var(--text-muted);margin-inline:auto}.vault-progress{margin-top:var(--space-3);font-family:var(--font-mono);letter-spacing:.16em}.vault-code-reveal{animation:code-reveal .6s var(--ease-lab) both}@keyframes code-reveal{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.vault-code-label{margin-top:var(--space-5);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.22em;text-transform:uppercase}.vault-code{font-family:var(--font-mono);font-size:var(--text-3xl);letter-spacing:.12em;margin-top:var(--space-1);font-weight:700;color:var(--primary-strong)!important}.vault-cta{margin-top:var(--space-5)}
