/* ==========================================================================
   L96.APP — SEO-Preserving Light Aesthetic Variants (A, B, C)
   --------------------------------------------------------------------------
   - Preserves 100% of the existing DOM structure, headings (<h1>/<h2>/<h3>),
     internal link graph, and image URLs across all pages.
   - Variant A: Tufte Editorial Warm Light (Warm Ivory Paper + Newsreader Serif)
   - Variant B: L96 Classic Modernized (Original #090b10 Header + Alabaster Body)
   - Variant C: Clean Technical Light (Crisp White + 1px Grid + JetBrains Mono)
   - Variant D: Current Dark Tactical RPG (Reference Baseline — untouched)
   ========================================================================== */

/* --------------------------------------------------------------------------
   0. Micro-Visualizations (Shared across Variants A, B, C, D)
   -------------------------------------------------------------------------- */
.roe-fmb-glyph {
    display: inline-flex;
    align-items: center;
    gap: 1px;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 0.58rem;
    font-weight: 700;
    line-height: 1;
    margin-left: 0.25rem;
    vertical-align: middle;
}

.roe-fmb-glyph i {
    font-style: normal;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 12px;
    height: 12px;
    border-radius: 2px;
    border: 1px solid rgba(148, 163, 184, 0.35);
    color: rgba(148, 163, 184, 0.65);
    background: transparent;
}

.roe-fmb-glyph i.on {
    background: #d4a359;
    border-color: #d4a359;
    color: #0b0d13;
}

.roe-fmb-glyph i.opt {
    border-style: dashed;
    border-color: #d4a359;
    color: #d4a359;
}

.roe-range-bars {
    display: inline-flex;
    align-items: flex-end;
    gap: 2px;
    height: 10px;
    vertical-align: middle;
}

.roe-range-bars i {
    display: inline-block;
    width: 3px;
    height: 8px;
    border-radius: 1px;
    background: rgba(148, 163, 184, 0.3);
}

.roe-range-bars i.on {
    background: #d4a359;
}

/* ==========================================================================
   1. SHARED LIGHT MODE BASELINE (html.variant-A, html.variant-B, html.variant-C)
   ========================================================================== */
html.variant-A,
html.variant-B,
html.variant-C {
    color-scheme: light;
}

html.variant-A body,
html.variant-B body,
html.variant-C body {
    background: var(--p-bg) !important;
    color: var(--p-ink) !important;
    font-family: var(--p-font-body) !important;
}

/* Global Panels, Cards, Sections in Light Mode */
html.variant-A .l96-panel,
html.variant-B .l96-panel,
html.variant-C .l96-panel {
    background: var(--p-surface) !important;
    border: 1px solid var(--p-border) !important;
    border-radius: var(--p-radius) !important;
    box-shadow: var(--p-shadow) !important;
    color: var(--p-ink) !important;
}

html.variant-A .l96-panel-gold,
html.variant-B .l96-panel-gold,
html.variant-C .l96-panel-gold {
    border-color: var(--p-border-strong) !important;
}

html.variant-A .l96-card,
html.variant-B .l96-card,
html.variant-C .l96-card {
    background: var(--p-surface) !important;
    border: 1px solid var(--p-border) !important;
    border-radius: var(--p-radius) !important;
    box-shadow: var(--p-shadow) !important;
    color: var(--p-ink) !important;
}

html.variant-A .l96-card:hover,
html.variant-B .l96-card:hover,
html.variant-C .l96-card:hover {
    border-color: var(--p-accent) !important;
    box-shadow: var(--p-shadow-hover) !important;
}

html.variant-A .l96-card-title,
html.variant-B .l96-card-title,
html.variant-C .l96-card-title,
html.variant-A .l96-card h3,
html.variant-B .l96-card h3,
html.variant-C .l96-card h3,
html.variant-A .l96-section-title,
html.variant-B .l96-section-title,
html.variant-C .l96-section-title,
html.variant-A .l96-section h2,
html.variant-B .l96-section h2,
html.variant-C .l96-section h2,
html.variant-A .l96-hero-name-title,
html.variant-B .l96-hero-name-title,
html.variant-C .l96-hero-name-title,
html.variant-A .l96-panel-heading,
html.variant-B .l96-panel-heading,
html.variant-C .l96-panel-heading,
html.variant-A .l96-panel h3,
html.variant-B .l96-panel h3,
html.variant-C .l96-panel h3 {
    color: var(--p-ink) !important;
    font-family: var(--p-font-heading) !important;
}

html.variant-A .l96-card-excerpt,
html.variant-B .l96-card-excerpt,
html.variant-C .l96-card-excerpt,
html.variant-A .l96-section p,
html.variant-B .l96-section p,
html.variant-C .l96-section p {
    color: var(--p-ink-secondary) !important;
}

html.variant-A .l96-section-header,
html.variant-B .l96-section-header,
html.variant-C .l96-section-header {
    border-bottom: 1px solid var(--p-border) !important;
}

html.variant-A .l96-section-title::before,
html.variant-B .l96-section-title::before,
html.variant-C .l96-section-title::before,
html.variant-A .l96-heading-bar,
html.variant-B .l96-heading-bar,
html.variant-C .l96-heading-bar {
    background: var(--p-accent) !important;
}

