/* @font-face {
    font-family: 'extenda';
    src:url("https://static.igem.wiki/teams/5184/fonts/extenda-40-hecto-trial-webfont.woff")
    
} */
/* <element class = 'textbox_style'> */
/* font setting */
/* nomal content*/
@font-face {
  font-family: 'Noto';
  src: url('https://static.igem.wiki/teams/5614/imagebase/description/fonts/notoznamennymusicalnotation-regular.woff');
  font-weight: normal;
  font-style: normal;
}

/* large title*/
@font-face {
  font-family: 'Alfa';
  src: url('https://static.igem.wiki/teams/5614/imagebase/description/fonts/alfaslabone-regular.woff');
  font-weight: normal;
  font-style: normal;
}

/* small title*/
@font-face {
  font-family: 'Volkhov';
  src: url('https://static.igem.wiki/teams/5614/imagebase/description/fonts/volkhov-regular.woff');
}

/* animation */
@keyframes shine {
  0% {
    transform: translateX(0);
  }

  25% {
    transform: translateX(0);
  }

  35% {
    transform: translateX(1vw);
  }

  45% {
    transform: translateX(0);
  }

  55% {
    transform: translateX(1vw);
  }

  65% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(0);
  }
}

@keyframes slow-spin {
  100% {
    rotate: 0deg;
  }

  50% {
    rotate: 180deg;
  }

  0% {
    rotate: 360deg;
  }
}

/* @keyframes blink {
  0%   { box-shadow: 0 0 5px #10521D; }
  50%  { box-shadow: 0 0 20px #2ecc71; }
  100% { box-shadow: 0 0 5px #10521D; }
} */
/* @keyframes blink {
  0%   { background: #10521D; }
  50%  { background: #2ecc71; }
  100% { background: #10521D; }
} */
@keyframes blink {
  0% {
    opacity: 1;
  }

  50% {
    opacity: 0.4;
  }

  100% {
    opacity: 1;
  }
}

@keyframes press-button {
  0% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(0.5vw);
  }

  100% {
    box-shadow: #0702028d 0.8vw 0.8vw 0.5vw;
    transform: translateY(-0.5vw);
  }
}

@keyframes after-chosen {
  from {
    box-shadow: inset 0vw 0vw 0vw 1vw #faf2dD;
  }

  to {
    box-shadow: none;
  }
}

@keyframes glow {
  0% {
    filter: drop-shadow(0 0 3px #ffffff) drop-shadow(0 0 6px #ffffff);
  }

  50% {
    filter: drop-shadow(0 0 10px #ffffff) drop-shadow(0 0 20px #ffffff);
  }

  100% {
    filter: drop-shadow(0 0 3px #ffffff) drop-shadow(0 0 6px #ffffff);
  }
}

@keyframes rdmimg-squish {
  0% {
    transform: rotate(0) scale(1);
  }

  45% {
    transform: rotate(-3deg) scale(.98) translateY(1px);
  }

  100% {
    transform: rotate(0) scale(1);
  }
}

@keyframes rdmimg-fadeHost {
  0% {
    opacity: 1
  }

  90% {
    opacity: 1
  }

  100% {
    opacity: 0
  }
}

@keyframes rdmimg-cartoonPuff {
  0% {
    opacity: 0;
    transform: translate(0, 0) scale(0.4);
  }

  20% {
    opacity: 1;
    transform: translate(0, 0) scale(1.1);
  }

  60% {
    opacity: 0.9;
    transform: translate(var(--tx), var(--ty)) scale(1);
  }

  100% {
    opacity: 0;
    transform: translate(var(--t2x), var(--t2y)) scale(1.2);
  }
}

@keyframes Vinegarrotate {
  from {
    opacity: 0;
    transform: rotate(-90deg);
  }

  to {
    opacity: 1;
    transform: rotate(0deg);
    /* 顺时针旋转90度 */
  }
}

@keyframes scroll2 {
  0% {
    transform: translateX(5vw);
  }

  100% {
    transform: translateX(-90%);
  }
}

@keyframes Sodarotate {
  from {
    opacity: 0;
    transform: rotate(90deg);
    /* 圆心位置（相对元素左上角） */
  }

  to {
    opacity: 1;
    transform: rotate(0deg);
    /* 顺时针旋转90度 */
  }
}

@keyframes Bleachrotate {
  from {
    opacity: 0;
    transform: rotate(-90deg);
  }

  to {
    opacity: 1;
    transform: rotate(0deg);
  }
}

@keyframes Peroxiderotate {
  from {
    opacity: 0;
    transform: rotate(90deg);
  }

  to {
    opacity: 1;
    transform: rotate(0deg);
  }
}

@keyframes pop-in {
  0% {
    opacity: 0;
    /* transform: translateY(-2vw); */
    text-shadow: none;
  }

  50% {
    opacity: 1;
    /* transform: translateY(1vw); */
    text-shadow: #333333 10px 10px 0px;
  }

  90% {
    opacity: 0;
    /* transform: translateY(0vw); */
    text-shadow: none;
  }
}

/* 浮动动画 */
@keyframes float {

  0%,
  100% {
    transform: translateY(0)
  }

  50% {
    transform: translateY(10px);
  }
}

@keyframes float-random {
  0% {
    transform: translateY(0) translateX(0);
  }

  25% {
    transform: translateY(-20px) translateX(5px);
  }

  50% {
    transform: translateY(-40px) translateX(-5px);
  }

  75% {
    transform: translateY(-20px) translateX(5px);
  }

  100% {
    transform: translateY(0) translateX(0);
  }
}

@keyframes floating-up {
  0% {
    transform: translateY(0) translateX(0.8vw);
  }

  25% {
    transform: translateY(1vw) translateX(-0.8vw);
  }

  50% {
    transform: translateY(2vw) translateX(0.8vw);
  }

  75% {
    transform: translateY(1vw) translateX(-0.8vw);
  }

  100% {
    transform: translateY(0) translateX(0.8vw);
  }
}

@keyframes floating-down {
  0% {
    transform: translateY(0) translateX(0.5vw);
  }

  25% {
    transform: translateY(-1vw) translateX(-0.5vw);
  }

  50% {
    transform: translateY(-2vw) translateX(0.5vw);
  }

  75% {
    transform: translateY(-1vw) translateX(-0.5vw);
  }

  100% {
    transform: translateY(0) translateX(0.5vw);
  }
}

@keyframes smoother-float {

  0%,
  100% {
    transform: translateY(0.3vw);
  }

  50% {
    transform: translateY(-0.3vw);
  }
}

@keyframes scroll {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(calc(-100% - 20px));
    /* 滚动到一半（减去半个间距） */
  }
}

@keyframes scroll-mobile {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(calc(-150% - 30px));
  }
}

@keyframes flip {
  0% {
    transform: rotateY(0);
  }

  50% {
    transform: rotateY(90deg);
  }

  100% {
    transform: rotateY(180deg);
    /* 完全翻转 */
  }
}

@keyframes unflip {
  0% {
    transform: rotateY(180deg);
  }

  50% {
    transform: rotateY(90deg);
  }

  100% {
    transform: rotateY(0deg);
    /* 完全翻转 */
  }
}

@keyframes rdmimg-popIn {
  0% {
    opacity: 0;
    transform: translateX(32%) rotate(3deg) scale(.9);
    filter: saturate(.95) contrast(.98);
  }

  60% {
    opacity: 1;
    transform: translateX(-2%) rotate(-1deg) scale(1.02);
  }

  100% {
    opacity: 1;
    transform: translateX(0) rotate(0deg) scale(1);
    filter: none;
  }
}


li {
  margin-top: 2vw;
}


.pdf-container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  margin-top: 2vw;
}

.iframe-style {
  width: 95%;
  height: 100%;
  border: none;
}

/* background */
body {
  padding-top: 0px;
  margin: 0 !important;
  padding: 0 !important;
  background: #184525;
  /* 滚动时背景固定 */
  /* background-color: #eaebdb; */
  /* 兜底色 */
  padding: 20px;
  /* 增加内边距以扩展盒子 */
  margin-bottom: 20px;
  /*给背景框底部留出空间 */
  background-attachment: fixed;
  /* Keeps background fixed while scrolling */
  z-index: -1;
  /* background behind your content */
  position: relative;
  overflow-x: hidden;
}

/* banner */
.banner::after {
  content: var(--banner-title, '');
  font-size: 6vw;
  font-family: 'Alfa';
  padding-top: 15%;
  padding-left: 4%;
  color: #ffc252;
  text-shadow: 0.3vw 0.3vw #c36a15;
  inset: 1;
  position: absolute;
  top: var(--alt-top, 25%);
  width: 100%;
  height: 100%;
}

.banner {
  position: relative;
  /* margin-left: 5vw; */
  /* margin-top: 3vw; */
  height: var(--alt-height, 55vh);
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/banner2.webp");
  background-position: bottom;
  background-repeat: no-repeat;
  background-size: contain;
  /* z-index: 10; */
  /* margin-bottom: 10vh; */
}

.banner::before {
  content: "";
  inset: 0;
  background:
    var(--link, url("")) var(--banner-pos, center) / var(--banner-size, cover) no-repeat;
  position: absolute;
  top: 0%;
  width: 100%;
  height: 100%;
  z-index: -1;
}

html,
body {
  height: 100%;
  min-height: 100vh;
}

.text-overlay {
  position: relative;
  /* 使其绝对定位 */
  top: 50%;
  /* 使其居中 */
  left: 50%;
  transform: translate(-50%, -50%);
  /* 居中对齐文本 */
  text-align: left;
  /* 居中对齐文本 */
  z-index: 0
}

/* footer */
.social-media-positioned {
  position: absolute;
  right: 15px;
  top: 0;
  transform: translateY(-10%);
}

footer a {
  color: white;
  font-weight: bold;
  text-decoration: none;
}

footer a:hover {
  color: white;
  text-decoration: underline;
}

.custom-underline {
  /*标题下划线*/
  width: 36%;
  border-top: 3px solid;
  color: #faf2dD;
  margin-top: -1vw;
  margin-left: 30vw;
}

.me-3 {
  /*左侧的logo*/
  margin-left: 2vw;
  margin-top: -2vw;
  margin-right: 2vw;
}

.mt-lg-0.mt-sm-3 {
  /*footer小标题*/
  font-family: 'Volkhov';
}

.footer-title {
  font-size: 2.5rem;
  font-weight: 700;
  letter-spacing: 1px;
  color: #fff;
  text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.3);
  font-family: 'Volkhov';
  margin-top: -2vw;
  margin-right: 5vw;
  line-height: 60px;
  margin-left: 0vw;
  /*5*/
}

.footer-bg {
  /* position: relative; */
  background-image: url('https://static.igem.wiki/teams/5614/imagebase/footer/footergreen.webp');
  background-repeat: no-repeat;
  background-position: bottom center;
  background-size: 100% 100%;
  z-index: 10;
  overflow: visible !important;
  width: 100vw;
  height: auto;
  margin-left: -2vw;
  margin-top: 10vw;
  padding-top: 10vw;
  padding-bottom: 30px;
  margin-bottom: 0;
}

.shift-left {
  padding-right: 10vw;
  margin-left: 5vw;
}

/* .footer-bg .col-lg-4 {
  padding-top: 120px;
}

.footer-bg .col-lg-3 {
  padding-top: 120px;
}

.footer-bg .col-lg-5 {
  padding-top: 100px;
} */
/* Footer Scrolling Image Container */
.scroll-wrapper {
  width: 100%;
  margin-top: 0.5rem;
  overflow-y: hidden;
  overflow-x: hidden;
  position: relative;
  /* background-color: white; */
  border-radius: 12px;
  padding: 15px;
}

.scroll-content {
  display: flex;
  gap: 20px;
  margin: 0;
  padding: 0;
  list-style: none;
  animation: scroll 65s linear infinite;
  width: max-content;
}

.footer-img {
  height: 120px;
  width: auto;
  object-fit: contain;
  opacity: 0.9;
  transition: all 0.3s ease;
}

.footer-img:hover {
  opacity: 1;
  transform: scale(1.05);
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .footer-scroll-content {
    animation: scroll-mobile 15s linear infinite;
  }

  .footer-img {
    height: 40px;
  }
}

.social-media-icons {
  position: relative;
  top: 5px;
  right: 5px;
  flex-direction: column;
  gap: 10px;
  z-index: 10;
}

.social-media-icons img {
  max-width: 100%;
  height: 50px;
  margin: 0;
  padding: 0;
}

/*sidebar*/
#sidebar-container {
  position: fixed;
  z-index: 3;
}

.sidebar {
  position: fixed;
  top: 0;
  left: 0;
  /* Start sticking after 80px */
  width: 15vw;
  height: 100%;
  /* background-color: #05590b; */
  /* border-radius: 15px;  */
  /* transition: all 0.6s ease; */
  overflow: auto;
  /* margin: 20px 0 0 -50px; */
  background: #4d7b5c;
  ;

  /* box-shadow: 2vw 0vw #fff3cb; */
  /* margin-left: 1.5vw; */
}

.sidebar::-webkit-scrollbar-thumb {
  background: linear-gradient(to right, #08a325, #177c45);
  border-radius: 1vw;
}

.sidebar::-webkit-scrollbar-track {
  background: #eeeeee00;
}


.sidebar::-webkit-scrollbar {
  width: 0.5vw;
  /* height: 10vw; */
}

/* @keyframes unfold {
  0% {
    background: url('https://static.igem.wiki/teams/greatbay-scie/imagebase/description/sidebar/sidebar-3.webp');
    background-position: 50% 50%;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    width: 18vw;
    margin-left: 1vw;
  }

  50% {
    background: url('https://static.igem.wiki/teams/greatbay-scie/imagebase/description/sidebar/sidebar-2.webp');
    background-position: 50% 50%;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    width: 14vw;
    margin-left: 1vw;
  }

  100% {
    background: url('https://static.igem.wiki/teams/greatbay-scie/imagebase/description/sidebar/sidebar-1.webp');
    background-position: 50% 50%;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    width: 10vw;
    margin-left: 1.5vw;
  }
}

@keyframes fold {
  0% {
    background: url('https://static.igem.wiki/teams/greatbay-scie/imagebase/description/sidebar/sidebar-1.webp');
    background-position: 50% 50%;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    width: 10vw;
    margin-left: 1.5vw;
  }

  50% {
    background: url('https://static.igem.wiki/teams/greatbay-scie/imagebase/description/sidebar/sidebar-2.webp');
    background-position: 50% 50%;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    width: 14vw;
    margin-left: 1vw;
  }

  100% {
    background: url('https://static.igem.wiki/teams/greatbay-scie/imagebase/description/sidebar/sidebar-3.webp');
    background-position: 50% 50%;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    width: 18vw;
    margin-left: 1vw;
  }

} */
.sidebar #link-container {
  height: max-content;
  width: max-content;
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  margin: 6vw 0 3vw 2vw;
  transition: opacity 0.6s 0.4s ease-in-out;
  text-align: left;
  overflow: visible;
  /* pointer-events: none; */
}

