/* No unicode-range: browsers skip downloading a PUA-only face while text is
   still ASCII, then remap → tofu. Preload + full-face download fixes ROSIN. */
@font-face {
  font-family: "MontserratObf";
  src: url("/obf-montserrat-pua5.woff2") format("woff2");
  font-display: swap;
  font-weight: 400;
  font-style: normal;
}

@font-face {
  font-family: "MontserratObf";
  src: url("/obf-montserrat-pua5.woff2") format("woff2");
  font-display: swap;
  font-weight: 500;
  font-style: normal;
}

@font-face {
  font-family: "MontserratObf";
  src: url("/obf-montserrat-pua5.woff2") format("woff2");
  font-display: swap;
  font-weight: 600;
  font-style: normal;
}

@font-face {
  font-family: "MontserratObf";
  src: url("/obf-montserrat-pua5.woff2") format("woff2");
  font-display: swap;
  font-weight: 700;
  font-style: normal;
}

@font-face {
  font-family: "MontserratObf";
  src: url("/obf-montserrat-pua5.woff2") format("woff2");
  font-display: swap;
  font-weight: 800;
  font-style: normal;
}

:root {
  --ob-font-montserrat: "MontserratObf", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

html:not([data-font-obf-done]) .obfuscate,
html:not([data-font-obf-done]) .ob-p,
html:not([data-font-obf-done]) [data-obfuscate] {
  visibility: hidden !important;
}

/* Brand logo must never stay invisible if font-obf boot stalls. */
html:not([data-font-obf-done]) .n-home-logo-text,
html:not([data-font-obf-done]) .n-home-logo .obfuscate,
html:not([data-font-obf-done]) .n-bookmarks,
html:not([data-font-obf-done]) .n-bookmarks *,
html:not([data-font-obf-done]) .n-home-quicklinks,
html:not([data-font-obf-done]) .n-home-quicklinks *,
html[data-font-obf-done] .n-home-logo-text,
body.font-obfuscation-ready .n-home-logo-text {
  visibility: visible !important;
}

/* Force PUA face on remapped logo — no Latin Montserrat fallback (that = tofu). */
body.font-obfuscation-ready .n-home-logo-text.ob-p,
body.font-obfuscation-ready .n-home-logo-text.obfuscated,
body.font-obfuscation-ready .n-home-logo-text.obfuscate,
body.font-obfuscation-ready .n-home-logo .ob-p,
body.font-obfuscation-ready .n-home-logo .obfuscated,
html[data-font-obf-done] .n-home-logo-text.ob-p,
html[data-font-obf-done] .n-home-logo-text.obfuscate,
html[data-font-obf-done] .n-home-logo .ob-p {
  font-family: "MontserratObf" !important;
  font-weight: 600 !important;
  font-synthesis: none !important;
}

body.font-obfuscation-ready {
  letter-spacing: 0;
  word-spacing: normal;
}

/* Do NOT style body * with MontserratObf â€” that font only has PUA glyphs.
   Unmapped UI (icons, chrome, inputs) becomes tofu/wonky. Runtime adds .ob-p. */

body.font-obfuscation-ready .tab-bar,
body.font-obfuscation-ready .tab-bar *,
body.font-obfuscation-ready .tabs-row,
body.font-obfuscation-ready .tabs-row * {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
  font-size: inherit;
  line-height: normal;
  letter-spacing: 0 !important;
}

body.font-obfuscation-ready .tab-bar {
  font-size: 12px !important;
}

body.font-obfuscation-ready .tab-bar .tab-title {
  font-weight: 500 !important;
}

body.font-obfuscation-ready .tab-bar .tab-bar-new-tab,
body.font-obfuscation-ready .tab-bar .new-tab {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
  font-size: 17px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
}

body.tab-layout-vertical.font-obfuscation-ready .tab-bar .tab-bar-new-tab,
body.tab-layout-vertical.font-obfuscation-ready .tab-bar .new-tab {
  font-size: 20px !important;
}

body.font-obfuscation-ready .rosin-shell-loading,
body.font-obfuscation-ready .rosin-shell-loading * {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
  letter-spacing: 0.08em !important;
}

body.font-obfuscation-ready .nav-btn,
body.font-obfuscation-ready .nav-btn * {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
}

body.font-obfuscation-ready svg,
body.font-obfuscation-ready [data-lucide],
body.font-obfuscation-ready .lucide,
body.font-obfuscation-ready .lucide-icon,
body.font-obfuscation-ready i[data-lucide] {
  /* Never inherit MontserratObf â€” PUA font metrics collapse em-sized lucide icons */
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
  letter-spacing: 0 !important;
  word-spacing: normal !important;
}

body.font-obfuscation-ready .tab-bar .tab-close,
body.font-obfuscation-ready .tab-bar .tab-favicon {
  flex-shrink: 0;
}

body.font-obfuscation-ready .tab-bar .tab-content {
  align-items: center;
  overflow: hidden;
}

body.font-obfuscation-ready .tab-bar .tab-title {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}

body.font-obfuscation-ready .tab-bar .tab-sidebar-toggle svg,
body.font-obfuscation-ready .tab-bar .tab-sidebar-toggle [data-lucide],
body.font-obfuscation-ready .nav-btn svg,
body.font-obfuscation-ready .nav-btn [data-lucide],
body.font-obfuscation-ready .rosin-socials-title svg,
body.font-obfuscation-ready .rosin-socials-title [data-lucide],
body.font-obfuscation-ready .rosin-transport-opt svg,
body.font-obfuscation-ready .rosin-transport-opt [data-lucide] {
  flex-shrink: 0 !important;
  font-family: inherit !important;
}

body.font-obfuscation-ready .rosin-socials-title span,
body.font-obfuscation-ready .rosin-socials-lead,
body.font-obfuscation-ready .rosin-transport-opt span,
body.font-obfuscation-ready .rosin-socials-close,
body.font-obfuscation-ready .rosin-n-theme-title,
body.font-obfuscation-ready .rosin-n-theme-opt,
body.font-obfuscation-ready .rosin-n-theme-actions {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
}

body.font-obfuscation-ready .rosin-n-theme-title > span.ob-p,
body.font-obfuscation-ready .rosin-n-theme-lead.ob-p,
body.font-obfuscation-ready .rosin-n-theme-opt > span.ob-p,
body.font-obfuscation-ready .rosin-game-source-label.ob-p,
body.font-obfuscation-ready .rosin-game-source-opt.ob-p,
body.font-obfuscation-ready .rosin-onboard-toggle .s-toggle-copy.ob-p,
body.font-obfuscation-ready .rosin-onboard-toggle .s-toggle-copy strong.ob-p,
body.font-obfuscation-ready .rosin-onboard-toggle .s-toggle-copy small.ob-p {
  font-family: "MontserratObf", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important;
}

body.font-obfuscation-ready .rosin-n-theme-title > svg,
body.font-obfuscation-ready .rosin-n-theme-title > [data-lucide],
body.font-obfuscation-ready .rosin-n-theme-opt > svg,
body.font-obfuscation-ready .rosin-n-theme-opt > [data-lucide],
body.font-obfuscation-ready #rosin-n-shoutout-dlg svg,
body.font-obfuscation-ready #rosin-n-shoutout-dlg [data-lucide] {
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  min-height: 20px !important;
  flex-shrink: 0 !important;
  display: inline-block !important;
  overflow: visible !important;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
}

