/* ==========================================================================
   swgameai.com Overlay CSS
   设计 tokens 见 ../design-tokens.md
   覆盖策略：仅改主色 / 字体 / 圆角；不破坏 sub2api 既有交互
   注入方式：nginx sub_filter 自动加 <link> 到所有 text/html 响应头部
   修改流程：编辑 → git push → ./ops/sync-frontend-overlay.sh
   ========================================================================== */

/* §1. 字体 — Inter Variable + Source Han Sans + JetBrains Mono Variable
   走 jsdelivr CDN（国内可达性比 Google Fonts 高）；找不到时自动降级到 system stack */
@import url('https://cdn.jsdelivr.net/npm/inter-ui@4.1.0/inter.min.css');
@import url('https://cdn.jsdelivr.net/npm/cn-fontsource-source-han-sans-vf-otf-cn@1.0.16/index.min.css');
@import url('https://cdn.jsdelivr.net/npm/jetbrains-mono@1.0.6/index.min.css');

/* §2.0 全局 box-sizing: border-box — 修按钮/卡片 width:100% + padding 溢出问题 */
*, *::before, *::after { box-sizing: border-box; }

/* §2. Design tokens — 改主色调改这里 */
:root {
    /* 颜色 — 浅色模式 */
    --sw-bg:              hsl(0 0% 100%);
    --sw-bg-elevated:     hsl(220 14% 98%);
    --sw-bg-subtle:       hsl(220 14% 96%);
    --sw-fg:              hsl(222 30% 12%);
    --sw-fg-muted:        hsl(220 15% 45%);
    --sw-fg-subtle:       hsl(220 12% 60%);
    --sw-border:          hsl(220 15% 90%);
    --sw-border-strong:   hsl(220 13% 80%);

    /* 主色 — 深蓝商业风（HSL 调 hue 一行换主色） */
    --sw-primary:         hsl(217 91% 50%);
    --sw-primary-hover:   hsl(217 91% 45%);
    --sw-primary-fg:      hsl(0 0% 100%);
    --sw-primary-soft:    hsl(217 91% 96%);

    --sw-accent:          hsl(262 80% 60%);
    --sw-accent-hover:    hsl(262 80% 55%);
    --sw-accent-soft:     hsl(262 80% 96%);

    --sw-success:         hsl(142 70% 40%);
    --sw-warning:         hsl(38  92% 50%);
    --sw-danger:          hsl(0   84% 55%);

    /* 字体 */
    --sw-font-sans:       'InterVariable', 'Inter', 'Source Han Sans VF', 'Source Han Sans SC',
                          -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC',
                          'Hiragino Sans GB', 'Microsoft YaHei UI', sans-serif;
    --sw-font-mono:       'JetBrains Mono', ui-monospace, 'SF Mono', 'Menlo', 'Consolas', monospace;

    /* Spacing (8px base) */
    --sw-space-1:  0.25rem;  --sw-space-2:  0.5rem;
    --sw-space-3:  0.75rem;  --sw-space-4:  1rem;
    --sw-space-6:  1.5rem;   --sw-space-8:  2rem;
    --sw-space-12: 3rem;     --sw-space-16: 4rem;
    --sw-space-24: 6rem;     --sw-space-32: 8rem;

    /* Radius */
    --sw-radius-sm:   6px;
    --sw-radius-md:   10px;
    --sw-radius-lg:   14px;
    --sw-radius-xl:   20px;
    --sw-radius-full: 9999px;

    /* Shadow — 浅色 */
    --sw-shadow-sm:   0 1px 2px hsl(222 30% 12% / 0.05);
    --sw-shadow-md:   0 2px 8px hsl(222 30% 12% / 0.08), 0 1px 2px hsl(222 30% 12% / 0.04);
    --sw-shadow-lg:   0 8px 24px hsl(222 30% 12% / 0.10), 0 2px 6px hsl(222 30% 12% / 0.04);
    --sw-shadow-glow: 0 0 0 4px hsl(217 91% 60% / 0.15);
    --sw-shadow-hero: 0 24px 80px hsl(217 91% 60% / 0.18);

    /* Motion */
    --sw-ease-out:        cubic-bezier(0.16, 1, 0.3, 1);
    --sw-ease-in-out:     cubic-bezier(0.65, 0, 0.35, 1);
    --sw-duration-fast:   150ms;
    --sw-duration-base:   200ms;
    --sw-duration-slow:   400ms;
}

