/* ============================================================
   原点兽聚 Origin Furry · 官方通讯站
   设计语言：纯白底色 · 天蓝主色 #32ABFD · 暖米区间 #F7EFE1
   字体：思源黑体（全网站统一）
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap');

:root {
    /* 主色：天蓝 #32ABFD 为核心，暖米 #F7EFE1 为辅助区间色 */
    --c-purple: #32ABFD;          /* 主蓝（变量名保留兼容） */
    --c-purple-deep: #1A7BBF;     /* 深蓝，标题/链接，白底对比度 >= 4.5:1（WCAG AA） */
    --c-pink: #32ABFD;            /* 兼容引用 -> 主蓝 */
    --c-pink-soft: #7AC8F8;       /* 浅蓝 */
    --c-blue: #32ABFD;            /* 主蓝 */
    --c-blue-soft: #7AC8F8;       /* 浅蓝 */
    --c-amber: #E0A96D;           /* 暖琥珀，点缀色 */
    --c-amber-soft: #F0D5A8;

    /* 文字与中性色 —— 中性墨黑，白底高对比 */
    --c-ink-1: #1A1A1A;           /* 最深文字，白底对比度 ~16:1 */
    --c-ink-2: #333333;           /* 正文，白底对比度 ~12:1 */
    --c-ink-3: #666666;           /* 次要文字，白底对比度 ~5.7:1 */
    --c-ink-4: #999999;           /* 辅助文字 */
    --c-line: #E8E8E8;            /* 中性分隔线 */
    --c-bg: #FFFFFF;              /* 纯白主背景 */
    --c-bg-soft: #F7EFE1;         /* 暖米区间色 */
    --c-bg-tint: #F7EFE1;         /* 卡片底色 */
    --c-paper: #FFFFFF;           /* 纸张色 = 白 */

    /* 渐变 —— 蓝->米自然过渡 */
    --grad-brand: linear-gradient(135deg, #32ABFD 0%, #5BC4F9 50%, #F7EFE1 100%);
    --grad-hero: linear-gradient(180deg, rgba(20,20,30,0) 0%, rgba(20,20,30,0.45) 60%, rgba(20,20,30,0.72) 100%);
    --grad-card: linear-gradient(160deg, #FFFFFF 0%, #F7EFE1 100%);
    --grad-btn: linear-gradient(135deg, #32ABFD 0%, #1A7BBF 100%);

    /* 圆角与阴影 —— 中性阴影 */
    --r-sm: 8px;
    --r-md: 12px;
    --r-lg: 16px;
    --r-xl: 22px;
    --s-sm: 0 2px 8px rgba(0, 0, 0, 0.04);
    --s-md: 0 6px 22px rgba(0, 0, 0, 0.06);
    --s-lg: 0 14px 40px rgba(0, 0, 0, 0.08);
    --s-btn: 0 8px 20px rgba(50, 171, 253, 0.25);

    --max: 1180px;
    --ease: cubic-bezier(.22,.9,.3,1);
    /* Apple 风格缓动曲线集 */
    --ease-out: cubic-bezier(.22,1,.36,1);         /* 出场主缓动 */
    --ease-in-out: cubic-bezier(.65,0,.35,1);      /* 页面级过渡 */
    --ease-spring: cubic-bezier(.34,1.56,.64,1);   /* 轻弹簧回弹 */

    /* 动画可配置参数（可通过 data-* 覆盖） */
    --reveal-duration: .8s;
    --reveal-delay: 0ms;
    --reveal-offset: 32px;         /* 位移距离 */
    --reveal-zoom: .96;            /* 缩放起始值 */
    --reveal-threshold: 0.12;      /* 触发阈值（由 JS 读取） */
    --reveal-root-margin: 0px 0px -60px 0px;

    --font-serif: "Noto Sans SC", -apple-system, BlinkMacSystemFont, "PingFang SC",
        "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
    --font-ui: "Noto Sans SC", -apple-system, BlinkMacSystemFont, "PingFang SC",
        "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
    --font-en: "Noto Sans SC", -apple-system, BlinkMacSystemFont, "PingFang SC",
        "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
    font-family: var(--font-ui);
    color: var(--c-ink-2);
    background: var(--c-bg);
    line-height: 1.75;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
    /* 极淡的纸张纹理，增加质感而非装饰 */
    background-image:
        radial-gradient(circle at 20% 10%, rgba(50, 171, 253, 0.025), transparent 50%),
        radial-gradient(circle at 80% 80%, rgba(50, 171, 253, 0.025), transparent 50%);
    background-attachment: fixed;
}
a { color: inherit; text-decoration: none; transition: color .2s; }
ul { list-style: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; color: inherit; }
img { max-width: 100%; display: block; }
section { scroll-margin-top: 80px; }

/* 标题统一用宋体，营造人文气质 */
h1, h2, h3, h4, h5 { font-family: var(--font-serif); color: var(--c-ink-1); }

.container { width: 100%; max-width: var(--max); margin: 0 auto; padding: 0 28px; }

/* 选区颜色 */
::selection { background: rgba(50, 171, 253, 0.18); color: var(--c-ink-1); }

/* ========== 通用按钮 ========== */
.btn {
    display: inline-flex;
    align-items: center; justify-content: center;
    padding: 11px 22px;
    border-radius: 999px;
    font-size: .92rem;
    font-weight: 600;
    letter-spacing: .3px;
    transition: transform .25s var(--ease), box-shadow .25s var(--ease), background .25s, border-color .25s;
    white-space: nowrap;
    line-height: 1;
    position: relative;
    overflow: hidden;
}
.btn-sm { padding: 9px 18px; font-size: .85rem; }
.btn-lg { padding: 14px 30px; font-size: 1rem; }
.btn-block { width: 100%; }
.btn-primary {
    background: var(--grad-btn);
    color: #fff;
    box-shadow: var(--s-btn);
}
.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 26px rgba(50, 171, 253, 0.32);
}
.btn-primary:active { transform: translateY(0); }
.btn-outline {
    background: transparent;
    color: var(--c-purple-deep);
    border: 1.5px solid rgba(50, 171, 253, 0.28);
}
.btn-outline:hover {
    background: rgba(50, 171, 253, 0.06);
    border-color: var(--c-purple);
    transform: translateY(-2px);
}
.btn-outline:active { transform: translateY(0); }

/* ========== 顶栏 ========== */
.topbar {
    position: sticky; top: 0; z-index: 1000;
    /* 液态玻璃：加深半透明背景 + 多层模糊 */
    background: rgba(255, 255, 255, 0.75);
    backdrop-filter: blur(16px) saturate(200%);
    -webkit-backdrop-filter: blur(16px) saturate(200%);
    /* 玻璃边缘：顶部高光 + 底部细边 */
    border-bottom: 1px solid rgba(255, 255, 255, 0.6);
    box-shadow:
        inset 0 1px 0 0 rgba(255, 255, 255, 0.7),
        0 1px 0 0 rgba(0, 0, 0, 0.04);
    transition: box-shadow .3s var(--ease-out), background .3s var(--ease-out);
}
.topbar.scrolled {
    /* 滚动后加深玻璃质感 */
    background: rgba(255, 255, 255, 0.88);
    box-shadow:
        inset 0 1px 0 0 rgba(255, 255, 255, 0.8),
        0 4px 24px rgba(0, 0, 0, 0.08);
}
.topbar-inner {
    display: flex; align-items: center;
    height: 72px;
    gap: 24px;
}

.brand {
    display: inline-flex; align-items: center; gap: 12px;
    flex-shrink: 0;
}
.brand-badge {
    width: 42px; height: 42px;
    position: relative;
    display: grid; place-items: center;
    background: rgba(255, 255, 255, 0.45);
    backdrop-filter: blur(8px) saturate(160%);
    -webkit-backdrop-filter: blur(8px) saturate(160%);
    border: 1px solid rgba(255, 255, 255, 0.6);
    border-radius: 12px;
    box-shadow: inset 0 1px 0 0 rgba(255, 255, 255, 0.5);
    overflow: hidden;
}
/* Logo 图片：从阿里云 OSS 拉取后自适应展示 */
.brand-logo {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 4px;
    transition: filter .3s ease;
}
.brand-logo-foot {
    padding: 3px;
}
/* OSS 图片加载失败时的占位样式（蓝渐变 + 字母 O）
   img 触发 onerror 后添加 .logo-fallback 类，opacity 透明，
   父级 .brand-badge 通过 .has-fallback 类显示 ::after 占位 */
.brand-logo.logo-fallback {
    opacity: 0;
}
.brand-badge:has(.logo-fallback)::after {
    content: "O";
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, #32ABFD 0%, #5BC4F9 50%, #F7EFE1 100%);
    color: #fff;
    font-family: var(--font-serif, "Noto Sans SC", sans-serif);
    font-weight: 900;
    font-size: 1.2rem;
    text-shadow: 0 2px 8px rgba(0,0,0,.2);
    border-radius: inherit;
}
.brand:hover .brand-logo {
    filter: drop-shadow(0 2px 6px rgba(0,0,0,0.15));
}
.brand-name {
    font-family: var(--font-serif);
    font-size: 1.08rem;
    font-weight: 700;
    color: var(--c-ink-1);
    letter-spacing: 1px;
}
.brand-en {
    font-family: var(--font-en);
    font-size: .82rem;
    font-style: normal;
    color: var(--c-ink-4);
    font-weight: 500;
    margin-top: 2px;
    letter-spacing: 1px;
    display: none;
}
@media (min-width: 700px) { .brand-en { display: block; } }

.main-nav {
    display: flex; align-items: center; gap: 2px;
    margin-left: 4px;
    flex: 1;
}
.nav-link {
    padding: 8px 14px;
    border-radius: 8px;
    font-size: .92rem;
    font-weight: 500;
    color: var(--c-ink-3);
    position: relative;
    transition: color .22s, background .22s, backdrop-filter .22s;
}
.nav-link:hover {
    color: var(--c-purple-deep);
    background: rgba(255, 255, 255, 0.5);
    backdrop-filter: blur(6px) saturate(160%);
    -webkit-backdrop-filter: blur(6px) saturate(160%);
}
.nav-link.active {
    color: var(--c-purple-deep);
    background: rgba(255, 255, 255, 0.55);
    backdrop-filter: blur(6px) saturate(160%);
    -webkit-backdrop-filter: blur(6px) saturate(160%);
}
.nav-link.active::after {
    content: "";
    position: absolute;
    left: 50%; bottom: 2px;
    width: 16px; height: 2px;
    background: var(--c-purple);
    border-radius: 2px;
    transform: translateX(-50%);
}

.topbar-right {
    display: flex; align-items: center; gap: 10px;
    flex-shrink: 0;
}
.nav-icon-btn {
    width: 38px; height: 38px;
    display: grid; place-items: center;
    border-radius: 10px;
    color: var(--c-ink-3);
    border: 1px solid transparent;
    transition: all .22s;
}
.nav-icon-btn:hover {
    color: var(--c-purple-deep);
    background: rgba(255, 255, 255, 0.5);
    backdrop-filter: blur(6px) saturate(160%);
    -webkit-backdrop-filter: blur(6px) saturate(160%);
    border-color: rgba(255, 255, 255, 0.6);
}
.menu-toggle {
    display: none;
    width: 38px; height: 38px;
    border-radius: 10px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 4.5px;
    transition: background .2s;
}
.menu-toggle:hover {
    background: rgba(255, 255, 255, 0.5);
    backdrop-filter: blur(6px) saturate(160%);
    -webkit-backdrop-filter: blur(6px) saturate(160%);
}
.menu-toggle span {
    width: 22px; height: 2px;
    background: var(--c-ink-2);
    border-radius: 2px;
    transition: transform .25s var(--ease), opacity .2s;
}
.menu-toggle.open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.menu-toggle.open span:nth-child(2) { opacity: 0; }
.menu-toggle.open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

@media (max-width: 980px) {
    .menu-toggle { display: flex; }
    .main-nav {
        position: fixed;
        top: 68px; right: 0;
        width: min(320px, 82vw);
        height: calc(100vh - 68px);
        flex-direction: column;
        align-items: stretch;
        gap: 2px;
        padding: 18px;
        background: rgba(255, 255, 255, 0.75);
        backdrop-filter: blur(16px) saturate(200%);
        -webkit-backdrop-filter: blur(16px) saturate(200%);
        border-left: 1px solid rgba(255, 255, 255, 0.6);
        margin-left: 0;
        transform: translateX(110%);
        transition: transform .35s var(--ease);
        box-shadow: -10px 0 40px rgba(0, 0, 0,.08), inset 1px 0 0 0 rgba(255,255,255,0.5);
        overflow-y: auto;
        flex: none;
    }
    .main-nav.open { transform: translateX(0); }
    .nav-link { padding: 14px 16px; font-size: 1rem; }
    .topbar-inner { height: 68px; }
}

/* ========== Banner ========== */
.banner {
    position: relative;
    color: #fff;
    overflow: hidden;
    min-height: 700px;
}
.banner-img {
    position: absolute; inset: 0;
    z-index: 0;
}
.banner-img img {
    width: 100%; height: 100%;
    object-fit: cover;
    object-position: center;
}
.banner-mask {
    position: absolute; inset: 0;
    background: var(--grad-hero);
}
.banner-content {
    position: relative;
    z-index: 2;
    padding: 60px 56px 90px 96px;
    text-align: left;
    max-width: 960px;
    margin: 0 auto 0 0;
    min-height: 640px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
}
.banner-tagline { margin-bottom: 20px; }
.banner-serial {
    display: inline-block;
    font-family: var(--font-en);
    font-size: .82rem;
    font-style: normal;
    letter-spacing: 2px;
    padding: 6px 16px;
    border-radius: 999px;
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.22);
    font-weight: 500;
    color: rgba(255,255,255,.92);
}
.banner-title {
    margin-bottom: 22px;
    line-height: 1.1;
}
.title-main {
    font-family: var(--font-serif);
    font-size: clamp(2.8rem, 7vw, 5.2rem);
    font-weight: 900;
    letter-spacing: 6px;
    color: #FFFFFF;
    text-shadow: 0 2px 30px rgba(20, 20, 30,0.35);
}
.title-main .dot {
    color: var(--c-amber-soft);
    margin: 0 .15em;
    font-weight: 500;
}
.banner-sub {
    font-family: var(--font-serif);
    font-size: clamp(1rem, 2vw, 1.18rem);
    line-height: 2;
    color: rgba(255, 255, 255, 0.88);
    max-width: 640px;
    margin: 0 0 40px 0;
    letter-spacing: 1px;
    font-weight: 500;
    text-align: left;
}
.banner-actions {
    display: flex; flex-wrap: wrap;
    justify-content: flex-start;
    gap: 14px;
    margin-top: 72px;
    margin-bottom: 0;
}
.banner-actions .btn-outline {
    color: #fff;
    border-color: rgba(255,255,255,.45);
    background: rgba(255,255,255,.08);
}
.banner-actions .btn-outline:hover { background: rgba(255,255,255,.16); border-color: #fff; }

@media (max-width: 520px) {
    .mobile-hide { display: none; }
}

/* ========== 通用区块 ========== */
.section { padding: 100px 0; }
.section-tinted { background: var(--c-bg); position: relative; }
.section-tinted::before {
    content: "";
    position: absolute; inset: 0;
    background:
        radial-gradient(ellipse 600px 300px at 10% 10%, rgba(50, 171, 253,.08), transparent 70%),
        radial-gradient(ellipse 500px 280px at 95% 90%, rgba(26, 123, 191,.08), transparent 70%);
    pointer-events: none;
}

.section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 42px;
    position: relative;
}
.section-eyebrow {
    display: inline-block;
    font-family: var(--font-en);
    font-size: .82rem;
    font-style: normal;
    font-weight: 600;
    letter-spacing: 3px;
    color: var(--c-purple);
    margin-bottom: 10px;
}
.section-eyebrow.light { color: rgba(255, 255, 255, 0.85); }
.section-title {
    font-family: var(--font-serif);
    font-size: clamp(1.75rem, 3vw, 2.15rem);
    font-weight: 700;
    color: var(--c-ink-1);
    letter-spacing: 1.5px;
    line-height: 1.3;
}
.section-title.light { color: #FFFFFF; }
.section-subtle {
    color: var(--c-ink-4);
    font-size: .95rem;
    margin-bottom: 28px;
    max-width: 720px;
    line-height: 1.85;
}
.see-more {
    display: inline-flex; align-items: center;
    color: var(--c-purple-deep);
    font-weight: 600;
    font-size: .9rem;
    padding: 8px 2px;
    border-bottom: 1px solid transparent;
    transition: all .25s;
    white-space: nowrap;
    flex-shrink: 0;
}
.see-more:hover {
    border-bottom-color: var(--c-purple-deep);
    color: var(--c-purple);
    padding-right: 6px;
}
.see-more::after {
    content: "→";
    margin-left: 6px;
    transition: transform .25s;
}
.see-more:hover::after { transform: translateX(4px); }

@media (max-width: 520px) {
    .section { padding: 72px 0; }
    .section-head { flex-direction: column; align-items: flex-start; gap: 8px; }
}

/* ============================================================
   Apple 风格 · 视口入场动画系统
   · 用法：在元素加 class="reveal reveal-up" (或其他类型)
   · 可选配置 data-*：
       data-reveal-duration=".9s"  data-reveal-delay="120ms"
       data-reveal-offset="40px"   data-reveal-zoom=".94"
       data-reveal-threshold="0.2" data-reveal-order="N" (错峰顺序)
   ============================================================ */

/* ---------- 通用基类：初始隐藏状态 ---------- */
.reveal {
    opacity: 0;
    will-change: transform, opacity;
    backface-visibility: hidden;
    transition:
        opacity var(--reveal-duration, .8s) var(--ease-out) var(--reveal-delay, 0ms),
        transform var(--reveal-duration, .8s) var(--ease-out) var(--reveal-delay, 0ms),
        filter  var(--reveal-duration, .8s) var(--ease-out) var(--reveal-delay, 0ms);
}
.reveal.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    filter: blur(0);
}

