@font-face{font-family:Instrument Serif;font-style:italic;font-display:swap;font-weight:400;src:url(/unlock/assets/instrument-serif-latin-400-italic-DKMiL14s.woff2)format("woff2"),url(/unlock/assets/instrument-serif-latin-400-italic-u__WvvIK.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/unlock/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/unlock/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/unlock/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/unlock/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff")}:root{--ground:#0a0b0d;--ink:#e9e7e2;--ink-soft:#d6d3cc;--quiet:#8b8f96;--faint:#7c8088;--brass:#c9a46a;--error:#ef7a72;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{background:var(--ground);-webkit-text-size-adjust:100%}body{min-height:100dvh;color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:IBM Plex Mono,ui-monospace,monospace}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.page{background:radial-gradient(circle at 50% 46%,#17191c 0%,#0a0b0d 62%);flex-direction:column;min-height:100dvh;padding:32px 24px;display:flex;position:relative;overflow:hidden}@media (width>=640px){.page{padding:32px 40px}}.bar{letter-spacing:.18em;color:var(--quiet);justify-content:space-between;gap:24px;font-size:12px;display:flex}.brand{color:var(--ink);letter-spacing:.42em}.stage{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:36px;padding:32px 0;display:flex}.caption{text-align:center;flex-direction:column;align-items:center;gap:10px;display:flex}.caption h1{color:var(--ink-soft);margin:0;font:italic 400 28px/1.2 Instrument Serif,Georgia,serif}.status{letter-spacing:.2em;min-height:1.4em;color:var(--quiet);margin:0;font-size:11px}.status.error{color:var(--error)}.footer{letter-spacing:.16em;color:var(--faint);align-items:center;gap:10px;font-size:11px;display:flex}.lamp{background:var(--error);width:6px;height:6px;box-shadow:0 0 8px var(--error);border-radius:50%}.lamp.open{background:var(--brass);box-shadow:0 0 8px var(--brass)}.glow{opacity:0;pointer-events:none;background:radial-gradient(70vmin 70vmin,#c9a46a29,#0000 75%);position:absolute;inset:0}.vault-scene{--door:min(496px, 78vw, 52dvh);width:calc(var(--door) * 1.24);height:calc(var(--door) * 1.18);perspective:calc(var(--door) * 2.6);place-items:center;display:grid}.vault-scene>*{grid-area:1/1}.vault-shadow{width:calc(var(--door) * 1.18);height:calc(var(--door) * 1.18);border-radius:50%;box-shadow:0 40px 60px #000000b3}.vault-interior{width:var(--door);height:var(--door);box-shadow:inset 0 0 calc(var(--door) * .08) #000;background:radial-gradient(circle,#c9a46a4d,#c9a46a0f 55%,#08090b 72%);border-radius:50%}.vault-frame{width:calc(var(--door) * 1.18);height:calc(var(--door) * 1.18);background:repeating-conic-gradient(#ffffff08 0 .4deg, #0000000d .4deg .9deg), conic-gradient(from 30deg, #24272b, #6b7077 14%, #2b2e33 28%, #7c8188 44%, #272a2e 58%, #62676e 74%, #24272b);border-radius:50%;-webkit-mask-image:radial-gradient(circle closest-side,#0000 84.7%,#000 85%);mask-image:radial-gradient(circle closest-side,#0000 84.7%,#000 85%)}.vault-hinge{width:calc(var(--door) * .13);height:calc(var(--door) * .1);background:linear-gradient(90deg,#1b1d21,#70757c 45%,#2a2d31);border-radius:4px;place-self:start;box-shadow:0 2px 8px #0009}.vault-door{width:var(--door);height:var(--door);transform-style:preserve-3d;transform-origin:0%;position:relative}.vault-door-layer{background:linear-gradient(90deg,#2f3237,#16181b);border-radius:50%;position:absolute;inset:0}.vault-door-layer--back{background:repeating-conic-gradient(#ffffff06 0 .4deg, transparent .4deg .9deg), radial-gradient(circle, #33363b, #17191c 75%)}.vault-face{position:absolute;inset:0}.vault-plate{background:repeating-conic-gradient(#ffffff08 0 .4deg, #0000000d .4deg .9deg), conic-gradient(from 20deg, #2a2d31, #80858c 12%, #33363b 25%, #979ca3 40%, #2e3135 52%, #6f747b 66%, #2b2e32 80%, #878c93 92%, #2a2d31);box-shadow:inset 0 0 0 2px #ffffff1a, inset 0 0 calc(var(--door) * .06) #000000a6, 0 0 calc(var(--door) * .08) #000c;border-radius:50%;position:absolute;inset:0}.vault-engraving{width:100%;height:100%;font-family:IBM Plex Mono,ui-monospace,monospace;position:absolute;inset:0}.vault-dial{position:absolute;inset:22%}.vault-dial svg{width:100%;height:100%;display:block}.vault-bolt-arm{width:0;height:0;position:absolute;top:50%;left:50%}.vault-bolt{left:calc(var(--door) * -.035);bottom:calc(var(--door) * .38);width:calc(var(--door) * .07);height:calc(var(--door) * .16);background:linear-gradient(90deg,#4a4e54,#d2d6db 48%,#5a5e65);border-radius:3px;position:absolute;box-shadow:0 0 6px #000000b3}.vault-shade{opacity:0;pointer-events:none;background:#000;border-radius:50%;position:absolute;inset:0}.keypad{width:max(150px, calc(var(--door) * .46));background-color:#111215;background-image:linear-gradient(#0b0c0e,#1c1e22);border-radius:999px;align-items:center;gap:4px;height:46px;padding:4px 4px 4px 14px;transition:box-shadow .2s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:inset 0 2px 6px #000000e6,0 0 0 1.5px #c9a46a8c,0 0 0 4px #24272b,0 8px 18px #0009}.keypad:focus-within{box-shadow:inset 0 2px 6px #000000e6, 0 0 0 2px var(--brass), 0 0 0 4px #24272b, 0 0 22px #c9a46a59, 0 8px 18px #0009}.keypad input{min-width:0;height:100%;color:var(--ink);letter-spacing:.28em;text-align:center;caret-color:var(--brass);background:0 0;border:0;outline:none;flex:1;padding:0;font:500 16px IBM Plex Mono,ui-monospace,monospace}.keypad input::placeholder{color:var(--quiet);letter-spacing:.22em;font-size:11px}.keypad button{color:#1a1408;cursor:pointer;background:radial-gradient(circle at 38% 32%,#f1d9a8,#c9a46a 55%,#7a6038);border:0;border-radius:50%;flex:none;place-items:center;width:38px;height:38px;padding:0;display:grid;box-shadow:0 2px 4px #0009,inset 0 1px #fff6}.keypad button svg{width:18px;height:18px}.keypad button:disabled{cursor:progress;filter:saturate(.6)brightness(.85)}.keypad button:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
