/* ============================================================
   故事转视频（gushizhuanshipin）— 暗调电影感 1:1 复刻
   对齐参考站 GuShiZhuanShiPin 设计系统
   ============================================================ */
.gs-zhuke {
  --gs-canvas: #0B0A10;
  --gs-text-1: rgba(255, 250, 242, .93);
  --gs-text-2: rgba(255, 250, 242, .62);
  --gs-text-3: rgba(255, 250, 242, .4);
  --gs-surface-1: #131219;
  --gs-surface-2: #19171F;
  --gs-surface-3: #201E28;
  --gs-surface-4: #292632;
  --gs-border: rgba(255, 255, 255, .09);
  --gs-border-strong: rgba(255, 255, 255, .15);
  --gs-border-faint: rgba(255, 255, 255, .05);
  --gs-border-active: rgba(255, 255, 255, .24);
  --gs-accent: #F5B042;
  --gs-accent-rgb: 245, 176, 66;
  --gs-accent-text: #FFC766;
  --gs-accent-soft: rgba(245, 176, 66, .12);
  --gs-accent-border: rgba(245, 176, 66, .45);
  --gs-accent-2-rgb: 150, 128, 255;
  --gs-accent-2: #9680FF;
  --gs-accent-2-text: #B6A6FF;
  --gs-accent-2-soft: rgba(150, 128, 255, .14);
  --gs-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --gs-font-display: "Noto Serif SC", "Songti SC", "STSong", "Source Han Serif SC", serif;
  --gs-fs-xs: .655rem;
  --gs-fs-sm: .714rem;
  --gs-fs-base: .804rem;
  --gs-fs-md: .893rem;
  --gs-fs-lg: 1.071rem;
  --gs-fs-xl: 1.429rem;
  --gs-sp-1: .238rem;
  --gs-sp-2: .476rem;
  --gs-sp-3: .714rem;
  --gs-sp-4: .952rem;
  --gs-sp-5: 1.19rem;
  --gs-sp-6: 1.429rem;
  --gs-sp-8: 1.905rem;
  --gs-sp-10: 2.381rem;
  --gs-sp-12: 2.857rem;
  --gs-r-sm: .357rem;
  --gs-r-md: .595rem;
  --gs-r-lg: .833rem;
  --gs-r-xl: 1.19rem;
  --gs-r-full: 999px;
  --gs-glass-bg: rgba(19, 18, 25, .82);
  --gs-glass-blur: blur(18px) saturate(140%);
  --gs-img-holder: #17151D;
  --gs-danger: #FF7A7A;
  --gs-on-accent: #2A1A02;
  --gs-t-fast: .12s;
  --gs-t-base: .18s;
  --gs-t-slow: .26s;
  --gs-ease: cubic-bezier(.22, 1, .36, 1);
  --gs-ease-inout: cubic-bezier(.65, 0, .35, 1);
  --gs-shadow-pop: 0 12px 40px rgba(0, 0, 0, .55), 0 2px 10px rgba(0, 0, 0, .35);
  --gs-glow-accent: 0 0 0 1px rgba(245, 176, 66, .35), 0 8px 28px rgba(245, 176, 66, .18);
  --gs-mask: rgba(6, 5, 10, .62);
  --fd-sx: 0;
  --fd-sy: 0;

  position: absolute;
  inset: 0;
  overflow: hidden;
  background: var(--gs-canvas);
  color: var(--gs-text-1);
  font-family: var(--gs-font);
  font-size: var(--gs-fs-md);
}
.gs-zhuke * { box-sizing: border-box; }

/* ---------- 主滚动容器 ---------- */
.gs-qishi { position: relative; flex: 1; min-height: 0; height: 100%; overflow-y: auto; overflow-x: hidden; padding-bottom: var(--gs-sp-12); }
.gs-qishi-mu { position: relative; padding: clamp(2.5rem, 9vh, 5.5rem) 0 var(--gs-sp-4); isolation: isolate; }

