/* Stellar-inspired dark UI — reference https://www.stellar.work/ */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-h) + 0.5rem);
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

:root {
  --bg: #000000;
  --surface: #0d0d0d;
  --card: #141414;
  --fg: #ffffff;
  --muted: #888888;
  --line: #2a2a2a;
  --accent: #635bff;
  --accent-soft: rgba(99, 91, 255, 0.35);
  --font-sans: "Inter", system-ui, sans-serif;
  --header-h: 4rem;
  --space: clamp(1.25rem, 4vw, 3rem);
  --radius-card: 20px;
  --radius-pill: 999px;
  /* 与 .h-gallery（平面设计）一致的 hover：缩放 + 紫色线框 */
  --hover-scale: 1.03;
  --hover-ring: rgba(125, 99, 255, 0.9);
  --hover-ease: cubic-bezier(0.165, 0.84, 0.44, 1);
  --hover-duration: 0.4s;
}

body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 1rem;
  line-height: 1.5;
  color: var(--fg);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
}

button {
  font: inherit;
  cursor: pointer;
  color: inherit;
}

/* Header */
.site-header {
  position: sticky;
  top: 0;
  z-index: 200;
  background: rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--line);
}

.site-header__inner {
  max-width: 120rem;
  margin: 0 auto;
  padding: 0 var(--space);
  min-height: var(--header-h);
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: nowrap;
  overflow-x: auto;
  scrollbar-width: none;
}

.site-header__inner::-webkit-scrollbar {
  display: none;
}

.site-header__logo {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 700;
  font-size: 0.95rem;
  text-decoration: none;
  flex-shrink: 0;
}

.site-header__mark {
  width: 10px;
  height: 10px;
  background: repeating-linear-gradient(
    90deg,
    var(--fg) 0 2px,
    transparent 2px 4px
  );
  opacity: 0.9;
}

.site-nav__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 1.25rem;
}

.site-nav a {
  text-decoration: none;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.site-nav a:hover {
  color: var(--fg);
}

.site-header__tools {
  margin-left: auto;
  font-size: 0.75rem;
  color: var(--muted);
  text-decoration: none;
  white-space: nowrap;
}

.site-header__tools:hover {
  color: var(--fg);
}

.site-header__cta {
  flex-shrink: 0;
  padding: 0.55rem 1.2rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  color: #fff;
  background: var(--accent);
  border-radius: 6px;
  border: 1px solid transparent;
  transform: scale(1);
  transition:
    transform var(--hover-duration) var(--hover-ease),
    filter var(--hover-duration) var(--hover-ease),
    border-color var(--hover-duration) var(--hover-ease),
    box-shadow var(--hover-duration) var(--hover-ease);
}

.site-header__cta:hover {
  transform: scale(var(--hover-scale));
  filter: brightness(1.08);
  border-color: var(--hover-ring);
  box-shadow: 0 0 0 1px var(--hover-ring);
}

.site-header a:focus-visible,
button:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.section-title {
  margin: 0 0 0.75rem;
  font-size: clamp(1.75rem, 3vw, 2.75rem);
  font-weight: 700;
  letter-spacing: -0.03em;
}

.section-lede {
  margin: 0;
  color: var(--muted);
  font-size: 0.95rem;
  max-width: 40rem;
}

/* Hero */
.hero--stellar {
  min-height: calc(100vh - var(--header-h));
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 4rem var(--space) 5rem;
}

.hero__inner {
  max-width: 56rem;
}

.hero__title--center {
  margin: 0 0 1.75rem;
  font-weight: 800;
  font-size: clamp(2.5rem, 9vw, 6.5rem);
  line-height: 0.88;
  letter-spacing: -0.05em;
}

.hero__sub {
  margin: 0 auto;
  max-width: min(48rem, 94vw);
  font-size: clamp(1rem, 2vw, 1.2rem);
  line-height: 1.6;
  color: var(--muted);
}

/* 第二句整句单行，避免「质感。」被单独拆到下一行 */
.hero__sub-nowrap {
  white-space: nowrap;
}

@media (max-width: 30rem) {
  .hero__sub-nowrap {
    font-size: clamp(0.78rem, 3.2vw, 1rem);
  }
}

.hero__resume-btn {
  margin-top: 1.5rem;
  padding: 0.75rem 1.4rem;
  display: inline-block;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #fff;
  background: var(--accent);
  border: 1px solid transparent;
  border-radius: 8px;
  transform: scale(1);
  transition:
    transform var(--hover-duration) var(--hover-ease),
    filter var(--hover-duration) var(--hover-ease),
    border-color var(--hover-duration) var(--hover-ease),
    box-shadow var(--hover-duration) var(--hover-ease);
}

.hero__resume-btn:hover {
  transform: scale(var(--hover-scale));
  filter: brightness(1.08);
  border-color: var(--hover-ring);
  box-shadow: 0 0 0 1px var(--hover-ring);
}

/* Featured creators — Stellar 双排反向无缝 marquee（.row-top / .row-bottom） */
.stellar-marquee {
  padding: clamp(4rem, 8vw, 5.5rem) var(--space) clamp(16rem, 32vw, 22rem);
  background: #000000;
}

.stellar-marquee__intro {
  max-width: 52rem;
  margin-bottom: clamp(2rem, 4vw, 2.75rem);
  text-align: center;
  margin-inline: auto;
}

.stellar-marquee__title {
  margin: 0 0 clamp(0.65rem, 1.5vw, 0.9rem);
  font-size: clamp(2rem, 4.6vw, 3.25rem);
  font-weight: 600;
  letter-spacing: -0.035em;
  line-height: 1.2;
  color: #ffffff;
}

.stellar-marquee__lede {
  margin: 0 auto;
  max-width: 34rem;
  font-size: clamp(0.74rem, 1.05vw, 0.82rem);
  line-height: 1.65;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.45);
}

