/* GWCAPITAL 赛博风组件（2026-10，参考 cindy.app 的版式与动效；配色仍为深海军蓝 + 香槟金）
   用于入口、主页、跟单页与各子页面（顶栏字标统一为命令行风格的 GWCAPITAL + 闪烁块状光标）。 */
@view-transition { navigation: auto; }
@font-face { font-family: "Anton"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/anton-latin.woff2") format("woff2"); unicode-range: U+0000-00FF,U+2000-206F,U+2122,U+2212; }
@font-face { font-family: "Geist Mono"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("fonts/geist-mono-latin-wght.woff2") format("woff2"); unicode-range: U+0000-00FF,U+2000-206F,U+2122,U+2212; }

:root {
  --cy-ink: #06101d; --cy-ink-2: #0a1828; --cy-panel: #0c1c2e;
  --cy-gold: #efd397; --cy-gold-2: #c9a45c; --cy-on-gold: #15120d;
  --cy-cream: #f3ede2; --cy-text: #eff3f5; --cy-muted: #8c9aa8; --cy-ice: #a9c6e8;
  --cy-line: rgba(239,211,151,.14); --cy-line-2: rgba(239,211,151,.30);
  --cy-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --cy-display: "Anton", "Arial Narrow", Impact, sans-serif;
  --cy-cjk: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;
  --cy-bg: var(--cy-ink);
  /* 卡片右上切角：真裁切（clip-path，留出上方 80px 给「推荐」之类的外挂标签）+ 沿斜边画一条线；颜色用 --cy-cut-c，顶边是 2px 时设 --cy-cut-b: 2px。
     斜线渐变必须写在各元素的 ::after 上：写成 :root 变量会在根节点就算好颜色，卡片自己的 --cy-cut-c 不生效 */
  --cy-cut: polygon(-80px -80px, calc(100% - 16px) -80px, calc(100% - 16px) 0, 100% 16px, 100% calc(100% + 80px), -80px calc(100% + 80px));
}

/* 颗粒 */
.cy-grain::after { content: ""; position: fixed; inset: 0; z-index: 0; pointer-events: none; opacity: .07; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.cy-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ===== 首屏骨架（主页）：上方字标通栏，下方左文案 + 扫码板块，右照片墙 ===== */
.cy-hero { position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(0, .82fr); column-gap: 44px; padding: 34px 0 40px; }
.cy-hero > .cy-head { grid-column: 1; grid-row: 1; position: relative; z-index: 2; }
.cy-hero > .cy-copy-2 { grid-column: 1; grid-row: 2; position: relative; z-index: 2; }
.cy-hero > .cy-side { grid-column: 2; grid-row: 1 / span 2; position: relative; z-index: 1; padding-top: 92px; }
.cy-profile { position: relative; margin-top: 14px; padding: 30px 16px 14px 16px; background: rgba(12,18,28,.82); border: 1px solid rgba(239,243,245,.14); border-left: 3px solid var(--cy-gold); font-size: 13.5px; line-height: 1.8; color: #c7d0d8; letter-spacing: .02em; }
.cy-profile-k { display: block; margin-bottom: 6px; font-family: var(--cy-mono), var(--cy-cjk); font-size: 11.5px; letter-spacing: .22em; color: var(--cy-text); }
.cy-profile-k i { font-style: normal; color: var(--cy-gold); }
.cy-gridlines { position: absolute; inset: 0 -40px; z-index: -2; pointer-events: none; opacity: .5;
  background: repeating-linear-gradient(90deg, rgba(239,211,151,.035) 0 1px, transparent 1px 120px); -webkit-mask-image: linear-gradient(180deg, #000 30%, transparent); mask-image: linear-gradient(180deg, #000 30%, transparent); }
.cy-glow { position: absolute; z-index: -1; right: 4%; top: 12%; width: 46%; height: 70%; pointer-events: none; background: radial-gradient(closest-side, rgba(201,164,92,.20), transparent); filter: blur(10px); }
.cy-ghost { position: absolute; z-index: -1; right: 0; top: -6px; font-family: var(--cy-display); font-size: clamp(100px, 12.5vw, 186px); line-height: .86; letter-spacing: .01em; color: transparent; -webkit-text-stroke: 1px rgba(239,211,151,.10); pointer-events: none; user-select: none; white-space: nowrap; animation: cyDrift 14s ease-in-out infinite; }
.cy-ghost::after { content: attr(data-text); position: absolute; left: 10px; top: 6px; -webkit-text-stroke: 1px rgba(169,198,232,.06); }
@keyframes cyDrift { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(-24px); } }

.cy-eyebrow { display: flex; align-items: center; gap: 12px; font-family: var(--cy-mono), var(--cy-cjk); font-size: 12.5px; font-weight: 600; letter-spacing: .18em; color: var(--cy-gold); text-transform: uppercase; }
.cy-eyebrow::before { content: ""; width: 34px; height: 1px; background: var(--cy-gold-2); flex: none; }
.cy-word { display: block; margin: 18px 0 0; font-family: var(--cy-display); font-weight: 400; font-size: clamp(64px, 8.2vw, 124px); line-height: .9; letter-spacing: .004em; color: var(--cy-cream); white-space: nowrap; }
.cy-word b, .cy-brand b { font-weight: 400; color: inherit; }
/* 字标渐变：从左到右，GW 金黄 → CAPITAL 白 */
.cy-grad, .cy-word { background: linear-gradient(90deg, #f2bf3c 0%, #f6cd5e 16%, #fbe3a6 30%, #fff6e2 46%, #ffffff 62%, #ffffff 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.cy-word { display: inline-block; }
/* 仿 cindy 的 i：CAPITAL 的 I 换成短竖 + 金色提示符 ›（命令行 prompt） */
/* i 照 cindy 的 SVG 取比例：竖顶与箭头下沿同为 0.685 斜率、互相平行；箭头左缘比竖笔再往左一点，尖端有一小段竖边。
   Anton：大写字高 .859em，I 宽 .227em，竖笔 .187em（左边距 .016em） */
.cy-i { position: relative; display: inline-block; width: .227em; height: .859em; margin-right: .03em; vertical-align: baseline; }
.cy-i-stem { position: absolute; left: .016em; width: .187em; bottom: 0; height: .5506em; background: #fffdf7; clip-path: polygon(0 23.3%, 100% 0, 100% 100%, 0 100%); }
.cy-i-chev { position: absolute; left: -.0185em; bottom: .4787em; width: .2664em; height: .3803em; background: #f2bf3c; clip-path: polygon(0 0, 100% 48%, 100% 52%, 0 100%, 0 67.7%, 35.2% 50%, 0 32.2%); }
/* 命令行字标：逐字打出 + 闪烁块状光标 */
.cy-cursor { display: inline-block; width: .3em; height: .2em; margin-left: .07em; vertical-align: baseline; background: #f2bf3c; animation: cyCaret 1.05s step-end infinite; }
.cy-caret::after { content: "_"; margin-left: .3em; color: var(--cy-gold); animation: cyCaret 1.05s step-end infinite; }
.cy-caret-end { white-space: nowrap; }
.cy-caret-end::after { content: "_"; margin-left: .15em; color: #f2bf3c; font-weight: 700; animation: cyCaret 1.05s step-end infinite; }
.cy-type.is-typing .cy-cursor { animation: none; }
.cy-type .cy-ch { display: none !important; } .cy-type .cy-ch.on { display: inline !important; } .cy-type .cy-i.cy-ch.on { display: inline-block !important; }
.cy-brand { display: inline-flex; align-items: center; gap: 10px; font-family: var(--cy-display) !important; font-weight: 400 !important; font-size: 21px !important; letter-spacing: .03em !important; line-height: 1; text-decoration: none; text-transform: uppercase; white-space: nowrap; }
.cy-brand img { width: 30px !important; height: 30px !important; border-radius: 7px !important; box-shadow: none !important; flex: none; }

.cy-slogan { margin: 22px 0 0; font-family: var(--cy-cjk); font-weight: 900; font-size: clamp(30px, 3.9vw, 58px); line-height: 1.16; color: var(--cy-cream); letter-spacing: .01em; }
.cy-desc { margin: 22px 0 0; max-width: 600px; font-size: 16px; line-height: 1.85; color: #a3afbb; }
.cy-cta { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px; }
/* 按钮：照 cindy —— 右上、左下两个切角；实心金色 / 描边（描边沿切角走） */
.cy-btn { --cut: 14px; position: relative; isolation: isolate; display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 54px; padding: 0 30px; border: 0; background: none; cursor: pointer; font-family: inherit; font-size: 15.5px; font-weight: 700; letter-spacing: .02em; text-decoration: none; white-space: nowrap;
  clip-path: polygon(0 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% 100%, var(--cut) 100%, 0 calc(100% - var(--cut))); transition: filter .15s, transform .15s; }
.cy-btn:hover { filter: brightness(1.08); transform: translateY(-1px); }
.cy-btn svg { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.cy-btn-main { background: #e9c983; color: var(--cy-on-gold); }
.cy-btn-ghost { background: var(--cy-cream); color: var(--cy-cream); }
.cy-btn-ghost::before { content: ""; position: absolute; inset: 2px; z-index: -1; background: var(--cy-btn-bg, #0b1726);
  clip-path: polygon(0 0, calc(100% - var(--cut) + 1.2px) 0, 100% calc(var(--cut) - 1.2px), 100% 100%, calc(var(--cut) - 1.2px) 100%, 0 calc(100% - var(--cut) + 1.2px)); transition: background .15s; }
.cy-btn-ghost:hover::before { background: #13243a; }
.cy-btn .cy-arrow { margin-left: 28px; font-family: var(--cy-mono); font-weight: 400; }
.cy-more { display: inline-block; margin-top: 16px; font-size: 13.5px; color: #a3afbb; text-decoration: none; }
.cy-more:hover { color: var(--cy-gold); }
.cy-bullets { display: flex; flex-wrap: wrap; gap: 8px 30px; margin: 30px 0 0; padding: 0; list-style: none; font-family: var(--cy-mono), var(--cy-cjk); font-size: 12.5px; letter-spacing: .14em; color: #a3afbb; text-transform: uppercase; }
.cy-bullets + .cy-bullets { margin-top: 10px; color: #7d8b98; }
.cy-bullets li { display: inline-flex; align-items: center; gap: 10px; }
.cy-bullets li::before { content: ""; width: 5px; height: 5px; background: var(--cy-gold); transform: rotate(45deg); }

/* 闪烁标点 + 定期失真的文字 */
.cy-dot { display: inline-block; color: var(--cy-cream); animation: cyCaret 1.1s step-end infinite; }
.cy-glitch { position: relative; display: inline-block; color: var(--cy-gold); animation: cyJitter 6.5s step-end infinite; }
.cy-glitch::before, .cy-glitch::after { content: attr(data-text); position: absolute; inset: 0; opacity: 0; pointer-events: none; }
.cy-glitch::before { color: var(--cy-ice); animation: cyLayerA 6.5s step-end infinite; }
.cy-glitch::after { color: #ff9e7a; mix-blend-mode: screen; animation: cyLayerB 6.5s step-end infinite; }
@keyframes cyCaret { 50% { opacity: 0; } }
@keyframes cyJitter { 0%, 88%, 95%, 100% { transform: none; } 89% { transform: translate(-3px, 1px) skewX(-6deg); } 90.5% { transform: translate(4px, -1px); } 92% { transform: translate(-2px, 2px) skewX(4deg); } 93.5% { transform: translate(2px, 0); } }
@keyframes cyLayerA { 0%, 88%, 95%, 100% { opacity: 0; } 89% { opacity: .85; clip-path: inset(8% 0 58%); transform: translate(-8px, 2px); } 90.5% { opacity: .85; clip-path: inset(52% 0 12%); transform: translate(6px, -2px); } 92% { opacity: .7; clip-path: inset(30% 0 34%); transform: translate(-5px, 0); } 93.5% { opacity: .5; clip-path: inset(70% 0 4%); transform: translate(3px, 0); } }
@keyframes cyLayerB { 0%, 88%, 95%, 100% { opacity: 0; } 89% { opacity: .8; clip-path: inset(58% 0 8%); transform: translate(7px, -2px); } 90.5% { opacity: .8; clip-path: inset(10% 0 60%); transform: translate(-6px, 2px); } 92% { opacity: .6; clip-path: inset(40% 0 22%); transform: translate(5px, 1px); } 93.5% { opacity: .5; clip-path: inset(2% 0 80%); transform: translate(-3px, 0); } }

/* 装饰：十字、竖排轨道字 */
.cy-cross { position: absolute; z-index: 1; width: 18px; height: 18px; pointer-events: none; animation: cyCross 3.4s step-end infinite; }
.cy-cross::before, .cy-cross::after { content: ""; position: absolute; background: rgba(239,243,245,.7); }
.cy-cross::before { left: 8.5px; top: 0; width: 1px; height: 18px; } .cy-cross::after { top: 8.5px; left: 0; height: 1px; width: 18px; }
@keyframes cyCross { 0%, 84%, 100% { opacity: .65; } 88% { opacity: .1; } 92% { opacity: .9; } }
.cy-rail { position: absolute; z-index: 2; right: -38px; top: 50%; transform: translateY(-50%); writing-mode: vertical-rl; font-family: var(--cy-mono), var(--cy-cjk); font-size: 10.5px; letter-spacing: .34em; color: rgba(239,211,151,.45); pointer-events: none; white-space: nowrap; text-transform: uppercase; }
.cy-rail::before { content: ""; display: block; width: 1px; height: 46px; margin: 0 auto 14px; background: var(--cy-gold-2); }

/* ===== 人物舞台（点击失真切换） ===== */
.cy-stage { position: relative; z-index: 2; aspect-ratio: 4 / 3; cursor: pointer; outline: none; -webkit-tap-highlight-color: transparent; }
.cy-stage::before { content: ""; position: absolute; inset: 0; z-index: 4; pointer-events: none; border: 1px solid var(--cy-line);
  background: linear-gradient(var(--cy-gold), var(--cy-gold)) top left / 22px 2px no-repeat, linear-gradient(var(--cy-gold), var(--cy-gold)) top left / 2px 22px no-repeat, linear-gradient(var(--cy-gold), var(--cy-gold)) bottom right / 22px 2px no-repeat, linear-gradient(var(--cy-gold), var(--cy-gold)) bottom right / 2px 22px no-repeat; }
.cy-chara { position: absolute; inset: 0; overflow: hidden;
 }
.cy-chara img, .cy-chara .cy-layer { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cy-chara img { filter: saturate(.9) contrast(1.06) brightness(.94); }
.cy-chara::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(200deg, rgba(201,164,92,.20), transparent 40%), linear-gradient(0deg, rgba(6,16,29,.55), transparent 45%); mix-blend-mode: normal; }
.cy-chara .cy-layer { background-size: cover; opacity: 0; pointer-events: none; }
.cy-chara img.cy-fade { opacity: 0; transition: opacity .45s ease; }
.cy-chara img.is-shot { object-fit: contain; background: #0b1522; }
.cy-chara img.cy-fade.on { opacity: 1; }
@keyframes cyFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
.cy-stage.is-glitch .cy-chara img { animation: cySwap .72s step-end both; }
.cy-stage.is-glitch .cy-layer.a { animation: cySwapA .72s step-end both; }
.cy-stage.is-glitch .cy-layer.b { animation: cySwapB .72s step-end both; }
.cy-stage.is-glitch .cy-noise { animation: cyNoise .72s linear both; }
@keyframes cySwap { 0% { filter: none; clip-path: none; transform: none; } 10% { clip-path: inset(4% 0 62%); filter: hue-rotate(-50deg) saturate(2.2); transform: translate(-10px, 3px); } 20% { clip-path: inset(55% 0 10%); filter: contrast(1.7) brightness(1.2); transform: translate(8px, -2px); } 30% { clip-path: inset(26% 0 34%); filter: invert(.85) hue-rotate(160deg); transform: translate(-4px, 6px); } 40% { clip-path: none; filter: saturate(.2) brightness(1.8); transform: translate(11px, -5px); } 52% { clip-path: inset(12% 0 44%); filter: hue-rotate(-120deg) saturate(3); transform: translate(-12px, 0); } 64% { clip-path: inset(66% 0 4%); filter: invert(1) hue-rotate(80deg); transform: translate(6px, 2px); } 76% { clip-path: inset(36% 0 30%); filter: contrast(2); transform: translate(-3px, -3px); } 88% { clip-path: none; filter: brightness(1.3); transform: translate(2px, 0); } 100% { filter: saturate(.9) contrast(1.06) brightness(.94); clip-path: none; transform: none; } }
@keyframes cySwapA { 0%, 100% { opacity: 0; } 10% { opacity: .8; clip-path: inset(20% 0 50%); transform: translate(-16px, 0); filter: hue-rotate(180deg) saturate(3); } 30% { opacity: .7; clip-path: inset(60% 0 12%); transform: translate(14px, 0); } 52% { opacity: .8; clip-path: inset(6% 0 76%); transform: translate(-20px, 0); filter: hue-rotate(200deg); } 76% { opacity: .5; clip-path: inset(44% 0 40%); transform: translate(10px, 0); } 88% { opacity: 0; } }
@keyframes cySwapB { 0%, 100% { opacity: 0; } 20% { opacity: .7; clip-path: inset(70% 0 6%); transform: translate(18px, 0); filter: sepia(1) saturate(4) hue-rotate(-10deg); } 40% { opacity: .6; clip-path: inset(14% 0 64%); transform: translate(-12px, 0); } 64% { opacity: .7; clip-path: inset(34% 0 44%); transform: translate(16px, 0); filter: sepia(1) saturate(5); } 88% { opacity: 0; } }
.cy-noise { position: absolute; inset: 0; z-index: 3; pointer-events: none; opacity: 0;
  background: repeating-linear-gradient(0deg, rgba(239,211,151,.18) 0 2px, transparent 2px 5px), repeating-linear-gradient(0deg, rgba(169,198,232,.12) 0 1px, transparent 1px 9px); }
@keyframes cyNoise { 0% { opacity: 0; transform: none; } 12% { opacity: 1; transform: translateY(-6px); } 30% { opacity: .35; transform: translateY(8px); } 46% { opacity: 1; transform: translateY(-3px) scaleY(1.04); } 64% { opacity: .5; transform: translateY(5px); } 82% { opacity: .9; transform: none; } 100% { opacity: 0; } }
.cy-scan { position: absolute; z-index: 3; left: 10%; right: 6%; top: 8%; height: 2px; opacity: 0; pointer-events: none; background: linear-gradient(90deg, transparent, rgba(239,211,151,.85), rgba(169,198,232,.5), transparent); animation: cySweep 6s linear infinite; }
@keyframes cySweep { 0% { opacity: 0; top: 8%; } 5% { opacity: .9; } 42% { opacity: .8; top: 86%; } 48%, 100% { opacity: 0; top: 88%; } }
.cy-slash { position: absolute; z-index: 2; height: 2px; pointer-events: none; background: linear-gradient(90deg, transparent, var(--cy-gold) 40%, var(--cy-gold-2) 70%, transparent); transform: rotate(-24deg); box-shadow: 0 0 12px rgba(239,211,151,.6); opacity: .8; }
.cy-slash.s1 { width: 46%; right: -4%; top: 58%; } .cy-slash.s2 { width: 26%; right: 14%; top: 78%; height: 1px; opacity: .55; } .cy-slash.s3 { width: 18%; left: 8%; top: 22%; height: 1px; opacity: .4; transform: rotate(-30deg); }
.cy-tag { position: absolute; z-index: 6; left: 5%; bottom: -20px; top: auto; padding: 7px 12px 7px 12px; background: rgba(12,18,28,.82); border: 1px solid rgba(239,243,245,.14); border-left: 3px solid var(--cy-gold); font-family: var(--cy-mono), var(--cy-cjk); font-size: 13px; letter-spacing: .2em; color: var(--cy-text); pointer-events: none; white-space: nowrap; }
.cy-tag i { font-style: normal; color: var(--cy-gold); }
.cy-tag::after { content: "_"; margin-left: 6px; color: var(--cy-gold); animation: cyCaret 1.05s step-end infinite; }
.cy-hint { position: absolute; z-index: 4; right: 6%; bottom: 6%; font-family: var(--cy-mono), var(--cy-cjk); font-size: 10.5px; letter-spacing: .24em; color: rgba(239,211,151,.6); pointer-events: none; }

/* ===== 全屏失真过场（入口 → 主页）：只动 opacity / transform / clip-path，避免滤镜重绘卡顿 ===== */
.cy-warp { position: fixed; inset: 0; z-index: 9999; pointer-events: none; background: var(--cy-ink); will-change: clip-path, opacity; }
.cy-warp i { position: absolute; left: 0; right: 0; background: var(--cy-gold); will-change: transform, opacity; }
.cy-warp.out { animation: cyWarpOut .42s steps(1, end) forwards; }
.cy-warp.in { animation: cyWarpIn .42s steps(1, end) forwards; }
.cy-warp i { animation: cyBars .42s steps(1, end) both; }
@keyframes cyWarpOut { 0% { opacity: 0; } 12% { opacity: 1; clip-path: inset(12% 0 74%); } 24% { clip-path: inset(46% 0 30%); } 36% { clip-path: inset(4% 0 58%); } 48% { clip-path: inset(30% 0 12%); } 60% { clip-path: inset(0 0 36%); } 72% { clip-path: inset(18% 0 0); } 84%, 100% { opacity: 1; clip-path: inset(0); } }
@keyframes cyWarpIn { 0%, 12% { clip-path: inset(0); } 24% { clip-path: inset(0 0 30%); } 36% { clip-path: inset(40% 0 8%); } 48% { clip-path: inset(10% 0 56%); } 60% { clip-path: inset(66% 0 6%); } 72% { clip-path: inset(30% 0 52%); } 84% { clip-path: inset(84% 0 2%); } 100% { clip-path: inset(100% 0 0); } }
@keyframes cyBars { 0%, 100% { opacity: 0; transform: none; } 12% { opacity: .9; transform: translateX(-40px); } 24% { opacity: .3; transform: translateX(26px); } 36% { opacity: .8; transform: translateX(-12px); } 60% { opacity: .5; transform: translateX(34px); } 84% { opacity: .2; transform: none; } }
.cy-shake { animation: cyShake .42s steps(1, end) both; will-change: transform; }
@keyframes cyShake { 0%, 100% { transform: none; } 12% { transform: translate(-9px, 2px) skewX(-4deg); } 24% { transform: translate(11px, -3px); } 36% { transform: translate(-5px, 4px) skewX(5deg); } 48% { transform: translate(8px, 0); } 60% { transform: translate(-3px, -2px) skewX(-2deg); } 72% { transform: translate(4px, 1px); } }

/* ===== 区块标题与卡片 ===== */
.cy-label { display: flex; align-items: center; gap: 12px; font-family: var(--cy-mono), var(--cy-cjk); font-size: 11.5px; font-weight: 600; letter-spacing: .24em; color: #a3afbb; text-transform: uppercase; }
.cy-label b { color: var(--cy-gold); font-weight: 600; }
.cy-label::after { content: ""; flex: 1; height: 1px; background: var(--cy-line-2); }
.cy-notch { position: relative; }
.cy-notch { clip-path: var(--cy-cut); }
.cy-notch::after { content: ""; position: absolute; top: calc(-1 * var(--cy-cut-b, 1px)); right: -1px; width: 16px; height: 16px; pointer-events: none; z-index: 3; --cy-cut-w: calc(var(--cy-cut-b, 1px) * .5 + .35px); background: linear-gradient(45deg, transparent calc(50% - var(--cy-cut-w)), var(--cy-cut-c, rgba(239,211,151,.30)) calc(50% - var(--cy-cut-w)) calc(50% + var(--cy-cut-w)), transparent calc(50% + var(--cy-cut-w))); }

@media (max-width: 950px) {
  .cy-hero { grid-template-columns: 1fr; padding: 22px 0 30px; }
  .cy-hero > .cy-head, .cy-hero > .cy-copy-2, .cy-hero > .cy-side { grid-column: 1; grid-row: auto; }
  .cy-hero > .cy-side { padding-top: 30px; }
  .cy-rail { display: none; }
  .cy-ghost { font-size: 20vw; top: 0; }
  .cy-glow { right: -10%; top: auto; bottom: 0; width: 100%; height: 45%; }
}
@media (max-width: 560px) {
  .cy-word { font-size: 19.5vw; margin-top: 14px; }
  .cy-slogan { font-size: 31px; margin-top: 16px; }
  .cy-desc { font-size: 14.5px; line-height: 1.8; margin-top: 18px; }
  .cy-cta { gap: 10px; margin-top: 22px; } .cy-btn { --cut: 12px; min-height: 48px; padding: 0 18px; font-size: 14px; } .cy-btn .cy-arrow { margin-left: 14px; }
  .cy-bullets { gap: 6px 16px; font-size: 11px; letter-spacing: .08em; margin-top: 22px; }
  .cy-eyebrow { font-size: 11px; letter-spacing: .1em; gap: 8px; } .cy-eyebrow::before { width: 20px; }
  .cy-tag { font-size: 11px; padding: 6px 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .cy-glitch, .cy-glitch::before, .cy-glitch::after, .cy-cross, .cy-scan, .cy-ghost, .cy-cursor, .cy-caret::after, .cy-caret-end::after, .cy-tag::after { animation: none !important; }
}

/* ===== 底部滚动报价栏（主页） ===== */
.cy-quotes { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; overflow: hidden; padding: 7px 0 calc(7px + env(safe-area-inset-bottom, 0px)); background: rgba(6,16,29,.94); border-top: 1px solid var(--cy-line-2); box-shadow: 0 -10px 28px rgba(0,0,0,.5); contain: paint; }
.cy-quotes::before, .cy-quotes::after { content: ""; position: absolute; top: 0; bottom: 0; width: 46px; z-index: 2; pointer-events: none; }
.cy-quotes::before { left: 0; background: linear-gradient(90deg, #06101d, transparent); } .cy-quotes::after { right: 0; background: linear-gradient(270deg, #06101d, transparent); }
.cy-quotes-track { display: inline-flex; gap: 8px; animation: cyQuotes 80s linear infinite; will-change: transform; }
@media (hover: hover) { .cy-quotes:hover .cy-quotes-track { animation-play-state: paused; } }
@keyframes cyQuotes { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.cy-q { display: inline-flex; align-items: baseline; gap: 9px; padding: 6px 12px; white-space: nowrap; background: rgba(12,28,46,.9); border: 1px solid var(--cy-line); border-left: 2px solid var(--cy-line-2); font-family: var(--cy-mono); font-variant-numeric: tabular-nums; }
.cy-q-n { font-size: 11px; letter-spacing: .12em; color: var(--cy-gold); }
.cy-q-p { font-size: 13px; font-weight: 600; color: var(--cy-text); }
.cy-q-c { font-size: 11px; color: var(--cy-muted); }
.cy-q.up { border-left-color: #34d399; } .cy-q.up .cy-q-c { color: #34d399; }
.cy-q.down { border-left-color: #ff5a72; } .cy-q.down .cy-q-c { color: #ff8da1; }
@media (max-width: 560px) { .cy-q { padding: 5px 9px; gap: 7px; } .cy-q-n, .cy-q-c { font-size: 10px; } .cy-q-p { font-size: 12px; } }
@media (prefers-reduced-motion: reduce) { .cy-quotes-track { animation-duration: 240s; } }