/* ---------- 背景层 ---------- */
.gs-qishi-beijing { position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.gs-qishi-hero {
  position: absolute; top: 0; right: 0;
  width: min(72%, 70rem); height: 100%;
  object-fit: cover; object-position: right center;
  opacity: .78;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 42%), linear-gradient(to top, transparent 0%, #000 38%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(to right, transparent 0%, #000 42%), linear-gradient(to top, transparent 0%, #000 38%);
  mask-composite: intersect;
}
.gs-qishi-guangyun { position: absolute; border-radius: 50%; filter: blur(60px); }
.gs-qishi-guangyun.is-zi { top: -18%; right: 8%; width: 46rem; height: 30rem; background: radial-gradient(closest-side, rgba(var(--gs-accent-2-rgb), .3), transparent); }
.gs-qishi-guangyun.is-jin { bottom: 4%; left: 18%; width: 36rem; height: 16rem; background: radial-gradient(closest-side, rgba(var(--gs-accent-rgb), .12), transparent); }

/* ---------- 浮动装饰 ---------- */
.gs-fudong { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.gs-fudong-wei {
  position: absolute;
  transform: translate3d(calc(var(--fd-sx) * var(--fd-shendu) * -12px), calc(var(--fd-sy) * var(--fd-shendu) * -12px), 0);
  transition: transform .7s var(--gs-ease); will-change: transform;
}
.gs-fudong-wei.is-kuanping { display: none; }
@media (min-width: 1280px) { .gs-fudong-wei.is-kuanping { display: block; } }
.gs-fudong-tu {
  display: block; width: 100%; height: auto;
  -webkit-user-select: none; user-select: none;
  animation: gs-piaofu var(--fd-t, 7s) var(--gs-ease-inout) infinite;
  filter: drop-shadow(0 10px 24px rgba(var(--gs-accent-2-rgb), .18));
}

/* ---------- 内容 ---------- */
.gs-qishi-nei { position: relative; z-index: 1; width: min(60rem, calc(100% - 2.8rem)); margin: 0 auto; }
.gs-qishi-biaoti {
  display: flex; flex-direction: column; margin: 0;
  font-family: var(--gs-font-display);
  font-size: clamp(1.9rem, 3.4vw, 3.05rem);
  font-weight: 600; line-height: 1.22; letter-spacing: -.01em;
  color: var(--gs-text-1); text-shadow: 0 0 36px rgba(var(--gs-accent-rgb), .16);
  animation: gs-jinchang .7s var(--gs-ease) both;
}
.gs-qishi-biaoti span:last-child { padding-left: 1.2em; }
.gs-qishi-fubiaoti {
  max-width: 32rem; margin: var(--gs-sp-4) 0 0;
  font-size: var(--gs-fs-md); line-height: 1.75; color: var(--gs-text-2);
  animation: gs-jinchang .7s .12s var(--gs-ease) both;
}
.gs-qishi-shuru { margin-top: clamp(1.6rem, 5vh, 2.8rem); animation: gs-jinchang .7s .22s var(--gs-ease) both; }

/* ---------- 输入卡 ---------- */
.gs-shuruka {
  position: relative; display: flex; flex-direction: column;
  border: 1px solid var(--gs-border-strong); border-radius: var(--gs-r-xl);
  background: var(--gs-glass-bg);
  -webkit-backdrop-filter: var(--gs-glass-blur); backdrop-filter: var(--gs-glass-blur);
  box-shadow: var(--gs-shadow-pop);
  transition: border-color var(--gs-t-base) var(--gs-ease), box-shadow var(--gs-t-slow) var(--gs-ease);
}
.gs-shuruka.is-jujiao { border-color: var(--gs-accent-border); box-shadow: var(--gs-shadow-pop), var(--gs-glow-accent); }
.gs-shuruka-kongxian {
  display: block; height: .9rem; margin: 0 var(--gs-sp-6);
  background-image: radial-gradient(circle, var(--gs-border-strong) 0 2.4px, transparent 2.9px);
  background-size: 1.3rem 100%; background-repeat: repeat-x; background-position: center;
  opacity: .8; transition: opacity var(--gs-t-base) var(--gs-ease);
}
.gs-shuruka.is-jujiao .gs-shuruka-kongxian { background-image: radial-gradient(circle, rgba(var(--gs-accent-rgb), .55) 0 2.4px, transparent 2.9px); }
.gs-shuruka-wenben { position: relative; padding: 0 var(--gs-sp-6); }
.gs-shuruka-yu {
  display: block; width: 100%; min-height: 8.5rem; max-height: 38vh;
  padding: var(--gs-sp-3) 0 var(--gs-sp-2);
  border: none; outline: none; background: transparent;
  color: var(--gs-text-1); font-family: var(--gs-font); font-size: var(--gs-fs-md);
  line-height: 1.8; resize: none;
}
.gs-shuruka-yu::placeholder { color: var(--gs-text-3); }
.gs-shuruka-fuzhu { display: flex; align-items: center; justify-content: space-between; gap: var(--gs-sp-3); padding-bottom: var(--gs-sp-3); }
.gs-shuruka-linggan {
  display: inline-flex; align-items: center; gap: var(--gs-sp-1);
  padding: 0; border: none; background: transparent;
  color: var(--gs-accent-text); font-size: var(--gs-fs-sm); cursor: pointer;
}
.gs-shuruka-linggan span { text-decoration: underline; text-decoration-style: dotted; text-decoration-color: var(--gs-accent-border); text-decoration-underline-offset: 3px; }
.gs-shuruka-linggan:hover span { text-decoration-style: solid; text-decoration-color: var(--gs-accent-text); }
.gs-shuruka-zishu { font-size: var(--gs-fs-xs); font-variant-numeric: tabular-nums; color: var(--gs-text-3); }
.gs-shuruka-zishu.is-chao { color: var(--gs-danger); }

/* ---------- 底部工具栏 ---------- */
.gs-shuruka-di { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--gs-sp-4); padding: var(--gs-sp-3) var(--gs-sp-4) var(--gs-sp-4); border-top: 1px solid var(--gs-border-faint); }
.gs-shuruka-gongju { flex: 1; }
.gs-shuruka-tijiao-qu { display: flex; align-items: center; gap: var(--gs-sp-3); flex-shrink: 0; }
.gs-shuruka-kuaijie { font-size: var(--gs-fs-xs); color: var(--gs-text-3); white-space: nowrap; }

/* ---------- 工具 pill ---------- */
.gs-gongju { display: flex; flex-wrap: wrap; align-items: center; gap: var(--gs-sp-2); min-width: 0; }
.gs-gongju-xiang {
  display: inline-flex; align-items: center; gap: var(--gs-sp-2);
  max-width: 14rem; height: 2.143rem; padding: 0 var(--gs-sp-3);
  border: 1px solid var(--gs-border); border-radius: var(--gs-r-md);
  background: var(--gs-surface-2); color: var(--gs-text-2);
  font-size: var(--gs-fs-base); cursor: pointer;
  transition: border-color var(--gs-t-fast) var(--gs-ease), color var(--gs-t-fast) var(--gs-ease), background var(--gs-t-fast) var(--gs-ease);
}
.gs-gongju-xiang:hover { border-color: var(--gs-border-strong); color: var(--gs-text-1); }
.gs-gongju-xiang.is-gaiguo { border-color: var(--gs-accent-border); background: var(--gs-accent-soft); color: var(--gs-accent-text); }
.gs-gongju-tubiao { flex-shrink: 0; color: var(--gs-text-3); }
.gs-gongju-xiang.is-gaiguo .gs-gongju-tubiao { color: inherit; }
.gs-gongju-wen { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gs-gongju-fengge-tu {
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0; width: 1.3rem; height: 1.3rem; overflow: hidden;
  border-radius: 50%; border: 1px solid var(--gs-border-strong);
  background: var(--gs-accent-2-soft);
}
.gs-gongju-fengge-tu img { width: 100%; height: 100%; object-fit: cover; }

/* 方向切换 */
.gs-gongju-fangxiang { display: inline-flex; height: 2.143rem; padding: 2px; box-sizing: border-box; border: 1px solid var(--gs-border); border-radius: var(--gs-r-md); background: var(--gs-surface-2); }
.gs-gongju-fx {
  display: inline-flex; align-items: center; gap: var(--gs-sp-1);
  padding: 0 var(--gs-sp-3); border: none; border-radius: var(--gs-r-sm);
  background: transparent; color: var(--gs-text-3); font-size: var(--gs-fs-sm);
  cursor: pointer; transition: background var(--gs-t-fast) var(--gs-ease), color var(--gs-t-fast) var(--gs-ease);
}
.gs-gongju-fx:hover { color: var(--gs-text-1); }
.gs-gongju-fx.is-xuan { background: var(--gs-surface-4); color: var(--gs-text-1); font-weight: 600; }

/* 下拉 / 模型选择 */
.gs-xiala, .gs-mxl { position: relative; display: inline-flex; }
.gs-xiala-chufa, .gs-mxl-chufa {
  display: inline-flex; align-items: center; gap: var(--gs-sp-2);
  height: 2.143rem; padding: 0 var(--gs-sp-3);
  border: 1px solid var(--gs-border); border-radius: var(--gs-r-md);
  background: var(--gs-surface-2); color: var(--gs-text-2);
  font-size: var(--gs-fs-base); font-family: var(--gs-font); cursor: pointer;
  transition: border-color var(--gs-t-fast) var(--gs-ease), color var(--gs-t-fast) var(--gs-ease);
}
.gs-xiala-chufa:hover, .gs-mxl-chufa:hover { border-color: var(--gs-border-strong); color: var(--gs-text-1); }
.gs-mxl { width: 11rem; }
.gs-mxl-chufa { width: 100%; }
.gs-xiala-lie, .gs-mxl-lie {
  position: absolute; bottom: calc(100% + 6px); left: 0; z-index: 60;
  min-width: 100%; max-height: 16rem; overflow-y: auto;
  padding: var(--gs-sp-1); border: 1px solid var(--gs-border-strong);
  border-radius: var(--gs-r-md); background: var(--gs-surface-1);
  box-shadow: var(--gs-shadow-pop);
}
.gs-mxl-lie { min-width: 14rem; }
.gs-xiala-xiang, .gs-mxl-xiang {
  display: flex; align-items: center; gap: var(--gs-sp-2);
  width: 100%; padding: var(--gs-sp-2) var(--gs-sp-3);
  border: none; border-radius: var(--gs-r-sm);
  background: transparent; color: var(--gs-text-2);
  font-size: var(--gs-fs-base); font-family: var(--gs-font); text-align: left; cursor: pointer;
}
.gs-xiala-xiang:hover, .gs-mxl-xiang:hover { background: var(--gs-surface-3); color: var(--gs-text-1); }
.gs-xiala-xiang.is-xuan, .gs-mxl-xiang.is-xuan { color: var(--gs-accent-text); }
.gs-mxl-xiang .ico { color: var(--gs-text-3); flex-shrink: 0; }

/* 技能 */
.gs-gongju-jineng { position: relative; display: inline-flex; }
.gs-gongju-jineng.is-gaiguo .gs-gongju-xiang { padding-right: 2rem; }
.gs-gongju-qingchu {
  position: absolute; top: 50%; right: .35rem;
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.3rem; height: 1.3rem; border: none; border-radius: 50%;
  background: transparent; color: var(--gs-accent-text); cursor: pointer;
  transform: translateY(-50%);
}
.gs-gongju-qingchu:hover { background: rgba(var(--gs-accent-rgb), .2); }

/* ---------- 按钮 ---------- */
.gs-anniu {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--gs-sp-2);
  height: 2.6rem; padding: 0 var(--gs-sp-5);
  border: 1px solid var(--gs-accent); border-radius: var(--gs-r-full);
  background: var(--gs-accent); color: var(--gs-on-accent);
  font-size: var(--gs-fs-md); font-family: var(--gs-font); font-weight: 600;
  cursor: pointer; transition: transform var(--gs-t-fast) var(--gs-ease), box-shadow var(--gs-t-fast) var(--gs-ease), background var(--gs-t-fast) var(--gs-ease), opacity var(--gs-t-fast);
}
.gs-anniu:hover { transform: translateY(-1px); box-shadow: 0 8px 22px rgba(var(--gs-accent-rgb), .32); }
.gs-anniu:active { transform: translateY(0); }
.gs-anniu--ci {
  height: 2.143rem; padding: 0 var(--gs-sp-4);
  background: transparent; color: var(--gs-accent-text); border-color: var(--gs-accent-border);
}
.gs-anniu--ci:hover { background: var(--gs-accent-soft); box-shadow: none; }
.gs-anniu:disabled { opacity: .55; cursor: not-allowed; transform: none; box-shadow: none; }
.gs-anniu .zhuan { animation: gs-xuanzhuan .9s linear infinite; }

/* ---------- 教程卡 ---------- */
.gs-jc {
  display: grid; grid-template-columns: 11rem minmax(0, 1fr);
  gap: var(--gs-sp-6); align-items: center;
  margin: var(--gs-sp-4) 0 var(--gs-sp-8); padding: var(--gs-sp-5);
  border: 1px solid var(--gs-border); border-radius: var(--gs-r-xl);
  background: radial-gradient(80% 120% at 100% 0%, rgba(var(--gs-accent-2-rgb), .1), transparent 60%), var(--gs-surface-1);
}
.gs-jc-ka-bofang { position: relative; overflow: hidden; border-radius: var(--gs-r-lg); background: #000; cursor: pointer; box-shadow: 0 12px 30px rgba(0, 0, 0, .4); }
.gs-jc-ka-bofang video, .gs-jc-ka-bofang img { display: block; width: 100%; aspect-ratio: 9 / 16; object-fit: cover; }
.gs-jc-ka-bofang-an { position: absolute; right: 8px; bottom: 8px; display: inline-flex; padding: 6px; border-radius: 50%; background: var(--gs-mask); color: #fff; transition: transform var(--gs-t-fast) var(--gs-ease); }
.gs-jc-ka-bofang:hover .gs-jc-ka-bofang-an { transform: scale(1.12); }
.gs-jc-ka-wen { display: flex; flex-direction: column; gap: var(--gs-sp-3); min-width: 0; }
.gs-jc-ka-biaoqian {
  display: inline-flex; align-self: flex-start; align-items: center; gap: 4px;
  padding: 1px 10px; border-radius: var(--gs-r-full);
  background: var(--gs-accent-2-soft); color: var(--gs-accent-2-text);
  font-size: var(--gs-fs-xs);
}
.gs-jc-ka-wen h2 { margin: 0; font-family: var(--gs-font-display); font-size: var(--gs-fs-xl); font-weight: 600; color: var(--gs-text-1); }
.gs-jc-ka-wen p { margin: 0; font-size: var(--gs-fs-base); line-height: 1.7; color: var(--gs-text-2); }
.gs-jc-ka-zhen { display: flex; gap: var(--gs-sp-2); }
.gs-jc-ka-zhen img { width: 3.4rem; aspect-ratio: 9 / 16; border-radius: var(--gs-r-sm); object-fit: cover; background: var(--gs-img-holder); }
.gs-jc-ka-bu { display: flex; flex-wrap: wrap; gap: var(--gs-sp-1) var(--gs-sp-4); margin: 0; padding-left: 1.1rem; font-size: var(--gs-fs-sm); color: var(--gs-text-2); }
.gs-jc-ka-bu li { margin: 0; }
.gs-jc-ka-anniu { align-self: flex-start; }

/* ---------- 最近的故事 ---------- */
.gs-zuijin { margin-top: var(--gs-sp-12); }
.gs-zuijin-tou { display: flex; align-items: baseline; justify-content: space-between; gap: var(--gs-sp-4); margin-bottom: var(--gs-sp-4); }
.gs-zuijin-biaoti { margin: 0; font-family: var(--gs-font-display); font-size: var(--gs-fs-lg); font-weight: 600; letter-spacing: -.01em; color: var(--gs-text-1); }
.gs-zuijin-wangge { display: grid; grid-template-columns: repeat(auto-fill, minmax(12.5rem, 1fr)); gap: var(--gs-sp-4); }
.gs-zuijin-ka {
  display: flex; flex-direction: column; overflow: hidden;
  border: 1px solid var(--gs-border); border-radius: var(--gs-r-lg);
  background: var(--gs-surface-1); cursor: pointer;
  transition: border-color var(--gs-t-fast) var(--gs-ease), transform var(--gs-t-base) var(--gs-ease);
}
.gs-zuijin-ka:hover { border-color: var(--gs-border-active); transform: translateY(-2px); }
.gs-zuijin-feng { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 16 / 10; overflow: hidden; background: radial-gradient(circle at 25% 20%, rgba(var(--gs-accent-2-rgb), .22), transparent 60%), var(--gs-img-holder); }
.gs-zuijin-feng img { width: 100%; height: 100%; object-fit: cover; }
.gs-zuijin-xinxi { padding: var(--gs-sp-3); }
.gs-zuijin-ming { margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--gs-fs-base); font-weight: 600; color: var(--gs-text-1); }
/* 骨架占位 */
.gs-zuijin-zhanwei { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--gs-border); border-radius: var(--gs-r-lg); background: var(--gs-surface-1); }
.gs-zuijin-zhanwei-feng { display: flex; align-items: center; justify-content: center; aspect-ratio: 16 / 10; color: var(--gs-text-3); background: radial-gradient(circle at 30% 22%, rgba(var(--gs-accent-2-rgb), .18), transparent 62%), linear-gradient(160deg, var(--gs-surface-2), var(--gs-img-holder)); }
.gs-zuijin-zhanwei-xinxi { display: flex; flex-direction: column; justify-content: center; gap: var(--gs-sp-2); min-height: 4.15rem; padding: var(--gs-sp-3); }
.gs-zuijin-zhanwei-wen { margin: 0; font-size: var(--gs-fs-sm); line-height: 1.4; color: var(--gs-text-3); }
.gs-zuijin-zhanwei-tiao { height: .55rem; width: 62%; border-radius: var(--gs-r-full); background: var(--gs-surface-2); }
.gs-zuijin-zhanwei-tiao.is-duan { width: 36%; height: .42rem; }

/* ---------- 加载/思考遮罩 ---------- */
.gs-zhe {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--gs-sp-4);
  min-height: 20rem; color: var(--gs-text-2); font-size: var(--gs-fs-base);
}
.gs-juanpan { width: 2.4rem; height: 2.4rem; border: 2px solid var(--gs-border); border-top-color: var(--gs-accent); border-radius: 50%; animation: gs-xuanzhuan .9s linear infinite; }
.gs-cuowu { text-align: center; }
.gs-cuowu-biaoti { color: var(--gs-danger); font-size: var(--gs-fs-md); margin: 0 0 var(--gs-sp-2); }
.gs-cuowu-caozuo { display: flex; gap: var(--gs-sp-3); justify-content: center; }