/* Breadcrumbs & Buttons */
html.variant-A .l96-breadcrumb,
html.variant-B .l96-breadcrumb,
html.variant-C .l96-breadcrumb {
    color: var(--p-ink-muted) !important;
}

html.variant-A .l96-breadcrumb a,
html.variant-B .l96-breadcrumb a,
html.variant-C .l96-breadcrumb a {
    color: var(--p-ink-secondary) !important;
}

html.variant-A .l96-breadcrumb a:hover,
html.variant-B .l96-breadcrumb a:hover,
html.variant-C .l96-breadcrumb a:hover,
html.variant-A .l96-breadcrumb strong,
html.variant-B .l96-breadcrumb strong,
html.variant-C .l96-breadcrumb strong {
    color: var(--p-accent) !important;
}

html.variant-A .l96-btn-gold,
html.variant-B .l96-btn-gold,
html.variant-C .l96-btn-gold,
html.variant-A .l96-btn-primary,
html.variant-B .l96-btn-primary,
html.variant-C .l96-btn-primary {
    background: var(--p-accent) !important;
    color: #ffffff !important;
    border: 1px solid var(--p-accent) !important;
    border-radius: var(--p-btn-radius) !important;
    box-shadow: none !important;
}

html.variant-A .l96-btn-ghost,
html.variant-B .l96-btn-ghost,
html.variant-C .l96-btn-ghost {
    background: var(--p-surface-alt) !important;
    color: var(--p-ink) !important;
    border: 1px solid var(--p-border) !important;
    border-radius: var(--p-btn-radius) !important;
}

html.variant-A .l96-btn-ghost:hover,
html.variant-B .l96-btn-ghost:hover,
html.variant-C .l96-btn-ghost:hover {
    border-color: var(--p-accent) !important;
    color: var(--p-accent) !important;
}

/* Portrait & 6-Cell Tactical Attribute Matrix on /heroes/{slug} */
html.variant-A .l96-portrait-frame,
html.variant-B .l96-portrait-frame,
html.variant-C .l96-portrait-frame {
    border: 1px solid var(--p-border-strong) !important;
    border-radius: var(--p-radius) !important;
    box-shadow: var(--p-shadow) !important;
    background: var(--p-surface-alt) !important;
}

html.variant-A .l96-attr-box,
html.variant-B .l96-attr-box,
html.variant-C .l96-attr-box {
    background: var(--p-surface-alt) !important;
    border: 1px solid var(--p-border) !important;
    border-radius: var(--p-btn-radius) !important;
}

html.variant-A .l96-attr-box:hover,
html.variant-B .l96-attr-box:hover,
html.variant-C .l96-attr-box:hover {
    border-color: var(--p-accent) !important;
}

html.variant-A .l96-attr-label,
html.variant-B .l96-attr-label,
html.variant-C .l96-attr-label {
    color: var(--p-ink-muted) !important;
    font-family: var(--p-font-mono) !important;
}

html.variant-A .l96-attr-value,
html.variant-B .l96-attr-value,
html.variant-C .l96-attr-value {
    color: var(--p-ink) !important;
}

html.variant-A .l96-attr-accent,
html.variant-B .l96-attr-accent,
html.variant-C .l96-attr-accent,
html.variant-A .l96-accent-text,
html.variant-B .l96-accent-text,
html.variant-C .l96-accent-text {
    color: var(--p-accent) !important;
}

html.variant-A .l96-attr-sub,
html.variant-B .l96-attr-sub,
html.variant-C .l96-attr-sub {
    color: var(--p-ink-muted) !important;
}

/* Tactical Tags & Matchups on /heroes/{slug} */
html.variant-A .l96-panel-kicker,
html.variant-B .l96-panel-kicker,
html.variant-C .l96-panel-kicker {
    color: var(--p-ink) !important;
    border-bottom: 1px solid var(--p-border);
    padding-bottom: 0.5rem;
}

html.variant-A .l96-tag-label-spec,
html.variant-B .l96-tag-label-spec,
html.variant-C .l96-tag-label-spec {
    color: #b45309 !important;
}

html.variant-A .l96-tag-label-syn,
html.variant-B .l96-tag-label-syn,
html.variant-C .l96-tag-label-syn {
    color: #047857 !important;
}

html.variant-A .l96-tag-label-weak,
html.variant-B .l96-tag-label-weak,
html.variant-C .l96-tag-label-weak {
    color: #b91c1c !important;
}

html.variant-A .l96-tag-spec,
html.variant-B .l96-tag-spec,
html.variant-C .l96-tag-spec {
    background: #fdf3dc !important;
    border: 1px solid #c98a27 !important;
    color: #5c3a04 !important;
    font-weight: 600 !important;
}

html.variant-A .l96-tag-syn,
html.variant-B .l96-tag-syn,
html.variant-C .l96-tag-syn {
    background: #e6f4ea !important;
    border: 1px solid #2e8b57 !important;
    color: #0d4722 !important;
    font-weight: 600 !important;
}

html.variant-A .l96-tag-weak,
html.variant-B .l96-tag-weak,
html.variant-C .l96-tag-weak {
    background: #fce8e6 !important;
    border: 1px solid #c53030 !important;
    color: #69140e !important;
    font-weight: 600 !important;
}