/* .sidebar link-container:hover {
  opacity: 1;
} */
.sidebar a {
  color: #faf2dD;
  margin: 2vw 0 0 0;
  transition: all 0.3s ease;
  white-space: nowrap;
  /* text-shadow: #000000 3px 3px 2px; */
  /* font */
  line-height: normal;
  font-family: 'Alfa';
  font-size: 1.2vw;
  font-style: normal;
  line-height: 1.9vw;
  display: flex;
  flex-direction: row;
  gap: 1.3vw;
  text-decoration: underline #de8c59;
  text-decoration-thickness: 0.3vw;
}

.sidebar #link-container div.bubble-title {
  animation: shine 2s ease infinite;
  width: 0;
  height: 0;
  border-top: 0.5vw solid transparent;
  border-bottom: 0.5vw solid transparent;
  border-left: 0.7vw solid #faf2dD;
  background-color: transparent;
  border-radius: 0;
}

.sidebar #link-container a.active div.bubble-title {
  animation: none;
  background-color: transparent;
  border-left: 0.7vw solid #65b874;
}

.sidebar a.active {
  transform: translateX(0.5vw);
  color: #65b874;
  text-decoration: underline #cde7ac;
  text-decoration-thickness: 0.5vw;
}

.sidebar #link-container a.active div {
  background-color: #65b874;
}

.sidebar #link-container div {
  margin: 0.5vw -0.5vw -0.5vw -0.7vw;
  height: 1vw;
  width: 1vw;
  background-color: #fff;
  /* 圆的背景颜色 */
  border-radius: 50%;
  transition: all 0.3s ease;
}

/* menu */
.custom-navbar {
  background: #faf2dD;
  padding: 0;
  width: 100%;
  height: 5vw;
  top: 0;
  left: 0;
  position: fixed;
  border-radius: 0;
  border: none;
  box-shadow: none;
  overflow: visible;
  z-index: 1000;
  /*border-bottom: 0.9vw solid #ff9140;*/
}

.custom-navbar a {
  /* font-size: large !important; */
  font-family: 'Alfa';
}

.icon-section {
  background: transparent;
  width: 80px;
  height: 100%;
  margin-left: 2vw;
  margin-top: 0.5vw;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0;
}

.nav-section {
  display: flex;
  flex-grow: 1;
  gap: 0px;
  margin-left: 20vw;
}

.navItem {
  flex: 1;
  position: relative;
  /* width: 10%; */
  height: 100%;
  padding: 0.8vw;
  background: transparent;
  transition: all 0.3s ease;
  border-radius: 0;
}

.navItem:hover {
  background: #ef7919;
}

.navLink {
  color: #ff9140 !important;
  text-decoration: none;
  /* padding: 12px 20px; */
  display: block;
  font-weight: 500;
  font-size: 1.1vw !important;
  transition: all 0.3s ease;
  text-align: center;
  height: 3vw;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.navItem:hover .navLink {
  color: #faf2dD !important;
}

.dropdownMenu {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  width: 100%;
  background: #ef7919;
  backdrop-filter: blur(10px);
  border: 1px solid #faf2dD(255, 255, 255, 0.1);
  border-radius: 0;
  opacity: 0;
  transform: translateY(-20px);
  transition: all 0.3s ease;
  z-index: 1000;
  display: flex;
  flex-direction: column;
  /* padding: 0.9vw 0; */
  pointer-events: none;
  text-align: center;
}

.navItem:hover .dropdownMenu {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.dropdown-link {
  color: #faf2dD;
  padding: 0.8vw 0.5vw;
  text-decoration: none;
  display: block;
  transition: all 0.3s ease;
  font-size: 0.8vw !important;
  display: inline-block;
}

.dropdown-link:hover {
  background: rgba(0, 0, 0, 0.249);
  color: #faf2dD;
  /* font-size: 1.1vw !important; */
  display: inline-block;
}

.token-icon {
  margin-top: 0;
  width: 3.8vw;
  height: 3.8vw;
  background-image: url('https://static.igem.wiki/teams/5614/imagebase/menu/teamname-2-1.webp');
  background-size: 100% 100%;
  background-repeat: no-repeat;
  background-position: center;
  display: inline-block;
}

.icon-section {
  margin-top: 0.7vw;
  margin-left: 6vw;
  width: 13vw;
  height: 3.5vw;
  /* align-items: center; */
  display: flex;
  flex-direction: row;
  gap: 1vw;
}

.icon-section a {
  font-family: "Alfa";
  color: #045c32;
  font-size: 2cqw !important;
  text-decoration: none;
  display: inline-block;
}

/* header */
header {
  padding-top: 8rem;
  padding-bottom: 5rem;
}

.section {
  scroll-margin-top: 5vw;
  margin-top: 5vw;
}

/* .title-container1::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  z-index: 1;
} */
.segment1,
.segment2,
.segment3,
.segment4 {
  /* flex: 1; */
  height: 100%;
  /* margin: 0 2px; */
  position: absolute;
}

.segment1 {
  background-color: #137c45;
  border-radius: 5vw;
  z-index: -2;
  width: 60%;
  padding: 2% 2%;
}

.segment2 {
  background-color: #b7dfa1;
  border-radius: 5vw;
  z-index: -3;
  /* margin-top: -10vw; */
  width: 70%;
}

.segment3 {
  background-color: #faf2dD;
  border-radius: 5vw;
  z-index: -4;
  width: 80%;
}

.segment4 {
  background-color: #ff9140;
  border-radius: 5vw;
  width: 90%;
  z-index: -5;
}

.header_word_style {
  color: #ffc053;
  font-family: 'Alfa';
  position: absolute;
  /*top: 50%;
  left: 50%;*/
  font-size: 2.5vw;
  transform: translate(5%, 5%);
  white-space: nowrap;
  width: 60%;
  padding: 0% 2%;
}

/* .text-box-background {
  position: relative;
  text-align: center; */
/* padding: 20% 100px 19% 100px; */
/* padding-right: 1vw;
  padding-bottom: 1vw;
  height: auto;
  width: 100%;
  z-index: -1;
  background: url('https://static.igem.wiki/teams/greatbay-scie/imagebase/description/body-textbox/background8.webp') 50% 50% / 107% 30vw repeat-y space,
    url('https://static.igem.wiki/teams/greatbay-scie/imagebase/description/body-textbox/shadow1.webp') 50% 50% / 107% 103% no-repeat;
  overflow: visible;
} */
/* all decorations of normal text box */
/* .mold-deco-top,
.mold-deco-bottom {
  position: absolute;
  width: 30cqw;
  height: 17cqw;
  pointer-events: none;
  z-index: 5;
} */
/* .mold-deco-top {
  top: -5cqw;
  left: -3cqw;
  background: url('https://static.igem.wiki/teams/greatbay-scie/imagebase/description/body-textbox/newdeco/deco3.webp') center / contain no-repeat;
}

.mold-deco-bottom {
  bottom: -2.5cqw;
  right: -3cqw;
  background: url('https://static.igem.wiki/teams/greatbay-scie/imagebase/description/body-textbox/newdeco/deco2.webp') center / contain no-repeat;
} */
/*background of normal text box*/
.text-box-background2 {
  position: absolute;
  height: 100%;
  width: 100%;
  left: 1vw;
  top: 1vw;
  /* background-repeat: ; */
  z-index: -1;
  background-color: #ff9140;
  /* background: url('https://static.igem.wiki/teams/greatbay-scie/imagebase/description/body-textbox/background8-1.webp') 50% 50% / 107% 40vw repeat-y; */
  /* box-shadow: #363636 0px 0px 23px; */
  /* url('https://static.igem.wiki/teams/greatbay-scie/imagebase/description/body-textbox/shadow1.webp') 50% 50% / 107% 103% no-repeat; */
  /* box-shadow: #000000 1px 2px 10px; */
  overflow: visible;
  border-radius: 0.5vw;
}

.text-box1 {
  position: relative;
  text-align: center;
  padding: 5% 5% 5% 5%;
  margin-left: 9vw;
  height: auto;
  width: 88%;
  /* background: url('https://static.igem.wiki/teams/greatbay-scie/imagebase/description/body-textbox/background7-1.webp') center / 107% 30vw repeat-y; */
  background: linear-gradient(to bottom,
      #fcf2d0,
      #c5e3aa);
  white-space: normal;
  overflow: visible;
  border-radius: 0.5vw;
  /* box-shadow: #363636 0px 0px 23px; */
}

.text-box1::before {
  /*阴影*/
  content: '';
  position: absolute;
  top: -10%;
  /* 调整阴影偏移 */
  left: -10px;
  /* 调整阴影偏移 */
  right: -20px;
  /* 调整阴影偏移 */
  bottom: -11%;
  /* 调整阴影偏移 */
  /* background: url('https://static.igem.wiki/teams/greatbay-scie/imagebase/description/body-textbox/shadow.webp') center / 107% 100% no-repeat; */
  /* color: ; */
  z-index: -1;
}

/* content text style */
.normal-text {
  color: #6F481F !important;
  font-size: 1.2vw !important;
  line-height: 1.5 !important;
  font-family: 'Noto';
  text-align: left !important;
  scroll-margin-top: 100px;
}

/* text under the image */
.annotation {
  color: #414141;
  font-size: 1.1vw;
  line-height: 1.2 !important;
  font-family: 'Times New Roman', Times, serif;
  text-align: center;
  padding-right: 150px;
  padding-left: 150px;
  margin-top: 1.5vh;
  margin-bottom: 1.5vh;
}

/*
.text-link--external {
  display: inline;
}
  */
.text-link {
  position: relative;
  color: #7aaf72;
  /* default color */
  transition: color 0.3s ease;
  pointer-events: all;
  text-decoration: none;
  scroll-margin-top: 5vw;
}

/* Underline effect */
.text-link::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -2px;
  /* adjust for spacing */
  width: 0%;
  height: 2px;
  background-color: currentColor;
  transition: width 0.3s ease;
}

/* Hover state */
.text-link:hover {
  color: #b38207;
}

.text-link:hover::after {
  width: 100%;
}

.text-link:target[id*="ref"] {
  background: #e4c56b;
  border-radius: 2px;
}

/*
.img-in-box {
  max-width: 800px;
  max-height: 400px; 
  width: auto;
  height: auto;
}
*/
/* Image in text box */
.img-in-box,
.img-zoom {
  max-width: 80%;
  /* Shrinks image if it's wider than 80% of <p> */
  min-width: 40%;
  /* Enlarge image if it's narrower than 40% of <element class=.text-box1> */
  height: auto;
  /* Maintains aspect ratio */
  display: block;
  /* Makes the image a block element */
  margin: 1vw auto;
  /* Horizontally centers the image */
  border: solid white 1vw;
  border-radius: 1.2vw;
  background-color: white;
}

.img-zoom {
  cursor: zoom-in;
}

/* ===== Fullscreen viewer ===== */
#imgViewer[hidden] {

  display: none;
}

#imgViewer {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  grid-template-rows: 1fr;
  grid-template-columns: 1fr;
}

#imgViewer .iv-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.82);
  cursor: zoom-out;
}

/* 图片舞台区：用 CSS 变量控制平移和缩放 */
#imgViewer .iv-stage {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

#imgViewer #iv-img {
  max-width: 90vw;
  /* 初始自适应窗口 */
  max-height: 90vh;
  /* -webkit-user-select: none;
  user-select: none; */
  cursor: grab;
  transform: translate(var(--iv-x, 0px), var(--iv-y, 0px)) scale(var(--iv-scale, 1));
  transition: transform 120ms ease;
  /* 拖拽时会移除过渡 */
  will-change: transform;
  border-radius: 8px;
  background: #fff;
  /* 若原图透明，边界更清晰 */
}

#imgViewer .iv-toolbar {
  position: absolute;
  inset: auto 0 24px 0;
  z-index: 2;
  display: flex;
  gap: 10px;
  justify-content: center;
  pointer-events: none;
  /* 只让按钮可点 */
}

#imgViewer .iv-btn {
  pointer-events: auto;
  min-width: 44px;
  height: 44px;
  padding: 0 12px;
  border: none;
  border-radius: 10px;
  font-size: 22px;
  line-height: 44px;
  background: rgba(255, 255, 255, 0.95);
  color: #111;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
  cursor: pointer;
}

#imgViewer .iv-btn:active {
  transform: translateY(1px);
}

#imgViewer .iv-close {
  font-size: 24px;
}

/* 拖拽中手势 */
#imgViewer .dragging #iv-img {
  cursor: grabbing;
  transition: none;
}

/* 可选：正文里的缩略图鼠标手势 */
.img-zoom {
  cursor: zoom-in;
}


.img-heading {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background-position: center;
}

.title-inspi {
  position: relative;
  width: 100%;
  height: 30vw;
  background: url('https://static.igem.wiki/teams/greatbay-scie/imagebase/description/large-title/inspi-title.webp') 50% 50% / 100% 170% no-repeat;
  font-family: 'WhiteSugar';
  color: #3c2e01;
  margin-top: -15vw;
  padding-top: 0vw;
  padding-left: 11vw;
  z-index: 2;
  border-color: transparent;
}

.title-inspi h3 {
  position: relative;
  top: 4cqw;
  text-align: left;
  font-size: 5cqw;
}

.title-inspi img {
  /* position: relative;
  right: 0vw;
  top: 12vw; */
  transform: translateY(-4.8cqw) translateX(31cqw);
  height: 8cqw;
  width: 9cqw;
  transition: opacity 0.3s ease;
  z-index: 2;
}

.inspi-text-box {
  /* display: none; */
  /* position: absolute;
  top: 100vw; 
  left: 0vw; */
  margin-top: -23%;
  opacity: 0;
  /* transform: translateY(0); */
  background-image: url('https://static.igem.wiki/teams/greatbay-scie/imagebase/description/body-textbox/background-inspiration.webp');
  background-position: 50% 80%;
  background-repeat: no-repeat;
  background-size: 100% 118%;
  height: 0vw;
  width: 100%;
  transition: all 0.8s ease 0.2s;
  /* z-index: 1; */
  /* padding: 23% 20vw; */
}

/* text box of abs */
.text-box-abs {
  text-align: left;
  /* background-image: url('https://static.igem.wiki/teams/greatbay-scie/imagebase/description/body-textbox/textbox2.webp'); */
  /* height: 60vw; */
  width: 90vw;
  /* background-repeat: no-repeat;
  background-size: 100% 100%;
  background-position: 50% 50%; */
  /* margin-bottom: 300px;
  margin-top: -10vw;
  margin-left: auto; */
  padding: 2vw 10vw 0vw 9vw;
  /* margin-top: 8vw; */
}

strong {
  font-weight: 1000 !important;
}

.text-box-abs strong {
  /* font-weight: 1000; */
  font-weight: bolder !important;
  /* text-decoration-line: underline !important; */
  color: #ffc053;
}

.text-box-abs .annotation {
  color: rgb(200, 200, 200);
}

.text-box-abs hr {
  width: 70vw;
  /* margin: 0.9vw 3vw; */
  /* color: #ff9140; */
  border: none;
  opacity: 1;
  border-top: #ff9140 0.4vw solid;
}

