/* ============================================================================
   FORMA V5 — Shell & Feedback Components
   纯增量：所有选择器使用 v5- 前缀，不与 V3 既有类冲突。
   ========================================================================== */

/* ---------- 应用外壳 ---------- */
body:not(.mode-gallery):not(.mode-studio) { height:auto; min-height:100%; overflow-y:auto; overflow-x:clip; }
.v5-studio-showcase { padding-block:64px; }
.v5-studio-showcase-actions { display:flex; flex-wrap:wrap; gap:12px; }
.v5-studio-showcase-head { max-width:820px; margin-bottom:56px; }
.v5-studio-edition { margin-block:24px; padding-left:16px; border-left:2px solid var(--v5-gold-400); color:var(--v5-tx-lo); line-height:1.8; }
.v5-studio-demo { display:grid; gap:48px; }
.v5-studio-demo figure { margin:0; display:grid; grid-template-columns:minmax(180px,1fr) minmax(0,3fr); gap:32px; align-items:start; }
.v5-studio-demo figcaption p, .v5-studio-capabilities p, .v5-studio-local p { line-height:1.8; color:var(--v5-tx-lo); }
.v5-studio-demo img { width:100%; height:auto; display:block; border:1px solid var(--v5-line-control); border-radius:6px; }
.v5-studio-demo-source { font-size:13px; color:var(--v5-tx-lo); line-height:1.7; margin-block:24px 48px; }
.v5-studio-capabilities { display:grid; grid-template-columns:1fr 1fr; gap:40px; padding-block:32px; border-block:1px solid var(--v5-line-control); }
.v5-studio-local { padding-top:48px; scroll-margin-top:90px; }
.v5-studio-local pre { padding:20px; background:var(--v5-bg-surface); border:1px solid var(--v5-line-control); overflow-x:auto; }
@media(max-width:767px) {
  .v5-studio-showcase { padding-block:36px; }
  .v5-studio-demo figure, .v5-studio-capabilities { grid-template-columns:1fr; gap:16px; }
  .v5-studio-showcase-head { margin-bottom:36px; }
}
.v5-shell {
  position: relative;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  background: var(--v5-bg-base);
  color: var(--v5-tx);
  font-family: var(--v5-ff-sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* 顶部品牌栏 */
.v5-topbar {
  flex-shrink:0;
  position: sticky;
  top: 0;
  z-index: var(--v5-z-topbar);
  height: var(--v5-topbar-h);
  display: flex;
  align-items: center;
  gap: var(--v5-sp-5);
  padding: 0 var(--v5-gutter);
  background: color-mix(in srgb, var(--v5-bg-void) 82%, transparent);
  backdrop-filter: blur(14px) saturate(1.1);
  -webkit-backdrop-filter: blur(14px) saturate(1.1);
  border-bottom: 1px solid var(--v5-line);
}

.v5-brand {
  display: flex;
  align-items: center;
  gap: var(--v5-sp-3);
  text-decoration: none;
  color: inherit;
  flex: 0 0 auto;
}
.v5-brand-mark {
  width: 26px; height: 26px;
  flex: 0 0 auto;
  color: var(--v5-gold-300);
  transition: transform var(--v5-dur-3) var(--v5-ease-expo);
}
.v5-brand-mark img, .v5-brand-mark svg { display:block; width:100%; height:100%; object-fit:contain; }
.v5-brand [hidden] { display:none; }
.v5-brand[data-brand-artwork="lockup"] .v5-brand-mark { width:132px; height:32px; }
.v5-brand[data-brand-artwork="lockup"][data-brand-size="small"] .v5-brand-mark { width:112px; height:28px; }
.v5-brand-presentation { align-self:flex-start; min-height:44px; padding:0; color:var(--v5-tx-lo); border:0; background:transparent; cursor:pointer; font:13px/1.5 var(--v5-ff-sans); }
.v5-brand-dialog { width:min(720px,calc(100vw - 32px)); padding:16px; color:var(--v5-tx-hi); background:var(--v5-bg-base); border:1px solid var(--v5-line-control); border-radius:10px; }
.v5-brand-dialog::backdrop { background:rgb(0 0 0 / .65); }
.v5-brand-motion-head { display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:13px; }
.v5-brand-motion-host { aspect-ratio:16/9; display:grid; place-items:center; }
.v5-brand-motion-host>img { width:44%; height:auto; }
.v5-brand-motion-host>svg { width:100%; height:auto; }
.v5-brand-motion-controls { display:flex; gap:8px; }
.v5-brand-motion-status { color:var(--v5-tx-lo); font-size:12px; }
.v5-brand[data-brand-size="small"] .v5-brand-mark { width:22px; height:22px; }
.v5-brand { min-height:36px; }
.v5-topbar { flex-shrink:0; }
.v5-brand-text {
  display: flex; align-items: baseline; gap: 7px;
  font-family: var(--v5-ff-display);
  font-size: 1.05rem;
  letter-spacing: var(--v5-tracking-wide);
  color: var(--v5-tx-hi);
  line-height: 1;
}
.v5-brand-ver {
  font-family: var(--v5-ff-mono);
  font-size: var(--v5-fs-micro);
  letter-spacing: .1em;
  color: var(--v5-gold-400);
  padding: 2px 5px;
  border: 1px solid var(--v5-line-gold);
  border-radius: var(--v5-r-xs);
}

/* 主导航 */
.v5-nav {
  display: flex;
  align-items: center;
  gap: var(--v5-sp-1);
  margin-left: auto;
}
.v5-nav-link {
  position: relative;
  padding: 8px 14px;
  font-size: var(--v5-fs-sm);
  font-weight: 500;
  color: var(--v5-tx-lo);
  text-decoration: none;
  border-radius: var(--v5-r-sm);
  transition: color var(--v5-dur-2) var(--v5-ease-out), background var(--v5-dur-2) var(--v5-ease-out);
  white-space: nowrap;
}
.v5-nav-link:hover { color: var(--v5-tx-hi); background: rgba(242, 237, 228, .05); }
.v5-nav-link[aria-current="page"] { color: var(--v5-ivory-200); }
.v5-nav-link[aria-current="page"]::after {
  content: "";
  position: absolute;
  left: 14px; right: 14px; bottom: 2px;
  height: 1px;
  background: var(--v5-gold-300);
  opacity: .85;
}

.v5-nav-toggle {
  display: none;
  width: 38px; height: 38px;
  align-items: center; justify-content: center;
  background: transparent;
  border: 1px solid var(--v5-line-2);
  border-radius: var(--v5-r-sm);
  color: var(--v5-tx);
  cursor: pointer;
}

/* ---------- 页面容器 ---------- */
.v5-page { flex: 1 0 auto; display: flex; flex-direction: column; }
.v5-container {
  width: 100%;
  max-width: var(--v5-maxw);
  margin: 0 auto;
  padding-inline: var(--v5-gutter);
}

/* 页面入场过渡 */
.v5-enter { animation: v5-rise var(--v5-dur-4) var(--v5-ease-expo) both; }
@keyframes v5-rise {
  from { opacity: 0; transform: translate3d(0, 14px, 0); }
  to   { opacity: 1; transform: none; }
}

/* ---------- 排版工具 ---------- */
.v5-display {
  font-family: var(--v5-ff-display);
  font-size: var(--v5-fs-display);
  line-height: var(--v5-lh-tight);
  letter-spacing: -.015em;
  color: var(--v5-tx-hi);
  font-weight: 400;
  margin: 0;
}
.v5-h1 {
  font-family: var(--v5-ff-display);
  font-size: var(--v5-fs-h1);
  line-height: var(--v5-lh-snug);
  letter-spacing: -.008em;
  color: var(--v5-tx-hi);
  font-weight: 400;
  margin: 0;
}
.v5-h2 {
  font-family: var(--v5-ff-display);
  font-size: var(--v5-fs-h2);
  line-height: var(--v5-lh-snug);
  color: var(--v5-tx-hi);
  font-weight: 400;
  margin: 0;
}
.v5-h3 { font-size: var(--v5-fs-h3); font-weight: 500; color: var(--v5-tx-hi); margin: 0; }
.v5-eyebrow {
  font-family: var(--v5-ff-mono);
  font-size: var(--v5-fs-micro);
  letter-spacing: var(--v5-tracking-wider);
  text-transform: uppercase;
  color: var(--v5-gold-400);
  margin: 0;
}
.v5-lede {
  font-size: clamp(.95rem, 1.15vw, 1.075rem);
  line-height: var(--v5-lh-body);
  color: var(--v5-tx-lo);
  max-width: 62ch;
}
.v5-muted { color: var(--v5-tx-lo); }
.v5-num { font-family: var(--v5-ff-mono); font-variant-numeric: tabular-nums; }

/* 金线分隔 */
.v5-rule {
  height: 1px;
  border: 0;
  margin: 0;
  background: linear-gradient(90deg, var(--v5-line-gold), transparent 62%);
}

/* ---------- 按钮 ---------- */
.v5-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--v5-sp-2);
  padding: 10px 18px;
  font-family: inherit;
  font-size: var(--v5-fs-sm);
  font-weight: 500;
  color: var(--v5-tx-hi);
  background: rgba(242, 237, 228, .045);
  border: 1px solid var(--v5-line-2);
  border-radius: var(--v5-r-sm);
  cursor: pointer;
  transition: background var(--v5-dur-2) var(--v5-ease-out),
              border-color var(--v5-dur-2) var(--v5-ease-out),
              transform var(--v5-dur-1) var(--v5-ease-out);
  white-space: nowrap;
}
.v5-btn:hover { background: rgba(242, 237, 228, .085); border-color: var(--v5-line-gold); }
.v5-btn:active { transform: translateY(1px); }
.v5-btn:disabled { opacity: .42; cursor: not-allowed; }
.v5-btn:focus-visible { outline: 2px solid var(--v5-gold-300); outline-offset: 2px; }

