:root{color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#f5f5f7;background:#090a0d}
*{box-sizing:border-box}
body{min-height:100svh;margin:0;display:grid;place-items:center;padding:26px 16px;background:radial-gradient(ellipse at 50% 0,#1d2435 0,transparent 65%),#090a0d}
.lock{display:grid;justify-items:center;text-align:center;width:min(100%,365px)}
.wordmark{font-size:11px;font-weight:700;letter-spacing:.22em;margin:0 0 29px}
.wordmark span{color:#aaaeb9;font-weight:500}
.lock-icon{width:49px;height:49px;display:grid;place-items:center;border-radius:15px;background:#ffffff0d;border:1px solid #ffffff1a}
h1{font-size:25px;letter-spacing:-.025em;margin:17px 0 5px}
.intro{color:#aeb1bd;font-size:14px;margin:0}
.pin{display:flex;gap:18px;margin:23px 0 9px}
.pin i{width:13px;height:13px;border-radius:50%;border:1.5px solid #acb0bd}
.pin i.on{background:#f5f5f7;border-color:#f5f5f7}
.pin.shake{animation:shake .36s ease-in-out}
.error{font-size:12px;color:#ffaaa4;min-height:1.2em;margin:2px 0 12px}
.pad{display:grid;grid-template-columns:repeat(3,clamp(55px,16vw,68px));gap:12px 20px}
.pad button{aspect-ratio:1;border:1px solid #ffffff12;border-radius:50%;background:#ffffff12;color:inherit;font:300 26px/1 -apple-system,BlinkMacSystemFont,sans-serif;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;transition:background .15s,transform .1s;touch-action:manipulation}
.pad button span{font-size:8px;font-weight:650;letter-spacing:.12em}
.pad button:hover{background:#ffffff22}.pad button:active{transform:scale(.93);background:#ffffff34}
.pad button:focus-visible{outline:2px solid #81afff;outline-offset:3px}
.pad button:disabled{cursor:wait;opacity:.65}
.pad button.delete{background:transparent;border-color:transparent;color:#c6cad5}
@keyframes shake{0%,100%{transform:translateX(0)}25%,75%{transform:translateX(-7px)}50%{transform:translateX(7px)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
