
:root {
  --dbzl-bg:#050812;
  --dbzl-card:rgba(5,10,24,.10);
  --dbzl-card-strong:rgba(5,10,24,.18);
  --dbzl-card-glow:rgba(255,162,55,.20);
  --dbzl-border:rgba(255,255,255,.12);
  --dbzl-text:#f7f8fd;
  --dbzl-muted:#a9b4d1;
  --dbzl-muted-strong:#d5d9eb;
  --dbzl-orange:#ff8d1f;
  --dbzl-gold:#ffd85e;
  --dbzl-blue:#7cd3ff;
  --dbzl-success:#5de2a9;
  --dbzl-danger:#ff8f9f;
  --dbzl-shadow:0 18px 48px rgba(0,0,0,.20);
}

body.dbzl-auth-page {
  margin:0;
  min-height:100vh;
  background:var(--dbzl-bg);
  color:var(--dbzl-text);
  font-family: Arial, Helvetica, sans-serif;
}

.dbzl-auth-bg {
  position:fixed;
  inset:0;
  overflow:hidden;
  background:#050812;
  z-index:0;
}

.dbzl-bg-video {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  transform:scale(1.16);
  opacity:.36;
  background:#050812;
  filter:saturate(.98) contrast(.96) brightness(.62);
}

.dbzl-bg-overlay {
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(4,7,15,.18), rgba(4,7,15,.46)),
    radial-gradient(circle at 16% 18%, rgba(255,153,0,.14), transparent 30rem),
    radial-gradient(circle at 78% 16%, rgba(107,235,255,.08), transparent 26rem),
    radial-gradient(circle at 50% 75%, rgba(110,63,255,.08), transparent 30rem);
}