/* ---------- 入场方向/类型（组合式） ---------- */
.reveal-up       { transform: translate3d(0, var(--reveal-offset, 32px), 0); }
.reveal-down     { transform: translate3d(0, calc(var(--reveal-offset, 32px) * -1), 0); }
.reveal-left     { transform: translate3d(var(--reveal-offset, 32px), 0, 0); }
.reveal-right    { transform: translate3d(calc(var(--reveal-offset, 32px) * -1), 0, 0); }
.reveal-zoom     { transform: scale(var(--reveal-zoom, .96)); }
.reveal-zoom-up  { transform: translate3d(0, var(--reveal-offset, 24px), 0) scale(var(--reveal-zoom, .96)); }
.reveal-fade     { /* 纯淡入，无需额外 transform */ }
.reveal-blur     { filter: blur(10px); transform: translate3d(0, 12px, 0); }
.reveal-flip-x   { transform: perspective(800px) rotateX(12deg) translate3d(0, 16px, 0); transform-origin: center bottom; }
.reveal-flip-y   { transform: perspective(800px) rotateY(-10deg) translate3d(16px, 0, 0); }

/* 动画完成后移除 will-change，节省 GPU 资源 */
.reveal.is-visible { will-change: auto; }

/* ---------- 错峰 stagger（通过 JS 设置 CSS 变量 --reveal-delay） ---------- */

/* ---------- 卡片/模块悬停微交互（Apple 风格：轻位移 + 深阴影 + 光泽） ---------- */
.hover-lift {
    transition: transform .35s var(--ease-out),
                box-shadow .35s var(--ease-out),
                border-color .35s var(--ease-out);
}
.hover-lift:hover {
    transform: translateY(-6px);
}

.hover-zoom {
    transition: transform .5s var(--ease-out),
                box-shadow .5s var(--ease-out);
}
.hover-zoom:hover {
    transform: scale(1.02);
}

.hover-shine {
    position: relative;
    overflow: hidden;
}
.hover-shine::before {
    content: "";
    position: absolute;
    top: 0; left: -75%;
    width: 50%; height: 100%;
    background: linear-gradient(120deg,
        transparent 0%,
        rgba(255,255,255,0) 30%,
        rgba(255,255,255,0.35) 50%,
        rgba(255,255,255,0) 70%,
        transparent 100%);
    transform: skewX(-20deg);
    transition: left .7s var(--ease-in-out);
    pointer-events: none;
    z-index: 2;
}
.hover-shine:hover::before {
    left: 125%;
}

/* 按压反馈 */
.press-scale {
    transition: transform .15s var(--ease-out);
}
.press-scale:active {
    transform: scale(.97);
}

/* ---------- 响应式：降低移动端动画幅度，避免性能与误触问题 ---------- */
@media (max-width: 960px) {
    :root {
        --reveal-offset: 20px;
        --reveal-duration: .7s;
    }
}
@media (max-width: 520px) {
    :root {
        --reveal-offset: 14px;
        --reveal-duration: .6s;
    }
    .reveal-flip-x, .reveal-flip-y { transform: translate3d(0, 14px, 0); }
    .hover-lift:hover { transform: translateY(-3px); }
    .hover-zoom:hover { transform: scale(1.01); }
}

/* 旧 reveal 兼容：仍保留原选择器以兼容未替换的页面内容 */
.reveal.visible { opacity: 1; transform: translate3d(0,0,0) scale(1); }

/* ========== 活动信息卡 ========== */
.info-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}
.info-card {
    background: var(--c-paper);
    border: 1px solid var(--c-line);
    border-radius: var(--r-lg);
    padding: 32px 28px;
    transition: transform .3s var(--ease), box-shadow .3s, border-color .3s;
    position: relative;
}
.info-card::before {
    content: "";
    position: absolute;
    top: 0; left: 28px; right: 28px;
    height: 2px;
    background: var(--grad-brand);
    opacity: 0;
    transition: opacity .3s;
    border-radius: 0 0 2px 2px;
}
.info-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--s-md);
    border-color: rgba(50, 171, 253, 0.25);
}
.info-card:hover::before { opacity: 1; }
.info-ico {
    width: 52px; height: 52px;
    display: grid; place-items: center;
    font-size: 1.7rem;
    background: var(--c-bg-tint);
    border: 1px solid var(--c-line);
    border-radius: 12px;
    margin-bottom: 18px;
}
.info-card h3 {
    font-family: var(--font-serif);
    font-size: 1.18rem;
    color: var(--c-ink-1);
    margin-bottom: 8px;
    font-weight: 700;
    letter-spacing: 1px;
}
.info-card > p { color: var(--c-ink-3); font-size: .94rem; margin-bottom: 16px; line-height: 1.8; }
.info-list { display: grid; gap: 8px; }
.info-list li {
    display: grid;
    grid-template-columns: 88px 1fr;
    gap: 12px;
    padding: 10px 12px;
    background: var(--c-bg);
    border: 1px solid var(--c-line);
    border-radius: var(--r-sm);
    font-size: .9rem;
    transition: background .2s;
}
.info-list li:hover { background: var(--c-bg-tint); }
.info-list li > span {
    color: var(--c-purple-deep);
    font-weight: 700;
    font-size: .82rem;
    letter-spacing: .5px;
}
.info-list li > em {
    font-style: normal;
    color: var(--c-ink-3);
}
.hot-tag {
    display: inline-block;
    padding: 2px 8px;
    background: transparent;
    color: #fff;
    border-radius: 4px;
    font-size: .7rem !important;
    font-weight: 700;
    letter-spacing: .5px;
}
@media (max-width: 900px) { .info-grid { grid-template-columns: 1fr; } }