/* 外层裁剪；每行 flex 居中排布缩略图 */
.marquee-container {
  --marquee-tile: clamp(60px, 5vw, 75px);
  --marquee-tile-radius: clamp(12px, 22%, 17px);
  --marquee-gap: 20px;
  overflow: hidden;
  margin: 0 calc(-1 * var(--space));
  padding: clamp(0.5rem, 1.2vw, 0.85rem) var(--space);
  display: grid;
  gap: var(--marquee-gap);
  -webkit-mask-image: linear-gradient(
    90deg,
    transparent 0%,
    #000000 14%,
    #000000 86%,
    transparent 100%
  );
  mask-image: linear-gradient(
    90deg,
    transparent 0%,
    #000000 14%,
    #000000 86%,
    transparent 100%
  );
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

.marquee-track-wrap {
  overflow: visible;
  margin: 0;
  padding: 0;
}

.marquee-track-wrap--offset {
  padding-left: calc((var(--marquee-tile) + var(--marquee-gap)) * 0.5);
}

.marquee-content,
.marquee-row,
.marquee-row-1,
.marquee-row-2 {
  display: flex;
  justify-content: center;
  align-items: stretch;
  gap: var(--marquee-gap);
  width: 100%;
}

.marquee-item {
  flex: 0 0 var(--marquee-tile);
  width: var(--marquee-tile);
  min-width: 0;
  background: #101010;
  border-radius: var(--marquee-tile-radius);
  border: 1px solid rgba(255, 255, 255, 0.06);
  overflow: hidden;
  position: relative;
  z-index: 0;
  transform: scale(1);
  transition: transform var(--hover-duration) var(--hover-ease);
}

.marquee-item .image-box {
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: inherit;
  background: #171717;
}

.marquee-item .image-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  border-radius: inherit;
  box-sizing: border-box;
  border: 1px solid transparent;
  transition:
    border-color var(--hover-duration) var(--hover-ease),
    box-shadow var(--hover-duration) var(--hover-ease);
}

.marquee-item:hover,
.marquee-item:focus-within {
  z-index: 10;
  transform: scale(var(--hover-scale));
}

.marquee-item:hover .image-box img,
.marquee-item:focus-within .image-box img {
  border-color: var(--hover-ring);
  box-shadow: 0 0 0 1px var(--hover-ring);
}

@media (prefers-reduced-motion: reduce) {
  .marquee-container {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    mask-image: none;
    -webkit-mask-image: none;
  }
}

/* Arrow slider */
.arrow-slider {
  padding: 0 var(--space) 5rem;
  padding-top: 4rem;
}

.arrow-slider__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}

.arrow-slider__controls {
  display: flex;
  gap: 0.5rem;
}

.arrow-slider__viewport {
  overflow: hidden;
  border-radius: var(--radius-card);
  padding: clamp(0.75rem, 2vw, 1.25rem) clamp(1rem, 2.5vw, 1.5rem);
}

