/* ###### BEGIN assets/css/boot-loader.css (premium secure boot gate) ###### */

.bootGate{
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  place-items: center;
  padding: 18px;
  background:
    radial-gradient(1200px 600px at 50% 20%, rgba(0,255,255,.14), rgba(0,0,0,0) 55%),
    radial-gradient(900px 500px at 50% 80%, rgba(160,80,255,.10), rgba(0,0,0,0) 60%),
    rgba(6,8,12,.86);
  backdrop-filter: blur(10px);
}

.bootGate.is-open{
  display: grid;
}

.bootGate__panel{
  width: min(860px, 100%);
  border-radius: 18px;
  border: 1px solid rgba(0,255,255,.18);
  background: linear-gradient(180deg, rgba(14,18,28,.92), rgba(10,12,18,.88));
  box-shadow: 0 20px 60px rgba(0,0,0,.55);
  overflow: hidden;
  position: relative;
  padding: 18px 18px 16px;
}

/* subtle animated scan */
.bootGate__panel::before{
  content:"";
  position:absolute;
  inset:-40% -10%;
  background: linear-gradient(90deg, rgba(0,255,255,0), rgba(0,255,255,.12), rgba(0,255,255,0));
  transform: rotate(12deg) translateX(-60%);
  opacity:.55;
  pointer-events:none;
}
.bootGate.is-open .bootGate__panel::before{
  animation: bootScan 2.8s ease-in-out infinite;
}
@keyframes bootScan{
  0%{ transform: rotate(12deg) translateX(-60%); }
  50%{ transform: rotate(12deg) translateX(20%); }
  100%{ transform: rotate(12deg) translateX(120%); }
}

.bootGate__lockWrap{
  display:flex;
  align-items:center;
  gap:16px;
  padding: 6px 4px 14px;
}

.bootLock{
  width: 96px;
  height: 106px;
  flex: 0 0 auto;
}
.bootLock__pulse{
  transform-origin: 100px 145px;
  animation: bootPulse 1.25s ease-in-out infinite;
}
@keyframes bootPulse{
  0%,100%{ opacity:.35; transform: scale(1); }
  50%{ opacity:.75; transform: scale(1.05); }
}

.bootGate__status{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width: 0;
}

.bootGate__brand{
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  opacity: .78;
}

.bootGate__title{
  font-size: 18px;
  line-height: 1.2;
  font-weight: 900;
  color: rgba(235,250,255,.96);
}

.bootGate__sub{
  font-size: 13px;
  line-height: 1.45;
  opacity: .78;
  max-width: 62ch;
}

/* console */
.bootGate__console{
  border-radius: 14px;
  border: 1px solid rgba(0,255,255,.14);
  background: rgba(7,10,16,.72);
  overflow: hidden;
}

.bootGate__consoleHead{
  display:flex;
  align-items:center;
  gap:8px;
  padding: 10px 12px;
  border-bottom: 1px solid rgba(255,255,255,.06);
  background: rgba(255,255,255,.03);
}

.bootGate__consoleHead .label{
  margin-left: 6px;
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: lowercase;
  opacity: .8;
}

.dot{
  width: 10px;
  height: 10px;
  border-radius: 999px;
  opacity: .85;
  background: rgba(255,255,255,.15);
}
.dot--1{ background: rgba(255,80,80,.55); }
.dot--2{ background: rgba(255,210,80,.55); }
.dot--3{ background: rgba(120,255,160,.55); }

/* highlight dots progress via panel flags */
.bootGate__panel.is-dot1 .dot--1{ filter: drop-shadow(0 0 8px rgba(255,80,80,.45)); opacity: 1; }
.bootGate__panel.is-dot2 .dot--2{ filter: drop-shadow(0 0 10px rgba(255,210,80,.45)); opacity: 1; }
.bootGate__panel.is-dot3 .dot--3{ filter: drop-shadow(0 0 12px rgba(120,255,160,.50)); opacity: 1; }

.bootGate__log{
  margin: 0;
  padding: 12px 12px 12px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 12px;
  line-height: 1.45;
  max-height: 220px;
  overflow: auto;
  color: rgba(210,235,245,.92);
  white-space: pre-wrap;
}

.bootGate__log .ok{ color: rgba(120,255,200,.92); }
.bootGate__log .warn{ color: rgba(255,210,80,.95); }
.bootGate__log .dim{ color: rgba(210,235,245,.70); }

/* progress bar */
.bootGate__bar{
  margin-top: 12px;
  height: 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(0,255,255,.10);
  overflow: hidden;
}

.bootGate__barFill{
  height: 100%;
  width: 0%;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(0,255,255,.85), rgba(160,80,255,.85));
  box-shadow: 0 0 18px rgba(0,255,255,.22);
  transition: width .22s ease;
}

/* ACCESS GRANTED badge */
.bootGate__granted{
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  pointer-events: none;
  opacity: 0;
  transform: translateY(10px) scale(.985);
  transition: opacity .25s ease, transform .25s ease;
}

.bootGate__granted.is-show{
  opacity: 1;
  transform: translateY(0) scale(1);
}

.bootGate__grantedInner{
  border-radius: 18px;
  border: 1px solid rgba(0,255,255,.22);
  background: rgba(7,10,16,.68);
  padding: 16px 18px 14px;
  text-align: center;
  box-shadow: 0 18px 60px rgba(0,0,0,.55);
  backdrop-filter: blur(10px);
  min-width: min(420px, 90%);
}

.bootGate__grantedTitle{
  font-weight: 950;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(150,255,230,.96);
  font-size: 18px;
  margin-bottom: 6px;
  text-shadow: 0 0 18px rgba(0,255,255,.18);
}

.bootGate__grantedSub{
  font-size: 13px;
  opacity: .78;
}

/* exit animation */
.bootGate.is-open.is-exit{
  animation: bootGateOut .56s ease forwards;
}
@keyframes bootGateOut{
  to { opacity: 0; transform: scale(.985); }
}

@media (min-width: 720px){
  .bootGate__panel{ padding: 20px 20px 18px; }
  .bootGate__title{ font-size: 20px; }
  .bootGate__sub{ font-size: 14px; }
  .bootGate__log{ max-height: 240px; }
}

/* ###### END assets/css/boot-loader.css (premium secure boot gate) ###### */