.v5-btn-gold {
  background: var(--v5-gold-300);
  border-color: var(--v5-gold-300);
  color: #14161a;
  font-weight: 500;
}
.v5-btn-gold:hover { background: var(--v5-gold-200); border-color: var(--v5-gold-200); }

.v5-btn-ghost { background: transparent; border-color: transparent; color: var(--v5-tx-lo); }
.v5-btn-ghost:hover { background: rgba(242, 237, 228, .055); border-color: transparent; color: var(--v5-tx-hi); }

/* ---------- 卡片 / 面板 ---------- */
.v5-card {
  background: var(--v5-bg-surface);
  border: 1px solid var(--v5-line);
  border-radius: var(--v5-r-lg);
  padding: var(--v5-sp-5);
}
.v5-card-quiet { background: rgba(242, 237, 228, .022); border-color: var(--v5-line); }

.v5-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 9px;
  font-family: var(--v5-ff-mono);
  font-size: var(--v5-fs-micro);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--v5-tx-lo);
  background: rgba(242, 237, 228, .05);
  border: 1px solid var(--v5-line);
  border-radius: var(--v5-r-pill);
}
.v5-badge[data-tone="gold"] { color: var(--v5-gold-300); border-color: var(--v5-line-gold); background: rgba(217,196,160,.09); }
.v5-badge[data-tone="ok"]   { color: var(--v5-ok); border-color: rgba(116,189,151,.3); background: rgba(116,189,151,.09); }
.v5-badge[data-tone="warn"] { color: var(--v5-warn); border-color: rgba(217,167,81,.3); background: rgba(217,167,81,.09); }
.v5-badge[data-tone="err"]  { color: var(--v5-err); border-color: rgba(212,112,92,.3); background: rgba(212,112,92,.09); }