/* ========== 最新资讯 ========== */
.news-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}
.news-card {
    background: var(--c-paper);
    border-radius: var(--r-lg);
    overflow: hidden;
    border: 1px solid var(--c-line);
    transition: transform .3s var(--ease), box-shadow .3s, border-color .3s;
    display: flex; flex-direction: column;
}
.news-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--s-lg);
    border-color: rgba(50, 171, 253, 0.22);
}
.news-card-lg { grid-column: span 2; grid-row: span 2; }
.news-card-lg .news-body { padding: 30px; }
.news-card-lg h3 { font-size: 1.4rem; line-height: 1.45; }
.news-cover {
    position: relative;
    aspect-ratio: 16/9;
    overflow: hidden;
    margin: 0;
}
.news-card:not(.news-card-lg) .news-cover { aspect-ratio: 4/3; }
.news-cover img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .7s var(--ease);
}
.news-card:hover .news-cover img { transform: scale(1.05); }
.news-tag {
    position: absolute;
    top: 14px; left: 14px;
    padding: 4px 11px;
    background: rgba(255, 255, 255, 0.94);
    color: var(--c-purple-deep);
    border-radius: 4px;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: 1.5px;
    backdrop-filter: blur(8px);
}
.news-body { padding: 22px 24px 26px; flex: 1; display: flex; flex-direction: column; }
.news-date {
    display: block;
    font-family: var(--font-en);
    font-size: .82rem;
    font-style: normal;
    color: var(--c-ink-4);
    letter-spacing: 1px;
    margin-bottom: 10px;
}
.news-body h3 {
    font-family: var(--font-serif);
    font-size: 1.08rem;
    color: var(--c-ink-1);
    font-weight: 700;
    line-height: 1.5;
    margin-bottom: 10px;
    letter-spacing: .5px;
    transition: color .2s;
}
.news-card:hover .news-body h3 { color: var(--c-purple-deep); }
.news-body p {
    color: var(--c-ink-3);
    font-size: .9rem;
    flex: 1;
    line-height: 1.8;
}
@media (max-width: 980px) {
    .news-grid { grid-template-columns: repeat(2, 1fr); }
    .news-card-lg { grid-column: span 2; grid-row: span 1; }
    .news-card-lg .news-cover { aspect-ratio: 21/9; }
}
@media (max-width: 560px) {
    .news-grid { grid-template-columns: 1fr; }
    .news-card-lg { grid-column: span 1; }
}

/* ========== 关于我们 ========== */
.about-wrap {
    display: grid;
    grid-template-columns: 1fr 1.1fr;
    gap: 60px;
    align-items: center;
}
.about-image {
    border-radius: var(--r-xl);
    overflow: hidden;
    box-shadow: var(--s-lg);
    aspect-ratio: 4/3;
}
.about-image img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .6s var(--ease);
}
.about-image:hover img { transform: scale(1.03); }
.about-text { position: relative; }
.about-lead {
    color: var(--c-ink-2);
    font-size: 1rem;
    line-height: 2;
    margin: 16px 0 32px;
}
.events-timeline {
    display: grid;
    gap: 14px;
    margin-bottom: 22px;
}
.event-history {
    display: grid;
    grid-template-columns: 96px 1fr;
    gap: 18px;
    padding: 16px 20px;
    border-radius: var(--r-md);
    background: var(--c-paper);
    border: 1px solid var(--c-line);
    transition: all .25s;
    position: relative;
}
.event-history:hover {
    border-color: rgba(50, 171, 253, 0.25);
    box-shadow: var(--s-sm);
    transform: translateX(2px);
}
.event-history.eh-current {
    background: linear-gradient(135deg, rgba(50, 171, 253, 0.08), rgba(50, 171, 253, 0.06));
    border-color: rgba(50, 171, 253, 0.3);
}
.event-history.eh-current::before {
    content: "本届";
    position: absolute;
    top: -8px; right: 14px;
    background: var(--c-amber);
    color: #fff;
    font-size: .68rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 4px;
    letter-spacing: 1px;
}
.eh-date {
    font-family: var(--font-en);
    font-size: .92rem;
    font-style: normal;
    font-weight: 600;
    color: var(--c-purple);
    letter-spacing: .5px;
    padding-top: 2px;
}
.event-history h4 {
    font-family: var(--font-serif);
    font-size: 1.02rem;
    color: var(--c-ink-1);
    font-weight: 700;
    margin-bottom: 4px;
    letter-spacing: 1px;
}
.event-history p {
    color: var(--c-ink-3);
    font-size: .88rem;
    line-height: 1.75;
}
.about-quote {
    margin-top: 14px;
    padding: 22px 26px 22px 30px;
    border-left: 3px solid var(--c-amber);
    background: var(--c-bg-tint);
    color: var(--c-ink-2);
    font-family: var(--font-serif);
    font-weight: 500;
    font-size: 1.05rem;
    border-radius: 0 var(--r-sm) var(--r-sm) 0;
    letter-spacing: 2px;
    line-height: 1.8;
    position: relative;
}
.about-quote::before {
    content: "「";
    position: absolute;
    top: 8px; left: 8px;
    font-size: 2rem;
    color: var(--c-amber);
    opacity: .35;
    font-family: var(--font-serif);
    line-height: 1;
}
@media (max-width: 900px) {
    .about-wrap { grid-template-columns: 1fr; gap: 36px; }
}
@media (max-width: 480px) {
    .event-history { grid-template-columns: 1fr; gap: 4px; }
}

/* ========== 媒体资源 ========== */
.media-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
.media-card {
    margin: 0;
    background: #fff;
    border-radius: var(--r-lg);
    overflow: hidden;
    border: 1px solid var(--c-line);
    transition: all .3s var(--ease);
}
.media-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--s-md);
}
.media-card img {
    aspect-ratio: 4/3;
    object-fit: cover;
    transition: transform .5s var(--ease);
}
.media-card:hover img { transform: scale(1.05); }
.media-card figcaption {
    padding: 14px 16px 16px;
    font-size: .88rem;
    font-weight: 600;
    color: var(--c-ink-2);
}
@media (max-width: 900px) { .media-grid { grid-template-columns: repeat(2, 1fr); } }

/* ========== FAQ ========== */
.faq-wrap {
    display: grid;
    grid-template-columns: 1fr 1.7fr;
    gap: 48px;
    align-items: flex-start;
}
.faq-aside { position: sticky; top: 96px; }
.faq-aside .btn { margin-top: 18px; }
.faq-list { display: grid; gap: 14px; }
.faq-item {
    background: var(--c-paper);
    border: 1px solid var(--c-line);
    border-radius: var(--r-md);
    padding: 4px 24px;
    transition: all .25s;
}
.faq-item[open] {
    border-color: rgba(50, 171, 253, 0.35);
    box-shadow: var(--s-sm);
    background: linear-gradient(160deg, var(--c-paper), var(--c-bg));
}
.faq-item summary {
    list-style: none;
    padding: 20px 0;
    font-family: var(--font-serif);
    font-weight: 700;
    color: var(--c-ink-1);
    font-size: 1.02rem;
    letter-spacing: .8px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    cursor: pointer;
    transition: color .2s;
}
.faq-item summary:hover { color: var(--c-purple-deep); }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
    content: "";
    width: 12px; height: 12px;
    border-right: 2px solid var(--c-purple);
    border-bottom: 2px solid var(--c-purple);
    transform: rotate(45deg);
    transition: transform .3s var(--ease);
    flex-shrink: 0;
    margin-right: 4px;
}
.faq-item[open] summary::after { transform: rotate(-135deg); }
.faq-item p {
    padding: 0 0 22px;
    color: var(--c-ink-3);
    font-size: .94rem;
    line-height: 2;
}

/* ===== details 展开内容动画（faq-item / qa-item 通用）===== */
@keyframes detailsContentIn {
    from { opacity: 0; transform: translateY(-8px); }
    to   { opacity: 1; transform: translateY(0); }
}
/* 展开时：内容淡入下移；关闭时隐藏动画避免抖动 */
.faq-item[open] > p,
.qa-item[open] > .answer {
    animation: detailsContentIn .42s var(--ease) both;
}
.faq-item:not([open]) > p,
.qa-item:not([open]) > .answer {
    animation: none;
}
/* 展开时 summary 微动效：轻微下移，配合箭头旋转 */
.faq-item[open] > summary,
.qa-item[open] > summary {
    transform: translateY(1px);
}
/* summary 悬停时整体轻微右移（已有箭头旋转，增加交互层次） */
.faq-item summary,
.qa-item summary {
    transition: color .2s, transform .25s var(--ease);
}
.faq-item summary:hover,
.qa-item summary:hover {
    transform: translateX(2px);
}

@media (max-width: 900px) {
    .faq-wrap { grid-template-columns: 1fr; gap: 32px; }
    .faq-aside { position: static; }
}