/* §3. 暗色模式 token（自动跟随系统 + sub2api 的 .dark class 双轨触发） */
@media (prefers-color-scheme: dark) {
    :root:not(.light) {
        --sw-bg:            hsl(222 25% 8%);
        --sw-bg-elevated:   hsl(222 22% 12%);
        --sw-bg-subtle:     hsl(222 20% 14%);
        --sw-fg:            hsl(210 20% 96%);
        --sw-fg-muted:      hsl(220 12% 68%);
        --sw-fg-subtle:     hsl(220 8% 50%);
        --sw-border:        hsl(222 18% 22%);
        --sw-border-strong: hsl(222 15% 30%);
        --sw-primary:       hsl(217 91% 60%);
        --sw-primary-hover: hsl(217 91% 65%);
        --sw-primary-soft:  hsl(217 91% 18%);
        --sw-accent:        hsl(262 80% 70%);
        --sw-accent-hover:  hsl(262 80% 75%);
        --sw-accent-soft:   hsl(262 80% 18%);
        --sw-shadow-sm:     0 1px 2px hsl(0 0% 0% / 0.30);
        --sw-shadow-md:     0 2px 8px hsl(0 0% 0% / 0.35), 0 1px 2px hsl(0 0% 0% / 0.20);
        --sw-shadow-lg:     0 8px 24px hsl(0 0% 0% / 0.40), 0 2px 6px hsl(0 0% 0% / 0.20);
        --sw-shadow-hero:   0 24px 80px hsl(217 91% 50% / 0.30);
    }
}

/* sub2api 用 .dark 类切换；同时也用 [data-theme] 兜底 */
html.dark, html[data-theme="dark"] {
    --sw-bg:            hsl(222 25% 8%);
    --sw-bg-elevated:   hsl(222 22% 12%);
    --sw-bg-subtle:     hsl(222 20% 14%);
    --sw-fg:            hsl(210 20% 96%);
    --sw-fg-muted:      hsl(220 12% 68%);
    --sw-fg-subtle:     hsl(220 8% 50%);
    --sw-border:        hsl(222 18% 22%);
    --sw-border-strong: hsl(222 15% 30%);
    --sw-primary:       hsl(217 91% 60%);
    --sw-primary-hover: hsl(217 91% 65%);
    --sw-primary-soft:  hsl(217 91% 18%);
    --sw-accent:        hsl(262 80% 70%);
    --sw-accent-hover:  hsl(262 80% 75%);
    --sw-accent-soft:   hsl(262 80% 18%);
    --sw-shadow-md:     0 2px 8px hsl(0 0% 0% / 0.35), 0 1px 2px hsl(0 0% 0% / 0.20);
    --sw-shadow-lg:     0 8px 24px hsl(0 0% 0% / 0.40), 0 2px 6px hsl(0 0% 0% / 0.20);
    --sw-shadow-hero:   0 24px 80px hsl(217 91% 50% / 0.30);
}

/* §4. 全局基础样式覆盖（仅改字体 + 文本渲染 + 优雅的 ::selection） */
html, body {
    font-family: var(--sw-font-sans);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    font-feature-settings: "ss01" 1, "cv01" 1, "cv02" 1, "cv11" 1;
    /* Inter ss01 = 单层 a; cv01 = 1 上面的 serif; cv11 = 单层 g (更现代) */
}

code, pre, kbd, samp, .font-mono {
    font-family: var(--sw-font-mono);
    font-feature-settings: "calt" 1, "ss01" 1;
}

::selection {
    background-color: var(--sw-primary-soft);
    color: var(--sw-primary);
}
html.dark ::selection {
    background-color: hsl(217 91% 30%);
    color: hsl(0 0% 100%);
}