.dbzl-ki-orbs { position:absolute; inset:0; pointer-events:none; }
.dbzl-ki-orb {
  position:absolute;
  width:18px;
  height:18px;
  border-radius:50%;
  background:radial-gradient(circle at 35% 28%, #fff9df 0 10%, transparent 12%), radial-gradient(circle, #ffc542 0 50%, #f77400 67%, rgba(255,93,0,.24) 76%, transparent 78%);
  border:1px solid rgba(255,234,183,.75);
  box-shadow:0 0 10px rgba(255,146,0,.44);
  opacity:.70;
}
.dbzl-ki-orb:nth-child(1){ left:8%; top:32%; }
.dbzl-ki-orb:nth-child(2){ right:10%; top:74%; width:14px; height:14px; }

.dbzl-auth-shell {
  position:relative;
  z-index:1;
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px 18px 32px;
}

.dbzl-auth-layout {
  width:min(1180px,100%);
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(0, 540px);
  gap:clamp(20px,3vw,42px);
  align-items:center;
}

.dbzl-hero { padding:8px 4px 2px; text-align:center; }
.dbzl-brand-center {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:0;
  margin:6px auto 12px;
}
.dbzl-brand-center img {
  display:block;
  width:min(360px, 86vw);
  height:auto;
  filter:drop-shadow(0 12px 24px rgba(0,0,0,.30));
}


.dbzl-brand-subtitle {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin:2px auto 8px;
  font-size:clamp(18px, 4.4vw, 26px);
  font-weight:800;
  letter-spacing:.10em;
  text-transform:uppercase;
  line-height:1;
  color:#f6d35f;
  text-shadow:0 2px 12px rgba(255,180,59,.25), 0 0 18px rgba(255,185,72,.16);
  animation:dbzlLegacyFloat 4.8s ease-in-out infinite, dbzlLegacyGlow 3.2s ease-in-out infinite;
}
.dbzl-brand-subtitle span {
  color:#f2f4f8;
  opacity:.96;
}
.dbzl-brand-subtitle strong {
  font-weight:900;
  background:linear-gradient(180deg, #fff0a0 0%, #ffd24b 45%, #ff9f1f 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
@keyframes dbzlLegacyFloat {
  0%,100% { transform:translateY(0); }
  50% { transform:translateY(-2px); }
}
@keyframes dbzlLegacyGlow {
  0%,100% { opacity:.92; filter:drop-shadow(0 0 0 rgba(255,209,84,0)); }
  50% { opacity:1; filter:drop-shadow(0 0 10px rgba(255,209,84,.22)); }
}
@media (prefers-reduced-motion: reduce) {
  .dbzl-brand-subtitle { animation:none; }
}

.dbzl-stats { display:none !important; }
.dbzl-stat { display:none !important; }
.dbzl-stat b { display:block; font-size:36px; line-height:1; }
.dbzl-stat span { display:block; margin-top:6px; color:var(--dbzl-muted); font-size:14px; }

.dbzl-auth-card {
  position:relative;
  border-radius:30px;
  border:1px solid rgba(255,214,113,.20);
  background:linear-gradient(180deg, rgba(255,255,255,.030), rgba(255,255,255,.008));
  box-shadow:0 0 0 1px rgba(255,255,255,.06) inset, 0 16px 42px rgba(0,0,0,.16);
}
.dbzl-auth-card::before {
  content:"";
  position:absolute;
  inset:10px;
  border-radius:24px;
  border:1px solid rgba(255,255,255,.08);
  pointer-events:none;
}
.dbzl-auth-card-inner {
  padding:clamp(18px,3vw,24px);
}

.dbzl-tabs {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  padding:7px;
  border-radius:20px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(9,14,30,.10);
}
.dbzl-tab {
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:62px;
  border-radius:16px;
  color:#eef2ff;
  text-decoration:none;
  font-size:18px;
  font-weight:700;
  transition:.18s ease;
}
.dbzl-tab.is-active {
  color:#fff;
  background:linear-gradient(135deg, var(--dbzl-orange), #ff5e36);
  box-shadow:0 12px 24px rgba(255,121,36,.24);
}

.dbzl-panel { margin-top:18px; }
.dbzl-panel-frame {
  border-radius:0;
  border:0;
  background:transparent;
  padding:18px;
  box-shadow:none;
}
.dbzl-panel-titlebar {
  display:flex;
  align-items:flex-start;
  gap:14px;
  margin-bottom:18px;
}
.dbzl-panel-badge {
  width:42px;
  height:42px;
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  color:#612000;
  font-weight:700;
  background:linear-gradient(180deg, #ffd875, #ff8f1f);
  box-shadow:0 0 0 1px rgba(255,255,255,.32) inset, 0 0 18px rgba(255,157,29,.20);
}
.dbzl-panel-titlebar h2 { margin:0; font-size:18px; }
.dbzl-panel-titlebar p { margin:5px 0 0; color:var(--dbzl-muted); font-size:13px; line-height:1.45; }
.dbzl-login-strip {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 14px;
}
.dbzl-strip-pill {
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 12px;
  border-radius:999px;
  border:1px solid rgba(255,214,113,.22);
  background:rgba(255,255,255,.04);
  color:#ffd976;
  font-size:11px;
  letter-spacing:.10em;
  font-weight:700;
}

.dbzl-alert {
  margin:0 0 14px;
  padding:14px 16px;
  border-radius:16px;
  font-size:14px;
}
.dbzl-alert-success { color:#dcfff1; background:rgba(21,105,72,.22); border:1px solid rgba(69,208,147,.40); }
.dbzl-alert-error { color:#ffe0e6; background:rgba(136,35,56,.22); border:1px solid rgba(255,109,145,.35); }

.dbzl-field { margin-top:14px; }
.dbzl-field label, .dbzl-field-title {
  display:block;
  margin-bottom:8px;
  color:#eef2ff;
  font-size:13px;
  font-weight:700;
}
.dbzl-input {
  width:100%;
  min-height:58px;
  padding:0 18px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.045);
  color:#fff;
  outline:none;
  font-size:16px;
  box-sizing:border-box;
}
.dbzl-input::placeholder { color:#98a6c8; }
.dbzl-input:focus {
  border-color:rgba(255,215,95,.48);
  box-shadow:0 0 0 3px rgba(255,193,61,.10);
}
.dbzl-primary {
  width:100%;
  min-height:64px;
  margin-top:18px;
  border:0;
  border-radius:20px;
  font-size:20px;
  font-weight:800;
  color:#111;
  cursor:pointer;
  background:linear-gradient(90deg, #ffe873, #ff9d2f 65%, #ff6234 100%);
  box-shadow:0 14px 30px rgba(255,145,31,.24);
}

.dbzl-register-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.dbzl-field-full { grid-column:1/-1; }

.dbzl-character-wrap {
  margin-top:18px;
  padding:16px;
  border-radius:22px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.03);
}
.dbzl-character-title {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:14px;
}
.dbzl-character-title strong { font-size:15px; }
.dbzl-character-title span { color:var(--dbzl-muted); font-size:13px; }

.dbzl-character-preview {
  margin-bottom:14px;
  padding:16px;
  border-radius:20px;
  border:1px solid rgba(255,215,95,.18);
  background:linear-gradient(135deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
}
.dbzl-character-preview-head {
  display:grid;
  grid-template-columns:88px minmax(0,1fr);
  gap:14px;
  align-items:center;
}
.dbzl-character-preview-avatar {
  width:88px;
  height:88px;
  border-radius:20px;
  border:1px solid rgba(255,255,255,.12);
  background:linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.02));
  display:flex;
  align-items:center;
  justify-content:center;
}
.dbzl-character-preview-avatar img {
  width:74px;
  height:74px;
  object-fit:contain;
}
.dbzl-character-preview-summary strong { display:block; font-size:22px; }
.dbzl-character-preview-role { display:block; margin-top:4px; color:#ffd56e; font-size:12px; letter-spacing:.12em; text-transform:uppercase; }
.dbzl-character-preview-summary p {
  margin:10px 0 0;
  color:var(--dbzl-muted-strong);
  font-size:14px;
  line-height:1.55;
}
.dbzl-character-preview-stats {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-top:14px;
}
.dbzl-preview-stat {
  padding:12px 10px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(8,14,30,.18);
  text-align:center;
}
.dbzl-preview-stat span { display:block; font-size:11px; color:#96a3c0; margin-bottom:5px; }
.dbzl-preview-stat b { font-size:16px; }
.dbzl-character-preview-special {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:12px;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid rgba(255,214,113,.18);
  background:rgba(255,214,113,.08);
}
.dbzl-character-preview-special span { color:#ffd783; font-size:12px; text-transform:uppercase; letter-spacing:.10em; }
.dbzl-character-preview-special b { color:#fff; font-size:14px; }

.dbzl-character-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.dbzl-character-option {
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.dbzl-character-card {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  min-height:136px;
  padding:14px 10px 12px;
  border-radius:20px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(8,14,30,.12);
  text-align:center;
  cursor:pointer;
  transition:.18s ease;
}
.dbzl-character-card img {
  width:58px;
  height:58px;
  object-fit:contain;
}
.dbzl-character-card strong { font-size:14px; color:#fff; }
.dbzl-character-meta {
  display:flex;
  flex-direction:column;
  gap:4px;
  font-style:normal;
  width:100%;
}
.dbzl-character-meta em {
  display:block;
  padding:4px 8px;
  border-radius:999px;
  background:rgba(255,255,255,.05);
  color:#aeb9d4;
  font-size:11px;
  font-style:normal;
}
.dbzl-character-option:checked + .dbzl-character-card {
  border-color:rgba(255,215,95,.52);
  background:linear-gradient(180deg, rgba(255,190,84,.14), rgba(255,255,255,.03));
  box-shadow:0 0 0 1px rgba(255,215,95,.16) inset, 0 10px 22px rgba(255,157,36,.10);
  transform:translateY(-1px);
}

.dbzl-captcha-row {
  display:grid;
  grid-template-columns:150px minmax(0,1fr) 58px;
  gap:10px;
  align-items:center;
}
.dbzl-captcha {
  display:block;
  width:100%;
  height:58px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.12);
  background:#fff;
  object-fit:cover;
}
.dbzl-captcha-refresh {
  min-height:58px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.05);
  color:#fff;
  font-size:26px;
  cursor:pointer;
}

[hidden] { display:none !important; }

@media (max-width: 1060px) {
  .dbzl-auth-layout { grid-template-columns:1fr; gap:18px; }
  .dbzl-hero { text-align:center; }
  
}

@media (max-width: 720px) {
  .dbzl-auth-shell { padding:12px 9px 18px; align-items:flex-start; }
  .dbzl-auth-layout { gap:12px; }
  .dbzl-bg-video { transform:scale(1.16); }
  .dbzl-brand-center { margin:4px auto 7px; }
  .dbzl-brand-center img { width:min(300px, 82vw); }
  .dbzl-brand-subtitle { font-size:clamp(14px, 4.6vw, 19px); letter-spacing:.07em; gap:6px; margin:1px auto 4px; }

  .dbzl-auth-card { border-radius:22px; }
  .dbzl-auth-card::before { content:none; }
  .dbzl-auth-card-inner { padding:11px; }
  .dbzl-tabs { padding:5px; gap:5px; border-radius:15px; }
  .dbzl-tab { min-height:43px; border-radius:12px; font-size:14px; }
  .dbzl-panel { margin-top:12px; }
  .dbzl-panel-frame { padding:10px; }

  .dbzl-field { margin-top:10px; }
  .dbzl-field label, .dbzl-field-title { margin-bottom:6px; font-size:12px; }
  /* v1.3.35 R2: iOS Safari auto-zooms focused form controls below 16px.
     Keep every login/register/captcha field at 16px so focus opens only the keyboard,
     without changing the page zoom level. */
  .dbzl-input { min-height:42px; padding:0 13px; border-radius:13px; font-size:16px; }
  .dbzl-primary { min-height:45px; margin-top:13px; border-radius:14px; font-size:16px; }
  .dbzl-alert { padding:10px 12px; border-radius:12px; font-size:12px; }

  .dbzl-register-grid { grid-template-columns:1fr; gap:9px; }
  .dbzl-character-wrap { margin-top:12px; padding:10px; border-radius:16px; }
  .dbzl-character-title { margin-bottom:10px; }
  .dbzl-character-title strong { font-size:13px; }
  .dbzl-character-title span { font-size:11px; }
  .dbzl-character-preview { margin-bottom:10px; padding:11px; border-radius:15px; }
  .dbzl-character-preview-head { grid-template-columns:54px minmax(0,1fr); gap:10px; }
  .dbzl-character-preview-avatar { width:54px; height:54px; border-radius:14px; }
  .dbzl-character-preview-avatar img { width:46px; height:46px; }
  .dbzl-character-preview-summary strong { font-size:16px; }
  .dbzl-character-preview-role { font-size:10px; }
  .dbzl-character-preview-summary p { margin-top:6px; font-size:11px; line-height:1.4; }
  .dbzl-character-preview-stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin-top:10px; }
  .dbzl-preview-stat { padding:8px 6px; border-radius:11px; }
  .dbzl-preview-stat span { font-size:9px; }
  .dbzl-preview-stat b { font-size:13px; }
  .dbzl-character-preview-special { margin-top:8px; padding:9px 10px; border-radius:10px; }
  .dbzl-character-preview-special span { font-size:9px; }
  .dbzl-character-preview-special b { font-size:11px; }

  .dbzl-character-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .dbzl-character-card { min-height:96px; padding:9px 6px 7px; border-radius:14px; gap:5px; }
  .dbzl-character-card img { width:42px; height:42px; }
  .dbzl-character-card strong { font-size:12px; }
  .dbzl-character-meta { gap:3px; }
  .dbzl-character-meta em { padding:3px 6px; font-size:9px; }

  .dbzl-captcha-row { grid-template-columns:88px minmax(0,1fr) 42px; gap:7px; }
  .dbzl-captcha { height:42px; border-radius:10px; }
  .dbzl-captcha-refresh { min-height:42px; border-radius:11px; font-size:20px; }
}

@media (max-width: 480px) {
  .dbzl-auth-shell { padding:10px 7px 16px; }
  .dbzl-brand-center img { width:min(282px, 80vw); }
  .dbzl-tabs { padding:4px; gap:4px; }
  .dbzl-tab { min-height:40px; font-size:13px; }
  .dbzl-auth-card-inner { padding:9px; }
  .dbzl-panel-frame { padding:8px; }
  .dbzl-character-title { flex-direction:column; align-items:flex-start; gap:4px; }
  .dbzl-character-card { min-height:90px; padding:8px 5px 6px; }
  .dbzl-character-card img { width:40px; height:40px; }
  .dbzl-captcha-row { grid-template-columns:82px minmax(0,1fr) 40px; }
}


/* v1.2.9 registration cinematic flow */
body.dbzl-register-open {
  overflow:hidden;
}

.dbzl-auth-layout {
  transition:opacity .28s ease, transform .28s ease, filter .28s ease;
}

.dbzl-auth-shell.is-register-transition .dbzl-auth-layout,
.dbzl-auth-shell.is-register-mode .dbzl-auth-layout {
  opacity:0;
  transform:scale(.97);
  filter:blur(5px);
  pointer-events:none;
}

.dbzl-register-cinematic {
  position:fixed;
  inset:0;
  z-index:8;
  overflow:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding:max(18px, env(safe-area-inset-top)) 18px max(24px, env(safe-area-inset-bottom));
  background:linear-gradient(180deg, rgba(3,7,18,.05), rgba(3,7,18,.24));
  animation:dbzlRegisterStageFade .32s ease both;
}

.dbzl-register-cinematic[hidden],
.dbzl-register-stage[hidden] {
  display:none !important;
}

.dbzl-register-cinematic-form {
  width:min(1120px, 100%);
  min-height:100%;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
}

.dbzl-register-stage {
  width:100%;
  animation:dbzlRegisterStageFade .28s ease both;
}

.dbzl-register-stage-head {
  width:min(760px, 100%);
  margin:0 auto 18px;
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  gap:12px;
  align-items:start;
  text-align:left;
}

.dbzl-register-stage-head-compact {
  width:min(760px, 100%);
}

.dbzl-register-stage-head h2 {
  margin:2px 0 6px;
  color:#fff;
  font-size:clamp(28px, 5vw, 48px);
  line-height:1;
}

.dbzl-register-stage-head p {
  margin:0;
  color:#c8ccda;
  font-size:14px;
  line-height:1.5;
}

.dbzl-register-kicker {
  display:block;
  color:#ffc74f;
  font-size:11px;
  font-weight:900;
  letter-spacing:.18em;
}

.dbzl-register-back {
  width:44px;
  height:44px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:50%;
  background:rgba(10,14,29,.42);
  color:#fff;
  font:700 23px/1 inherit;
  cursor:pointer;
}

.dbzl-teleport-status {
  margin:0 auto 14px;
  color:#ffd36b;
  text-align:center;
  font-size:12px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.dbzl-teleport-roster {
  width:min(980px, 100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(8, minmax(0,1fr));
  gap:12px;
}

.dbzl-character-option {
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.dbzl-teleport-fighter {
  position:relative;
  min-width:0;
  aspect-ratio:.82;
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  overflow:hidden;
  background:linear-gradient(180deg, rgba(19,23,42,.44), rgba(6,10,25,.36));
  box-shadow:0 12px 30px rgba(0,0,0,.18);
  cursor:pointer;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  isolation:isolate;
  transform:translateZ(0);
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.dbzl-teleport-fighter img {
  position:absolute;
  inset:4px 4px 28px;
  width:calc(100% - 8px);
  height:calc(100% - 32px);
  object-fit:contain;
  object-position:center bottom;
  z-index:1;
  filter:drop-shadow(0 8px 10px rgba(0,0,0,.28));
}

.dbzl-teleport-fighter strong {
  position:relative;
  z-index:3;
  width:100%;
  padding:7px 4px 8px;
  background:linear-gradient(180deg, transparent, rgba(3,6,17,.78) 30%);
  color:#fff;
  font-size:11px;
  line-height:1.1;
  text-align:center;
}

.dbzl-teleport-flash {
  position:absolute;
  inset:12%;
  z-index:0;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,238,157,.96) 0%, rgba(255,172,33,.56) 25%, rgba(255,110,0,.14) 48%, transparent 70%);
  opacity:0;
  transform:scale(.2);
  pointer-events:none;
}

.dbzl-teleport-roster.is-assembling {
  pointer-events:none;
}

.dbzl-teleport-roster.is-assembling .dbzl-teleport-fighter {
  animation:dbzlTeleportArrive .58s cubic-bezier(.16,.8,.18,1) both;
  animation-delay:calc(var(--fighter-index) * 85ms);
}

.dbzl-teleport-roster.is-assembling .dbzl-teleport-flash {
  animation:dbzlTeleportFlash .5s ease-out both;
  animation-delay:calc(var(--fighter-index) * 85ms);
}

.dbzl-teleport-roster.is-ready .dbzl-teleport-fighter:hover,
.dbzl-character-option:checked + .dbzl-teleport-fighter {
  transform:translateY(-4px) scale(1.035);
  border-color:rgba(255,192,56,.78);
  background:linear-gradient(180deg, rgba(88,57,18,.34), rgba(13,16,31,.48));
  box-shadow:0 0 0 1px rgba(255,178,38,.24), 0 12px 34px rgba(255,112,18,.13);
}

.dbzl-cinematic-profile {
  width:min(760px, 100%);
  margin:0 auto;
  padding:18px;
  display:grid;
  grid-template-columns:minmax(180px, 250px) minmax(0,1fr);
  gap:24px;
  align-items:center;
  border:1px solid rgba(255,255,255,.13);
  border-radius:26px;
  background:linear-gradient(145deg, rgba(8,12,27,.58), rgba(17,17,31,.30));
  box-shadow:0 18px 55px rgba(0,0,0,.24);
}

.dbzl-cinematic-profile-visual {
  position:relative;
  min-height:290px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
}

.dbzl-cinematic-profile-visual img {
  position:relative;
  z-index:2;
  width:min(250px, 100%);
  max-height:300px;
  object-fit:contain;
  filter:drop-shadow(0 18px 25px rgba(0,0,0,.38));
}

.dbzl-cinematic-profile-aura {
  position:absolute;
  inset:12% 4% 3%;
  z-index:1;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,196,71,.22), rgba(255,96,0,.07) 48%, transparent 72%);
}

.dbzl-cinematic-profile-copy > p {
  margin:0 0 14px;
  color:#cbd0df;
  line-height:1.6;
}

.dbzl-register-actions {
  width:min(760px, 100%);
  margin:16px auto 0;
  display:grid;
  grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);
  gap:10px;
}

.dbzl-secondary {
  min-height:52px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:16px;
  background:rgba(8,12,27,.44);
  color:#f4f5fa;
  font-weight:800;
  cursor:pointer;
}

.dbzl-register-actions .dbzl-primary {
  margin-top:0;
}

.dbzl-register-details-stage {
  width:min(760px, 100%);
  margin:0 auto;
  padding:18px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:26px;
  background:linear-gradient(145deg, rgba(8,12,27,.56), rgba(17,17,31,.30));
  box-shadow:0 18px 55px rgba(0,0,0,.22);
}

.dbzl-cinematic-details-grid {
  margin-top:6px;
}

@keyframes dbzlTeleportArrive {
  0% {
    opacity:0;
    transform:translate3d(calc((var(--fighter-index) - 7) * 12px), -52px, 0) scale(.18);
    filter:blur(10px) brightness(2.1);
  }
  42% {
    opacity:1;
    transform:translate3d(0, 4px, 0) scale(1.08);
    filter:blur(1px) brightness(1.5);
  }
  100% {
    opacity:1;
    transform:translate3d(0, 0, 0) scale(1);
    filter:none;
  }
}

@keyframes dbzlTeleportFlash {
  0% { opacity:0; transform:scale(.15); }
  28% { opacity:.95; }
  100% { opacity:0; transform:scale(1.55); }
}

@keyframes dbzlRegisterStageFade {
  from { opacity:0; transform:translateY(10px); }
  to { opacity:1; transform:translateY(0); }
}

@media (max-width: 900px) {
  .dbzl-teleport-roster {
    grid-template-columns:repeat(4, minmax(0,1fr));
    gap:9px;
  }
  .dbzl-teleport-fighter {
    border-radius:15px;
  }
  .dbzl-cinematic-profile {
    grid-template-columns:170px minmax(0,1fr);
    gap:16px;
  }
  .dbzl-cinematic-profile-visual {
    min-height:220px;
  }
}

@media (max-width: 720px) {
  .dbzl-register-cinematic {
    padding:max(12px, env(safe-area-inset-top)) 9px max(18px, env(safe-area-inset-bottom));
  }
  .dbzl-register-cinematic-form {
    align-items:flex-start;
  }
  .dbzl-register-stage {
    padding-top:8px;
  }
  .dbzl-register-stage-head {
    grid-template-columns:40px minmax(0,1fr);
    gap:9px;
    margin-bottom:12px;
  }
  .dbzl-register-stage-head h2 {
    font-size:28px;
  }
  .dbzl-register-stage-head p {
    font-size:12px;
  }
  .dbzl-register-back {
    width:38px;
    height:38px;
    font-size:20px;
  }
  .dbzl-teleport-status {
    margin-bottom:9px;
    font-size:10px;
  }
  .dbzl-teleport-roster {
    grid-template-columns:repeat(4, minmax(0,1fr));
    gap:7px;
  }
  .dbzl-teleport-fighter {
    min-height:118px;
    aspect-ratio:.76;
    border-radius:13px;
  }
  .dbzl-teleport-fighter img {
    inset:2px 2px 23px;
    width:calc(100% - 4px);
    height:calc(100% - 25px);
  }
  .dbzl-teleport-fighter strong {
    padding:5px 2px 6px;
    font-size:9px;
  }
  .dbzl-cinematic-profile {
    padding:12px;
    grid-template-columns:110px minmax(0,1fr);
    gap:10px;
    border-radius:18px;
  }
  .dbzl-cinematic-profile-visual {
    min-height:165px;
  }
  .dbzl-cinematic-profile-visual img {
    max-height:170px;
  }
  .dbzl-cinematic-profile-copy > p {
    margin-bottom:8px;
    font-size:11px;
    line-height:1.45;
  }
  .dbzl-cinematic-profile .dbzl-character-preview-stats {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
    margin-top:7px;
  }
  .dbzl-cinematic-profile .dbzl-preview-stat {
    padding:7px 5px;
  }
  .dbzl-cinematic-profile .dbzl-preview-stat span {
    font-size:8px;
  }
  .dbzl-cinematic-profile .dbzl-preview-stat b {
    font-size:12px;
  }
  .dbzl-register-actions {
    margin-top:10px;
    gap:7px;
  }
  .dbzl-register-actions .dbzl-primary,
  .dbzl-secondary {
    min-height:44px;
    border-radius:13px;
    font-size:14px;
  }
  .dbzl-register-details-stage {
    padding:11px;
    border-radius:18px;
  }
}

@media (max-width: 390px) {
  .dbzl-teleport-fighter {
    min-height:105px;
  }
  .dbzl-cinematic-profile {
    grid-template-columns:96px minmax(0,1fr);
  }
}

@media (prefers-reduced-motion: reduce) {
  .dbzl-auth-layout,
  .dbzl-register-stage,
  .dbzl-register-cinematic,
  .dbzl-teleport-fighter,
  .dbzl-teleport-flash {
    animation:none !important;
    transition:none !important;
  }
}


/* v1.2.13 registration profile mobile viewport fit */
.dbzl-register-stage-head,
.dbzl-register-stage-head-compact,
.dbzl-cinematic-profile,
.dbzl-register-actions,
.dbzl-register-details-stage,
.dbzl-register-cinematic-form,
.dbzl-register-stage {
  box-sizing:border-box;
}

@media (max-width: 720px) {
  .dbzl-register-profile-stage,
  .dbzl-register-profile-stage .dbzl-register-stage-head-compact,
  .dbzl-register-profile-stage .dbzl-cinematic-profile,
  .dbzl-register-profile-stage .dbzl-register-actions {
    width:100%;
    max-width:100%;
    box-sizing:border-box;
  }

  .dbzl-register-profile-stage {
    overflow-x:hidden;
  }

  .dbzl-register-profile-stage .dbzl-register-stage-head-compact {
    margin-bottom:10px;
  }

  .dbzl-register-profile-stage .dbzl-cinematic-profile {
    grid-template-columns:92px minmax(0,1fr);
    gap:8px;
    padding:10px;
    border-radius:16px;
  }

  .dbzl-register-profile-stage .dbzl-cinematic-profile-visual {
    min-height:150px;
  }

  .dbzl-register-profile-stage .dbzl-cinematic-profile-visual img {
    width:min(100%, 92px);
    max-height:150px;
  }

  .dbzl-register-profile-stage .dbzl-cinematic-profile-copy > p {
    font-size:10px;
    line-height:1.4;
    margin-bottom:7px;
  }

  .dbzl-register-profile-stage .dbzl-character-preview-stats {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:5px;
    margin-top:6px;
  }

  .dbzl-register-profile-stage .dbzl-preview-stat {
    padding:6px 4px;
    border-radius:12px;
  }

  .dbzl-register-profile-stage .dbzl-preview-stat span {
    font-size:8px;
    margin-bottom:3px;
  }

  .dbzl-register-profile-stage .dbzl-preview-stat b {
    font-size:11px;
  }

  .dbzl-register-profile-stage .dbzl-character-preview-special {
    margin-top:8px;
    padding:8px 10px;
    gap:4px;
    flex-direction:column;
    align-items:flex-start;
  }

  .dbzl-register-profile-stage .dbzl-character-preview-special span {
    font-size:9px;
    letter-spacing:.08em;
  }

  .dbzl-register-profile-stage .dbzl-character-preview-special b {
    width:100%;
    font-size:12px;
    line-height:1.25;
    overflow-wrap:anywhere;
  }

  .dbzl-register-profile-stage .dbzl-register-actions {
    grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);
    gap:7px;
    margin-top:10px;
  }

  .dbzl-register-profile-stage .dbzl-register-actions .dbzl-primary,
  .dbzl-register-profile-stage .dbzl-register-actions .dbzl-secondary {
    width:100%;
    min-width:0;
    min-height:42px;
    padding:0 10px;
    font-size:13px;
  }
}

@media (max-width: 390px) {
  .dbzl-register-profile-stage .dbzl-cinematic-profile {
    grid-template-columns:84px minmax(0,1fr);
    gap:7px;
    padding:9px;
  }

  .dbzl-register-profile-stage .dbzl-cinematic-profile-visual {
    min-height:138px;
  }

  .dbzl-register-profile-stage .dbzl-cinematic-profile-visual img {
    max-height:138px;
  }

  .dbzl-register-profile-stage .dbzl-register-actions {
    grid-template-columns:1fr;
  }
}


/* v1.2.14 desktop login centering
   Registration cinematic is fixed/fullscreen and remains unchanged. */
@media (min-width: 721px) {
  .dbzl-auth-layout {
    width:min(540px, calc(100vw - 36px));
    grid-template-columns:minmax(0,1fr);
    gap:12px;
    margin:0 auto;
  }

  .dbzl-hero {
    width:100%;
    padding:0;
    text-align:center;
  }

  .dbzl-brand-center {
    width:100%;
    margin:0 auto 10px;
  }

  .dbzl-auth-card {
    width:100%;
    max-width:540px;
    margin:0 auto;
    box-sizing:border-box;
  }
}


/* v1.2.15 true desktop centering
   Legacy style.css caps BODY at 700px. Auth page must use the full viewport. */
body.dbzl-auth-page {
  width:100%;
  max-width:none;
  _width:auto;
}

.dbzl-auth-page .dbzl-auth-shell {
  width:100%;
  max-width:none;
  box-sizing:border-box;
}


/* v1.2.16 DBZL entry teleport + video intro */
body.dbzl-intro-pending {
  overflow:hidden;
}

body.dbzl-intro-pending .dbzl-auth-shell {
  opacity:0;
  pointer-events:none;
}

.dbzl-entry-intro {
  position:fixed;
  inset:0;
  z-index:10000;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 50%, rgba(86,128,87,.16), transparent 28rem),
    #02040b;
  isolation:isolate;
}

.dbzl-entry-start-stage,
.dbzl-entry-video-stage {
  position:absolute;
  inset:0;
}

.dbzl-entry-start-stage {
  display:grid;
  place-items:center;
  perspective:900px;
  transition:opacity .42s ease, transform .42s ease, filter .42s ease;
}

.dbzl-entry-teleport {
  position:absolute;
  left:50%;
  top:50%;
  width:min(340px, 74vw);
  aspect-ratio:1;
  transform:translate(-50%, -50%);
  pointer-events:none;
}

.dbzl-entry-ring {
  position:absolute;
  inset:17%;
  border-radius:50%;
  border:2px solid rgba(255,190,58,.66);
  box-shadow:
    0 0 18px rgba(255,146,17,.55),
    inset 0 0 24px rgba(255,183,55,.16);
  opacity:0;
  animation:dbzlEntryRing 1.65s cubic-bezier(.2,.7,.2,1) infinite;
}

.dbzl-entry-ring-b {
  inset:27%;
  animation-delay:.52s;
  border-color:rgba(119,214,255,.62);
  box-shadow:
    0 0 18px rgba(87,194,255,.48),
    inset 0 0 20px rgba(113,205,255,.12);
}

.dbzl-entry-flare {
  position:absolute;
  inset:30%;
  border-radius:50%;
  background:
    radial-gradient(circle, rgba(255,255,238,.92) 0 2%, rgba(255,197,58,.48) 8%, rgba(255,116,0,.12) 31%, transparent 68%);
  filter:blur(.2px);
  animation:dbzlEntryFlare 1.8s ease-in-out infinite;
}

.dbzl-entry-spark {
  position:absolute;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#ffe48a;
  box-shadow:0 0 12px rgba(255,177,33,.95);
  opacity:.2;
  animation:dbzlEntrySpark 1.9s ease-in-out infinite;
}

.dbzl-entry-spark-1 { left:25%; top:31%; animation-delay:.1s; }
.dbzl-entry-spark-2 { right:24%; top:35%; animation-delay:.5s; }
.dbzl-entry-spark-3 { left:34%; bottom:25%; animation-delay:.9s; }
.dbzl-entry-spark-4 { right:31%; bottom:28%; animation-delay:1.25s; }

.dbzl-entry-start-button {
  position:relative;
  z-index:2;
  min-width:190px;
  padding:18px 42px;
  border:1px solid rgba(255,230,150,.42);
  border-radius:999px;
  background:
    linear-gradient(100deg, rgba(255,210,70,.94), rgba(255,133,24,.96) 56%, rgba(255,74,34,.95));
  color:#11131c;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.08),
    0 14px 50px rgba(255,107,18,.20),
    0 0 32px rgba(255,188,49,.24);
  font:900 18px/1 Arial, Helvetica, sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
  cursor:pointer;
  transform:translateZ(0);
  animation:dbzlEntryButtonArrive .82s cubic-bezier(.16,.85,.18,1) both;
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

.dbzl-entry-start-button:hover {
  transform:scale(1.045);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.10),
    0 16px 55px rgba(255,107,18,.27),
    0 0 38px rgba(255,188,49,.34);
}

.dbzl-entry-start-button:active {
  transform:scale(.98);
}

.dbzl-entry-intro.is-teleporting .dbzl-entry-start-stage {
  opacity:0;
  transform:scale(1.18);
  filter:blur(10px) brightness(1.7);
}

.dbzl-entry-intro.is-teleporting .dbzl-entry-transition-flash,
.dbzl-entry-intro.is-ending .dbzl-entry-transition-flash {
  animation:dbzlEntryFlash .72s ease both;
}

.dbzl-entry-video-stage {
  display:grid;
  place-items:center;
  background:#000;
  opacity:0;
  transition:opacity .46s ease;
}

.dbzl-entry-video-stage.is-visible {
  opacity:1;
}

.dbzl-entry-video {
  width:100%;
  height:100%;
  object-fit:contain;
  background:#000;
}

.dbzl-entry-video-vignette {
  position:absolute;
  inset:0;
  pointer-events:none;
  box-shadow:inset 0 0 100px rgba(0,0,0,.42);
}

.dbzl-entry-transition-flash {
  position:absolute;
  inset:-15%;
  z-index:4;
  pointer-events:none;
  opacity:0;
  background:
    radial-gradient(circle, rgba(255,255,244,.96) 0 3%, rgba(255,205,74,.74) 10%, rgba(255,118,18,.22) 31%, transparent 63%);
  transform:scale(.35);
}

.dbzl-entry-intro.is-exiting {
  animation:dbzlEntryIntroExit .76s ease forwards;
}

body.dbzl-intro-revealing .dbzl-auth-shell {
  animation:dbzlAuthAfterIntro .82s cubic-bezier(.16,.82,.2,1) both;
}

@keyframes dbzlEntryButtonArrive {
  0% { opacity:0; transform:scale(.18) translateZ(-100px); filter:blur(14px) brightness(2.2); }
  54% { opacity:1; transform:scale(1.08) translateZ(0); filter:blur(1px) brightness(1.28); }
  100% { opacity:1; transform:scale(1) translateZ(0); filter:none; }
}

@keyframes dbzlEntryRing {
  0% { opacity:0; transform:scale(.25); filter:blur(4px); }
  28% { opacity:.78; }
  100% { opacity:0; transform:scale(1.7); filter:blur(1px); }
}

@keyframes dbzlEntryFlare {
  0%,100% { opacity:.58; transform:scale(.88); }
  50% { opacity:1; transform:scale(1.18); }
}

@keyframes dbzlEntrySpark {
  0%,100% { opacity:.12; transform:translate3d(0,8px,0) scale(.7); }
  50% { opacity:.9; transform:translate3d(0,-9px,0) scale(1.15); }
}

@keyframes dbzlEntryFlash {
  0% { opacity:0; transform:scale(.25); }
  32% { opacity:.98; }
  100% { opacity:0; transform:scale(2.2); }
}

@keyframes dbzlEntryIntroExit {
  0% { opacity:1; filter:brightness(1); }
  38% { opacity:1; filter:brightness(1.45); }
  100% { opacity:0; filter:brightness(1.15); visibility:hidden; }
}

@keyframes dbzlAuthAfterIntro {
  0% { opacity:0; transform:scale(.96); filter:blur(9px) brightness(1.25); }
  100% { opacity:1; transform:scale(1); filter:none; }
}

@media (max-width: 720px) {
  .dbzl-entry-start-button {
    min-width:168px;
    padding:16px 34px;
    font-size:16px;
  }
  .dbzl-entry-teleport {
    width:min(300px, 82vw);
  }
  .dbzl-entry-video-vignette {
    box-shadow:inset 0 0 54px rgba(0,0,0,.36);
  }
}

@media (prefers-reduced-motion: reduce) {
  .dbzl-entry-ring,
  .dbzl-entry-flare,
  .dbzl-entry-spark,
  .dbzl-entry-start-button,
  body.dbzl-intro-revealing .dbzl-auth-shell {
    animation:none !important;
  }
}


/* v1.2.17 intro start text-only + skip */
.dbzl-entry-start-button {
  min-width:0;
  padding:10px 14px;
  border:0;
  border-radius:0;
  background:transparent;
  color:#ffd65a;
  box-shadow:none;
  text-shadow:
    0 0 10px rgba(255,196,58,.46),
    0 0 24px rgba(255,121,16,.22);
}

.dbzl-entry-start-button:hover {
  transform:scale(1.06);
  box-shadow:none;
  filter:brightness(1.12);
}

.dbzl-entry-start-button:active {
  transform:scale(.97);
}

.dbzl-entry-skip {
  position:absolute;
  top:max(18px, env(safe-area-inset-top));
  right:max(18px, env(safe-area-inset-right));
  z-index:5;
  padding:9px 12px;
  border:0;
  background:transparent;
  color:rgba(255,255,255,.84);
  font:800 12px/1 Arial, Helvetica, sans-serif;
  letter-spacing:.10em;
  text-transform:uppercase;
  text-shadow:0 1px 10px rgba(0,0,0,.8);
  cursor:pointer;
  transition:opacity .18s ease, transform .18s ease, color .18s ease;
}

.dbzl-entry-skip:hover {
  color:#fff;
  transform:scale(1.04);
}

.dbzl-entry-skip:active {
  transform:scale(.96);
}

@media (max-width: 720px) {
  .dbzl-entry-start-button {
    min-width:0;
    padding:9px 12px;
    font-size:16px;
  }

  .dbzl-entry-skip {
    top:max(14px, env(safe-area-inset-top));
    right:max(12px, env(safe-area-inset-right));
    padding:10px;
    font-size:11px;
  }
}


/* v1.2.18 Goku Kamehameha interactive entry */
.dbzl-kame-scene {
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  overflow:hidden;
  pointer-events:none;
}

.dbzl-kame-trigger {
  position:relative;
  z-index:3;
  width:min(330px, 78vw);
  aspect-ratio:1 / 1.12;
  padding:0;
  border:0;
  background:transparent;
  color:#fff;
  cursor:pointer;
  pointer-events:auto;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
  isolation:isolate;
  animation:dbzlKameGokuArrive .92s cubic-bezier(.16,.85,.18,1) both;
}

.dbzl-kame-trigger:focus-visible {
  outline:2px solid rgba(126,224,255,.9);
  outline-offset:8px;
  border-radius:50%;
}

.dbzl-kame-goku {
  position:absolute;
  z-index:4;
  left:50%;
  bottom:15%;
  width:min(250px, 76%);
  height:auto;
  transform:translateX(-50%) scale(1.02);
  filter:
    drop-shadow(0 18px 28px rgba(0,0,0,.55))
    drop-shadow(0 0 10px rgba(85,190,255,.08));
  user-select:none;
  -webkit-user-drag:none;
  transition:filter .24s ease;
}

.dbzl-kame-aura {
  position:absolute;
  left:50%;
  top:46%;
  border-radius:50%;
  transform:translate(-50%,-50%);
  pointer-events:none;
}

.dbzl-kame-aura-outer {
  z-index:1;
  width:92%;
  aspect-ratio:1;
  border:1px solid rgba(95,203,255,.15);
  background:
    radial-gradient(circle, transparent 44%, rgba(75,190,255,.08) 57%, transparent 71%);
  box-shadow:
    0 0 38px rgba(64,176,255,.10),
    inset 0 0 48px rgba(50,170,255,.06);
  animation:dbzlKameAuraPulse 2.2s ease-in-out infinite;
}

.dbzl-kame-aura-inner {
  z-index:2;
  width:66%;
  aspect-ratio:1;
  background:
    radial-gradient(circle, rgba(207,247,255,.08) 0 8%, rgba(61,187,255,.14) 24%, rgba(34,106,255,.05) 52%, transparent 72%);
  filter:blur(1px);
  animation:dbzlKameAuraSpin 4.8s linear infinite;
}

.dbzl-kame-lightning {
  position:absolute;
  z-index:6;
  left:50%;
  top:52%;
  width:3px;
  height:68px;
  border-radius:999px;
  background:linear-gradient(180deg, transparent, rgba(167,237,255,.95), transparent);
  box-shadow:0 0 9px rgba(89,205,255,.88);
  opacity:0;
  transform-origin:50% 100%;
  pointer-events:none;
}

.dbzl-kame-lightning-a { transform:translate(-72px,-68px) rotate(28deg); animation:dbzlKameLightning 1.55s .15s infinite; }
.dbzl-kame-lightning-b { transform:translate(58px,-56px) rotate(-31deg); animation:dbzlKameLightning 1.45s .58s infinite; }
.dbzl-kame-lightning-c { transform:translate(8px,-105px) rotate(7deg); animation:dbzlKameLightning 1.7s .92s infinite; }

.dbzl-kame-orb {
  position:absolute;
  z-index:8;
  left:50%;
  top:62%;
  width:62px;
  height:62px;
  margin:-31px 0 0 -31px;
  border-radius:50%;
  pointer-events:none;
  opacity:.82;
  transform:scale(.76);
  background:
    radial-gradient(circle at 42% 38%, #fff 0 8%, #dffaff 9% 18%, #74d8ff 31%, #278dff 52%, rgba(31,89,255,.25) 70%, transparent 74%);
  box-shadow:
    0 0 12px rgba(215,250,255,.95),
    0 0 30px rgba(56,183,255,.74),
    0 0 62px rgba(45,107,255,.36);
  animation:dbzlKameOrbIdle 1.25s ease-in-out infinite;
}

.dbzl-kame-orb-core {
  position:absolute;
  inset:34%;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 10px #fff, 0 0 24px #7fe7ff;
}

.dbzl-kame-orb-wave {
  position:absolute;
  inset:-13px;
  border:2px solid rgba(119,225,255,.48);
  border-radius:50%;
  animation:dbzlKameOrbWave 1.45s ease-out infinite;
}

.dbzl-kame-hint {
  position:absolute;
  z-index:10;
  left:50%;
  bottom:2%;
  transform:translateX(-50%);
  white-space:nowrap;
  color:rgba(226,247,255,.82);
  font:800 11px/1 Arial, Helvetica, sans-serif;
  letter-spacing:.19em;
  text-transform:uppercase;
  text-shadow:0 0 12px rgba(74,194,255,.62);
  opacity:.78;
  animation:dbzlKameHint 1.7s ease-in-out infinite;
}

.dbzl-kame-beam {
  position:absolute;
  z-index:7;
  left:50%;
  top:54.5%;
  width:78vw;
  max-width:1200px;
  height:94px;
  transform-origin:0 50%;
  transform:translate(0,-50%) scaleX(0) rotate(-2deg);
  opacity:0;
  border-radius:0 999px 999px 0;
  background:
    linear-gradient(90deg, rgba(255,255,255,.98), rgba(190,245,255,.98) 20%, rgba(65,191,255,.94) 54%, rgba(32,92,255,.34) 82%, transparent 100%);
  box-shadow:
    0 0 14px rgba(230,252,255,1),
    0 0 34px rgba(79,202,255,.92),
    0 0 76px rgba(42,102,255,.66),
    0 0 130px rgba(21,74,255,.35);
  pointer-events:none;
}

.dbzl-kame-beam::before,
.dbzl-kame-beam::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:50%;
  transform:translateY(-50%);
  border-radius:inherit;
}

.dbzl-kame-beam::before {
  height:46%;
  background:rgba(255,255,255,.94);
  filter:blur(1px);
}

.dbzl-kame-beam::after {
  height:160%;
  border:2px solid rgba(132,224,255,.24);
  filter:blur(5px);
}

.dbzl-kame-beam-core {
  position:absolute;
  inset:40% 0;
  border-radius:inherit;
  background:#fff;
  box-shadow:0 0 16px #fff;
}

.dbzl-kame-impact {
  position:absolute;
  z-index:9;
  right:-5vw;
  top:54%;
  width:190px;
  height:190px;
  border-radius:50%;
  transform:translateY(-50%) scale(.1);
  opacity:0;
  background:
    radial-gradient(circle, #fff 0 5%, #bff3ff 12%, rgba(73,190,255,.78) 25%, rgba(34,88,255,.18) 52%, transparent 70%);
  filter:blur(.3px);
  pointer-events:none;
}

.dbzl-entry-intro.is-kamehameha-charging .dbzl-kame-goku {
  animation:dbzlKameGokuCharge .55s ease-in-out both;
  filter:
    drop-shadow(0 18px 28px rgba(0,0,0,.55))
    drop-shadow(0 0 20px rgba(63,196,255,.55))
    brightness(1.08);
}

.dbzl-entry-intro.is-kamehameha-charging .dbzl-kame-orb {
  animation:dbzlKameCharge .62s cubic-bezier(.2,.75,.2,1) both;
}

.dbzl-entry-intro.is-kamehameha-charging .dbzl-kame-aura-outer {
  animation:dbzlKameAuraCharge .62s ease-out both;
}

.dbzl-entry-intro.is-kamehameha-charging .dbzl-kame-hint {
  opacity:0;
  transition:opacity .12s ease;
}

.dbzl-entry-intro.is-kamehameha-firing .dbzl-kame-scene {
  animation:dbzlKameScreenShake .46s linear both;
}

.dbzl-entry-intro.is-kamehameha-firing .dbzl-kame-orb {
  opacity:1;
  transform:scale(1.28);
  filter:brightness(1.45);
}

.dbzl-entry-intro.is-kamehameha-firing .dbzl-kame-beam {
  animation:dbzlKameBeamFire .68s cubic-bezier(.08,.78,.14,1) both;
}

.dbzl-entry-intro.is-kamehameha-firing .dbzl-kame-impact {
  animation:dbzlKameImpact .58s .18s ease-out both;
}

.dbzl-entry-intro.is-kamehameha-firing .dbzl-entry-transition-flash {
  animation:dbzlEntryFlash .72s .34s ease both;
}

@keyframes dbzlKameGokuArrive {
  0% { opacity:0; transform:translateY(34px) scale(.55); filter:blur(10px) brightness(1.8); }
  52% { opacity:1; transform:translateY(-4px) scale(1.05); filter:blur(1px) brightness(1.2); }
  100% { opacity:1; transform:translateY(0) scale(1); filter:none; }
}

@keyframes dbzlKameAuraPulse {
  0%,100% { opacity:.45; transform:translate(-50%,-50%) scale(.94); }
  50% { opacity:.92; transform:translate(-50%,-50%) scale(1.05); }
}

@keyframes dbzlKameAuraSpin {
  from { transform:translate(-50%,-50%) rotate(0deg) scale(.96); }
  to { transform:translate(-50%,-50%) rotate(360deg) scale(1.02); }
}

@keyframes dbzlKameLightning {
  0%,72%,100% { opacity:0; }
  78% { opacity:.82; }
  84% { opacity:.18; }
  91% { opacity:.95; }
}

@keyframes dbzlKameOrbIdle {
  0%,100% { transform:scale(.72); filter:brightness(.95); }
  50% { transform:scale(.88); filter:brightness(1.25); }
}

@keyframes dbzlKameOrbWave {
  0% { opacity:.68; transform:scale(.58); }
  100% { opacity:0; transform:scale(1.5); }
}

@keyframes dbzlKameHint {
  0%,100% { opacity:.48; transform:translateX(-50%) translateY(2px); }
  50% { opacity:.92; transform:translateX(-50%) translateY(-2px); }
}

@keyframes dbzlKameGokuCharge {
  0% { transform:translateX(-50%) scale(1.02); }
  42% { transform:translateX(-50%) scale(1.045) translateY(-3px); }
  100% { transform:translateX(-50%) scale(1.02) translateY(1px); }
}

@keyframes dbzlKameCharge {
  0% { opacity:.82; transform:scale(.76); }
  70% { opacity:1; transform:scale(1.18); filter:brightness(1.5); }
  100% { opacity:1; transform:scale(1.06); filter:brightness(1.32); }
}

@keyframes dbzlKameAuraCharge {
  0% { opacity:.45; transform:translate(-50%,-50%) scale(.95); filter:brightness(1); }
  100% { opacity:1; transform:translate(-50%,-50%) scale(1.12); filter:brightness(1.45); }
}

@keyframes dbzlKameBeamFire {
  0% { opacity:0; transform:translate(0,-50%) scaleX(.02) rotate(-2deg); filter:brightness(2); }
  12% { opacity:1; }
  58% { opacity:1; transform:translate(0,-50%) scaleX(1) rotate(-2deg); filter:brightness(1.4); }
  100% { opacity:.84; transform:translate(0,-50%) scaleX(1.12) rotate(-2deg); filter:brightness(1.12); }
}

@keyframes dbzlKameImpact {
  0% { opacity:0; transform:translateY(-50%) scale(.08); }
  35% { opacity:1; }
  100% { opacity:0; transform:translateY(-50%) scale(2.5); }
}

@keyframes dbzlKameScreenShake {
  0%,100% { transform:translate3d(0,0,0); }
  15% { transform:translate3d(-4px,2px,0); }
  30% { transform:translate3d(4px,-2px,0); }
  45% { transform:translate3d(-3px,-1px,0); }
  60% { transform:translate3d(3px,2px,0); }
  75% { transform:translate3d(-2px,1px,0); }
}

@media (max-width: 720px) {
  .dbzl-kame-trigger {
    width:min(310px, 82vw);
  }

  .dbzl-kame-goku {
    width:min(235px, 77%);
    bottom:17%;
  }

  .dbzl-kame-orb {
    top:61%;
    width:56px;
    height:56px;
    margin:-28px 0 0 -28px;
  }

  .dbzl-kame-beam {
    top:54%;
    width:94vw;
    height:74px;
  }

  .dbzl-kame-hint {
    bottom:3%;
    font-size:10px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .dbzl-kame-trigger,
  .dbzl-kame-aura,
  .dbzl-kame-lightning,
  .dbzl-kame-orb,
  .dbzl-kame-orb-wave,
  .dbzl-kame-hint,
  .dbzl-kame-scene,
  .dbzl-kame-beam,
  .dbzl-kame-impact {
    animation:none !important;
  }
}


/* v1.2.19 full Goku + lightning-only idle + forward Kamehameha */
.dbzl-entry-start-stage .dbzl-entry-teleport,
.dbzl-kame-scene-v1219 .dbzl-kame-aura,
.dbzl-kame-scene-v1219 .dbzl-kame-orb,
.dbzl-kame-scene-v1219 .dbzl-kame-beam,
.dbzl-kame-scene-v1219 .dbzl-kame-impact {
  display:none !important;
}

.dbzl-kame-scene-v1219 {
  perspective:900px;
  background:transparent;
}

.dbzl-kame-trigger-v1219 {
  width:min(390px, 84vw);
  aspect-ratio:2 / 3;
  overflow:visible;
}

.dbzl-kame-goku-full {
  left:50%;
  bottom:3%;
  width:auto;
  height:96%;
  max-width:96%;
  max-height:96%;
  object-fit:contain;
  transform:translateX(-50%);
  filter:drop-shadow(0 18px 28px rgba(0,0,0,.56));
}

.dbzl-kame-trigger-v1219 .dbzl-kame-lightning {
  display:block;
  z-index:8;
  width:4px;
  height:88px;
  opacity:0;
  background:linear-gradient(180deg, transparent, #eafcff 12%, #65d9ff 47%, #1587ff 75%, transparent);
  box-shadow:
    0 0 8px rgba(219,250,255,.95),
    0 0 18px rgba(62,190,255,.85);
  clip-path:polygon(44% 0,100% 0,60% 39%,93% 39%,13% 100%,43% 53%,9% 53%);
  animation:dbzlV1219Lightning 1.25s infinite;
}

.dbzl-kame-trigger-v1219 .dbzl-kame-lightning-a {
  left:20%;
  top:27%;
  transform:rotate(22deg);
  animation-delay:.08s;
}

.dbzl-kame-trigger-v1219 .dbzl-kame-lightning-b {
  left:78%;
  top:33%;
  transform:rotate(-25deg);
  animation-delay:.39s;
}

.dbzl-kame-trigger-v1219 .dbzl-kame-lightning-c {
  left:18%;
  top:66%;
  transform:rotate(-16deg);
  animation-delay:.73s;
}

.dbzl-kame-trigger-v1219 .dbzl-kame-lightning-d {
  left:79%;
  top:64%;
  transform:rotate(17deg);
  animation-delay:1.02s;
}

.dbzl-kame-trigger-v1219 .dbzl-kame-hint {
  bottom:-1%;
  color:rgba(215,244,255,.82);
  text-shadow:0 0 12px rgba(62,184,255,.74);
}

.dbzl-kame-forward-wave {
  position:absolute;
  z-index:15;
  left:50%;
  top:53%;
  width:86px;
  height:86px;
  margin:-43px 0 0 -43px;
  border-radius:50%;
  opacity:0;
  pointer-events:none;
  transform:translateZ(-420px) scale(.08);
  transform-origin:center;
  background:
    radial-gradient(circle,
      #ffffff 0 9%,
      #dffaff 10% 17%,
      #7edfff 26%,
      #228cff 44%,
      rgba(13,72,255,.78) 61%,
      rgba(4,26,168,.34) 73%,
      transparent 78%);
  box-shadow:
    0 0 18px rgba(255,255,255,.98),
    0 0 48px rgba(89,209,255,.92),
    0 0 110px rgba(35,116,255,.72);
}

.dbzl-kame-forward-wave::before,
.dbzl-kame-forward-wave::after {
  content:"";
  position:absolute;
  border-radius:50%;
  pointer-events:none;
}

.dbzl-kame-forward-wave::before {
  inset:-26%;
  border:5px solid rgba(139,227,255,.46);
  box-shadow:0 0 28px rgba(57,179,255,.55);
}

.dbzl-kame-forward-wave::after {
  inset:-78%;
  border:2px solid rgba(63,170,255,.23);
}

.dbzl-kame-forward-core {
  position:absolute;
  inset:32%;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 18px #fff, 0 0 38px #9eefff;
}

.dbzl-kame-forward-ring {
  position:absolute;
  left:50%;
  top:50%;
  width:130%;
  height:130%;
  border-radius:50%;
  border:3px solid rgba(168,236,255,.58);
  transform:translate(-50%,-50%) scale(.55);
  opacity:0;
}

.dbzl-kame-forward-ring-b {
  width:175%;
  height:175%;
  border-width:2px;
}

.dbzl-kame-blue-burn {
  position:fixed;
  inset:0;
  z-index:16;
  opacity:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% 50%,
      #ffffff 0 7%,
      #d4f8ff 12%,
      #76dcff 25%,
      #248eff 48%,
      #0b4ee8 70%,
      #061c8c 100%);
  transform:scale(.82);
  filter:saturate(1.25) brightness(1.05);
}

.dbzl-entry-intro.is-kamehameha-charging .dbzl-kame-trigger-v1219 .dbzl-kame-lightning {
  animation-duration:.34s;
  opacity:.9;
}

.dbzl-entry-intro.is-kamehameha-charging .dbzl-kame-goku-full {
  animation:dbzlV1219GokuBrace .34s ease-in-out both;
}

.dbzl-entry-intro.is-kamehameha-firing .dbzl-kame-forward-wave {
  animation:dbzlV1219ForwardBlast .86s cubic-bezier(.08,.78,.14,1) both;
}

.dbzl-entry-intro.is-kamehameha-firing .dbzl-kame-forward-ring-a {
  animation:dbzlV1219ForwardRing .58s .10s ease-out both;
}

.dbzl-entry-intro.is-kamehameha-firing .dbzl-kame-forward-ring-b {
  animation:dbzlV1219ForwardRing .68s .19s ease-out both;
}

.dbzl-entry-intro.is-kamehameha-firing .dbzl-kame-blue-burn {
  animation:dbzlV1219BlueBurn .92s .26s cubic-bezier(.16,.82,.2,1) both;
}

.dbzl-entry-intro.is-kamehameha-firing .dbzl-kame-scene-v1219 {
  animation:dbzlV1219CameraHit .46s .18s linear both;
}

.dbzl-entry-intro.is-kamehameha-firing .dbzl-entry-transition-flash {
  background:
    radial-gradient(circle, #fff 0 5%, rgba(168,239,255,.98) 14%, rgba(39,143,255,.68) 38%, transparent 68%);
  animation:dbzlEntryFlash .74s .52s ease both;
}

@keyframes dbzlV1219Lightning {
  0%,64%,100% { opacity:0; transform:translateY(5px) scaleY(.72); }
  70% { opacity:.9; }
  77% { opacity:.15; }
  84% { opacity:1; transform:translateY(-3px) scaleY(1.08); }
  91% { opacity:.28; }
}

@keyframes dbzlV1219GokuBrace {
  0% { transform:translateX(-50%) scale(1); filter:drop-shadow(0 18px 28px rgba(0,0,0,.56)); }
  55% { transform:translateX(-50%) scale(1.025) translateY(-3px); filter:drop-shadow(0 18px 28px rgba(0,0,0,.56)) brightness(1.07); }
  100% { transform:translateX(-50%) scale(1); filter:drop-shadow(0 18px 28px rgba(0,0,0,.56)) brightness(1.03); }
}

@keyframes dbzlV1219ForwardBlast {
  0% {
    opacity:0;
    transform:translateZ(-520px) scale(.04);
    filter:brightness(2.2);
  }
  12% { opacity:1; }
  42% {
    opacity:1;
    transform:translateZ(80px) scale(1.25);
    filter:brightness(1.8);
  }
  76% {
    opacity:1;
    transform:translateZ(620px) scale(12);
    filter:brightness(1.5);
  }
  100% {
    opacity:1;
    transform:translateZ(900px) scale(38);
    filter:brightness(1.25);
  }
}

@keyframes dbzlV1219ForwardRing {
  0% { opacity:.8; transform:translate(-50%,-50%) scale(.35); }
  100% { opacity:0; transform:translate(-50%,-50%) scale(3.8); }
}

@keyframes dbzlV1219BlueBurn {
  0% { opacity:0; transform:scale(.78); filter:saturate(1.4) brightness(1.6); }
  32% { opacity:.45; }
  72% { opacity:.94; transform:scale(1.05); filter:saturate(1.3) brightness(1.18); }
  100% { opacity:1; transform:scale(1.12); filter:saturate(1.18) brightness(1.08); }
}

@keyframes dbzlV1219CameraHit {
  0%,100% { transform:translate3d(0,0,0); }
  16% { transform:translate3d(-5px,3px,0); }
  31% { transform:translate3d(5px,-3px,0); }
  47% { transform:translate3d(-4px,-2px,0); }
  63% { transform:translate3d(4px,2px,0); }
  80% { transform:translate3d(-2px,1px,0); }
}

@media (max-width:720px) {
  .dbzl-kame-trigger-v1219 {
    width:min(360px, 86vw);
    height:min(570px, 66vh);
    aspect-ratio:auto;
  }

  .dbzl-kame-goku-full {
    height:94%;
    max-height:94%;
    bottom:4%;
  }

  .dbzl-kame-forward-wave {
    top:52%;
    width:76px;
    height:76px;
    margin:-38px 0 0 -38px;
  }
}

@media (prefers-reduced-motion:reduce) {
  .dbzl-entry-intro.is-kamehameha-firing .dbzl-kame-forward-wave {
    animation-duration:.35s !important;
  }
}

/* v1.3.54: public-launch legal links + explicit registration acknowledgements */
.dbzl-auth-legal-links {
  margin-top:14px;
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:7px;
  color:rgba(238,241,249,.58);
  font-size:12px;
  line-height:1.45;
}
.dbzl-auth-legal-links a,
.dbzl-legal-consents a {
  color:#f0c469;
  text-decoration:none;
}
.dbzl-auth-legal-links a:hover,
.dbzl-auth-legal-links a:focus-visible,
.dbzl-legal-consents a:hover,
.dbzl-legal-consents a:focus-visible {
  text-decoration:underline;
}
.dbzl-auth-legal-links strong { color:#f7f8fb; }
.dbzl-legal-consents {
  width:min(760px,100%);
  margin:14px auto 0;
  padding:13px 14px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:16px;
  background:rgba(5,8,18,.48);
}
.dbzl-legal-check {
  display:flex;
  align-items:flex-start;
  gap:10px;
  color:#e8eaf1;
  font-size:13px;
  line-height:1.45;
  cursor:pointer;
}
.dbzl-legal-check + .dbzl-legal-check { margin-top:9px; }
.dbzl-legal-check input {
  width:18px;
  height:18px;
  flex:0 0 18px;
  margin:1px 0 0;
  accent-color:#f0a72f;
}
.dbzl-legal-note {
  margin:9px 0 0 28px;
  color:rgba(232,234,241,.64);
  font-size:11px;
  line-height:1.45;
}
@media (max-width: 540px) {
  .dbzl-legal-consents { margin-top:10px; padding:10px 11px; }
  .dbzl-legal-check { font-size:12px; gap:8px; }
  .dbzl-legal-note { margin-left:26px; }
}