.arrow-slider__track {
  display: flex;
  gap: 1rem;
  transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.arrow-slider__card {
  flex: 0 0 clamp(260px, 70vw, 420px);
  border-radius: var(--radius-card);
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--card);
  position: relative;
  z-index: 0;
  transform: scale(1);
  transition: transform var(--hover-duration) var(--hover-ease);
}

.arrow-slider__card:hover,
.arrow-slider__card:focus-within {
  z-index: 10;
  transform: scale(var(--hover-scale));
}

.arrow-slider__link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.arrow-slider__card img {
  width: 100%;
  aspect-ratio: 16 / 11;
  object-fit: cover;
  display: block;
  box-sizing: border-box;
  border: 1px solid transparent;
  border-radius: calc(var(--radius-card) - 1px);
  transition:
    border-color var(--hover-duration) var(--hover-ease),
    box-shadow var(--hover-duration) var(--hover-ease);
}

.arrow-slider__card:hover img,
.arrow-slider__card:focus-within img {
  border-color: var(--hover-ring);
  box-shadow: 0 0 0 1px var(--hover-ring);
}

.arrow-slider__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.1rem;
  gap: 0.75rem;
}

.arrow-slider__name {
  font-weight: 600;
  font-size: 0.95rem;
}

.ghost-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.45rem 0.75rem;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--muted);
  transform: scale(1);
  transition:
    transform var(--hover-duration) var(--hover-ease),
    color var(--hover-duration) var(--hover-ease),
    border-color var(--hover-duration) var(--hover-ease),
    box-shadow var(--hover-duration) var(--hover-ease);
}

.ghost-btn:hover {
  color: var(--fg);
  transform: scale(var(--hover-scale));
  border-color: var(--hover-ring);
  box-shadow: 0 0 0 1px var(--hover-ring);
}

/* Brand split */
.brand-split {
  display: grid;
  gap: 3rem;
  padding: 5rem var(--space) 180px;
  max-width: 120rem;
  margin: 0 auto;
}

@media (min-width: 64rem) {
  .brand-split {
    grid-template-columns: 1.1fr 1fr;
    align-items: center;
    gap: 4rem;
  }
}

.brand-carousel {
  position: relative;
  /* 为外层 viewport 的 hover 放大留出空间，避免贴邻列裁切 */
  padding: clamp(4px, 0.8vw, 10px);
}

.brand-carousel__viewport {
  border-radius: var(--radius-card);
  overflow: hidden;
  border: 1px solid var(--line);
  background: #000;
  touch-action: pan-y pinch-zoom;
  cursor: grab;
  aspect-ratio: 16 / 9;
  position: relative;
  z-index: 0;
  transform: scale(1);
  transform-origin: center;
  transition:
    transform var(--hover-duration) var(--hover-ease),
    border-color var(--hover-duration) var(--hover-ease),
    box-shadow var(--hover-duration) var(--hover-ease);
}

.brand-carousel__viewport:hover,
.brand-carousel__viewport:focus-within {
  z-index: 2;
  transform: scale(var(--hover-scale));
  border-color: var(--hover-ring);
  box-shadow: 0 0 0 1px var(--hover-ring);
}

.brand-carousel__viewport.is-dragging {
  cursor: grabbing;
}

.brand-carousel__track {
  display: flex;
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 0;
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.brand-carousel__slide {
  flex: 0 0 100%;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
}

.brand-carousel__slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  border: 0;
  border-radius: 0;
}

/* 叠在轮播图左右两侧、垂直居中 */
.brand-carousel__nav {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 clamp(0.35rem, 2vw, 1rem);
  margin: 0;
  pointer-events: none;
}

.brand-carousel__nav .arrow-btn {
  pointer-events: auto;
  background: rgba(10, 10, 12, 0.55);
  border-color: rgba(255, 255, 255, 0.14);
  backdrop-filter: blur(6px);
}

.brand-split__title {
  margin: 0 0 1rem;
  font-size: clamp(2rem, 3vw, 3rem);
  font-weight: 700;
}

.brand-split__lede {
  margin: 0 0 1.5rem;
  color: var(--muted);
  line-height: 1.65;
}

.brand-split__list {
  margin: 0;
  padding: 0;
  list-style: none;
  color: var(--muted);
}

.brand-split__list li {
  position: relative;
  padding-left: 1.25rem;
  margin-bottom: 0.65rem;
}

.brand-split__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 6px;
  height: 6px;
  background: var(--accent);
  border-radius: 1px;
}

.brand-split__footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
}

