/* PLAYDESIRE.ai 角色系统：Yoo Hana。由 packages/design-system/scripts/build.ts 生成。 */
@font-face {
  font-family: "Unbounded";
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url("../fonts/unbounded-latin-600-normal.6168788583.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: "Unbounded";
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url("../fonts/unbounded-latin-700-normal.477fa23002.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: "Unbounded";
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url("../fonts/unbounded-latin-ext-600-normal.42cebe48e8.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: "Unbounded";
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url("../fonts/unbounded-latin-ext-700-normal.886ac002ab.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: "Unbounded";
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url("../fonts/unbounded-cyrillic-600-normal.59a9e6e092.woff2") format("woff2");
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face {
  font-family: "Unbounded";
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url("../fonts/unbounded-cyrillic-700-normal.fdc2a84527.woff2") format("woff2");
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face {
  font-family: "Unbounded";
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url("../fonts/unbounded-vietnamese-600-normal.3752321af5.woff2") format("woff2");
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}
@font-face {
  font-family: "Unbounded";
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url("../fonts/unbounded-vietnamese-700-normal.555c025f3b.woff2") format("woff2");
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}
@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url("../fonts/plus-jakarta-sans-latin-400-normal.221a4135d0.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url("../fonts/plus-jakarta-sans-latin-500-normal.bad081c8db.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url("../fonts/plus-jakarta-sans-latin-600-normal.8872bb5c91.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url("../fonts/plus-jakarta-sans-latin-700-normal.2050755bf4.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url("../fonts/plus-jakarta-sans-latin-ext-400-normal.65b5680bf2.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url("../fonts/plus-jakarta-sans-latin-ext-500-normal.d1584f50c3.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url("../fonts/plus-jakarta-sans-latin-ext-600-normal.080a1fea85.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url("../fonts/plus-jakarta-sans-latin-ext-700-normal.b202ec8789.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url("../fonts/plus-jakarta-sans-vietnamese-400-normal.89bca04c71.woff2") format("woff2");
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}
@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url("../fonts/plus-jakarta-sans-vietnamese-500-normal.71b1934f88.woff2") format("woff2");
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}
@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url("../fonts/plus-jakarta-sans-vietnamese-600-normal.a8443c4814.woff2") format("woff2");
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}
@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url("../fonts/plus-jakarta-sans-vietnamese-700-normal.4dda300501.woff2") format("woff2");
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}
@font-face {
  font-family: "Caveat Brush";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url("../fonts/caveat-brush-latin-400-normal.1e1ef30f8b.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: "Caveat Brush";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url("../fonts/caveat-brush-latin-ext-400-normal.55ba709384.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
:root[data-character="hana"],
[data-character="hana"] {
  color-scheme: dark;
  --color-void: #0E0918;
  --color-bg: #150F22;
  --color-surface: #21163A;
  --color-raised: #2D1E50;
  --color-border: #5E3FB5;
  --color-control: #5E3FB5;
  --color-text: #FBF8FF;
  --color-text-secondary: #DCCFF5;
  --color-text-tertiary: #AE9FD0;
  --color-muted: #AE9FD0;
  --color-primary: #7B2CFF;
  --color-primary-hover: #8A44FF;
  --color-primary-pressed: #6A1FE6;
  --color-primary-text: #A27BFF;
  --color-on-primary: #FFFFFF;
  --color-primary-tint: rgba(123, 44, 255, 0.22);
  --color-primary-line: #A27BFF;
  --color-primary-deep: #3D12A8;
  --color-primary-rim: #FBF8FF;
  --color-focus-ring: #CDB4FF;
  --color-scrim: rgba(14, 9, 24, 0.82);
  --font-display: "Unbounded", "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", sans-serif;
  --font-sans: "Plus Jakarta Sans", "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", sans-serif;
  --font-signature: "Caveat Brush", "Segoe Print", cursive;
  --text-caption: 12px;
  --text-label: 14px;
  --text-body: 16px;
  --text-lead: 17px;
  --text-heading: 24px;
  --text-title: 32px;
  --text-display: 46px;
  --text-signature: 40px;
  --leading-heading: 1.08;
  --leading-ui: 1.3;
  --leading-body: 1.55;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 10px;
  --radius-xl: 12px;
  --radius-pill: 999px;
  --radius-bubble: 12px;
  --shadow-lift: 3px 3px 0 #0A0612;
  --shadow-float: 4px 4px 0 #4B24A8;
  --shadow-modal: 8px 8px 0 #261452;
  --border-width: 2px;
  --heading-weight: 700;
  --heading-tracking: 0.01em;
  --heading-case: uppercase;
  --label-weight: 600;
  --label-tracking: 0.1em;
  --label-case: uppercase;
  --signature-ink: #E7A0B7;
  --signature-rotate: -7deg;
  --color-background: var(--color-bg);
  --color-foreground: var(--color-text);
  --color-card: var(--color-surface);
  --color-card-foreground: var(--color-text);
  --color-popover: var(--color-surface);
  --color-popover-foreground: var(--color-text);
  --color-primary-foreground: var(--color-on-primary);
  --color-secondary: var(--color-surface);
  --color-secondary-foreground: var(--color-text);
  --color-muted-foreground: var(--color-text-secondary);
  --color-accent-foreground: var(--color-on-accent);
  --color-destructive-foreground: var(--color-bg);
  --color-input: var(--color-control);
  --color-ring: var(--color-primary);
  --color-primary-20: color-mix(in srgb, var(--color-primary) 20%, transparent);
  --color-primary-40: color-mix(in srgb, var(--color-primary) 40%, transparent);
  --color-accent-20: color-mix(in srgb, var(--color-accent) 20%, transparent);
  --color-accent-40: color-mix(in srgb, var(--color-accent) 40%, transparent);
  --color-surface-80: color-mix(in srgb, var(--color-surface) 80%, transparent);
  --background: var(--color-bg);
  --foreground: var(--color-text);
  --card: var(--color-surface);
  --card-foreground: var(--color-text);
  --popover: var(--color-surface);
  --popover-foreground: var(--color-text);
  --primary: var(--color-primary);
  --primary-foreground: var(--color-on-primary);
  --secondary: var(--color-surface);
  --secondary-foreground: var(--color-text);
  --muted: var(--color-surface);
  --muted-foreground: var(--color-text-secondary);
  --accent: var(--color-accent);
  --accent-foreground: var(--color-on-accent);
  --destructive: var(--color-destructive);
  --destructive-foreground: var(--color-bg);
  --border: var(--color-border);
  --input: var(--color-control);
  --ring: var(--color-primary);
  --radius: var(--radius-md);
  --label-font: var(--font-display);
}
