{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "theme",
  "title": "Washi Veil Theme",
  "author": "Alex Chih (https://alexchih.com)",
  "description": "Warm washi ground, translucent glass veils, and the ruri/korozen/sumire tri-color — light and dark. Installs the token layer every Washi Veil component builds on.",
  "cssVars": {
    "theme": {
      "font-sans": "'Inter Variable', 'Noto Sans TC Variable', 'Noto Sans JP Variable', 'Noto Sans TC', 'Noto Sans JP', ui-sans-serif, system-ui, sans-serif",
      "font-display": "'Manrope Variable', 'Noto Sans TC Variable', 'Noto Sans JP Variable', 'Noto Sans TC', 'Noto Sans JP', ui-sans-serif, system-ui, sans-serif",
      "font-mono": "'JetBrains Mono Variable', 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace",
      "color-body": "var(--body)",
      "color-faint": "var(--faint)",
      "color-glass": "var(--glass)",
      "color-glass-border": "var(--glass-border)",
      "color-glass-edge": "var(--glass-edge)",
      "color-glass-strong": "var(--glass-strong)",
      "color-glass-stronger": "var(--glass-stronger)",
      "color-ruri": "var(--ruri)",
      "color-ruri-soft": "var(--ruri-soft)",
      "color-ruri-pale": "var(--ruri-pale)",
      "color-korozen": "var(--korozen)",
      "color-korozen-soft": "var(--korozen-soft)",
      "color-korozen-deep": "var(--korozen-deep)",
      "color-sumire": "var(--sumire)",
      "color-sumire-soft": "var(--sumire-soft)",
      "color-sumire-deep": "var(--sumire-deep)",
      "color-deep": "var(--deep)",
      "color-code-cream": "var(--code-cream)",
      "color-code-panel": "var(--code-panel)",
      "color-code-ink": "var(--code-ink)"
    },
    "light": {
      "radius": "1rem",
      "background": "#f7f3ec",
      "foreground": "#1c1914",
      "body": "#4a443c",
      "faint": "#9a9184",
      "muted": "rgba(28, 25, 20, 0.06)",
      "muted-foreground": "#6e6659",
      "card": "rgba(255, 255, 255, 0.45)",
      "card-foreground": "#1c1914",
      "popover": "rgba(255, 255, 255, 0.85)",
      "popover-foreground": "#1c1914",
      "primary": "#d0722e",
      "primary-foreground": "#ffffff",
      "secondary": "rgba(255, 255, 255, 0.4)",
      "secondary-foreground": "#4a443c",
      "accent": "rgba(46, 99, 184, 0.1)",
      "accent-foreground": "#2e63b8",
      "destructive": "#b0452f",
      "destructive-foreground": "#ffffff",
      "border": "rgba(28, 25, 20, 0.15)",
      "input": "rgba(28, 25, 20, 0.15)",
      "ring": "#2e63b8",
      "glass": "rgba(255, 255, 255, 0.45)",
      "glass-border": "rgba(255, 255, 255, 0.55)",
      "glass-edge": "rgba(255, 255, 255, 0.5)",
      "glass-strong": "rgba(255, 255, 255, 0.75)",
      "glass-stronger": "rgba(255, 255, 255, 0.85)",
      "ruri": "#2e63b8",
      "ruri-soft": "#82b4f0",
      "ruri-pale": "#b7d3f8",
      "korozen": "#d0722e",
      "korozen-soft": "#f2a36b",
      "korozen-deep": "#b64f1b",
      "sumire": "#7b68c8",
      "sumire-soft": "#a99bea",
      "sumire-deep": "#6a58c0",
      "deep": "#112441",
      "code-cream": "#f0ebe1",
      "code-panel": "#16181a",
      "code-ink": "#d8dee4",
      "veil-grain": "url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='128' height='128' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E\")"
    },
    "dark": {
      "background": "#12130f",
      "foreground": "#e9e5dc",
      "body": "#b5afa2",
      "faint": "#7e7869",
      "muted": "rgba(255, 255, 255, 0.1)",
      "muted-foreground": "#a8a193",
      "card": "rgba(255, 255, 255, 0.07)",
      "card-foreground": "#e9e5dc",
      "popover": "rgba(31, 32, 26, 0.92)",
      "popover-foreground": "#e9e5dc",
      "primary": "#f2a36b",
      "primary-foreground": "#112441",
      "secondary": "rgba(255, 255, 255, 0.08)",
      "secondary-foreground": "#b5afa2",
      "accent": "rgba(130, 180, 240, 0.1)",
      "accent-foreground": "#82b4f0",
      "destructive": "#e08b74",
      "destructive-foreground": "#12130f",
      "border": "rgba(255, 255, 255, 0.15)",
      "input": "rgba(255, 255, 255, 0.15)",
      "ring": "#82b4f0",
      "glass": "rgba(255, 255, 255, 0.07)",
      "glass-border": "rgba(255, 255, 255, 0.03)",
      "glass-edge": "rgba(255, 255, 255, 0.06)",
      "glass-strong": "rgba(31, 32, 26, 0.85)",
      "glass-stronger": "rgba(31, 32, 26, 0.92)",
      "veil-grain": "none"
    }
  },
  "css": {
    "h1, h2, h3": {
      "text-wrap": "balance"
    },
    "[lang='ja'] :is(h1, h2, h3)": {
      "word-break": "auto-phrase"
    },
    "::selection": {
      "background": "color-mix(in srgb, var(--sumire) 28%, transparent)"
    },
    ".dark ::selection": {
      "background": "color-mix(in srgb, var(--sumire-soft) 35%, transparent)"
    },
    ".veil-grain": {
      "background-image": "var(--veil-grain)",
      "background-size": "128px 128px",
      "background-blend-mode": "soft-light"
    },
    "@media (min-width: 1920px)": {
      "html": {
        "font-size": "17px"
      }
    },
    "@media (min-width: 2560px)": {
      "html": {
        "font-size": "19px"
      }
    },
    "@media (prefers-contrast: more)": {
      ":root": {
        "--border": "#8a8072",
        "--input": "#8a8072",
        "--glass-edge": "rgba(135, 125, 111, 0.9)",
        "--primary": "#b64f1b"
      },
      ".dark": {
        "--border": "#6e6e68",
        "--input": "#6e6e68",
        "--glass-edge": "rgba(120, 120, 114, 0.9)",
        "--primary": "#f2a36b"
      }
    },
    ".contrast-more": {
      "--border": "#8a8072",
      "--input": "#8a8072",
      "--glass-edge": "rgba(135, 125, 111, 0.9)",
      "--primary": "#b64f1b"
    },
    ".contrast-more.dark, .contrast-more .dark": {
      "--border": "#6e6e68",
      "--input": "#6e6e68",
      "--glass-edge": "rgba(120, 120, 114, 0.9)",
      "--primary": "#f2a36b"
    },
    "@media (prefers-reduced-motion: reduce)": {
      "*, ::before, ::after": {
        "animation-duration": "0.01ms !important",
        "animation-iteration-count": "1 !important",
        "transition-duration": "0.01ms !important"
      }
    }
  },
  "docs": "Fonts are not bundled — install @fontsource-variable/inter, manrope, jetbrains-mono, noto-sans-tc and noto-sans-jp to pin the stacks; system fonts are the fallback. Text selection ships sumire — the third light’s quietest job. Text contrast meets WCAG AA except the primary fill, which ships display korozen (3.43:1 white label) by design; prefers-contrast: more (or a contrast-more class on <html>) lifts it to its AA step and hardens control boundaries.",
  "type": "registry:theme"
}