/* Shared with the home terminal and ticketing palette. No external assets. */
.hv-loader{display:none;position:fixed;inset:0;z-index:2147483000;place-items:center;overflow:hidden;background:radial-gradient(ellipse at 75% 22%,#00a3ff12,transparent 55%),radial-gradient(ellipse at 15% 75%,#8b5cf614,transparent 55%),#080d21;color:#edf3ff;direction:ltr;font-family:Consolas,'Courier New',monospace;box-sizing:border-box}
html.hv-loading .hv-loader,.hv-loader.hv-demo{display:grid;outline:none}
html.hv-loading{overflow:hidden!important}
.hv-loader::before{content:'';position:absolute;inset:0;background-image:linear-gradient(#9aabc607 1px,transparent 1px),linear-gradient(90deg,#9aabc607 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(ellipse,#0009,transparent 68%);pointer-events:none}
.hv-loader__content{position:relative;display:flex;flex-direction:column;align-items:center;padding:32px;box-sizing:border-box;width:100%;text-align:center}
.hv-loader__brand{position:absolute;top:clamp(26px,6vh,56px);left:0;right:0;text-align:center;font:10px/1.6 Consolas,'Courier New',monospace;letter-spacing:4px;color:#9aabc6}
.hv-loader__brand::before{content:'';display:inline-block;width:5px;height:5px;margin-right:12px;vertical-align:2px;background:#00e5ff;box-shadow:0 0 13px #00e5ff66}
.hv-loader__keys{display:grid;grid-template-columns:repeat(3,64px);grid-template-rows:repeat(2,64px);gap:10px;margin-bottom:37px;padding-bottom:7px;direction:ltr;filter:drop-shadow(0 17px 18px #0005)}
.hv-key{position:relative;display:grid;place-items:center;box-sizing:border-box;width:64px;height:64px;border:1px solid #a5aaa5;border-radius:5px;background:linear-gradient(135deg,#fff,#ecede6 72%);color:#243c3d;box-shadow:inset 0 0 0 2px #f7f8f3,inset 0 -7px 0 #c3c8bf,inset 7px 0 0 #dadfd5,inset -7px 0 0 #d1d7cc,0 7px 0 #707f77,0 8px 0 1px #344b49,0 10px 5px #0006;animation:hv-key-press 1.6s ease-in-out infinite}
.hv-key::before{content:'';position:absolute;inset:8px 9px 15px;border-radius:3px;border:1px solid #d7dcd2;background:linear-gradient(145deg,#fff,#f0f1eb);box-shadow:0 1px 1px #fff,inset 0 1px 1px #fff}
.hv-key svg{position:relative;width:24px;height:24px;fill:currentColor;filter:drop-shadow(0 1px 0 #fff);shape-rendering:crispEdges}
.hv-key--up{grid-column:2;grid-row:1;animation-delay:0s}.hv-key--right{grid-column:3;grid-row:2;animation-delay:-1.2s}.hv-key--down{grid-column:2;grid-row:2;animation-delay:-.8s}.hv-key--left{grid-column:1;grid-row:2;animation-delay:-.4s}
.hv-key--right svg{rotate:90deg}.hv-key--down svg{rotate:180deg}.hv-key--left svg{rotate:270deg}
.hv-loader__label{margin:0!important;color:#edf3ff!important;font:24px/1.4 Consolas,'Courier New',monospace!important;letter-spacing:.3px!important;white-space:nowrap}
.hv-loader__dots{display:inline-flex;width:45px;text-align:left;color:#00e5ff}
.hv-loader__dots span{opacity:0;animation:hv-dot 1.6s step-end infinite}.hv-loader__dots span:nth-child(2){animation-name:hv-dot-two}.hv-loader__dots span:nth-child(3){animation-name:hv-dot-three}
.hv-loader__rule{width:32px;height:1px;margin:22px 0 14px;background:#00e5ff;box-shadow:0 0 10px #00e5ff44}
.hv-loader__hint{margin:0!important;font:12px/1.9 Vazirmatn,Tahoma,sans-serif!important;color:#9aabc6!important;direction:rtl;letter-spacing:0!important}
.hv-loader__sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@keyframes hv-key-press{0%,5%,28%,100%{transform:translateY(0);box-shadow:inset 0 0 0 2px #f7f8f3,inset 0 -7px 0 #c3c8bf,inset 7px 0 0 #dadfd5,inset -7px 0 0 #d1d7cc,0 7px 0 #707f77,0 8px 0 1px #344b49,0 10px 5px #0006}12%,20%{transform:translateY(6px);box-shadow:inset 0 0 0 2px #f7f8f3,inset 0 -4px 0 #c3c8bf,inset 7px 0 0 #dadfd5,inset -7px 0 0 #d1d7cc,0 1px 0 #707f77,0 2px 0 1px #344b49,0 3px 3px #0005}}
@keyframes hv-dot{0%,100%{opacity:0}25%,99%{opacity:1}}@keyframes hv-dot-two{0%,100%{opacity:0}50%,99%{opacity:1}}@keyframes hv-dot-three{0%,100%{opacity:0}75%,99%{opacity:1}}
@media(max-width:360px){.hv-loader__keys{grid-template-columns:repeat(3,56px);grid-template-rows:repeat(2,56px);gap:9px}.hv-key{width:56px;height:56px}.hv-loader__label{font-size:22px!important}}
@media(prefers-reduced-motion:reduce){.hv-key,.hv-loader__dots span{animation:none!important}.hv-loader__dots span{opacity:1}}
