/* 由 scripts/make-themes.mjs 從 server/themes.js 產出,請勿手改(改配色請改 themes.js 再重跑)。style.css 的 :root 只是還沒掛上 data-theme 之前的後備值。 */
/* 冷霧 — 霧藍 × 薄荷冰 */
:root[data-theme="mist"] { --bg: #eef1f5; --bg2: #f8f9fb; --bg3: #e2e5ea; --bg4: #d3d7dd; --fg: #222a3a; --fg2: #4b525f; --fg3: #636a76; --line: rgba(34,42,58,.2); --line2: rgba(34,42,58,.09); --accent: #222a3a; --accent-d: #141923; --on-accent: #eef1f5; --accent-soft: rgba(34,42,58,.06); --hot: #a9bfea; --hot-d: #507cd3; --pop: #c2efdf; --bad: #f1bfcf; --ink: #222a3a; --ink-rgb: 34,42,58; --ink2: #2f3746; --ink3: #3f4654; --bone: #eef1f5; --bone-rgb: 238,241,245; --warn: #a8355a; --warn-on: #65304a; --warn-soft: rgba(241,191,207,.38); --seal: #a9bfea; --ok: #222a3a; --info: #222a3a; --tint: #222a3a; --tint-soft: rgba(194,239,223,.65); --glass-bg: rgba(248,249,251,.22); --glass-bg-mid: rgba(248,249,251,.46); --glass-bg-strong: rgba(248,249,251,.68); --blob-hot: rgba(169,191,234,.75); --blob-pop: rgba(194,239,223,.92); }
@media (prefers-color-scheme: dark) {
  :root[data-theme="mist"] { --bg: #10141c; --bg2: #1a1d25; --bg3: #262930; --bg4: #34373e; --fg: #e5e8ec; --fg2: #b0b3b8; --fg3: #8c8f95; --line: rgba(229,232,236,.22); --line2: rgba(229,232,236,.1); --accent: #e5e8ec; --accent-d: #ffffff; --on-accent: #10141c; --accent-soft: rgba(229,232,236,.08); --hot-d: #a9bfea; --warn: #f2c5d4; --warn-soft: rgba(241,191,207,.16); --ok: #c2efdf; --info: #e5e8ec; --tint: #c2efdf; --tint-soft: rgba(194,239,223,.14); --pale: .62; --glass-bg: rgba(30,34,42,.26); --glass-bg-mid: rgba(30,34,42,.5); --glass-bg-strong: rgba(30,34,42,.7); --blob-hot: rgba(169,191,234,.4); --blob-pop: rgba(194,239,223,.22); }
}
/* 櫻霧 — 櫻粉 × 奶油 */
:root[data-theme="sakura"] { --bg: #f8f0f1; --bg2: #fcf9f9; --bg3: #ece4e5; --bg4: #ded5d7; --fg: #33222a; --fg2: #5a4b52; --fg3: #72646a; --line: rgba(51,34,42,.2); --line2: rgba(51,34,42,.09); --accent: #33222a; --accent-d: #1f1419; --on-accent: #f8f0f1; --accent-soft: rgba(51,34,42,.06); --hot: #f4bfd0; --hot-d: #d3517b; --pop: #f6e6b4; --bad: #f2a48f; --ink: #33222a; --ink-rgb: 51,34,42; --ink2: #402f37; --ink3: #4f3f46; --bone: #f8f0f1; --bone-rgb: 248,240,241; --warn: #b23a4e; --warn-on: #732e3c; --warn-soft: rgba(242,164,143,.38); --seal: #f4bfd0; --ok: #33222a; --info: #33222a; --tint: #33222a; --tint-soft: rgba(246,230,180,.65); --glass-bg: rgba(252,249,249,.22); --glass-bg-mid: rgba(252,249,249,.46); --glass-bg-strong: rgba(252,249,249,.68); --blob-hot: rgba(244,191,208,.75); --blob-pop: rgba(246,230,180,.92); }
@media (prefers-color-scheme: dark) {
  :root[data-theme="sakura"] { --bg: #1a1216; --bg2: #231b1f; --bg3: #2f272b; --bg4: #3c3639; --fg: #efe7e8; --fg2: #bab2b4; --fg3: #968e90; --line: rgba(239,231,232,.22); --line2: rgba(239,231,232,.1); --accent: #efe7e8; --accent-d: #ffffff; --on-accent: #1a1216; --accent-soft: rgba(239,231,232,.08); --hot-d: #f4bfd0; --warn: #f3ad9a; --warn-soft: rgba(242,164,143,.16); --ok: #f6e6b4; --info: #efe7e8; --tint: #f6e6b4; --tint-soft: rgba(246,230,180,.14); --pale: .62; --glass-bg: rgba(40,32,36,.26); --glass-bg-mid: rgba(40,32,36,.5); --glass-bg-strong: rgba(40,32,36,.7); --blob-hot: rgba(244,191,208,.4); --blob-pop: rgba(246,230,180,.22); }
}
/* 薰衣草 — 淡紫 × 蜜桃 */
:root[data-theme="lavender"] { --bg: #f2f0f8; --bg2: #faf9fc; --bg3: #e6e4ed; --bg4: #d8d5e0; --fg: #2a2440; --fg2: #524d65; --fg3: #6a657b; --line: rgba(42,36,64,.2); --line2: rgba(42,36,64,.09); --accent: #2a2440; --accent-d: #191626; --on-accent: #f2f0f8; --accent-soft: rgba(42,36,64,.06); --hot: #c9bdf2; --hot-d: #876edb; --pop: #fbd5c0; --bad: #f3b6c8; --ink: #2a2440; --ink-rgb: 42,36,64; --ink2: #37314c; --ink3: #46415a; --bone: #f2f0f8; --bone-rgb: 242,240,248; --warn: #a8355a; --warn-on: #692d4d; --warn-soft: rgba(243,182,200,.38); --seal: #c9bdf2; --ok: #2a2440; --info: #2a2440; --tint: #2a2440; --tint-soft: rgba(251,213,192,.65); --glass-bg: rgba(250,249,252,.22); --glass-bg-mid: rgba(250,249,252,.46); --glass-bg-strong: rgba(250,249,252,.68); --blob-hot: rgba(201,189,242,.75); --blob-pop: rgba(251,213,192,.92); }
@media (prefers-color-scheme: dark) {
  :root[data-theme="lavender"] { --bg: #14111f; --bg2: #1d1b28; --bg3: #292633; --bg4: #373541; --fg: #e9e7ef; --fg2: #b4b2bb; --fg3: #908d98; --line: rgba(233,231,239,.22); --line2: rgba(233,231,239,.1); --accent: #e9e7ef; --accent-d: #ffffff; --on-accent: #14111f; --accent-soft: rgba(233,231,239,.08); --hot-d: #c9bdf2; --warn: #f4bdce; --warn-soft: rgba(243,182,200,.16); --ok: #fbd5c0; --info: #e9e7ef; --tint: #fbd5c0; --tint-soft: rgba(251,213,192,.14); --pale: .62; --glass-bg: rgba(34,31,44,.26); --glass-bg-mid: rgba(34,31,44,.5); --glass-bg-strong: rgba(34,31,44,.7); --blob-hot: rgba(201,189,242,.4); --blob-pop: rgba(251,213,192,.22); }
}
/* 鼠尾草 — 灰綠 × 奶油黃 */
:root[data-theme="sage"] { --bg: #f0f3ee; --bg2: #f9faf8; --bg3: #e4e7e2; --bg4: #d5dad5; --fg: #24302a; --fg2: #4d5751; --fg3: #656e69; --line: rgba(36,48,42,.2); --line2: rgba(36,48,42,.09); --accent: #24302a; --accent-d: #161d19; --on-accent: #f0f3ee; --accent-soft: rgba(36,48,42,.06); --hot: #b7d3b4; --hot-d: #488f40; --pop: #f2e6a6; --bad: #efbdb0; --ink: #24302a; --ink-rgb: 36,48,42; --ink2: #313d37; --ink3: #414b45; --bone: #f0f3ee; --bone-rgb: 240,243,238; --warn: #a84432; --warn-on: #663a2e; --warn-soft: rgba(239,189,176,.38); --seal: #b7d3b4; --ok: #24302a; --info: #24302a; --tint: #24302a; --tint-soft: rgba(242,230,166,.65); --glass-bg: rgba(249,250,248,.22); --glass-bg-mid: rgba(249,250,248,.46); --glass-bg-strong: rgba(249,250,248,.68); --blob-hot: rgba(183,211,180,.75); --blob-pop: rgba(242,230,166,.92); }
@media (prefers-color-scheme: dark) {
  :root[data-theme="sage"] { --bg: #111813; --bg2: #1b211c; --bg3: #262d28; --bg4: #353b36; --fg: #e7eae5; --fg2: #b2b6b1; --fg3: #8d928d; --line: rgba(231,234,229,.22); --line2: rgba(231,234,229,.1); --accent: #e7eae5; --accent-d: #ffffff; --on-accent: #111813; --accent-soft: rgba(231,234,229,.08); --hot-d: #b7d3b4; --warn: #f1c4b8; --warn-soft: rgba(239,189,176,.16); --ok: #f2e6a6; --info: #e7eae5; --tint: #f2e6a6; --tint-soft: rgba(242,230,166,.14); --pale: .62; --glass-bg: rgba(31,38,33,.26); --glass-bg-mid: rgba(31,38,33,.5); --glass-bg-strong: rgba(31,38,33,.7); --blob-hot: rgba(183,211,180,.4); --blob-pop: rgba(242,230,166,.22); }
}
/* 奶茶 — 奶茶 × 抹茶 */
:root[data-theme="latte"] { --bg: #f5f0e8; --bg2: #fbf9f6; --bg3: #e9e4dc; --bg4: #dcd6ce; --fg: #33271f; --fg2: #5a4f47; --fg3: #71675f; --line: rgba(51,39,31,.2); --line2: rgba(51,39,31,.09); --accent: #33271f; --accent-d: #1f1713; --on-accent: #f5f0e8; --accent-soft: rgba(51,39,31,.06); --hot: #dcc2a3; --hot-d: #a7783f; --pop: #cfe2c2; --bad: #efb4a6; --ink: #33271f; --ink-rgb: 51,39,31; --ink2: #40342c; --ink3: #4e433b; --bone: #f5f0e8; --bone-rgb: 245,240,232; --warn: #a8402e; --warn-on: #6e3427; --warn-soft: rgba(239,180,166,.38); --seal: #dcc2a3; --ok: #33271f; --info: #33271f; --tint: #33271f; --tint-soft: rgba(207,226,194,.65); --glass-bg: rgba(251,249,246,.22); --glass-bg-mid: rgba(251,249,246,.46); --glass-bg-strong: rgba(251,249,246,.68); --blob-hot: rgba(220,194,163,.75); --blob-pop: rgba(207,226,194,.92); }
@media (prefers-color-scheme: dark) {
  :root[data-theme="latte"] { --bg: #18130f; --bg2: #211c19; --bg3: #2d2825; --bg4: #3b3633; --fg: #ece7df; --fg2: #b7b2ab; --fg3: #938e88; --line: rgba(236,231,223,.22); --line2: rgba(236,231,223,.1); --accent: #ece7df; --accent-d: #ffffff; --on-accent: #18130f; --accent-soft: rgba(236,231,223,.08); --hot-d: #dcc2a3; --warn: #f1bcaf; --warn-soft: rgba(239,180,166,.16); --ok: #cfe2c2; --info: #ece7df; --tint: #cfe2c2; --tint-soft: rgba(207,226,194,.14); --pale: .62; --glass-bg: rgba(38,33,29,.26); --glass-bg-mid: rgba(38,33,29,.5); --glass-bg-strong: rgba(38,33,29,.7); --blob-hot: rgba(220,194,163,.4); --blob-pop: rgba(207,226,194,.22); }
}
/* 墨白 — 石灰 × 香檳 */
:root[data-theme="mono"] { --bg: #f4f3f0; --bg2: #fbfaf9; --bg3: #e6e5e3; --bg4: #d6d6d3; --fg: #111111; --fg2: #3e3e3e; --fg3: #5a5958; --line: rgba(17,17,17,.2); --line2: rgba(17,17,17,.09); --accent: #111111; --accent-d: #0a0a0a; --on-accent: #f4f3f0; --accent-soft: rgba(17,17,17,.06); --hot: #d9d6cf; --hot-d: #867e6a; --pop: #efe6c4; --bad: #f0b9b0; --ink: #111111; --ink-rgb: 17,17,17; --ink2: #20201f; --ink3: #313130; --bone: #f4f3f0; --bone-rgb: 244,243,240; --warn: #b3261e; --warn-on: #621c18; --warn-soft: rgba(240,185,176,.38); --seal: #d9d6cf; --ok: #111111; --info: #111111; --tint: #111111; --tint-soft: rgba(239,230,196,.65); --glass-bg: rgba(251,250,249,.22); --glass-bg-mid: rgba(251,250,249,.46); --glass-bg-strong: rgba(251,250,249,.68); --blob-hot: rgba(217,214,207,.75); --blob-pop: rgba(239,230,196,.92); }
@media (prefers-color-scheme: dark) {
  :root[data-theme="mono"] { --bg: #0a0a0a; --bg2: #141414; --bg3: #202020; --bg4: #2f2f2f; --fg: #ebeae7; --fg2: #b3b2b0; --fg3: #8d8c8a; --line: rgba(235,234,231,.22); --line2: rgba(235,234,231,.1); --accent: #ebeae7; --accent-d: #ffffff; --on-accent: #0a0a0a; --accent-soft: rgba(235,234,231,.08); --hot-d: #d9d6cf; --warn: #f2c0b8; --warn-soft: rgba(240,185,176,.16); --ok: #efe6c4; --info: #ebeae7; --tint: #efe6c4; --tint-soft: rgba(239,230,196,.14); --pale: .62; --glass-bg: rgba(25,25,25,.26); --glass-bg-mid: rgba(25,25,25,.5); --glass-bg-strong: rgba(25,25,25,.7); --blob-hot: rgba(217,214,207,.4); --blob-pop: rgba(239,230,196,.22); }
}
/* 前衛撞色 — 螢光朱紅 × 萊姆 */
:root[data-theme="clash"] { --bg: #f1eee7; --bg2: #f9f8f5; --bg3: #e3e0da; --bg4: #d3d1cb; --fg: #0c0c0d; --fg2: #3a3939; --fg3: #555453; --line: rgba(12,12,13,.2); --line2: rgba(12,12,13,.09); --accent: #0c0c0d; --accent-d: #070708; --on-accent: #f1eee7; --accent-soft: rgba(12,12,13,.06); --hot: #ff4321; --hot-d: #d15b45; --pop: #d4ff3a; --bad: #ff9d8a; --ink: #0c0c0d; --ink-rgb: 12,12,13; --ink2: #1b1b1b; --ink3: #2c2c2c; --bone: #f1eee7; --bone-rgb: 241,238,231; --warn: #c42408; --warn-on: #43130c; --warn-soft: rgba(255,157,138,.38); --seal: #ff4321; --ok: #0c0c0d; --info: #0c0c0d; --tint: #0c0c0d; --tint-soft: rgba(212,255,58,.65); --glass-bg: rgba(249,248,245,.22); --glass-bg-mid: rgba(249,248,245,.46); --glass-bg-strong: rgba(249,248,245,.68); --blob-hot: rgba(255,67,33,.6); --blob-pop: rgba(212,255,58,.85); }
@media (prefers-color-scheme: dark) {
  :root[data-theme="clash"] { --bg: #0b0b0c; --bg2: #151516; --bg3: #212122; --bg4: #303030; --fg: #e8e5de; --fg2: #b1afaa; --fg3: #8b8986; --line: rgba(232,229,222,.22); --line2: rgba(232,229,222,.1); --accent: #e8e5de; --accent-d: #ffffff; --on-accent: #0b0b0c; --accent-soft: rgba(232,229,222,.08); --hot-d: #ff4321; --warn: #ffa796; --warn-soft: rgba(255,157,138,.16); --ok: #d4ff3a; --info: #e8e5de; --tint: #d4ff3a; --tint-soft: rgba(212,255,58,.14); --pale: .62; --glass-bg: rgba(26,26,27,.26); --glass-bg-mid: rgba(26,26,27,.5); --glass-bg-strong: rgba(26,26,27,.7); --blob-hot: rgba(255,67,33,.4); --blob-pop: rgba(212,255,58,.22); }
}
/* 電光海 — 電光藍 × 螢光黃 */
:root[data-theme="ocean"] { --bg: #eef3fb; --bg2: #f8fafd; --bg3: #e1e6ef; --bg4: #d1d7e1; --fg: #0d1a33; --fg2: #3a455b; --fg3: #555f73; --line: rgba(13,26,51,.2); --line2: rgba(13,26,51,.09); --accent: #0d1a33; --accent-d: #08101f; --on-accent: #eef3fb; --accent-soft: rgba(13,26,51,.06); --hot: #6b93ff; --hot-d: #587ad5; --pop: #f2f04a; --bad: #ff9db0; --ink: #0d1a33; --ink-rgb: 13,26,51; --ink2: #1c2840; --ink3: #2d384f; --bone: #eef3fb; --bone-rgb: 238,243,251; --warn: #b8264a; --warn-on: #4e1f3c; --warn-soft: rgba(255,157,176,.38); --seal: #6b93ff; --ok: #0d1a33; --info: #0d1a33; --tint: #0d1a33; --tint-soft: rgba(242,240,74,.65); --glass-bg: rgba(248,250,253,.22); --glass-bg-mid: rgba(248,250,253,.46); --glass-bg-strong: rgba(248,250,253,.68); --blob-hot: rgba(107,147,255,.55); --blob-pop: rgba(242,240,74,.8); }
@media (prefers-color-scheme: dark) {
  :root[data-theme="ocean"] { --bg: #080e1c; --bg2: #121825; --bg3: #1e2430; --bg4: #2d323e; --fg: #e5eaf2; --fg2: #aeb3bd; --fg3: #888e98; --line: rgba(229,234,242,.22); --line2: rgba(229,234,242,.1); --accent: #e5eaf2; --accent-d: #ffffff; --on-accent: #080e1c; --accent-soft: rgba(229,234,242,.08); --hot-d: #6b93ff; --warn: #ffa7b8; --warn-soft: rgba(255,157,176,.16); --ok: #f2f04a; --info: #e5eaf2; --tint: #f2f04a; --tint-soft: rgba(242,240,74,.14); --pale: .62; --glass-bg: rgba(23,28,42,.26); --glass-bg-mid: rgba(23,28,42,.5); --glass-bg-strong: rgba(23,28,42,.7); --blob-hot: rgba(107,147,255,.4); --blob-pop: rgba(242,240,74,.22); }
}
/* 霓虹 — 桃紅 × 青 */
:root[data-theme="neon"] { --bg: #f6eff5; --bg2: #fbf9fb; --bg3: #e9e2e8; --bg4: #dad2d9; --fg: #1c0f1f; --fg2: #483c4a; --fg3: #625763; --line: rgba(28,15,31,.2); --line2: rgba(28,15,31,.09); --accent: #1c0f1f; --accent-d: #110913; --on-accent: #f6eff5; --accent-soft: rgba(28,15,31,.06); --hot: #ff5fa8; --hot-d: #d34e8b; --pop: #5ff2e0; --bad: #ffb46b; --ink: #1c0f1f; --ink-rgb: 28,15,31; --ink2: #2a1e2d; --ink3: #3b2e3d; --bone: #f6eff5; --bone-rgb: 246,239,245; --warn: #b01e4f; --warn-on: #5f1635; --warn-soft: rgba(255,180,107,.38); --seal: #ff5fa8; --ok: #1c0f1f; --info: #1c0f1f; --tint: #1c0f1f; --tint-soft: rgba(95,242,224,.65); --glass-bg: rgba(251,249,251,.22); --glass-bg-mid: rgba(251,249,251,.46); --glass-bg-strong: rgba(251,249,251,.68); --blob-hot: rgba(255,95,168,.55); --blob-pop: rgba(95,242,224,.8); }
@media (prefers-color-scheme: dark) {
  :root[data-theme="neon"] { --bg: #120a14; --bg2: #1b141d; --bg3: #272029; --bg4: #362f37; --fg: #ede6ec; --fg2: #b6afb6; --fg3: #918a91; --line: rgba(237,230,236,.22); --line2: rgba(237,230,236,.1); --accent: #ede6ec; --accent-d: #ffffff; --on-accent: #120a14; --accent-soft: rgba(237,230,236,.08); --hot-d: #ff5fa8; --warn: #ffbc7a; --warn-soft: rgba(255,180,107,.16); --ok: #5ff2e0; --info: #ede6ec; --tint: #5ff2e0; --tint-soft: rgba(95,242,224,.14); --pale: .62; --glass-bg: rgba(32,25,34,.26); --glass-bg-mid: rgba(32,25,34,.5); --glass-bg-strong: rgba(32,25,34,.7); --blob-hot: rgba(255,95,168,.4); --blob-pop: rgba(95,242,224,.22); }
}
/* 落日 — 橘 × 天藍 */
:root[data-theme="sunset"] { --bg: #f8f1e9; --bg2: #fcf9f6; --bg3: #ece4dc; --bg4: #ddd5cd; --fg: #2b1a12; --fg2: #54453d; --fg3: #6d5f57; --line: rgba(43,26,18,.2); --line2: rgba(43,26,18,.09); --accent: #2b1a12; --accent-d: #1a100b; --on-accent: #f8f1e9; --accent-soft: rgba(43,26,18,.06); --hot: #ff9a3d; --hot-d: #b36d2d; --pop: #a8dcff; --bad: #ff8fa0; --ink: #2b1a12; --ink-rgb: 43,26,18; --ink2: #382820; --ink3: #483830; --bone: #f8f1e9; --bone-rgb: 248,241,233; --warn: #b8323a; --warn-on: #722626; --warn-soft: rgba(255,143,160,.38); --seal: #ff9a3d; --ok: #2b1a12; --info: #2b1a12; --tint: #2b1a12; --tint-soft: rgba(168,220,255,.65); --glass-bg: rgba(252,249,246,.22); --glass-bg-mid: rgba(252,249,246,.46); --glass-bg-strong: rgba(252,249,246,.68); --blob-hot: rgba(255,154,61,.6); --blob-pop: rgba(168,220,255,.85); }
@media (prefers-color-scheme: dark) {
  :root[data-theme="sunset"] { --bg: #17100b; --bg2: #201a15; --bg3: #2c2621; --bg4: #3a3430; --fg: #efe8e0; --fg2: #b9b2ab; --fg3: #948d87; --line: rgba(239,232,224,.22); --line2: rgba(239,232,224,.1); --accent: #efe8e0; --accent-d: #ffffff; --on-accent: #17100b; --accent-soft: rgba(239,232,224,.08); --hot-d: #ff9a3d; --warn: #ff9aaa; --warn-soft: rgba(255,143,160,.16); --ok: #a8dcff; --info: #efe8e0; --tint: #a8dcff; --tint-soft: rgba(168,220,255,.14); --pale: .62; --glass-bg: rgba(37,30,26,.26); --glass-bg-mid: rgba(37,30,26,.5); --glass-bg-strong: rgba(37,30,26,.7); --blob-hot: rgba(255,154,61,.4); --blob-pop: rgba(168,220,255,.22); }
}
/* 翡翠 — 翡翠綠 × 奶油 */
:root[data-theme="jade"] { --bg: #eef5f1; --bg2: #f8fbf9; --bg3: #e1e9e4; --bg4: #d1dad5; --fg: #10261d; --fg2: #3c4f47; --fg3: #576861; --line: rgba(16,38,29,.2); --line2: rgba(16,38,29,.09); --accent: #10261d; --accent-d: #0a1711; --on-accent: #eef5f1; --accent-soft: rgba(16,38,29,.06); --hot: #4fd09a; --hot-d: #279265; --pop: #f5eeb8; --bad: #f5b0a8; --ink: #10261d; --ink-rgb: 16,38,29; --ink2: #1e332b; --ink3: #2f433b; --bone: #eef5f1; --bone-rgb: 238,245,241; --warn: #a83c32; --warn-on: #5c3128; --warn-soft: rgba(245,176,168,.38); --seal: #4fd09a; --ok: #10261d; --info: #10261d; --tint: #10261d; --tint-soft: rgba(245,238,184,.65); --glass-bg: rgba(248,251,249,.22); --glass-bg-mid: rgba(248,251,249,.46); --glass-bg-strong: rgba(248,251,249,.68); --blob-hot: rgba(79,208,154,.6); --blob-pop: rgba(245,238,184,.85); }
@media (prefers-color-scheme: dark) {
  :root[data-theme="jade"] { --bg: #0a1611; --bg2: #141f1b; --bg3: #202b26; --bg4: #2f3935; --fg: #e5ece8; --fg2: #aeb7b2; --fg3: #89928e; --line: rgba(229,236,232,.22); --line2: rgba(229,236,232,.1); --accent: #e5ece8; --accent-d: #ffffff; --on-accent: #0a1611; --accent-soft: rgba(229,236,232,.08); --hot-d: #4fd09a; --warn: #f6b8b1; --warn-soft: rgba(245,176,168,.16); --ok: #f5eeb8; --info: #e5ece8; --tint: #f5eeb8; --tint-soft: rgba(245,238,184,.14); --pale: .62; --glass-bg: rgba(25,36,31,.26); --glass-bg-mid: rgba(25,36,31,.5); --glass-bg-strong: rgba(25,36,31,.7); --blob-hot: rgba(79,208,154,.4); --blob-pop: rgba(245,238,184,.22); }
}
/* 深空 — 深底星藍 × 極光 */
:root[data-theme="space"] { color-scheme: dark; --bg: #07090f; --bg2: #111319; --bg3: #1d1f25; --bg4: #2c2e33; --fg: #dfe3ed; --fg2: #a9adb6; --fg3: #848790; --line: rgba(223,227,237,.22); --line2: rgba(223,227,237,.1); --accent: #dfe3ed; --accent-d: #ffffff; --on-accent: #07090f; --accent-soft: rgba(223,227,237,.08); --hot: #7aa2ff; --hot-d: #7aa2ff; --pop: #7ef0c8; --bad: #ff9db5; --ink: #0b1020; --ink-rgb: 11,16,32; --ink2: #191e2e; --ink3: #2a2f3e; --bone: #e8ecf6; --bone-rgb: 232,236,246; --warn: #ffa7bc; --warn-on: #621b35; --warn-soft: rgba(255,157,181,.16); --seal: #7aa2ff; --ok: #7ef0c8; --info: #dfe3ed; --tint: #7ef0c8; --tint-soft: rgba(126,240,200,.14); --glass-bg: rgba(22,24,29,.26); --glass-bg-mid: rgba(22,24,29,.5); --glass-bg-strong: rgba(22,24,29,.7); --blob-hot: rgba(122,162,255,.4); --blob-pop: rgba(126,240,200,.22); --pale: .62; --glass-sheen: linear-gradient(135deg, rgba(255,255,255,.2) 0%, rgba(255,255,255,.03) 36%, rgba(255,255,255,0) 58%, rgba(255,255,255,.08) 100%); --glass-brd: rgba(255,255,255,.2); --glass-hi: inset 0 1.5px 0 rgba(255,255,255,.34), inset 0 -1px 0 rgba(0,0,0,.4), inset 0 12px 18px -12px rgba(255,255,255,.2), inset 0 -10px 16px -10px rgba(255,255,255,.08); --glass-shadow: 0 18px 50px rgba(0,0,0,.6), 0 3px 10px rgba(0,0,0,.35); }
/* 字體風格 */
:root[data-font="round"] { --display: 'Unbounded', 'Chiron GoRound TC', 'Noto Sans TC', 'Microsoft JhengHei', system-ui, sans-serif; --serif: 'Chiron GoRound TC', 'Noto Sans TC', 'Microsoft JhengHei', system-ui, sans-serif; --mono: 'Space Grotesk', system-ui, sans-serif; --dscale: 0.76; }
:root[data-font="poster"] { --display: 'Big Shoulders Display', 'WDXL Lubrifont TC', 'Noto Sans TC', 'Microsoft JhengHei', system-ui, sans-serif; --serif: 'Noto Sans TC', 'Microsoft JhengHei', system-ui, sans-serif; --mono: 'Space Grotesk', system-ui, sans-serif; --dscale: 1.22; }
:root[data-font="vogue"] { --display: 'Fraunces', 'Chiron Sung HK', 'Noto Serif TC', serif; --serif: 'Noto Sans TC', 'Microsoft JhengHei', system-ui, sans-serif; --mono: 'Space Grotesk', system-ui, sans-serif; --dscale: 1; }
:root[data-font="kai"] { --display: 'Cormorant Garamond', 'LXGW WenKai TC', serif; --serif: 'LXGW WenKai TC', 'Noto Sans TC', 'Microsoft JhengHei', system-ui, sans-serif; --mono: 'Space Grotesk', system-ui, sans-serif; --dscale: 1.12; }
:root[data-font="grotesk"] { --display: 'Syne', 'Noto Sans TC', 'Microsoft JhengHei', system-ui, sans-serif; --serif: 'Noto Sans TC', 'Microsoft JhengHei', system-ui, sans-serif; --mono: 'Space Grotesk', system-ui, sans-serif; --dscale: 1; }