.pill-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.35rem;
  background: var(--accent);
  color: #fff;
  font-weight: 600;
  font-size: 0.85rem;
  text-decoration: none;
  border-radius: var(--radius-pill);
  border: 1px solid transparent;
  transform: scale(1);
  transition:
    transform var(--hover-duration) var(--hover-ease),
    filter var(--hover-duration) var(--hover-ease),
    border-color var(--hover-duration) var(--hover-ease),
    box-shadow var(--hover-duration) var(--hover-ease);
}

.pill-cta:hover {
  transform: scale(var(--hover-scale));
  filter: brightness(1.06);
  border-color: var(--hover-ring);
  box-shadow: 0 0 0 1px var(--hover-ring);
}

.brand-split__hint {
  font-size: 0.8rem;
  color: var(--muted);
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.brand-split__hint .dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #f5c542;
}

/* Horizontal gallery（平面 / 运营） */
.h-gallery {
  padding: 5rem var(--space) 180px;
  max-width: 120rem;
  margin: 0 auto;
}

.h-gallery__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}

.h-gallery__controls {
  display: flex;
  gap: 0.5rem;
}

.h-gallery__viewport {
  /* 左右内侧留白给首张/末张 hover 描边与 scale，负 margin + 加宽抵消，首卡左缘仍与详情栅格对齐 */
  --h-gallery-bleed: clamp(8px, 1.2vw, 14px);
  overflow: hidden;
  border-radius: 12px;
  padding-block: clamp(0.75rem, 2vw, 1.25rem);
  padding-inline: var(--h-gallery-bleed);
  margin-inline: calc(-1 * var(--h-gallery-bleed));
  width: calc(100% + var(--h-gallery-bleed) + var(--h-gallery-bleed));
}

.h-gallery__track {
  display: flex;
  gap: 1rem;
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.h-gallery__item {
  flex: 0 0 clamp(280px, 72vw, 520px);
  position: relative;
  z-index: 0;
  transform: scale(1);
  transition: transform var(--hover-duration) var(--hover-ease);
}

.h-gallery__item img {
  width: 100%;
  aspect-ratio: 80 / 45;
  object-fit: cover;
  border-radius: 10px;
  border: 1px solid var(--line);
  transition:
    border-color var(--hover-duration) var(--hover-ease),
    box-shadow var(--hover-duration) var(--hover-ease);
}

/* 平面设计 / 运营设计：本地横板作品，固定 16:9 画幅、contain 避免裁切变形 */
.h-gallery--graphic .h-gallery__item img,
.h-gallery--ops .h-gallery__item img {
  aspect-ratio: 16 / 9;
  object-fit: contain;
  object-position: center;
  background: var(--card);
}

.h-gallery__item:hover,
.h-gallery__item:focus-within {
  z-index: 10;
  transform: scale(var(--hover-scale));
}

.h-gallery__item:hover img,
.h-gallery__item:focus-within img {
  border-color: var(--hover-ring);
  box-shadow: 0 0 0 1px var(--hover-ring);
}

/* Detail strip */
.detail-strip {
  padding: 5rem var(--space) 180px;
  max-width: 120rem;
  margin: 0 auto;
}

.detail-strip__head {
  margin-bottom: 1.5rem;
}

.detail-strip__grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1rem;
}

@media (max-width: 60rem) {
  .detail-strip__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

.detail-strip__thumb {
  border: none;
  padding: 4px;
  border-radius: 10px;
  overflow: visible;
  cursor: zoom-in;
  background: transparent;
  position: relative;
  z-index: 0;
  transform: scale(1);
  transition: transform var(--hover-duration) var(--hover-ease);
}

.detail-strip__thumb:hover,
.detail-strip__thumb:focus-visible {
  z-index: 10;
  transform: scale(var(--hover-scale));
}

.detail-strip__thumb img {
  width: 100%;
  aspect-ratio: 9 / 16;
  object-fit: cover;
  object-position: top;
  display: block;
  box-sizing: border-box;
  border: 1px solid var(--line);
  border-radius: 10px;
  transition:
    border-color var(--hover-duration) var(--hover-ease),
    box-shadow var(--hover-duration) var(--hover-ease);
}

.detail-strip__thumb:hover img,
.detail-strip__thumb:focus-visible img {
  border-color: var(--hover-ring);
  box-shadow: 0 0 0 1px var(--hover-ring);
}

/* Video hub */
.video-hub {
  padding: 5rem var(--space) 130px;
  max-width: 120rem;
  margin: 0 auto;
}

.video-hub__note {
  margin-top: 0.5rem;
}

.video-hub__filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 2rem 0 1.5rem;
}

