*,
::after,
::before {
  box-sizing: border-box;
}
body,
ul,
p,
h1,
h2,
h3,
h4,
h5,
h6 {
  padding: 0;
  margin: 0;
}
body {
  font-family: -apple-system, BlinkMacSystemFont, PingFangSC-Regular, "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 12px;
  color: #111111;
  background-color: var(--color0);
  font-weight: 300;
}
img {
  vertical-align: bottom;
}
ul {
  list-style-type: none;
}
a {
  color: #111111;
  text-decoration: none;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
:root {
  --color0: #DEDEDE;
  --color-black: #111111;
  --color-white: #FBFBFB;
  --color1: #1E5EFF;
  --color2: #0CFD00;
  --color3: #FFED25;
  --color-secondary-text: #898989;
  --color5-secondary-green: #E1FCDF;
  --color6-secondary-blue: #80D0FF;
  --color7-selecting-blue: #5485FF;
  --color4: #FF40B9;
}
.content {
  width: 100%;
  margin: 80px 0 0;
  background: transparent;
}
/* ===============================
   hero media
================================= */
.mediaSection {
  position: fixed;
  top: 80px;
  left: 0;
  width: 100%;
  height: clamp(320px, 42vw, 680px);
  z-index: 1;
  pointer-events: auto;
  transition: opacity 0.08s linear;
}
.mediaCarousel {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: var(--color-black);
}
.mediaSlide {
  position: absolute;
  inset: 0;
  display: block;
  text-decoration: none;
  color: inherit;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.35s ease;
}
.mediaSlide.active {
  opacity: 1;
  pointer-events: auto;
}
.mediaVideo {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  background: var(--color-black);
}
.mediaOverlay {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0);
  transition: background 0.24s ease;
}
.mediaSlide:hover .mediaOverlay {
  background: rgba(0, 0, 0, 0.32);
}
.mediaNav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  padding: 0;
  border: none;
  outline: none;
  box-shadow: none;
  background: transparent;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.24s ease, transform 0.2s ease;
}
.mediaNav:focus,
.mediaNav:focus-visible {
  outline: none;
  box-shadow: none;
}
.mediaSlide:hover .mediaNav {
  opacity: 1;
}
.mediaPrev {
  left: clamp(12px, 1.56vw, 20px);
}
.mediaNext {
  right: clamp(12px, 1.56vw, 20px);
}
.mediaNavCircle {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
}
.mediaNavCircle .iconfont {
  font-size: 16px;
  line-height: 1;
  color: var(--color-white);
  display: block;
}
.mediaNav:hover {
  transform: translateY(-50%) scale(1.05);
}
.mediaText {
  position: absolute;
  left: 50%;
  bottom: clamp(16px, 1.56vw, 20px);
  width: calc(100% - clamp(96px, 12.5vw, 160px));
  text-align: center;
  color: var(--color-white);
  opacity: 0;
  transform: translate(-50%, 6px);
  transition: opacity 0.24s ease, transform 0.24s ease;
}
.mediaSlide:hover .mediaText {
  opacity: 1;
  transform: translate(-50%, 0);
}
.mediaTitle,
.mediaSubtitle {
  margin: 0;
  font-size: clamp(12px, 1.09vw, 14px);
  line-height: 1.4;
  font-weight: 400;
}
.mediaSubtitle {
  margin-top: 2px;
  font-size: clamp(10px, 0.9vw, 12px);
  font-weight: 300;
}
/* fixed media 占位 */
.mediaSpacer {
  width: 100%;
  height: clamp(320px, 42vw, 680px);
}
/* ===============================
   work cards
================================= */
.worksSection {
  position: relative;
  z-index: 2;
  width: 100%;
  margin-top: 0;
  margin-bottom: clamp(72px, 7.8125vw, 132px);
  background: var(--color0);
  padding: clamp(16px, 1.6vw, 32px) 0 clamp(64px, 6.25vw, 104px);
  box-sizing: border-box;
}
.worksSection::before {
  content: '';
  position: absolute;
  left: 0;
  top: -8px;
  width: 100%;
  height: 8px;
  background: var(--color0);
  pointer-events: none;
}
.worksInner {
  width: min(100%, 1440px);
  margin: 0 auto;
  padding: 0 clamp(32px, 5vw, 88px);
  box-sizing: border-box;
  /* 让列表本身还能点击 */
  pointer-events: auto;
}
.worksSectionLabel {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 12px;
  font-size: 18px;
  font-weight: 400;
  color: var(--color1);
  margin: 0 0 clamp(12px, 1.25vw, 20px);
}
.worksSectionDecos {
  display: flex;
  align-items: center;
  gap: 6px;
}
.worksSectionDecos img {
  height: 10px;
  width: auto;
  display: block;
  margin-bottom: 4px;
}
.worksGrid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, clamp(300px, 30vw, 460px)));
  column-gap: clamp(18px, 2.03125vw, 36px);
  row-gap: clamp(32px, 3.59375vw, 64px);
  justify-content: center;
}
.workCard {
  display: block;
  min-width: 0;
}
.workThumbLink {
  display: block;
  text-decoration: none;
  color: inherit;
}
.workThumb {
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--color5-secondary-green);
}
.workThumb img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transform: scale(1);
  transform-origin: center center;
  transition: transform 0.35s ease;
}
.workThumb:hover img {
  transform: scale(1.2);
}
.workInfo {
  margin-top: clamp(10px, 0.9375vw, 16px);
  text-align: left;
  cursor: inherit;
}
.workTitle,
.workSubtitle {
  margin: 0;
  font-weight: 400;
}
.workTitle {
  font-size: clamp(13px, 1.09vw, 14px);
  line-height: 1.4;
  color: var(--color-black);
}
.workSubtitle {
  color: var(--color-secondary-text);
  font-size: clamp(11px, 0.94vw, 12px);
  line-height: 1.35;
  margin-top: 2px;
}
/* ===============================
   Responsive - work
================================= */
@media (max-width: 1200px) {
  .content {
    margin-top: 80px;
  }
  .mediaSection {
    height: 42vw;
  }
  .mediaSpacer {
    height: 42vw;
  }
  .worksSection {
    padding: 32px 0 72px;
  }
  .worksSection::before {
    height: 32px;
  }
  .worksInner {
    width: 100%;
    padding: 0 32px;
  }
  .worksGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 24px;
    row-gap: 32px;
    justify-content: stretch;
  }
}
@media (max-width: 768px) {
  .content {
    margin-top: 64px;
  }
  .mediaSection {
    top: 64px;
    height: 56.25vw;
  }
  .mediaSpacer {
    height: 56.25vw;
  }
  .mediaPrev {
    left: 12px;
  }
  .mediaNext {
    right: 12px;
  }
  .mediaText {
    width: calc(100% - 48px);
    bottom: 14px;
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, 6px);
    transition: opacity 0.24s ease, transform 0.24s ease, visibility 0s linear 0.24s;
  }
  .mediaSlide:hover .mediaText {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
    transition: opacity 0.24s ease, transform 0.24s ease, visibility 0s linear 0s;
  }
  .mediaTitle {
    font-size: 12px;
  }
  .mediaSubtitle {
    font-size: 10px;
    font-weight: 300;
  }
  .worksSection {
    margin-bottom: 56px;
    padding: 10px 0 48px;
  }
  .worksSection::before {
    top: -6px;
    height: 6px;
  }
  .worksInner {
    padding: 0 16px;
  }
  .worksGrid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .workInfo {
    margin-top: 10px;
  }
  .workTitle {
    font-size: 13px;
  }
  .workSubtitle {
    font-size: 11px;
  }
}