/* ========== 票务中心 ========== */
.section-ticket {
    background:
        radial-gradient(ellipse 800px 400px at 10% 0%, rgba(50, 171, 253, 0.20), transparent 70%),
        radial-gradient(ellipse 700px 380px at 100% 100%, rgba(50, 171, 253, 0.16), transparent 70%),
        linear-gradient(160deg, #0D2740 0%, #1A3A5C 45%, #2A5080 100%);
    color: #FFFFFF;
    position: relative;
    overflow: hidden;
}
.section-ticket::before {
    content: "";
    position: absolute; inset: 0;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'%3E%3Cg fill='none' stroke='white' stroke-opacity='0.04' stroke-width='1'%3E%3Cpath d='M0 30h60M30 0v60'/%3E%3C/g%3E%3C/svg%3E");
    pointer-events: none;
}
.section-ticket .container { position: relative; }
.ticket-hero { text-align: center; margin-bottom: 48px; }
.ticket-lead {
    color: rgba(255, 255, 255, 0.7);
    margin-top: 12px;
    font-size: 1rem;
    letter-spacing: 1px;
    font-family: var(--font-serif);
}

.ticket-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
    margin-bottom: 60px;
}
.ticket-card {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: var(--r-xl);
    padding: 32px 28px;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    transition: transform .3s var(--ease), border-color .3s, box-shadow .3s;
    display: flex; flex-direction: column;
}
.ticket-card:hover {
    transform: translateY(-5px);
    border-color: rgba(255, 255, 255, 0.28);
    box-shadow: 0 12px 30px rgba(20, 20, 30, 0.25);
}
.ticket-card-featured {
    background: linear-gradient(160deg, rgba(50, 171, 253, 0.28), rgba(50, 171, 253, 0.18));
    border: 1.5px solid rgba(255, 255, 255, 0.45);
    transform: translateY(-10px);
    box-shadow: 0 20px 50px rgba(20, 20, 30, 0.4);
}
.ticket-card-featured:hover { transform: translateY(-15px); }
.ticket-top {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 18px;
}
.ticket-name {
    font-family: var(--font-serif);
    font-weight: 700;
    font-size: 1.12rem;
    letter-spacing: 1.5px;
}
.ticket-badge {
    padding: 4px 10px;
    border-radius: 4px;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: 1px;
}
.ticket-badge.hot { background: var(--c-pink); }
.ticket-badge.rec { background: var(--grad-btn); }
.ticket-badge.vip { background: var(--c-amber); }
.ticket-price { margin-bottom: 22px; display: flex; align-items: baseline; gap: 10px; }
.p-num {
    font-family: var(--font-en);
    font-size: 2.4rem;
    font-weight: 600;
    color: #FFFFFF;
    line-height: 1;
    letter-spacing: 1px;
}
.p-note {
    color: rgba(255, 255, 255, 0.6);
    font-size: .85rem;
    font-style: normal;
    font-family: var(--font-en);
}
.ticket-include {
    display: grid; gap: 10px;
    margin-bottom: 24px; flex: 1;
}
.ticket-include li {
    font-size: .9rem;
    color: rgba(255,255,255,.82);
    padding-left: 4px;
}
.ticket-include li.muted { color: rgba(255,255,255,.38); }
.ticket-card .btn-outline {
    color: #fff;
    border-color: rgba(255,255,255,.35);
}
.ticket-card .btn-outline:hover { background: rgba(255,255,255,.1); border-color: #fff; }

@media (max-width: 900px) {
    .ticket-grid { grid-template-columns: 1fr; }
    .ticket-card-featured { transform: none; }
    .ticket-card-featured:hover { transform: translateY(-5px); }
}

/* 报名订阅表单 */
.register-wrap {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 40px;
    padding: 36px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.14);
    border-radius: var(--r-xl);
    backdrop-filter: blur(10px);
    align-items: center;
}
.register-info .section-eyebrow { color: #7AC8F8; }
.register-info h3 { color: #fff; font-size: 1.3rem; margin: 8px 0 10px; font-weight: 700; }
.register-info p { color: rgba(255,255,255,.68); font-size: .95rem; }
.form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 16px;
}
.form-row { display: flex; flex-direction: column; gap: 6px; }
.form-row label { font-size: .82rem; font-weight: 600; color: rgba(255,255,255,.8); }
.form-row input,
.form-row select {
    width: 100%;
    padding: 11px 14px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.22);
    border-radius: var(--r-sm);
    color: #fff;
    font-size: .95rem;
    font-family: inherit;
    transition: all .2s;
}
.form-row input::placeholder { color: rgba(255,255,255,.35); }
.form-row input:focus,
.form-row select:focus {
    outline: none;
    border-color: var(--c-pink-soft);
    background: rgba(255,255,255,.13);
    box-shadow: 0 0 0 3px rgba(122, 200, 248,.18);
}
.form-row select option { color: var(--c-ink-1); background: #fff; }
.form-consent {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 4px 0 16px;
    font-size: .85rem;
    color: rgba(255,255,255,.7);
}
.form-consent input { margin-top: 3px; accent-color: var(--c-pink); }
.form-consent a { color: var(--c-pink-soft); text-decoration: underline; }
.form-msg {
    margin-top: 12px;
    min-height: 1.3em;
    font-weight: 600;
    font-size: .9rem;
}
.form-msg.ok { color: #86efac; }
.form-msg.err { color: #FDA4AF; }
@media (max-width: 900px) {
    .register-wrap { grid-template-columns: 1fr; padding: 24px; }
    .form-grid { grid-template-columns: 1fr; }
}

/* ========== 页脚 ========== */
.footer {
    background: #0D1F2D;
    color: rgba(255, 255, 255, 0.72);
    padding-top: 76px;
}
.footer .brand-name { color: #FFFFFF; }
.footer .brand-en { color: rgba(255, 255, 255, 0.45); }
.footer-main {
    display: grid;
    grid-template-columns: 1.4fr 2fr;
    gap: 48px;
    padding-bottom: 56px;
}
.foot-brand { max-width: 420px; }
.foot-slogan {
    margin: 18px 0 22px;
    font-family: var(--font-serif);
    font-size: 1rem;
    line-height: 2;
    color: rgba(255, 255, 255, 0.6);
    letter-spacing: 1.5px;
}
.foot-socials {
    display: flex; flex-wrap: wrap;
    gap: 8px;
}
.s-link {
    display: inline-flex; align-items: center; justify-content: center;
    padding: 7px 14px;
    font-size: .82rem;
    font-weight: 600;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition: all .25s;
    color: rgba(255, 255, 255, 0.8);
}
.s-link:hover {
    background: linear-gradient(135deg, rgba(50, 171, 253, 0.25), rgba(50, 171, 253, 0.2));
    border-color: rgba(50, 171, 253, 0.5);
    color: #FFFFFF;
    transform: translateY(-2px);
}
.foot-cols {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.foot-col h5 {
    font-family: var(--font-serif);
    font-size: .92rem;
    color: #FFFFFF;
    margin-bottom: 14px;
    font-weight: 700;
    letter-spacing: 1.5px;
}
.foot-col a {
    display: block;
    padding: 5px 0;
    font-size: .9rem;
    color: rgba(255, 255, 255, 0.5);
    transition: color .2s, padding .2s;
}
.foot-col a:hover { color: var(--c-amber-soft); padding-left: 4px; }

.foot-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding: 20px 0 26px;
    font-size: .82rem;
    color: rgba(255, 255, 255, 0.4);
}
.foot-bottom-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}
.foot-sep { margin: 0 8px; color: rgba(255, 255, 255, 0.2); }
.foot-legal a:hover { color: var(--c-amber-soft); }

@media (max-width: 900px) {
    .footer-main { grid-template-columns: 1fr; gap: 36px; }
    .foot-cols { grid-template-columns: repeat(2, 1fr); }
    .foot-bottom-inner { flex-direction: column; text-align: center; }
}

/* 减少动态偏好 */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* ============================================================
   二级页面通用 —— 页头、面包屑、侧栏
   ============================================================ */

/* 子页面 hero（比首页 banner 更安静，避免抢戏） */
.page-hero {
    background:
        radial-gradient(ellipse 700px 280px at 15% 0%, rgba(50, 171, 253, 0.10), transparent 70%),
        radial-gradient(ellipse 600px 260px at 90% 100%, rgba(50, 171, 253, 0.08), transparent 70%),
        rgba(137, 207, 240, 0.25);
    padding: 100px 0 60px;
    border-bottom: 1px solid var(--c-line);
    position: relative;
    overflow: hidden;
}
/* 动态背景层：video / poster，默认隐藏，由 JS 加载后显示 */
.page-hero-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
}
.page-hero-video,
.page-hero-poster {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: none;
}
.page-hero-poster.loaded { display: block; }
.page-hero-video.loaded { display: block; }
/* 遮罩层：压在背景之上、内容之下，保证文字可读性 */
.page-hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(255,255,255,0.55) 0%, rgba(255,255,255,0.78) 100%);
    pointer-events: none;
    display: none;
}
.page-hero-overlay.active { display: block; }
.page-hero-inner { position: relative; z-index: 2; max-width: var(--max); margin: 0 auto; padding: 0 28px; }
.breadcrumb {
    display: flex; align-items: center; gap: 8px;
    font-family: var(--font-en);
    font-size: .82rem;
    font-style: normal;
    color: var(--c-ink-4);
    margin-bottom: 18px;
    letter-spacing: .5px;
}
.breadcrumb a { color: var(--c-ink-4); transition: color .2s; }
.breadcrumb a:hover { color: var(--c-purple-deep); }
.breadcrumb span { color: var(--c-ink-4); opacity: .5; }
.page-title {
    font-family: var(--font-serif);
    font-size: clamp(2rem, 4vw, 2.8rem);
    font-weight: 900;
    color: var(--c-ink-1);
    letter-spacing: 3px;
    line-height: 1.25;
    margin-bottom: 14px;
}
.page-sub {
    font-family: var(--font-serif);
    color: var(--c-ink-3);
    font-size: 1.05rem;
    line-height: 1.9;
    max-width: 680px;
    letter-spacing: .5px;
}

/* 通用二级页面主区 */
.page-main { padding: 64px 0 100px; }
.page-main .container { max-width: var(--max); }

/* ============================================================
   个人中心 profile.html
   ============================================================ */
.profile-wrap {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 36px;
    align-items: flex-start;
}
.profile-side {
    background: var(--c-paper);
    border: 1px solid var(--c-line);
    border-radius: var(--r-lg);
    padding: 28px 24px;
    position: sticky;
    top: 96px;
}
.profile-avatar {
    width: 96px; height: 96px;
    border-radius: 50%;
    background: var(--grad-brand);
    display: grid; place-items: center;
    margin: 0 auto 16px;
    color: #FFFFFF;
    font-family: var(--font-serif);
    font-size: 2.2rem;
    font-weight: 700;
    box-shadow: var(--s-md);
    border: 3px solid var(--c-paper);
    outline: 1px solid var(--c-line);
}
.profile-name {
    text-align: center;
    font-family: var(--font-serif);
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--c-ink-1);
    letter-spacing: 1px;
    margin-bottom: 4px;
}
.profile-handle {
    text-align: center;
    font-family: var(--font-en);
    font-size: .82rem;
    font-style: normal;
    color: var(--c-ink-4);
    margin-bottom: 18px;
}
.profile-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 4px;
    padding: 14px 0;
    border-top: 1px solid var(--c-line);
    border-bottom: 1px solid var(--c-line);
    margin-bottom: 18px;
}
.profile-stat { text-align: center; }
.profile-stat-num {
    font-family: var(--font-en);
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--c-purple-deep);
    line-height: 1;
}
.profile-stat-label {
    font-size: .72rem;
    color: var(--c-ink-4);
    margin-top: 4px;
    letter-spacing: .5px;
}
.profile-nav { display: grid; gap: 2px; }
.profile-nav a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: var(--r-sm);
    color: var(--c-ink-3);
    font-size: .92rem;
    font-weight: 500;
    transition: all .2s;
}
.profile-nav a:hover {
    background: var(--c-bg-tint);
    color: var(--c-purple-deep);
    padding-left: 16px;
}
.profile-nav a.active {
    background: var(--c-bg-tint);
    color: var(--c-purple-deep);
    font-weight: 600;
    border-left: 2px solid var(--c-purple);
}
.profile-nav a .ico { font-size: 1rem; opacity: .7; }

.profile-main { display: grid; gap: 28px; }
.profile-card {
    background: var(--c-paper);
    border: 1px solid var(--c-line);
    border-radius: var(--r-lg);
    padding: 28px 30px;
}
.profile-card-head {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 22px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--c-line);
}
.profile-card-head h3 {
    font-family: var(--font-serif);
    font-size: 1.18rem;
    font-weight: 700;
    color: var(--c-ink-1);
    letter-spacing: 1px;
}
.profile-card-head .meta {
    font-family: var(--font-en);
    font-size: .82rem;
    font-style: normal;
    color: var(--c-ink-4);
}

