/* ===== 可欣的快乐人生 · 浪漫主义风格 ===== */

@import url('https://fonts.googleapis.com/css2?family=Zhi+Mang+Xing&family=ZCOOL+KuaiLe&family=Noto+Sans+SC:wght@300;400;500;700&display=swap');

:root{
  --rose:#ff8fd0;
  --rose-deep:#ff2e88;
  --purple:#a56bff;
  --cyan:#5ee0ff;
  --cream:#fff2fb;
  --cream-2:#ffe3f5;
  --gold:#ffc23e;
  --ink:#6a2f7a;
  --ink-soft:#c65bb0;
  --shadow:rgba(255,60,150,.25);
  --glow:rgba(165,107,255,.5);
}

*{margin:0;padding:0;box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  font-family:'Noto Sans SC','ZCOOL KuaiLe',sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at 15% 12%, rgba(94,224,255,.35) 0%, transparent 40%),
    radial-gradient(circle at 85% 20%, rgba(165,107,255,.35) 0%, transparent 42%),
    radial-gradient(circle at 50% 85%, rgba(255,46,136,.25) 0%, transparent 50%),
    linear-gradient(160deg, #fff2fb 0%, #ffe3f5 45%, #f3e0ff 100%);
  background-attachment:fixed;
  overflow-x:hidden;
  line-height:1.9;
}
/* 二次元闪光星星层 */
body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:
    radial-gradient(2px 2px at 20% 30%, #fff 50%, transparent),
    radial-gradient(2px 2px at 70% 60%, #fff 50%, transparent),
    radial-gradient(1.5px 1.5px at 40% 80%, #fff 50%, transparent),
    radial-gradient(2px 2px at 90% 40%, #fff 50%, transparent),
    radial-gradient(1.5px 1.5px at 55% 15%, #fff 50%, transparent);
  background-size:cover;
  animation:twinkle 4s ease-in-out infinite;
}

/* ---------- 封面 ---------- */
.hero{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  position:relative;
  padding:2rem;
}
.hero-inner{animation:fadeUp 1.8s ease both}
.hero-eyebrow{
  font-size:1.1rem;
  letter-spacing:.5em;
  color:var(--rose-deep);
  margin-bottom:1.5rem;
  padding-left:.5em;
}
.hero-title{
  font-family:'ZCOOL KuaiLe',cursive;
  font-size:clamp(3rem,12vw,7rem);
  font-weight:400;
  letter-spacing:.06em;
  background:linear-gradient(92deg,#ff2e88,#a56bff,#5ee0ff,#ff2e88);
  background-size:300% auto;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
  filter:drop-shadow(0 4px 16px var(--glow));
  animation:hue 6s linear infinite;
  margin-bottom:2rem;
}
.hero-subtitle{
  font-size:clamp(1rem,3vw,1.4rem);
  color:var(--ink-soft);
  font-weight:300;
  letter-spacing:.15em;
}
.hero-scroll{
  margin-top:4rem;
  color:var(--ink-soft);
  font-size:.9rem;
  letter-spacing:.3em;
  animation:float 2.5s ease-in-out infinite;
}
.hero-scroll .arrow{
  width:14px;height:14px;
  border-right:2px solid var(--rose-deep);
  border-bottom:2px solid var(--rose-deep);
  transform:rotate(45deg);
  margin:1rem auto 0;
}

/* ---------- 时间线 ---------- */
.timeline{
  max-width:1000px;
  margin:0 auto;
  padding:4rem 1.5rem 2rem;
  position:relative;
}
.timeline::before{
  content:"";
  position:absolute;
  left:50%;top:0;bottom:0;
  width:2px;
  background:linear-gradient(var(--rose),var(--gold),var(--rose));
  opacity:.35;
  transform:translateX(-50%);
}
@media(max-width:720px){
  .timeline::before{left:26px}
}

.entry{
  position:relative;
  display:flex;
  align-items:center;
  margin:5rem 0;
  opacity:0;
  transform:translateY(50px);
  transition:opacity 1s ease, transform 1s ease;
}
.entry.show{opacity:1;transform:translateY(0)}
.entry:nth-child(even){flex-direction:row-reverse}

/* 中间的圆点 */
.entry::before{
  content:"";
  position:absolute;
  left:50%;top:50%;
  width:18px;height:18px;
  background:var(--cream);
  border:3px solid var(--rose-deep);
  border-radius:50%;
  transform:translate(-50%,-50%);
  box-shadow:0 0 0 6px var(--cream-2), 0 0 18px var(--rose);
  z-index:2;
}
@media(max-width:720px){
  .entry::before{left:26px}
}

.entry-photo{
  flex:0 0 46%;
  padding:0 2.5rem;
}
.entry-photo img{
  width:100%;
  border-radius:10px;
  box-shadow:0 14px 40px var(--shadow);
  border:6px solid #fff;
  cursor:pointer;
  transition:transform .5s ease, box-shadow .5s ease;
  filter:saturate(1.02);
}
.entry-photo img:hover{
  transform:scale(1.03) rotate(-.5deg);
  box-shadow:0 20px 55px rgba(160,110,110,.32);
}

.entry-text{
  flex:0 0 46%;
  padding:0 2.5rem;
}
.entry:nth-child(even) .entry-text{text-align:right}
.entry-year{
  font-family:'ZCOOL KuaiLe',cursive;
  font-size:3.2rem;
  color:var(--gold);
  line-height:1;
  margin-bottom:.3rem;
}
.entry-age{
  font-size:.95rem;
  color:var(--rose-deep);
  letter-spacing:.2em;
  margin-bottom:1rem;
}
.entry-title{
  font-size:1.5rem;
  color:var(--ink);
  font-weight:500;
  margin-bottom:.8rem;
}
.entry-desc{
  font-size:1.02rem;
  color:var(--ink-soft);
  font-weight:300;
}

@media(max-width:720px){
  .entry,.entry:nth-child(even){flex-direction:column;align-items:flex-start;padding-left:52px}
  .entry-photo,.entry-text{flex:none;width:100%;padding:0}
  .entry-photo{margin-bottom:1.2rem}
  .entry:nth-child(even) .entry-text{text-align:left}
  .entry-year{font-size:2.6rem}
}

/* ---------- 结尾 ---------- */
.ending{
  min-height:60vh;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:4rem 2rem;
}
.ending-line{
  font-family:'ZCOOL KuaiLe',cursive;
  font-size:clamp(2rem,7vw,3.5rem);
  color:var(--rose-deep);
  margin-bottom:1.5rem;
}
.ending-sign{
  color:var(--ink-soft);
  letter-spacing:.25em;
  font-weight:300;
}

/* ---------- 花瓣飘落 ---------- */
.petals{position:fixed;inset:0;pointer-events:none;z-index:1;overflow:hidden}
.petals span{
  position:absolute;top:-10%;
  width:16px;height:16px;
  background:var(--rose-deep);
  opacity:.65;
  animation:fall linear infinite;
  -webkit-mask:radial-gradient(circle at 30% 30%, #000 62%, transparent 63%) 0 0/50% 50% no-repeat,
        radial-gradient(circle at 70% 30%, #000 62%, transparent 63%) 100% 0/50% 50% no-repeat,
        conic-gradient(from -45deg at 50% 70%, #000 0 90deg, transparent 90deg) 50% 100%/100% 60% no-repeat;
          mask:radial-gradient(circle at 30% 30%, #000 62%, transparent 63%) 0 0/50% 50% no-repeat,
        radial-gradient(circle at 70% 30%, #000 62%, transparent 63%) 100% 0/50% 50% no-repeat,
        conic-gradient(from -45deg at 50% 70%, #000 0 90deg, transparent 90deg) 50% 100%/100% 60% no-repeat;
}
.petals span:nth-child(1){left:8%;animation-duration:11s;animation-delay:0s}
.petals span:nth-child(2){left:18%;animation-duration:14s;animation-delay:2s}
.petals span:nth-child(3){left:30%;animation-duration:9s;animation-delay:1s}
.petals span:nth-child(4){left:42%;animation-duration:13s;animation-delay:4s}
.petals span:nth-child(5){left:55%;animation-duration:10s;animation-delay:.5s}
.petals span:nth-child(6){left:66%;animation-duration:15s;animation-delay:3s}
.petals span:nth-child(7){left:75%;animation-duration:12s;animation-delay:1.5s}
.petals span:nth-child(8){left:85%;animation-duration:9.5s;animation-delay:5s}
.petals span:nth-child(9){left:92%;animation-duration:13.5s;animation-delay:2.5s}
.petals span:nth-child(10){left:48%;animation-duration:16s;animation-delay:6s}

/* ---------- 灯箱 ---------- */
.lightbox{
  position:fixed;inset:0;
  background:rgba(60,40,42,.85);
  backdrop-filter:blur(6px);
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  opacity:0;visibility:hidden;
  transition:opacity .4s ease;
  z-index:100;padding:3rem;
}
.lightbox.open{opacity:1;visibility:visible}
.lightbox img{
  max-width:90%;max-height:80%;
  border-radius:8px;
  border:6px solid #fff;
  box-shadow:0 20px 60px rgba(0,0,0,.5);
}
.lightbox-caption{
  color:#fff;margin-top:1.2rem;
  letter-spacing:.15em;font-weight:300;
}

/* ---------- 动画 ---------- */
@keyframes fadeUp{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(10px)}}
@keyframes fall{
  0%{transform:translateY(0) rotate(0);opacity:.7}
  100%{transform:translateY(110vh) rotate(360deg);opacity:0}
}

/* ---------- 顶部导航 ---------- */
.topnav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:1rem 2.5rem;
  background:rgba(253,246,240,.75);
  backdrop-filter:blur(10px);
  box-shadow:0 2px 20px var(--shadow);
}
.topnav .brand{
  font-family:'ZCOOL KuaiLe',cursive;
  font-size:1.5rem;color:var(--rose-deep);text-decoration:none;letter-spacing:.05em;
}
.navlinks a{
  color:var(--ink-soft);text-decoration:none;margin-left:1.8rem;
  font-size:.98rem;letter-spacing:.1em;position:relative;transition:color .3s;
}
.navlinks a:hover{color:var(--rose-deep)}
.navlinks a::after{
  content:"";position:absolute;left:0;bottom:-6px;width:0;height:2px;
  background:var(--rose-deep);transition:width .3s;
}
.navlinks a:hover::after{width:100%}
@media(max-width:600px){
  .topnav{flex-direction:column;gap:.6rem;padding:.8rem 1rem}
  .navlinks a{margin:0 .7rem}
}

/* ---------- 首页卡片链接 ---------- */
.entry-photo a{display:block;position:relative;text-decoration:none}
.photo-more{
  position:absolute;left:50%;bottom:14px;transform:translateX(-50%);
  background:rgba(201,107,118,.85);color:#fff;
  padding:.4rem 1.2rem;border-radius:20px;font-size:.85rem;letter-spacing:.1em;
  opacity:0;transition:opacity .4s;white-space:nowrap;
}
.entry-photo a:hover .photo-more{opacity:1}
.entry-link{
  display:inline-block;margin-top:1.2rem;
  color:var(--rose-deep);text-decoration:none;letter-spacing:.15em;
  border-bottom:1px solid var(--rose);padding-bottom:3px;transition:.3s;
}
.entry-link:hover{color:var(--gold);border-color:var(--gold)}

/* ---------- 二级页面通用 ---------- */
.subpage{padding-top:6rem}
.subhead{text-align:center;padding:3rem 2rem 1rem;animation:fadeUp 1.2s ease both}
.subhead h1{
  font-family:'ZCOOL KuaiLe',cursive;font-weight:400;
  font-size:clamp(2.5rem,8vw,4.5rem);color:var(--rose-deep);
  text-shadow:2px 3px 10px var(--shadow);margin-bottom:1rem;
}
.subhead p{color:var(--ink-soft);font-weight:300;letter-spacing:.2em;max-width:640px;margin:0 auto}
.back-home{display:block;text-align:center;margin:2rem 0;color:var(--ink-soft);text-decoration:none;letter-spacing:.2em}
.back-home:hover{color:var(--rose-deep)}
.reshuffle-btn{
  background:var(--rose-deep);color:#fff;border:none;
  padding:.6rem 1.8rem;border-radius:24px;cursor:pointer;
  font-family:inherit;font-size:1rem;letter-spacing:.15em;transition:.3s;
  box-shadow:0 6px 18px var(--shadow);
}
.reshuffle-btn:hover{background:var(--gold);transform:translateY(-2px)}

/* 年份页画廊 */
.gallery{
  max-width:1100px;margin:2rem auto;padding:0 1.5rem;
  column-count:3;column-gap:1rem;
}
@media(max-width:900px){.gallery{column-count:2}}
@media(max-width:560px){.gallery{column-count:1}}
.gallery img{
  width:100%;margin-bottom:1rem;border-radius:8px;border:5px solid #fff;
  box-shadow:0 10px 30px var(--shadow);cursor:pointer;
  transition:transform .4s,box-shadow .4s;break-inside:avoid;
  opacity:0;transform:translateY(30px);
}
.gallery img.show{opacity:1;transform:translateY(0)}
.gallery img:hover{transform:scale(1.03);box-shadow:0 16px 40px rgba(160,110,110,.3)}

/* 年份导航按钮 */
.year-nav{display:flex;justify-content:center;gap:1.5rem;margin:2rem 0 3rem;flex-wrap:wrap}
.year-nav a{
  color:var(--rose-deep);text-decoration:none;padding:.5rem 1.2rem;
  border:1px solid var(--rose);border-radius:24px;transition:.3s;letter-spacing:.1em;
}
.year-nav a:hover,.year-nav a.active{background:var(--rose-deep);color:#fff;border-color:var(--rose-deep)}

/* 音乐播放提示 */
.music-hint{
  text-align:center;color:var(--ink-soft);font-size:.9rem;
  margin:1rem auto 2rem;letter-spacing:.15em;
}
.music-hint button{
  background:var(--rose-deep);color:#fff;border:none;
  padding:.5rem 1.4rem;border-radius:20px;cursor:pointer;
  font-family:inherit;letter-spacing:.1em;margin-left:.5rem;transition:.3s;
}
.music-hint button:hover{background:var(--gold)}

/* 运动/音乐卡片区 */
.talent-section{max-width:1000px;margin:3rem auto;padding:0 1.5rem}
.talent-card{
  display:flex;align-items:center;gap:2.5rem;margin:3rem 0;
  background:rgba(255,255,255,.55);border-radius:16px;padding:2rem;
  box-shadow:0 12px 36px var(--shadow);
  opacity:0;transform:translateY(40px);transition:.9s ease;
}
.talent-card.show{opacity:1;transform:translateY(0)}
.talent-card:nth-child(even){flex-direction:row-reverse}
.talent-card .tc-imgs{flex:0 0 48%;display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.talent-card .tc-imgs img{width:100%;height:150px;object-fit:cover;border-radius:8px;border:4px solid #fff;box-shadow:0 6px 18px var(--shadow);cursor:pointer;transition:.3s}
.talent-card .tc-imgs img:hover{transform:scale(1.05)}
.talent-card .tc-imgs img.solo{grid-column:1/3;height:220px}
.talent-card .tc-text{flex:1}
.talent-card .tc-icon{font-size:2.5rem;margin-bottom:.5rem}
.talent-card .tc-title{font-size:1.8rem;color:var(--rose-deep);margin-bottom:.3rem;font-weight:500}
.talent-card .tc-sub{color:var(--gold);letter-spacing:.15em;margin-bottom:1rem;font-size:.95rem}
.talent-card .tc-desc{color:var(--ink-soft);font-weight:300}
.talent-card .tc-honors{margin-top:1rem;list-style:none}
.talent-card .tc-honors li{color:var(--ink);padding:.2rem 0;font-size:.95rem}
.talent-card .tc-honors li::before{content:"✦ ";color:var(--gold)}
@media(max-width:720px){
  .talent-card,.talent-card:nth-child(even){flex-direction:column}
  .talent-card .tc-imgs{width:100%;flex:none}
}

/* ============ 二次元动漫风格增强 ============ */
@keyframes hue{0%{background-position:0% center}100%{background-position:300% center}}
@keyframes twinkle{0%,100%{opacity:.3}50%{opacity:.9}}
@keyframes glowPulse{0%,100%{box-shadow:0 0 20px var(--glow)}50%{box-shadow:0 0 35px var(--rose-deep)}}

/* 内容层级高于星空 */
.topnav,.hero,.timeline,.ending,.subpage,.petals{position:relative;z-index:2}

/* 导航二次元化 */
.topnav{background:rgba(255,242,251,.72);border-bottom:2px solid transparent;
  border-image:linear-gradient(90deg,#ff2e88,#a56bff,#5ee0ff) 1}
.topnav .brand{background:linear-gradient(92deg,#ff2e88,#a56bff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

/* 照片卡片：发光边框 + 圆角 */
.entry-photo img{
  border:5px solid #fff;border-radius:18px;
  box-shadow:0 0 0 3px var(--rose),0 12px 34px var(--shadow);
}
.entry-photo img:hover{
  box-shadow:0 0 0 3px var(--purple),0 0 30px var(--glow),0 18px 44px var(--shadow);
}
/* 时间线圆点发光 */
.entry::before{
  border-color:var(--purple);
  box-shadow:0 0 0 5px var(--cream-2),0 0 20px var(--rose-deep);
  animation:glowPulse 2.5s ease-in-out infinite;
}
/* 年份数字彩虹 */
.entry-year{
  background:linear-gradient(92deg,#ff2e88,#a56bff,#5ee0ff);
  background-size:200% auto;-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;animation:hue 5s linear infinite;
}
.entry-title{color:var(--rose-deep)}

/* 卡片链接胶囊化 */
.entry-link{
  border:none;background:linear-gradient(92deg,#ff2e88,#a56bff);
  color:#fff!important;padding:.5rem 1.4rem;border-radius:30px;
  box-shadow:0 6px 18px var(--shadow);
}
.entry-link:hover{filter:brightness(1.1);transform:translateY(-2px)}
.photo-more{background:linear-gradient(92deg,#ff2e88,#a56bff);border-radius:30px}

/* 二级页标题彩虹发光 */
.subhead h1{
  background:linear-gradient(92deg,#ff2e88,#a56bff,#5ee0ff,#ff2e88);
  background-size:300% auto;-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;filter:drop-shadow(0 3px 12px var(--glow));
  animation:hue 6s linear infinite;
}
.ending-line{
  background:linear-gradient(92deg,#ff2e88,#a56bff,#5ee0ff);
  background-size:200% auto;-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;animation:hue 5s linear infinite;
}

/* 才艺卡片发光 */
.talent-card{background:rgba(255,255,255,.65);border:2px solid rgba(255,143,208,.5);border-radius:22px;backdrop-filter:blur(4px)}
.talent-card:hover{animation:glowPulse 2s ease-in-out infinite}
.tc-title{background:linear-gradient(92deg,#ff2e88,#a56bff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.talent-card .tc-imgs img{border-radius:14px}

/* 画廊图圆角发光 */
.gallery img{border-radius:16px;box-shadow:0 0 0 2px var(--rose),0 10px 28px var(--shadow)}
.gallery img:hover{box-shadow:0 0 0 2px var(--purple),0 0 26px var(--glow)}

/* 年份导航胶囊发光 */
.year-nav a{border:2px solid var(--rose);border-radius:30px}
.year-nav a:hover,.year-nav a.active{background:linear-gradient(92deg,#ff2e88,#a56bff);border-color:transparent;box-shadow:0 0 18px var(--glow)}

/* 按钮二次元化 */
.music-hint button,.hl-note button{
  background:linear-gradient(92deg,#ff2e88,#a56bff);border-radius:30px;box-shadow:0 6px 18px var(--shadow)
}
.music-hint button:hover{filter:brightness(1.1)}

/* 高光时刻页专用 */
.hl-year{margin:3.5rem auto;max-width:1050px;padding:0 1.5rem}
.hl-year h2{
  font-family:'ZCOOL KuaiLe',cursive;font-size:2rem;text-align:center;margin-bottom:.3rem;
  background:linear-gradient(92deg,#ff2e88,#a56bff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hl-year .hl-sub{text-align:center;color:var(--ink-soft);margin-bottom:1.4rem;letter-spacing:.1em}
.hl-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.8rem}
@media(max-width:900px){.hl-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.hl-grid{grid-template-columns:repeat(2,1fr)}}
.hl-grid img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:14px;border:4px solid #fff;
  box-shadow:0 0 0 2px var(--rose),0 8px 22px var(--shadow);cursor:pointer;transition:.35s;
  opacity:0;transform:scale(.9)}
.hl-grid img.show{opacity:1;transform:scale(1)}
.hl-grid img:hover{transform:scale(1.05);box-shadow:0 0 0 2px var(--purple),0 0 24px var(--glow)}
.hl-note{text-align:center;color:var(--ink-soft);font-size:.88rem;max-width:680px;margin:1rem auto 2rem;line-height:1.8}

/* ---------- 按月浏览全量照片 ---------- */
.month-browse{max-width:1100px;margin:3rem auto 1rem;padding:0 1.5rem}
.mb-title{
  font-family:'ZCOOL KuaiLe',cursive;text-align:center;font-size:1.8rem;margin-bottom:1.5rem;
  background:linear-gradient(92deg,#ff2e88,#a56bff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.month-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin-bottom:1.5rem}
.month-tabs button{
  font-family:inherit;cursor:pointer;border:2px solid var(--rose);
  background:rgba(255,255,255,.6);color:var(--ink-soft);
  padding:.4rem 1rem;border-radius:24px;font-size:.9rem;transition:.3s;
}
.month-tabs button:hover{color:var(--rose-deep);border-color:var(--purple)}
.month-tabs button.active{background:linear-gradient(92deg,#ff2e88,#a56bff);color:#fff;border-color:transparent;box-shadow:0 0 16px var(--glow)}
.mg-head{text-align:center;color:var(--ink-soft);letter-spacing:.15em;margin-bottom:1rem;font-size:1rem}
.mg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.7rem}
.mg-grid img{
  width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;border:3px solid #fff;
  box-shadow:0 0 0 2px var(--rose),0 6px 16px var(--shadow);cursor:pointer;transition:.3s;
  opacity:0;transform:scale(.92);
}
.mg-grid img.show{opacity:1;transform:scale(1)}
.mg-grid img:hover{transform:scale(1.06);box-shadow:0 0 0 2px var(--purple),0 0 20px var(--glow);z-index:2}

/* ---------- 运动/音乐页：动作照为主 ---------- */
.talent-hero{max-width:1000px;margin:1rem auto 1.5rem;text-align:center;
  opacity:0;transform:translateY(30px);transition:.8s}
.talent-hero.show{opacity:1;transform:translateY(0)}
.th-head .tc-icon{font-size:3rem}
.th-title{font-family:'ZCOOL KuaiLe',cursive;font-size:2.4rem;
  background:linear-gradient(92deg,#ff2e88,#a56bff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.th-sub{color:var(--gold);letter-spacing:.2em;margin:.3rem 0 1rem}
.th-desc{color:var(--ink-soft);max-width:760px;margin:0 auto;line-height:1.9}

/* 动作照大图网格(主) */
.action-grid{
  max-width:1000px;margin:1.5rem auto;padding:0 1.5rem;
  display:grid;grid-template-columns:repeat(3,1fr);gap:.9rem;
}
@media(max-width:820px){.action-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.action-grid{grid-template-columns:1fr}}
.action-cell{
  aspect-ratio:4/3;border-radius:16px;overflow:hidden;cursor:pointer;
  border:4px solid #fff;box-shadow:0 0 0 2px var(--rose),0 10px 26px var(--shadow);
  opacity:0;transform:scale(.92);transition:.5s;
}
.action-cell.show{opacity:1;transform:scale(1)}
.action-cell img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.action-cell:hover{box-shadow:0 0 0 2px var(--purple),0 0 26px var(--glow)}
.action-cell:hover img{transform:scale(1.06)}

/* 荣誉证书区(辅) */
.honor-box{
  max-width:840px;margin:2.5rem auto;padding:2rem;
  background:rgba(255,255,255,.6);border:2px solid rgba(255,143,208,.5);
  border-radius:20px;text-align:center;backdrop-filter:blur(4px);
  opacity:0;transform:translateY(30px);transition:.8s;
}
.honor-box.show{opacity:1;transform:translateY(0)}
.honor-title{font-family:'ZCOOL KuaiLe',cursive;font-size:1.5rem;color:var(--rose-deep);margin-bottom:1rem}
.honor-box .tc-honors{list-style:none;display:inline-block;text-align:left;margin-bottom:1.2rem}
.honor-box .tc-honors li{color:var(--ink);padding:.25rem 0}
.honor-box .tc-honors li::before{content:"✦ ";color:var(--gold)}
.cert-row{display:flex;justify-content:center;gap:.8rem;flex-wrap:wrap}
.cert-img{
  height:150px;border-radius:10px;border:3px solid #fff;cursor:pointer;
  box-shadow:0 6px 16px var(--shadow);transition:.3s;
}
.cert-img:hover{transform:scale(1.05);box-shadow:0 0 18px var(--glow)}