/* ---------- 剧本结果 ---------- */
.gs-script-head h2 { margin: 0 0 var(--gs-sp-6); font-family: var(--gs-font-display); font-size: var(--gs-fs-lg); font-weight: 600; color: var(--gs-text-1); }
.gs-scene { padding: var(--gs-sp-4) 0; border-bottom: 1px solid var(--gs-border-faint); }
.gs-scene-sh { display: flex; gap: var(--gs-sp-3); align-items: baseline; }
.gs-scene-no { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: var(--gs-accent-soft); color: var(--gs-accent-text); font-size: var(--gs-fs-sm); font-weight: 700; }
.gs-scene-shot { color: var(--gs-text-1); font-size: var(--gs-fs-md); line-height: 1.75; }
.gs-scene-nv { margin: var(--gs-sp-2) 0 0 var(--gs-sp-7, 2.6rem); color: var(--gs-accent-2-text); font-size: var(--gs-fs-base); line-height: 1.7; }
.gs-scene-dl { margin: var(--gs-sp-1) 0 0 var(--gs-sp-7, 2.6rem); color: var(--gs-text-2); font-size: var(--gs-fs-base); line-height: 1.7; }
.gs-script-actions { display: flex; gap: var(--gs-sp-4); justify-content: center; margin-top: var(--gs-sp-8); }

/* ---------- 暗调模态 ---------- */
.gs-modal-mask { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; background: rgba(6,5,10,.7); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.gs-modal { width: min(34rem, calc(100% - 2rem)); max-height: 86vh; display: flex; flex-direction: column; border: 1px solid var(--gs-border-strong); border-radius: var(--gs-r-xl); background: var(--gs-surface-1); box-shadow: var(--gs-shadow-pop); }
.gs-modal-head { display: flex; align-items: center; justify-content: space-between; padding: var(--gs-sp-4) var(--gs-sp-5); border-bottom: 1px solid var(--gs-border-faint); }
.gs-modal-head h3 { margin: 0; font-family: var(--gs-font-display); font-size: var(--gs-fs-lg); font-weight: 600; color: var(--gs-text-1); }
.gs-modal-head .x { display: inline-flex; align-items: center; justify-content: center; width: 1.8rem; height: 1.8rem; border: none; border-radius: 50%; background: transparent; color: var(--gs-text-3); font-size: 1.2rem; cursor: pointer; }
.gs-modal-head .x:hover { color: var(--gs-text-1); background: var(--gs-surface-3); }
.gs-modal-body { padding: var(--gs-sp-5); overflow-y: auto; }
.gs-modal-foot { display: flex; justify-content: flex-end; gap: var(--gs-sp-3); padding: var(--gs-sp-4) var(--gs-sp-5); border-top: 1px solid var(--gs-border-faint); }

/* 列表选择 */
.gs-list { display: flex; flex-direction: column; gap: var(--gs-sp-1); }
.gs-list-xi { display: flex; align-items: center; justify-content: space-between; gap: var(--gs-sp-3); width: 100%; padding: var(--gs-sp-3); border: 1px solid transparent; border-radius: var(--gs-r-md); background: transparent; color: var(--gs-text-2); font-family: var(--gs-font); font-size: var(--gs-fs-base); text-align: left; cursor: pointer; }
.gs-list-xi:hover { background: var(--gs-surface-3); color: var(--gs-text-1); }
.gs-list-xi.sel { background: var(--gs-accent-soft); border-color: var(--gs-accent-border); color: var(--gs-accent-text); }
.gs-list-xi .nm { flex: 1; }
.gs-list-xi .dur { color: var(--gs-text-3); font-size: var(--gs-fs-sm); font-variant-numeric: tabular-nums; }
.gs-list-xi .hint { max-width: 55%; color: var(--gs-text-3); font-size: var(--gs-fs-sm); text-align: right; }
.gs-slider { display: flex; align-items: center; gap: var(--gs-sp-3); margin-top: var(--gs-sp-5); color: var(--gs-text-2); font-size: var(--gs-fs-base); }
.gs-slider input[type=range] { flex: 1; accent-color: var(--gs-accent); }

/* 风格网格 */
.gs-style-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gs-sp-3); }
.gs-style { padding: 0; border: none; background: transparent; cursor: pointer; text-align: center; }
.gs-style .pv { position: relative; aspect-ratio: 3/4; overflow: hidden; border: 1px solid var(--gs-border); border-radius: var(--gs-r-md); background: var(--gs-img-holder); transition: border-color var(--gs-t-fast), box-shadow var(--gs-t-fast); }
.gs-style .pv img, .gs-style .pv .ph { width: 100%; height: 100%; object-fit: cover; }
.gs-style:hover .pv { border-color: var(--gs-border-active); }
.gs-style.sel .pv { border-color: var(--gs-accent); box-shadow: var(--gs-glow-accent); }
.gs-style .nm { display: block; margin-top: var(--gs-sp-2); color: var(--gs-text-2); font-size: var(--gs-fs-sm); }
.gs-style.sel .nm { color: var(--gs-accent-text); }
.gs-style .tick { color: var(--gs-accent-text); margin-left: 4px; }

