/* Lumio Games 令牌（与设计系统 tokens.json 同值） */
:root, [data-theme="light"] {
  --ui-primary: #6659db; --ui-primary-d: #5546c4; --ui-primary-deep: #3b2f96; --ui-on-primary: #ffffff;
  --ui-mint: #5de2c6; --ui-mint-deep: #2a9e86; --ui-amber: #ffb86b; --ui-amber-deep: #c97c2c; --ui-rose: #ff7ea6; --ui-on-accent: #171c34;
  --ui-ink: #263044; --ui-title: #243056; --ui-muted: #606d85; --ui-faint: #637087; --ui-link: var(--ui-primary-d);
  --ui-text: var(--ui-ink); --ui-text-2: var(--ui-muted); --ui-text-3: var(--ui-faint); --ui-accent: var(--ui-primary);
  --ui-field: #f8f9fc; --ui-bg: var(--ui-field); --ui-card-fill: #ffffff; --ui-bg-2: #eeedfc; --ui-ghost: #f3f6ff; --ui-ghost-edge: #c9d3f5; --ui-soft-mint: #e6f3ee;
  --ui-stage: #171c34; --ui-stage-text: #fafbff; --ui-stage-muted: #bfc7df;
  --ui-line: #e3e7ef; --ui-card-edge: var(--ui-line); --ui-control-edge: #7d86a0; --ui-focus-ring: var(--ui-primary-d);
  --ui-up: #197748; --ui-up-bg: #e3f7ed; --ui-down: #b43754; --ui-down-bg: #fce7ec; --ui-danger: #bd2a21; --ui-on-danger: #ffffff; --ui-warn: var(--ui-rose);
  --ui-video-bg: #05060c; --ui-on-video: #ffffff; --ui-on-video-2: #ffffffcc; --ui-video-chip: #05060c80; --ui-video-track: #ffffff40;
  --ui-like: var(--ui-rose); --ui-fav: var(--ui-amber); --ui-backdrop: #24305657; --ui-glass: #ffffff1f;
  --ui-card-drop: 0 2px 5px rgba(30, 42, 58, 0.025), 0 12px 32px -20px rgba(53, 68, 120, 0.15);
  --ui-card-pop: 0 16px 38px -18px rgba(53, 68, 120, 0.3);
  --ui-glow: 0 8px 18px -10px rgba(85, 70, 196, 0.45);
  --ui-arcade: 0 6px 0 #3b2f96, 0 14px 24px -10px rgba(59, 47, 150, 0.8);
  --ui-arcade-pressed: 0 1px 0 #3b2f96, 0 4px 10px -6px rgba(59, 47, 150, 0.8);
  --ui-sheet-shadow: 0 -12px 40px -12px rgba(0, 0, 0, 0.5);
}
[data-theme="dark"] {
  --ui-ink: #f3f4fb; --ui-title: #ffffff; --ui-muted: #b4bbd0; --ui-faint: #959db5; --ui-link: #aaa1ff;
  --ui-text: var(--ui-ink); --ui-text-2: var(--ui-muted); --ui-text-3: var(--ui-faint); --ui-accent: var(--ui-primary);
  --ui-field: #0b0d18; --ui-bg: var(--ui-field); --ui-card-fill: #151929; --ui-bg-2: #221f45; --ui-ghost: #1c2040; --ui-ghost-edge: #3a3f6e; --ui-soft-mint: #10302b;
  --ui-line: #262b40; --ui-card-edge: var(--ui-line); --ui-control-edge: #6a7292; --ui-focus-ring: var(--ui-link);
  --ui-up: #6ad9a0; --ui-up-bg: #0f2e20; --ui-down: #ff93a9; --ui-down-bg: #3a1420; --ui-danger: #ff7b6e; --ui-on-danger: #1a0605; --ui-warn: var(--ui-rose);
  --ui-like: var(--ui-rose); --ui-fav: var(--ui-amber); --ui-backdrop: #000000a6;
  --ui-card-drop: 0 12px 32px -20px rgba(0, 0, 0, 0.6);
  --ui-card-pop: 0 16px 38px -18px rgba(0, 0, 0, 0.75);
}
:root {
  --ui-sp-1: 0.25rem; --ui-sp-2: 0.5rem; --ui-sp-3: 0.75rem; --ui-sp-4: 1rem; --ui-sp-5: 1.5rem; --ui-sp-6: 2rem; --ui-sp-7: 3rem; --ui-sp-8: 4rem;
  --ui-radius-xs: 0.5rem; --ui-radius-sm: 0.75rem; --ui-radius: 1rem; --ui-radius-card: 20px; --ui-radius-stage: 26px; --ui-radius-pill: 999px;
  --ui-grad-btn: linear-gradient(135deg, #6659db, #5546c4);
  --ui-grad: linear-gradient(135deg, #5546c4, #5de2c6);
  --ui-grad-mark: linear-gradient(150deg, #6659db, #9aa6ff);
  --ui-scrim-bottom: linear-gradient(180deg, rgba(5, 6, 12, 0) 0%, rgba(5, 6, 12, 0.55) 45%, rgba(5, 6, 12, 0.82) 100%);
  --ui-scrim-top: linear-gradient(0deg, rgba(5, 6, 12, 0) 0%, rgba(5, 6, 12, 0.5) 100%);
  --ui-nav-h: 4.5rem; --ui-max: 77.5rem; --ui-touch: 44px; --ui-tabbar-h: 56px; --ui-anchor-h: 44px;
  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  --font-num: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --font-mono: ui-monospace, "SF Mono", Menlo, monospace;
}

/* 字阶（与 tokens.json 的 typography 同值） */
.ui-stage-title{font-family:var(--font-sans);font-size:56px;line-height:1.12;font-weight:700;letter-spacing:-0.07em;}
.ui-hero{font-family:var(--font-sans);font-size:2.5rem;line-height:1.08;font-weight:800;letter-spacing:-0.03em;}
.ui-display{font-family:var(--font-num);font-size:2rem;line-height:1;font-weight:800;letter-spacing:-0.03em;}
.ui-h1{font-family:var(--font-sans);font-size:1.75rem;line-height:1.08;font-weight:800;letter-spacing:-0.02em;}
.ui-h2{font-family:var(--font-sans);font-size:1.25rem;line-height:1.28;font-weight:700;}
.ui-h3{font-family:var(--font-sans);font-size:1.125rem;line-height:1.28;font-weight:700;letter-spacing:-0.04em;}
.ui-body{font-family:var(--font-sans);font-size:1rem;line-height:1.6;font-weight:400;}
.ui-cap{font-family:var(--font-sans);font-size:0.8125rem;line-height:1.6;font-weight:400;}
.ui-micro{font-family:var(--font-sans);font-size:0.75rem;line-height:1.6;font-weight:400;}
.ui-kicker{font-family:var(--font-num);font-size:0.75rem;line-height:1.6;font-weight:700;letter-spacing:0.22em;}
.feed-tab{font-family:var(--font-sans);font-size:17px;line-height:1.2;font-weight:700;}
.feed-author{font-family:var(--font-sans);font-size:16px;line-height:1.3;font-weight:700;}
.feed-caption{font-family:var(--font-sans);font-size:14px;line-height:1.45;font-weight:400;}
.feed-anchor{font-family:var(--font-sans);font-size:13px;line-height:1.25;font-weight:600;}
.feed-count{font-family:var(--font-num);font-size:12px;line-height:1.2;font-weight:600;}
.feed-nav{font-family:var(--font-sans);font-size:15px;line-height:1;font-weight:600;}
.ui-arcade-label{font-family:var(--font-num);font-size:15px;line-height:1;font-weight:800;letter-spacing:0.08em;}
.ui-score{font-family:var(--font-num);font-size:20px;line-height:1;font-weight:800;}
.ui-pixel{font-family:var(--font-mono);font-size:12px;line-height:1.4;font-weight:700;letter-spacing:0.12em;}
