/* Project Encore — front-end styles. Inherits the theme's fonts; colours are overridable via the custom properties below. */
:root {
  --encore-accent: #e4572e;
  --encore-accent-ink: #fff;
  --encore-ink: currentColor;
  --encore-muted: #8a939c;
  --encore-surface: rgba(127, 127, 127, .08);
  --encore-border: rgba(127, 127, 127, .25);
  --encore-stage: #0d0f12;
  --encore-radius: 10px;
  --encore-danger: #c62828;
}

/* ---------- player ---------- */
.encore-player { position: relative; margin: 0 0 1rem; border-radius: var(--encore-radius); overflow: hidden; }
.encore-player.encore-type-video, .encore-player.encore-type-image { background: var(--encore-stage); color: #f2f2f2; }
.encore-player__stage { position: relative; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; min-height: 64px; }
.encore-player.encore-type-video .encore-player__stage { aspect-ratio: 16 / 9; }
.encore-player video.encore-native { width: 100%; height: 100%; display: block; background: #000; }
.encore-player.encore-type-image .encore-player__stage { min-height: 200px; }
.encore-player iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; border: 0; display: block; }
.encore-ctx-activity { max-width: 640px; }

.encore-spinner { width: 34px; height: 34px; border-radius: 50%; border: 3px solid rgba(255, 255, 255, .25); border-top-color: var(--encore-accent); animation: encore-spin .9s linear infinite; }
.encore-type-audio .encore-spinner { border-color: var(--encore-border); border-top-color: var(--encore-accent); }
@keyframes encore-spin { to { transform: rotate(360deg); } }

.encore-audio { display: flex; flex-direction: column; gap: .5rem; width: 100%; padding: .75rem; background: var(--encore-surface); border: 1px solid var(--encore-border); border-radius: var(--encore-radius); }
.encore-audio__cover { width: 96px; height: 96px; object-fit: cover; border-radius: 6px; }
.encore-audio audio { width: 100%; }
.encore-wave { width: 100%; height: 64px; cursor: pointer; display: block; }

.encore-image-wrap { position: relative; max-width: 100%; }
.encore-image { display: block; max-width: 100%; max-height: 80vh; margin: 0 auto; user-select: none; -webkit-user-drag: none; }
.encore-shield { position: absolute; inset: 0; background: transparent; }
.encore-protected img, .encore-protected video { -webkit-touch-callout: none; user-select: none; }

/* ---------- gates ---------- */
.encore-gate { position: relative; width: 100%; min-height: 220px; display: flex; align-items: center; justify-content: center; text-align: center; padding: 1.5rem; }
.encore-type-audio .encore-gate { min-height: 120px; background: var(--encore-surface); border: 1px solid var(--encore-border); border-radius: var(--encore-radius); }
.encore-gate__teaser { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .35; filter: blur(2px); }
.encore-gate__box { position: relative; max-width: 30rem; }
.encore-gate__msg { margin: 0 0 1rem; font-size: 1.05em; }
.encore-gate__actions { display: flex; gap: .5rem; flex-wrap: wrap; justify-content: center; align-items: center; }
.encore-gate--adult { background: repeating-linear-gradient(45deg, rgba(255, 255, 255, .03) 0 12px, transparent 12px 24px); }
.encore-dob-inline { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; justify-content: center; }
.encore-restricted-badge { width: 96px; height: 96px; color: #f2f2f2; opacity: .9; }
.encore-type-audio .encore-restricted-badge { color: var(--encore-muted); }
.encore-is-restricted .encore-player__stage { min-height: 180px; }

/* ---------- buttons, chips ---------- */
.encore-btn { display: inline-flex; align-items: center; gap: .35em; padding: .5em 1em; border-radius: 999px; border: 1px solid var(--encore-border); background: transparent; color: inherit; font: inherit; font-size: .95em; line-height: 1.2; cursor: pointer; text-decoration: none; }
.encore-btn:hover { border-color: var(--encore-accent); }
.encore-btn:disabled { opacity: .55; cursor: progress; }
.encore-btn--primary { background: var(--encore-accent); border-color: var(--encore-accent); color: var(--encore-accent-ink); }
.encore-btn--primary:hover { filter: brightness(1.08); color: var(--encore-accent-ink); }
.encore-btn--ghost { background: transparent; }
.encore-btn--danger { color: var(--encore-danger); border-color: currentColor; }
.encore-link { background: none; border: 0; padding: 0; color: var(--encore-accent); text-decoration: underline; cursor: pointer; font: inherit; }

.encore-details { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin: .5rem 0 1.25rem; }
.encore-details__meta, .encore-details__actions { display: flex; gap: .4rem; flex-wrap: wrap; align-items: center; }
.encore-chip { display: inline-block; padding: .15em .6em; border-radius: 4px; background: var(--encore-surface); border: 1px solid var(--encore-border); font-size: .8em; font-weight: 600; letter-spacing: .02em; }
.encore-chip--price { background: var(--encore-accent); border-color: var(--encore-accent); color: var(--encore-accent-ink); }
.encore-tag { font-size: .85em; color: var(--encore-muted); text-decoration: none; }

/* ---------- gallery ---------- */
.encore-filter { display: flex; gap: .25rem; flex-wrap: wrap; margin: 0 0 1rem; }
.encore-filter__item { padding: .35em .9em; border-radius: 999px; text-decoration: none; color: inherit; border: 1px solid transparent; }
.encore-filter__item.is-active { border-color: var(--encore-border); background: var(--encore-surface); font-weight: 600; }
.encore-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem; }
.encore-card { margin: 0; }
.encore-card__link { color: inherit; text-decoration: none; display: block; }
.encore-card__media { position: relative; aspect-ratio: 16 / 10; border-radius: var(--encore-radius); overflow: hidden; background: var(--encore-stage); display: flex; align-items: center; justify-content: center; }
.encore-card__img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.encore-card__link:hover .encore-card__img { transform: scale(1.03); }
.encore-card__img--blur { filter: blur(14px) saturate(.8); transform: scale(1.1); }
.encore-card__restricted { color: #f2f2f2; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.encore-card__restricted .encore-restricted-badge { width: 64px; height: 64px; }
.encore-card__icon { width: 44px; height: 44px; opacity: .55; background: #f2f2f2; -webkit-mask: var(--encore-icon) center / contain no-repeat; mask: var(--encore-icon) center / contain no-repeat; }
.encore-card__icon--video { --encore-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E"); }
.encore-card__icon--audio { --encore-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3v10.55A4 4 0 1 0 14 17V7h4V3z'/%3E%3C/svg%3E"); }
.encore-card__icon--image { --encore-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21 19V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2zM8.5 13.5l2.5 3 3.5-4.5 4.5 6H5z'/%3E%3C/svg%3E"); }
.encore-card__badges { position: absolute; left: .5rem; top: .5rem; right: .5rem; display: flex; gap: .3rem; flex-wrap: wrap; }
.encore-card__badges span { font-size: .7em; font-weight: 700; padding: .15em .5em; border-radius: 4px; background: rgba(0, 0, 0, .65); color: #fff; }
.encore-card__badges .encore-card__price { background: var(--encore-accent); margin-left: auto; }
.encore-card__title { font-size: 1em; margin: .5rem 0 .1rem; line-height: 1.3; }
.encore-card__by { font-size: .82em; color: var(--encore-muted); }
.encore-empty { color: var(--encore-muted); }
.encore-pagination { margin-top: 1rem; }

/* ---------- uploader ---------- */
.encore-uploader { display: grid; gap: 1rem; margin-bottom: 2rem; }
.encore-drop { border: 2px dashed var(--encore-border); border-radius: var(--encore-radius); padding: 2rem 1rem; text-align: center; background: var(--encore-surface); transition: border-color .15s, background .15s; }
.encore-drop.is-over, .encore-drop:focus { border-color: var(--encore-accent); outline: none; }
.encore-drop__lead { font-size: 1.1em; margin: 0 0 .4rem; }
.encore-drop__limits { font-size: .85em; color: var(--encore-muted); margin: 0; }
.encore-batch { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; padding: .75rem; border: 1px solid var(--encore-border); border-radius: var(--encore-radius); }
.encore-batch label { display: inline-flex; gap: .3rem; align-items: center; font-size: .9em; }
.encore-queue { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.encore-q { display: grid; grid-template-columns: 88px 1fr 160px; gap: .75rem; align-items: start; padding: .75rem; border: 1px solid var(--encore-border); border-radius: var(--encore-radius); }
.encore-q.is-done { border-color: #2e7d32; }
.encore-q.is-error { border-color: var(--encore-danger); }
.encore-q__thumb { width: 88px; height: 66px; border-radius: 6px; background: var(--encore-stage); overflow: hidden; }
.encore-q__thumb img { width: 100%; height: 100%; object-fit: cover; }
.encore-q__thumb--video::after, .encore-q__thumb--audio::after { content: ""; display: block; width: 100%; height: 100%; background: #f2f2f2; opacity: .5; -webkit-mask: var(--encore-icon) center / 28px no-repeat; mask: var(--encore-icon) center / 28px no-repeat; }
.encore-q__thumb--video { --encore-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E"); }
.encore-q__thumb--audio { --encore-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3v10.55A4 4 0 1 0 14 17V7h4V3z'/%3E%3C/svg%3E"); }
.encore-q__fields { display: grid; gap: .4rem; min-width: 0; }
.encore-q__fields input[type=text], .encore-q__fields textarea { width: 100%; box-sizing: border-box; }
.encore-q__row { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.encore-q__row input[type=number] { width: 7em; }
.encore-q__row input[type=text] { flex: 1 1 10em; width: auto; }
.encore-q__progress { display: grid; gap: .3rem; font-size: .85em; }
.encore-q__progress progress { width: 100%; accent-color: var(--encore-accent); }
.encore-check { display: inline-flex; gap: .3rem; align-items: center; font-size: .9em; white-space: nowrap; }
.encore-uploader__footer { display: flex; justify-content: flex-end; }
.encore-url-ingest summary { cursor: pointer; color: var(--encore-accent); }
.encore-url-ingest form { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .5rem; align-items: center; }
.encore-url-ingest input[type=url] { flex: 1 1 18rem; }
@media (max-width: 640px) {
  .encore-q { grid-template-columns: 64px 1fr; }
  .encore-q__thumb { width: 64px; height: 48px; }
  .encore-q__progress { grid-column: 1 / -1; }
}

/* ---------- creator table ---------- */
.encore-table { width: 100%; border-collapse: collapse; font-size: .92em; }
.encore-table th, .encore-table td { padding: .5rem; border-bottom: 1px solid var(--encore-border); text-align: left; vertical-align: middle; }
.encore-table input[type=text] { width: 100%; min-width: 8em; }
.encore-table input[type=number] { width: 6em; }
.encore-mine__actions { white-space: nowrap; }
@media (max-width: 720px) {
  .encore-table thead { display: none; }
  .encore-table tr { display: grid; grid-template-columns: 1fr 1fr; gap: .25rem; padding: .5rem 0; border-bottom: 1px solid var(--encore-border); }
  .encore-table td { border: 0; padding: .2rem; }
  .encore-table td:first-child, .encore-mine__actions { grid-column: 1 / -1; }
}
.encore-rewards { margin-top: 1.5rem; }
.encore-rewards fieldset { border: 1px solid var(--encore-border); border-radius: 6px; margin: .5rem 0; padding: .5rem .75rem; display: grid; gap: .4rem; }
.encore-rewards label { display: grid; gap: .2rem; font-size: .9em; }

/* ---------- dialogs & toasts ---------- */
.encore-dialog { border: 1px solid var(--encore-border); border-radius: 14px; padding: 1.25rem; max-width: min(26rem, calc(100vw - 2rem)); width: 100%; background: #fff; color: #1c1f23; }
.encore-dialog::backdrop { background: rgba(0, 0, 0, .55); }
.encore-dialog form { display: grid; gap: .75rem; }
.encore-dialog h3 { margin: 0; }
.encore-dialog label { display: grid; gap: .3rem; }
.encore-dialog label.encore-check { display: inline-flex; }
.encore-dialog input, .encore-dialog select, .encore-dialog textarea { width: 100%; box-sizing: border-box; }
.encore-dialog__actions { display: flex; justify-content: space-between; }
.encore-dialog__msg { color: var(--encore-danger); margin: 0; min-height: 1em; }
.encore-dialog__balance { margin: 0; color: #59626b; font-size: .9em; }
@media (prefers-color-scheme: dark) { .encore-dialog { background: #1c1f23; color: #eef0f2; } .encore-dialog__balance { color: #a7b0b8; } }
.encore-toast { position: fixed; left: 50%; bottom: 1.5rem; transform: translateX(-50%); background: #1c1f23; color: #fff; padding: .7rem 1.1rem; border-radius: 8px; z-index: 100000; box-shadow: 0 6px 24px rgba(0, 0, 0, .25); transition: opacity .4s, transform .4s; max-width: calc(100vw - 2rem); }
.encore-toast.is-error { background: var(--encore-danger); }
.encore-toast.is-out { opacity: 0; transform: translate(-50%, 10px); }

/* ---------- flame badge (supporter streaks) ---------- */
.encore-avatar-wrap { position: relative; display: inline-block; line-height: 0; }
.encore-flame { position: absolute; left: -2px; bottom: -2px; width: 34%; min-width: 16px; max-width: 26px; aspect-ratio: 1; border-radius: 50%; background: linear-gradient(160deg, #ffb703, #fb5607); border: 2px solid #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 1px 3px rgba(0, 0, 0, .3); }
.encore-flame svg { width: 62%; height: 62%; fill: #fff; animation: encore-flicker 2.4s ease-in-out infinite; transform-origin: 50% 90%; }
@keyframes encore-flicker { 0%, 100% { transform: scale(1) rotate(0); } 50% { transform: scale(1.08, .95) rotate(-3deg); } }
@media (prefers-reduced-motion: reduce) { .encore-flame svg, .encore-spinner { animation: none; } }

/* ---------- misc ---------- */
.encore-notice { padding: .75rem 1rem; border-left: 3px solid var(--encore-accent); background: var(--encore-surface); }
.encore-transparency { width: 100%; border-collapse: collapse; }
.encore-transparency th, .encore-transparency td { padding: .4rem; border-bottom: 1px solid var(--encore-border); text-align: left; }
.encore-age-form { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.encore-tip-button { display: inline-block; }

/* ======================= Phase 2: support, tiers, deals ======================= */
.encore-section { margin: 0 0 1.75rem; }
.encore-section > h3, .encore-section > h4 { margin: 0 0 .75rem; }
.encore-actions { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; }
.encore-fineprint { font-size: .85em; color: var(--encore-muted); }
.encore-grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: .6rem; }

.encore-tiers { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 1rem; margin-bottom: .5rem; }
.encore-tier { display: flex; flex-direction: column; gap: .6rem; padding: 1rem; border: 1px solid var(--encore-border); border-radius: var(--encore-radius); background: var(--encore-surface); }
.encore-tier.is-current { border-color: var(--encore-accent); box-shadow: 0 0 0 2px color-mix(in srgb, var(--encore-accent) 30%, transparent); }
.encore-tier h4 { margin: 0; font-size: 1.1em; }
.encore-tier__price { margin: .2rem 0 0; }
.encore-tier__price strong { font-size: 1.5em; }
.encore-tier__perks { margin: 0; padding-left: 1.1em; font-size: .92em; }
.encore-tier__perks li { margin: .15rem 0; }
.encore-tier__desc { font-size: .9em; color: var(--encore-muted); }
.encore-tier__desc p { margin: 0 0 .4rem; }
.encore-tier footer { margin-top: auto; }
.encore-tier footer .encore-btn { width: 100%; justify-content: center; }

.encore-support-links ul { list-style: none; margin: .5rem 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.encore-support-links h4 { margin: 0; }

.encore-form { display: grid; gap: .6rem; }
.encore-form label { display: grid; gap: .25rem; font-size: .92em; }
.encore-form label.encore-check { display: inline-flex; }
.encore-form input[type=text], .encore-form input[type=url], .encore-form input[type=number], .encore-form input[type=date], .encore-form textarea, .encore-form select { width: 100%; box-sizing: border-box; }
.encore-form__msg { margin: 0; min-height: 1em; font-size: .9em; }
.encore-tier-editor fieldset { border: 1px solid var(--encore-border); border-radius: 8px; padding: .6rem .8rem; display: grid; gap: .5rem; }
.encore-inline-form { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.encore-inline-form input[type=number] { width: 8em; }
.encore-inline-form input[type=text] { flex: 1 1 12em; }
.encore-new-opp summary { list-style: none; cursor: pointer; display: inline-flex; margin-bottom: .75rem; }
.encore-new-opp summary::-webkit-details-marker { display: none; }

.encore-status { display: inline-block; padding: .15em .6em; border-radius: 999px; font-size: .78em; font-weight: 600; background: var(--encore-surface); border: 1px solid var(--encore-border); white-space: nowrap; }
.encore-status--in_progress, .encore-status--accepted, .encore-status--open { border-color: #1e88e5; color: #1e88e5; }
.encore-status--delivered, .encore-status--proposed { border-color: #f59e0b; color: #b45309; }
.encore-status--completed { border-color: #2e7d32; color: #2e7d32; }
.encore-status--disputed, .encore-status--refunded { border-color: var(--encore-danger); color: var(--encore-danger); }

.encore-deal__head { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; align-items: flex-start; }
.encore-deal__head h3 { margin: 0; }
.encore-deal__meta { display: flex; flex-direction: column; align-items: flex-end; gap: .25rem; }
.encore-deal__amount { font-size: 1.4em; }
.encore-deal__brief { margin: 1rem 0; padding: .75rem 1rem; border-left: 3px solid var(--encore-border); }
.encore-deal__actions { margin: 1rem 0; }
.encore-deliver { margin: 0 0 1rem; padding: 1rem; border: 1px dashed var(--encore-border); border-radius: var(--encore-radius); }
.encore-thread__list { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: .6rem; }
.encore-msg { padding: .6rem .8rem; border-radius: 10px; border: 1px solid var(--encore-border); max-width: 85%; }
.encore-msg.is-mine { margin-left: auto; background: color-mix(in srgb, var(--encore-accent) 9%, transparent); }
.encore-msg.is-theirs { background: var(--encore-surface); }
.encore-msg.is-system { max-width: 100%; border-style: dashed; font-size: .88em; color: var(--encore-muted); text-align: center; }
.encore-msg--delivery { border-color: #2e7d32; }
.encore-msg__head { font-size: .85em; margin-bottom: .25rem; display: flex; gap: .4rem; align-items: center; flex-wrap: wrap; }
.encore-msg__head time { color: var(--encore-muted); }
.encore-msg__files { list-style: none; margin: .4rem 0 0; padding: 0; font-size: .9em; }
.encore-thread__row { display: flex; gap: .5rem; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.encore-gallery--compact { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); margin-top: .5rem; }

.encore-opps { display: grid; gap: 1rem; }
.encore-opp { padding: 1rem; border: 1px solid var(--encore-border); border-radius: var(--encore-radius); display: grid; gap: .5rem; }
.encore-opp h4 { margin: 0; }
.encore-opp header p { margin: .2rem 0 0; }
.encore-opp__body p { margin: 0 0 .4rem; }
.encore-dialog--wide { max-width: min(36rem, calc(100vw - 2rem)); }
@media (max-width: 640px) { .encore-msg { max-width: 100%; } .encore-deal__meta { align-items: flex-start; } }

/* BuddyPress Nouveau / themes style every <button>; keep Encore's buttons consistent inside profiles. */
.buddypress-wrap .encore-btn, #buddypress .encore-btn, .encore-support .encore-btn, .encore-deal .encore-btn, .encore-opps .encore-btn, .encore-settings .encore-btn, .encore-memberships .encore-btn {
  display: inline-flex; align-items: center; gap: .35em; padding: .5em 1em; border-radius: 999px; border: 1px solid var(--encore-border);
  background: transparent; color: inherit; font: inherit; font-size: .95em; line-height: 1.2; text-decoration: none; box-shadow: none; min-height: 0; width: auto;
}
.buddypress-wrap .encore-btn--primary, #buddypress .encore-btn--primary, .encore-support .encore-btn--primary, .encore-deal .encore-btn--primary, .encore-opps .encore-btn--primary, .encore-settings .encore-btn--primary, .encore-memberships .encore-btn--primary {
  background: var(--encore-accent); border-color: var(--encore-accent); color: var(--encore-accent-ink);
}
.buddypress-wrap .encore-btn--danger, .encore-deal .encore-btn--danger { color: var(--encore-danger); border-color: currentColor; background: transparent; }
.buddypress-wrap .encore-tier footer .encore-btn, .encore-support .encore-tier footer .encore-btn { width: 100%; justify-content: center; }
.buddypress-wrap .encore-btn:hover, .encore-support .encore-btn:hover { border-color: var(--encore-accent); }
.buddypress-wrap .encore-btn--primary:hover { filter: brightness(1.08); color: var(--encore-accent-ink); }
.buddypress-wrap .encore-inline-form input, .buddypress-wrap .encore-form input, .buddypress-wrap .encore-form textarea, .buddypress-wrap .encore-form select { font-size: .95em; padding: .4em .5em; }

/* ======================= Phase 3: profiles, link hub, teams, rich comments ======================= */
.encore-profile-chips { display: flex; flex-wrap: wrap; gap: .35rem; margin: .5rem 0; justify-content: center; }
.encore-profile-chips .encore-chip { text-decoration: none; color: inherit; }
.encore-chip--brand { background: #1c1f23; color: #fff; border-color: #1c1f23; }
.encore-radio-row, .encore-cats { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .4rem 1rem; }
.encore-radio-row legend, .encore-cats legend { width: 100%; font-weight: 600; margin-bottom: .3rem; }

.encore-linkhub { list-style: none; margin: 0 auto; padding: 0; display: grid; gap: .6rem; max-width: 30rem; }
.encore-linkhub__item { display: flex; align-items: center; gap: .75rem; padding: .8rem 1rem; border: 1px solid var(--encore-border); border-radius: 12px; text-decoration: none; color: inherit; font-weight: 600; background: var(--encore-surface); transition: transform .12s, border-color .12s; }
.encore-linkhub__item:hover { transform: translateY(-1px); border-color: var(--encore-accent); }
.encore-ico { width: 22px; height: 22px; flex: none; border-radius: 6px; background: var(--encore-accent); -webkit-mask: var(--i) center / 18px no-repeat; mask: var(--i) center / 18px no-repeat; --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10.6 13.4a1 1 0 0 1 0-1.4l3.5-3.5a1 1 0 1 1 1.4 1.4L12 13.4a1 1 0 0 1-1.4 0zM8.5 17.6a3 3 0 0 1-4.2-4.2l3-3a1 1 0 0 1 1.4 1.4l-3 3a1 1 0 0 0 1.4 1.4l3-3a1 1 0 0 1 1.4 1.4zm7-7a1 1 0 0 1-1.4-1.4l3-3a1 1 0 0 0-1.4-1.4l-3 3A1 1 0 1 1 11.3 6.4l3-3a3 3 0 0 1 4.2 4.2z'/%3E%3C/svg%3E"); }
.encore-ico--discord { background: #5865f2; } .encore-ico--bluesky { background: #1185fe; } .encore-ico--instagram { background: #d6249f; }
.encore-ico--youtube { background: #ff0000; } .encore-ico--tiktok { background: #111; } .encore-ico--twitch { background: #9146ff; }
.encore-ico--kick { background: #53fc18; } .encore-ico--x { background: #000; } .encore-ico--spotify { background: #1db954; }
.encore-ico--soundcloud { background: #ff5500; } .encore-ico--patreon { background: #f96854; } .encore-ico--github { background: #24292f; }

.encore-creators { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 1rem; margin-top: 1rem; }
.encore-creator { text-align: center; padding: 1rem; border: 1px solid var(--encore-border); border-radius: var(--encore-radius); }
.encore-creator__link { color: inherit; text-decoration: none; }
.encore-creator__avatar { border-radius: 50%; display: block; margin: 0 auto .5rem; }
.encore-creator h4 { margin: 0; }
.encore-directory-search { margin: .5rem 0; }

.encore-team-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; }
.encore-emoji-grid { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.encore-emoji-grid li { display: flex; align-items: center; gap: .3rem; padding: .25rem .4rem; border: 1px solid var(--encore-border); border-radius: 8px; font-size: .85em; }
.encore-emoji-grid img { width: 28px; height: 28px; object-fit: contain; }
.encore-btn--tiny { padding: .1em .5em; font-size: .8em; }

.encore-rich-bar { display: flex; gap: .3rem; margin: .35rem 0; flex-wrap: wrap; }
.encore-rich-btn { font: inherit; font-size: .8em; padding: .25em .7em; border-radius: 999px; border: 1px solid var(--encore-border); background: transparent; color: inherit; cursor: pointer; }
.encore-rich-btn:hover { border-color: var(--encore-accent); }
.encore-rich-panel { border: 1px solid var(--encore-border); border-radius: 10px; padding: .6rem; margin-bottom: .5rem; background: var(--encore-surface); }
.encore-rich-search { width: 100%; box-sizing: border-box; margin-bottom: .5rem; }
.encore-gif-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(90px, 1fr)); gap: .3rem; max-height: 240px; overflow: auto; }
.encore-gif-pick { padding: 0; border: 0; background: none; cursor: pointer; }
.encore-gif-pick img { width: 100%; height: 80px; object-fit: cover; border-radius: 6px; display: block; }
.encore-emoji-picker { display: flex; flex-wrap: wrap; gap: .25rem; }
.encore-emoji-picker button { padding: .2rem; border: 1px solid transparent; background: none; border-radius: 6px; cursor: pointer; }
.encore-emoji-picker button:hover { border-color: var(--encore-border); }
.encore-emoji-picker button:disabled { opacity: .4; cursor: not-allowed; }
.encore-emoji-picker img { width: 28px; height: 28px; object-fit: contain; display: block; }
.encore-emoji { height: 1.6em; width: auto; vertical-align: -0.4em; display: inline; }
.encore-gif { display: block; max-width: min(320px, 100%); border-radius: 8px; margin: .3rem 0; }
.encore-comment-media { display: block; max-width: 480px; margin: .4rem 0; }
