:root {
  --accent: #00c853; /* 녹색(Anonymous 강조색) */
  --text: #eaeaea;
  --muted: #9aa0a6;
  --bg: #0f1115;
  --card: #151922;
  --border: #232a36;
}
* { box-sizing: border-box; }
html, body { margin:0; padding:0; background:var(--bg); color:var(--text); font-family: system-ui, -apple-system, Segoe UI, Roboto, Noto Sans, Apple SD Gothic Neo, Malgun Gothic, sans-serif; }
a { color:#55aaff; text-decoration:none; }
.container { width: min(1100px, 94%); margin: 32px auto; }

.header { text-align:center; margin-bottom: 24px; }
.site-title { font-size: 40px; font-weight: 800; letter-spacing: -0.5px; }
.subtitle { margin-top: 6px; font-size:14px; color:var(--muted); }
.ca { margin-top:8px; font-size: 13px; color:#ffd54f; word-break: break-all; }

.card { background: var(--card); border:1px solid var(--border); border-radius: 14px; padding: 16px; }
.upload-wrap { display:flex; flex-direction:column; gap:12px; margin: 20px 0 30px; }
.preview-box { display:grid; place-items:center; width:100%; aspect-ratio: 16/9; background:#0b0d12; border:1px dashed #2d3644; border-radius:12px; overflow:hidden; }
.preview-box img { max-width:100%; max-height:100%; object-fit:contain; }

.btn-row { display:flex; gap:10px; flex-wrap:wrap; }
.btn {
  padding: 12px 16px; border-radius: 10px; border:1px solid var(--border);
  background:#1c2331; color:#fff; font-weight: 700; cursor: pointer;
}
.btn.primary { background:#2b6ef5; }
.btn.success { background:#00a86b; }
.btn:disabled { opacity:0.5; cursor:not-allowed; }

.grid { display:grid; grid-template-columns: repeat(3, 1fr); gap:14px; }
@media (max-width: 980px) { .grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .grid { grid-template-columns: 1fr; } }

.meme-card { background: #111520; border:1px solid var(--border); border-radius:12px; overflow:hidden; display:flex; flex-direction:column; }
.meme-card .thumb { background:#0b0d12; display:grid; place-items:center; }
.meme-card .thumb img { width:100%; height:auto; display:block; }
.meme-card .meta { padding:12px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; border-top:1px solid var(--border); }
.badge { font-size:12px; color:var(--accent); font-weight:800; }
.dot { width:4px; height:4px; background:#485063; border-radius:50%; display:inline-block; }
.muted { color: var(--muted); font-size:12px; }
.right { margin-left:auto; display:flex; gap:10px; align-items:center; }
.icon-btn { padding:7px 10px; background:#1a2030; border:1px solid var(--border); border-radius:8px; cursor:pointer; color:#dfe4ea; font-size:12px; }

.footer { margin: 30px 0 60px; color: var(--muted); text-align:center; font-size:12px; }

/* 공유 모달 */
.modal-backdrop { position:fixed; inset:0; background:rgba(0,0,0,.65); display:none; align-items:center; justify-content:center; z-index: 1000; }
.modal { width:min(520px, 92%); background:#121826; border:1px solid var(--border); border-radius:12px; padding:18px; }
.modal h3 { margin:0 0 6px; font-size:20px; }
.modal p { margin: 6px 0 12px; color: var(--muted); }
.modal .row { display:flex; gap:10px; align-items:center; }
.modal .url-box { flex:1; padding:10px; background:#0b0f1a; border:1px solid var(--border); border-radius:8px; font-size:13px; color:#8ba1c2; word-break: break-all; }
.close-x { margin-left:auto; cursor:pointer; color:#9fb0c8; }
.dim-bg { filter: brightness(0.55); }
