@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;800&family=Anton&family=Caveat:wght@400&family=IBM+Plex+Mono:wght@600&family=Share+Tech+Mono&display=swap");
:root {
  --app-bg: #F8F6F6;
  --surface-card: #FFFFFF;
  --surface-soft: #F7F5F6;
  --surface-secondary: #F2F2F2;
  --surface-tertiary: #E4E6E8;
  --surface-active: #F0F0F0;
  --surface-input: #FFFFFF;
  --surface-hover: #F8FAFC;
  --surface-disabled: #EBEBEB;
  --surface-overlay: rgba(8, 13, 32, 0.45);
  --modal-backdrop-bg: rgba(0, 0, 0, 0.3);
  --modal-backdrop-filter: blur(3px);
  --modal-neutral-surface: #F7F5F6;
  --creator-modal-info-bg: #FBFBFD;
  --creator-modal-info-border: rgba(8, 13, 32, 0.05);
  --creator-modal-icon-bg: #E4F0FE;
  --creator-country-pill-bg: #FFFFFF;
  --creator-country-pill-text: #080D20;
  --action-modal-padding: 20px;
  --action-modal-radius: 20px;
  --info-modal-max-height: min(74vh, calc(100vh - 48px));
  --profile-avatar-stroke-color: var(--surface-card);
  --donate-input-bg: var(--modal-neutral-surface);
  --donate-suggestion-bg: var(--modal-neutral-surface);
  --donate-summary-bg: var(--modal-neutral-surface);
  --hub-info-subpanel-bg: #F4F6FF;
  --creator-form-row-bg: var(--modal-neutral-surface);
  --market-empty-pill-bg: #F2F2F2;
  --market-empty-pill-text: rgba(8, 13, 32, 0.70);
  --cta-primary-bg: #1E56FA;
  --cta-primary-text: #FFFFFF;
  --cta-primary-border: #1E56FA;
  --cta-neutral-outline-bg: transparent;
  --cta-neutral-outline-text: var(--text-55);
  --cta-neutral-outline-border: var(--text-30);
  --cta-neutral-outline-dark-bg: transparent;
  --cta-neutral-outline-dark-text: rgba(255, 255, 255, 0.91);
  --cta-neutral-outline-dark-border: rgba(255, 255, 255, 0.91);
  --cta-brand-outline-bg: transparent;
  --cta-brand-outline-text: #1E56FA;
  --cta-brand-outline-border: #1E56FA;
  --cta-danger-outline-bg: transparent;
  --cta-danger-outline-text: #FF5D5D;
  --cta-danger-outline-border: var(--text-30);
  --cta-disabled-bg: var(--surface-soft);
  --cta-disabled-text: var(--text-70);
  --cta-disabled-border: transparent;
  --modal-outline-btn-bg: #FFFFFF;
  --modal-outline-btn-border: var(--brand);
  --modal-outline-btn-text: var(--brand);
  --modal-close-bg: var(--surface-card);
  --modal-close-border: var(--brand);
  --modal-close-text: var(--brand);
  --daily-drop-claimed-bg: var(--bg);
  --daily-drop-claimed-border: var(--brand);
  --daily-drop-claimed-text: var(--brand);
  --market-completed-cta-bg: var(--surface-card);
  --market-completed-cta-border: transparent;
  --market-completed-cta-text: var(--brand);
  --market-locked-cta-bg: var(--surface-card);
  --market-locked-cta-border: var(--text-100);
  --market-locked-cta-text: var(--text-100);
  --market-brand-outline-bg: var(--surface-card);
  --market-brand-outline-border: var(--brand);
  --market-brand-outline-text: var(--brand);
  --reward-modal-text-rgb: 8, 13, 32;
  --reward-modal-text-primary: rgba(var(--reward-modal-text-rgb), 1);
  --reward-modal-text-secondary: rgba(var(--reward-modal-text-rgb), 0.70);
  --reward-modal-text-muted: rgba(var(--reward-modal-text-rgb), 0.50);
  --neutral-cta-bg: var(--cta-neutral-outline-bg);
  --neutral-cta-text: var(--cta-neutral-outline-text);
  --neutral-cta-border: var(--cta-neutral-outline-border);
  --toast-bg: #FFFFFF;
  --toast-text: rgba(8, 13, 32, 1);
  --toast-border: rgba(8, 13, 32, 0.10);
  --desktop-nav-bg: #FFFFFF;
  --desktop-nav-border: transparent;
  --desktop-nav-shadow: none;
  --bg: var(--app-bg);
  --card-bg: var(--surface-card);
  --font-main: "DM Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --text-rgb: 8, 13, 32;
  --text-primary: rgba(var(--text-rgb), 1);
  --text-secondary: rgba(var(--text-rgb), .70);
  --text-muted: rgba(var(--text-rgb), .50);
  --text-100: rgba(var(--text-rgb), 1);
  --text-91: rgba(var(--text-rgb), .91);
  --text-90: rgba(var(--text-rgb), .90);
  --text-85: rgba(var(--text-rgb), .85);
  --text-80: rgba(var(--text-rgb), .80);
  --text-75: rgba(var(--text-rgb), .75);
  --text-70: rgba(var(--text-rgb), .70);
  --text-55: rgba(var(--text-rgb), .55);
  --text-50: rgba(var(--text-rgb), .50);
  --text-40: rgba(var(--text-rgb), .40);
  --text-30: rgba(var(--text-rgb), .30);
  --border-subtle: rgba(var(--text-rgb), 0.10);
  --border-medium: rgba(var(--text-rgb), 0.18);
  --border-strong: rgba(var(--text-rgb), 0.30);
  --icon-primary: rgba(var(--text-rgb), 0.91);
  --icon-muted: rgba(var(--text-rgb), 0.55);
  --placeholder-color: rgba(var(--text-rgb), 0.40);
  --skeleton-base: var(--surface-tertiary);
  --skeleton-highlight: rgba(255, 255, 255, 0.65);
  --skel: var(--skeleton-base);
  --skel-shine: var(--skeleton-highlight);
  --scrollbar-thumb: rgba(var(--text-rgb), 0.20);
  --scrollbar-track: transparent;
  --brand: #1E56FA;
  --culture-tag-art: #1E56FA;
  --culture-tag-photo: #00D084;
  --culture-tag-music: #8157F5;
  --culture-tag-anime: #FF237A;
  --text-inverse: rgba(255,255,255,.91);
  --text-inverse-muted: rgba(255,255,255,.70);
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --ls-regular: -0.02em;
  --ls-medium: -0.02em;
  --ls-title: -0.04em;
  --fs-post-card-title: 17px;
  --lh-post-card-title: 22px;
  --fw-post-card-title: var(--fw-medium);
  --ls-post-card-title: var(--ls-medium);
  --switcher-font-size: 15px;
  --switcher-line-height: 22px;
  --switcher-font-weight: var(--fw-medium);
  --switcher-letter-spacing: var(--ls-medium);
  --switcher-text: rgba(var(--text-rgb), 0.50);
  --ui-switcher-w: 250px;
  --ui-switcher-h: 45px;
  --ui-switcher-pad: 3px;
  --ui-switcher-tab-w: 121px;
  --ui-switcher-tab-h: 39px;
  --ui-switcher-gap: 2px;
  --ui-switcher-radius: 999px;
  --switcher-active-bg: var(--surface-active);
  --switcher-active-text: var(--text-100);
  --hub-switcher-w: var(--ui-switcher-w);
  --hub-switcher-h: var(--ui-switcher-h);
--feed-switcher-sticky-top: 10px;
--home-feed-gap: 15px;

/* Desktop app shell */
--layout-shell-edge: 24px;
--layout-center-w: 815px;
--layout-topbar-h: 44px;
--layout-search-content-gap: 35px;
--app-shell-side-gap: 27px;
--layout-rail-w: 65px;
--layout-rail-gap: var(--app-shell-side-gap);
--layout-nav-pill-w: 65px;
--layout-nav-pill-top-h: 242px;
--layout-nav-pill-bottom-h: 183px;
--layout-nav-item: 53px;
--layout-nav-icon: 24px;
--layout-nav-gap: 6px;
--layout-nav-pad: 6px;
--layout-nav-avatar: 44px;
--layout-active-circle: var(--layout-nav-item);
--layout-center-x: 50%;
--layout-content-left: calc(var(--layout-center-x) - (var(--layout-center-w) / 2));
--layout-content-right: calc(var(--layout-center-x) + (var(--layout-center-w) / 2));
--layout-rail-left: calc(var(--layout-content-left) - var(--app-shell-side-gap) - var(--layout-rail-w));
--layout-action-left: calc(var(--layout-content-right) + var(--app-shell-side-gap));
--layout-content-top: calc(var(--layout-shell-edge) + var(--layout-topbar-h) + var(--layout-search-content-gap));
--search-input-text: #081420;
--search-creator-row-gap: 15px;
--inline-post-radius: 25px;
--reset-timer-icon-size: 20px;

/* =========================
   Shared app tile/tag tokens
========================= */
--app-tile-radius: 40px;

--app-page-title-fs: 25px;
--app-page-title-lh: 40px;
--app-page-title-fw: var(--fw-semibold);
--app-page-title-ls: var(--ls-title);

--app-page-subtitle-fs: 15px;
--app-page-subtitle-lh: 26px;
--app-page-subtitle-fw: var(--fw-medium);
--app-page-subtitle-ls: var(--ls-medium);

--app-page-head-title-subtitle-gap: 6px;
--app-page-head-content-gap: 20px;

--app-content-tag-h: 37px;
--app-content-tag-pad-x: 16px;
--app-content-tag-gap: 8px;
--app-content-tag-dot: 12px;
--app-content-tag-fs: 15px;
--app-content-tag-lh: 22px;
--app-content-tag-fw: var(--fw-medium);
--app-content-tag-ls: var(--ls-medium);
--app-content-tag-color: var(--text-inverse);
--app-content-tag-dot-bg: #38AFFF;

/* =========================
GLEE DESIGN SYSTEM CONTRACT v0.1
========================= */
--glee-bg: var(--bg);
--glee-brand: var(--brand);
--glee-font: var(--font-main);
--glee-text-100: var(--text-100);
--glee-text-70: var(--text-70);
--glee-text-55: var(--text-55);
--glee-white: var(--surface-card);

--glee-radius-card: 40px;
--glee-radius-card-inner: 34px;
--glee-radius-panel: 25px;
--glee-radius-pill: 999px;

--glee-title-l-fs: 35px;
--glee-title-l-lh: 40px;
--glee-title-l-fw: var(--fw-semibold);
--glee-title-l-ls: -0.04em;
--glee-title-m-fs: 25px;
--glee-title-m-lh: 30px;
--glee-title-m-fw: var(--fw-semibold);
--glee-title-m-ls: -0.04em;
--glee-title-m-emphasis-fs: var(--glee-title-m-fs);
--glee-title-m-emphasis-lh: var(--glee-title-m-lh);
--glee-title-m-emphasis-fw: var(--glee-title-m-fw);
--glee-title-m-emphasis-ls: var(--glee-title-m-ls);
--glee-title-m-emphasis-style: italic;
--glee-title-s-fs: 20px;
--glee-title-s-lh: 25px;
--glee-title-s-fw: var(--fw-semibold);
--glee-title-s-ls: -0.04em;
--glee-display-score-fs: 50px;
--glee-display-score-lh: 55px;
--glee-display-score-fw: var(--fw-semibold);
--glee-display-score-ls: -0.04em;
--glee-display-score-style: italic;
--glee-display-metric-fs: 40px;
--glee-display-metric-lh: 44px;
--glee-display-metric-fw: var(--fw-medium);
--glee-display-metric-ls: -0.02em;
--glee-value-m-fs: 25px;
--glee-value-m-lh: 30px;
--glee-value-m-fw: var(--fw-medium);
--glee-value-m-ls: -0.02em;
--glee-body-fs: 15px;
--glee-body-lh: 22px;
--glee-body-fw: var(--fw-regular);
--glee-body-ls: -0.02em;
--glee-body-medium-fw: var(--fw-medium);
--glee-small-fs: 14px;
--glee-small-lh: 20px;
--glee-small-fw: var(--fw-regular);
--glee-small-ls: -0.02em;
--glee-meta-fs: 13px;
--glee-meta-lh: 18px;
--glee-meta-fw: var(--fw-regular);
--glee-meta-ls: -0.02em;

--glee-glass-ui-bg: var(--glass-ui-bg);
--glee-glass-ui-border: var(--glass-ui-border);
--glee-glass-ui-filter: var(--glass-ui-filter);
--glee-glass-ui-shadow: var(--switcher-glass-shadow);
--glee-glass-content-bg: var(--glass-content-bg);
--glee-glass-content-border: var(--glass-content-border);
--glee-glass-content-filter: var(--glass-content-filter);
--glee-glass-content-shadow: var(--glass-content-shadow);

--glee-tag-h: 37px;
--glee-tag-pad-x: 16px;
--glee-tag-gap: 8px;
--glee-tag-dot: 12px;
--glee-tag-fs: 15px;
--glee-tag-lh: 22px;
--glee-tag-fw: var(--fw-medium);
--glee-tag-ls: -0.02em;

--signal-volume-ignition-bg: #1E56FA;
--signal-sweep-detected-bg: #7145FF;
--signal-healthy-dip-bg: #DA0F5E;
--signal-cheap-entry-bg: #F08A00;
--signal-market-heat-bg: #FF237A;
--signal-heavy-accumulation-bg: #1E56FA;
--signal-relative-strength-bg: #8157F5;
--signal-breakout-pressure-bg: #FFD84D;
--signal-tag-text: #FFFFFF;
--signal-breakout-pressure-text: var(--text-100);
--signals-neutral-tile-bg: #EBEBEB;
--signals-updated-pill-bg: #EBEBEB;
--signals-tile-edge-inset: 30px;
--signals-tile-section-gap: 30px;
--signals-metric-group-w: 560px;
--signals-metric-group-gap: 28px;
--signals-why-now-fs: 17px;
--signals-why-now-lh: 23px;
--signals-why-now-label-fw: var(--fw-semibold);
--signals-why-now-text-fw: var(--fw-medium);
--signals-why-now-ls: -0.02em;

/* Settings */
--settings-section-title-fs: 15px;
--settings-section-title-lh: 22px;
--settings-section-title-fw: var(--fw-medium);
--settings-section-title-ls: var(--ls-medium);
--settings-section-title-color: var(--text-100);
--settings-label-fs: 14px;
--settings-label-lh: 20px;
--settings-label-fw: var(--fw-regular);
--settings-label-ls: var(--ls-medium);
--settings-label-color: var(--text-70);
--settings-body-fs: 15px;
--settings-body-lh: 22px;
--settings-body-fw: var(--fw-medium);
--settings-body-ls: var(--ls-medium);
--settings-body-color: var(--text-100);

/* Event details */
--event-details-hero-radius: var(--app-tile-radius);
--event-details-title-fs: 35px;
--event-details-title-lh: var(--app-page-title-lh);
--event-details-title-fw: var(--app-page-title-fw);
--event-details-title-ls: var(--app-page-title-ls);
--event-details-title-color: var(--text-100);
--event-meta-fs: 14px;
--event-meta-lh: 20px;
--event-meta-fw: var(--fw-regular);
--event-meta-ls: var(--ls-medium);
--event-meta-color: var(--text-70);
--event-section-title-fs: 20px;
--event-section-title-lh: 25px;
--event-section-title-fw: var(--fw-semibold);
--event-section-title-ls: var(--ls-medium);
--event-section-title-color: var(--text-100);
--event-body-fs: 15px;
--event-body-lh: 22px;
--event-body-fw: var(--fw-medium);
--event-body-ls: var(--ls-medium);
--event-body-color: var(--text-70);
--event-speaker-name-fs: 15px;
--event-speaker-name-lh: 22px;
--event-speaker-name-fw: var(--fw-medium);
--event-speaker-name-ls: var(--ls-medium);
--event-speaker-role-fs: 14px;
--event-speaker-role-lh: 20px;
--event-speaker-role-fw: var(--fw-regular);
--event-speaker-role-ls: var(--ls-medium);

/* Post details */
--post-details-title-fs: 35px;
--post-details-title-lh: var(--app-page-title-lh);
--post-details-title-fw: var(--app-page-title-fw);
--post-details-title-ls: var(--app-page-title-ls);
--post-details-body-fs: 15px;
--post-details-body-lh: 22px;
--post-details-body-fw: var(--fw-medium);
--post-details-body-ls: var(--ls-medium);
--post-author-header-h: 350px;
--post-media-stack-gap: 20px;

/* Creator ID market history */
--market-history-card-radius: var(--app-tile-radius);
--market-history-card-aspect: 786 / 443;
--market-history-grid-gap: 20px;
--market-history-title-fs: 15px;
--market-history-title-lh: 22px;
--market-history-title-fw: var(--fw-medium);
--market-history-title-ls: var(--ls-medium);
--market-history-title-color: var(--text-inverse);
--market-history-time-fs: 14px;
--market-history-time-lh: 20px;
--market-history-time-fw: var(--fw-regular);
--market-history-time-ls: var(--ls-medium);
--market-history-time-color: var(--text-inverse-muted);
--market-history-sales-fs: 30px;
--market-history-sales-lh: 34px;
--market-history-sales-fw: var(--fw-semibold);
--market-history-sales-ls: var(--ls-medium);
--market-history-sales-color: var(--text-inverse);
--market-history-total-fs: var(--app-content-tag-fs);
--market-history-total-lh: var(--app-content-tag-lh);
--market-history-total-fw: var(--app-content-tag-fw);
--market-history-total-ls: var(--app-content-tag-ls);
--market-history-total-color: var(--app-content-tag-color);

/* Community */
--community-hero-h: 348px;
--community-hero-title-fs: 25px;
--community-hero-title-lh: 30px;
--community-hero-title-fw: var(--fw-semibold);
--community-hero-title-ls: var(--ls-title);
--community-hero-title-color: var(--text-inverse);

--community-hero-subtitle-fs: 14px;
--community-hero-subtitle-lh: 20px;
--community-hero-subtitle-fw: var(--fw-regular);
--community-hero-subtitle-ls: var(--ls-medium);
--community-hero-subtitle-color: rgba(255,255,255,.85);

--community-card-h: 200px;
--community-feature-card-h: 220px;
--community-card-gap: 20px;
--community-card-title-fs: 20px;
--community-card-title-lh: 25px;
--community-card-title-fw: var(--fw-medium);
--community-card-title-ls: var(--ls-medium);
--community-card-subtitle-fs: 14px;
--community-card-subtitle-lh: 20px;
--community-card-subtitle-fw: var(--fw-regular);
--community-card-subtitle-ls: var(--ls-medium);

--community-events-gradient: linear-gradient(135deg, #1E56FA 4%, #B7C7F8 69%);

--community-action-fs: 14px;
--community-action-lh: 20px;
--community-action-fw: var(--fw-regular);

/* Culture Hub */
--hub-section-title-fs: 20px;
--hub-section-title-lh: 25px;
--hub-section-title-fw: var(--fw-semibold);
--hub-section-title-ls: var(--ls-medium);
--hub-section-subtitle-fs: 15px;
--hub-section-subtitle-lh: 22px;
--hub-section-subtitle-fw: var(--fw-medium);
--hub-section-subtitle-ls: var(--ls-medium);
--hub-section-gap: 48px;
--hub-card-gap: 14px;
--hub-hero-gradient:
  linear-gradient(90deg, rgba(10, 10, 22, .82) 0%, rgba(10, 10, 22, .48) 32%, rgba(10, 10, 22, 0) 66%),
  linear-gradient(0deg, rgba(10, 10, 22, .30) 0%, rgba(10, 10, 22, 0) 48%);
--hub-progress-bg: linear-gradient(
  180deg,
  #1E56FA 0%,
  #4F7DFF 38%,
  #9CB8FF 70%,
  #F8F6F6 100%
);
--community-action-ls: var(--ls-medium);

/* =========================
Glass system
========================= */

/* Content glass: small overlay pills on media/content */
--glass-content-bg: rgba(107, 107, 107, 0.20);
--glass-content-stroke: rgba(255, 255, 255, 0.28);
--glass-content-border: 1px solid var(--glass-content-stroke);
--glass-content-filter: blur(3px);
--glass-content-radius: 999px;
--glass-content-shadow: none;

/* UI glass: switchers, nav bars, floating UI panels */
--glass-ui-bg: rgba(246, 247, 248, 0.55);
--glass-ui-stroke: rgba(255, 255, 255, 0.55);
--glass-ui-border: 1px solid var(--glass-ui-stroke);
--glass-ui-filter: blur(16px) saturate(180%);
--glass-ui-radius: 999px;
--glass-ui-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55);

/* UI active state */
--glass-ui-active-bg: rgba(30, 86, 250, 0.42);
--glass-ui-active-text: #FFFFFF;

/* Backward-compatible aliases for existing post/content pills */
--glass-pill-bg: var(--glass-content-bg);
--glass-pill-stroke: var(--glass-content-stroke);
--glass-pill-border: var(--glass-content-border);
--glass-pill-filter: var(--glass-content-filter);
--glass-pill-radius: var(--glass-content-radius);
--glass-pill-shadow: var(--glass-content-shadow);

/* Community page typography */
--community-page-title-fs: 25px;
--community-page-title-lh: 40px;
--community-page-title-fw: var(--fw-semibold);
--community-page-title-ls: var(--ls-title);

--community-page-subtitle-fs: 15px;
--community-page-subtitle-lh: 26px;
--community-page-subtitle-fw: var(--fw-medium);
--community-page-subtitle-ls: var(--ls-medium);

--community-hero-title-fs: 25px;
--community-hero-title-lh: 30px;
--community-hero-title-fw: var(--fw-semibold);
--community-hero-title-ls: var(--ls-title);
--community-hero-title-color: var(--text-inverse);

--community-hero-subtitle-fs: 14px;
--community-hero-subtitle-lh: 20px;
--community-hero-subtitle-fw: var(--fw-regular);
--community-hero-subtitle-ls: var(--ls-medium);
--community-hero-subtitle-color: rgba(255, 255, 255, 0.85);

--community-hero-title-offset-y: 122px;

--community-hero-gradient: linear-gradient(
  90deg,
  rgba(10, 10, 22, 0.70) 0%,
  rgba(10, 10, 22, 0.343) 34%,
  rgba(10, 10, 22, 0.00) 63%
);

/* Switcher aliases */
--switcher-glass-bg: var(--glass-ui-bg);
--switcher-glass-stroke: var(--glass-ui-stroke);
--switcher-glass-border: var(--glass-ui-border);
--switcher-glass-filter: var(--glass-ui-filter);
--switcher-glass-shadow: inset 0 0 0 1px var(--glass-ui-stroke), var(--glass-ui-shadow);
--switcher-glass-active-bg: var(--switcher-active-bg);
--switcher-glass-active-border: 0;

/* Post card author pill geometry */
--post-card-author-avatar-size: 40px;
--post-card-author-pill-inset: 6px;
--post-card-author-pill-height: calc(
  var(--post-card-author-avatar-size) + (var(--post-card-author-pill-inset) * 2)
);
--post-card-author-pill-pad-left: var(--post-card-author-pill-inset);
--post-card-author-pill-pad-right: 16px;
--post-card-cta-lift: 0px;

/* Profile header */
--profile-header-card-bg: var(--surface-card);
--profile-header-card-radius: 40px;
--profile-header-card-h: 441px;
--profile-header-pad: 10px;
--profile-banner-h: 228px;
--profile-banner-radius: 34px;
--profile-avatar-size: 155px;
--profile-avatar-stroke: 5px;
--profile-display-fs: 25px;
--profile-display-lh: 30px;
--profile-display-fw: var(--fw-semibold);
--profile-display-ls: var(--ls-medium);
--profile-display-color: var(--text-inverse);
--profile-display-pill-h: 45px;
--profile-display-pill-banner-bottom: 16px;
--profile-display-pill-pad-x: 22px;
--profile-display-pill-gap: 10px;
--profile-display-mark-size: 24px;
--profile-display-mark-size-mobile: 20px;
--profile-username-fs: 14px;
--profile-username-lh: 20px;
--profile-username-fw: var(--fw-regular);
--profile-username-ls: var(--ls-medium);
--profile-username-color: var(--text-100);
--profile-bio-fs: 15px;
--profile-bio-lh: 22px;
--profile-bio-fw: var(--fw-medium);
--profile-bio-ls: var(--ls-medium);
--profile-bio-color: var(--text-100);
--profile-stat-value-fs: 25px;
--profile-stat-value-lh: 30px;
--profile-stat-value-fw: var(--fw-semibold);
--profile-stat-value-ls: var(--ls-medium);
--profile-stat-label-fs: 15px;
--profile-stat-label-lh: 22px;
--profile-stat-label-fw: var(--fw-medium);
--profile-stat-label-ls: var(--ls-medium);
--profile-stats-row-w: 430px;
--profile-stats-gap: 46px;
--profile-mobile-header-w: var(--m-content-w, 430px);
--profile-mobile-card-radius: 28px;
--profile-mobile-banner-h: 164px;
--profile-mobile-avatar-size: 100px;
--profile-mobile-body-min-h: 201px;
--profile-mobile-stats-row-w: 327px;
--profile-mobile-stats-gap: 12px;

  --text: var(--text-100);
  --muted: var(--text-55);
  --line: var(--border-subtle);
  --blue: var(--brand);
  --radius: 999px;
  --tile-shadow: 1px 1px 3px rgba(0,0,0,0.10);
    /* Primary (blue) pill buttons: FOLLOW / JOIN / etc */
  --btn-blue-bg: var(--cta-primary-bg);
  --btn-blue-text: var(--cta-primary-text);
  --btn-blue-w: 120px;
  --btn-blue-h: 37px;
  --btn-blue-min: 120px;
  --btn-blue-pad: 0;
  --btn-blue-radius: 999px;
  --btn-blue-font: 15px;
  --btn-blue-lh: 22px;
  --btn-blue-weight: var(--fw-regular);
  --btn-blue-ls: -0.02em;
  --modal-form-w: 520px;
  --modal-form-max: calc(100vw - 64px);
  --modal-form-pad-x: 34px;
  --modal-form-pad-y: 44px;
  --modal-form-radius: 24px;
}

.glass-content,
.glass-pill,
.post-glass-pill {
  box-sizing: border-box;
  border: var(--glass-content-border);
  border-radius: var(--glass-content-radius);
  background: var(--glass-content-bg);
  -webkit-backdrop-filter: var(--glass-content-filter);
  backdrop-filter: var(--glass-content-filter);
  box-shadow: var(--glass-content-shadow);
}

.glass-ui,
.ui-glass-panel {
  box-sizing: border-box;
  border: var(--glass-ui-border);
  border-radius: var(--glass-ui-radius);
  background: var(--glass-ui-bg);
  -webkit-backdrop-filter: var(--glass-ui-filter);
  backdrop-filter: var(--glass-ui-filter);
  box-shadow: var(--glass-ui-shadow);
}

/* =========================
GLEE DESIGN SYSTEM CONTRACT CLASSES v0.1
========================= */
.glee-page-shell {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

.glee-page-stack {
  display: flex;
  flex-direction: column;
  gap: var(--m-block-gap, 22px);
}

.glee-page-head {
  display: flex;
  flex-direction: column;
  gap: var(--app-page-head-title-subtitle-gap);
  margin: 0 0 var(--app-page-head-content-gap);
}

.glee-page-title,
.glee-section-title {
  margin: 0;
  font-family: var(--glee-font);
  color: var(--glee-text-100);
}

.glee-page-title {
  font-size: var(--app-page-title-fs);
  line-height: var(--app-page-title-lh);
  font-weight: var(--app-page-title-fw);
  letter-spacing: var(--app-page-title-ls);
}

.glee-page-subtitle {
  margin: 0;
  font-family: var(--glee-font);
  font-size: var(--app-page-subtitle-fs);
  line-height: var(--app-page-subtitle-lh);
  font-weight: var(--app-page-subtitle-fw);
  letter-spacing: var(--app-page-subtitle-ls);
  color: var(--glee-text-70);
}

.glee-section-title {
  font-size: var(--m-section-title-fs, var(--glee-title-s-fs));
  line-height: var(--m-section-title-lh, var(--glee-title-s-lh));
  font-weight: var(--m-section-title-fw, var(--glee-title-s-fw));
  letter-spacing: var(--m-section-title-ls, var(--glee-title-s-ls));
}

.glee-body,
.glee-body-muted {
  font-family: var(--glee-font);
  font-size: var(--m-body-fs, var(--glee-body-fs));
  line-height: var(--m-body-lh, var(--glee-body-lh));
  font-weight: var(--m-body-fw, var(--glee-body-fw));
  letter-spacing: var(--m-body-ls, var(--glee-body-ls));
}

.glee-body {
  color: var(--glee-text-100);
}

.glee-body-muted {
  color: var(--glee-text-70);
}

.glee-meta {
  font-family: var(--glee-font);
  font-size: var(--glee-meta-fs);
  line-height: var(--glee-meta-lh);
  font-weight: var(--glee-meta-fw);
  letter-spacing: var(--glee-meta-ls);
  color: var(--glee-text-70);
}

.glee-link {
  color: var(--glee-brand);
  text-decoration: none;
  font: inherit;
}

.glee-card {
  background: var(--surface-card);
  border-radius: var(--m-card-radius, var(--glee-radius-card));
  box-shadow: none;
  overflow: hidden;
  box-sizing: border-box;
}

.glee-media-card {
  position: relative;
  border-radius: var(--m-card-radius, var(--glee-radius-card));
  overflow: hidden;
  box-shadow: none;
}

.glee-primary-btn {
  width: var(--btn-blue-w);
  min-width: var(--btn-blue-min);
  height: var(--btn-blue-h);
  border-radius: var(--btn-blue-radius);
  background: var(--btn-blue-bg);
  color: var(--btn-blue-text);
  font-size: var(--btn-blue-font);
  line-height: var(--btn-blue-lh);
  font-weight: var(--btn-blue-weight);
  letter-spacing: var(--btn-blue-ls);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  padding: 0;
  text-decoration: none;
  box-sizing: border-box;
}

.glee-content-tag {
  width: fit-content;
  height: var(--glee-tag-h);
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--glee-tag-gap);
  padding: 0 var(--glee-tag-pad-x);
  border: var(--glee-glass-content-border);
  border-radius: var(--glee-radius-pill);
  background: var(--glee-glass-content-bg);
  -webkit-backdrop-filter: var(--glee-glass-content-filter);
  backdrop-filter: var(--glee-glass-content-filter);
  box-shadow: var(--glee-glass-content-shadow);
  color: var(--text-inverse);
  font-size: var(--glee-tag-fs);
  line-height: var(--glee-tag-lh);
  font-weight: var(--glee-tag-fw);
  letter-spacing: var(--glee-tag-ls);
}

.glee-content-tag-dot {
  width: var(--glee-tag-dot);
  height: var(--glee-tag-dot);
  flex: 0 0 var(--glee-tag-dot);
  border-radius: var(--glee-radius-pill);
  background: var(--app-content-tag-dot-bg);
}

.glee-ui-glass {
  box-sizing: border-box;
  border: var(--glee-glass-ui-border);
  border-radius: var(--glee-radius-pill);
  background: var(--glee-glass-ui-bg);
  -webkit-backdrop-filter: var(--glee-glass-ui-filter);
  backdrop-filter: var(--glee-glass-ui-filter);
  box-shadow: var(--glee-glass-ui-shadow);
}

.glee-content-glass {
  box-sizing: border-box;
  border: var(--glee-glass-content-border);
  border-radius: var(--glee-radius-pill);
  background: var(--glee-glass-content-bg);
  -webkit-backdrop-filter: var(--glee-glass-content-filter);
  backdrop-filter: var(--glee-glass-content-filter);
  box-shadow: var(--glee-glass-content-shadow);
}

.glee-switcher,
body.app-home .home-tabs,
body.app-profile .profile-tabs,
body.app-hub .hub-switch,
body.app-hub .hub-progress-switch,
body.app-leaderboard .leaderboard-switch {
  width: var(--ui-switcher-w);
  max-width: min(var(--ui-switcher-w), 100%);
  height: var(--ui-switcher-h);
  box-sizing: border-box;
  display: grid;
  grid-template-columns: repeat(2, var(--ui-switcher-tab-w));
  column-gap: var(--ui-switcher-gap);
  align-items: center;
  justify-content: center;
  padding: var(--ui-switcher-pad);
  overflow: hidden;
  border: 0;
  border-radius: var(--ui-switcher-radius);
  background: var(--glass-ui-bg);
  -webkit-backdrop-filter: var(--glass-ui-filter);
  backdrop-filter: var(--glass-ui-filter);
  box-shadow: var(--switcher-glass-shadow);
}

.glee-switcher > button,
body.app-home .home-tabs .home-tab,
body.app-profile .profile-tabs .profile-tab,
body.app-hub .hub-switch button,
body.app-hub .hub-progress-switch button,
body.app-leaderboard .leaderboard-switch button {
  width: var(--ui-switcher-tab-w);
  min-width: var(--ui-switcher-tab-w);
  max-width: var(--ui-switcher-tab-w);
  height: var(--ui-switcher-tab-h);
  min-height: var(--ui-switcher-tab-h);
  max-height: var(--ui-switcher-tab-h);
  box-sizing: border-box;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: var(--ui-switcher-radius);
  background: transparent;
  color: var(--switcher-text);
  font-family: var(--font-main);
  font-size: var(--switcher-font-size);
  line-height: var(--switcher-line-height);
  font-weight: var(--switcher-font-weight);
  letter-spacing: var(--switcher-letter-spacing);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  -webkit-tap-highlight-color: transparent;
  outline: none;
  appearance: none;
  cursor: pointer;
}

.glee-switcher > button.is-active,
body.app-home .home-tabs .home-tab.is-active,
body.app-profile .profile-tabs .profile-tab.is-active,
body.app-hub .hub-switch button.is-active,
body.app-hub .hub-progress-switch button.is-active,
body.app-leaderboard .leaderboard-switch button.is-active {
  background: var(--switcher-active-bg);
  color: var(--switcher-active-text);
}

.glee-content-tag,
.app-content-tag,
.content-tag,
.post-card .post-card-tag,
.app-events .event-card-tag,
.app-community .community-pill,
.app-community .community-hero-tag,
.profile-banner-tag,
.creator-market-status,
.app-profile .creator-market-history-total-tag,
.lootbox-rarity-pill,
.app-hub .hub-content-tag,
body.app-hub .hub-event-tag,
body.app-hub .hub-lootbox-media .hub-content-tag,
body.app-hub .hub-event-date {
  width: fit-content;
  height: var(--glee-tag-h);
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--glee-tag-gap);
  padding: 0 var(--glee-tag-pad-x);
  border: var(--glee-glass-content-border);
  border-radius: var(--glee-radius-pill);
  background: var(--glee-glass-content-bg);
  -webkit-backdrop-filter: var(--glee-glass-content-filter);
  backdrop-filter: var(--glee-glass-content-filter);
  box-shadow: var(--glee-glass-content-shadow);
  color: var(--app-content-tag-color);
  font-size: var(--glee-tag-fs);
  line-height: var(--glee-tag-lh);
  font-weight: var(--glee-tag-fw);
  letter-spacing: var(--glee-tag-ls);
}

.glee-content-tag-dot,
.app-content-tag-dot,
.content-tag-dot,
.post-card .post-card-tag-dot,
.app-events .event-card-tag-dot,
.app-community .community-pill-dot,
.app-community .community-hero-tag-dot,
.profile-banner-tag-dot,
body.app-hub .hub-content-tag-dot,
body.app-hub .hub-event-tag-dot {
  width: var(--glee-tag-dot);
  height: var(--glee-tag-dot);
  flex: 0 0 var(--glee-tag-dot);
  border-radius: 999px;
  background: var(--app-content-tag-dot-bg);
}

[data-resolved-theme="dark"] {
  --app-bg: #1C1C1C;
  --surface-card: #222224;
  --surface-soft: #292929;
  --surface-secondary: #292929;
  --surface-tertiary: #303030;
  --surface-active: #2E2E2E;
  --surface-input: #292929;
  --surface-hover: #303030;
  --surface-disabled: #303030;
  --surface-overlay: rgba(0, 0, 0, 0.62);
  --modal-neutral-surface: #292929;
  --creator-modal-info-bg: var(--modal-neutral-surface);
  --creator-modal-info-border: rgba(255, 255, 255, 0.05);
  --creator-modal-icon-bg: var(--surface-tertiary);
  --creator-country-pill-bg: #FFFFFF;
  --creator-country-pill-text: #080D20;
  --profile-avatar-stroke-color: var(--surface-card);
  --donate-input-bg: var(--modal-neutral-surface);
  --donate-suggestion-bg: var(--modal-neutral-surface);
  --donate-summary-bg: var(--modal-neutral-surface);
  --hub-info-subpanel-bg: #292929;
  --creator-form-row-bg: var(--modal-neutral-surface);
  --market-empty-pill-bg: #2E2E2E;
  --market-empty-pill-text: rgba(255, 255, 255, 0.70);
  --cta-neutral-outline-bg: transparent;
  --cta-neutral-outline-text: var(--text-55);
  --cta-neutral-outline-border: var(--text-30);
  --cta-disabled-bg: var(--surface-soft);
  --cta-disabled-text: var(--text-70);
  --cta-disabled-border: transparent;
  --modal-outline-btn-bg: transparent;
  --modal-outline-btn-border: rgba(255, 255, 255, 0.91);
  --modal-outline-btn-text: rgba(255, 255, 255, 0.91);
  --modal-close-bg: var(--cta-neutral-outline-dark-bg);
  --modal-close-border: var(--cta-neutral-outline-dark-border);
  --modal-close-text: var(--cta-neutral-outline-dark-text);
  --daily-drop-claimed-bg: var(--cta-neutral-outline-dark-bg);
  --daily-drop-claimed-border: var(--cta-neutral-outline-dark-border);
  --daily-drop-claimed-text: var(--cta-neutral-outline-dark-text);
  --market-completed-cta-bg: var(--cta-neutral-outline-dark-bg);
  --market-completed-cta-border: var(--cta-neutral-outline-dark-border);
  --market-completed-cta-text: var(--cta-neutral-outline-dark-text);
  --market-locked-cta-bg: var(--cta-neutral-outline-dark-bg);
  --market-locked-cta-border: var(--cta-neutral-outline-dark-border);
  --market-locked-cta-text: var(--cta-neutral-outline-dark-text);
  --market-brand-outline-bg: var(--cta-brand-outline-bg);
  --market-brand-outline-border: var(--cta-brand-outline-border);
  --market-brand-outline-text: var(--cta-brand-outline-text);
  --neutral-cta-bg: var(--cta-neutral-outline-bg);
  --neutral-cta-text: var(--cta-neutral-outline-text);
  --neutral-cta-border: var(--cta-neutral-outline-border);
  --toast-bg: #2E2E2E;
  --toast-text: rgba(255, 255, 255, 0.91);
  --toast-border: rgba(255, 255, 255, 0.10);
  --desktop-nav-bg: rgba(34, 34, 36, 0.72);
  --desktop-nav-border: rgba(255, 255, 255, 0.10);
  --desktop-nav-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
  --bg: var(--app-bg);
  --card-bg: var(--surface-card);
  --text-rgb: 255, 255, 255;
  --search-input-text: var(--text-100);
  --text-primary: rgba(var(--text-rgb), 1);
  --text-secondary: rgba(var(--text-rgb), .70);
  --text-muted: rgba(var(--text-rgb), .50);
  --text-100: rgba(var(--text-rgb), 1);
  --text-91: rgba(var(--text-rgb), .91);
  --text-90: rgba(var(--text-rgb), .90);
  --text-85: rgba(var(--text-rgb), .85);
  --text-80: rgba(var(--text-rgb), .80);
  --text-75: rgba(var(--text-rgb), .75);
  --text-70: rgba(var(--text-rgb), .70);
  --text-55: rgba(var(--text-rgb), .55);
  --text-50: rgba(var(--text-rgb), .50);
  --text-40: rgba(var(--text-rgb), .40);
  --text-30: rgba(var(--text-rgb), .30);
  --border-subtle: rgba(var(--text-rgb), 0.10);
  --border-medium: rgba(var(--text-rgb), 0.18);
  --border-strong: rgba(var(--text-rgb), 0.30);
  --icon-primary: rgba(var(--text-rgb), 0.91);
  --icon-muted: rgba(var(--text-rgb), 0.55);
  --placeholder-color: rgba(var(--text-rgb), 0.40);
  --skeleton-base: var(--surface-tertiary);
  --skeleton-highlight: rgba(255, 255, 255, 0.07);
  --scrollbar-thumb: rgba(var(--text-rgb), 0.20);
  --scrollbar-track: transparent;
  --signals-neutral-tile-bg: var(--surface-secondary);
  --signals-updated-pill-bg: var(--surface-secondary);
  --glass-ui-bg: rgba(34, 34, 36, 0.72);
  --glass-ui-stroke: rgba(255, 255, 255, 0.10);
  --glass-ui-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

/* =========================
   Desktop proportional scaling
   Design reference width: 1728px
========================= */
:root {
  --d-pad-x: 100px;
  --d-col-left: 260px;
  --d-col-right: 352px;
  --d-gap: 50px;
  --d-center: var(--layout-center-w);
  --d-tabs-gap: 50px;

  --d-event-media-w: 316px;
  --d-event-card-gap: 22px;
}

@media (min-width: 901px) and (max-width: 1728px) {
  :root {
    --d-pad-x: clamp(24px, 5.787vw, 100px);
    --d-col-left: clamp(180px, 15.046vw, 260px);
    --d-col-right: clamp(220px, 20.370vw, 352px);
    --d-gap: clamp(24px, 2.894vw, 50px);
    --d-tabs-gap: clamp(24px, 2.894vw, 50px);

    --d-event-media-w: clamp(240px, 18.287vw, 316px);
    --d-event-card-gap: clamp(14px, 1.273vw, 22px);
  }
}

button, input, textarea, select {
  font: inherit;
  letter-spacing: inherit;
}

button, input, textarea, select {
  font: inherit;
  letter-spacing: inherit;
  color: inherit;              /* Prevent browser-native input and button color overrides. */
}

button {
  -webkit-appearance: none;    /* Prevent browser-native input and button appearance overrides. */
  appearance: none;
}

html {
  height: 100%;
  background: var(--bg);
  overscroll-behavior-y: none;
}

body.auth {
  height: 100%;
}

body.auth {
  margin: 0;
  font-family: var(--font-main);
  font-optical-sizing: auto;
  background: var(--bg);
  color: var(--text);
  overflow: hidden;
}

/* Loader layout */
html:has(body.auth-loader),
body.auth-loader {
  background: var(--bg);
}

.auth-loader {
  background: var(--bg);
  color: var(--text-100);
}

.loader-shell {
  height: 100%;
  position: relative;
  background: var(--bg);
}

.loader-center {
  height: 100%;
  display: grid;
  place-items: center;
}

.loader-logo {
  margin: 0;
  font-size: 50px;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-title);
  line-height: 53px;
  color: var(--text-100);
}


/* subtle fade in */
.fade-in {
  opacity: 0;
  transform: translateY(6px);
  animation: fadeInUp 520ms ease forwards;
}

.fade-in-delay {
  opacity: 0;
  transform: translateY(6px);
  animation: fadeInUp 520ms ease forwards;
  animation-delay: 140ms;
}

@keyframes fadeInUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* auth base */
.auth-shell {
  min-height: 100vh;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 24px 0;
  box-sizing: border-box;
}

.auth-center {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.auth-block {
  width: 520px;
  max-width: calc(100% - 64px);
  text-align: center;
}

.auth-title {
  margin: 0 0 44px;
  font-size: 40px;         /* Figma */
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-title);
  line-height: 44px;
  color: var(--text-100);
}

.auth-form {
  width: 100%;
  display: grid;
  gap: 10px;
  justify-items: center;
}

.auth-input {
  width: 360px;
  max-width: 100%;
  height: 44px;
  border: none;
  border-bottom: 1px solid rgba(11, 16, 32, 0.10);
  outline: none;
  background: transparent;
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
}

.auth-input:focus {
  border-bottom-color: rgba(30, 86, 250, 0.65);
}

.auth-help {
  width: 360px;
  max-width: 100%;
  margin: 0 0 18px;
  text-align: center;
  font-size: 15px;
  font-weight: var(--fw-medium);
  line-height: 22px;
  letter-spacing: var(--ls-medium);
  color: var(--text-70);
}

.btn-primary {
  height: 52px;
  border: none;
  border-radius: 999px;
  padding: 0 28px;
  font-weight: var(--fw-semibold);
  cursor: pointer;
}

/* Global blue button (use for all blue pill buttons in the app) */
.btn-blue {
  width: var(--btn-blue-w);
  min-width: var(--btn-blue-min);
  height: var(--btn-blue-h);
  box-sizing: border-box;
  border-radius: var(--btn-blue-radius);
  border: 0;
  cursor: pointer;
  padding: var(--btn-blue-pad);
  background: var(--btn-blue-bg);
  color: var(--btn-blue-text);

  font-size: var(--btn-blue-font);
  line-height: var(--btn-blue-lh);
  font-weight: var(--btn-blue-weight);
  letter-spacing: var(--btn-blue-ls);

  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  white-space: nowrap;
}

.btn-blue:disabled {
  opacity: 0.4;
  cursor: default;
  pointer-events: none;
}

.auth-cta {
  width: 360px;
  max-width: 100%;
  font-size: 17px;         /* Figma */
  font-weight: var(--fw-medium);
  letter-spacing: -0.02em;
  background: var(--brand);
  color: #ffffff;
}

.auth-cta:disabled {
  opacity: 1;
  cursor: not-allowed;
  pointer-events: none;
}

.auth-footnote {
  margin: 6px 0 0;
  font-size: 15px;
  font-weight: var(--fw-medium);
  line-height: 22px;
  letter-spacing: var(--ls-medium);
  color: var(--text-70);
}

.auth-link {
  color: var(--brand);
  text-decoration: none;
  font-weight: var(--fw-medium);
}

.auth-input::placeholder {
  color: var(--text-40);
}

.auth-error {
  width: 360px;
  max-width: 100%;
  margin: 2px 0 10px;
  text-align: left;
  font-size: 15px;
  letter-spacing: -0.02em;
  color: #ff3b30;
  min-height: 18px;
}
.avatar-file {
  display: none;
}

.avatar-picker {
  display: flex;
  justify-content: center;
  margin: 18px 0 0;
  cursor: pointer;
}

.avatar-circle {
  width: 96px;
  height: 96px;
  border-radius: 999px;
  background: #e6e7ea;
  display: grid;
  place-items: center;
  position: relative;
  overflow: hidden;
  border: 2px dashed rgba(0,0,0,0.12);
}

.avatar-plus {
  font-size: 28px;
  line-height: 1;
  color: var(--text-40);
}

.avatar-preview {
  position: absolute;
  inset: 0; 
  width: 100%; 
  height: 100%; 
  object-fit: cover; 
  border-radius: 50%; 
  display: none;
}

.avatar-circle.has-image {
  border: none;
  background: transparent;
}

.avatar-suggestions {
  margin-top: 22px;
  text-align: center;
}

.avatar-suggestions-title {
  margin: 0 0 16px;
  font-size: 14px;
  font-weight: var(--fw-medium);
  line-height: 20px;
  letter-spacing: var(--ls-medium);
  color: var(--text-70);
}

.avatar-suggestion-grid {
  display: grid;
  grid-template-columns: repeat(3, 72px);
  justify-content: center;
  gap: 18px 22px;
}

.avatar-suggestion-btn {
  width: 72px;
  height: 72px;
  border-radius: 999px;
  border: 2px solid transparent;
  padding: 0;
  background: transparent;
  cursor: pointer;
  overflow: hidden;
  box-sizing: border-box;
  transition: opacity .16s ease, transform .16s ease, border-color .16s ease;
}

.avatar-suggestion-btn:hover {
  opacity: 0.9;
  transform: translateY(-1px);
}

.avatar-suggestion-btn.is-selected {
  border-color: var(--brand);
}

.avatar-suggestion-img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  border-radius: inherit;
}

.role-field {
  width: 360px;
  max-width: 100%;
  text-align: center;
}

.role-label {
  font-size: 15px;
  font-weight: var(--fw-semibold);
  line-height: 1.2;
  color: var(--text-100);
}

.role-help {
  margin: 6px 0 0;
  font-size: 13px;
  font-weight: var(--fw-medium);
  line-height: 1.35;
  color: var(--text-55);
}

.role-selector {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-top: 14px;
}

.role-chip {
  min-height: 32px;
  border-radius: 999px;
  border: 1px solid rgba(var(--text-rgb), 0.18);
  padding: 0 13px;
  background: transparent;
  color: var(--text-100);
  font-family: var(--font-main);
  font-size: 13px;
  font-weight: var(--fw-medium);
  line-height: 1;
  cursor: pointer;
  transition: background .16s ease, border-color .16s ease, color .16s ease, opacity .16s ease;
}

.role-chip:hover {
  border-color: rgba(30,86,250,0.34);
  background: rgba(30,86,250,0.06);
}

.role-chip.is-selected {
  background: var(--brand);
  border-color: var(--brand);
  color: #FFFFFF;
}
/* =========================
   HOME (desktop-only)
========================= */

.app-home {
  background: var(--app-bg);
  font-family: var(--font-main);
  min-width: 1200px;
  height: 100vh;
  overflow: hidden;
}

.app-shell {
  max-width: 1728px;
  margin: 0 auto;
  padding: var(--layout-shell-edge) var(--d-pad-x);
  min-height: 100vh;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
}

.glee-app-version-status {
  display: none;
}

/* top bar */
.home-topbar {
  display: grid;
  grid-template-columns: var(--d-col-left) minmax(0, 1fr) var(--d-col-right);
  align-items: center;
  gap: var(--d-gap);
  height: 72px;
  flex: 0 0 72px;
  position: relative;
  top: auto;
  z-index: 120;
}

.brand {
  font-size: 44px;
  font-weight: var(--fw-semibold);
  color: var(--text-100);
  letter-spacing: var(--ls-title);
}

/* search */
.topbar-center{
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  overflow: visible;
}

.topbar-center-inner{
  width: var(--layout-center-w);
  max-width: none;
  flex: 0 0 auto;
  margin: 0 auto;
  min-width: 0;
}

@media (min-width: 901px) {
  .home-topbar .topbar-center-inner {
    transition: none;
    will-change: auto;
  }

  .home-topbar.is-search-hidden .topbar-center-inner {
    transform: none;
    opacity: 1;
    pointer-events: auto;
  }
}

.search {
  position: relative;
  display: block;
  width: 100%;
  margin: 0;
}

.search-input {
  width: 100%;
  height: 44px;
  border-radius: 999px;
  border: 0;
  outline: none;
  background: var(--surface-input);
  padding: 0 18px 0 42px;
  box-sizing: border-box;
  display: block;
  font-family: var(--font-main);
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-medium);
  color: var(--search-input-text);
  box-shadow: none;
}

.search-input::placeholder {
  color: rgba(var(--text-rgb), 0.50);
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-medium);
}

.search-icon {
  position: absolute;
  left: 16px;
  top: 50%;
  width: 15px;
  height: 15px;
  transform: translateY(-50%);
  opacity: 1;
  background-color: rgba(var(--text-rgb), 0.50);
  -webkit-mask: url("../assets/icons/search.svg") center/contain no-repeat;
  mask: url("../assets/icons/search.svg") center/contain no-repeat;
}

.daily-drop-popover {
  box-sizing: border-box;
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--text-100);
  box-shadow: none;
}

.daily-drop-popover-head {
  display: block;
}

.daily-drop-popover-body {
  margin-top: 20px;
  display: grid;
  grid-template-columns: 75px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
}

.daily-drop-popover-art {
  width: 75px;
  height: 75px;
  display: block;
  border-radius: 16px;
  object-fit: cover;
  background: var(--bg);
}

.daily-drop-popover-copy {
  min-width: 0;
}

.daily-drop-popover-copy-head {
  min-width: 0;
  display: flex;
  align-items: baseline;
  gap: 10px;
}

@media (min-width: 621px) {
  .daily-drop-popover-copy {
    padding-right: 18px;
  }
}

.daily-drop-popover-copy h3 {
  margin: 0;
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
}

.daily-drop-popover-copy p {
  margin: 3px 0 0;
  font-size: 14px;
  line-height: normal;
  font-weight: var(--fw-regular);
  letter-spacing: -0.02em;
  color: var(--text-70);
}

.daily-drop-popover-cta {
  width: var(--btn-blue-w);
  min-width: var(--btn-blue-min);
  max-width: var(--btn-blue-w);
  height: var(--btn-blue-h);
  min-height: var(--btn-blue-h);
  box-sizing: border-box;
  border: 1px solid transparent;
  border-radius: var(--btn-blue-radius);
  padding: var(--btn-blue-pad);
  background: var(--btn-blue-bg);
  color: var(--btn-blue-text);
  font-family: var(--font-main);
  font-size: var(--btn-blue-font);
  line-height: var(--btn-blue-lh);
  font-weight: var(--btn-blue-weight);
  letter-spacing: var(--btn-blue-ls);
  cursor: pointer;
  box-shadow: none;
}

.daily-drop-popover-cta:disabled {
  cursor: default;
  opacity: 1;
  box-shadow: none;
}

.daily-drop-popover-cta:disabled:not(.is-claimed):not(.is-async-loading) {
  opacity: .5;
}

.daily-drop-popover-cta.is-claimed,
.daily-drop-popover-cta.is-claimed:disabled {
  border: 1px solid var(--daily-drop-claimed-border);
  background: var(--daily-drop-claimed-bg);
  color: var(--daily-drop-claimed-text);
  opacity: 1;
  cursor: default;
  box-shadow: none;
}

.daily-drop-reset {
  flex: 0 0 auto;
  white-space: nowrap;
  font-family: var(--font-main);
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  font-weight: var(--glee-small-fw);
  letter-spacing: var(--glee-small-ls);
  color: var(--text-50);
}

body.app-hub .hub-xp-reset-icon {
  width: var(--reset-timer-icon-size, 20px);
  height: var(--reset-timer-icon-size, 20px);
  flex: 0 0 var(--reset-timer-icon-size, 20px);
  box-sizing: border-box;
  position: relative;
  display: inline-block;
  border: 3px solid var(--brand);
  border-radius: 50%;
}

body.app-hub .hub-xp-reset-icon::before {
  content: "";
  position: absolute;
  top: -6px;
  left: 50%;
  width: 4px;
  height: 5px;
  border-radius: 2px;
  background: var(--brand);
  transform: translateX(-50%);
}

body.app-hub .hub-xp-reset-icon::after {
  content: "";
  position: absolute;
  top: 4px;
  left: 50%;
  width: 2px;
  height: 6px;
  border-radius: 2px;
  background: var(--brand);
  transform-origin: 50% 100%;
  transform: translateX(-50%) rotate(35deg);
}

@media (max-width: 620px) {
  .daily-drop-popover {
    width: 100%;
    padding: 0;
    border-radius: 0;
  }

  .daily-drop-popover-body {
    grid-template-columns: 52px minmax(0, 1fr);
    grid-template-areas:
      "art copy"
      "cta cta";
    align-items: center;
    gap: 12px;
  }

  .daily-drop-popover-art {
    grid-area: art;
    width: 52px;
    height: 52px;
    border-radius: 15px;
  }

  .daily-drop-popover-copy {
    grid-area: copy;
  }

  .daily-drop-popover-copy h3 {
    white-space: nowrap;
  }

  .daily-drop-popover-cta {
    grid-area: cta;
    justify-self: center;
    width: var(--btn-blue-w);
    min-width: var(--btn-blue-min);
    max-width: var(--btn-blue-w);
    height: var(--btn-blue-h);
  }

}

/* top profile */
.top-profile {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}

.top-username {
  font-size: 17px;
  color: var(--text-100);
  font-weight: var(--fw-medium);
}

.top-avatar {
  width: 40px;
  height: 40px;
  border-radius: 999px;
  object-fit: cover;
}

.brand.is-clickable,
.top-profile.is-clickable,
.top-profile.is-clickable .top-username,
.top-profile.is-clickable .top-avatar {
  cursor: pointer;
}

/* main grid */
.home-grid {
  flex: 1;
  min-height: 0;
  
  display: grid;
  grid-template-columns: var(--d-col-left) 1fr var(--d-col-right);
  gap: var(--d-gap);
  padding-top: 24px;
}

/* sidebar */
.home-sidebar {
  height: 100%;
}

.side-nav {
  display: flex;
  flex-direction: column;
  width: 100%;
  gap: 10px;
}

.nav-item {
  width: 100%;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 999px;
  text-decoration: none;
  color: var(--text-70);
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
}

.nav-item:hover {
  background: rgba(0, 0, 0, 0.04);
}

.nav-item.is-active {
  background: #c7d6ff;
  color: var(--brand);
}

.nav-ico {
  width: 15px;
  height: 15px;
  background: var(--text-70);
}

.nav-ico-home {
  -webkit-mask: url("../assets/icons/home.svg") center/contain no-repeat;
  mask: url("../assets/icons/home.svg") center/contain no-repeat;
}

.nav-ico-community {
  -webkit-mask: url("../assets/icons/community.svg") center/contain no-repeat;
  mask: url("../assets/icons/community.svg") center/contain no-repeat;
}

.nav-ico-notifications {
  -webkit-mask: url("../assets/icons/notifications.svg") center/contain no-repeat;
  mask: url("../assets/icons/notifications.svg") center/contain no-repeat;
}

.nav-ico-profile {
  -webkit-mask: url("../assets/icons/profile.svg") center/contain no-repeat;
  mask: url("../assets/icons/profile.svg") center/contain no-repeat;
}

.nav-ico-settings {
  -webkit-mask: url("../assets/icons/settings.svg") center/contain no-repeat;
  mask: url("../assets/icons/settings.svg") center/contain no-repeat;
}

.nav-item.is-active .nav-ico {
  background: var(--brand);
}

.nav-divider {
  height: 1px;
  background: rgba(0, 0, 0, 0.08);
  margin: 6px 0;
  border-radius: 999px;
}

.btn-post {
  margin-top: 15px;
  width: var(--btn-blue-w);
  min-width: var(--btn-blue-min);
  height: var(--btn-blue-h);
  box-sizing: border-box;
  border-radius: var(--btn-blue-radius);
  border: 0;
  cursor: pointer;
  padding: var(--btn-blue-pad);
  background: var(--brand);
  color: #ffffff;
  font-size: var(--btn-blue-font);
  line-height: var(--btn-blue-lh);
  font-weight: var(--btn-blue-weight);
  letter-spacing: var(--btn-blue-ls);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}

/* feed scroll only here */
.home-feed {
  width: 100%;
  height: auto;
  overflow: visible;
  display: flex;
  justify-content: center;
}

/* one centered column wrapper (same width as feed) */
.home-center {
  width: 100%;
  max-width: var(--d-center);
}

.feed-grid {
  width: 100%;
  max-width: var(--d-center);
  height: auto;
  overflow: visible;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  align-content: start;
}

/* =========================
   HOME: Creators row + tabs
========================= */

body.app-home .creators-row {
  --featured-creator-avatar-size: 65px;
  width: 100%;
  padding-top: 6px;
  margin-bottom: 30px;
}

body.app-home .creators-title {
  font-size: 20px;
  line-height: 25px;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
  margin: 0;
}

body.app-home .creators-subtitle {
  margin: 12px 0 24px;
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-70);
}

body.app-home .creators-list {
  width: 100%;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0;
}

body.app-home .featured-creator-card {
  flex: 0 1 120px;
  min-width: 0;
  box-sizing: border-box;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: pointer;
  text-align: center;
  font: inherit;
  -webkit-tap-highlight-color: transparent;
}

body.app-home .featured-creator-avatar-wrap {
  width: var(--featured-creator-avatar-size);
  height: var(--featured-creator-avatar-size);
  border-radius: 999px;
  overflow: hidden;
  display: block;
  flex: 0 0 var(--featured-creator-avatar-size);
  background: rgba(0, 0, 0, 0.06);
}

body.app-home .featured-creator-avatar {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
  border-radius: 999px;
}

body.app-home .featured-creator-name-row {
  max-width: 120px;
  margin-top: 13px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 0;
}

body.app-home .featured-creator-name {
  min-width: 0;
  max-width: 96px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
}

body.app-home .featured-creator-verified {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  display: block;
}

body.app-home .featured-creator-username {
  max-width: 120px;
  margin-top: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-regular);
  color: var(--text-70);
}

body.app-home .featured-creator-card.is-skeleton {
  pointer-events: none;
}

body.app-home .featured-creator-card.is-skeleton .featured-creator-avatar-wrap,
body.app-home .featured-creator-card.is-skeleton .featured-creator-name {
  position: relative;
  overflow: hidden;
  background: var(--skeleton-base);
}

body.app-home .featured-creator-card.is-skeleton .featured-creator-avatar-wrap::after,
body.app-home .featured-creator-card.is-skeleton .featured-creator-name::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, var(--skeleton-highlight), transparent);
  transform: translateX(-120%);
  animation: skel-shimmer 1.1s infinite;
}

body.app-home .featured-creator-card.is-skeleton .featured-creator-name {
  width: 80px;
  height: 16px;
  border-radius: 999px;
}

/* Feed glass switcher */
body.app-home .home-tabs {
  position: sticky;
  top: var(--feed-switcher-sticky-top);
  z-index: 50;
  margin: 0 auto var(--home-feed-gap);

  width: var(--ui-switcher-w);
  max-width: var(--ui-switcher-w);
  height: var(--ui-switcher-h);
  box-sizing: border-box;

  display: grid;
  grid-template-columns: var(--ui-switcher-tab-w) var(--ui-switcher-tab-w);
  column-gap: var(--ui-switcher-gap);
  align-items: center;
  justify-content: center;

  padding: var(--ui-switcher-pad);
  overflow: hidden;

  border: 0;
  border-radius: var(--ui-switcher-radius);
  background: var(--glass-ui-bg);
  -webkit-backdrop-filter: var(--glass-ui-filter);
  backdrop-filter: var(--glass-ui-filter);
  box-shadow: var(--switcher-glass-shadow);

  margin: 42px auto -89px;
  transform: none;
}

body.app-home .home-tabs .tabs-indicator {
  display: none !important;
}

body.app-home .home-tab {
  position: relative;
  z-index: 1;

  width: var(--ui-switcher-tab-w);
  min-width: var(--ui-switcher-tab-w);
  max-width: var(--ui-switcher-tab-w);
  height: var(--ui-switcher-tab-h);
  box-sizing: border-box;

  border: 0;
  border-radius: var(--ui-switcher-radius);
  background: transparent;
  padding: 0;
  margin: 0;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  font-size: var(--switcher-font-size);
  line-height: var(--switcher-line-height);
  font-weight: var(--switcher-font-weight);
  letter-spacing: var(--switcher-letter-spacing);
  color: var(--switcher-text);

  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

body.app-home .home-tab.is-active {
  background: var(--switcher-active-bg);
  color: var(--switcher-active-text);
}

body.app-home .home-tab::before,
body.app-home .home-tab.is-active::before {
  display: none;
  content: none;
}

body.app-home .home-tab::after,
body.app-home .home-tab.is-active::after {
  display: none;
  content: none;
}

.feed-sentinel {
  height: 1px;
  width: 100%;
  grid-column: 1 / -1;
}

.feed-spacer {
  width: 100%;
  grid-column: 1 / -1;
  height: 0px;
  pointer-events: none;
}

.feed-top-sentinel {
  height: 1px;
  width: 100%;
  grid-column: 1 / -1;
}

/* Post cards outside Home. */
body:not(.app-home):not(.app-profile) .post-card {
  position: relative;
  width: 100%;
  max-width: var(--d-center);
  height: auto;
  display: block;
  justify-self: stretch;
  background: transparent;
  border-radius: 40px;
  clip-path: inset(0 round 40px);
  overflow: hidden;
  box-shadow: none;
  cursor: pointer;
  margin-bottom: 15px;
}

body:not(.app-home):not(.app-profile) .post-card .post-media {
  width: 100%;
  height: auto;
  overflow: hidden;
  background: transparent;
}

body:not(.app-home):not(.app-profile) .post-card .post-media-img,
body:not(.app-home):not(.app-profile) .post-card .post-media img,
body:not(.app-home):not(.app-profile) .post-card .post-media video {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}

body:not(.app-home):not(.app-profile) .post-card .post-card-tag {
  position: absolute;
  top: 25px;
  left: 42px;
  z-index: 3;

  width: fit-content;
  height: var(--app-content-tag-h);
  box-sizing: border-box;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--app-content-tag-gap);

  padding: 0 var(--app-content-tag-pad-x);

  border: var(--glass-content-border);
  border-radius: var(--glass-content-radius);
  background: var(--glass-content-bg);
  -webkit-backdrop-filter: var(--glass-content-filter);
  backdrop-filter: var(--glass-content-filter);
  box-shadow: var(--glass-content-shadow);

  color: var(--app-content-tag-color) !important;
  font-size: var(--app-content-tag-fs) !important;
  line-height: var(--app-content-tag-lh) !important;
  font-weight: var(--app-content-tag-fw) !important;
  letter-spacing: var(--app-content-tag-ls) !important;
}

body:not(.app-home):not(.app-profile) .post-card .post-card-tag-dot {
  width: var(--app-content-tag-dot);
  height: var(--app-content-tag-dot);
  border-radius: 999px;
  background: var(--app-content-tag-dot-bg);
  flex: 0 0 var(--app-content-tag-dot);
}

body:not(.app-home):not(.app-profile) .post-card .post-card-blur,
body:not(.app-home):not(.app-profile) .post-card .post-card-blur::before,
body:not(.app-home):not(.app-profile) .post-card .post-card-blur::after,
body:not(.app-home):not(.app-profile) .post-card .post-card-blur-layer {
  display: none !important;
  content: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  background: transparent !important;
}

body:not(.app-home):not(.app-profile) .post-card .post-meta {
  position: absolute;
  left: 42px;
  right: 42px;
  bottom: 25px;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 0;
  background: transparent;
}

body:not(.app-home):not(.app-profile) .post-card .post-copy {
  min-width: 0;
}

body:not(.app-home):not(.app-profile) .post-card .post-title {
  display: none !important;
}

body:not(.app-home):not(.app-profile) .post-card .post-author {
  width: fit-content;
  max-width: min(100%, 320px);
  height: var(--post-card-author-pill-height);
  box-sizing: border-box;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;

  padding: 0 var(--post-card-author-pill-pad-right) 0 var(--post-card-author-pill-pad-left);

  border: var(--glass-content-border);
  border-radius: var(--glass-content-radius);
  background: var(--glass-content-bg);
  -webkit-backdrop-filter: var(--glass-content-filter);
  backdrop-filter: var(--glass-content-filter);
  box-shadow: var(--glass-content-shadow);

  min-width: 0;
  overflow: hidden;

  font-size: 15px !important;
  line-height: 22px !important;
  font-weight: var(--fw-medium) !important;
  letter-spacing: var(--ls-medium) !important;
  color: var(--text-inverse) !important;
}

body:not(.app-home):not(.app-profile) .post-card .post-author * {
  color: var(--text-inverse) !important;
  font-size: 15px !important;
  line-height: 22px !important;
  font-weight: var(--fw-medium) !important;
  letter-spacing: var(--ls-medium) !important;
}

body:not(.app-home):not(.app-profile) .post-card .post-author-ava {
  width: var(--post-card-author-avatar-size);
  height: var(--post-card-author-avatar-size);
  flex: 0 0 var(--post-card-author-avatar-size);
  border-radius: 999px;
  display: inline-block;
  background-color: rgba(255, 255, 255, 0.22);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  flex-shrink: 0;
  box-sizing: border-box;
}

body:not(.app-home):not(.app-profile) .post-card .post-author-text {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  overflow: hidden;
}

body:not(.app-home):not(.app-profile) .post-card .post-author-name {
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body:not(.app-home):not(.app-profile) .post-card .post-author-verified {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  display: block;
  object-fit: contain;
}

body:not(.app-home):not(.app-profile) .post-card .verified-badge {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
}

body:not(.app-home):not(.app-profile) .post-card .post-details-btn {
  width: var(--btn-blue-w);
  min-width: var(--btn-blue-min);
  height: var(--btn-blue-h);
  box-sizing: border-box;
  flex: 0 0 var(--btn-blue-w);
  align-self: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: var(--btn-blue-radius);
  background: var(--btn-blue-bg);
  color: var(--btn-blue-text) !important;
  font-size: var(--btn-blue-font) !important;
  line-height: var(--btn-blue-lh) !important;
  font-weight: var(--btn-blue-weight) !important;
  letter-spacing: var(--btn-blue-ls) !important;
  text-transform: uppercase;
  pointer-events: none;
  white-space: nowrap;
}



/* Home feed post card */
.social-post-feed > .post-card {
  position: relative;
  width: 100%;
  max-width: var(--d-center);
  height: auto;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 30px;
  justify-self: stretch;
  padding: 30px;
  margin: 0;
  border: 0;
  border-radius: var(--app-tile-radius, 40px);
  background: var(--surface-card);
  box-shadow: none;
  overflow: visible;
  cursor: pointer;
}

.social-post-feed > .post-card + .post-card {
  margin-top: var(--home-feed-gap);
}

.social-post-feed > .post-card.is-skeleton {
  overflow: hidden;
}

.social-post-feed .post-card-header {
  width: 100%;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.social-post-feed .post-card-author {
  min-width: 0;
  max-width: calc(100% - 90px);
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--text-100);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-main);
  font-size: 16px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  text-align: left;
  cursor: pointer;
}

.social-post-feed .post-card-author .post-author-ava {
  width: 50px;
  height: 50px;
  flex: 0 0 50px;
  display: block;
  border-radius: 999px;
  object-fit: cover;
  object-position: center;
  background: rgba(var(--text-rgb), 0.08);
}

.social-post-feed .post-card-author .post-author-text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.social-post-feed .post-card-author .post-author-verified {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  display: block;
  object-fit: contain;
}

.social-post-feed .post-author-badge-slot {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.social-post-feed .post-author-badge-slot:empty {
  display: none;
}

.social-post-feed .post-card-date {
  flex: 0 0 auto;
  font-family: var(--font-main);
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-regular);
  color: var(--text-55);
  white-space: nowrap;
}

.social-post-feed .post-card-text {
  margin: 0;
  font-family: var(--font-main);
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-90);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.social-post-feed .post-card-media {
  width: 100%;
  min-width: 0;
  display: grid;
  gap: 15px;
  border-radius: var(--app-tile-radius, 40px);
  overflow: hidden;
  background: transparent;
  cursor: pointer;
}

.social-post-feed .post-card-media.is-fit {
  display: block;
}

.social-post-feed .post-card-media.is-fit .post-card-media-item {
  width: 100%;
  height: auto;
  max-height: none;
  display: block;
  object-fit: contain;
}

.social-post-feed .post-card-media.is-fill {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.social-post-feed .post-card-media.is-fill.media-count-2,
.social-post-feed .post-card-media.is-fill.media-count-3 {
  aspect-ratio: 2 / 1;
}

.social-post-feed .post-card-media.is-fill.media-count-4 {
  aspect-ratio: 1 / 1;
  grid-template-rows: repeat(2, minmax(0, 1fr));
}

.social-post-feed .post-card-media.media-count-3 {
  grid-template-rows: repeat(2, minmax(0, 1fr));
}

.social-post-feed .post-card-media.media-count-3 .post-card-media-item:first-child {
  grid-row: 1 / 3;
}

.social-post-feed .post-card-media.is-fill .post-card-media-item {
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  display: block;
  object-fit: cover;
  border-radius: var(--glee-radius-card-inner);
  overflow: hidden;
}

.social-post-feed .post-card-footer {
  width: 100%;
  min-height: 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.post-card-like {
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--text-55);
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-main);
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-regular);
  cursor: pointer;
}

.post-card-like .post-ico {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  display: block;
  background: currentColor;
  -webkit-mask: url("../assets/icons/like-icon.svg") center / contain no-repeat;
  mask: url("../assets/icons/like-icon.svg") center / contain no-repeat;
}

.post-card-like .post-action-num {
  color: currentColor;
}

.post-card-like.is-liked {
  color: var(--brand);
}

.social-post-feed .post-card-actions {
  position: relative;
  flex: 0 0 auto;
}

.social-post-feed .post-card-actions .post-actions-right {
  position: relative;
}

.social-post-feed .post-card-actions .post-action {
  padding: 0;
}

.social-post-feed .post-card-actions .post-ico.is-more {
  width: 18px;
  height: 18px;
}

.social-post-feed .post-card-actions .post-more-menu {
  top: auto;
  bottom: 34px;
}

.social-post-feed > .post-card.is-skeleton {
  background: var(--surface-card);
}

.social-post-feed .post-card.is-skeleton .post-author-ava,
.social-post-feed .post-card.is-skeleton .post-author-text,
.social-post-feed .post-card.is-skeleton .post-card-date,
.social-post-feed .post-card.is-skeleton .post-card-text,
.social-post-feed .post-card.is-skeleton .post-card-media {
  position: relative;
  overflow: hidden;
}

.social-post-feed .post-card.is-skeleton .post-author-ava,
.social-post-feed .post-card.is-skeleton .post-author-text,
.social-post-feed .post-card.is-skeleton .post-card-date,
.social-post-feed .post-card.is-skeleton .post-card-text,
.social-post-feed .post-card.is-skeleton .post-card-media {
  background: var(--skel);
}

.social-post-feed .post-card.is-skeleton .post-card-date {
  width: 54px;
  height: 14px;
  border-radius: 999px;
}

.social-post-feed .post-card.is-skeleton .post-card-text {
  width: 64%;
  height: 42px;
  border-radius: 12px;
}

.social-post-feed .post-card.is-skeleton .post-card-media {
  min-height: 420px;
}

.btn-join {
  width: var(--btn-blue-w);
  height: var(--btn-blue-h);
  min-width: var(--btn-blue-min);
  box-sizing: border-box;
  border-radius: var(--btn-blue-radius);
  border: 0;
  cursor: pointer;
  padding: var(--btn-blue-pad);
  background: var(--btn-blue-bg);
  color: var(--btn-blue-text);
  font-size: var(--btn-blue-font);
  line-height: var(--btn-blue-lh);
  font-weight: var(--btn-blue-weight);
  letter-spacing: var(--btn-blue-ls);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}

.row-divider {
  height: 1px;
  background: var(--border-subtle);
  border-radius: 999px;
}

body {
  margin: 0;
  overflow: hidden;

  /* app base */
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-main);

  overscroll-behavior-y: none;
}

.social-post-feed .post-card.is-skeleton .post-author-ava {
  width: 50px;
  height: 50px;
  flex: 0 0 50px;
  border-radius: 999px;
}

.social-post-feed .post-card.is-skeleton .post-author-text {
  display: inline-block;
  width: 140px;
  height: 12px;
  border-radius: 999px;
}

.home-scroll {
  height: 100vh;
  overflow-y: scroll;
  overflow-x: hidden;
  scrollbar-gutter: stable;
}

@media (min-width: 901px) {
  body.app .home-scroll::-webkit-scrollbar {
    width: 10px;
    height: 10px;
  }

  body.app .home-scroll::-webkit-scrollbar-track {
    background: var(--scrollbar-track);
  }

  body.app .home-scroll::-webkit-scrollbar-thumb {
    background: var(--scrollbar-thumb);
    border-radius: 999px;
  }
}

.home-sidebar {
  position: sticky;
  top: 120px;
  align-self: start;
  height: fit-content;
}


/* =========================
   CREATE POST MODAL
========================= */

body.modal-open {
  overflow: hidden;
}

/* modal base */
.modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  overflow-y: auto;
  overflow-x: hidden;
}

.modal.is-open{
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

/* Profile Edit: centered modal (same behavior as other modals) */
#profileEditModal.is-open{
  overflow-y: auto;
  overflow-x: hidden;

  /* center the panel in viewport */
  align-items: center;
  justify-content: center;

  /* small safe padding so it never touches edges */
  padding: 24px;
}

#profileEditModal .modal-panel.profile-edit-panel {
  margin: 0 auto;
}

/* backdrop */
.modal-backdrop {
  position: fixed;
  inset: 0;
  background: var(--modal-backdrop-bg);
  backdrop-filter: var(--modal-backdrop-filter);
  -webkit-backdrop-filter: var(--modal-backdrop-filter);
}

/* panel */
.modal-panel {
  position: relative;
  top: auto !important;
  margin-top: 0 !important;

  width: var(--modal-form-w);
  max-width: var(--modal-form-max);

  height: auto;
  max-height: none;
}

.glee-app-info-modal.is-open {
  align-items: center;
  justify-content: center;
  padding: 24px;
  box-sizing: border-box;
  overflow: hidden;
}

.glee-app-info-panel {
  width: min(680px, calc(100vw - 48px));
  max-width: min(680px, calc(100vw - 48px));
  max-height: var(--info-modal-max-height);
  outline: 0;
}

.glee-app-info-card {
  position: relative;
  box-sizing: border-box;
  width: 100%;
  max-height: var(--info-modal-max-height);
  padding: 38px;
  border-radius: var(--modal-form-radius);
  background: var(--surface-card);
  color: var(--text-100);
  box-shadow: 0 30px 80px rgba(0,0,0,0.18);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.glee-app-info-title {
  flex: 0 0 auto;
  margin: 0;
  font-size: var(--app-page-title-fs);
  line-height: var(--app-page-title-lh);
  font-weight: var(--app-page-title-fw);
  letter-spacing: var(--app-page-title-ls);
  color: var(--text-100);
}

.glee-app-info-body {
  flex: 1 1 auto;
  min-height: 0;
  margin-top: 28px;
  padding-right: 8px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.glee-app-info-section {
  padding: 0 0 30px;
  border-bottom: 1px solid rgba(var(--text-rgb), .10);
}

.glee-app-info-section + .glee-app-info-section {
  padding-top: 30px;
}

.glee-app-info-section-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
}

.glee-app-info-version-pill {
  flex: 0 0 auto;
  height: var(--glee-tag-h);
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 14px;
  border: var(--glee-glass-content-border);
  border-radius: var(--glee-radius-pill);
  background: var(--glee-glass-content-bg);
  -webkit-backdrop-filter: var(--glee-glass-content-filter);
  backdrop-filter: var(--glee-glass-content-filter);
  box-shadow: var(--glee-glass-content-shadow);
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  font-weight: var(--fw-medium);
  letter-spacing: var(--glee-small-ls);
  color: var(--text-100);
}

.glee-app-info-section h3 {
  margin: 0;
  font-size: var(--fs-post-card-title);
  line-height: var(--lh-post-card-title);
  font-weight: var(--fw-post-card-title);
  letter-spacing: var(--ls-post-card-title);
  color: var(--text-100);
}

.glee-app-info-section li,
.glee-app-info-note {
  font-size: var(--glee-body-fs);
  line-height: var(--glee-body-lh);
  font-weight: var(--glee-body-fw);
  letter-spacing: var(--glee-body-ls);
  color: var(--text-70);
}

.glee-app-info-section ul {
  margin: 0;
  padding-left: 18px;
}

.glee-app-info-section li + li {
  margin-top: 8px;
}

.glee-app-info-note {
  margin: 30px 0 0;
}

#postModal.modal.is-open {
  align-items: flex-start;
  justify-content: center;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 24px 0;
  box-sizing: border-box;
}

#postModal .modal-panel {
  width: var(--modal-form-w);
  max-width: var(--modal-form-max);
  height: auto;
  max-height: none;
  margin: 0 auto;
  display: block;
}

/* modal box */
.cp-modal {
  width: 100%;
  height: auto;

  background: #FFFFFF;
  border-radius: 24px;
  box-shadow: 0 30px 80px rgba(0,0,0,0.25);

  padding: 62px var(--modal-form-pad-x) 34px;
  position: relative;
  box-sizing: border-box;

  overflow: visible;
}

#postModal .cp-modal {
  height: auto;
  max-height: none;
  overflow: visible;
}

/* back button */
.cp-back {
  background: none;
  border: none;
  font-size: 15px;
  font-weight: var(--fw-medium);
  color: var(--text-100);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  margin-bottom: 18px;
}

.cp-back-icon {
  width: 13px;
  height: 13px;
  background-color: var(--text-100);
  -webkit-mask: url("../assets/icons/back-icon.svg") no-repeat center;
  mask: url("../assets/icons/back-icon.svg") no-repeat center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.cp-back:hover {
  opacity: 0.7;
}

/* layout */
.cp-content{
  display: flex;
  flex-direction: column;
  gap: 24px;
}

/* LEFT */
.cp-left,
.cp-right{
  width: 100%;
}

.cp-left-head {
  display: flex;
  justify-content: space-between;
  align-items: center;

  padding-right: 0;

  margin-bottom: 0px;
}

.cp-left-title {
  font-size: 18px;
  font-weight: var(--fw-semibold);
  color: var(--text-100);
}

.cp-count {
  font-size: 14px;
  color: var(--text-55);
}

/* upload zone */
.cp-media {
  width: 100%;
  aspect-ratio: 1 / 1;
  height: auto;

  border-radius: 24px;
  position: relative;
  background: #F8FAFC;
  box-sizing: border-box;

  margin-top: 12px;

  overflow: visible;

  box-shadow: 1px 1px 3px rgba(0,0,0,0.10);
}

.cp-media.has-files {
  aspect-ratio: auto;
  height: auto;
  background: transparent;
  border: 0;

  box-shadow: none;
}

.cp-media.has-files .cp-empty {
  display: none !important;
}

/* empty state */
.cp-empty {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  cursor: pointer;
}

.cp-empty-icon {
  width: 54px;
  height: 54px;
  border-radius: 999px;
  background: rgba(255,255,255,0.9);
  border: 1px solid rgba(11, 16, 32, 0.08);

  margin-bottom: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cp-empty-icon::before {
  content: "";
  display: block;
  width: 22px;
  height: 22px;
  background-color: var(--brand);
  -webkit-mask: url("../assets/icons/upload-icon.svg") no-repeat center;
  mask: url("../assets/icons/upload-icon.svg") no-repeat center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.cp-empty-title {
  font-size: 15px;
  font-weight: var(--fw-semibold);
  margin-bottom: 6px;
  color: var(--text-100);
}

.cp-empty-sub {
  font-size: 14px;
  color: var(--text-70);
}

/* grid */
.cp-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;

  padding: 0;
  margin: 0;
  box-sizing: border-box;

  align-content: start;
  justify-content: start;
  overflow: hidden;
}

.cp-media:not(.has-files) .cp-grid{
  position: absolute;
  inset: 16px;
}

.cp-media.has-files .cp-grid{
  position: static;
  padding: 0;
}

/* tile */
.cp-tile {
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 18px;
  overflow: hidden;
  position: relative;
  background: rgba(0,0,0,0.06);
  cursor: pointer;
}

.cp-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* delete */
.cp-del{
  position: absolute;
  top: 6px;
  right: 6px;

  width: 22px;
  height: 22px;

  display: flex;
  align-items: center;
  justify-content: center;

  padding: 0;
  border: none;
  border-radius: 50%;

  background: rgba(0,0,0,0.6);
  color: #fff;

  font-size: 14px;
  line-height: 1;

  cursor: pointer;
}

.cp-del:hover {
  background: rgba(0,0,0,0.8);
}

/* add tile */
.cp-add {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  background: #F8FAFC;

  border: 1px solid rgba(11, 16, 32, 0.10);
  color: var(--text-70);
}

.cp-add-plus {
  font-size: 26px;
  margin-bottom: 4px;
  color: var(--brand);
}

/* help text */
.cp-help {
  margin-top: 20px;
  font-size: 14px;
  color: var(--text-55);
  text-align: center;
  width: 547px;
}

/* RIGHT */
.cp-right {
  width: 334px;
  display: flex;
  flex-direction: column;
}

.cp-right label[for="cpDesc"]{
  margin-top: 22px;
}

.cp-label {
  font-size: 15px;
  font-weight: var(--fw-semibold);
  color: var(--text-100);
  line-height: 1.2;
}

.cp-input {
  width: 100%;
  box-sizing: border-box;
  margin-top: 0;
  height: 44px;

  border: 0;
  border-bottom: 1px solid rgba(11, 16, 32, 0.10);
  border-radius: 0;

  padding: 0;
  font-size: 15px;
  font-weight: var(--fw-medium);

  font-family: var(--font-main);
  background: transparent;
  color: var(--text-100);
}

.cp-input::placeholder{
  color: var(--text-55);
  font-weight: var(--fw-medium);
}

.cp-input:focus,
.cp-textarea:focus {
  outline: none;
  border-color: var(--brand);
}

.cp-divider {
  height: 1px;
  background: #e5e5e5;
  margin: 36px 0;
}

.cp-textarea {
  width: 100%;
  box-sizing: border-box;
  margin-top: 0;
  height: 110px;

  border-radius: 18px;
  border: 1px solid rgba(11, 16, 32, 0.10);
  background: #FFFFFF;

  padding: 14px 14px;
  resize: none;

  font-size: 15px;
  font-weight: var(--fw-medium);
  color: var(--text-100);

  font-family: var(--font-main);
}

.cp-textarea::placeholder{
  color: var(--text-55);
  font-weight: var(--fw-medium);
}

.cp-fields{
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-top: 10px;
}

.cp-field{
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.create-post-tag-field{
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.create-post-tag-label{
  font-size: 15px;
  font-weight: var(--fw-semibold);
  line-height: 1.2;
  color: var(--text-100);
}

.create-post-tag-options{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.create-post-tag-chip{
  --tag-color: var(--brand);
  height: 38px;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--tag-color) 26%, transparent);
  padding: 0 16px 0 12px;
  font-family: var(--font-main);
  font-size: 14px;
  font-weight: var(--fw-semibold);
  line-height: 1;
  letter-spacing: var(--ls-medium);
  color: var(--tag-color);
  background: color-mix(in srgb, var(--tag-color) 10%, transparent);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: border-color .16s ease, background .16s ease, color .16s ease, opacity .16s ease;
}

.create-post-tag-chip:hover{
  opacity: 0.92;
}

.create-post-tag-chip:focus-visible{
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

.create-post-tag-icon{
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  background: currentColor;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.create-post-tag-chip--art{
  --tag-color: var(--culture-tag-art);
}

.create-post-tag-chip--anime{
  --tag-color: var(--culture-tag-anime);
}

.create-post-tag-chip--music{
  --tag-color: var(--culture-tag-music);
}

.create-post-tag-chip--photo{
  --tag-color: var(--culture-tag-photo);
}

.create-post-tag-chip--art .create-post-tag-icon{
  -webkit-mask-image: url("../assets/icons/tag-art.svg");
  mask-image: url("../assets/icons/tag-art.svg");
}

.create-post-tag-chip--photo .create-post-tag-icon{
  -webkit-mask-image: url("../assets/icons/tag-photo.svg");
  mask-image: url("../assets/icons/tag-photo.svg");
}

.create-post-tag-chip--anime .create-post-tag-icon{
  -webkit-mask-image: url("../assets/icons/tag-anime.svg");
  mask-image: url("../assets/icons/tag-anime.svg");
}

.create-post-tag-chip--music .create-post-tag-icon{
  -webkit-mask-image: url("../assets/icons/tag-music.svg");
  mask-image: url("../assets/icons/tag-music.svg");
}

.create-post-tag-chip.is-selected{
  color: #fff;
  border-color: transparent;
  background: var(--tag-color);
  box-shadow: none;
}

.create-post-tag-error{
  min-height: 8px;
  font-size: 12px;
  font-weight: var(--fw-semibold);
  line-height: 1.35;
  color: #D33;
}

/* labels hidden via .sr-only, keep for a11y */
.cp-label.sr-only{
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* POST button */
.cp-post {
  width: 100%;
  height: var(--btn-blue-h);

  border-radius: var(--btn-blue-radius);
  border: none;
  padding: var(--btn-blue-pad);

  background: var(--brand);
  color: #fff;

  font-size: var(--btn-blue-font);
  line-height: var(--btn-blue-lh);
  font-weight: var(--btn-blue-weight);
  letter-spacing: var(--btn-blue-ls);

  cursor: pointer;

  margin-top: 8px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}

.cp-divider{ display:none; }
.cp-right{ display:none; }
.cp-help{ display:none; }

.cp-post:disabled {
  opacity: 0.4;
  cursor: default;
}

.cp-media,
.cp-empty,
.cp-grid,
.cp-tile-add {
  cursor: pointer;
}

.cp-del,
.cp-post,
.cp-back {
  cursor: pointer;
}

.cp-tile img {
  cursor: pointer;
}

.cp-grid,
.cp-tile,
.cp-tile-add {
  box-sizing: border-box;
}

.page-center {
  height: 100%;
  min-height: 0;
}

/* =========================
   COMMUNITY (center only)
========================= */

.app-community .page-center,
.app-profile .page-center,
.app-events .page-center,
.app-settings .page-center,
.app-notifications .page-center,
.app-signals .page-center {
  display: flex;
  justify-content: center;
  min-height: 0;
}

.app-community .community-wrap {
  width: 100%;
  max-width: var(--d-center);
  display: flex;
  flex-direction: column;
  padding-top: 6px;
}

/* hero */
.app-community .community-hero {
  width: 100%;
  max-width: var(--d-center);
  height: var(--community-hero-h);
  aspect-ratio: auto;
  border-radius: var(--app-tile-radius);
  overflow: hidden;
  position: relative;
  background: transparent;
  box-shadow: none;
}

.app-community .community-hero-media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

body.app-community .community-hero-media {
  transform: scale(1.04) !important;
  transform-origin: center;
}

.app-community .community-hero::after {
  content: "";
  position: absolute;
  inset: -1px;
  z-index: 1;
  background: var(--community-hero-gradient);
  pointer-events: none;
}

/* overlay */
.app-community .community-hero[hidden] { display: none; }
.app-community .community-hero.is-skeleton {
  background: var(--skel);
  pointer-events: none;
}
.app-community .community-hero.is-skeleton > * { visibility: hidden; }
body.app-community .community-hero.is-skeleton::after {
  inset: 0;
  background: linear-gradient(90deg, transparent, var(--skel-shine), transparent) !important;
  transform: translateX(-120%);
  animation: skel-shimmer 1.1s infinite;
}

.app-community .community-hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  padding: 26px;
  box-sizing: border-box;

}

.app-community .community-hero-copy {
  width: 430px;
  max-width: calc(100% - 52px);
}

/* title */
.app-community .community-hero-title {
  margin: var(--community-hero-title-offset-y) 0 0;
  font-size: var(--community-hero-title-fs);
  line-height: var(--community-hero-title-lh);
  font-weight: var(--community-hero-title-fw);
  letter-spacing: var(--community-hero-title-ls);
  color: var(--community-hero-title-color);
}

/* desc */
.app-community .community-hero-desc {
  margin-top: 10px;
  max-width: 360px;
  font-size: var(--community-hero-subtitle-fs);
  line-height: var(--community-hero-subtitle-lh);
  font-weight: var(--community-hero-subtitle-fw);
  letter-spacing: var(--community-hero-subtitle-ls);
  color: var(--community-hero-subtitle-color);
}

/* Join action */
.app-community .community-hero-join {
  position: absolute;
  left: 30px;
  bottom: 30px;

  width: var(--btn-blue-w);
  min-width: var(--btn-blue-min);
  height: var(--btn-blue-h);
  box-sizing: border-box;
  padding: var(--btn-blue-pad);

  display: inline-flex;
  align-items: center;
  justify-content: center;

  font-size: var(--btn-blue-font);
  line-height: var(--btn-blue-lh);
  font-weight: var(--btn-blue-weight);
  letter-spacing: var(--btn-blue-ls);

  border: 0;
  border-radius: var(--btn-blue-radius);
  background: var(--btn-blue-bg);
  color: var(--btn-blue-text);
  text-decoration: none;
  white-space: nowrap;
  z-index: 3;
}

@media (min-width: 901px) and (max-width: 1727.98px) {
  .app-community .community-hero-copy {
    width: 370px;
  }
}

/* feature cards */
.app-community .community-tiles {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--community-card-gap);
  margin-top: var(--community-card-gap);
}

.app-community .community-tile {
  position: relative;
  height: var(--community-feature-card-h);
  min-height: var(--community-feature-card-h);
  box-sizing: border-box;
  border-radius: var(--app-tile-radius);
  overflow: hidden;
  padding: 30px;
  text-decoration: none;
  color: inherit;
  display: block;
  box-shadow: none;
  transition: transform 160ms ease;
  will-change: transform;
}

.app-community .community-tile:hover {
  transform: translateY(-1px);
}

.app-community .community-feature-card--events {
  background: var(--community-events-gradient);
  color: var(--text-inverse);
}

.app-community .community-feature-card--leaderboard {
  background: #FFFFFF;
  color: #080D20;
}

html[data-resolved-theme="dark"] body.app-community .community-feature-card--leaderboard {
  background: linear-gradient(135deg, #121212 4%, #424242 69%);
  color: var(--text-inverse);
}

.app-community .community-feature-copy {
  position: relative;
  z-index: 2;
}

.app-community .community-feature-title {
  margin: 0;
  font-size: var(--community-card-title-fs) !important;
  line-height: var(--community-card-title-lh) !important;
  font-weight: var(--community-card-title-fw) !important;
  letter-spacing: var(--community-card-title-ls) !important;
}

.app-community .community-feature-card--events .community-feature-title {
  color: var(--text-inverse) !important;
}

.app-community .community-feature-card--leaderboard .community-feature-title {
  color: #080D20;
}

.app-community .community-feature-subtitle {
  margin: 5px 0 0;
  font-size: var(--community-card-subtitle-fs) !important;
  line-height: var(--community-card-subtitle-lh) !important;
  font-weight: var(--community-card-subtitle-fw) !important;
  letter-spacing: var(--community-card-subtitle-ls) !important;
}

.app-community .community-feature-card--events .community-feature-subtitle {
  color: rgba(255, 255, 255, 0.72) !important;
}

.app-community .community-feature-card--leaderboard .community-feature-subtitle {
  color: rgba(8, 13, 32, 0.70);
}

.app-community .community-feature-img,
body.app-signals .signals-analyze-card-img {
  position: absolute;
  z-index: 1;
  width: 199px;
  height: 190px;
  right: 0;
  bottom: 0;
  object-fit: contain;
  pointer-events: none;
  user-select: none;
}

.app-community .community-feature-action {
  position: absolute;
  left: 30px;
  bottom: 30px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  text-decoration: none;
  font-size: 0 !important;
  line-height: 0 !important;
}

.app-community .community-feature-action > span:not(.community-feature-action-icon) {
  font-size: var(--community-action-fs) !important;
  line-height: var(--community-action-lh) !important;
  font-weight: var(--community-action-fw) !important;
  letter-spacing: var(--community-action-ls) !important;
}

.app-community .community-feature-action-icon {
  width: 18px;
  height: 18px;
  display: block;
  flex: 0 0 18px;
  background-color: currentColor;
  -webkit-mask-image: url("../assets/icons/cta-arrow-circle-light.svg");
  mask-image: url("../assets/icons/cta-arrow-circle-light.svg");
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.app-community .community-feature-card--events .community-feature-action {
  color: var(--text-inverse) !important;
}

.app-community .community-feature-card--leaderboard .community-feature-action {
  color: #080D20;
}

html[data-resolved-theme="dark"] body.app-community .community-feature-card--leaderboard .community-feature-title,
html[data-resolved-theme="dark"] body.app-community .community-feature-card--leaderboard .community-feature-action {
  color: var(--text-inverse);
}

html[data-resolved-theme="dark"] body.app-community .community-feature-card--leaderboard .community-feature-subtitle {
  color: rgba(255, 255, 255, 0.72);
}

/* Community chronological activity */
.app-community .community-activity {
  width: 100%;
  margin-top: 38px;
  padding-bottom: 0;
}

.app-community .community-activity-title {
  margin: 0 0 18px;
}

.app-community .community-activity-list {
  display: grid;
  gap: 30px;
  overflow: visible;
  background: transparent;
}

.app-community .community-activity-row {
  display: grid;
  grid-template-columns: 50px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  min-width: 0;
  min-height: 50px;
  padding: 0;
  box-sizing: border-box;
  border: 0;
  background: transparent;
}

.app-community .community-activity-avatar {
  width: 50px;
  height: 50px;
  display: block;
  background: transparent;
  text-decoration: none;
}

.app-community .community-activity-avatar.is-profile,
.app-community .community-activity-avatar.is-collection {
  border-radius: 999px;
  overflow: hidden;
}

.app-community .community-activity-avatar-image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.app-community .community-activity-copy {
  display: grid;
  row-gap: 3px;
  align-self: center;
  min-width: 0;
  font-family: var(--glee-font);
  font-size: var(--glee-body-fs);
  line-height: var(--glee-body-lh);
  font-weight: var(--glee-body-medium-fw);
  letter-spacing: var(--glee-body-ls);
  color: var(--text-100);
  opacity: 1;
  overflow-wrap: anywhere;
}

.app-community .community-activity-text {
  min-width: 0;
}

.app-community .community-activity-identity {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: inherit;
  text-decoration: none;
}

.app-community .community-activity-identity strong {
  font-weight: inherit;
}

.app-community .community-activity-actor-link {
  color: var(--brand);
  font: inherit;
  text-decoration: none;
}

.app-community .community-activity-collection-identity {
  color: var(--text-100);
  pointer-events: none;
}

.app-community .community-activity-badge {
  width: 22px;
  height: 22px;
  display: inline-block;
  flex: 0 0 22px;
  object-fit: contain;
}

.app-community .community-activity-link {
  display: inline-block;
  margin-top: 4px;
  color: var(--brand);
  text-decoration: none;
  font-weight: var(--fw-medium);
}

.app-community .community-activity-time {
  justify-self: start;
  white-space: nowrap;
  font-family: var(--glee-font);
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  font-weight: var(--glee-small-fw);
  letter-spacing: var(--glee-small-ls);
  color: var(--text-70);
}

.app-community .community-activity-status {
  padding: 18px 4px;
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-regular);
  color: var(--text-70);
  text-align: center;
}

.app-community .community-activity-pager {
  min-height: 0;
  display: grid;
  place-items: center;
}

.app-community .community-activity-more {
  min-height: 34px;
  padding: 0 18px;
  border: 0;
  border-radius: 999px;
  background: var(--surface-secondary);
  color: var(--text-100);
  font: inherit;
  cursor: pointer;
}

.app-community .community-activity-more:disabled {
  cursor: default;
  opacity: 0.7;
}

.app-community .community-activity-sentinel {
  width: 1px;
  height: 1px;
  display: block;
}

.app-community .community-activity [hidden] {
  display: none;
}

/* =========================
   PROFILE (center + right)
========================= */

.app-profile .profile-wrap {
  width: 100%;
  max-width: var(--d-center);
  display: flex;
  flex-direction: column;
  gap: 0;
  padding-top: 6px;
}

.app-profile .profile-header {
  width: 100%;
  max-width: var(--d-center);
  height: var(--profile-header-card-h);
  box-sizing: border-box;
  position: relative;
  display: block;
  background: var(--profile-header-card-bg);
  border-radius: var(--profile-header-card-radius);
  overflow: visible;
  margin-top: 0;
  margin-bottom: 17px;
}

.app-profile .profile-banner {
  position: relative;
  width: calc(100% - (var(--profile-header-pad) * 2));
  height: var(--profile-banner-h);
  margin: var(--profile-header-pad) auto 0;
  border-radius: var(--profile-banner-radius);
  overflow: hidden;
  background: rgba(var(--text-rgb), 0.08);
}

.app-profile .profile-banner-img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}

.app-profile .profile-banner-overlay {
  display: none !important;
}

.app-profile .profile-banner-tags,
.app-post-details .profile-banner-tags {
  position: absolute;
  top: 22px;
  left: 32px;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.app-profile .profile-banner-tags[hidden],
.app-post-details .profile-banner-tags[hidden] {
  display: none !important;
}

.app-profile .profile-banner-tag,
.app-post-details .profile-banner-tag {
  height: 38px;
  padding: 0 18px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--text-inverse);
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
}

.app-profile .profile-banner-tag[hidden],
.app-post-details .profile-banner-tag[hidden],
.app-profile .profile-display-verified[hidden],
.app-post-details .profile-display-verified[hidden],
.app-profile .profile-level-pill[hidden] {
  display: none !important;
}

.app-profile .profile-banner-tag-dot,
.app-post-details .profile-banner-tag-dot {
  width: 11px;
  height: 11px;
  border-radius: 999px;
  flex: 0 0 auto;
}

.app-profile .profile-display-pill {
  position: absolute;
  left: 191px;
  bottom: var(--profile-display-pill-banner-bottom);
  z-index: 2;

  width: fit-content;
  max-width: min(430px, calc(100% - 370px));
  height: var(--profile-display-pill-h);
  min-height: var(--profile-display-pill-h);
  box-sizing: border-box;

  padding: 0 var(--profile-display-pill-pad-x);

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--profile-display-pill-gap);

  overflow: hidden;

  border: var(--glass-content-border);
  border-radius: var(--glass-content-radius);
  background: var(--glass-content-bg);
  -webkit-backdrop-filter: var(--glass-content-filter);
  backdrop-filter: var(--glass-content-filter);
  box-shadow: var(--glass-content-shadow);
}

.app-profile .profile-display-verified,
.app-post-details .profile-display-verified {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  display: block;
}

.app-profile .profile-body {
  position: relative;
  height: calc(var(--profile-header-card-h) - var(--profile-banner-h) - var(--profile-header-pad));
  box-sizing: border-box;
  padding: 22px 48px 34px 204px;
}

.app-profile .profile-avatar-wrap {
  position: absolute;
  left: 34px;
  top: -64px;
  z-index: 3;
  width: var(--profile-avatar-size);
  display: flex;
  flex-direction: column;
  align-items: center;
}

.app-profile .profile-main-copy {
  min-width: 0;
  max-width: 520px;
}

.app-profile .profile-head-left,
.app-profile .profile-head-meta {
  display: contents;
}

/* Profile: settings button is mobile-only */
.profile-settings-btn{
  display: none;
}

.app-profile .profile-avatar {
  width: var(--profile-avatar-size);
  height: var(--profile-avatar-size);
  aspect-ratio: 1 / 1;
  border-radius: 999px;
  background: #E4E6E8;
  object-fit: cover;
  object-position: center;
  flex-shrink: 0;
  border: var(--profile-avatar-stroke) solid var(--profile-avatar-stroke-color);
  box-sizing: border-box;
}

.app-profile .profile-display {
  min-width: 0;
  font-size: var(--profile-display-fs);
  line-height: var(--profile-display-lh);
  font-weight: var(--profile-display-fw);
  letter-spacing: var(--profile-display-ls);
  color: var(--profile-display-color);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.app-profile .profile-username {
  margin-top: 0;
  font-size: var(--profile-username-fs);
  line-height: var(--profile-username-lh);
  letter-spacing: var(--profile-username-ls);
  font-weight: var(--profile-username-fw);
  color: var(--profile-username-color);
}

.app-profile .profile-bio {
  margin-top: 13px;
  max-width: 520px;
  letter-spacing: var(--profile-bio-ls);
  font-size: var(--profile-bio-fs);
  line-height: var(--profile-bio-lh);
  font-weight: var(--profile-bio-fw);
  color: var(--profile-bio-color);
}

.app-profile .profile-level-pill {
  margin-top: -20px;
}

.app-profile .profile-head-actions {
  position: absolute;
  right: 41px;
  bottom: 20px;
  z-index: 2;
  margin: 0;
  padding: 0;
  flex-shrink: 0;
}

.app-profile .profile-btn {
  width: var(--btn-blue-w);
  min-width: var(--btn-blue-min);
  height: var(--btn-blue-h);
  box-sizing: border-box;
  padding: var(--btn-blue-pad);

  display: inline-flex;
  align-items: center;
  justify-content: center;

  background: var(--brand);
  border: none;
  border-radius: var(--btn-blue-radius);

  font-size: var(--btn-blue-font);
  line-height: var(--btn-blue-lh);
  font-weight: var(--btn-blue-weight);
  letter-spacing: var(--btn-blue-ls);
  color: #ffffff;

  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
}

.app-profile .profile-btn:hover {
  background: #1748d8;
}

.app-profile .profile-btn.is-primary {
  border: 0;
  background: var(--brand);
  color: #ffffff;
}

.app-profile .profile-tabs {
  position: sticky;
  top: var(--feed-switcher-sticky-top);
  z-index: 60;
  width: var(--ui-switcher-w);
  max-width: var(--ui-switcher-w);
  height: var(--ui-switcher-h);
  box-sizing: border-box;
  display: grid;
  grid-template-columns: var(--ui-switcher-tab-w) var(--ui-switcher-tab-w);
  column-gap: var(--ui-switcher-gap);
  align-items: center;
  justify-content: center;
  padding: var(--ui-switcher-pad);
  overflow: hidden;
  border: 0;
  outline: 0;
  border-radius: var(--ui-switcher-radius);
  background: var(--glass-ui-bg);
  -webkit-backdrop-filter: var(--glass-ui-filter);
  backdrop-filter: var(--glass-ui-filter);
  box-shadow: var(--switcher-glass-shadow);
  margin: 13px auto 15px;
}

.app-profile .profile-tab {
  position: relative;
  z-index: 1;
  width: var(--ui-switcher-tab-w);
  min-width: var(--ui-switcher-tab-w);
  max-width: var(--ui-switcher-tab-w);
  height: var(--ui-switcher-tab-h);
  box-sizing: border-box;
  border: 0;
  border-radius: var(--ui-switcher-radius);
  background: transparent;
  padding: 0;
  margin: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-main);
  font-size: var(--switcher-font-size);
  line-height: var(--switcher-line-height);
  font-weight: var(--switcher-font-weight);
  letter-spacing: var(--switcher-letter-spacing);
  color: var(--switcher-text);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

.app-profile .profile-tab.is-active {
  background: var(--switcher-active-bg);
  color: var(--switcher-active-text);
}

.app-profile .profile-tabs .tabs-indicator,
.app-profile .profile-tab::before,
.app-profile .profile-tab::after {
  display: none !important;
  content: none !important;
}

.app-profile .profile-content {
  min-height: 0;
}

/* reuse feed layout but keep safe width */
.app-profile .profile-list .feed-grid {
  margin-top: 0;
}

/* Empty states */
.app-profile .profile-empty {
  width: 100%;
  max-width: var(--d-center);
  box-sizing: border-box;

  background: transparent;
  border-radius: 18px;
  box-shadow: none;
  padding: 54px 24px;
  text-align: center;
}

.app-profile .profile-empty-ico {
  width: 65px;
  height: 65px;
  flex: 0 0 65px;
  margin: 0 auto 25px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.app-profile .profile-empty-ico svg {
  width: 50px;
  height: 50px;
  display: block;
}

.app-profile .profile-empty-ico-secondary {
  fill: rgba(var(--text-rgb), .20);
}

.app-profile .profile-empty-ico-strong {
  fill: rgba(var(--text-rgb), .70);
}

.app-profile .profile-empty-ico-light {
  fill: rgba(var(--text-rgb), .20);
}

.app-profile .profile-empty-title {
  font-size: var(--glee-title-s-fs);
  line-height: var(--glee-title-s-lh);
  font-weight: var(--glee-title-s-fw);
  letter-spacing: var(--glee-title-s-ls);
  color: var(--text-100);
}

.app-profile .profile-empty-sub {
  margin-top: 10px;
  font-size: var(--glee-body-fs);
  line-height: var(--glee-body-lh);
  font-weight: var(--glee-body-medium-fw);
  letter-spacing: var(--glee-body-ls);
  color: var(--text-70);
}

.app-profile .profile-empty--compact {
  width: 100%;
  box-shadow: none;
  padding: 14px 12px;
  border: 1px solid rgba(0,0,0,0.08);
}

.app-profile .profile-empty--compact .profile-empty-ico {
  width: 44px;
  height: 44px;
  margin-bottom: 10px;
}

/* Profile header stats */
.app-profile .profile-stats-row {
  position: absolute;
  left: 50%;
  right: auto;
  bottom: 30px;
  transform: translateX(-50%);
  margin: 0;
  width: var(--profile-stats-row-w);
  max-width: calc(100% - 96px);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: var(--profile-stats-gap);
}

.app-profile .profile-stat {
  min-width: 0;
  text-align: center;
}

.app-profile .profile-stat-value,
.app-profile .stat-value {
  margin-top: 0;
  font-size: var(--profile-stat-value-fs);
  line-height: var(--profile-stat-value-lh);
  font-weight: var(--profile-stat-value-fw);
  letter-spacing: var(--profile-stat-value-ls);
  color: var(--text-100);
  text-align: center;
}

.app-profile .profile-stat-label,
.app-profile .stat-label {
  margin-top: 7px;
  font-size: var(--profile-stat-label-fs);
  line-height: var(--profile-stat-label-lh);
  font-weight: var(--profile-stat-label-fw);
  letter-spacing: var(--profile-stat-label-ls);
  color: var(--text-70);
}

/* profile edit small helpers */
.app-profile .profile-edit-stack {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.app-profile .profile-edit-note,
.app-profile .profile-edit-next {
  font-size: 14px;
  font-weight: var(--fw-medium);
  color: var(--text-55);
  line-height: 1.4;
}

.app-profile .profile-edit-back {
  font-size: 14px;
  font-weight: var(--fw-semibold);
  color: var(--brand);
  text-decoration: none;
}

.app-profile .profile-edit-back:hover {
  text-decoration: underline;
}

/* =========================
   PROFILE: Creator ID / Passport / Market
========================= */
.app-profile .creator-id-screen {
  display: flex;
  flex-direction: column;
  gap: 38px;
  width: 100%;
  margin-top: 0;
}

.app-profile .creator-id-section {
  width: 100%;
}

.app-profile .creator-id-title {
  margin: 0 0 18px;
  font-size: 17px;
  line-height: 1.2;
  font-weight: var(--fw-semibold);
  letter-spacing: -0.02em;
  color: var(--text-100);
}

.app-profile .creator-passport-card {
  width: 100%;
  aspect-ratio: 3105 / 1955;
  position: relative;
  container-type: inline-size;
  overflow: visible;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  line-height: 0;
}

.app-profile .creator-passport-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: fill;
}

.app-profile .creator-passport-bg.is-missing {
  display: block;
  opacity: 0;
}

.app-profile .creator-passport-overlay-wrap {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}

.app-profile .passport-overlay {
  position: absolute;
  inset: 0;
  box-sizing: border-box;
  color: #0f2668;
}

.app-profile .passport-overlay--id,
.creator-wl-claimed-passport {
  --passport-approved-stamp-left: 64.5%;
  --passport-approved-stamp-top: 73.5%;
  --passport-approved-stamp-width: 17.5%;
  --passport-approved-impact-left: 66.2%;
  --passport-approved-impact-top: 75%;
  --passport-approved-impact-width: 15%;
  --passport-approved-impact-height: 8%;
}

.app-profile .passport-overlay--id {
  position: absolute;
  inset: 0;
}

.app-profile .passport-id-avatar {
  position: absolute;
  left: 6.3%;
  top: 9.2%;
  width: 33.2%;
  height: 73.6%;
  object-fit: cover;
  object-position: center top;
  border-radius: 0;
  background: transparent;
  filter: none;
  opacity: 0.95;
  transform: rotate(-0.83deg);
  transform-origin: center center;
}

.app-profile .passport-id-signature {
  position: absolute;
  left: 43.7%;
  top: 27.9%;
  width: 31%;
  font-family: "Caveat", cursive;
  font-size: clamp(30px, 3.8vw, 54px);
  line-height: 0.95;
  font-weight: 400;
  letter-spacing: 0;
  color: #3A479D;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.app-profile .passport-id-name {
  position: absolute;
  left: 43.7%;
  top: 41.6%;
  width: 39%;
  font-family: "IBM Plex Mono", monospace;
  font-size: clamp(16px, 1.75vw, 25px);
  line-height: 1;
  font-weight: 600;
  letter-spacing: -0.03em;
  color: #0A1C4F;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.app-profile .passport-id-role {
  position: absolute;
  left: 43.7%;
  top: 50.9%;
  width: 43%;
  font-family: "IBM Plex Mono", monospace;
  font-size: clamp(16px, 1.75vw, 25px);
  line-height: 1;
  font-weight: 600;
  letter-spacing: -0.03em;
  color: #0A1C4F;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.app-profile .passport-id-wl-stamp {
  position: absolute;
  z-index: 3;
  left: var(--passport-approved-stamp-left);
  top: var(--passport-approved-stamp-top);
  display: block;
  width: var(--passport-approved-stamp-width);
  height: auto;
  border: 0;
  object-fit: contain;
  transform: rotate(-6deg);
  transform-origin: center;
  pointer-events: none;
  user-select: none;
  filter: drop-shadow(0 10px 14px rgba(30, 86, 250, 0.10));
}

/* ID Page overlay: compact desktop
   Keep coordinates aligned with the base passport template.
   Do not move fields upward on smaller desktop widths. */
@media (min-width: 901px) and (max-width: 1280px) {
  body.app-profile .passport-id-signature {
    top: 27.9%;
  }

  body.app-profile .passport-id-name {
    top: 41.6%;
  }

  body.app-profile .passport-id-role {
    top: 50.9%;
  }
}

/* ID Page overlay: normal desktop */
@media (min-width: 1381px) and (max-width: 1728px) {
  body.app-profile .passport-id-signature {
    top: 27.3%;
  }

  body.app-profile .passport-id-name {
    top: 41.2%;
  }

  body.app-profile .passport-id-role {
    top: 50.5%;
  }
}

.app-profile .passport-overlay--cover {
  display: none;
}

.app-profile .passport-overlay--culture {
  position: absolute;
  inset: 0;
  display: block;
  padding: 0;
}

.app-profile .passport-overlay--visas {
  position: absolute;
  inset: 0;
  padding: 0;
}

.app-profile .passport-kicker {
  font-size: 12px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #1E56FA;
  text-transform: uppercase;
}

.app-profile .passport-cover-main-title {
  display: none;
}

.app-profile .passport-cover-title,
.app-profile .passport-culture-name {
  margin-top: 10px;
  font-size: clamp(32px, 5vw, 58px);
  line-height: 0.95;
  font-weight: 900;
  letter-spacing: -0.07em;
  color: #132f82;
  text-transform: uppercase;
}

.app-profile .passport-cover-meta,
.app-profile .passport-culture-bio,
.app-profile .passport-culture-proof {
  margin-top: 10px;
  max-width: 420px;
  font-size: 15px;
  line-height: 1.35;
  font-weight: 600;
  color: rgba(15,38,104,0.76);
}

.app-profile .passport-culture-proof {
  width: fit-content;
  margin-top: 22px;
  border: 1px solid rgba(30,86,250,0.40);
  border-radius: 6px;
  padding: 8px 12px;
  color: #1E56FA;
  background: rgba(255,255,255,0.40);
}

.app-profile .passport-culture-bio-text {
  position: absolute;
  left: 6.7%;
  top: 18.8%;
  width: 31.5%;

  font-family: "Caveat", cursive;
  font-size: clamp(22px, 4.45cqw, 40px);
  line-height: 1.16;
  font-weight: 400;
  letter-spacing: -0.01em;
  color: #0A1C4F;

  white-space: pre-line;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.app-profile .passport-culture-proof-grid {
  position: absolute;
  left: 6.7%;
  top: 64.2%;
  width: 31.2%;
  aspect-ratio: 1038 / 519;

  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  overflow: hidden;
}

.app-profile .passport-culture-proof-img,
.app-profile .passport-culture-proof-slot {
  width: 100%;
  height: 100%;
  aspect-ratio: 346 / 519;
  display: block;
}

.app-profile .passport-culture-proof-img {
  object-fit: cover;
  object-position: center;
}

.app-profile .passport-culture-proof-img.is-missing {
  visibility: hidden;
}

.app-profile .passport-culture-proof-slot {
  background: transparent;
}

.app-profile .passport-culture-stamp {
  position: absolute;
  left: 44.6%;
  top: 27.2%;
  width: 48.5%;
  height: auto;
  display: block;
  object-fit: contain;
  transform: rotate(-2deg);
  transform-origin: center center;
  opacity: 0.88;
}

.app-profile .passport-culture-stamp--pending {
  opacity: 0.72;
}

.app-profile .passport-culture-stamp--approved {
  opacity: 0.88;
}

.app-profile .passport-visa-card {
  position: absolute;
}

.app-profile .passport-visa-card--usa {
  left: 6.2%;
  top: 23.0%;
  width: 42.0%;
  height: 32.8%;
}

.app-profile .passport-visa-card--japan {
  left: 54.2%;
  top: 23.0%;
  width: 42.0%;
  height: 32.8%;
}

.app-profile .passport-visa-card--gb {
  left: 6.2%;
  top: 59.0%;
  width: 42.0%;
  height: 32.8%;
}

.app-profile .passport-visa-card--france {
  left: 54.2%;
  top: 59.0%;
  width: 42.0%;
  height: 32.8%;
}

.app-profile .passport-visa-status {
  position: absolute;
  left: 3.3%;
  top: 45.8%;

  font-family: "Share Tech Mono", monospace;
  font-size: clamp(16px, 2.35cqw, 22px);
  line-height: 1;
  font-weight: 400;
  letter-spacing: -0.03em;
  color: #4A8B4F;
  text-transform: uppercase;
}

.app-profile .passport-visa-card--usa .passport-visa-status,
.app-profile .passport-visa-card--gb .passport-visa-status {
  left: 4.6%;
}

.app-profile .passport-visa-card--japan .passport-visa-status,
.app-profile .passport-visa-card--france .passport-visa-status {
  left: -3.5%;
}

.app-profile .passport-visa-card.is-locked .passport-visa-status {
  color: #6B7280;
}

.app-profile .passport-visa-stamp-img {
  position: absolute;
  right: 7.4%;
  top: 10%;
  width: 35%;
  height: auto;
  object-fit: contain;
  display: block;
}

.app-profile .passport-visa-card--usa .passport-visa-stamp-img,
.app-profile .passport-visa-card--gb .passport-visa-stamp-img {
  right: 3.2%;
}

.app-profile .passport-visa-card--japan .passport-visa-stamp-img,
.app-profile .passport-visa-card--france .passport-visa-stamp-img {
  right: 11.2%;
}

.app-profile .creator-passport-thumbs {
  margin-top: clamp(24px, 2vw, 34px);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(22px, 3vw, 44px);
  align-items: end;
}

.app-profile .creator-passport-thumb {
  min-width: 0;
  height: auto;
  border: 0;
  border-radius: 0;
  padding: 0;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
  color: #082260;
  text-align: center;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  row-gap: 15px;
  transition:
    color 160ms ease,
    opacity 160ms ease;
}

.app-profile .creator-passport-thumb:hover {
  transform: none;
  opacity: 0.85;
}

.app-profile .creator-passport-thumb-main {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.app-profile .creator-passport-thumb.is-active {
  color: var(--brand);
  border: 0;
  box-shadow: none;
}

.app-profile .creator-passport-thumb-icon {
  width: clamp(24px, 1.62vw, 28px);
  height: clamp(24px, 1.62vw, 28px);
  display: block;
  flex: 0 0 auto;
  color: currentColor;
  background-color: currentColor;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.app-profile .creator-passport-thumb--cover .creator-passport-thumb-icon {
  -webkit-mask-image: url("../assets/creator-id/passport-icon-cover.svg");
  mask-image: url("../assets/creator-id/passport-icon-cover.svg");
}

.app-profile .creator-passport-thumb--id .creator-passport-thumb-icon {
  -webkit-mask-image: url("../assets/creator-id/passport-icon-id.svg");
  mask-image: url("../assets/creator-id/passport-icon-id.svg");
}

.app-profile .creator-passport-thumb--visas .creator-passport-thumb-icon {
  -webkit-mask-image: url("../assets/creator-id/passport-icon-visas.svg");
  mask-image: url("../assets/creator-id/passport-icon-visas.svg");
}

.app-profile .creator-passport-thumb--culture .creator-passport-thumb-icon {
  -webkit-mask-image: url("../assets/creator-id/passport-icon-culture.svg");
  mask-image: url("../assets/creator-id/passport-icon-culture.svg");
}

.app-profile .creator-passport-thumb-label {
  display: block;
  font-size: clamp(13px, 0.87vw, 15px);
  line-height: 1.2;
  font-weight: var(--fw-semibold);
  color: currentColor;
  white-space: nowrap;
}

.app-profile .creator-passport-thumb-line {
  align-self: center;
  display: block;
  width: clamp(86px, 6.6vw, 114px);
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  opacity: 1;
  margin-top: 0;
}

.app-profile .creator-passport-thumb.is-active .creator-passport-thumb-line {
  background: var(--brand);
}

.app-profile .creator-markets-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}


.app-profile .creator-id-subtitle {
  margin: -6px 0 18px;
  font-size: 15px;
  line-height: 1.35;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-55);
}

.app-profile .creator-markets-grid {
  display: flex;
  flex-direction: column;
  gap: 18px;
}


.creator-mint-modal.is-open {
  align-items: center;
  justify-content: center;
  padding: 24px 0;
}

.creator-mint-modal__panel {
  width: 480px;
  max-width: calc(100vw - 64px);
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  margin: 0 auto;
}

.creator-mint-modal__card {
  width: 100%;
  box-sizing: border-box;
  padding: var(--action-modal-padding);
  background: var(--surface-card);
  border-radius: var(--action-modal-radius);
  color: var(--text-100);
  box-shadow: 0 30px 80px rgba(0,0,0,0.25);
}

.creator-mint-modal__title {
  margin: 0;
  text-align: center;
  font-size: 22px;
  line-height: 1.2;
  font-weight: var(--fw-semibold);
  letter-spacing: -0.02em;
  color: var(--text-100);
}

.creator-mint-modal__copy {
  max-width: 390px;
  margin: 12px auto 26px;
  text-align: center;
  font-size: 15px;
  line-height: 1.35;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-55);
}

.creator-mint-modal__section-title {
  margin: 0 0 14px;
  font-size: 15px;
  line-height: 1.15;
  font-weight: var(--fw-semibold);
  letter-spacing: -0.02em;
  color: var(--brand);
}

.creator-mint-modal__info-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 22px;
}

.creator-mint-modal__icon {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border-radius: 50%;
  color: var(--brand);
  background: #EAF0FF;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.creator-mint-modal__icon img {
  width: 21px;
  height: 21px;
  display: block;
  object-fit: contain;
}

.creator-mint-modal__info-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.creator-mint-modal__info-main {
  font-size: 15px;
  line-height: 1.25;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
}

.creator-mint-modal__info-sub {
  margin-top: 4px;
  font-size: 14px;
  line-height: 1.25;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-55);
}

.creator-mint-modal__input-row {
  height: 43px;
  margin-top: 24px;

  display: flex;
  align-items: center;
  gap: 8px;

  padding: 3px 3px 3px 18px;
  border-radius: 999px;
  background: var(--creator-form-row-bg);
  box-sizing: border-box;
}

.creator-mint-modal__input {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  height: 37px;
  border: 0;
  outline: 0;
  background: transparent !important;
  box-shadow: none !important;
}

.creator-mint-modal__input:disabled {
  cursor: default;
  opacity: 0.7;
}

.creator-mint-modal__error {
  margin: 8px 0 0 18px;
  font-size: 13px;
  line-height: 1.25;
  font-weight: var(--fw-medium);
  color: #E11D48;
}

.creator-mint-modal__error.is-success {
  color: var(--brand);
}

.creator-visa-modal.is-open {
  align-items: center;
  justify-content: center;
  padding: 24px 0;
}

.creator-visa-modal__panel {
  width: var(--modal-form-w);
  max-width: var(--modal-form-max);
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  margin: 0 auto;
}

.creator-visa-modal__card {
  width: 100%;
  box-sizing: border-box;
  padding: var(--action-modal-padding);
  background: var(--surface-card);
  border-radius: var(--action-modal-radius);
  color: var(--text-100);
  box-shadow: 0 30px 80px rgba(0,0,0,0.25);
}

.creator-visa-modal__hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 22px;
  margin-bottom: 22px;
}

.creator-visa-modal__stamp {
  width: 116px;
  height: 116px;
  display: block;
  object-fit: contain;
  flex: 0 0 auto;
  opacity: 0.9;
}

.creator-visa-modal__title {
  margin: 0;
  font-size: 24px;
  line-height: 1.18;
  font-weight: var(--fw-semibold);
  letter-spacing: -0.02em;
  color: var(--text-100);
}

.creator-visa-modal__subtitle {
  margin: 10px 0 26px;
  font-size: 15px;
  line-height: 1.35;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-55);
}

.creator-visa-modal__section-title,
.creator-visa-modal__divider {
  font-size: 15px;
  line-height: 1.15;
  font-weight: var(--fw-semibold);
  letter-spacing: -0.02em;
  color: var(--brand);
}

.creator-visa-modal__section-title {
  margin: 0 0 22px;
}

.creator-visa-modal__divider {
  margin: 20px 0 16px;
}

.creator-visa-modal__path {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 4px;
}

.creator-visa-modal__icon {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  border-radius: 50%;
  color: var(--brand);
  background: #EAF0FF;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.creator-visa-modal__icon svg {
  width: 24px;
  height: 24px;
  display: block;
}

.creator-visa-modal__path-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.creator-visa-modal__path-main {
  font-size: 18px;
  line-height: 1.25;
  font-weight: var(--fw-medium);
  letter-spacing: -0.02em;
  color: var(--text-100);
}

.creator-visa-modal__path-sub {
  margin-top: 6px;
  font-size: 15px;
  line-height: 1.3;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-55);
}

.creator-visa-modal__path-main span,
.creator-visa-modal__path-sub span {
  color: var(--brand);
}

.creator-visa-modal__referral-progress {
  margin-top: 5px;
  font-size: 13px;
  line-height: 1.2;
  font-weight: var(--fw-semibold);
  color: rgba(30, 86, 250, 0.82);
}

.creator-visa-modal__input-row {
  height: 43px;
  margin-top: 24px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 3px 3px 3px 18px;
  border-radius: 999px;
  background: var(--creator-form-row-bg);
  box-sizing: border-box;
}

.creator-visa-modal__input {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  height: 37px;
  border: 0;
  outline: 0;
  background: transparent !important;
  box-shadow: none !important;
}

.creator-visa-modal__input--static {
  display: flex;
  align-items: center;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.creator-visa-modal__check {
  margin: 16px 0 0;
}

.creator-visa-modal__input:disabled {
  cursor: default;
  opacity: 0.7;
}

.creator-visa-modal__error {
  margin: 8px 0 0 18px;
  font-size: 13px;
  line-height: 1.25;
  font-weight: var(--fw-medium);
  color: #E11D48;
}

.creator-visa-modal__error.is-success {
  color: var(--brand);
}

.creator-country-modal-hero {
  position: relative;
  width: 100%;
  height: 226px;
  margin: 0 0 22px;
  border-radius: var(--action-modal-radius);
  overflow: hidden;
  background: #EAF0FF;
}

.creator-country-modal-image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.creator-mint-modal__panel,
.creator-visa-modal__panel {
  width: 470px;
  max-width: calc(100vw - 64px);
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  overflow-x: visible;
  margin: 0 auto;
  background: transparent;
  border: 0;
  box-shadow: none;
  border-radius: 0;
}

.creator-mint-modal__card,
.creator-visa-modal__card {
  width: 100%;
  box-sizing: border-box;
  padding: var(--action-modal-padding);
  background: var(--surface-card);
  border-radius: var(--action-modal-radius);
  color: var(--text-100);
  box-shadow: 0 18px 50px rgba(0,0,0,0.18);
  background-clip: padding-box;
  -webkit-background-clip: padding-box;
  overflow: visible;
}

.creator-mint-modal__title,
.creator-mint-modal__copy {
  text-align: left;
  max-width: none;
}

.creator-mint-modal__title {
  margin-top: 0;
  font-size: 18px;
}

.creator-mint-modal__copy {
  margin: 12px 0 26px;
  font-size: 13px;
}

.creator-mint-modal__section-title,
.creator-visa-modal__section-title,
.creator-visa-modal__divider {
  font-size: 15px;
}

.creator-mint-modal__info-row,
.creator-visa-modal__path {
  gap: 12px;
}

.creator-mint-modal__info-main,
.creator-visa-modal__path-main {
  font-size: 15px;
}

.creator-mint-modal__info-sub,
.creator-visa-modal__path-sub {
  font-size: 13px;
}

.creator-mint-modal__input-row,
.creator-visa-modal__input-row {
  height: 43px;
  min-height: 43px;
  margin-top: 22px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 3px 3px 3px 18px;
  border-radius: 999px;
  background: var(--creator-form-row-bg);
  box-sizing: border-box;
}

.creator-mint-modal__input,
.creator-visa-modal__input {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  height: 37px;
  border: 0;
  outline: 0;
  background: transparent !important;
  box-shadow: none !important;
}

.creator-visa-modal__hero {
  display: block;
  gap: 0;
  justify-content: initial;
}

.creator-visa-modal__stamp {
  display: none;
}

.creator-visa-modal__title {
  font-size: 18px;
}

.creator-visa-modal__subtitle {
  margin: 8px 0 22px;
  font-size: 13px;
}

.creator-visa-modal__section-title {
  margin-bottom: 20px;
}

.creator-visa-modal__divider {
  margin: 18px 0 14px;
}

.app-profile .creator-loop-card {
  width: 100%;
  box-sizing: border-box;
  background: #ffffff;
  border-radius: 18px;
  box-shadow: var(--tile-shadow);
  padding: 26px 26px 28px;
}

.app-profile .creator-loop-kicker {
  margin-bottom: 26px;
  font-size: 17px;
  line-height: 1.2;
  font-weight: var(--fw-medium);
  letter-spacing: -0.02em;
  color: var(--brand);
}

.app-profile .creator-loop-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 22px;
  align-items: start;
}

.app-profile .creator-loop-step {
  position: relative;
  text-align: center;
  color: var(--text-100);
}

.app-profile .creator-loop-icon {
  width: 54px;
  height: 54px;
  margin: 0 auto 14px;
  display: block;
  object-fit: contain;
}

.app-profile .creator-loop-title {
  font-size: 15px;
  line-height: 1.15;
  font-weight: var(--fw-semibold);
  letter-spacing: -0.02em;
  color: var(--text-100);
}

.app-profile .creator-loop-text {
  max-width: 150px;
  margin: 10px auto 0;
  font-size: 15px;
  line-height: 1.25;
  font-weight: var(--fw-medium);
  letter-spacing: -0.02em;
  color: var(--text-70);
}

.app-profile .creator-loop-arrow {
  position: absolute;
  top: 18px;
  right: -18px;
  width: 14px;
  height: 14px;
  display: block;
  object-fit: contain;
}

.app-profile .creator-markets-empty,
.app-profile .market-history-empty {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: 24px 0;
  align-items: flex-start;
}

.app-profile .creator-markets-empty-title,
.app-profile .market-history-empty-title {
  margin: 0;
  max-width: 100%;
  font-size: 15px;
  line-height: 1.25;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
  overflow-wrap: anywhere;
}

.app-profile .creator-market-history-section {
  width: 100%;
}

.app-profile .creator-market-history-section-title {
  margin: 0 0 16px;
  font-size: 20px;
  line-height: 25px;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
}

.app-profile .creator-market-history-grid {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--market-history-grid-gap);
}

.app-profile .creator-market-history-card {
  position: relative;
  overflow: hidden;
  width: 100%;
  aspect-ratio: var(--market-history-card-aspect);
  border-radius: var(--market-history-card-radius);
  background: #EAF0FF;
  box-shadow: none;
  color: var(--market-history-title-color);
}

.app-profile .creator-market-history-card-bg {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.app-profile .creator-market-history-card-bg.is-missing {
  visibility: hidden;
}

.app-profile .creator-market-history-card-shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(0,0,0,.52) 0%, rgba(0,0,0,.28) 34%, rgba(0,0,0,0) 68%),
    linear-gradient(0deg, rgba(0,0,0,.38) 0%, rgba(0,0,0,.10) 42%, rgba(0,0,0,0) 72%);
  pointer-events: none;
}

.app-profile .creator-market-history-card-content {
  position: absolute;
  inset: 0;
  z-index: 2;
}

.app-profile .creator-market-history-card-head {
  position: absolute;
  top: clamp(18px, 7.6%, 30px);
  left: clamp(18px, 7.1%, 28px);
  display: flex;
  align-items: center;
  gap: clamp(12px, 3.6%, 18px);
}

.app-profile .creator-market-history-card-flag {
  width: clamp(64px, 21%, 82px);
  max-height: 58px;
  display: block;
  object-fit: contain;
  border-radius: 8px;
}

.app-profile .creator-market-history-card-flag.is-missing {
  visibility: hidden;
}

.app-profile .creator-market-history-card-copy {
  min-width: 0;
}

.app-profile .creator-market-history-card-title {
  font-size: var(--market-history-title-fs);
  line-height: var(--market-history-title-lh);
  font-weight: var(--market-history-title-fw);
  letter-spacing: var(--market-history-title-ls);
  color: var(--market-history-title-color);
  white-space: nowrap;
}

.app-profile .creator-market-history-card-time {
  font-size: var(--market-history-time-fs);
  line-height: var(--market-history-time-lh);
  font-weight: var(--market-history-time-fw);
  letter-spacing: var(--market-history-time-ls);
  color: var(--market-history-time-color);
  white-space: nowrap;
}

.app-profile .creator-market-history-card-sales {
  position: absolute;
  left: clamp(18px, 7.1%, 28px);
  bottom: clamp(72px, 33%, 82px);
  font-size: var(--market-history-sales-fs);
  line-height: var(--market-history-sales-lh);
  font-weight: var(--market-history-sales-fw);
  letter-spacing: var(--market-history-sales-ls);
  color: var(--market-history-sales-color);
  white-space: nowrap;
}

.app-profile .creator-market-history-total-tag {
  position: absolute;
  left: clamp(18px, 7.1%, 28px);
  bottom: clamp(18px, 6.6%, 26px);
  min-height: var(--app-content-tag-h);
  padding: 0 var(--app-content-tag-pad-x);
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  border: var(--glass-content-border);
  border-radius: var(--glass-content-radius);
  background: var(--glass-content-bg);
  -webkit-backdrop-filter: var(--glass-content-filter);
  backdrop-filter: var(--glass-content-filter);
  box-shadow: var(--glass-content-shadow);
  font-size: var(--market-history-total-fs);
  line-height: var(--market-history-total-lh);
  font-weight: var(--market-history-total-fw);
  letter-spacing: var(--market-history-total-ls);
  color: var(--market-history-total-color);
  white-space: nowrap;
}

/* =========================
   PROFILE EDIT MODAL
========================= */

.profile-edit-panel{
  width: var(--modal-form-w);
  max-width: var(--modal-form-max);
  margin: 0 auto;

  /* height must come from content */
  height: auto;
  max-height: none;
}

.pe-modal{
  width: 100%;
  height: auto;

  background: var(--surface-card);
  border-radius: var(--modal-form-radius);

  /* more inner padding, but less empty bottom */
  padding: var(--modal-form-pad-y) var(--modal-form-pad-x);

  position: relative;
  box-sizing: border-box;

  overflow: visible; /* no inner clipping */
}

/* header: title left, close right */
.pe-header{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.pe-head-title{
  font-size: 14px;
  font-weight: var(--fw-medium);
  color: var(--text-100);
}

/* reuse create-post X, but position like in Figma */
.pe-modal .cp-close{
  top: 18px;
  right: 18px;
}

/* content corridor */
.pe-inner{
  width: 100%;
  max-width: none;
  margin: 18px auto 0;
  box-sizing: border-box;
}

/* centered avatar */
.pe-avatar-wrap{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  margin-bottom: 34px;
}

.pe-avatar{
  width: 120px;
  height: 120px;
  border-radius: 999px;
  background: rgba(0,0,0,0.08);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  flex-shrink: 0;
}

.pe-avatar.pe-avatar-lg{
  width: 140px;
  height: 140px;
}

.pe-change-link{
  margin-top: 14px;
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;

  font-family: var(--font-main);
  font-size: 14px;
  font-weight: var(--fw-semibold);
  color: var(--brand);
}

.pe-change-link:hover{
  text-decoration: underline;
}

/* fields */
.pe-field{
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.pe-field + .pe-field{
  margin-top: 34px;
}

.pe-label{
  font-size: 15px;
  font-weight: var(--fw-semibold);
  color: var(--text-100);
}

.pe-input,
.pe-textarea{
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--text-40);
  background: transparent;
  color: var(--text-100);
  font-family: var(--font-main);
  outline: none;
}

.pe-input{
  height: 47px;
  border-radius: 999px;
  padding: 0 20px;
  font-size: 14px;
}

.pe-textarea{
  height: 160px;
  border-radius: 20px;
  padding: 18px 20px;
  resize: none;
  font-size: 14px;
}

.pe-input:focus,
.pe-textarea:focus{
  border-color: rgba(31, 78, 255, 0.65);
}

/* footer + full width save */
.pe-footer{
  margin-top: 22px; /* slightly less, removes bottom dead space */
  display: flex;
  justify-content: center;
}

.pe-save{
  width: 100%;
  box-sizing: border-box;
  height: var(--btn-blue-h);
  border-radius: var(--btn-blue-radius);
  border: none;
  padding: var(--btn-blue-pad);

  background: var(--btn-blue-bg);
  color: var(--btn-blue-text);

  font-size: var(--btn-blue-font);
  line-height: var(--btn-blue-lh);
  font-weight: var(--btn-blue-weight);
  letter-spacing: var(--btn-blue-ls);

  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}

/* =========================
   EVENTS (center only)
========================= */

.app-events .events-wrap {
  width: 100%;
  max-width: var(--d-center);
  display: flex;
  flex-direction: column;
  padding-top: 6px;
}

/* =========================
   EVENTS: cards
========================= */

.app-events .events-list {
  display: flex;
  flex-direction: column;
  gap: var(--d-event-card-gap);
  margin-top: 0;
}

.app-events .event-card {
  display: grid;
  grid-template-columns: var(--d-event-media-w) 1fr;
  gap: var(--d-event-card-gap);
  align-items: stretch;
}

.app-events .event-media-wrap {
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 316 / 200;
  border-radius: 18px;
  overflow: hidden;
  background: rgba(0, 0, 0, .06);
}

.app-events .event-media-wrap .event-media {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  border-radius: 0;
  object-fit: cover;
  display: block;
}

.app-events .event-card.is-skeleton > .event-media {
  width: 100%;
  height: auto;
  aspect-ratio: 316 / 200;
  display: block;
  border-radius: 18px;
}

.app-events .event-card-tag {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 2;
}

.app-events .event-body {
  min-height: calc(var(--d-event-media-w) * 200 / 316);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: 1fr;
  column-gap: 22px;
  row-gap: 12px;
  align-items: center;
  padding-top: 0;
}

.app-events .event-content {
  grid-column: 1 / 2;
  grid-row: 1 / 2;
  min-width: 0;
  min-height: 0;
  align-self: stretch;

  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-bottom: 0;
  box-sizing: border-box;
}

.app-events .event-content > div:first-child {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}

.app-events .event-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 18px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: var(--fw-semibold);
  background: rgba(0,0,0,0.06);
  color: var(--text-70);
}

.app-events .event-live {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: var(--fw-semibold);
  color: var(--text-55);
}

.app-events .live-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--brand);
  box-shadow: 0 0 0 3px rgba(23, 92, 255, 0.16);
}

.app-events .event-muted {
  font-size: 12px;
  font-weight: var(--fw-semibold);
  color: var(--text-40);
}

.app-events .event-title {
  margin: 0;
  font-size: 24px;
  line-height: 1.15;
  letter-spacing: -0.02em;
  font-weight: var(--fw-semibold);
  color: var(--text-100);
}

.app-events .event-desc {
  margin: 0;
  font-size: 15px;
  line-height: 1.38;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-70);
  max-width: none;
}

.app-events .event-meta {
  margin-top: 24px;
  padding-top: 0;

  display: inline-flex;
  align-items: center;
  gap: 8px;

  font-size: 14px;
  font-weight: var(--fw-medium);
  letter-spacing: -0.02em;
  color: var(--text-100);
}

.app-events .event-meta svg {
  width: 17px;
  height: 17px;
  color: var(--text-100);
}

.app-events .btn-details {
  grid-column: 2 / 3;
  grid-row: 1 / 2;
  align-self: center;
  border: 0;
  cursor: pointer;
}

@media (min-width: 901px) and (max-width: 1727.98px) {
  .app-events .event-title {
    font-size: clamp(18px, 1.389vw, 24px);
    line-height: 1.12;
  }

  .app-events .event-content > div:first-child {
    gap: 10px;
  }

  .app-events .event-desc {
    font-size: clamp(13px, 0.868vw, 15px);
    line-height: 1.34;
  }

  .app-events .event-meta {
    margin-top: 24px;
    padding-top: 0;
    font-size: clamp(12px, 0.81vw, 14px);
  }
}

.app-events .btn-details.is-ended {
  background: rgba(0,0,0,0.18);
  color: var(--text-40);
  cursor: default;
}

.app-events .event-card.is-ended .event-title,
.app-events .event-card.is-ended .event-desc,
.app-events .event-card.is-ended .event-meta {
  opacity: 0.45;
}

.app-events .event-card.is-ended .event-media {
  opacity: 0.85;
}

/* =========================
   EVENT DETAILS
========================= */

.app-event-details .event-details-center,
.app-event-details .event-details-content {
  position: relative;
  width: 100%;
}

.app-event-details .event-details-back {
  position: absolute;
  top: 0;
  left: -52px;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 2;
}

.app-event-details .event-details-back:hover {
  background: rgba(var(--text-rgb), 0.05);
}

.app-event-details .event-details-back-icon {
  width: 13px;
  height: 12px;
  background: var(--text-70);
  -webkit-mask: url("../assets/icons/back-icon.svg") center/contain no-repeat;
  mask: url("../assets/icons/back-icon.svg") center/contain no-repeat;
}

.app-event-details .event-hero {
  width: 100%;
  aspect-ratio: 1126 / 633;
  margin-bottom: 22px;
  border-radius: var(--event-details-hero-radius);
  overflow: hidden;
  background: rgba(var(--text-rgb), 0.06);
}

.app-event-details .event-hero img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.app-event-details .campaign-hero-picture {
  width: 100%;
  height: 100%;
  display: block;
}

.app-event-details .event-title-row {
  margin: 0 0 25px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.app-event-details .event-title {
  min-width: 0;
  margin: 0;
  font-size: var(--event-details-title-fs);
  line-height: var(--event-details-title-lh);
  font-weight: var(--event-details-title-fw);
  letter-spacing: var(--event-details-title-ls);
  color: var(--event-details-title-color);
}

.app-event-details .event-join-btn {
  flex: 0 0 var(--btn-blue-w);
  margin: 42px auto 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  cursor: pointer;
}

.app-event-details .event-meta-row {
  margin-top: 0;
  display: flex;
  align-items: center;
  gap: 58px;
  color: var(--event-meta-color);
  font-size: var(--event-meta-fs);
  line-height: var(--event-meta-lh);
  font-weight: var(--event-meta-fw);
  letter-spacing: var(--event-meta-ls);
}

.app-event-details .event-meta-item {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.app-event-details .event-meta-icon {
  flex: 0 0 auto;
  background: var(--event-meta-color);
}

.app-event-details .event-meta-icon--host {
  width: 25px;
  height: 19px;
  -webkit-mask: url("../assets/icons/event-host.svg") center/contain no-repeat;
  mask: url("../assets/icons/event-host.svg") center/contain no-repeat;
}

.app-event-details .event-meta-icon--discord {
  width: 21px;
  height: 16px;
  -webkit-mask: url("../assets/icons/event-discord.svg") center/contain no-repeat;
  mask: url("../assets/icons/event-discord.svg") center/contain no-repeat;
}

.app-event-details .event-meta-link {
  color: var(--brand);
  text-decoration: none;
}

.app-event-details a.event-meta-link:hover {
  text-decoration: underline;
}

.app-event-details .event-facts {
  width: min(653px, 100%);
  margin: 43px auto 0;
  display: grid;
  grid-template-columns: repeat(3, 160px);
  justify-content: space-between;
  text-align: center;
}

.app-event-details .event-fact {
  min-width: 0;
}

.app-event-details .event-fact-value {
  font-size: var(--profile-stat-value-fs);
  line-height: var(--profile-stat-value-lh);
  font-weight: var(--profile-stat-value-fw);
  letter-spacing: var(--profile-stat-value-ls);
  color: var(--text-100);
}

.app-event-details .event-fact-label {
  margin-top: 2px;
  font-size: var(--profile-stat-label-fs);
  line-height: var(--profile-stat-label-lh);
  font-weight: var(--profile-stat-label-fw);
  letter-spacing: var(--profile-stat-label-ls);
  color: var(--text-70);
}

.app-event-details .event-about {
  margin-top: 37px;
}

.app-event-details .event-section-title {
  margin: 0 0 12px;
  font-size: var(--event-section-title-fs);
  line-height: var(--event-section-title-lh);
  font-weight: var(--event-section-title-fw);
  letter-spacing: var(--event-section-title-ls);
  color: var(--event-section-title-color);
}

.app-event-details .event-about-text {
  margin: 0 0 27px;
  font-size: var(--event-body-fs);
  line-height: var(--event-body-lh);
  font-weight: var(--event-body-fw);
  letter-spacing: var(--event-body-ls);
  color: var(--event-body-color);
}

.app-event-details .event-about-text:last-child {
  margin-bottom: 0;
}

.app-event-details .event-speakers-section {
  margin-top: 39px;
}

.app-event-details .event-speakers {
  display: grid;
  gap: 18px;
}

.app-event-details .event-speaker {
  display: flex;
  align-items: center;
  gap: 12px;
}

.app-event-details .event-speaker-ava {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border-radius: 50%;
  background: rgba(var(--text-rgb), 0.10);
}

.app-event-details img.event-speaker-ava {
  display: block;
  object-fit: cover;
  background: transparent;
}

.app-event-details .event-speaker-name {
  font-size: var(--event-speaker-name-fs);
  line-height: var(--event-speaker-name-lh);
  font-weight: var(--event-speaker-name-fw);
  letter-spacing: var(--event-speaker-name-ls);
  color: var(--text-100);
}

.app-event-details .event-speaker-role {
  font-size: var(--event-speaker-role-fs);
  line-height: var(--event-speaker-role-lh);
  font-weight: var(--event-speaker-role-fw);
  letter-spacing: var(--event-speaker-role-ls);
  color: var(--text-70);
}

@media (min-width: 901px) {
  body.app-event-details {
    min-width: 1200px;
    height: 100vh;
    overflow: hidden;
    background: var(--bg);
  }

  body.app-event-details .app-shell {
    position: relative;
    width: 100%;
    max-width: none;
    padding: var(--layout-shell-edge) 0;
  }

  body.app-event-details .home-topbar {
    display: block;
    position: relative;
    width: 100%;
    height: var(--layout-topbar-h);
    flex: 0 0 var(--layout-topbar-h);
    z-index: 140;
  }

body.app-event-details .topbar-center {
  position: absolute;
  left: var(--layout-center-x);
  top: 0;
  width: var(--layout-center-w);
  height: var(--layout-topbar-h);
  transform: translateX(-50%);
}

  body.app-event-details .topbar-center-inner,
  body.app-event-details .home-topbar.is-search-hidden .topbar-center-inner {
    width: 100% !important;
    transform: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  body.app-event-details .topbar-right {
    display: none !important;
  }

  body.app-event-details .home-grid {
    display: block;
    position: relative;
    min-height: 0;
    padding-top: var(--layout-search-content-gap);
  }

  body.app-event-details .page-center {
    position: relative;
    width: var(--layout-center-w);
    max-width: var(--layout-center-w);
    margin-left: var(--layout-content-left);
    margin-right: 0;
  }
}

/* =========================
   POST DETAILS
========================= */

.app-post-details .home-grid {
  grid-template-columns: 1fr var(--d-col-right);
}

.app-post-details .page-center {
  display: block;
}

.app-post-details .post-details-center {
  width: 100%;
  max-width: 100%;
  padding-top: 6px;
}

/* Back */
.app-post-details .post-back {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  font-weight: var(--fw-semibold);
  color: var(--text-80);
  text-decoration: none;
  margin: 0 0 25px 0;
}

.app-post-details .post-back:hover { opacity: 0.8; }

.app-post-details .post-back-ico {
  width: 14px;
  height: 14px;
  display: block;
  background: var(--text-70);

  -webkit-mask: url("../assets/icons/back-icon.svg") center/contain no-repeat;
  mask: url("../assets/icons/back-icon.svg") center/contain no-repeat;
}

/* Media */
.app-post-details .post-media {
  width: 100%;
  height: auto;
  aspect-ratio: 1126 / 633;
  margin-bottom: 28px;
  border-radius: 18px;
  overflow: hidden;
  background: #000; /* Provide a neutral field around contained media. */
  box-shadow: 1px 1px 3px rgba(0,0,0,0.10);
  position: relative;

  /* IMPORTANT: hide random edge stripes by cropping inside */
  --pd-crop: 8px; /* 5-10px */

  /* blurred fill behind letterbox (set from JS per slide) */
  --pd-bg: none;
  --pd-bg-opacity: 0;
}

/* blurred fill behind image (makes corners look cleaner than pure black) */
.app-post-details .post-media::before{
  content: "";
  position: absolute;
  inset: 0;
  background: var(--pd-bg) center/cover no-repeat;
  filter: blur(22px);
  transform: scale(1.15);
  opacity: var(--pd-bg-opacity);
  z-index: 0;
  pointer-events: none;
}

.app-post-details .post-media-img{
  position: absolute;
  top: calc(var(--pd-crop) * -1);
  left: calc(var(--pd-crop) * -1);
  width: calc(100% + (var(--pd-crop) * 2));
  height: calc(100% + (var(--pd-crop) * 2));
  display: block;

  object-fit: contain;
  object-position: center;

  background: transparent;
}

/* Video must NOT be cropped, otherwise native controls get clipped */
.app-post-details .post-media-video{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;

  object-fit: contain;
  object-position: center;

  background: transparent;
}

.post-media-video {
  object-fit: contain; /* never crop videos */
  background: #000;
}

/* title + text */
.app-post-details .post-title {
  margin: 0 0 22px 0;
  font-size: var(--post-details-title-fs);
  line-height: var(--post-details-title-lh);
  font-weight: var(--post-details-title-fw);
  letter-spacing: var(--post-details-title-ls);
  color: var(--text-100);
}

.app-post-details .post-culture-tag[hidden]{
  display: none;
}

/* actions */
.app-post-details .post-actions {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 0;
}

.app-post-details .post-actions-right {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0;
}

/* more icon */
.app-post-details .post-ico.is-more {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  -webkit-mask: url("../assets/icons/more-icon.svg") center / contain no-repeat;
  mask: url("../assets/icons/more-icon.svg") center / contain no-repeat;
}

/* dropdown */
.app-post-details .post-more-menu {
  position: absolute;
  right: 0;
  top: 34px;

  width: 200px;
  background: var(--surface-card);
  border-radius: 20px;
  border: 1px solid var(--border-subtle);
  padding: 12px;
  display: none;
  z-index: 200;
  box-sizing: border-box;
  overflow: hidden;
  background-clip: padding-box;
  -webkit-background-clip: padding-box;
}

.app-post-details .post-more-menu.is-open {
  display: grid;
  gap: 4px;
}

.app-post-details .post-more-item {
  height: 36px;
  border: 0;
  background: transparent;
  border-radius: 999px;
  padding: 0 16px;
  text-align: left;

  font-family: var(--font-main);
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  font-weight: var(--glee-small-fw);
  letter-spacing: var(--glee-small-ls);
  color: var(--text-100);

  display: flex;
  align-items: center;
  justify-content: flex-start;
  cursor: pointer;
}

.app-post-details .post-more-item:hover:not(:disabled) {
  background: rgba(var(--text-rgb), 0.05);
}

.app-post-details .post-more-item:disabled {
  color: rgba(var(--text-rgb), 0.45);
  opacity: 1;
  cursor: default;
}

.app-post-details .post-more-delete {
  color: #FF3B30;
}


.app-post-details .post-actions-left {
  display: flex;
  align-items: center;
  gap: 0;
}

.app-post-details .post-action {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: 0;
  background: transparent;
  cursor: pointer;
  color: var(--text-55) !important;
  font-family: var(--font-main);
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-regular);
}

.app-post-details .post-ico {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  background: currentColor;
  display: inline-block;
}


/* like active */
.app-post-details .post-action.is-liked {
  color: var(--brand) !important;
}

/* post action icons (reuse existing assets) */
.app-post-details .post-ico.is-like {
  -webkit-mask: url("../assets/icons/like-icon.svg") center / contain no-repeat;
  mask: url("../assets/icons/like-icon.svg") center / contain no-repeat;
}

.app-post-details .post-ico.is-comment {
  -webkit-mask: url("../assets/icons/comment-icon.svg") center / contain no-repeat;
  mask: url("../assets/icons/comment-icon.svg") center / contain no-repeat;
}

.app-post-details .post-ico.is-save {
  -webkit-mask: url("../assets/icons/save-icon.svg") center / contain no-repeat;
  mask: url("../assets/icons/save-icon.svg") center / contain no-repeat;
}

.app-post-details .post-ico.is-share {
  -webkit-mask: url("../assets/icons/share-icon.svg") center / contain no-repeat;
  mask: url("../assets/icons/share-icon.svg") center / contain no-repeat;
}


/* divider */
.app-post-details .post-divider {
  display: none !important;
}

/* discussion */
.app-post-details .post-discussion {
  margin-top: 35px;
}

.app-post-details .post-section-title {
  font-size: 12px;
  font-weight: var(--fw-semibold);
  color: var(--text-80);
  margin: 0 0 18px 0;
}

.app-post-details .post-comment {
  width: 100%;
  display: flex;
  gap: 12px;
  align-items: flex-start;
}

.app-post-details .post-comment-ava {
  width: 50px;
  height: 50px;
  border-radius: 999px;
  background: rgba(0,0,0,0.10);
}

.app-post-details .post-comment-username {
  font-size: 16px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
}

.app-post-details .post-comment-text {
  margin-top: 4px;
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
  max-width: 900px;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.app-post-details .post-comment-actions {
  margin-top: 8px;
  display: flex;
  gap: 14px;
}

.app-post-details .post-comment-actions button {
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: 12px;
  font-weight: var(--fw-semibold);
  color: var(--text-55);
}

/* right column */
.app-post-details .post-side {
  background: transparent;
  padding: 0;
}

.app-post-details .post-side-title {
  font-size: 17px;
  font-weight: var(--fw-semibold);
  letter-spacing: -0.02em;
  color: var(--text-100);
  margin-bottom: 35px;
}

.app-post-details .post-creator {
  display: flex;
  gap: 12px;
  align-items: center;
}

.app-post-details .post-creator-ava {
  width: 44px;
  height: 44px;
  border-radius: 999px;
  background: rgba(0,0,0,0.12);
}

.app-post-details .post-creator-name {
  font-size: 15px;
  font-weight: var(--fw-semibold);
  color: var(--text-100);
}

.app-post-details .post-creator-handle {
  margin-top: 2px;
  font-size: 14px;
  font-weight: var(--fw-regular);
  color: var(--text-100);
}

.app-post-details .post-creator-bio {
  margin: 25px 0 16px 0;
  font-size: 15px;
  font-weight: var(--fw-medium);
  color: var(--text-70);
  line-height: 1.45;
}

.app-post-details .post-creator-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 28px;
}

.app-post-details .post-follow-btn {
  width: var(--btn-blue-w);
  height: var(--btn-blue-h);
  min-width: var(--btn-blue-min);
  box-sizing: border-box;
  border-radius: var(--btn-blue-radius);
  border: 0;
  cursor: pointer;
  padding: var(--btn-blue-pad);
  background: var(--btn-blue-bg);
  color: var(--btn-blue-text);
  font-size: var(--btn-blue-font);
  line-height: var(--btn-blue-lh);
  font-weight: var(--btn-blue-weight);
  letter-spacing: var(--btn-blue-ls);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}

.app-post-details .post-view-profile {
  font-size: 14px;
  font-weight: var(--fw-medium);
  color: var(--text-55);
  text-decoration: none;
}

.app-post-details .post-side-divider {
  height: 1px;
  background: rgba(0,0,0,0.08);
  border-radius: 999px;
  margin: 35px 0;
}

.app-post-details .post-more {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.app-post-details .post-more-card {
  border: 0;
  padding: 0;
  background: transparent;
  cursor: pointer;
  border-radius: 14px;
  overflow: hidden;
}

.app-post-details .post-more-card img,
.post-comment-ava-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.app-post-details .post-comment-form {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 22px 0;
  min-width: 0;
  box-sizing: border-box;
}

.app-post-details .post-comment-input {
  flex: 1 1 auto;
  min-width: 0;
  height: 44px;
  border-radius: 999px;
  border: 0;
  padding: 0 18px;
  box-sizing: border-box;
  box-shadow: none;
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-regular);
  color: var(--text-100);
  outline: none;
  background: #EBEBEB;
}

.app-post-details .post-comment-input::placeholder {
  color: rgba(var(--text-rgb), 0.50);
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-regular);
}

.app-post-details .post-comment-send {
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 0;
  cursor: pointer;
  background: var(--brand);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.app-post-details .post-comment-send-ico {
  width: 14px;
  height: 14px;
  background: #ffffff;

  -webkit-mask: url("../assets/icons/send-icon.svg") center / contain no-repeat;
  mask: url("../assets/icons/send-icon.svg") center / contain no-repeat;
}

.app-post-details .post-comments {
  width: 100%;
  display: grid;
  gap: 30px;
}

.app-post-details .post-comment-item {
  position: relative;
  width: 100%;
  box-sizing: border-box;
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding-right: 116px;
}

.app-post-details .post-comment-ava {
  width: 50px;
  height: 50px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.10);
  flex: 0 0 50px;
  overflow: hidden;
  cursor: pointer;
}

.app-post-details .post-comment-body {
  flex: 1 1 auto;
  min-width: 0;
}

.app-post-details .post-comment-head {
  width: 100%;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.app-post-details .post-comment-identity {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
}

.app-post-details .post-comment-username {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 16px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
}

.app-post-details .post-comment-badge {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  display: block;
  object-fit: contain;
}

.app-post-details .post-comment-time {
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  white-space: nowrap;
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-regular);
  color: var(--text-55);
}

.app-post-details .post-comment-text {
  margin-top: 4px;
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

/* fullscreen button */
.app-post-details .post-media-fullscreen {
  position: absolute;
  top: 14px;
  right: 14px;

  width: 34px;
  height: 34px;
  box-sizing: border-box;
  border-radius: 999px;
  border: var(--glass-ui-border);
  cursor: pointer;

  background: var(--glass-ui-bg);
  backdrop-filter: var(--glass-ui-filter);
  -webkit-backdrop-filter: var(--glass-ui-filter);
  box-shadow: var(--glass-ui-shadow);

  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}

/* fullscreen icon */
.app-post-details .post-media-fullscreen-ico {
  width: 16px;
  height: 16px;
  background: var(--brand);

  -webkit-mask: url("../assets/icons/fullscreen-icon.svg") center / contain no-repeat;
  mask: url("../assets/icons/fullscreen-icon.svg") center / contain no-repeat;
}

/* fullscreen overlay */
.app-post-details .post-fullscreen {
  position: fixed;
  inset: 0;
  z-index: 9999;

  background: rgba(0, 0, 0, 0.92);
  display: none;
  align-items: center;
  justify-content: center;

  cursor: zoom-out;
}

.app-post-details .post-fullscreen.is-active {
  display: flex;
}

.app-post-details .post-fullscreen-img {
  max-width: 96vw;
  max-height: 96vh;
  object-fit: contain;
}

/* =========================
   POST DETAILS V2
========================= */

.app-post-details .post-details-center,
.app-post-details .post-details-content {
  position: relative;
  width: 100%;
}

.app-post-details .post-details-center {
  padding-top: 0;
}

.app-post-details .post-details-back {
  position: absolute;
  top: 0;
  left: -52px;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 2;
}

.app-post-details .post-details-back:hover {
  background: rgba(var(--text-rgb), 0.05);
}

.app-post-details .post-details-back-icon {
  width: 13px;
  height: 12px;
  background: var(--text-70);
  -webkit-mask: url("../assets/icons/back-icon.svg") center/contain no-repeat;
  mask: url("../assets/icons/back-icon.svg") center/contain no-repeat;
}

.app-post-details .post-author-header {
  position: relative;
  display: flow-root;
  width: 100%;
  height: var(--post-author-header-h);
  box-sizing: border-box;
  overflow: visible;
  background: var(--profile-header-card-bg);
  border-radius: var(--profile-header-card-radius);
}

.app-post-details .post-author-banner {
  position: relative;
  width: calc(100% - (var(--profile-header-pad) * 2));
  height: var(--profile-banner-h);
  margin: var(--profile-header-pad) auto 0;
  border-radius: var(--profile-banner-radius);
  overflow: hidden;
  background: rgba(var(--text-rgb), 0.08);
}

.app-post-details .post-author-banner-img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}

.app-post-details .post-author-level-pill[hidden] {
  display: none;
}

.app-post-details .post-author-display-pill {
  position: absolute;
  left: 191px;
  bottom: var(--profile-display-pill-banner-bottom);
  z-index: 2;
  width: fit-content;
  max-width: min(430px, calc(100% - 370px));
  height: var(--profile-display-pill-h);
  min-height: var(--profile-display-pill-h);
  box-sizing: border-box;
  padding: 0 var(--profile-display-pill-pad-x);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--profile-display-pill-gap);
  overflow: hidden;
  text-decoration: none;
}

.app-post-details .post-author-display {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: var(--profile-display-fs);
  line-height: var(--profile-display-lh);
  font-weight: var(--profile-display-fw);
  letter-spacing: var(--profile-display-ls);
  color: var(--profile-display-color);
}

.app-post-details .post-author-action {
  display: none !important;
}

.app-post-details .post-author-body {
  position: relative;
  height: calc(var(--post-author-header-h) - var(--profile-banner-h) - var(--profile-header-pad));
  box-sizing: border-box;
  padding: 22px 38px 24px 204px;
}

.app-post-details .post-author-avatar-wrap {
  position: absolute;
  left: 34px;
  top: -64px;
  z-index: 3;
  width: var(--profile-avatar-size);
  display: flex;
  flex-direction: column;
  align-items: center;
}

.app-post-details .post-author-avatar-link {
  display: block;
  border-radius: 50%;
}

.app-post-details .post-author-avatar {
  width: var(--profile-avatar-size);
  height: var(--profile-avatar-size);
  display: block;
  box-sizing: border-box;
  border: var(--profile-avatar-stroke) solid var(--profile-avatar-stroke-color);
  border-radius: 50%;
  background: #E4E6E8;
  object-fit: cover;
}

.app-post-details .post-author-level-pill {
  margin-top: -20px;
}

.app-post-details .post-author-copy {
  min-width: 0;
  max-width: 520px;
}

.app-post-details .post-author-username {
  font-size: var(--profile-username-fs);
  line-height: var(--profile-username-lh);
  font-weight: var(--profile-username-fw);
  letter-spacing: var(--profile-username-ls);
  color: var(--profile-username-color);
}

.app-post-details .post-author-bio {
  margin-top: 13px;
  max-width: 520px;
  font-size: var(--profile-bio-fs);
  line-height: var(--profile-bio-lh);
  font-weight: var(--profile-bio-fw);
  letter-spacing: var(--profile-bio-ls);
  color: var(--profile-bio-color);
}

.app-post-details .post-details-content {
  margin-top: 35px;
}

.app-post-details .post-media-stack {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--post-media-stack-gap);
  margin-bottom: 28px;
}

.app-post-details .post-media-stack[hidden] {
  display: none;
}

.app-post-details .post-media-stack.media-count-2,
.app-post-details .post-media-stack.media-count-3,
.app-post-details .post-media-stack.media-count-4 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.app-post-details .post-media-stack.media-count-2 .post-media-item,
.app-post-details .post-media-stack.media-count-3 .post-media-item,
.app-post-details .post-media-stack.media-count-4 .post-media-item {
  aspect-ratio: 1 / 1;
}

.app-post-details .post-media-item {
  position: relative;
  width: 100%;
  min-width: 0;
  overflow: hidden;
  border-radius: var(--glee-radius-card-inner);
  background: #000;
}

.app-post-details .post-media-item.is-image {
  background: transparent;
}

.app-post-details .post-media-item .post-media-img,
.app-post-details .post-media-item .post-media-video {
  position: static;
  inset: auto;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
  background: transparent;
}

.app-post-details .post-media-item .post-media-video {
  background: #000;
}

.app-post-details .post-media-stack.media-count-1 .post-media-item {
  aspect-ratio: auto;
  height: auto;
}

.app-post-details .post-media-stack.media-count-1 .post-media-img,
.app-post-details .post-media-stack.media-count-1 .post-media-video {
  width: 100%;
  height: auto;
  object-fit: contain;
}

.app-post-details .post-title {
  margin: 0 0 22px;
  font-size: var(--post-details-title-fs);
  line-height: var(--post-details-title-lh);
  font-weight: var(--post-details-title-fw);
  letter-spacing: var(--post-details-title-ls);
  color: var(--text-100);
}

.app-post-details .post-desc {
  margin: 0 0 18px;
  max-width: none;
  font-family: var(--font-main);
  font-size: var(--post-details-body-fs);
  line-height: var(--post-details-body-lh);
  font-weight: var(--post-details-body-fw);
  letter-spacing: var(--post-details-body-ls);
  color: var(--text-100);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.app-post-details .post-culture-tag {
  margin: 0 0 18px;
}

.app-post-details .post-culture-tag__chip {
  cursor: default;
  height: 37px;
  min-height: 37px;
  box-sizing: border-box;
  border: 1px solid var(--inline-tag-color);
  border-radius: 999px;
  background: var(--inline-tag-bg);
  color: var(--inline-tag-color);
  padding: 0 13px 0 9px;
  gap: 7px;
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
}

.app-post-details .post-culture-tag__icon {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
}

.app-post-details .post-actions {
  padding: 8px 0;
}

@media (min-width: 901px) {
  body.app-post-details {
    min-width: 1200px;
    height: 100vh;
    overflow: hidden;
    background: var(--bg);
  }

  body.app-post-details .app-shell {
    position: relative;
    width: 100%;
    max-width: none;
    padding: var(--layout-shell-edge) 0;
  }

  body.app-post-details .home-topbar {
    display: block;
    position: relative;
    width: 100%;
    height: var(--layout-topbar-h);
    flex: 0 0 var(--layout-topbar-h);
    z-index: 140;
  }

  body.app-post-details .topbar-center {
    position: absolute;
    left: var(--layout-center-x);
    top: 0;
    width: var(--layout-center-w);
    height: var(--layout-topbar-h);
    transform: translateX(-50%);
  }

  body.app-post-details .topbar-center-inner,
  body.app-post-details .home-topbar.is-search-hidden .topbar-center-inner {
    width: 100% !important;
    transform: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  body.app-post-details .topbar-right,
  body.app-post-details .home-sidebar {
    display: none !important;
  }

  body.app-post-details .home-grid {
    display: block;
    position: relative;
    min-height: 0;
    padding-top: var(--layout-search-content-gap);
  }

  body.app-post-details .page-center {
    position: relative;
    width: var(--layout-center-w);
    max-width: var(--layout-center-w);
    margin-left: var(--layout-content-left);
    margin-right: 0;
  }
}

/* =========================
   SETTINGS (center only)
========================= */

.app-settings .settings-wrap {
  width: 100%;
  max-width: var(--d-center);
  display: flex;
  flex-direction: column;
  gap: 0;
  padding-top: 0;
}

.app-settings .settings-section {
  margin: 0;
}

.app-settings .settings-section + .settings-section {
  margin-top: 38px;
}

.app-settings .settings-legal-footer {
  width: 100%;
  text-align: center;
}

@media (min-width: 901px) {
  body.app-settings .settings-section:last-of-type {
    /* Preserve clearance from the fixed legal footer without making it page-shell spacing. */
    margin-bottom: 30px;
  }

  body.app-settings .settings-legal-footer {
    position: fixed;
    left: var(--layout-content-left);
    bottom: calc(var(--layout-shell-edge) + 4px);
    z-index: 115;
    width: var(--layout-center-w);
    margin: 0;
  }
}

.app-settings .settings-legal-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  font-family: var(--font-main);
  font-size: 12px;
  line-height: 16px;
  font-weight: var(--fw-regular);
  letter-spacing: -0.02em;
  color: var(--text-50);
  white-space: nowrap;
}

.app-settings .settings-legal-nav a {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}

.app-settings .settings-legal-nav a:hover,
.app-settings .settings-legal-nav a:active {
  text-decoration: none;
}

.app-settings .settings-legal-nav a:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 3px;
  border-radius: 2px;
}

.app-settings .settings-section-title {
  margin: 0 0 20px;
  font-size: var(--settings-section-title-fs);
  line-height: var(--settings-section-title-lh);
  font-weight: var(--settings-section-title-fw);
  letter-spacing: var(--settings-section-title-ls);
  color: var(--settings-section-title-color);
}

@media (min-width: 901px) {
  .app-settings .settings-section-title {
    font-size: var(--hub-section-title-fs);
    line-height: var(--hub-section-title-lh);
    font-weight: var(--hub-section-title-fw);
    letter-spacing: var(--hub-section-title-ls);
    color: var(--text-100);
  }
}

.app-settings .settings-field {
  margin: 0;
}

.app-settings .settings-field-label {
  margin: 0 0 12px;
  font-size: var(--settings-label-fs);
  line-height: var(--settings-label-lh);
  font-weight: var(--settings-label-fw);
  letter-spacing: var(--settings-label-ls);
  color: var(--settings-label-color);
}

.glee-input-pill,
.app-settings .settings-input {
  width: 100%;
  height: 44px;
  box-sizing: border-box;
  padding: 0 18px;
  border: 0;
  border-radius: 15px;
  outline: 0;
  background: var(--surface-secondary);
  color: var(--text-100);
  font-family: var(--font-main);
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-regular);
  box-shadow: none;
}

.glee-input-pill::placeholder,
.app-settings .settings-input::placeholder {
  color: rgba(8, 13, 32, 0.50);
}

.app-settings .settings-input[readonly] {
  cursor: default;
}

.app-settings .settings-input:focus {
  outline: none;
  border: 0;
  box-shadow: none;
}

.app-settings .settings-link {
  display: inline-block;
  margin-top: 12px;
  font-size: var(--settings-body-fs);
  line-height: var(--settings-body-lh);
  font-weight: var(--settings-body-fw);
  letter-spacing: var(--settings-body-ls);
  color: var(--brand);
  text-decoration: none;
}

.app-settings .settings-link:hover {
  text-decoration: underline;
}

.app-settings .settings-rows {
  margin-top: 18px;
}

.app-settings .settings-about-copy {
  margin: 0;
  font-size: var(--settings-body-fs);
  line-height: var(--settings-body-lh);
  font-weight: var(--settings-body-fw);
  letter-spacing: var(--settings-body-ls);
  color: var(--settings-body-color);
}

.app-settings .settings-about-copy-row {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--settings-body-color);
  cursor: pointer;
}

.app-post-details .post-more-item[hidden] {
  display: none;
}

.app-settings .settings-about-link-icon {
  width: 12px;
  height: 12px;
  flex: 0 0 12px;
  display: block;
  background-color: currentColor;
  -webkit-mask: url("../assets/icons/settings-about-link.svg") center / contain no-repeat;
  mask: url("../assets/icons/settings-about-link.svg") center / contain no-repeat;
}

.app-settings .settings-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 54px;
  padding: 0;
  box-sizing: border-box;
}

.app-settings .settings-row-title,
.app-settings .settings-row-k {
  font-size: var(--settings-body-fs);
  line-height: var(--settings-body-lh);
  font-weight: var(--settings-body-fw);
  letter-spacing: var(--settings-body-ls);
  color: var(--settings-body-color);
}

.app-settings .settings-row--2col {
  display: grid;
  grid-template-columns: 215px minmax(0, 1fr);
  justify-content: initial;
  gap: 16px;
  align-items: center;
}

.app-settings .settings-link-inline {
  font-size: var(--settings-body-fs);
  line-height: var(--settings-body-lh);
  font-weight: var(--settings-body-fw);
  letter-spacing: var(--settings-body-ls);
  color: var(--brand);
  text-decoration: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.app-settings .settings-link-inline:hover {
  text-decoration: underline;
}

/* Switch */
.app-settings .switch {
  position: relative;
  display: inline-block;
  width: 46px;
  height: 26px;
}

.app-settings .switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.app-settings .switch .slider {
  position: absolute;
  cursor: pointer;
  inset: 0;
  background: rgba(0,0,0,0.18);
  transition: 140ms ease;
  border-radius: 999px;
}

.app-settings .switch .slider:before {
  content: "";
  position: absolute;
  height: 20px;
  width: 20px;
  left: 3px;
  top: 3px;
  background: #ffffff;
  transition: 140ms ease;
  border-radius: 999px;
  box-shadow: 0 1px 2px rgba(0,0,0,0.18);
}

.app-settings .switch input:checked + .slider {
  background: var(--brand);
}

.app-settings .switch input:checked + .slider:before {
  transform: translateX(20px);
}

.app-settings .settings-theme-switch {
  margin-top: 0;
}

.app-settings .settings-row--2col .settings-row-k {
  white-space: nowrap;
}

/* Logout */
.app-settings .btn-logout {
  margin-top: 6px;
  width: var(--btn-blue-w);
  min-width: var(--btn-blue-min);
  height: var(--btn-blue-h);
  box-sizing: border-box;
  border-radius: var(--btn-blue-radius);
  border: 0;
  padding: 0;
  background: #FF5D5D;
  color: #FFFFFF;
  font-family: var(--font-main);
  font-size: var(--btn-blue-font);
  line-height: var(--btn-blue-lh);
  font-weight: var(--btn-blue-weight);
  letter-spacing: var(--btn-blue-ls);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: none;
}

.app-settings .btn-logout:disabled {
  opacity: 0.5;
  cursor: default;
}

/* =========================
   NOTIFICATIONS (center only)
========================= */

.app-notifications .notif-wrap {
  width: 100%;
  max-width: var(--d-center);
  display: flex;
  flex-direction: column;
  padding-top: 6px;
}

.app-notifications .daily-drop-mount {
  width: 100%;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--border-subtle);
  margin-bottom: 30px;
}

.app-notifications .notif-list {
  display: flex;
  flex-direction: column;
  gap: 22px;
}

/* item layout */
.app-notifications .notif-item {
  position: relative;
  display: grid;
  grid-template-columns: 50px minmax(0, 1fr) 7px;
  gap: 12px;
  align-items: start;
  padding: 9px 0;
}

.app-notifications .notif-item.is-unread::after {
  content: "";
  grid-column: 3;
  grid-row: 1;
  width: 7px;
  height: 7px;
  margin-top: 21.5px;
  border-radius: 50%;
  background: var(--brand);
}

.app-notifications .notif-left {
  width: 50px;
  height: 50px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(0,0,0,0.08);
  display: flex;
  align-items: center;
  justify-content: center;
}

.app-notifications .notif-left img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.app-notifications .notif-content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-top: 3px;
}

.app-notifications .notif-row-head {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 14px;
}

.app-notifications .notif-user-identity,
.app-notifications .notif-signal-identity {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  line-height: inherit;
}

.app-notifications .notif-message,
.app-notifications .notif-signal-event {
  min-width: 0;
  font-size: var(--glee-body-fs);
  line-height: var(--glee-body-lh);
  font-weight: var(--glee-body-medium-fw);
  letter-spacing: var(--glee-body-ls);
  white-space: normal;
  overflow-wrap: anywhere;
}

.app-notifications .notif-signal-event {
  display: flex;
  align-items: baseline;
  gap: 6px;
}

.app-notifications .notif-user,
.app-notifications .notif-system-title,
.app-notifications .notif-signal-collection,
.app-notifications .notif-signal-name {
  font-size: var(--glee-body-fs);
  line-height: var(--glee-body-lh);
  font-weight: var(--glee-body-medium-fw);
  letter-spacing: var(--glee-body-ls);
}

.app-notifications .notif-signal-action {
  flex-shrink: 0;
  color: var(--text-70);
}

.app-notifications .notif-signal-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.app-notifications .notif-signal-collection {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--text-100);
  text-decoration: none;
  cursor: pointer;
}

.app-notifications .notif-signal-collection:hover {
  color: var(--text-100);
  text-decoration: none;
}

.app-notifications .notif-signal-name.is-market-heat {
  color: var(--signal-market-heat-bg);
}

.app-notifications .notif-signal-name.is-heavy-accumulation {
  color: var(--signal-heavy-accumulation-bg);
}

.app-notifications .notif-signal-name.is-relative-strength {
  color: var(--signal-relative-strength-bg);
}

.app-notifications .notif-signal-name.is-breakout-pressure {
  color: var(--signal-breakout-pressure-bg);
}

.app-notifications .notif-user {
  color: var(--text-100);
  text-decoration: none;
  cursor: pointer;
}

.app-notifications .notif-user:hover {
  color: var(--text-100);
  text-decoration: none;
}

.app-notifications .notif-system-title {
  color: var(--text-100);
  white-space: nowrap;
}

#glee-toast-root .glee-toast-user-identity {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  line-height: inherit;
  vertical-align: baseline;
}

.app-notifications .notif-msg {
  color: var(--text-70);
}

.notif-user-badge {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  display: block;
  object-fit: contain;
}

.app-notifications .notif-post {
  color: var(--text-100);
  font: inherit;
  text-decoration: none;
  cursor: pointer;
}

.app-notifications .notif-post:hover {
  color: var(--text-100);
  text-decoration: none;
}

.app-notifications .notif-copy-primary,
.app-notifications .notif-comment-body {
  color: var(--text-100);
}

.app-notifications .notif-copy-secondary {
  color: var(--text-70);
}

.app-notifications .notif-time {
  flex: 0 0 auto;
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  font-weight: var(--glee-small-fw);
  letter-spacing: var(--glee-small-ls);
  color: var(--text-50);
  white-space: nowrap;
}

/* =============================
   Home Feed Skeleton
============================= */

@keyframes skel-shimmer {
  0% { transform: translateX(-120%); }
  100% { transform: translateX(120%); }
}

@keyframes skel-bg-shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

.post-card.is-skeleton .post-card-media::after,
.post-card.is-skeleton .post-card-text::after,
.post-card.is-skeleton .post-card-date::after,
.post-card.is-skeleton .post-author-ava::after,
.post-card.is-skeleton .post-author-text::after,
.profile-header.is-skeleton .skel-line::after,
body.app-post-details.is-skeleton .post-more-card.is-skeleton::after,
body.app-post-details.is-skeleton .post-author-banner::after,
body.app-post-details.is-skeleton .post-author-username::after,
body.app-post-details.is-skeleton .post-author-bio::after,
body.app-post-details.is-skeleton .post-media-item::after,
body.app-post-details.is-skeleton .post-title::after,
body.app-post-details.is-skeleton .post-desc::after,
.app-notifications.is-skeleton .notif-item.is-skeleton::after,
body.app-events.is-skeleton .event-card.is-skeleton .event-media::after,
body.app-events.is-skeleton .event-card.is-skeleton .event-title::after,
body.app-events.is-skeleton .event-card.is-skeleton .event-desc::after,
body.app-events.is-skeleton .event-card.is-skeleton .event-meta::after,
body.app-event-details.is-skeleton .event-hero::after,
body.app-event-details.is-skeleton .event-title::after,
body.app-event-details.is-skeleton .event-about-text:empty::after,
body.app-event-details.is-skeleton .event-fact-value:empty::after,
body.app-event-details.is-skeleton .event-speaker.is-skeleton .event-speaker-name::after,
body.app-event-details.is-skeleton .event-speaker.is-skeleton .event-speaker-role::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, var(--skel-shine), transparent);
  transform: translateX(-120%);
  animation: skel-shimmer 1.1s infinite;
}

.post-card.is-skeleton,
body.app-post-details.is-skeleton,
.app-notifications.is-skeleton .notif-list,
body.app-events.is-skeleton,
body.app-events.is-skeleton .event-card.is-skeleton,
body.app-event-details.is-skeleton {
  pointer-events: none;
}

/* =============================
   Profile Header Skeleton
============================= */

.profile-header.is-skeleton .profile-display,
.profile-header.is-skeleton .profile-username,
.profile-header.is-skeleton .profile-bio {
  color: transparent !important;
}

.profile-header.is-skeleton .skel-line {
  display: block;
  background: var(--skel) !important;
  border-radius: 999px;
  position: relative;
  overflow: hidden;
}

.profile-header.is-skeleton .skel-line--name { height: 18px; width: 220px; }
.profile-header.is-skeleton .skel-line--user { height: 14px; width: 140px; margin-top: 10px; }
.profile-header.is-skeleton .skel-line--bio1 { height: 12px; width: 320px; margin-top: 14px; }
.profile-header.is-skeleton .skel-line--bio2 { height: 12px; width: 260px; margin-top: 10px; }
.profile-header.is-skeleton .skel-line--stat { height: 24px; width: 72px; margin: 0 auto; }

/* =============================
   PROFILE AVATAR SKELETON (CORRECT)
   ============================= */

.profile-header.is-skeleton .profile-avatar {
  visibility: hidden;
}

.profile-header.is-skeleton .profile-banner {
  background: var(--skel) !important;
}

.profile-header.is-skeleton .profile-banner-img {
  visibility: hidden;
}

.profile-header.is-skeleton .profile-display-pill {
  width: 260px;
}

.profile-header.is-skeleton .profile-avatar-wrap::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  z-index: 0;

  width: var(--profile-avatar-size);
  height: var(--profile-avatar-size);
  border-radius: 50%;

  background: var(--skel) !important;
  border: var(--profile-avatar-stroke) solid var(--profile-avatar-stroke-color);
  box-sizing: border-box;
  overflow: hidden;
  pointer-events: none;
}

/* Post Details skeleton keeps media and summary placeholders visible while loading. */

/* IMPORTANT: hide everything below preview on the left */
body.app-post-details.is-skeleton .post-desc,
body.app-post-details.is-skeleton .post-actions,
body.app-post-details.is-skeleton .post-discussion,
body.app-post-details.is-skeleton #postComments {
  display: none !important;
}

body.app-post-details.is-skeleton .post-culture-tag {
  display: none;
}

/* Hide comment UI and divider while loading. */
body.app-post-details.is-skeleton .post-divider,
body.app-post-details.is-skeleton .post-section-title,
body.app-post-details.is-skeleton .post-comment-form,
body.app-post-details.is-skeleton .post-comments {
  display: none !important;
}


body.app-post-details.is-skeleton .post-follow-btn {
  color: transparent !important;
  background: var(--skel) !important;
  border: none !important;
  box-shadow: none !important;
}

body.app-post-details.is-skeleton .post-follow-btn {
  width: 120px;
  height: 37px;
  border-radius: 999px;
}

/* RIGHT: More cards skeleton (if we inject .is-skeleton) */
body.app-post-details.is-skeleton .post-more-card.is-skeleton {
  background: var(--skel) !important;
  border-radius: 18px;
  overflow: hidden;
  position: relative;
}

body.app-post-details.is-skeleton .post-more-card.is-skeleton img {
  opacity: 0 !important;
}

/* Post Details V2 skeleton */
body.app-post-details.is-skeleton .post-author-header {
  overflow: visible;
}

body.app-post-details.is-skeleton .post-author-banner,
body.app-post-details.is-skeleton .post-author-username,
body.app-post-details.is-skeleton .post-author-bio,
body.app-post-details.is-skeleton .post-media-item,
body.app-post-details.is-skeleton .post-desc {
  position: relative;
  overflow: hidden;
  background: var(--skel);
  color: transparent;
}

body.app-post-details.is-skeleton .post-author-avatar-link.post-view-profile {
  position: relative;
  z-index: 2;
  display: block !important;
  width: var(--profile-avatar-size) !important;
  height: var(--profile-avatar-size) !important;
  border-radius: 50% !important;
  background: transparent !important;
  overflow: visible !important;
}

body.app-post-details.is-skeleton .post-author-avatar {
  visibility: hidden !important;
  background: transparent !important;
}

body.app-post-details.is-skeleton .post-author-avatar-wrap::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  z-index: 0;
  width: var(--profile-avatar-size);
  height: var(--profile-avatar-size);
  box-sizing: border-box;
  border: var(--profile-avatar-stroke) solid var(--profile-avatar-stroke-color);
  border-radius: 50%;
  background: var(--skel) !important;
  overflow: hidden;
  pointer-events: none;
}

body.app-post-details.is-skeleton .post-author-avatar-wrap::after {
  content: none;
  display: none;
}

body.app-post-details.is-skeleton .post-author-level-pill {
  position: relative;
  z-index: 2;
  display: inline-flex !important;
  visibility: visible !important;
  width: 76px !important;
  min-width: 76px !important;
  height: 23px !important;
  min-height: 23px !important;
  margin-top: -20px !important;
  border-radius: 999px !important;
  background: var(--skel) !important;
  color: transparent !important;
  overflow: hidden;
}

body.app-post-details.is-skeleton .post-author-level-pill::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, var(--skel-shine), transparent);
  transform: translateX(-120%);
  animation: skel-shimmer 1.1s infinite;
  pointer-events: none;
}

@media (min-width: 901px) {
  body.app-post-details.is-skeleton .post-author-display-pill {
    display: none;
  }
}

body.app-post-details.is-skeleton .post-author-banner-img,
body.app-post-details.is-skeleton .profile-display-verified {
  opacity: 0;
}

body.app-post-details.is-skeleton .post-author-username {
  display: block;
  width: 120px;
  height: 14px;
  border-radius: 999px;
}

body.app-post-details.is-skeleton .post-author-bio {
  display: block;
  width: 360px;
  max-width: 100%;
  height: 36px;
  border-radius: 12px;
}

body.app-post-details.is-skeleton .post-media-stack {
  min-height: 458px;
}

body.app-post-details.is-skeleton .post-media-item {
  min-height: 458px;
  border-radius: var(--app-tile-radius);
}

body.app-post-details.is-skeleton .post-desc {
  display: block;
  width: 78%;
  height: 44px;
  border-radius: 12px;
}

/* =============================
   NOTIFICATIONS SKELETON
============================= */

.app-notifications.is-skeleton .notif-item.is-skeleton {
  width: 100%;
  background: var(--skel) !important;
  position: relative;
  overflow: hidden;
}

.app-notifications.is-skeleton .notif-item.is-skeleton > * {
  visibility: hidden;
}

/* =============================
   Events Skeleton (desktop)
============================= */

body.app-events.is-skeleton .event-card.is-skeleton .event-media {
  position: relative;
  background: var(--skel) !important;
  overflow: hidden;
}

body.app-events.is-skeleton .event-card.is-skeleton .event-title,
body.app-events.is-skeleton .event-card.is-skeleton .event-desc,
body.app-events.is-skeleton .event-card.is-skeleton .event-meta {
  background: var(--skel) !important;
  color: transparent !important;
  border-radius: 999px;
  position: relative;
  overflow: hidden;
}

body.app-events.is-skeleton .event-card.is-skeleton .event-title {
  height: 18px;
  width: 58%;
  margin: 0;
}

body.app-events.is-skeleton .event-card.is-skeleton .event-desc {
  height: 12px;
  width: clamp(220px, 64%, 280px);
  max-width: 100%;
  margin-top: 12px;
}

body.app-events.is-skeleton .event-card.is-skeleton .event-meta {
  height: 14px;
  width: 160px;
  margin-top: 28px;
}

body.app-events.is-skeleton .event-card.is-skeleton .btn-details {
  background: var(--skel) !important;
  color: transparent !important;
  border-radius: 999px;
  cursor: default;
}

/* show only relevant skeleton type per breakpoint */
@media (max-width: 900px) {
  body.app-events.is-skeleton .event-card.is-skeleton { display: none !important; }
}

@media (min-width: 901px) {
  body.app-events .m-event { display: none !important; }
}

/* =============================
   Event Details Skeleton (desktop)
============================= */

body.app-event-details.is-skeleton .event-hero {
  position: relative;
  background: var(--skel) !important;
  overflow: hidden;
}

body.app-event-details.is-skeleton .event-hero img {
  opacity: 0 !important;
}

body.app-event-details.is-skeleton .event-title {
  height: 32px;
  width: 58%;
  border-radius: 999px;
  background: var(--skel) !important;
  color: transparent !important;
  position: relative;
  overflow: hidden;
}

body.app-event-details.is-skeleton .event-about-text:empty {
  height: 54px;
  border-radius: 14px;
  background: var(--skel) !important;
  position: relative;
  overflow: hidden;
}

body.app-event-details.is-skeleton .event-fact-value:empty {
  display: inline-block;
  height: 24px;
  width: 130px;
  border-radius: 999px;
  background: var(--skel) !important;
  color: transparent !important;
  position: relative;
  overflow: hidden;
}

body.app-event-details.is-skeleton .event-speaker.is-skeleton .event-speaker-ava {
  background: var(--skel) !important;
}

body.app-event-details.is-skeleton .event-speaker.is-skeleton .event-speaker-name,
body.app-event-details.is-skeleton .event-speaker.is-skeleton .event-speaker-role {
  height: 12px;
  border-radius: 999px;
  background: var(--skel) !important;
  color: transparent !important;
  position: relative;
  overflow: hidden;
}

body.app-event-details.is-skeleton .event-speaker.is-skeleton .event-speaker-name { width: 140px; }
body.app-event-details.is-skeleton .event-speaker.is-skeleton .event-speaker-role { width: 180px; margin-top: 6px; }

/* Campaign blocks extend the same Event Details skeleton, including partial loads. */
@media (min-width: 901px) {
  body.app-event-details .event-loading-block,
  body.app-event-details .campaign-host.is-skeleton,
  body.app-event-details.is-skeleton .campaign-timing,
  body.app-event-details.is-skeleton .campaign-details-content .glee-section-title {
    position: relative;
    overflow: hidden;
    background: var(--skel) !important;
    color: transparent !important;
    border-radius: var(--app-tile-radius);
    pointer-events: none;
  }
  body.app-event-details .event-loading-block::after,
  body.app-event-details .campaign-host.is-skeleton::after,
  body.app-event-details.is-skeleton .campaign-timing::after,
  body.app-event-details.is-skeleton .campaign-details-content .glee-section-title::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent, var(--skel-shine), transparent);
    transform: translateX(-120%);
    animation: skel-shimmer 1.1s infinite;
  }
  body.app-event-details .campaign-host.is-skeleton > *,
  body.app-event-details.is-skeleton .campaign-timing > * { visibility: hidden; }
  body.app-event-details .event-loading-block { display: block; min-height: 22px; width: 100%; }
  body.app-event-details .campaign-step-copy:has(.event-loading-block) { flex: 1; }
  body.app-event-details .campaign-host.is-skeleton { min-width: 180px; min-height: 40px; }
  body.app-event-details.is-skeleton .campaign-timing { min-width: 120px; min-height: 22px; }
  body.app-event-details .campaign-whitelist-status.is-skeleton,
  body.app-event-details .campaign-creator-status.is-skeleton { pointer-events: none; }
  body.app-event-details .campaign-user > .event-loading-block { height: 50px; max-width: 240px; }
  body.app-event-details .campaign-creator-identity > .event-loading-block:first-child { width: 50px; height: 50px; flex: none; border-radius: 50%; }
  body.app-event-details .campaign-creator-card .hub-level-track.event-loading-block { min-height: 11px; }
}

/* Post delete confirm */
.post-confirm {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: var(--modal-backdrop-bg);
  backdrop-filter: var(--modal-backdrop-filter);
  -webkit-backdrop-filter: var(--modal-backdrop-filter);
  z-index: 9999;
  box-sizing: border-box;
}

.post-confirm.is-open {
  display: flex;
}

.post-confirm-card {
  width: min(420px, calc(100vw - 48px));
  box-sizing: border-box;
  padding: var(--action-modal-padding);
  border-radius: var(--action-modal-radius);
  background: var(--surface-card);
  color: var(--text-100);
  border: 0;
  box-shadow: none;
  overflow: hidden;
  background-clip: padding-box;
  -webkit-background-clip: padding-box;
}

.post-confirm-title {
  margin: 0;
  font-size: var(--glee-title-s-fs) !important;
  line-height: var(--glee-title-s-lh) !important;
  font-weight: var(--glee-title-s-fw) !important;
  letter-spacing: var(--glee-title-s-ls) !important;
  color: var(--text-100) !important;
}

.post-confirm-actions {
  margin-top: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.post-confirm-btn {
  width: var(--btn-blue-w);
  min-width: var(--btn-blue-min);
  max-width: var(--btn-blue-w);
  height: var(--btn-blue-h);
  min-height: var(--btn-blue-h);
  box-sizing: border-box;
  border-radius: var(--btn-blue-radius);
  padding: var(--btn-blue-pad);
  font-family: var(--font-main);
  font-size: var(--btn-blue-font);
  line-height: var(--btn-blue-lh);
  font-weight: var(--btn-blue-weight);
  letter-spacing: var(--btn-blue-ls);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  white-space: nowrap;
  cursor: pointer;
}

.post-confirm-btn.is-cancel {
  background: var(--modal-close-bg) !important;
  color: var(--modal-close-text) !important;
  border: 1px solid var(--modal-close-border) !important;
}

.post-confirm-btn.is-danger,
.post-confirm-btn.is-primary {
  background: var(--btn-blue-bg) !important;
  color: var(--btn-blue-text) !important;
  border: 0 !important;
}

.post-report-card {
  width: min(520px, calc(100vw - 48px));
}

.post-report-reasons {
  margin-top: 24px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

.post-report-reason {
  position: relative;
  width: 100%;
  min-height: 24px;
  box-sizing: border-box;
  border: 0;
  border-radius: 0;
  padding: 0 0 0 30px;
  background: transparent;
  color: var(--text-100) !important;
  font-family: var(--font-main);
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  font-weight: var(--glee-small-fw);
  letter-spacing: var(--glee-small-ls);
  text-align: left;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.post-report-reason::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 16px;
  height: 16px;
  box-sizing: border-box;
  transform: translateY(-50%);
  border-radius: 999px;
  border: 1px solid var(--border-strong);
  background: transparent;
}

.post-report-reason::after {
  content: "";
  position: absolute;
  left: 4px;
  top: 50%;
  width: 8px;
  height: 8px;
  transform: translateY(-50%) scale(0);
  border-radius: 999px;
  background: var(--brand);
  transition: transform 140ms ease;
}

.post-report-reason.is-selected {
  background: transparent;
  color: var(--text-100) !important;
}

.post-report-reason.is-selected::before {
  border-color: var(--brand);
}

.post-report-reason.is-selected::after {
  transform: translateY(-50%) scale(1);
}

.post-report-reason:hover:not(.is-selected) {
  background: transparent;
  color: var(--text-100);
}

.post-report-reason:hover,
.post-report-reason:active,
.post-report-reason:focus {
  background: transparent;
}

.post-report-reason:hover:not(.is-selected)::before {
  border-color: rgba(30, 86, 250, 0.55);
}

.post-report-reason:focus-visible {
  outline: none;
}

.post-report-reason:focus-visible::before {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(30, 86, 250, 0.18);
}

.post-confirm-btn.is-primary {
  border: 0;
  background: var(--btn-blue-bg);
  color: var(--btn-blue-text);
}

/* =========================
   SEARCH DROPDOWN (UPP)
========================= */

.search {
  position: relative;
}

.search-dd {
  position: absolute;
  top: 56px;
  left: 0;
  width: 100%;
  box-sizing: border-box;
  z-index: 300;
}

.search-dd-inner {
  width: 100%;
  box-sizing: border-box;
  background: var(--surface-card);
  border-radius: 18px;
  box-shadow: none;
  padding: 18px;
}

.search-dd-section {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.search-dd-title {
  margin: 0 0 2px;
  font-size: 17px;
  line-height: 22px;
  font-weight: var(--fw-semibold);
}

.search-dd-divider {
  display: none;
}

.search-dd-divider + .search-dd-section {
  margin-top: 30px;
}

.search-dd-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.search-dd-section:first-child .search-dd-list {
  gap: var(--search-creator-row-gap);
}

.search-dd-item {
  appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  text-align: left;
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
}

.search-dd-item:hover .search-dd-name,
.search-dd-item:hover .search-dd-post-title {
  text-decoration: underline;
}

.search-dd-ava {
  width: 50px;
  height: 50px;
  flex: 0 0 50px;
  border-radius: 999px;
  object-fit: cover;
}

.search-dd-creator-identity,
.search-dd-by-identity {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.search-dd-name {
  font-family: var(--font-main);
  font-size: 16px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
}

.search-dd-creator-badge {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  object-fit: contain;
}

.search-dd-post {
  align-items: center;
  gap: 12px;
}

.search-dd-thumb {
  width: 72px;
  height: 72px;
  border-radius: 12px;
  object-fit: cover;
  flex: 0 0 72px;
}

.search-dd-post-meta {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 72px;
  justify-content: center;
}

.search-dd-post-title {
  font-family: var(--font-main);
  font-size: var(--glee-body-fs);
  line-height: var(--glee-body-lh);
  font-weight: var(--glee-body-medium-fw);
  letter-spacing: var(--glee-body-ls);
  color: var(--text-90);
}

.search-dd-by {
  display: flex;
  align-items: center;
  gap: 8px;
}

.search-dd-mini-ava {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  border-radius: 999px;
  object-fit: cover;
}

.search-dd-by-text {
  font-family: var(--font-main);
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  color: var(--text-55);
  font-weight: var(--glee-small-fw);
  letter-spacing: var(--glee-small-ls);
}

.search-dd-post-badge {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  object-fit: contain;
}

.search-dd-empty {
  margin-top: 10px;
  font-size: 16px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-70);
}

/* Skeleton */
.search-sk-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 4px 0;
}

.search-sk-circle,
.search-sk-thumb,
.search-sk-mini-circle,
.search-sk-line {
  background: var(--skeleton-base);
  border-radius: 999px;
  position: relative;
  overflow: hidden;
}

.search-sk-circle {
  width: 40px;
  height: 40px;
  border-radius: 999px;
  flex: 0 0 40px;
}

.search-sk-thumb {
  width: 72px;
  height: 72px;
  border-radius: 12px;
  flex: 0 0 72px;
}

.search-sk-post {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.search-sk-post-meta {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-top: 8px;
}

.search-sk-sub {
  display: flex;
  align-items: center;
  gap: 8px;
}

.search-sk-mini-circle {
  width: 18px;
  height: 18px;
  border-radius: 999px;
  flex: 0 0 18px;
}

.search-sk-line {
  height: 10px;
  border-radius: 999px;
}

.search-sk-line.w-180 { width: 180px; }
.search-sk-line.w-160 { width: 160px; }
.search-sk-line.w-120 { width: 120px; }

/* shimmer */
.search-sk-circle::after,
.search-sk-thumb::after,
.search-sk-mini-circle::after,
.search-sk-line::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(90deg, transparent, var(--skeleton-highlight), transparent);
  animation: searchShimmer 1.2s infinite;
}

@keyframes searchShimmer {
  to { transform: translateX(100%); }
}

/* -----------------------------
   Error state (card + retry)
------------------------------ */
.error-card {
  width: 100%;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.03);
  padding: 18px 18px 16px;
}

.error-card-title {
  font-size: 17px;
  font-weight: var(--fw-semibold);
  margin: 0 0 6px;
}

.error-card-text {
  font-size: 15px;
  font-weight: var(--fw-medium);
  color: var(--text-inverse-muted);
  margin: 0 0 14px;
  line-height: 1.35;
}

.error-card-actions {
  display: flex;
  gap: 10px;
  align-items: center;
}

.error-retry-btn {
  height: 37px;
  padding: 0 14px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.10);
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
  font-size: 14px;
  font-weight: var(--fw-semibold);
  cursor: pointer;
}

.error-retry-btn:hover {
  background: rgba(255, 255, 255, 0.10);
}

/* visually hidden text for accessibility */
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* =========================
   EVENT DETAILS
   Mobile-only sections must be hidden on desktop
========================= */
.event-mobile-sections{
  display: none;
}

/* Profile: mobile stats block is hidden on desktop */
.profile-mobile-stats{
  display: none;
}

/* Create Post: close button */
.cp-close{
  position: absolute;
  top: 16px;
  right: 34px;

  width: 30px;
  height: 30px;

  display: flex;
  align-items: center;
  justify-content: center;

  border: 0;
  border-radius: 50%;

  background: #F8FAFC;

  cursor: pointer;
}

.cp-close::before,
.cp-close::after{
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 16px;
  height: 2px;
  background: var(--brand);
  transform-origin: center;
}

.cp-close::before{ transform: translate(-50%, -50%) rotate(45deg); }
.cp-close::after{ transform: translate(-50%, -50%) rotate(-45deg); }

/* iOS tap highlight / grey square reset */
:root{
  -webkit-tap-highlight-color: transparent;
}

/* Only mobile: remove tap highlight + weird active flash on tappables */
@media (max-width: 900px){
  a, button, [role="button"], input, textarea, select, label, summary{
    -webkit-tap-highlight-color: transparent;
    -webkit-touch-callout: none;
  }

  button, [role="button"]{
    -webkit-appearance: none;
    appearance: none;
    outline: none;
    touch-action: manipulation;
  }

  a:focus, a:focus-visible,
  button:focus, button:focus-visible,
  [role="button"]:focus, [role="button"]:focus-visible{
    outline: none;
  }

  /* Kill default iOS grey flash (if any element gets it) */
  a:active, button:active, [role="button"]:active{
    background-color: transparent;
  }
}

@media (min-width: 901px) and (max-width: 1727.98px) {
  #postModal,
  #profileEditModal {
    --modal-form-w: 468px;
    --modal-form-max: calc(100vw - 48px);
    --modal-form-pad-x: 28px;
    --modal-form-radius: 22px;
  }

  #postModal.modal.is-open{
    align-items: flex-start;
    justify-content: center;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 24px 0;
    box-sizing: border-box;
  }

  #postModal .modal-panel{
    width: var(--modal-form-w);
    max-width: var(--modal-form-max);
    height: auto;
    max-height: none;
    margin: 0 auto;
    display: block;
  }

  #postModal .cp-modal{
    height: auto;
    max-height: none;
    overflow: visible;
    padding: 52px var(--modal-form-pad-x) 28px;
    border-radius: var(--modal-form-radius);
    box-sizing: border-box;
  }

  .profile-edit-panel{
    width: var(--modal-form-w);
    max-width: var(--modal-form-max);
  }

  .pe-modal{
    padding-left: var(--modal-form-pad-x);
    padding-right: var(--modal-form-pad-x);
    border-radius: var(--modal-form-radius);
  }

  #postModal .cp-close{
    top: 14px;
    right: 28px;
  }

  #postModal .cp-content{
    gap: 18px;
  }

  #postModal .cp-left-head{
    margin-bottom: 0;
  }

  #postModal .cp-media{
    margin-top: 10px;
    border-radius: 22px;
  }

  #postModal .cp-fields{
    gap: 18px;
    margin-top: 6px;
  }

  #postModal .cp-field{
    gap: 8px;
  }

  #postModal .cp-textarea{
    height: 96px;
  }

  #postModal .cp-post{
    margin-top: 8px;
  }
}

@media (min-width: 901px) and (max-height: 820px) {
  #postModal.modal.is-open {
    padding: 16px 0 24px;
    overflow-y: auto;
    overflow-x: hidden;
  }

  #postModal .modal-panel {
    max-height: none;
  }

  #postModal .cp-modal {
    max-height: none;
    overflow: visible;
    padding-top: 44px;
    padding-bottom: 24px;
  }

  #postModal .cp-content {
    gap: 14px;
  }

  #postModal .cp-media {
    margin-top: 8px;
  }

  #postModal .cp-fields {
    gap: 14px;
    margin-top: 4px;
  }

  #postModal .cp-textarea {
    height: 86px;
  }

  #postModal .cp-post {
    margin-top: 8px;
  }
}

.glee-toast-root {
  position: fixed;
  right: clamp(24px, 6vw, 92px);
  bottom: 92px;
  z-index: 3000;
  display: flex;
  flex-direction: column;
  gap: 14px;
  pointer-events: none;
}

.glee-toast-root.is-sidebar-aligned {
  left: var(--glee-toast-left);
  right: auto;
  width: var(--glee-toast-width);
}

.glee-toast {
  width: clamp(280px, 25vw, 330px);
  min-height: 72px;
  background: var(--toast-bg);
  color: var(--toast-text);
  border-color: var(--toast-border);
  border-radius: 14px;
  box-shadow: var(--tile-shadow);
  display: grid;
  grid-template-columns: 6px 58px 1fr;
  align-items: center;
  overflow: hidden;
  box-sizing: border-box;
  transform: translateY(10px);
  opacity: 0;
  transition: transform 180ms ease, opacity 180ms ease;
  pointer-events: auto;
}

.glee-toast-root.is-sidebar-aligned .glee-toast {
  width: 100%;
}

.glee-toast.is-visible {
  transform: translateY(0);
  opacity: 1;
}

.glee-toast.is-leaving {
  transform: translateY(10px);
  opacity: 0;
}

.glee-toast-accent {
  width: 6px;
  height: 100%;
  background: var(--brand);
}

.glee-toast-icon {
  width: 42px;
  height: 42px;
  border-radius: 999px;
  background: rgba(30, 86, 250, 0.22);
  display: grid;
  place-items: center;
  justify-self: center;
}

.glee-toast-icon img {
  width: 24px;
  height: 24px;
  object-fit: contain;
  display: block;
}

.glee-toast-copy {
  min-width: 0;
  padding: 14px 18px 14px 0;
}

.glee-toast-title {
  font-size: 15px;
  line-height: 1.2;
  font-weight: var(--fw-semibold);
  color: var(--text-100);
}

.glee-toast-message {
  margin-top: 2px;
  font-size: 15px;
  line-height: 1.25;
  font-weight: var(--fw-medium);
  color: var(--text-70);
}

.glee-toast-sales-plus {
  color: var(--brand);
  font-weight: var(--fw-semibold);
}

@media (max-width: 900px) {
  .glee-toast-root,
  .glee-toast-root.is-sidebar-aligned {
    position: fixed;
    top: calc(16px + env(safe-area-inset-top));
    left: 16px;
    right: 16px;
    width: auto;
    bottom: auto;
    z-index: 3000;
    display: flex;
    flex-direction: column;
    gap: 10px;
    pointer-events: none;
  }

  .glee-toast {
    width: 100%;
    box-sizing: border-box;
    transform: translateY(-10px);
    opacity: 0;
  }

  .glee-toast.is-visible {
    transform: translateY(0);
    opacity: 1;
  }

  .glee-toast.is-leaving {
    transform: translateY(-10px);
    opacity: 0;
  }
}

/* =========================
   Component typography normalization
   Passport overlay/decorative selectors intentionally excluded.
========================= */
.loader-logo {
  font-size: 50px;
  line-height: 53px;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-title);
  color: var(--text-100);
}

.brand {
  font-size: 44px;
  line-height: 48px;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-title);
  color: var(--text-100);
}

.cp-left-title,
.cp-empty-title,
.creator-mint-modal__title,
.creator-visa-modal__title,
.donate-xp-title,
.xp-tasks-title,
.pe-head-title,
.error-card-title {
  font-size: 24px;
  line-height: 29px;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-title);
  color: var(--text-100);
}

.creators-title {
  font-size: 20px;
  line-height: 25px;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
}

.post-card .post-title,
.app-community .community-tile-title,
.creator-loop-title,
.app-events .event-title,
.leaderboard-name strong,
.hub-feed-title,
.hub-lootbox-title {
  font-size: 17px;
  line-height: 22px;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
}

.auth-help,
.auth-footnote,
.cp-empty-sub,
.cp-help,
.app-community .community-tile-desc,
.app-events .event-desc,
.app-profile .creator-id-subtitle,
.creator-mint-modal__copy,
.creator-visa-modal__subtitle,
.donate-xp-subtitle,
.donate-xp-note,
.hub-lootbox-desc,
.xp-task-subtitle {
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-70);
}

.cp-label,
.pe-label,
.donate-xp-label,
.creator-mint-modal__section-title,
.creator-visa-modal__section-title,
.xp-task-title,
.leaderboard-name,
.hub-lootbox-price,
.donate-xp-name,
.donate-xp-balance-value,
.creator-mint-modal__info-main,
.creator-visa-modal__path-main {
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
}

.cp-count,
.create-post-tag-label,
.app-events .event-pill,
.app-events .event-muted,
.app-post-details .post-comment-actions button,
.search-dd-by-text,
.search-dd-empty,
.leaderboard-name em,
.leaderboard-row > span:not(.leaderboard-name),
.hub-progress-xp-label,
.hub-xp-lines,
.donate-xp-username,
.donate-xp-balance-label,
.donate-xp-fee,
.creator-mint-modal__info-sub,
.creator-visa-modal__path-sub,
.creator-visa-modal__referral-progress {
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-regular);
  color: var(--text-55);
}

.auth-block::after,
.post-culture-tag__chip,
.glass-pill,
.post-glass-pill,
.hub-rarity,
.create-post-tag-chip {
  font-size: 12px;
  line-height: 16px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-55);
}

.nav-item,
.home-tab,
.top-username,
.event-back,
.cp-back,
.pe-change-link,
.app-community .community-tile-link {
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-70);
}

.nav-item.is-active,
.home-tab.is-active,
.app-community .community-tile-link,
.auth-link,
.app-events .event-live,
.leaderboard-row.is-current .leaderboard-rank,
.hub-lb-row span,
.hub-progress-tiles strong,
.is-receive {
  color: var(--brand);
}

.btn-blue,
.btn-post,
.btn-join,
.app-events .btn-details,
.event-join-btn,
.post-follow-btn,
.post-confirm-btn,
.error-retry-btn,
.donate-xp-submit,
.xp-task-row button,
.hub-lootbox-bottom button {
  font-size: var(--btn-blue-font);
  line-height: var(--btn-blue-lh);
  font-weight: var(--btn-blue-weight);
  letter-spacing: var(--btn-blue-ls);
}

.btn-blue,
.btn-post,
.btn-join,
.app-events .btn-details:not(.is-ended),
.event-join-btn,
.post-follow-btn,
.error-retry-btn,
.donate-xp-submit,
.xp-task-row button:not(:disabled),
.hub-lootbox-bottom button {
  background: var(--brand);
  color: #fff;
}

.auth-input,
.cp-input,
.cp-textarea,
.pe-input,
.pe-textarea,
.donate-xp-input {
  font-family: var(--font-main);
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
}

.auth-input::placeholder,
.cp-input::placeholder,
.cp-textarea::placeholder,
.pe-input::placeholder,
.pe-textarea::placeholder,
.donate-xp-input::placeholder {
  color: var(--text-40);
}

.nav-ico,
.cp-back-icon {
  background: var(--text-55);
}

.nav-item.is-active .nav-ico {
  background: var(--brand);
}

.leaderboard-rank,
.leaderboard-row b,
.hub-progress-tiles strong {
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
}

/* Profile header keeps its component typography over generic glass/meta rules. */
.app-profile .profile-banner-tag {
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-inverse);
}

.app-profile .profile-display {
  font-size: var(--profile-display-fs);
  line-height: var(--profile-display-lh);
  font-weight: var(--profile-display-fw);
  letter-spacing: var(--profile-display-ls);
  color: var(--profile-display-color);
}

.app-profile .profile-username {
  font-size: var(--profile-username-fs);
  line-height: var(--profile-username-lh);
  font-weight: var(--profile-username-fw);
  letter-spacing: var(--profile-username-ls);
  color: var(--profile-username-color);
}

.app-profile .profile-bio {
  font-size: var(--profile-bio-fs);
  line-height: var(--profile-bio-lh);
  font-weight: var(--profile-bio-fw);
  letter-spacing: var(--profile-bio-ls);
  color: var(--profile-bio-color);
}

.app-profile .profile-stat-value {
  font-size: var(--profile-stat-value-fs);
  line-height: var(--profile-stat-value-lh);
  font-weight: var(--profile-stat-value-fw);
  letter-spacing: var(--profile-stat-value-ls);
  color: var(--text-100);
}

.app-profile .profile-stat-label {
  font-size: var(--profile-stat-label-fs);
  line-height: var(--profile-stat-label-lh);
  font-weight: var(--profile-stat-label-fw);
  letter-spacing: var(--profile-stat-label-ls);
  color: var(--text-70);
}

.hub-progress-xp {
  font-size: 50px;
  line-height: 53px;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-title);
  color: var(--text-inverse);
}

.hub-progress-xp-label {
  font-size: 20px;
  line-height: 25px;
  color: var(--text-inverse-muted);
}

.hub-progress-tiles,
.hub-xp-lines,
.hub-level,
.hub-lb-row,
.hub-creator-row,
.leaderboard-row,
.xp-task-row,
.donate-xp-user,
.donate-xp-balance {
  font-family: var(--font-main);
  letter-spacing: var(--ls-medium);
}

.hub-progress-tiles em,
.hub-level span,
.hub-creator-row em,
.hub-lb-row small,
.hub-lb-row em {
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-regular);
  color: var(--text-55);
}

.hub-creator-row strong,
.hub-lb-row strong {
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
}

.leaderboard-row.is-top .leaderboard-rank {
  color: var(--brand);
}

.donate-xp-error,
.auth-error {
  color: #ff3b30;
}

/* =========================
   Typography system
   Keep Creator ID passport overlay/decorative text untouched.
========================= */
body,
body.auth,
.app-home,
.role-chip {
  font-family: var(--font-main);
  color: var(--text-100);
}

.t-display {
  font-size: 50px;
  line-height: 53px;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-title);
  color: var(--text-100);
}

.t-title-xl {
  font-size: 40px;
  line-height: 44px;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-title);
  color: var(--text-100);
}

.t-title-lg {
  font-size: 34px;
  line-height: 38px;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-title);
  color: var(--text-100);
}

.t-title-md {
  font-size: 24px;
  line-height: 29px;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-title);
  color: var(--text-100);
}

.t-section-title {
  font-size: 20px;
  line-height: 25px;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
}

.t-card-title {
  font-size: 17px;
  line-height: 22px;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
}

.t-body-lg {
  font-size: 18px;
  line-height: 25px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-70);
}

.t-body {
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
}

.t-body-muted {
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-70);
}

.t-meta {
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-regular);
  color: var(--text-55);
}

.t-caption {
  font-size: 13px;
  line-height: 18px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-regular);
  color: var(--text-55);
}

.t-micro {
  font-size: 12px;
  line-height: 16px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-55);
}

.t-button {
  font-size: var(--btn-blue-font);
  line-height: var(--btn-blue-lh);
  font-weight: var(--btn-blue-weight);
  letter-spacing: var(--btn-blue-ls);
}

.t-input {
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
}

.creators-title,
.hub-section-title,
.hub-card-title,
.lootboxes-title,
.featured-feed-title,
.featured-event-title,
.featured-creators-title,
.leaderboard-title,
.xp-tasks-title,
.culture-markets-title,
.post-section-title,
.events-section-title,
.creator-loop-kicker {
  font-size: 20px !important;
  line-height: 25px !important;
  font-weight: var(--fw-semibold) !important;
  letter-spacing: var(--ls-medium) !important;
  color: var(--text-100) !important;
}

.app-events .event-title,
.creator-id-title,
.post-card .post-title,
.post-creator-name,
.creator-loop-title {
  font-size: 17px !important;
  line-height: 22px !important;
  font-weight: var(--fw-semibold) !important;
  letter-spacing: var(--ls-medium) !important;
  color: var(--text-100) !important;
}

.nav-item,
.home-tab,
.top-username {
  font-size: 15px !important;
  line-height: 22px !important;
  font-weight: var(--fw-medium) !important;
  letter-spacing: var(--ls-medium) !important;
  color: var(--text-70) !important;
}

.nav-item.is-active,
.home-tab.is-active {
  color: var(--brand) !important;
}

.nav-item.is-active .nav-ico {
  background: var(--brand) !important;
}

.btn-blue,
.btn-join,
.btn-post,
.app-events .btn-details:not(.is-ended),
.event-join-btn,
.post-follow-btn,
.error-retry-btn,
.donate-xp-submit,
.xp-task-row button:not(:disabled),
.hub-lootbox-bottom button {
  background-color: var(--brand);
  color: #fff;
  font-size: var(--btn-blue-font) !important;
  line-height: var(--btn-blue-lh) !important;
  font-weight: var(--btn-blue-weight) !important;
  letter-spacing: var(--btn-blue-ls) !important;
}

.auth-input,
.cp-input,
.cp-textarea,
.pe-input,
.pe-textarea {
  font-family: var(--font-main) !important;
  font-size: 15px !important;
  line-height: 22px !important;
  font-weight: var(--fw-medium) !important;
  letter-spacing: var(--ls-medium) !important;
  color: var(--text-100) !important;
}

.auth-input::placeholder,
.cp-input::placeholder,
.cp-textarea::placeholder,
.pe-input::placeholder,
.pe-textarea::placeholder {
  color: var(--text-40) !important;
}

.role-label,
.cp-label,
.pe-label,
.creator-mint-modal__section-title,
.creator-visa-modal__section-title {
  font-size: 15px !important;
  line-height: 22px !important;
  font-weight: var(--fw-medium) !important;
  letter-spacing: var(--ls-medium) !important;
  color: var(--text-100) !important;
}

.auth-help,
.auth-footnote,
.avatar-suggestions-title,
.role-help,
.post-creator-bio,
.creator-id-subtitle,
.creator-loop-text,
.creator-mint-modal__copy,
.creator-visa-modal__subtitle {
  font-size: 15px !important;
  line-height: 22px !important;
  font-weight: var(--fw-medium) !important;
  letter-spacing: var(--ls-medium) !important;
  color: var(--text-70) !important;
}

.post-author,
.post-creator-handle,
.event-meta,
.creator-mint-modal__info-sub,
.creator-visa-modal__path-sub {
  font-size: 14px !important;
  line-height: 20px !important;
  font-weight: var(--fw-regular) !important;
  letter-spacing: var(--ls-regular) !important;
  color: var(--text-55) !important;
}

.creator-mint-modal__title,
.creator-visa-modal__title,
.cp-title,
.pe-title,
.modal-title {
  font-size: 24px !important;
  line-height: 29px !important;
  font-weight: var(--fw-semibold) !important;
  letter-spacing: var(--ls-title) !important;
  color: var(--text-100) !important;
}

.creator-mint-modal__info-main,
.creator-visa-modal__path-main,
.post-comment-text {
  font-size: 15px !important;
  line-height: 22px !important;
  font-weight: var(--fw-medium) !important;
  letter-spacing: var(--ls-medium) !important;
}

.creator-mint-modal__info-main,
.creator-visa-modal__path-main,
.post-comment-username {
  color: var(--text-100) !important;
}

.auth-link,
.glee-toast-sales-plus {
  color: var(--brand) !important;
}

.btn-post {
  background: var(--brand) !important;
}

.loader-logo {
  font-family: var(--font-main) !important;
  font-weight: var(--fw-semibold) !important;
  color: var(--text-100) !important;
}

.auth-title {
  font-weight: var(--fw-semibold) !important;
  letter-spacing: var(--ls-title) !important;
  color: var(--text-100) !important;
}

.post-comment-handle {
  display: none;
  color: var(--text-55);
  font-weight: var(--fw-regular);
}

.auth-guard-error-card {
  color: var(--text-inverse);
  font-family: var(--font-main);
}

.auth-guard-error-title {
  margin-bottom: 8px;
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-medium);
}

.auth-guard-error-desc {
  margin-bottom: 14px;
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-regular);
  color: var(--text-inverse-muted);
}

.auth-guard-error-btn {
  color: var(--text-inverse);
  font-family: var(--font-main);
  height: 38px;
  padding: 0 14px;
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 10px;
  background: rgba(255,255,255,0.08);
  font-size: var(--btn-blue-font);
  line-height: var(--btn-blue-lh);
  font-weight: var(--btn-blue-weight);
  letter-spacing: var(--btn-blue-ls);
  cursor: pointer;
}

/* =========================
   Standard blue CTA geometry
========================= */
.glee-primary-btn,
.btn-blue,
.btn-post,
.btn-join,
.post-card .post-details-btn,
.app-events .btn-details,
.app-profile .profile-btn,
.app-profile .profile-btn.is-primary,
.profile-btn.post-follow-btn,
.post-follow-btn,
.app-post-details .post-follow-btn,
.event-join-btn,
.app-event-details .event-join-btn,
.error-retry-btn,
.post-confirm-btn,
.cp-post,
.pe-save,
.hub-open-btn,
.xp-task-claim,
.hub-xp-task-claim,
.lootbox-open-btn,
.donate-xp-submit,
.xp-task-row button,
.hub-lootbox-bottom button {
  width: var(--btn-blue-w);
  min-width: var(--btn-blue-min);
  max-width: var(--btn-blue-w);
  height: var(--btn-blue-h);
  min-height: var(--btn-blue-h);
  box-sizing: border-box;
  padding: var(--btn-blue-pad);
  border-radius: var(--btn-blue-radius);
  font-family: var(--font-main);
  font-size: var(--btn-blue-font);
  line-height: var(--btn-blue-lh);
  font-weight: var(--btn-blue-weight);
  letter-spacing: var(--btn-blue-ls);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  white-space: nowrap;
  text-decoration: none;
}

@media (min-width: 901px) {
  .app-event-details .event-join-btn {
    display: flex;
  }
}

.glee-primary-btn,
.btn-blue,
.btn-post,
.btn-join,
.post-card .post-details-btn,
.app-events .btn-details:not(.is-ended),
.event-join-btn,
.post-follow-btn,
.error-retry-btn,
.cp-post,
.pe-save,
.hub-open-btn,
.xp-task-claim,
.hub-xp-task-claim,
.lootbox-open-btn,
.donate-xp-submit,
.xp-task-row button:not(:disabled),
.hub-lootbox-bottom button {
  background: var(--btn-blue-bg);
  color: var(--btn-blue-text);
}

[data-resolved-theme="dark"] .nav-item.is-active {
  color: var(--switcher-active-text) !important;
}

[data-resolved-theme="dark"] .nav-item:not(.is-active) {
  color: var(--switcher-text) !important;
}

/* Feed glass switcher. */
body.app-home .home-tabs {
  position: sticky !important;
  top: var(--feed-switcher-sticky-top) !important;
  z-index: 50 !important;

  width: var(--ui-switcher-w) !important;
  max-width: var(--ui-switcher-w) !important;
  height: var(--ui-switcher-h) !important;
  box-sizing: border-box !important;

  display: grid !important;
  grid-template-columns: var(--ui-switcher-tab-w) var(--ui-switcher-tab-w) !important;
  column-gap: var(--ui-switcher-gap) !important;
  align-items: center !important;
  justify-content: center !important;

  padding: var(--ui-switcher-pad) !important;
  gap: var(--ui-switcher-gap) !important;

  border: 0 !important;
  outline: 0 !important;
  border-radius: var(--ui-switcher-radius) !important;

  background: var(--glass-ui-bg) !important;
  -webkit-backdrop-filter: var(--glass-ui-filter) !important;
  backdrop-filter: var(--glass-ui-filter) !important;
  box-shadow: var(--switcher-glass-shadow) !important;

  margin: 0 auto var(--home-feed-gap) !important;
  transform: none !important;
  overflow: hidden !important;
}

.glee-new-content-pill {
  width: fit-content;
  max-width: 100%;
  height: var(--ui-switcher-h);
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 12px 5px 5px;
  overflow: hidden;
  border: 0;
  border-radius: var(--ui-switcher-radius);
  background: var(--glass-ui-bg);
  -webkit-backdrop-filter: var(--glass-ui-filter);
  backdrop-filter: var(--glass-ui-filter);
  box-shadow: var(--switcher-glass-shadow);
  color: var(--switcher-active-text);
  font-family: var(--font-main);
  font-size: var(--switcher-font-size);
  line-height: var(--switcher-line-height);
  font-weight: var(--switcher-font-weight);
  letter-spacing: var(--switcher-letter-spacing);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  appearance: none;
}

body.app-home .home-new-posts-pill {
  position: sticky;
  top: calc(var(--feed-switcher-sticky-top) + var(--ui-switcher-h) + 5px);
  z-index: 49;
  margin: 0 auto var(--home-feed-gap);
}

.glee-new-content-pill[hidden] {
  display: none;
}

.glee-new-content-pill--text-only {
  padding-left: 12px;
}

body.app-home .home-new-posts-avatar {
  width: 35px;
  height: 35px;
  flex: 0 0 35px;
  display: block;
  object-fit: cover;
  border-radius: 50%;
}

.glee-new-content-pill__label {
  min-width: 0;
  text-align: left;
  white-space: nowrap;
  color: var(--text-70);
}

body.app-home .home-tabs .tabs-indicator {
  display: none !important;
}

body.app-home .home-tabs .home-tab {
  position: relative !important;
  z-index: 1 !important;

  width: var(--ui-switcher-tab-w) !important;
  min-width: var(--ui-switcher-tab-w) !important;
  max-width: var(--ui-switcher-tab-w) !important;
  height: var(--ui-switcher-tab-h) !important;
  box-sizing: border-box !important;

  border: 0 !important;
  border-radius: var(--ui-switcher-radius) !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  font-size: var(--switcher-font-size) !important;
  line-height: var(--switcher-line-height) !important;
  font-weight: var(--switcher-font-weight) !important;
  letter-spacing: var(--switcher-letter-spacing) !important;
  color: var(--switcher-text) !important;
}

body.app-home .home-tabs .home-tab.is-active {
  background: var(--switcher-active-bg) !important;
  color: var(--switcher-active-text) !important;
}

body.app-home .home-tabs .home-tab::before,
body.app-home .home-tabs .home-tab.is-active::before {
  display: none !important;
  content: none !important;
}

body.app-home .home-tabs .home-tab::after,
body.app-home .home-tabs .home-tab.is-active::after {
  display: none !important;
  content: none !important;
}

/* Home Featured Creators. */

body.app-home .creators-row {
  --featured-creator-avatar-size: 65px;
  width: 100% !important;
}

body.app-home .creators-title {
  font-size: 20px !important;
  line-height: 25px !important;
  font-weight: var(--fw-semibold) !important;
  letter-spacing: var(--ls-medium) !important;
  color: var(--text-100) !important;
}

body.app-home .creators-subtitle {
  margin: 12px 0 24px !important;
  font-size: 15px !important;
  line-height: 22px !important;
  font-weight: var(--fw-medium) !important;
  letter-spacing: var(--ls-medium) !important;
  color: var(--text-70) !important;
}

body.app-home .featured-creator-name {
  font-size: 15px !important;
  line-height: 22px !important;
  font-weight: var(--fw-medium) !important;
  letter-spacing: var(--ls-medium) !important;
  color: var(--text-100) !important;
}

body.app-home .featured-creator-username {
  font-size: 14px !important;
  line-height: 20px !important;
  font-weight: var(--fw-regular) !important;
  letter-spacing: var(--ls-regular) !important;
  color: var(--text-70) !important;
}

/* Mobile Profile Creator ID. */

body.app-profile .creator-passport-section > .creator-id-title {
  display: none !important;
}

body.app-profile .creator-passport-thumb {
  color: var(--text-70) !important;
  opacity: 1 !important;
}

body.app-profile .creator-passport-thumb.is-active {
  color: var(--brand) !important;
}

body.app-profile .creator-passport-thumb-icon,
body.app-profile .creator-passport-thumb-label,
body.app-profile .creator-passport-thumb-line {
  color: currentColor !important;
}

body.app-profile .creator-passport-thumb-icon,
body.app-profile .creator-passport-thumb-line {
  background-color: currentColor !important;
}

@media (min-width: 901px) {
  body.app-profile .creator-passport-thumb-label {
    font-family: var(--font-main);
    font-size: var(--glee-small-fs);
    line-height: var(--glee-small-lh);
    font-weight: var(--glee-small-fw);
    letter-spacing: var(--glee-small-ls);
  }
}

body.app-profile .creator-markets-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 14px;
}

body.app-profile .creator-markets-heading {
  min-width: 0;
}

body.app-profile .creator-markets-section .culture-markets-title,
body.app-profile .creator-markets-section > .creator-id-title {
  margin: 0 0 8px !important;
  font-size: 20px !important;
  line-height: 25px !important;
  font-weight: var(--fw-semibold) !important;
  letter-spacing: var(--ls-medium) !important;
  color: var(--text-100) !important;
}

body.app-profile .creator-markets-section .creator-id-subtitle {
  margin: 0 !important;
  font-size: 15px !important;
  line-height: 22px !important;
  font-weight: var(--fw-medium) !important;
  letter-spacing: var(--ls-medium) !important;
  color: var(--text-70) !important;
}

body.app-profile .creator-market-history-section-head {
  margin: 0 0 14px;
}

body.app-profile .creator-market-history-section-title {
  margin: 0 0 8px;
  font-size: 20px;
  line-height: 25px;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
}

body.app-profile .creator-market-history-section-subtitle {
  margin: 0;
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-70);
}

body.app-profile .creator-markets-empty,
body.app-profile .market-history-empty {
  align-items: center;
  padding: 0;
  margin: 0;
  gap: 0;
}

body.app-profile .creator-markets-empty-title,
body.app-profile .market-history-empty-title {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  max-width: 100%;
  height: 37px;
  margin: 0 auto;
  padding: 0 16px;
  box-sizing: border-box;
  border-radius: 999px;
  background: var(--market-empty-pill-bg);
  font-family: var(--font-main);
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  font-weight: var(--glee-small-fw);
  letter-spacing: var(--glee-small-ls);
  color: var(--market-empty-pill-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}


/* Home inline composer. */

body.app-home .inline-post-composer {
  width: 100%;
  max-width: var(--d-center);
  box-sizing: border-box;
  border: 0;
  border-radius: 25px;
  background: var(--surface-card);
  box-shadow: none;
  padding: 15px 30px 15px 15px;
  margin: 28px 0 34px;
  color: var(--text-100);
}

body.app-home .inline-post-composer:not(.is-expanded) {
  min-height: 85px;
}

body.app-home .inline-post-composer.is-expanded {
  min-height: 190px;
  height: auto;
}

body.app-home .home-center > .inline-post-composer {
  border-radius: 40px;
  padding: 15px;
  margin: 0 0 var(--home-feed-gap);
}

body.app-home .home-center > .inline-post-composer:not(.is-expanded) {
  height: 85px;
  min-height: 85px;
}

body.app-home .home-center > .inline-post-composer.is-expanded {
  min-height: 0;
  height: auto;
}

body.app-home .inline-post-top {
  display: grid;
  grid-template-columns: 55px minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 20px;
  min-width: 0;
}

body.app-home .home-center > .inline-post-composer .inline-post-top {
  height: auto;
  min-height: 55px;
  grid-template-columns: 55px minmax(0, 1fr);
  align-items: start;
  column-gap: 10px;
}

body.app-home .home-center > .inline-post-composer:not(.is-expanded) .inline-post-top {
  height: 55px;
}

body.app-home .inline-post-avatar {
  width: 55px;
  height: 55px;
  flex: 0 0 55px;
  border-radius: 50%;
  object-fit: cover;
  background: #d9d9d9;
}

body.app-home .inline-post-text,
body.app-home .inline-post-title,
body.app-home .inline-post-caption {
  display: block;
  width: 100%;
  min-width: 0;
  border: 0;
  outline: 0;
  resize: none;
  overflow: hidden;
  background: transparent;
  box-shadow: none;
  color: var(--text-100);
  font-family: inherit;
  box-sizing: border-box;
}

body.app-home .inline-post-title {
  min-height: 24px;
  max-height: 72px;
  padding: 0;
  align-self: center;
  font-size: 18px;
  line-height: 24px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
}

body.app-home .inline-post-text {
  min-height: 55px;
  max-height: none;
  margin: 0;
  padding: 15.5px 0;
  align-self: start;
  font-size: 16px;
  line-height: 24px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
}

body.app-home .home-center > .inline-post-composer .inline-post-title {
  margin: 0;
  font-size: 16px;
  color: var(--text-100);
}

body.app-home .inline-post-caption {
  min-height: 22px;
  margin-top: 0;
  padding: 0;
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
}

body.app-home .inline-post-text::placeholder {
  color: var(--text-50);
  opacity: 1;
}

body.app-home .inline-post-title::placeholder,
body.app-home .inline-post-caption::placeholder {
  color: var(--text-70);
  opacity: 1;
}

body.app-home .inline-post-media-btn {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--text-70);
  cursor: pointer;
}

body.app-home .home-center > .inline-post-composer .inline-post-media-btn {
  align-self: center;
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  padding: 0;
}

body.app-home .home-center > .inline-post-composer .inline-post-avatar {
  width: 55px;
  height: 55px;
  flex: 0 0 55px;
  flex-shrink: 0;
}

body.app-home .inline-post-expanded-content {
  margin-top: 26px;
}

body.app-home .home-center > .inline-post-composer .inline-post-expanded-content {
  margin-top: 15px;
}

body.app-home .inline-post-composer:not(.is-expanded) .inline-post-expanded-content,
body.app-home .inline-post-composer:not(.is-expanded) .inline-post-media-btn {
  display: none !important;
}

body.app-home .inline-post-media-btn:hover {
  color: var(--text-100);
}

body.app-home .inline-post-media-icon {
  width: 26px;
  height: 26px;
  display: block;
  background-color: currentColor;
  -webkit-mask: url("../assets/icons/camera-icon.svg") no-repeat center;
  mask: url("../assets/icons/camera-icon.svg") no-repeat center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

body.app-home .inline-post-actions {
  margin-top: 24px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 20px;
}

body.app-home .home-center > .inline-post-composer .inline-post-actions {
  margin-top: 0;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 15px;
  row-gap: 8px;
}

body.app-home .inline-post-controls-left {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 15px;
}

body.app-home .inline-post-controls-right {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 15px;
}

body.app-home .home-center > .inline-post-composer .inline-post-controls-left {
  grid-column: 1;
  grid-row: 1;
}

body.app-home .home-center > .inline-post-composer .inline-post-controls-right {
  grid-column: 2;
  grid-row: 1;
}

body.app-home .inline-post-publish-progress {
  display: none;
  width: 100%;
  min-width: 0;
  height: 9px;
  box-sizing: border-box;
  grid-column: 1 / -1;
  grid-row: 2;
  align-self: center;
  margin: 0;
  padding: 2px;
  overflow: hidden;
  border-radius: 999px;
  background: var(--surface-soft);
}

body.app-home .inline-post-publish-progress.is-publishing {
  display: block;
}

body.app-home .inline-post-publish-progress-fill {
  display: block;
  width: 0;
  height: 5px;
  border-radius: 999px;
  background: var(--brand);
  transition: width 220ms ease-out;
}

body.app-home .inline-post-count {
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--text-50);
  font-family: var(--font-main);
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  font-weight: var(--glee-small-fw);
  letter-spacing: var(--glee-small-ls);
  white-space: nowrap;
}

body.app-home .inline-post-tag-selector {
  position: relative;
  flex: 0 0 auto;
}

body.app-home .inline-post-tag-trigger {
  height: 47px;
  min-height: 47px;
  box-sizing: border-box;
  border: 1px solid var(--text-50);
  border-radius: var(--glee-radius-pill);
  background: transparent;
  color: var(--text-70);
  padding: 0 20px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-main);
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: -0.02em;
  cursor: pointer;
}

body.app-home .inline-post-tag-chevron {
  width: 12px;
  height: 7px;
  flex: 0 0 12px;
  display: block;
  opacity: 0.7;
}

html[data-resolved-theme="dark"] body.app-home .inline-post-tag-chevron {
  filter: brightness(0) invert(1);
}

body.app-home .inline-post-tags {
  min-width: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

body.app-home .home-center > .inline-post-composer .inline-post-tags {
  gap: 10px;
}

body.app-home .inline-post-tag-panel {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 90;
  width: 227px;
  box-sizing: border-box;
  padding: 12px;
  border: 1px solid rgba(var(--text-rgb), 0.15);
  border-radius: var(--glee-radius-panel);
  background: var(--surface-card);
  box-shadow: 0 18px 48px rgba(8, 13, 32, 0.10);
}

body.app-home .inline-post-tag-panel[hidden] {
  display: none;
}

body.app-home .inline-post-tag-panel .inline-post-tag {
  height: 37px;
  min-height: 37px;
  border-width: 1px;
}

.inline-post-tag {
  --inline-tag-color: var(--brand);
  --inline-tag-bg: color-mix(in srgb, var(--inline-tag-color) 10%, transparent);
  height: 31px;
  min-height: 31px;
  box-sizing: border-box;
  border: 1px solid var(--inline-tag-color);
  border-radius: 999px;
  background: var(--inline-tag-bg);
  color: var(--inline-tag-color);
  padding: 0 13px 0 9px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  cursor: pointer;
  white-space: nowrap;
}

.inline-post-tag--art {
  --inline-tag-color: var(--culture-tag-art);
}

.inline-post-tag--photo {
  --inline-tag-color: var(--culture-tag-photo);
}

.inline-post-tag--anime {
  --inline-tag-color: var(--culture-tag-anime);
}

.inline-post-tag--music {
  --inline-tag-color: var(--culture-tag-music);
}

.inline-post-tag.is-selected {
  border-color: transparent;
  background: var(--inline-tag-color);
  color: #fff;
}

.inline-post-tag-icon {
  width: 20px;
  height: 20px;
  display: block;
  flex: 0 0 20px;
  background-color: currentColor;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.inline-post-tag--art .inline-post-tag-icon {
  -webkit-mask-image: url("../assets/icons/tag-art.svg");
  mask-image: url("../assets/icons/tag-art.svg");
}

.inline-post-tag--photo .inline-post-tag-icon {
  -webkit-mask-image: url("../assets/icons/tag-photo.svg");
  mask-image: url("../assets/icons/tag-photo.svg");
}

.inline-post-tag--anime .inline-post-tag-icon {
  -webkit-mask-image: url("../assets/icons/tag-anime.svg");
  mask-image: url("../assets/icons/tag-anime.svg");
}

.inline-post-tag--music .inline-post-tag-icon {
  -webkit-mask-image: url("../assets/icons/tag-music.svg");
  mask-image: url("../assets/icons/tag-music.svg");
}

body.app-home .inline-post-submit {
  width: var(--btn-blue-w);
  min-width: var(--btn-blue-min);
  height: var(--btn-blue-h);
  min-height: var(--btn-blue-h);
  flex: 0 0 var(--btn-blue-w);
  border: 0;
  border-radius: var(--btn-blue-radius);
  background: var(--btn-blue-bg);
  color: var(--btn-blue-text);
  padding: var(--btn-blue-pad);
  font-size: var(--btn-blue-font);
  line-height: var(--btn-blue-lh);
  font-weight: var(--btn-blue-weight);
  letter-spacing: var(--btn-blue-ls);
  cursor: pointer;
}

body.app-home .inline-post-error {
  min-height: 20px;
  margin-top: 12px;
  font-size: 13px;
  line-height: 18px;
  color: #d33;
}

body.app-home .inline-post-error:empty {
  display: none;
}

body.app-home .inline-post-preview-grid {
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

body.app-home .home-center > .inline-post-composer .inline-post-preview-grid {
  margin-top: 15px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 15px;
}

body.app-home .inline-post-preview-grid[hidden] {
  display: none;
}

body.app-home .inline-post-preview-item {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 24px;
  background: #d9d9d9;
}

body.app-home .home-center > .inline-post-composer .inline-post-preview-item {
  border-radius: 30px;
}

body.app-home .inline-post-preview-media {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.app-home .inline-post-preview-remove {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 50%;
  background: rgba(11, 16, 32, 0.72);
  display: grid;
  place-items: center;
  padding: 0;
  cursor: pointer;
}

body.app-home .inline-post-preview-remove::before {
  content: "";
  width: 10px;
  height: 10px;
  display: block;
  background-color: #FFFFFF;
  -webkit-mask: url("../assets/icons/post-media-remove.svg") no-repeat center;
  mask: url("../assets/icons/post-media-remove.svg") no-repeat center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

body.app-home .inline-post-preview-badge {
  position: absolute;
  left: 10px;
  bottom: 10px;
  height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(11, 16, 32, 0.72);
  color: #fff;
  font-size: 12px;
  line-height: 24px;
  font-weight: var(--fw-medium);
}

#postModal .inline-post-modal {
  position: relative;
  width: 100%;
  box-sizing: border-box;
}

#postModal .inline-post-modal .inline-post-composer {
  margin: 0;
}

/* =========================
   DESKTOP APP SHELL V2
========================= */
@media (min-width: 901px) {
  body.app-home:not(.app-post-details):not(.app-event-details),
  body.app-hub,
  body.app-leaderboard {
    min-width: 1200px;
    height: 100vh;
    overflow: hidden;
    background: var(--bg);
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .app-shell,
  body.app-hub .app-shell,
  body.app-leaderboard .app-shell {
    position: relative;
    max-width: none;
    width: 100%;
    padding: var(--layout-shell-edge) 0;
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .home-topbar,
  body.app-hub .home-topbar,
  body.app-leaderboard .home-topbar {
    display: block;
    position: relative;
    top: auto;
    width: 100%;
    height: var(--layout-topbar-h);
    flex: 0 0 var(--layout-topbar-h);
    z-index: 140;
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .topbar-center,
  body.app-hub .topbar-center,
  body.app-leaderboard .topbar-center {
    position: absolute;
    left: var(--layout-center-x);
    top: 0;
    width: var(--layout-center-w);
    height: var(--layout-topbar-h);
    transform: translateX(-50%);
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .topbar-center-inner,
  body.app-home:not(.app-post-details):not(.app-event-details) .home-topbar.is-search-hidden .topbar-center-inner,
  body.app-hub .topbar-center-inner,
  body.app-hub .home-topbar.is-search-hidden .topbar-center-inner,
  body.app-leaderboard .topbar-center-inner,
  body.app-leaderboard .home-topbar.is-search-hidden .topbar-center-inner {
    width: 100% !important;
    transform: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .topbar-right,
  body.app-hub .topbar-right,
  body.app-leaderboard .topbar-right {
    display: none !important;
  }

  body.app-home:not(.app-post-details):not(.app-event-details):not(.is-signals-analyze) .home-grid,
  body.app-hub .home-grid,
  body.app-leaderboard .home-grid {
    display: block;
    position: relative;
    min-height: 0;
    padding-top: var(--layout-search-content-gap);
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .home-feed,
  body.app-home:not(.app-post-details):not(.app-event-details) .page-center,
  body.app-hub .page-center,
  body.app-leaderboard .page-center {
    width: var(--layout-center-w);
    max-width: var(--layout-center-w);
    margin-left: var(--layout-content-left);
    margin-right: 0;
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .home-center {
    width: 100%;
    max-width: var(--layout-center-w);
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .home-sidebar,
  body.app-hub .home-sidebar,
  body.app-leaderboard .home-sidebar {
    position: fixed;
    left: var(--layout-rail-left);
    top: 156px;
    width: var(--layout-rail-w);
    height: calc(100vh - var(--layout-content-top) - var(--layout-shell-edge));
    z-index: 110;
    pointer-events: none;
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .side-nav,
  body.app-hub .side-nav,
  body.app-leaderboard .side-nav {
    width: var(--layout-rail-w);
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    pointer-events: none;
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .nav-pill,
  body.app-hub .nav-pill,
  body.app-leaderboard .nav-pill {
    width: var(--layout-rail-w);
    box-sizing: border-box;
    border-radius: 999px;
    border: 1px solid var(--desktop-nav-border);
    background: var(--desktop-nav-bg);
    box-shadow: var(--desktop-nav-shadow);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: var(--layout-nav-gap);
    padding: var(--layout-nav-pad) 0;
    pointer-events: auto;
  }

  .nav-pill--top {
    height: var(--layout-nav-pill-top-h);
  }

  .nav-pill--bottom {
    height: var(--layout-nav-pill-bottom-h);
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .nav-icon-btn,
  body.app-hub .nav-icon-btn,
  body.app-leaderboard .nav-icon-btn {
    width: var(--layout-nav-item);
    height: var(--layout-nav-item);
    min-width: var(--layout-nav-item);
    box-sizing: border-box;
    border-radius: 999px;
    padding: 0;
    margin: 0;
    gap: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    color: var(--switcher-text);
  }

body.app-home:not(.app-post-details):not(.app-event-details) .nav-icon-btn:hover,
body.app-hub .nav-icon-btn:hover,
body.app-leaderboard .nav-icon-btn:hover {
  background: rgba(var(--text-rgb), 0.06);
}

body.app-home:not(.app-post-details):not(.app-event-details) .nav-icon-btn.is-active,
body.app-hub .nav-icon-btn.is-active,
body.app-leaderboard .nav-icon-btn.is-active {
  background: var(--switcher-active-bg);
  color: var(--switcher-active-text);
}

  body.app-home:not(.app-post-details):not(.app-event-details) .nav-icon-btn .nav-ico,
  body.app-hub .nav-icon-btn .nav-ico,
  body.app-leaderboard .nav-icon-btn .nav-ico {
    width: var(--layout-nav-icon);
    height: var(--layout-nav-icon);
    background: var(--switcher-text) !important;
    flex: 0 0 auto;
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .nav-icon-btn.is-active .nav-ico,
  body.app-hub .nav-icon-btn.is-active .nav-ico,
  body.app-leaderboard .nav-icon-btn.is-active .nav-ico {
    background: var(--switcher-active-text) !important;
  }

  .nav-ico-hub {
    -webkit-mask: url("../assets/icons/hub-icon.svg") center/contain no-repeat;
    mask: url("../assets/icons/hub-icon.svg") center/contain no-repeat;
  }

  .nav-ico-feed {
    -webkit-mask: url("../assets/icons/feed-icon.svg") center/contain no-repeat;
    mask: url("../assets/icons/feed-icon.svg") center/contain no-repeat;
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .nav-icon-btn .nav-ico-community,
  body.app-hub .nav-icon-btn .nav-ico-community,
  body.app-leaderboard .nav-icon-btn .nav-ico-community {
    -webkit-mask: url("../assets/icons/community.svg") center/contain no-repeat;
    mask: url("../assets/icons/community.svg") center/contain no-repeat;
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .nav-icon-btn .nav-ico-signals,
  body.app-hub .nav-icon-btn .nav-ico-signals,
  body.app-leaderboard .nav-icon-btn .nav-ico-signals {
    -webkit-mask: url("../assets/icons/signals-icon.svg") center/contain no-repeat;
    mask: url("../assets/icons/signals-icon.svg") center/contain no-repeat;
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .nav-icon-btn .nav-ico-settings,
  body.app-hub .nav-icon-btn .nav-ico-settings,
  body.app-leaderboard .nav-icon-btn .nav-ico-settings {
    -webkit-mask: url("../assets/icons/settings.svg") center/contain no-repeat;
    mask: url("../assets/icons/settings.svg") center/contain no-repeat;
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .nav-icon-btn .nav-ico-notifications,
  body.app-hub .nav-icon-btn .nav-ico-notifications,
  body.app-leaderboard .nav-icon-btn .nav-ico-notifications {
    -webkit-mask: url("../assets/icons/notification-icon.svg") center/contain no-repeat;
    mask: url("../assets/icons/notification-icon.svg") center/contain no-repeat;
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .nav-label,
  body.app-hub .nav-label,
  body.app-leaderboard .nav-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .nav-avatar,
  body.app-hub .nav-avatar,
  body.app-leaderboard .nav-avatar {
    width: var(--layout-nav-item);
    height: var(--layout-nav-item);
    border-radius: 999px;
    object-fit: cover;
    display: block;
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .nav-unread-dot,
  body.app-hub .nav-unread-dot,
  body.app-leaderboard .nav-unread-dot {
    position: absolute;
    right: 11px;
    top: 11px;
    width: 7px;
    height: 7px;
    box-sizing: border-box;
    border: 1px solid #FFFFFF;
    border-radius: 999px;
    background: var(--brand);
    display: none;
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .nav-item.has-unread .nav-unread-dot,
  body.app-hub .nav-item.has-unread .nav-unread-dot,
  body.app-leaderboard .nav-item.has-unread .nav-unread-dot {
    display: block;
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .side-nav .btn-post,
  body.app-hub .side-nav .btn-post,
  body.app-leaderboard .side-nav .btn-post,
  body.app-home:not(.app-post-details):not(.app-event-details) .nav-divider,
  body.app-hub .nav-divider,
  body.app-leaderboard .nav-divider {
    display: none !important;
  }

  .glee-app-version-status {
    position: fixed;
    left: var(--layout-action-left);
    bottom: calc(var(--layout-shell-edge) + 4px);
    z-index: 115;
    display: block;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--text-70);
    font-family: var(--font-main);
    font-size: 18px;
    line-height: 21px;
    font-weight: var(--fw-medium);
    letter-spacing: var(--ls-medium);
    text-align: left;
    white-space: nowrap;
    cursor: pointer;
  }

  .glee-app-version-status:hover {
    color: var(--text-90);
  }
}

/* Home feed header. */

body.app-home .creators-row {
  width: 100% !important;
  padding-top: 0 !important;
  margin-bottom: 30px !important;
}

body.app-home .creators-title,
body.app-home .creators-subtitle,
body.app-home .featured-creator-username {
  display: none !important;
}

body.app-home .creators-list {
  width: 100% !important;
  align-items: flex-start !important;
}

body.app-home .featured-creator-card {
  padding: 0 !important;
}

body.app-home .featured-creator-name-row {
  margin-top: 8px !important;
}

body.app-home .featured-creator-name {
  font-size: 15px !important;
  line-height: 22px !important;
  font-weight: var(--fw-medium) !important;
  letter-spacing: var(--ls-medium) !important;
  color: var(--text-100) !important;
}

/* Home search dropdown. */

body.app-home .home-topbar {
  z-index: 120 !important;
}

body.app-home .topbar-center,
body.app-home .topbar-center-inner,
body.app-home .search {
  overflow: visible !important;
}

body.app-home .home-topbar .topbar-center-inner,
body.app-home .home-topbar.is-search-hidden .topbar-center-inner {
  transform: none !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  transition: none !important;
  will-change: auto !important;
}

body.app-home .search-input {
  box-shadow: none !important;
}

body.app-home .search-input::placeholder {
  color: rgba(var(--text-rgb), 0.50) !important;
  font-weight: var(--fw-regular) !important;
  letter-spacing: var(--ls-medium) !important;
}

#postModal .inline-post-close {
  position: absolute;
  top: 18px;
  right: 18px;
  z-index: 2;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
}

#postModal .inline-post-close::before,
#postModal .inline-post-close::after {
  content: "";
  position: absolute;
  left: 10px;
  right: 10px;
  top: 17px;
  height: 2px;
  border-radius: 2px;
  background: var(--text-70);
}

#postModal .inline-post-close::before {
  transform: rotate(45deg);
}

#postModal .inline-post-close::after {
  transform: rotate(-45deg);
}

#postModal .cp-legacy {
  display: none !important;
}

/* Desktop compact shell. */
@media (min-width: 901px) {
  body.app-home:not(.app-post-details):not(.app-event-details):not(.is-signals-analyze) .home-grid,
  body.app-hub .home-grid,
  body.app-leaderboard .home-grid {
    padding-top: var(--layout-search-content-gap) !important;
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .home-topbar,
  body.app-hub .home-topbar,
  body.app-leaderboard .home-topbar {
    position: relative !important;
    top: auto !important;
    height: var(--layout-topbar-h) !important;
    flex-basis: var(--layout-topbar-h) !important;
    z-index: 180 !important;
    background: var(--bg) !important;
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .nav-pill,
  body.app-hub .nav-pill,
  body.app-leaderboard .nav-pill {
    width: var(--layout-nav-pill-w) !important;
    gap: var(--layout-nav-gap) !important;
    padding: var(--layout-nav-pad) 0 !important;
    justify-content: flex-start !important;
    align-items: center !important;
    border-radius: 999px !important;
    border: 1px solid var(--desktop-nav-border) !important;
    background: var(--desktop-nav-bg) !important;
    box-shadow: var(--desktop-nav-shadow) !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
  }

  .nav-pill--top {
    height: var(--layout-nav-pill-top-h) !important;
  }

  .nav-pill--bottom {
    height: var(--layout-nav-pill-bottom-h) !important;
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .nav-icon-btn,
  body.app-hub .nav-icon-btn,
  body.app-leaderboard .nav-icon-btn {
    width: var(--layout-nav-item) !important;
    height: var(--layout-nav-item) !important;
    min-width: var(--layout-nav-item) !important;
    min-height: var(--layout-nav-item) !important;
    position: relative !important;
    border-radius: 999px !important;
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    color: var(--switcher-text) !important;
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .nav-icon-btn .nav-ico,
  body.app-hub .nav-icon-btn .nav-ico,
  body.app-leaderboard .nav-icon-btn .nav-ico {
    width: var(--layout-nav-icon) !important;
    height: var(--layout-nav-icon) !important;
    position: relative !important;
    z-index: 1 !important;
    background-color: var(--switcher-text) !important;
    background: var(--switcher-text) !important;
  }

body.app-home:not(.app-post-details):not(.app-event-details) .nav-icon-btn.is-active,
body.app-hub .nav-icon-btn.is-active,
body.app-leaderboard .nav-icon-btn.is-active {
  background: var(--switcher-active-bg) !important;
  color: var(--switcher-active-text) !important;
}

body.app-home:not(.app-post-details):not(.app-event-details) .nav-icon-btn.is-active .nav-ico,
body.app-hub .nav-icon-btn.is-active .nav-ico,
body.app-leaderboard .nav-icon-btn.is-active .nav-ico {
  background-color: var(--switcher-active-text) !important;
  background: var(--switcher-active-text) !important;
}

body.app-home:not(.app-post-details):not(.app-event-details) .nav-item.has-unread .nav-ico-notifications,
body.app-hub .nav-item.has-unread .nav-ico-notifications,
body.app-leaderboard .nav-item.has-unread .nav-ico-notifications {
  background-color: var(--switcher-text) !important;
  background: var(--switcher-text) !important;
}

body.app-home:not(.app-post-details):not(.app-event-details) .nav-item.is-active.has-unread .nav-ico-notifications,
body.app-hub .nav-item.is-active.has-unread .nav-ico-notifications,
body.app-leaderboard .nav-item.is-active.has-unread .nav-ico-notifications {
  background-color: var(--switcher-active-text) !important;
  background: var(--switcher-active-text) !important;
}

  body.app-home:not(.app-post-details):not(.app-event-details) .nav-avatar,
  body.app-hub .nav-avatar,
  body.app-leaderboard .nav-avatar {
    width: var(--layout-nav-avatar) !important;
    height: var(--layout-nav-avatar) !important;
    border-radius: 999px !important;
    object-fit: cover !important;
  }

  body.app-community:not(.app-post-details):not(.app-event-details) .community-wrap,
  body.app-profile:not(.app-post-details):not(.app-event-details) .profile-wrap,
  body.app-notifications:not(.app-post-details):not(.app-event-details) .notif-wrap,
  body.app-settings:not(.app-post-details):not(.app-event-details) .settings-wrap,
  body.app-events:not(.app-post-details):not(.app-event-details) .events-wrap {
    padding-top: 0 !important;
  }
}

/* Desktop shell alignment. */
@media (min-width: 901px) {
  body.app-home .home-topbar,
  body.app-hub .home-topbar,
  body.app-leaderboard .home-topbar {
    position: relative !important;
    top: auto !important;
    height: var(--layout-topbar-h) !important;
    flex-basis: var(--layout-topbar-h) !important;
    z-index: 140 !important;
    background: transparent !important;
  }

body.app-home .topbar-left,
body.app-hub .topbar-left,
body.app-leaderboard .topbar-left {
  position: fixed !important;
  top: var(--layout-shell-edge) !important;
  left: calc(var(--layout-content-left) - var(--app-shell-side-gap)) !important;
  transform: translateX(-100%) !important;
  width: max-content !important;
  min-width: max-content !important;
  max-width: none !important;
  height: var(--layout-topbar-h) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  z-index: 260 !important;
  pointer-events: auto !important;
}

body.app-home .brand,
body.app-hub .brand,
body.app-leaderboard .brand {
  font-family: var(--font-main) !important;
  font-size: 40px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  letter-spacing: -0.06em !important;
  color: var(--text-100) !important;
}

  body.app-home .topbar-center,
  body.app-hub .topbar-center,
  body.app-leaderboard .topbar-center {
    position: absolute !important;
    left: var(--layout-center-x) !important;
    top: 0 !important;
    transform: translateX(-50%) !important;
    width: var(--layout-center-w) !important;
    height: var(--layout-topbar-h) !important;
    z-index: 120 !important;
  }

  body.app-home .topbar-center-inner,
  body.app-hub .topbar-center-inner,
  body.app-leaderboard .topbar-center-inner,
  body.app-home .search,
  body.app-hub .search,
  body.app-leaderboard .search {
    width: 100% !important;
    max-width: 100% !important;
    position: relative !important;
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .home-feed,
  body.app-home:not(.app-post-details):not(.app-event-details) .page-center,
  body.app-hub .page-center,
  body.app-leaderboard .page-center {
    width: var(--layout-center-w) !important;
    max-width: var(--layout-center-w) !important;
    margin-left: var(--layout-content-left) !important;
    margin-right: 0 !important;
  }

  body.app-home:not(.app-post-details):not(.app-event-details) .home-sidebar,
  body.app-hub .home-sidebar,
  body.app-leaderboard .home-sidebar {
    left: var(--layout-rail-left) !important;
    top: var(--layout-content-top) !important;
    height: calc(100vh - var(--layout-content-top) - var(--layout-shell-edge)) !important;
  }
}

/* =========================
   CULTURE HUB
========================= */

body.app-hub .hub-page,
body.app-hub .hub-wrap {
  width: 100%;
  max-width: var(--layout-center-w);
  min-width: 0;
}

body.app-hub .hub-wrap {
  display: flex;
  flex-direction: column;
}

body.app-hub .hub-view-content {
  width: 100%;
  min-width: 0;
}

body.app-hub .hub-hero {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: var(--app-tile-radius);
  background: #0d1b2a;
  color: var(--text-inverse);
}

body.app-hub .hub-hero-image,
body.app-hub .hub-event-image,
body.app-hub .hub-lootbox-media > img,
body.app-hub .hub-featured-small-image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

body.app-hub .hub-hero-shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: var(--hub-hero-gradient);
  pointer-events: none;
}

body.app-hub .hub-switch {
  position: relative;
  z-index: 6;
  top: auto;
  left: auto;
  transform: none;
  width: var(--hub-switcher-w);
  max-width: var(--hub-switcher-w);
  height: var(--hub-switcher-h);
  box-sizing: border-box;
  display: grid;
  grid-template-columns: var(--ui-switcher-tab-w) var(--ui-switcher-tab-w);
  column-gap: var(--ui-switcher-gap);
  align-items: center;
  justify-content: center;
  padding: var(--ui-switcher-pad);
  overflow: hidden;
  border: 0;
  border-radius: var(--ui-switcher-radius);
  background: var(--glass-ui-bg);
  -webkit-backdrop-filter: var(--glass-ui-filter);
  backdrop-filter: var(--glass-ui-filter);
  box-shadow: var(--switcher-glass-shadow);
  pointer-events: auto;
}

body.app-hub .hub-switcher-shell {
  position: sticky;
  top: var(--feed-switcher-sticky-top);
  z-index: 70;
  width: 100%;
  height: var(--hub-switcher-h);
  margin: 0 auto var(--home-feed-gap);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  pointer-events: none;
  box-sizing: border-box;
}

body.app-hub .hub-switch button {
  width: var(--ui-switcher-tab-w);
  min-width: var(--ui-switcher-tab-w);
  max-width: var(--ui-switcher-tab-w);
  height: var(--ui-switcher-tab-h);
  min-height: var(--ui-switcher-tab-h);
  max-height: var(--ui-switcher-tab-h);
  box-sizing: border-box;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: var(--ui-switcher-radius);
  background: transparent;
  color: var(--switcher-text);
  font-family: var(--font-main);
  font-size: var(--switcher-font-size);
  line-height: var(--switcher-line-height);
  font-weight: var(--switcher-font-weight);
  letter-spacing: var(--switcher-letter-spacing);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

body.app-hub .hub-switch button.is-active {
  background: var(--switcher-active-bg);
  color: var(--switcher-active-text);
}

body.app-hub .hub-switch button:disabled {
  cursor: default;
  opacity: 1;
}

body.app-hub .hub-hero-copy {
  position: absolute;
  z-index: 2;
  left: 40px;
  top: clamp(82px, 9vw, 110px);
  width: min(250px, 42%);
  transform: none;
  pointer-events: none;
}

body.app-hub .hub-hero-copy h2 {
  margin: 0;
  font-size: clamp(34px, 4.9vw, 40px);
  line-height: .98;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-title);
  color: var(--text-inverse);
}

body.app-hub .hub-hero-copy h2 span {
  color: #FFE100;
}

body.app-hub .hub-hero-copy p {
  margin: 18px 0 0;
  max-width: 210px;
  font-size: var(--community-hero-subtitle-fs);
  line-height: var(--community-hero-subtitle-lh);
  font-weight: var(--community-hero-subtitle-fw);
  letter-spacing: var(--community-hero-subtitle-ls);
  color: var(--community-hero-subtitle-color);
}

body.app-hub .hub-explore-btn,
body.app-hub .hub-event-join {
  width: var(--btn-blue-w);
  min-width: var(--btn-blue-min);
  height: var(--btn-blue-h);
  box-sizing: border-box;
  border: 0;
  border-radius: var(--btn-blue-radius);
  padding: var(--btn-blue-pad);
  background: var(--btn-blue-bg);
  color: var(--btn-blue-text);
  font-family: var(--font-main);
  font-size: var(--btn-blue-font);
  line-height: var(--btn-blue-lh);
  font-weight: var(--btn-blue-weight);
  letter-spacing: var(--btn-blue-ls);
  cursor: pointer;
}

body.app-hub .hub-explore-btn {
  margin-top: 58px;
  pointer-events: auto;
}

@media (min-width: 901px) {
  body.app-hub .hub-hero-copy {
    inset: 0;
    z-index: 3;
    width: auto;
    max-width: none;
    padding-top: 40px;
    padding-left: 40px;
    box-sizing: border-box;
  }

  body.app-hub .hub-hero-copy p {
    max-width: 260px;
    font-size: 17px;
    line-height: 22px;
    font-weight: var(--fw-regular);
    letter-spacing: var(--ls-medium);
    color: rgba(255, 255, 255, .85);
  }

  body.app-hub .hub-explore-btn {
    position: absolute;
    left: 40px;
    bottom: 30px;
    margin-top: 0;
  }
}

body.app-hub .home-scroll {
  position: relative;
  background: var(--bg);
  isolation: isolate;
}

body.app-hub .home-scroll::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: var(--hub-progress-bg);
  opacity: 0;
  transition: opacity 520ms cubic-bezier(.22, .61, .36, 1);
  will-change: opacity;
}

html:not([data-resolved-theme="dark"]) body.app-hub.is-hub-progress-bg-visible .home-scroll::before {
  opacity: 1;
}

body.app-hub .home-scroll::after {
  content: "";
  position: fixed;
  inset: -18%;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 18% 14%, rgba(255, 255, 255, .20) 0%, rgba(255, 255, 255, 0) 34%),
    radial-gradient(circle at 82% 36%, rgba(183, 199, 248, .24) 0%, rgba(183, 199, 248, 0) 38%),
    radial-gradient(circle at 50% 92%, rgba(255, 255, 255, .34) 0%, rgba(255, 255, 255, 0) 44%);
  opacity: 0;
  transform: translate3d(0, 0, 0) scale(1);
  transition: opacity 520ms cubic-bezier(.22, .61, .36, 1);
  animation: hubProgressGradientDrift 10s ease-in-out infinite alternate;
  will-change: transform, opacity;
}

html:not([data-resolved-theme="dark"]) body.app-hub.is-hub-progress-bg-visible .home-scroll::after {
  opacity: .55;
}

html[data-resolved-theme="dark"] body.app-hub.is-hub-progress .home-scroll::before,
html[data-resolved-theme="dark"] body.app-hub.is-hub-progress .home-scroll::after {
  content: none;
}

html:not([data-resolved-theme="dark"]) body.app-hub.is-hub-progress {
  --app-bg: #F8F6F6;
  --surface-card: #FFFFFF;
  --surface-secondary: #F2F2F2;
  --surface-tertiary: #E4E6E8;
  --surface-active: #F0F0F0;
  --surface-input: #FFFFFF;
  --surface-hover: #F8FAFC;
  --surface-disabled: #EBEBEB;
  --profile-avatar-stroke-color: var(--surface-card);
  --modal-neutral-surface: #F7F5F6;
  --donate-input-bg: var(--modal-neutral-surface);
  --donate-suggestion-bg: var(--modal-neutral-surface);
  --donate-summary-bg: var(--modal-neutral-surface);
  --hub-info-subpanel-bg: #F4F6FF;
  --creator-form-row-bg: var(--modal-neutral-surface);
  --bg: #F8F6F6;
  --card-bg: #FFFFFF;
  --text-rgb: 8, 13, 32;
  --text-primary: rgba(var(--text-rgb), 1);
  --text-secondary: rgba(var(--text-rgb), .70);
  --text-muted: rgba(var(--text-rgb), .50);
  --text-100: rgba(var(--text-rgb), 1);
  --text-91: rgba(var(--text-rgb), .91);
  --text-90: rgba(var(--text-rgb), .90);
  --text-85: rgba(var(--text-rgb), .85);
  --text-80: rgba(var(--text-rgb), .80);
  --text-75: rgba(var(--text-rgb), .75);
  --text-70: rgba(var(--text-rgb), .70);
  --text-55: rgba(var(--text-rgb), .55);
  --text-50: rgba(var(--text-rgb), .50);
  --text-40: rgba(var(--text-rgb), .40);
  --text-30: rgba(var(--text-rgb), .30);
  --border-subtle: rgba(var(--text-rgb), 0.10);
  --border-medium: rgba(var(--text-rgb), 0.18);
  --border-strong: rgba(var(--text-rgb), 0.30);
  --icon-primary: rgba(var(--text-rgb), 0.91);
  --icon-muted: rgba(var(--text-rgb), 0.55);
  --placeholder-color: rgba(var(--text-rgb), 0.40);
  --glass-ui-bg: rgba(246, 247, 248, 0.55);
  --glass-ui-stroke: rgba(255, 255, 255, 0.55);
  --glass-ui-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55);
  --switcher-active-bg: #F0F0F0;
  --switcher-active-text: rgba(var(--text-rgb), 1);
  --switcher-text: rgba(var(--text-rgb), 0.50);

  --toast-bg: #FFFFFF;
  --toast-text: rgba(var(--text-rgb), 1);
  --toast-border: rgba(var(--text-rgb), 0.10);

  --modal-outline-btn-bg: #FFFFFF;
  --modal-outline-btn-border: var(--brand);
  --modal-outline-btn-text: var(--brand);

  --desktop-nav-bg: #FFFFFF;
  --desktop-nav-border: transparent;
  --desktop-nav-shadow: none;
}

@keyframes hubProgressGradientDrift {
  0% {
    transform: translate3d(-1.5%, -1%, 0) scale(1);
  }

  100% {
    transform: translate3d(1.5%, 1%, 0) scale(1.04);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.app-hub .home-scroll::before,
  body.app-hub .home-scroll::after {
    transition: none;
    animation: none;
  }
}

body.app-hub .app-shell {
  position: relative;
  z-index: 1;
  background: transparent;
}

body.app-hub .brand,
body.app-hub .top-username {
  transition: color 520ms cubic-bezier(.22, .61, .36, 1);
}

body.app-hub.is-hub-progress .brand,
body.app-hub.is-hub-progress .top-username {
  color: rgba(255, 255, 255, .91);
}

body.app-hub.is-hub-progress .brand {
  color: rgba(255, 255, 255, .91) !important;
}

body.app-hub .hub-progress {
  position: relative;
  width: 100%;
  max-width: var(--layout-center-w);
  min-width: 0;
}

body.app-hub .hub-view-frame.is-progress .hub-title,
body.app-hub .hub-progress-title,
body.app-hub .hub-progress-subtitle {
  margin: 0;
}

body.app-hub .hub-view-frame.is-progress .hub-title,
body.app-hub .hub-progress-title {
  color: rgba(255, 255, 255, .91);
}

body.app-hub .hub-view-frame.is-progress .hub-subtitle,
body.app-hub .hub-progress-subtitle {
  color: rgba(255, 255, 255, .70);
}

body.app-hub .hub-progress-switch {
  position: relative;
  top: auto;
  left: auto;
  transform: none;
  width: var(--hub-switcher-w);
  max-width: var(--hub-switcher-w);
  height: var(--hub-switcher-h);
  box-sizing: border-box;
  display: grid;
  grid-template-columns: var(--ui-switcher-tab-w) var(--ui-switcher-tab-w);
  column-gap: var(--ui-switcher-gap);
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  padding: var(--ui-switcher-pad);
  overflow: hidden;
  border: 0;
  border-radius: var(--ui-switcher-radius);
  background: var(--glass-ui-bg);
  -webkit-backdrop-filter: var(--glass-ui-filter);
  backdrop-filter: var(--glass-ui-filter);
  box-shadow: var(--switcher-glass-shadow);
  pointer-events: auto;
}

body.app-hub .hub-progress-switch button,
body.app-hub .hub-xp-task-tab {
  border: 0;
  font-family: var(--font-main);
  cursor: pointer;
}

body.app-hub .hub-progress-switch button {
  width: var(--ui-switcher-tab-w);
  min-width: var(--ui-switcher-tab-w);
  max-width: var(--ui-switcher-tab-w);
  height: var(--ui-switcher-tab-h);
  min-height: var(--ui-switcher-tab-h);
  max-height: var(--ui-switcher-tab-h);
  box-sizing: border-box;
  padding: 0;
  margin: 0;
  border-radius: var(--ui-switcher-radius);
  background: transparent;
  color: var(--switcher-text);
  font-size: var(--switcher-font-size);
  line-height: var(--switcher-line-height);
  font-weight: var(--switcher-font-weight);
  letter-spacing: var(--switcher-letter-spacing);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

body.app-hub .hub-progress-switch button.is-active {
  background: var(--switcher-active-bg);
  color: var(--switcher-active-text);
}

body.app-hub .hub-progress-summary {
  width: min(400px, 100%);
  margin: 40px auto 0;
  padding-top: 0;
  color: var(--text-inverse);
}

body.app-hub .hub-progress-xp {
  display: flex;
  flex-direction: column;
  align-items: center;
}

body.app-hub .hub-progress-xp-number {
  font-size: 70px;
  line-height: 72px;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-title);
  color: rgba(255, 255, 255, .91);
}

body.app-hub .hub-progress-xp-label {
  margin-top: 2px;
  font-size: 20px;
  line-height: 25px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-medium);
  color: rgba(255, 255, 255, .70);
}

body.app-event-details .campaign-creator-card .hub-view-rankings,
body.app-hub .hub-view-rankings {
  appearance: none;
  width: max-content;
  border: 0;
  background: transparent;
  box-shadow: none;
  margin: 24px auto 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--font-main);
  font-size: var(--community-action-fs);
  line-height: var(--community-action-lh);
  font-weight: var(--community-action-fw);
  letter-spacing: var(--community-action-ls);
  color: #FFFFFF;
  cursor: pointer;
}

body.app-event-details .campaign-creator-card .hub-view-rankings-icon,
body.app-hub .hub-view-rankings-icon {
  width: 18px;
  height: 18px;
  display: block;
  flex: 0 0 18px;
  background-color: currentColor;
  -webkit-mask-image: url("../assets/icons/cta-arrow-circle-light.svg");
  mask-image: url("../assets/icons/cta-arrow-circle-light.svg");
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}

body.app-hub .hub-level-progress {
  width: 100%;
  margin-top: 42px;
}

body.app-event-details .campaign-creator-card .hub-level-progress-row,
body.app-hub .hub-level-progress-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-medium);
  color: rgba(255, 255, 255, .82);
}

body.app-event-details .campaign-creator-card .hub-level-track,
body.app-hub .hub-level-track {
  width: 100%;
  height: 8px;
  display: block;
  overflow: hidden;
  margin-top: 12px;
  border-radius: 999px;
}

body.app-event-details .campaign-creator-card .hub-level-track {
  background: #B8C0D9;
}

body.app-hub .hub-level-track {
  background: #FFFFFF;
}

body.app-event-details .campaign-creator-card .hub-level-fill,
body.app-hub .hub-level-fill {
  height: 100%;
  display: block;
  border-radius: inherit;
  background: var(--brand);
}

body.app-event-details .campaign-creator-card .hub-progress-stats,
body.app-hub .hub-progress-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 34px;
}

body.app-event-details .campaign-creator-card .hub-progress-stat,
body.app-hub .hub-progress-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

body.app-event-details .campaign-creator-card .hub-progress-stat-value,
body.app-hub .hub-progress-stat-value {
  font-size: var(--profile-stat-value-fs);
  line-height: var(--profile-stat-value-lh);
  font-weight: var(--profile-stat-value-fw);
  letter-spacing: var(--profile-stat-value-ls);
  color: rgba(255, 255, 255, .91);
}

body.app-event-details .campaign-creator-card .hub-progress-stat-label,
body.app-hub .hub-progress-stat-label {
  font-size: var(--profile-stat-label-fs);
  line-height: var(--profile-stat-label-lh);
  font-weight: var(--profile-stat-label-fw);
  letter-spacing: var(--profile-stat-label-ls);
  color: rgba(255, 255, 255, .70);
}

body.app-hub .hub-xp-tasks-card {
  width: 100%;
  box-sizing: border-box;
  margin-top: 28px;
  padding: 24px 20px 20px;
  border-radius: var(--app-tile-radius);
  box-shadow: none;
  color: var(--text-100);
}

body.app-hub .hub-progress-skeleton {
  display: block;
  position: relative;
  overflow: hidden;
  border-radius: 999px;
  background: var(--skel);
}

body.app-hub .hub-progress-skeleton::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    transparent,
    var(--skel-shine),
    transparent
  );
  transform: translateX(-120%);
  animation: skel-shimmer 1.1s infinite;
  pointer-events: none;
}

body.app-hub .hub-progress-loading-summary {
  display: flex;
  flex-direction: column;
  align-items: center;
}

body.app-hub .hub-progress-skeleton-xp {
  width: 180px;
  height: 72px;
}

body.app-hub .hub-progress-skeleton-action {
  width: 130px;
  height: 20px;
  margin-top: 24px;
}

body.app-hub .hub-progress-skeleton-track {
  width: 100%;
  height: 8px;
  margin-top: 42px;
}

body.app-hub .hub-progress-loading-stats {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 34px;
}

body.app-hub .hub-progress-loading-stats .hub-progress-skeleton {
  height: 46px;
}

body.app-hub .hub-progress-loading-card {
  pointer-events: none;
}

body.app-hub .hub-progress-skeleton-heading {
  width: 180px;
  height: 25px;
}

body.app-hub .hub-progress-loading-rows {
  display: grid;
  gap: 18px;
  margin-top: 28px;
}

body.app-hub .hub-progress-loading-rows .hub-progress-skeleton {
  width: 100%;
  height: 58px;
  border-radius: 14px;
}

body.app-hub .hub-xp-tasks-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 28px;
}

body.app-hub .hub-xp-tasks-title-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

body.app-hub .hub-xp-tasks-icon {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  display: block;
}

body.app-hub .hub-xp-tasks-title,
body.app-hub .hub-xp-tasks-subtitle,
body.app-hub .hub-xp-task-title,
body.app-hub .hub-xp-task-desc {
  margin: 0;
}

body.app-hub .hub-xp-tasks-title {
  font-size: 20px;
  line-height: 25px;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-medium);
}

body.app-hub .hub-xp-tasks-subtitle {
  margin-top: 8px;
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-70);
}

body.app-hub .hub-xp-task-tabs {
  display: flex;
  align-items: center;
  gap: 34px;
  padding-top: 12px;
}

body.app-hub .hub-xp-task-tab {
  padding: 0;
  background: transparent;
  color: var(--text-55);
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  white-space: nowrap;
}

body.app-hub .hub-xp-task-tab.is-active {
  color: var(--brand);
}

body.app-hub .hub-xp-task-list {
  margin-top: 24px;
}

body.app-hub .hub-xp-task-row {
  min-height: 76px;
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) 82px 82px var(--btn-blue-w);
  align-items: center;
  gap: 14px;
}

body.app-hub .hub-xp-task-icon {
  width: 40px;
  height: 40px;
  position: relative;
  display: block;
  border-radius: 10px;
  background: var(--brand);
}

body.app-hub .hub-xp-task-icon::before {
  content: "";
  position: absolute;
  inset: 9px 10px;
  border: 2px solid #FFFFFF;
  border-radius: 4px;
}

body.app-hub .hub-xp-task-icon span {
  position: absolute;
  top: 14px;
  left: 15px;
  width: 10px;
  height: 2px;
  border-radius: 2px;
  background: #FFFFFF;
  box-shadow: 0 5px 0 #FFFFFF;
}

body.app-hub .hub-xp-task-copy {
  min-width: 0;
}

body.app-hub .hub-xp-task-title {
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
}

body.app-hub .hub-xp-task-desc {
  overflow: hidden;
  margin-top: 1px;
  color: var(--text-70);
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-medium);
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.app-hub .hub-xp-task-referral-link {
  appearance: none;
  width: fit-content;
  border: 0;
  background: transparent;
  box-shadow: none;
  padding: 0;
  margin-top: 8px;
  display: inline-flex;
  font-family: var(--font-main);
  font-size: 14px;
  line-height: 18px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-medium);
  color: var(--brand);
  cursor: pointer;
}

body.app-hub .hub-xp-task-referral-link:hover {
  text-decoration: underline;
}

body.app-hub .hub-xp-task-progress {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}

body.app-hub .hub-xp-task-progress-text,
body.app-hub .hub-xp-task-reward {
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
  white-space: nowrap;
}

body.app-hub .hub-xp-task-track {
  width: 82px;
  height: 8px;
  display: block;
  overflow: hidden;
  border: 1px solid var(--brand);
  border-radius: 999px;
  background: var(--surface-input);
}

body.app-hub .hub-xp-task-fill {
  height: 100%;
  display: block;
  border-radius: inherit;
  background: var(--brand);
}

body.app-hub .hub-xp-task-reward {
  text-align: center;
}

body.app-hub .hub-xp-task-claim {
  width: var(--btn-blue-w);
  min-width: var(--btn-blue-min);
  height: var(--btn-blue-h);
  box-sizing: border-box;
  border: 0;
  border-radius: var(--btn-blue-radius);
  padding: var(--btn-blue-pad);
  background: var(--btn-blue-bg);
  color: var(--btn-blue-text);
  font-family: var(--font-main);
  font-size: var(--btn-blue-font);
  line-height: var(--btn-blue-lh);
  font-weight: var(--btn-blue-weight);
  letter-spacing: var(--btn-blue-ls);
  cursor: pointer;
}

body.app-hub .hub-xp-reset {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 8px;
  color: var(--brand);
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-medium);
}

@media (max-width: 900px) {
  body.app-hub .hub-progress {
    padding-bottom: 0;
  }

  body.app-hub .hub-progress-switch {
    position: static;
    transform: none;
    width: var(--ui-switcher-w);
    max-width: min(var(--ui-switcher-w), 100%);
    margin: 0 auto;
  }

  body.app-hub .hub-progress-summary {
    width: min(400px, calc(100% - 32px));
    margin-top: 36px;
    padding-top: 0;
  }

  body.app-hub .hub-progress-xp-number {
    font-size: 56px;
    line-height: 60px;
  }

  body.app-hub .hub-xp-tasks-card {
    padding: 22px 18px;
  }

  body.app-hub .hub-xp-tasks-head {
    flex-direction: column;
    gap: 14px;
  }

  body.app-hub .hub-xp-task-tabs {
    width: 100%;
    justify-content: space-between;
    gap: 16px;
    padding-top: 0;
  }

  body.app-hub .hub-xp-task-row {
    grid-template-columns: 40px minmax(0, 1fr) var(--btn-blue-w);
    gap: 12px;
    padding: 12px 0;
  }

  body.app-hub .hub-xp-task-progress {
    grid-column: 2;
    align-items: flex-start;
  }

  body.app-hub .hub-xp-task-reward {
    grid-column: 2;
    text-align: left;
  }

  body.app-hub .hub-xp-task-claim {
    grid-column: 3;
    grid-row: 1 / span 3;
  }
}

body.app-hub .hub-section {
  width: 100%;
  margin-top: var(--hub-section-gap);
}

body.app-hub .hub-section-head {
  min-width: 0;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 18px;
}

body.app-hub .hub-section-heading {
  min-width: 0;
}

body.app-hub .hub-section-title {
  margin: 0;
  font-size: var(--hub-section-title-fs);
  line-height: var(--hub-section-title-lh);
  font-weight: var(--hub-section-title-fw);
  letter-spacing: var(--hub-section-title-ls);
  color: var(--text-100);
}

body.app-hub .hub-section-subtitle {
  margin: 6px 0 0;
  font-size: var(--hub-section-subtitle-fs);
  line-height: var(--hub-section-subtitle-lh);
  font-weight: var(--hub-section-subtitle-fw);
  letter-spacing: var(--hub-section-subtitle-ls);
  color: var(--text-70);
}

body.app-hub .hub-top-signals-scope {
  flex: 0 0 auto;
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 34px;
  margin-top: 10px;
}

body.app-hub .hub-top-signals-scope button {
  border: 0;
  padding: 0;
  background: transparent;
  color: var(--text-100);
  font-family: var(--font-main);
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  font-weight: var(--glee-small-fw);
  letter-spacing: var(--glee-small-ls);
  opacity: .5;
  cursor: pointer;
}

body.app-hub .hub-top-signals-scope button.is-active {
  opacity: 1;
}

body.app-hub .hub-top-signals-scope button:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 4px;
  border-radius: 2px;
}

body.app-hub .hub-top-signals-card {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: 30px;
  overflow: hidden;
  border: 0;
  border-radius: var(--app-tile-radius);
  background: var(--surface-card);
  box-shadow: none;
  color: var(--text-100);
}

body.app-hub .hub-top-signals-columns,
body.app-hub .hub-top-signals-row {
  width: 100%;
  min-width: 0;
  display: grid;
  grid-template-columns: 221px repeat(3, 129px);
  column-gap: 49px;
}

body.app-hub .hub-top-signals-columns {
  align-items: center;
  margin-bottom: 28px;
  color: var(--text-70);
  font-family: var(--font-main);
  font-size: 17px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
}

body.app-hub .hub-top-signals-body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 35px;
}

body.app-hub .hub-top-signals-row {
  height: 65px;
  align-items: center;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}

body.app-hub .hub-top-signals-row:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 6px;
  border-radius: 12px;
}

body.app-hub .hub-top-signals-collection {
  width: 221px;
  height: 65px;
  min-width: 0;
  display: grid;
  grid-template-columns: 65px 129px;
  column-gap: 27px;
  align-items: center;
}

body.app-hub .hub-top-signals-avatar {
  width: 65px;
  height: 65px;
  display: block;
  border-radius: 50%;
  object-fit: cover;
  background: var(--surface-secondary);
}

body.app-hub .hub-top-signals-identity,
body.app-hub .hub-top-signals-metric {
  width: 129px;
  height: 65px;
  min-width: 0;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}

body.app-hub .hub-top-signals-name-row {
  width: 100%;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 6px;
}

body.app-hub .hub-top-signals-name,
body.app-hub .hub-top-signals-primary {
  min-width: 0;
  color: var(--text-100);
  font-family: var(--font-main);
  font-size: 17px;
  line-height: 25px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  white-space: nowrap;
}

body.app-hub .hub-top-signals-name {
  overflow: hidden;
  text-overflow: ellipsis;
}

body.app-hub .hub-top-signals-signal,
body.app-hub .hub-top-signals-secondary {
  display: block;
  margin-top: 1px;
  font-family: var(--font-main);
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  font-weight: var(--glee-small-fw);
  letter-spacing: var(--glee-small-ls);
  white-space: nowrap;
}

body.app-hub .hub-top-signals-signal {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}

body.app-hub .hub-top-signals-signal.is-market-heat {
  color: var(--signal-market-heat-bg);
}

body.app-hub .hub-top-signals-signal.is-heavy-accumulation {
  color: var(--signal-heavy-accumulation-bg);
}

body.app-hub .hub-top-signals-signal.is-relative-strength {
  color: var(--signal-relative-strength-bg);
}

body.app-hub .hub-top-signals-signal.is-breakout-pressure {
  color: var(--signal-breakout-pressure-bg);
}

body.app-hub .hub-top-signals-secondary {
  color: var(--text-70);
}

body.app-hub .hub-top-signals-mobile-label {
  display: none;
}

body.app-hub .hub-top-signals-state {
  min-height: 465px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-70);
  font-family: var(--font-main);
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-regular);
  text-align: center;
}

body.app-hub .hub-top-signals-skeleton-row {
  cursor: default;
  pointer-events: none;
}

body.app-hub .hub-top-signals-skeleton {
  display: block;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--skeleton-base) 25%, var(--skeleton-highlight) 50%, var(--skeleton-base) 75%);
  background-size: 200% 100%;
  animation: skel-bg-shimmer 1.25s linear infinite;
}

body.app-hub .hub-top-signals-skeleton-name,
body.app-hub .hub-top-signals-skeleton-value {
  width: 100%;
  height: 15px;
}

body.app-hub .hub-top-signals-skeleton-signal,
body.app-hub .hub-top-signals-skeleton-meta {
  width: 72%;
  height: 11px;
  margin-top: 7px;
}

body.app-hub .hub-how-it-works,
body.app-profile .creator-how-it-works-line,
.glee-section-helper {
  flex: 0 0 auto;
  margin: 0 !important;
  padding: 0;
  border: 0;
  background: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  font-family: var(--font-main);
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  font-weight: var(--glee-small-fw);
  letter-spacing: var(--glee-small-ls);
  color: var(--text-70);
  cursor: pointer;
  white-space: nowrap;
}

body.app-hub .hub-how-it-works .glee-section-helper__icon,
body.app-profile .creator-how-it-works-line .glee-section-helper__icon,
.glee-section-helper__icon {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  display: block;
  background-color: currentColor;
  -webkit-mask: url("/assets/icons/helper-info.svg") center / contain no-repeat;
  mask: url("/assets/icons/helper-info.svg") center / contain no-repeat;
}

body.app-hub .hub-market-slot {
  width: 100%;
  min-width: 0;
}


body.app-hub .hub-placeholder-block,
body.app-hub .hub-placeholder-line,
body.app-hub .hub-placeholder-pill {
  background: #EAF0FF;
}

body.app-hub .hub-placeholder-line {
  width: 100%;
  height: 12px;
  display: block;
  border-radius: 999px;
}

body.app-hub .hub-placeholder-line--short {
  width: 42%;
}

body.app-hub .hub-placeholder-line--medium {
  width: 68%;
}

body.app-hub .hub-market-card-placeholder {
  pointer-events: none;
}

body.app-hub .hub-market-placeholder-media {
  width: 100%;
  height: 100%;
}

body.app-hub .hub-market-placeholder-body {
  min-width: 0;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 20px 18px 16px 22px;
}

body.app-hub .hub-market-placeholder-bottom {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) var(--btn-blue-w);
  align-items: end;
  gap: 20px;
  margin-top: auto;
}

body.app-hub .hub-placeholder-pill {
  width: var(--btn-blue-w);
  height: var(--btn-blue-h);
  display: block;
  border-radius: var(--btn-blue-radius);
}


/* =========================
   GLEE SIGNALS
========================= */

body.app-signals .signals-page {
  color: var(--text-100);
}

body.app-signals .signals-wrap:not([hidden]) {
  width: 100%;
  max-width: var(--d-center);
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}

body.app-signals .signals-panel {
  width: 100%;
  min-width: 0;
}

body.app-signals .signals-content {
  position: relative;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

body.app-signals .signals-new-signals-pill {
  position: sticky;
  top: calc(var(--layout-topbar-h) + 16px);
  z-index: 49;
  margin: 0 auto;
}

body.app-signals .signals-access-stage {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  display: flex;
  justify-content: center;
}

@media (min-width: 901px) {
  body.app-signals .signals-wrap:not([hidden]) {
    position: relative;
    min-height: calc(100vh - var(--layout-content-top) - var(--layout-shell-edge));
  }

  body.app-signals .signals-head {
    position: relative;
    z-index: 1;
  }

  body.app-signals .signals-access-stage {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    min-height: 540px;
    align-items: center;
    pointer-events: none;
  }

  body.app-signals .signals-access-stage > * {
    pointer-events: auto;
    transform: translateY(-24px);
  }

  body.app-signals .signals-access-card {
    --text-rgb: 8, 13, 32;
  }
}

body.app-signals .signals-access-stage[hidden],
body.app-signals .signals-access-card[hidden],
body.app-signals .signals-access-state-error[hidden],
body.app-signals .signals-content[hidden] {
  display: none;
}

body.app-signals .signals-access-card {
  width: 540px;
  height: 540px;
  box-sizing: border-box;
  border-radius: var(--glee-radius-card);
}

body.app-signals .signals-access-card {
  position: relative;
  flex: 0 0 540px;
  overflow: hidden;
  border: 1px solid rgba(8, 13, 32, 0.20);
  background: var(--surface-card);
  font-family: var(--glee-font);
  display: flex;
  flex-direction: column;
  align-items: center;
}

body.app-signals .signals-access-logo {
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  margin-top: 65px;
  display: block;
}

body.app-signals .signals-access-title {
  margin: 30px 0 0;
  color: var(--text-90);
  font-size: var(--glee-title-m-fs);
  line-height: var(--glee-title-m-lh);
  font-weight: var(--glee-title-m-fw);
  letter-spacing: var(--glee-title-m-ls);
}

body.app-signals .signals-access-subtitle {
  margin: 8px 0 0;
  color: var(--text-70);
  font-size: var(--glee-body-fs);
  line-height: var(--glee-body-lh);
  font-weight: var(--glee-body-medium-fw);
  letter-spacing: var(--glee-body-ls);
  text-align: center;
}

body.app-signals .signals-access-form {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}

body.app-signals .signals-access-code-field {
  position: relative;
  width: 262px;
  height: 50px;
  margin-top: 70px;
  display: block;
  cursor: text;
}

body.app-signals .signals-access-code-input {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  padding: 0;
  border: 0;
  margin: 0;
  opacity: 0;
  cursor: text;
  caret-color: transparent;
}

body.app-signals .signals-access-code-cells {
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: repeat(6, 37px);
  gap: 8px;
  pointer-events: none;
}

body.app-signals .signals-access-code-cell {
  width: 37px;
  height: 50px;
  box-sizing: border-box;
  border: 0;
  border-radius: 8px;
  background: var(--surface-soft);
  color: var(--text-90);
  font-size: 25px;
  line-height: 30px;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--glee-title-m-ls);
  display: flex;
  align-items: center;
  justify-content: center;
}

body.app-signals .signals-access-code-cell.is-placeholder {
  color: var(--text-30);
}

body.app-signals .signals-access-code-field:focus-within .signals-access-code-cell.is-active {
  box-shadow: inset 0 0 0 1px var(--brand);
}

body.app-signals .signals-access-error {
  position: absolute;
  top: 326px;
  left: 20px;
  right: 20px;
  min-height: 20px;
  margin: 0;
  color: #FF3B30;
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  font-weight: var(--glee-small-fw);
  letter-spacing: var(--glee-small-ls);
  text-align: center;
}

body.app-signals .signals-access-submit {
  margin-top: 70px;
}

body.app-signals .signals-access-helper {
  position: absolute;
  right: 20px;
  bottom: 20px;
  left: 20px;
  margin: 0;
  color: var(--text-70);
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  font-weight: var(--glee-small-fw);
  letter-spacing: var(--glee-small-ls);
  text-align: center;
}

body.app-signals .signals-access-state-error {
  width: min(540px, 100%);
  box-sizing: border-box;
}

body.app-signals .signals-list {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

body.app-signals .signals-list.is-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 397px));
  gap: 20px;
  justify-content: space-between;
}

body.app-signals .signals-list.is-grid > .signals-state-card {
  grid-column: 1 / -1;
}

body.app-signals .signals-discover-toolbar {
  position: relative;
  z-index: 80;
  margin-bottom: 0;
  display: flex;
  align-items: center;
  gap: 15px;
}

body.app-signals .signals-filter-group {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 15px;
}

body.app-signals .signals-toolbar-spacer {
  min-width: 0;
  flex: 1 1 auto;
}

body.app-signals .signals-filter {
  position: relative;
}

body.app-signals .signals-filter-pill,
body.app-signals .signals-refresh-btn {
  height: 47px;
  min-height: 47px;
  box-sizing: border-box;
  border: 0;
  border-radius: var(--glee-radius-pill);
  background: var(--surface-card);
  color: var(--text-70);
  font-family: var(--font-main);
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: -0.02em;
  cursor: pointer;
}

body.app-signals .signals-filter-pill {
  width: fit-content;
  padding: 0 20px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  white-space: nowrap;
}

body.app-signals .signals-filter-chevron {
  width: 12px;
  height: 7px;
  flex: 0 0 12px;
  display: block;
  opacity: 0.7;
}

body.app-signals .signals-refresh-btn {
  width: 47px;
  min-width: 47px;
  flex: 0 0 47px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

body.app-signals .signals-refresh-icon {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  display: block;
  opacity: 0.7;
}

body.app-signals .signals-filter-panel {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 90;
  width: 227px;
  box-sizing: border-box;
  padding: 12px;
  border: 1px solid rgba(8, 13, 32, 0.15);
  border-radius: var(--glee-radius-panel);
  background: var(--surface-card);
  box-shadow: 0 18px 48px rgba(8, 13, 32, 0.10);
}

body.app-signals .signals-filter-option {
  width: 203px;
  height: 37px;
  min-height: 37px;
  box-sizing: border-box;
  border: 0;
  border-radius: var(--glee-radius-pill);
  background: transparent;
  color: var(--text-50);
  font-family: var(--font-main);
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: -0.02em;
  text-align: left;
  padding: 0 14px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
}

body.app-signals .signals-filter-option-icon {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  display: block;
  opacity: 1;
}

body.app-signals .signals-filter-option + .signals-filter-option {
  margin-top: 4px;
}

body.app-signals .signals-filter-option.is-active {
  background: var(--surface-soft);
  color: var(--text-100);
}

body.app-signals .signals-toolbar-analyze {
  width: auto;
  min-width: 0;
  height: 47px;
  flex: 0 0 auto;
  gap: 10px;
  padding: 0 20px;
  cursor: pointer;
}

body.app-signals .signals-toolbar-analyze-row {
  display: contents;
}

body.app-signals .signals-head-action {
  display: none;
}

body.app-signals .signals-toolbar-analyze-icon {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  display: block;
}

body.app-signals .signals-view-controls {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 18px;
}

body.app-signals .signals-view-btn {
  width: 25px;
  height: 24px;
  padding: 2px 0;
  border: 0;
  background: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  opacity: 0.5;
  cursor: pointer;
  transition: opacity 140ms ease;
}

body.app-signals .signals-view-btn.is-active,
body.app-signals .signals-view-btn:hover,
body.app-signals .signals-view-btn:focus-visible {
  opacity: 0.7;
}

body.app-signals .signals-view-btn:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 4px;
  border-radius: 4px;
}

body.app-signals .signals-view-btn img {
  max-width: 100%;
  max-height: 20px;
  display: block;
}

html[data-resolved-theme="dark"] body.app-signals .signals-filter-chevron,
html[data-resolved-theme="dark"] body.app-signals .signals-refresh-icon,
html[data-resolved-theme="dark"] body.app-signals .signals-view-btn img {
  filter: brightness(0) invert(1);
  opacity: 0.7;
}

html[data-resolved-theme="dark"] body.app-signals .signals-filter-option.is-active {
  background: var(--surface-active);
}

body.app-signals .signals-grid-card {
  position: relative;
  width: 100%;
  min-width: 0;
  height: 481px;
  box-sizing: border-box;
  padding: 30px 22px;
  overflow: hidden;
  border-radius: var(--app-tile-radius);
  background: var(--surface-card);
  color: var(--text-100);
  display: grid;
  grid-template-rows: 120px minmax(37px, auto) minmax(46px, auto) minmax(54px, auto) 37px;
  row-gap: 30px;
  align-content: stretch;
}

body.app-signals .signals-grid-card-header {
  min-width: 0;
  height: 120px;
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  align-items: center;
  gap: 22px;
}

body.app-signals .signals-grid-card-avatar {
  width: 120px;
  height: 120px;
  display: block;
  border-radius: 999px;
  object-fit: cover;
  background: var(--surface-secondary);
}

body.app-signals .signals-grid-card-name {
  min-width: 0;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 7px;
  color: var(--text-100);
  font-family: var(--font-main);
  font-size: var(--glee-title-m-fs);
  line-height: var(--glee-title-m-lh);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-medium);
}

body.app-signals .signals-grid-card-name > span:first-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.app-signals .signals-grid-card-chain {
  flex: 0 0 auto;
  justify-content: flex-end;
}

body.app-signals .signals-grid-card-signal-row {
  width: 100%;
  min-width: 0;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

body.app-signals .signals-grid-card-signal {
  min-width: 0;
}

body.app-signals .signals-grid-card-why {
  max-width: none;
  margin: 0;
}

body.app-signals .signals-grid-card-stats {
  width: 100%;
  margin: 0;
  column-gap: 8px;
}

body.app-signals .signals-grid-card-stats .signals-collection-stat-value {
  font-size: 25px;
  line-height: 30px;
}

body.app-signals .signals-grid-card-stats .signals-collection-stat-label {
  margin-top: 6px;
  font-size: 14px;
  line-height: 18px;
  white-space: normal;
}

body.app-signals .signals-grid-card-footer {
  min-width: 0;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

body.app-signals .signals-grid-card-actions {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

body.app-signals .signals-grid-card--skeleton {
  display: flex;
  flex-direction: column;
  row-gap: 0;
}

body.app-signals .signals-grid-card--skeleton > *,
body.app-signals .signals-grid-card--skeleton span {
  position: relative;
  overflow: hidden;
  background: var(--skeleton-base);
}

body.app-signals .signals-grid-card--skeleton > *::after,
body.app-signals .signals-grid-card--skeleton span::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, var(--skeleton-highlight), transparent);
  transform: translateX(-120%);
  animation: skel-shimmer 1.1s infinite;
}

body.app-signals .signals-grid-skel-header {
  height: 120px;
  display: flex;
  align-items: center;
  gap: 12px;
  background: transparent;
}

body.app-signals .signals-grid-skel-header span:first-child {
  width: 120px;
  height: 120px;
  border-radius: 999px;
}

body.app-signals .signals-grid-skel-header span:last-child {
  width: 170px;
  height: 22px;
  border-radius: var(--glee-radius-pill);
}

body.app-signals .signals-grid-skel-pill {
  width: 142px;
  height: 37px;
  margin-top: 30px;
  border-radius: var(--glee-radius-pill);
}

body.app-signals .signals-grid-skel-copy {
  width: 100%;
  height: 14px;
  margin-top: 30px;
  border-radius: var(--glee-radius-pill);
}

body.app-signals .signals-grid-skel-copy--short {
  width: 72%;
  margin-top: 8px;
}

body.app-signals .signals-grid-skel-stats {
  margin-top: 30px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  background: transparent;
}

body.app-signals .signals-grid-skel-stats span {
  height: 54px;
  border-radius: 14px;
}

body.app-signals .signals-grid-skel-footer {
  margin-top: auto;
  display: flex;
  justify-content: space-between;
  background: transparent;
}

body.app-signals .signals-grid-skel-footer span:first-child {
  width: 112px;
  height: 30px;
  border-radius: 10px;
}

body.app-signals .signals-grid-skel-footer span:last-child {
  width: 165px;
  height: 37px;
  border-radius: var(--glee-radius-pill);
}

body.app-signals .signals-tile {
  width: 100%;
  min-width: 0;
  min-height: 466px;
  box-sizing: border-box;
  position: relative;
  display: block;
  overflow: visible;
  border-radius: var(--profile-header-card-radius);
  background: var(--profile-header-card-bg);
  color: var(--text-100);
}

body.app-signals .signals-tile-banner {
  position: relative;
  width: calc(100% - (var(--profile-header-pad) * 2));
  height: var(--profile-banner-h);
  margin: var(--profile-header-pad) auto 0;
  overflow: hidden;
  border-radius: var(--profile-banner-radius);
  background: var(--surface-secondary);
}

body.app-signals .signals-tile-media-el,
body.app-signals .signals-tile-media-fallback {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}

body.app-signals .signals-tile-body {
  position: relative;
  box-sizing: border-box;
  min-height: 0;
  padding: var(--signals-tile-edge-inset) 0 var(--signals-tile-edge-inset);
}

body.app-signals .signals-collection-avatar-wrap {
  position: absolute;
  left: 34px;
  top: -64px;
  z-index: 3;
  width: var(--profile-avatar-size);
  display: flex;
  align-items: center;
  justify-content: center;
}

body.app-signals .signals-collection-avatar {
  width: var(--profile-avatar-size);
  height: var(--profile-avatar-size);
  aspect-ratio: 1 / 1;
  flex: 0 0 var(--profile-avatar-size);
  box-sizing: border-box;
  border: var(--profile-avatar-stroke) solid var(--profile-avatar-stroke-color);
  border-radius: 999px;
  object-fit: cover;
  object-position: center;
  background: var(--surface-secondary);
}

body.app-signals .signals-collection-content {
  min-width: 0;
  margin-left: 204px;
  padding-right: 42px;
  display: flex;
  flex-direction: column;
  gap: var(--signals-tile-section-gap);
}

body.app-signals .signals-collection-name-pill {
  position: absolute;
  left: 191px;
  bottom: var(--profile-display-pill-banner-bottom);
  z-index: 2;
  width: fit-content;
  max-width: min(430px, calc(100% - 370px));
  height: var(--profile-display-pill-h);
  min-height: var(--profile-display-pill-h);
  box-sizing: border-box;
  margin: 0;
  padding: 0 var(--profile-display-pill-pad-x);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--profile-display-pill-gap);
  overflow: hidden;
}

body.app-signals .signals-collection-name {
  min-width: 0;
  overflow: hidden;
  color: var(--profile-display-color);
  font-family: var(--font-main);
  font-size: var(--profile-display-fs);
  line-height: var(--profile-display-lh);
  font-weight: var(--profile-display-fw);
  letter-spacing: var(--profile-display-ls);
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.app-notifications .notif-signal-verified,
body.app-hub .hub-top-signals-verified,
body.app-signals .signals-collection-verified,
body.app-collection-details .signals-collection-verified {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  display: block;
}

body.app-signals .signals-detail-label,
body.app-signals .signals-metric-label {
  display: block;
  font-family: var(--font-main);
  font-size: var(--glee-meta-fs);
  line-height: var(--glee-meta-lh);
  font-weight: var(--glee-meta-fw);
  letter-spacing: var(--glee-meta-ls);
}

body.app-signals .signals-detail-label,
body.app-signals .signals-metric-label {
  color: var(--text-70);
}

body.app-signals .signals-banner-actions {
  position: absolute;
  right: 31px;
  bottom: 20px;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

body.app-signals .signals-details-btn {
  box-sizing: border-box;
  border: 0;
  border-radius: var(--btn-blue-radius);
  background: var(--btn-blue-bg);
  color: var(--btn-blue-text);
  cursor: pointer;
  text-decoration: none;
  width: var(--btn-blue-w);
  min-width: var(--btn-blue-min);
  height: var(--btn-blue-h);
  padding: var(--btn-blue-pad);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-main);
  font-size: var(--btn-blue-font);
  line-height: var(--btn-blue-lh);
  font-weight: var(--btn-blue-weight);
  letter-spacing: var(--btn-blue-ls);
  white-space: nowrap;
}

body.app-signals .signals-opensea-action,
body.app-collection-details .signals-opensea-action {
  width: var(--btn-blue-h);
  height: var(--btn-blue-h);
  flex: 0 0 var(--btn-blue-h);
  box-sizing: border-box;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  box-shadow: none;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
  cursor: pointer;
  text-decoration: none;
}

body.app-signals .signals-details-btn:hover {
  background: #1748d8;
}

body.app-signals .signals-details-btn:focus-visible,
body.app-signals .signals-opensea-action:focus-visible,
body.app-collection-details .signals-opensea-action:focus-visible {
  outline: 2px solid var(--text-inverse);
  outline-offset: 2px;
}

body.app-signals .signals-primary-row {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

body.app-signals .signals-primary-pill,
body.app-collection-details .signals-primary-pill {
  min-width: 0;
  width: fit-content;
  max-width: 100%;
  height: var(--glee-tag-h);
  min-height: var(--glee-tag-h);
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  padding: 0 var(--glee-tag-pad-x);
  border-radius: var(--glee-radius-pill);
  font-family: var(--font-main);
  font-size: var(--glee-tag-fs);
  line-height: var(--glee-tag-lh);
  font-weight: var(--glee-tag-fw);
  letter-spacing: var(--glee-tag-ls);
  background: var(--brand);
  color: var(--signal-tag-text);
  white-space: nowrap;
}

body.app-signals .signals-primary-pill--volume-ignition,
body.app-collection-details .signals-primary-pill--volume-ignition {
  background: var(--signal-volume-ignition-bg);
}

body.app-signals .signals-primary-pill--market-heat,
body.app-collection-details .signals-primary-pill--market-heat {
  background: var(--signal-market-heat-bg);
}

body.app-signals .signals-primary-pill--heavy-accumulation,
body.app-collection-details .signals-primary-pill--heavy-accumulation {
  background: var(--signal-heavy-accumulation-bg);
}

body.app-signals .signals-primary-pill--relative-strength,
body.app-collection-details .signals-primary-pill--relative-strength {
  background: var(--signal-relative-strength-bg);
}

body.app-signals .signals-primary-pill--breakout-pressure,
body.app-collection-details .signals-primary-pill--breakout-pressure {
  background: var(--signal-breakout-pressure-bg);
  color: var(--signal-breakout-pressure-text);
}

body.app-signals .signals-primary-pill--sweep-detected,
body.app-collection-details .signals-primary-pill--sweep-detected {
  background: var(--signal-sweep-detected-bg);
}

body.app-signals .signals-primary-pill--healthy-dip,
body.app-collection-details .signals-primary-pill--healthy-dip {
  background: var(--signal-healthy-dip-bg);
}

body.app-signals .signals-primary-pill--cheap-entry,
body.app-collection-details .signals-primary-pill--cheap-entry {
  background: var(--signal-cheap-entry-bg);
}

body.app-signals .signals-collection-why {
  max-width: 540px;
  font-family: var(--font-main);
  color: var(--profile-bio-color);
}

body.app-signals .signals-tile .signals-collection-why {
  margin: 0;
}

body.app-signals .signals-collection-why-label {
  font-size: var(--signals-why-now-fs);
  line-height: var(--signals-why-now-lh);
  font-weight: var(--signals-why-now-label-fw);
  letter-spacing: var(--signals-why-now-ls);
}

body.app-signals .signals-collection-why-text {
  font-size: var(--signals-why-now-fs);
  line-height: var(--signals-why-now-lh);
  font-weight: var(--signals-why-now-text-fw);
  letter-spacing: var(--signals-why-now-ls);
}

body.app-signals .signals-collection-stats {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  column-gap: var(--signals-metric-group-gap);
  text-align: center;
}

body.app-signals .signals-tile .signals-collection-stats {
  width: min(calc(100% - 80px), var(--signals-metric-group-w));
  margin: var(--signals-tile-section-gap) auto 0;
}

body.app-signals .signals-collection-stat {
  min-width: 0;
  text-align: center;
}

body.app-signals .signals-collection-stat-value {
  color: var(--text-100);
  font-size: var(--profile-stat-value-fs);
  line-height: var(--profile-stat-value-lh);
  font-weight: var(--profile-stat-value-fw);
  letter-spacing: var(--profile-stat-value-ls);
  white-space: nowrap;
}

body.app-signals .signals-collection-stat-label {
  margin-top: 7px;
  color: var(--text-70);
  font-size: var(--profile-stat-label-fs);
  line-height: var(--profile-stat-label-lh);
  font-weight: var(--profile-stat-label-fw);
  letter-spacing: var(--profile-stat-label-ls);
  white-space: nowrap;
}

body.app-signals .signals-tile-meta {
  min-width: 0;
  margin: var(--signals-tile-section-gap) var(--signals-tile-edge-inset) 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 20px;
  flex-wrap: wrap;
}

body.app-signals .signals-updated-pill {
  height: 30px;
  min-height: 30px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  padding: 0 14px;
  border-radius: 10px;
  background: var(--signals-updated-pill-bg);
  color: var(--text-100);
  font-family: var(--font-main);
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-regular);
  white-space: nowrap;
}

body.app-signals .signals-collection-chain,
body.app-collection-details .signals-collection-chain {
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--text-100);
  font-family: var(--font-main);
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-regular);
  white-space: nowrap;
}

body.app-signals .signals-chain-icon,
body.app-collection-details .signals-chain-icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  object-fit: contain;
}

body.app-signals .signals-opensea-icon,
body.app-collection-details .signals-opensea-icon {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}

body.app-signals .signals-metrics {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

body.app-signals .signals-metric {
  min-width: 0;
  box-sizing: border-box;
  border-radius: var(--glee-radius-panel);
  background: var(--surface-secondary);
  padding: 10px 12px;
}

body.app-signals .signals-metric-value {
  margin-top: 3px;
  color: var(--text-100);
  font-size: 15px;
  line-height: 20px;
  font-weight: var(--fw-semibold);
  overflow-wrap: anywhere;
}

body.app-signals .signals-metric-meta {
  margin-top: 2px;
  color: var(--text-55);
  font-size: var(--glee-meta-fs);
  line-height: var(--glee-meta-lh);
  font-weight: var(--glee-meta-fw);
  letter-spacing: var(--glee-meta-ls);
}

body.app-signals .signals-tile--skeleton {
  pointer-events: none;
}

body.app-signals .signals-tile--skeleton .signals-tile-banner,
body.app-signals .signals-tile--skeleton .signals-collection-avatar-wrap,
body.app-signals .signals-skel-block,
body.app-signals .signals-skel-line,
body.app-signals .signals-skel-actions span,
body.app-signals .signals-skel-meta span,
body.app-signals .signals-skel-grid span {
  position: relative;
  overflow: hidden;
  background: var(--skeleton-base);
}

body.app-signals .signals-tile--skeleton .signals-tile-banner::after,
body.app-signals .signals-tile--skeleton .signals-collection-avatar-wrap::after,
body.app-signals .signals-skel-block::after,
body.app-signals .signals-skel-line::after,
body.app-signals .signals-skel-actions span::after,
body.app-signals .signals-skel-meta span::after,
body.app-signals .signals-skel-grid span::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, var(--skeleton-highlight), transparent);
  transform: translateX(-120%);
  animation: skel-shimmer 1.1s infinite;
  pointer-events: none;
}

body.app-signals .signals-tile--skeleton .signals-collection-avatar-wrap {
  height: var(--profile-avatar-size);
  border: var(--profile-avatar-stroke) solid var(--profile-avatar-stroke-color);
  border-radius: 999px;
}

body.app-signals .signals-skel-line {
  height: 14px;
  border-radius: var(--glee-radius-pill);
}

body.app-signals .signals-skel-line--name {
  position: absolute;
  left: 191px;
  bottom: var(--profile-display-pill-banner-bottom);
  z-index: 2;
  width: 260px;
  max-width: calc(100% - 370px);
  height: var(--profile-display-pill-h);
  border-radius: var(--glass-content-radius);
  opacity: 0.86;
}

body.app-signals .signals-skel-actions {
  position: absolute;
  right: 31px;
  bottom: 20px;
  z-index: 2;
  display: flex;
  gap: 8px;
}

body.app-signals .signals-skel-actions span:first-child {
  width: var(--btn-blue-h);
  height: var(--btn-blue-h);
  border-radius: 999px;
}

body.app-signals .signals-skel-actions span:last-child {
  width: var(--btn-blue-w);
  height: var(--btn-blue-h);
  border-radius: var(--btn-blue-radius);
}

body.app-signals .signals-skel-line--signal {
  width: 142px;
  height: 29px;
}

body.app-signals .signals-skel-line--why {
  width: min(520px, 100%);
}

body.app-signals .signals-skel-line--why-short {
  width: min(360px, 76%);
}

body.app-signals .signals-skel-grid {
  width: min(calc(100% - 80px), var(--signals-metric-group-w));
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--signals-metric-group-gap);
  margin: var(--signals-tile-section-gap) auto 0;
}

body.app-signals .signals-skel-grid span {
  height: 58px;
  border-radius: 14px;
}

body.app-signals .signals-skel-meta {
  margin: var(--signals-tile-section-gap) var(--signals-tile-edge-inset) 0;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

body.app-signals .signals-skel-meta span {
  width: 112px;
  height: 27px;
  border-radius: var(--glee-radius-pill);
}

body.app-signals .signals-skel-meta span:last-child {
  width: 78px;
}

body.app-signals .signals-state-card {
  box-sizing: border-box;
  padding: 18px;
  background: var(--surface-card);
  color: var(--text-100);
}

body.app-signals .signals-state-card--empty {
  width: 100%;
  margin: 60px auto 0;
  padding: 0;
  background: transparent;
  border: 0;
  color: inherit;
  text-align: center;
}

body.app-signals .signals-state-title {
  color: var(--text-100);
  font-size: var(--glee-title-s-fs);
  line-height: var(--glee-title-s-lh);
  font-weight: var(--glee-title-s-fw);
}

body.app-signals .signals-state-card--empty .signals-state-title {
  color: var(--text-70);
  font-size: var(--glee-title-m-fs);
  line-height: var(--glee-title-m-lh);
  font-weight: var(--glee-title-m-fw);
  letter-spacing: var(--glee-title-m-ls);
}

body.app-signals .signals-state-text {
  margin-top: 6px;
  color: var(--text-70);
  font-size: var(--glee-body-fs);
  line-height: var(--glee-body-lh);
}

body.app-signals .signals-state-card--empty .signals-state-text {
  max-width: 680px;
  margin: 25px auto 0;
  color: var(--text-50);
  font-size: var(--glee-body-fs);
  line-height: var(--glee-body-lh);
  font-weight: var(--glee-body-medium-fw);
  letter-spacing: var(--glee-body-ls);
}

body.app-signals .signals-analyze-shell,
body.app-signals .signals-analyze-center {
  width: 100%;
  max-width: var(--d-center);
  min-width: 0;
}

body.app-signals .signals-analyze-center {
  position: relative;
}

body.app-signals .signals-analyze-landing {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding-top: calc(70px - var(--layout-search-content-gap));
}

body.app-signals .signals-analyze-title-group {
  min-height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
}

body.app-signals .signals-analyze-logo {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: block;
}

body.app-signals .signals-analyze-title {
  margin: 0;
  color: var(--text-100);
}

body.app-signals .signals-analyze-form {
  position: relative;
  width: 100%;
  height: 100px;
  margin-top: 50px;
  padding: 0;
  box-sizing: border-box;
  border-radius: 25px;
  background: var(--surface-card);
  overflow: hidden;
}

body.app-signals .signals-analyze-input {
  width: 100%;
  height: 57px;
  box-sizing: border-box;
  padding: 0 156px 0 25px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--text-100);
  font-family: var(--font-main);
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-medium);
  outline: 0;
}

body.app-signals .signals-analyze-input::placeholder {
  color: var(--text-50);
  opacity: 1;
}

body.app-signals .signals-analyze-submit {
  position: absolute;
  top: 10px;
  right: 10px;
  background: rgba(8, 13, 32, 0.20);
  cursor: default;
}

body.app-signals .signals-analyze-submit:disabled {
  background: rgba(8, 13, 32, 0.20);
  color: var(--btn-blue-text);
  opacity: 1;
}

html[data-resolved-theme="dark"] body.app-signals .signals-analyze-submit,
html[data-resolved-theme="dark"] body.app-signals .signals-analyze-submit:disabled {
  background: rgba(255, 255, 255, 0.20);
}

body.app-signals .signals-analyze-coming-soon {
  position: absolute;
  top: 57px;
  right: 10px;
  width: var(--btn-blue-w);
  color: var(--text-50);
  font-family: var(--font-main);
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-regular);
  text-align: center;
}

body.app-signals .signals-analyze-benefits {
  margin-top: 50px;
}

body.app-signals .signals-analyze-section-title {
  color: var(--text-100);
}

body.app-signals .signals-analyze-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--community-card-gap);
  margin-top: 18px;
}

body.app-signals .signals-analyze-card {
  position: relative;
  height: var(--community-card-h);
  min-height: var(--community-card-h);
  min-width: 0;
  box-sizing: border-box;
  border-radius: var(--app-tile-radius);
  overflow: hidden;
  padding: 32px 36px;
  color: var(--text-100);
  box-shadow: none;
  transition: transform 160ms ease;
  will-change: transform;
}

body.app-signals .signals-analyze-card:hover {
  transform: translateY(-1px);
}

body.app-signals .signals-analyze-card--blue {
  background: var(--community-events-gradient);
  color: var(--text-inverse);
}

body.app-signals .signals-analyze-card--light {
  background: #FFFFFF;
  color: #080D20;
}

body.app-signals .signals-analyze-card--dark {
  background: linear-gradient(135deg, #121212 4%, #424242 69%);
  color: var(--text-inverse);
}

body.app-signals .signals-analyze-card-copy {
  position: relative;
  z-index: 2;
}

body.app-signals .signals-analyze-card-title,
body.app-signals .signals-analyze-card-subtitle {
  max-width: 54%;
}

body.app-signals .signals-analyze-copy-mobile {
  display: none;
}

body.app-signals .signals-analyze-card-title {
  margin: 0;
  color: currentColor;
  font-family: var(--font-main);
  font-size: var(--community-card-title-fs);
  line-height: var(--community-card-title-lh);
  font-weight: var(--community-card-title-fw);
  letter-spacing: var(--community-card-title-ls);
}

body.app-signals .signals-analyze-card-subtitle {
  margin: 5px 0 0;
  color: rgba(8, 13, 32, 0.70);
  font-family: var(--font-main);
  font-size: var(--community-card-subtitle-fs);
  line-height: var(--community-card-subtitle-lh);
  font-weight: var(--community-card-subtitle-fw);
  letter-spacing: var(--community-card-subtitle-ls);
}

body.app-signals .signals-analyze-card--blue .signals-analyze-card-subtitle,
body.app-signals .signals-analyze-card--dark .signals-analyze-card-subtitle {
  color: rgba(255, 255, 255, 0.72);
}

body.app-signals .signals-analyze-card-action {
  position: absolute;
  left: 36px;
  bottom: 30px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: currentColor;
  font-family: var(--font-main);
  font-size: var(--community-action-fs);
  line-height: var(--community-action-lh);
  font-weight: var(--community-action-fw);
  letter-spacing: var(--ls-medium);
}

body.app-signals .signals-analyze-card-action-icon {
  width: 18px;
  height: 18px;
  display: block;
  flex: 0 0 18px;
  background-color: currentColor;
  -webkit-mask-image: url("../assets/icons/cta-arrow-circle-light.svg");
  mask-image: url("../assets/icons/cta-arrow-circle-light.svg");
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}

body.app-signals .signals-neutral-state {
  box-sizing: border-box;
  border-radius: var(--glee-radius-panel);
  background: var(--surface-secondary);
  color: var(--text-70);
  padding: 14px;
  font-size: var(--glee-body-fs);
  line-height: var(--glee-body-lh);
}

body.app-signals .signals-neutral-state.is-error {
  color: var(--cta-danger-outline-text);
}

body.app-collection-details,
body.app-signals.is-signals-analyze {
  --collection-details-header-edge-inset: 30px;
  --collection-details-section-gap: 22px;
  --collection-details-block-pad: 30px;
  --collection-details-market-card-h: 126px;
  --collection-details-market-padding: 22px;
  --collection-details-score-size: 199px;
  --collection-details-score-track: 18px;
  --collection-details-score-progress: 14px;
  min-width: 1200px;
  height: 100vh;
  overflow: hidden;
  background: var(--bg);
}

body.app-collection-details .app-shell,
body.app-signals.is-signals-analyze .app-shell {
  max-width: none;
  padding: var(--layout-shell-edge) 0;
}

body.app-collection-details .home-topbar,
body.app-signals.is-signals-analyze .home-topbar {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: minmax(0, var(--layout-content-left)) var(--layout-center-w) minmax(0, 1fr);
  align-items: center;
  padding: 0;
}

body.app-collection-details .topbar-center,
body.app-signals.is-signals-analyze .topbar-center {
  grid-column: 2;
  width: var(--layout-center-w);
  min-width: 0;
}

body.app-collection-details .topbar-center-inner,
body.app-collection-details .home-topbar.is-search-hidden .topbar-center-inner,
body.app-signals.is-signals-analyze .topbar-center-inner,
body.app-signals.is-signals-analyze .home-topbar.is-search-hidden .topbar-center-inner {
  width: 100%;
  transform: none;
  opacity: 1;
  pointer-events: auto;
}

body.app-collection-details .topbar-right,
body.app-collection-details .home-sidebar,
body.app-signals.is-signals-analyze .topbar-right,
body.app-signals.is-signals-analyze .home-sidebar {
  display: none;
}

body.app-collection-details .home-grid,
body.app-signals.is-signals-analyze .home-grid {
  display: block;
}

body.app-collection-details .home-grid,
body.app-signals.is-signals-analyze .home-grid {
  padding-top: var(--layout-search-content-gap);
}

body.app-collection-details .page-center,
body.app-signals.is-signals-analyze .page-center {
  width: var(--layout-center-w);
  max-width: var(--layout-center-w);
  min-width: 0;
  margin-left: var(--layout-content-left);
}

body.app-collection-details .collection-details-center,
body.app-collection-details .collection-details-root,
body.app-signals.is-signals-analyze .signals-analyze-center {
  width: 100%;
  max-width: var(--layout-center-w);
  min-width: 0;
}

body.app-collection-details .collection-details-center {
  position: relative;
}

body.app-collection-details .collection-details-back,
body.app-signals .signals-analyze-center > .collection-details-back {
  position: absolute;
  top: 0;
  left: -52px;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 2;
}

body.app-collection-details .collection-details-back:hover,
body.app-signals .signals-analyze-center > .collection-details-back:hover {
  background: rgba(var(--text-rgb), 0.05);
}

body.app-collection-details .collection-details-back-icon,
body.app-signals .signals-analyze-center > .collection-details-back .collection-details-back-icon {
  width: 13px;
  height: 12px;
  background: var(--text-70);
  -webkit-mask: url("../assets/icons/back-icon.svg") center/contain no-repeat;
  mask: url("../assets/icons/back-icon.svg") center/contain no-repeat;
}

body.app-collection-details .signals-state-card {
  box-sizing: border-box;
  padding: 18px;
  background: var(--surface-card);
  color: var(--text-100);
}

body.app-collection-details .signals-neutral-state {
  box-sizing: border-box;
  border-radius: var(--glee-radius-panel);
  background: var(--surface-secondary);
  color: var(--text-70);
  padding: 14px;
  font-size: var(--glee-body-fs);
  line-height: var(--glee-body-lh);
}

body.app-collection-details .signals-details-header {
  min-width: 0;
  box-sizing: border-box;
  padding: var(--profile-header-pad);
  border-radius: var(--profile-header-card-radius);
  background: var(--profile-header-card-bg);
  color: var(--text-100);
}

body.app-collection-details .signals-details-banner {
  position: relative;
  width: 100%;
  height: var(--profile-banner-h);
  overflow: hidden;
  border-radius: var(--profile-banner-radius);
  background: var(--surface-secondary);
}

body.app-collection-details .signals-details-banner-media {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}

body.app-collection-details .signals-details-opensea-action {
  position: absolute;
  right: 31px;
  bottom: 20px;
  z-index: 2;
}

body.app-collection-details .signals-details-header-body {
  position: relative;
  min-width: 0;
  margin-top: calc(var(--profile-avatar-size) * -0.5);
  padding: 0 var(--collection-details-header-edge-inset) 22px;
}

body.app-collection-details .signals-details-avatar-wrap {
  position: absolute;
  left: var(--collection-details-header-edge-inset);
  top: 0;
  z-index: 3;
  width: var(--profile-avatar-size);
  display: flex;
  align-items: center;
  justify-content: center;
}

body.app-collection-details .signals-details-avatar {
  width: var(--profile-avatar-size);
  height: var(--profile-avatar-size);
  flex: 0 0 var(--profile-avatar-size);
  box-sizing: border-box;
  border: var(--profile-avatar-stroke) solid var(--profile-avatar-stroke-color);
  border-radius: 999px;
  object-fit: cover;
  object-position: center;
  background: var(--surface-secondary);
}

body.app-collection-details .signals-details-identity {
  min-width: 0;
  height: var(--profile-avatar-size);
  box-sizing: border-box;
  padding-top: calc(var(--profile-avatar-size) * 0.5);
  margin-left: calc(var(--profile-avatar-size) + 18px);
  display: flex;
  align-items: center;
}

body.app-collection-details .signals-details-title-row {
  min-width: 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

body.app-collection-details .signals-details-title-main {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: var(--profile-display-pill-gap);
}

body.app-collection-details .signals-details-title {
  margin: 0;
  min-width: 0;
  color: var(--text-100);
  font-family: var(--font-main);
  font-size: var(--app-page-title-fs);
  line-height: var(--app-page-title-lh);
  font-weight: var(--app-page-title-fw);
  letter-spacing: var(--app-page-title-ls);
  overflow-wrap: anywhere;
}

body.app-collection-details .signals-details-section {
  margin-top: var(--collection-details-section-gap);
}

body.app-collection-details .signals-details-section .glee-section-title {
  margin: 0;
}

body.app-collection-details .signals-details-block {
  min-width: 0;
  box-sizing: border-box;
  border-radius: var(--profile-header-card-radius);
  background: var(--profile-header-card-bg);
  color: var(--text-100);
  padding: var(--collection-details-block-pad);
}

body.app-collection-details .signals-detail-pill-row {
  min-width: 0;
  margin-top: 22px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  flex-wrap: wrap;
}

body.app-collection-details .signals-detail-signal-pill {
  border: 0;
  cursor: pointer;
}

body.app-collection-details .signals-detail-signal-pill:not(.is-selected) {
  background: var(--signals-neutral-tile-bg);
  color: var(--text-100);
}

body.app-collection-details .signals-detail-signal-pill:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 2px;
}

body.app-collection-details .signals-overview-layout {
  min-width: 0;
  margin-top: 28px;
  display: grid;
  grid-template-columns: var(--collection-details-score-size) minmax(0, 1fr);
  gap: 28px;
  align-items: center;
}

body.app-collection-details .signals-score-ring {
  position: relative;
  width: var(--collection-details-score-size);
  height: var(--collection-details-score-size);
  box-sizing: border-box;
  border-radius: 999px;
  display: grid;
  place-items: center;
}

body.app-collection-details .signals-score-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  transform: rotate(-90deg);
}

body.app-collection-details .signals-score-track,
body.app-collection-details .signals-score-progress {
  fill: none;
}

body.app-collection-details .signals-score-track {
  stroke-width: var(--collection-details-score-track);
  stroke-linecap: butt;
  stroke: var(--surface-soft);
}

body.app-collection-details .signals-score-progress {
  stroke-width: var(--collection-details-score-progress);
  stroke-linecap: round;
  stroke: var(--signals-selected-color);
}

body.app-collection-details .signals-score-ring-inner {
  position: relative;
  z-index: 1;
  width: calc(100% - (var(--collection-details-score-track) * 3));
  height: calc(100% - (var(--collection-details-score-track) * 3));
  border-radius: 999px;
  background: var(--surface-card);
  display: grid;
  align-content: center;
  place-items: center;
  gap: 2px;
}

body.app-collection-details .signals-score-value {
  color: var(--signals-selected-color);
  font-family: var(--font-main);
  font-size: var(--glee-display-score-fs);
  line-height: var(--glee-display-score-lh);
  font-weight: var(--glee-display-score-fw);
  font-style: var(--glee-display-score-style);
  letter-spacing: var(--glee-display-score-ls);
  transform: translateX(-2px);
}

body.app-collection-details .signals-score-label {
  color: var(--text-70);
  font-family: var(--font-main);
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  font-weight: var(--glee-small-fw);
  letter-spacing: var(--glee-small-ls);
}

body.app-collection-details .signals-signal-overview.is-breakout-pressure .signals-score-value {
  color: var(--signal-breakout-pressure-text);
}

body.app-collection-details .signals-overview-copy {
  min-width: 0;
}

body.app-collection-details .signals-overview-title {
  margin: 0;
  color: var(--text-100);
  font-family: var(--font-main);
  font-size: var(--glee-title-m-emphasis-fs);
  line-height: var(--glee-title-m-emphasis-lh);
  font-weight: var(--glee-title-m-emphasis-fw);
  font-style: var(--glee-title-m-emphasis-style);
  letter-spacing: var(--glee-title-m-emphasis-ls);
}

body.app-collection-details .signals-overview-why {
  max-width: 600px;
  margin: 12px 0 0;
  color: var(--text-80);
  font-family: var(--font-main);
  font-size: var(--signals-why-now-fs);
  line-height: var(--signals-why-now-lh);
  font-weight: var(--signals-why-now-text-fw);
  letter-spacing: var(--signals-why-now-ls);
}

body.app-collection-details .signals-overview-why strong {
  color: var(--text-100);
  font-weight: var(--signals-why-now-text-fw);
}

body.app-collection-details .signals-overview-timing {
  margin-top: 24px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

body.app-collection-details .signals-overview-timing-tag {
  width: fit-content;
  height: var(--glee-tag-h);
  box-sizing: border-box;
  border-radius: var(--glee-radius-pill);
  background: var(--surface-soft);
  color: var(--text-100);
  padding: 0 var(--glee-tag-pad-x);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-main);
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  font-weight: var(--glee-small-fw);
  letter-spacing: var(--glee-small-ls);
  white-space: nowrap;
}

body.app-collection-details .signals-details-evidence-list {
  margin-top: 22px;
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

body.app-collection-details .signals-evidence-card {
  min-width: 0;
  min-height: 150px;
  box-sizing: border-box;
  border-radius: var(--profile-banner-radius);
  background: var(--surface-soft);
  padding: 25px 25px 22px;
  display: flex;
  flex-direction: column;
}

body.app-collection-details .signals-evidence-card--interactive {
  appearance: none;
  border: 0;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

body.app-collection-details .signals-evidence-card--interactive:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 2px;
}

body.app-collection-details .signals-evidence-row {
  min-width: 0;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 18px;
  align-items: center;
}

body.app-collection-details .signals-evidence-icon {
  width: 42px;
  height: 42px;
  border-radius: 999px;
  background: var(--surface-secondary);
}

body.app-collection-details .signals-evidence-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

body.app-collection-details .signals-evidence-meta {
  margin-top: auto;
  padding-top: 22px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

body.app-collection-details .signals-evidence-label {
  color: var(--text-75);
  font-family: var(--font-main);
  font-size: var(--glee-body-fs);
  line-height: var(--glee-body-lh);
  font-weight: var(--glee-body-medium-fw);
  letter-spacing: var(--glee-body-ls);
}

body.app-collection-details .signals-evidence-value {
  color: var(--text-100);
  font-family: var(--font-main);
  font-size: var(--glee-display-metric-fs);
  line-height: var(--glee-display-metric-lh);
  font-weight: var(--glee-display-metric-fw);
  letter-spacing: var(--glee-display-metric-ls);
  white-space: nowrap;
}

body.app-collection-details .signals-evidence-comparison {
  color: var(--signals-selected-color);
  font-family: var(--font-main);
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  font-weight: var(--glee-small-fw);
  letter-spacing: var(--glee-small-ls);
}

body.app-collection-details .signals-evidence-comparison--market-heat {
  display: flex;
  align-items: center;
  gap: 6px;
}

body.app-collection-details .signals-evidence-comparison--linked {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

body.app-collection-details .signals-evidence-external-icon {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  display: block;
  filter: brightness(0) saturate(100%) invert(29%) sepia(94%) saturate(4301%) hue-rotate(224deg) brightness(99%) contrast(98%);
}

body.app-collection-details .signals-evidence-trend-icon {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  display: block;
}

body.app-collection-details .signals-signal-evidence.is-breakout-pressure .signals-evidence-comparison {
  color: var(--signal-breakout-pressure-text);
}

body.app-collection-details .signals-evidence-card.is-unavailable .signals-evidence-value,
body.app-collection-details .signals-evidence-card.is-unavailable .signals-evidence-comparison {
  color: var(--text-55);
}

body.app-collection-details .signals-market-grid {
  min-width: 0;
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

body.app-collection-details .signals-market-tile {
  position: relative;
  min-width: 0;
  height: var(--collection-details-market-card-h);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  border-radius: var(--profile-banner-radius);
  background: var(--surface-soft);
  color: var(--text-100);
  padding: 0 var(--collection-details-market-padding) var(--collection-details-market-padding);
  overflow: hidden;
}

body.app-collection-details .signals-market-tile.is-unavailable {
  color: var(--text-55);
}

body.app-collection-details .signals-market-title {
  color: var(--text-70);
  font-family: var(--font-main);
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  font-weight: var(--glee-small-fw);
  letter-spacing: var(--glee-small-ls);
  white-space: nowrap;
}

body.app-collection-details .signals-market-value {
  min-width: 0;
  margin-top: 8px;
  display: block;
  color: inherit;
  font-family: var(--font-main);
  font-size: var(--glee-value-m-fs);
  line-height: var(--glee-value-m-lh);
  font-weight: var(--glee-value-m-fw);
  letter-spacing: var(--glee-value-m-ls);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

body.app-collection-details .signals-details-error {
  margin: 18px 0;
}

body.app-collection-details .signals-details-loading {
  display: grid;
  gap: var(--collection-details-section-gap);
}

body.app-collection-details .signals-details-skel-card,
body.app-collection-details .signals-details-skel-overview,
body.app-collection-details .signals-details-skel-evidence {
  box-sizing: border-box;
  border-radius: var(--profile-header-card-radius);
  background: var(--profile-header-card-bg);
  padding: var(--profile-header-pad);
}

body.app-collection-details .signals-details-skel-overview,
body.app-collection-details .signals-details-skel-evidence {
  padding: var(--collection-details-block-pad);
}

body.app-collection-details .signals-details-skel-banner,
body.app-collection-details .signals-details-skel-header span,
body.app-collection-details .signals-details-skel-market span,
body.app-collection-details .signals-details-skel-overview span,
body.app-collection-details .signals-details-skel-evidence span {
  position: relative;
  overflow: hidden;
  background: var(--skeleton-base);
}

body.app-collection-details .signals-details-skel-banner::after,
body.app-collection-details .signals-details-skel-header span::after,
body.app-collection-details .signals-details-skel-market span::after,
body.app-collection-details .signals-details-skel-overview span::after,
body.app-collection-details .signals-details-skel-evidence span::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, var(--skeleton-highlight), transparent);
  transform: translateX(-120%);
  animation: skel-shimmer 1.1s infinite;
  pointer-events: none;
}

body.app-collection-details .signals-details-skel-banner {
  height: var(--profile-banner-h);
  border-radius: var(--profile-banner-radius);
}

body.app-collection-details .signals-details-skel-header {
  display: grid;
  grid-template-columns: var(--profile-avatar-size) 1fr;
  gap: 18px;
  align-items: end;
  margin-top: calc(var(--profile-avatar-size) * -0.5);
  padding: 0 var(--collection-details-header-edge-inset);
}

body.app-collection-details .signals-details-skel-header span:first-child {
  width: var(--profile-avatar-size);
  height: var(--profile-avatar-size);
  border: var(--profile-avatar-stroke) solid var(--profile-avatar-stroke-color);
  border-radius: 999px;
}

body.app-collection-details .signals-details-skel-header span:last-child {
  width: min(260px, 100%);
  height: 30px;
  margin-bottom: 18px;
  border-radius: 999px;
}

body.app-collection-details .signals-details-skel-market {
  margin: 24px var(--collection-details-header-edge-inset) 22px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

body.app-collection-details .signals-details-skel-market span {
  height: var(--collection-details-market-card-h);
  border-radius: var(--profile-banner-radius);
}

body.app-collection-details .signals-details-skel-overview {
  display: grid;
  grid-template-columns: var(--collection-details-score-size) minmax(0, 1fr);
  gap: 28px;
  align-items: center;
}

body.app-collection-details .signals-details-skel-overview span:first-child {
  width: var(--collection-details-score-size);
  height: var(--collection-details-score-size);
  border-radius: 999px;
  grid-row: span 4;
}

body.app-collection-details .signals-details-skel-overview span:nth-child(n+2) {
  width: min(520px, 100%);
  height: 20px;
  border-radius: 999px;
}

body.app-collection-details .signals-details-skel-overview span:last-child {
  width: min(340px, 76%);
}

body.app-collection-details .signals-details-skel-evidence {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

body.app-collection-details .signals-details-skel-evidence span {
  height: 150px;
  border-radius: var(--profile-banner-radius);
}

body.app-hub .hub-lootbox-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--hub-card-gap);
}

body.app-hub .hub-lootbox-card {
  min-width: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border-radius: var(--app-tile-radius);
  background: #fff;
  box-shadow: none;
}

body.app-hub .hub-lootbox-media {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}

body.app-hub .hub-content-tag {
  width: fit-content;
  height: var(--app-content-tag-h);
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  gap: var(--app-content-tag-gap);
  padding: 0 var(--app-content-tag-pad-x);
  color: var(--app-content-tag-color);
  font-size: var(--app-content-tag-fs);
  line-height: var(--app-content-tag-lh);
  font-weight: var(--app-content-tag-fw);
  letter-spacing: var(--app-content-tag-ls);
  white-space: nowrap;
}

body.app-hub .hub-lootbox-media .hub-content-tag {
  position: absolute;
  top: 16px;
  left: 16px;
}

body.app-hub .hub-content-tag-dot {
  width: var(--app-content-tag-dot);
  height: var(--app-content-tag-dot);
  flex: 0 0 var(--app-content-tag-dot);
  border-radius: 999px;
  background: var(--hub-rarity-color, #FFE100);
}

body.app-hub .hub-lootbox-card--rare {
  --hub-rarity-color: #F22B75;
}

body.app-hub .hub-lootbox-card--legendary {
  --hub-rarity-color: #1E56FA;
}

body.app-hub .hub-lootbox-copy {
  min-height: 170px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  padding: 16px;
}

body.app-hub .hub-lootbox-card-title {
  margin: 0;
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
}

body.app-hub .hub-lootbox-card-desc {
  margin: 10px 0 0;
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-medium);
  color: var(--text-70);
}

body.app-hub .hub-lootbox-bottom {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

body.app-hub .hub-lootbox-price {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 17px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--brand);
  white-space: nowrap;
}

body.app-hub .hub-lootbox-price img {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
}

body.app-hub .hub-lootbox-bottom button {
  margin: 0;
  border: 0;
  cursor: pointer;
}

body.app-hub .hub-featured-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
  gap: var(--hub-card-gap);
  align-items: stretch;
}

body.app-hub .hub-featured-placeholder-main {
  min-width: 0;
  aspect-ratio: 1 / 1;
  border-radius: var(--app-tile-radius);
}

body.app-hub .hub-featured-placeholder-small {
  pointer-events: none;
}

body.app-hub .hub-featured-placeholder-media {
  width: clamp(130px, 18vw, 155px);
  aspect-ratio: 1 / 1;
  display: block;
  border-radius: 21px;
}

body.app-hub .hub-featured-placeholder-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 18px 10px 12px 0;
}

body.app-hub .hub-featured-main {
  min-width: 0;
  aspect-ratio: 1 / 1;
  cursor: pointer;
}

body.app-hub .hub-featured-main .post-card {
  width: 100%;
  height: 100%;
  margin: 0;
  border-radius: var(--app-tile-radius);
  clip-path: inset(0 round var(--app-tile-radius));
}

body.app-hub .hub-featured-main .post-media,
body.app-hub .hub-featured-main .post-media-img {
  width: 100%;
  height: 100%;
}

body.app-hub .hub-featured-main .post-media-img {
  object-fit: cover;
}

body.app-hub [data-hub-featured-feed] .hub-featured-main .post-card .post-card-tag {
  top: 20px;
  left: 20px;
}

body.app-hub [data-hub-featured-feed] .hub-featured-main .post-card .post-meta {
  left: 20px;
  right: 24px;
  bottom: 20px;
}

body.app-hub .hub-featured-main .post-author-ava {
  object-fit: cover;
}

body.app-hub .hub-featured-side {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--hub-card-gap);
  justify-content: flex-start;
}

body.app-hub .hub-featured-small {
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: stretch;
  height: auto;
  gap: 12px;
  padding: 5px;
  overflow: hidden;
  border-radius: 25px;
  background: var(--surface-card);
  box-shadow: none;
  cursor: pointer;
}

body.app-hub .hub-featured-small-image {
  width: clamp(130px, 18vw, 155px);
  height: auto;
  aspect-ratio: 1 / 1;
  display: block;
  object-fit: cover;
  border-radius: 21px;
}

body.app-hub .hub-featured-small-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  padding: 12px 10px 12px 0;
}

body.app-hub .hub-featured-small-copy h3 {
  margin: 0;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
}

body.app-hub .hub-featured-like-btn {
  margin-top: auto;
  width: fit-content;
}

body.app-hub .hub-events-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--hub-card-gap);
}

body.app-hub .hub-event-card {
  position: relative;
  min-width: 0;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: var(--app-tile-radius);
  background: #111;
}

body.app-hub .hub-event-tag {
  position: absolute;
  top: 18px;
  left: 18px;
  --hub-rarity-color: #38AFFF;
}

body.app-hub .hub-event-date {
  position: absolute;
  left: 18px;
  bottom: 18px;
  height: var(--app-content-tag-h);
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  gap: var(--app-content-tag-gap);
  padding: 0 var(--app-content-tag-pad-x);
  color: var(--app-content-tag-color);
  font-size: var(--app-content-tag-fs);
  line-height: var(--app-content-tag-lh);
  font-weight: var(--app-content-tag-fw);
  letter-spacing: var(--app-content-tag-ls);
}

body.app-hub .hub-event-date > span {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  display: block;
  background: currentColor;
  -webkit-mask: url("../assets/icons/event.svg") center / contain no-repeat;
  mask: url("../assets/icons/event.svg") center / contain no-repeat;
}

body.app-hub .hub-event-join {
  position: absolute;
  right: 18px;
  bottom: 18px;
}

/* =========================
   LEADERBOARD
========================= */

.glee-level-pill {
  --level-pill-bg: var(--brand);
  --level-pill-color: #FFFFFF;
  width: 70px;
  min-width: 70px;
  height: 25px;
  min-height: 25px;
  box-sizing: border-box;
  border-radius: 999px;
  background: var(--level-pill-bg);
  color: var(--level-pill-color);
  font-family: var(--font-main);
  font-size: 13px;
  line-height: 16px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.glee-text-tabs {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 34px;
}

.glee-text-tab {
  appearance: none;
  border: 0;
  padding: 0;
  background: transparent;
  color: var(--text-55);
  font-family: var(--font-main);
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  cursor: pointer;
}

.glee-text-tab.is-active {
  color: var(--brand);
}

body.app-leaderboard .leaderboard-page,
body.app-leaderboard .leaderboard-wrap {
  width: 100%;
  max-width: var(--layout-center-w);
  min-width: 0;
}

body.app-leaderboard .leaderboard-wrap {
  --leaderboard-top-card-w: min(29.5%, 240px);
  --leaderboard-row-h: 104px;
  display: flex;
  flex-direction: column;
}

body.app-leaderboard .leaderboard-podium {
  width: 100%;
  min-height: 212px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 26px;
}

body.app-leaderboard .leaderboard-podium-card {
  appearance: none;
  position: relative;
  width: var(--leaderboard-top-card-w);
  flex: 0 0 var(--leaderboard-top-card-w);
  aspect-ratio: 240 / 195;
  box-sizing: border-box;
  border: 0;
  border-radius: var(--app-tile-radius);
  padding: clamp(12px, 2vw, 20px) 14px clamp(10px, 1.4vw, 16px);
  background: var(--brand);
  color: var(--text-inverse);
  box-shadow: none;
  font-family: var(--font-main);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  cursor: pointer;
}

body.app-leaderboard .leaderboard-podium-card--rank-1 {
  z-index: 2;
  aspect-ratio: 240 / 212;
  margin: 0 -1.25%;
  background: linear-gradient(180deg, #1E56FA 0%, #B7C7F8 100%);
  box-shadow: 0 0 0 3px var(--app-bg);
}

body.app-leaderboard .leaderboard-podium-card--rank-2,
body.app-leaderboard .leaderboard-podium-card--rank-3 {
  z-index: 1;
}

body.app-leaderboard .leaderboard-podium-card:focus-visible,
body.app-leaderboard .leaderboard-row:focus-visible,
body.app-leaderboard .leaderboard-switch button:focus-visible {
  outline: 3px solid rgba(30, 86, 250, .32);
  outline-offset: 3px;
}

body.app-leaderboard .leaderboard-podium-avatar {
  width: 70px;
  height: 70px;
  display: block;
  flex: 0 0 auto;
  border-radius: 50%;
  object-fit: cover;
  background: #EEE;
}

body.app-leaderboard .leaderboard-podium-card .leaderboard-level-pill {
  --level-pill-bg: #FFFFFF;
  --level-pill-color: var(--brand);
  position: relative;
  margin-top: -12px;
  z-index: 1;
}

body.app-leaderboard .leaderboard-podium-card--rank-1 .leaderboard-level-pill {
  --level-pill-bg: var(--brand);
  --level-pill-color: #FFFFFF;
}

body.app-leaderboard .leaderboard-podium-name {
  width: 100%;
  margin-top: 8px;
  min-width: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 18px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: rgba(255, 255, 255, .91);
}

body.app-leaderboard .leaderboard-podium-name strong,
body.app-leaderboard .leaderboard-row-name strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font: inherit;
  letter-spacing: inherit;
  color: inherit;
}

body.app-leaderboard .leaderboard-podium-xp {
  margin-top: 2px;
  display: inline-flex;
  align-items: baseline;
  gap: 5px;
  color: rgba(255, 255, 255, .91);
  white-space: nowrap;
}

body.app-leaderboard .leaderboard-podium-xp strong {
  font-size: 25px;
  line-height: 30px;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-medium);
}

body.app-leaderboard .leaderboard-podium-xp small {
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-medium);
}

body.app-leaderboard .leaderboard-card {
  position: relative;
  width: 100%;
  max-width: var(--layout-center-w);
  min-height: 560px;
  box-sizing: border-box;
  border-radius: var(--app-tile-radius);
  padding: 28px clamp(28px, 5.2vw, 52px) 0;
  background: #FFFFFF;
  border: 0;
  box-shadow: none;
}

body.app-leaderboard .leaderboard-switch {
  width: var(--ui-switcher-w);
  max-width: min(var(--ui-switcher-w), 100%);
  height: var(--ui-switcher-h);
  margin: 0 auto 12px;
}

body.app-leaderboard .leaderboard-switch button {
  width: var(--ui-switcher-tab-w);
  min-width: var(--ui-switcher-tab-w);
  max-width: var(--ui-switcher-tab-w);
  height: var(--ui-switcher-tab-h);
}

body.app-leaderboard .leaderboard-switch button.is-active {
  background: var(--switcher-active-bg);
  color: var(--switcher-active-text);
}

body.app-leaderboard .leaderboard-list {
  position: relative;
  width: 100%;
  padding-bottom: 10px;
}

body.app-leaderboard .leaderboard-row {
  appearance: none;
  width: 100%;
  min-width: 0;
  height: var(--leaderboard-row-h);
  box-sizing: border-box;
  border: 0;
  padding: 0;
  background: transparent;
  color: var(--text-100);
  font-family: var(--font-main);
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) minmax(100px, auto);
  align-items: center;
  column-gap: 12px;
  text-align: left;
  cursor: pointer;
}

body.app-leaderboard .leaderboard-rank {
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
  text-align: left;
}

body.app-leaderboard .leaderboard-row-creator {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 18px;
}

body.app-event-details .campaign-creator-card .leaderboard-row-avatar-wrap,
body.app-leaderboard .leaderboard-row-avatar-wrap {
  position: relative;
  width: 66px;
  height: 68px;
  flex: 0 0 66px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
}

body.app-event-details .campaign-creator-card .leaderboard-row-avatar,
body.app-leaderboard .leaderboard-row-avatar {
  width: 50px;
  height: 50px;
  display: block;
  border-radius: 50%;
  object-fit: cover;
  background: #EEE;
}

body.app-event-details .campaign-creator-card .leaderboard-row-level,
body.app-leaderboard .leaderboard-row-level {
  position: absolute;
  left: 50%;
  bottom: 5px;
  translate: -50% 0;
}

body.app-event-details .campaign-creator-card .leaderboard-row-name,
body.app-leaderboard .leaderboard-row-name {
  min-width: 0;
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 6px;
}

body.app-event-details .campaign-creator-card .leaderboard-row-name strong,
body.app-leaderboard .leaderboard-row-name strong {
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
}

body.app-event-details .campaign-creator-card .leaderboard-verified-badge,
body.app-leaderboard .leaderboard-verified-badge {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  display: block;
}

body.app-leaderboard .leaderboard-row-username {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12px;
  line-height: 16px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-regular);
  color: var(--text-55);
}

body.app-leaderboard .leaderboard-row-xp {
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--brand);
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  white-space: nowrap;
}

body.app-leaderboard .leaderboard-row-xp img {
  width: 20px;
  height: 20px;
  display: block;
  flex: 0 0 20px;
}

body.app-leaderboard .leaderboard-row.is-current .leaderboard-row-name strong,
body.app-leaderboard .leaderboard-row.is-current .leaderboard-rank {
  color: var(--brand);
}

body.app-leaderboard .leaderboard-current-sticky {
  --leaderboard-sticky-bottom: 16px;
  --leaderboard-sticky-top: var(--feed-switcher-sticky-top);
  position: sticky;
  top: calc(100vh - var(--leaderboard-row-h) - var(--leaderboard-sticky-bottom));
  bottom: var(--leaderboard-sticky-bottom);
  z-index: 8;
  margin-bottom: calc(-1 * var(--leaderboard-row-h));
  background: #FFFFFF;
}

body.app-leaderboard .leaderboard-current-sticky.is-stuck-top {
  top: var(--leaderboard-sticky-top);
  bottom: auto;
}

body.app-leaderboard .leaderboard-current-sticky.is-stuck-bottom {
  top: calc(100vh - var(--leaderboard-row-h) - var(--leaderboard-sticky-bottom));
  bottom: var(--leaderboard-sticky-bottom);
}

body.app-leaderboard .leaderboard-current-sticky[hidden] {
  display: none;
}

body.app-leaderboard .leaderboard-empty {
  margin-top: 32px;
}

body.app-leaderboard .leaderboard-empty-copy {
  min-height: 360px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

body.app-leaderboard .leaderboard-empty-copy h2 {
  margin: 0;
  font-size: 20px;
  line-height: 25px;
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-medium);
}

body.app-leaderboard .leaderboard-empty-copy p {
  margin: 8px 0 0;
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-70);
}

body.app-leaderboard .leaderboard-podium-skeleton-card,
body.app-leaderboard .leaderboard-row-skeleton > span {
  background: linear-gradient(90deg, var(--skeleton-base) 25%, var(--skeleton-highlight) 50%, var(--skeleton-base) 75%);
  background-size: 200% 100%;
  animation: leaderboard-shimmer 1.25s linear infinite;
}

body.app-leaderboard .leaderboard-podium-skeleton-card {
  width: var(--leaderboard-top-card-w);
  aspect-ratio: 240 / 195;
  border-radius: var(--app-tile-radius);
}

body.app-leaderboard .leaderboard-podium-skeleton-card.is-first {
  aspect-ratio: 240 / 212;
  margin: 0 -1.25%;
  z-index: 1;
}

body.app-leaderboard .leaderboard-row-skeleton {
  cursor: default;
}

body.app-leaderboard .leaderboard-row-skeleton > span {
  height: 18px;
  border-radius: 999px;
}

body.app-leaderboard .leaderboard-row-skeleton > span:nth-child(1) {
  width: 22px;
}

body.app-leaderboard .leaderboard-row-skeleton > span:nth-child(2) {
  width: min(220px, 75%);
}

body.app-leaderboard .leaderboard-row-skeleton > span:nth-child(3) {
  width: 86px;
  justify-self: end;
}

body.app-leaderboard .leaderboard-wrap > .error-card {
  margin-top: 32px;
}

@keyframes leaderboard-shimmer {
  to { background-position: -200% 0; }
}

@media (max-width: 900px) {
  body.app-leaderboard .leaderboard-wrap {
    --leaderboard-top-card-w: clamp(108px, 32.46%, 124px);
    --leaderboard-row-h: 82px;
    width: 100%;
    padding: 0 0 var(--m-bottom-content-pad);
    box-sizing: border-box;
  }

  body.app-leaderboard .leaderboard-podium {
    min-height: 0;
    margin-top: 0;
    margin-bottom: var(--m-block-gap);
  }

  body.app-leaderboard .leaderboard-podium-card {
    width: var(--leaderboard-top-card-w);
    flex-basis: var(--leaderboard-top-card-w);
    height: 170px;
    aspect-ratio: auto;
    border-radius: var(--app-tile-radius);
    padding: 16px 8px 18px;
  }

  body.app-leaderboard .leaderboard-podium-card--rank-1 {
    width: clamp(116px, 35.08%, 134px);
    flex-basis: clamp(116px, 35.08%, 134px);
    height: 190px;
    aspect-ratio: auto;
    margin: 0 -2px;
    padding: 22px 8px 14px;
  }

  body.app-leaderboard .leaderboard-level-pill {
    transform: none;
  }

  body.app-leaderboard .leaderboard-podium-name {
    margin-top: 8px;
    font-size: 15px;
    line-height: 22px;
  }

  body.app-leaderboard .leaderboard-podium-xp strong {
    font-size: 20px;
    line-height: 25px;
  }

  body.app-leaderboard .leaderboard-podium-xp small {
    font-size: 14px;
    line-height: 20px;
  }

  body.app-leaderboard .leaderboard-card {
    min-height: 480px;
    padding: 28px 20px 0;
    border-radius: var(--app-tile-radius);
  }

  body.app-leaderboard .leaderboard-podium-skeleton-card {
    width: var(--leaderboard-top-card-w);
    height: 170px;
    aspect-ratio: auto;
  }

  body.app-leaderboard .leaderboard-podium-skeleton-card.is-first {
    width: clamp(116px, 35.08%, 134px);
    height: 190px;
    aspect-ratio: auto;
    margin: 0 -2px;
  }

  body.app-leaderboard .leaderboard-switch {
    width: var(--ui-switcher-w);
    max-width: min(var(--ui-switcher-w), 100%);
  }

  body.app-leaderboard .leaderboard-row {
    grid-template-columns: 32px minmax(0, 1fr) minmax(92px, auto);
    column-gap: 10px;
  }

  body.app-leaderboard .leaderboard-row-creator {
    gap: 14px;
  }

  body.app-leaderboard .leaderboard-row-avatar-wrap {
    transform: none;
  }

  body.app-leaderboard .leaderboard-row-xp,
  body.app-leaderboard .leaderboard-row-name strong,
  body.app-leaderboard .leaderboard-rank {
    font-size: 15px;
    line-height: 22px;
    font-weight: var(--fw-medium);
    letter-spacing: var(--ls-medium);
  }

  body.app-leaderboard .leaderboard-current-sticky {
    --leaderboard-sticky-bottom: calc(var(--m-nav-h) + var(--m-nav-bottom));
    --leaderboard-sticky-top: var(--feed-switcher-sticky-top);
  }

  body.app-leaderboard .leaderboard-verified-badge {
    width: 22px;
    height: 22px;
    flex-basis: 22px;
  }
}

/* =========================
   CREATOR ID COUNTRY MODALS
========================= */

:root {
  --creator-modal-pad: 28px;
  --creator-modal-pad-mobile: 18px;
  --creator-modal-radius: 40px;
  --creator-modal-hero-radius: 34px;
  --creator-modal-section-gap: 26px;
  --creator-modal-row-gap: 24px;
}

.creator-mint-modal.is-open,
.creator-visa-modal.is-open {
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  padding: 24px 0;
  overflow-x: hidden;
  overflow-y: auto;
}

.creator-modal__panel.creator-mint-modal__panel,
.creator-modal__panel.creator-visa-modal__panel {
  position: relative;
  width: min(635px, calc(100vw - 32px));
  max-width: 635px;
  height: auto;
  min-height: 0;
  max-height: none;
  flex: 0 0 auto;
  margin: 0 auto;
  overflow: visible;
  border: 0;
  border-radius: var(--creator-modal-radius);
  background: transparent;
  box-shadow: none;
}

.creator-modal__card.creator-mint-modal__card,
.creator-modal__card.creator-visa-modal__card {
  width: 100%;
  height: auto;
  min-height: 0;
  max-height: none;
  flex: 0 0 auto;
  box-sizing: border-box;
  padding: var(--action-modal-padding);
  overflow: visible;
  border: 0;
  border-radius: var(--creator-modal-radius);
  background: var(--surface-card);
  background-clip: padding-box;
  color: var(--text-100);
  box-shadow: none;
}

.creator-modal__hero.creator-country-modal-hero {
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 555 / 260;
  margin: 0;
  overflow: hidden;
  border-radius: var(--creator-modal-hero-radius);
  background: var(--bg);
}

.creator-modal__hero-img.creator-country-modal-image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.creator-country-pill {
  position: absolute;
  top: 20px;
  right: 20px;
  z-index: 1;
  width: max-content;
  max-width: calc(100% - 40px);
  height: 50px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 5px 16px 5px 5px;
  border: 0;
  border-radius: 20px;
  background: var(--creator-country-pill-bg);
}

.creator-country-pill__flag {
  position: static;
  width: auto;
  max-width: 60px;
  height: 40px;
  flex: 0 0 auto;
  display: block;
  border: 0;
  border-radius: 15px;
  padding: 0;
  background: transparent;
  object-fit: contain;
  object-position: center;
  box-shadow: none;
}

.creator-country-pill__name {
  min-width: 0;
  font-size: var(--settings-body-fs);
  line-height: var(--settings-body-lh);
  font-weight: var(--settings-body-fw);
  color: var(--creator-country-pill-text);
  white-space: nowrap;
}

.creator-mint-modal__title,
.creator-visa-modal__title {
  margin: 26px 0 0 !important;
  font-size: var(--hub-section-title-fs) !important;
  line-height: var(--hub-section-title-lh) !important;
  font-weight: var(--hub-section-title-fw) !important;
  letter-spacing: var(--hub-section-title-ls) !important;
  color: var(--text-100) !important;
  text-align: left;
}

.creator-mint-modal__copy,
.creator-visa-modal__subtitle {
  max-width: 100%;
  margin: 12px 0 0 !important;
  font-size: var(--hub-section-subtitle-fs) !important;
  line-height: var(--hub-section-subtitle-lh) !important;
  font-weight: var(--hub-section-subtitle-fw) !important;
  letter-spacing: var(--hub-section-subtitle-ls) !important;
  color: var(--text-100) !important;
  text-align: left;
}

.creator-mint-modal__section-title,
.creator-visa-modal__section-title {
  font-size: var(--hub-section-title-fs) !important;
  line-height: var(--hub-section-title-lh) !important;
  font-weight: var(--hub-section-title-fw) !important;
  letter-spacing: var(--hub-section-title-ls) !important;
  color: var(--brand) !important;
}

.creator-mint-modal__section-title,
.creator-visa-modal__section-title {
  margin: var(--creator-modal-section-gap) 0 16px;
}

.creator-mint-modal__info-row,
.creator-visa-modal__path {
  display: grid;
  grid-template-columns: 50px minmax(0, 1fr);
  align-items: center;
  gap: 18px;
  width: 100%;
  min-height: 82px;
  box-sizing: border-box;
  margin: 0;
  padding: 16px 22px;
  border: 1px solid var(--creator-modal-info-border);
  border-radius: 40px;
  background: var(--creator-modal-info-bg);
}

.creator-visa-modal__path--with-progress {
  grid-template-columns: 50px minmax(0, 1fr) auto;
}

.creator-mint-modal__icon,
.creator-visa-modal__icon {
  width: 50px;
  height: 50px;
  min-width: 50px;
  flex: 0 0 50px;
  border-radius: 12px;
  background: var(--creator-modal-icon-bg);
  color: var(--brand);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.creator-mint-modal__icon img {
  width: 28px;
  height: 28px;
  display: block;
  object-fit: contain;
}

.creator-visa-modal__icon img {
  width: 28px;
  height: 28px;
  display: block;
  object-fit: contain;
  filter: none;
}

.creator-mint-modal__info-copy,
.creator-visa-modal__path-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.creator-mint-modal__info-main,
.creator-visa-modal__path-main {
  font-size: var(--settings-body-fs) !important;
  line-height: var(--settings-body-lh) !important;
  font-weight: var(--settings-body-fw) !important;
  letter-spacing: var(--settings-body-ls) !important;
  color: var(--text-100) !important;
}

.creator-mint-modal__info-sub,
.creator-visa-modal__path-sub {
  margin-top: 6px;
  font-size: var(--event-meta-fs) !important;
  line-height: var(--event-meta-lh) !important;
  font-weight: var(--event-meta-fw) !important;
  letter-spacing: var(--event-meta-ls) !important;
  color: var(--text-70) !important;
}

.creator-visa-modal__path-main span,
.creator-visa-modal__path-sub span {
  color: var(--brand);
}

.creator-visa-modal__divider {
  margin: 12px 0;
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  font-weight: var(--glee-small-fw);
  letter-spacing: var(--glee-small-ls);
  color: var(--text-70);
  text-align: center;
}

.creator-visa-modal__referral-progress {
  margin: 0;
  justify-self: end;
  align-self: center;
  white-space: nowrap;
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  font-weight: var(--glee-small-fw);
  letter-spacing: var(--glee-small-ls);
  color: var(--brand);
}

.creator-mint-modal__input-row,
.creator-visa-modal__input-row {
  width: 100%;
  height: 47px;
  min-height: 47px;
  box-sizing: border-box;
  margin-top: 26px;
  padding: 5px 5px 5px 24px;
  display: flex;
  align-items: center;
  gap: 12px;
  border: 0;
  border-radius: 999px;
  background: var(--modal-neutral-surface);
}

.creator-visa-modal__footer {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  margin-top: 26px;
}

.creator-visa-modal__footer--with-input .creator-visa-modal__input-row {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  margin-top: 0;
}

.creator-visa-modal__footer--with-input {
  justify-content: flex-end;
}

.creator-mint-modal__input,
.creator-visa-modal__input {
  --placeholder-color: var(--text-70);
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  height: 37px;
  border: 0;
  outline: 0;
  padding: 0;
  background: transparent !important;
  color: var(--text-70);
  box-shadow: none !important;
  font-family: var(--font-main);
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  font-weight: var(--glee-small-fw);
  letter-spacing: var(--glee-small-ls);
}

.creator-visa-modal__input--static {
  display: flex;
  align-items: center;
  height: 37px;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: var(--text-70);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.creator-mint-modal__input::placeholder,
.creator-visa-modal__input::placeholder {
  color: var(--text-70);
}

.creator-visa-modal__input:disabled,
.creator-mint-modal__input:disabled {
  cursor: default;
  opacity: .68;
}

.creator-visa-modal__check {
  flex: 0 0 auto;
  margin: 0;
}

.creator-mint-modal__error,
.creator-visa-modal__error {
  display: none !important;
  margin: 0 !important;
  min-height: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
}

/* =========================
   WL CLAIMED SUCCESS MODAL
========================= */

.creator-wl-claimed-modal.is-open {
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  padding: 24px 0;
  overflow-x: hidden;
  overflow-y: auto;
}

.creator-wl-claimed-panel {
  position: relative;
  width: min(560px, calc(100vw - 32px));
  max-width: 560px;
  height: auto;
  min-height: 0;
  max-height: none;
  flex: 0 0 auto;
  margin: 0 auto;
  overflow: visible;
  border: 0;
  border-radius: var(--creator-modal-radius);
  background: transparent;
  box-shadow: none;
}

.creator-wl-claimed-card {
  width: 100%;
  height: auto;
  min-height: 0;
  max-height: none;
  box-sizing: border-box;
  padding: var(--creator-modal-pad);
  overflow: visible;
  border: 0;
  border-radius: var(--creator-modal-radius);
  background: var(--surface-card);
  background-clip: padding-box;
  color: var(--text-100);
  box-shadow: none;
}

.creator-wl-claimed-title {
  margin: 0 !important;
  font-size: var(--hub-section-title-fs) !important;
  line-height: var(--hub-section-title-lh) !important;
  font-weight: var(--hub-section-title-fw) !important;
  letter-spacing: var(--hub-section-title-ls) !important;
  color: var(--text-100) !important;
  text-align: left;
  display: flex;
  align-items: center;
  gap: 10px;
}

.creator-wl-claimed-title-icon {
  width: 26px;
  height: 26px;
  flex: 0 0 26px;
  display: block;
  object-fit: contain;
}

.creator-wl-claimed-subtitle {
  margin: 10px 0 0 !important;
  font-size: var(--hub-section-subtitle-fs) !important;
  line-height: var(--hub-section-subtitle-lh) !important;
  font-weight: var(--hub-section-subtitle-fw) !important;
  letter-spacing: var(--hub-section-subtitle-ls) !important;
  color: var(--text-70) !important;
  text-align: left;
}

.creator-wl-claimed-passport {
  position: relative;
  width: 100%;
  aspect-ratio: 3105 / 1955;
  margin-top: 24px;
  box-sizing: border-box;
  overflow: hidden;
  background: transparent;
  container-type: inline-size;
  line-height: 0;
}

.creator-wl-claimed-passport-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: fill;
  pointer-events: none;
  user-select: none;
}

.creator-wl-claimed-passport-bg.is-missing {
  opacity: 0;
}

.creator-wl-claimed-avatar {
  position: absolute;
  z-index: 1;
  left: 6.3%;
  top: 9.2%;
  width: 33.2%;
  height: 73.6%;
  object-fit: cover;
  object-position: center top;
  border-radius: 0;
  background: transparent;
  filter: none;
  opacity: 0.95;
  transform: rotate(-0.83deg);
  transform-origin: center center;
}

.creator-wl-claimed-signature {
  position: absolute;
  z-index: 2;
  left: 43.7%;
  top: 27.9%;
  width: 31%;
  font-family: "Caveat", cursive;
  font-size: clamp(18px, 6.8cqw, 34px);
  line-height: 0.95;
  font-weight: 400;
  letter-spacing: 0;
  color: #3A479D;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.creator-wl-claimed-username,
.creator-wl-claimed-role {
  position: absolute;
  z-index: 2;
  left: 43.7%;
  width: 43%;
  font-family: "IBM Plex Mono", monospace;
  font-size: clamp(8px, 3.05cqw, 15px);
  line-height: 1;
  font-weight: 600;
  letter-spacing: 0;
  color: #0A1C4F;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.creator-wl-claimed-username {
  top: 41.6%;
  width: 39%;
}

.creator-wl-claimed-role {
  top: 50.9%;
}

.creator-wl-claimed-stamp {
  position: absolute;
  z-index: 3;
  left: var(--passport-approved-stamp-left);
  top: var(--passport-approved-stamp-top);
  display: block;
  width: var(--passport-approved-stamp-width);
  height: auto;
  box-sizing: border-box;
  border: 0;
  border-radius: 0;
  object-fit: contain;
  transform: rotate(-6deg);
  transform-origin: center;
  opacity: 1;
  pointer-events: none;
  user-select: none;
  filter: drop-shadow(0 10px 14px rgba(30, 86, 250, 0.10));
}

.creator-wl-claimed-impact {
  position: absolute;
  z-index: 2;
  left: var(--passport-approved-impact-left);
  top: var(--passport-approved-impact-top);
  width: var(--passport-approved-impact-width);
  height: var(--passport-approved-impact-height);
  border: 2px solid rgba(30, 86, 250, 0.30);
  border-radius: 2.6cqw;
  opacity: 0;
  transform: rotate(-6deg) scale(0.82);
  transform-origin: center;
  pointer-events: none;
}

.creator-wl-claimed-modal.is-animating .creator-wl-claimed-stamp {
  animation: creator-wl-stamp-land 720ms cubic-bezier(.2, .84, .24, 1) both;
}

.creator-wl-claimed-modal.is-animating .creator-wl-claimed-impact {
  animation: creator-wl-stamp-impact 420ms ease-out 310ms both;
}

.creator-wl-claimed-actions {
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.creator-wl-claimed-download {
  min-height: 32px;
  box-sizing: border-box;
  border: 0;
  border-radius: 0;
  padding: 4px 0;
  background: transparent;
  color: var(--text-70);
  font-family: var(--font-main);
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-regular);
  letter-spacing: -0.02em;
  text-align: center;
  white-space: nowrap;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  max-width: 100%;
}

.creator-wl-claimed-download:disabled {
  opacity: 0.55;
  cursor: default;
}

.creator-wl-claimed-download-text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.creator-wl-claimed-download-icon {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  display: block;
  background: currentColor;
  opacity: 0.72;
  -webkit-mask: url("../assets/icons/download.svg") center / contain no-repeat;
  mask: url("../assets/icons/download.svg") center / contain no-repeat;
}

@keyframes creator-wl-stamp-land {
  0% {
    opacity: 0;
    transform: translateY(-70px) rotate(-16deg) scale(1.28);
  }
  48% {
    opacity: 1;
    transform: translateY(4px) rotate(-6deg) scale(0.92, 0.82);
  }
  70% {
    transform: translateY(-7px) rotate(-7deg) scale(1.04);
  }
  100% {
    opacity: 1;
    transform: translateY(0) rotate(-6deg) scale(1);
  }
}

@keyframes creator-wl-stamp-impact {
  0% {
    opacity: 0;
    transform: rotate(-6deg) scale(0.82);
  }
  45% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: rotate(-6deg) scale(1.18);
  }
}

@media (prefers-reduced-motion: reduce) {
  .creator-wl-claimed-modal.is-animating .creator-wl-claimed-stamp,
  .creator-wl-claimed-modal.is-animating .creator-wl-claimed-impact {
    animation: none;
  }

  .creator-wl-claimed-impact {
    display: none;
  }
}

/* =========================
   PROFILE EDIT MODAL V2
========================= */

body.app-profile #profileEditModal.modal.is-open {
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  padding: 24px 0;
  overflow-x: hidden;
  overflow-y: auto;
}

body.app-profile #profileEditModal .modal-panel.profile-edit-panel {
  position: relative;
  width: min(635px, calc(100vw - 32px));
  max-width: 635px;
  height: auto;
  min-height: 0;
  max-height: none;
  flex: 0 0 auto;
  margin: 0 auto;
  overflow: visible;
  border: 0;
  border-radius: var(--action-modal-radius);
  background: transparent;
  box-shadow: none;
}

body.app-profile #profileEditModal .pe-modal {
  position: relative;
  width: 100%;
  height: auto;
  min-height: 0;
  max-height: none;
  box-sizing: border-box;
  padding: var(--action-modal-padding);
  overflow: visible;
  border: 0;
  border-radius: var(--action-modal-radius);
  background: var(--surface-card);
  box-shadow: none;
}

body.app-profile #profileEditModal .pe-modal .cp-close {
  top: 18px;
  right: 18px;
  z-index: 8;
}

body.app-profile #profileEditModal .pe-inner {
  width: 100%;
  margin: 0;
  box-sizing: border-box;
}

body.app-profile #profileEditModal .profile-edit-modal__media {
  position: relative;
  width: 100%;
  margin: 0 0 24px;
}

body.app-profile #profileEditModal .profile-edit-modal__banner {
  position: relative;
  width: 100%;
  aspect-ratio: 555 / 156;
  margin: 0;
  overflow: hidden;
  border-radius: var(--action-modal-radius);
  background: var(--bg);
}

body.app-profile #profileEditModal .profile-edit-modal__banner-img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

body.app-profile #profileEditModal .profile-edit-modal__banner-shade {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .28);
  pointer-events: none;
}

body.app-profile #profileEditModal .profile-edit-modal__banner-upload {
  appearance: none;
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 2;
  width: 56px;
  height: 56px;
  transform: translate(-50%, -50%);
  border: 0;
  border-radius: 18px;
  padding: 0;
  background: rgba(255, 255, 255, .82);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

body.app-profile #profileEditModal .profile-edit-modal__banner-upload img {
  width: 28px;
  height: 25px;
  display: block;
}

body.app-profile #profileEditModal .profile-edit-modal__banner-delete {
  appearance: none;
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 2;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 10px;
  padding: 0;
  background: rgba(255, 255, 255, .82);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

body.app-profile #profileEditModal .profile-edit-modal__banner-delete[hidden] {
  display: none;
}

body.app-profile #profileEditModal .profile-edit-modal__banner-delete span {
  width: 11px;
  height: 14px;
  display: block;
  background: var(--brand);
  -webkit-mask: url("../assets/icons/profile-banner-delete.svg") center / contain no-repeat;
  mask: url("../assets/icons/profile-banner-delete.svg") center / contain no-repeat;
}

body.app-profile #profileEditModal .profile-edit-modal__avatar-wrap {
  position: relative;
  z-index: 3;
  width: clamp(92px, 17vw, 109px);
  height: clamp(92px, 17vw, 109px);
  margin: clamp(-54.5px, -8.5vw, -46px) 0 0 28px;
  display: block;
}

body.app-profile #profileEditModal .pe-avatar.pe-avatar-lg {
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  border: 5px solid var(--profile-avatar-stroke-color);
  border-radius: 50%;
  background-color: var(--bg);
  background-size: cover;
  background-position: center;
}

body.app-profile #profileEditModal .pe-change-link {
  position: absolute;
  inset: 5px;
  width: auto;
  height: auto;
  margin: 0;
  border: 0;
  border-radius: 50%;
  padding: 0;
  background: rgba(0, 0, 0, 0);
  color: transparent;
  cursor: pointer;
  transition: background-color .18s ease;
}

body.app-profile #profileEditModal .pe-change-link span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

body.app-profile #profileEditModal .pe-change-link:hover,
body.app-profile #profileEditModal .pe-change-link:focus-visible {
  background: rgba(0, 0, 0, .16);
  outline: 3px solid rgba(30, 86, 250, .28);
  outline-offset: 2px;
}

body.app-profile #profileEditModal .pe-field {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

body.app-profile #profileEditModal .pe-field + .pe-field {
  margin-top: 22px;
}

body.app-profile #profileEditModal .pe-label {
  font-family: var(--font-main);
  font-size: var(--event-meta-fs) !important;
  line-height: var(--event-meta-lh) !important;
  font-weight: var(--event-meta-fw) !important;
  letter-spacing: var(--event-meta-ls) !important;
  color: var(--text-100) !important;
}

body.app-profile #profileEditModal .pe-label {
  margin: 0;
}

body.app-profile #profileEditModal .pe-input,
body.app-profile #profileEditModal .pe-textarea {
  font-family: var(--font-main);
  font-size: var(--settings-body-fs) !important;
  line-height: var(--settings-body-lh) !important;
  font-weight: var(--settings-body-fw) !important;
  letter-spacing: var(--settings-body-ls) !important;
  color: var(--text-100) !important;
}

body.app-profile #profileEditModal .pe-input,
body.app-profile #profileEditModal .pe-textarea {
  width: 100%;
  height: 47px;
  min-height: 47px;
  box-sizing: border-box;
  border: 0;
  border-radius: 15px;
  outline: 0;
  background: var(--modal-neutral-surface);
  color: var(--text-100) !important;
  box-shadow: none;
}

body.app-profile #profileEditModal .pe-input {
  padding: 0 20px;
}

body.app-profile #profileEditModal .pe-textarea {
  padding: 12px 20px;
  resize: none;
  overflow: hidden;
  white-space: nowrap;
}

body.app-profile #profileEditModal .pe-input::placeholder,
body.app-profile #profileEditModal .pe-textarea::placeholder {
  color: var(--text-50) !important;
}

body.app-profile #profileEditModal .pe-input:focus,
body.app-profile #profileEditModal .pe-textarea:focus {
  border: 0;
  box-shadow: 0 0 0 2px rgba(30, 86, 250, 0.18);
}

body.app-profile #profileEditModal .pe-footer {
  margin-top: 26px;
  padding: 0;
  display: flex;
  justify-content: center;
}

body.app-profile #profileEditModal .pe-save {
  width: var(--btn-blue-w);
  min-width: var(--btn-blue-min);
  max-width: var(--btn-blue-w);
  height: var(--btn-blue-h);
  min-height: var(--btn-blue-h);
  box-sizing: border-box;
  border: 0;
  border-radius: var(--btn-blue-radius);
  padding: var(--btn-blue-pad);
  background: var(--btn-blue-bg);
  color: var(--btn-blue-text);
  font-family: var(--font-main);
  font-size: var(--btn-blue-font);
  line-height: var(--btn-blue-lh);
  font-weight: var(--btn-blue-weight);
  letter-spacing: var(--btn-blue-ls);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: none;
}

/* =========================
   DONATE XP MODAL
========================= */

.app-profile .profile-head-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.app-profile .profile-donate-xp,
.app-post-details .profile-donate-xp {
  appearance: none;
  width: var(--btn-blue-h);
  height: var(--btn-blue-h);
  flex: 0 0 var(--btn-blue-h);
  box-sizing: border-box;
  border: 0;
  border-radius: 999px;
  padding: 8px;
  background: var(--brand);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.app-profile .profile-donate-xp[hidden],
.app-post-details .profile-donate-xp[hidden] {
  display: none !important;
}

.app-profile .profile-donate-xp img,
.app-post-details .profile-donate-xp img {
  width: 21px;
  height: 21px;
  display: block;
  filter: brightness(0) invert(1);
}

.app-post-details .post-author-actions {
  position: absolute;
  right: 41px;
  bottom: 20px;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 8px;
}

.donate-xp-modal.is-open {
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  padding: 24px 0;
  overflow-x: hidden;
  overflow-y: auto;
}

.donate-xp-panel {
  position: relative;
  width: min(635px, calc(100vw - 32px));
  max-width: 635px;
  height: auto;
  min-height: 0;
  max-height: none;
  flex: 0 0 auto;
  margin: 0 auto;
  overflow: visible;
  border: 0;
  border-radius: var(--action-modal-radius);
  background: transparent;
  box-shadow: none;
}

.donate-xp-card {
  width: 100%;
  height: auto;
  min-height: 0;
  max-height: none;
  box-sizing: border-box;
  padding: var(--action-modal-padding);
  overflow: visible;
  border: 0;
  border-radius: var(--action-modal-radius);
  background: var(--surface-card);
  color: var(--text-100);
  box-shadow: none;
}

.donate-xp-title-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.donate-xp-title-icon {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  display: block;
}

.donate-xp-title {
  margin: 0;
  font-size: var(--hub-section-title-fs) !important;
  line-height: var(--hub-section-title-lh) !important;
  font-weight: var(--hub-section-title-fw) !important;
  letter-spacing: var(--hub-section-title-ls) !important;
  color: var(--text-100) !important;
}

.donate-xp-subtitle {
  margin: 8px 0 0;
  font-size: var(--hub-section-subtitle-fs) !important;
  line-height: var(--hub-section-subtitle-lh) !important;
  font-weight: var(--hub-section-subtitle-fw) !important;
  letter-spacing: var(--hub-section-subtitle-ls) !important;
  color: var(--text-70) !important;
}

.donate-xp-user {
  margin-top: 22px;
  display: flex;
  align-items: center;
  gap: 16px;
}

.donate-xp-avatar {
  width: 70px;
  height: 70px;
  flex: 0 0 70px;
  display: block;
  border-radius: 50%;
  object-fit: cover;
  background: var(--bg);
}

.donate-xp-user-copy {
  min-width: 0;
}

.donate-xp-name,
.donate-xp-balance-label,
.donate-xp-label,
.donate-xp-input-unit,
.donate-xp-suggest button,
.donate-xp-fee span,
.donate-xp-fee b {
  font-size: var(--settings-body-fs) !important;
  line-height: var(--settings-body-lh) !important;
  letter-spacing: var(--settings-body-ls) !important;
}

.donate-xp-name,
.donate-xp-balance-label,
.donate-xp-label,
.donate-xp-input-unit,
.donate-xp-suggest button,
.donate-xp-fee b {
  font-weight: var(--settings-body-fw) !important;
  color: var(--text-100) !important;
}

.donate-xp-username {
  margin-top: 1px;
  font-size: var(--event-meta-fs) !important;
  line-height: var(--event-meta-lh) !important;
  font-weight: var(--event-meta-fw) !important;
  letter-spacing: var(--event-meta-ls) !important;
  color: var(--text-70) !important;
}

.donate-xp-balance {
  margin-top: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.donate-xp-balance-value {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: var(--market-history-sales-fs) !important;
  line-height: var(--market-history-sales-lh) !important;
  font-weight: var(--market-history-sales-fw) !important;
  letter-spacing: var(--market-history-sales-ls) !important;
  color: var(--brand) !important;
  white-space: nowrap;
}

.donate-xp-balance-value img {
  width: 20px;
  height: 20px;
  display: block;
  flex: 0 0 20px;
}

.donate-xp-label {
  display: block;
  margin-top: 22px;
}

.donate-xp-input-wrap {
  width: 100%;
  height: 47px;
  box-sizing: border-box;
  margin-top: 12px;
  padding: 0 20px;
  border: 0;
  border-radius: 15px;
  background: var(--modal-neutral-surface);
  display: flex;
  align-items: center;
  gap: 12px;
}

.donate-xp-input-wrap:focus-within {
  box-shadow: 0 0 0 2px rgba(30, 86, 250, .12);
}

.donate-xp-input {
  width: 100%;
  min-width: 0;
  height: 44px;
  border: 0 !important;
  outline: 0;
  padding: 0;
  background: transparent !important;
  box-shadow: none !important;
  font-size: var(--settings-body-fs) !important;
  line-height: var(--settings-body-lh) !important;
  font-weight: var(--settings-body-fw) !important;
  letter-spacing: var(--settings-body-ls) !important;
  color: var(--text-100) !important;
  -moz-appearance: textfield;
}

.donate-xp-input::-webkit-outer-spin-button,
.donate-xp-input::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none;
}

.donate-xp-suggest {
  margin-top: 12px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.donate-xp-suggest button {
  height: 38px;
  border: 0;
  border-radius: 999px;
  padding: 0 8px;
  background: var(--donate-suggestion-bg);
  cursor: pointer;
  white-space: nowrap;
}

.donate-xp-suggest button:disabled {
  cursor: default;
  opacity: .42;
}

.donate-xp-note {
  margin: 20px 0 0;
  font-size: var(--event-meta-fs) !important;
  line-height: var(--event-meta-lh) !important;
  font-weight: var(--event-meta-fw) !important;
  letter-spacing: var(--event-meta-ls) !important;
  color: var(--text-70) !important;
}

.donate-xp-fee {
  margin-top: 10px;
  padding: 18px 20px;
  border-radius: 24px;
  background: var(--donate-summary-bg);
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.donate-xp-fee > span {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  color: var(--text-70) !important;
}

.donate-xp-fee > span.is-receive > span {
  color: var(--text-100);
  font-weight: var(--fw-medium);
}

.donate-xp-fee > span.is-receive b {
  color: #24C943 !important;
}

.donate-xp-error {
  min-height: 0;
  margin: 0;
  font-size: 13px;
  line-height: 18px;
  font-weight: var(--fw-medium);
  color: #ff3b30;
}

.donate-xp-error:not(:empty) {
  margin-top: 8px;
}

.donate-xp-actions {
  margin-top: 24px;
  display: flex;
  justify-content: center;
}

.donate-xp-submit {
  width: var(--btn-blue-w);
  min-width: var(--btn-blue-min);
  max-width: var(--btn-blue-w);
  height: var(--btn-blue-h);
  min-height: var(--btn-blue-h);
  border: 0;
  border-radius: var(--btn-blue-radius);
  padding: var(--btn-blue-pad);
  background: var(--btn-blue-bg);
  color: var(--btn-blue-text);
  font-family: var(--font-main);
  font-size: var(--btn-blue-font) !important;
  line-height: var(--btn-blue-lh) !important;
  font-weight: var(--btn-blue-weight) !important;
  letter-spacing: var(--btn-blue-ls) !important;
  cursor: pointer;
}

.donate-xp-submit:disabled {
  cursor: default;
  opacity: .5;
}

@media (max-height: 820px) {
  .donate-xp-modal.is-open {
    align-items: flex-start;
  }
}

/* =========================
   HUB INFO MODALS
========================= */
.hub-info-modal.is-open {
  align-items: center;
  justify-content: center;
  padding: 24px;
  box-sizing: border-box;
  overflow: hidden;
}

.hub-info-modal-panel {
  width: min(680px, calc(100vw - 48px));
  max-width: min(680px, calc(100vw - 48px));
  max-height: min(78vh, calc(100vh - 48px));
  outline: 0;
}

.hub-info-modal-card {
  position: relative;
  box-sizing: border-box;
  width: 100%;
  max-height: min(78vh, calc(100vh - 48px));
  padding: 38px;
  border-radius: var(--modal-form-radius);
  background: var(--surface-card);
  color: var(--text-100);
  box-shadow: 0 30px 80px rgba(0,0,0,0.18);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.hub-info-modal:not(.ha-wallet-modal) .hub-info-modal-panel,
.hub-info-modal:not(.ha-wallet-modal) .hub-info-modal-card {
  max-height: var(--info-modal-max-height);
}

.hub-info-modal-title {
  flex: 0 0 auto;
  margin: 0;
  font-size: var(--app-page-title-fs);
  line-height: var(--app-page-title-lh);
  font-weight: var(--app-page-title-fw);
  letter-spacing: var(--app-page-title-ls);
  color: var(--text-100);
}

.hub-info-modal-body {
  flex: 1 1 auto;
  min-height: 0;
  margin-top: 24px;
  padding-right: 8px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.hub-info-modal-intro,
.hub-info-modal-note,
.hub-info-modal-footer,
.hub-info-step p,
.hub-info-notes li,
.hub-info-lootbox-desc,
.hub-info-pool-list span {
  font-size: var(--glee-body-fs);
  line-height: var(--glee-body-lh);
  font-weight: var(--glee-body-fw);
  letter-spacing: var(--glee-body-ls);
}

.hub-info-modal-intro {
  margin: 0;
  color: var(--text-70);
}

.ha-wallet-modal-subtitle {
  margin-top: 8px;
}

.ha-wallet-page-button:focus-visible,
.ha-wallet-address:focus-visible,
.ha-wallet-retry:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 2px;
}

.ha-wallet-modal-body {
  overflow-x: hidden;
}

.ha-wallet-table-scroll {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-x: contain;
}

.ha-wallet-table {
  width: 100%;
  min-width: 560px;
  border-collapse: collapse;
  table-layout: fixed;
  color: var(--text-100);
  font-family: var(--font-main);
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  letter-spacing: var(--glee-small-ls);
}

.ha-wallet-table th,
.ha-wallet-table td {
  padding: 13px 8px;
  text-align: left;
  white-space: nowrap;
}

.ha-wallet-table th:first-child,
.ha-wallet-table td:first-child {
  width: 26%;
  padding-left: 0;
}

.ha-wallet-table th:nth-child(2),
.ha-wallet-table td:nth-child(2) {
  width: 19%;
}

.ha-wallet-table th:nth-child(3),
.ha-wallet-table td:nth-child(3) {
  width: 18%;
}

.ha-wallet-table th:nth-child(4),
.ha-wallet-table td:nth-child(4) {
  width: 14%;
}

.ha-wallet-table th:last-child,
.ha-wallet-table td:last-child {
  width: 23%;
  padding-right: 0;
}

.ha-wallet-table th {
  padding-top: 0;
  color: var(--text-55);
  font-weight: var(--glee-body-medium-fw);
}

.ha-wallet-table tbody tr {
  border-top: 1px solid var(--border-subtle);
}

.ha-wallet-table td {
  color: var(--text-80);
  font-weight: var(--glee-body-fw);
}

.ha-wallet-address {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  max-width: 100%;
  font-weight: var(--glee-body-medium-fw);
  text-decoration: none;
  vertical-align: bottom;
}

.ha-wallet-address-text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ha-wallet-modal .ha-wallet-opensea-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  display: block;
}

a.ha-wallet-address:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.ha-wallet-empty {
  height: 88px;
  text-align: center !important;
  color: var(--text-55) !important;
}

.ha-wallet-pagination {
  margin-top: 22px;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 34px;
  align-items: center;
  gap: 12px;
  color: var(--text-70);
  font-family: var(--font-main);
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  font-weight: var(--glee-body-medium-fw);
  text-align: center;
}

.ha-wallet-page-button {
  width: 34px;
  height: 34px;
  padding: 0;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 999px;
  background: rgba(var(--text-rgb), .05);
  color: var(--text-100);
  font: inherit;
  cursor: pointer;
}

.ha-wallet-page-button:not(:disabled):hover {
  background: rgba(var(--text-rgb), .10);
}

.ha-wallet-page-button:disabled {
  opacity: .3;
  cursor: default;
}

.ha-wallet-page-chevron {
  width: 12px;
  height: 7px;
  display: block;
  opacity: .7;
}

.ha-wallet-page-chevron--left {
  transform: rotate(90deg);
}

.ha-wallet-page-chevron--right {
  transform: rotate(-90deg);
}

html[data-resolved-theme="dark"] .ha-wallet-page-chevron {
  filter: brightness(0) invert(1);
}

.ha-wallet-error {
  min-height: 220px;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 18px;
  color: var(--text-70);
  text-align: center;
}

.ha-wallet-error p {
  margin: 0;
}

.ha-wallet-retry {
  cursor: pointer;
}

.ha-wallet-table--skeleton .ha-wallet-table-head,
.ha-wallet-skeleton-row {
  display: grid;
  grid-template-columns: 26% 19% 18% 14% 23%;
  align-items: center;
}

.ha-wallet-table--skeleton .ha-wallet-table-head {
  height: 34px;
  color: var(--text-55);
  font-weight: var(--glee-body-medium-fw);
}

.ha-wallet-skeleton-row {
  height: 50px;
  border-top: 1px solid var(--border-subtle);
}

.ha-wallet-skeleton-row span {
  position: relative;
  width: calc(100% - 16px);
  height: 12px;
  overflow: hidden;
  border-radius: 999px;
  background: var(--skeleton-base);
}

.ha-wallet-skeleton-row span::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, var(--skeleton-highlight), transparent);
  transform: translateX(-120%);
  animation: skel-shimmer 1.1s infinite;
}

.hub-info-modal-note,
.hub-info-modal-footer {
  margin: 18px 0 0;
  padding: 16px 18px;
  border-radius: 18px;
  background: var(--hub-info-subpanel-bg);
  color: var(--text-70);
}

.hub-info-steps {
  margin-top: 28px;
  display: grid;
  gap: 16px;
}

.hub-info-step {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 14px;
  padding: 18px 0;
  border-bottom: 1px solid rgba(var(--text-rgb), .10);
}

.hub-info-step-copy {
  min-width: 0;
}

.hub-info-step h3,
.hub-info-notes h3,
.hub-info-lootbox-head h3,
.hub-info-mini-card h4 {
  margin: 0;
  font-size: var(--fs-post-card-title);
  line-height: var(--lh-post-card-title);
  font-weight: var(--fw-post-card-title);
  letter-spacing: var(--ls-post-card-title);
  color: var(--text-100);
}

.hub-info-step p {
  margin: 6px 0 0;
  color: var(--text-70);
}

.hub-info-notes {
  margin-top: 30px;
}

.hub-info-notes ul {
  margin: 14px 0 0;
  padding-left: 18px;
}

.hub-info-notes li {
  color: var(--text-70);
}

.hub-info-notes li + li {
  margin-top: 8px;
}

.hub-info-tabs {
  margin-top: 22px;
  width: 100%;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ui-switcher-gap);
  padding: var(--ui-switcher-pad);
  border-radius: var(--ui-switcher-radius);
  background: var(--glass-ui-bg);
  -webkit-backdrop-filter: var(--glass-ui-filter);
  backdrop-filter: var(--glass-ui-filter);
  box-shadow: var(--switcher-glass-shadow);
}

.hub-info-tab {
  height: var(--ui-switcher-tab-h);
  min-width: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: var(--ui-switcher-radius);
  background: transparent;
  color: var(--switcher-text);
  font-family: var(--font-main);
  font-size: var(--switcher-font-size);
  line-height: var(--switcher-line-height);
  font-weight: var(--switcher-font-weight);
  letter-spacing: var(--switcher-letter-spacing);
  cursor: pointer;
}

.hub-info-tab.is-active {
  background: var(--switcher-active-bg);
  color: var(--switcher-active-text);
}

.hub-info-lootbox-panel {
  margin-top: 24px;
}

.hub-info-lootbox-head {
  height: 80px;
  display: flex;
  align-items: center;
  gap: 18px;
  overflow: hidden;
}

.hub-info-lootbox-art {
  width: 70px;
  height: 70px;
  flex: 0 0 70px;
  aspect-ratio: 1 / 1;
  display: block;
  overflow: hidden;
  border-radius: 18px;
  background: #EAF0FF;
}

.hub-info-lootbox-art img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.hub-info-lootbox-copy {
  min-width: 0;
  max-height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.hub-info-lootbox-desc {
  margin: 10px 0 0;
  color: var(--text-70);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.hub-info-grid {
  margin-top: 20px;
  display: grid;
  grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr);
  gap: 14px;
}

.hub-info-mini-card {
  min-width: 0;
  padding: 18px;
  border-radius: 20px;
  background: var(--hub-info-subpanel-bg);
}

.hub-info-chance-list {
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}

.hub-info-chance-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  color: var(--text-70);
}

.hub-info-chance-list span,
.hub-info-chance-list strong,
.hub-info-pool-list strong {
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  letter-spacing: var(--glee-small-ls);
}

.hub-info-chance-list span {
  font-weight: var(--glee-small-fw);
}

.hub-info-chance-list strong,
.hub-info-pool-list strong {
  font-weight: var(--fw-medium);
  color: var(--text-100);
}

.hub-info-pool-list {
  margin-top: 14px;
  display: grid;
  gap: 12px;
}

.hub-info-pool-list p {
  margin: 0;
  display: grid;
  gap: 3px;
}

.hub-info-pool-list span {
  color: var(--text-70);
}

/* =========================
   LOOTBOX MODAL / OPENING FLOW
========================= */
.hub-lootbox-modal.is-open {
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  padding: 24px;
  overflow: hidden;
}

.hub-lootbox-panel {
  width: auto;
  max-width: none;
  height: auto;
  min-height: 0;
  max-height: none;
  flex: 0 0 auto;
  margin: 0 auto;
  overflow: visible;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.hub-lootbox-modal-shell {
  width: auto;
  min-width: 0;
}

.hub-lootbox-confirm-card {
  width: min(635px, calc(100vw - 48px));
  box-sizing: border-box;
  padding: var(--action-modal-padding);
  border-radius: var(--action-modal-radius);
  background: var(--surface-card);
  color: var(--text-100);
}

.hub-lootbox-confirm-title-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.hub-lootbox-confirm-icon {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  display: grid;
  place-items: center;
}

.hub-lootbox-confirm-icon img {
  width: 20px;
  height: 20px;
  display: block;
}

.hub-lootbox-confirm-title {
  margin: 0;
  font-size: var(--glee-title-s-fs) !important;
  line-height: var(--glee-title-s-lh) !important;
  font-weight: var(--glee-title-s-fw) !important;
  letter-spacing: var(--glee-title-s-ls) !important;
  color: var(--text-100) !important;
}

.hub-lootbox-confirm-item {
  margin-top: 28px;
  display: flex;
  align-items: center;
  gap: 16px;
}

.hub-lootbox-confirm-preview {
  width: 70px;
  height: 70px;
  flex: 0 0 70px;
  display: block;
  border-radius: 20px;
  object-fit: cover;
  background: var(--bg);
}

.hub-lootbox-confirm-copy {
  min-width: 0;
}

.hub-lootbox-confirm-name {
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
}

.hub-lootbox-confirm-copy p {
  margin: 3px 0 0;
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-regular);
  color: var(--text-70);
}

.hub-lootbox-confirm-price {
  margin-top: 30px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.hub-lootbox-confirm-price span {
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-100);
}

.hub-lootbox-confirm-price strong {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: var(--glee-title-m-fs);
  line-height: var(--glee-title-m-lh);
  font-weight: var(--glee-title-m-fw);
  letter-spacing: var(--glee-title-m-ls);
  color: var(--brand);
  white-space: nowrap;
}

.hub-lootbox-confirm-actions,
.hub-lootbox-reward-actions {
  margin-top: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.hub-lootbox-modal-btn {
  width: var(--btn-blue-w);
  min-width: var(--btn-blue-min);
  max-width: var(--btn-blue-w);
  height: var(--btn-blue-h);
  min-height: var(--btn-blue-h);
  box-sizing: border-box;
  border-radius: var(--btn-blue-radius);
  padding: var(--btn-blue-pad);
  font-family: var(--font-main);
  font-size: var(--btn-blue-font);
  line-height: var(--btn-blue-lh);
  font-weight: var(--btn-blue-weight);
  letter-spacing: var(--btn-blue-ls);
  cursor: pointer;
}

.hub-lootbox-modal-btn--primary {
  border: 0;
  background: var(--btn-blue-bg);
  color: var(--btn-blue-text);
}

.hub-lootbox-modal-btn--outline {
  border: 1px solid var(--modal-outline-btn-border);
  background: var(--modal-outline-btn-bg);
  color: var(--modal-outline-btn-text);
}

.hub-lootbox-modal-btn:disabled {
  cursor: default;
  opacity: .5;
}

.hub-lootbox-modal-btn--claim:disabled {
  border: 1px solid rgba(255,255,255,.74);
  background: transparent;
  color: #FFFFFF;
  box-shadow: none;
  opacity: 1;
}

.hub-lootbox-reward-error {
  min-height: 0;
  margin: 0;
  text-align: center;
  font-size: 13px;
  line-height: 18px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--glee-meta-ls);
  color: #ff3b30;
}

.hub-lootbox-reward-error:not(:empty) {
  margin-top: 10px;
}

.hub-lootbox-opening-stage {
  position: relative;
  width: min(815px, calc(100vw - 48px), calc(100vh - 48px));
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: var(--app-tile-radius);
  background: #000000;
}

@supports (height: 100dvh) {
  .hub-lootbox-opening-stage {
    width: min(815px, calc(100vw - 48px), calc(100dvh - 48px));
  }
}

.hub-lootbox-opening-video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  background: #000000;
}

.hub-lootbox-reward-layer {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  pointer-events: none;
}

.hub-lootbox-reward-card::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 50%;
  width: calc(100% + 120px);
  aspect-ratio: 1.5 / 1;
  border-radius: 999px;
  background:
    radial-gradient(ellipse at center,
      rgba(255,255,255,.92) 0%,
      rgba(255,255,255,.66) 32%,
      rgba(255,255,255,.28) 58%,
      rgba(255,255,255,0) 74%);
  filter: blur(20px);
  opacity: .98;
  transform: translate(-50%, calc(-50% + 8px)) scale(1);
  pointer-events: none;
}

.hub-lootbox-reward-card {
  position: relative;
  z-index: 1;
  isolation: isolate;
  width: min(565px, calc(100% - 140px));
  box-sizing: border-box;
  padding: 32px;
  border: 1px solid rgba(255, 255, 255, .68);
  border-radius: var(--app-tile-radius);
  background:
    linear-gradient(180deg, rgba(255,255,255,.18), rgba(255,255,255,.07)),
    rgba(255, 255, 255, .08);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.72),
    inset 0 0 42px rgba(255,255,255,.12),
    0 18px 52px rgba(8,13,32,.11);
  color: var(--reward-modal-text-primary);
  opacity: 0;
  transform: translateY(16px) scale(.96);
  transition: opacity 280ms cubic-bezier(.2,.8,.2,1), transform 280ms cubic-bezier(.2,.8,.2,1);
  pointer-events: auto;
}

.hub-lootbox-modal.is-reward-visible .hub-lootbox-reward-card {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.hub-lootbox-reward-head {
  text-align: center;
}

.hub-lootbox-reward-tag .glee-content-tag-dot {
  background: var(--hub-rarity-color, #FFE100);
}

.hub-lootbox-reward-tag--xp,
.hub-lootbox-reward-tag--profile-effect {
  --hub-rarity-color: var(--brand);
}

.hub-lootbox-reward-tag--user-tag,
.hub-lootbox-reward-tag--subscription,
.hub-lootbox-reward-tag--nft {
  --hub-rarity-color: #E83472;
}

.hub-lootbox-reward-tag--badge {
  --hub-rarity-color: #FAEA3A;
}

.hub-lootbox-reward-title {
  margin: 14px 0 0;
  font-size: var(--glee-title-m-fs);
  line-height: var(--glee-title-m-lh);
  font-weight: var(--glee-title-m-fw);
  letter-spacing: var(--glee-title-m-ls);
  color: var(--reward-modal-text-primary);
}

.hub-lootbox-reward-head p {
  margin: 6px 0 0;
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  font-weight: var(--glee-small-fw);
  letter-spacing: var(--glee-small-ls);
  color: var(--reward-modal-text-secondary);
}

.hub-lootbox-reward-body {
  margin-top: 26px;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr);
  align-items: start;
  gap: 22px;
  padding: 8px;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 34px;
  background:
    linear-gradient(135deg, rgba(8,13,32,.56), rgba(8,13,32,.34)),
    rgba(8,13,32,.42);
  -webkit-backdrop-filter: blur(18px) saturate(135%);
  backdrop-filter: blur(18px) saturate(135%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.20),
    inset 0 0 38px rgba(255,255,255,.08);
}

.hub-lootbox-reward-art {
  width: 170px;
  height: 170px;
  flex: 0 0 170px;
  display: grid;
  place-items: center;
  border-radius: 28px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(225,228,235,.90)),
    #F1F2F4;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.72);
}

.hub-lootbox-reward-art img {
  width: 100%;
  height: 100%;
  display: block;
  border-radius: inherit;
  object-fit: cover;
}

.hub-lootbox-reward-copy {
  min-width: 0;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 0 14px 0 0;
  text-align: left;
  overflow-wrap: anywhere;
}

.hub-lootbox-reward-text {
  width: 100%;
  margin: 0;
  text-align: left;
}

.hub-lootbox-reward-copy h3 {
  margin: 0;
  font-size: var(--glee-title-s-fs);
  line-height: var(--glee-title-s-lh);
  font-weight: var(--glee-title-s-fw);
  letter-spacing: var(--glee-title-s-ls);
  color: #FFFFFF;
}

.hub-lootbox-reward-copy p {
  margin: 6px 0 0;
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  font-weight: var(--glee-small-fw);
  letter-spacing: var(--glee-small-ls);
  color: rgba(255,255,255,.76);
}

.hub-lootbox-contact-input {
  width: 100%;
  height: 42px;
  box-sizing: border-box;
  margin-top: 14px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px;
  outline: 0;
  padding: 0 16px;
  background: rgba(8,13,32,.48);
  -webkit-appearance: none;
  appearance: none;
  font-family: var(--font-main);
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  font-weight: var(--glee-small-fw);
  letter-spacing: var(--glee-small-ls);
  color: rgba(255,255,255,.50);
}

.hub-lootbox-contact-input::placeholder {
  color: rgba(255,255,255,.50);
}

.hub-lootbox-contact-input:hover,
.hub-lootbox-contact-input:focus,
.hub-lootbox-contact-input:focus-visible,
.hub-lootbox-contact-input:active {
  border-color: rgba(255,255,255,.18);
  outline: 0;
  box-shadow: none;
  filter: none;
}

@media (prefers-reduced-motion: reduce) {
  .hub-lootbox-reward-card {
    transition: none;
    transform: none;
  }
}

/* =========================
   GLOBAL TOAST
========================= */
#glee-toast-root.glee-toast-root {
  position: fixed;
  top: 68px;
  left: 50%;
  right: auto;
  bottom: auto;
  z-index: 9000;
  width: min(700px, calc(100vw - 32px));
  transform: translateX(-50%);
  display: block;
  pointer-events: none;
}

#glee-toast-root .glee-toast {
  width: 100%;
  min-height: 84px;
  box-sizing: border-box;
  padding: 10px 20px 10px 10px;
  border: 0;
  border-color: var(--toast-border);
  border-radius: 999px;
  background: var(--toast-bg);
  color: var(--toast-text);
  box-shadow: none;
  overflow: hidden;
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 18px;
  opacity: 0;
  transform: translateY(-10px);
  transition: transform 220ms ease, opacity 220ms ease;
  pointer-events: auto;
  cursor: pointer;
}

#glee-toast-root .glee-toast.is-visible {
  opacity: 1;
  transform: translateY(0);
}

#glee-toast-root .glee-toast.is-leaving {
  opacity: 0;
  transform: translateY(-10px);
  transition-duration: 180ms;
}

#glee-toast-root .glee-toast-media {
  width: 64px;
  height: 64px;
  display: block;
  object-fit: cover;
  background: var(--brand);
}

#glee-toast-root .glee-toast-media.is-system {
  border-radius: 99px;
}

#glee-toast-root .glee-toast-media.is-avatar {
  border-radius: 50%;
}

#glee-toast-root .glee-toast-copy {
  min-width: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

#glee-toast-root .glee-toast-title,
#glee-toast-root .glee-toast-message {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: var(--glee-font);
  font-size: var(--glee-body-fs);
  line-height: var(--glee-body-lh);
  font-weight: var(--glee-body-medium-fw);
  letter-spacing: var(--glee-body-ls);
}

#glee-toast-root .glee-toast-title {
  color: var(--text-100);
}

#glee-toast-root .glee-toast-title-text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#glee-toast-root .glee-toast-message {
  margin-top: 0;
  color: var(--text-70);
}

#glee-toast-root .glee-toast-highlight {
  color: var(--brand);
}

#glee-toast-root .glee-toast-time {
  margin-left: 0;
  font-family: var(--glee-font);
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  font-weight: var(--glee-small-fw);
  letter-spacing: var(--glee-small-ls);
  color: var(--text-50);
  white-space: nowrap;
}

#glee-toast-root .glee-toast.is-notification-push .glee-toast-user-identity {
  max-width: 100%;
}

#glee-toast-root .glee-toast.is-notification-push .glee-toast-message-part.is-primary {
  color: var(--text-100);
}

#glee-toast-root .glee-toast.is-notification-push .glee-toast-message-part.is-secondary {
  color: var(--text-70);
}

#glee-toast-root .glee-toast.is-notification-push .glee-toast-message-part.is-signal-market-heat {
  color: var(--signal-market-heat-bg);
}

#glee-toast-root .glee-toast.is-notification-push .glee-toast-message-part.is-signal-heavy-accumulation {
  color: var(--signal-heavy-accumulation-bg);
}

#glee-toast-root .glee-toast.is-notification-push .glee-toast-message-part.is-signal-relative-strength {
  color: var(--signal-relative-strength-bg);
}

#glee-toast-root .glee-toast.is-notification-push .glee-toast-message-part.is-signal-breakout-pressure {
  color: var(--signal-breakout-pressure-bg);
}

/* Authentication and onboarding. */
body.auth {
  min-height: 100%;
  overflow: auto;
  background: var(--bg);
  color: var(--text-100);
}

body.auth .auth-shell {
  width: 100%;
  min-height: 100vh;
  min-height: 100svh;
  padding: clamp(24px, 5vh, 56px) 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  overflow: visible;
}

body.auth .auth-center {
  width: min(455px, 100%);
  height: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

body.auth .auth-block,
body.auth .auth-card {
  position: relative;
  width: 100%;
  max-width: 455px;
  overflow: visible;
  box-sizing: border-box;
  padding: clamp(36px, 4vw, 48px) 35px 35px;
  border: 1px solid rgba(var(--text-rgb), 0.20);
  border-radius: 40px;
  background: #fff;
  box-shadow: none;
  text-align: center;
}

body.auth .auth-block::before,
body.auth .auth-block::after {
  content: none;
  display: none;
}

body.auth .auth-icon-pill[hidden] {
  display: none !important;
}

body.auth .auth-icon-pill {
  width: 42px;
  height: 42px;
  margin: 0 auto 27px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  background: rgba(var(--text-rgb), 0.08);
}

body.auth .auth-icon-pill img {
  width: 20px;
  height: 20px;
  display: block;
}

body.auth .auth-title {
  margin: 0 0 52px;
  font-size: 20px !important;
  line-height: 25px !important;
  font-weight: var(--fw-semibold) !important;
  letter-spacing: var(--ls-title) !important;
  color: var(--text-70) !important;
}

body.auth .auth-form {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
}

body.auth .auth-input {
  width: 100% !important;
  max-width: none !important;
  height: 38px;
  box-sizing: border-box;
  padding: 0;
  border: 0;
  border-bottom: 1px solid rgba(var(--text-rgb), 0.30);
  border-radius: 0;
  outline: 0;
  background: transparent;
  font-family: var(--font-main) !important;
  font-size: 14px !important;
  line-height: 20px !important;
  font-weight: var(--fw-regular) !important;
  letter-spacing: var(--ls-regular) !important;
  color: var(--text-100) !important;
}

body.auth .auth-input:focus {
  border-bottom-color: var(--brand);
}

body.auth .auth-input::placeholder {
  color: var(--text-55) !important;
  opacity: 1;
}

body.auth .auth-help,
body.auth .auth-footnote,
body.auth .avatar-suggestions-title {
  font-size: 14px !important;
  line-height: 20px !important;
  font-weight: var(--fw-regular) !important;
  letter-spacing: var(--ls-regular) !important;
  color: var(--text-55) !important;
}

body.auth .auth-help {
  width: 100%;
  max-width: none;
  min-height: 20px;
  margin: 24px 0 30px;
  text-align: center;
}

body.auth .auth-helper-emphasis {
  color: var(--text-100);
}

body.auth .auth-error {
  width: 100%;
  max-width: none;
  min-height: 0;
  margin: 0;
  text-align: center;
  font-size: 13px;
  line-height: 18px;
}

body.auth .auth-error:empty {
  display: none;
}

body.auth .auth-error:not(:empty) {
  margin: 0 0 14px;
}

body.auth .auth-cta {
  width: var(--btn-blue-w);
  min-width: var(--btn-blue-min);
  max-width: var(--btn-blue-w);
  height: var(--btn-blue-h);
  min-height: var(--btn-blue-h);
  padding: var(--btn-blue-pad);
  border: 0;
  border-radius: var(--btn-blue-radius);
  background: var(--btn-blue-bg);
  color: var(--btn-blue-text);
  font-family: var(--font-main);
  font-size: var(--btn-blue-font) !important;
  line-height: var(--btn-blue-lh) !important;
  font-weight: var(--btn-blue-weight) !important;
  letter-spacing: var(--btn-blue-ls) !important;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

body.auth .auth-cta:disabled {
  opacity: 0.4;
}

body.auth .auth-outside-note {
  margin: 28px 0 0 !important;
  text-align: center;
}

body.auth .auth-link {
  color: var(--brand) !important;
  text-decoration: none;
  font-weight: var(--fw-regular);
}

body.auth .auth-link:hover {
  text-decoration: underline;
}

body.auth .auth-resend-btn {
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  cursor: pointer;
}

body.auth .auth-resend-btn:disabled {
  cursor: default;
  opacity: 0.65;
  text-decoration: none;
}

body.auth.is-code-step .auth-title {
  margin-bottom: 52px;
}

body.auth.is-code-step .auth-help {
  margin-top: 24px;
}

body.auth-username .auth-title,
body.auth-avatar .auth-title,
body.auth-bio .auth-title {
  margin-bottom: 48px;
}

body.auth-username .auth-input + .auth-input {
  margin-top: 26px;
}

body.auth-username .auth-help {
  margin: 22px 0 34px;
}

body.auth-avatar .auth-block {
  padding-bottom: 35px;
}

body.auth-avatar .avatar-file {
  display: none;
}

body.auth-avatar .avatar-picker {
  margin: 0;
  display: flex;
  justify-content: center;
  cursor: pointer;
}

body.auth-avatar .avatar-circle {
  width: 96px;
  height: 96px;
  border: 0;
  border-radius: 50%;
  display: grid;
  place-items: center;
  position: relative;
  overflow: hidden;
  background: rgba(var(--text-rgb), 0.09);
}

body.auth-avatar .avatar-plus {
  font-size: 30px;
  line-height: 1;
  font-weight: 300;
  color: var(--text-70);
}

body.auth-avatar .avatar-suggestions {
  margin-top: 32px;
}

body.auth-avatar .avatar-suggestions-title {
  margin: 0 0 18px;
}

body.auth-avatar .avatar-suggestion-grid {
  height: 128px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 0;
}

body.auth-avatar .avatar-suggestion-btn {
  width: 102px;
  height: 118px;
  flex: 0 0 102px;
  padding: 0;
  border: 2px solid transparent;
  border-radius: 12px;
  overflow: hidden;
  background: rgba(var(--text-rgb), 0.12);
  box-sizing: border-box;
  cursor: pointer;
  transition: transform 160ms ease, border-color 160ms ease;
}

body.auth-avatar .avatar-suggestion-btn:nth-child(1) {
  transform: rotate(-6deg) translateX(8px);
}

body.auth-avatar .avatar-suggestion-btn:nth-child(2) {
  width: 112px;
  height: 128px;
  flex-basis: 112px;
  z-index: 2;
  transform: translateY(-2px);
}

body.auth-avatar .avatar-suggestion-btn:nth-child(3) {
  transform: rotate(6deg) translateX(-8px);
}

body.auth-avatar .avatar-suggestion-btn:hover {
  opacity: 1;
}

body.auth-avatar .avatar-suggestion-btn.is-selected {
  border-color: var(--brand);
}

body.auth-avatar .avatar-suggestion-img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center top;
  border-radius: 9px;
}

body.auth-avatar .auth-cta {
  margin-top: 34px;
}

body.auth-bio .auth-block {
  max-width: 455px;
}

body.auth-bio .role-field {
  width: 100%;
  max-width: none;
  margin-top: 38px;
  text-align: left;
}

body.auth-bio .role-label {
  font-size: 15px !important;
  line-height: 22px !important;
  font-weight: var(--fw-medium) !important;
  letter-spacing: var(--ls-medium) !important;
  color: var(--text-100) !important;
}

body.auth-bio .role-selector {
  margin-top: 18px;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 10px 8px;
}

body.auth-bio .role-chip,
body.auth-bio .onboarding-role-pill {
  min-height: 37px;
  height: 37px;
  padding: 0 15px;
  border: 0;
  border-radius: 999px;
  background: rgba(var(--text-rgb), 0.09);
  color: var(--text-70);
  font-family: var(--font-main);
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-regular);
  cursor: pointer;
}

body.auth-bio .role-chip.is-selected {
  background: var(--brand);
  color: #fff;
}

body.auth-bio .auth-help--validation {
  display: none;
}

body.auth-bio .auth-cta {
  margin-top: 38px;
}

body.auth-loader,
body.auth-loader .loader-shell {
  min-height: 100vh;
  min-height: 100svh;
  background: var(--bg);
}

body.auth-loader .loader-shell,
body.auth-loader .loader-center {
  width: 100%;
  height: 100vh;
  height: 100svh;
}

body.auth-loader .loader-logo {
  margin: 0;
  font-family: var(--font-main) !important;
  font-size: clamp(44px, 3vw, 50px) !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  letter-spacing: -0.06em !important;
  color: var(--text-100) !important;
}

/* One-document SPA boot loader. Keep the wordmark hidden until DM Sans 800 is ready. */
.spa-root {
  min-height: 100vh;
}

.spa-view {
  display: none;
}

.spa-view.is-active {
  display: block;
}

html.spa-booting {
  visibility: visible !important;
  overflow: hidden;
  background: var(--bg);
}

html.spa-booting body.app {
  overflow: hidden;
  background: var(--bg);
}

html.spa-booting .spa-root {
  visibility: hidden;
}

.spa-boot-loader.loader-shell {
  position: fixed;
  inset: 0;
  z-index: 2147483647;
  width: 100vw;
  height: 100vh;
  height: 100svh;
  min-height: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: var(--bg);
  display: grid;
  place-items: center;
  box-sizing: border-box;
}

.spa-boot-loader .loader-center {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  display: grid;
  place-items: center;
  opacity: 0;
}

.spa-boot-loader .loader-logo {
  margin: 0;
  padding: 0;
  font-family: var(--font-main) !important;
  font-size: 70px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  letter-spacing: -0.06em !important;
  color: var(--text-100) !important;
}

/* Wide onboarding gate. */
body.onboarding-page {
  --onboarding-card-ratio: 922 / 614;
  --onboarding-card-w: min(calc(100vw - 96px), 922px);
  --onboarding-preview-ratio: 435 / 574;
  --onboarding-preview-radius: 40px;
  --onboarding-input-bg: #F2F2F2;
  --onboarding-error-slot-height: 56px;
  --onboarding-placeholder-color: var(--text-55);
  --onboarding-helper-color: var(--text-55);
  --onboarding-helper-margin: 0;
  --onboarding-title-size: clamp(32px, 2.3vw, 35px);
  --onboarding-name-avatar-form-zone-h: 120px;
  min-height: 100%;
  overflow: auto;
  background: var(--bg);
}

body.onboarding-page .onboarding-shell {
  position: relative;
  width: 100%;
  min-height: 100vh;
  min-height: 100svh;
  padding: 96px 24px 56px;
  box-sizing: border-box;
  display: grid;
  place-items: center;
  overflow: visible;
}

body.onboarding-page .onboarding-logo {
  position: absolute;
  top: 40px;
  left: 50%;
  width: 40px;
  height: 40px;
  display: block;
  transform: translateX(-50%);
}

body.onboarding-page .onboarding-stage {
  position: relative;
  width: var(--onboarding-card-w);
  height: auto;
  display: block;
}

body.onboarding-page .onboarding-card {
  width: 100%;
  max-width: none;
  height: auto;
  min-height: 0;
  aspect-ratio: var(--onboarding-card-ratio);
  padding: 20px;
  border: 0;
  border-radius: 40px;
  background: #fff;
  display: grid;
  grid-template-columns: 435fr 447fr;
  gap: 0;
  overflow: hidden;
  box-sizing: border-box;
  text-align: left;
}

body.onboarding-page .onboarding-preview {
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
}

body.onboarding-page .onboarding-preview-frame {
  width: 100%;
  height: 100%;
  aspect-ratio: var(--onboarding-preview-ratio);
  border-radius: var(--onboarding-preview-radius);
  overflow: hidden;
  background: transparent;
  display: block;
  line-height: 0;
}

body.onboarding-page .onboarding-preview-frame picture {
  width: 100%;
  height: 100%;
  display: block;
  overflow: hidden;
  line-height: 0;
}

body.onboarding-page .onboarding-preview-img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center center;
  image-rendering: auto;
  transform: none;
  filter: none;
  opacity: 1;
  margin: 0;
}

body.onboarding-page .onboarding-panel {
  position: relative;
  height: 100%;
  min-width: 0;
  min-height: 0;
  padding: 32px clamp(34px, 4vw, 54px);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

body.onboarding-page .onboarding-top-link {
  position: static;
  width: 100%;
  margin: 0 !important;
  text-align: center;
  font-size: 14px !important;
  line-height: 20px !important;
  font-weight: var(--fw-regular) !important;
  letter-spacing: var(--ls-regular) !important;
  color: var(--text-55) !important;
  white-space: nowrap;
}

@media (min-width: 901px) {
  body.onboarding-page .onboarding-top-link {
    position: absolute;
    top: 10px;
    left: 0;
    right: 0;
  }
}

body.onboarding-page .onboarding-panel-content {
  width: min(100%, 350px);
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

body.onboarding-page .brand-block {
  display: contents;
}

body.onboarding-page .onboarding-brand-logo {
  display: none;
}

body.onboarding-page .onboarding-title {
  margin: 0 0 14px !important;
  font-family: var(--font-main) !important;
  font-size: var(--onboarding-title-size) !important;
  line-height: 1.08 !important;
  font-weight: var(--fw-semibold) !important;
  letter-spacing: var(--ls-title) !important;
  color: var(--text-100) !important;
}

body.onboarding-page .onboarding-subtitle {
  margin: 0;
  font-size: 15px;
  line-height: 22px;
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-medium);
  color: var(--text-70);
}

body.onboarding-page .auth-form {
  width: 100%;
  margin-top: 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
}

body.onboarding-page .onboarding-input {
  width: 100% !important;
  max-width: none !important;
  height: 44px;
  min-height: 44px;
  padding: 0 18px;
  box-sizing: border-box;
  border: 0;
  border-radius: 15px;
  outline: none;
  background: var(--onboarding-input-bg);
  font-family: var(--font-main) !important;
  font-size: 14px !important;
  line-height: 20px !important;
  font-weight: var(--fw-regular) !important;
  letter-spacing: var(--ls-regular) !important;
  color: var(--text-100) !important;
}

body.onboarding-page .onboarding-input:focus {
  border: 0;
  box-shadow: 0 0 0 2px rgba(30, 86, 250, 0.18);
}

body.onboarding-page .onboarding-input::placeholder {
  color: var(--onboarding-placeholder-color) !important;
}

body.onboarding-page .onboarding-cta {
  width: var(--btn-blue-w);
  min-width: var(--btn-blue-min);
  max-width: var(--btn-blue-w);
  height: var(--btn-blue-h);
  min-height: var(--btn-blue-h);
  margin-top: 34px;
  padding: var(--btn-blue-pad);
  border: 0;
  border-radius: var(--btn-blue-radius);
  background: var(--btn-blue-bg);
  color: var(--btn-blue-text);
  font-size: var(--btn-blue-font) !important;
  line-height: var(--btn-blue-lh) !important;
  font-weight: var(--btn-blue-weight) !important;
  letter-spacing: var(--btn-blue-ls) !important;
}

body.onboarding-page .onboarding-cta:disabled:not(.is-async-loading) {
  opacity: 0.6;
  cursor: not-allowed;
}

.is-async-loading,
.is-async-loading:disabled {
  --btn-blue-bg: var(--surface-soft);
  --btn-blue-text: var(--text-70);
  background: var(--surface-soft);
  color: var(--text-70);
  opacity: 1;
  cursor: default;
  pointer-events: none;
}

body.onboarding-page .onboarding-panel-footer {
  width: min(100%, 350px);
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}

body.onboarding-page .onboarding-panel-footer .onboarding-cta {
  flex: 0 0 auto;
}

body.onboarding-page .onboarding-panel-footer .onboarding-helper {
  flex: none;
}

body.onboarding-page .auth-google-block {
  position: relative;
  top: 42px;
  height: 0;
  flex: 0 0 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

body.onboarding-page .auth-google-or {
  flex: 0 0 auto;
  font-family: var(--font-main);
  font-size: 14px;
  line-height: 20px;
  font-weight: 400;
  color: rgba(var(--text-rgb), 0.7);
  text-align: center;
}

body.onboarding-page .auth-google-block > .gsi-material-button {
  flex: 0 0 40px;
  min-height: 40px;
}

.gsi-material-button {
  -moz-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  -webkit-appearance: none;
  background-color: #f2f2f2;
  background-image: none;
  border: none;
  -webkit-border-radius: 20px;
  border-radius: 20px;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  color: #1f1f1f;
  cursor: pointer;
  font-family: 'Roboto', arial, sans-serif;
  font-size: 14px;
  height: 40px;
  letter-spacing: -0.02em;
  outline: none;
  overflow: hidden;
  padding: 0 12px;
  position: relative;
  text-align: center;
  -webkit-transition: background-color .218s, border-color .218s, box-shadow .218s;
  transition: background-color .218s, border-color .218s, box-shadow .218s;
  vertical-align: middle;
  white-space: nowrap;
  width: auto;
  max-width: 400px;
  min-width: min-content;
}

.gsi-material-button .gsi-material-button-icon {
  height: 20px;
  margin-right: 10px;
  min-width: 20px;
  width: 20px;
}

.gsi-material-button .gsi-material-button-content-wrapper {
  -webkit-align-items: center;
  align-items: center;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: nowrap;
  flex-wrap: nowrap;
  height: 100%;
  justify-content: space-between;
  position: relative;
  width: 100%;
}

.gsi-material-button .gsi-material-button-contents {
  -webkit-flex-grow: 1;
  flex-grow: 1;
  font-family: 'Roboto', arial, sans-serif;
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: top;
}

.gsi-material-button .gsi-material-button-state {
  -webkit-transition: opacity .218s;
  transition: opacity .218s;
  bottom: 0;
  left: 0;
  opacity: 0;
  position: absolute;
  right: 0;
  top: 0;
}

.gsi-material-button:disabled {
  cursor: default;
  background-color: #ffffff61;
}

.gsi-material-button:disabled .gsi-material-button-state {
  background-color: #1f1f1f1f;
}

.gsi-material-button:disabled .gsi-material-button-contents {
  opacity: 38%;
}

.gsi-material-button:disabled .gsi-material-button-icon {
  opacity: 38%;
}

.gsi-material-button:not(:disabled):active .gsi-material-button-state,
.gsi-material-button:not(:disabled):focus .gsi-material-button-state {
  background-color: #001d35;
  opacity: 12%;
}

.gsi-material-button:not(:disabled):hover {
  -webkit-box-shadow: 0 1px 2px 0 rgba(60, 64, 67, .30),
    0 1px 3px 1px rgba(60, 64, 67, .15);
  box-shadow: 0 1px 2px 0 rgba(60, 64, 67, .30),
    0 1px 3px 1px rgba(60, 64, 67, .15);
}

.gsi-material-button:not(:disabled):hover .gsi-material-button-state {
  background-color: #001d35;
  opacity: 8%;
}

body.onboarding-page .onboarding-helper {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 10px;
  width: 100%;
  max-width: none;
  min-height: 20px;
  margin: var(--onboarding-helper-margin) !important;
  text-align: center;
  font-size: 14px !important;
  line-height: 20px !important;
  font-weight: var(--fw-regular) !important;
  letter-spacing: var(--ls-regular) !important;
  color: var(--onboarding-helper-color) !important;
}

body.onboarding-page .auth-helper-emphasis {
  color: var(--text-100);
}

body.onboarding-page .onboarding-error {
  position: absolute;
  top: calc(100% + 12px);
  right: auto;
  bottom: auto;
  left: 50%;
  transform: translateX(-50%);
  width: fit-content;
  max-width: min(520px, calc(100vw - 30px));
  height: auto;
  min-height: 48px;
  max-height: var(--onboarding-error-slot-height);
  margin: 0;
  padding: 7px 18px 7px 9px;
  border-radius: 999px;
  background: #ffb9ba;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  text-align: left;
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--fw-regular);
  letter-spacing: var(--ls-regular);
  color: var(--text-70);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  pointer-events: none;
  z-index: 5;
}

body.onboarding-page .onboarding-error::before {
  content: "";
  position: static;
  width: 34px;
  height: 34px;
  min-width: 34px;
  flex: 0 0 34px;
  border-radius: 99px;
  background: #fff url("/assets/icons/onboarding-error.svg") center / 20px 20px no-repeat;
}

body.onboarding-page .onboarding-error:empty {
  display: none;
}

body.onboarding-page.auth-username .onboarding-input + .onboarding-input {
  margin-top: 32px;
}

@media (min-width: 901px) {
  body.onboarding-page.auth-username .auth-form,
  body.onboarding-page.auth-avatar .auth-form {
    height: var(--onboarding-name-avatar-form-zone-h);
    min-height: var(--onboarding-name-avatar-form-zone-h);
    max-height: var(--onboarding-name-avatar-form-zone-h);
    flex: 0 0 var(--onboarding-name-avatar-form-zone-h);
  }

  body.onboarding-page.auth-avatar .avatar-picker {
    width: 100%;
    height: 100%;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }
}

body.onboarding-page.auth-avatar .onboarding-panel-content {
  width: min(100%, 350px);
  align-self: auto;
  justify-content: flex-start;
}

body.onboarding-page.auth-avatar .avatar-circle {
  width: 120px;
  height: 120px;
  border: 0;
  background: #F2F2F2;
}

body.onboarding-page.auth-avatar .avatar-plus {
  width: 28px;
  height: 28px;
  display: block;
  font-size: 0;
  background-color: var(--brand);
  -webkit-mask: url("../assets/icons/camera-icon.svg") no-repeat center / contain;
  mask: url("../assets/icons/camera-icon.svg") no-repeat center / contain;
}

body.onboarding-page.auth-bio .onboarding-panel {
  padding-left: clamp(34px, 3.5vw, 54px);
  padding-right: clamp(34px, 3.5vw, 54px);
}

body.onboarding-page.auth-bio .auth-form {
  margin-top: 30px;
}

body.onboarding-page.auth-bio .role-field {
  width: 100%;
  margin-top: 40px;
}

body.onboarding-page.auth-bio .role-selector {
  margin-top: 18px;
  justify-content: center;
  gap: 10px 8px;
}

body.onboarding-page.auth-bio .role-chip {
  height: 37px;
  min-height: 37px;
}

body.onboarding-page.auth-bio .role-chip:not(.is-selected) {
  background: #F2F2F2;
}

body.onboarding-page.auth-bio .onboarding-cta {
  margin-top: 32px;
}

body.onboarding-page.auth-loader .loader-shell,
body.onboarding-page.auth-loader .loader-center {
  width: 100%;
  height: 100vh;
  height: 100svh;
}

body.onboarding-page.auth-loader .onboarding-logo {
  position: static;
  width: 50px;
  height: 50px;
  transform: none;
}

/* Loader is a viewport-locked transition screen, independent from onboarding. */
html:has(body.auth-loader),
body.auth-loader {
  width: 100%;
  height: 100%;
  min-height: 100%;
  margin: 0;
  overflow: hidden !important;
  background: var(--bg);
}

body.auth-loader {
  position: fixed;
  inset: 0;
  padding: 0;
  font-family: var(--font-main);
  color: var(--text-100);
}

body.auth-loader .loader-shell {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  height: 100svh;
  min-height: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: var(--bg);
  display: grid;
  place-items: center;
  box-sizing: border-box;
}

body.auth-loader .loader-center {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  display: grid;
  place-items: center;
}

body.auth-loader .loader-logo {
  margin: 0;
  padding: 0;
  font-family: var(--font-main) !important;
  font-size: 70px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  letter-spacing: -0.06em !important;
  color: var(--text-100) !important;
}

/* =========================
   Authenticated dark theme coverage
========================= */
html[data-resolved-theme="dark"],
html[data-resolved-theme="dark"] body.app,
html[data-resolved-theme="dark"] .spa-root,
html[data-resolved-theme="dark"] .spa-view,
html[data-resolved-theme="dark"] body.app .home-scroll,
html[data-resolved-theme="dark"] body.app .app-shell {
  background: var(--app-bg) !important;
  color: var(--text-100);
}

html[data-resolved-theme="dark"] body.app {
  color-scheme: dark;
}

html[data-resolved-theme="dark"] body.app::-webkit-scrollbar-track,
html[data-resolved-theme="dark"] body.app *::-webkit-scrollbar-track {
  background: var(--scrollbar-track);
}

html[data-resolved-theme="dark"] body.app::-webkit-scrollbar-thumb,
html[data-resolved-theme="dark"] body.app *::-webkit-scrollbar-thumb {
  background: var(--scrollbar-thumb);
  border-radius: 999px;
}

html[data-resolved-theme="dark"] body.app :where(
  .glee-card,
  .event-info-card,
  .leaderboard-row,
  .leaderboard-card,
  .hub-card,
  .hub-lootbox-card,
  .hub-market-card,
  .hub-event-card,
  .hub-creator-card,
  .post-card-shell,
  .post-card-content,
  .post-confirm-card,
  .post-more-menu,
  .search-dd-inner,
  .glee-app-info-card,
  .modal-card,
  .profile-card,
  .profile-header-card,
  .profile-neutral-card,
  .creator-mint-modal__card,
  .creator-visa-modal__card,
  .creator-how-modal__card,
  .lootbox-card,
  .lootbox-confirm-card,
  .lootbox-rewards-card,
  .reward-card,
  .error-card,
  .empty-card:not(.signals-state-card--empty)
) {
  background-color: var(--surface-card) !important;
  color: var(--text-100);
}

html[data-resolved-theme="dark"] body.app :where(
  .search-input,
  .settings-input,
  .settings-email,
  .cp-input,
  .cp-textarea,
  .pe-input,
  .pe-textarea,
  .post-comment-input
) {
  background-color: var(--surface-input) !important;
  color: var(--text-100) !important;
  border-color: var(--border-subtle) !important;
  caret-color: var(--text-100);
}

html[data-resolved-theme="dark"] body.app :where(input, textarea)::placeholder {
  color: var(--placeholder-color) !important;
}

html[data-resolved-theme="dark"] body.app :where(
  .row-divider,
  .settings-divider,
  .post-side-divider,
  .search-dd-divider,
  .leaderboard-divider,
  .event-divider
) {
  background-color: var(--border-subtle) !important;
}

html[data-resolved-theme="dark"] body.app :where(
  .search-dd-inner,
  .post-more-menu,
  .post-confirm-card,
  .creator-mint-modal__card,
  .creator-visa-modal__card,
  .lootbox-confirm-card
) {
  border-color: var(--border-subtle) !important;
}

html[data-resolved-theme="dark"] body.app :where(
  .mobile-bottom-nav,
  .mobile-topbar-action,
  .glee-ui-glass,
  .ui-glass-panel,
  .home-tabs,
  .profile-tabs,
  .hub-switch,
  .leaderboard-switch
) {
  background: var(--glass-ui-bg) !important;
  border-color: var(--glass-ui-stroke) !important;
  box-shadow: var(--switcher-glass-shadow) !important;
}

html[data-resolved-theme="dark"] body.app :where(
  .nav-item.is-active,
  .mnav-item.is-active,
  .mobile-topbar-action.is-active,
  .home-tab.is-active,
  .profile-tab.is-active,
  .hub-switch button.is-active,
  .leaderboard-switch button.is-active
) {
  background: var(--surface-active) !important;
}

html[data-resolved-theme="dark"] body.app :where(.nav-item:not(.is-active), .mnav-item:not(.is-active)) {
  color: var(--icon-muted) !important;
}

html[data-resolved-theme="dark"] body.app :where(.nav-ico, .search-icon, .cp-back-icon) {
  background-color: currentColor;
}

html[data-resolved-theme="dark"] body.app :where(.nav-item.is-active .nav-ico) {
  background-color: var(--brand);
}

html[data-resolved-theme="dark"] body.app .nav-unread-dot {
  border-color: transparent !important;
}

html[data-resolved-theme="dark"] body.app :where(.post-more-item:hover:not(:disabled)) {
  background-color: var(--surface-hover) !important;
}

html[data-resolved-theme="dark"] body.app :where(
  .post-comment-ava,
  .post-creator-ava,
  .avatar-circle,
  .hub-level-track,
  .lootbox-probability-track
) {
  background-color: var(--surface-tertiary) !important;
}

html[data-resolved-theme="dark"] body.app input:-webkit-autofill,
html[data-resolved-theme="dark"] body.app textarea:-webkit-autofill,
html[data-resolved-theme="dark"] body.app select:-webkit-autofill {
  -webkit-text-fill-color: var(--text-100);
  box-shadow: 0 0 0 1000px var(--surface-input) inset;
  transition: background-color 9999s ease-out;
}

/* =========================
   Canonical 120 x 37 CTA system
========================= */
.glee-cta,
.glee-primary-btn,
.cp-post,
.pe-save {
  width: 120px;
  min-width: 120px;
  max-width: 120px;
  height: 37px;
  min-height: 37px;
  box-sizing: border-box;
  border-radius: 999px;
  padding: 0;
  font-family: var(--font-main);
  font-size: 15px;
  line-height: 22px;
  font-weight: 400;
  letter-spacing: -0.02em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  white-space: nowrap;
  text-decoration: none;
  box-shadow: none;
  transform: none;
  cursor: pointer;
}

.glee-primary-btn,
.cp-post,
.pe-save,
.glee-cta--primary {
  border: 1px solid var(--cta-primary-border) !important;
  background: var(--cta-primary-bg) !important;
  color: var(--cta-primary-text) !important;
}

.glee-cta--brand-outline {
  border: 1px solid var(--cta-brand-outline-border) !important;
  background: var(--cta-brand-outline-bg) !important;
  color: var(--cta-brand-outline-text) !important;
}

.glee-cta--neutral-outline,
.post-confirm-btn.is-cancel,
.hub-lootbox-modal-btn--outline {
  border: 1px solid var(--cta-neutral-outline-border) !important;
  background: var(--cta-neutral-outline-bg) !important;
  color: var(--cta-neutral-outline-text) !important;
}

.glee-cta--danger,
.post-confirm-btn.is-danger {
  border: 1px solid var(--cta-danger-outline-border) !important;
  background: var(--cta-danger-outline-bg) !important;
  color: var(--cta-danger-outline-text) !important;
}

.glee-cta--disabled,
body.app-signals .signals-analyze-submit:disabled,
.glee-cta.is-loading,
.glee-cta.is-async-loading,
.glee-primary-btn.is-loading,
.glee-primary-btn.is-async-loading,
.cp-post.is-loading,
.cp-post.is-async-loading,
.pe-save.is-loading,
.pe-save.is-async-loading {
  border-color: var(--cta-disabled-border) !important;
  background: var(--cta-disabled-bg) !important;
  color: var(--cta-disabled-text) !important;
  opacity: 1 !important;
  cursor: default !important;
  pointer-events: none !important;
}

body.app .glee-cta.is-loading,
body.app .glee-cta.is-async-loading {
  border-color: var(--cta-disabled-border) !important;
  background: var(--cta-disabled-bg) !important;
  color: var(--cta-disabled-text) !important;
}

.glee-cta.is-static {
  cursor: default !important;
  pointer-events: none !important;
  opacity: 1 !important;
}

.glee-cta[hidden] {
  display: none !important;
}

.glee-cta:hover,
.glee-cta:focus-visible,
.glee-primary-btn:hover,
.glee-primary-btn:focus-visible,
.cp-post:hover,
.cp-post:focus-visible,
.pe-save:hover,
.pe-save:focus-visible {
  box-shadow: none;
  transform: none;
}

.glee-cta--primary:hover,
.glee-cta--primary:focus-visible,
.glee-primary-btn:hover,
.glee-primary-btn:focus-visible,
.cp-post:hover,
.cp-post:focus-visible,
.pe-save:hover,
.pe-save:focus-visible {
  border-color: var(--cta-primary-border) !important;
  background: var(--cta-primary-bg) !important;
  color: var(--cta-primary-text) !important;
}

.glee-cta--brand-outline:hover,
.glee-cta--brand-outline:focus-visible {
  border-color: var(--cta-brand-outline-border) !important;
  background: var(--cta-brand-outline-bg) !important;
  color: var(--cta-brand-outline-text) !important;
}

.glee-cta--neutral-outline:hover,
.glee-cta--neutral-outline:focus-visible {
  border-color: var(--cta-neutral-outline-border) !important;
  background: var(--cta-neutral-outline-bg) !important;
  color: var(--cta-neutral-outline-text) !important;
}

.glee-cta--danger:hover,
.glee-cta--danger:focus-visible {
  border-color: var(--cta-danger-outline-border) !important;
  background: var(--cta-danger-outline-bg) !important;
  color: var(--cta-danger-outline-text) !important;
}

.post-follow-btn[aria-disabled="true"] {
  pointer-events: none;
}

/* Creator Campaign is desktop-only; reuse shared identity and Progress visuals. */
.campaign-creator-status { display: none; }
@media (min-width: 901px) {
  .campaign-creator-status:not([hidden]) { display: block; margin-top: 39px; }
  .campaign-creator-card {
    width: 100%; min-height: 171px; box-sizing: border-box; padding: 20px;
    background: var(--surface-card); border-radius: var(--app-tile-radius); border: 0; box-shadow: none;
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 20px;
    grid-template-rows: [identity] auto 20px [progress-label] auto 12px [progress-track] auto;
    align-items: center;
  }
  .campaign-creator-identity { grid-column: 1; grid-row: identity; display: flex; align-items: center; gap: 12px; min-width: 0; }
  .campaign-creator-card .hub-level-progress { display: contents; }
  .campaign-creator-card .hub-level-progress-row { grid-column: 1; grid-row: progress-label; min-width: 0; }
  body.app-event-details .campaign-creator-card .hub-progress-stats { grid-column: 2; grid-row: identity / progress-label; align-self: center; margin-top: 0; gap: 12px; }
  body.app-event-details .campaign-creator-card .hub-progress-stat-value { color: var(--text-100); }
  body.app-event-details .campaign-creator-card .hub-progress-stat-label,
  body.app-event-details .campaign-creator-card .hub-level-progress-row { color: var(--text-70); }
  body.app-event-details .campaign-creator-card .hub-level-track { grid-column: 1; grid-row: progress-track; align-self: center; margin-top: 0; background: var(--surface-secondary) !important; }
  body.app-hub .hub-level-track,
  body.app-event-details .campaign-creator-card .hub-level-track { height: 11px; }
  .campaign-creator-actions { grid-column: 2; grid-row: progress-track; align-self: center; display: flex; flex-wrap: wrap; justify-content: center; gap: 20px; }
  body.app-event-details .campaign-creator-card .hub-view-rankings {
    margin: 0; color: var(--text-100); background: transparent; border: 0;
  }
}

/* Campaigns Stage 2: existing Events and Culture Market components. */

body.app-event-details .campaign-market-state-action {
  appearance: none;
  margin: 0;
  border: 0;
  padding: 0;
  background: transparent;
  box-shadow: none;
  color: var(--text-70);
  cursor: pointer;
}

body.app-event-details :is(
  .campaign-market-state-action,
  .campaign-market-wallet-label,
  .campaign-market-wallet-value
) {
  font-family: var(--glee-font);
  font-size: var(--glee-small-fs);
  line-height: var(--glee-small-lh);
  font-weight: var(--glee-small-fw);
  letter-spacing: var(--glee-small-ls);
}

body.app-event-details .campaign-market-wallet {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  color: var(--text-70);
  text-align: center;
}

body.app-event-details .campaign-market-wallet-value {
  width: 130px;
  height: 44px;
  padding: 0;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 12px;
  background: var(--surface-secondary);
  box-shadow: none;
  color: var(--text-70);
  white-space: nowrap;
}

.creator-market-status-pill::before {
  background: var(--market-status-dot, var(--app-content-tag-dot-bg)) !important;
}

.creator-market-card--wl_claimed .creator-market-status-pill,
.creator-market-card--claimed .creator-market-status-pill { --market-status-dot: #39E75F; }
.creator-market-card--eligible_for_wl .creator-market-status-pill,
.creator-market-card--ready_to_mint .creator-market-status-pill { --market-status-dot: #FF237A; }
.creator-market-card--active .creator-market-status-pill,
.creator-market-card--joined .creator-market-status-pill { --market-status-dot: #38AFFF; }
.creator-market-card--locked .creator-market-status-pill { --market-status-dot: #B8C0D9; }
.creator-market-card--upcoming .creator-market-status-pill,
.creator-market-card--closed .creator-market-status-pill,
.creator-market-card--in_progress .creator-market-status-pill { --market-status-dot: #1E56FA; }

@media (min-width: 901px) {
  /* Canonical desktop Culture Market component. */
  body.app-profile .creator-markets-grid {
    display: flex;
    flex-direction: column;
    gap: 14px;
    width: 100%;
    max-width: 100%;
  }

  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-card {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    height: 155px;
    min-height: 155px;
    box-sizing: border-box;
    display: grid;
    grid-template-columns: minmax(230px, 33.7%) minmax(0, 1fr);
    overflow: hidden;
    padding: 0;
    border-radius: var(--app-tile-radius);
    background-color: var(--surface-card);
    box-shadow: none;
    color: var(--text-100);
  }

  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-hero {
    position: relative;
    width: 100%;
    height: 100%;
    min-width: 0;
    overflow: hidden;
    background: #EAF0FF;
  }

  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-hero-img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
  }

  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-body {
    min-width: 0;
    height: 100%;
    box-sizing: border-box;
    padding: 16px 16px 14px 22px;
    display: grid;
    grid-template-rows: auto auto 1fr;
    row-gap: 4px;
  }

  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-topline {
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 12px;
  }

  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-country-line {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
  }

  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-inline-flag {
    width: 22px;
    height: 15px;
    flex: 0 0 22px;
    object-fit: contain;
  }

  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-country {
    min-width: 0;
    font-size: 14px;
    line-height: 20px;
    font-weight: var(--fw-regular);
    letter-spacing: var(--ls-medium);
    color: var(--text-100);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-visa {
    min-width: 0;
    margin: 0;
    font-size: 15px;
    line-height: 22px;
    font-weight: var(--fw-medium);
    letter-spacing: var(--ls-medium);
    color: var(--text-100);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-bottom {
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(118px, 150px) minmax(118px, 1fr) var(--btn-blue-min);
    grid-template-rows: auto auto auto;
    align-items: end;
    align-content: end;
    column-gap: 16px;
  }

  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-bottom > :is(.creator-market-progress-block, .creator-market-session-block) {
    min-width: 0;
    display: contents;
  }

  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-meta-label {
    margin: 0;
    font-size: 14px;
    line-height: 20px;
    font-weight: var(--fw-regular);
    letter-spacing: var(--ls-medium);
    color: var(--text-70);
  }

  :is(body.app-profile, body.app-hub, body.app-event-details) :is(.creator-market-progress-value, .creator-market-session) {
    margin: 0;
    font-size: 15px;
    line-height: 22px;
    font-weight: var(--fw-medium);
    letter-spacing: var(--ls-medium);
    color: var(--text-100);
  }

  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-session.is-live {
    color: var(--brand);
  }

  :is(body.app-profile, body.app-event-details) .creator-market-session {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
  }

  body.app-hub .creator-market-session {
    white-space: nowrap;
  }

  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-progress-track {
    width: 100%;
    max-width: 140px;
    height: 6px;
    margin-top: 8px;
    overflow: hidden;
    border-radius: 999px;
    background: var(--surface-secondary);
  }

  body.app-hub .creator-market-progress-track {
    max-width: none;
    margin-top: 4px;
  }

  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-progress-fill {
    height: 100%;
    border-radius: inherit;
    background: var(--brand);
  }

  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-bottom .creator-market-meta-label {
    grid-row: 1;
    align-self: baseline;
  }

  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-bottom :is(.creator-market-progress-value, .creator-market-session) {
    grid-row: 2;
    align-self: baseline;
  }

  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-bottom .creator-market-progress-block > * { grid-column: 1; }
  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-bottom .creator-market-session-block > * { grid-column: 2; }
  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-bottom .creator-market-progress-track { grid-row: 3; }

  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-btn {
    width: var(--btn-blue-w);
    min-width: var(--btn-blue-min);
    max-width: var(--btn-blue-w);
    height: var(--btn-blue-h);
    min-height: var(--btn-blue-h);
    box-sizing: border-box;
    margin: 0;
    padding: var(--btn-blue-pad);
    border-radius: var(--btn-blue-radius);
    font-family: var(--font-main);
    font-size: var(--btn-blue-font);
    line-height: var(--btn-blue-lh);
    font-weight: var(--btn-blue-weight);
    letter-spacing: var(--btn-blue-ls);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    white-space: nowrap;
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 0 0 var(--btn-blue-w);
  }

  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-btn--filled {
    border-color: var(--cta-primary-border) !important;
    background: var(--cta-primary-bg) !important;
    color: var(--cta-primary-text) !important;
  }

  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-btn--outline-blue {
    border-color: var(--cta-brand-outline-border) !important;
    background: var(--cta-brand-outline-bg) !important;
    color: var(--cta-brand-outline-text) !important;
  }

  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-btn--outline-muted {
    border-color: var(--cta-neutral-outline-border) !important;
    background: var(--cta-neutral-outline-bg) !important;
    color: var(--cta-neutral-outline-text) !important;
  }

  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-bottom > .creator-market-btn {
    grid-column: 3;
    grid-row: 1 / 4;
    align-self: end;
    justify-self: end;
  }

  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-status-pill {
    position: absolute;
    top: 16px;
    left: 16px;
    right: auto;
    z-index: 2;
    width: fit-content;
    height: var(--app-content-tag-h);
    min-height: var(--app-content-tag-h);
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--app-content-tag-gap);
    padding: 0 var(--app-content-tag-pad-x);
    border: var(--glass-content-border);
    border-radius: var(--glass-content-radius);
    background: var(--glass-content-bg);
    -webkit-backdrop-filter: var(--glass-content-filter);
    backdrop-filter: var(--glass-content-filter);
    box-shadow: var(--glass-content-shadow);
    color: var(--app-content-tag-color);
    font-size: var(--app-content-tag-fs);
    line-height: var(--app-content-tag-lh);
    font-weight: var(--app-content-tag-fw);
    letter-spacing: var(--app-content-tag-ls);
    white-space: nowrap;
  }

  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-status-pill::before {
    content: "";
    width: var(--app-content-tag-dot);
    height: var(--app-content-tag-dot);
    flex: 0 0 var(--app-content-tag-dot);
    border-radius: 999px;
  }

  :is(body.app-profile, body.app-hub, body.app-event-details) .creator-market-status-pill[hidden] {
    display: none !important;
  }

  body.app-profile .creator-how-it-works-line {
    margin: 20px auto 0;
  }

  body.app-event-details .creator-market-body {
    position: relative;
  }

  body.app-event-details .creator-market-bottom > .campaign-market-state-slot {
    position: absolute;
    top: 0;
    right: 16px;
    bottom: 0;
    width: var(--btn-blue-w);
    height: max-content;
    margin-block: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
  }

  .app-events .campaign-card .event-title {
    font-size: var(--glee-title-m-fs) !important;
    line-height: var(--glee-title-m-lh) !important;
    font-weight: var(--glee-title-m-fw) !important;
    letter-spacing: var(--glee-title-m-ls) !important;
  }

  .app-events .campaign-card .event-desc {
    font-size: var(--glee-body-fs);
    line-height: var(--glee-body-lh);
    font-weight: var(--glee-body-medium-fw);
    letter-spacing: var(--glee-body-ls);
    color: var(--text-70);
  }

  .app-events .campaign-card .event-meta {
    font-size: var(--glee-small-fs);
    line-height: var(--glee-small-lh);
    font-weight: var(--glee-small-fw);
    letter-spacing: var(--glee-small-ls);
    color: var(--text-70);
  }

  .campaign-card-calendar,
  .campaign-calendar-icon {
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
    display: block;
    background: currentColor;
    -webkit-mask: url("../assets/icons/event.svg") center / contain no-repeat;
    mask: url("../assets/icons/event.svg") center / contain no-repeat;
  }

  .app-event-details .event-title-row {
    margin-top: 0;
  }

  .app-event-details .campaign-host-row {
    justify-content: space-between;
    gap: 24px;
  }

  .campaign-host {
    padding: 0;
    border: 0;
    background: transparent;
    display: flex;
    align-items: center;
    gap: 12px;
    color: inherit;
    cursor: pointer;
    text-align: left;
  }

  .campaign-host-avatar {
    width: 40px;
    height: 40px;
    flex: none;
    border-radius: 50%;
    object-fit: cover;
  }

  .campaign-host-copy {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 4px;
  }

  .campaign-host-label,
  .campaign-timing {
    font-size: var(--glee-small-fs);
    line-height: var(--glee-small-lh);
    font-weight: var(--glee-small-fw);
    letter-spacing: var(--glee-small-ls);
    color: var(--text-70);
  }

  .campaign-host-identity,
  .campaign-user .featured-creator-name-row {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    margin-top: 0;
  }

  /* Details also carries app-home: reset its important Featured Creator margin. */
  .app-event-details :is(.campaign-host, .campaign-user) :is(.featured-creator-name-row, .featured-creator-name, .featured-creator-verified),
  .app-event-details .campaign-host-copy,
  .app-event-details .campaign-host-label,
  .app-event-details [data-campaign-host-badge] {
    margin-block: 0 !important;
    padding-block: 0;
  }

  .app-event-details [data-campaign-host-badge] {
    display: inline-flex;
    align-items: center;
  }

  .campaign-host-identity .featured-creator-name,
  .campaign-user .featured-creator-name {
    font-size: var(--glee-body-fs);
    line-height: var(--glee-body-lh);
    font-weight: var(--glee-body-medium-fw);
    letter-spacing: var(--glee-body-ls);
    color: var(--text-100);
  }

  .campaign-host-identity .featured-creator-verified,
  .campaign-user .featured-creator-verified {
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
    display: block;
  }

  .campaign-timing { margin-left: auto; }

  .app-event-details .event-about-text {
    white-space: pre-line;
    font-size: 15px;
    line-height: 22px;
    font-weight: var(--fw-medium);
    color: var(--text-100);
  }

  .campaign-how-it-works,
  .campaign-whitelist-status {
    margin-top: 39px;
  }

  .app-event-details .event-about > .glee-section-title {
    margin-bottom: 18px;
  }

  .campaign-section-subtitle {
    margin: 6px 0 18px;
    font-size: var(--hub-section-subtitle-fs);
    line-height: var(--hub-section-subtitle-lh);
    font-weight: var(--hub-section-subtitle-fw);
    letter-spacing: var(--hub-section-subtitle-ls);
    color: var(--text-70);
  }

  .campaign-steps { display: grid; gap: 20px; }
  .campaign-step { display: flex; align-items: flex-start; gap: 16px; }
  .campaign-step-pill {
    width: 55px;
    height: 37px;
    flex: 0 0 55px;
    border-radius: 999px;
    background: var(--brand);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: var(--glee-body-fs);
    line-height: var(--glee-body-lh);
    font-weight: var(--glee-body-medium-fw);
    letter-spacing: var(--glee-body-ls);
  }
  .campaign-step-copy { min-width: 0; display: grid; grid-template-rows: var(--btn-blue-h) auto; row-gap: 3px; }
  .campaign-step-title { align-self: center; font-size: 17px; line-height: 22px; font-weight: var(--fw-medium); letter-spacing: var(--glee-body-ls); color: var(--text-100); }
  .campaign-step-description { font-size: var(--glee-body-fs); line-height: var(--glee-body-lh); font-weight: var(--glee-body-medium-fw); letter-spacing: var(--glee-body-ls); color: var(--text-70); }

  .campaign-user { display: flex; align-items: center; gap: 12px; margin: 0 0 22px; }
  .campaign-user-avatar { width: 50px; height: 50px; flex: none; border-radius: 50%; object-fit: cover; }
  .campaign-market-list { display: grid; gap: 18px; }
}

@media (min-width: 901px) and (max-width: 1320px) {
  /* Preserve the current Creator ID corridor fit within the canonical component. */
  body.app-profile .creator-market-bottom {
    grid-template-columns: minmax(108px, 0.85fr) minmax(96px, 0.75fr) var(--btn-blue-w);
    column-gap: 18px;
  }

  body.app-profile .creator-market-progress-track {
    max-width: 128px;
  }

  body.app-profile .creator-market-session-block {
    min-width: 96px;
  }

  body.app-profile .creator-market-session,
  body.app-profile .creator-market-meta-label {
    white-space: normal;
  }

  body.app-profile .creator-market-session {
    overflow: visible;
    text-overflow: clip;
    overflow-wrap: normal;
  }
}
