.szb-scrim, .szb-scrim *{ box-sizing:border-box; }
.szb-scrim{
  --bg:#0a0b0d;
  --panel:#131519;
  --panel-2:#191c21;
  --line:rgba(255,255,255,.09);
  --line-strong:rgba(255,255,255,.16);
  --ink:#eceef0;
  --ink-dim:#8d9099;
  --ink-faint:#5c5f66;
  --acc:#34e0b0;
  --acc-2:#a877ff;
  --font-mono:'IBM Plex Mono', ui-monospace, 'SF Mono', Consolas, monospace;
  --font-sans:'IBM Plex Sans', -apple-system, 'Segoe UI', sans-serif;
}

.szb-scrim{
  position:fixed;
  inset:0;
  background:rgba(6,7,9,.72);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:1.25rem;
  z-index:2147483000;
  opacity:0;
  pointer-events:none;
  transition:opacity .32s ease;
  font-family:var(--font-sans);
}
.szb-scrim.szb-open{ opacity:1; pointer-events:auto; }

.szb-modal{
  position:relative;
  width:100%;
  max-width:440px;
  background:linear-gradient(180deg, var(--panel-2), var(--panel));
  border:1px solid var(--line-strong);
  border-radius:16px;
  padding:1.75rem 1.75rem 1.9rem;
  box-shadow:0 40px 80px -20px rgba(0,0,0,.6), 0 0 0 1px rgba(255,255,255,.02);
  transform:translateY(14px) scale(.98);
  transition:transform .38s cubic-bezier(.2,.8,.2,1);
  color:var(--ink);
}
.szb-scrim.szb-open .szb-modal{ transform:translateY(0) scale(1); }

.szb-modal::before{
  content:"";
  position:absolute;
  inset:-1px -1px auto -1px;
  height:120px;
  border-radius:16px 16px 0 0;
  background:radial-gradient(120% 100% at 20% 0%, rgba(52,224,176,.14), transparent 60%),
             radial-gradient(120% 100% at 85% 0%, rgba(168,119,255,.12), transparent 55%);
  pointer-events:none;
}

.szb-close{
  position:absolute;
  top:.9rem; right:.9rem;
  width:30px; height:30px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.03);
  border-radius:8px;
  color:var(--ink-dim);
  cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  font-size:.95rem;
  line-height:1;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.szb-close:hover{ background:rgba(255,255,255,.07); color:var(--ink); border-color:var(--line-strong); }
.szb-close:focus-visible{ outline:2px solid var(--acc); outline-offset:2px; }

.szb-eyebrow{
  display:flex; align-items:center; gap:.5rem;
  font-family:var(--font-mono);
  font-size:.7rem;
  font-weight:500;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--acc);
  margin:0 0 1.1rem;
}
.szb-dot{
  width:7px; height:7px;
  border-radius:50%;
  background:var(--acc);
  box-shadow:0 0 0 0 rgba(52,224,176,.55);
  animation:szb-pulse 2.1s ease-out infinite;
  flex:none;
}
@keyframes szb-pulse{
  0%{ box-shadow:0 0 0 0 rgba(52,224,176,.55); }
  70%{ box-shadow:0 0 0 8px rgba(52,224,176,0); }
  100%{ box-shadow:0 0 0 0 rgba(52,224,176,0); }
}

.szb-title{
  font-family:var(--font-mono);
  font-size:1.5rem;
  font-weight:600;
  letter-spacing:-.01em;
  margin:0 0 .15rem;
  text-wrap:balance;
  color:var(--ink);
}
.szb-title .szb-slash{ color:var(--acc); }
.szb-title .szb-cursor{
  display:inline-block;
  width:.5em;
  color:var(--acc);
  animation:szb-blink 1.1s steps(1) infinite;
}
@keyframes szb-blink{ 50%{ opacity:0; } }

.szb-sub{
  font-size:.86rem;
  color:var(--ink-dim);
  margin:0 0 1.4rem;
}

.szb-stage{
  display:flex;
  align-items:center;
  min-height:3.4rem;
  margin:0 0 1.5rem;
  padding:.85rem 1rem;
  background:rgba(255,255,255,.025);
  border:1px solid var(--line);
  border-radius:10px;
}
.szb-line{
  font-size:.92rem;
  line-height:1.4;
  color:var(--ink);
  opacity:0;
  transition:opacity 1.8s ease;
}
.szb-line.szb-active{ opacity:1; }
.szb-line b{ color:var(--acc-2); font-weight:500; }

.szb-progress-head{
  display:flex; align-items:baseline; justify-content:space-between;
  font-family:var(--font-mono);
  font-size:.72rem;
  color:var(--ink-dim);
  margin:0 0 .5rem;
}
.szb-progress-head b{
  font-variant-numeric:tabular-nums;
  color:var(--ink);
  font-weight:500;
  font-size:.78rem;
}
.szb-track{
  position:relative;
  height:7px;
  border-radius:99px;
  background:rgba(255,255,255,.06);
  overflow:hidden;
}
.szb-fill{
  position:absolute; inset:0 auto 0 0;
  width:0%;
  border-radius:99px;
  background:linear-gradient(90deg, var(--acc), var(--acc-2));
  transition:width 1.1s cubic-bezier(.2,.7,.2,1);
}
.szb-fill::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.35), transparent);
  width:40px;
  animation:szb-sheen 2.6s ease-in-out infinite;
}
@keyframes szb-sheen{
  0%{ transform:translateX(-40px); }
  100%{ transform:translateX(220px); }
}

.szb-foot{
  display:flex; align-items:center; justify-content:space-between;
  margin-top:1.4rem;
  gap:.75rem;
}
.szb-eta{
  font-size:.74rem;
  color:var(--ink-faint);
}
.szb-eta b{ color:var(--ink-dim); font-weight:500; }
.szb-dismiss{
  font-family:var(--font-sans);
  font-size:.78rem;
  font-weight:500;
  color:var(--bg);
  background:var(--ink);
  border:none;
  border-radius:8px;
  padding:.55rem .95rem;
  cursor:pointer;
  transition:transform .12s ease, background .15s ease;
}
.szb-dismiss:hover{ background:#fff; }
.szb-dismiss:active{ transform:scale(.97); }
.szb-dismiss:focus-visible{ outline:2px solid var(--acc); outline-offset:2px; }

@media (prefers-reduced-motion: reduce){
  .szb-dot, .szb-title .szb-cursor, .szb-fill::after{ animation:none; }
  .szb-modal, .szb-scrim, .szb-line, .szb-fill{ transition:none; }
}