.text-box-abs p {
  color: transparent;
  font-size: 1.4vw !important;
  line-height: 1.5 !important;
  font-family: 'Noto';
  text-align: left !important;
  /* scroll-margin-top: 100px; */
  background: linear-gradient(to bottom, #fdf2d0, #b7dfa1);
  /* 设置渐变背景 */
  /* background: #fcf2d0; */
  /* -webkit-background-clip: text; */
  background-clip: text;
}

.text-box-abs h3 {
  /* font-family: 'WhiteSugar';
  color: #3c2e01;
  position: relative;
  font-size: 4vw; */
  margin-left: -3vw;
  margin-top: -3vw;
  /* scroll-margin-top: 10vw; */
}

/* Secondary header style and font */
.secondary-header-text-style {
  color: #2e5e3c;
  text-decoration: none;
  margin: none;
  transition: none;
  white-space: normal;
  /* text-shadow: #3d3801 1px 0 10px; */
  /* font */
  line-height: normal;
  font-family: 'Volkhov';
  font-size: 2.1vw;
  font-style: normal;
  font-weight: bolder;
  text-align: left;
  margin: 2vw 0vw;
}

.tertiary-header-text-style {
  color: #329b3d;
  font-family: 'Volkhov';
  line-height: normal;
  font-size: 1.8vw;
  font-style: normal;
  font-weight: bold;
  text-align: left;
  white-space: normal;
  scroll-margin-top: 7vw;
  margin-bottom: 3vw;
  margin-top: 1vw;
}

.quaternary-header-text-style {
  color: #5fb64e;
  font-family: 'Volkhov';
  line-height: normal;
  font-size: 1.6vw;
  font-style: normal;
  font-weight: normal;
  text-align: left;
  white-space: normal;
  scroll-margin-top: 7vw;
}

/* Headings */
.heading2nd,
.heading3rd,
.heading4th,
.heading5th,
.heading6th {
  color: #2e5e3c;
  text-decoration: none;
  transition: none;
  white-space: normal;
  line-height: 60px;
  font-family: 'Volkhov';
  font-style: normal;
  font-weight: bold;
  text-align: left;
}

.heading2nd {
  font-size: 2vw;
}

.heading3rd {
  font-size: 1.8vw;
}

.heading4th {
  font-size: 1.5vw;
}

.heading5th {
  font-size: 1.2vw;
}

.heading6th {
  font-size: 1vw;
}

/* Table */
table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  margin: 16px 0;
  font-size: 14px;
  background-color: #fff;
}

caption {
  caption-side: top;
  font-weight: bold;
  margin-bottom: 8px;
  text-align: left;
}

th,
td {
  border: 1px solid #ccc;
  padding: 10px 12px;
  text-align: left;
  vertical-align: middle;
}

th {
  background-color: #f2f2f2;
  font-weight: bold;
}

/* tr:nth-child(even) {
  background-color: #fafafa;
}

tr:hover {
  background-color: #f1f7ff;
} */

ul,
ol,
th,
td {
  color: #6F481F;
  font-size: 1.2vw;
  line-height: 1.5;
  font-family: 'Noto';
  text-align: left;
  scroll-margin-top: 100px;
}

/*******************************************************************************
                                   layout
 ********************************************************************************/
#progressBar {
  position: fixed;
  top: 0;
  /* This will be set by JS dynamically */
  left: 0;
  height: 5px;
  background: linear-gradient(90deg, #ff9140, #ffc053);
  transition: width 0.2s ease;
  z-index: 0;
}

#progressIcon {
  position: absolute;
  top: 50%;
  right: 0;
  transform: translate(50%, -50%);
  /* Slightly beyond the right edge and centered vertically */
  width: auto;
  /* Adjust size as needed */
  height: 50px;
  pointer-events: none;
}

#scrollImage {
  position: fixed;
  bottom: 5px;
  left: 0px;
  width: 236px;
  /* Frame width */
  height: 136px;
  /* Frame height */
  background-image: url('https://static.igem.wiki/teams/greatbay-scie/imagebase/layout/scroll-frames3.webp');
  background-repeat: no-repeat;
  background-size: calc(236px * 4) auto;
  /* total size of sprite sheet */
  background-position: 0 0;
  z-index: 9999;
  cursor: pointer;
  transition: left 0.03s linear;
}

#backtotop {
  position: fixed;
  bottom: 20px;
  right: 20px;
  width: 60px;
  height: 60px;
  cursor: pointer;
  overflow: visible;
  z-index: 9999;
}

#backtotop svg {
  transform: rotate(-90deg);
  position: absolute;
  top: 0;
  left: 0;
}

#bt-img-default {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 28px;
  height: 28px;
  transform: translate(-50%, -50%);
}

#bt-img-hover {
  position: absolute;
  top: 50%;
  left: 50%;
  max-width: none;
  width: 120px;
  height: 120px;
  transform: translate(-50%, -50%);
}

#bt-img-hover {
  opacity: 0;
}

#backtotop:hover #bt-img-default {
  opacity: 0;
}

#backtotop:hover #bt-img-hover {
  opacity: 1;
}

/*
.box-container {
  position: fixed;
  left: 0;
  bottom: 15vw;
  width: 100px;
  height: auto;
  cursor: pointer;
  user-select: none;
  z-index: 999;
}

.box {
  width: 100%;
  transition: transform 0.4s ease;
  z-index: inherit;
}

.box.open {
  transform: translateY(-8px) scale(1.05) rotate(-2deg);
}

.rdmpop {
  position: absolute;
  bottom: 10%;
  left: 50%;
  transform: translateX(20%) scale(0.8);
  transition: transform 0.4s ease, opacity 0.4s ease;
  opacity: 0;
  max-width: 150px;
  pointer-events: none;
}

.rdmpop.show {
  transform: translateX(100%) scale(1);
  opacity: 1;
}

@media (max-width: 768px) {

  .float-right-box,
  .float-left-box {
    float: none;
    width: 100%;
    margin: 15px 0;
  }

  .center-highlight-box {
    width: 95%;
  }

  .mw-body {
    margin: 70px 10px 20px;
    padding: 15px;
  }
}
  */
/*******************************************************************************
                                   member page
 ********************************************************************************/
/* flip card */
/* .memberbanner {
  margin-left: -15vw;
  margin-bottom: -10vw;
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/members/banner.webp");
  background-size: 70%;
  background-position: center;
  background-repeat: no-repeat;
  height: 30vw;
  width: 100vw;
} */
.outer-container {
  width: 100vw;
  height: 24vw;
  overflow-x: auto;
  overflow-y: visible;
  /* scroll-behavior: smooth; */
  padding: 2vw 0;
  transition: all 0.5s ease;
  --card-dist: 4;
}


.outer-container::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.409);
  border-radius: 1vw;
}

/* .outer-container::-webkit-scrollbar-track {
  background: #eee;
} */


.outer-container::-webkit-scrollbar {
  width: 0.5vw;
  height: 1vw;
}

.card-container {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  height: auto;
  /* 关键：内部padding而不是容器宽度 */
  padding-right: 20vw;
  width: fit-content;
}

/* 为每张卡片添加wrapper */
.card-wrapper {
  position: relative;
  width: 4vw;
  height: 18vw;
  flex-shrink: 0;
}

.card-wrapper:first-child {
  width: 13vw;
  /* 第一张卡片完整宽度 */
}

.card {
  will-change: transform;
  position: absolute;
  left: 0;
  top: 0;
  height: 18vw;
  width: 13vw;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transform-style: preserve-3d;
  transition: all 0.4s ease;
  z-index: 1;
  transform: rotateX(0deg) rotateY(0deg);
  /* --card-dist: 4; */
  /* 你的其他样式保持不变 */
}

/* hover 时增加间距 */
.outer-container:hover {
  --card-dist: 13;
}

.card-back1 {
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/members/card-b.webp");
  background-repeat: no-repeat;
  background-position: 100% 100%;
  background-size: 100% 100%;
  height: 18vw;
  width: 13vw;
  /* transition: all 0.4s ease; */
}

.card-back2,
.front-photo1 {
  position: absolute;
  backface-visibility: hidden;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  /* color: white; */
}

.card-back2 {
  /* margin-left: -9vw; */
  /* margin-top: -20vw; */
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/members/card-b2.webp");
  transition: all 0.4s ease;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  height: 18vw;
  width: 13vw;
}

.front-photo1 {
  background: url("https://static.igem.wiki/teams/5614/imagebase/members/card-front.webp");
  transform: rotateY(180deg);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  /* color: white; */
}

.card-wrapper .card-back2 .student-name {
  font-size: 1.2vw;
  transform: rotateZ(90deg);
  font-family: "volkhov";
  margin-left: 74%;
  margin-top: 4%;
  color: #184525;
  width: fit-content;
  height: fit-content;
  line-height: 1vw;
}

/* 翻转状态 */
.card.flipped {
  transform: rotateY(180deg);
}

/* 在鼠标悬停时，卡牌上移 */
/* .card:hover {
  transform: translateY(-2vw);
} */
/* 当卡牌已经翻转时，保持翻转并继续上移 */
.card.flipped:hover {
  transform: rotateY(180deg) translateY(-2vw);
}

/* 额外的动画平滑效果 */
.card:hover {
  transform: translateY(-2vw);
  margin-right: 3vw;
}

/*popup*/
.pop-up-container {
  top: 2vw;
  left: 0;
  width: 90vw;
  height: fit-content;
  /* background: linear-gradient(to bottom, #f0f0f0, #d0d0d0); */
  display: flex;
  /* gap: 0vw; */
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transition: all 0.5s ease-in-out;
}

.pop-up {
  margin-top: -3vw;
  height: 50vw;
  width: 70vw;
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/members/pop-up.webp");
  background-size: 106%;
  background-position: center;
  background-repeat: no-repeat;
  transform: rotateZ(-90deg) translateY(-20vw);
  opacity: 0;
  transition: all 0.5s ease-in-out;
  padding: 0 8vw;
}

.pop-up.active {
  transform: rotateZ(0deg) translateY(0);
  opacity: 1;
  transition: all 0.5s ease-in-out;
}

.pop-up.active:hover {
  scale: 1.1;
}

.pop-up p {
  color: rgb(0, 0, 0);
  text-align: left;
  justify-content: center;
  font-size: 100%;
  margin-top: 0vw;
  font-family: 'Noto';
}

.pop-up h3 {
  color: #10521D !important;
  text-align: center;
  /* margin-left: 4vw; */
  margin-top: 15vw;
  font-size: 3vw;
  font-family: 'Volkhov';
}

/* for PI, instructors, advisors */
/* .box2 p {
    color: rgb(0, 0, 0);
  text-align: center;
  justify-content: center;
  font-size: 0.7vw;
  font-family: 'Noto';
  position: absolute;
} */
.box2 .pop-up-img {
  width: 40%;
  /* margin-top: -2.3%; */
  /* max-height: 30%; */
  max-height: 75%;
  border-radius: 8%;
  object-fit: cover;
  margin-top: -5%;
  /* margin-left: -2%; */
}

.box2 .id {
  /* width: fit-content;
  height: fit-content; */
  position: absolute;
  font-size: 1vw;
  color: #10521D;
  text-align: center;
  font-family: 'volkhov';
  /* margin-top: 10%; */
  left: 48%;
  top: 40%;
}

.box2 .name {
  left: 42%;
  top: 35%;
  /* margin-left: 20%;*/
  position: absolute;
  color: #10521D !important;
  text-align: center;
  /* margin-left: 9%;
  margin-top: 40%; */
  font-size: 1.5vw;
  font-family: 'volkhov';
  transition: all 0.5s ease-in-out;
}

/* @media (max-width: 1200px) {
  .box2 .name {
    margin-top: 24%;
  }

  .box2-container .box2:hover .name {
    margin-top: 29%;
  }
}

@media (max-width: 1024px) {
  .box2 .name {
    margin-top: 30%;
  }

  .box2-container .box2:hover .name {
    margin-top: 35%;
  }
}

@media (max-width: 600px) {
  .box2 .name {
    margin-top: 70%;
  }

  .box2-container .box2:hover .name {
    margin-top: 75%;
  }
} */
.box2 p {
  margin-left: 1%;
  /* font-size */
}

.box2-container {
  position: relative;
  margin-bottom: -10vw;
  margin-left: -8vw;
  width: 100vw;
  height: 80vh;
  /* background: linear-gradient(to bottom, #f0f0f0, #d0d0d0); */
  display: flex;
  /* gap: vw; */
  flex-direction: row;
  align-items: center;
  justify-content: center;
  transition: all 0.5s ease-in-out;
  /* border: #3498db 0.2vw solid; */
}

/* .box2 .box2-container p {
  margin-left: 1%;
} */
.box2-container .box2 {
  /* margin-top: -3vw; */
  position: relative;
  height: 100vh;
  width: 50vw;
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/members/pop-up.webp");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 1;
  transition: all 0.5s ease-in-out;
  padding: 16% 8%;
}

.box2-container .box2:hover {
  scale: 1.1;
  /* font-size: 0.9vw; */
}

/* .box2-container .box2:hover .name {
  margin-top: 15%;
} */
.box2-container .box2:hover .box2-content {
  font-size: 0.8vw;
  padding-right: 15%;
}

.box2-container .box2 .box2-content {
  position: absolute;
  display: flex;
  align-items: flex-start;
  /* 顶部对齐 */
  /* gap: 2vw; */
  /* 文字与图片间距 */
  /* margin-left: 0%; */
  /* margin-top: 10%; */
  padding-right: 10%;
  padding-bottom: 9%;
  top: 49%;
  height: 30%;
  width: 80%;
  color: rgb(0, 0, 0);
  text-align: left;
  /* justify-content: center; */
  font-size: 0.8vw;
  font-family: 'Noto';
  transition: all 0.5s ease-in-out;
  /* border: #b38207 0.2vw solid; */
}

.box2-container .box2:hover .box2-content {
  scale: 1.1;
  transform: translateX(4%) translateY(2%);
}

/* 关键修改：添加文字+图片的容器，用Flex横向排列 */
.pop-up-content {
  display: flex;
  align-items: flex-start;
  /* 顶部对齐 */
  gap: 2vw;
  /* 文字与图片间距 */
  margin-left: 0%;
  margin-top: 5vw;
  height: 100%;
  max-height: 10%;
}

/* 新增：图片样式，与文字并列 */
.pop-up .pop-up-img {
  width: 12vw;
  /* margin-bottom: 100%; */
  height: auto;
  border-radius: 8px;
  object-fit: cover;
  margin-left: 5%;
}

/* random surprise */
:root {
  --rdmimg-box-w: 35vw;
  --rdmimg-box-h: 70vh;
  --rdmimg-dur-pop: 450ms;
  --rdmimg-dur-smoke: 650ms;
  --rdmimg-e: cubic-bezier(.2, .7, .2, 1);
}

/* Stage */
.rdmimg-stage {
  position: relative;
  width: var(--rdmimg-box-w);
  height: var(--rdmimg-box-h);
  display: grid;
  place-items: center;
  overflow: visible;
  z-index: 10;
  /* margin-top: -55vw;
  margin-left: -20vw; */
}

/* Box button (your picture) */
.rdmimg-box-btn {
  position: absolute;
  /* margin-top: 10%; */
  inset: 0;
  border: 0;
  padding: 0;
  background: none;
  cursor: pointer;
  isolation: isolate;
  /* outline-offset: 6px; */
  width: var(--rdmimg-box-w);
  height: var(--rdmimg-box-h);
  overflow: visible;
}