.v-filter {
  padding: 0.45rem 1rem;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  border-radius: var(--radius-pill);
  border: 1px solid var(--line);
  background: transparent;
  color: var(--muted);
  transform: scale(1);
  transition:
    transform var(--hover-duration) var(--hover-ease),
    color var(--hover-duration) var(--hover-ease),
    border-color var(--hover-duration) var(--hover-ease),
    box-shadow var(--hover-duration) var(--hover-ease);
}

.v-filter:hover,
.v-filter:focus-visible {
  transform: scale(var(--hover-scale));
}

.v-filter:not(.is-active):hover,
.v-filter:not(.is-active):focus-visible {
  color: var(--fg);
  border-color: var(--hover-ring);
  box-shadow: 0 0 0 1px var(--hover-ring);
}

.v-filter.is-active {
  color: var(--fg);
  border-color: var(--accent);
  box-shadow: 0 0 0 1px var(--accent-soft);
}

/* 视频作品：小横图 + 一排 5 个（封面 16:9） */
.video-hub__grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.75rem;
}

@media (max-width: 64rem) {
  .video-hub__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 48rem) {
  .video-hub__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
  }
}

.v-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
  text-decoration: none;
  display: block;
  position: relative;
  z-index: 0;
  cursor: pointer;
  transform: scale(1);
  transition: transform var(--hover-duration) var(--hover-ease);
}

.v-card:hover,
.v-card:focus-visible {
  z-index: 10;
  transform: scale(var(--hover-scale));
}

.v-card:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

.v-card__media {
  position: relative;
  overflow: hidden;
  border-radius: 0;
}

.v-card:hover .v-card__video-box,
.v-card:focus-within .v-card__video-box {
  border-color: var(--hover-ring);
  box-shadow: 0 0 0 1px var(--hover-ring);
}

.v-card.is-hidden {
  display: none;
}

/* 封面容器：默认 16:9 横版；弹层内仍为竖版 iframe 播放 */
.v-card__video-box {
  position: relative;
  z-index: 0;
  width: 100%;
  aspect-ratio: 16 / 9;
  margin: 0 auto;
  overflow: hidden;
  border-radius: 0;
  box-sizing: border-box;
  border: 1px solid transparent;
  isolation: isolate;
  background: #0a0a0c;
  transition:
    border-color var(--hover-duration) var(--hover-ease),
    box-shadow var(--hover-duration) var(--hover-ease);
}

.v-card__cover {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transform: scale(1.08);
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.v-card__video-box:hover .v-card__cover,
.v-card__video-box:focus-within .v-card__cover {
  transform: scale(1.13);
}

/* 整区可点：透明按钮 + 居中播放图标（SVG）；实际播放在弹层内 */
.v-card__play-hit {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: grid;
  place-items: center;
  margin: 0;
  padding: 0;
  border: 0;
  cursor: pointer;
  background: transparent;
  color: #fff;
  transition: opacity 0.25s ease;
}

.v-card__play-hit:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: -4px;
}

.v-card__play-icon {
  display: grid;
  place-items: center;
  width: clamp(2rem, 12%, 2.75rem);
  height: clamp(2rem, 12%, 2.75rem);
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.5);
  border: 2px solid rgba(255, 255, 255, 0.88);
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.45);
  pointer-events: none;
}

.v-card__play-icon svg {
  width: 42%;
  height: 42%;
  margin-left: 6%;
  display: block;
}

.v-card__badge {
  position: absolute;
  top: 0.55rem;
  left: 0.55rem;
  z-index: 4;
  padding: 0.2rem 0.55rem;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: rgba(0, 0, 0, 0.65);
  border-radius: 4px;
  color: #aeefff;
}

.v-card__body {
  padding: 0.65rem 0.8rem 0.8rem;
}

.v-card__cat {
  margin: 0 0 0.35rem;
  font-size: 0.7rem;
  font-weight: 600;
  color: #6ecfff;
  letter-spacing: 0.04em;
}

.v-card__title {
  margin: 0 0 0.4rem;
  font-size: 1.05rem;
  font-weight: 700;
}

.v-card__desc {
  margin: 0;
  font-size: 0.78rem;
  color: var(--muted);
  line-height: 1.5;
}