/* ---------- 加载指示器 ---------- */
.v5-spinner {
  width: 26px; height: 26px;
  border: 2px solid var(--v5-line-2);
  border-top-color: var(--v5-gold-300);
  border-radius: 50%;
  animation: v5-spin .82s linear infinite;
}
@keyframes v5-spin { to { transform: rotate(360deg); } }

.v5-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--v5-sp-4);
  min-height: 260px;
  color: var(--v5-tx-lo);
  font-size: var(--v5-fs-sm);
}
.v5-progress {
  width: 180px; height: 2px;
  background: var(--v5-line);
  border-radius: var(--v5-r-pill);
  overflow: hidden;
}
.v5-progress-bar {
  height: 100%;
  background: var(--v5-gold-300);
  border-radius: inherit;
  transition: width var(--v5-dur-3) var(--v5-ease-out);
}

/* ---------- 骨架屏 ---------- */
.v5-skeleton {
  background: linear-gradient(90deg,
    rgba(242,237,228,.045) 25%,
    rgba(242,237,228,.085) 37%,
    rgba(242,237,228,.045) 63%);
  background-size: 400% 100%;
  animation: v5-shimmer 1.5s var(--v5-ease-in-out) infinite;
  border-radius: var(--v5-r-sm);
}
@keyframes v5-shimmer {
  0%   { background-position: 100% 50%; }
  100% { background-position: 0 50%; }
}
.v5-skeleton-text { height: 12px; margin-bottom: 9px; }
.v5-skeleton-text:last-child { margin-bottom: 0; width: 62%; }
.v5-skeleton-block { height: 100%; min-height: 130px; }
.v5-skeleton-circle { border-radius: 50%; aspect-ratio: 1; }

/* ---------- 空状态 / 错误状态 ---------- */
.v5-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--v5-sp-3);
  padding: var(--v5-sp-8) var(--v5-sp-5);
  text-align: center;
  color: var(--v5-tx-lo);
}
.v5-state-icon {
  width: 42px; height: 42px;
  display: grid; place-items: center;
  border: 1px solid var(--v5-line-2);
  border-radius: 50%;
  color: var(--v5-tx-lo);
  margin-bottom: var(--v5-sp-1);
}
.v5-state[data-tone="err"] .v5-state-icon { color: var(--v5-err); border-color: rgba(212,112,92,.35); }
.v5-state[data-tone="warn"] .v5-state-icon { color: var(--v5-warn); border-color: rgba(217,167,81,.35); }
.v5-state-title { font-size: var(--v5-fs-body); color: var(--v5-tx); margin: 0; font-weight: 500; }
.v5-state-desc  { font-size: var(--v5-fs-sm); max-width: 46ch; margin: 0; line-height: var(--v5-lh-body); }

