/* build: 20260111_01
 * Guest Lock Overlay for /resources pages
 * - Keep title + last-updated visible (overlay only inside .sw-card.sw-filters)
 * - Soft dim + blur
 * - Sparkle CTA button (무료회원가입)
 */

/* Ensure the filter card becomes the positioning context */
.sw-card.sw-filters{position:relative; overflow:hidden;}

/* Blur/disable underlying controls for guests (robust even if backdrop-filter unsupported) */
.sw-wrap.is-guest .sw-card.sw-filters > :not(.sw-guestlock){
  filter: blur(2px);
  opacity: .65;
  pointer-events: none;
  user-select: none;
}

/* Overlay layer */
.sw-wrap.is-guest .sw-guestlock{
  position:absolute;
  inset:0;
  z-index:50;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:14px;
  border-radius:16px;
  background:rgba(2,6,23,.03);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}

/* Dialog card */
.sw-guestlock-card{
  width:min(680px,100%);
  background:rgba(255,255,255,.94);
  border:1px solid rgba(0,0,0,.10);
  border-radius:20px;
  box-shadow:0 18px 54px rgba(0,0,0,.12);
  padding:16px;
}
.sw-guestlock-top{display:flex; gap:12px; align-items:flex-start;}
.sw-guestlock-ico{
  width:44px; height:44px; border-radius:14px;
  background:rgba(0,0,0,.05);
  color:rgba(17,24,39,.9);
  display:flex; align-items:center; justify-content:center;
  flex:0 0 auto;
}
.sw-guestlock-title{font-weight:900; font-size:17px; letter-spacing:-.2px; color:#111827; margin-top:2px;}
.sw-guestlock-body{margin-top:6px; font-size:13px; line-height:1.55; color:rgba(17,24,39,.72);}

/* Actions */
.sw-guestlock-actions{display:flex; gap:10px; justify-content:flex-end; flex-wrap:wrap; margin-top:14px;}
.sw-guestbtn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 14px; border-radius:14px;
  border:1px solid rgba(0,0,0,.12);
  text-decoration:none;
  font-weight:800; font-size:13px;
  color:#111827; background:#fff;
  cursor:pointer; user-select:none;
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease, background-color .15s ease;
}
.sw-guestbtn:hover{background:rgba(0,0,0,.03); transform:translateY(-1px);}
.sw-guestbtn-secondary{background:rgba(0,0,0,.02);}

/* Sparkle primary CTA */
.sw-guestbtn-primary{
  background:#00C17C;
  border-color:#00C17C;
  color:#fff;
  position:relative;
  overflow:hidden;
  transform:translateZ(0);
  box-shadow:0 12px 28px rgba(0,193,124,.28);
  animation: nbCtaPulse 2.2s ease-in-out infinite;
}
.sw-guestbtn-primary:hover{background:#00A86B; border-color:#00A86B; filter:saturate(1.06);}
.sw-guestbtn-primary span{position:relative; z-index:2;}

/* soft sparkles */
.sw-guestbtn-primary::before{
  content:'';
  position:absolute;
  inset:-24px;
  background:
    radial-gradient(circle at 18% 35%, rgba(255,255,255,.55), transparent 58%),
    radial-gradient(circle at 78% 70%, rgba(255,255,255,.40), transparent 62%),
    radial-gradient(circle at 46% 92%, rgba(255,255,255,.28), transparent 60%);
  opacity:.65;
  filter:blur(7px);
  animation: nbSparkles 1.8s ease-in-out infinite;
}

/* sheen sweep */
.sw-guestbtn-primary::after{
  content:'';
  position:absolute;
  top:-140%;
  left:-60%;
  width:70%;
  height:320%;
  transform:rotate(22deg);
  background:linear-gradient(90deg, transparent 0%, rgba(255,255,255,.75) 48%, transparent 100%);
  opacity:.55;
  animation: nbSheen 2.8s ease-in-out infinite;
}

@keyframes nbCtaPulse{
  0%,100%{transform:translateY(0) scale(1); box-shadow:0 12px 28px rgba(0,193,124,.28);}
  50%{transform:translateY(-1px) scale(1.04); box-shadow:0 18px 40px rgba(0,193,124,.42);}
}
@keyframes nbSparkles{
  0%,100%{opacity:.55; transform:scale(1);}
  50%{opacity:.85; transform:scale(1.03);}
}
@keyframes nbSheen{
  0%{left:-70%;}
  45%{left:110%;}
  100%{left:110%;}
}

@media (max-width: 720px){
  .sw-guestlock-card{padding:14px;}
  .sw-guestlock-actions{justify-content:stretch;}
  .sw-guestbtn{flex:1 1 auto;}
}