/* 票务记录 */
.ticket-record {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 18px;
    align-items: center;
    padding: 16px 0;
    border-bottom: 1px dashed var(--c-line);
}
.ticket-record:last-child { border-bottom: none; }
.ticket-record-info h4 {
    font-family: var(--font-serif);
    font-size: 1rem;
    color: var(--c-ink-1);
    margin-bottom: 4px;
    letter-spacing: .5px;
}
.ticket-record-info .sub {
    font-size: .82rem;
    color: var(--c-ink-4);
}
.ticket-record-price {
    font-family: var(--font-en);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--c-purple-deep);
}
.status-pill {
    padding: 4px 10px;
    border-radius: 4px;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: 1px;
}
.status-pill.ok { background: rgba(50, 171, 253, 0.12); color: var(--c-purple-deep); }
.status-pill.pending { background: rgba(224, 169, 109, 0.15); color: #8A5530; }
.status-pill.expired { background: rgba(153, 153, 153, 0.15); color: var(--c-ink-4); }

/* 收藏时间线 */
.fav-list { display: grid; gap: 12px; }
.fav-item {
    display: grid;
    grid-template-columns: 56px 1fr auto;
    gap: 14px;
    align-items: center;
    padding: 12px;
    border: 1px solid var(--c-line);
    border-radius: var(--r-sm);
    background: var(--c-bg);
    transition: all .2s;
}
.fav-item:hover { border-color: rgba(50, 171, 253, 0.25); transform: translateX(2px); }
.fav-thumb {
    width: 56px; height: 56px;
    border-radius: var(--r-sm);
    object-fit: cover;
    background: var(--c-bg-tint);
}
.fav-info h5 {
    font-family: var(--font-serif);
    font-size: .96rem;
    color: var(--c-ink-1);
    margin-bottom: 2px;
    font-weight: 600;
}
.fav-info .date {
    font-family: var(--font-en);
    font-size: .76rem;
    font-style: normal;
    color: var(--c-ink-4);
}
.fav-remove {
    color: var(--c-ink-4);
    font-size: .82rem;
    padding: 4px 8px;
    border-radius: var(--r-sm);
    transition: all .2s;
}
.fav-remove:hover { color: var(--c-pink); background: rgba(50, 171, 253, 0.08); }

@media (max-width: 900px) {
    .profile-wrap { grid-template-columns: 1fr; }
    .profile-side { position: static; }
}

/* ============================================================
   咨询中心 consult.html
   ============================================================ */
.consult-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
    margin-bottom: 56px;
}
.consult-channel {
    background: var(--c-paper);
    border: 1px solid var(--c-line);
    border-radius: var(--r-lg);
    padding: 28px 26px;
    transition: all .3s var(--ease);
    position: relative;
    overflow: hidden;
}
.consult-channel::after {
    content: "";
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 2px;
    background: var(--grad-brand);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .35s var(--ease);
}
.consult-channel:hover {
    transform: translateY(-4px);
    box-shadow: var(--s-md);
    border-color: rgba(50, 171, 253, 0.25);
}
.consult-channel:hover::after { transform: scaleX(1); }
.consult-ico {
    width: 56px; height: 56px;
    display: grid; place-items: center;
    background: var(--c-bg-tint);
    border: 1px solid var(--c-line);
    border-radius: 14px;
    margin-bottom: 16px;
    overflow: hidden;
}
.consult-ico img {
    width: 100%; height: 100%;
    object-fit: contain;
    display: block;
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
}
.consult-channel h3 {
    font-family: var(--font-serif);
    font-size: 1.12rem;
    font-weight: 700;
    color: var(--c-ink-1);
    margin-bottom: 6px;
    letter-spacing: 1px;
}
.consult-channel .desc {
    color: var(--c-ink-3);
    font-size: .9rem;
    line-height: 1.8;
    margin-bottom: 14px;
}
.consult-channel .meta {
    display: flex; justify-content: space-between; align-items: center;
    padding-top: 14px;
    border-top: 1px solid var(--c-line);
    font-size: .82rem;
}
.consult-channel .meta .time {
    color: var(--c-ink-4);
    font-family: var(--font-en);
    font-style: normal;
}
.consult-channel .meta .link {
    color: var(--c-purple-deep);
    font-weight: 600;
}

/* 工单表单 */
.consult-form-wrap {
    background: var(--c-paper);
    border: 1px solid var(--c-line);
    border-radius: var(--r-xl);
    padding: 40px;
    display: grid;
    grid-template-columns: 1fr 1.3fr;
    gap: 40px;
}
.consult-form-aside h3 {
    font-family: var(--font-serif);
    font-size: 1.4rem;
    color: var(--c-ink-1);
    margin-bottom: 14px;
    letter-spacing: 1.5px;
    line-height: 1.4;
}
.consult-form-aside p {
    color: var(--c-ink-3);
    font-size: .94rem;
    line-height: 1.9;
    margin-bottom: 22px;
}
.consult-form-aside .quick-list { display: grid; gap: 8px; }
.consult-form-aside .quick-list li {
    padding: 10px 14px;
    background: var(--c-bg);
    border: 1px solid var(--c-line);
    border-radius: var(--r-sm);
    font-size: .88rem;
    color: var(--c-ink-3);
    display: flex; align-items: center; gap: 10px;
    transition: all .2s;
    cursor: pointer;
}
.consult-form-aside .quick-list li:hover {
    border-color: rgba(50, 171, 253, 0.3);
    color: var(--c-purple-deep);
    background: var(--c-bg-tint);
}
.consult-form-aside .quick-list li::before {
    content: "›";
    color: var(--c-purple);
    font-weight: 700;
}

.consult-form { display: grid; gap: 16px; }
.consult-form .form-row label {
    font-family: var(--font-serif);
    font-size: .88rem;
    font-weight: 700;
    color: var(--c-ink-1);
    letter-spacing: .5px;
}
.consult-form .form-row label .req { color: var(--c-pink); margin-left: 2px; }
.consult-form .form-row input,
.consult-form .form-row select,
.consult-form .form-row textarea {
    width: 100%;
    padding: 11px 14px;
    background: var(--c-bg);
    border: 1px solid var(--c-line);
    border-radius: var(--r-sm);
    color: var(--c-ink-1);
    font-size: .94rem;
    font-family: inherit;
    transition: all .2s;
}
.consult-form .form-row input:focus,
.consult-form .form-row select:focus,
.consult-form .form-row textarea:focus {
    outline: none;
    border-color: var(--c-purple);
    background: var(--c-paper);
    box-shadow: 0 0 0 3px rgba(50, 171, 253, 0.12);
}
.consult-form .form-row textarea { resize: vertical; min-height: 110px; line-height: 1.7; }
.consult-form .form-row select { cursor: pointer; }
.consult-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.consult-form .btn-primary { justify-self: start; padding: 12px 28px; }

@media (max-width: 900px) {
    .consult-grid { grid-template-columns: 1fr; }
    .consult-form-wrap { grid-template-columns: 1fr; padding: 28px; gap: 28px; }
    .consult-form-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   A&Q 问答中心 qa.html
   ============================================================ */
.qa-layout {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 40px;
    align-items: flex-start;
}
.qa-side {
    position: sticky;
    top: 96px;
    display: grid;
    gap: 24px;
}
.qa-search {
    background: var(--c-paper);
    border: 1px solid var(--c-line);
    border-radius: var(--r-lg);
    padding: 18px;
}
.qa-search-label {
    font-family: var(--font-serif);
    font-size: .92rem;
    font-weight: 700;
    color: var(--c-ink-1);
    margin-bottom: 10px;
    letter-spacing: .5px;
}
.qa-search input {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--c-line);
    border-radius: var(--r-sm);
    background: var(--c-bg);
    font-size: .9rem;
    font-family: inherit;
    color: var(--c-ink-1);
    transition: all .2s;
}
.qa-search input:focus {
    outline: none;
    border-color: var(--c-purple);
    box-shadow: 0 0 0 3px rgba(50, 171, 253, 0.12);
}

.qa-cats {
    background: var(--c-paper);
    border: 1px solid var(--c-line);
    border-radius: var(--r-lg);
    padding: 18px;
}
.qa-cats-label {
    font-family: var(--font-en);
    font-size: .78rem;
    font-style: normal;
    color: var(--c-ink-4);
    letter-spacing: 2px;
    margin-bottom: 12px;
    text-transform: uppercase;
}
.qa-cat-list { display: grid; gap: 2px; }
.qa-cat {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 9px 12px;
    border-radius: var(--r-sm);
    font-size: .9rem;
    color: var(--c-ink-3);
    background: #F8FAFC;
    cursor: pointer;
    transition: all .2s;
}
.qa-cat:hover { background: var(--c-bg-tint); color: var(--c-purple-deep); }
.qa-cat.active {
    background: rgba(74, 144, 217, 0.2);
    color: var(--c-purple-deep);
    font-weight: 600;
}
.qa-cat .count {
    font-family: var(--font-en);
    font-size: .76rem;
    color: var(--c-ink-4);
    font-style: normal;
}

.qa-main { display: grid; gap: 28px; }
.qa-section h3 {
    font-family: var(--font-serif);
    font-size: 1.3rem;
    color: var(--c-ink-1);
    margin-bottom: 16px;
    letter-spacing: 1.5px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--c-line);
    position: relative;
}
.qa-section h3::after {
    content: "";
    position: absolute;
    left: 0; bottom: -2px;
    width: 36px; height: 2px;
    background: var(--c-purple);
}
.qa-list { display: grid; gap: 12px; }
.qa-item {
    background: var(--c-paper);
    border: 1px solid var(--c-line);
    border-radius: var(--r-md);
    padding: 4px 22px;
    transition: all .25s;
}
.qa-item[open] {
    border-color: rgba(50, 171, 253, 0.35);
    box-shadow: var(--s-sm);
}
.qa-item summary {
    list-style: none;
    padding: 18px 0;
    font-family: var(--font-serif);
    font-weight: 700;
    color: var(--c-ink-1);
    font-size: 1rem;
    letter-spacing: .5px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    cursor: pointer;
    transition: color .2s;
}
.qa-item summary:hover { color: var(--c-purple-deep); }
.qa-item summary::-webkit-details-marker { display: none; }
/* ===== a.toggle 结构：DJI 风格问答卡片 =====
   summary 内用 <a class="toggle"> 包装 faq-toggle(文字) + faq-icon(箭头)
   折叠态 .collapsed：icon 朝下，点击展开后移除 collapsed，icon 朝上 */
.faq-item summary::after,
.qa-item summary::after { display: none; }  /* 隐藏原 details 原生箭头，改用 faq-icon */

a.toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 0;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    background: none;
    border: none;
    transition: color .25s var(--ease);
}
a.toggle:focus-visible {
    outline: 2px solid rgba(50, 171, 253, 0.5);
    outline-offset: 4px;
    border-radius: 6px;
}
.faq-toggle {
    flex: 1;
    font-family: var(--font-serif);
    font-weight: 700;
    color: var(--c-ink-1);
    font-size: 1.02rem;
    letter-spacing: .8px;
    line-height: 1.6;
    transition: color .2s;
}
a.toggle:hover .faq-toggle {
    color: var(--c-purple-deep);
}
/* qa-item 字号略小 */
.qa-item .faq-toggle { font-size: 1rem; letter-spacing: .5px; }

.faq-icon {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(50, 171, 253, 0.08);
    display: grid;
    place-items: center;
    transition: all .3s var(--ease);
}
.faq-item[open] .faq-icon,
.qa-item[open] .faq-icon {
    background: linear-gradient(135deg, rgba(50, 171, 253, 0.18), rgba(50, 171, 253, 0.1));
}
/* .icon：CSS 实现向上箭头，与 DJI angle-up 图标视觉一致 */
.faq-icon .icon {
    width: 16px;
    height: 16px;
    background: none;
    position: relative;
    transition: transform .35s var(--ease);
}
.faq-icon .icon::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 9px;
    height: 9px;
    border-top: 2px solid var(--c-purple);
    border-left: 2px solid var(--c-purple);
    transform: translate(-50%, -25%) rotate(45deg);
    transition: border-color .25s var(--ease);
}
/* 折叠态 .collapsed：icon 旋转 180° 朝下（箭头变向下）*/
a.toggle.collapsed .faq-icon .icon { transform: rotate(180deg); }
/* 展开态：移除 collapsed，icon 朝上（角度向上原始）*/
a.toggle:not(.collapsed) .faq-icon .icon { transform: rotate(0deg); }

a.toggle:hover .faq-icon .icon::before {
    border-top-color: var(--c-purple-deep);
    border-left-color: var(--c-purple-deep);
}