/* Shoutout stays obfuscated: system face on chrome/icons only; .ob-p text uses PUA */
body.font-obfuscation-ready #rosin-n-shoutout-dlg,
body.font-obfuscation-ready #rosin-n-shoutout-dlg .rosin-n-theme-title,
body.font-obfuscation-ready #rosin-n-shoutout-dlg .rosin-n-theme-actions {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
}

body.font-obfuscation-ready #rosin-n-shoutout-dlg .rosin-n-theme-title > span.ob-p,
body.font-obfuscation-ready #rosin-n-shoutout-dlg .rosin-n-shoutout-names.ob-p,
body.font-obfuscation-ready #rosin-n-shoutout-dlg .rosin-n-shoutout-heart.ob-p,
body.font-obfuscation-ready #rosin-n-shoutout-dlg .rosin-n-theme-opt > span.ob-p {
  font-family: "MontserratObf", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important;
}

body.font-obfuscation-ready .rosin-socials-title span {
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
}

body.font-obfuscation-ready .rosin-socials-lead {
  font-weight: 500 !important;
  line-height: 1.45 !important;
  color: color-mix(in srgb, var(--theme-text, #e8eaef) 85%, var(--theme-muted, #9aa0a6)) !important;
}

body.font-obfuscation-ready .rosin-account-lead {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: unset !important;
  line-height: 1.5 !important;
}

body.font-obfuscation-ready .rosin-account-opt span,
body.font-obfuscation-ready .rosin-account-skip {
  font-weight: 600 !important;
}

body.font-obfuscation-ready .rosin-socials-dlg .rosin-socials-lead {
  color: #c8ccd3 !important;
}

body.font-obfuscation-ready .rosin-transport-opt {
  font-weight: 600 !important;
}

/* Onboarding: no stray page scrollbars while dialogs show */
html.font-obfuscation-ready.rosin-shell-onboarding-pending,
html.font-obfuscation-ready.rosin-shell-onboarding-pending body {
  height: 100%;
  overflow: hidden !important;
}

body.font-obfuscation-ready .rosin-shell-loading {
  overflow: hidden;
}

body.font-obfuscation-ready .rosin-socials-dlg {
  overflow-x: hidden;
  overflow-y: auto;
  max-height: min(calc(100vh - 32px), 560px);
  box-sizing: border-box;
  scrollbar-width: none;
}

body.font-obfuscation-ready #rosin-trending-dlg .rosin-socials-lead,
body.font-obfuscation-ready #rosin-perf-dlg .rosin-socials-lead,
body.font-obfuscation-ready .rosin-onboard-toggle .s-toggle-copy,
body.font-obfuscation-ready .rosin-onboard-toggle .s-toggle-copy small {
  overflow-wrap: break-word !important;
  word-break: normal !important;
  hyphens: none !important;
}

body.font-obfuscation-ready #liveshare-dlg.rosin-socials-dlg {
  overflow-x: visible;
  max-width: min(400px, calc(100vw - 32px));
}

body.font-obfuscation-ready #liveshare-dlg .liveshare-dlg__lead {
  overflow: visible;
  white-space: normal;
  overflow-wrap: break-word;
}

