/**
 * Learn More modal — leaderboards (brand blue + gold accents).
 */
.lb-lm-root{
  position:fixed;
  inset:0;
  z-index:10050;
  pointer-events:none;
}

.lb-lm-root.lb-lm-root--open{
  pointer-events:auto;
}

.lb-lm-overlay{
  position:absolute;
  inset:0;
  background:rgba(8,0,2,0.82);
  -webkit-backdrop-filter:blur(6px);
  backdrop-filter:blur(6px);
  opacity:0;
  visibility:hidden;
  transition:opacity 0.32s cubic-bezier(0.22,1,0.36,1), visibility 0.32s step-end;
}

.lb-lm-root.lb-lm-root--open .lb-lm-overlay{
  opacity:1;
  visibility:visible;
  transition:opacity 0.32s cubic-bezier(0.22,1,0.36,1), visibility 0s step-start;
}

.lb-lm-dialog{
  --lb-lm-badge-size:clamp(4.5rem,14vw,5.5rem);
  position:absolute;
  left:50%;
  top:50%;
  transform:translate3d(-50%,calc(-50% + 14px),0) scale(0.96);
  /* Wide sheet: most copy visible without inner scroll */
  width:min(calc(100vw - 1.25rem),52rem);
  max-height:min(calc(100dvh - 0.75rem),calc(100svh - 0.75rem));
  margin:0;
  padding:0;
  border:none;
  background:linear-gradient(168deg,rgba(4,15,65,0.97) 0%,rgba(7,30,109,0.96) 42%,rgba(5,21,84,0.98) 100%);
  border-radius:22px;
  border:2px solid rgba(21,94,239,0.85);
  box-shadow:
    0 0 0 1px rgba(0,0,0,0.5),
    0 24px 80px rgba(0,0,0,0.65),
    0 0 60px rgba(21,94,239,0.18);
  display:flex;
  flex-direction:column;
  align-items:stretch;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,199,32,0.35) rgba(0,0,0,0.2);
  opacity:0;
  transition:
    transform 0.36s cubic-bezier(0.22,1,0.36,1),
    opacity 0.32s ease;
}

.lb-lm-dialog::-webkit-scrollbar{
  width:8px;
}

.lb-lm-dialog::-webkit-scrollbar-thumb{
  background:rgba(255,199,32,0.35);
  border-radius:999px;
}

.lb-lm-root.lb-lm-root--open .lb-lm-dialog{
  transform:translate3d(-50%,-50%,0) scale(1);
  opacity:1;
}

@media (prefers-reduced-motion:reduce){
  .lb-lm-overlay,
  .lb-lm-dialog{
    transition:none;
  }
  .lb-lm-root.lb-lm-root--open .lb-lm-dialog{
    transform:translate3d(-50%,-50%,0) scale(1);
  }
}

.lb-lm-close{
  position:absolute;
  top:clamp(0.65rem,2vw,0.85rem);
  right:clamp(0.65rem,2vw,0.85rem);
  z-index:3;
  width:2.5rem;
  height:2.5rem;
  border-radius:999px;
  border:2px solid rgba(255,199,32,0.45);
  background:rgba(0,0,0,0.45);
  color:#ffc720;
  font-size:1.35rem;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:0 4px 18px rgba(0,0,0,0.45),0 0 20px rgba(255,199,32,0.12);
  transition:transform 0.2s ease,background 0.2s ease,border-color 0.2s ease;
}

.lb-lm-close:hover{
  transform:scale(1.06);
  background:rgba(21,94,239,0.35);
  border-color:rgba(255,215,120,0.65);
}

.lb-lm-close:focus-visible{
  outline:2px solid rgba(255,199,32,0.8);
  outline-offset:2px;
}

.lb-lm-badge{
  position:absolute;
  left:50%;
  /* Keep full ring inside dialog (overflow scroll was clipping top half) */
  top:calc(var(--lb-lm-badge-size) / 2);
  transform:translate(-50%,-50%);
  z-index:4;
  pointer-events:none;
}