/* ---------- 关键帧 ---------- */
@keyframes gs-piaofu {
  0%, 100% { transform: translateZ(0) rotate(var(--gs-piao-r0, -3deg)); }
  50% { transform: translate3d(0, var(--gs-piao-y, -14px), 0) rotate(var(--gs-piao-r1, 3deg)); }
}
@keyframes gs-jinchang {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes gs-xuanzhuan { to { transform: rotate(360deg); } }
@keyframes gs-maichong { 0%, 100% { opacity: 1; } 50% { opacity: .3; } }

/* ---------- 响应式 ---------- */
@media (max-width: 1100px) {
  .gs-jc { grid-template-columns: 9rem minmax(0, 1fr); gap: var(--gs-sp-4); }
  .gs-mxl { width: 9rem; }
}
@media (max-width: 860px) {
  .gs-jc { grid-template-columns: 1fr; }
  .gs-jc-ka-bofang video, .gs-jc-ka-bofang img { aspect-ratio: 16 / 10; }
  .gs-shuruka-di { flex-wrap: wrap; }
  .gs-qishi-hero { width: 100%; opacity: .4; }
}

/* ============================================================
   项目制 4 阶段工作台（剧本/角色/生图/编辑）+ 历史项目抽屉
   1:1 对齐参考站 .gs-dinglan / .gs-buzhou / .cjz / .fjk / .gs-sltj
   ============================================================ */
.gs-pingtai{position:absolute;inset:0;display:flex;flex-direction:column;background:var(--gs-canvas);color:var(--gs-text-1);font-family:var(--gs-font);}
/* 顶栏 */
.gs-dinglan{flex:0 0 auto;display:flex;align-items:center;gap:var(--gs-sp-4);height:3.4rem;padding:0 var(--gs-sp-5);border-bottom:1px solid var(--gs-border);background:rgba(13,12,18,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:30;}
.gs-dinglan-zuo{display:flex;align-items:center;gap:var(--gs-sp-3);min-width:0;flex:1 1 0;}
.gs-dinglan-fan{display:inline-flex;align-items:center;justify-content:center;width:1.9rem;height:1.9rem;border:1px solid var(--gs-border);border-radius:50%;background:var(--gs-surface-2);color:var(--gs-text-2);cursor:pointer;flex-shrink:0;}
.gs-dinglan-fan:hover{color:var(--gs-accent-text);border-color:var(--gs-accent-border);}
.gs-dinglan-mingzi{display:flex;align-items:center;gap:var(--gs-sp-2);min-width:0;}
.gs-dinglan-tubiao{color:var(--gs-accent-text);flex-shrink:0;display:inline-flex;}
.gs-dinglan-mingzi-wen{font-family:var(--gs-font-display);font-size:var(--gs-fs-md);font-weight:600;color:var(--gs-text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:16rem;}
.gs-dinglan-zhong{flex:0 0 auto;display:flex;align-items:center;justify-content:center;}
.gs-buzhou{display:flex;align-items:center;gap:0;}
.gs-buzhou-xiang{display:flex;align-items:center;gap:var(--gs-sp-2);color:var(--gs-text-3);}
.gs-buzhou-xuhao{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:50%;border:1px solid var(--gs-border);background:var(--gs-surface-2);font-size:var(--gs-fs-xs);font-weight:700;color:var(--gs-text-3);}
.gs-buzhou-ming{font-size:var(--gs-fs-sm);white-space:nowrap;}
.gs-buzhou-xian{width:2.4rem;height:1px;background:var(--gs-border);margin:0 var(--gs-sp-3);}
.gs-buzhou-xiang.is-dangqian .gs-buzhou-xuhao{background:var(--gs-accent);border-color:var(--gs-accent);color:var(--gs-on-accent);}
.gs-buzhou-xiang.is-dangqian .gs-buzhou-ming{color:var(--gs-accent-text);font-weight:700;}
.gs-buzhou-xiang.is-wancheng .gs-buzhou-xuhao{background:var(--gs-accent-soft);border-color:var(--gs-accent-border);color:var(--gs-accent-text);}
.gs-buzhou-xiang.is-wancheng .gs-buzhou-ming{color:var(--gs-text-2);}
.gs-dinglan-you{flex:1 1 0;display:flex;align-items:center;justify-content:flex-end;gap:var(--gs-sp-4);}
.gs-dinglan-suanli{font-size:var(--gs-fs-sm);color:var(--gs-text-2);font-variant-numeric:tabular-nums;white-space:nowrap;}
.gs-dinglan-suanli b{color:var(--gs-accent-text);font-weight:700;}
.gs-dinglan-lishi{display:inline-flex;align-items:center;gap:6px;height:2.05rem;padding:0 var(--gs-sp-4);border:1px solid var(--gs-border);border-radius:var(--gs-r-full);background:var(--gs-surface-2);color:var(--gs-text-2);font-size:var(--gs-fs-sm);cursor:pointer;}
.gs-dinglan-lishi:hover{color:var(--gs-accent-text);border-color:var(--gs-accent-border);}
/* 工作台主体 */
.gs-gongzuotai{flex:1;min-height:0;overflow-y:auto;position:relative;}
.gs-gongzuotai-nei{width:min(72rem,calc(100% - 3rem));margin:0 auto;padding:var(--gs-sp-6) 0 var(--gs-sp-12);}
/* 场景分组 */
.jby{margin-bottom:var(--gs-sp-8);}
.jby-tou{display:flex;align-items:center;gap:var(--gs-sp-3);margin:0 0 var(--gs-sp-4);}
.jby-tou h3{margin:0;font-family:var(--gs-font-display);font-size:var(--gs-fs-lg);font-weight:600;color:var(--gs-text-1);}
.jby-tou .xian{flex:1;height:1px;background:linear-gradient(to right,var(--gs-border),transparent);}
.cjz{margin-bottom:var(--gs-sp-6);border:1px solid var(--gs-border);border-radius:var(--gs-r-xl);background:linear-gradient(180deg,var(--gs-surface-1),rgba(19,18,25,.4));overflow:hidden;}
.cjz-tou{display:flex;align-items:center;gap:var(--gs-sp-2);padding:var(--gs-sp-3) var(--gs-sp-4);border-bottom:1px solid var(--gs-border-faint);}
.cjz-biaoqian{display:inline-flex;align-items:center;justify-content:center;width:1.7rem;height:1.7rem;border-radius:var(--gs-r-sm);background:var(--gs-accent-soft);color:var(--gs-accent-text);flex-shrink:0;}
.cjz-mingcheng{font-family:var(--gs-font-display);font-size:var(--gs-fs-md);font-weight:600;color:var(--gs-text-1);}
.cjz-xian{flex:1;height:1px;background:var(--gs-border-faint);}
.cjz-shuliang{font-size:var(--gs-fs-xs);color:var(--gs-text-3);white-space:nowrap;}
.cjz-wangge{display:grid;grid-template-columns:repeat(auto-fill,minmax(20rem,1fr));gap:var(--gs-sp-3);padding:var(--gs-sp-4);}
/* 分镜卡 */
.fjk{display:flex;flex-direction:column;gap:var(--gs-sp-2);padding:var(--gs-sp-4);border:1px solid var(--gs-border);border-radius:var(--gs-r-lg);background:var(--gs-surface-1);transition:border-color var(--gs-t-fast) var(--gs-ease),transform var(--gs-t-base) var(--gs-ease);}
.fjk:hover{border-color:var(--gs-border-active);transform:translateY(-1px);}
.fjk-tou{display:flex;align-items:center;gap:var(--gs-sp-2);}
.fjk-xuhao{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;border-radius:50%;background:var(--gs-accent-2-soft);color:var(--gs-accent-2-text);font-size:var(--gs-fs-xs);font-weight:700;}
.fjk-biaoqian{font-size:var(--gs-fs-xs);color:var(--gs-text-3);padding:1px 8px;border-radius:var(--gs-r-full);background:var(--gs-surface-3);}
.fjk-zimu{font-size:var(--gs-fs-base);line-height:1.7;color:var(--gs-accent-2-text);}
.fjk-huamian{font-size:var(--gs-fs-sm);line-height:1.65;color:var(--gs-text-2);}
.fjk-duibai{font-size:var(--gs-fs-sm);line-height:1.6;color:var(--gs-text-2);}
.fjk-meiti{margin-top:var(--gs-sp-1);}
.fjk-meiti img,.fjk-meiti video{width:100%;border-radius:var(--gs-r-md);background:#000;display:block;}
.fjk-zhuangtai{display:inline-flex;align-items:center;gap:6px;font-size:var(--gs-fs-xs);color:var(--gs-text-3);}
.fjk-zhuangtai.is-ok{color:#5fd0a0;}
.fjk-zhuangtai.is-err{color:var(--gs-danger);}
/* 底部操作条 */
.gs-caozuo{display:flex;align-items:center;justify-content:center;gap:var(--gs-sp-4);margin-top:var(--gs-sp-8);flex-wrap:wrap;}
.gs-jindu{margin:var(--gs-sp-5) auto 0;max-width:40rem;text-align:center;}
.gs-jindu-t{font-size:var(--gs-fs-sm);color:var(--gs-text-2);margin-bottom:var(--gs-sp-2);}
.gs-jindu-tiao{height:6px;border-radius:999px;background:var(--gs-surface-3);overflow:hidden;}
.gs-jindu-tiao i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gs-accent),var(--gs-accent-2));transition:width .4s var(--gs-ease);}
.gs-chengpian{margin-top:var(--gs-sp-6);border:1px solid var(--gs-accent-border);border-radius:var(--gs-r-xl);background:var(--gs-accent-soft);padding:var(--gs-sp-5);}
.gs-chengpian video{width:100%;max-height:60vh;border-radius:var(--gs-r-lg);background:#000;display:block;}
/* 角色设定 */
.gs-juese{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:var(--gs-sp-3);}
.gs-juese-ka{display:flex;align-items:center;gap:var(--gs-sp-3);padding:var(--gs-sp-4);border:1px solid var(--gs-border);border-radius:var(--gs-r-lg);background:var(--gs-surface-1);}
.gs-juese-tou{width:2.6rem;height:2.6rem;border-radius:50%;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:var(--gs-accent-2-soft);color:var(--gs-accent-2-text);font-weight:700;}
.gs-juese-ming{font-size:var(--gs-fs-base);font-weight:600;color:var(--gs-text-1);}
.gs-juese-ci{font-size:var(--gs-fs-xs);color:var(--gs-text-3);}
/* 历史项目抽屉 */
.gs-sltj-zhe{position:absolute;inset:0;z-index:80;background:rgba(6,5,10,.5);opacity:0;pointer-events:none;transition:opacity .2s;}
.gs-sltj-zhe.is-kai{opacity:1;pointer-events:auto;}
.gs-sltj{position:absolute;top:0;right:0;bottom:0;z-index:90;width:min(26rem,90vw);display:flex;flex-direction:column;background:var(--gs-surface-1);border-left:1px solid var(--gs-border-strong);box-shadow:-24px 0 60px rgba(0,0,0,.5);transform:translateX(100%);transition:transform .26s var(--gs-ease);}
.gs-sltj.is-kai{transform:translateX(0);}
.gs-sltj-biaoti{display:flex;align-items:center;justify-content:space-between;padding:var(--gs-sp-4) var(--gs-sp-5);border-bottom:1px solid var(--gs-border-faint);}
.gs-sltj-biaoti h3{margin:0;font-family:var(--gs-font-display);font-size:var(--gs-fs-lg);font-weight:600;color:var(--gs-text-1);}
.gs-sltj-biaoti .x{display:inline-flex;align-items:center;justify-content:center;width:1.8rem;height:1.8rem;border:none;border-radius:50%;background:transparent;color:var(--gs-text-3);cursor:pointer;}
.gs-sltj-biaoti .x:hover{color:var(--gs-text-1);background:var(--gs-surface-3);}
.gs-sltj-heji{font-size:var(--gs-fs-xs);color:var(--gs-text-3);padding:var(--gs-sp-2) var(--gs-sp-5);}
.gs-sltj-mianban{flex:1;min-height:0;overflow-y:auto;padding:var(--gs-sp-2) var(--gs-sp-4) var(--gs-sp-4);display:flex;flex-direction:column;gap:var(--gs-sp-3);}
.gs-sltj-xin{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:2.4rem;border:1px solid var(--gs-accent);border-radius:var(--gs-r-full);background:var(--gs-accent);color:var(--gs-on-accent);font-weight:600;font-size:var(--gs-fs-base);cursor:pointer;}
.gs-sltj-xin:hover{box-shadow:0 6px 18px rgba(var(--gs-accent-rgb),.3);}
.gs-sltj-shu{position:relative;display:flex;gap:var(--gs-sp-3);padding:var(--gs-sp-4);border:1px solid var(--gs-border);border-radius:var(--gs-r-lg);background:var(--gs-surface-2);cursor:pointer;text-align:left;}
.gs-sltj-shu:hover{border-color:var(--gs-border-active);}
.gs-sltj-shu.is-dangqian{border-color:var(--gs-accent-border);background:var(--gs-accent-soft);}
.gs-sltj-shu-tu{width:3rem;height:3rem;border-radius:var(--gs-r-md);flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:var(--gs-accent-2-soft);color:var(--gs-accent-2-text);}
.gs-sltj-shu-xin{flex:1;min-width:0;}
.gs-sltj-shu-ming{font-size:var(--gs-fs-base);font-weight:600;color:var(--gs-text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gs-sltj-shu-ci{font-size:var(--gs-fs-xs);color:var(--gs-text-3);margin-top:3px;}
.gs-sltj-shu-jiao{position:absolute;top:8px;right:8px;font-size:var(--gs-fs-xs);color:var(--gs-accent-text);}
.gs-sltj-shu-shan{position:absolute;bottom:8px;right:8px;border:none;background:transparent;color:var(--gs-text-3);cursor:pointer;font-size:var(--gs-fs-sm);}
.gs-sltj-shu-shan:hover{color:var(--gs-danger);}
.gs-sltj-kong{text-align:center;color:var(--gs-text-3);font-size:var(--gs-fs-sm);padding:var(--gs-sp-8) 0;}
@media (max-width:900px){
  .gs-buzhou-xian{width:1.2rem;} .gs-buzhou-ming{display:none;}
  .gs-gongzuotai-nei{width:calc(100% - 1.5rem);}
  .cjz-wangge{grid-template-columns:1fr;}
}

/* 覆盖 agent-fx.css 把 .gs-zhuke 强制 position:relative 导致的高度塌陷：
   让故事工作台在 #agentWorkspace 内以 flex 撑满整屏（起始页/项目台通用） */
#chatThread.ws-chat > #agentWorkspace:has(.gs-zhuke){ flex:1 1 auto!important; min-height:0!important; display:flex; flex-direction:column; overflow:hidden!important; }
#agentWorkspace:has(.gs-zhuke){ padding:0!important; }
#agentWorkspace .gs-zhuke{ position:relative!important; inset:auto!important; flex:1 1 auto!important; min-height:0!important; height:auto!important; display:flex; flex-direction:column; }
.gs-zhuke > .gs-pingtai{ position:relative!important; inset:auto!important; flex:1 1 auto!important; min-height:0!important; height:auto!important; }
.gs-zhuke > .gs-qishi{ flex:1 1 auto!important; min-height:0!important; }

/* ============================================================
   编辑与成片 · 三栏工作台（1:1 对齐参考站）
   ============================================================ */
.gs-edit{display:flex;flex-direction:column;gap:var(--gs-sp-4);}
.gs-edit-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--gs-sp-4);flex-wrap:wrap;}
.gs-edit-head h2{margin:0;font-family:var(--gs-font-display);font-size:var(--gs-fs-xl);font-weight:600;color:var(--gs-text-1);}
.gs-edit-head p{margin:6px 0 0;color:var(--gs-text-2);font-size:var(--gs-fs-base);}
.gs-edit-head-r{display:flex;align-items:center;gap:var(--gs-sp-2);}
.gs-edit-bgm{position:relative;display:inline-flex;align-items:center;gap:6px;background:var(--gs-surface-2);border:1px solid var(--gs-border);color:var(--gs-text-2);border-radius:var(--gs-r-full);padding:9px 14px;font-size:var(--gs-fs-base);cursor:pointer;transition:border-color .18s var(--gs-ease);}
.gs-edit-bgm:hover{border-color:var(--gs-border-active);color:var(--gs-text-1);}
.gs-edit-bgm b{color:var(--gs-text-1);font-weight:600;}
.gs-edit-bgm .gs-ico{font-size:.9rem;}
.gs-edit-bgm .gs-caret{font-size:.6rem;opacity:.7;}
.gs-edit-sheng{background:linear-gradient(135deg,var(--gs-accent),#F0A02E);color:var(--gs-on-accent);border:none;border-radius:var(--gs-r-full);padding:10px 20px;font-weight:700;font-size:var(--gs-fs-md);cursor:pointer;box-shadow:var(--gs-glow-accent);transition:transform .15s var(--gs-ease),filter .15s;}
.gs-edit-sheng:hover{transform:translateY(-1px);filter:brightness(1.05);}
.gs-edit-sheng:disabled{opacity:.6;cursor:not-allowed;transform:none;}
.gs-edit-dan{position:absolute;top:calc(100% + 6px);right:0;min-width:150px;background:var(--gs-surface-3);border:1px solid var(--gs-border-strong);border-radius:var(--gs-r-md);box-shadow:var(--gs-shadow-pop);padding:6px;z-index:60;display:flex;flex-direction:column;}
.gs-edit-dan-xiang{background:transparent;border:none;color:var(--gs-text-2);text-align:left;padding:8px 10px;border-radius:var(--gs-r-sm);font-size:var(--gs-fs-base);cursor:pointer;}
.gs-edit-dan-xiang:hover{background:var(--gs-surface-4);color:var(--gs-text-1);}
.gs-edit-dan-xiang.is-xuan{color:var(--gs-accent-text);background:var(--gs-accent-soft);}

.gs-edit-grid{display:grid;grid-template-columns:minmax(0,1fr) 372px;gap:var(--gs-sp-4);align-items:start;}
.gs-edit-zhu{display:flex;flex-direction:column;align-items:center;gap:var(--gs-sp-3);min-width:0;}
.gs-edit-hua{position:relative;width:100%;max-width:340px;aspect-ratio:9/16;background:#000;border-radius:var(--gs-r-lg);overflow:hidden;border:1px solid var(--gs-border);box-shadow:var(--gs-shadow-pop);}
.gs-edit-hua.is-heng{max-width:560px;aspect-ratio:16/9;}
.gs-edit-hua video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000;}
.gs-edit-badge{position:absolute;top:10px;left:10px;z-index:3;display:flex;align-items:center;gap:6px;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);border-radius:var(--gs-r-full);padding:5px 10px;font-size:var(--gs-fs-xs);color:#fff;}
.gs-edit-badge-dt{color:#9FE6B8;font-weight:600;}
.gs-edit-bofang{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;width:60px;height:60px;border-radius:50%;border:none;background:rgba(245,176,66,.92);color:#2A1A02;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 30px rgba(245,176,66,.4);transition:transform .15s;}
.gs-edit-bofang:hover{transform:translate(-50%,-50%) scale(1.06);}
.gs-edit-zimu{position:absolute;left:0;right:0;z-index:2;text-align:center;font-weight:700;line-height:1.4;pointer-events:none;padding:0 14px;word-break:break-word;}
.gs-edit-zimu.is-xia{bottom:7%;}
.gs-edit-zimu.is-zhong{top:50%;transform:translateY(-50%);}
.gs-edit-zimu.is-shang{top:6%;}

.gs-edit-bofangtiao{display:flex;align-items:center;gap:var(--gs-sp-2);width:100%;max-width:560px;}
.gs-edit-kk{width:34px;height:34px;border-radius:50%;border:1px solid var(--gs-border);background:var(--gs-surface-2);color:var(--gs-text-2);display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none;}
.gs-edit-kk:hover{color:var(--gs-text-1);border-color:var(--gs-border-active);}
.gs-edit-kk--yuan{color:var(--gs-accent-text);border-color:var(--gs-accent-border);background:var(--gs-accent-soft);}
.gs-edit-time{font-size:var(--gs-fs-xs);color:var(--gs-text-3);font-variant-numeric:tabular-nums;}
.gs-edit-jindu{flex:1;height:4px;border-radius:999px;background:var(--gs-surface-4);overflow:hidden;}
.gs-edit-jindu i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gs-accent),var(--gs-accent-2));border-radius:999px;}
.gs-edit-fen{display:flex;gap:var(--gs-sp-2);overflow-x:auto;padding:4px 2px;width:100%;max-width:560px;}
.gs-edit-fen-ka{position:relative;flex:none;width:64px;cursor:pointer;border-radius:var(--gs-r-sm);overflow:hidden;border:2px solid transparent;opacity:.6;transition:opacity .15s,border-color .15s;}
.gs-edit-fen-ka.is-xuan{opacity:1;border-color:var(--gs-accent);}
.gs-edit-fen-ka img{display:block;width:100%;height:88px;object-fit:cover;background:var(--gs-img-holder);}
.gs-edit-fen-ka.is-heng img{height:40px;}
.gs-edit-fen-xu{position:absolute;top:3px;left:3px;background:rgba(0,0,0,.6);color:#fff;font-size:10px;border-radius:50%;width:16px;height:16px;display:flex;align-items:center;justify-content:center;}
.gs-edit-fen-miao{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.75));color:#fff;font-size:10px;text-align:center;padding:8px 0 2px;}
.gs-edit-zhushi{font-size:var(--gs-fs-xs);color:var(--gs-text-3);text-align:center;}

.gs-edit-you{display:flex;flex-direction:column;gap:var(--gs-sp-3);min-width:0;}
.gs-edit-ka{background:var(--gs-surface-1);border:1px solid var(--gs-border);border-radius:var(--gs-r-lg);padding:var(--gs-sp-3);}
.gs-edit-ka-tou{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--gs-sp-2);}
.gs-edit-ka-tou b{font-size:var(--gs-fs-md);font-weight:600;color:var(--gs-text-1);}
.gs-edit-ka-meta{font-size:var(--gs-fs-xs);color:var(--gs-text-3);margin-bottom:var(--gs-sp-2);}
.gs-edit-wancheng{font-size:var(--gs-fs-xs);color:#2A1A02;background:var(--gs-accent);border-radius:var(--gs-r-full);padding:3px 10px;font-weight:700;}
.gs-edit-wancheng.is-dai{background:var(--gs-surface-4);color:var(--gs-text-3);}
.gs-edit-chengpian{background:#000;border-radius:var(--gs-r-md);overflow:hidden;min-height:90px;display:flex;align-items:center;justify-content:center;}
.gs-edit-chengpian-v{width:100%;display:block;max-height:320px;}
.gs-edit-weizhi{color:var(--gs-text-3);font-size:var(--gs-fs-sm);padding:18px 14px;text-align:center;}
.gs-edit-san{display:flex;gap:8px;margin-top:var(--gs-sp-2);}
.gs-edit-anniu{flex:1;background:var(--gs-surface-3);border:1px solid var(--gs-border);color:var(--gs-text-1);border-radius:var(--gs-r-md);padding:8px 10px;font-size:var(--gs-fs-sm);cursor:pointer;text-decoration:none;text-align:center;display:inline-flex;align-items:center;justify-content:center;gap:4px;}
.gs-edit-anniu:hover{border-color:var(--gs-border-active);}
.gs-edit-anniu--xian{background:transparent;color:var(--gs-text-2);}
.gs-edit-lishi-tou{margin-top:var(--gs-sp-2);background:transparent;border:none;color:var(--gs-text-3);font-size:var(--gs-fs-sm);cursor:pointer;}
.gs-edit-lishi{display:none;flex-direction:column;gap:8px;margin-top:8px;}
.gs-edit-lishi.is-kai{display:flex;}
.gs-edit-lishi-kong{color:var(--gs-text-3);font-size:var(--gs-fs-xs);}
.gs-edit-lishi-ka{position:relative;border-radius:var(--gs-r-sm);overflow:hidden;border:1px solid var(--gs-border);}
.gs-edit-lishi-ka video{width:100%;display:block;max-height:150px;}
.gs-edit-lishi-ka .gs-edit-anniu{position:absolute;right:6px;bottom:6px;flex:none;padding:4px 10px;}

.gs-edit-xiugai{background:transparent;border:1px solid var(--gs-border);color:var(--gs-text-2);border-radius:var(--gs-r-full);padding:3px 10px;font-size:var(--gs-fs-xs);cursor:pointer;}
.gs-edit-xiugai:hover{color:var(--gs-text-1);border-color:var(--gs-border-active);}
.gs-edit-peiyin{display:flex;flex-direction:column;gap:8px;}
.gs-edit-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:var(--gs-fs-sm);}
.gs-edit-row-l{color:var(--gs-text-2);flex:none;}
.gs-edit-row-r{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap;}
.gs-edit-select{background:var(--gs-surface-3);border:1px solid var(--gs-border);color:var(--gs-text-1);border-radius:var(--gs-r-sm);padding:6px 8px;font-size:var(--gs-fs-sm);max-width:180px;}
.gs-edit-lvb{font-size:var(--gs-fs-xs);color:#9FE6B8;background:rgba(80,200,120,.12);border:1px solid rgba(80,200,120,.3);border-radius:var(--gs-r-sm);padding:7px 10px;margin-top:8px;}
.gs-edit-lvb.is-hui{color:var(--gs-text-3);background:var(--gs-surface-2);border-color:var(--gs-border);}
.gs-edit-huang{font-size:var(--gs-fs-xs);color:#FFD27A;background:rgba(245,176,66,.1);border:1px solid rgba(245,176,66,.3);border-radius:var(--gs-r-sm);padding:7px 10px;margin-top:8px;}
.gs-edit-zimu-she{display:flex;flex-direction:column;gap:10px;}
.gs-edit-tishi{font-size:var(--gs-fs-xs);color:var(--gs-text-3);}
.gs-edit-seg{display:inline-flex;background:var(--gs-surface-3);border:1px solid var(--gs-border);border-radius:var(--gs-r-sm);overflow:hidden;}
.gs-edit-seg-xiang{background:transparent;border:none;color:var(--gs-text-2);font-size:var(--gs-fs-xs);padding:5px 9px;cursor:pointer;}
.gs-edit-seg-xiang.is-xuan{background:var(--gs-accent);color:var(--gs-on-accent);font-weight:600;}
.gs-edit-row-r input[type=color]{width:30px;height:24px;padding:0;border:1px solid var(--gs-border);background:transparent;border-radius:4px;cursor:pointer;}
.gs-edit-row-r input[type=range]{width:110px;accent-color:var(--gs-accent);}
.gs-edit-kuandu{font-size:var(--gs-fs-xs);color:var(--gs-text-2);min-width:12px;}
.gs-edit-switch{width:38px;height:22px;border-radius:999px;background:var(--gs-surface-4);border:none;position:relative;cursor:pointer;transition:background .18s;}
.gs-edit-switch span{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .18s;}
.gs-edit-switch.is-kai{background:var(--gs-accent);}
.gs-edit-switch.is-kai span{left:19px;}
.gs-edit-huifu{align-self:flex-start;background:transparent;border:1px solid var(--gs-border);color:var(--gs-text-2);border-radius:var(--gs-r-sm);padding:6px 12px;font-size:var(--gs-fs-xs);cursor:pointer;}
.gs-edit-huifu:hover{color:var(--gs-text-1);border-color:var(--gs-border-active);}

/* 修改配音（卡头按钮）与配音就绪/警告 —— 对齐参考站 */
.gs-edit-xiugai{display:inline-flex;align-items:center;gap:5px;position:relative;white-space:nowrap;}
.gs-edit-xiugai svg{flex:none;}
.gs-edit-peiyin{gap:10px;}
.gs-edit-lvb{display:flex;align-items:flex-start;gap:8px;margin-top:0;color:#62d08a;background:rgba(80,200,120,.12);border-color:rgba(80,200,120,.32);}
.gs-edit-lvb svg{flex:none;margin-top:1px;}
.gs-edit-lvb.is-hui{color:var(--gs-text-3);background:var(--gs-surface-2);border-color:var(--gs-border);}
.gs-edit-huang{display:none;align-items:flex-start;gap:8px;margin-top:0;color:#FFD27A;background:rgba(245,176,66,.12);border-color:rgba(245,176,66,.34);}
.gs-edit-huang.is-jinggao{display:flex;}
.gs-edit-huang svg{flex:none;margin-top:1px;}

/* 字幕色板 —— 对齐参考站 gs-bj-zm-sekuai */
.gs-edit-row-r .gs-edit-sekuai{justify-content:flex-end;}
.gs-edit-sekuai{display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.gs-edit-se{width:26px;height:26px;border-radius:50%;border:1px solid rgba(255,255,255,.15);cursor:pointer;position:relative;padding:0;display:inline-flex;align-items:center;justify-content:center;color:var(--gs-text-2);}
.gs-edit-se.is-xuan{box-shadow:0 0 0 2px var(--gs-bg-1,#111318),0 0 0 4px var(--gs-accent,#F5B041);}
.gs-edit-se--zidingyi{background:conic-gradient(from 0deg,#ff5f5f,#ffd24b,#7ee07a,#61b7ff,#b78bff,#ff5f5f);border:none;overflow:hidden;}
.gs-edit-se-palette{display:inline-flex;align-items:center;justify-content:center;color:#fff;filter:drop-shadow(0 0 1px rgba(0,0,0,.6));}
.gs-edit-se-shuru{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:none;padding:0;}

/* 描边粗细滑块 */
.gs-edit-huakuai{display:flex;align-items:center;gap:10px;width:100%;}
.gs-edit-huakuai input[type=range]{flex:1;accent-color:var(--gs-accent);}
.gs-edit-zimu-di{display:flex;justify-content:flex-end;margin-top:2px;}

@media (max-width:900px){
  .gs-edit-grid{grid-template-columns:1fr;}
  .gs-edit-hua{max-width:300px;}
  .gs-edit-hua.is-heng{max-width:100%;}
}

/* ============================================================
   全屏视频引擎（故事转视频 / 音乐MV / 数字人 / 复刻爆款）
   单一近黑画布、紧贴侧栏、无顶栏、无科技网格 —— 1:1 对齐参考站
   ============================================================ */
body.engine-full-bleed .ws-main {
  background: #0B0A10 !important;
  padding: 0 !important;
}
body.engine-full-bleed .ws-main > #agGlobalFx.ag-bgfx-global { display: none !important; }
body.engine-full-bleed .s2-beijing { display: none !important; }
body.engine-full-bleed .ws-topbar,
body.engine-full-bleed .tb-agent-stack { display: none !important; }
body.engine-full-bleed .s2-studio-body {
  flex: 1 1 auto !important;
  height: 100%;
  min-height: 0;
  margin: 0 !important;
  padding: 0 !important;
}
body.engine-full-bleed #chatThread.ws-chat {
  padding: 0 !important;
  height: 100%;
  min-height: 0;
}
body.engine-full-bleed #agentWorkspace {
  padding: 0 !important;
  max-width: none !important;
  margin: 0 !important;
}
body.engine-full-bleed .ws-composer { display: none !important; }

/* ============================================================
   落地页作曲器 1:1（两行控件 + 风格/配音/时长/脚本技能/模型弹层）
   ============================================================ */
/* 弹窗挂到 body 下（.gs-zhuke 之外），在 :root 兜底整套 --gs-* 变量 */
:root {
  --gs-canvas: #0B0A10;
  --gs-text-1: rgba(255, 250, 242, .93);
  --gs-text-2: rgba(255, 250, 242, .62);
  --gs-text-3: rgba(255, 250, 242, .4);
  --gs-surface-1: #131219;
  --gs-surface-2: #19171F;
  --gs-surface-3: #201E28;
  --gs-surface-4: #292632;
  --gs-border: rgba(255, 255, 255, .09);
  --gs-border-strong: rgba(255, 255, 255, .15);
  --gs-border-faint: rgba(255, 255, 255, .05);
  --gs-border-active: rgba(255, 255, 255, .24);
  --gs-accent: #F5B042;
  --gs-accent-rgb: 245, 176, 66;
  --gs-accent-text: #FFC766;
  --gs-accent-soft: rgba(245, 176, 66, .12);
  --gs-accent-border: rgba(245, 176, 66, .45);
  --gs-accent-2-rgb: 150, 128, 255;
  --gs-accent-2: #9680FF;
  --gs-accent-2-text: #B6A6FF;
  --gs-accent-2-soft: rgba(150, 128, 255, .14);
  --gs-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --gs-font-display: "Noto Serif SC", "Songti SC", "STSong", "Source Han Serif SC", serif;
  --gs-fs-xs: .655rem;
  --gs-fs-sm: .714rem;
  --gs-fs-base: .804rem;
  --gs-fs-md: .893rem;
  --gs-fs-lg: 1.071rem;
  --gs-sp-1: .238rem;
  --gs-sp-2: .476rem;
  --gs-sp-3: .714rem;
  --gs-sp-4: .952rem;
  --gs-sp-5: 1.19rem;
  --gs-sp-6: 1.429rem;
  --gs-sp-8: 1.905rem;
  --gs-sp-10: 2.381rem;
  --gs-sp-12: 2.857rem;
  --gs-r-sm: .357rem;
  --gs-r-md: .595rem;
  --gs-r-lg: .833rem;
  --gs-r-xl: 1.19rem;
  --gs-r-full: 999px;
  --gs-glass-bg: rgba(19, 18, 25, .82);
  --gs-img-holder: #17151D;
  --gs-danger: #FF7A7A;
  --gs-on-accent: #2A1A02;
  --gs-t-fast: .12s;
  --gs-t-base: .18s;
  --gs-t-slow: .26s;
  --gs-ease: cubic-bezier(.22, 1, .36, 1);
  --gs-ease-inout: cubic-bezier(.65, 0, .35, 1);
  --gs-shadow-pop: 0 12px 40px rgba(0, 0, 0, .55), 0 2px 10px rgba(0, 0, 0, .35);
  --gs-glow-accent: 0 0 0 1px rgba(245, 176, 66, .35), 0 8px 28px rgba(245, 176, 66, .18);
  --gs-mask: rgba(6, 5, 10, .62);
}
.gs-shuruka-linggan { display:inline-flex; align-items:center; gap:4px; border:none; background:transparent; padding:0; cursor:pointer; font-size:var(--gs-fs-xs); color:var(--gs-accent-text); }
.gs-shuruka-gongju { display:flex; flex-direction:column; gap:var(--gs-sp-2); }
.gs-gongju-hang { width:100%; row-gap:var(--gs-sp-2); }
.gs-gongju-hang2 { width:100%; }
.fx-shu { font-weight:700; }
.fx-kuang { font-size:.92em; opacity:.7; }
.gs-mxl-arrow { margin-left:2px; color:var(--gs-text-3); font-size:.8em; }
.gs-mxl-xiang { align-items:flex-start; }
.gs-mxl-xiang .mxl-wen { display:flex; flex-direction:column; gap:2px; min-width:0; }
.gs-mxl-xiang .mxl-name { font-size:var(--gs-fs-base); color:var(--gs-text-1); white-space:nowrap; }
.gs-mxl-xiang .mxl-desc { font-size:var(--gs-fs-xs); color:var(--gs-text-3); line-height:1.4; white-space:normal; }
.gs-mxl-xiang.is-xuan .mxl-name { color:var(--gs-accent-text); }
.gs-anniu--zhu { background:var(--gs-accent); border-color:var(--gs-accent); color:var(--gs-on-accent); }

/* 弹层通用 */
.gs-modal--wide { width:min(52rem, calc(100% - 2rem)); }
.gs-modal--voice { width:min(30rem, calc(100% - 2rem)); }
.gs-modal--skill { width:min(75rem, calc(100% - 2rem)); }
.gs-modal-deco { margin-left:auto; font-size:1.1rem; letter-spacing:2px; }
.gs-modal-head .x { margin-left:var(--gs-sp-3); }
.gs-modal-foot--between { display:flex; align-items:center; justify-content:space-between; }
.gs-modal-sub { margin:0 0 var(--gs-sp-4); font-size:var(--gs-fs-sm); color:var(--gs-text-3); }
.gs-bgm-sec { margin:var(--gs-sp-4) 0 var(--gs-sp-2); font-size:var(--gs-fs-md); font-weight:600; color:var(--gs-text-1); display:flex; align-items:center; gap:6px; }
.gs-bgm-hint { margin:0 0 var(--gs-sp-3); font-size:var(--gs-fs-xs); color:var(--gs-text-3); }

/* 风格新增卡 */
.gs-style .pv-tick { position:absolute; top:6px; right:6px; width:1.3rem; height:1.3rem; display:flex; align-items:center; justify-content:center; border-radius:50%; background:var(--gs-accent); color:var(--gs-on-accent); font-size:.72rem; font-weight:700; }
.gs-style-add { display:flex; align-items:center; justify-content:center; aspect-ratio:3/4; border:1px dashed var(--gs-border-strong); border-radius:var(--gs-r-md); background:transparent; color:var(--gs-text-3); }
.gs-style-add .plus { font-size:2rem; line-height:1; }

/* 配音与音乐（对齐参考站横卡） */
.gs-voice-row { display:flex; align-items:center; gap:var(--gs-sp-3); padding:var(--gs-sp-3); border:1px solid var(--gs-border); border-radius:var(--gs-r-md); background:var(--gs-surface-2); }
.gs-voice-avatar { width:2.4rem; height:2.4rem; flex-shrink:0; border-radius:50%; overflow:hidden; display:flex; align-items:center; justify-content:center; background:var(--gs-surface-3); }
.gs-voice-avatar img { width:100%; height:100%; object-fit:cover; }
.gs-voice-info { flex:1; min-width:0; }
.gs-voice-name { font-size:var(--gs-fs-base); font-weight:600; color:var(--gs-text-1); }
.gs-voice-tag { font-size:var(--gs-fs-xs); color:var(--gs-text-3); }
.gs-voice-row .gs-voice-play { width:2.2rem; height:2.2rem; flex-shrink:0; border-radius:50%; border:1px solid var(--gs-border); background:var(--gs-surface-3); color:var(--gs-text-2); cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:.7rem; }
.gs-bgm-cats { display:flex; flex-wrap:wrap; gap:var(--gs-sp-2); margin-bottom:var(--gs-sp-3); }
.gs-bgm-cat { padding:5px 12px; border:1px solid var(--gs-border); border-radius:var(--gs-r-full); background:var(--gs-surface-2); color:var(--gs-text-2); font-size:var(--gs-fs-xs); cursor:pointer; white-space:nowrap; }
.gs-bgm-cat:hover { border-color:var(--gs-border-strong); color:var(--gs-text-1); }
.gs-bgm-cat.sel { border-color:var(--gs-accent-border); background:var(--gs-accent-soft); color:var(--gs-accent-text); }
.gs-bgm-scroll { max-height:18rem; overflow-y:auto; overflow-x:hidden; padding-right:4px; }
.gs-bgm-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.gs-yyl-ka { position:relative; display:flex; align-items:center; gap:10px; padding:8px 12px 8px 8px; border:1px solid var(--gs-border); border-radius:10px; background:var(--gs-surface-2); cursor:pointer; text-align:left; min-height:3.8rem; }
.gs-yyl-ka:hover { border-color:var(--gs-border-strong); }
.gs-yyl-ka.is-xuan { border-color:var(--gs-accent); background:var(--gs-accent-soft); }
.gs-yyl-feng { position:relative; width:2.8rem; height:2.8rem; flex-shrink:0; border-radius:8px; overflow:hidden; display:flex; align-items:center; justify-content:center; background:var(--gs-surface-3); }
.gs-yyl-feng img { width:100%; height:100%; object-fit:cover; }
.gs-yyl-feng.is-wu { background:var(--gs-surface-3); color:var(--gs-text-3); }
.gs-yyl-feng .yyl-muted { width:16px; height:16px; display:block; background:currentColor; -webkit-mask:center/contain no-repeat; mask:center/contain no-repeat; }
.gs-yyl-feng .gs-yyl-play { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#fff; background:rgba(6,5,10,.42); font-size:.75rem; opacity:0; transition:opacity .15s; }
.gs-yyl-ka:hover .gs-yyl-play { opacity:1; }
.gs-yyl-meta { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.gs-yyl-ming { font-size:var(--gs-fs-sm); color:var(--gs-text-1); font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.gs-yyl-du { font-size:var(--gs-fs-xs); color:var(--gs-text-3); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.gs-yyl-tick { color:var(--gs-accent); font-weight:700; font-size:.9rem; opacity:0; flex-shrink:0; }
.gs-yyl-ka.is-xuan .gs-yyl-tick { opacity:1; }
.gs-vol-row { display:flex; align-items:center; gap:var(--gs-sp-3); margin-top:var(--gs-sp-4); }
.gs-vol-lab { font-size:var(--gs-fs-sm); color:var(--gs-text-2); display:flex; align-items:center; gap:6px; }
.gs-vol-range { flex:1; accent-color:var(--gs-accent); }
.gs-vol-num { font-size:var(--gs-fs-sm); color:var(--gs-text-1); width:2.2rem; text-align:right; }

/* 视频时长 */
.gs-dur-list { display:flex; flex-direction:column; gap:var(--gs-sp-2); }
.gs-dur-row { display:flex; align-items:flex-start; gap:var(--gs-sp-3); width:100%; padding:var(--gs-sp-3) var(--gs-sp-4); border:1px solid var(--gs-border); border-radius:var(--gs-r-md); background:var(--gs-surface-2); cursor:pointer; text-align:left; }
.gs-dur-row:hover { border-color:var(--gs-border-active); }
.gs-dur-row.sel { border-color:var(--gs-accent-border); background:var(--gs-accent-soft); }
.gs-dur-radio { color:var(--gs-text-3); flex-shrink:0; line-height:1.5; }
.gs-dur-row.sel .gs-dur-radio { color:var(--gs-accent-text); }
.gs-dur-txt { display:flex; flex-direction:column; gap:3px; }
.gs-dur-name { font-size:var(--gs-fs-base); font-weight:600; color:var(--gs-text-1); }
.gs-dur-desc { font-size:var(--gs-fs-xs); color:var(--gs-text-3); }
.gs-dur-custom-body { display:flex; flex-wrap:wrap; gap:var(--gs-sp-3); margin-top:6px; }
.gs-dur-field { display:inline-flex; align-items:center; gap:6px; font-size:var(--gs-fs-xs); color:var(--gs-text-2); }
.gs-dur-num { width:4.2rem; height:1.9rem; padding:0 6px; border:1px solid var(--gs-border); border-radius:var(--gs-r-sm); background:var(--gs-surface-1); color:var(--gs-text-1); font-size:var(--gs-fs-sm); }
.gs-dur-rule { margin:var(--gs-sp-4) 0 4px; font-size:var(--gs-fs-xs); color:var(--gs-text-2); }
.gs-dur-tip { margin:0; font-size:var(--gs-fs-xs); color:var(--gs-text-3); }

/* 脚本技能（对齐参考站：5 列、卡片封面 3:2、描述 2 行） */
.gs-skill-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:16px; }
.gs-skill-card { display:flex; flex-direction:column; gap:0; padding:0; border:1px solid var(--gs-border); border-radius:14px; background:var(--gs-surface-2); cursor:pointer; overflow:hidden; text-align:left; }
.gs-skill-card:hover { border-color:var(--gs-border-active); }
.gs-skill-card.sel { border-color:var(--gs-accent); box-shadow:0 0 0 1px var(--gs-accent); }
.gs-skill-card .skill-cover { position:relative; aspect-ratio:3/2; overflow:hidden; background:var(--gs-img-holder); }
.gs-skill-card .skill-cover img { width:100%; height:100%; object-fit:cover; }
.gs-skill-card .skill-apply { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(6,5,10,.5); color:#fff; font-size:var(--gs-fs-sm); opacity:0; transition:opacity .18s; }
.gs-skill-card:hover .skill-apply { opacity:1; }
.gs-skill-card .skill-name { font-size:var(--gs-fs-md); font-weight:600; color:var(--gs-text-1); padding:10px 12px 0; }
.gs-skill-card .skill-desc { font-size:12px; color:var(--gs-text-3); line-height:1.6; padding:4px 12px 12px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.gs-skill-foot { font-size:var(--gs-fs-xs); color:var(--gs-text-3); }

@media (max-width:1100px){
  .gs-skill-grid { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:760px){
  .gs-bgm-grid { grid-template-columns:repeat(2,1fr); }
  .gs-skill-grid { grid-template-columns:repeat(2,1fr); }
  .gs-shuruka-di { flex-direction:column; align-items:stretch; }
  .gs-shuruka-tijiao-qu { justify-content:flex-end; }
}