body.font-obfuscation-ready .rosin-socials-dlg::-webkit-scrollbar {
  display: none;
}

body.font-obfuscation-ready .rosin-transport-actions,
body.font-obfuscation-ready .rosin-socials-list {
  overflow: hidden;
}

body.font-obfuscation-ready .rosin-transport-opt,
body.font-obfuscation-ready .rosin-socials-close,
body.font-obfuscation-ready .rosin-socials-link {
  min-width: 0;
  max-width: 100%;
}

body.font-obfuscation-ready #rosin-tor-dlg .rosin-transport-opt {
  min-width: 0;
  width: 100%;
}

body.font-obfuscation-ready #rosin-n-tor-dlg .rosin-n-theme-opt {
  min-width: 0;
  width: 100%;
}

body.font-obfuscation-ready .omnibar .search,
body.font-obfuscation-ready .omnibar-suggestion {
  font-weight: 500 !important;
}

body.font-obfuscation-ready .omnibar .search.ob-p,
body.font-obfuscation-ready .omnibar .search-input.ob-p,
body.font-obfuscation-ready .omnibar input.search.ob-p {
  font-family: "MontserratObf", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important;
  font-synthesis: none !important;
}

/* Logo letters must use MontserratObf via .ob-p (remapped PUA).
   Do NOT force plain Montserrat here — remapped text + Latin-only face = tofu. */
body.font-obfuscation-ready .loom-logo .ob-p,
body.font-obfuscation-ready .loom-logo-letter.ob-p {
  font-weight: 600 !important;
  letter-spacing: -0.04em !important;
  word-spacing: 0 !important;
  font-synthesis: none !important;
}

/* ONLY remapped text nodes (.ob-p / .obfuscated). Never style .obfuscate
   containers â€” that makes icons inherit a PUA-only font (tofu boxes). */
.ob-p,
body .ob-p,
html .ob-p,
.obfuscated,
body .obfuscated,
html .obfuscated {
  font-family: "MontserratObf", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important;
  font-variant-ligatures: none !important;
  font-kerning: none !important;
  text-rendering: auto !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
  letter-spacing: -0.045em !important;
  word-spacing: -0.03em !important;
}

body.font-obfuscation-ready .n-home-logo .ob-p,
body.font-obfuscation-ready .n-home-logo-text.ob-p,
body.font-obfuscation-ready .loom-logo .ob-p,
body.font-obfuscation-ready .loom-logo-letter.ob-p {
  font-family: "MontserratObf", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
  word-spacing: 0 !important;
}

/* Right-corner quicklink labels stay on the PUA face after remap */
body.font-obfuscation-ready .n-home-quicklinks .ob-p,
body.font-obfuscation-ready .n-home-quicklink > span.ob-p {
  font-family: "MontserratObf", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important;
  font-weight: 500 !important;
  letter-spacing: -0.03em !important;
}

.no-obfuscate,
[data-no-obfuscate],
[data-no-obfuscate] *,
.no-obfuscate *,
code,
pre,
script,
style,
[data-lucide],
.lucide,
.lucide-icon,
svg[data-lucide],
svg {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
  letter-spacing: 0 !important;
  word-spacing: normal !important;
}

input,
textarea,
select,
option {
}

input.ob-p,
textarea.ob-p {
  font-family: "MontserratObf", var(--ob-font-montserrat) !important;
  font-variant-ligatures: none !important;
  letter-spacing: -0.045em !important;
  word-spacing: -0.03em !important;
}

input.ob-p::placeholder,
textarea.ob-p::placeholder,
input.ob-p::-webkit-input-placeholder,
textarea.ob-p::-webkit-input-placeholder,
input.ob-p::-moz-placeholder,
textarea.ob-p::-moz-placeholder {
  font-family: "MontserratObf", var(--ob-font-montserrat) !important;
  font-variant-ligatures: none !important;
}

.menu-text,
.ui-text,
[data-obfuscate] {
  text-rendering: optimizeSpeed !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
}

.ob-p,
.obfuscated,
.obfuscate {
  line-height: inherit;
  font-feature-settings: normal !important;
}

body.font-obfuscation-ready .h-icon-box,
body.font-obfuscation-ready .bm-icon-box,
body.font-obfuscation-ready .icon-box {
  font-family: inherit !important;
  flex-shrink: 0;
}

