# Theme & Color System (updated 2026-06-03)

## NuvioColorScheme — canonical tokens

Derived from selected `ThemeColorPalette`. Provided via `CompositionLocalProvider(LocalNuvioColors)` in `NuvioTheme`.

```
Background          #05050D  (was #0D0D0D)  — deep blue-black
BackgroundElevated  #080818  (was #1A1A1A)  — navy-tinged
BackgroundCard      per-theme tint          — subtle accent depth
Surface             #0D0D1F  (was #181818)
SurfaceVariant      #131326  (was #232323)

Primary             #9E9E9E  — neutral grey (constant)
Secondary           theme accent

FocusRing           theme focus ring
FocusBackground     theme focus bg

TextPrimary         #EEEEEE
TextSecondary       #C9C9DD  (was #C9C9C9)
TextTertiary        #8686A8  (was #8A8A8A)
TextDisabled        #505050

Rating              #FFB020  (gold)
Error               #FF3B30
Success             #22C55E
Border              #333333
BorderFocused       = FocusRing (theme)
```

Semantic aliases: `Accent=Secondary`, `AccentPulse=Secondary@85%`, `AccentSoft=Secondary@30%`, `Gold=Rating`, `Debrid=#22C55E`, `Warning=#FFA726`, `OverlayScrim=#CC000000`, `GlassBorder=#33FFFFFF`, `GlassBg=#1AFFFFFF`, `GlassHover=#33FFFFFF`, `Divider=#333333`, `PlayerControls=#CC0A0A0A`

## 7 themes (ThemeColorPalette)

| Theme | Secondary | FocusRing | FocusBackground | CardTint |
|-------|-----------|-----------|-----------------|----------|
| Crimson | `#E0172E` | `#FF324C` | `#1A0509` | `#1A0508` |
| Ocean | `#1E88E5` | `#42A5F5` | `#05111A` | `#05111A` |
| Violet | `#8E24AA` | `#AB47BC` | `#110518` | `#0F0515` |
| Emerald | `#43A047` | `#66BB6A` | `#05180A` | `#05120A` |
| Amber | `#FB8C00` | `#FFA726` | `#180D00` | `#150C00` |
| Rose | `#D81B60` | `#EC407A` | `#180510` | `#14040D` |
| White | `#F5F5F5` | `#FFFFFF` | `#1A1A1A` | `#111111` |

All themes share `Background=#05050D` and `BackgroundElevated=#080818` (AMOLED mode: `#000000`).

Default app theme: **White** (was Ocean — changed 2026-06-03 to match HTML spec).

## CinematicTheme (sidebar + glass tokens)

```kotlin
Background        #050713
PanelGlass        #B30E1222
TextPrimary       #F7F8FF
TextMuted         #98A0BB
TextFaint         #596079
Accent            #E3193E
AccentDeep        #9F1239
Stroke            #1CFFFFFF
StrokeStrong      #38FFFFFF
GlassFill         #10FFFFFF
GlassFillStrong   #1CFFFFFF
FocusRingOuter    #F5FFFFFF
FocusRingAccent   #B3E3193E

SidebarCollapsed  82.dp
SidebarExpanded   252.dp (FALLBACK ONLY — actual value from LocalTvLayoutMetrics.settingsRailWidth)
SafePad           28.dp
RadiusLg          28.dp
RadiusMd          20.dp
RadiusSm          14.dp
NavItemHeight     52.dp
```

## NexColors — static reference (DO NOT UPDATE)

Frozen snapshot of Ocean defaults. Shadowed by NuvioColorScheme at runtime. 80 lines: glass tokens, player tokens, focus tokens, navigation, empty/error states, profile gradients.

## Typography scale

`buildNuvioTypography()` — 12 Material3 text styles:
```
displayLarge    48sp  Bold
displayMedium   36sp  Bold
headlineLarge   28sp  SemiBold
headlineMedium  24sp  SemiBold
titleLarge      20sp  Medium
titleMedium     16sp  Medium
titleSmall      14sp  Medium  ← card titles
bodyLarge       16sp  Normal
bodyMedium      14sp  Normal
bodySmall       12sp  Normal  ← card descriptions
labelLarge      14sp  Medium
labelMedium     12sp  Medium  ← card metadata
labelSmall      10sp  Medium
```

Three variable fonts: Inter (default), DM Sans, Open Sans.