/* Final CTA — Stellar 式：顶黑过渡 + mesh 紫靛/灰紫 + 胶片噪点 + 细亮点 + 暗角 */
.final-cta {
  position: relative;
  margin-top: 4rem;
  padding: clamp(5rem, 14vh, 9rem) var(--space) 220px;
  text-align: center;
  overflow: hidden;
  background: #000000;
}

.final-cta__mesh {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background:
    linear-gradient(
      180deg,
      #000000 0%,
      rgba(0, 0, 0, 0.88) 14%,
      rgba(0, 0, 0, 0.35) 32%,
      transparent 46%
    ),
    radial-gradient(
      ellipse 125% 95% at 8% 108%,
      rgba(55, 32, 140, 0.95) 0%,
      rgba(30, 18, 80, 0.55) 38%,
      transparent 58%
    ),
    radial-gradient(
      ellipse 110% 90% at 48% 118%,
      rgba(42, 26, 110, 0.92) 0%,
      rgba(24, 14, 62, 0.45) 42%,
      transparent 56%
    ),
    radial-gradient(
      ellipse 85% 85% at 100% 42%,
      rgba(130, 95, 150, 0.42) 0%,
      rgba(70, 48, 95, 0.2) 45%,
      transparent 58%
    ),
    radial-gradient(
      ellipse 70% 55% at 78% 6%,
      rgba(90, 55, 170, 0.22) 0%,
      transparent 62%
    ),
    linear-gradient(
      172deg,
      #040210 0%,
      #10081f 34%,
      #180d38 62%,
      #22104a 88%,
      #2a1458 100%
    );
}

/* 粗颗粒胶片感 */
.final-cta__noise--coarse {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 0.32;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='c'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23c)'/%3E%3C/svg%3E");
}

/* 细颗粒 + 微纵向纹理 */
.final-cta__noise--fine {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 0.18;
  mix-blend-mode: soft-light;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E");
}

/* 稀疏星尘 / 微亮点 */
.final-cta__sparkle {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 0.35;
  mix-blend-mode: screen;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='320'%3E%3Cdefs%3E%3Cpattern id='s' width='80' height='80' patternUnits='userSpaceOnUse'%3E%3Ccircle cx='8' cy='12' r='0.55' fill='%23ffffff' opacity='0.35'/%3E%3Ccircle cx='42' cy='6' r='0.45' fill='%23ffffff' opacity='0.28'/%3E%3Ccircle cx='58' cy='38' r='0.5' fill='%23ffffff' opacity='0.32'/%3E%3Ccircle cx='24' cy='52' r='0.4' fill='%23ffffff' opacity='0.22'/%3E%3Ccircle cx='70' cy='64' r='0.35' fill='%23ffffff' opacity='0.2'/%3E%3Ccircle cx='14' cy='72' r='0.5' fill='%23ffffff' opacity='0.26'/%3E%3Crect x='34' y='22' width='0.35' height='3' fill='%23ffffff' opacity='0.18' transform='rotate(8 34 22)'/%3E%3Crect x='52' y='48' width='0.3' height='2.2' fill='%23ffffff' opacity='0.15' transform='rotate(-6 52 48)'/%3E%3C/pattern%3E%3C/defs%3E%3Crect width='100%25' height='100%25' fill='url(%23s)'/%3E%3C/svg%3E");
}

/* 边缘略收光，突出中间 CTA */
.final-cta__vignette {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: radial-gradient(
    ellipse 85% 75% at 50% 45%,
    transparent 0%,
    rgba(0, 0, 0, 0.35) 100%
  );
}

.final-cta__inner {
  position: relative;
  z-index: 3;
  max-width: 48rem;
  margin: 0 auto;
}

.final-cta__title {
  margin: 0 0 2rem;
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.02em;
}

/* Contact CTA buttons */
.contact-cta-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.9rem;
  flex-wrap: wrap;
}

.contact-cta-btn {
  width: clamp(220px, 28vw, 320px);
  height: 3.35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  padding: 0 1.5rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: #fff;
  text-decoration: none;
  white-space: nowrap;
  border-radius: var(--radius-pill);
  background: var(--accent);
  border: 1px solid transparent;
  box-shadow: 0 12px 40px rgba(99, 91, 255, 0.35);
  transform: scale(1);
  transition:
    transform var(--hover-duration) var(--hover-ease),
    filter var(--hover-duration) var(--hover-ease),
    border-color var(--hover-duration) var(--hover-ease),
    box-shadow var(--hover-duration) var(--hover-ease);
}

