html:not(.bsk-unlocked) body > *:not(#bsk-lock) { display: none !important; }
html:not(.bsk-unlocked) body { overflow: hidden; }

#bsk-lock {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  background:
    radial-gradient(120% 80% at 50% -10%, oklch(96.4% 0.011 47) 0%, oklch(98.8% 0.004 52) 55%, oklch(92.4% 0.024 45) 100%);
  font-family: "Avenir Next", Avenir, "Segoe UI", Helvetica, Arial, sans-serif;
  color: oklch(23% 0.025 253);
}
html:not(.bsk-unlocked) #bsk-lock { display: flex !important; }

.bsk-card {
  width: min(440px, 100%);
  display: grid;
  gap: 1.5rem;
  padding: clamp(1.75rem, 4vw, 2.5rem);
  background: oklch(99.3% 0.003 52);
  border: 1px solid oklch(82% 0.014 48);
  border-radius: 18px;
  box-shadow: 0 18px 44px oklch(34% 0.035 35 / 0.09);
  text-align: center;
}

.bsk-brand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(8.75rem, 22vw, 10.5rem);
  margin-inline: auto;
}
.bsk-brand img { width: 100%; height: auto; display: block; }

.bsk-kicker {
  color: oklch(58% 0.07 55);
  font-size: 0.7rem;
  font-weight: 760;
  letter-spacing: 0.28em;
  line-height: 1.35;
  text-transform: uppercase;
}

.bsk-title {
  margin: 0;
  font-family: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif;
  font-size: clamp(1.7rem, 4vw, 2.15rem);
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 1.15;
  color: oklch(23% 0.025 253);
}

.bsk-text {
  margin: 0;
  color: oklch(41% 0.022 250);
  font-size: 0.97rem;
  line-height: 1.5;
}

.bsk-form { display: grid; gap: 0.75rem; }

.bsk-input {
  width: 100%;
  min-height: 2.95rem;
  padding: 0.75rem 1rem;
  font: inherit;
  font-size: 0.95rem;
  color: oklch(23% 0.025 253);
  background: oklch(98.8% 0.004 52);
  border: 1px solid oklch(82% 0.014 48);
  border-radius: 12px;
  outline: none;
  transition: border-color 180ms ease, box-shadow 180ms ease;
  text-align: center;
  letter-spacing: 0.05em;
}
.bsk-input::placeholder { color: oklch(58% 0.016 245); letter-spacing: 0.02em; }
.bsk-input:focus {
  border-color: oklch(58% 0.07 55);
  box-shadow: 0 0 0 3px oklch(58% 0.07 55 / 0.12);
}

.bsk-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  min-height: 2.95rem;
  padding: 0.88rem 1.35rem;
  border: 1px solid oklch(23% 0.025 253);
  border-radius: 999px;
  background: oklch(23% 0.025 253);
  color: oklch(98.8% 0.004 52);
  font: inherit;
  font-size: 0.78rem;
  font-weight: 760;
  letter-spacing: 0.09em;
  line-height: 1;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform 180ms ease, background 180ms ease;
}
.bsk-button:hover { transform: translateY(-1px); background: color-mix(in oklch, oklch(23% 0.025 253), oklch(58% 0.07 55) 16%); }
.bsk-button:active { transform: translateY(0); }

.bsk-error {
  display: none;
  margin: 0;
  font-size: 0.82rem;
  color: oklch(48% 0.13 25);
  letter-spacing: 0.02em;
}
.bsk-error.is-visible { display: block; }

.bsk-foot {
  margin: 0;
  font-size: 0.72rem;
  color: oklch(58% 0.016 245);
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