/* ---------- Toast ---------- */
.v5-toasts {
  position: fixed;
  bottom: var(--v5-sp-5);
  left: 50%;
  transform: translateX(-50%);
  z-index: var(--v5-z-toast);
  display: flex;
  flex-direction: column;
  gap: var(--v5-sp-2);
  align-items: center;
  pointer-events: none;
}
.v5-toast {
  display: flex;
  align-items: center;
  gap: var(--v5-sp-3);
  padding: 11px 18px;
  font-size: var(--v5-fs-sm);
  color: var(--v5-tx-hi);
  background: color-mix(in srgb, var(--v5-bg-overlay) 94%, transparent);
  border: 1px solid var(--v5-line-2);
  border-radius: var(--v5-r-pill);
  box-shadow: var(--v5-shadow-2);
  backdrop-filter: blur(10px);
  animation: v5-toast-in var(--v5-dur-3) var(--v5-ease-expo) both;
  max-width: min(92vw, 480px);
}
.v5-toast-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--v5-info); flex: 0 0 auto; }
.v5-toast[data-tone="ok"]   .v5-toast-dot { background: var(--v5-ok); }
.v5-toast[data-tone="warn"] .v5-toast-dot { background: var(--v5-warn); }
.v5-toast[data-tone="err"]  .v5-toast-dot { background: var(--v5-err); }
@keyframes v5-toast-in {
  from { opacity: 0; transform: translate3d(0, 12px, 0) scale(.97); }
  to   { opacity: 1; transform: none; }
}

/* ---------- 响应式：移动优先断点 ---------- */
@media (max-width: 900px) {
  .v5-nav {
    position: fixed;
    inset: var(--v5-topbar-h) 0 auto 0;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
    padding: var(--v5-sp-3);
    background: color-mix(in srgb, var(--v5-bg-void) 97%, transparent);
    backdrop-filter: blur(16px);
    border-bottom: 1px solid var(--v5-line-2);
    transform: translateY(-8px);
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--v5-dur-3) var(--v5-ease-out), transform var(--v5-dur-3) var(--v5-ease-out);
  }
  .v5-nav[data-open="true"] { transform: none; opacity: 1; pointer-events: auto; }
  .v5-nav-link { padding: 12px 14px; font-size: var(--v5-fs-body); }
  .v5-nav-link[aria-current="page"]::after { display: none; }
  .v5-nav-toggle { display: flex; }
}

@media (max-width: 560px) {
  :root { --v5-topbar-h: 56px; --v5-gutter: 16px; }
  .v5-brand-ver { display: none; }
  .v5-card { padding: var(--v5-sp-4); }
}

/* ---------- 无障碍：焦点可见 ---------- */
.v5-sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* ---------- 指标卡 ---------- */
.v5-stat {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: var(--v5-sp-4) var(--v5-sp-4);
  background: rgba(242, 237, 228, .026);
  border: 1px solid var(--v5-line);
  border-left: 2px solid var(--v5-line-gold);
  border-radius: var(--v5-r-sm);
}
.v5-stat-label {
  font-family: var(--v5-ff-mono);
  font-size: var(--v5-fs-micro);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--v5-tx-lo);
}
.v5-stat-value { font-size: 1.15rem; color: var(--v5-tx-hi); line-height: 1.2; }
.v5-stat-sub { font-size: var(--v5-fs-xs); color: var(--v5-tx-lo); }

/* ---------- 页脚 ---------- */
.v5-footer {
  flex: 0 0 auto;
  padding: var(--v5-sp-7) var(--v5-gutter) var(--v5-sp-6);
  border-top: 1px solid var(--v5-line);
  background: var(--v5-bg-void);
}
.v5-footer-grid {
  display: flex;
  flex-wrap: wrap;
  gap: var(--v5-sp-6);
  justify-content: space-between;
  align-items: flex-start;
  max-width: var(--v5-maxw);
  margin: 0 auto;
}
.v5-footer-brand { display: flex; flex-direction: column; gap: var(--v5-sp-2); max-width: 42ch; }
.v5-footer-tag { font-size: var(--v5-fs-sm); color: var(--v5-tx-lo); line-height: var(--v5-lh-body); }
.v5-footer-cols { display: flex; flex-wrap: wrap; gap: var(--v5-sp-7); }
.v5-footer-col { display: flex; flex-direction: column; gap: var(--v5-sp-2); min-width: 120px; }
.v5-footer-col h4 {
  font-family: var(--v5-ff-mono);
  font-size: var(--v5-fs-micro);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--v5-gold-400);
  margin: 0 0 4px;
  font-weight: 500;
}
.v5-footer-col a { font-size: var(--v5-fs-sm); color: var(--v5-tx-lo); text-decoration: none; transition: color var(--v5-dur-2); }
.v5-footer-col a:hover { color: var(--v5-ivory-200); }
.v5-footer-legal {
  max-width: var(--v5-maxw);
  margin: var(--v5-sp-6) auto 0;
  padding-top: var(--v5-sp-4);
  border-top: 1px solid var(--v5-line);
  display: flex;
  flex-wrap: wrap;
  gap: var(--v5-sp-3) var(--v5-sp-5);
  justify-content: space-between;
  font-size: var(--v5-fs-xs);
  color: var(--v5-tx-lo);
}