.lb-lm-badge__ring{
  width:var(--lb-lm-badge-size);
  height:var(--lb-lm-badge-size);
  border-radius:50%;
  background:linear-gradient(165deg,#0e328e 0%,#071E6D 45%,#051654 100%);
  border:3px solid rgba(255,199,32,0.55);
  box-shadow:
    0 0 0 2px rgba(0,0,0,0.45),
    0 10px 32px rgba(0,0,0,0.55),
    0 0 36px rgba(255,199,32,0.22);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0.35rem;
  box-sizing:border-box;
}

.lb-lm-badge__img{
  width:72%;
  height:72%;
  object-fit:contain;
  display:block;
}

.lb-lm-body{
  padding:clamp(2.75rem,5vw,3.25rem) clamp(1.35rem,4vw,2.25rem) clamp(1.25rem,3.5vw,1.75rem);
  /* Clear badge (center sits at half size from dialog top; need full diameter + gap) */
  padding-top:calc(var(--lb-lm-badge-size) + clamp(0.55rem,2vw,0.85rem));
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:clamp(0.65rem,1.8vw,0.95rem);
  flex:0 1 auto;
  min-height:0;
  overflow:visible;
}

.lb-lm-title{
  margin:0;
  font-family:"Gabarito","Space Grotesk",ui-sans-serif,system-ui,sans-serif;
  font-weight:900;
  font-size:clamp(1.55rem,3.8vw,2.15rem);
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:#fff;
  text-shadow:0 2px 24px rgba(21,94,239,0.45);
  line-height:1.1;
}

.lb-lm-title-line{
  width:min(11rem,55%);
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,transparent,rgba(255,199,32,0.35) 20%,rgba(255,199,32,0.85) 50%,rgba(255,199,32,0.35) 80%,transparent);
  margin:0.15rem 0 0.35rem;
}

.lb-lm-content{
  width:100%;
  max-height:none;
  overflow:visible;
  text-align:left;
  padding-right:0;
}

.lb-lm-block{
  background:rgba(0,0,0,0.28);
  border:1px solid rgba(21,94,239,0.45);
  border-radius:14px;
  padding:clamp(0.7rem,1.8vw,0.95rem) clamp(1rem,2.5vw,1.35rem);
  margin-bottom:clamp(0.5rem,1.5vw,0.7rem);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.06);
}

.lb-lm-block:last-of-type{
  margin-bottom:0.35rem;
}

.lb-lm-block__text{
  margin:0;
  font-family:"Inter",system-ui,sans-serif;
  font-size:clamp(0.8125rem,1.35vw + 0.65rem,0.98rem);
  line-height:1.5;
  color:rgba(255,255,255,0.92);
}

.lb-lm-block__lead{
  font-weight:800;
  color:#ffc720;
  margin-right:0.2em;
}

.lb-lm-brand{
  font-weight:800;
  color:#fff;
  text-decoration:underline;
  text-decoration-color:rgba(255,199,32,0.45);
  text-underline-offset:0.12em;
}