body.font-obfuscation-ready .h-icon-box svg,
body.font-obfuscation-ready .bm-icon-box svg,
body.font-obfuscation-ready .icon-box svg,
body.font-obfuscation-ready .h-btn svg,
body.font-obfuscation-ready .h-search-icon,
body.font-obfuscation-ready .bm-search-icon,
body.font-obfuscation-ready .nav-btn [data-lucide],
body.font-obfuscation-ready .nav-btn svg {
  flex-shrink: 0 !important;
  font-family: inherit !important;
}

body.font-obfuscation-ready .h-title-block,
body.font-obfuscation-ready .bm-title-block {
  align-items: center;
}

body.font-obfuscation-ready .h-title-block > svg,
body.font-obfuscation-ready .h-title-block > [data-lucide],
body.font-obfuscation-ready .bm-title-block > svg,
body.font-obfuscation-ready .bm-title-block > [data-lucide] {
  flex-shrink: 0;
  margin-right: 0;
}

body.font-obfuscation-ready.view-g .g-search-icon,
body.font-obfuscation-ready.view-g .g-card-fav svg,
body.font-obfuscation-ready.view-g .g-card-cover-wrap svg {
  font-family: inherit !important;
  flex-shrink: 0;
}

body.font-obfuscation-ready.view-g .g-search-wrap {
  align-items: center;
}

body.font-obfuscation-ready.view-g .g-chip-row,
body.font-obfuscation-ready.view-g .g-toolbar-meta,
body.font-obfuscation-ready.view-g .g-card-meta,
body.font-obfuscation-ready.view-g .g-card-overlay {
}

body.font-obfuscation-ready.view-g .g-count,
body.font-obfuscation-ready.view-g .g-filtered-count,
body.font-obfuscation-ready.view-g .g-chip,
body.font-obfuscation-ready.view-g .g-empty,
body.font-obfuscation-ready.view-g .g-loading,
body.font-obfuscation-ready.view-g .g-search-wrap input[type="search"],
body.font-obfuscation-ready.view-g .g-offline-banner,
body.font-obfuscation-ready.view-g .g-offline-banner-sub {
  font-weight: 600 !important;
  font-synthesis: weight !important;
  -webkit-font-smoothing: antialiased !important;
}

body.font-obfuscation-ready.view-g .g-count.ob-p,
body.font-obfuscation-ready.view-g .g-filtered-count.ob-p,
body.font-obfuscation-ready.view-g .g-search-wrap input.ob-p,
body.font-obfuscation-ready.view-g .g-search-wrap input[type="search"].ob-p {
  font-family: "MontserratObf", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important;
  font-synthesis: none !important;
}

body.font-obfuscation-ready.view-g .g-search-wrap input.ob-p::placeholder,
body.font-obfuscation-ready.view-g .g-search-wrap input[type="search"].ob-p::placeholder,
body.font-obfuscation-ready.view-g .g-search-wrap input.ob-p::-webkit-input-placeholder,
body.font-obfuscation-ready.view-g .g-search-wrap input[type="search"].ob-p::-webkit-input-placeholder {
  font-family: "MontserratObf", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important;
}

body.font-obfuscation-ready.view-g .g-empty,
body.font-obfuscation-ready.view-g .g-loading {
  color: color-mix(in srgb, var(--text) 90%, var(--text-muted)) !important;
}

body.font-obfuscation-ready.view-g .g-chip.active,
body.font-obfuscation-ready.view-g .g-chip[aria-pressed="true"] {
  font-weight: 700 !important;
}

body.font-obfuscation-ready.view-g .g-card-ph {
  font-family: "Segoe UI", system-ui, -apple-system, sans-serif !important;
  font-weight: 500 !important;
  font-size: clamp(18px, 28cqi, 26px) !important;
  letter-spacing: 0.04em !important;
}

body.font-obfuscation-ready.view-g .g-card-overlay-title {
  font-size: clamp(10px, 4.2cqi, 13px) !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em !important;
  line-height: 1.25 !important;
  color: #fff !important;
}

body.font-obfuscation-ready.view-g .g-card-overlay-cat,
body.font-obfuscation-ready.view-g .g-card-overlay-author {
  font-weight: 500 !important;
}

body.font-obfuscation-ready.view-g .g-card-title.ob-p,
body.font-obfuscation-ready.view-g .g-card-overlay-title.ob-p,
body.font-obfuscation-ready.view-g .g-card-meta .ob-p,
body.font-obfuscation-ready.view-g .g-card-author.ob-p {
  font-family: "MontserratObf", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important;
  font-synthesis: none !important;
  font-variant-ligatures: none !important;
  letter-spacing: -0.03em !important;
}