.rdmimg-box-btn img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  /* object-fit: cover; */
  display: block;
  transform-origin: 50% 100%;
  transition: transform 140ms ease, filter 140ms ease;
}

.rdmimg-box-btn:hover img {
  transform: rotate(-1deg) scale(1.02);
  filter: saturate(1.05);
}

/* Popped image */
.rdmimg-pop {
  position: absolute;
  inset: auto 0 auto 0;
  margin: auto;
  /* width: 100%; */
  max-width: 120%;
  max-height: 100%;
  top: 50%;
  translate: 0 -50%;
  z-index: 2;
  pointer-events: none;
  opacity: 0;
  transition: all 0.2s ease;
  transform: translateX(28%) rotate(2deg) scale(.9);
  transform-origin: 50% 50%;
  border-radius: 14px;
  box-shadow:
    0 12px 30px rgba(0, 0, 0, .18),
    0 2px 6px rgba(0, 0, 0, .12);
  will-change: transfor m, opacity;
}

.rdmimg-is-open .rdmimg-pop {
  animation: rdmimg-popIn var(--rdmimg-dur-pop) var(--rdmimg-e) forwards;
  pointer-events: auto;
}

.rdmimg-is-open .rdmimg-box-btn img {
  animation: rdmimg-squish var(--rdmimg-dur-pop) var(--rdmimg-e) both;
}

/* Smoke/Dust burst */
.rdmimg-smoke {
  pointer-events: none;
  position: absolute;
  inset: 0;
  z-index: 3;
  display: grid;
  place-items: center;
  opacity: 1;
  /* always visible at start, fade animation handles exit */
}

.rdmimg-is-open .rdmimg-smoke {
  animation: rdmimg-fadeHost var(--rdmimg-dur-smoke) linear forwards;
}

.rdmimg-puff {
  position: absolute;
  width: 28px;
  height: 28px;
  /* slightly bigger than before */
  border-radius: 50%;
  background: radial-gradient(circle at 40% 40%, #ffffff 0%, #dcdcdc 100%);
  opacity: 0;
  transform: scale(0.4);
}

/* animate puffs only when open */
.rdmimg-is-open .rdmimg-puff {
  animation: rdmimg-cartoonPuff var(--rdmimg-dur-smoke) var(--rdmimg-e) forwards;
}

.rdmimg-p1 {
  --tx: -20px;
  --ty: -32px;
  --t2x: -40px;
  --t2y: -56px;
}

.rdmimg-p2 {
  --tx: 14px;
  --ty: -26px;
  --t2x: 30px;
  --t2y: -48px;
}

.rdmimg-p3 {
  --tx: -12px;
  --ty: 18px;
  --t2x: -26px;
  --t2y: 36px;
}

.rdmimg-p4 {
  --tx: 32px;
  --ty: 10px;
  --t2x: 52px;
  --t2y: 22px;
}

.rdmimg-p5 {
  --tx: -30px;
  --ty: 8px;
  --t2x: -48px;
  --t2y: 18px;
}

.rdmimg-p6 {
  --tx: 22px;
  --ty: -14px;
  --t2x: 38px;
  --t2y: -28px;
}

/*@media (prefers-reduced-motion: reduce) {

  .rdmimg-box-btn img,
  .rdmimg-pop {
    transition: none;
    animation: none !important
  }

  .rdmimg-smoke {
    display: none
  }
}*/
.photo-container {
  width: 50vw;
  height: 40vw;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  /* height: auto; */
  /* 关键：内部padding而不是容器宽度 */
  /* width: fit-content; */
}

.group-photo {
  width: 100%;
  height: 100%;
}

/*******************************************************************************
                                   home page
 ********************************************************************************/

.link-to-awardspage {
  position: fixed;
  left: 2%;
  top: 12%;
  height: 15%;
  width: 10%;
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/awards/link-to-awards.avif");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  animation: float 2.5s infinite ease;
  z-index: 999;
}

.home-text {
  font-size: 2.2vw;
  font-family: 'Noto';
  color: #faf2de;
  opacity: 0;
  transition: all 0.8s ease;
}

.home-text.active {
  opacity: 1;
  transform: translateY(var(--y)) scale(1);
}

.home-text[animation="slide-left"] {
  transform: translate(calc(var(--x) + 100px), var(--y));
}

.home-text.active[animation="slide-left"] {
  transform: translate(var(--x), var(--y));
}

.home-text[animation="slide-right"] {
  transform: translate(calc(var(--x) - 100px), var(--y));
}

.home-text.active[animation="slide-right"] {
  transform: translate(var(--x), var(--y));
}

.home-text[animation="zoom-in"] {
  transform: translate(var(--x), var(--y)) scale(0.5);
}

.home-text.active[animation="zoom-in"] {
  transform: translate(var(--x), var(--y)) scale(1);
}

.home-title {
  font-size: 1.8em;
  font-family: 'Alfa';
  color: #faf2dD;
}

.home-heading {
  font-size: 2vw;
  font-family: 'Volkhov';
  color: #faf2dD;
  line-height: 10vh;
}

/**********************************
              scene 1
 **********************************/
.home {
  margin-top: -2vh;
  margin-left: -1vw;
  width: 100vw;
  height: 600vh;
  margin-bottom: 30vh;
  /* width: 100vw; */
  /* 给一个虚拟的高度，制造滚动条 */
  /* overflow-y: hidden; 设置这个position：sticky会失效 */
  /* overflow-x: hidden; */
  /* transition: height 0.9s ease; */
}

.home .insideImage svg {
  overflow: visible;
}

.home .label {
  font-size: 0.8vw;
  font-family: 'Alfa';
  position: absolute;
}

.home .txt {
  /* background-color: #184525; */
  /* border-left: white 0.2vw solid; */
  color: #ffffff;
  border-radius: 1vw;
  width: 42%;
  max-height: 90%;
  position: absolute;
  top: 10%;
  left: 59%;
  font-family: 'Noto';
  font-size: 2vw;
  padding: 2% 1%;
  /* opacity: 0.8; */
  transition: all 0.5s ease;
}

.size-res {
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  position: sticky;
  top: 0;
  transition: all 0.2s ease;
  transform-origin: 10% 93%;
  transform: scale(1);
}

.homepage {
  /* overflow: hidden; */
  width: 100vw;
  height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/homepage/scene1-3.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.Anim-container {
  /* background-image: url("https://static.igem.wiki/teams/5614/imagebase/homepage/mold-outline2.webp");
  background-size: contain;
  background-position: 70% 50%;
  background-repeat: no-repeat; */
  /* background-color: transparent; */
  position: absolute;
  top: 30vw;
  left: 20vw;
  width: 19vw;
  height: 17vw;
  transition: all 0.2s ease;
  transform: scale(1);
  z-index: 2;
}

.Anim-container .outline-mold {
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/homepage/mold-outline3.webp");
  background-size: contain;
  background-position: 70% 50%;
  background-repeat: no-repeat;
  opacity: 0;
  position: absolute;
  top: -1%;
  left: -16%;
  width: 120%;
  height: 100%;
}

.magGlass {
  position: absolute;
  /* top: 34vw;
  left: 20vw; */
  width: 19vw;
  height: 17vw;
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/homepage/mag-glass2.webp");
  background-size: 100% 100%;
  background-position: center;
  background-repeat: no-repeat;
  transition: all 0.2s ease;
  transform: scale(1);
  /* opacity: 0; */
}

.floating-icon {
  position: absolute;
  width: 2vw;
  height: 2vw;
  border-radius: 1vw;
  background-color: #9efc77;
  background-size: cover;
  background-repeat: no-repeat;
}

.homepage .insideImage {
  /* position: relative; */
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/homepage/mold-hand.webp");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  opacity: 0;
  top: -1%;
  left: -5%;
  height: 100%;
  width: 110%;
  transform: scale(1);
  transition: all 0.2s ease;
  /* z-index: -1; */
}

.home .insideImage .label1,
.home .insideImage .label2,
.home .insideImage .label3 {
  position: absolute;
  width: fit-content;
  height: fit-content;
  font-size: 1vw;
  color: white;
  font-family: "Alfa";
}

.home .insideImage .label2 {
  left: 70%;
  top: 7%;
}

.home .insideImage .label1 {
  left: -20%;
  top: 50%;
}

.home .insideImage .label3 {
  left: 90%;
  top: 70%;
}

.seriosity-1to2 {
  width: 100vw;
  height: 100vh;
  align-items: center;
  justify-content: center;
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/seriosity.webp");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  /* border-top: #faf2de 1vw solid;
  border-bottom: #faf2de 1vw solid; */
}

/* .lung {
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/homepage/lung2.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  height: 100vh;
  width: 100vh;
  position: absolute;
}

/**********************************
              scene 2
 **********************************/
.floating-icon2 {
  /* border-color: #e0d20b; */
  /* background-color: #40ab12; */
  /* border-width: 9px; */
  border-radius: 1.5vw;
  height: 3vw;
  width: 3vw;
  position: absolute;
  border: 1vw double #B7DFA1;
  transition: all ease 0.1s;
  /* z-index: 10; */
}

.floating-icon2.active {
  border: 1vw double #ff7635 !important;
}

/* .lung .Brain {
  margin-left: -29%;
  width: 30vw;
  height: 30vw;
  background-color: rgba(0, 0, 0, 0.175);
  position: absolute;
  opacity: 0;
  transition: all ease 0.3s;
  pointer-events: none;
}

.lung .Hyper {
  margin-left: -29%;
  width: 30vw;
  height: 30vw;
  background-color: rgba(0, 0, 0, 0.175);
  position: absolute;
  opacity: 0;
  transition: all ease 0.3s;
  pointer-events: none;
}

.lung .Nose {
  margin-left: 77%;
  width: 30vw;
  height: 30vw;
  background-color: rgba(0, 0, 0, 0.175);
  position: absolute;
  opacity: 0;
  transition: all ease 0.3s;
  pointer-events: none;
}

.lung .Oto {
  margin-left: -29%;
  width: 30vw;
  height: 30vw;
  background-color: rgba(0, 0, 0, 0.175);
  position: absolute;
  opacity: 0;
  transition: all ease 0.3s;
  pointer-events: none;
}

.lung .Broncho {
  margin-left: 77%;
  width: 30vw;
  height: 30vw;
  background-color: rgba(0, 0, 0, 0.175);
  position: absolute;
  opacity: 0;
  transition: all ease 0.3s;
  pointer-events: none;
}

.lung .Skin {
  margin-left: -29%;
  width: 30vw;
  height: 50vw;
  background-color: rgba(0, 0, 0, 0.175);
  position: absolute;
  opacity: 0;
  transition: all ease 0.3s;
  pointer-events: none;
}

.lung .Lung {
  margin-left: 77%;
  width: 30vw;
  height: 30vw;
  background-color: rgba(0, 0, 0, 0.175);
  position: absolute;
  opacity: 0;
  transition: all ease 0.3s;
  pointer-events: none;
}

.lung .Heart {
  margin-left: 77%;
  width: 30vw;
  height: 30vw;
  background-color: rgba(0, 0, 0, 0.175);
  position: absolute;
  opacity: 0;
  transition: all ease 0.3s;
  pointer-events: none;
}

.lung .Nail {
  margin-left: -29%;
  width: 30vw;
  height: 30vw;
  background-color: rgba(0, 0, 0, 0.175);
  position: absolute;
  opacity: 0;
  transition: all ease 0.3s;
  pointer-events: none;
} */
/* Big scrollable wrapper for storytelling */
.scene2-wrapper {
  height: 1000vh;
  width: auto;
  /* enough space to scroll through the storytelling */
  background: #184525;
}

/* The pinned stage */
.scene2-pinned {
  position: sticky;
  top: 0;
  height: 100vh;
  /* fill viewport */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

.scene2-fixed-pic {
  background: no-repeat center / contain url("https://static.igem.wiki/teams/5614/imagebase/homepage/lung2.webp");
  height: 100vh;
  width: 100vh;
  position: absolute;
  overflow: visible;
}

.scene2-pinned .home-text {
  position: absolute;
  width: 30vw;
  /* z-index: 20; */
}

.scene2-pinned .home-title {
  color: #ffc053;
}

/**********************************
              scene 3
 **********************************/
.scene3-wrapper {
  margin-top: 10vw;
  height: 400vh;
  width: 100vw;
  position: relative;
}

.scene3 {
  width: 99vw;
  /* 全屏宽度，与Scene1/Scene2一致 */
  height: 92vh;
  /* 全屏高度，符合“一屏一内容”逻辑 */
  top: 7vw;
  position: sticky;
  /* 子元素绝对定位的父容器 */
  z-index: 1;
  /* 确保在页面层级中可见，不被其他元素遮挡 */
  /* border: #f4ec0a dashed 1vw; */
}

/* 2. 醋瓶容器：修复图片加载+初始定位 */
.vinegar {
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/homepage/vinegarbottle.webp");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  position: absolute;
  width: 35vw;
  height: 35vw;
  bottom: 10vw;
  right: 20vw;
  opacity: 0;
  z-index: 20;
  transform-origin: 40vw -40vw;
  /* animation: Vinegarrotate 1.2s ease-out 0.3s forwards; */
}

/* 3. 小苏打容器：与醋瓶对称，优化显示逻辑 */
.baking_soda {
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/homepage/bakingsoda.webp");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  position: absolute;
  width: 25vw;
  height: 25vw;
  bottom: 9vw;
  /* 初始位置：屏幕底部外（隐藏） */
  left: 37vw;
  /* 左侧间距，与右侧醋瓶对称 */
  opacity: 0;
  z-index: 30;
  transform-origin: -40vw -40vw;
  /* 层级高于醋瓶，确保在上方显示 */
  /* animation: Sodarotate 1.2s ease-out 0.3s forwards; */
}

/* 4. 霉菌薄片：参考Scene1浮动粒子风格，添加动态效果 */
.moldflakes1 {
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/homepage/moldflake1.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: absolute;
  width: 13vw;
  /* 小巧尺寸，模拟“粒子感” */
  height: 13vw;
  border-radius: 50%;
  /* 圆形裁剪，与Scene1 .floating-icon风格统一 */
  left: 55%;
  /* 水平居中 */
  top: 5%;
  /* 垂直居中偏上，与两瓶形成三角布局 */
  transform: translateX(-50%);
  /* 精准居中（抵消left:50%的偏移） */
  opacity: 1;
  /* 初始隐藏，通过动画渐显 */
  z-index: 10;
  /* 层级最低，避免遮挡瓶身 */
  /* 入场动画：上滑+淡入，参考Scene1浮动逻辑 */
  /* animation: slideInUp 1.2s ease-out 0.6s forwards; */
}

.moldflakes2 {
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/homepage/moldflake2.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: absolute;
  width: 9vw;
  /* 小巧尺寸，模拟“粒子感” */
  height: 8vw;
  border-radius: 50%;
  /* 圆形裁剪，与Scene1 .floating-icon风格统一 */
  left: 30%;
  /* 水平居中 */
  top: 60vh;
  /* 垂直居中偏上，与两瓶形成三角布局 */
  transform: translateX(-50%);
  /* 精准居中（抵消left:50%的偏移） */
  opacity: 1;
  /* 初始隐藏，通过动画渐显 */
  z-index: 10;
  /* 层级最低，避免遮挡瓶身 */
  /* 入场动画：上滑+淡入，参考Scene1浮动逻辑 */
  animation: slideInUp 1.2s ease-out 0.6s forwards;
}

.moldflakes3 {
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/homepage/moldflake3.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: absolute;
  width: 9vw;
  /* 小巧尺寸，模拟“粒子感” */
  height: 8vw;
  border-radius: 50%;
  /* 圆形裁剪，与Scene1 .floating-icon风格统一 */
  left: 90%;
  /* 水平居中 */
  top: 55vh;
  /* 垂直居中偏上，与两瓶形成三角布局 */
  transform: translateX(-50%);
  /* 精准居中（抵消left:50%的偏移） */
  opacity: 1;
  /* 初始隐藏，通过动画渐显 */
  z-index: 10;
  /* 层级最低，避免遮挡瓶身 */
  /* 入场动画：上滑+淡入，参考Scene1浮动逻辑 */
  animation: slideInUp 1.2s ease-out 0.6s forwards;
}

.vinegartext {
  top: 10%;
  left: 3%;
  width: 25vw;
  position: absolute;
  /* border: 1vw #e4c56b dashed; */
  opacity: 0;
}

.vinegartext p {
  font-size: 2em;
  font-family: 'Noto';
  color: #faf2de;
  /* 米白色，与Scene2-text颜色一致，适配深绿背景 */
  margin: 0 0 0.5vw;
  /* font-weight: 600; */
}

/* 5. 移动端适配：复用动画，无需重复定义（仅调整尺寸/位置） */
@media (max-width: 768px) {

  .vinegar,
  .baking_soda {
    width: 20vw;
    height: 30vw;
    animation-duration: 1s;
    /* 移动端动画稍快，更流畅 */
  }

  .vinegar {
    right: 8vw;
    /* 无需重新写animation，会继承桌面端的动画设置 */
  }

  .baking_soda {
    left: 8vw;
  }
}

/* scene4 */
.scene4-wrapper {
  margin-top: 10vw;
  height: 400vh;
  width: 100vw;
  position: relative;
  border: 1vw transparent dashed;
}

.scene4 {
  margin-left: -1vw;
  position: sticky;
  top: 9vh;
  /* margin-top: 10vh; */
  height: 92vh;
  width: 99vw;
  /* border: 1vw #e4c56b dashed; */
}

.scene4 .image {
  background: url("https://static.igem.wiki/teams/5614/imagebase/homepage/scene4.webp") center / contain no-repeat;
  position: absolute;
  top: 10%;
  left: -10%;
  height: 90%;
  width: 90%;
}

.bleachtext p {
  font-size: 2em;
  font-family: 'Noto';
  color: #faf2de;
  top: 20%;
  left: 60%;
  width: 40%;
  position: absolute;
  margin-left: -2vw;
  /* border: 1vw #e4c56b dashed; */
}

.peroxide {
  /* 背景图：使用HTML对应图片链接，确保路径正确 */
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/homepage/peroxide.webp");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  position: absolute;
  width: 15vw;
  height: 27vw;
  bottom: 6vw;
  right: 41vw;
  opacity: 1;
  z-index: 2;
}

/* 3. 小苏打容器：与醋瓶对称，优化显示逻辑 */
.bleach {
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/homepage/bleach.webp");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  position: absolute;
  width: 28vw;
  height: 32vw;
  bottom: 5vh;
  left: 10vw;
  opacity: 1;
  z-index: 2;
}

.fume {
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/homepage/fume.webp");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  position: absolute;
  width: 60vw;
  height: 30vh;
  bottom: 35vh;
  left: 5vw;
  opacity: 1;
  z-index: 1;
}

.water {
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/homepage/water.webp");
  position: absolute;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  width: 82vw;
  height: 40vh;
  bottom: 0vh;
  left: 4vw;
  opacity: 1;
  z-index: 1;
}

.scene5-text {
  font-size: 1.5em;
  font-family: 'Noto';
  color: #faf2de;
  width: 40vw;
  opacity: 0;
  position: absolute;
  transition: all 0.8s ease;
}

.scene5-text.active {
  opacity: 1;
  transform: translateY(var(--y)) scale(1);
}

.scene5-text[animation="slide-left"] {
  transform: translate(calc(var(--x) + 100px), var(--y));
}

.scene5-text.active[animation="slide-left"] {
  transform: translate(var(--x), var(--y));
}

.scene5-text[animation="slide-right"] {
  transform: translate(calc(var(--x) - 100px), var(--y));
}

.scene5-text.active[animation="slide-right"] {
  transform: translate(var(--x), var(--y));
}

/**********************************
              scene 5
 **********************************/
.scene5-wrapper {
  margin-left: 1vw;
  width: 99vw;
  height: 400vh;
  position: relative;
}

.scene5 {
  margin-left: -1vw;
  position: sticky;
  top: 9vh;
  /* margin-top: 10vh; */
  height: 92vh;
  width: 99vw;
  /* border: 1vw #e4c56b dashed; */
}

.scene5 .step1,
.scene5 .step2,
.scene5 .step3 {
  position: absolute;
  height: 20vw;
  width: 20vw;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transition: all ease 0.3s;
  opacity: 0;
}

.scene5 .arrow1,
.scene5 .arrow2 {
  position: absolute;
  height: 10vw;
  width: 10vw;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transition: all ease 0.3s;
  opacity: 0;
}

.scene5 .step1.active,
.scene5 .step2.active,
.scene5 .step3.active,
.scene5 .arrow1.active,
.scene5 .arrow2.active {
  opacity: 1 !important;
}

.scene5 .step1 {
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/homepage/allergy1.webp");
  top: 40%;
  left: 10%;
}

.scene5 .step2 {
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/homepage/allergy2.webp");
  top: 60%;
  left: 40%;
}

.scene5 .step3 {
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/homepage/allergy3.webp");
  top: 40%;
  left: 67%;
}

.scene5 .arrow1 {
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/homepage/arrow1.webp");
  top: 70%;
  left: 30%;
}

.scene5 .arrow2 {
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/homepage/arrow2-2.webp");
  top: 70%;
  left: 60%;
}

.scene5 .textbox {
  position: relative;
  top: 5%;
  left: 15%;
  height: 35%;
  width: 70%;
  /* border: 0.5vw dashed #f91313; */
  padding-top: 2%;
}

.scene5 .textbox p {
  text-align: center !important;
  color: #dcdcdc !important;
  font-size: 2vw;
  font-family: 'Noto';
}

/**********************************
              scene 6
 **********************************/
.scene6 {
  /* margin-left: -1vw; */
  position: relative;
  top: 9vh;
  /* margin-top: 10vh; */
  height: 92vh;
  width: 99vw;
  /* border: 1vw #e4c56b dashed; */
}

.scene6 .inspector {
  height: 100%;
  width: 55%;
  position: absolute;
  margin-left: 45%;
  background: url("https://static.igem.wiki/teams/5614/imagebase/homepage/our-product.webp") center / 100% no-repeat;
}

.scene6 .textbox {
  position: absolute;
  height: 100%;
  width: 45%;
  /* border: 0.5vw dashed #f91313; */
  padding-top: 15%;
  padding-left: 3%;
}

.scene6 .textbox p {
  /* text-decoration: underline; */
  text-align: center !important;
  color: #dcdcdc !important;
  font-size: 2.2vw;
  font-family: 'Noto';
}

/**********************************
              scene 7
 **********************************/
.scene7 {
  position: relative;
  top: 9vh;
  margin-top: 20vh;
  height: 92vh;
  width: 99vw;
  /* border: 1vw #e4c56b dashed; */
}

.scene7 .clock {
  position: absolute;
  padding-top: 10%;
  height: 100%;
  width: 45%;
  background:
    /* url("https://static.igem.wiki/teams/5614/imagebase/homepage/clock.webp") center / 100% no-repeat,  */
    url("https://static.igem.wiki/teams/5614/imagebase/homepage/moldclock.webp") center / 100% no-repeat;
}

.scene7 .textbox {
  height: 100%;
  width: 55%;
  position: absolute;
  margin-left: 45%;
  /* border: 0.5vw dashed #f91313; */
  /* padding-top: 15%; */
  padding: 15% 1%;
}

.scene7 .textbox p {
  text-decoration: none;
  text-align: center !important;
  color: #dcdcdc !important;
  font-size: 2.2vw;
  font-family: 'Noto';
  /* text-align: center; */
}

/**********************************
              scene 8
 **********************************/
.scene8 {
  position: relative;
  width: auto;
  top: 9vh;
  margin-top: 20vh;
  height: 500vh;
}

.scene8-pinned {
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 5vw;
  /* justify-content: center; */
  /* align-items: center; */
  overflow: visible;
}

.scene8-wrapper {
  margin-top: 13vh;
  display: flex;
  flex-direction: column;
  /* or inline-block */
  /*flex: none;*/
  /* same as 0 0 auto */
  width: fit-content;
  /* wrapper hugs its children's width */
  gap: 2vh;
}

.scene8 .home-text {
  font-size: 1.5vw;
  width: auto;
  opacity: 1;
}

.scene8 .home-title {
  font-size: 2vw;
}

.scene8 img {
  height: 30vh;
  width: auto;
  /* left: 10vw;
  margin-top: 10vh; */
  overflow: visible;
  /* display: inline-block; */
}

.scene8 #spray {
  position: absolute;
  height: 70vh;
  width: 50vw;
  top: 20vh;
  left: 50vw;
  opacity: 1;
  background: url("https://static.igem.wiki/teams/5614/imagebase/homepage/spray-3.webp") center / contain no-repeat;
  transition: opacity .3s ease;
}

/* Scene 8 quick fades + centered finale pose */
#s8t1,
#s8t2,
#cellwalls {
  transition: opacity .28s ease, transform .2s linear;
}

#cellwalls {
  position: relative;
  /* --cw-mask: 100%;
  mask-image: linear-gradient(to right, rgba(0, 0, 0, 1) var(--cw-mask), rgba(0, 0, 0, 0) 100%);
  mask-repeat: no-repeat;
  mask-size: cover; */
  transition: mask-image 0.1s linear;
}

