/* ════════════ LOADING STATES ════════════ */
.spinner{
  display:flex;justify-content:center;align-items:center;
  padding:60px 0; gap:6px;
}
.spinner span{
  width:8px;height:8px;border-radius:50%;background:var(--border2);
  animation:bounce .8s infinite;
}
.spinner span:nth-child(2){animation-delay:.15s;}
.spinner span:nth-child(3){animation-delay:.3s;}
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}

/* ── DB 설정 안내 박스 ── */
.setup-box{
  max-width:640px;margin:40px auto;
  background:var(--surface);border:2px solid var(--ink);
  border-radius:16px;padding:32px;
}
.setup-box h2{font-family:'Gmarket Sans','Noto Sans KR',sans-serif;font-size:22px;font-weight:900;margin-bottom:8px;}
.setup-box p{font-size:14px;color:var(--ink2);line-height:1.7;margin-bottom:16px;}
.step{
  display:flex;gap:14px;align-items:flex-start;
  padding:14px;background:var(--surface2);border-radius:10px;margin-bottom:10px;
  border:1px solid var(--border);
}
.step-num{
  width:28px;height:28px;border-radius:50%;background:var(--ink);color:var(--bg);
  display:flex;align-items:center;justify-content:center;
  font-family:'DM Mono',monospace;font-size:13px;font-weight:700;flex-shrink:0;
}
.step-body{font-size:13px;line-height:1.6;color:var(--ink2);}
.step-body strong{color:var(--ink);}
.code{
  display:block;background:var(--surface2);border:1px solid var(--border);
  border-radius:6px;padding:8px 12px;font-family:'DM Mono',monospace;
  font-size:12px;margin-top:6px;word-break:break-all;color:var(--accent2);
}
.demo-btn{
  margin-top:8px;padding:11px 20px;background:var(--ink);color:var(--bg);
  border:none;border-radius:8px;font-size:14px;font-weight:700;
  cursor:pointer;font-family:'Noto Sans KR',sans-serif;
  transition:all .2s; width:100%;
}
.demo-btn:hover{background:#333;}

/* ════════════ TOAST ════════════ */
.toast{
  position:fixed;bottom:88px;left:50%;
  transform:translateX(-50%) translateY(12px);
  background:var(--ink);color:var(--bg);
  padding:10px 20px;border-radius:100px;
  font-size:13px;font-weight:500;opacity:0;z-index:300;
  transition:all .25s;white-space:nowrap;pointer-events:none;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.toast.err{background:var(--accent);}
.toast.ok{background:var(--accent3);}

/* ── USER CHIP ── */
.user-chip{
  display:flex;align-items:center;gap:8px;
  padding:4px 12px 4px 4px;
  border:1.5px solid var(--border2);border-radius:100px;cursor:pointer;
  transition:border-color .15s;
}
.user-chip:hover{border-color:var(--ink);}
.uc-avatar{
  width:26px;height:26px;border-radius:50%;
  background:var(--ink);color:var(--bg);
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:700;
}
.uc-name{font-size:13px;font-weight:600;}

@media(max-width:600px){
  .home-masthead{padding:32px 16px 24px;}
  .feed-wrap{padding:24px 16px 80px;}
  .modal{padding:24px 20px;}
  .auth-box{padding:28px 20px;}
}