/* 焦点环 — 全局加强可访问性 */
*:focus-visible {
    outline: 2px solid var(--sw-primary);
    outline-offset: 2px;
    border-radius: var(--sw-radius-sm);
}

/* §5. sub2api Tailwind 主色覆盖
   sub2api 把 teal palette 编译成静态 hex 写进 .bg-primary-500 等类
   这里用同等 specificity 覆盖为我们的蓝色（注意：HSL 等值, 不要 !important 滥用）*/

/* 5.1 主色 50-950 + 同时覆盖可能直接用的 teal/cyan 系列
   用 !important 强制胜出 sub2api production CSS bundle 的 specificity 战 */
.bg-primary-50,  .bg-teal-50,  .bg-cyan-50  { background-color: hsl(217 100% 97%) !important; }
.bg-primary-100, .bg-teal-100, .bg-cyan-100 { background-color: hsl(217 95% 94%)  !important; }
.bg-primary-200, .bg-teal-200, .bg-cyan-200 { background-color: hsl(217 92% 87%)  !important; }
.bg-primary-300, .bg-teal-300, .bg-cyan-300 { background-color: hsl(217 90% 76%)  !important; }
.bg-primary-400, .bg-teal-400, .bg-cyan-400 { background-color: hsl(217 91% 65%)  !important; }
.bg-primary-500, .bg-teal-500, .bg-cyan-500 { background-color: hsl(217 91% 50%)  !important; }
.bg-primary-600, .bg-teal-600, .bg-cyan-600 { background-color: hsl(217 91% 45%)  !important; }
.bg-primary-700, .bg-teal-700, .bg-cyan-700 { background-color: hsl(217 91% 40%)  !important; }
.bg-primary-800, .bg-teal-800, .bg-cyan-800 { background-color: hsl(217 90% 35%)  !important; }
.bg-primary-900, .bg-teal-900, .bg-cyan-900 { background-color: hsl(217 89% 28%)  !important; }
.bg-primary-950, .bg-teal-950, .bg-cyan-950 { background-color: hsl(217 88% 18%)  !important; }

.text-primary-50,  .text-teal-50,  .text-cyan-50  { color: hsl(217 100% 97%) !important; }
.text-primary-100, .text-teal-100, .text-cyan-100 { color: hsl(217 95% 94%)  !important; }
.text-primary-200, .text-teal-200, .text-cyan-200 { color: hsl(217 92% 87%)  !important; }
.text-primary-300, .text-teal-300, .text-cyan-300 { color: hsl(217 90% 76%)  !important; }
.text-primary-400, .text-teal-400, .text-cyan-400 { color: hsl(217 91% 65%)  !important; }
.text-primary-500, .text-teal-500, .text-cyan-500 { color: hsl(217 91% 50%)  !important; }
.text-primary-600, .text-teal-600, .text-cyan-600 { color: hsl(217 91% 45%)  !important; }
.text-primary-700, .text-teal-700, .text-cyan-700 { color: hsl(217 91% 40%)  !important; }
.text-primary-800, .text-teal-800, .text-cyan-800 { color: hsl(217 90% 35%)  !important; }
.text-primary-900, .text-teal-900, .text-cyan-900 { color: hsl(217 89% 28%)  !important; }

.border-primary-200, .border-teal-200, .border-cyan-200 { border-color: hsl(217 92% 87%) !important; }
.border-primary-300, .border-teal-300, .border-cyan-300 { border-color: hsl(217 90% 76%) !important; }
.border-primary-500, .border-teal-500, .border-cyan-500 { border-color: hsl(217 91% 50%) !important; }
.border-primary-600, .border-teal-600, .border-cyan-600 { border-color: hsl(217 91% 45%) !important; }

/* 5.2 hover / focus / ring — 关键交互态 */
.hover\:bg-primary-500:hover { background-color: hsl(217 91% 50%); }
.hover\:bg-primary-600:hover { background-color: hsl(217 91% 45%); }
.hover\:bg-primary-700:hover { background-color: hsl(217 91% 40%); }
.hover\:text-primary-500:hover { color: hsl(217 91% 50%); }
.hover\:text-primary-600:hover { color: hsl(217 91% 45%); }
.focus\:ring-primary-500:focus       { --tw-ring-color: hsl(217 91% 50% / 0.5); }
.focus\:ring-primary-500\/50:focus   { --tw-ring-color: hsl(217 91% 50% / 0.5); }