/* Alert Panel, Evaluation Quote & Summary on /heroes/{slug} */
html.variant-A .l96-alert-panel,
html.variant-B .l96-alert-panel,
html.variant-C .l96-alert-panel {
    background: #fef2f2 !important;
    border: 1px solid #fecaca !important;
    border-left: 3px solid var(--p-accent) !important;
}

html.variant-A .l96-alert-title,
html.variant-B .l96-alert-title,
html.variant-C .l96-alert-title {
    color: #991b1b !important;
}

html.variant-A .l96-alert-body,
html.variant-B .l96-alert-body,
html.variant-C .l96-alert-body {
    color: #450a0a !important;
}

html.variant-A .l96-reviewer-badge,
html.variant-B .l96-reviewer-badge,
html.variant-C .l96-reviewer-badge {
    background: var(--p-surface-alt) !important;
    border-color: var(--p-border) !important;
    color: var(--p-ink-secondary) !important;
}

html.variant-A .l96-eval-quote,
html.variant-B .l96-eval-quote,
html.variant-C .l96-eval-quote {
    background: var(--p-surface-alt) !important;
    border-left: 3px solid var(--p-accent) !important;
    color: var(--p-ink) !important;
    border-radius: 0 var(--p-btn-radius) var(--p-btn-radius) 0 !important;
}

html.variant-A .l96-eval-summary,
html.variant-B .l96-eval-summary,
html.variant-C .l96-eval-summary {
    color: var(--p-ink-secondary) !important;
}

html.variant-A .l96-eval-summary strong,
html.variant-B .l96-eval-summary strong,
html.variant-C .l96-eval-summary strong {
    color: var(--p-ink) !important;
}

/* Skill Tabs & Skill Inspector Boxes on /heroes/{slug} */
html.variant-A .l96-skill-tab,
html.variant-B .l96-skill-tab,
html.variant-C .l96-skill-tab {
    background: var(--p-surface-alt) !important;
    border: 1px solid var(--p-border) !important;
    border-radius: var(--p-btn-radius) !important;
    color: var(--p-ink-secondary) !important;
    font-family: var(--p-font-mono) !important;
}

html.variant-A .l96-skill-tab.combat,
html.variant-B .l96-skill-tab.combat,
html.variant-C .l96-skill-tab.combat {
    border-color: var(--p-accent) !important;
    color: var(--p-accent) !important;
}

html.variant-A .l96-skill-tab.combat::after,
html.variant-B .l96-skill-tab.combat::after,
html.variant-C .l96-skill-tab.combat::after {
    color: var(--p-accent) !important;
}