body.font-obfuscation-ready .g-card-title,
body.font-obfuscation-ready .g-card-overlay-title,
body.font-obfuscation-ready .g-dialog-title,
body.font-obfuscation-ready strong,
body.font-obfuscation-ready b,
body.font-obfuscation-ready h1,
body.font-obfuscation-ready h2,
body.font-obfuscation-ready h3 {
}

body.font-obfuscation-ready.view-s h1,
body.font-obfuscation-ready.view-s h2,
body.font-obfuscation-ready.view-s h3,
body.font-obfuscation-ready #module-root.view-s h1,
body.font-obfuscation-ready #module-root.view-s h2,
body.font-obfuscation-ready #module-root.view-s h3 {
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
}

body.font-obfuscation-ready.view-s .s-section-head p,
body.font-obfuscation-ready.view-s .s-card-head p,
body.font-obfuscation-ready.view-s .s-field-label,
body.font-obfuscation-ready.view-s .s-toggle-copy small,
body.font-obfuscation-ready.view-s .s-about-text,
body.font-obfuscation-ready #module-root.view-s .s-section-head p,
body.font-obfuscation-ready #module-root.view-s .s-card-head p,
body.font-obfuscation-ready #module-root.view-s .s-field-label,
body.font-obfuscation-ready #module-root.view-s .s-toggle-copy small,
body.font-obfuscation-ready #module-root.view-s .s-about-text {
  font-weight: 500 !important;
  line-height: 1.45 !important;
  color: rgba(255, 255, 255, 0.52) !important;
}

body.font-obfuscation-ready.view-s .s-toggle-copy strong,
body.font-obfuscation-ready.view-s .s-keybind-label,
body.font-obfuscation-ready #module-root.view-s .s-toggle-copy strong,
body.font-obfuscation-ready #module-root.view-s .s-keybind-label {
  font-weight: 600 !important;
  color: rgba(255, 255, 255, 0.92) !important;
}

body.font-obfuscation-ready.view-s .s-nav-item,
body.font-obfuscation-ready.view-s .s-input,
body.font-obfuscation-ready.view-s .s-select,
body.font-obfuscation-ready.view-s .s-btn,
body.font-obfuscation-ready.view-s .s-preset-btn,
body.font-obfuscation-ready.view-s .s-keybind-bind,
body.font-obfuscation-ready #module-root.view-s .s-nav-item,
body.font-obfuscation-ready #module-root.view-s .s-input,
body.font-obfuscation-ready #module-root.view-s .s-select,
body.font-obfuscation-ready #module-root.view-s .s-btn,
body.font-obfuscation-ready #module-root.view-s .s-preset-btn,
body.font-obfuscation-ready #module-root.view-s .s-keybind-bind {
  font-weight: 500 !important;
}

body.font-obfuscation-ready.view-s .s-nav-item svg,
body.font-obfuscation-ready.view-s .s-aside-toggle svg,
body.font-obfuscation-ready.view-s .switch,
body.font-obfuscation-ready.view-s .s-kbd,
body.font-obfuscation-ready #module-root.view-s .s-nav-item svg,
body.font-obfuscation-ready #module-root.view-s .s-aside-toggle svg,
body.font-obfuscation-ready #module-root.view-s .switch,
body.font-obfuscation-ready #module-root.view-s .s-kbd {
  font-family: inherit !important;
}

body.font-obfuscation-ready.view-s .s-main-inner,
body.font-obfuscation-ready #module-root.view-s .s-main-inner {
}

body.font-obfuscation-ready.view-s .switch,
body.font-obfuscation-ready #module-root.view-s .switch {
  flex-shrink: 0;
}

/* Bookmarks + Extensions: Montserrat body; obfuscate only .obfuscate labels */
body.font-obfuscation-ready .bm-wrap,
body.font-obfuscation-ready .ext-wrap,
body.font-obfuscation-ready .ext-dialog,
body.font-obfuscation-ready .bm-dialog,
body.font-obfuscation-ready #module-root .bm-wrap,
body.font-obfuscation-ready #module-root .ext-wrap,
body.font-obfuscation-ready #module-root .ext-dialog,
body.font-obfuscation-ready #module-root .bm-dialog {
  font-family: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
}

body.font-obfuscation-ready .bm-wrap *:not(.obfuscate),
body.font-obfuscation-ready .ext-wrap *:not(.obfuscate),
body.font-obfuscation-ready .ext-dialog *:not(.obfuscate),
body.font-obfuscation-ready .bm-dialog *:not(.obfuscate),
body.font-obfuscation-ready #module-root .bm-wrap *:not(.obfuscate),
body.font-obfuscation-ready #module-root .ext-wrap *:not(.obfuscate),
body.font-obfuscation-ready #module-root .ext-dialog *:not(.obfuscate),
body.font-obfuscation-ready #module-root .bm-dialog *:not(.obfuscate) {
  font-family: inherit !important;
  font-variant-ligatures: normal !important;
  text-rendering: inherit !important;
}

