{"id":5963,"date":"2026-06-06T00:00:17","date_gmt":"2026-06-06T00:00:17","guid":{"rendered":"https:\/\/viewari.com\/?page_id=5963"},"modified":"2026-06-14T05:52:33","modified_gmt":"2026-06-14T05:52:33","slug":"web","status":"publish","type":"page","link":"https:\/\/viewari.com\/reddit\/web\/","title":{"rendered":"Reddit Web Viewer &#8211; Browse Subreddits Without The Official App"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"5963\" class=\"elementor elementor-5963\">\n\t\t\t\t<div class=\"elementor-element elementor-element-704c88be e-con-full e-flex e-con e-parent\" data-id=\"704c88be\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-52992532 elementor-widget elementor-widget-shortcode\" data-id=\"52992532\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><style>\n.nsrwv {width: 100vw;\n  max-width: none;\n  margin-left: calc(50% - 50vw);\n  margin-right: calc(50% - 50vw);\n  margin-top: -8px;\n--ink: #eefcff; --muted: #92c4ce; --dim: #5e8a96;\n  --panel: rgba(8, 24, 30, 0.93); --soft: rgba(255, 255, 255, 0.05);\n  --line: rgba(34, 211, 238, 0.32); --accent: #22d3ee; --accent-soft: rgba(34, 211, 238, 0.16);\n  --cool: #67e8f9; --cool-deep: #0891b2; --danger: #ff6b7a; --ok: #3dd68c;\n  --radius: 18px; --shadow: 0 18px 42px rgba(2, 12, 16, 0.45);\n  --font: \"Outfit\", \"Segoe UI\", sans-serif; --gap: 14px;\n  box-sizing: border-box !important; font-family: var(--font); color: var(--ink); line-height: 1.5;\n  display: block; min-width: 0 !important;\n  background:\n    radial-gradient(ellipse 70% 48% at 88% 0%, rgba(34, 211, 238, 0.26), transparent 58%),\n    radial-gradient(ellipse 50% 40% at 8% 10%, rgba(8, 145, 178, 0.18), transparent 52%),\n    linear-gradient(158deg, #061418 0%, #0c242c 48%, #123038 100%);\n  position: relative; isolation: isolate; overflow-x: hidden !important; overflow-wrap: anywhere;\n}\n.nsrwv *, .nsrwv *::before, .nsrwv *::after { box-sizing: border-box; }\n.nsrwv h3 { color: var(--ink) !important; }\n.nsrwv h2 { color: var(--ink) !important; }\n.nsrwv :where(h1,h2,h3,p,ul,ol,li,label,span) { margin: 0; padding: 0; border: 0; font-weight: inherit; max-width: 100%; overflow-wrap: anywhere; }\n.nsrwv :where(ul,ol) { list-style: none; }\n.nsrwv img { max-width: 100%; height: auto; display: block; border: 0; }\n.nsrwv a { color: var(--cool); text-decoration: none; }\n.nsrwv a:hover { text-decoration: underline; }\n.nsrwv-shell {width:100%;max-width:min(1200px,100%);margin-left: auto; margin-right: auto;padding: 65px clamp(8px, 2vw, 16px);min-width:0; display: flex; flex-direction: column; gap: var(--gap); container-type: inline-size; container-name: nsrwv; }\n.nsrwv-hero {\n  background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius);\n  box-shadow: var(--shadow); padding: clamp(18px, 3.5vw, 28px) clamp(14px, 3vw, 22px);\n  text-align: center; backdrop-filter: blur(14px); animation: nsrwv-rise .45s ease both;\n}\n.nsrwv-brand {\n  width: 52px; height: 52px; margin: 0 auto 12px; border-radius: 16px; display: inline-flex;\n  align-items: center; justify-content: center; color: #042024; font-size: 1.35rem;\n  background: linear-gradient(145deg, #67e8f9, #22d3ee);\n  box-shadow: 0 10px 24px rgba(34, 211, 238, .35);\n}\n.nsrwv .nsrwv-hero__title {color:var(--ink)!important; font-size: clamp(1.35rem, 5vw, 2rem); font-weight: 800; letter-spacing: -.035em; margin-bottom: 8px; }\n.nsrwv-hero__mark { color: var(--accent); background-image: linear-gradient(90deg, var(--accent), #67e8f9); background-position: 0 100%; background-repeat: no-repeat; background-size: 100% 3px; padding-bottom: 2px; }\n.nsrwv .nsrwv-hero__lead { max-width: 36rem; margin: 0 auto 20px; color: var(--muted); font-size: clamp(.9rem, 2.4vw, 1rem); }\n.nsrwv-tool { display: flex; flex-direction: column; gap: 12px; text-align: left; background: var(--soft); border: 1px solid rgba(255,255,255,.08); border-radius: 14px; padding: clamp(12px, 2.4vw, 16px); }\n.nsrwv .nsrwv-tool__label { font-size: .86rem; font-weight: 600; color: var(--muted); }\n.nsrwv-field { position: relative; display: flex; align-items: center; }\n.nsrwv .nsrwv-field__input {\n  width: 100%; height: 52px; padding: 0 52px 0 16px !important; border-radius: 12px;\n  border: 1px solid rgba(255,255,255,.12) !important; background: rgba(4, 12, 16, .55) !important;\n  color: var(--ink) !important; font: 500 16px var(--font); outline: none;\n}\n.nsrwv .nsrwv-field__input:focus { border-color: rgba(34,211,238,.55) !important; box-shadow: 0 0 0 3px var(--accent-soft); }\n.nsrwv .nsrwv-field__input::placeholder { color: var(--dim); }\n.nsrwv .nsrwv-field__paste {\n  position: absolute; right: 6px; top: 50%; transform: translateY(-50%); width: 40px; height: 40px;\n  border: 0 !important; border-radius: 10px; background: transparent !important; color: var(--muted) !important; cursor: pointer;\n}\n.nsrwv .nsrwv-field__paste:hover { color: var(--accent) !important; background: var(--accent-soft) !important; }\n.nsrwv .nsrwv-btn {\n  display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; height: 50px;\n  border: 0 !important; border-radius: 12px; font: 700 .98rem var(--font); cursor: pointer;\n  transition: transform .2s, box-shadow .2s, opacity .2s; text-decoration: none; appearance: none;\n}\n.nsrwv .nsrwv-btn--primary { background: linear-gradient(135deg, #22d3ee, #0891b2) !important; color: #042024 !important; box-shadow: 0 10px 22px rgba(34,211,238,.32); }\n.nsrwv .nsrwv-btn--primary:hover { transform: translateY(-1px); }\n.nsrwv .nsrwv-btn:disabled { opacity: .55; cursor: wait; transform: none !important; }\n.nsrwv .nsrwv-btn--ghost { background: rgba(255,255,255,.06) !important; color: var(--ink) !important; border: 1px solid rgba(255,255,255,.12) !important; }\n.nsrwv .nsrwv-btn--sm { height: 38px; font-size: .82rem !important; width: auto; padding: 0 12px !important; flex: 1 1 auto; }\n.nsrwv-alert { display: none; gap: 8px; align-items: flex-start; padding: 10px 12px; border-radius: 10px; font-size: .88rem; font-weight: 500; }\n.nsrwv-alert.is-visible { display: flex; }\n.nsrwv-alert--error { background: rgba(255,107,122,.12); border: 1px solid rgba(255,107,122,.35); color: #ffb4bc; }\n.nsrwv-alert--ok { background: rgba(61,214,140,.12); border: 1px solid rgba(61,214,140,.35); color: #9aecc0; }\n.nsrwv-hint { font-size: .8rem; color: var(--dim); text-align: center; }\n.nsrwv-skeleton { display: none; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 14px; box-shadow: var(--shadow); }\n.nsrwv-skeleton.is-active { display: block; animation: nsrwv-rise .35s ease both; }\n.nsrwv-sk { background: linear-gradient(90deg, rgba(255,255,255,.06), rgba(34,211,238,.16), rgba(255,255,255,.06)); background-size: 200% 100%; animation: nsrwv-shimmer 1.2s ease infinite; border-radius: 10px; }\n.nsrwv-skeleton__block { height: 90px; margin-bottom: 12px; }\n.nsrwv-skeleton__line { height: 14px; margin-bottom: 10px; }\n.nsrwv-skeleton__line--lg { width: 60%; } .nsrwv-skeleton__line--md { width: 40%; }\n.nsrwv-result { display: none; animation: nsrwv-rise .45s ease both; }\n.nsrwv-result.is-visible { display: block; }\n.nsrwv-panel { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: clamp(14px, 3vw, 20px); }\n.nsrwv .nsrwv-profile__name {color:var(--ink)!important; font-size: clamp(1.15rem, 3.2vw, 1.45rem); font-weight: 800; letter-spacing: -.02em; }\n.nsrwv-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 16px; }\n.nsrwv-chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 999px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); color: var(--muted); font-size: .78rem; font-weight: 600; }\n.nsrwv-chip i { color: var(--accent); }\n.nsrwv-chip--accent { background: var(--accent-soft); border-color: rgba(34,211,238,.4); color: #b8f4fb; }\n.nsrwv-feed { display: flex; flex-direction: column; gap: 10px; }\n.nsrwv-card { display: grid; grid-template-columns: 96px 1fr; gap: 12px; padding: 12px; border-radius: 14px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); min-width: 0; }\n.nsrwv-card:hover { border-color: rgba(34,211,238,.4); }\n.nsrwv-card.has-no-thumb { grid-template-columns: 1fr; }\n.nsrwv-thumb { width: 96px; height: 96px; object-fit: cover; border-radius: 10px; background: #041014; }\n.nsrwv-card__body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }\n.nsrwv .nsrwv-card__domain { font-size: .72rem; font-weight: 700; color: var(--accent); text-transform: uppercase; letter-spacing: .04em; }\n.nsrwv .nsrwv-card__title {color: var(--ink) !important; font-size: .98rem; font-weight: 700; line-height: 1.35; }\n.nsrwv-card__text { color: var(--muted); font-size: .84rem; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }\n.nsrwv-card__meta { display: flex; flex-wrap: wrap; gap: 8px; font-size: .75rem; color: var(--dim); font-weight: 600; }\n.nsrwv-card__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; }\n.nsrwv-empty { display: none; text-align: center; padding: 32px 14px; color: var(--muted); }\n.nsrwv-empty.is-visible { display: block; }\n.nsrwv-empty i { display: block; font-size: 2rem; margin-bottom: 10px; opacity: .45; color: var(--accent); }\n@keyframes nsrwv-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }\n@keyframes nsrwv-shimmer { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } }\n@container nsrwv (max-width: 520px) {\n  .nsrwv-card, .nsrwv-card.has-no-thumb { grid-template-columns: 1fr; }\n  .nsrwv-thumb { width: 100%; height: 160px; }\n}\n\n\/* --- Codex CSS updates --- *\/\n.nsrwv {\n  width: 100vw;\n  max-width: none;\n  margin-left: calc(50% - 50vw);\n  margin-right: calc(50% - 50vw);\n  margin-top: -8px;\n  --ink: #f4fbff;\n  --muted: #a8c3cf;\n  --dim: #7594a0;\n  --panel: rgba(9, 20, 33, 0.82);\n  --soft: rgba(255, 255, 255, 0.06);\n  --line: rgba(126, 211, 255, 0.18);\n  --accent: #58d6ff;\n  --accent-soft: rgba(88, 214, 255, 0.16);\n  --cool: #88e7ff;\n  --cool-deep: #0f8eb9;\n  --danger: #ff7188;\n  --ok: #41d894;\n  --radius: 22px;\n  --shadow: 0 24px 60px rgba(2, 10, 22, 0.34);\n  --font: \"Outfit\", \"Segoe UI\", sans-serif;\n  --gap: 18px;\n  box-sizing: border-box !important;\n  font-family: var(--font);\n  color: var(--ink);\n  line-height: 1.55;\n  display: block;\n  min-width: 0 !important;\n  background:\n    radial-gradient(circle at 12% 12%, rgba(88, 214, 255, 0.18), transparent 32%),\n    radial-gradient(circle at 88% 0%, rgba(80, 149, 255, 0.22), transparent 36%),\n    radial-gradient(circle at 50% 100%, rgba(28, 110, 148, 0.18), transparent 42%),\n    linear-gradient(145deg, #06111c 0%, #0b1726 38%, #102435 68%, #122b3a 100%);\n  position: relative;\n  isolation: isolate;\n  overflow-x: hidden !important;\n  overflow-wrap: anywhere;\n}\n\n.nsrwv *,\n.nsrwv *::before,\n.nsrwv *::after {\n  box-sizing: border-box;\n}\n\n.nsrwv h3 {\n  color: var(--ink) !important;\n}\n\n.nsrwv h2 {\n  color: var(--ink) !important;\n}\n\n.nsrwv :where(h1, h2, h3, p, ul, ol, li, label, span) {\n  margin: 0;\n  padding: 0;\n  border: 0;\n  font-weight: inherit;\n  max-width: 100%;\n  overflow-wrap: anywhere;\n}\n\n.nsrwv :where(ul, ol) {\n  list-style: none;\n}\n\n.nsrwv img {\n  max-width: 100%;\n  height: auto;\n  display: block;\n  border: 0;\n}\n\n.nsrwv a {\n  color: var(--cool);\n  text-decoration: none;\n  transition: color 0.22s ease, opacity 0.22s ease;\n}\n\n.nsrwv a:hover {\n  color: #d5f7ff;\n  text-decoration: underline;\n}\n\n.nsrwv-shell {\n  width: 100%;\n  max-width: min(1200px, 100%);\n  margin-left: auto;\n  margin-right: auto;\n  padding: clamp(36px, 6vw, 68px) clamp(14px, 2.5vw, 22px);\n  min-width: 0;\n  display: flex;\n  flex-direction: column;\n  gap: var(--gap);\n  container-type: inline-size;\n  container-name: nsrwv;\n  position: relative;\n  z-index: 1;\n}\n\n.nsrwv-hero {\n  background:\n    linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03)),\n    var(--panel);\n  border: 1px solid rgba(160, 225, 255, 0.18);\n  border-radius: var(--radius);\n  box-shadow: var(--shadow);\n  padding: clamp(22px, 4vw, 34px) clamp(16px, 3vw, 28px);\n  text-align: center;\n  backdrop-filter: blur(18px);\n  -webkit-backdrop-filter: blur(18px);\n  animation: nsrwv-rise 0.45s ease both;\n  position: relative;\n  overflow: hidden;\n}\n\n.nsrwv-hero::before {\n  content: \"\";\n  position: absolute;\n  inset: 0;\n  background:\n    linear-gradient(120deg, rgba(88, 214, 255, 0.08), transparent 36%, transparent 62%, rgba(255, 255, 255, 0.05));\n  pointer-events: none;\n}\n\n.nsrwv-brand {\n  width: 58px;\n  height: 58px;\n  margin: 0 auto 14px;\n  border-radius: 18px;\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  color: #042024;\n  font-size: 1.4rem;\n  background: linear-gradient(145deg, #bdf4ff 0%, #58d6ff 45%, #1ca7d5 100%);\n  box-shadow:\n    0 14px 30px rgba(88, 214, 255, 0.32),\n    inset 0 1px 0 rgba(255, 255, 255, 0.48);\n  position: relative;\n  z-index: 1;\n}\n\n.nsrwv .nsrwv-hero__title {\n  color: var(--ink) !important;\n  font-size: clamp(1.45rem, 5vw, 2.25rem);\n  font-weight: 800;\n  letter-spacing: -0.04em;\n  margin-bottom: 10px;\n  text-wrap: balance;\n}\n\n.nsrwv-hero__mark {\n  color: #e3faff;\n  background-image: linear-gradient(90deg, var(--accent), #9fe9ff);\n  background-position: 0 100%;\n  background-repeat: no-repeat;\n  background-size: 100% 4px;\n  padding-bottom: 3px;\n}\n\n.nsrwv .nsrwv-hero__lead {\n  max-width: 42rem;\n  margin: 0 auto 22px;\n  color: var(--muted);\n  font-size: clamp(0.95rem, 2.4vw, 1.04rem);\n}\n\n.nsrwv-tool {\n  display: flex;\n  flex-direction: column;\n  gap: 14px;\n  text-align: left;\n  background: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.03));\n  border: 1px solid rgba(255, 255, 255, 0.08);\n  border-radius: 18px;\n  padding: clamp(14px, 2.4vw, 18px);\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);\n}\n\n.nsrwv .nsrwv-tool__label {\n  font-size: 0.88rem;\n  font-weight: 700;\n  color: #c8e5ee;\n  letter-spacing: 0.01em;\n}\n\n.nsrwv-field {\n  position: relative;\n  display: flex;\n  align-items: center;\n}\n\n.nsrwv .nsrwv-field__input {\n  width: 100%;\n  height: 56px;\n  padding: 0 56px 0 18px !important;\n  border-radius: 14px;\n  border: 1px solid rgba(170, 225, 255, 0.14) !important;\n  background:\n    linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.03)),\n    rgba(4, 12, 16, 0.58) !important;\n  color: var(--ink) !important;\n  font: 500 16px var(--font);\n  outline: none;\n  box-shadow:\n    inset 0 1px 0 rgba(255, 255, 255, 0.04),\n    0 10px 22px rgba(0, 0, 0, 0.12);\n  transition: border-color 0.22s ease, box-shadow 0.22s ease, background 0.22s ease, transform 0.22s ease;\n}\n\n.nsrwv .nsrwv-field__input:hover {\n  border-color: rgba(170, 225, 255, 0.24) !important;\n  background:\n    linear-gradient(180deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.04)),\n    rgba(4, 12, 16, 0.62) !important;\n}\n\n.nsrwv .nsrwv-field__input:focus {\n  border-color: rgba(88, 214, 255, 0.62) !important;\n  box-shadow:\n    0 0 0 4px rgba(88, 214, 255, 0.14),\n    0 16px 30px rgba(9, 86, 112, 0.22),\n    inset 0 1px 0 rgba(255, 255, 255, 0.05);\n}\n\n.nsrwv .nsrwv-field__input::placeholder {\n  color: var(--dim);\n}\n\n.nsrwv .nsrwv-field__paste {\n  position: absolute;\n  right: 8px;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 42px;\n  height: 42px;\n  border: 0 !important;\n  border-radius: 12px;\n  background: rgba(255, 255, 255, 0.03) !important;\n  color: var(--muted) !important;\n  cursor: pointer;\n  transition: background 0.22s ease, color 0.22s ease, transform 0.22s ease, box-shadow 0.22s ease;\n}\n\n.nsrwv .nsrwv-field__paste:hover {\n  color: #effcff !important;\n  background: linear-gradient(135deg, rgba(88, 214, 255, 0.2), rgba(88, 214, 255, 0.1)) !important;\n  box-shadow: 0 10px 18px rgba(88, 214, 255, 0.14);\n}\n\n.nsrwv .nsrwv-field__paste:active {\n  transform: translateY(-50%) scale(0.97);\n}\n\n.nsrwv .nsrwv-btn {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: 8px;\n  width: 100%;\n  min-height: 50px;\n  padding: 0 18px;\n  border: 0 !important;\n  border-radius: 14px;\n  font: 700 0.98rem var(--font);\n  cursor: pointer;\n  transition: transform 0.2s ease, box-shadow 0.22s ease, opacity 0.22s ease, filter 0.22s ease, background 0.22s ease;\n  text-decoration: none;\n  appearance: none;\n  position: relative;\n  overflow: hidden;\n}\n\n.nsrwv .nsrwv-btn::before {\n  content: \"\";\n  position: absolute;\n  inset: 0;\n  background: linear-gradient(120deg, rgba(255, 255, 255, 0.22), transparent 26%, transparent 68%, rgba(255, 255, 255, 0.08));\n  opacity: 0.7;\n  pointer-events: none;\n}\n\n.nsrwv .nsrwv-btn:hover {\n  transform: translateY(-2px);\n}\n\n.nsrwv .nsrwv-btn:active {\n  transform: translateY(0);\n}\n\n.nsrwv .nsrwv-btn:focus-visible {\n  outline: none;\n  box-shadow: 0 0 0 4px rgba(88, 214, 255, 0.16);\n}\n\n.nsrwv .nsrwv-btn--primary {\n  background: linear-gradient(135deg, #a8f0ff 0%, #58d6ff 38%, #138ab3 100%) !important;\n  color: #062330 !important;\n  box-shadow:\n    0 16px 28px rgba(39, 175, 220, 0.28),\n    inset 0 1px 0 rgba(255, 255, 255, 0.38);\n}\n\n.nsrwv .nsrwv-btn--primary:hover {\n  box-shadow:\n    0 20px 34px rgba(39, 175, 220, 0.34),\n    inset 0 1px 0 rgba(255, 255, 255, 0.42);\n  filter: saturate(1.04);\n}\n\n.nsrwv .nsrwv-btn:disabled {\n  opacity: 0.55;\n  cursor: wait;\n  transform: none !important;\n  box-shadow: none !important;\n}\n\n.nsrwv .nsrwv-btn--ghost {\n  background: linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.04)) !important;\n  color: var(--ink) !important;\n  border: 1px solid rgba(255, 255, 255, 0.12) !important;\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);\n}\n\n.nsrwv .nsrwv-btn--ghost:hover {\n  border-color: rgba(88, 214, 255, 0.24) !important;\n  background: linear-gradient(180deg, rgba(88, 214, 255, 0.12), rgba(255, 255, 255, 0.06)) !important;\n}\n\n.nsrwv .nsrwv-btn--sm {\n  height: 40px;\n  min-height: 40px;\n  font-size: 0.83rem !important;\n  width: auto;\n  padding: 0 14px !important;\n  flex: 1 1 auto;\n  border-radius: 12px;\n}\n\n.nsrwv-alert {\n  display: none;\n  gap: 10px;\n  align-items: flex-start;\n  padding: 12px 14px;\n  border-radius: 14px;\n  font-size: 0.9rem;\n  font-weight: 600;\n  backdrop-filter: blur(10px);\n  -webkit-backdrop-filter: blur(10px);\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);\n}\n\n.nsrwv-alert.is-visible {\n  display: flex;\n}\n\n.nsrwv-alert--error {\n  background: linear-gradient(180deg, rgba(255, 113, 136, 0.14), rgba(255, 113, 136, 0.08));\n  border: 1px solid rgba(255, 113, 136, 0.32);\n  color: #ffc2cd;\n}\n\n.nsrwv-alert--ok {\n  background: linear-gradient(180deg, rgba(65, 216, 148, 0.14), rgba(65, 216, 148, 0.08));\n  border: 1px solid rgba(65, 216, 148, 0.3);\n  color: #aff0ce;\n}\n\n.nsrwv-hint {\n  font-size: 0.82rem;\n  color: var(--dim);\n  text-align: center;\n}\n\n.nsrwv-skeleton {\n  display: none;\n  background:\n    linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.03)),\n    var(--panel);\n  border: 1px solid var(--line);\n  border-radius: var(--radius);\n  padding: 16px;\n  box-shadow: var(--shadow);\n  overflow: hidden;\n}\n\n.nsrwv-skeleton.is-active {\n  display: block;\n  animation: nsrwv-rise 0.35s ease both;\n}\n\n.nsrwv-sk {\n  background: linear-gradient(90deg, rgba(255, 255, 255, 0.04), rgba(88, 214, 255, 0.2), rgba(255, 255, 255, 0.04));\n  background-size: 200% 100%;\n  animation: nsrwv-shimmer 1.2s ease infinite;\n  border-radius: 12px;\n}\n\n.nsrwv-skeleton__block {\n  height: 100px;\n  margin-bottom: 14px;\n}\n\n.nsrwv-skeleton__line {\n  height: 14px;\n  margin-bottom: 10px;\n}\n\n.nsrwv-skeleton__line--lg {\n  width: 60%;\n}\n\n.nsrwv-skeleton__line--md {\n  width: 40%;\n}\n\n.nsrwv-result {\n  display: none;\n  animation: nsrwv-rise 0.45s ease both;\n}\n\n.nsrwv-result.is-visible {\n  display: block;\n}\n\n.nsrwv-panel {\n  background:\n    linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.025)),\n    var(--panel);\n  border: 1px solid var(--line);\n  border-radius: var(--radius);\n  box-shadow: var(--shadow);\n  padding: clamp(16px, 3vw, 22px);\n  backdrop-filter: blur(16px);\n  -webkit-backdrop-filter: blur(16px);\n  position: relative;\n  overflow: hidden;\n}\n\n.nsrwv-panel::before {\n  content: \"\";\n  position: absolute;\n  inset: 0 0 auto 0;\n  height: 1px;\n  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.24), transparent);\n  pointer-events: none;\n}\n\n.nsrwv .nsrwv-profile__name {\n  color: var(--ink) !important;\n  font-size: clamp(1.15rem, 3.2vw, 1.55rem);\n  font-weight: 800;\n  letter-spacing: -0.03em;\n}\n\n.nsrwv-chips {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n  margin: 12px 0 18px;\n}\n\n.nsrwv-chip {\n  display: inline-flex;\n  align-items: center;\n  gap: 7px;\n  padding: 7px 12px;\n  border-radius: 999px;\n  background: rgba(255, 255, 255, 0.06);\n  border: 1px solid rgba(255, 255, 255, 0.1);\n  color: var(--muted);\n  font-size: 0.78rem;\n  font-weight: 700;\n  letter-spacing: 0.01em;\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);\n}\n\n.nsrwv-chip i {\n  color: var(--accent);\n}\n\n.nsrwv-chip--accent {\n  background: linear-gradient(135deg, rgba(88, 214, 255, 0.18), rgba(88, 214, 255, 0.08));\n  border-color: rgba(88, 214, 255, 0.32);\n  color: #d7f7ff;\n}\n\n.nsrwv-feed {\n  display: flex;\n  flex-direction: column;\n  gap: 12px;\n}\n\n.nsrwv-card {\n  display: grid;\n  grid-template-columns: 96px 1fr;\n  gap: 14px;\n  padding: 14px;\n  border-radius: 18px;\n  background:\n    linear-gradient(180deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.03));\n  border: 1px solid rgba(255, 255, 255, 0.08);\n  min-width: 0;\n  box-shadow:\n    0 14px 28px rgba(1, 10, 18, 0.14),\n    inset 0 1px 0 rgba(255, 255, 255, 0.04);\n  transition: transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;\n}\n\n.nsrwv-card:hover {\n  border-color: rgba(88, 214, 255, 0.36);\n  transform: translateY(-2px);\n  box-shadow:\n    0 18px 34px rgba(1, 10, 18, 0.2),\n    0 0 0 1px rgba(88, 214, 255, 0.08);\n}\n\n.nsrwv-card.has-no-thumb {\n  grid-template-columns: 1fr;\n}\n\n.nsrwv-thumb {\n  width: 96px;\n  height: 96px;\n  object-fit: cover;\n  border-radius: 14px;\n  background: #041014;\n  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.2);\n}\n\n.nsrwv-card__body {\n  display: flex;\n  flex-direction: column;\n  gap: 7px;\n  min-width: 0;\n}\n\n.nsrwv .nsrwv-card__domain {\n  font-size: 0.72rem;\n  font-weight: 800;\n  color: var(--accent);\n  text-transform: uppercase;\n  letter-spacing: 0.08em;\n}\n\n.nsrwv .nsrwv-card__title {\n  color: var(--ink) !important;\n  font-size: 1rem;\n  font-weight: 760;\n  line-height: 1.35;\n}\n\n.nsrwv-card__text {\n  color: var(--muted);\n  font-size: 0.86rem;\n  line-height: 1.6;\n  display: -webkit-box;\n  -webkit-line-clamp: 3;\n  -webkit-box-orient: vertical;\n  overflow: hidden;\n}\n\n.nsrwv-card__meta {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px 10px;\n  font-size: 0.76rem;\n  color: var(--dim);\n  font-weight: 700;\n}\n\n.nsrwv-card__actions {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n  margin-top: auto;\n  padding-top: 4px;\n}\n\n.nsrwv-empty {\n  display: none;\n  text-align: center;\n  padding: 36px 16px;\n  color: var(--muted);\n  background:\n    linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.02));\n  border: 1px dashed rgba(160, 225, 255, 0.16);\n  border-radius: 18px;\n}\n\n.nsrwv-empty.is-visible {\n  display: block;\n}\n\n.nsrwv-empty i {\n  display: block;\n  font-size: 2.1rem;\n  margin-bottom: 12px;\n  opacity: 0.75;\n  color: var(--accent);\n}\n\n.nsrwv .fa-clipboard,\n.nsrwv .fa-globe,\n.nsrwv .fa-magnifying-glass,\n.nsrwv .fa-regular,\n.nsrwv .fa-solid {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  line-height: 1;\n  vertical-align: middle;\n}\n\n@keyframes nsrwv-rise {\n  from {\n    opacity: 0;\n    transform: translateY(14px);\n  }\n  to {\n    opacity: 1;\n    transform: none;\n  }\n}\n\n@keyframes nsrwv-shimmer {\n  0% {\n    background-position: 100% 0;\n  }\n  100% {\n    background-position: -100% 0;\n  }\n}\n\n@container nsrwv (max-width: 760px) {\n  .nsrwv-shell {\n    padding-left: 12px;\n    padding-right: 12px;\n  }\n\n  .nsrwv-tool {\n    padding: 14px;\n  }\n\n  .nsrwv-card,\n  .nsrwv-card.has-no-thumb {\n    grid-template-columns: 84px 1fr;\n  }\n\n  .nsrwv-thumb {\n    width: 84px;\n    height: 84px;\n  }\n\n  .nsrwv-card__actions .nsrwv-btn--sm {\n    flex: 1 1 calc(50% - 4px);\n  }\n}\n\n@container nsrwv (max-width: 520px) {\n  .nsrwv-hero {\n    padding: 20px 14px;\n  }\n\n  .nsrwv-brand {\n    width: 52px;\n    height: 52px;\n    border-radius: 16px;\n    margin-bottom: 12px;\n  }\n\n  .nsrwv-tool {\n    gap: 12px;\n    border-radius: 16px;\n  }\n\n  .nsrwv .nsrwv-field__input {\n    height: 54px;\n    padding-left: 16px !important;\n    padding-right: 54px !important;\n    font-size: 15px;\n  }\n\n  .nsrwv .nsrwv-btn,\n  .nsrwv .nsrwv-btn--sm {\n    width: 100%;\n  }\n\n  .nsrwv-card,\n  .nsrwv-card.has-no-thumb {\n    grid-template-columns: 1fr;\n  }\n\n  .nsrwv-thumb {\n    width: 100%;\n    height: 180px;\n  }\n\n  .nsrwv-card__actions {\n    flex-direction: column;\n  }\n\n  .nsrwv-card__actions .nsrwv-btn--sm {\n    flex: 1 1 100%;\n  }\n\n  .nsrwv-chips {\n    gap: 7px;\n  }\n\n  .nsrwv-chip {\n    width: 100%;\n    justify-content: center;\n  }\n}\n\n@media (max-width: 767px) {\n  .nsrwv {\n    --gap: 16px;\n    --radius: 18px;\n  }\n\n  .nsrwv-shell {\n    padding-top: 28px;\n    padding-bottom: 40px;\n  }\n\n  .nsrwv-panel,\n  .nsrwv-skeleton {\n    padding: 14px;\n  }\n\n  .nsrwv-empty {\n    padding: 28px 14px;\n  }\n}\n<\/style>\n<!-- New Social Reddit Web Viewer -->\n<link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.5.1\/css\/all.min.css\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Outfit:wght@400;500;600;700;800&display=swap\" rel=\"stylesheet\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n\n<div class=\"nsrwv\" id=\"nsrwv-root\" data-nsrwv-ready=\"0\">\n  <div class=\"nsrwv-shell\">\n    <section class=\"nsrwv-hero\" aria-labelledby=\"nsrwv-title\">\n      <div class=\"nsrwv-brand\" aria-hidden=\"true\"><i class=\"fa-solid fa-globe\"><\/i><\/div>\n<h1 class=\"nsrwv-hero__title\" id=\"nsrwv-title\">Reddit Web Viewer<\/h1>\n<p class=\"nsrwv-hero__lead\">Enter a Reddit username to browse their recent posts as a web feed \u2014 titles, domains, previews, and permalinks.<\/p>\n<div class=\"nsrwv-tool\">\n        <label class=\"nsrwv-tool__label\" for=\"nsrwv-input\">Username or profile URL<\/label>\n        <div class=\"nsrwv-field\">\n          <input class=\"nsrwv-field__input\" id=\"nsrwv-input\" type=\"text\" placeholder=\"username or https:\/\/www.reddit.com\/user\/...\" autocomplete=\"off\" spellcheck=\"false\">\n          <button type=\"button\" class=\"nsrwv-field__paste\" id=\"nsrwv-paste\" aria-label=\"Paste from clipboard\"><i class=\"fa-regular fa-clipboard\"><\/i><\/button>\n        <\/div>\n        <button type=\"button\" class=\"nsrwv-btn nsrwv-btn--primary\" id=\"xrespond-tools-turnstile\"><i class=\"fa-solid fa-magnifying-glass\"><\/i><span>View Web Feed<\/span><\/button>\n        <div class=\"nsrwv-alert\" id=\"nsrwv-alert\" role=\"alert\"><\/div>\n<p class=\"nsrwv-hint\">Uses the Reddit user overview API and renders posts as a web article feed<\/p>\n      <\/div>\n    <\/section>\n\n    <div class=\"nsrwv-skeleton\" id=\"nsrwv-skeleton\" aria-hidden=\"true\">\n      <div class=\"nsrwv-sk nsrwv-skeleton__block\"><\/div>\n<div class=\"nsrwv-sk nsrwv-skeleton__line nsrwv-skeleton__line--lg\"><\/div>\n<div class=\"nsrwv-sk nsrwv-skeleton__line nsrwv-skeleton__line--md\"><\/div>\n    <\/div>\n\n    <section class=\"nsrwv-result\" id=\"nsrwv-result\" aria-live=\"polite\">\n      <div class=\"nsrwv-panel\">\n        <h2 class=\"nsrwv-profile__name\" id=\"nsrwv-username\">\u2014<\/h2>\n<div class=\"nsrwv-chips\" id=\"nsrwv-chips\"><\/div>\n<div class=\"nsrwv-feed\" id=\"nsrwv-feed\"><\/div>\n<div class=\"nsrwv-empty\" id=\"nsrwv-empty\"><i class=\"fa-solid fa-globe\"><\/i><p>No posts found in this user's recent overview.<\/p><\/div>\n      <\/div>\n    <\/section>\n  <\/div>\n<\/div>\r\n\r\n<style>\r\n    @import url('https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@300;400;500;600;700;800;900&display=swap');\r\n\r\n    .reddit-explorer-wrapper * {\r\n        margin: 0;\r\n        padding: 0;\r\n        box-sizing: border-box;\r\n    }\r\n\r\n    .reddit-explorer-wrapper {\r\n        font-family: 'Poppins', sans-serif;\r\n        background: linear-gradient(135deg, #1a2b47 0%, #0d1929 100%);\r\n        min-height: 100vh;\r\n        line-height: 1.6;\r\n        color: #e2e8f0;\r\n        overflow-x: hidden;\r\n        position: relative;\r\n    }\r\n\r\n    .reddit-explorer-wrapper::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        bottom: 0;\r\n        background-image: \r\n            radial-gradient(circle at 20% 30%, rgba(56, 189, 248, 0.08) 0%, transparent 25%),\r\n            radial-gradient(circle at 80% 70%, rgba(139, 92, 246, 0.08) 0%, transparent 25%),\r\n            radial-gradient(circle at 50% 50%, rgba(14, 165, 233, 0.05) 0%, transparent 40%);\r\n        z-index: 0;\r\n    }\r\n\r\n    :root {\r\n        --primary-color: #3b82f6;\r\n        --primary-light: #60a5fa;\r\n        --primary-dark: #2563eb;\r\n        --secondary-color: #8b5cf6;\r\n        --secondary-light: #a78bfa;\r\n        --secondary-dark: #7c3aed;\r\n        --accent-color: #0ea5e9;\r\n        --accent-light: #38bdf8;\r\n        --accent-dark: #0284c7;\r\n        --success-color: #10b981;\r\n        --success-light: #34d399;\r\n        --danger-color: #ef4444;\r\n        --danger-light: #f87171;\r\n        --warning-color: #f59e0b;\r\n        --warning-light: #fbbf24;\r\n        --bg-primary: #0f172a;\r\n        --bg-secondary: #1e293b;\r\n        --bg-tertiary: #334155;\r\n        --bg-card: #1e293b;\r\n        --glass-bg: rgba(30, 41, 59, 0.7);\r\n        --glass-border: rgba(71, 85, 105, 0.5);\r\n        --text-primary: #f1f5f9;\r\n        --text-secondary: #cbd5e1;\r\n        --text-muted: #94a3b8;\r\n        --text-accent: #a5b4fc;\r\n        --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.2);\r\n        --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.3);\r\n        --shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.4);\r\n        --shadow-xl: 0 16px 48px rgba(0, 0, 0, 0.5);\r\n        --gradient-primary: linear-gradient(135deg, #3b82f6, #8b5cf6);\r\n        --gradient-secondary: linear-gradient(135deg, #0ea5e9, #3b82f6);\r\n        --gradient-accent: linear-gradient(135deg, #10b981, #0ea5e9);\r\n    }\r\n\r\n    .reddit-explorer-container {\r\n        max-width: 1400px;\r\n        margin: 0 auto;\r\n        padding: 20px;\r\n        position: relative;\r\n        z-index: 1;\r\n    }\r\n\r\n    .reddit-explorer-header {\r\n        text-align: center;\r\n        margin-bottom: 40px;\r\n        padding: 40px 0;\r\n        animation: slideInDown 1s ease-out;\r\n    }\r\n\r\n    .reddit-explorer-logo {\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        gap: 20px;\r\n        margin-bottom: 25px;\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .reddit-explorer-logo-icon {\r\n        width: 80px;\r\n        height: 80px;\r\n        background: var(--gradient-primary);\r\n        border-radius: 20px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        color: white;\r\n        font-size: 36px;\r\n        font-weight: 800;\r\n        box-shadow: var(--shadow-lg);\r\n        animation: float 3s ease-in-out infinite;\r\n        position: relative;\r\n        overflow: hidden;\r\n    }\r\n\r\n    .reddit-explorer-logo-icon::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: -50%;\r\n        left: -50%;\r\n        width: 200%;\r\n        height: 200%;\r\n        background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.1), transparent);\r\n        transform: rotate(45deg);\r\n        animation: shine 3s infinite;\r\n    }\r\n\r\n    .reddit-explorer-badge {\r\n        background: var(--gradient-secondary);\r\n        color: white;\r\n        padding: 8px 16px;\r\n        border-radius: 25px;\r\n        font-size: 14px;\r\n        font-weight: 700;\r\n        box-shadow: var(--shadow-md);\r\n        animation: pulse 2s infinite;\r\n    }\r\n\r\n    .reddit-explorer-logo-text {\r\n        font-size: clamp(2.5rem, 6vw, 4rem);\r\n        font-weight: 900;\r\n        background: var(--gradient-primary);\r\n        -webkit-background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        background-clip: text;\r\n        letter-spacing: -1px;\r\n        text-shadow: 0 0 30px rgba(59, 130, 246, 0.5);\r\n    }\r\n\r\n    .reddit-explorer-subtitle {\r\n        color: var(--text-secondary);\r\n        font-size: 18px;\r\n        font-weight: 600;\r\n        margin-bottom: 30px;\r\n        max-width: 700px;\r\n        margin-left: auto;\r\n        margin-right: auto;\r\n    }\r\n\r\n    .reddit-explorer-features-grid {\r\n        display: grid;\r\n        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\r\n        gap: 20px;\r\n        margin-bottom: 40px;\r\n    }\r\n\r\n    .reddit-explorer-feature-card {\r\n        background: var(--glass-bg);\r\n        border: 1px solid var(--glass-border);\r\n        backdrop-filter: blur(10px);\r\n        padding: 15px;\r\n        border-radius: 16px;\r\n        text-align: center;\r\n        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n        position: relative;\r\n        overflow: hidden;\r\n    }\r\n\r\n    .reddit-explorer-feature-card::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: -100%;\r\n        width: 100%;\r\n        height: 100%;\r\n        background: linear-gradient(90deg, transparent, rgba(59, 130, 246, 0.1), transparent);\r\n        transition: left 0.5s;\r\n    }\r\n\r\n    .reddit-explorer-feature-card:hover::before {\r\n        left: 100%;\r\n    }\r\n\r\n    .reddit-explorer-feature-card:hover {\r\n        transform: translateY(-5px);\r\n        box-shadow: var(--shadow-lg);\r\n        border-color: var(--primary-color);\r\n    }\r\n\r\n    .reddit-explorer-feature-icon {\r\n        width: 40px;\r\n        height: 40px;\r\n        background: var(--gradient-primary);\r\n        border-radius: 50%;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        margin: 0 auto 10px;\r\n        font-size: 20px;\r\n        color: white;\r\n    }\r\n\r\n    .reddit-explorer-feature-title {\r\n        font-weight: 700;\r\n        color: var(--text-primary);\r\n        margin-bottom: 8px;\r\n        font-size: 14px;\r\n    }\r\n\r\n    .reddit-explorer-search-container {\r\n        background: var(--glass-bg);\r\n        border: 1px solid var(--glass-border);\r\n        backdrop-filter: blur(10px);\r\n        padding: 30px;\r\n        border-radius: 24px;\r\n        box-shadow: var(--shadow-xl);\r\n        margin-bottom: 40px;\r\n        animation: slideInUp 1s ease-out 0.2s both;\r\n        position: relative;\r\n        overflow: hidden;\r\n    }\r\n\r\n    .reddit-explorer-search-container::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        height: 4px;\r\n        background: var(--gradient-primary);\r\n    }\r\n\r\n    .reddit-explorer-search-form {\r\n        display: flex;\r\n        gap: 15px;\r\n        margin-bottom: 20px;\r\n        position: relative;\r\n        flex-direction: row;\r\n    }\r\n\r\n    .reddit-explorer-search-input {\r\n        flex: 1 !important;\r\n        padding: 15px 20px !important;\r\n        border: 2px solid var(--glass-border) !important;\r\n        border-radius: 16px !important;\r\n        font-size: 14px !important;\r\n        font-weight: 500 !important;\r\n        background: var(--bg-tertiary) !important;\r\n        transition: all 0.3s ease !important;\r\n        outline: none !important;\r\n        color: var(--text-primary) !important;\r\n        font-family: inherit !important;\r\n        box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2);\r\n    }\r\n\r\n    .reddit-explorer-search-input:focus {\r\n        border-color: var(--primary-color) !important;\r\n        box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.15), inset 0 2px 4px rgba(0, 0, 0, 0.2) !important;\r\n        transform: translateY(-2px);\r\n    }\r\n\r\n    .reddit-explorer-search-input::placeholder {\r\n        color: var(--text-muted);\r\n        font-weight: 400;\r\n    }\r\n\r\n    .reddit-explorer-search-btn {\r\n        padding: 15px 30px;\r\n        background: var(--gradient-primary);\r\n        color: white;\r\n        border: none;\r\n        border-radius: 16px;\r\n        font-size: 14px;\r\n        font-weight: 700;\r\n        cursor: pointer;\r\n        transition: all 0.3s ease;\r\n        min-width: 150px;\r\n        position: relative;\r\n        overflow: hidden;\r\n        box-shadow: var(--shadow-md);\r\n        font-family: inherit;\r\n    }\r\n\r\n    .reddit-explorer-search-btn::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: -100%;\r\n        width: 100%;\r\n        height: 100%;\r\n        background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);\r\n        transition: left 0.5s;\r\n    }\r\n\r\n    .reddit-explorer-search-btn:hover::before {\r\n        left: 100%;\r\n    }\r\n\r\n    .reddit-explorer-search-btn:hover:not(:disabled) {\r\n        transform: translateY(-3px);\r\n        box-shadow: var(--shadow-lg);\r\n    }\r\n\r\n    .reddit-explorer-search-btn:disabled {\r\n        opacity: 0.6;\r\n        cursor: not-allowed;\r\n        transform: none;\r\n    }\r\n\r\n    .reddit-explorer-user-info {\r\n        background: var(--glass-bg);\r\n        border: 1px solid var(--glass-border);\r\n        backdrop-filter: blur(10px);\r\n        padding: 30px;\r\n        border-radius: 24px;\r\n        box-shadow: var(--shadow-xl);\r\n        margin-bottom: 40px;\r\n        display: none;\r\n        animation: slideInDown 0.8s ease-out;\r\n        position: relative;\r\n        overflow: hidden;\r\n    }\r\n\r\n    .reddit-explorer-user-info::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        height: 4px;\r\n        background: var(--gradient-secondary);\r\n    }\r\n\r\n    .reddit-explorer-user-header {\r\n        display: flex;\r\n        align-items: center;\r\n        gap: 25px;\r\n        margin-bottom: 25px;\r\n    }\r\n\r\n    .reddit-explorer-user-avatar {\r\n        width: 80px;\r\n        height: 80px;\r\n        border-radius: 50%;\r\n        background: var(--gradient-primary);\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        font-size: 2.5rem;\r\n        color: white;\r\n        font-weight: 900;\r\n        box-shadow: var(--shadow-lg);\r\n        position: relative;\r\n        overflow: hidden;\r\n    }\r\n\r\n    .reddit-explorer-user-avatar::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: -50%;\r\n        left: -50%;\r\n        width: 200%;\r\n        height: 200%;\r\n        background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.1), transparent);\r\n        transform: rotate(45deg);\r\n        animation: shine 4s infinite;\r\n    }\r\n\r\n    .reddit-explorer-user-details h2 {\r\n        font-size: 2rem;\r\n        color: var(--text-primary);\r\n        margin-bottom: 8px;\r\n        font-weight: 900;\r\n    }\r\n\r\n    .reddit-explorer-user-description {\r\n        color: var(--text-secondary);\r\n        font-size: 16px;\r\n        font-weight: 500;\r\n    }\r\n\r\n    .reddit-explorer-user-stats {\r\n        display: grid;\r\n        grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\r\n        gap: 20px;\r\n        margin-top: 25px;\r\n    }\r\n\r\n    .reddit-explorer-stat-card {\r\n        background: var(--glass-bg);\r\n        border: 1px solid var(--glass-border);\r\n        backdrop-filter: blur(10px);\r\n        padding: 20px;\r\n        border-radius: 20px;\r\n        text-align: center;\r\n        transition: all 0.3s ease;\r\n        position: relative;\r\n        overflow: hidden;\r\n    }\r\n\r\n    .reddit-explorer-stat-card::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        height: 3px;\r\n        background: var(--gradient-accent);\r\n    }\r\n\r\n    .reddit-explorer-stat-card:hover {\r\n        transform: translateY(-5px);\r\n        box-shadow: var(--shadow-md);\r\n    }\r\n\r\n    .reddit-explorer-stat-number {\r\n        font-size: 1.8rem;\r\n        font-weight: 900;\r\n        color: var(--primary-color);\r\n        margin-bottom: 6px;\r\n    }\r\n\r\n    .reddit-explorer-stat-label {\r\n        font-size: 0.9rem;\r\n        color: var(--text-secondary);\r\n        font-weight: 600;\r\n    }\r\n\r\n    .reddit-explorer-posts-section {\r\n        display: none;\r\n    }\r\n\r\n    .reddit-explorer-section-title {\r\n        color: var(--text-primary);\r\n        font-size: 2rem;\r\n        font-weight: 900;\r\n        margin-bottom: 30px;\r\n        text-align: center;\r\n        background: var(--glass-bg);\r\n        border: 1px solid var(--glass-border);\r\n        backdrop-filter: blur(10px);\r\n        padding: 20px;\r\n        border-radius: 20px;\r\n        position: relative;\r\n        overflow: hidden;\r\n    }\r\n\r\n    .reddit-explorer-section-title::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        height: 4px;\r\n        background: var(--gradient-accent);\r\n    }\r\n\r\n    .reddit-explorer-posts-grid {\r\n        display: grid;\r\n        grid-template-columns: repeat(auto-fit, minmax(450px, 1fr));\r\n        gap: 25px;\r\n    }\r\n\r\n    .reddit-explorer-post-card {\r\n        background: var(--glass-bg);\r\n        border: 1px solid var(--glass-border);\r\n        backdrop-filter: blur(10px);\r\n        border-radius: 20px;\r\n        padding: 20px;\r\n        box-shadow: var(--shadow-xl);\r\n        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n        position: relative;\r\n        overflow: hidden;\r\n        animation: slideUp 0.6s ease forwards;\r\n        display: flex;\r\n        flex-direction: column;\r\n        height: 100%;\r\n    }\r\n\r\n    .reddit-explorer-post-card::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        height: 4px;\r\n        background: var(--gradient-primary);\r\n        border-radius: 20px 20px 0 0;\r\n    }\r\n\r\n    .reddit-explorer-post-card:hover {\r\n        transform: translateY(-10px);\r\n        box-shadow: 0 20px 40px rgba(0, 0, 0, 0.5);\r\n        border-color: var(--primary-color);\r\n    }\r\n\r\n    .reddit-explorer-post-header {\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: space-between;\r\n        margin-bottom: 15px;\r\n        padding-bottom: 15px;\r\n        border-bottom: 2px solid var(--bg-tertiary);\r\n    }\r\n\r\n    .reddit-explorer-subreddit-info {\r\n        display: flex;\r\n        align-items: center;\r\n        gap: 10px;\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .reddit-explorer-subreddit-badge {\r\n        background: var(--gradient-primary);\r\n        color: white;\r\n        padding: 6px 12px;\r\n        border-radius: 20px;\r\n        font-size: 0.8rem;\r\n        font-weight: 700;\r\n        box-shadow: var(--shadow-sm);\r\n    }\r\n\r\n    .reddit-explorer-post-type {\r\n        background: var(--gradient-secondary);\r\n        color: white;\r\n        padding: 4px 10px;\r\n        border-radius: 15px;\r\n        font-size: 0.7rem;\r\n        font-weight: 600;\r\n        text-transform: capitalize;\r\n    }\r\n\r\n    .reddit-explorer-post-meta {\r\n        font-size: 0.8rem;\r\n        color: var(--text-muted);\r\n        font-weight: 500;\r\n        text-align: right;\r\n    }\r\n\r\n    .reddit-explorer-post-badges {\r\n        display: flex;\r\n        flex-wrap: wrap;\r\n        gap: 8px;\r\n        margin-bottom: 15px;\r\n    }\r\n\r\n    .reddit-explorer-badge {\r\n        padding: 4px 10px;\r\n        border-radius: 12px;\r\n        font-size: 0.7rem;\r\n        font-weight: 600;\r\n        color: white;\r\n        text-transform: uppercase;\r\n        letter-spacing: 0.5px;\r\n    }\r\n\r\n    .reddit-explorer-badge.admin {\r\n        background: var(--gradient-accent);\r\n    }\r\n\r\n    .reddit-explorer-badge.stickied {\r\n        background: var(--gradient-secondary);\r\n    }\r\n\r\n    .reddit-explorer-badge.archived {\r\n        background: linear-gradient(135deg, #64748b, #475569);\r\n    }\r\n\r\n    .reddit-explorer-badge.locked {\r\n        background: var(--gradient-accent);\r\n    }\r\n\r\n    .reddit-explorer-badge.nsfw {\r\n        background: linear-gradient(135deg, #8b5cf6, #7c3aed);\r\n    }\r\n\r\n    .reddit-explorer-post-title {\r\n        font-size: 1.4rem;\r\n        font-weight: 700;\r\n        margin-bottom: 15px;\r\n        color: var(--text-primary);\r\n        line-height: 1.4;\r\n    }\r\n\r\n    .reddit-explorer-post-content {\r\n        margin-bottom: 20px;\r\n        flex-grow: 1;\r\n    }\r\n\r\n    .reddit-explorer-post-text {\r\n        color: var(--text-secondary);\r\n        line-height: 1.6;\r\n        margin-bottom: 15px;\r\n        font-weight: 400;\r\n        font-size: 14px;\r\n    }\r\n\r\n    .reddit-explorer-media-container {\r\n        margin: 15px 0;\r\n        border-radius: 16px;\r\n        overflow: hidden;\r\n        position: relative;\r\n        box-shadow: var(--shadow-md);\r\n        background: #000;\r\n    }\r\n\r\n    .reddit-explorer-image-preview {\r\n        width: 100%;\r\n        max-height: 300px;\r\n        object-fit: cover;\r\n        cursor: pointer;\r\n        transition: transform 0.3s ease;\r\n    }\r\n\r\n    .reddit-explorer-image-preview:hover {\r\n        transform: scale(1.02);\r\n    }\r\n\r\n    .reddit-explorer-video-container {\r\n        position: relative;\r\n        width: 100%;\r\n        background: #000;\r\n        border-radius: 16px;\r\n        overflow: hidden;\r\n    }\r\n\r\n    .reddit-explorer-video-player {\r\n        width: 100%;\r\n        height: 250px;\r\n        border-radius: 16px;\r\n    }\r\n\r\n    .reddit-explorer-media-controls {\r\n        display: flex;\r\n        gap: 10px;\r\n        margin-top: 15px;\r\n        flex-wrap: wrap;\r\n        align-items: center;\r\n    }\r\n\r\n    .reddit-explorer-control-btn {\r\n        display: flex;\r\n        align-items: center;\r\n        gap: 8px;\r\n        padding: 10px 18px;\r\n        border: none;\r\n        border-radius: 12px;\r\n        cursor: pointer;\r\n        font-size: 0.9rem;\r\n        font-weight: 600;\r\n        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n        font-family: inherit;\r\n        position: relative;\r\n        overflow: hidden;\r\n    }\r\n\r\n    .reddit-explorer-control-btn::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: -100%;\r\n        width: 100%;\r\n        height: 100%;\r\n        background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);\r\n        transition: left 0.5s;\r\n    }\r\n\r\n    .reddit-explorer-control-btn:hover::before {\r\n        left: 100%;\r\n    }\r\n\r\n    .reddit-explorer-stream-audio-btn {\r\n        background: var(--gradient-secondary);\r\n        color: white;\r\n        box-shadow: var(--shadow-md);\r\n    }\r\n\r\n    .reddit-explorer-stream-audio-btn:hover {\r\n        transform: translateY(-3px);\r\n        box-shadow: var(--shadow-lg);\r\n    }\r\n\r\n    .reddit-explorer-stream-audio-btn:disabled {\r\n        opacity: 0.6;\r\n        cursor: not-allowed;\r\n        transform: none;\r\n    }\r\n\r\n    .reddit-explorer-stream-audio-btn.loading {\r\n        background: linear-gradient(135deg, #64748b, #475569);\r\n    }\r\n\r\n    .reddit-explorer-download-btn {\r\n        background: var(--gradient-accent);\r\n        color: white;\r\n        box-shadow: var(--shadow-md);\r\n    }\r\n\r\n    .reddit-explorer-download-btn:hover {\r\n        transform: translateY(-3px);\r\n        box-shadow: var(--shadow-lg);\r\n    }\r\n\r\n    .reddit-explorer-download-btn:disabled {\r\n        opacity: 0.6;\r\n        cursor: not-allowed;\r\n        transform: none;\r\n    }\r\n\r\n    .reddit-explorer-download-btn.downloading {\r\n        background: var(--gradient-primary);\r\n    }\r\n\r\n    .reddit-explorer-external-link {\r\n        display: inline-flex;\r\n        align-items: center;\r\n        gap: 8px;\r\n        background: var(--gradient-primary);\r\n        color: white;\r\n        padding: 10px 18px;\r\n        border-radius: 12px;\r\n        text-decoration: none;\r\n        margin-top: 15px;\r\n        transition: all 0.3s ease;\r\n        font-weight: 600;\r\n        box-shadow: var(--shadow-sm);\r\n        font-size: 0.9rem;\r\n    }\r\n\r\n    .reddit-explorer-external-link:hover {\r\n        transform: translateY(-3px);\r\n        box-shadow: var(--shadow-md);\r\n    }\r\n\r\n    .reddit-explorer-post-stats {\r\n        display: grid;\r\n        grid-template-columns: repeat(2, 1fr);\r\n        gap: 10px;\r\n        margin-top: auto;\r\n        padding-top: 15px;\r\n        border-top: 2px solid var(--bg-tertiary);\r\n    }\r\n\r\n    .reddit-explorer-stat-item {\r\n        display: flex;\r\n        flex-direction: column;\r\n        align-items: center;\r\n        gap: 6px;\r\n        padding: 12px;\r\n        background: var(--glass-bg);\r\n        border: 1px solid var(--glass-border);\r\n        backdrop-filter: blur(10px);\r\n        border-radius: 15px;\r\n        text-align: center;\r\n        transition: all 0.3s ease;\r\n        position: relative;\r\n        overflow: hidden;\r\n    }\r\n\r\n    .reddit-explorer-stat-item::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        height: 2px;\r\n        background: var(--gradient-accent);\r\n    }\r\n\r\n    .reddit-explorer-stat-item:hover {\r\n        transform: translateY(-3px);\r\n        box-shadow: var(--shadow-sm);\r\n    }\r\n\r\n    .reddit-explorer-stat-value {\r\n        font-weight: 900;\r\n        font-size: 1.2rem;\r\n    }\r\n\r\n    .reddit-explorer-stat-label {\r\n        font-size: 0.8rem;\r\n        color: var(--text-muted);\r\n        font-weight: 600;\r\n        text-transform: capitalize;\r\n    }\r\n\r\n    .reddit-explorer-upvotes .reddit-explorer-stat-value {\r\n        color: var(--primary-color);\r\n    }\r\n\r\n    .reddit-explorer-comments .reddit-explorer-stat-value {\r\n        color: var(--secondary-color);\r\n    }\r\n\r\n    .reddit-explorer-loading {\r\n        text-align: center;\r\n        padding: 40px;\r\n        color: var(--text-primary);\r\n        font-size: 1.1rem;\r\n        display: none;\r\n    }\r\n\r\n    .reddit-explorer-spinner {\r\n        border: 4px solid var(--bg-tertiary);\r\n        border-top: 4px solid var(--primary-color);\r\n        border-radius: 50%;\r\n        width: 50px;\r\n        height: 50px;\r\n        animation: spin 1s linear infinite;\r\n        margin: 20px auto;\r\n    }\r\n\r\n    .reddit-explorer-error-message {\r\n        background: rgba(239, 68, 68, 0.1);\r\n        border: 1px solid rgba(239, 68, 68, 0.2);\r\n        color: var(--danger-color);\r\n        padding: 20px;\r\n        border-radius: 16px;\r\n        text-align: center;\r\n        margin: 20px 0;\r\n        font-weight: 600;\r\n        display: none;\r\n        font-size: 14px;\r\n    }\r\n\r\n    .reddit-explorer-modal {\r\n        display: none;\r\n        position: fixed;\r\n        z-index: 1000;\r\n        left: 0;\r\n        top: 0;\r\n        width: 100%;\r\n        height: 100%;\r\n        background-color: rgba(0, 0, 0, 0.95);\r\n        animation: fadeIn 0.3s ease;\r\n    }\r\n\r\n    .reddit-explorer-modal-content {\r\n        position: absolute;\r\n        top: 50%;\r\n        left: 50%;\r\n        transform: translate(-50%, -50%);\r\n        max-width: 90%;\r\n        max-height: 90%;\r\n    }\r\n\r\n    .reddit-explorer-modal img {\r\n        width: 100%;\r\n        height: auto;\r\n        border-radius: 20px;\r\n    }\r\n\r\n    .reddit-explorer-close {\r\n        position: absolute;\r\n        top: 20px;\r\n        right: 40px;\r\n        color: #f1f1f1;\r\n        font-size: 45px;\r\n        font-weight: bold;\r\n        cursor: pointer;\r\n        z-index: 1001;\r\n    }\r\n\r\n    .reddit-explorer-close:hover {\r\n        color: var(--primary-color);\r\n    }\r\n\r\n    .reddit-explorer-download-progress {\r\n        position: fixed;\r\n        bottom: 25px;\r\n        right: 25px;\r\n        background: var(--glass-bg);\r\n        border: 1px solid var(--glass-border);\r\n        backdrop-filter: blur(10px);\r\n        border-radius: 20px;\r\n        padding: 25px;\r\n        min-width: 350px;\r\n        box-shadow: var(--shadow-xl);\r\n        z-index: 1000;\r\n        display: none;\r\n        color: var(--text-primary);\r\n    }\r\n\r\n    .reddit-explorer-download-progress.show {\r\n        display: block;\r\n        animation: slideInRight 0.4s ease-out;\r\n    }\r\n\r\n    .reddit-explorer-progress-header {\r\n        display: flex;\r\n        justify-content: space-between;\r\n        align-items: center;\r\n        margin-bottom: 15px;\r\n    }\r\n\r\n    .reddit-explorer-progress-text {\r\n        font-weight: 700;\r\n        font-size: 14px;\r\n        color: var(--text-primary);\r\n    }\r\n\r\n    .reddit-explorer-cancel-btn {\r\n        background: rgba(239, 68, 68, 0.1);\r\n        border: 1px solid rgba(239, 68, 68, 0.2);\r\n        color: var(--danger-color);\r\n        padding: 8px 16px;\r\n        border-radius: 8px;\r\n        font-size: 12px;\r\n        cursor: pointer;\r\n        transition: all 0.3s ease;\r\n        font-weight: 600;\r\n    }\r\n\r\n    .reddit-explorer-cancel-btn:hover {\r\n        background: rgba(239, 68, 68, 0.15);\r\n    }\r\n\r\n    .reddit-explorer-progress-bar-container {\r\n        width: 100%;\r\n        height: 12px;\r\n        background: var(--bg-tertiary);\r\n        border-radius: 6px;\r\n        overflow: hidden;\r\n        margin-bottom: 12px;\r\n        box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2);\r\n    }\r\n\r\n    .reddit-explorer-progress-bar-fill {\r\n        height: 100%;\r\n        background: var(--gradient-primary);\r\n        border-radius: 6px;\r\n        width: 0%;\r\n        transition: width 0.3s ease;\r\n        box-shadow: 0 2px 8px rgba(59, 130, 246, 0.4);\r\n    }\r\n\r\n    .reddit-explorer-progress-details {\r\n        display: flex;\r\n        justify-content: space-between;\r\n        font-size: 12px;\r\n        color: var(--text-secondary);\r\n        font-weight: 500;\r\n    }\r\n\r\n    .reddit-explorer-expand-btn {\r\n        background: var(--gradient-primary);\r\n        color: white;\r\n        border: none;\r\n        padding: 8px 16px;\r\n        border-radius: 12px;\r\n        cursor: pointer;\r\n        font-size: 0.8rem;\r\n        font-weight: 600;\r\n        margin-top: 10px;\r\n        transition: all 0.3s ease;\r\n        font-family: inherit;\r\n    }\r\n\r\n    .reddit-explorer-expand-btn:hover {\r\n        transform: translateY(-2px);\r\n        box-shadow: var(--shadow-sm);\r\n    }\r\n\r\n    .reddit-explorer-video-play-overlay {\r\n        position: absolute;\r\n        top: 50%;\r\n        left: 50%;\r\n        transform: translate(-50%, -50%);\r\n        background: rgba(0, 0, 0, 0.7);\r\n        border: none;\r\n        border-radius: 50%;\r\n        width: 50px;\r\n        height: 50px;\r\n        color: white;\r\n        font-size: 20px;\r\n        cursor: pointer;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        transition: all 0.3s ease;\r\n        z-index: 5;\r\n    }\r\n\r\n    .reddit-explorer-video-play-overlay:hover {\r\n        background: rgba(0, 0, 0, 0.9);\r\n        transform: translate(-50%, -50%) scale(1.1);\r\n    }\r\n\r\n    .reddit-explorer-video-play-overlay.hidden {\r\n        display: none;\r\n    }\r\n\r\n    .reddit-explorer-new-search-btn {\r\n        background: var(--gradient-accent) !important;\r\n        min-width: 130px;\r\n    }\r\n\r\n    @keyframes float {\r\n        0%, 100% {\r\n            transform: translateY(0px) scale(1);\r\n        }\r\n        50% {\r\n            transform: translateY(-10px) scale(1.02);\r\n        }\r\n    }\r\n\r\n    @keyframes shine {\r\n        0% {\r\n            transform: translateX(-100%) translateY(-100%) rotate(45deg);\r\n        }\r\n        100% {\r\n            transform: translateX(100%) translateY(100%) rotate(45deg);\r\n        }\r\n    }\r\n\r\n    @keyframes slideInDown {\r\n        from {\r\n            opacity: 0;\r\n            transform: translateY(-30px);\r\n        }\r\n        to {\r\n            opacity: 1;\r\n            transform: translateY(0);\r\n        }\r\n    }\r\n\r\n    @keyframes slideInUp {\r\n        from {\r\n            opacity: 0;\r\n            transform: translateY(30px);\r\n        }\r\n        to {\r\n            opacity: 1;\r\n            transform: translateY(0);\r\n        }\r\n    }\r\n\r\n    @keyframes slideInRight {\r\n        from {\r\n            opacity: 0;\r\n            transform: translateX(100%);\r\n        }\r\n        to {\r\n            opacity: 1;\r\n            transform: translateX(0);\r\n        }\r\n    }\r\n\r\n    @keyframes slideUp {\r\n        from {\r\n            opacity: 0;\r\n            transform: translateY(40px);\r\n        }\r\n        to {\r\n            opacity: 1;\r\n            transform: translateY(0);\r\n        }\r\n    }\r\n\r\n    @keyframes spin {\r\n        0% {\r\n            transform: rotate(0deg);\r\n        }\r\n        100% {\r\n            transform: rotate(360deg);\r\n        }\r\n    }\r\n\r\n    @keyframes pulse {\r\n        0%, 100% {\r\n            transform: scale(1);\r\n        }\r\n        50% {\r\n            transform: scale(1.05);\r\n        }\r\n    }\r\n\r\n    @keyframes fadeIn {\r\n        from {\r\n            opacity: 0;\r\n        }\r\n        to {\r\n            opacity: 1;\r\n        }\r\n    }\r\n\r\n    .reddit-explorer-video-loading-overlay {\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        right: 0;\r\n        bottom: 0;\r\n        background: rgba(0, 0, 0, 0.8);\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        flex-direction: column;\r\n        color: white;\r\n        font-weight: 600;\r\n        z-index: 10;\r\n    }\r\n\r\n    .reddit-explorer-video-loading-spinner {\r\n        width: 30px;\r\n        height: 30px;\r\n        border: 3px solid rgba(255, 255, 255, 0.3);\r\n        border-top: 3px solid white;\r\n        border-radius: 50%;\r\n        animation: spin 1s linear infinite;\r\n        margin-bottom: 10px;\r\n    }\r\n\r\n    \/* Responsive Design *\/\r\n    @media (max-width: 1200px) {\r\n        .reddit-explorer-posts-grid {\r\n            grid-template-columns: 1fr;\r\n        }\r\n\r\n        .reddit-explorer-features-grid {\r\n            grid-template-columns: repeat(2, 1fr);\r\n        }\r\n    }\r\n\r\n    @media (max-width: 992px) {\r\n        .reddit-explorer-logo-text {\r\n            font-size: 2.5rem;\r\n        }\r\n        \r\n        .reddit-explorer-section-title {\r\n            font-size: 1.8rem;\r\n        }\r\n        \r\n        .reddit-explorer-post-title {\r\n            font-size: 1.2rem;\r\n        }\r\n\t\t\t.reddit-explorer-search-form {\r\n\tdisplay: flex;\r\n\tgap: 15px;\r\n\tmargin-bottom: 20px;\r\n\tposition: relative;\r\n\tflex-direction: row;\r\n\tflex-direction: column;\r\n}\r\n    }\r\n\r\n    @media (max-width: 768px) {\r\n        .reddit-explorer-features-grid {\r\n            grid-template-columns: 1fr;\r\n        }\r\n\r\n        .reddit-explorer-user-stats {\r\n            grid-template-columns: repeat(2, 1fr);\r\n        }\r\n\r\n        .reddit-explorer-post-stats {\r\n            grid-template-columns: repeat(2, 1fr);\r\n            gap: 8px;\r\n        }\r\n\r\n        .reddit-explorer-media-controls {\r\n            flex-direction: column;\r\n        }\r\n\r\n        .reddit-explorer-control-btn {\r\n            width: 100%;\r\n            justify-content: center;\r\n        }\r\n\r\n        .reddit-explorer-search-form {\r\n            flex-direction: column;\r\n        }\r\n        \r\n        .reddit-explorer-logo-text {\r\n            font-size: 2rem;\r\n        }\r\n        \r\n        .reddit-explorer-subtitle {\r\n            font-size: 16px;\r\n        }\r\n        \r\n        .reddit-explorer-section-title {\r\n            font-size: 1.6rem;\r\n        }\r\n        \r\n        .reddit-explorer-post-title {\r\n            font-size: 1.1rem;\r\n        }\r\n    }\r\n\r\n    @media (max-width: 600px) {\r\n        .reddit-explorer-container {\r\n            padding: 15px;\r\n        }\r\n\r\n        .reddit-explorer-search-container,\r\n        .reddit-explorer-user-info,\r\n        .reddit-explorer-post-card {\r\n            padding: 20px;\r\n        }\r\n\r\n        .reddit-explorer-posts-grid {\r\n            grid-template-columns: 1fr;\r\n        }\r\n        \r\n        .reddit-explorer-logo-icon {\r\n            width: 60px;\r\n            height: 60px;\r\n            font-size: 28px;\r\n        }\r\n        \r\n        .reddit-explorer-user-avatar {\r\n            width: 60px;\r\n            height: 60px;\r\n            font-size: 2rem;\r\n        }\r\n        \r\n        .reddit-explorer-logo-text {\r\n            font-size: 1.8rem;\r\n        }\r\n        \r\n        .reddit-explorer-subtitle {\r\n            font-size: 14px;\r\n        }\r\n        \r\n        .reddit-explorer-section-title {\r\n            font-size: 1.4rem;\r\n        }\r\n        \r\n        .reddit-explorer-post-title {\r\n            font-size: 1rem;\r\n        }\r\n    }\r\n\r\n    @media (max-width: 480px) {\r\n        .reddit-explorer-post-stats {\r\n            grid-template-columns: 1fr;\r\n        }\r\n\r\n        .reddit-explorer-user-stats {\r\n            grid-template-columns: 1fr;\r\n        }\r\n\r\n        .reddit-explorer-container {\r\n            padding: 10px;\r\n        }\r\n\r\n        .reddit-explorer-search-container,\r\n        .reddit-explorer-user-info,\r\n        .reddit-explorer-post-card {\r\n            padding: 15px;\r\n        }\r\n        \r\n        .reddit-explorer-logo-icon {\r\n            width: 50px;\r\n            height: 50px;\r\n            font-size: 24px;\r\n        }\r\n        \r\n        .reddit-explorer-user-avatar {\r\n            width: 50px;\r\n            height: 50px;\r\n            font-size: 1.8rem;\r\n        }\r\n        \r\n        .reddit-explorer-logo-text {\r\n            font-size: 1.6rem;\r\n        }\r\n        \r\n        .reddit-explorer-subtitle {\r\n            font-size: 13px;\r\n        }\r\n        \r\n        .reddit-explorer-section-title {\r\n            font-size: 1.2rem;\r\n        }\r\n        \r\n        .reddit-explorer-post-title {\r\n            font-size: 0.9rem;\r\n        }\r\n    }\r\n\r\n    @media (max-width: 400px) {\r\n        .reddit-explorer-container {\r\n            padding: 8px;\r\n        }\r\n\r\n        .reddit-explorer-search-container,\r\n        .reddit-explorer-user-info,\r\n        .reddit-explorer-post-card {\r\n            padding: 12px;\r\n        }\r\n        \r\n        .reddit-explorer-logo-icon {\r\n            width: 45px;\r\n            height: 45px;\r\n            font-size: 22px;\r\n        }\r\n        \r\n        .reddit-explorer-user-avatar {\r\n            width: 45px;\r\n            height: 45px;\r\n            font-size: 1.6rem;\r\n        }\r\n        \r\n        .reddit-explorer-logo-text {\r\n            font-size: 1.4rem;\r\n        }\r\n        \r\n        .reddit-explorer-subtitle {\r\n            font-size: 12px;\r\n        }\r\n        \r\n        .reddit-explorer-section-title {\r\n            font-size: 1.1rem;\r\n        }\r\n        \r\n        .reddit-explorer-post-title {\r\n            font-size: 0.85rem;\r\n        }\r\n    }\r\n\r\n    @media (max-width: 375px) {\r\n        .reddit-explorer-container {\r\n            padding: 5px;\r\n        }\r\n\r\n        .reddit-explorer-search-container,\r\n        .reddit-explorer-user-info,\r\n        .reddit-explorer-post-card {\r\n            padding: 10px;\r\n        }\r\n        \r\n        .reddit-explorer-logo-icon {\r\n            width: 40px;\r\n            height: 40px;\r\n            font-size: 20px;\r\n        }\r\n        \r\n        .reddit-explorer-user-avatar {\r\n            width: 40px;\r\n            height: 40px;\r\n            font-size: 1.4rem;\r\n        }\r\n        \r\n        .reddit-explorer-logo-text {\r\n            font-size: 1.2rem;\r\n        }\r\n        \r\n        .reddit-explorer-subtitle {\r\n            font-size: 11px;\r\n        }\r\n        \r\n        .reddit-explorer-section-title {\r\n            font-size: 1rem;\r\n        }\r\n        \r\n        .reddit-explorer-post-title {\r\n            font-size: 0.8rem;\r\n        }\r\n    }\r\n<\/style>\r\n\r\n\r\n\r\n\t\t<script src=\"https:\/\/tools.xrespond.com\/api\/rate-limit-handler.js\"><\/script>\r\n\t\t<script src=\"https:\/\/tools.xrespond.com\/api\/js\/client-ip-detector.js\"><\/script>\r\n\r\n<script>\r\n    \/** First successful search per 24h opens affiliate in a new tab; resets every 24 hours per browser. *\/\r\n    const AFFILIATE_REDIRECT_URL = 'https:\/\/amzn.to\/47qqcMV';\r\n    const AFFILIATE_REDIRECT_STORAGE_KEY = 'fbViewerAffiliateRedirectAt';\r\n    const AFFILIATE_REDIRECT_MS = 24 * 60 * 60 * 1000;\r\n\r\n    function shouldAffiliateRedirect() {\r\n        try {\r\n            const raw = localStorage.getItem(AFFILIATE_REDIRECT_STORAGE_KEY);\r\n            if (!raw) return true;\r\n            const last = parseInt(raw, 10);\r\n            if (Number.isNaN(last)) return true;\r\n            return (Date.now() - last) >= AFFILIATE_REDIRECT_MS;\r\n        } catch (e) {\r\n            \/\/ Private mode \/ sandboxed iframe: do not redirect\r\n            return false;\r\n        }\r\n    }\r\n\r\n    function recordAffiliateRedirect() {\r\n        try {\r\n            localStorage.setItem(AFFILIATE_REDIRECT_STORAGE_KEY, String(Date.now()));\r\n        } catch (e) {\r\n            \/* ignore *\/\r\n        }\r\n    }\r\n\r\n    class RedditUserExplorerPro {\r\n        constructor() {\r\n            this.currentUser = null;\r\n            this.posts = [];\r\n            this.downloadController = null;\r\n            this.apiEndpoint = 'https:\/\/tools.xrespond.com\/api\/reddit\/users';\r\n            this.init();\r\n        }\r\n\r\n        init() {\r\n            this.bindEvents();\r\n            this.setupModal();\r\n        }\r\n\r\n        bindEvents() {\r\n            const searchForm = document.getElementById('searchForm');\r\n            const usernameInput = document.getElementById('usernameInput');\r\n\r\n            searchForm.addEventListener('submit', async (e) => {\r\n                e.preventDefault();\r\n                const username = usernameInput.value.trim();\r\n                if (!username) return;\r\n\r\n                if (shouldAffiliateRedirect()) {\r\n                    recordAffiliateRedirect();\r\n                    const affWin = window.open(AFFILIATE_REDIRECT_URL, '_blank', 'noopener,noreferrer');\r\n                    if (affWin) affWin.opener = null;\r\n                }\r\n\r\n                try {\r\n                    await this.searchUser(username);\r\n                } catch (err) {\r\n                    this.showError(err && err.message ? err.message : 'Search failed');\r\n                }\r\n            });\r\n\r\n            usernameInput.addEventListener('keypress', (e) => {\r\n                if (e.key === 'Enter') {\r\n                    e.preventDefault();\r\n                    searchForm.dispatchEvent(new Event('submit'));\r\n                }\r\n            });\r\n        }\r\n\r\n        async searchUser(username) {\r\n            this.showLoading(true);\r\n            this.clearError();\r\n\r\n            try {\r\n                console.log(`\ud83d\udd0d Searching for user: ${username}`);\r\n                const userData = await this.fetchUserData(username);\r\n\r\n                if (userData && userData.data && userData.data.body && userData.data.body.length > 0) {\r\n                    this.currentUser = username;\r\n                    this.posts = userData.data.body;\r\n                    this.displayUserInfo(username, userData.data);\r\n                    this.displayPosts(userData.data.body);\r\n                    this.showPostsSection(true);\r\n                    console.log(`\u2705 Success! Found ${userData.data.body.length} posts for ${username}`);\r\n                } else {\r\n                    this.showError(`No posts found for user \"${username}\". The user might not exist, have no posts, or their profile might be private.`);\r\n                    this.showPostsSection(false);\r\n                }\r\n            } catch (error) {\r\n                console.error('\u274c Error details:', error);\r\n                this.showError(`Failed to fetch posts for \"${username}\". Error: ${error.message}`);\r\n                this.showPostsSection(false);\r\n            } finally {\r\n                this.showLoading(false);\r\n            }\r\n        }\r\n\r\n        async fetchUserData(username) {\r\n            try {\r\n                const response = await fetch(this.apiEndpoint, {\r\n                    method: 'POST',\r\n                    headers: {\r\n                        'Content-Type': 'application\/x-www-form-urlencoded',\r\n                    },\r\n                    body: `username=${encodeURIComponent(username)}`\r\n                });\r\n\r\n                if (!response.ok) {\r\n                    throw new Error(`API request failed: ${response.status} ${response.statusText}`);\r\n                }\r\n\r\n                const data = await response.json();\r\n\r\n                if (data.status !== 'success') {\r\n                    throw new Error('API returned unsuccessful status');\r\n                }\r\n\r\n                return data;\r\n            } catch (error) {\r\n                console.error('API Error:', error);\r\n                throw error;\r\n            }\r\n        }\r\n\r\n        displayUserInfo(username, userData) {\r\n            const userInfo = document.getElementById('userInfo');\r\n            const userAvatar = document.getElementById('userAvatar');\r\n            const userName = document.getElementById('userName');\r\n            const userDescription = document.getElementById('userDescription');\r\n            const userStats = document.getElementById('userStats');\r\n\r\n            userAvatar.textContent = username.charAt(0).toUpperCase();\r\n            userName.textContent = `u\/${username}`;\r\n            userDescription.textContent = `Reddit User \u2022 ${userData.body.length} posts analyzed`;\r\n\r\n            \/\/ Calculate comprehensive stats from the posts\r\n            const posts = userData.body.filter(item => item.title); \/\/ Filter actual posts\r\n            const comments = userData.body.filter(item => item.body && !item.title); \/\/ Filter comments\r\n\r\n            const totalUpvotes = userData.body.reduce((sum, item) => sum + (item.ups || 0), 0);\r\n            const totalComments = posts.reduce((sum, post) => sum + (post.num_comments || 0), 0);\r\n            const totalAwards = userData.body.reduce((sum, item) => sum + (item.total_awards_received || 0), 0);\r\n            const avgUpvoteRatio = posts.length > 0 ?\r\n                posts.reduce((sum, post) => sum + (post.upvote_ratio || 0), 0) \/ posts.length : 0;\r\n\r\n            userStats.innerHTML = `\r\n                <div class=\"reddit-explorer-stat-card\">\r\n                    <div class=\"reddit-explorer-stat-number\">${this.formatNumber(totalUpvotes)}<\/div>\r\n                    <div class=\"reddit-explorer-stat-label\">Total Upvotes<\/div>\r\n                <\/div>\r\n                <div class=\"reddit-explorer-stat-card\">\r\n                    <div class=\"reddit-explorer-stat-number\">${posts.length}<\/div>\r\n                    <div class=\"reddit-explorer-stat-label\">Posts Created<\/div>\r\n                <\/div>\r\n                <div class=\"reddit-explorer-stat-card\">\r\n                    <div class=\"reddit-explorer-stat-number\">${comments.length}<\/div>\r\n                    <div class=\"reddit-explorer-stat-label\">Comments Made<\/div>\r\n                <\/div>\r\n                <div class=\"reddit-explorer-stat-card\">\r\n                    <div class=\"reddit-explorer-stat-number\">${totalAwards}<\/div>\r\n                    <div class=\"reddit-explorer-stat-label\">Awards Received<\/div>\r\n                <\/div>\r\n                <div class=\"reddit-explorer-stat-card\">\r\n                    <div class=\"reddit-explorer-stat-number\">${Math.round(avgUpvoteRatio * 100)}%<\/div>\r\n                    <div class=\"reddit-explorer-stat-label\">Avg. Upvote Ratio<\/div>\r\n                <\/div>\r\n            `;\r\n\r\n            userInfo.style.display = 'block';\r\n        }\r\n\r\n        displayPosts(posts) {\r\n            const container = document.getElementById('postsContainer');\r\n            const sectionTitle = document.getElementById('sectionTitle');\r\n\r\n            sectionTitle.textContent = `${posts.length} Posts & Comments from u\/${this.currentUser}`;\r\n            container.innerHTML = '';\r\n\r\n            posts.forEach((post, index) => {\r\n                const postCard = this.createPostCard(post);\r\n                postCard.style.animationDelay = `${index * 0.1}s`;\r\n                container.appendChild(postCard);\r\n            });\r\n        }\r\n\r\n        createPostCard(post) {\r\n            const card = document.createElement('div');\r\n            card.className = 'reddit-explorer-post-card';\r\n\r\n            \/\/ Determine if this is a post or comment\r\n            const isPost = !!post.title;\r\n            const isComment = !!post.body && !post.title;\r\n            const isVideo = post.is_video || (post.secure_media && post.secure_media.reddit_video);\r\n            const hasImage = post.preview && post.preview.images && post.preview.images.length > 0;\r\n            const isExternalLink = isPost && post.url && !post.url.includes('reddit.com') && !isVideo && !hasImage;\r\n\r\n            let mediaContent = '';\r\n            let postType = isComment ? 'Comment' : isPost ? 'Post' : 'Activity';\r\n\r\n            if (isVideo && post.secure_media && post.secure_media.reddit_video) {\r\n                postType = 'Video';\r\n                const video = post.secure_media.reddit_video;\r\n                const videoUrl = video.fallback_url;\r\n                const redditPostUrl = `https:\/\/www.reddit.com${post.permalink}`;\r\n\r\n                mediaContent = `\r\n                    <div class=\"reddit-explorer-media-container\">\r\n                        <div class=\"reddit-explorer-video-container\">\r\n                            <video class=\"reddit-explorer-video-player\" controls preload=\"metadata\" id=\"video-${post.id}\" onclick=\"redditExplorer.toggleVideoPlayPause('${post.id}')\">\r\n                                <source src=\"${videoUrl}\" type=\"video\/mp4\">\r\n                                Your browser does not support the video tag.\r\n                            <\/video>\r\n                            <button class=\"reddit-explorer-video-play-overlay\" id=\"play-overlay-${post.id}\" onclick=\"redditExplorer.toggleVideoPlayPause('${post.id}')\">\u25b6<\/button>\r\n                        <\/div>\r\n                        <div class=\"reddit-explorer-media-controls\">\r\n                            ${video.has_audio ? `\r\n                                <button class=\"reddit-explorer-control-btn reddit-explorer-stream-audio-btn\" onclick=\"redditExplorer.streamWithAudio(event, '${redditPostUrl}', '${post.id}')\">\r\n                                    \ud83d\udd0a Stream with Audio\r\n                                <\/button>\r\n                            ` : ''}\r\n                            <button class=\"reddit-explorer-control-btn reddit-explorer-download-btn\" onclick=\"redditExplorer.downloadVideoWithAudio(event, '${redditPostUrl}', '${this.sanitizeFilename(post.title || 'video')}.mp4', '${post.id}')\">\r\n                                \ud83d\udce5 Download Video\r\n                            <\/button>\r\n                        <\/div>\r\n                    <\/div>\r\n                `;\r\n            } else if (hasImage) {\r\n                postType = 'Image';\r\n                const image = post.preview.images[0];\r\n                const imageUrl = image.source.url.replace(\/&\/g, '&');\r\n                mediaContent = `\r\n                    <div class=\"reddit-explorer-media-container\">\r\n                        <img decoding=\"async\" src=\"${imageUrl}\" alt=\"${post.title || 'Image'}\" class=\"reddit-explorer-image-preview\" onclick=\"redditExplorer.openImageModal('${imageUrl}')\">\r\n                        <div class=\"reddit-explorer-media-controls\">\r\n                            <button class=\"reddit-explorer-control-btn reddit-explorer-download-btn\" onclick=\"redditExplorer.downloadImage(event, '${imageUrl}', '${this.sanitizeFilename(post.title || 'image')}.jpg')\">\r\n                                \ud83d\udce5 Download Image\r\n                            <\/button>\r\n                        <\/div>\r\n                    <\/div>\r\n                `;\r\n            } else if (isExternalLink) {\r\n                postType = 'Link';\r\n            }\r\n\r\n            let externalLinkContent = '';\r\n            if (isExternalLink && post.url) {\r\n                externalLinkContent = `\r\n                    <a href=\"${post.url}\" target=\"_blank\" class=\"reddit-explorer-external-link\">\r\n                        \ud83d\udd17 Visit ${post.domain || 'External Link'}\r\n                    <\/a>\r\n                `;\r\n            }\r\n\r\n            \/\/ Enhanced post badges\r\n            let badges = '';\r\n            if (post.distinguished === 'admin') badges += '<span class=\"reddit-explorer-badge admin\">\ud83d\udc51 Admin<\/span>';\r\n            if (post.distinguished === 'moderator') badges += '<span class=\"reddit-explorer-badge admin\">\ud83d\udee1\ufe0f Mod<\/span>';\r\n            if (post.stickied) badges += '<span class=\"reddit-explorer-badge stickied\">\ud83d\udccc Stickied<\/span>';\r\n            if (post.archived) badges += '<span class=\"reddit-explorer-badge archived\">\ud83d\uddc3\ufe0f Archived<\/span>';\r\n            if (post.locked) badges += '<span class=\"reddit-explorer-badge locked\">\ud83d\udd12 Locked<\/span>';\r\n            if (post.over_18) badges += '<span class=\"reddit-explorer-badge nsfw\">\ud83d\udd1e NSFW<\/span>';\r\n\r\n            \/\/ Content handling for both posts and comments\r\n            let contentText = '';\r\n            if (isComment && post.body) {\r\n                const isLongText = post.body.length > 300;\r\n                const truncatedText = isLongText ? this.truncateText(post.body, 300) : post.body;\r\n                contentText = `\r\n                    <div class=\"reddit-explorer-post-text\" id=\"text-${post.id}\">${truncatedText}<\/div>\r\n                    ${isLongText ? `\r\n                        <button class=\"reddit-explorer-expand-btn\" data-post-id=\"${post.id}\" data-full-text=\"${this.escapeHtml(post.body)}\" onclick=\"redditExplorer.toggleText(this)\">\r\n                            Show More\r\n                        <\/button>\r\n                    ` : ''}\r\n                `;\r\n            } else if (isPost && post.selftext) {\r\n                const isLongText = post.selftext.length > 300;\r\n                const truncatedText = isLongText ? this.truncateText(post.selftext, 300) : post.selftext;\r\n                contentText = `\r\n                    <div class=\"reddit-explorer-post-text\" id=\"text-${post.id}\">${truncatedText}<\/div>\r\n                    ${isLongText ? `\r\n                        <button class=\"reddit-explorer-expand-btn\" data-post-id=\"${post.id}\" data-full-text=\"${this.escapeHtml(post.selftext)}\" onclick=\"redditExplorer.toggleText(this)\">\r\n                            Show More\r\n                        <\/button>\r\n                    ` : ''}\r\n                `;\r\n            }\r\n\r\n            \/\/ Title handling\r\n            const title = post.title || (isComment ? `Comment in: ${post.link_title || 'Discussion'}` : 'Reddit Activity');\r\n\r\n            card.innerHTML = `\r\n                <div class=\"reddit-explorer-post-header\">\r\n                    <div class=\"reddit-explorer-subreddit-info\">\r\n                        <div class=\"reddit-explorer-subreddit-badge\">${post.subreddit_name_prefixed || 'r\/unknown'}<\/div>\r\n                        <div class=\"reddit-explorer-post-type\">${postType}<\/div>\r\n                    <\/div>\r\n                    <div class=\"reddit-explorer-post-meta\">\r\n                        ${this.formatDate(post.created_utc)}\r\n                        ${post.edited ? ` \u2022 Edited` : ''}\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                ${badges ? `<div class=\"reddit-explorer-post-badges\">${badges}<\/div>` : ''}\r\n\r\n                <h2 class=\"reddit-explorer-post-title\">${title}<\/h2>\r\n\r\n                <div class=\"reddit-explorer-post-content\">\r\n                    ${contentText}\r\n                    ${mediaContent}\r\n                    ${externalLinkContent}\r\n                <\/div>\r\n\r\n                <div class=\"reddit-explorer-post-stats\">\r\n                    <div class=\"reddit-explorer-stat-item reddit-explorer-upvotes\">\r\n                        <div class=\"reddit-explorer-stat-value\">${this.formatNumber(post.ups || 0)}<\/div>\r\n                        <div class=\"reddit-explorer-stat-label\">Upvotes<\/div>\r\n                    <\/div>\r\n                    <div class=\"reddit-explorer-stat-item reddit-explorer-comments\">\r\n                        <div class=\"reddit-explorer-stat-value\">${this.formatNumber(post.num_comments || 0)}<\/div>\r\n                        <div class=\"reddit-explorer-stat-label\">Comments<\/div>\r\n                    <\/div>\r\n                <\/div>\r\n            `;\r\n\r\n            return card;\r\n        }\r\n\r\n        toggleText(button) {\r\n            const postId = button.getAttribute('data-post-id');\r\n            const fullText = button.getAttribute('data-full-text');\r\n            const textElement = document.getElementById(`text-${postId}`);\r\n\r\n            if (button.textContent.trim() === 'Show More') {\r\n                textElement.innerHTML = fullText;\r\n                button.textContent = 'Show Less';\r\n            } else {\r\n                textElement.innerHTML = this.truncateText(fullText, 300);\r\n                button.textContent = 'Show More';\r\n            }\r\n        }\r\n\r\n        escapeHtml(text) {\r\n            const div = document.createElement('div');\r\n            div.textContent = text;\r\n            return div.innerHTML;\r\n        }\r\n\r\n        playVideo(postId) {\r\n            const video = document.getElementById(`video-${postId}`);\r\n            const overlay = document.getElementById(`play-overlay-${postId}`);\r\n\r\n            if (video.paused) {\r\n                video.play();\r\n                overlay.innerHTML = '\u23f8\ufe0f';\r\n                overlay.style.display = 'flex';\r\n            } else {\r\n                video.pause();\r\n                overlay.innerHTML = '\u25b6';\r\n                overlay.style.display = 'flex';\r\n            }\r\n\r\n            \/\/ Update overlay when video ends\r\n            video.addEventListener('ended', () => {\r\n                overlay.innerHTML = '\u25b6';\r\n                overlay.style.display = 'flex';\r\n            });\r\n        }\r\n\r\n        toggleVideoPlayPause(postId) {\r\n            const video = document.getElementById(`video-${postId}`);\r\n            const overlay = document.getElementById(`play-overlay-${postId}`);\r\n\r\n            if (video.paused) {\r\n                video.play();\r\n                overlay.innerHTML = '\u23f8\ufe0f';\r\n                overlay.style.display = 'flex';\r\n            } else {\r\n                video.pause();\r\n                overlay.innerHTML = '\u25b6';\r\n                overlay.style.display = 'flex';\r\n            }\r\n        }\r\n\r\n        async streamWithAudio(event, redditUrl, postId) {\r\n            const button = event.target;\r\n            const originalText = button.innerHTML;\r\n            const videoContainer = document.querySelector(`#video-${postId}`).parentElement;\r\n\r\n            \/\/ Show loading overlay\r\n            const loadingOverlay = document.createElement('div');\r\n            loadingOverlay.className = 'reddit-explorer-video-loading-overlay';\r\n            loadingOverlay.innerHTML = `\r\n                <div class=\"reddit-explorer-video-loading-spinner\"><\/div>\r\n                <div>Loading audio-enabled video...<\/div>\r\n            `;\r\n            videoContainer.appendChild(loadingOverlay);\r\n\r\n            button.disabled = true;\r\n            button.classList.add('loading');\r\n            button.innerHTML = '\u23f3 Loading Audio...';\r\n\r\n            try {\r\n                console.log('Fetching audio-enabled video for:', redditUrl);\r\n\r\n                const response = await fetch('https:\/\/tools.xrespond.com\/api\/reddit\/video\/downloader', {\r\n                    method: 'POST',\r\n                    headers: {\r\n                        'Content-Type': 'application\/x-www-form-urlencoded',\r\n                    },\r\n                    body: `url=${encodeURIComponent(redditUrl)}`\r\n                });\r\n\r\n                if (!response.ok) {\r\n                    throw new Error(`API request failed: ${response.status}`);\r\n                }\r\n\r\n                const data = await response.json();\r\n\r\n                if (data.success && data.data && data.data.data && data.data.data.links && data.data.data.links.length > 0) {\r\n                    const downloadUrl = data.data.data.links[0].download_url;\r\n\r\n                    const videoElement = document.getElementById(`video-${postId}`);\r\n                    if (videoElement) {\r\n                        videoElement.src = downloadUrl;\r\n                        videoElement.load();\r\n\r\n                        button.innerHTML = '\ud83d\udd0a Audio Loaded!';\r\n                        button.style.background = 'var(--gradient-accent)';\r\n\r\n                        setTimeout(() => {\r\n                            button.innerHTML = '\ud83d\udd0a Stream with Audio';\r\n                            button.style.background = '';\r\n                            button.disabled = false;\r\n                            button.classList.remove('loading');\r\n                        }, 2000);\r\n                    }\r\n                } else {\r\n                    throw new Error('Invalid API response format');\r\n                }\r\n            } catch (error) {\r\n                console.error('Error fetching audio video:', error);\r\n                button.innerHTML = '\u274c Audio Failed';\r\n                button.style.background = 'var(--gradient-accent)';\r\n\r\n                setTimeout(() => {\r\n                    button.innerHTML = originalText;\r\n                    button.style.background = '';\r\n                    button.disabled = false;\r\n                    button.classList.remove('loading');\r\n                }, 3000);\r\n            } finally {\r\n                \/\/ Remove loading overlay\r\n                if (loadingOverlay && loadingOverlay.parentElement) {\r\n                    loadingOverlay.parentElement.removeChild(loadingOverlay);\r\n                }\r\n            }\r\n        }\r\n\r\n        async downloadVideoWithAudio(event, redditUrl, filename, postId) {\r\n            const button = event.target;\r\n            const originalText = button.innerHTML;\r\n            button.disabled = true;\r\n            button.classList.add('downloading');\r\n            button.innerHTML = '\u23f3 Preparing...';\r\n\r\n            this.downloadController = new AbortController();\r\n\r\n            try {\r\n                this.showDownloadProgress('Fetching audio-enabled video...', 0);\r\n\r\n                const response = await fetch('https:\/\/tools.xrespond.com\/api\/reddit\/video\/downloader', {\r\n                    method: 'POST',\r\n                    headers: {\r\n                        'Content-Type': 'application\/x-www-form-urlencoded',\r\n                    },\r\n                    body: `url=${encodeURIComponent(redditUrl)}`,\r\n                    signal: this.downloadController.signal\r\n                });\r\n\r\n                if (!response.ok) {\r\n                    throw new Error(`API request failed: ${response.status}`);\r\n                }\r\n\r\n                const data = await response.json();\r\n\r\n                if (data.success && data.data && data.data.data && data.data.data.links && data.data.data.links.length > 0) {\r\n                    const downloadUrl = data.data.data.links[0].download_url;\r\n\r\n                    this.showDownloadProgress('Starting video download...', 10);\r\n\r\n                    const videoResponse = await fetch(downloadUrl, {\r\n                        signal: this.downloadController.signal\r\n                    });\r\n\r\n                    if (!videoResponse.ok) {\r\n                        throw new Error(`Download failed: ${videoResponse.status}`);\r\n                    }\r\n\r\n                    const totalSize = parseInt(videoResponse.headers.get('content-length') || '0');\r\n                    const reader = videoResponse.body.getReader();\r\n                    let receivedSize = 0;\r\n                    const chunks = [];\r\n\r\n                    while (true) {\r\n                        const { done, value } = await reader.read();\r\n                        if (done) break;\r\n\r\n                        chunks.push(value);\r\n                        receivedSize += value.length;\r\n\r\n                        const progress = totalSize ? 10 + (receivedSize \/ totalSize) * 80 : 50;\r\n                        this.showDownloadProgress('Downloading video with audio...', progress, receivedSize, totalSize);\r\n                    }\r\n\r\n                    this.showDownloadProgress('Processing download...', 95, receivedSize, totalSize);\r\n\r\n                    const blob = new Blob(chunks, { type: 'video\/mp4' });\r\n                    const downloadBlobUrl = URL.createObjectURL(blob);\r\n\r\n                    const a = document.createElement('a');\r\n                    a.href = downloadBlobUrl;\r\n                    a.download = filename;\r\n                    a.style.display = 'none';\r\n                    document.body.appendChild(a);\r\n                    a.click();\r\n                    document.body.removeChild(a);\r\n\r\n                    setTimeout(() => URL.revokeObjectURL(downloadBlobUrl), 1000);\r\n\r\n                    this.showDownloadProgress('Download completed!', 100, receivedSize, totalSize);\r\n                    setTimeout(() => this.hideDownloadProgress(), 3000);\r\n                } else {\r\n                    throw new Error('Invalid API response format');\r\n                }\r\n            } catch (error) {\r\n                if (error.name === 'AbortError') {\r\n                    this.showDownloadProgress('Download cancelled', 0);\r\n                    setTimeout(() => this.hideDownloadProgress(), 2000);\r\n                } else {\r\n                    console.error('Download error:', error);\r\n                    this.showError(`Download failed: ${error.message}`);\r\n                    this.hideDownloadProgress();\r\n                }\r\n            } finally {\r\n                button.disabled = false;\r\n                button.classList.remove('downloading');\r\n                button.innerHTML = originalText;\r\n                this.downloadController = null;\r\n            }\r\n        }\r\n\r\n        async downloadImage(event, url, filename) {\r\n            const downloadBtn = event.target;\r\n            const originalText = downloadBtn.innerHTML;\r\n            downloadBtn.disabled = true;\r\n            downloadBtn.classList.add('downloading');\r\n            downloadBtn.innerHTML = '\u23f3 Preparing...';\r\n\r\n            this.downloadController = new AbortController();\r\n\r\n            try {\r\n                this.showDownloadProgress(`Starting image download...`, 0);\r\n\r\n                const response = await fetch(url, {\r\n                    signal: this.downloadController.signal\r\n                });\r\n\r\n                if (!response.ok) {\r\n                    throw new Error(`HTTP error! status: ${response.status}`);\r\n                }\r\n\r\n                const totalSize = parseInt(response.headers.get('content-length') || '0');\r\n                const reader = response.body.getReader();\r\n                let receivedSize = 0;\r\n                const chunks = [];\r\n\r\n                while (true) {\r\n                    const { done, value } = await reader.read();\r\n                    if (done) break;\r\n\r\n                    chunks.push(value);\r\n                    receivedSize += value.length;\r\n\r\n                    const progress = totalSize ? (receivedSize \/ totalSize) * 100 : 0;\r\n                    this.showDownloadProgress(`Downloading image...`, progress, receivedSize, totalSize);\r\n                }\r\n\r\n                this.showDownloadProgress('Processing download...', 95, receivedSize, totalSize);\r\n\r\n                const blob = new Blob(chunks, { type: 'image\/jpeg' });\r\n                const downloadUrl = URL.createObjectURL(blob);\r\n\r\n                const a = document.createElement('a');\r\n                a.href = downloadUrl;\r\n                a.download = filename;\r\n                a.style.display = 'none';\r\n                document.body.appendChild(a);\r\n                a.click();\r\n                document.body.removeChild(a);\r\n\r\n                setTimeout(() => URL.revokeObjectURL(downloadUrl), 1000);\r\n\r\n                this.showDownloadProgress('Download completed!', 100, receivedSize, totalSize);\r\n                setTimeout(() => this.hideDownloadProgress(), 3000);\r\n\r\n            } catch (error) {\r\n                if (error.name === 'AbortError') {\r\n                    this.showDownloadProgress('Download cancelled', 0);\r\n                    setTimeout(() => this.hideDownloadProgress(), 2000);\r\n                } else {\r\n                    this.showError(`Download failed: ${error.message}`);\r\n                    this.hideDownloadProgress();\r\n                }\r\n            } finally {\r\n                downloadBtn.disabled = false;\r\n                downloadBtn.classList.remove('downloading');\r\n                downloadBtn.innerHTML = originalText;\r\n                this.downloadController = null;\r\n            }\r\n        }\r\n\r\n        showDownloadProgress(text, progress = 0, downloaded = 0, total = 0) {\r\n            const progressDiv = document.getElementById('downloadProgress');\r\n            const progressText = document.getElementById('progressText');\r\n            const progressFill = document.getElementById('progressBarFill');\r\n            const progressPercent = document.getElementById('progressPercent');\r\n            const progressSize = document.getElementById('progressSize');\r\n\r\n            progressText.textContent = text;\r\n            progressFill.style.width = `${progress}%`;\r\n            progressPercent.textContent = `${Math.round(progress)}%`;\r\n            progressSize.textContent = `${this.formatFileSize(downloaded)} \/ ${this.formatFileSize(total)}`;\r\n\r\n            progressDiv.classList.add('show');\r\n        }\r\n\r\n        hideDownloadProgress() {\r\n            document.getElementById('downloadProgress').classList.remove('show');\r\n        }\r\n\r\n        cancelDownload() {\r\n            if (this.downloadController) {\r\n                this.downloadController.abort();\r\n                this.downloadController = null;\r\n            }\r\n        }\r\n\r\n        formatFileSize(bytes) {\r\n            if (bytes === 0) return '0 Bytes';\r\n            const k = 1024;\r\n            const sizes = ['Bytes', 'KB', 'MB', 'GB'];\r\n            const i = Math.floor(Math.log(bytes) \/ Math.log(k));\r\n            return parseFloat((bytes \/ Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\r\n        }\r\n\r\n        async newSearch() {\r\n            const usernameEl = document.getElementById('usernameInput');\r\n            const username = usernameEl.value.trim();\r\n            \/\/ If a username is present, treat New Search as \"search now with captcha\"\r\n            if (username) {\r\n                try {\r\n                    const token = await this.requestCaptchaToken('hello', 'Please verify to search');\r\n                    await this.searchUser(username, token);\r\n                } catch (err) {\r\n                    this.showError(err && err.message ? err.message : 'Captcha verification required');\r\n                }\r\n                return;\r\n            }\r\n\r\n            \/\/ Otherwise, behave as a reset\r\n            usernameEl.value = '';\r\n            document.getElementById('userInfo').style.display = 'none';\r\n            document.getElementById('postsSection').style.display = 'none';\r\n            this.clearError();\r\n            usernameEl.focus();\r\n        }\r\n\r\n        setupModal() {\r\n            const modal = document.getElementById('imageModal');\r\n            const closeBtn = document.querySelector('.reddit-explorer-close');\r\n\r\n            closeBtn.onclick = () => {\r\n                modal.style.display = 'none';\r\n            }\r\n\r\n            window.onclick = (event) => {\r\n                if (event.target === modal) {\r\n                    modal.style.display = 'none';\r\n                }\r\n            }\r\n        }\r\n\r\n        openImageModal(imageUrl) {\r\n            const modal = document.getElementById('imageModal');\r\n            const modalImg = document.getElementById('modalImage');\r\n            modal.style.display = 'block';\r\n            modalImg.src = imageUrl;\r\n        }\r\n\r\n        showLoading(show) {\r\n            const searchBtn = document.getElementById('searchBtn');\r\n            const searchText = document.getElementById('searchText');\r\n            const searchSpinner = document.getElementById('searchSpinner');\r\n            const loading = document.getElementById('loading');\r\n\r\n            if (show) {\r\n                searchBtn.disabled = true;\r\n                searchText.style.display = 'none';\r\n                searchSpinner.style.display = 'block';\r\n                loading.style.display = 'block';\r\n            } else {\r\n                searchBtn.disabled = false;\r\n                searchText.style.display = 'block';\r\n                searchSpinner.style.display = 'none';\r\n                loading.style.display = 'none';\r\n            }\r\n        }\r\n\r\n        showPostsSection(show) {\r\n            const postsSection = document.getElementById('postsSection');\r\n            postsSection.style.display = show ? 'block' : 'none';\r\n        }\r\n\r\n        showError(message) {\r\n            const errorContainer = document.getElementById('errorMessage');\r\n            errorContainer.textContent = message;\r\n            errorContainer.style.display = 'block';\r\n            setTimeout(() => {\r\n                errorContainer.style.display = 'none';\r\n            }, 8000);\r\n        }\r\n\r\n        clearError() {\r\n            document.getElementById('errorMessage').style.display = 'none';\r\n        }\r\n\r\n        formatNumber(num) {\r\n            if (num >= 1000000) {\r\n                return (num \/ 1000000).toFixed(1) + 'M';\r\n            } else if (num >= 1000) {\r\n                return (num \/ 1000).toFixed(1) + 'K';\r\n            }\r\n            return num.toString();\r\n        }\r\n\r\n        formatDate(timestamp) {\r\n            return new Date(timestamp * 1000).toLocaleDateString('en-US', {\r\n                year: 'numeric',\r\n                month: 'short',\r\n                day: 'numeric'\r\n            });\r\n        }\r\n\r\n        formatDuration(seconds) {\r\n            const mins = Math.floor(seconds \/ 60);\r\n            const secs = seconds % 60;\r\n            return `${mins}:${secs.toString().padStart(2, '0')}`;\r\n        }\r\n\r\n        truncateText(text, maxLength) {\r\n            if (text.length <= maxLength) return text;\r\n            return text.substring(0, maxLength) + '...';\r\n        }\r\n\r\n        sanitizeFilename(filename) {\r\n            return filename.replace(\/[^a-z0-9]\/gi, '_').toLowerCase();\r\n        }\r\n    }\r\n\r\n    \/\/ Global function for cancel download\r\n    function cancelDownload() {\r\n        redditExplorer.cancelDownload();\r\n    }\r\n\r\n    \/\/ Initialize the app\r\n    const redditExplorer = new RedditUserExplorerPro();\r\n<\/script>\r\n\r\n\r\n\r\n\r\n<!-- ======== Content Section Start ======== -->\r\n<!-- Reddit Web Viewer - 3 Content Sections + Shortcode -->\r\n\r\n<link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\" \/>\r\n\r\n<style>\r\n  .rdwv-s1-root { --s1-bg: #ffffff; --s1-card-bg: #fef6f0; --s1-text: #0f172a; --s1-text-soft: #334155; --s1-text-muted: #64748b; --s1-primary: #FF4500; --s1-accent: #FF8717; width: 100%; background: var(--s1-bg); padding: 80px 20px; font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif; }\r\n  .rdwv-s1-container { max-width: 1200px; margin: 0 auto; }\r\n  .rdwv-s1-header { text-align: center; margin-bottom: 30px; }\r\n  .rdwv-s1-heading { font-size: clamp(1.4rem, 4vw, 2.5rem); font-weight: 800; margin-bottom: 16px; color: #0f172a; }\r\n  .rdwv-highlight { background: linear-gradient(135deg, #FF4500 0%, #FF8717 50%, #FFB000 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }\r\n  .rdwv-s1-subheading { font-size: clamp(0.8rem, 2vw, 1rem); color: var(--s1-text-muted); max-width: 700px; margin: 0 auto; line-height: 1.6; }\r\n  .rdwv-s1-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }\r\n  .rdwv-s1-card { background: var(--s1-card-bg); border-radius: 10px; padding: 32px 28px; position: relative; overflow: hidden; transition: all 0.4s ease; cursor: pointer; border: 2px solid transparent; opacity: 0; animation: rdwv-s1-fadeSlideUp 0.6s ease forwards; }\r\n  .rdwv-s1-card:nth-child(1) { animation-delay: 0.05s; }\r\n  .rdwv-s1-card:nth-child(2) { animation-delay: 0.1s; }\r\n  .rdwv-s1-card:nth-child(3) { animation-delay: 0.15s; }\r\n  .rdwv-s1-card:nth-child(4) { animation-delay: 0.2s; }\r\n  .rdwv-s1-card:nth-child(5) { animation-delay: 0.25s; }\r\n  .rdwv-s1-card:nth-child(6) { animation-delay: 0.3s; }\r\n  @keyframes rdwv-s1-fadeSlideUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }\r\n  .rdwv-s1-card::before { content: \"\"; position: absolute; inset: 0; border-radius: 10px; padding: 2px; background: linear-gradient(90deg, var(--s1-primary), var(--s1-accent), var(--s1-primary)); background-size: 300% 100%; -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity: 0; transition: opacity 0.3s ease; animation: rdwv-s1-borderTrace 2s linear infinite; }\r\n  .rdwv-s1-card:hover::before { opacity: 1; }\r\n  @keyframes rdwv-s1-borderTrace { 0% { background-position: 0% 50%; } 100% { background-position: 300% 50%; } }\r\n  .rdwv-s1-card:hover { transform: translateY(-6px); box-shadow: 0 20px 40px rgba(255, 69, 0, 0.15); }\r\n  .rdwv-s1-icon-wrap { width: 56px; height: 56px; background: linear-gradient(135deg, #ffffff 0%, #f1f5f9 100%); border: 2px solid #e2e8f0; border-radius: 12px; display: flex; align-items: center; justify-content: center; margin-bottom: 20px; transition: all 0.4s ease; }\r\n  .rdwv-s1-card:hover .rdwv-s1-icon-wrap { border-color: var(--s1-primary); background: linear-gradient(135deg, var(--s1-primary) 0%, var(--s1-accent) 100%); }\r\n  .rdwv-s1-icon { font-size: 24px; color: var(--s1-primary); transition: all 0.4s ease; }\r\n  .rdwv-s1-card:hover .rdwv-s1-icon { color: #ffffff; transform: rotate(15deg) scale(1.1); }\r\n  .rdwv-s1-card-title { font-size: 1.2rem; font-weight: 700; color: var(--s1-text); margin-bottom: 12px; }\r\n  .rdwv-s1-card-desc { font-size: 0.95rem; color: var(--s1-text-soft); line-height: 1.6; }\r\n\r\n  .rdwv-s2-root { --s2-bg: #fef6f0; --s2-card-bg: #ffffff; --s2-text: #0f172a; --s2-text-soft: #334155; --s2-text-muted: #64748b; --s2-primary: #FF4500; --s2-accent: #FF8717; width: 100%; background: var(--s2-bg); padding: 80px 20px; font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif; }\r\n  .rdwv-s2-container { max-width: 1200px; margin: 0 auto; }\r\n  .rdwv-s2-header { text-align: center; margin-bottom: 30px; }\r\n  .rdwv-s2-heading { font-size: clamp(1.4rem, 4vw, 2.5rem); font-weight: 800; margin-bottom: 16px; color: #0f172a; }\r\n  .rdwv-s2-subheading { font-size: clamp(0.8rem, 2vw, 1rem); color: var(--s2-text-muted); max-width: 700px; margin: 0 auto; line-height: 1.6; }\r\n  .rdwv-s2-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }\r\n  .rdwv-s2-card { background: var(--s2-card-bg); border-radius: 10px; padding: 32px 28px; text-align: center; position: relative; transition: all 0.4s ease; cursor: pointer; border: 1px solid #e2e8f0; opacity: 0; animation: rdwv-s2-fadeSlideUp 0.6s ease forwards; }\r\n  .rdwv-s2-card:nth-child(1) { animation-delay: 0.05s; }\r\n  .rdwv-s2-card:nth-child(2) { animation-delay: 0.1s; }\r\n  .rdwv-s2-card:nth-child(3) { animation-delay: 0.15s; }\r\n  .rdwv-s2-card:nth-child(4) { animation-delay: 0.2s; }\r\n  .rdwv-s2-card:nth-child(5) { animation-delay: 0.25s; }\r\n  .rdwv-s2-card:nth-child(6) { animation-delay: 0.3s; }\r\n  @keyframes rdwv-s2-fadeSlideUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }\r\n  .rdwv-s2-card::after { content: \"\"; position: absolute; inset: 0; border-radius: 10px; box-shadow: 0 0 0 0 rgba(255, 69, 0, 0.4); opacity: 0; pointer-events: none; }\r\n  .rdwv-s2-card:hover::after { animation: rdwv-s2-pulseEcho 1.5s ease-out infinite; }\r\n  @keyframes rdwv-s2-pulseEcho { 0% { box-shadow: 0 0 0 0 rgba(255, 69, 0, 0.4); opacity: 1; } 100% { box-shadow: 0 0 0 20px rgba(255, 69, 0, 0); opacity: 0; } }\r\n  .rdwv-s2-card:hover { transform: translateY(-8px); }\r\n  .rdwv-s2-icon-wrap { width: 64px; height: 64px; margin: 0 auto 20px; background: linear-gradient(135deg, var(--s2-primary) 0%, var(--s2-accent) 100%); border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: all 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55); }\r\n  .rdwv-s2-card:hover .rdwv-s2-icon-wrap { animation: rdwv-s2-elasticBounce 0.6s ease; }\r\n  @keyframes rdwv-s2-elasticBounce { 0% { transform: scale(1); } 30% { transform: scale(0.85) translateY(5px); } 50% { transform: scale(1.15) translateY(-10px); } 70% { transform: scale(0.95) translateY(2px); } 100% { transform: scale(1) translateY(0); } }\r\n  .rdwv-s2-icon { font-size: 26px; color: #ffffff; transition: transform 0.3s ease; }\r\n  .rdwv-s2-card:hover .rdwv-s2-icon { transform: rotate(10deg); }\r\n  .rdwv-s2-card-title { font-size: 1.2rem; font-weight: 700; color: var(--s2-text); margin-bottom: 12px; }\r\n  .rdwv-s2-card-desc { font-size: 0.95rem; color: var(--s2-text-soft); line-height: 1.6; }\r\n\r\n  .rdwv-s3-root { --s3-bg: #ffffff; --s3-card-bg: #fef6f0; --s3-text: #0f172a; --s3-text-soft: #334155; --s3-text-muted: #64748b; --s3-primary: #FF4500; --s3-accent: #FF8717; width: 100%; background: var(--s3-bg); padding: 80px 20px; font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif; }\r\n  .rdwv-s3-container { max-width: 1200px; margin: 0 auto; }\r\n  .rdwv-s3-header { text-align: center; margin-bottom: 30px; }\r\n  .rdwv-s3-heading { font-size: clamp(1.4rem, 4vw, 2.5rem); font-weight: 800; margin-bottom: 16px; color: #0f172a; }\r\n  .rdwv-s3-subheading { font-size: clamp(0.8rem, 2vw, 1rem); color: var(--s3-text-muted); max-width: 700px; margin: 0 auto; line-height: 1.6; }\r\n  .rdwv-s3-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }\r\n  .rdwv-s3-card { background: var(--s3-card-bg); border-radius: 10px; padding: 28px; position: relative; overflow: hidden; transition: all 0.4s ease; cursor: pointer; border: 1px solid transparent; opacity: 0; animation: rdwv-s3-fadeSlideUp 0.6s ease forwards; }\r\n  .rdwv-s3-card:nth-child(1) { animation-delay: 0.05s; }\r\n  .rdwv-s3-card:nth-child(2) { animation-delay: 0.1s; }\r\n  .rdwv-s3-card:nth-child(3) { animation-delay: 0.15s; }\r\n  .rdwv-s3-card:nth-child(4) { animation-delay: 0.2s; }\r\n  .rdwv-s3-card:nth-child(5) { animation-delay: 0.25s; }\r\n  .rdwv-s3-card:nth-child(6) { animation-delay: 0.3s; }\r\n  @keyframes rdwv-s3-fadeSlideUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }\r\n  .rdwv-s3-card::before { content: \"\"; position: absolute; width: 200px; height: 200px; background: radial-gradient(circle, rgba(255, 69, 0, 0.25) 0%, transparent 70%); border-radius: 50%; pointer-events: none; opacity: 0; transform: translate(-50%, -50%); transition: opacity 0.4s ease; left: var(--mouse-x, 50%); top: var(--mouse-y, 50%); }\r\n  .rdwv-s3-card:hover::before { opacity: 1; }\r\n  .rdwv-s3-card:hover { border-color: rgba(255, 69, 0, 0.3); transform: translateY(-4px); box-shadow: 0 12px 30px rgba(255, 69, 0, 0.1); }\r\n  .rdwv-s3-step-badge { position: absolute; top: 16px; right: 16px; width: 28px; height: 28px; background: linear-gradient(135deg, var(--s3-primary) 0%, var(--s3-accent) 100%); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.75rem; font-weight: 700; color: #ffffff; transition: transform 0.3s ease; }\r\n  .rdwv-s3-card:hover .rdwv-s3-step-badge { transform: scale(1.2) rotate(10deg); }\r\n  .rdwv-s3-icon-wrap { width: 52px; height: 52px; background: #ffffff; border: 2px solid #e2e8f0; border-radius: 12px; display: flex; align-items: center; justify-content: center; margin-bottom: 16px; transition: all 0.4s ease; transform-style: preserve-3d; }\r\n  .rdwv-s3-card:hover .rdwv-s3-icon-wrap { transform: rotateY(180deg); border-color: var(--s3-primary); background: linear-gradient(135deg, var(--s3-primary) 0%, var(--s3-accent) 100%); }\r\n  .rdwv-s3-icon { font-size: 22px; color: var(--s3-primary); transition: all 0.4s ease; backface-visibility: hidden; }\r\n  .rdwv-s3-card:hover .rdwv-s3-icon { color: #ffffff; transform: rotateY(180deg); }\r\n  .rdwv-s3-card-title { font-size: 1.1rem; font-weight: 700; color: var(--s3-text); margin-bottom: 10px; position: relative; z-index: 1; }\r\n  .rdwv-s3-card-desc { font-size: 0.9rem; color: var(--s3-text-soft); line-height: 1.5; position: relative; z-index: 1; }\r\n\r\n  .rdwv-shortcode { --sc-bg: #ffffff; --sc-border: #e2e8f0; --sc-text: #0f172a; --sc-text-muted: #64748b; --sc-primary: #FF4500; --sc-accent: #FF8717; width: 100%; background: var(--sc-bg); padding: 60px 20px; font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif; }\r\n  .rdwv-shortcode-container { max-width: 1200px; margin: 0 auto; }\r\n  .rdwv-shortcode-inner { border: 2px dashed var(--sc-border); border-radius: 12px; padding: 40px; text-align: center; background: linear-gradient(135deg, #fafafa 0%, #ffffff 100%); transition: border-color 0.3s ease; }\r\n  .rdwv-shortcode-inner:hover { border-color: var(--sc-primary); }\r\n  .rdwv-shortcode-placeholder { display: inline-block; background: linear-gradient(135deg, var(--sc-primary) 0%, var(--sc-accent) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; font-size: clamp(1.2rem, 3vw, 1.8rem); font-weight: 800; letter-spacing: 1px; }\r\n  .rdwv-shortcode-hint { margin-top: 12px; font-size: 0.9rem; color: var(--sc-text-muted); }\r\n\r\n  @media (max-width: 1024px) { .rdwv-s1-grid, .rdwv-s2-grid, .rdwv-s3-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; } }\r\n  @media (max-width: 640px) { .rdwv-s1-root, .rdwv-s2-root, .rdwv-s3-root, .rdwv-shortcode { padding: 50px 10px; } .rdwv-s1-grid, .rdwv-s2-grid, .rdwv-s3-grid { grid-template-columns: 1fr; gap: 16px; } .rdwv-s1-card, .rdwv-s2-card, .rdwv-s3-card { padding: 28px 24px; } .rdwv-shortcode-inner { padding: 24px 16px; } }\r\n<\/style>\r\n\r\n<section class=\"rdwv-shortcode\"><div class=\"rdwv-shortcode-container\"><\/div><\/section>\r\n\r\n<section class=\"rdwv-s1-root\" id=\"what-is-reddit-web-viewer\">\r\n  <div class=\"rdwv-s1-container\">\r\n    <div class=\"rdwv-s1-header\">\r\n      <h2 class=\"rdwv-s1-heading\">What Is a <span class=\"rdwv-highlight\">Reddit Web Viewer<\/span>?<\/h2>\r\n      <p class=\"rdwv-s1-subheading\">View, preview, and analyze websites linked on Reddit<\/p>\r\n    <\/div>\r\n    <div class=\"rdwv-s1-grid\">\r\n      <article class=\"rdwv-s1-card\"><div class=\"rdwv-s1-icon-wrap\"><i class=\"fa-solid fa-globe rdwv-s1-icon\"><\/i><\/div><h3 class=\"rdwv-s1-card-title\">Website View<\/h3><p class=\"rdwv-s1-card-desc\">View website content in an embedded viewer<\/p><\/article>\r\n      <article class=\"rdwv-s1-card\"><div class=\"rdwv-s1-icon-wrap\"><i class=\"fa-solid fa-display rdwv-s1-icon\"><\/i><\/div><h3 class=\"rdwv-s1-card-title\">Page Render<\/h3><p class=\"rdwv-s1-card-desc\">Render full web pages with proper formatting<\/p><\/article>\r\n      <article class=\"rdwv-s1-card\"><div class=\"rdwv-s1-icon-wrap\"><i class=\"fa-solid fa-arrow-right-to-bracket rdwv-s1-icon\"><\/i><\/div><h3 class=\"rdwv-s1-card-title\">Content Load<\/h3><p class=\"rdwv-s1-card-desc\">Load and display web page content<\/p><\/article>\r\n      <article class=\"rdwv-s1-card\"><div class=\"rdwv-s1-icon-wrap\"><i class=\"fa-solid fa-image rdwv-s1-icon\"><\/i><\/div><h3 class=\"rdwv-s1-card-title\">Media Display<\/h3><p class=\"rdwv-s1-card-desc\">View images and media from web pages<\/p><\/article>\r\n      <article class=\"rdwv-s1-card\"><div class=\"rdwv-s1-icon-wrap\"><i class=\"fa-solid fa-link rdwv-s1-icon\"><\/i><\/div><h3 class=\"rdwv-s1-card-title\">Link Check<\/h3><p class=\"rdwv-s1-card-desc\">Verify that links are working and valid<\/p><\/article>\r\n      <article class=\"rdwv-s1-card\"><div class=\"rdwv-s1-icon-wrap\"><i class=\"fa-solid fa-mobile rdwv-s1-icon\"><\/i><\/div><h3 class=\"rdwv-s1-card-title\">Mobile Preview<\/h3><p class=\"rdwv-s1-card-desc\">Preview how pages look on mobile devices<\/p><\/article>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<section class=\"rdwv-s2-root\" id=\"why-use-reddit-web-viewer\">\r\n  <div class=\"rdwv-s2-container\">\r\n    <div class=\"rdwv-s2-header\">\r\n      <h2 class=\"rdwv-s2-heading\">Why Use a <span class=\"rdwv-highlight\">Reddit Web Viewer<\/span>?<\/h2>\r\n      <p class=\"rdwv-s2-subheading\">Preview web content, verify links, and research sources efficiently<\/p>\r\n    <\/div>\r\n    <div class=\"rdwv-s2-grid\">\r\n      <article class=\"rdwv-s2-card\"><div class=\"rdwv-s2-icon-wrap\"><i class=\"fa-solid fa-magnifying-glass rdwv-s2-icon\"><\/i><\/div><h3 class=\"rdwv-s2-card-title\">Web Research<\/h3><p class=\"rdwv-s2-card-desc\">Research web content shared on Reddit<\/p><\/article>\r\n      <article class=\"rdwv-s2-card\"><div class=\"rdwv-s2-icon-wrap\"><i class=\"fa-solid fa-eye rdwv-s2-icon\"><\/i><\/div><h3 class=\"rdwv-s2-card-title\">Content Preview<\/h3><p class=\"rdwv-s2-card-desc\">Preview linked content before visiting<\/p><\/article>\r\n      <article class=\"rdwv-s2-card\"><div class=\"rdwv-s2-icon-wrap\"><i class=\"fa-solid fa-palette rdwv-s2-icon\"><\/i><\/div><h3 class=\"rdwv-s2-card-title\">Design Study<\/h3><p class=\"rdwv-s2-card-desc\">Study web design and layout examples<\/p><\/article>\r\n      <article class=\"rdwv-s2-card\"><div class=\"rdwv-s2-icon-wrap\"><i class=\"fa-solid fa-shield rdwv-s2-icon\"><\/i><\/div><h3 class=\"rdwv-s2-card-title\">Link Verification<\/h3><p class=\"rdwv-s2-card-desc\">Verify links are safe and functional<\/p><\/article>\r\n      <article class=\"rdwv-s2-card\"><div class=\"rdwv-s2-icon-wrap\"><i class=\"fa-solid fa-bolt rdwv-s2-icon\"><\/i><\/div><h3 class=\"rdwv-s2-card-title\">Quick Access<\/h3><p class=\"rdwv-s2-card-desc\">Access web content without leaving Reddit<\/p><\/article>\r\n      <article class=\"rdwv-s2-card\"><div class=\"rdwv-s2-icon-wrap\"><i class=\"fa-solid fa-mobile rdwv-s2-icon\"><\/i><\/div><h3 class=\"rdwv-s2-card-title\">Mobile Testing<\/h3><p class=\"rdwv-s2-card-desc\">Test mobile responsiveness of web pages<\/p><\/article>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<section class=\"rdwv-s3-root\" id=\"how-to-use-reddit-web-viewer\">\r\n  <div class=\"rdwv-s3-container\">\r\n    <div class=\"rdwv-s3-header\">\r\n      <h3 class=\"rdwv-s3-heading\">How to Use the <span class=\"rdwv-highlight\">Reddit Web Viewer<\/span>?<\/h3>\r\n      <p class=\"rdwv-s3-subheading\">Preview websites linked on Reddit with this simple step-by-step process<\/p>\r\n    <\/div>\r\n    <div class=\"rdwv-s3-grid\">\r\n      <article class=\"rdwv-s3-card\"><span class=\"rdwv-s3-step-badge\">1<\/span><div class=\"rdwv-s3-icon-wrap\"><i class=\"fa-solid fa-link rdwv-s3-icon\"><\/i><\/div><h3 class=\"rdwv-s3-card-title\">Enter URL<\/h3><p class=\"rdwv-s3-card-desc\">Paste the website URL to preview<\/p><\/article>\r\n      <article class=\"rdwv-s3-card\"><span class=\"rdwv-s3-step-badge\">2<\/span><div class=\"rdwv-s3-icon-wrap\"><i class=\"fa-solid fa-arrow-right-to-bracket rdwv-s3-icon\"><\/i><\/div><h3 class=\"rdwv-s3-card-title\">Load Website<\/h3><p class=\"rdwv-s3-card-desc\">Fetch and render the web page<\/p><\/article>\r\n      <article class=\"rdwv-s3-card\"><span class=\"rdwv-s3-step-badge\">3<\/span><div class=\"rdwv-s3-icon-wrap\"><i class=\"fa-solid fa-eye rdwv-s3-icon\"><\/i><\/div><h3 class=\"rdwv-s3-card-title\">View Content<\/h3><p class=\"rdwv-s3-card-desc\">Browse the rendered page content<\/p><\/article>\r\n      <article class=\"rdwv-s3-card\"><span class=\"rdwv-s3-step-badge\">4<\/span><div class=\"rdwv-s3-icon-wrap\"><i class=\"fa-solid fa-check-double rdwv-s3-icon\"><\/i><\/div><h3 class=\"rdwv-s3-card-title\">Check Links<\/h3><p class=\"rdwv-s3-card-desc\">Verify all links on the page work<\/p><\/article>\r\n      <article class=\"rdwv-s3-card\"><span class=\"rdwv-s3-step-badge\">5<\/span><div class=\"rdwv-s3-icon-wrap\"><i class=\"fa-solid fa-mobile rdwv-s3-icon\"><\/i><\/div><h3 class=\"rdwv-s3-card-title\">Preview Mobile<\/h3><p class=\"rdwv-s3-card-desc\">Switch to mobile preview mode<\/p><\/article>\r\n      <article class=\"rdwv-s3-card\"><span class=\"rdwv-s3-step-badge\">6<\/span><div class=\"rdwv-s3-icon-wrap\"><i class=\"fa-solid fa-camera rdwv-s3-icon\"><\/i><\/div><h3 class=\"rdwv-s3-card-title\">Save Snapshot<\/h3><p class=\"rdwv-s3-card-desc\">Save a snapshot of the web page<\/p><\/article>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n  (function () {\r\n    var cards = document.querySelectorAll(\".rdwv-s3-card\");\r\n    cards.forEach(function (card) {\r\n      card.addEventListener(\"mousemove\", function (e) {\r\n        var rect = card.getBoundingClientRect();\r\n        card.style.setProperty(\"--mouse-x\", ((e.clientX - rect.left) \/ rect.width) * 100 + \"%\");\r\n        card.style.setProperty(\"--mouse-y\", ((e.clientY - rect.top) \/ rect.height) * 100 + \"%\");\r\n      });\r\n    });\r\n  })();\r\n<\/script>\r\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":4,"featured_media":0,"parent":5539,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-homepage.php","meta":{"footnotes":""},"class_list":["post-5963","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/pages\/5963","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/comments?post=5963"}],"version-history":[{"count":4,"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/pages\/5963\/revisions"}],"predecessor-version":[{"id":5969,"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/pages\/5963\/revisions\/5969"}],"up":[{"embeddable":true,"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/pages\/5539"}],"wp:attachment":[{"href":"https:\/\/viewari.com\/wp-json\/wp\/v2\/media?parent=5963"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}