/* Scene 8 – right-to-left sweep with 10% feather */
#cellwalls {
  /* Two-stop mask: solid → feather → transparent */
  /* -webkit-mask-image: linear-gradient(to right,
      rgba(0, 0, 0, 1) 0,
      rgba(0, 0, 0, 1) var(--edgeStart, 100%),
      rgba(0, 0, 0, 0) var(--edgeEnd, 100%),
      rgba(0, 0, 0, 0) 100%); 
  -webkit-mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;*/
  mask-image: linear-gradient(to right,
      rgba(0, 0, 0, 1) 0,
      rgba(0, 0, 0, 1) var(--edgeStart, 100%),
      rgba(0, 0, 0, 0) var(--edgeEnd, 100%),
      rgba(0, 0, 0, 0) 100%);
  mask-repeat: no-repeat;
  mask-size: 100% 100%;
}

#spray.centered {
  position: absolute;
  /* keeps current absolute layout logic */
  top: 50vh !important;
  left: 25vw !important;
  transform: translate(-55%, -45%) scale(1.3) !important;
  opacity: 1;
}

/**********************************
              scene 10
 **********************************/
.scene10-wrapper {
  position: relative;
  top: 9vh;
  margin-left: 0vw;
  margin-top: 10vh;
  height: 500vh;
  width: 99vw;
}

.scene10-wrapper .scene10 {
  position: sticky;
  top: 9vh;
  height: 92vh;
  width: 99vw;
  /* border: 1vw #e4c56b dashed; */
}

.scene10-wrapper .scene10 .Anim-container {
  top: 0;
  left: 0;
  height: 92vh;
  width: 99vw;
  /* transform: scale(0.0); */
  position: relative;
  /* background-color: #0000002e; */
  z-index: 2;
}

.glu-container,
.chi-container,
.lys-container {
  position: absolute;
  width: 23%;
  height: 40%;
  scale: 0.3;
}

.scene10-wrapper .scene10 .Anim-container .glu {
  background: url("https://static.igem.wiki/teams/5614/imagebase/homepage/glu2.webp") center / 100% no-repeat;
  position: absolute;
  /* left: 35%;
  top: 35%; */
  width: 100%;
  height: 100%;
}

.scene10-wrapper .scene10 .Anim-container .glu-container .ani {
  position: absolute;
  width: 90%;
  height: 90%;
  inset: 0;
  z-index: 1;
  opacity: var(--after-opacity, 0);
  background: url("https://static.igem.wiki/teams/5614/imagebase/homepage/scene10/anim-glu3.webp") center / contain no-repeat;
}

.glu-container .intro {
  width: 80%;
  height: fit-content;
  font-size: 1.5vw;
  position: absolute;
  top: 10%;
  left: -70%;
  color: #ff9f4d;
  font-family: "Noto";
  transition: all 0.3s ease-in;
  opacity: 0;
}

/* .scene10-wrapper .scene10 .Anim-container .glu-container .ani p {
  margin-left: -20%;
  font-family: "Alfa";
  color: #ff9f4d;
  font-size: 2vw;
} */
.scene10-wrapper .scene10 .Anim-container .chi {
  background: url("https://static.igem.wiki/teams/5614/imagebase/homepage/lys.webp") center / 100% no-repeat;
  position: absolute;
  /* left: 5%;
  top: 75%; */
  width: 100%;
  height: 100%;
}

.scene10-wrapper .scene10 .Anim-container .chi-container .ani {
  position: absolute;
  width: 90%;
  height: 90%;
  inset: 0;
  z-index: 1;
  opacity: var(--after-opacity, 0);
  background: url("https://static.igem.wiki/teams/5614/imagebase/homepage/scene10/anim-lys2.webp") center / contain no-repeat;
  padding-top: 30%;
  padding-left: 20%;
  overflow: visible;
}

.chi-container .intro {
  width: 100%;
  height: fit-content;
  font-size: 1.5vw;
  position: absolute;
  top: 10%;
  left: -100%;
  color: #a4dd72;
  font-family: "Noto";
  transition: all 0.3s ease-in;
  opacity: 0;
  text-align: right;
}

.scene10-wrapper .scene10 .Anim-container svg {
  overflow: visible;
}

/* margin-left:30%; */
/* } */
.scene10-wrapper .scene10 .Anim-container .lys {
  background: url("https://static.igem.wiki/teams/5614/imagebase/homepage/chi.webp") center / 100% no-repeat;
  position: absolute;
  /* left: 65%;
  top: 5%; */
  width: 100%;
  height: 100%;
}

.scene10-wrapper .scene10 .Anim-container .lys-container .ani {
  position: absolute;
  width: 100%;
  height: 100%;
  inset: 0;
  z-index: 1;
  opacity: var(--after-opacity, 0);
  background: url("https://static.igem.wiki/teams/5614/imagebase/homepage/scene10/anim-chi3.webp") center / contain no-repeat;
  padding-top: 30%;
}

.scene10-wrapper .scene10 .Anim-container .lys-container .ani p {
  margin-left: -20%;
  font-family: "Alfa";
  color: #f5dc6b;
  font-size: 2vw;
}

.scene10-wrapper .scene10 .Anim-container .yeast {
  background: url("https://static.igem.wiki/teams/5614/imagebase/homepage/ecoli-yeast.webp") center / 100% no-repeat;
  position: absolute;
  left: 32%;
  top: 22%;
  width: 33%;
  height: 52%;
  /* opacity: 0; */
}