/* 5.3 渐变 — sub2api .btn-primary 用 from-primary-500 to-primary-600 */
.from-primary-500 { --tw-gradient-from: hsl(217 91% 50%); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, hsl(217 91% 50% / 0)); }
.from-primary-600 { --tw-gradient-from: hsl(217 91% 45%); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, hsl(217 91% 45% / 0)); }
.to-primary-500   { --tw-gradient-to: hsl(217 91% 50%); }
.to-primary-600   { --tw-gradient-to: hsl(217 91% 45%); }
.to-primary-700   { --tw-gradient-to: hsl(217 91% 40%); }

/* 5.4 Shadow with primary tint — sub2api 按钮的 glow */
.shadow-primary-500\/25 { --tw-shadow-color: hsl(217 91% 50% / 0.25); --tw-shadow: var(--tw-shadow-colored); }
.shadow-primary-500\/30 { --tw-shadow-color: hsl(217 91% 50% / 0.30); --tw-shadow: var(--tw-shadow-colored); }
.hover\:shadow-primary-500\/30:hover { --tw-shadow-color: hsl(217 91% 50% / 0.30); --tw-shadow: var(--tw-shadow-colored); }

/* 5.5 暗色模式下 sub2api 用 dark:bg-primary-* 等 */
html.dark .dark\:bg-primary-500 { background-color: hsl(217 91% 60%); }
html.dark .dark\:bg-primary-600 { background-color: hsl(217 91% 55%); }
html.dark .dark\:text-primary-100 { color: hsl(217 95% 94%); }
html.dark .dark\:text-primary-400 { color: hsl(217 91% 65%); }

/* §6. swgameai overlay 自有组件类（用 .sw-* 前缀避免与 sub2api 冲突） */

.sw-page {
    min-height: 100vh;
    background-color: var(--sw-bg);
    color: var(--sw-fg);
    font-size: 1rem;
    line-height: 1.5;
    padding: 0;
    margin: 0;
}

/* 容器 — 三档宽度 */
.sw-container        { max-width: 1280px; margin: 0 auto; padding: 0 var(--sw-space-6); }
.sw-container-narrow { max-width: 768px;  margin: 0 auto; padding: 0 var(--sw-space-6); }
.sw-container-prose  { max-width: 680px;  margin: 0 auto; padding: 0 var(--sw-space-6); }

/* Hero */
.sw-hero {
    position: relative;
    padding: var(--sw-space-32) 0 var(--sw-space-24);
    overflow: hidden;
    text-align: center;
}
.sw-hero::before {
    content: "";
    position: absolute;
    inset: -10% 0 auto;
    height: 70%;
    background: radial-gradient(
        ellipse 70% 60% at 50% 0%,
        hsl(217 91% 50% / 0.15) 0%,
        hsl(262 80% 60% / 0.08) 30%,
        transparent 70%
    );
    pointer-events: none;
    z-index: 0;
}
html.dark .sw-hero::before {
    background: radial-gradient(
        ellipse 70% 60% at 50% 0%,
        hsl(217 91% 50% / 0.20) 0%,
        hsl(262 80% 60% / 0.10) 30%,
        transparent 70%
    );
}
.sw-hero > * { position: relative; z-index: 1; }

.sw-hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: var(--sw-space-2);
    padding: var(--sw-space-1) var(--sw-space-3);
    border-radius: var(--sw-radius-full);
    background-color: var(--sw-primary-soft);
    color: var(--sw-primary);
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: var(--sw-space-6);
}
.sw-hero-eyebrow::before {
    content: "";
    width: 6px; height: 6px;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 0 0 0 3px currentColor;
    opacity: 0.4;
    animation: sw-pulse 2s ease-in-out infinite;
}
@keyframes sw-pulse {
    0%, 100% { opacity: 0.4; transform: scale(1); }
    50%      { opacity: 0.7; transform: scale(1.2); }
}