/* ---------- 首页 ---------- */
.v5-hero {
  position: relative;
  padding: clamp(72px, 13vh, 150px) 0 clamp(48px, 8vh, 92px);
  overflow: hidden;
}
.v5-hero-inner { display: flex; flex-direction: column; gap: var(--v5-sp-4); max-width: 980px; }

.v5-hero-title { display: flex; flex-direction: column; margin-top: var(--v5-sp-2); }
.v5-hero-line {
  display: block;
  animation: v5-line-in var(--v5-dur-5) var(--v5-ease-expo) both;
}
.v5-hero-line-accent {
  color: var(--v5-ivory-300);
  margin-left: clamp(38px, 9vw, 132px);
  animation-delay: .13s;
}
@keyframes v5-line-in {
  from { opacity: 0; transform: translate3d(0, 26px, 0); }
  to   { opacity: 1; transform: none; }
}

.v5-hero-lede { margin-top: var(--v5-sp-3); animation: v5-line-in var(--v5-dur-5) .22s var(--v5-ease-expo) both; }

.v5-hero-actions {
  display: flex; flex-wrap: wrap; gap: var(--v5-sp-3);
  margin-top: var(--v5-sp-5);
  animation: v5-line-in var(--v5-dur-5) .3s var(--v5-ease-expo) both;
}

/* 指标条 */
.v5-stat-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: var(--v5-sp-3);
  margin: var(--v5-sp-6) 0;
}
.v5-section { padding: clamp(40px, 7vh, 84px) 0; }
.v5-section-head { display: flex; flex-direction: column; gap: var(--v5-sp-2); margin-bottom: var(--v5-sp-5); }

/* 展品卡 */
.v5-series-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(224px, 1fr));
  gap: var(--v5-sp-4);
}
.v5-series-card {
  display: flex; flex-direction: column; gap: var(--v5-sp-2);
  padding: var(--v5-sp-5) var(--v5-sp-4) var(--v5-sp-4);
  text-decoration: none;
  background: linear-gradient(180deg, rgba(242,237,228,.035), rgba(242,237,228,.012));
  border: 1px solid var(--v5-line);
  border-radius: var(--v5-r-lg);
  transition: border-color var(--v5-dur-3) var(--v5-ease-out),
              transform var(--v5-dur-3) var(--v5-ease-expo),
              background var(--v5-dur-3) var(--v5-ease-out);
}
.v5-series-card:hover {
  border-color: var(--v5-line-gold);
  transform: translateY(-3px);
  background: linear-gradient(180deg, rgba(217,196,160,.075), rgba(242,237,228,.018));
}
.v5-series-card:focus-visible { outline: 2px solid var(--v5-gold-300); outline-offset: 3px; }
.v5-series-head { display: flex; align-items: center; justify-content: space-between; }
.v5-series-glyph {
  width: 38px; height: 38px;
  display: grid; place-items: center;
  font-family: var(--v5-ff-display);
  font-size: 1.05rem;
  color: var(--v5-gold-200);
  background: rgba(217, 196, 160, .09);
  border: 1px solid var(--v5-line-gold);
  border-radius: var(--v5-r-sm);
}
.v5-series-name { font-family: var(--v5-ff-display); font-size: 1.18rem; color: var(--v5-tx-hi); margin: 2px 0 0; font-weight: 400; }
.v5-series-line { font-size: var(--v5-fs-sm); color: var(--v5-tx-lo); margin: 0; line-height: var(--v5-lh-body); }
.v5-series-cta {
  margin-top: auto; padding-top: var(--v5-sp-4);
  font-size: var(--v5-fs-xs); color: var(--v5-gold-300);
  opacity: 0; transform: translateX(-4px);
  transition: opacity var(--v5-dur-3) var(--v5-ease-out), transform var(--v5-dur-3) var(--v5-ease-out);
}
.v5-series-card .v5-series-cta { opacity: 1; transform: none; }

/* 能力入口 */
/* ---------- 路由图层：hidden 必须生效（覆盖 flex/grid 的 display） ---------- */
.v5-layer[hidden] { display: none !important; }

/* #app 作为展厅图层受外壳 flex 约束 */
.v5-shell > #app { flex: 1 1 auto; min-height: 0; }