/*scene10-11*/
.scene11-img {
  background: url("https://static.igem.wiki/teams/5614/imagebase/homepage/scene10/cellwall-3.webp") center / contain no-repeat;
  width: 100vw;
  opacity: 0;
  max-height: 60%;
  min-height: 51%;
  position: absolute;
  top: 25%;
  /* left: -1.7%; */
  z-index: 0;
}

.lys-container .intro {
  width: 100%;
  height: fit-content;
  font-size: 1.5vw;
  position: absolute;
  top: 60%;
  left: -80%;
  color: #f5dc6b;
  font-family: "Noto";
  transition: all 0.3s ease-in;
  opacity: 0;
  text-align: right;
}

/* scene 12 */
.scene12-wrapper {
  position: relative;
  top: 9vh;
  margin-left: 0vw;
  margin-top: 10vh;
  height: 700vh;
  width: 99vw;
}

.scene12-wrapper .scene12 {
  position: sticky;
  top: 9vh;
  height: 92vh;
  width: 99vw;
  /* border: 1vw transparent dashed; */
  overflow: visible;
}

.scene12 .cellwall {
  position: relative;
  top: 20%;
  background: url("https://static.igem.wiki/teams/5614/imagebase/homepage/scene12/scene12-cell-wall.webp") center / contain no-repeat;
  height: 100%;
  width: 100%;
  transition: opacity 0.3s linear;
  /* -webkit-mask-image: linear-gradient(to right, rgba(0, 0, 0, 0) 100%, rgba(0, 0, 0, 0) 100%);
  mask-image: linear-gradient(to right, rgba(0, 0, 0, 0) 100%, rgba(0, 0, 0, 0) 100%);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: cover;
  mask-size: cover; */
}

.scene12 .residue {
  position: relative;
  height: 100%;
  width: 100%;
  margin-top: -45%;
  background: url("https://static.igem.wiki/teams/5614/imagebase/homepage/scene12/residue.webp") center / contain no-repeat;
  transition: opacity 0.3s linear;
  z-index: 2;
  /* 一开始完全不可见 */
  transition: opacity 0.3s linear;
  -webkit-mask-image: linear-gradient(to right, rgba(0, 0, 0, 0) 100%, rgba(0, 0, 0, 0) 100%);
  mask-image: linear-gradient(to right, rgba(0, 0, 0, 0) 100%, rgba(0, 0, 0, 0) 100%);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: cover;
  mask-size: cover;
}

.scene12 .cellwall::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, #18452500 0%, #184525 10%);
  width: var(--mask-width, 0%);
  left: var(--mask-left, 0%);
  /* z-index: 0; */
  /* margin-right: #1845256f 2vw solid; */
}

.scene12 .walk {
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/homepage/scene12/walk2.webp");
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  width: 30%;
  height: 30%;
  position: absolute;
  z-index: 3;
  top: 40%;
  left: 70%;
  transition: all 0.1s ease;
}

.scene12 .label1 {
  width: 80%;
  height: fit-content;
  font-size: 2vw;
  position: absolute;
  top: 100%;
  left: 50%;
  color: #d0f4f8;
  font-family: "Alfa";
}

.scene12 .label2 {
  width: fit-content;
  height: fit-content;
  font-size: 2vw;
  position: absolute;
  top: 100%;
  left: 10%;
  color: #ffe7e7;
  font-family: "Alfa";
}

.scene12 .intro {
  width: fit-content;
  height: fit-content;
  font-size: 2vw;
  position: absolute;
  top: 10%;
  left: 40%;
  color: #d0f4f8;
  font-family: "Noto";
  opacity: 0;
  transition: all 0.3s ease-in;
  text-align: center;
}

/*scene15*/
/*advatages逐渐出现*/
.scene15text {
  font-size: 2.5em;
  font-family: 'Noto';
  color: #faf2de;
  width: 30vw;
  font-weight: 500;
  opacity: 0;
  position: absolute;
  text-align: center;
  transition: all 0.8s ease;
}

/*scene16*/
/* sth deleted */
.scene16 {
  height: 1000vh;
  width: auto;
  background: #184525;
  margin-bottom: -20vw;
}

.scene16-wrapper {
  position: sticky;
  top: 0;
  height: 100vh;
  justify-content: center;
  align-items: center;
}

.scene16 .adv {
  top: 5vh;
  position: absolute;
  height: 100vh;
  width: 100vw;
  background: center / cover no-repeat;
  opacity: 0;
}

.scene16 .adv.active {
  opacity: 1;
  transition: all 0.8s ease;
}

.scene16 .home-text {
  position: absolute;
  top: 12vh;
  right: 6vw;
  height: auto;
  width: auto;
  text-align: right;
  color: #184525;
  opacity: 1 !important;
  line-height: 10vh;
}

.scene16 .home-title {
  color: #184525;
}

.scene16 hr {
  max-width: 50vw;
  border: 3px solid #184525;
  opacity: 1;
}

/*scene2-1*/
.scene2-1 {
  height: 500vh;
  width: auto;
  background: #184525;
}

.scene2-1-wrapper {
  position: sticky;
  top: 5vh;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}

.scene2-1 .map {
  position: absolute;
  height: 80vh;
  width: 80vw;
  background: center / contain no-repeat;
  opacity: 0;
}

.scene2-1 .map.active {
  opacity: 1;
  transition: all 0.8s ease;
}

.scene2-1 .home-text {
  position: absolute;
  top: 12vh;
  right: 6vw;
  height: auto;
  width: auto;
  text-align: right;
  color: #184525;
  opacity: 1 !important;
  font-size: 1.5vw;
}

.scene2-wrapper .home-text {
  font-size: 1.5vw;
}

/* conclusion */
.scene17 {
  position: relative;
  height: 100vh;
  justify-content: center;
  align-items: center;
  margin-bottom: -20vw;
  /* border: #d7c30e 1vw dashed; */
}

.scene17 .conclusion {
  position: relative;
  width: fit-content;
  height: fit-content;
  font-size: 4vw;
  font-family: 'Volkhov';
  text-align: center;
  color: #faf2de;
  margin-top: 20%;
  animation: pop-in ease-in-out forwards;
  transition: all 0.3s ease;
  opacity: 0;
  animation-timeline: view();
  animation-range: entry 0% cover 100%;
  /* transition: all 0.3s ease; */
  /* animation-timeline: scroll();
  animation-range: 0vh 90vh; */
}

.scene17 hr {
  position: relative;
  left: 5vw;
  max-width: 90vw;
  border: 3px solid #faf2de;
  opacity: 1;
}

/* more about us*/
.more-about-us {
  position: relative;
  /* top: 9vh; */
  margin-left: 0vw;
  margin-top: 10vh;
  height: 92vh;
  width: 99vw;
  /* border: #9efc77 1vw dashed; */
  /* border-top: #faf2dD 1vw solid; */
  margin-bottom: 5vw;
}

.more-about-us .title {
  /* font-weight: bold; */
  color: #ff9141;
  font-size: 6.5vw;
  font-family: 'Alfa';
  width: fit-content;
  height: fit-content;
  position: absolute;
  top: 1%;
  left: 5%;
  /* text-decoration: underline #ffffff; */
  text-decoration-thickness: 0.5vw;
}

.more-about-us .content {
  height: 70%;
  width: 63%;
  position: absolute;
  top: 35%;
  left: 2%;
  /* display: flex;
  flex-direction: column; */
}

.more-about-us .engineering,
.more-about-us .education,
.more-about-us .model,
.more-about-us .hp {
  position: absolute;
  height: 35%;
  width: 35%;
  transition: all 0.5s ease;
}

.more-about-us .engineering:hover,
.more-about-us .education:hover,
.more-about-us .model:hover,
.more-about-us .hp:hover,
.more-about-us .link-to-des:hover {
  transform: scale(1.2) translateY(-1vw);
  /* box-shadow: #333 0px 0.5vw 0.5vw; */
}

.more-about-us .engineering {
  background: url("https://static.igem.wiki/teams/5614/imagebase/homepage/moreaboutus/engineering-3.webp") center / contain no-repeat;
  top: 10%;
  left: 10%;
}

.more-about-us .txt svg {
  overflow: visible;
}

.more-about-us .education {
  background: url("https://static.igem.wiki/teams/5614/imagebase/homepage/moreaboutus/education-3.webp") center / contain no-repeat;
  top: 50%;
  left: 70%;
}

.more-about-us .model {
  background: url("https://static.igem.wiki/teams/5614/imagebase/homepage/moreaboutus/engineering-2.webp") center / contain no-repeat;
  top: 50%;
  left: 30%;
}

.more-about-us .hp {
  background: url("https://static.igem.wiki/teams/5614/imagebase/homepage/moreaboutus/hp.webp") center / contain no-repeat;
  top: 10%;
  left: 50%;
}

.more-about-us .image {
  background: url("https://static.igem.wiki/teams/5614/imagebase/homepage/moreaboutus/more-about-us.webp") center / cover no-repeat;
  position: absolute;
  top: 10%;
  left: 65%;
  height: 80%;
  width: 30%;
  border: 1vw white solid;
  border-radius: 2%;
}

.more-about-us .link-to-des {
  height: 12%;
  width: 40%;
  position: absolute;
  top: 26%;
  left: 10%;
  border-radius: 10% / 50%;
  background-color: #137c44;
  font-size: 4vw;
  font-family: "Volkhov";
  color: #fec053;
  text-align: center;
  transition: all ease 0.8s;
}

.promotion-title {
  font-family: 'Alfa';
  font-size: 4vw;
  color: #faf2de;
  margin-left: 10%;
  text-align: center;
  width: 80%;
  animation: float 3s linear infinite;
  margin-bottom: 2vw;
}

/**************************************************************
                          education
**************************************************************/

.bubble-container {
  position: relative;
  width: 95vw;
  height: 100vh;
  margin-left: -5vw;
  /* background-color: #3333332f; */
  overflow: visible;
}

.bubble-container .reminder {
  opacity: 1;
  height: 20vh;
  width: 40vw;
  background: url("https://static.igem.wiki/teams/5614/imagebase/education/reminder.avif") center / contain no-repeat;
  position: absolute;
  right: -7vw;
  bottom: 1vw;
  pointer-events: none;
}

/* 主泡泡 */
.bubble {
  position: absolute;
  width: 20%;
  height: 25%;
  background: var(--alt-pic, url('')) center / contain no-repeat;
  transition: all 0.5s ease;
  animation: float-random 6s ease-in-out infinite;
  cursor: pointer;
  --subbubble-size: 40%;
  /* 新增：hover 区域扩大用的 padding zone */
}

/* hover 时放大 + 改图 + 提升层级 */
.bubble:hover {
  scale: 1.1;
  background-image: var(--alt-pic, url(''));
  z-index: 10;
}

/* ========== hover 交互区扩大 ========== */
/* 使用伪元素创建一个“隐形大圈”承接 hover */
.bubble:hover::before {
  content: "";
  position: absolute;
  /* 向外扩大的判定区域 */
  inset: calc(-30% * var(--hover-range, 1));
  /* aspect-ratio: 1 / 1; 保证是正方形 */
  border-radius: 50%;
  /* 视觉上看不到，但参与 hover 判定 */
  /* background: #3333333a; */
}

/* 子泡泡样式 */
.bubble .subbubble {
  position: absolute;
  top: 45%;
  left: 40%;
  width: var(--subbubble-size);
  height: var(--subbubble-size);
  background: var(--sub-pic, #333) center / contain no-repeat;
  opacity: 0;
  /* transform: translate(-50%, -50%) scale(0); */
  transition: all 1s ease;
  pointer-events: none;
  /* 🚫不允许点击 */
  z-index: 5;
}

/* hover 时分裂出子泡泡 */
.bubble:hover .subbubble {
  opacity: 1;
  top: var(--tx, 50%);
  left: var(--ty, 50%);
  animation: float-small 4s ease-in-out infinite;
  pointer-events: auto;
  /* 允许点击 */
  cursor: pointer;
}

.bubble:hover .subbubble:hover {
  scale: 1.1;
}

/* 子泡泡方向 */
.bubble:hover a:nth-child(1) .subbubble {
  --tx: -20%;
  --ty: -18%;
}

.bubble:hover a:nth-child(2) .subbubble {
  --tx: 30%;
  --ty: -60%;
}

.bubble:hover a:nth-child(3) .subbubble {
  --tx: 83%;
  --ty: 80%;
}

.bubble:hover a:nth-child(4) .subbubble {
  --tx: 30%;
  --ty: 90%;
}

.bubble:hover a:nth-child(5) .subbubble {
  --tx: -50%;
  --ty: 25%;
}

.bubble:hover a:nth-child(6) .subbubble {
  --tx: 100%;
  --ty: -22%;
}

.bubble:hover a:nth-child(7) .subbubble {
  --tx: -25%;
  --ty: 75%;
}

.bubble:hover a:nth-child(8) .subbubble {
  --tx: 50%;
  --ty: -25%;
}

.bubble:hover a:nth-child(9) .subbubble {
  --tx: 108%;
  --ty: 28%;
}

.bubble:hover a:nth-child(10) .subbubble {
  --tx: -12%;
  --ty: -52%;
}

.bubble:hover a:nth-child(11) .subbubble {
  --tx: 12%;
  --ty: 118%;
}

/* 小泡泡轻微漂浮动画 */
@keyframes float-small {

  0%,
  100% {
    transform: translate(0, 0)
  }

  50% {
    transform: translate(10%, -10%)
  }
}

/* ========================================================= */
/* 🌟 当有任意泡泡 hover 时，其他泡泡透明且禁用交互 */
/* ========================================================= */
.bubble-container:has(.bubble:hover) .bubble:not(:hover) {
  opacity: 0.3;
  pointer-events: none;
  transition: opacity 0.4s ease;
}

/* ========================================================= */
.bubble-container:has(.bubble:hover) .reminder {
  opacity: 0.3;
  pointer-events: none;
  transition: opacity 0.4s ease;
}

/* 离开后恢复 */
.bubble-container .bubble {
  opacity: 1;
}

/* docu gallery */
.text-box1 .gallery-container {
  margin: 2vw 2vw;
  background-color: white;
  border-radius: 2vw;
  width: 90%;
  height: 50vh;
  position: relative;
  overflow-x: auto;
  overflow-y: hidden;
  /* scrollbar-width: none;
  -ms-overflow-style: none; */
}


.text-box1 .gallery-container .gallery {
  width: fit-content;
  height: 100%;
  position: relative;
  display: flex;
  flex-direction: row;
  /* gap: 2vw; */
  padding: 1vw 0;
  /* animation: scroll2 50s linear infinite; */
  /* list-style: none; */
}

.text-box1 .gallery-container .gallery img {
  width: fit-content;
  object-fit: contain;
  height: 100%;
  transition: all 0.5s ease;
}

.text-box1 .gallery-container .gallery img:hover {
  scale: 1.1;
}

/* poster gallery */

.text-box1 .poster-gallery-container {
  margin: 2vw 2vw;
  background-color: white;
  border-radius: 2vw;
  width: 90%;
  height: 50vh;
  position: relative;
  overflow-x: scroll;
  overflow-y: hidden;
}

.text-box1 .poster-gallery-container .gallery {
  width: fit-content;
  height: 100%;
  position: relative;
  display: flex;
  flex-direction: row;
  gap: 2vw;
  padding: 1vw 0;
  list-style: none;
}

.text-box1 .poster-gallery-container .gallery .img-container {
  width: 30vw;
  overflow-y: scroll;
  overflow-x: auto;
  height: 100%;
  transition: all 0.5s ease;
}

.gallery .img-container img {
  width: 100%;
  height: auto;
}


/**************************************************************
                          iHP
**************************************************************/
:root {
  --mind-map-url: url('https://static.igem.wiki/teams/5614/imagebase/ihp/mindmap/default.webp');
}

#ihp .stage-container {
  position: relative;
  margin-top: 0;
  background: url('https://static.igem.wiki/teams/5614/imagebase/ihp/stage-diagram.webp') center / contain no-repeat;
  width: 86vw;
  height: 100vh;
  /* background-color: #3498db; */
}