.contact-cta-btn:hover {
  transform: scale(var(--hover-scale));
  filter: brightness(1.07);
  border-color: var(--hover-ring);
  box-shadow:
    0 0 0 1px var(--hover-ring),
    0 12px 40px rgba(99, 91, 255, 0.35);
}

.morph-cta__icon {
  width: 1.1rem;
  height: 1.1rem;
  flex-shrink: 0;
  background: currentColor;
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
}

.morph-cta__icon--phone {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24'%3E%3Cpath d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E");
}

.morph-cta__icon--mail {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24'%3E%3Cpath d='M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z'/%3E%3C/svg%3E");
}

/* Arrow buttons */
.arrow-btn {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: var(--surface);
  flex-shrink: 0;
  position: relative;
  transform: scale(1);
  transition:
    transform var(--hover-duration) var(--hover-ease),
    border-color var(--hover-duration) var(--hover-ease),
    box-shadow var(--hover-duration) var(--hover-ease);
}

.arrow-btn::after {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 0.45rem;
  height: 0.45rem;
  border-right: 2px solid var(--fg);
  border-bottom: 2px solid var(--fg);
  transform: rotate(-45deg);
}

.arrow-btn--prev::after {
  transform: rotate(135deg);
}

.arrow-btn:hover,
.arrow-btn:focus-visible {
  transform: scale(var(--hover-scale));
  border-color: var(--hover-ring);
  box-shadow: 0 0 0 1px var(--hover-ring);
}

/* Lightbox — 滚轮缩放 + 拖拽平移 */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 400;
  background: rgba(0, 0, 0, 0.92);
  display: flex;
  flex-direction: column;
  padding: 0;
  padding-top: 3.25rem;
}

.lightbox[hidden] {
  display: none;
}

.lightbox__toolbar {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem 0.65rem;
  flex-shrink: 0;
  position: relative;
  z-index: 3;
}

.lightbox__tool {
  min-width: 2.75rem;
  padding: 0.4rem 0.65rem;
  font-size: 0.8rem;
  font-weight: 600;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--fg);
}

.lightbox__tool:hover,
.lightbox__tool:focus-visible {
  border-color: var(--hover-ring);
  box-shadow: 0 0 0 1px var(--hover-ring);
}

.lightbox__stage {
  flex: 1;
  min-height: 0;
  width: 100%;
  position: relative;
  overflow: hidden;
  touch-action: none;
  cursor: grab;
}

.lightbox__stage.is-panning {
  cursor: grabbing;
}

.lightbox__frame {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate3d(-50%, -50%, 0);
  user-select: none;
  backface-visibility: hidden;
}

.lightbox__img {
  display: block;
  max-width: min(96vw, 1600px);
  max-height: min(calc(100vh - 5.5rem), 2200px);
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 8px;
  pointer-events: none;
  image-rendering: auto;
  backface-visibility: hidden;
}

.lightbox__close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 10;
  width: 3rem;
  height: 3rem;
  border: 1px solid transparent;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  font-size: 1.75rem;
  line-height: 1;
  transform: scale(1);
  transition:
    transform var(--hover-duration) var(--hover-ease),
    background var(--hover-duration) var(--hover-ease),
    border-color var(--hover-duration) var(--hover-ease),
    box-shadow var(--hover-duration) var(--hover-ease);
}

.lightbox__close:hover,
.lightbox__close:focus-visible {
  transform: scale(var(--hover-scale));
  background: rgba(255, 255, 255, 0.2);
  border-color: var(--hover-ring);
  box-shadow: 0 0 0 1px var(--hover-ring);
}

/* Resume modal */
.resume-modal {
  position: fixed;
  inset: 0;
  z-index: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  box-sizing: border-box;
}

.resume-modal[hidden] {
  display: none;
}

.resume-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.72);
  backdrop-filter: blur(8px);
}

.resume-modal__panel {
  position: relative;
  z-index: 1;
  width: min(940px, 95vw);
  max-height: 92vh;
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: linear-gradient(180deg, rgba(31, 34, 61, 0.95) 0%, rgba(19, 17, 42, 0.95) 100%);
  box-shadow: 0 26px 85px rgba(7, 7, 20, 0.7);
  opacity: 0;
  transform: scale(0.95) translateY(8px);
  transition:
    opacity 260ms ease,
    transform 260ms ease;
}

.resume-modal.is-open .resume-modal__panel {
  opacity: 1;
  transform: scale(1) translateY(0);
}