.sw-hero-title {
    font-size: clamp(2.5rem, 6vw, 4rem);
    line-height: 1.1;
    font-weight: 700;
    letter-spacing: -0.02em;
    margin: 0 auto var(--sw-space-4);
    max-width: 18ch;
    background: linear-gradient(180deg, var(--sw-fg) 0%, var(--sw-fg-muted) 120%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.sw-hero-subtitle {
    font-size: clamp(1.125rem, 2vw, 1.25rem);
    line-height: 1.5;
    color: var(--sw-fg-muted);
    max-width: 42ch;
    margin: 0 auto var(--sw-space-8);
}

/* Buttons */
.sw-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--sw-space-2);
    height: 44px;
    padding: 0 var(--sw-space-6);
    border-radius: var(--sw-radius-md);
    font-family: inherit;
    font-size: 0.95rem;
    font-weight: 500;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition: all var(--sw-duration-base) var(--sw-ease-out);
    border: 1px solid transparent;
}
.sw-btn:focus-visible { outline: none; box-shadow: var(--sw-shadow-glow); }

.sw-btn-primary {
    background-color: var(--sw-primary);
    color: var(--sw-primary-fg);
    box-shadow: var(--sw-shadow-md);
}
.sw-btn-primary:hover {
    background-color: var(--sw-primary-hover);
    box-shadow: var(--sw-shadow-hero);
    transform: translateY(-1px);
}
.sw-btn-primary:active { transform: translateY(0); }

.sw-btn-ghost {
    background-color: transparent;
    color: var(--sw-fg);
    border-color: var(--sw-border-strong);
}
.sw-btn-ghost:hover {
    background-color: var(--sw-bg-elevated);
    border-color: var(--sw-fg-muted);
}

/* Cards */
.sw-card {
    background-color: var(--sw-bg-elevated);
    border: 1px solid var(--sw-border);
    border-radius: var(--sw-radius-lg);
    padding: var(--sw-space-6);
    transition: all var(--sw-duration-base) var(--sw-ease-out);
}
.sw-card:hover {
    border-color: var(--sw-border-strong);
    transform: translateY(-2px);
    box-shadow: var(--sw-shadow-lg);
}

/* Feature grid */
.sw-grid-features {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--sw-space-6);
    margin-top: var(--sw-space-12);
}

.sw-feature-icon {
    width: 48px; height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--sw-radius-md);
    background: linear-gradient(135deg, var(--sw-primary-soft), var(--sw-accent-soft));
    color: var(--sw-primary);
    margin-bottom: var(--sw-space-4);
    font-size: 1.5rem;
}

.sw-feature-title {
    font-size: var(--sw-text-xl, 1.25rem);
    font-weight: 600;
    margin: 0 0 var(--sw-space-2);
    color: var(--sw-fg);
}
.sw-feature-desc {
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--sw-fg-muted);
    margin: 0;
}

/* Pricing */
.sw-pricing-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--sw-space-6);
    margin-top: var(--sw-space-12);
}
.sw-pricing-card {
    position: relative;
    background-color: var(--sw-bg-elevated);
    border: 1px solid var(--sw-border);
    border-radius: var(--sw-radius-xl);
    padding: var(--sw-space-8);
    transition: all var(--sw-duration-base) var(--sw-ease-out);
}
.sw-pricing-card.featured {
    border-color: var(--sw-primary);
    box-shadow: var(--sw-shadow-hero);
    transform: scale(1.02);
}
.sw-pricing-card.featured::before {
    content: "推荐";
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    padding: 4px 16px;
    border-radius: var(--sw-radius-full);
    background: var(--sw-primary);
    color: var(--sw-primary-fg);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
}
.sw-pricing-name { font-size: 1.125rem; font-weight: 600; margin: 0 0 var(--sw-space-2); }
.sw-pricing-price {
    font-size: 3rem; font-weight: 700; line-height: 1; letter-spacing: -0.02em;
    color: var(--sw-fg); margin: var(--sw-space-2) 0;
}
.sw-pricing-price small { font-size: 1rem; color: var(--sw-fg-muted); font-weight: 400; }
.sw-pricing-features { list-style: none; padding: 0; margin: var(--sw-space-6) 0; }
.sw-pricing-features li {
    display: flex; align-items: flex-start; gap: var(--sw-space-2);
    padding: var(--sw-space-2) 0;
    color: var(--sw-fg-muted);
    font-size: 0.95rem;
}
.sw-pricing-features li::before {
    content: "✓"; color: var(--sw-success); font-weight: 700; flex-shrink: 0;
}