#ihp .stage-container .hover-area {
  /* filter: none; */
  /* background-color: rgba(255, 174, 0, 0.212); */
  position: absolute;
  width: 5%;
  height: 8%;
  animation: none;
  display: inline-block;
  /* border-radius: 50%; */
  /* transition: all ease 0.5s; */
}

#ihp .stage-container .hover-area:hover {
  background-color: rgba(185, 185, 185, 0.212);
  animation: glow 1.5s ease-in-out infinite;
  cursor: pointer;
}

#ihp .stage-container .trans-text {
  position: absolute;
  top: -4%;
  left: 35%;
  width: 40%;
  height: auto;
  font-family: 'Volkhov';
  font-size: 1vw;
  text-align: left;
  background-color: #008f37cf;
  border-radius: 5%;
  color: #faf2de;
  transition: all 0.5s ease-out;
  opacity: 0;
  padding: 2% 2%;
  pointer-events: none;
}

#ihp .stage-container .trans-text.active {
  opacity: 1;
  left: 58%;
}

#ihp .mind-map {
  position: relative;
  /* margin-top: 2vw; */
  margin-left: 1vw;
  width: 84vw;
  height: 80vh;
  background: url('https://static.igem.wiki/teams/5614/imagebase/ihp/mindmap/default.webp') center / contain no-repeat;
  transition: all 0.5s ease;
  cursor: zoom-in;
  /* animation: after-chosen 1s ease forwards; */
}

#ihp .mind-map.active {
  background-image: var(--mind-map-url);
  /* animation: after-chosen 1s ease forwards; */
  transition: all 0.5s ease;
}

#ihp .button-container {
  height: 8vh;
  width: 85vw;
  position: relative;
  margin-top: 2vh;
  display: flex;
  flex-direction: row;
  gap: 5vw;
  justify-content: center;
}

#ihp .button-container .but {
  background-color: var(--color, white);
  width: 14%;
  height: 100%;
  border-radius: 1vw;
  color: #184525;
  font-size: 2vw;
  font-family: 'Alfa';
  padding: 0.8% 1%;
  position: relative;
  text-align: center;
  transition: all 0.5s ease;
}

#ihp .button-container .but.active {
  /* animation: press-button 0.6s ease forwards; */
  transform: translateY(-0.6vw);
  box-shadow: #0702028d 0.8vw 0.8vw 0.5vw;
}

#ihp .button-container .but.active:hover {
  animation: blink 1.5s ease infinite;
}

#ihp .button-container .but.active:active {
  transform: translateY(0.5vw);
  box-shadow: none;
}

#ihp .button-container .but:active {
  transform: translateY(0.5vw);
  animation: none !important;
}

#ihp .button-container .but:hover {
  cursor: pointer;
  animation: blink 1s ease infinite;
  /* box-shadow: #0702028d 0.8vw 0.8vw 0.5vw; */
  /* transform: translateY(-0.5vw); */
}

#ihp .reflection-container {
  position: relative;
  width: 60vw;
  height: 60vh;
  margin-left: 8%;
  display: block;
  /* padding: 3%; */
}

#ihp .reflection-container .cycle {
  position: absolute;
  top: 0;
  right: 35%;
  height: 100%;
  width: 100%;
  background: url('https://static.igem.wiki/teams/5614/imagebase/ihp/reflection-cycle-3.webp') center / contain no-repeat;
  animation: slow-spin 20s infinite linear;
  transform-origin: 50% 50%;
}

#ihp .reflection-cycle-txt {
  position: relative;
  width: 50%;
  margin-left: 50%;
  margin-top: -80vh;
  height: 90vh;
  padding-right: 2vw;
}

#ihp .cycle-side {
  position: relative;
  width: 50%;
  margin-left: 45%;
  height: fit-content;
  padding-right: 2vw;
}

#ihp .row .left-bar {
  position: sticky;
  top: 7vh;
  /* height: fit-content; */
  display: flex;
  flex-direction: column;
  gap: 2vw;
  margin-left: 0vw;
  --left-img-num: 1;
  height: 94vh;
  overflow-y: auto;
}

#ihp .row .left-bar::-webkit-scrollbar-thumb {
  background: linear-gradient(to right, #08a325, #177c45);
  border-radius: 1vw;
}

#ihp .row .left-bar::-webkit-scrollbar-track {
  background: #eee;
}


#ihp .row .left-bar::-webkit-scrollbar {
  width: 0.5vw;
  height: 1vw;
}

#ihp .row .left-bar img {
  position: relative;
  object-fit: contain;
}


/**************************************************************
                      Entrepreneurship
**************************************************************/
.wrap {
  max-width: min(1200px, 96vw);
  margin: 2rem auto 1rem;
  padding: 0 1rem;
}

.wrap {
  max-width: min(1200px, 96vw);
  margin: 2rem auto 1rem;
  padding: 0 1rem;
}

.viewer {
  height: 85vh;
  border-radius: 16px;
  background: #111217;
  position: relative;
  overflow: auto;
  /* enable scroll */
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  box-shadow: 0 10px 40px rgba(0, 0, 0, .35),
    inset 0 0 0 1px rgba(255, 255, 255, .06);
}

/* --- Rounded scrollbar look --- */
.viewer::-webkit-scrollbar {
  width: 10px;
}

.viewer::-webkit-scrollbar-track {
  background: #0f1014;
  border-radius: 16px;
  margin: 4px;
  /* space so track corners remain visible */
}

.viewer::-webkit-scrollbar-thumb {
  background: #2a2d36;
  border-radius: 16px;
}

/* Clip everything visually inside rounded edge */
.viewer::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 16px;
  pointer-events: none;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .06) inset;
}

.viewer img {
  display: block;
  width: 100%;
  height: auto;
  image-rendering: auto;
  /* -webkit-user-drag: none;
  user-select: none; */
}

.image-box {
  width: 90%;
  height: 60vh;
  margin: auto;
  overflow: auto;
  border-radius: 30px;
  background: #111;
  /* box-shadow: 0 5px 20px rgba(0,0,0,0.2); */
  -webkit-overflow-scrolling: touch;
}

/* hide scrollbars */
.image-box::-webkit-scrollbar {
  display: none;
}

.image-box {
  scrollbar-width: none;
}

.image-box img {
  width: 100%;
  height: auto;
  border-radius: 30px;
  display: block;
}

.marquee {
  overflow: hidden;
  width: 100%;
}

.marquee-track {
  display: flex;
  align-items: center;
  width: max-content;
  will-change: transform;
  animation: scroll linear infinite;
}

.marquee-track img {
  flex: 0 0 auto;
  /* user-select: none;
  -webkit-user-drag: none; */
  pointer-events: none;
}

@keyframes scroll {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-50%);
  }

  /* 同理，走半程 */
}

@media (prefers-reduced-motion: reduce) {
  .marquee-track {
    animation: none !important;
  }
}

/**************************************************************
                          Product design
**************************************************************/
/* .banner .product_design {
  margin-left: 5vw;
  margin-top: 3vw;
  height: 29vw;
  width: 100%;
  background: url('https://static.igem.wiki/teams/5614/imagebase/description/banner3.webp') 55% 0% / 100% no-repeat;
  border-radius: 5vw;
  margin-bottom: 5vw;
} */
/* 产品页面样式 */
.productpage {
  width: 100%;
  padding: 5vw;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  /* margin-left: 10vw; */
}

.product-container {
  display: flex;
  /* justify-content: space-evenly; */
  width: 100%;
}

/* 产品特性样式 */
.left-product,
.right-product {
  display: flex;
  flex-direction: column;
  gap: 3vw;
}

/* 中间产品图片 */
.mid-substanceimg-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 10vh;
}

.mid-substanceimg {
  height: 25vw;
  animation: float 6s ease infinite;
  margin: 2vw;
}

.substance-heading {
  font-family: 'Alfa Slab One', cursive;
  color: #ffc053;
  text-align: center;
  font-size: 5vw;
  /* margin-bottom: 1vw; */
  margin-top: 2vw;
  z-index: 99;
}

.substance-intro {
  font-family: 'Arial', sans-serif;
  color: #333;
  text-align: center;
  font-size: 1.5vw;
  background-color: rgba(237, 233, 233, 0.7);
  padding: 0.5vw 2vw;
  border-radius: 2vw;
}

/* 文本内容样式 - 使用指定的配色 */
.Armoldgedddon-head {
  font-weight: bold;
  display: inline;
  font-family: 'Alfa Slab One', cursive;
  font-size: 1.5vw;
}

.Armoldgedddon-content {
  font-size: 1.1vw;
  margin: 0;
  width: 20vw;
  font-family: 'Arial', sans-serif;
}

.ArmoldgedddonP-left {
  text-align: left;
}

.ArmoldgedddonP-right {
  text-align: right;
}

/* 使用指定的配色方案 */
.ArmoldgedddonP-left1-head,
.ArmoldgedddonP-right1-head {
  color: #137c45;
}

.ArmoldgedddonP-right2-head,
.ArmoldgedddonP-left2-head {
  color: #65b874;
}

.ArmoldgedddonP-right3-head,
.ArmoldgedddonP-left3-head {
  color: #ff9140;
}

.ArmoldgedddonP-left1-content,
.ArmoldgedddonP-right1-content,
.ArmoldgedddonP-right2-content,
.ArmoldgedddonP-left2-content,
.ArmoldgedddonP-right3-content,
.ArmoldgedddonP-left3-content {
  color: #333;
}

.slider-product {
  position: relative;
  width: 90vw;
  height: 100vh;
  overflow: hidden;
  margin: 0vw 5vw;
}

.container-productpg1 {
  display: flex;
  transition: transform 0.5s ease;
  width: 300%;
  flex-direction: row;
  gap: 2.5%;
  margin-left: 3vw;
}

.productpage {
  margin-left: 15vw;
  width: 50vw;
  height: 80vh;
  display: flex;
  /* align-items: center; */
  /* justify-content: center; */
  /* background-color: #184525; */
}

.pro-button {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background-color: #246436;
  border: none;
  padding: 10px;
  cursor: pointer;
  font-size: 2rem;
  z-index: 10;
}

.pro-button.left {
  left: 10px;
  border-radius: 40px 0 0 40px;
}

.pro-button.right {
  right: 10px;
  border-radius: 0 40px 40px 0;
}