/* ---------- Hero 3D 舞台 ---------- */
.v5-hero-3d {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.v5-hero-canvas {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  display: block;
}
/* 文字层浮于 3D 之上；暗罩收窄至左 45% 文字区，不压模型 */
.v5-hero .v5-hero-inner { position: relative; z-index: 1; }
.v5-hero .v5-hero-inner::before {
  content: "";
  position: absolute;
  inset: -10% -18% -16% -14%;
  background: radial-gradient(56% 66% at 24% 46%, rgba(7,8,10,.92) 42%, rgba(7,8,10,.5) 72%, transparent 100%);
  z-index: -1;
}
@media (max-width: 760px) {
  .v5-hero-3d { opacity: .5; }  /* 移动端 3D 作氛围背景，不与文字争夺 */
}

/* ---------- 详情页 ---------- */
.v5-mini-canvas { position: absolute; inset: 0; width: 100% !important; height: 100% !important; display: block; }
.v5-work-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.9fr);
  gap: var(--v5-sp-6);
  align-items: stretch;
  margin-top: var(--v5-sp-5);
}
.v5-work-stage {
  position: relative;
  min-height: 460px;
  border: 1px solid var(--v5-line);
  border-radius: var(--v5-r-lg);
  background: radial-gradient(80% 90% at 50% 42%, #14171d 0%, #0a0c0f 78%);
  overflow: hidden;
  cursor: grab;
}
.v5-work-stage:active { cursor: grabbing; }
.v5-work-info { display: flex; flex-direction: column; gap: var(--v5-sp-3); padding: var(--v5-sp-3) 0; }
.v5-work-line { color: var(--v5-gold-300); font-size: var(--v5-fs-sm); margin: 0; }
.v5-work-desc { color: var(--v5-tx-lo); line-height: var(--v5-lh-body); font-size: var(--v5-fs-body); margin: 0; }
.v5-work-actions { display: flex; flex-wrap: wrap; gap: var(--v5-sp-2); margin-top: auto; padding-top: var(--v5-sp-4); }
.v5-work-note { font-size: var(--v5-fs-sm); color: var(--v5-warn); margin: 0 0 10px; }
.v5-work-nav {
  display: flex; justify-content: space-between;
  margin-top: var(--v5-sp-5); padding-top: var(--v5-sp-4);
  border-top: 1px solid var(--v5-line);
}
.v5-work-navlink { color: var(--v5-tx-lo); text-decoration: none; font-size: var(--v5-fs-sm); font-family: var(--v5-ff-mono); transition: color var(--v5-dur-2); }
.v5-work-navlink:hover { color: var(--v5-gold-300); }
.v5-tech { margin-top: var(--v5-sp-6); }
.v5-tech-body { margin-top: var(--v5-sp-3); }
@media (max-width: 860px) {
  .v5-work-layout { grid-template-columns: 1fr; }
  .v5-work-stage { min-height: 340px; }
}

/* ============================================================================
   V5.1 可读性修复：原生控件暗色渲染 + 下拉选项对比度（WCAG AA）
   Windows Edge 的下拉弹层默认亮色背景，继承的浅色文字会不可读。
   ========================================================================== */
:root { color-scheme: dark; }

select option, select optgroup {
  background-color: #151a21;
  color: #eceae7;
}
select option:checked { background-color: #232a35; color: #ffffff; }
select:focus-visible { outline: 2px solid var(--v5-gold-300); outline-offset: 1px; }
select:disabled { color: var(--v5-tx-lo); background: rgba(255, 255, 255, .02); cursor: not-allowed; }

/* 输入类控件统一焦点可见性 */
input[type="range"]:focus-visible,
input[type="text"]:focus-visible,
input[type="email"]:focus-visible,
button:focus-visible {
  outline: 2px solid var(--v5-gold-300);
  outline-offset: 2px;
}
input:disabled { opacity: .45; cursor: not-allowed; }

/* 页脚联系方式 */
.v5-footer-contact { min-width: 210px; }
.v5-contact-mail {
  font-family: var(--v5-ff-mono);
  font-size: var(--v5-fs-xs);
  word-break: break-all;
}
.v5-copy-mail { padding: 5px 10px; font-size: var(--v5-fs-xs); align-self: flex-start; }

/* ---------- AI Studio 工作流步骤指引 ---------- */
.p-steps {
  display: flex; flex-wrap: wrap; gap: 4px;
  margin-bottom: 8px;
}
.p-step {
  flex: 1 1 auto;
  text-align: center;
  font-size: 10.5px;
  padding: 5px 4px;
  color: var(--tx-3);
  background: rgba(255, 255, 255, .025);
  border: 1px solid var(--line);
  border-radius: var(--radius-s);
  white-space: nowrap;
}
.p-step.done { color: var(--ok); border-color: rgba(111, 191, 154, .3); background: rgba(111, 191, 154, .06); }
.p-step.done::before { content: "✓ "; }
.p-step.active { color: var(--tx-0); border-color: rgba(205, 217, 223, .35); background: rgba(205, 217, 223, .1); }
.p-step.active::before { content: "▸ "; }
.p-step-hint {
  font-size: 11px; color: var(--tx-2); margin: 0 0 10px;
  line-height: 1.5;
}

/* ---------- 算子真实参数控件 ---------- */
.p-params { display: flex; flex-direction: column; gap: 10px; margin: 6px 0; }
.p-param-group {
  padding: 8px 10px;
  background: rgba(242, 237, 228, .03);
  border: 1px solid var(--v5-line);
  border-radius: var(--v5-r-sm);
}
.p-param-group[hidden] { display: none !important; }
.p-param-group h5 {
  margin: 0 0 6px;
  font-size: var(--v5-fs-xs);
  font-weight: 500;
  color: var(--v5-gold-300);
  font-family: var(--v5-ff-mono);
  letter-spacing: .06em;
}
.p-param { display: flex; flex-direction: column; gap: 3px; margin-bottom: 8px; }
.p-param > span { font-size: var(--v5-fs-xs); color: var(--v5-tx-hi); }
.p-num {
  padding: 5px 8px;
  font-family: var(--v5-ff-num);
  font-size: var(--v5-fs-sm);
  color: var(--v5-tx-hi);
  background: var(--v5-bg-2);
  border: 1px solid var(--v5-line);
  border-radius: var(--v5-r-sm);
}
.p-hint { font-size: var(--v5-fs-micro); color: var(--v5-tx-lo); font-style: normal; line-height: 1.45; }
.p-op-row { display: flex; flex-direction: column; gap: 2px; }
.p-op-row > .check { margin-bottom: 0; }

/* ---------- FBX 贴图检测（内嵌 / 外部 / 缺失） ---------- */
.p-tex {
  display: flex; flex-direction: column; gap: 6px;
  padding: 10px;
  background: rgba(242, 237, 228, .03);
  border: 1px solid var(--v5-line);
  border-radius: var(--v5-r-sm);
}
.p-tex[hidden] { display: none !important; }
.p-tex-head {
  font-size: var(--v5-fs-xs);
  font-family: var(--v5-ff-mono);
  letter-spacing: .08em;
  color: var(--v5-gold-300);
}
.p-tex-list { display: flex; flex-direction: column; gap: 4px; }
.p-tex-row {
  display: grid;
  grid-template-columns: 44px 1fr;
  align-items: baseline;
  gap: 4px 6px;
  font-size: var(--v5-fs-xs);
}
.p-tex-badge {
  justify-self: start;
  padding: 1px 6px;
  border-radius: 999px;
  font-size: var(--v5-fs-micro);
  border: 1px solid currentColor;
}
.p-tex-embedded { color: var(--ok); }
.p-tex-external { color: var(--v5-gold-300); }
.p-tex-missing { color: var(--v5-danger, #e0745f); }
.p-tex-name { color: var(--v5-tx-hi); word-break: break-all; }
.p-tex-meta { grid-column: 2; color: var(--v5-tx-lo); font-family: var(--v5-ff-num); }
.p-tex-out { display: flex; flex-direction: column; gap: 2px; margin-top: 4px; }
.p-tex-out a { color: var(--v5-gold-300); }

/* ---------- Before/After 真实双模型对比 ---------- */
.p-compare {
  display: flex; flex-direction: column; gap: 8px;
  padding: 10px;
  background: rgba(242, 237, 228, .03);
  border: 1px solid var(--v5-line);
  border-radius: var(--v5-r-sm);
}
.p-compare input[type="range"] { width: 100%; }
.p-compare-label {
  display: flex; justify-content: space-between;
  font-size: var(--v5-fs-xs);
  font-family: var(--v5-ff-mono);
  letter-spacing: .1em;
  color: var(--v5-tx-lo);
}
.p-compare-stats {
  display: flex; flex-direction: column; gap: 3px;
  font-size: var(--v5-fs-xs);
  font-family: var(--v5-ff-num);
}
.p-compare-row {
  display: grid;
  grid-template-columns: 56px 1fr 12px 1fr auto;
  align-items: baseline;
  gap: 4px;
}
.p-cs-label { color: var(--v5-tx-lo); }
.p-cs-before { color: var(--v5-tx-mid); text-align: right; }
.p-cs-arrow { color: var(--v5-tx-lo); text-align: center; }
.p-cs-after { color: var(--v5-tx-hi); text-align: right; }
.p-cs-delta { color: var(--v5-gold-300); text-align: right; min-width: 62px; }

/* One quiet contact entry in the shared public footer. */
.v5-contact { padding:0; max-width:100%; scroll-margin-top:80px; }
.v5-contact summary { cursor:pointer; min-height:44px; display:flex; align-items:center; gap:24px; color:var(--v5-tx-hi); font-size:14px; list-style:none; }
.v5-contact summary::-webkit-details-marker { display:none; }
.v5-contact summary::after { content:'+'; color:var(--v5-gold-300); }
.v5-contact[open] summary::after { content:'−'; }
.v5-contact-list { display:flex; flex-direction:column; gap:4px; }
.v5-contact-row { display:grid; grid-template-columns:minmax(0,1fr) 48px; align-items:center; gap:8px; }
.v5-contact-mail { color:var(--v5-ivory-200); font:400 13px/1.5 var(--v5-ff-sans); min-height:44px; display:flex; align-items:center; text-decoration:none; overflow-wrap:anywhere; }
.v5-contact-copy { min-width:44px; min-height:44px; padding:4px; border:0; background:transparent; color:var(--v5-gold-300); cursor:pointer; font-size:12px; }
.v5-contact summary:focus-visible, .v5-contact-copy:focus-visible { outline:2px solid var(--v5-gold-300); outline-offset:3px; }
.v5-series-head { position:relative; display:block; }
.v5-series-head .v5-badge { position:absolute; top:0; right:0; }
.v5-series-thumb { width:100%; height:auto; display:block; aspect-ratio:1; object-fit:contain; border-radius:var(--v5-r-sm); }
.v5-hero-status { position:absolute; left:8px; right:8px; bottom:16px; text-align:center; color:var(--v5-tx-hi); font-size:12px; }

/* Keep the existing two-column composition; model and actions no longer overlap. */
.v5-hero .v5-hero-inner { max-width:1280px; }
.v5-hero-lede { max-width:min(48%, 580px); }
.v5-hero-3d { left:52%; }
.v5-hero .v5-hero-inner::before { display:none; }
.v5-contact { scroll-margin-top:80px; }
.v5-contact-mail:focus-visible, .v5-brand:focus-visible, .v5-footer a:focus-visible { outline:2px solid var(--v5-gold-300); outline-offset:4px; }
@media(max-width:760px) {
  .v5-hero-3d { top:56px; bottom:auto; left:45%; height:260px; opacity:1; }
  .v5-hero .v5-eyebrow { max-width:43%; line-height:1.7; }
  .v5-hero-lede { max-width:100%; }
  .v5-hero-title { margin-bottom:70px; }
  .v5-nav-toggle { margin-left:auto; }
}
@media(prefers-reduced-motion:reduce) {
  .v5-brand *, .v5-hero *, .v5-series-card { animation:none!important; transition:none!important; }
}

/* Approved H01/H02/A01: real collection, quiet secondary Studio entry. */
.v5-container { max-width:calc(var(--v5-maxw) + var(--v5-gutter) * 2); }
.v5-hero { min-height:560px; padding:80px 0; }
.v5-hero .v5-hero-inner { max-width:calc(var(--v5-maxw) + var(--v5-gutter) * 2); }
.v5-hero-title { flex-direction:row; gap:.25em; }
.v5-hero-line-accent { margin-left:0; }
.v5-hero-lede { font-size:16px; max-width:42%; }
.v5-hero-3d { left:48%; }
.v5-hero-actions { max-width:45%; gap:12px; margin-top:12px; }
.v5-hero-actions .v5-btn { min-height:44px; }
.v5-series-grid { grid-template-columns:repeat(5,minmax(0,1fr)); gap:20px; }
.v5-series-card { padding:12px; border-radius:10px; }
.v5-series-name { font-size:18px; line-height:1.5; }
.v5-series-cta { padding-top:4px; font-size:13px; }
#collection { scroll-margin-top:80px; }
.v5-studio-invite { display:flex; align-items:center; justify-content:space-between; gap:32px; padding-block:40px; margin-bottom:48px; border-block:1px solid var(--v5-line); }
.v5-studio-invite .v5-lede { margin-top:12px; max-width:760px; font-size:14px; }
.v5-studio-invite .v5-btn { flex-shrink:0; }
.v5-btn, .v5-nav-link { font-size:14px; text-decoration:none; }
.v5-footer-tag, .v5-footer-legal, .v5-work-desc { color:var(--v5-tx-lo); }
@media (min-width:768px) and (max-width:1199px) {
  .v5-series-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .v5-hero { min-height:500px; padding:56px 0; }
}
@media (max-width:767px) {
  :root { --v5-gutter:16px; }
  .v5-hero { display:flex; flex-direction:column; gap:16px; padding:32px 16px 20px; min-height:0; }
  .v5-hero .v5-hero-inner { display:contents; }
  .v5-hero .v5-eyebrow { order:1; max-width:none; }
  .v5-hero-title { order:2; margin:0; font-size:40px; }
  .v5-hero-3d { order:3; position:relative; inset:auto; width:100%; height:320px; opacity:1; }
  .v5-hero-lede { order:4; max-width:none; margin:0; font-size:14px; }
  .v5-hero-actions { order:5; flex-direction:column; max-width:none; margin:0; }
  .v5-series-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .v5-series-thumb { height:148px; }
  .v5-series-name { font-size:15px; }
  .v5-series-line { display:none; }
  .v5-series-card { gap:8px; }
  .v5-section { padding-block:32px; }
  .v5-series-cta { min-height:32px; display:flex; align-items:center; }
  .v5-studio-invite { flex-direction:column; align-items:flex-start; gap:16px; }
  .v5-work-stage { min-height:380px; }
}

/* Independent collection: modest heading, full catalog, shared workflow invitation. */
.v5-collection .v5-section { padding-top:56px; padding-bottom:56px; }
.v5-collection .v5-section-head .v5-lede { margin-top:14px; font-size:15px; }
.v5-home .v5-studio-invite { margin-top:16px; }
@media(max-width:767px) { .v5-collection .v5-section { padding-block:32px; } }