html.variant-A .l96-skill-tab.active,
html.variant-B .l96-skill-tab.active,
html.variant-C .l96-skill-tab.active {
    background: var(--p-accent) !important;
    border-color: var(--p-accent) !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

html.variant-A .l96-skill-tab.active::after,
html.variant-B .l96-skill-tab.active::after,
html.variant-C .l96-skill-tab.active::after {
    color: #ffffff !important;
}

html.variant-A .l96-skill-detail-box,
html.variant-B .l96-skill-detail-box,
html.variant-C .l96-skill-detail-box {
    background: var(--p-surface-alt) !important;
    border: 1px solid var(--p-border) !important;
    border-radius: var(--p-radius) !important;
}

html.variant-A .l96-skill-detail-box.is-combat,
html.variant-B .l96-skill-detail-box.is-combat,
html.variant-C .l96-skill-detail-box.is-combat {
    border-left: 3px solid var(--p-accent) !important;
}

html.variant-A .l96-skill-detail-header,
html.variant-B .l96-skill-detail-header,
html.variant-C .l96-skill-detail-header {
    border-bottom: 1px solid var(--p-border) !important;
}

html.variant-A .l96-skill-title,
html.variant-B .l96-skill-title,
html.variant-C .l96-skill-title {
    color: var(--p-ink) !important;
    font-family: var(--p-font-heading) !important;
}

html.variant-A .l96-skill-meta-pill,
html.variant-B .l96-skill-meta-pill,
html.variant-C .l96-skill-meta-pill {
    background: var(--p-surface) !important;
    border: 1px solid var(--p-border) !important;
    color: var(--p-ink-secondary) !important;
    font-family: var(--p-font-mono) !important;
}

html.variant-A .l96-skill-desc,
html.variant-B .l96-skill-desc,
html.variant-C .l96-skill-desc {
    color: var(--p-ink) !important;
}

html.variant-A .l96-combat-trio-wrap,
html.variant-B .l96-combat-trio-wrap,
html.variant-C .l96-combat-trio-wrap {
    border-top: 1px solid var(--p-border) !important;
}

html.variant-A .l96-combat-trio-label,
html.variant-B .l96-combat-trio-label,
html.variant-C .l96-combat-trio-label {
    color: var(--p-ink-muted) !important;
    font-family: var(--p-font-mono) !important;
}

html.variant-A .l96-combat-mini-card,
html.variant-B .l96-combat-mini-card,
html.variant-C .l96-combat-mini-card {
    background: var(--p-surface-alt) !important;
    border: 1px solid var(--p-border) !important;
    border-radius: var(--p-btn-radius) !important;
}

html.variant-A .l96-combat-mini-card.active,
html.variant-B .l96-combat-mini-card.active,
html.variant-C .l96-combat-mini-card.active {
    border-color: var(--p-accent) !important;
    background: var(--p-surface) !important;
    box-shadow: 0 0 0 1px var(--p-accent) !important;
}

html.variant-A .l96-combat-mini-num,
html.variant-B .l96-combat-mini-num,
html.variant-C .l96-combat-mini-num {
    color: var(--p-ink) !important;
    font-family: var(--p-font-mono) !important;
}

html.variant-A .l96-combat-mini-meta,
html.variant-B .l96-combat-mini-meta,
html.variant-C .l96-combat-mini-meta {
    color: var(--p-ink-muted) !important;
    font-family: var(--p-font-mono) !important;
}

html.variant-A .l96-combat-mini-type,
html.variant-B .l96-combat-mini-type,
html.variant-C .l96-combat-mini-type {
    color: var(--p-accent) !important;
}

html.variant-A .l96-combat-mini-desc,
html.variant-B .l96-combat-mini-desc,
html.variant-C .l96-combat-mini-desc {
    color: var(--p-ink-secondary) !important;
}

html.variant-A .l96-dev-box,
html.variant-B .l96-dev-box,
html.variant-C .l96-dev-box {
    background: var(--p-surface-alt) !important;
    border: 1px solid var(--p-border) !important;
    border-radius: var(--p-btn-radius) !important;
}

html.variant-A .l96-dev-title,
html.variant-B .l96-dev-title,
html.variant-C .l96-dev-title {
    color: var(--p-ink) !important;
}

html.variant-A .l96-dev-desc,
html.variant-B .l96-dev-desc,
html.variant-C .l96-dev-desc {
    color: var(--p-ink-secondary) !important;
}

/* ==========================================================================
   2. HEROES DATABASE (/heroes) LIGHT OVERRIDES (Variants A, B, C)
   ========================================================================== */
html.variant-A .roe-filter-box,
html.variant-B .roe-filter-box,
html.variant-C .roe-filter-box {
    background: var(--p-surface) !important;
    border: 1px solid var(--p-border-strong) !important;
    border-radius: var(--p-radius) !important;
    box-shadow: var(--p-shadow) !important;
    color: var(--p-ink) !important;
}

html.variant-A .roe-search-input,
html.variant-B .roe-search-input,
html.variant-C .roe-search-input {
    background: var(--p-surface-alt) !important;
    border: 1px solid var(--p-border) !important;
    border-radius: var(--p-btn-radius) !important;
    color: var(--p-ink) !important;
}

html.variant-A .roe-search-input:focus,
html.variant-B .roe-search-input:focus,
html.variant-C .roe-search-input:focus {
    border-color: var(--p-accent) !important;
    background: #ffffff !important;
}

html.variant-A .roe-counter-badge,
html.variant-B .roe-counter-badge,
html.variant-C .roe-counter-badge {
    background: var(--p-surface-alt) !important;
    border: 1px solid var(--p-border) !important;
    color: var(--p-ink-secondary) !important;
    font-family: var(--p-font-mono) !important;
}

html.variant-A .roe-counter-num,
html.variant-B .roe-counter-num,
html.variant-C .roe-counter-num {
    color: var(--p-accent) !important;
}

html.variant-A .roe-filter-row,
html.variant-B .roe-filter-row,
html.variant-C .roe-filter-row {
    border-top: 1px solid var(--p-border) !important;
}

html.variant-A .roe-filter-label,
html.variant-B .roe-filter-label,
html.variant-C .roe-filter-label {
    color: var(--p-ink-muted) !important;
    font-family: var(--p-font-mono) !important;
}

html.variant-A .roe-main-row-label,
html.variant-B .roe-main-row-label,
html.variant-C .roe-main-row-label {
    color: var(--p-ink-secondary) !important;
}

html.variant-A .roe-pill,
html.variant-B .roe-pill,
html.variant-C .roe-pill {
    background: var(--p-surface-alt) !important;
    border: 1px solid var(--p-border) !important;
    color: var(--p-ink-secondary) !important;
    border-radius: var(--p-pill-radius) !important;
}

html.variant-A .roe-pill:hover,
html.variant-B .roe-pill:hover,
html.variant-C .roe-pill:hover {
    border-color: var(--p-accent) !important;
    color: var(--p-ink) !important;
}

html.variant-A .roe-pill.active,
html.variant-B .roe-pill.active,
html.variant-C .roe-pill.active {
    background: var(--p-pill-active-bg) !important;
    border-color: var(--p-pill-active-bg) !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

html.variant-A .roe-select,
html.variant-B .roe-select,
html.variant-C .roe-select {
    background: var(--p-surface-alt) !important;
    border: 1px solid var(--p-border) !important;
    border-radius: var(--p-btn-radius) !important;
    color: var(--p-ink) !important;
}

html.variant-A .roe-mech-chip,
html.variant-B .roe-mech-chip,
html.variant-C .roe-mech-chip {
    background: var(--p-surface-alt) !important;
    border: 1px solid var(--p-border) !important;
    color: var(--p-ink-secondary) !important;
    border-radius: var(--p-btn-radius) !important;
}

html.variant-A .roe-mech-chip:hover,
html.variant-B .roe-mech-chip:hover,
html.variant-C .roe-mech-chip:hover {
    border-color: var(--p-accent) !important;
    color: var(--p-accent) !important;
}

html.variant-A .roe-mech-chip.active,
html.variant-B .roe-mech-chip.active,
html.variant-C .roe-mech-chip.active {
    background: var(--p-accent) !important;
    border-color: var(--p-accent) !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

/* Hero Mini-Cards on /heroes */
html.variant-A .roe-card,
html.variant-B .roe-card,
html.variant-C .roe-card {
    background: var(--p-surface) !important;
    border: 1px solid var(--p-border) !important;
    border-radius: var(--p-radius) !important;
    box-shadow: var(--p-shadow) !important;
}

html.variant-A .roe-card:hover,
html.variant-B .roe-card:hover,
html.variant-C .roe-card:hover {
    border-color: var(--p-accent) !important;
    box-shadow: var(--p-shadow-hover) !important;
}

html.variant-A .roe-card.selected,
html.variant-B .roe-card.selected,
html.variant-C .roe-card.selected {
    border-color: var(--p-accent) !important;
    background: var(--p-surface-alt) !important;
    box-shadow: 0 0 0 2px var(--p-accent) !important;
}

html.variant-A .roe-card-name,
html.variant-B .roe-card-name,
html.variant-C .roe-card-name {
    color: var(--p-ink) !important;
    font-family: var(--p-font-heading) !important;
}

html.variant-A .roe-card-meta,
html.variant-B .roe-card-meta,
html.variant-C .roe-card-meta {
    color: var(--p-ink-muted) !important;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.2rem;
    flex-wrap: wrap;
}

/* Detail Drawer on /heroes */
html.variant-A .roe-detail-drawer,
html.variant-B .roe-detail-drawer,
html.variant-C .roe-detail-drawer {
    background: var(--p-surface) !important;
    border: 1.5px solid var(--p-accent) !important;
    border-radius: var(--p-radius) !important;
    box-shadow: var(--p-shadow-hover) !important;
    color: var(--p-ink) !important;
}

html.variant-A .roe-drawer-top,
html.variant-B .roe-drawer-top,
html.variant-C .roe-drawer-top {
    border-bottom: 1px solid var(--p-border) !important;
}

html.variant-A .roe-drawer-portrait,
html.variant-B .roe-drawer-portrait,
html.variant-C .roe-drawer-portrait {
    border: 1px solid var(--p-border-strong) !important;
    box-shadow: var(--p-shadow) !important;
}

html.variant-A .roe-drawer-title,
html.variant-B .roe-drawer-title,
html.variant-C .roe-drawer-title {
    color: var(--p-ink) !important;
    font-family: var(--p-font-heading) !important;
}

html.variant-A .roe-stat-tag,
html.variant-B .roe-stat-tag,
html.variant-C .roe-stat-tag {
    background: var(--p-surface-alt) !important;
    border: 1px solid var(--p-border-strong) !important;
    color: var(--p-ink) !important;
    font-weight: 500 !important;
}

html.variant-A .roe-stat-tag strong,
html.variant-B .roe-stat-tag strong,
html.variant-C .roe-stat-tag strong {
    color: var(--p-accent) !important;
    font-weight: 700 !important;
}

html.variant-A .roe-drawer-note,
html.variant-B .roe-drawer-note,
html.variant-C .roe-drawer-note {
    background: var(--p-surface-alt) !important;
    border-left: 3px solid var(--p-accent) !important;
    color: var(--p-ink) !important;
}

html.variant-A .roe-drawer-note {
    font-family: 'Newsreader', Georgia, serif !important;
    font-style: italic !important;
    font-size: 1.02rem !important;
    background: #f5efe4 !important;
}

.roe-btn-skin-toggle.active {
    background: #9333ea !important;
    border-color: #c084fc !important;
}

html.variant-A .roe-btn-skin-toggle,
html.variant-B .roe-btn-skin-toggle,
html.variant-C .roe-btn-skin-toggle {
    background: var(--p-surface-alt) !important;
    border: 1px solid var(--p-border-strong) !important;
    color: var(--p-ink) !important;
    border-radius: var(--p-btn-radius) !important;
}

html.variant-A .roe-btn-skin-toggle.active,
html.variant-B .roe-btn-skin-toggle.active,
html.variant-C .roe-btn-skin-toggle.active {
    background: var(--p-accent) !important;
    border-color: var(--p-accent) !important;
    color: #ffffff !important;
}

html.variant-A .roe-drawer-author,
html.variant-B .roe-drawer-author,
html.variant-C .roe-drawer-author {
    color: var(--p-accent) !important;
}

html.variant-A .roe-drawer-alert,
html.variant-B .roe-drawer-alert,
html.variant-C .roe-drawer-alert {
    background: #fef2f2 !important;
    border: 1px solid #fecaca !important;
    border-left: 3px solid var(--p-accent) !important;
    color: #7f1d1d !important;
}

html.variant-A .roe-btn-close,
html.variant-B .roe-btn-close,
html.variant-C .roe-btn-close {
    background: var(--p-surface-alt) !important;
    border: 1px solid var(--p-border-strong) !important;
    color: var(--p-ink) !important;
    border-radius: var(--p-btn-radius) !important;
}

html.variant-A .roe-btn-close:hover,
html.variant-B .roe-btn-close:hover,
html.variant-C .roe-btn-close:hover {
    border-color: var(--p-accent) !important;
    color: var(--p-accent) !important;
}

html.variant-A .roe-btn-profile,
html.variant-B .roe-btn-profile,
html.variant-C .roe-btn-profile {
    background: var(--p-accent) !important;
    color: #ffffff !important;
    border-radius: var(--p-btn-radius) !important;
}

html.variant-A .roe-skills-kicker,
html.variant-B .roe-skills-kicker,
html.variant-C .roe-skills-kicker {
    color: var(--p-ink-secondary) !important;
    font-family: var(--p-font-mono) !important;
}

html.variant-A .roe-skill-btn,
html.variant-B .roe-skill-btn,
html.variant-C .roe-skill-btn {
    background: var(--p-surface-alt) !important;
    border: 1px solid var(--p-border) !important;
    color: var(--p-ink-secondary) !important;
    font-family: var(--p-font-mono) !important;
}

html.variant-A .roe-skill-btn.combat,
html.variant-B .roe-skill-btn.combat,
html.variant-C .roe-skill-btn.combat {
    border-color: var(--p-accent) !important;
    color: var(--p-accent) !important;
}

html.variant-A .roe-skill-btn.active,
html.variant-B .roe-skill-btn.active,
html.variant-C .roe-skill-btn.active {
    background: var(--p-accent) !important;
    border-color: var(--p-accent) !important;
    color: #ffffff !important;
}

html.variant-A .roe-skill-box,
html.variant-B .roe-skill-box,
html.variant-C .roe-skill-box {
    background: var(--p-surface-alt) !important;
    border: 1px solid var(--p-border) !important;
    color: var(--p-ink) !important;
}

html.variant-A .roe-skill-box-header,
html.variant-B .roe-skill-box-header,
html.variant-C .roe-skill-box-header {
    border-bottom: 1px solid var(--p-border) !important;
}

html.variant-A .roe-skill-title,
html.variant-B .roe-skill-title,
html.variant-C .roe-skill-title,
html.variant-A .roe-skill-box-header strong,
html.variant-B .roe-skill-box-header strong,
html.variant-C .roe-skill-box-header strong {
    color: var(--p-ink) !important;
    font-family: var(--p-font-heading) !important;
}

html.variant-A .roe-skill-meta,
html.variant-B .roe-skill-meta,
html.variant-C .roe-skill-meta {
    color: var(--p-ink-muted) !important;
    font-family: var(--p-font-mono) !important;
}

html.variant-A .roe-skill-desc,
html.variant-B .roe-skill-desc,
html.variant-C .roe-skill-desc,
html.variant-A .roe-skill-box p,
html.variant-B .roe-skill-box p,
html.variant-C .roe-skill-box p {
    color: var(--p-ink) !important;
}

html.variant-A .roe-empty-state,
html.variant-B .roe-empty-state,
html.variant-C .roe-empty-state {
    background: var(--p-surface) !important;
    border-color: var(--p-border) !important;
    color: var(--p-ink-secondary) !important;
}

/* Micro-glyphs in Light Mode */
html.variant-A .roe-fmb-glyph i.on,
html.variant-B .roe-fmb-glyph i.on,
html.variant-C .roe-fmb-glyph i.on {
    background: var(--p-accent) !important;
    border-color: var(--p-accent) !important;
    color: #ffffff !important;
}

html.variant-A .roe-fmb-glyph i.opt,
html.variant-B .roe-fmb-glyph i.opt,
html.variant-C .roe-fmb-glyph i.opt {
    border-color: var(--p-accent) !important;
    color: var(--p-accent) !important;
}

html.variant-A .roe-range-bars i.on,
html.variant-B .roe-range-bars i.on,
html.variant-C .roe-range-bars i.on {
    background: var(--p-accent) !important;
}

/* Prose & Footer in Light Mode */
html.variant-A .l96-prose,
html.variant-B .l96-prose,
html.variant-C .l96-prose {
    color: var(--p-ink) !important;
}

html.variant-A .l96-prose h1,
html.variant-A .l96-prose h2,
html.variant-A .l96-prose h3,
html.variant-A .l96-prose h4,
html.variant-A .l96-prose strong,
html.variant-B .l96-prose h1,
html.variant-B .l96-prose h2,
html.variant-B .l96-prose h3,
html.variant-B .l96-prose h4,
html.variant-B .l96-prose strong,
html.variant-C .l96-prose h1,
html.variant-C .l96-prose h2,
html.variant-C .l96-prose h3,
html.variant-C .l96-prose h4,
html.variant-C .l96-prose strong {
    color: var(--p-ink) !important;
    font-family: var(--p-font-heading) !important;
}

html.variant-A .l96-footer,
html.variant-B .l96-footer,
html.variant-C .l96-footer {
    background: var(--p-surface-alt) !important;
    border-top: 1px solid var(--p-border-strong) !important;
    color: var(--p-ink-secondary) !important;
}

html.variant-A .l96-footer h4,
html.variant-B .l96-footer h4,
html.variant-C .l96-footer h4 {
    color: var(--p-ink) !important;
}

html.variant-A .l96-footer-links a,
html.variant-B .l96-footer-links a,
html.variant-C .l96-footer-links a {
    color: var(--p-ink-secondary) !important;
}

html.variant-A .l96-footer-links a:hover,
html.variant-B .l96-footer-links a:hover,
html.variant-C .l96-footer-links a:hover {
    color: var(--p-accent) !important;
}

html.variant-A .l96-mobile-dock,
html.variant-B .l96-mobile-dock,
html.variant-C .l96-mobile-dock {
    background: rgba(255, 255, 255, 0.96) !important;
    border-top: 1px solid var(--p-border) !important;
}

html.variant-A .l96-mobile-dock-item,
html.variant-B .l96-mobile-dock-item,
html.variant-C .l96-mobile-dock-item {
    color: var(--p-ink-muted) !important;
}

html.variant-A .l96-mobile-dock-item.active,
html.variant-B .l96-mobile-dock-item.active,
html.variant-C .l96-mobile-dock-item.active {
    color: var(--p-accent) !important;
}

/* ==========================================================================
   3. VARIANT A — TUFTE EDITORIAL WARM LIGHT
   --------------------------------------------------------------------------
   - Warm ivory paper (#faf7f2), Newsreader serif headings & blockquotes,
     flat hairline borders (no heavy drop shadows), light paper navbar &
     editorial page header (zero dark banner box).
   ========================================================================== */
html.variant-A {
    --p-bg: #faf7f2;
    --p-surface: #fffdf9;
    --p-surface-alt: #f3ede2;
    --p-ink: #161514;
    --p-ink-secondary: #4a453e;
    --p-ink-muted: #787166;
    --p-accent: #9e2a2b;
    --p-border: #ded8cc;
    --p-border-strong: #b8afa0;
    --p-radius: 6px;
    --p-btn-radius: 4px;
    --p-pill-radius: 4px;
    --p-pill-active-bg: #161514;
    --p-shadow: none;
    --p-shadow-hover: 0 4px 14px rgba(22, 21, 20, 0.06);
    --p-font-heading: 'Newsreader', Georgia, serif;
    --p-font-body: 'Inter', -apple-system, sans-serif;
    --p-font-mono: 'JetBrains Mono', monospace;
}

/* Variant A Navbar: Warm Paper with Double Editorial Rule */
html.variant-A .l96-navbar {
    background: rgba(250, 247, 242, 0.96) !important;
    border-bottom: 2px solid #161514 !important;
    box-shadow: 0 3px 0 0 #faf7f2, 0 4px 0 0 #ded8cc !important;
}

html.variant-A .l96-brand-logo {
    background: #f3ede2 !important;
    border: 1px solid #b8afa0 !important;
    border-radius: 6px !important;
}

html.variant-A .l96-nav-links {
    background: transparent !important;
    border-color: transparent !important;
}

html.variant-A .l96-brand-title {
    color: #161514 !important;
    font-family: 'Newsreader', Georgia, serif !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
}

html.variant-A .l96-brand-badge {
    background: #f3ede2 !important;
    color: #9e2a2b !important;
    border-color: #ded8cc !important;
}

html.variant-A .l96-brand-sub {
    color: #787166 !important;
}

html.variant-A .l96-nav-link {
    color: #4a453e !important;
    border-radius: 4px !important;
}

html.variant-A .l96-nav-link:hover {
    background: #f3ede2 !important;
    color: #161514 !important;
}

html.variant-A .l96-nav-link.active {
    background: transparent !important;
    border-color: transparent !important;
    border-bottom: 2px solid #9e2a2b !important;
    border-radius: 0 !important;
    color: #9e2a2b !important;
    box-shadow: none !important;
}

html.variant-A .l96-nav-link.active svg {
    color: #9e2a2b !important;
}

html.variant-A .l96-user-btn {
    background: #f3ede2 !important;
    border-color: #ded8cc !important;
    color: #161514 !important;
    border-radius: 4px !important;
}

/* Variant A Hero Banner: Light Editorial Masthead (No Dark Banner Box) */
html.variant-A .l96-hero-banner {
    background: #faf7f2 !important;
    border-bottom: 1px solid #ded8cc !important;
    padding: 2rem 0 1.6rem !important;
}

html.variant-A .l96-hero-banner::before {
    display: none !important;
}

html.variant-A .l96-hero-eyebrow {
    background: #f3ede2 !important;
    border: 1px solid #ded8cc !important;
    color: #9e2a2b !important;
    border-radius: 4px !important;
    font-family: 'JetBrains Mono', monospace !important;
}

html.variant-A .l96-hero-title {
    color: #161514 !important;
    font-family: 'Newsreader', Georgia, serif !important;
    font-weight: 600 !important;
    letter-spacing: -0.02em !important;
}

html.variant-A .l96-hero-subtitle {
    color: #4a453e !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    font-family: 'Newsreader', Georgia, serif !important;
    font-style: italic !important;
    font-size: 1.12rem !important;
}

html.variant-A .l96-eval-quote {
    font-family: 'Newsreader', Georgia, serif !important;
    font-style: italic !important;
    font-size: 1.14rem !important;
    background: #f5efe4 !important;
}

/* ==========================================================================
   4. VARIANT B — L96 CLASSIC MODERNIZED
   --------------------------------------------------------------------------
   - Faithful evolution of the original light l96.app:
     keeps the signature #090b10 dark top navbar and hero banner with
     #D64937 crimson accent border, paired with a clean Alabaster (#f8fafc)
     body and crisp white cards.
   ========================================================================== */
html.variant-B {
    --p-bg: #f8fafc;
    --p-surface: #ffffff;
    --p-surface-alt: #f1f5f9;
    --p-ink: #0f172a;
    --p-ink-secondary: #334155;
    --p-ink-muted: #64748b;
    --p-accent: #D64937;
    --p-border: #e2e8f0;
    --p-border-strong: #cbd5e1;
    --p-radius: 12px;
    --p-btn-radius: 8px;
    --p-pill-radius: 9999px;
    --p-pill-active-bg: #D64937;
    --p-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
    --p-shadow-hover: 0 8px 20px rgba(15, 23, 42, 0.08);
    --p-font-heading: 'Inter', -apple-system, sans-serif;
    --p-font-body: 'Inter', -apple-system, sans-serif;
    --p-font-mono: 'JetBrains Mono', monospace;
}

/* Variant B Navbar: Signature Original L96 #090b10 + Crimson Accent */
html.variant-B .l96-navbar {
    background: #090b10 !important;
    border-bottom: 2px solid #D64937 !important;
}

html.variant-B .l96-brand-title {
    color: #ffffff !important;
}

html.variant-B .l96-brand-badge {
    background: rgba(214, 73, 55, 0.22) !important;
    color: #fca5a5 !important;
    border-color: rgba(214, 73, 55, 0.45) !important;
}

html.variant-B .l96-nav-link {
    color: #cbd5e1 !important;
}

html.variant-B .l96-nav-link.active {
    background: rgba(214, 73, 55, 0.18) !important;
    border-color: rgba(214, 73, 55, 0.5) !important;
    color: #ffffff !important;
}

html.variant-B .l96-hero-banner {
    background: #090b10 !important;
    border-bottom: 1px solid #1e293b !important;
    padding: 2.25rem 0 2rem !important;
}

html.variant-B .l96-hero-kicker {
    background: rgba(214, 73, 55, 0.16) !important;
    border-color: rgba(214, 73, 55, 0.4) !important;
    color: #fca5a5 !important;
}

/* ==========================================================================
   5. VARIANT C — CLEAN TECHNICAL LIGHT (HIGH DATA-INK)
   --------------------------------------------------------------------------
   - Swiss / Linear-inspired high-precision reference aesthetic:
     Crisp white utility navbar with 1px ink border, cool stone (#f3f4f6)
     canvas, sharp 4px corners, zero drop shadows, JetBrains Mono badges.
   ========================================================================== */
html.variant-C {
    --p-bg: #f3f4f6;
    --p-surface: #ffffff;
    --p-surface-alt: #f8fafc;
    --p-ink: #090d16;
    --p-ink-secondary: #374151;
    --p-ink-muted: #6b7280;
    --p-accent: #c83e2b;
    --p-border: #d1d5db;
    --p-border-strong: #9ca3af;
    --p-radius: 4px;
    --p-btn-radius: 4px;
    --p-pill-radius: 4px;
    --p-pill-active-bg: #090d16;
    --p-shadow: none;
    --p-shadow-hover: none;
    --p-font-heading: 'Inter', -apple-system, sans-serif;
    --p-font-body: 'Inter', -apple-system, sans-serif;
    --p-font-mono: 'JetBrains Mono', monospace;
}

/* Variant C Navbar: Crisp White Technical Bar */
html.variant-C .l96-navbar {
    background: #ffffff !important;
    border-bottom: 1px solid #090d16 !important;
}

html.variant-C .l96-brand-logo {
    background: #f3f4f6 !important;
    border: 1px solid #090d16 !important;
    border-radius: 4px !important;
}

html.variant-C .l96-nav-links {
    background: transparent !important;
    border-color: transparent !important;
}

html.variant-C .l96-brand-title {
    color: #090d16 !important;
    font-family: 'JetBrains Mono', monospace !important;
    letter-spacing: -0.02em !important;
}

html.variant-C .l96-brand-badge {
    background: #090d16 !important;
    color: #ffffff !important;
    border-color: #090d16 !important;
    border-radius: 2px !important;
}

html.variant-C .l96-brand-sub {
    color: #6b7280 !important;
    font-family: 'JetBrains Mono', monospace !important;
}

html.variant-C .l96-nav-link {
    color: #374151 !important;
    border-radius: 4px !important;
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 0.8rem !important;
}

html.variant-C .l96-nav-link:hover {
    background: #f3f4f6 !important;
    color: #090d16 !important;
}

html.variant-C .l96-nav-link.active {
    background: #090d16 !important;
    border-color: #090d16 !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

html.variant-C .l96-nav-link.active svg {
    color: #ffffff !important;
}

html.variant-C .l96-user-btn {
    background: #f8fafc !important;
    border-color: #d1d5db !important;
    color: #090d16 !important;
    border-radius: 4px !important;
}

/* Variant C Hero Banner: Crisp White Technical Header Strip */
html.variant-C .l96-hero-banner {
    background: #ffffff !important;
    border-bottom: 1px solid #d1d5db !important;
    padding: 1.75rem 0 1.5rem !important;
}

html.variant-C .l96-hero-banner::before {
    display: none !important;
}

html.variant-C .l96-hero-eyebrow {
    background: #f3f4f6 !important;
    border: 1px solid #d1d5db !important;
    border-radius: 2px !important;
    color: #090d16 !important;
    font-family: 'JetBrains Mono', monospace !important;
}

html.variant-C .l96-hero-title {
    color: #090d16 !important;
    letter-spacing: -0.025em !important;
}

html.variant-C .l96-hero-subtitle {
    color: #4b5563 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

html.variant-C .roe-card-img-wrap {
    border-radius: 3px !important;
}