.qa-item .answer {
    padding: 0 0 20px;
    color: var(--c-ink-3);
    font-size: .94rem;
    line-height: 2;
}
.qa-item .answer p { margin-bottom: 10px; }
.qa-item .answer .tags {
    display: flex; gap: 6px; flex-wrap: wrap;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px dashed var(--c-line);
}
.qa-tag {
    font-size: .72rem;
    padding: 2px 8px;
    background: #F8FAFC;
    color: var(--c-ink-4);
    border-radius: 4px;
    letter-spacing: .5px;
}
.qa-cta {
    background: linear-gradient(135deg, rgba(50, 171, 253, 0.08), rgba(50, 171, 253, 0.06));
    border: 1px solid rgba(50, 171, 253, 0.2);
    border-radius: var(--r-lg);
    padding: 32px 36px;
    text-align: center;
}
.qa-cta h4 {
    font-family: var(--font-serif);
    font-size: 1.2rem;
    color: var(--c-ink-1);
    margin-bottom: 8px;
    letter-spacing: 1px;
}
.qa-cta p {
    color: var(--c-ink-3);
    font-size: .94rem;
    margin-bottom: 18px;
}

/* ============================================================
   Apple 风格首页布局
   设计参考：apple.com.cn/iphone-17-pro
   全屏沉浸 · 交替分栏 · 大留白 · 滚动渐入
   ============================================================ */

/* ========== Hero · 全屏沉浸 ========== */
.apple-hero {
    position: relative;
    height: 100vh;
    min-height: 640px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    color: #fff;
}
.apple-hero-bg {
    position: absolute; inset: 0;
    z-index: 0;
}
.apple-hero-bg img {
    width: 100%; height: 100%;
    object-fit: cover;
    object-position: center;
}
.apple-hero-mask {
    position: absolute; inset: 0;
    background: linear-gradient(180deg,
        rgba(20,20,30,0.15) 0%,
        rgba(20,20,30,0.35) 50%,
        rgba(20,20,30,0.65) 100%);
    transition: background .8s linear;
}

/* ========== Hero → Highlights 过渡桥 ========== */
.hero-transition {
    position: relative;
    height: 160px;
    width: 100%;
    background: linear-gradient(180deg,
        rgba(20,20,30,0.65) 0%,
        rgba(20,20,30,0.4) 30%,
        rgba(20,20,30,0.12) 60%,
        transparent 100%);
    overflow: hidden;
    z-index: 1;
    pointer-events: none;
}
/* 中央光晕：从 Hero 底部透出的弥散光 */
.hero-transition-glow {
    position: absolute;
    top: -40%;
    left: 50%;
    transform: translateX(-50%);
    width: 60%;
    height: 200%;
    background: radial-gradient(ellipse at center top,
        rgba(122,200,248,0.18) 0%,
        rgba(122,200,248,0.06) 35%,
        transparent 70%);
    filter: blur(20px);
    animation: glow-pulse 4s ease-in-out infinite alternate;
}
@keyframes glow-pulse {
    0%   { opacity: .6; transform: translateX(-50%) scale(1); }
    100% { opacity: 1;  transform: translateX(-50%) scale(1.08); }
}
/* 光束：一条纤细的对角高光线 */
.hero-transition-beam {
    position: absolute;
    top: 50%;
    left: -10%;
    width: 120%;
    height: 1px;
    background: linear-gradient(90deg,
        transparent 0%,
        rgba(122,200,248,0.4) 30%,
        rgba(255,255,255,0.6) 50%,
        rgba(122,200,248,0.4) 70%,
        transparent 100%);
    transform: rotate(-1.5deg);
    animation: beam-sweep 3s ease-in-out infinite alternate;
}
@keyframes beam-sweep {
    0%   { opacity: .3; transform: rotate(-1.5deg) translateY(0); }
    100% { opacity: .8; transform: rotate(-1.5deg) translateY(4px); }
}
.apple-hero-content {
    position: relative;
    z-index: 2;
    text-align: center;
    padding: 0 28px;
    max-width: 900px;
}
.apple-hero-title {
    line-height: 1.05;
    margin-bottom: 16px;
}
.apple-hero-title .title-main {
    font-family: var(--font-serif);
    font-size: clamp(3rem, 9vw, 6rem);
    font-weight: 900;
    letter-spacing: 8px;
    color: #FFFFFF;
    text-shadow: 0 4px 40px rgba(20, 20, 30, 0.4);
}
.apple-hero-title .dot {
    color: var(--c-amber-soft);
    margin: 0 .15em;
    font-weight: 500;
}
.apple-hero-sub {
    font-family: var(--font-ui);
    font-size: clamp(1rem, 2.2vw, 1.3rem);
    color: rgba(255, 255, 255, 0.85);
    letter-spacing: 2px;
    margin-bottom: 40px;
    font-weight: 400;
}
.apple-hero-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 16px;
}
.apple-hero-actions .btn-outline {
    background: rgba(255,255,255,0.1);
    border-color: rgba(255,255,255,0.4);
    color: #fff;
}
.apple-hero-actions .btn-outline:hover {
    background: rgba(255,255,255,0.2);
    border-color: rgba(255,255,255,0.6);
}
/* 滚动提示 */
.apple-hero-scroll {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    width: 24px; height: 40px;
    border: 2px solid rgba(255,255,255,0.4);
    border-radius: 12px;
    display: flex;
    justify-content: center;
    padding-top: 6px;
}
.apple-hero-scroll span {
    width: 3px; height: 8px;
    background: rgba(255,255,255,0.6);
    border-radius: 2px;
    animation: heroScroll 1.8s var(--ease) infinite;
}
@keyframes heroScroll {
    0% { opacity: 0; transform: translateY(0); }
    50% { opacity: 1; }
    100% { opacity: 0; transform: translateY(12px); }
}

/* ========== 通用 Section ========== */
.apple-section {
    padding: 180px 0;
    position: relative;
}
.apple-section-tinted {
    background: var(--c-bg-soft);
}
.apple-section-head {
    text-align: center;
    margin-bottom: 120px;
    padding: 0 28px;
}
#highlights .apple-section-head {
    text-align: left;
    margin-left: 150px;
}
#highlights .apple-section-title {
    letter-spacing: normal;
    margin-top: 0;
}
#highlights .section-eyebrow {
    letter-spacing: normal;
    margin-bottom: 0;
}
.apple-section-title {
    font-size: clamp(2.2rem, 5vw, 3.5rem);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: 2px;
    margin-top: 12px;
}
.apple-section-sub {
    color: var(--c-ink-3);
    font-size: 1rem;
    margin-top: 16px;
    line-height: 1.9;
}

/* ========== Feature · 交替分栏 ========== */
.apple-feature {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: 120px;
    align-items: center;
    max-width: 1260px;
    margin: 0 auto;
    padding: 0 40px;
    margin-bottom: 160px;
}
.apple-feature:last-child { margin-bottom: 0; }
.apple-feature-right .apple-feature-text { order: 1; }
.apple-feature-right .apple-feature-visual { order: 2; }
.apple-feature-left {
    grid-template-columns: 1.4fr 1fr;
}
.apple-feature-left .apple-feature-visual { order: 1; }
.apple-feature-left .apple-feature-text { order: 2; }

.apple-feature-text { padding: 0 20px; }
.apple-feature-eyebrow {
    display: inline-block;
    font-family: var(--font-en);
    font-size: .85rem;
    letter-spacing: 3px;
    color: var(--c-purple);
    margin-bottom: 20px;
}
.apple-feature-eyebrow.light { color: rgba(255,255,255,0.8); }
.apple-feature-title {
    font-size: clamp(2.2rem, 4.5vw, 3.4rem);
    font-weight: 700;
    line-height: 1.15;
    margin-bottom: 24px;
    letter-spacing: -0.01em;
    background: var(--grad-brand);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}
.apple-feature-title.light {
    background: none;
    -webkit-background-clip: initial;
    -webkit-text-fill-color: #fff;
    color: #fff;
}
.apple-feature-desc {
    font-size: 1.05rem;
    color: var(--c-ink-3);
    line-height: 1.9;
    margin-bottom: 28px;
}
.apple-feature-desc.light { color: rgba(255,255,255,0.85); }
.apple-feature-list {
    margin-bottom: 24px;
}
.apple-feature-list li {
    display: flex;
    align-items: baseline;
    gap: 16px;
    padding: 12px 0;
    border-bottom: 1px solid var(--c-line);
}
.apple-feature-list li:last-child { border-bottom: none; }
.apple-feature-list li span {
    font-family: var(--font-en);
    font-size: .9rem;
    font-weight: 600;
    color: var(--c-purple-deep);
    min-width: 80px;
    letter-spacing: 1px;
}
.apple-feature-list li em {
    font-style: normal;
    color: var(--c-ink-2);
    font-size: .95rem;
}
.apple-feature-list .hot-tag {
    background: transparent;
    color: var(--c-purple);
    font-weight: 700;
}