/* History: remapped text only â€” never the whole .h-wrap (icons inherit tofu otherwise) */
body.font-obfuscation-ready .h-wrap .ob-p,
body.font-obfuscation-ready .h-wrap .obfuscated,
body.font-obfuscation-ready #module-root .h-wrap .ob-p,
body.font-obfuscation-ready #module-root .h-wrap .obfuscated {
  font-family: "MontserratObf", sans-serif !important;
  font-variant-ligatures: none !important;
  text-rendering: optimizeSpeed !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
}

body.font-obfuscation-ready .h-wrap .h-icon-box,
body.font-obfuscation-ready .h-wrap .bm-icon-box,
body.font-obfuscation-ready .h-wrap .icon-box,
body.font-obfuscation-ready .h-wrap svg,
body.font-obfuscation-ready .h-wrap [data-lucide],
body.font-obfuscation-ready .h-wrap .lucide,
body.font-obfuscation-ready .h-wrap i[data-lucide],
body.font-obfuscation-ready #module-root .h-wrap .h-icon-box,
body.font-obfuscation-ready #module-root .h-wrap svg,
body.font-obfuscation-ready #module-root .h-wrap [data-lucide],
body.font-obfuscation-ready #module-root .h-wrap .lucide,
body.font-obfuscation-ready #module-root .h-wrap i[data-lucide] {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
  letter-spacing: 0 !important;
}

body.font-obfuscation-ready .h-header h1,
body.font-obfuscation-ready #module-root .h-header h1 {
  letter-spacing: -0.02em !important;
  font-weight: 700 !important;
}

body.font-obfuscation-ready .h-sub,
body.font-obfuscation-ready #module-root .h-sub {
  font-weight: 500 !important;
}

body.font-obfuscation-ready .h-btn,
body.font-obfuscation-ready #module-root .h-btn {
  font-weight: 600 !important;
}

body.font-obfuscation-ready .h-group-title,
body.font-obfuscation-ready #module-root .h-group-title {
  font-weight: 600 !important;
}

body.font-obfuscation-ready .h-row-title,
body.font-obfuscation-ready #module-root .h-row-title {
  font-weight: 600 !important;
  line-height: 1.35 !important;
}

body.font-obfuscation-ready .h-row-time,
body.font-obfuscation-ready #module-root .h-row-time {
  font-weight: 500 !important;
}

body.font-obfuscation-ready .bm-card-title,
body.font-obfuscation-ready .bm-group-title,
body.font-obfuscation-ready #module-root .bm-card-title,
body.font-obfuscation-ready #module-root .bm-group-title {
  font-weight: 400 !important;
  line-height: 1.35 !important;
}

body.font-obfuscation-ready .h-row-url,
body.font-obfuscation-ready .h-row-time,
body.font-obfuscation-ready .h-sub,
body.font-obfuscation-ready .bm-sub,
body.font-obfuscation-ready .bm-card-url,
body.font-obfuscation-ready .ext-wrap .sub,
body.font-obfuscation-ready #module-root .h-row-url,
body.font-obfuscation-ready #module-root .h-row-time,
body.font-obfuscation-ready #module-root .h-sub,
body.font-obfuscation-ready #module-root .bm-sub,
body.font-obfuscation-ready #module-root .bm-card-url,
body.font-obfuscation-ready #module-root .ext-wrap .sub {
  line-height: 1.4 !important;
}

body.font-obfuscation-ready .bm-header h1,
body.font-obfuscation-ready #module-root .bm-header h1 {
  letter-spacing: -0.02em !important;
}

body.font-obfuscation-ready .ext-wrap .card-code,
body.font-obfuscation-ready .ext-wrap .card-meta,
body.font-obfuscation-ready #module-root .ext-wrap .card-code,
body.font-obfuscation-ready #module-root .ext-wrap .card-meta {
  font-family: ui-monospace, "Cascadia Code", "Segoe UI Mono", monospace !important;
}

/* Label text marked .obfuscate still needs the remapped font on the text
   host after runtime adds .ob-p â€” do not paint the whole marker container. */
body.font-obfuscation-ready .bm-wrap .obfuscate.ob-p,
body.font-obfuscation-ready .h-wrap .obfuscate.ob-p,
body.font-obfuscation-ready .ext-wrap .obfuscate.ob-p,
body.font-obfuscation-ready .ext-dialog .obfuscate.ob-p,
body.font-obfuscation-ready .bm-dialog .obfuscate.ob-p,
body.font-obfuscation-ready #module-root .bm-wrap .obfuscate.ob-p,
body.font-obfuscation-ready #module-root .h-wrap .obfuscate.ob-p,
body.font-obfuscation-ready #module-root .ext-wrap .obfuscate.ob-p,
body.font-obfuscation-ready #module-root .ext-dialog .obfuscate.ob-p,
body.font-obfuscation-ready #module-root .bm-dialog .obfuscate.ob-p {
  font-family: "MontserratObf", sans-serif !important;
  text-rendering: optimizeSpeed !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
}