.lb-lm-cta{
  width:100%;
  margin-top:0.35rem;
  padding:clamp(0.95rem,3vw,1.15rem) 1.5rem;
  border-radius:999px;
  border:2px solid rgba(0,0,0,0.35);
  background:linear-gradient(135deg,#00CFFF 0%,#155EEF 55%,#071E6D 100%);
  color:#fff !important;
  font-family:"Gabarito","Space Grotesk",ui-sans-serif,system-ui,sans-serif;
  font-weight:900;
  font-size:clamp(0.95rem,2.8vw,1.05rem);
  letter-spacing:0.14em;
  text-transform:uppercase;
  cursor:pointer;
  box-shadow:0 10px 36px rgba(21,94,239,0.45),0 0 0 1px rgba(255,255,255,0.08) inset;
  transition:transform 0.2s ease,filter 0.2s ease,box-shadow 0.2s ease;
}

.lb-lm-cta:hover{
  transform:translateY(-2px);
  filter:brightness(1.06);
  box-shadow:0 14px 44px rgba(0,207,255,0.35),0 0 0 1px rgba(255,255,255,0.12) inset;
}

.lb-lm-cta:focus-visible{
  outline:2px solid rgba(255,199,32,0.85);
  outline-offset:3px;
}

/* LEARN MORE + CODE: identical box (Tailwind Forms tweaks <button> padding vs <a>) */
.modelButtons .lb-learn-more-trigger,
.modelButtons a.lb-code-btn{
  box-sizing:border-box;
  margin:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 1.35rem;
  min-height:2.75rem;
  height:2.75rem;
  border-radius:999px;
  font-family:"Gabarito","Space Grotesk",ui-sans-serif,system-ui,sans-serif;
  font-weight:800;
  font-size:0.8125rem;
  line-height:1.2;
  letter-spacing:0.12em;
  text-transform:uppercase;
  white-space:nowrap;
  cursor:pointer;
  user-select:none;
  -webkit-tap-highlight-color:transparent;
  vertical-align:middle;
}

.modelButtons button.lb-learn-more-trigger{
  appearance:none;
  -webkit-appearance:none;
}

.modelButtons .lb-learn-more-trigger{
  border:2px solid rgba(255,199,32,0.5);
  background:rgba(0,0,0,0.35);
  color:#ffc720 !important;
  box-shadow:0 4px 20px rgba(0,0,0,0.35),0 0 24px rgba(255,199,32,0.08);
  transition:transform 0.2s ease,background 0.2s ease,border-color 0.2s ease,color 0.2s ease;
}

.modelButtons .lb-learn-more-trigger:hover{
  transform:translateY(-1px);
  background:rgba(21,94,239,0.25);
  border-color:rgba(255,215,120,0.65);
  color:#ffe566 !important;
}

.modelButtons .lb-learn-more-trigger:focus-visible{
  outline:2px solid rgba(255,199,32,0.75);
  outline-offset:2px;
}

/* CODE — width synced to LEARN MORE via leaderboards-learn-more.js (inline width) */
.modelButtons a.lb-code-btn{
  flex-shrink:0;
  max-width:100%;
  gap:0.35em;
  text-decoration:none;
  overflow:hidden;
  text-overflow:ellipsis;
  border:2px solid rgba(21,94,239,0.55);
  background:rgba(0,0,0,0.35);
  color:#fff !important;
  box-shadow:0 4px 20px rgba(0,0,0,0.35),0 0 24px rgba(21,94,239,0.12);
  transition:transform 0.2s ease,background 0.2s ease,border-color 0.2s ease,color 0.2s ease,box-shadow 0.2s ease;
}

.modelButtons a.lb-code-btn:hover{
  transform:translateY(-1px);
  background:rgba(21,94,239,0.32);
  border-color:rgba(0,207,255,0.9);
  color:#fff !important;
  box-shadow:0 6px 24px rgba(0,0,0,0.38),0 0 28px rgba(0,207,255,0.2);
}

.modelButtons a.lb-code-btn:active{
  transform:translateY(0) scale(0.98);
}

.modelButtons a.lb-code-btn:focus{
  outline:none;
}

.modelButtons a.lb-code-btn:focus-visible{
  outline:2px solid rgba(0,207,255,0.85);
  outline-offset:2px;
}

.modelButtons a.lb-code-btn span{
  font-weight:800;
  letter-spacing:0.08em;
  color:inherit;
}

body.lb-lm-scroll-lock{
  overflow:hidden !important;
  touch-action:none;
}

@media (max-width:480px){
  .lb-lm-dialog{
    width:calc(100vw - 1rem);
    max-height:min(calc(100dvh - 0.5rem),calc(100svh - 0.5rem));
    border-radius:18px;
  }

  .lb-lm-block__text{
    font-size:clamp(0.78rem,2.9vw,0.9rem);
    line-height:1.48;
  }
}

/* Short viewports: tighter vertical rhythm so more fits without scrolling */
@media (max-height:720px){
  .lb-lm-dialog{
    width:min(calc(100vw - 1rem),48rem);
    max-height:min(calc(100dvh - 0.5rem),calc(100svh - 0.5rem));
  }

  .lb-lm-body{
    padding-top:clamp(2.65rem,5vw,3rem);
    gap:0.5rem;
  }

  .lb-lm-block{
    padding:0.6rem 0.85rem;
    margin-bottom:0.45rem;
  }

  .lb-lm-block__text{
    font-size:clamp(0.75rem,1.2vw + 0.62rem,0.88rem);
    line-height:1.45;
  }

  .lb-lm-cta{
    padding:0.8rem 1.25rem;
    margin-top:0.25rem;
  }
}

/* Rainbet — PSYQR sign-up notice (reuses lb-lm-root overlay/dialog) */
.lb-rb-code-root .lb-rb-code-dialog{
  width:min(calc(100vw - 1.25rem),24rem);
  max-height:min(calc(100dvh - 1rem),calc(100svh - 1rem));
  border-color:rgba(255,255,255,0.14);
  background:
    radial-gradient(circle at 50% 0%,rgba(255,199,32,0.13),transparent 34%),
    linear-gradient(165deg,rgba(20,5,7,0.98) 0%,rgba(72,3,8,0.98) 100%);
}

.lb-rb-code-logo-wrap{
  display:flex;
  justify-content:center;
  padding:1.2rem 1.25rem 0;
}

.lb-rb-code-logo{
  max-width:min(10.5rem,64vw);
  height:auto;
  object-fit:contain;
}

.lb-rb-code-body{
  padding:0.75rem 1.25rem 1.2rem;
  text-align:center;
}

.lb-rb-code-eyebrow{
  margin:0 0 0.35rem;
  font-size:0.72rem;
  font-weight:800;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:rgba(255,199,32,0.88);
}

.lb-rb-code-title{
  font-size:clamp(1.2rem,3vw + 0.72rem,1.65rem);
  line-height:1.2;
  margin-bottom:0.55rem;
}

.lb-rb-code-highlight{
  color:#ffc720;
  font-weight:900;
  letter-spacing:0.06em;
  text-shadow:0 0 18px rgba(255,199,32,0.35);
}

.lb-rb-code-content{
  text-align:center;
}

.lb-rb-code-lead,
.lb-rb-code-note,
.lb-rb-code-steps{
  margin:0 auto 0.7rem;
  max-width:19rem;
  font-size:clamp(0.84rem,1vw + 0.68rem,0.93rem);
  line-height:1.5;
  color:rgba(255,255,255,0.86);
}

.lb-rb-code-note{
  padding:0.75rem 0.9rem;
  border-radius:12px;
  border:1px solid rgba(255,199,32,0.35);
  background:rgba(255,199,32,0.08);
}

.lb-rb-code-actions{
  display:flex;
  flex-direction:column;
  gap:0.55rem;
  margin-top:0.25rem;
}

.lb-rb-code-copy,
.lb-rb-code-visit{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:2.55rem;
  padding:0.58rem 1rem;
  border-radius:999px;
  font-size:0.78rem;
  font-weight:800;
  letter-spacing:0.08em;
  text-transform:uppercase;
  text-decoration:none;
  transition:transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.lb-rb-code-copy{
  border:2px solid rgba(255,199,32,0.55);
  background:rgba(0,0,0,0.25);
  color:#fff;
  cursor:pointer;
}

.lb-rb-code-copy:hover,
.lb-rb-code-copy:focus-visible{
  transform:translateY(-1px);
  box-shadow:0 8px 24px rgba(255,199,32,0.18);
}

.lb-rb-code-visit{
  border:2px solid rgba(21,94,239,0.85);
  background:linear-gradient(135deg,rgba(0,207,255,0.95) 0%,rgba(21,94,239,0.98) 100%);
  color:#fff;
}

.lb-rb-code-visit:hover,
.lb-rb-code-visit:focus-visible{
  transform:translateY(-1px);
  box-shadow:0 10px 28px rgba(21,94,239,0.28);
}

.lb-rb-code-ok{
  margin-top:0.05rem;
  min-height:2.45rem;
}