/* ===== 亮点模块文本框组件 ===== */
.feature-textbox {
    margin-bottom: 24px;
}
.feature-textbox-label {
    display: block;
    font-family: var(--font-en);
    font-size: .8rem;
    font-weight: 600;
    color: var(--c-purple-deep);
    letter-spacing: 1px;
    margin-bottom: 10px;
}
.feature-textbox-input {
    width: 100%;
    padding: 14px 16px;
    border: 1.5px solid var(--c-line);
    border-radius: 12px;
    background: rgba(255,255,255,0.6);
    backdrop-filter: blur(8px) saturate(150%);
    -webkit-backdrop-filter: blur(8px) saturate(150%);
    font-size: .95rem;
    line-height: 1.5;
    color: var(--c-ink);
    transition: border-color .3s var(--ease), box-shadow .3s var(--ease), background .3s var(--ease);
    outline: none;
    resize: vertical;
    min-height: 80px;
    font-family: inherit;
}
.feature-textbox-input::placeholder {
    color: var(--c-ink-3);
    opacity: .7;
}
.feature-textbox-input:focus {
    border-color: var(--c-purple);
    box-shadow: 0 0 0 3px rgba(122,200,248,0.15);
    background: rgba(255,255,255,0.85);
}
.feature-textbox-hint {
    display: block;
    font-size: .8rem;
    color: var(--c-ink-3);
    margin-top: 8px;
    line-height: 1.4;
}
.apple-feature-link {
    /* 布局：Apple 药丸按钮风格 */
    display: inline-flex;
    align-items: center;
    gap: 6px;
    /* 尺寸与间距 */
    padding: 10px 24px;
    font-size: .9rem;
    font-weight: 600;
    letter-spacing: .5px;
    line-height: 1;
    /* 颜色：蓝底白字，与 .btn-primary 统一 */
    color: #fff;
    /* 液态玻璃效果 */
    background: linear-gradient(135deg, #32ABFD 0%, #1A7BBF 100%);
    backdrop-filter: blur(12px) saturate(180%);
    -webkit-backdrop-filter: blur(12px) saturate(180%);
    border: 1px solid rgba(255,255,255,0.35);
    border-radius: 980px;
    /* 阴影层次：外投影 + 内高光 */
    box-shadow:
        0 1px 3px rgba(20,20,30,0.08),
        0 6px 16px rgba(20,20,30,0.06),
        inset 0 1px 0 rgba(255,255,255,0.7);
    /* 过渡 */
    transition: transform .35s var(--ease-out), box-shadow .35s var(--ease-out),
                background .35s var(--ease-out), color .35s var(--ease-out);
    text-decoration: none;
    white-space: nowrap;
}
.apple-feature-link:hover {
    transform: translateY(-2px);
    background: linear-gradient(135deg, #3DB8FE 0%, #1A7BBF 100%);
    box-shadow:
        0 2px 6px rgba(20,20,30,0.1),
        0 10px 28px rgba(50,171,253,0.3),
        inset 0 1px 0 rgba(255,255,255,0.4);
    color: #fff;
}
.apple-feature-link:active {
    transform: translateY(0) scale(.97);
    box-shadow:
        0 1px 2px rgba(20,20,30,0.08),
        inset 0 1px 0 rgba(255,255,255,0.5);
    transition-duration: .12s;
}
/* 响应式：移动端缩小间距 */
@media (max-width: 520px) {
    .apple-feature-link {
        padding: 9px 20px;
        font-size: .85rem;
    }
}

.apple-feature-visual {
    border-radius: var(--r-xl);
    overflow: hidden;
    box-shadow: var(--s-lg);
}
.apple-feature-visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    aspect-ratio: 4 / 3;
    transition: transform .8s var(--ease);
}
.apple-feature:hover .apple-feature-visual img {
    transform: scale(1.03);
}

/* 全幅 Feature */
.apple-feature-full {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 0;
    max-width: 1500px;
    position: relative;
    border-radius: var(--r-xl);
    overflow: hidden;
}
.apple-feature-visual-wide {
    border-radius: var(--r-xl);
    width: 100%;
    max-width: 100%;
}
.apple-feature-visual-wide img {
    aspect-ratio: 16 / 8;
    width: 100%;
    max-width: 100%;
    border-radius: var(--r-xl);
}
.apple-feature-overlay-content {
    position: absolute;
    bottom: 60px;
    left: 0;
    right: 0;
    text-align: center;
    padding: 0 28px;
    z-index: 2;
}

/* ========== 分屏人物模块 · Split Panels（全屏版） ========== */
.split-hero-section {
    position: relative;
    width: 100%;
    min-height: 100vh;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    background: #06060c;
}
.split-hero-head {
    text-align: center;
    padding: 48px 20px 20px;
    z-index: 10;
    position: relative;
    flex-shrink: 0;
}
.split-hero-head .section-eyebrow {
    background: linear-gradient(90deg, #5BC4F9 0%, #7AC8F8 50%, #32ABFD 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}
.split-hero-head .apple-section-title {
    background: linear-gradient(135deg, #FFFFFF 0%, #BFE4FA 45%, #5BC4F9 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}
.split-hero-head .apple-section-subtitle {
    background: linear-gradient(90deg, rgba(255,255,255,0.85) 0%, rgba(180,210,235,0.7) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

.split-panels {
    position: relative;
    display: flex;
    width: 100%;
    flex: 1 1 auto;
    min-height: calc(100vh - 140px);
    overflow: hidden;
    background: #06060c;
}
.split-panel {
    position: relative;
    flex: 1 1 0;
    overflow: hidden;
    cursor: pointer;
    /* 倾斜分界线：clip-path 创建平行四边形 */
    clip-path: polygon(14px 0, 100% 0, calc(100% - 14px) 100%, 0 100%);
    transition: flex-grow .45s cubic-bezier(.65,0,.35,1);
    will-change: flex-grow;
}
.split-panel:first-child {
    clip-path: polygon(0 0, 100% 0, calc(100% - 14px) 100%, 0 100%);
}
.split-panel:last-child {
    clip-path: polygon(14px 0, 100% 0, 100% 100%, 0 100%);
}
.split-panel::before {
    content: "";
    position: absolute; inset: 0;
    background: linear-gradient(180deg,
        rgba(10,30,55,0.30) 0%,
        rgba(8,20,40,0.10) 35%,
        rgba(6,12,28,0.78) 100%);
    z-index: 2;
    transition: background .35s ease-in-out;
}
.split-panel img {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    transform: scale(1.04);
    transition: transform .5s cubic-bezier(.65,0,.35,1), filter .35s ease-in-out;
    filter: saturate(.82) brightness(.85);
    will-change: transform;
}
.split-panel.is-active img {
    transform: scale(1.1);
    filter: saturate(1) brightness(1);
}
.split-panel.is-active {
    flex-grow: 6;
}
.split-panel.is-active::before {
    background: linear-gradient(135deg,
        rgba(26,60,100,0.55) 0%,
        rgba(20,40,75,0.30) 40%,
        rgba(8,16,35,0.88) 100%);
}

/* 收起态标签 */
.split-label {
    position: absolute;
    left: 0; right: 0;
    bottom: 36px;
    z-index: 3;
    color: #fff;
    text-align: center;
    transition: opacity .3s ease-in-out, transform .4s cubic-bezier(.65,0,.35,1);
}
.split-label h4 {
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 2px;
    text-shadow: 0 2px 16px rgba(0,0,0,.6);
    margin-bottom: 4px;
}
.split-label .split-role {
    font-size: .75rem;
    color: rgba(255,255,255,0.7);
    letter-spacing: 1px;
}
.split-panel.is-active .split-label {
    opacity: 0;
    transform: translateY(-12px);
}

/* 展开态信息 · 居中显示 */
.split-info {
    position: absolute;
    left: 50%; top: 50%;
    transform: translate(-50%, -50%) translateX(-40px);
    z-index: 4;
    color: #fff;
    opacity: 0;
    pointer-events: none;
    text-align: center;
    max-width: 480px;
    width: 88%;
    transition: opacity .35s ease-in-out .15s, transform .45s cubic-bezier(.65,0,.35,1) .1s;
}
.split-panel.is-active .split-info {
    opacity: 1;
    transform: translate(-50%, -50%) translateX(0);
    pointer-events: auto;
}
.split-info h3 {
    font-size: 1.6rem;
    font-weight: 800;
    line-height: 1.25;
    margin-bottom: 8px;
    letter-spacing: 1px;
    background: linear-gradient(135deg, #FFFFFF 0%, #C8E4FA 50%, #5BC4F9 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    filter: drop-shadow(0 4px 24px rgba(91, 196, 249, 0.35));
}
.split-info .split-position {
    display: inline-block;
    font-size: .9rem;
    font-weight: 500;
    color: rgba(255,255,255,0.92);
    margin-bottom: 18px;
    padding: 5px 16px;
    background: linear-gradient(135deg, rgba(50, 171, 253, 0.28) 0%, rgba(91, 196, 249, 0.16) 100%);
    border-radius: 999px;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(122, 200, 248, 0.42);
    line-height: 1.5;
}
.split-info .split-bio {
    font-size: .92rem;
    line-height: 1.6;
    color: rgba(255,255,255,0.9);
    margin-bottom: 18px;
}
.split-info .split-achieve {
    list-style: none;
    padding: 0; margin: 0;
    text-align: left;
    display: inline-block;
}
.split-info .split-achieve li {
    position: relative;
    padding-left: 22px;
    font-size: .88rem;
    line-height: 1.6;
    color: rgba(255,255,255,0.88);
    margin-bottom: 8px;
}
.split-info .split-achieve li::before {
    content: "★";
    position: absolute;
    left: 0; top: 0;
    background: linear-gradient(135deg, #5BC4F9 0%, #32ABFD 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    font-size: .82rem;
    line-height: 1.6;
}

/* ===== 自动播放控制条 · Apple 风格 ===== */
.split-controls {
    position: absolute;
    left: 50%;
    bottom: 28px;
    transform: translateX(-50%);
    z-index: 20;
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 8px 14px 8px 8px;
    border-radius: 999px;
    background: rgba(15, 15, 25, 0.55);
    border: 1px solid rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(20px) saturate(140%);
    -webkit-backdrop-filter: blur(20px) saturate(140%);
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.35);
    opacity: 0;
    transition: opacity .45s cubic-bezier(.65,0,.35,1),
                transform .45s cubic-bezier(.65,0,.35,1);
    transform: translateX(-50%) translateY(6px);
    pointer-events: none;
}
/* 模块进入视口后显示控制条 */
.split-hero-section.is-inview .split-controls {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
    pointer-events: auto;
}

/* 暂停/继续按钮 */
.split-ctrl-btn {
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 999px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.16);
    color: #fff;
    cursor: pointer;
    transition: transform .25s cubic-bezier(.65,0,.35,1),
                background .25s ease-in-out;
    -webkit-tap-highlight-color: transparent;
}
.split-ctrl-btn:hover {
    background: rgba(255, 255, 255, 0.26);
    transform: scale(1.08);
}
.split-ctrl-btn:active { transform: scale(0.94); }
.split-ctrl-btn:focus-visible {
    outline: 2px solid rgba(122, 200, 248, 0.9);
    outline-offset: 2px;
}
.split-ctrl-btn .icon-play { display: none; }
.split-ctrl-btn .icon-pause { display: block; }
/* 暂停态：显示 play 图标 */
.split-ctrl-btn[aria-pressed="true"] .icon-play { display: block; }
.split-ctrl-btn[aria-pressed="true"] .icon-pause { display: none; }
.split-ctrl-btn svg { fill: currentColor; }

/* 圆点进度指示 */
.split-dots {
    display: flex;
    align-items: center;
    gap: 7px;
}
.split-dot {
    width: 6px;
    height: 6px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.32);
    cursor: pointer;
    transition: width .35s cubic-bezier(.65,0,.35,1),
                height .35s cubic-bezier(.65,0,.35,1),
                background .25s ease-in-out,
                transform .25s ease-in-out;
    -webkit-tap-highlight-color: transparent;
}
.split-dot:hover {
    background: rgba(255, 255, 255, 0.6);
    transform: scale(1.25);
}
.split-dot:focus-visible {
    outline: 2px solid rgba(122, 200, 248, 0.9);
    outline-offset: 3px;
}
/* 当前播放圆点：放大 + 高亮 */
.split-dot.is-current {
    width: 18px;
    background: #fff;
}
/* 暂停态下当前圆点：恢复为圆点形态（不显椭圆） */
.split-hero-section.is-paused .split-dot.is-current {
    background: rgba(255, 255, 255, 0.85);
    width: 8px;
}

/* 响应式 */
@media (max-width: 768px) {
    .split-controls {
        bottom: 18px;
        gap: 12px;
        padding: 6px 12px 6px 6px;
    }
    .split-ctrl-btn { width: 30px; height: 30px; }
    .split-ctrl-btn svg { width: 12px; height: 12px; }
    .split-dots { gap: 6px; }
    .split-dot.is-current { width: 14px; }
}
@media (max-width: 480px) {
    .split-controls { gap: 10px; padding: 5px 10px 5px 5px; }
    .split-ctrl-btn { width: 28px; height: 28px; }
    .split-dots { gap: 5px; }
}

/* 尊重 prefers-reduced-motion：关闭控制条入场动画 */
@media (prefers-reduced-motion: reduce) {
    .split-controls,
    .split-hero-section.is-inview .split-controls {
        transition: none;
        transform: translateX(-50%);
    }
    .split-dot,
    .split-ctrl-btn { transition: none; }
}

/* ===== 第二个嘉宾模块：间距增大 + Apple 风格入场动画 ===== */
/* 整体淡入 + 上浮，依赖 .is-inview 类触发（由 initSplitPanels 在进入视口时添加） */
#split-hero-section-2 {
    margin-top: 120px;
    opacity: 0;
    transform: translateY(60px);
    transition: opacity 1s var(--ease-out),
                transform 1s var(--ease-out);
    will-change: opacity, transform;
}
#split-hero-section-2.is-inview {
    opacity: 1;
    transform: translateY(0);
}

/* 响应式间距：小屏适当收紧，保持明显分离 */
@media (max-width: 768px) {
    #split-hero-section-2 { margin-top: 80px; }
}
@media (max-width: 480px) {
    #split-hero-section-2 {
        margin-top: 60px;
        transform: translateY(40px);
    }
}

/* prefers-reduced-motion：关闭入场动画，立即显示 */
@media (prefers-reduced-motion: reduce) {
    #split-hero-section-2,
    #split-hero-section-2.is-inview {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* ===== 暗黑模式遮罩 ===== */
body.has-dark-overlay {
    background: #05050a !important;
    transition: background .7s linear;
}
.dark-overlay {
    position: fixed;
    inset: 0;
    background: radial-gradient(ellipse at center top, #0a0a14 0%, #05050a 55%, #000 100%);
    opacity: 0;
    pointer-events: none;
    z-index: 50;
    transition: opacity .7s linear;
}
body.has-dark-overlay .dark-overlay {
    opacity: 1;
}
body.has-dark-overlay > *:not(.split-hero-section):not(.topbar):not(.dark-overlay):not(.apple-section-footer):not(.modal-overlay):not(main),
body.has-dark-overlay main section:not(.split-hero-section) {
    opacity: .25;
    transition: opacity .7s linear;
    pointer-events: none;
}
body.has-dark-overlay .split-hero-section,
body.has-dark-overlay #split-hero-section {
    opacity: 1 !important;
    position: relative;
    z-index: 60;
}
body.has-dark-overlay .topbar {
    background: rgba(10, 10, 20, 0.75) !important;
    backdrop-filter: blur(16px) saturate(140%) !important;
    -webkit-backdrop-filter: blur(16px) saturate(140%) !important;
    border-bottom: 1px solid rgba(255,255,255,0.06) !important;
    color: #fff !important;
    z-index: 70;
}
body.has-dark-overlay .topbar .brand-name,
body.has-dark-overlay .topbar .brand-en,
body.has-dark-overlay .topbar .nav-link,
body.has-dark-overlay .topbar .nav-icon-btn {
    color: rgba(255,255,255,0.85) !important;
}
body.has-dark-overlay .topbar .nav-link.active {
    color: #7ac8f8 !important;
    background: rgba(122,200,248,0.08) !important;
}

/* 响应式 */
@media (max-width: 960px) {
    .split-hero-head { padding: 32px 16px 14px; }
    .split-info h3 { font-size: 1.25rem; }
    .split-info .split-position { font-size: .82rem; }
    .split-info .split-bio { font-size: .85rem; }
    .split-info .split-achieve li { font-size: .82rem; }
    .split-label h4 { font-size: .9rem; }
}
@media (max-width: 768px) {
    .split-panels {
        flex-direction: column;
        min-height: calc(100vh - 110px);
    }
    .split-panel {
        flex: 1 1 0;
        clip-path: polygon(0 14px, 100% 0, 100% calc(100% - 14px), 0 100%);
    }
    .split-panel:first-child {
        clip-path: polygon(0 0, 100% 0, 100% calc(100% - 14px), 0 100%);
    }
    .split-panel:last-child {
        clip-path: polygon(0 14px, 100% 0, 100% 100%, 0 100%);
    }
    .split-panel.is-active {
        flex-grow: 5;
    }
    .split-panel img { object-position: center 25%; }
    .split-label {
        left: 24px; right: auto; bottom: auto; top: 50%;
        transform: translateY(-50%);
        text-align: left;
        writing-mode: vertical-rl;
        text-orientation: mixed;
    }
    .split-panel.is-active .split-label {
        transform: translateY(-70%);
    }
    .split-info {
        width: 92%;
        max-width: 340px;
    }
    .split-info h3 { font-size: 1.1rem; }
}
@media (max-width: 480px) {
    .split-info h3 { font-size: 1rem; }
    .split-info .split-achieve li { font-size: .78rem; }
    .split-label h4 { font-size: .82rem; }
}


/* ========== News Grid ========== */
.apple-news-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    grid-template-rows: auto auto;
    gap: 24px;
}
.apple-news-card {
    background: #fff;
    border-radius: var(--r-xl);
    overflow: hidden;
    box-shadow: var(--s-sm);
    transition: transform .4s var(--ease), box-shadow .4s var(--ease);
}
.apple-news-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--s-lg);
}
.apple-news-card-lg {
    grid-row: span 2;
}
.apple-news-cover {
    position: relative;
    overflow: hidden;
}
.apple-news-cover img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    transition: transform .6s var(--ease);
}
.apple-news-card:hover .apple-news-cover img {
    transform: scale(1.05);
}
.apple-news-card-lg .apple-news-cover img {
    aspect-ratio: 4 / 3;
}
.apple-news-cover .news-tag {
    position: absolute;
    top: 14px; left: 14px;
    background: rgba(50, 171, 253, 0.9);
    color: #fff;
    font-size: .72rem;
    font-weight: 600;
    padding: 4px 12px;
    border-radius: 999px;
    letter-spacing: 1px;
}
.apple-news-body {
    padding: 24px 28px;
}
.apple-news-body .news-date {
    font-family: var(--font-en);
    font-size: .82rem;
    color: var(--c-ink-4);
    letter-spacing: 1px;
}
.apple-news-body h3 {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 8px 0 10px;
    line-height: 1.5;
}
.apple-news-card-lg .apple-news-body h3 {
    font-size: 1.4rem;
}
.apple-news-body p {
    font-size: .92rem;
    color: var(--c-ink-3);
    line-height: 1.8;
}