/* Prose (for tos / privacy) */
.sw-prose {
    color: var(--sw-fg);
    font-size: 1rem;
    line-height: 1.7;
}
.sw-prose h1 { font-size: 2.5rem; font-weight: 700; letter-spacing: -0.02em; margin: 0 0 var(--sw-space-4); }
.sw-prose h2 { font-size: 1.5rem; font-weight: 600; margin: var(--sw-space-12) 0 var(--sw-space-3); }
.sw-prose h3 { font-size: 1.125rem; font-weight: 600; margin: var(--sw-space-6) 0 var(--sw-space-2); }
.sw-prose p, .sw-prose ul, .sw-prose ol { margin: 0 0 var(--sw-space-4); }
.sw-prose ul, .sw-prose ol { padding-left: var(--sw-space-6); }
.sw-prose li { margin: var(--sw-space-1) 0; }
.sw-prose a { color: var(--sw-primary); text-decoration: none; border-bottom: 1px solid var(--sw-primary-soft); }
.sw-prose a:hover { border-color: var(--sw-primary); }
.sw-prose code {
    background: var(--sw-bg-subtle);
    padding: 2px 6px;
    border-radius: var(--sw-radius-sm);
    font-size: 0.9em;
}
.sw-prose hr { border: 0; border-top: 1px solid var(--sw-border); margin: var(--sw-space-12) 0; }

/* Top nav (落地页用) */
.sw-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--sw-space-4) var(--sw-space-6);
    max-width: 1280px;
    margin: 0 auto;
}
.sw-nav-brand {
    display: flex; align-items: center; gap: var(--sw-space-2);
    font-weight: 700;
    font-size: 1.125rem;
    color: var(--sw-fg);
    text-decoration: none;
    letter-spacing: -0.01em;
}
.sw-nav-brand img { width: 28px; height: 28px; border-radius: 6px; }
.sw-nav-links { display: flex; gap: var(--sw-space-2); }
.sw-nav-link {
    padding: var(--sw-space-2) var(--sw-space-3);
    border-radius: var(--sw-radius-sm);
    color: var(--sw-fg-muted);
    text-decoration: none;
    font-size: 0.95rem;
    font-weight: 500;
    transition: all var(--sw-duration-fast) var(--sw-ease-out);
}
.sw-nav-link:hover { color: var(--sw-fg); background: var(--sw-bg-subtle); }

/* Footer */
.sw-footer {
    border-top: 1px solid var(--sw-border);
    padding: var(--sw-space-12) var(--sw-space-6);
    text-align: center;
    color: var(--sw-fg-subtle);
    font-size: 0.875rem;
    margin-top: var(--sw-space-24);
}
.sw-footer a {
    color: var(--sw-fg-muted);
    text-decoration: none;
    margin: 0 var(--sw-space-3);
    transition: color var(--sw-duration-fast) var(--sw-ease-out);
}
.sw-footer a:hover { color: var(--sw-primary); }
.sw-footer-attribution {
    display: block;
    margin-top: var(--sw-space-4);
    font-size: 0.75rem;
    color: var(--sw-fg-subtle);
}

/* §7. 减少动效 — 尊重 prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
    .sw-hero-eyebrow::before { animation: none; }
}

/* §8. 打印样式优化（法律页 toS / privacy 友好打印） */
@media print {
    .sw-nav, .sw-footer, .sw-btn { display: none; }
    .sw-prose { color: black; max-width: none; }
    .sw-page { background: white; }
}
