.gate{min-height:100svh;display:grid;place-content:center;justify-items:center;gap:28px;padding:48px 16px;position:relative;overflow:hidden;background:radial-gradient(ellipse 70% 55% at 50% 0,rgba(179,33,76,.38),transparent 70%),radial-gradient(ellipse 60% 50% at 50% 110%,rgba(142,211,196,.16),transparent 70%),var(--ink)}.gate-bulbs{position:absolute;inset:14px;border-radius:22px;pointer-events:none;background:radial-gradient(circle,var(--bulb) 0 2.5px,transparent 3.5px) 0 0 /26px 26px;opacity:.22;-webkit-mask:linear-gradient(#000 0 0) top /100% 14px no-repeat,linear-gradient(#000 0 0) bottom /100% 14px no-repeat,linear-gradient(#000 0 0) left /14px 100% no-repeat,linear-gradient(#000 0 0) right /14px 100% no-repeat;mask:linear-gradient(#000 0 0) top /100% 14px no-repeat,linear-gradient(#000 0 0) bottom /100% 14px no-repeat,linear-gradient(#000 0 0) left /14px 100% no-repeat,linear-gradient(#000 0 0) right /14px 100% no-repeat;animation:gate-chase 1.6s steps(2) infinite}@keyframes gate-chase{50%{opacity:.42}}.gate-mark{width:min(340px,72vw);height:auto;filter:drop-shadow(0 0 18px rgba(255,231,173,.35))}.gate-card{width:min(460px,100%);padding:28px;border-radius:20px;background:rgba(22,19,26,.86);box-shadow:inset 0 0 0 1px var(--line-dark),0 40px 80px -40px #000}.gate-title{display:grid;gap:6px;margin-bottom:22px}.gate-title .display{font-size:clamp(40px,8vw,56px);color:var(--bulb)}.gate-title .serif-i{font-size:22px;color:var(--text-dim)}.gate-label{display:block;font-weight:700;margin-bottom:8px}.gate-row{display:flex;gap:10px}.gate-input{flex:1 1;min-width:0;min-height:48px;padding:0 16px;border-radius:12px;border:1px solid var(--line-dark);background:var(--ink);font-size:17px}.gate[data-gate=error] .gate-card{animation:gate-shake .36s var(--ease-out)}@keyframes gate-shake{25%{transform:translateX(-8px)}50%{transform:translateX(6px)}75%{transform:translateX(-3px)}}.gate-msg{min-height:1.5em;margin:10px 0 0;color:var(--text-dim)}.gate-msg[data-tone=error]{color:#ff9db6}.gate-fine{margin:14px 0 0;font-size:14px;color:var(--text-dim)}