/* ========== About · 沉浸式 ========== */
.apple-about-wrap {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: center;
}
.apple-about-visual {
    border-radius: var(--r-xl);
    overflow: hidden;
    box-shadow: var(--s-lg);
}
.apple-about-visual img {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
}
.apple-about-lead {
    font-size: 1.05rem;
    line-height: 2;
    color: var(--c-ink-2);
    margin: 24px 0 32px;
}
.apple-timeline {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-bottom: 32px;
}
.apple-timeline-item {
    padding-left: 24px;
    border-left: 2px solid var(--c-line);
    position: relative;
}
.apple-timeline-item::before {
    content: "";
    position: absolute;
    left: -5px; top: 6px;
    width: 8px; height: 8px;
    border-radius: 50%;
    background: var(--c-purple);
    opacity: .5;
}
.apple-tl-current {
    border-left-color: var(--c-purple);
}
.apple-tl-current::before {
    opacity: 1;
    box-shadow: 0 0 0 4px rgba(50, 171, 253, 0.15);
}
.apple-tl-date {
    font-family: var(--font-en);
    font-size: .85rem;
    font-weight: 600;
    color: var(--c-purple-deep);
    letter-spacing: 1px;
}
.apple-timeline-item h4 {
    font-size: 1.05rem;
    margin: 4px 0 6px;
}
.apple-timeline-item p {
    font-size: .88rem;
    color: var(--c-ink-3);
    line-height: 1.8;
}
.apple-about-quote {
    font-family: var(--font-serif);
    font-size: 1.15rem;
    color: var(--c-ink-1);
    font-style: normal;
    padding: 20px 0;
    border-top: 1px solid var(--c-line);
    letter-spacing: 1px;
}

/* ========== Media Gallery ========== */
.apple-media-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    margin-top: 48px;
}
.apple-media-card {
    border-radius: var(--r-xl);
    overflow: hidden;
    box-shadow: var(--s-sm);
    transition: transform .4s var(--ease), box-shadow .4s var(--ease);
    position: relative;
}
.apple-media-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--s-lg);
}
.apple-media-card img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    /* 入场前：模糊 + 去饱和 + 偏亮，营造"记忆尚未显影"的情绪感 */
    filter: blur(24px) saturate(0) brightness(1.25);
    transform: scale(1.12);
    transition: filter 1.2s var(--ease-out), transform 1.2s var(--ease-out);
    will-change: filter, transform;
}
/* 入场后：清晰 + 恢复饱和 + 轻微暖色增益 */
.apple-media-card.is-visible img,
.apple-media-card.visible img {
    filter: blur(0) saturate(1.08) brightness(1);
    transform: scale(1);
}
.apple-media-card:hover img {
    transform: scale(1.04);
    filter: saturate(1.15) brightness(1.02);
}

/* 情绪色彩遮罩：入场时一层主题色薄纱，随显影淡出 */
.apple-media-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg,
        rgba(122,200,248,0.35) 0%,
        rgba(180,140,220,0.25) 50%,
        rgba(240,180,120,0.2) 100%);
    mix-blend-mode: overlay;
    opacity: 1;
    pointer-events: none;
    transition: opacity 1.1s var(--ease-out) .2s;
    z-index: 3;
}
.apple-media-card.is-visible::after,
.apple-media-card.visible::after {
    opacity: 0;
}

.apple-media-card figcaption {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    background: linear-gradient(180deg, transparent, rgba(20,20,30,0.7));
    color: #fff;
    padding: 40px 24px 20px;
    font-size: .9rem;
    font-weight: 500;
    letter-spacing: 1px;
    /* 入场前下移 + 透明 */
    opacity: 0;
    transform: translateY(12px);
    transition: opacity .6s var(--ease-out) .5s, transform .6s var(--ease-out) .5s;
    z-index: 4;
}
.apple-media-card.is-visible figcaption,
.apple-media-card.visible figcaption {
    opacity: 1;
    transform: translateY(0);
}

/* ========== FAQ ========== */
.apple-faq-wrap {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 80px;
    align-items: start;
}
.apple-faq-aside { padding-right: 20px; }
.apple-faq-aside .btn { margin-top: 24px; }
.apple-faq-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* ========== Ticket ========== */
.apple-section-ticket {
    background: var(--c-ink-1);
    color: #fff;
}
.apple-ticket-hero {
    text-align: center;
    margin-bottom: 60px;
}
.apple-ticket-hero .section-eyebrow.light { color: var(--c-pink-soft); }
.apple-ticket-hero .apple-section-title.light { color: #fff; }
.apple-ticket-lead {
    color: rgba(255,255,255,0.6);
    font-size: 1rem;
    margin-top: 12px;
}

/* ========== 响应式 ========== */
@media (max-width: 900px) {
    .apple-hero { min-height: 560px; height: 90vh; }
    .apple-hero-title .title-main { letter-spacing: 4px; }
    .apple-hero-sub { letter-spacing: 1px; }

    .apple-section { padding: 80px 0; }
    .apple-section-head { margin-bottom: 50px; }

    .apple-feature {
        grid-template-columns: 1fr;
        gap: 40px;
        padding: 0 24px;
        margin-bottom: 80px;
    }
    .apple-feature-text { padding: 0 16px; }
    .apple-feature-right .apple-feature-text,
    .apple-feature-right .apple-feature-visual,
    .apple-feature-left .apple-feature-text,
    .apple-feature-left .apple-feature-visual { order: unset; }

    .apple-feature-overlay-content { bottom: 30px; }

    .apple-news-grid {
        grid-template-columns: 1fr;
    }
    .apple-news-card-lg { grid-row: span 1; }

    .apple-about-wrap {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .apple-about-visual img { aspect-ratio: 4 / 3; }

    .apple-media-grid { grid-template-columns: 1fr; }

    .apple-faq-wrap {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .apple-faq-aside { padding-right: 0; }
}

@media (max-width: 600px) {
    .apple-hero { min-height: 480px; }
    .apple-hero-actions { flex-direction: column; align-items: center; }
    .apple-hero-actions .btn { width: 100%; max-width: 280px; }
    .apple-hero-scroll { display: none; }

    .apple-section { padding: 60px 0; }
    .apple-section-head { margin-bottom: 36px; }
    .apple-feature { margin-bottom: 60px; gap: 28px; }
    .apple-feature-text { padding: 0 12px; }
    .apple-feature-list li { flex-direction: column; gap: 4px; }
    .apple-feature-list li span { min-width: unset; }

    .apple-news-body { padding: 18px 20px; }
    .apple-news-body h3 { font-size: 1rem; }
    .apple-news-card-lg .apple-news-body h3 { font-size: 1.15rem; }

    .apple-about-lead { font-size: .95rem; }

    .apple-media-card figcaption { padding: 30px 16px 14px; font-size: .82rem; }

    .apple-ticket-hero { margin-bottom: 40px; }
}

@media (max-width: 900px) {
    .qa-layout { grid-template-columns: 1fr; }
    .qa-side { position: static; }
}