.mechanism-textbox {
  margin-left: 10%;
  position: relative;
  text-align: left;
  padding: 5% 5% 5% 5%;
  height: auto;
  width: 80%;
  background: linear-gradient(to bottom,
      #fcf2d0,
      #c5e3aa);
  white-space: normal;
  overflow: visible;
  border-radius: 0.5vw;
}

.mechanism-textbox .mechanism-text-background2 {
  position: absolute;
  height: 100%;
  width: 100%;
  left: 1vw;
  top: 1vw;
  z-index: -1;
  background-color: #ff9140;
  overflow: visible;
  border-radius: 0.5vw;
}

.mechanism-title {
  all: initial;
  font-size: 40px;
  font-weight: 500;
  color: #ffc053;
  font-family: 'Alfa';
  border-radius: 40px;
  padding: 10px 20px;
  text-align: center;
}

.mechanism-textbox p {
  color: #6F481F !important;
  font-size: 1.2vw !important;
  line-height: 1.5 !important;
  font-family: 'Noto';
  text-align: left !important;
  scroll-margin-top: 100px;
}

.equipment-title {
  color: #FFEFCD;
  font-family: 'Volkhov';
  font-size: 80px;
  text-align: center;
  margin: 20px;
}

.equipment-intro {
  color: #FFEFCD;
  font-family: 'Volkhov';
  font-size: 26px;
  margin: 0 12%;
  text-align: center;
}

.tab {
  width: 978px;
  margin: 100px auto 200px auto;
}

.tab_list {
  width: 300px;
  height: 80px;
  border-radius: 20px;
  display: flex;
  justify-content: space-between;
  padding: 20px;
}

.tab_list li {
  height: 80px;
  width: 70px;
  line-height: 39px;
  text-align: center;
  cursor: pointer;
  background-size: cover;
  border-radius: 20px;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 40px;
  margin-right: 2vw;
}

.tab_list .current {
  opacity: 0.8;
  border: #bb0000 3px solid;
}

.product {
  margin-top: 15vh;
  display: none;
}

.text {
  display: none;
  color: white;
  margin-left: 5vw;
  pointer-events: none;
}

/* 为每个按钮设置对应的背景图片 */
.btn1 {
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/productdesign/filter.webp");
}

.btn2 {
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/productdesign/gel.webp");
}

.btn3 {
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/productdesign/paint.webp");
}

.btn4 {
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/productdesign/spray.webp");
}

.btn5 {
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/productdesign/sticker.webp");
}

.btn6 {
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/productdesign/titration.webp");
}

.btn7 {
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/productdesign/atomizer.webp");
}

.left-product {
  display: flex;
  flex-direction: column;
  gap: 5%;
}

.right-product {
  display: flex;
  flex-direction: column;
  gap: 5%;
}

.substance-heading {
  font-family: 'Volkhov';
  color: #FFEFCD;
  text-align: center;
  font-size: 40px;
}

.substance-intro {
  font-family: 'Volkhov';
  color: #F8C993;
  text-align: center;
  font-size: 20px;
  margin-top: -5px;
}

.mid-substanceimg {
  height: 17vw;
  animation: float 6s ease infinite;
  margin: 10vh 5vh 0 5vh;
}

/* glucanase 样式 */
.dienaT-left {
  text-align: right;
  position: relative;
  padding: 5% 5% 5% 5%;
  background: linear-gradient(to right,
      #F2CB9F 10%,
      #F6D6AE 40%,
      #fcf2d0 100%);
  border-radius: 0.5vw;
  white-space: normal;
  overflow: visible;
}

.dienaT-right {
  text-align: left;
  position: relative;
  padding: 5% 5% 5% 5%;
  background: linear-gradient(to left,
      #F2CB9F 10%,
      #F6D6AE 40%,
      #fcf2d0 100%);
  white-space: normal;
  overflow: visible;
  border-radius: 0.5vw;
}

/* lysozyme 样式 */
.Lysozyme-left {
  text-align: right;
  position: relative;
  padding: 5% 5% 5% 5%;
  background: linear-gradient(to right,
      #D7E8B5 10%,
      #EBEFCD 40%,
      #fcf2d0 100%);
  border-radius: 0.5vw;
  white-space: normal;
  overflow: visible;
}

.Lysozyme-right {
  text-align: left;
  position: relative;
  padding: 5% 5% 5% 5%;
  background: linear-gradient(to left,
      #D7E8B5 10%,
      #EBEFCD 40%,
      #fcf2d0 100%);
  white-space: normal;
  overflow: visible;
  border-radius: 0.5vw;
}

.diena-head {
  font-weight: 300;
  display: inline;
  font-family: 'Alfa';
  font-size: 1.5em;
  color: #ff9f4d;
}

.diena-content {
  font-size: 1.1vw;
  margin: 0;
  width: 20vw;
  color: #6F481F;
}

.product-pros {
  margin-top: 10vh;
  display: flex;
}

.Lysozyme-left1-head,
.Lysozyme-right1-head {
  color: #7fb252;
}

.Lysozyme-right2-head,
.Lysozyme-left2-head {
  color: #7fb252;
}

.Lysozyme-left1-content,
.Lysozyme-right1-content,
.Lysozyme-right2-content,
.Lysozyme-left2-content {
  color: #6F481F;
}

/* chitinase 样式 */
.Chitinase-left {
  text-align: right;
  position: relative;
  padding: 5% 5% 5% 5%;
  background: linear-gradient(to right,
      #F5E9B1 10%,
      #F7ECC5 40%,
      #fcf2d0 100%);
  border-radius: 0.5vw;
  white-space: normal;
  overflow: visible;
}

.Chitinase-right {
  text-align: left;
  position: relative;
  padding: 5% 5% 5% 5%;
  background: linear-gradient(to left,
      #F5E9B1 10%,
      #F7ECC5 40%,
      #fcf2d0 100%);
  white-space: normal;
  overflow: visible;
  border-radius: 0.5vw;
}

.dienaH-right1-head,
.dienaH-left1-head {
  color: #cda000;
}

.dienaH-right2-head,
.dienaH-left2-head {
  color: #cda000;
}

.dienaH-right3-head,
.dienaH-left3-head {
  color: #cda000;
}

.dienaH-left1-content,
.dienaH-right1-content,
.dienaH-right2-content,
.dienaH-left2-content,
.dienaH-left3-content,
.dienaH-right3-content {
  color: #6F481F;
}

/* Terpene 样式 */
.Terpene-left {
  text-align: right;
  position: relative;
  padding: 5% 5% 5% 5%;
  background: #FFEBEB;
  border-radius: 0.5vw;
  white-space: normal;
  overflow: visible;
}

.Terpene-right {
  text-align: left;
  position: relative;
  padding: 5% 5% 5% 5%;
  background: #E3FDFF;
  overflow: visible;
  border-radius: 0.5vw;
}

.Terpene-right1-head,
.Terpene-right2-head,
.Terpene-right3-head {
  color: #5EB896;
}

.Terpene-left1-head,
.Terpene-left2-head,
.Terpene-left3-head {
  color: #b21846;
}

.Terpene-left1-content,
.Terpene-right1-content,
.Terpene-right2-content,
.Terpene-left2-content,
.Terpene-left3-content,
.Terpene-right3-content {
  color: #6F481F;
}

/* 设备介绍样式 */
.product img {
  margin-top: 10vh;
  width: 30vw;
  animation: float 6s infinite;
  margin-left: -5vw;
}

.device-intro-productpage {
  margin-top: 10vh;
}

.section .segment1 {
  background-color: #137c45;
  border-radius: 5vw;
  z-index: -2;
  width: 60%;
  padding: 2vh 2vh;
  position: absolute;
}

.section .segment2 {
  background-color: #b7dfa1;
  border-radius: 5vw;
  z-index: -3;
  width: 70%;
  position: absolute;
}

.section .segment3 {
  background-color: #faf2dD;
  border-radius: 5vw;
  z-index: -4;
  width: 80%;
  position: absolute;
}

.section .segment4 {
  background-color: #ff9140;
  border-radius: 5vw;
  width: 90%;
  z-index: -5;
  position: absolute;
}

.section .segment1,
.section .segment2,
.section .segment3,
.section .segment4 {
  height: 100%;
  position: absolute;
}

/* primary title */
.title-container1 {
  position: relative;
  display: flex;
  align-items: left;
  overflow: hidden;
  width: var(--pri-title-width, 60%);
  height: var(--pri-title-height, 5vw);
  margin-top: 2vw;
  margin-bottom: 1vw;
  margin-left: 9vw;
}

.c {
  display: flex;
}

.device-intro-content-target {
  text-align: center;
}

.device-intro-content {
  padding: 20px;
  width: 45vw;
  position: relative;
  text-align: center;
  padding: 5% 5% 5% 5%;
  background: linear-gradient(to bottom,
      #fcf2d0,
      #c5e3aa);
  white-space: normal;
  overflow: visible;
  border-radius: 0.5vw;
}

.device-intro-content-inspire,
.device-intro-content-benefits,
.device-intro-content-components {
  text-align: left;
}

.device-intro-content-benefits ol>li {
  font-family: arimo;
  color: #6F481F;
  font-size: 15px;
  line-height: inherit;
}

/* 材料列表样式 */
.material-list {
  color: #6F481F;
  font-size: 1.2vw;
  line-height: 1.5;
  font-family: 'Noto';
  margin-left: 2vw;
}

/*Protocol*/
/* 保留原折叠面板核心样式，确保交互正常 */
.accordion {
  width: 85%;
  margin-top: 2vw;
  margin-bottom: 2vw;
  margin-left: 10vw;
  overflow-anchor: none;
}

.accordion .contentBx {
  margin: 4vw 0;
  /* border-radius: 1vw; */
  overflow-anchor: none;
  will-change: max-height;
}

.accordion .contentBx .label {
  padding: 1.5vw;
  background: #4d7b5c;
  border-radius: 2vw;
  color: #faf2dD;
  font-weight: bold;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: 'Volkhov';
  transition: all 0.5s 0.3s ease;
  user-select: none;
}

.accordion .contentBx .label:hover {
  scale: 1.05;
  box-shadow: #3333339b 1vw 1vw;
}

.accordion .contentBx.active .label:hover {
  scale: 1;
  box-shadow: none;
}

.accordion .contentBx .label::after {
  content: '+';
  font-size: 1.5em;
}

.accordion .contentBx.active .label::after {
  content: '-';
}

.accordion .contentBx.active .label {
  border-radius: 2vw 2vw 0 0;
  transition: all 0.5s ease;
}

.accordion .contentBx .contentprotocol {
  /* padding: 1.5vw; */
  max-height: 0;
  overflow: hidden;
  transition: all 0.5s ease;
  overflow-anchor: none;
  will-change: max-height;
  position: relative;
}

.accordion .contentBx.active .contentprotocol {
  padding: 1.5vw;
  max-height: 400vw;
  background-color: #fcf2d0;
  border-bottom-left-radius: 2vw;
  border-bottom-right-radius: 2vw;
  transition: all 0.5s 0.3s ease;
  /* 足够容纳内容的高度 */
}

/* 标题样式统一 */
.contentprotocolhead {
  font-size: 1.1em;
  font-weight: bold;
  color: #184525;
  display: block;
  margin: 10px 0 5px;
  font-family: 'Volkhov';
}

/* 注意事项样式 */
.note {
  color: #e74c3c;
  font-style: italic;
  margin-top: 10px;
  display: block;
}


/*********************************
            awards page 
**********************************/

/* .title-container2 {
  align-items: center;
  position: relative;
  height: 12vh;
  width: 50vw;
  margin: 2vw 10vw;
  border-radius: 10vh;
  background-color: #ef7919;
  font-family: 'Alfa';
  color: #184525;
  font-size: 2vw;
  padding: 0.7vw 3.4vw;
} */

.awards {
  /* margin-right: 20vh; */
  height: 100vh;
  width: 100%;
  /* background-color: #00698f5b; */
  position: relative;
  padding: 0;
  display: flex;
}

/* .awards .awards-menu {
  height: 100%;
  width: 15vw;
  background-color: #b69e03b0;
  position: relative;
} */

.awards .awards-container {
  height: 100%;
  width: 98.3%;
  margin-left: 1.7%;
  position: relative;
  background-color: #184525;
  padding: 5% 1%;
  /* padding-left: 5%; */
  background-image: url('https://static.igem.wiki/teams/5614/imagebase/awards/awards-containerbg.avif');
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.awards .award-wrapper {
  position: relative;
  width: 100%;
  /* 100% 是除去padding后的100%*/
  height: 100%;
  display: grid;
  grid-template-columns: repeat(7, 1.5fr);
  grid-template-rows: repeat(2, 1fr);
  row-gap: 10%;
  column-gap: 2%;
  /* background-color: #2d088a47; */
}

.awards .award {
  will-change: transform;
  position: relative;
  /* height: 30%;
  width: 5%; */
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transform-style: preserve-3d;
  transition: all 0.4s ease;
  z-index: 1;
  transform: rotateX(0deg) rotateY(0deg);
  /* background-color: #000000e2; */
  /* border: ; */
  --award-type: 0;
}

.awards .award.flipped {
  transform: rotateY(180deg);
}

.awards .award.flipped:hover {
  transform: translateY(-2vw) rotateY(180deg);
}

/* .awards .award:hover::after {
  transform: rotateY(180deg);
} */

.awards .award:hover {
  transform: translateY(-2vw);
}

/* .awards .award:hover::after {
  content: "click to flip";
  position: absolute;
  background: black;
  color: white;
  height: 2vw;
  padding: 0.2vw 0.5vw;
  border-radius: 0.5vw;
  white-space: nowrap;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
} */

.award .front,
.award .back {
  position: absolute;
  backface-visibility: hidden;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  /* color: white; */
}

.award .back {
  /* margin-left: -9vw; */
  /* margin-top: -20vw; */
  background-image: url("https://static.igem.wiki/teams/5614/imagebase/awards/awardpattern/awardpattern/cards/cardback.avif");
  transition: all 0.4s ease;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  /* height: 15vw;
  width: 13vw; */
}

.award .front {
  background: url("https://static.igem.wiki/teams/5614/imagebase/awards/awardpattern/awardpattern/cards/cardback.avif");
  transform: rotateY(180deg);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  /* background-color: rgb(24, 69, 37); */
  /* color: white; */
}


/* ===== awards menu vertical icon list ===== */
.awards-menu {
  height: 100%;
  width: 15vw;
  background-color: #F7ECC5;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 2vw 0.8vw;
  gap: 1.4vw;
  overflow-y: auto;
}

.awards-menu::-webkit-scrollbar-thumb {
  background: linear-gradient(to right, #08a325, #177c45);
  border-radius: 1vw;
}

.awards-menu::-webkit-scrollbar-track {
  background: #eeeeee00;
}


.awards-menu::-webkit-scrollbar {
  width: 0.5vw;
  /* height: 10vw; */
}

.awards-menu-item {
  width: 90%;
  max-width: 10vw;
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.awards-menu-img {
  width: 100%;
  height: 100%;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  filter: grayscale(1) brightness(0.8);
  opacity: 0.6;
  transition: filter 0.3s ease, opacity 0.3s ease, transform 0.3s ease;
}

.awards-menu-img.lit {
  filter: none;
  opacity: 1;
  transform: scale(1.05);
}

/* 庆祝动画提示文字样式 */
.awards #celebration-message {
  position: fixed;
  top: 80%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: white;
  font-size: 24px;
  text-align: center;
  text-shadow: 0 0 10px rgba(0, 0, 0, 0.7);
  pointer-events: none;
  display: none;
  z-index: 1000;
  background-color: rgba(0, 0, 0, 0.5);
  padding: 15px 30px;
  border-radius: 8px;
}

/* 礼花容器样式 */
.awards #confetti-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  display: none;
  z-index: 999;
}

/*弹窗popup awards*/

.popup-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  z-index: 50;
}

/* 弹窗主体 */
.popup-content {
  background-color: white;
  border-radius: 1rem;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  padding: 1.5rem;
  max-width: 48rem;
  width: 100%;
  text-align: center;
  position: relative;
  opacity: 1;
  transform: scale(1) translateY(0);
  transition: all 0.3s ease-out;
}

/* 进入动画 */
.popup-enter {
  animation: popupEnter 0.3s ease-out forwards;
}

/* 退出动画 */
.popup-exit {
  animation: popupExit 0.3s ease-in forwards;
}

@keyframes popupEnter {
  0% {
    opacity: 0;
    transform: scale(0.95) translateY(10px);
  }

  100% {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

@keyframes popupExit {
  0% {
    opacity: 1;
    transform: scale(1) translateY(0);
  }

  100% {
    opacity: 0;
    transform: scale(0.95) translateY(10px);
  }
}

/* 关闭按钮 */
.close-btn {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  color: #6b7280;
  cursor: pointer;
  transition: color 0.2s ease;
  background: none;
  border: none;
  padding: 0.25rem;
}

.close-btn:hover {
  color: #374151;
}

/* 自定义图标样式 */
.icon {
  width: 20px;
  height: 20px;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
  display: inline-block;
}

.icon-lg {
  width: 24px;
  height: 24px;
}

/* 标题样式 */
.popup-title {
  font-size: 1.5rem;
  font-weight: 800;
  color: #15803d;
  margin-bottom: 1.5rem;
  line-height: 1.2;
}

/* 图片样式 */
.popup-image {
  width: 100%;
  max-height: 32rem;
  object-fit: cover;
  border-radius: 0.75rem;
  margin-bottom: 1rem;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}

/* 文本样式 */
.popup-text {
  color: #374151;
  font-size: 1rem;
  margin-bottom: 0.75rem;
  line-height: 1.5;
}

.popup-text-sm {
  color: #4b5563;
  font-size: 0.875rem;
  margin-bottom: 1rem;
  line-height: 1.5;
}

/* 链接样式 */
.popup-link {
  display: inline-block;
  color: #15803d;
  font-weight: 600;
  text-decoration: underline;
  margin-bottom: 1rem;
  transition: color 0.2s ease;
}

.popup-link:hover {
  color: #065f46;
}

/* 分隔线 */
.divider {
  border-top: 1px solid #e5e7eb;
  margin: 1rem 0;
}

/* 联系方式容器 */
.contact-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}

/* 联系方式链接 */
.contact-link {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: #15803d;
  text-decoration: none;
  transition: color 0.2s ease;
}

.contact-link:hover {
  color: #065f46;
}

.contact-text {
  font-size: 1rem;
  display: none;
}

/* 主要按钮 */
.primary-btn {
  background-color: #16a34a;
  color: white;
  padding: 0.5rem 1.5rem;
  border-radius: 9999px;
  font-size: 1rem;
  border: none;
  cursor: pointer;
  transition: background-color 0.2s ease;
  margin-top: 1.5rem;
}

.primary-btn:hover {
  background-color: #15803d;
}

.primary-btn:focus {
  outline: none;
  box-shadow: 0 0 0 2px white, 0 0 0 4px #4ade80;
}

/* 响应式设计 */
@media (min-width: 640px) {
  .contact-container {
    gap: 2.5rem;
  }

  .contact-text {
    display: inline;
  }
}

@media (max-width: 640px) {
  .popup-title {
    font-size: 1.25rem;
  }

  .popup-content {
    padding: 1rem;
  }
}