.resume-modal__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  height: 3.5rem;
  padding: 0.75rem 0.95rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.resume-modal__title {
  margin: 0;
  color: #fff;
  font-size: clamp(0.92rem, 2vw, 1.04rem);
  font-weight: 700;
  letter-spacing: 0.01em;
}

.resume-modal__stage {
  height: calc(92vh - 3.5rem);
  padding: 0.85rem;
  overflow: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(154, 161, 199, 0.6) rgba(255, 255, 255, 0.08);
}

.resume-modal__image {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 12px;
  background: #fff;
}

.resume-modal__close {
  flex-shrink: 0;
  min-width: 3rem;
  height: 2rem;
  padding: 0 0.82rem;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.26);
  color: #fff;
  font-size: 0.8rem;
  font-weight: 500;
  line-height: 1;
  transform: scale(1);
  cursor: pointer;
  transition:
    transform var(--hover-duration) var(--hover-ease),
    background var(--hover-duration) var(--hover-ease),
    border-color var(--hover-duration) var(--hover-ease),
    box-shadow var(--hover-duration) var(--hover-ease);
}

.resume-modal__close:hover,
.resume-modal__close:focus-visible {
  transform: translateY(-1px);
  background: rgba(255, 255, 255, 0.12);
  border-color: var(--hover-ring);
  box-shadow: 0 0 0 1px var(--hover-ring);
}

/* 视频作品 — 站内放大弹层（不遮挡 B 站底栏进度条） */
.video-hub-modal {
  position: fixed;
  inset: 0;
  z-index: 530;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(0.75rem, 3vw, 1.5rem);
  box-sizing: border-box;
}

.video-hub-modal[hidden] {
  display: none;
}

.video-hub-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.86);
  cursor: pointer;
}

.video-hub-modal__dialog {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: min(480px, 100%);
  max-height: min(94vh, 900px);
  padding: clamp(2.5rem, 4vw, 3rem) clamp(1rem, 3vw, 1.5rem) clamp(1rem, 2vw, 1.25rem);
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: linear-gradient(165deg, #15151f 0%, #0a0a0f 100%);
  box-shadow: 0 28px 90px rgba(0, 0, 0, 0.55);
}

.video-hub-modal__close {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  z-index: 2;
  width: 2.4rem;
  height: 2.4rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.5);
  color: #fff;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  transition:
    transform var(--hover-duration) var(--hover-ease),
    border-color var(--hover-duration) var(--hover-ease),
    box-shadow var(--hover-duration) var(--hover-ease);
}

.video-hub-modal__close:hover,
.video-hub-modal__close:focus-visible {
  transform: scale(var(--hover-scale));
  border-color: var(--hover-ring);
  box-shadow: 0 0 0 1px var(--hover-ring);
}

/* 视频上方留白：主标题 + 小字说明，整体在区域内水平 + 垂直居中 */
.video-hub-modal__head {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-height: clamp(3.5rem, 12vh, 6rem);
  margin-bottom: 0.75rem;
  padding: 0 clamp(2.5rem, 10vw, 3.5rem);
  box-sizing: border-box;
}

.video-hub-modal__title {
  margin: 0;
  text-align: center;
  /* 较上一版大字再缩小 1/4（×0.75） */
  font-size: clamp(1.425rem, 3vw, 1.65rem);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.02em;
  color: #ffffff;
}

.video-hub-modal__lede {
  margin: 0;
  max-width: 36em;
  text-align: center;
  font-size: clamp(0.78rem, 1.65vw, 0.88rem);
  font-weight: 400;
  line-height: 1.5;
  color: #a5b4fc;
}

.video-hub-modal__lede[hidden] {
  display: none;
}

.video-hub-modal__shell {
  position: relative;
  width: 100%;
  max-width: min(420px, 88vw);
  margin: 0 auto;
  aspect-ratio: 9 / 16;
  max-height: min(78vh, 720px);
  border-radius: 12px;
  overflow: hidden;
  background: #000;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.video-hub-modal__iframe {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 108%;
  height: 108%;
  min-width: 100%;
  min-height: 100%;
  border: 0;
  transform: translate(-50%, -50%);
  transform-origin: center center;
}

@media (max-width: 48rem) {
  .video-hub-modal__shell {
    max-height: min(72vh, 640px);
  }

  .video-hub-modal__iframe {
    width: 112%;
    height: 112%;
  }
}

/* Footer */
.site-footer {
  padding: 2rem var(--space);
}

.site-footer__inner {
  max-width: 120rem;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  font-size: 0.8rem;
  color: var(--muted);
}