/* === lucide / svg hard override (must win over MontserratObf * rules) === */
body.font-obfuscation-ready svg,
body.font-obfuscation-ready svg *,
body.font-obfuscation-ready [data-lucide],
body.font-obfuscation-ready i[data-lucide],
body.font-obfuscation-ready .lucide,
body.font-obfuscation-ready .lucide-icon,
body.font-obfuscation-ready .h-icon-box,
body.font-obfuscation-ready .bm-icon-box,
body.font-obfuscation-ready .icon-box,
body.font-obfuscation-ready .h-icon-box svg,
body.font-obfuscation-ready .bm-icon-box svg,
body.font-obfuscation-ready .icon-box svg,
body.font-obfuscation-ready .nav-btn svg,
body.font-obfuscation-ready .nav-btn [data-lucide],
body.font-obfuscation-ready .tab-bar svg,
body.font-obfuscation-ready .tab-bar [data-lucide],
body.font-obfuscation-ready .omnibar svg,
body.font-obfuscation-ready .omnibar [data-lucide],
body.font-obfuscation-ready .omnibar-sw-lucide,
body.font-obfuscation-ready #module-root svg,
body.font-obfuscation-ready #module-root [data-lucide],
body.font-obfuscation-ready #module-root .lucide,
body.font-obfuscation-ready .rosin-socials-dlg svg,
body.font-obfuscation-ready .rosin-socials-dlg [data-lucide],
body.font-obfuscation-ready .rosin-socials-dlg .lucide,
body.font-obfuscation-ready .rosin-socials-title svg,
body.font-obfuscation-ready .rosin-socials-title [data-lucide],
body.font-obfuscation-ready .rosin-transport-opt svg,
body.font-obfuscation-ready .rosin-transport-opt [data-lucide],
body.font-obfuscation-ready .new-tab svg,
body.font-obfuscation-ready .new-tab [data-lucide],
body.font-obfuscation-ready .tab-bar-new-tab svg,
body.font-obfuscation-ready .tab-bar-new-tab [data-lucide],
body.font-obfuscation-ready .tab-sidebar-toggle svg,
body.font-obfuscation-ready .tab-sidebar-toggle [data-lucide],
body.font-obfuscation-ready .loom-search-leading svg,
body.font-obfuscation-ready .loom-search-trail-btn svg,
body.font-obfuscation-ready .loom-apps-menu-icon,
body.font-obfuscation-ready .loom-icon-btn svg {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
  letter-spacing: 0 !important;
  word-spacing: normal !important;
  font-kerning: auto !important;
  font-variant-ligatures: normal !important;
  pointer-events: none !important;
}

body.font-obfuscation-ready.view-g .g-card-fav svg,
body.font-obfuscation-ready.view-g .g-card-fav [data-lucide],
body.font-obfuscation-ready.view-g .g-card-fav .lucide {
  pointer-events: none !important;
}

/* Pin lucide boxes to px so PUA parent font-size never collapses them to tofu */
body.font-obfuscation-ready .rosin-socials-dlg svg.lucide,
body.font-obfuscation-ready .rosin-socials-dlg [data-lucide],
body.font-obfuscation-ready .rosin-socials-title > svg,
body.font-obfuscation-ready .rosin-socials-title > [data-lucide],
body.font-obfuscation-ready .rosin-transport-opt > svg,
body.font-obfuscation-ready .rosin-transport-opt > [data-lucide],
body.font-obfuscation-ready .rosin-n-theme-dlg svg.lucide,
body.font-obfuscation-ready .rosin-n-theme-dlg [data-lucide],
body.font-obfuscation-ready .rosin-n-theme-title > svg,
body.font-obfuscation-ready .rosin-n-theme-title > [data-lucide],
body.font-obfuscation-ready .rosin-n-theme-opt > svg,
body.font-obfuscation-ready .rosin-n-theme-opt > [data-lucide],
body.font-obfuscation-ready #rosin-n-shoutout-dlg svg,
body.font-obfuscation-ready #rosin-n-shoutout-dlg [data-lucide],
body.font-obfuscation-ready .new-tab svg,
body.font-obfuscation-ready .new-tab [data-lucide],
body.font-obfuscation-ready .tab-bar-new-tab svg,
body.font-obfuscation-ready .tab-bar-new-tab [data-lucide],
body.font-obfuscation-ready .tab-sidebar-toggle svg,
body.font-obfuscation-ready .tab-sidebar-toggle [data-lucide] {
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  min-height: 18px !important;
  max-width: 24px !important;
  max-height: 24px !important;
  flex-shrink: 0 !important;
  display: inline-block !important;
  overflow: visible !important;
  vertical-align: middle !important;
  stroke-width: 2 !important;
}

body.font-obfuscation-ready .rosin-socials-title > svg.lucide,
body.font-obfuscation-ready .rosin-transport-opt > svg.lucide {
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  min-height: 20px !important;
}

body.font-obfuscation-ready .new-tab svg,
body.font-obfuscation-ready .tab-bar-new-tab svg {
  width: 18px !important;
  height: 18px !important;
}

body.font-obfuscation-ready .rosin-socials-title,
body.font-obfuscation-ready .rosin-transport-opt {
  font-family: "Segoe UI", system-ui, -apple-system, Roboto, "DM Sans", sans-serif !important;
}

body.font-obfuscation-ready .rosin-socials-title > span.ob-p,
body.font-obfuscation-ready .rosin-transport-opt > span.ob-p,
body.font-obfuscation-ready .rosin-socials-dlg .ob-p:not(svg):not([data-lucide]):not(.lucide) {
  font-family: "MontserratObf", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important;
}
/* === tofu-fix: newtab language + corner + shoutout === */
body.font-obfuscation-ready .loom-language,
body.font-obfuscation-ready .loom-language a,
body.font-obfuscation-ready .tab-tl-dock,
body.font-obfuscation-ready .tab-tl-trending,
body.font-obfuscation-ready .tab-tl-add {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
}

body.font-obfuscation-ready .loom-language .ob-p,
body.font-obfuscation-ready .loom-language a.ob-p,
body.font-obfuscation-ready .loom-language span.ob-p,
body.font-obfuscation-ready .tab-tl-trending > span.ob-p,
body.font-obfuscation-ready .tab-tl-add.ob-p {
  font-family: "MontserratObf", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important;
}

body.font-obfuscation-ready .tab-tl-dock svg,
body.font-obfuscation-ready .tab-tl-dock img,
body.font-obfuscation-ready .tab-tl-trending > svg {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
  flex-shrink: 0 !important;
}

body.font-obfuscation-ready .loom-logo .ob-p,
body.font-obfuscation-ready .loom-logo-letter.ob-p {
  font-family: "MontserratObf", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important;
  font-weight: 600 !important;
}

/* Remapped logo + corner labels: PUA face only on .ob-p (never plain system on the text host). */
body.font-obfuscation-ready .n-home-logo .ob-p,
body.font-obfuscation-ready .n-home-logo-text.ob-p,
body.font-obfuscation-ready .n-home-logo-text.obfuscated,
body.font-obfuscation-ready .n-home-quicklinks .ob-p,
body.font-obfuscation-ready .n-home-quicklink > span.ob-p {
  font-family: "MontserratObf", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
  visibility: visible !important;
}

body.font-obfuscation-ready .n-home-quicklink svg,
body.font-obfuscation-ready .n-home-quicklink [data-lucide],
body.font-obfuscation-ready .n-home-quicklink i[data-lucide],
body.font-obfuscation-ready .n-home-quicklink .lucide,
body.font-obfuscation-ready .n-home-logo > svg {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
  flex-shrink: 0 !important;
  font-size: 14px !important;
  line-height: 1 !important;
  pointer-events: none !important;
}

body.font-obfuscation-ready .n-home-quicklink > span,
body.font-obfuscation-ready .n-home-quicklink > span.ob-p {
  pointer-events: none !important;
}

body.font-obfuscation-ready .n-bookmark-icon,
body.font-obfuscation-ready .n-bookmark-icon svg,
body.font-obfuscation-ready .n-bookmark-icon [data-lucide],
body.font-obfuscation-ready .n-bookmark-icon .lucide,
body.font-obfuscation-ready .n-bookmark-icon i[data-lucide] {
  pointer-events: none !important;
}

body.font-obfuscation-ready .n-bookmark-edit-btn svg,
body.font-obfuscation-ready .n-bookmark-delete-btn svg,
body.font-obfuscation-ready .n-bookmark-edit-btn [data-lucide],
body.font-obfuscation-ready .n-bookmark-delete-btn [data-lucide] {
  pointer-events: none !important;
}

/* Shoutout stays obfuscated — no data-no-obfuscate; .ob-p uses MontserratObf */
body.font-obfuscation-ready #rosin-n-shoutout-dlg,
body.font-obfuscation-ready #rosin-n-shoutout-dlg .rosin-n-theme-title,
body.font-obfuscation-ready #rosin-n-shoutout-dlg .rosin-n-theme-actions {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
}

body.font-obfuscation-ready #rosin-n-shoutout-dlg .rosin-n-theme-title > span.ob-p,
body.font-obfuscation-ready #rosin-n-shoutout-dlg .rosin-n-shoutout-names.ob-p,
body.font-obfuscation-ready #rosin-n-shoutout-dlg .rosin-n-shoutout-heart.ob-p,
body.font-obfuscation-ready #rosin-n-shoutout-dlg .rosin-n-theme-opt > span.ob-p {
  font-family: "MontserratObf", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important;
}

body.font-obfuscation-ready #rosin-n-shoutout-dlg svg,
body.font-obfuscation-ready #rosin-n-shoutout-dlg [data-lucide] {
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  min-height: 20px !important;
  flex-shrink: 0 !important;
  display: inline-block !important;
  overflow: visible !important;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
}
